{
  "_format": "hh-sol-artifact-1",
  "contractName": "PairFlash",
  "sourceName": "contracts/examples/PairFlash.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract ISwapRouter",
          "name": "_swapRouter",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_deployer",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_factory",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_WETH9",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "WETH9",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "deployer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "token0",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "token1",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "fee1",
              "type": "uint24"
            },
            {
              "internalType": "uint256",
              "name": "amount0",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amount1",
              "type": "uint256"
            },
            {
              "internalType": "uint24",
              "name": "fee2",
              "type": "uint24"
            },
            {
              "internalType": "uint24",
              "name": "fee3",
              "type": "uint24"
            }
          ],
          "internalType": "struct PairFlash.FlashParams",
          "name": "params",
          "type": "tuple"
        }
      ],
      "name": "initFlash",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "fee0",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "fee1",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "pancakeV3FlashCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "refundETH",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "swapRouter",
      "outputs": [
        {
          "internalType": "contract ISwapRouter",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amountMinimum",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "sweepToken",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amountMinimum",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "unwrapWETH9",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x6101006040523480156200001257600080fd5b5060405162001b1438038062001b14833981016040819052620000359162000064565b6001600160601b0319606093841b811660805291831b821660a052821b811660c05291901b1660e052620000e4565b600080600080608085870312156200007a578384fd5b84516200008781620000cb565b60208601519094506200009a81620000cb565b6040860151909350620000ad81620000cb565b6060860151909250620000c081620000cb565b939692955090935050565b6001600160a01b0381168114620000e157600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6119b36200016160003980610616528061064352806107935280610841528061094052508060b752806103bb52806104e5528061057f5280610f6f5280610fcf528061105052508061096452508061029752806105b6528061098852506119b36000f3fe60806040526004361061009a5760003560e01c8063a1d4833611610069578063c45a01551161004e578063c45a0155146101e5578063d5f39488146101fa578063df2ab5bb1461020f57610145565b8063a1d48336146101b0578063c31c9c07146101d057610145565b806312210e8a1461014a5780632384463b1461015257806349404b7c146101725780634aa4a4fc1461018557610145565b36610145573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461014357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b610143610222565b34801561015e57600080fd5b5061014361016d366004611678565b610234565b61014361018036600461172b565b6103b7565b34801561019157600080fd5b5061019a61057d565b6040516101a791906117da565b60405180910390f35b3480156101bc57600080fd5b506101436101cb366004611756565b6105a1565b3480156101dc57600080fd5b5061019a61093e565b3480156101f157600080fd5b5061019a610962565b34801561020657600080fd5b5061019a610986565b61014361021d366004611541565b6109aa565b4715610232576102323347610ac7565b565b60006040518060600160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015162ffffff16815250905060006102bc7f000000000000000000000000000000000000000000000000000000000000000083610c15565b90508073ffffffffffffffffffffffffffffffffffffffff1663490e6cbc30856060015186608001516040518060c0016040528089606001518152602001896080015181526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018960a0015162ffffff1681526020018960c0015162ffffff168152506040516020016103529190611914565b6040516020818303038152906040526040518563ffffffff1660e01b815260040161038094939291906117fb565b600060405180830381600087803b15801561039a57600080fd5b505af11580156103ae573d6000803e3d6000fd5b50505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561044057600080fd5b505afa158015610454573d6000803e3d6000fd5b505050506040513d602081101561046a57600080fd5b50519050828110156104dd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b8015610578577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561055657600080fd5b505af115801561056a573d6000803e3d6000fd5b505050506105788282610ac7565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006105af8284018461157c565b90506105df7f00000000000000000000000000000000000000000000000000000000000000008260600151610d4b565b506060810151805160209091015182516000906105fc9089610d81565b9050600061060e856020015189610d81565b905061063f837f00000000000000000000000000000000000000000000000000000000000000008760200151610d91565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663414bf3896040518061010001604052808773ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff168152602001896080015162ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff16815260200142815260200189602001518152602001868152602001600073ffffffffffffffffffffffffffffffffffffffff168152506040518263ffffffff1660e01b81526004016107399190611898565b602060405180830381600087803b15801561075357600080fd5b505af1158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b9190611713565b90506107bc857f00000000000000000000000000000000000000000000000000000000000000008860000151610d91565b604080516101008101825273ffffffffffffffffffffffffffffffffffffffff8781168252868116602083015260a08981015162ffffff168385015230606084015242608084015289519083015260c08201859052600060e0830181905292517f414bf3890000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169163414bf389916108779190600401611898565b602060405180830381600087803b15801561089157600080fd5b505af11580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c99190611713565b905083156108dd576108dd86303387610f6d565b82156108ef576108ef85303386610f6d565b83821115610910576000848303905061090e87308a6040015184610f6d565b505b82811115610931576000838203905061092f86308a6040015184610f6d565b505b5050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a1357600080fd5b505afa158015610a27573d6000803e3d6000fd5b505050506040513d6020811015610a3d57600080fd5b5051905082811015610ab057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610ac157610ac184838361114b565b50505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310610b3e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b01565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610ba0576040519150601f19603f3d011682016040523d82523d6000602084013e610ba5565b606091505b505090508061057857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610c5757600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527f6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e260d5808301919091528251808303909101815260f5909101909152805191012090565b6000610d578383610c15565b90503373ffffffffffffffffffffffffffffffffffffffff821614610d7b57600080fd5b92915050565b80820182811015610d7b57600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b60208310610e6657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610e29565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610ec8576040519150601f19603f3d011682016040523d82523d6000602084013e610ecd565b606091505b5091509150818015610efb575080511580610efb5750808060200190516020811015610ef857600080fd5b50515b610f6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5341000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610fc85750804710155b15611111577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561103557600080fd5b505af1158015611049573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110df57600080fd5b505af11580156110f3573d6000803e3d6000fd5b505050506040513d602081101561110957600080fd5b50610ac19050565b73ffffffffffffffffffffffffffffffffffffffff831630141561113f5761113a84838361114b565b610ac1565b610ac184848484611320565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b6020831061122057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016111e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611282576040519150601f19603f3d011682016040523d82523d6000602084013e611287565b606091505b50915091508180156112b55750805115806112b557508080602001905160208110156112b257600080fd5b50515b610f6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b602083106113fd57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016113c0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461145f576040519150601f19603f3d011682016040523d82523d6000602084013e611464565b606091505b5091509150818015611492575080511580611492575080806020019051602081101561148f57600080fd5b50515b6114fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461152957600080fd5b919050565b803562ffffff8116811461152957600080fd5b600080600060608486031215611555578283fd5b61155e84611505565b92506020840135915061157360408501611505565b90509250925092565b600081830361010081121561158f578182fd5b6040805160c0810167ffffffffffffffff82821081831117156115ae57fe5b81845286358352602087013560208401526115ca848801611505565b8484015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0860112156115fd578586fd5b83519450606085019150848210818311171561161557fe5b50825261162460608601611505565b835261163260808601611505565b602084015261164360a0860161152e565b8284015282606082015261165960c0860161152e565b608082015261166a60e0860161152e565b60a082015295945050505050565b600060e08284031215611689578081fd5b60405160e0810181811067ffffffffffffffff821117156116a657fe5b6040526116b283611505565b81526116c060208401611505565b60208201526116d16040840161152e565b604082015260608301356060820152608083013560808201526116f660a0840161152e565b60a082015261170760c0840161152e565b60c08201529392505050565b600060208284031215611724578081fd5b5051919050565b6000806040838503121561173d578182fd5b8235915061174d60208401611505565b90509250929050565b6000806000806060858703121561176b578081fd5b8435935060208501359250604085013567ffffffffffffffff80821115611790578283fd5b818701915087601f8301126117a3578283fd5b8135818111156117b1578384fd5b8860208285010111156117c2578384fd5b95989497505060200194505050565b62ffffff169052565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8616825260208581840152846040840152608060608401528351806080850152825b818110156118505785810183015185820160a001528201611834565b81811115611861578360a083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160a0019695505050505050565b60006101008201905073ffffffffffffffffffffffffffffffffffffffff80845116835280602085015116602084015262ffffff60408501511660408401528060608501511660608401526080840151608084015260a084015160a084015260c084015160c08401528060e08501511660e08401525092915050565b6000610100820190508251825260208301516020830152604083015173ffffffffffffffffffffffffffffffffffffffff8082166040850152606085015191508082511660608501528060208301511660808501525062ffffff60408201511660a084015250608083015161198c60c08401826117d1565b5060a083015161199f60e08401826117d1565b509291505056fea164736f6c6343000706000a",
  "deployedBytecode": "0x60806040526004361061009a5760003560e01c8063a1d4833611610069578063c45a01551161004e578063c45a0155146101e5578063d5f39488146101fa578063df2ab5bb1461020f57610145565b8063a1d48336146101b0578063c31c9c07146101d057610145565b806312210e8a1461014a5780632384463b1461015257806349404b7c146101725780634aa4a4fc1461018557610145565b36610145573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461014357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b610143610222565b34801561015e57600080fd5b5061014361016d366004611678565b610234565b61014361018036600461172b565b6103b7565b34801561019157600080fd5b5061019a61057d565b6040516101a791906117da565b60405180910390f35b3480156101bc57600080fd5b506101436101cb366004611756565b6105a1565b3480156101dc57600080fd5b5061019a61093e565b3480156101f157600080fd5b5061019a610962565b34801561020657600080fd5b5061019a610986565b61014361021d366004611541565b6109aa565b4715610232576102323347610ac7565b565b60006040518060600160405280836000015173ffffffffffffffffffffffffffffffffffffffff168152602001836020015173ffffffffffffffffffffffffffffffffffffffff168152602001836040015162ffffff16815250905060006102bc7f000000000000000000000000000000000000000000000000000000000000000083610c15565b90508073ffffffffffffffffffffffffffffffffffffffff1663490e6cbc30856060015186608001516040518060c0016040528089606001518152602001896080015181526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018960a0015162ffffff1681526020018960c0015162ffffff168152506040516020016103529190611914565b6040516020818303038152906040526040518563ffffffff1660e01b815260040161038094939291906117fb565b600060405180830381600087803b15801561039a57600080fd5b505af11580156103ae573d6000803e3d6000fd5b50505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561044057600080fd5b505afa158015610454573d6000803e3d6000fd5b505050506040513d602081101561046a57600080fd5b50519050828110156104dd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b8015610578577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561055657600080fd5b505af115801561056a573d6000803e3d6000fd5b505050506105788282610ac7565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006105af8284018461157c565b90506105df7f00000000000000000000000000000000000000000000000000000000000000008260600151610d4b565b506060810151805160209091015182516000906105fc9089610d81565b9050600061060e856020015189610d81565b905061063f837f00000000000000000000000000000000000000000000000000000000000000008760200151610d91565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663414bf3896040518061010001604052808773ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff168152602001896080015162ffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff16815260200142815260200189602001518152602001868152602001600073ffffffffffffffffffffffffffffffffffffffff168152506040518263ffffffff1660e01b81526004016107399190611898565b602060405180830381600087803b15801561075357600080fd5b505af1158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b9190611713565b90506107bc857f00000000000000000000000000000000000000000000000000000000000000008860000151610d91565b604080516101008101825273ffffffffffffffffffffffffffffffffffffffff8781168252868116602083015260a08981015162ffffff168385015230606084015242608084015289519083015260c08201859052600060e0830181905292517f414bf3890000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169163414bf389916108779190600401611898565b602060405180830381600087803b15801561089157600080fd5b505af11580156108a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c99190611713565b905083156108dd576108dd86303387610f6d565b82156108ef576108ef85303386610f6d565b83821115610910576000848303905061090e87308a6040015184610f6d565b505b82811115610931576000838203905061092f86308a6040015184610f6d565b505b5050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a1357600080fd5b505afa158015610a27573d6000803e3d6000fd5b505050506040513d6020811015610a3d57600080fd5b5051905082811015610ab057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610ac157610ac184838361114b565b50505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310610b3e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b01565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610ba0576040519150601f19603f3d011682016040523d82523d6000602084013e610ba5565b606091505b505090508061057857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610c5757600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527f6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e260d5808301919091528251808303909101815260f5909101909152805191012090565b6000610d578383610c15565b90503373ffffffffffffffffffffffffffffffffffffffff821614610d7b57600080fd5b92915050565b80820182811015610d7b57600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b60208310610e6657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610e29565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610ec8576040519150601f19603f3d011682016040523d82523d6000602084013e610ecd565b606091505b5091509150818015610efb575080511580610efb5750808060200190516020811015610ef857600080fd5b50515b610f6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5341000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610fc85750804710155b15611111577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561103557600080fd5b505af1158015611049573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156110df57600080fd5b505af11580156110f3573d6000803e3d6000fd5b505050506040513d602081101561110957600080fd5b50610ac19050565b73ffffffffffffffffffffffffffffffffffffffff831630141561113f5761113a84838361114b565b610ac1565b610ac184848484611320565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b6020831061122057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016111e3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611282576040519150601f19603f3d011682016040523d82523d6000602084013e611287565b606091505b50915091508180156112b55750805115806112b557508080602001905160208110156112b257600080fd5b50515b610f6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b602083106113fd57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016113c0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461145f576040519150601f19603f3d011682016040523d82523d6000602084013e611464565b606091505b5091509150818015611492575080511580611492575080806020019051602081101561148f57600080fd5b50515b6114fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461152957600080fd5b919050565b803562ffffff8116811461152957600080fd5b600080600060608486031215611555578283fd5b61155e84611505565b92506020840135915061157360408501611505565b90509250925092565b600081830361010081121561158f578182fd5b6040805160c0810167ffffffffffffffff82821081831117156115ae57fe5b81845286358352602087013560208401526115ca848801611505565b8484015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0860112156115fd578586fd5b83519450606085019150848210818311171561161557fe5b50825261162460608601611505565b835261163260808601611505565b602084015261164360a0860161152e565b8284015282606082015261165960c0860161152e565b608082015261166a60e0860161152e565b60a082015295945050505050565b600060e08284031215611689578081fd5b60405160e0810181811067ffffffffffffffff821117156116a657fe5b6040526116b283611505565b81526116c060208401611505565b60208201526116d16040840161152e565b604082015260608301356060820152608083013560808201526116f660a0840161152e565b60a082015261170760c0840161152e565b60c08201529392505050565b600060208284031215611724578081fd5b5051919050565b6000806040838503121561173d578182fd5b8235915061174d60208401611505565b90509250929050565b6000806000806060858703121561176b578081fd5b8435935060208501359250604085013567ffffffffffffffff80821115611790578283fd5b818701915087601f8301126117a3578283fd5b8135818111156117b1578384fd5b8860208285010111156117c2578384fd5b95989497505060200194505050565b62ffffff169052565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8616825260208581840152846040840152608060608401528351806080850152825b818110156118505785810183015185820160a001528201611834565b81811115611861578360a083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160a0019695505050505050565b60006101008201905073ffffffffffffffffffffffffffffffffffffffff80845116835280602085015116602084015262ffffff60408501511660408401528060608501511660608401526080840151608084015260a084015160a084015260c084015160c08401528060e08501511660e08401525092915050565b6000610100820190508251825260208301516020830152604083015173ffffffffffffffffffffffffffffffffffffffff8082166040850152606085015191508082511660608501528060208301511660808501525062ffffff60408201511660a084015250608083015161198c60c08401826117d1565b5060a083015161199f60e08401826117d1565b509291505056fea164736f6c6343000706000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
