{
  "_format": "hh-sol-artifact-1",
  "contractName": "StaticAToken",
  "sourceName": "contracts/protocol/tokenization/StaticAToken.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract ILendingPool",
          "name": "lendingPool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "aToken",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "wrappedTokenName",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "wrappedTokenSymbol",
          "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": [],
      "name": "ASSET",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ATOKEN",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "EIP712_REVISION",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "LENDING_POOL",
      "outputs": [
        {
          "internalType": "contract ILendingPool",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "METADEPOSIT_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "METAWITHDRAWAL_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PERMIT_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "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"
        }
      ],
      "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": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint16",
          "name": "referralCode",
          "type": "uint16"
        },
        {
          "internalType": "bool",
          "name": "fromUnderlying",
          "type": "bool"
        }
      ],
      "name": "deposit",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "dynamicBalanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "dynamicToStaticAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        }
      ],
      "name": "getDomainSeparator",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "depositor",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "uint16",
          "name": "referralCode",
          "type": "uint16"
        },
        {
          "internalType": "bool",
          "name": "fromUnderlying",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "v",
              "type": "uint8"
            },
            {
              "internalType": "bytes32",
              "name": "r",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "s",
              "type": "bytes32"
            }
          ],
          "internalType": "struct StaticAToken.SignatureParams",
          "name": "sigParams",
          "type": "tuple"
        },
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        }
      ],
      "name": "metaDeposit",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "staticAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "dynamicAmount",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "toUnderlying",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "v",
              "type": "uint8"
            },
            {
              "internalType": "bytes32",
              "name": "r",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "s",
              "type": "bytes32"
            }
          ],
          "internalType": "struct StaticAToken.SignatureParams",
          "name": "sigParams",
          "type": "tuple"
        },
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        }
      ],
      "name": "metaWithdraw",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "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"
        },
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        }
      ],
      "name": "permit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "rate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "staticToDynamicAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "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"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "toUnderlying",
          "type": "bool"
        }
      ],
      "name": "withdraw",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "toUnderlying",
          "type": "bool"
        }
      ],
      "name": "withdrawDynamicAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60e06040523480156200001157600080fd5b506040516200279e3803806200279e833981016040819052620000349162000341565b8151829082906200004d906003906020850190620001b6565b50805162000063906004906020840190620001b6565b50506005805460ff19166012179055506001600160601b0319606085811b821660805284901b1660a052604080516358b50cef60e11b815290516000916001600160a01b0386169163b16a19de91600480820192602092909190829003018186803b158015620000d257600080fd5b505afa158015620000e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200010d9190620002f9565b6001600160601b0319606082901b1660c05260405163095ea7b360e01b81529091506001600160a01b0382169063095ea7b3906200015490889060001990600401620003d3565b602060405180830381600087803b1580156200016f57600080fd5b505af115801562000184573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001aa91906200031f565b50505050505062000405565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f957805160ff191683800117855562000229565b8280016001018555821562000229579182015b82811115620002295782518255916020019190600101906200020c565b50620002379291506200023b565b5090565b5b808211156200023757600081556001016200023c565b600082601f83011262000263578081fd5b81516001600160401b03808211156200027a578283fd5b6040516020601f8401601f19168201810183811183821017156200029c578586fd5b80604052508194508382528681858801011115620002b957600080fd5b600092505b83831015620002dd5785830181015182840182015291820191620002be565b83831115620002ef5760008185840101525b5050505092915050565b6000602082840312156200030b578081fd5b81516200031881620003ec565b9392505050565b60006020828403121562000331578081fd5b8151801515811462000318578182fd5b6000806000806080858703121562000357578283fd5b84516200036481620003ec565b60208601519094506200037781620003ec565b60408601519093506001600160401b038082111562000394578384fd5b620003a28883890162000252565b93506060870151915080821115620003b8578283fd5b50620003c78782880162000252565b91505092959194509250565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03811681146200040257600080fd5b50565b60805160601c60a05160601c60c05160601c612336620004686000398061059452806106c852806111d652806112d852806113445250806106ec528061126752806113b65250806105675280610e2e52806111a9528061131752506123366000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806369af0ddb1161010457806395d89b41116100a2578063b9844d8d11610071578063b9844d8d146103a3578063dd62ed3e146103b6578063ead5d359146103c9578063f57d0b40146103dc576101da565b806395d89b411461036d578063a457c2d714610375578063a9059cbb14610388578063b4dcfc771461039b576101da565b806381abdab3116100de57806381abdab31461032a5780638a127bfd1461033d5780638a3b3d6f146103525780638d94841514610365576101da565b806369af0ddb146102fc57806370a082311461030f5780637816037614610322576101da565b806330adf81f1161017c57806344b68c3f1161014b57806344b68c3f146102c45780634800d97f146102d757806351c0e061146102ec57806363210537146102f4576101da565b806330adf81f14610281578063313ce5671461028957806336a5a6d61461029e57806339509351146102b1576101da565b806323b872dd116101b857806323b872dd14610232578063288587ce146102455780632c4e722e146102665780632f2cab871461026e576101da565b806306fdde03146101df578063095ea7b3146101fd57806318160ddd1461021d575b600080fd5b6101e76103ef565b6040516101f49190611e6c565b60405180910390f35b61021061020b366004611b21565b610485565b6040516101f49190611d4e565b6102256104a3565b6040516101f49190611d59565b610210610240366004611987565b6104a9565b610258610253366004611b4b565b610530565b6040516101f49291906121fd565b61022561054d565b61022561027c366004611b8c565b610611565b610225610629565b61029161064d565b6040516101f4919061220b565b6102256102ac366004611bff565b610656565b6102106102bf366004611b21565b61066a565b6102256102d2366004611938565b6106b8565b6102df6106c6565b6040516101f49190611cad565b6102df6106ea565b61022561070e565b61025861030a366004611a56565b610732565b61022561031d366004611938565b6108ff565b6101e761091a565b6102256103383660046119c7565b610937565b61035061034b366004611aab565b610af6565b005b610225610360366004611bff565b610c93565b610225610d2b565b6101e7610d4f565b610210610383366004611b21565b610db0565b610210610396366004611b21565b610e18565b6102df610e2c565b6102256103b1366004611938565b610e50565b6102256103c4366004611953565b610e62565b6102586103d7366004611b4b565b610e8d565b6102256103ea366004611bff565b610e9e565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561047b5780601f106104505761010080835404028352916020019161047b565b820191906000526020600020905b81548152906001019060200180831161045e57829003601f168201915b5050505050905090565b6000610499610492610eb2565b8484610eb6565b5060015b92915050565b60025490565b60006104b6848484610f6a565b610526846104c2610eb2565b610521856040518060600160405280602881526020016122b4602891396001600160a01b038a16600090815260016020526040812090610500610eb2565b6001600160a01b03168152602081019190915260400160002054919061107f565b610eb6565b5060019392505050565b6000806105413386600087876110ab565b91509150935093915050565b60405163d15e005360e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d15e0053906105bc907f000000000000000000000000000000000000000000000000000000000000000090600401611cad565b60206040518083038186803b1580156105d457600080fd5b505afa1580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c9190611c17565b905090565b6000610620338686868661129d565b95945050505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60055460ff1690565b600061049d61066361054d565b83906113ff565b6000610499610677610eb2565b846105218560016000610688610eb2565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906114aa565b600061049d6103ea836108ff565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f4dab0a5e832f103ac80c9c3e51e5742f8a24aa0a3d941fe91c64e1e3db50c74381565b6000806001600160a01b038a166107645760405162461bcd60e51b815260040161075b90611f70565b60405180910390fd5b844211156107845760405162461bcd60e51b815260040161075b90612028565b6001600160a01b038a16600090815260066020526040812054906107a785610c93565b7f10ab8743506cfd76acaa406d0788f01934bd03f14eadabf392640e43b01f976c8d8d8d8d8d888e6040516020016107e6989796959493929190611daa565b6040516020818303038152906040528051906020012060405160200161080d929190611c92565b60408051601f1981840301815291905280516020918201209150600190829061083890890189611c2f565b886020013589604001356040516000815260200160405260405161085f9493929190611e4e565b6020604051602081039080840390855afa158015610881573d6000803e3d6000fd5b505050602060405103516001600160a01b03168c6001600160a01b0316146108bb5760405162461bcd60e51b815260040161075b90611f9b565b6108c68260016114aa565b6001600160a01b038d166000908152600660205260409020556108ec8c8c8c8c8c6110ab565b9350935050509850989650505050505050565b6001600160a01b031660009081526020819052604090205490565b604051806040016040528060018152602001603160f81b81525081565b60006001600160a01b03891661095f5760405162461bcd60e51b815260040161075b90611f70565b8342111561097f5760405162461bcd60e51b815260040161075b90612028565b6001600160a01b038916600090815260066020526040812054906109a284610c93565b7f4dab0a5e832f103ac80c9c3e51e5742f8a24aa0a3d941fe91c64e1e3db50c7438c8c8c8c8c888d6040516020016109e1989796959493929190611d62565b60405160208183030381529060405280519060200120604051602001610a08929190611c92565b60408051601f19818403018152919052805160209182012091506001908290610a3390880188611c2f565b8760200135886040013560405160008152602001604052604051610a5a9493929190611e4e565b6020604051602081039080840390855afa158015610a7c573d6000803e3d6000fd5b505050602060405103516001600160a01b03168b6001600160a01b031614610ab65760405162461bcd60e51b815260040161075b90611f9b565b610ac18260016114aa565b6001600160a01b038c16600090815260066020526040902055610ae78b8b8b8b8b61129d565b50505098975050505050505050565b6001600160a01b038816610b1c5760405162461bcd60e51b815260040161075b90612054565b84421115610b3c5760405162461bcd60e51b815260040161075b90612028565b6001600160a01b03881660009081526006602052604081205490610b5f83610c93565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98b8b8b868c604051602001610b9a96959493929190611dee565b60405160208183030381529060405280519060200120604051602001610bc1929190611c92565b60405160208183030381529060405280519060200120905060018187878760405160008152602001604052604051610bfc9493929190611e4e565b6020604051602081039080840390855afa158015610c1e573d6000803e3d6000fd5b505050602060405103516001600160a01b03168a6001600160a01b031614610c585760405162461bcd60e51b815260040161075b90611f9b565b610c638260016114aa565b6001600160a01b038b16600090815260066020526040902055610c878a8a8a610eb6565b50505050505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610cbe6103ef565b805160209182012060408051808201825260018152603160f81b9084015251610d0e93927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918791309101611e22565b604051602081830303815290604052805190602001209050919050565b7f10ab8743506cfd76acaa406d0788f01934bd03f14eadabf392640e43b01f976c81565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561047b5780601f106104505761010080835404028352916020019161047b565b6000610499610dbd610eb2565b84610521856040518060600160405280602581526020016122dc6025913960016000610de7610eb2565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061107f565b6000610499610e25610eb2565b8484610f6a565b7f000000000000000000000000000000000000000000000000000000000000000081565b60066020526000908152604090205481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000806105413386866000876110ab565b600061049d610eab61054d565b83906114d6565b3390565b6001600160a01b038316610edc5760405162461bcd60e51b815260040161075b90612101565b6001600160a01b038216610f025760405162461bcd60e51b815260040161075b90611ec2565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f5d908590611d59565b60405180910390a3505050565b6001600160a01b038316610f905760405162461bcd60e51b815260040161075b906120bc565b6001600160a01b038216610fb65760405162461bcd60e51b815260040161075b90611e7f565b610fc1838383611566565b610ffe8160405180606001604052806026815260200161228e602691396001600160a01b038616600090815260208190526040902054919061107f565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461102d90826114aa565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f5d908590611d59565b600081848411156110a35760405162461bcd60e51b815260040161075b9190611e6c565b505050900390565b6000806001600160a01b0386166110d45760405162461bcd60e51b815260040161075b90611fc6565b8415806110df575083155b6110fb5760405162461bcd60e51b815260040161075b90611ff1565b6000611106886108ff565b9050600080600061111561054d565b905088156111555783891161112a578861112c565b835b91508389116111445761113f898261156b565b61114e565b61114e848261156b565b9250611182565b6000611161858361156b565b90508089116111705788611172565b805b935061117e8483611577565b9250505b61118c8b83611583565b861561125a57604051631a4ca37b60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906369328dec90611202907f00000000000000000000000000000000000000000000000000000000000000009087908f90600401611cfe565b602060405180830381600087803b15801561121c57600080fd5b505af1158015611230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112549190611c17565b5061128e565b61128e6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b85611665565b50999098509650505050505050565b60006001600160a01b0385166112c55760405162461bcd60e51b815260040161075b90611fc6565b81156113a9576113006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168730876116bb565b60405163e8eda9df60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e8eda9df90611372907f000000000000000000000000000000000000000000000000000000000000000090889030908990600401611d21565b600060405180830381600087803b15801561138c57600080fd5b505af11580156113a0573d6000803e3d6000fd5b505050506113de565b6113de6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168730876116bb565b60006113e985610656565b90506113f586826116e2565b9695505050505050565b604080518082019091526002815261035360f41b6020820152600090826114395760405162461bcd60e51b815260040161075b9190611e6c565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce80000008219048511156114875760405162461bcd60e51b815260040161075b9190611e6c565b5082816b033b2e3c9fd0803ce8000000860201816114a157fe5b04949350505050565b6000828201838110156114cf5760405162461bcd60e51b815260040161075b90611f04565b9392505050565b60008215806114e3575081155b156114f05750600061049d565b816b019d971e4fe8401e74000000198161150657fe5b0483111560405180604001604052806002815260200161068760f31b815250906115435760405162461bcd60e51b815260040161075b9190611e6c565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b505050565b60006114cf83836114d6565b60006114cf83836113ff565b6001600160a01b0382166115a95760405162461bcd60e51b815260040161075b9061207b565b6115b582600083611566565b6115f28160405180606001604052806022815260200161226c602291396001600160a01b038516600090815260208190526040902054919061107f565b6001600160a01b0383166000908152602081905260409020556002546116189082611796565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611659908590611d59565b60405180910390a35050565b6115668363a9059cbb60e01b8484604051602401611684929190611ce5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526117d8565b6116dc846323b872dd60e01b85858560405160240161168493929190611cc1565b50505050565b6001600160a01b0382166117085760405162461bcd60e51b815260040161075b906121c6565b61171460008383611566565b60025461172190826114aa565b6002556001600160a01b03821660009081526020819052604090205461174790826114aa565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611659908590611d59565b60006114cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061107f565b6117ea826001600160a01b03166118bd565b6118065760405162461bcd60e51b815260040161075b9061218f565b60006060836001600160a01b0316836040516118229190611c76565b6000604051808303816000865af19150503d806000811461185f576040519150601f19603f3d011682016040523d82523d6000602084013e611864565b606091505b5091509150816118865760405162461bcd60e51b815260040161075b90611f3b565b8051156116dc57808060200190518101906118a19190611be3565b6116dc5760405162461bcd60e51b815260040161075b90612145565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906118f157508115155b949350505050565b80356001600160a01b038116811461049d57600080fd5b600060608284031215611921578081fd5b50919050565b803560ff8116811461049d57600080fd5b600060208284031215611949578081fd5b6114cf83836118f9565b60008060408385031215611965578081fd5b61196f84846118f9565b915061197e84602085016118f9565b90509250929050565b60008060006060848603121561199b578081fd5b83356119a681612245565b925060208401356119b681612245565b929592945050506040919091013590565b600080600080600080600080610140898b0312156119e3578384fd5b6119ed8a8a6118f9565b97506119fc8a60208b016118f9565b965060408901359550606089013561ffff81168114611a19578485fd5b94506080890135611a298161225d565b935060a08901359250611a3f8a60c08b01611910565b915061012089013590509295985092959890939650565b600080600080600080600080610140898b031215611a72578384fd5b8835611a7d81612245565b97506020890135611a8d81612245565b965060408901359550606089013594506080890135611a298161225d565b600080600080600080600080610100898b031215611ac7578384fd5b8835611ad281612245565b97506020890135611ae281612245565b96506040890135955060608901359450611aff8a60808b01611927565b979a969950949793969560a0850135955060c08501359460e001359350915050565b60008060408385031215611b33578182fd5b611b3d84846118f9565b946020939093013593505050565b600080600060608486031215611b5f578283fd5b8335611b6a81612245565b9250602084013591506040840135611b818161225d565b809150509250925092565b60008060008060808587031215611ba1578182fd5b611bab86866118f9565b935060208501359250604085013561ffff81168114611bc8578283fd5b91506060850135611bd88161225d565b939692955090935050565b600060208284031215611bf4578081fd5b81516114cf8161225d565b600060208284031215611c10578081fd5b5035919050565b600060208284031215611c28578081fd5b5051919050565b600060208284031215611c40578081fd5b6114cf8383611927565b60008151808452611c62816020860160208601612219565b601f01601f19169290920160200192915050565b60008251611c88818460208701612219565b9190910192915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6001600160a01b03948516815260208101939093529216604082015261ffff909116606082015260800190565b901515815260200190565b90815260200190565b9788526001600160a01b039687166020890152949095166040870152606086019290925261ffff166080850152151560a084015260c083019190915260e08201526101000190565b9788526001600160a01b03968716602089015294909516604087015260608601929092526080850152151560a084015260c083019190915260e08201526101000190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082526114cf6020830184611c4a565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b60208082526011908201527024a72b20a624a22fa222a827a9a4aa27a960791b604082015260600190565b602080825260119082015270494e56414c49445f5349474e415455524560781b604082015260600190565b6020808252601190820152701253959053125117d49150d25412515395607a1b604082015260600190565b6020808252601e908201527f4f4e4c595f4f4e455f414d4f554e545f464f524d41545f414c4c4f5745440000604082015260600190565b60208082526012908201527124a72b20a624a22fa2ac2824a920aa24a7a760711b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b918252602082015260400190565b60ff91909116815260200190565b60005b8381101561223457818101518382015260200161221c565b838111156116dc5750506000910152565b6001600160a01b038116811461225a57600080fd5b50565b801515811461225a57600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122075ccf7f7e7e021f90b9f3d864e0683c68402e6f50096d9fed656d2d740433e0864736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806369af0ddb1161010457806395d89b41116100a2578063b9844d8d11610071578063b9844d8d146103a3578063dd62ed3e146103b6578063ead5d359146103c9578063f57d0b40146103dc576101da565b806395d89b411461036d578063a457c2d714610375578063a9059cbb14610388578063b4dcfc771461039b576101da565b806381abdab3116100de57806381abdab31461032a5780638a127bfd1461033d5780638a3b3d6f146103525780638d94841514610365576101da565b806369af0ddb146102fc57806370a082311461030f5780637816037614610322576101da565b806330adf81f1161017c57806344b68c3f1161014b57806344b68c3f146102c45780634800d97f146102d757806351c0e061146102ec57806363210537146102f4576101da565b806330adf81f14610281578063313ce5671461028957806336a5a6d61461029e57806339509351146102b1576101da565b806323b872dd116101b857806323b872dd14610232578063288587ce146102455780632c4e722e146102665780632f2cab871461026e576101da565b806306fdde03146101df578063095ea7b3146101fd57806318160ddd1461021d575b600080fd5b6101e76103ef565b6040516101f49190611e6c565b60405180910390f35b61021061020b366004611b21565b610485565b6040516101f49190611d4e565b6102256104a3565b6040516101f49190611d59565b610210610240366004611987565b6104a9565b610258610253366004611b4b565b610530565b6040516101f49291906121fd565b61022561054d565b61022561027c366004611b8c565b610611565b610225610629565b61029161064d565b6040516101f4919061220b565b6102256102ac366004611bff565b610656565b6102106102bf366004611b21565b61066a565b6102256102d2366004611938565b6106b8565b6102df6106c6565b6040516101f49190611cad565b6102df6106ea565b61022561070e565b61025861030a366004611a56565b610732565b61022561031d366004611938565b6108ff565b6101e761091a565b6102256103383660046119c7565b610937565b61035061034b366004611aab565b610af6565b005b610225610360366004611bff565b610c93565b610225610d2b565b6101e7610d4f565b610210610383366004611b21565b610db0565b610210610396366004611b21565b610e18565b6102df610e2c565b6102256103b1366004611938565b610e50565b6102256103c4366004611953565b610e62565b6102586103d7366004611b4b565b610e8d565b6102256103ea366004611bff565b610e9e565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561047b5780601f106104505761010080835404028352916020019161047b565b820191906000526020600020905b81548152906001019060200180831161045e57829003601f168201915b5050505050905090565b6000610499610492610eb2565b8484610eb6565b5060015b92915050565b60025490565b60006104b6848484610f6a565b610526846104c2610eb2565b610521856040518060600160405280602881526020016122b4602891396001600160a01b038a16600090815260016020526040812090610500610eb2565b6001600160a01b03168152602081019190915260400160002054919061107f565b610eb6565b5060019392505050565b6000806105413386600087876110ab565b91509150935093915050565b60405163d15e005360e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d15e0053906105bc907f000000000000000000000000000000000000000000000000000000000000000090600401611cad565b60206040518083038186803b1580156105d457600080fd5b505afa1580156105e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060c9190611c17565b905090565b6000610620338686868661129d565b95945050505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60055460ff1690565b600061049d61066361054d565b83906113ff565b6000610499610677610eb2565b846105218560016000610688610eb2565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906114aa565b600061049d6103ea836108ff565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f4dab0a5e832f103ac80c9c3e51e5742f8a24aa0a3d941fe91c64e1e3db50c74381565b6000806001600160a01b038a166107645760405162461bcd60e51b815260040161075b90611f70565b60405180910390fd5b844211156107845760405162461bcd60e51b815260040161075b90612028565b6001600160a01b038a16600090815260066020526040812054906107a785610c93565b7f10ab8743506cfd76acaa406d0788f01934bd03f14eadabf392640e43b01f976c8d8d8d8d8d888e6040516020016107e6989796959493929190611daa565b6040516020818303038152906040528051906020012060405160200161080d929190611c92565b60408051601f1981840301815291905280516020918201209150600190829061083890890189611c2f565b886020013589604001356040516000815260200160405260405161085f9493929190611e4e565b6020604051602081039080840390855afa158015610881573d6000803e3d6000fd5b505050602060405103516001600160a01b03168c6001600160a01b0316146108bb5760405162461bcd60e51b815260040161075b90611f9b565b6108c68260016114aa565b6001600160a01b038d166000908152600660205260409020556108ec8c8c8c8c8c6110ab565b9350935050509850989650505050505050565b6001600160a01b031660009081526020819052604090205490565b604051806040016040528060018152602001603160f81b81525081565b60006001600160a01b03891661095f5760405162461bcd60e51b815260040161075b90611f70565b8342111561097f5760405162461bcd60e51b815260040161075b90612028565b6001600160a01b038916600090815260066020526040812054906109a284610c93565b7f4dab0a5e832f103ac80c9c3e51e5742f8a24aa0a3d941fe91c64e1e3db50c7438c8c8c8c8c888d6040516020016109e1989796959493929190611d62565b60405160208183030381529060405280519060200120604051602001610a08929190611c92565b60408051601f19818403018152919052805160209182012091506001908290610a3390880188611c2f565b8760200135886040013560405160008152602001604052604051610a5a9493929190611e4e565b6020604051602081039080840390855afa158015610a7c573d6000803e3d6000fd5b505050602060405103516001600160a01b03168b6001600160a01b031614610ab65760405162461bcd60e51b815260040161075b90611f9b565b610ac18260016114aa565b6001600160a01b038c16600090815260066020526040902055610ae78b8b8b8b8b61129d565b50505098975050505050505050565b6001600160a01b038816610b1c5760405162461bcd60e51b815260040161075b90612054565b84421115610b3c5760405162461bcd60e51b815260040161075b90612028565b6001600160a01b03881660009081526006602052604081205490610b5f83610c93565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98b8b8b868c604051602001610b9a96959493929190611dee565b60405160208183030381529060405280519060200120604051602001610bc1929190611c92565b60405160208183030381529060405280519060200120905060018187878760405160008152602001604052604051610bfc9493929190611e4e565b6020604051602081039080840390855afa158015610c1e573d6000803e3d6000fd5b505050602060405103516001600160a01b03168a6001600160a01b031614610c585760405162461bcd60e51b815260040161075b90611f9b565b610c638260016114aa565b6001600160a01b038b16600090815260066020526040902055610c878a8a8a610eb6565b50505050505050505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f610cbe6103ef565b805160209182012060408051808201825260018152603160f81b9084015251610d0e93927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918791309101611e22565b604051602081830303815290604052805190602001209050919050565b7f10ab8743506cfd76acaa406d0788f01934bd03f14eadabf392640e43b01f976c81565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561047b5780601f106104505761010080835404028352916020019161047b565b6000610499610dbd610eb2565b84610521856040518060600160405280602581526020016122dc6025913960016000610de7610eb2565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061107f565b6000610499610e25610eb2565b8484610f6a565b7f000000000000000000000000000000000000000000000000000000000000000081565b60066020526000908152604090205481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000806105413386866000876110ab565b600061049d610eab61054d565b83906114d6565b3390565b6001600160a01b038316610edc5760405162461bcd60e51b815260040161075b90612101565b6001600160a01b038216610f025760405162461bcd60e51b815260040161075b90611ec2565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f5d908590611d59565b60405180910390a3505050565b6001600160a01b038316610f905760405162461bcd60e51b815260040161075b906120bc565b6001600160a01b038216610fb65760405162461bcd60e51b815260040161075b90611e7f565b610fc1838383611566565b610ffe8160405180606001604052806026815260200161228e602691396001600160a01b038616600090815260208190526040902054919061107f565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461102d90826114aa565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f5d908590611d59565b600081848411156110a35760405162461bcd60e51b815260040161075b9190611e6c565b505050900390565b6000806001600160a01b0386166110d45760405162461bcd60e51b815260040161075b90611fc6565b8415806110df575083155b6110fb5760405162461bcd60e51b815260040161075b90611ff1565b6000611106886108ff565b9050600080600061111561054d565b905088156111555783891161112a578861112c565b835b91508389116111445761113f898261156b565b61114e565b61114e848261156b565b9250611182565b6000611161858361156b565b90508089116111705788611172565b805b935061117e8483611577565b9250505b61118c8b83611583565b861561125a57604051631a4ca37b60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906369328dec90611202907f00000000000000000000000000000000000000000000000000000000000000009087908f90600401611cfe565b602060405180830381600087803b15801561121c57600080fd5b505af1158015611230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112549190611c17565b5061128e565b61128e6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b85611665565b50999098509650505050505050565b60006001600160a01b0385166112c55760405162461bcd60e51b815260040161075b90611fc6565b81156113a9576113006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168730876116bb565b60405163e8eda9df60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e8eda9df90611372907f000000000000000000000000000000000000000000000000000000000000000090889030908990600401611d21565b600060405180830381600087803b15801561138c57600080fd5b505af11580156113a0573d6000803e3d6000fd5b505050506113de565b6113de6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168730876116bb565b60006113e985610656565b90506113f586826116e2565b9695505050505050565b604080518082019091526002815261035360f41b6020820152600090826114395760405162461bcd60e51b815260040161075b9190611e6c565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce80000008219048511156114875760405162461bcd60e51b815260040161075b9190611e6c565b5082816b033b2e3c9fd0803ce8000000860201816114a157fe5b04949350505050565b6000828201838110156114cf5760405162461bcd60e51b815260040161075b90611f04565b9392505050565b60008215806114e3575081155b156114f05750600061049d565b816b019d971e4fe8401e74000000198161150657fe5b0483111560405180604001604052806002815260200161068760f31b815250906115435760405162461bcd60e51b815260040161075b9190611e6c565b50506b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b505050565b60006114cf83836114d6565b60006114cf83836113ff565b6001600160a01b0382166115a95760405162461bcd60e51b815260040161075b9061207b565b6115b582600083611566565b6115f28160405180606001604052806022815260200161226c602291396001600160a01b038516600090815260208190526040902054919061107f565b6001600160a01b0383166000908152602081905260409020556002546116189082611796565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611659908590611d59565b60405180910390a35050565b6115668363a9059cbb60e01b8484604051602401611684929190611ce5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526117d8565b6116dc846323b872dd60e01b85858560405160240161168493929190611cc1565b50505050565b6001600160a01b0382166117085760405162461bcd60e51b815260040161075b906121c6565b61171460008383611566565b60025461172190826114aa565b6002556001600160a01b03821660009081526020819052604090205461174790826114aa565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611659908590611d59565b60006114cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061107f565b6117ea826001600160a01b03166118bd565b6118065760405162461bcd60e51b815260040161075b9061218f565b60006060836001600160a01b0316836040516118229190611c76565b6000604051808303816000865af19150503d806000811461185f576040519150601f19603f3d011682016040523d82523d6000602084013e611864565b606091505b5091509150816118865760405162461bcd60e51b815260040161075b90611f3b565b8051156116dc57808060200190518101906118a19190611be3565b6116dc5760405162461bcd60e51b815260040161075b90612145565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906118f157508115155b949350505050565b80356001600160a01b038116811461049d57600080fd5b600060608284031215611921578081fd5b50919050565b803560ff8116811461049d57600080fd5b600060208284031215611949578081fd5b6114cf83836118f9565b60008060408385031215611965578081fd5b61196f84846118f9565b915061197e84602085016118f9565b90509250929050565b60008060006060848603121561199b578081fd5b83356119a681612245565b925060208401356119b681612245565b929592945050506040919091013590565b600080600080600080600080610140898b0312156119e3578384fd5b6119ed8a8a6118f9565b97506119fc8a60208b016118f9565b965060408901359550606089013561ffff81168114611a19578485fd5b94506080890135611a298161225d565b935060a08901359250611a3f8a60c08b01611910565b915061012089013590509295985092959890939650565b600080600080600080600080610140898b031215611a72578384fd5b8835611a7d81612245565b97506020890135611a8d81612245565b965060408901359550606089013594506080890135611a298161225d565b600080600080600080600080610100898b031215611ac7578384fd5b8835611ad281612245565b97506020890135611ae281612245565b96506040890135955060608901359450611aff8a60808b01611927565b979a969950949793969560a0850135955060c08501359460e001359350915050565b60008060408385031215611b33578182fd5b611b3d84846118f9565b946020939093013593505050565b600080600060608486031215611b5f578283fd5b8335611b6a81612245565b9250602084013591506040840135611b818161225d565b809150509250925092565b60008060008060808587031215611ba1578182fd5b611bab86866118f9565b935060208501359250604085013561ffff81168114611bc8578283fd5b91506060850135611bd88161225d565b939692955090935050565b600060208284031215611bf4578081fd5b81516114cf8161225d565b600060208284031215611c10578081fd5b5035919050565b600060208284031215611c28578081fd5b5051919050565b600060208284031215611c40578081fd5b6114cf8383611927565b60008151808452611c62816020860160208601612219565b601f01601f19169290920160200192915050565b60008251611c88818460208701612219565b9190910192915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6001600160a01b03948516815260208101939093529216604082015261ffff909116606082015260800190565b901515815260200190565b90815260200190565b9788526001600160a01b039687166020890152949095166040870152606086019290925261ffff166080850152151560a084015260c083019190915260e08201526101000190565b9788526001600160a01b03968716602089015294909516604087015260608601929092526080850152151560a084015260c083019190915260e08201526101000190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602082526114cf6020830184611c4a565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b60208082526011908201527024a72b20a624a22fa222a827a9a4aa27a960791b604082015260600190565b602080825260119082015270494e56414c49445f5349474e415455524560781b604082015260600190565b6020808252601190820152701253959053125117d49150d25412515395607a1b604082015260600190565b6020808252601e908201527f4f4e4c595f4f4e455f414d4f554e545f464f524d41545f414c4c4f5745440000604082015260600190565b60208082526012908201527124a72b20a624a22fa2ac2824a920aa24a7a760711b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b918252602082015260400190565b60ff91909116815260200190565b60005b8381101561223457818101518382015260200161221c565b838111156116dc5750506000910152565b6001600160a01b038116811461225a57600080fd5b50565b801515811461225a57600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122075ccf7f7e7e021f90b9f3d864e0683c68402e6f50096d9fed656d2d740433e0864736f6c634300060c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
