{
  "_format": "hh-sol-artifact-1",
  "contractName": "TestAlgebraReentrantCallee",
  "sourceName": "contracts/test/TestAlgebraReentrantCallee.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        },
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "algebraSwapCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "beforeCreatePoolHook",
      "outputs": [
        {
          "internalType": "address",
          "name": "plugin",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_factory",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_tokenA",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_tokenB",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "createCustomPool",
      "outputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        }
      ],
      "name": "swapToReenter",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tokenA",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tokenB",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50611693806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80635f64b55b1161005b5780635f64b55b146100d9578063819dbd89146100ec578063c22a2bfe146100ff578063c45a01551461011257600080fd5b80630fc63d10146100825780631d0338d9146100b15780632c8958f6146100c4575b600080fd5b600154610095906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100956100bf36600461110b565b610125565b6100d76100d23660046111ac565b610156565b005b600254610095906001600160a01b031681565b6100956100fa3660046111ff565b610f29565b6100d761010d36600461127b565b610f91565b600054610095906001600160a01b031681565b6000805460015460025461014a926001600160a01b039081169281169116868661102e565b50979650505050505050565b6000336001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610196573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ba91906112b6565b6040805160008082526020820192839052630251596160e31b909252919250339163128acb08916101f5918190600190829060248101611317565b60408051808303816000875af192505050801561022f575060408051601f3d908101601f1916820190925261022c9181019061135c565b60015b6102ae573d80801561025d576040519150601f19603f3d011682016040523d82523d6000602084013e610262565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61029482611380565b6001600160e01b031916146102a857600080fd5b506102b1565b50505b6040805160008082526020820192839052639e4e022760e01b9092523391639e4e0227916102ec9190819081906001908290602481016113b7565b60408051808303816000875af1925050508015610326575060408051601f3d908101601f191682019092526103239181019061135c565b60015b6103a5573d808015610354576040519150601f19603f3d011682016040523d82523d6000602084013e610359565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61038b82611380565b6001600160e01b0319161461039f57600080fd5b506103a8565b50505b60408051600080825260208201928390526302abf8a760e61b909252339163aafe29c0916103e3919081908190879060649060248101611405565b6060604051808303816000875af192505050801561041e575060408051601f3d908101601f1916820190925261041b9181019061147b565b60015b61049d573d80801561044c576040519150601f19603f3d011682016040523d82523d6000602084013e610451565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61048382611380565b6001600160e01b0319161461049757600080fd5b506104a1565b5050505b6040516309e3d67b60e31b815260006004820181905260248201819052604482018190526064820181905260848201523390634f1eb3d89060a40160408051808303816000875af1925050508015610516575060408051601f3d908101601f19168201909252610513918101906114b0565b60015b610595573d808015610544576040519150601f19603f3d011682016040523d82523d6000602084013e610549565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61057b82611380565b6001600160e01b0319161461058f57600080fd5b50610598565b50505b6040805160008082526020820192839052631d9de38760e11b9092523391633b3bc70e916105ce919085908290602481016114e3565b60408051808303816000875af1925050508015610608575060408051601f3d908101601f191682019092526106059181019061135c565b60015b610687573d808015610636576040519150601f19603f3d011682016040523d82523d6000602084013e61063b565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61066d82611380565b6001600160e01b0319161461068157600080fd5b5061068a565b50505b60408051600080825260208201928390526312439b2f60e21b909252339163490e6cbc916106c091908190819060248101611520565b600060405180830381600087803b1580156106da57600080fd5b505af19250505080156106eb575060015b610766573d808015610719576040519150601f19603f3d011682016040523d82523d6000602084013e61071e565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61075082611380565b6001600160e01b0319161461076457600080fd5b505b60405163120543ad60e11b8152600a6004820152339063240a875a90602401600060405180830381600087803b15801561079f57600080fd5b505af19250505080156107b0575060015b61082b573d8080156107de576040519150601f19603f3d011682016040523d82523d6000602084013e6107e3565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61081582611380565b6001600160e01b0319161461082957600080fd5b505b604051630f085a6160e41b815260146004820152339063f085a61090602401600060405180830381600087803b15801561086457600080fd5b505af1925050508015610875575060015b6108f0573d8080156108a3576040519150601f19603f3d011682016040523d82523d6000602084013e6108a8565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b6108da82611380565b6001600160e01b031916146108ee57600080fd5b505b60405163cc1f97cf60e01b8152306004820152339063cc1f97cf90602401600060405180830381600087803b15801561092857600080fd5b505af1925050508015610939575060015b6109b4573d808015610967576040519150601f19603f3d011682016040523d82523d6000602084013e61096c565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61099e82611380565b6001600160e01b031916146109b257600080fd5b505b60405163bca57f8160e01b815260016004820152339063bca57f8190602401600060405180830381600087803b1580156109ed57600080fd5b505af19250505080156109fe575060015b610a79573d808015610a2c576040519150601f19603f3d011682016040523d82523d6000602084013e610a31565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610a6382611380565b6001600160e01b03191614610a7757600080fd5b505b604051638e00555360e01b8152607860048201523390638e00555390602401600060405180830381600087803b158015610ab257600080fd5b505af1925050508015610ac3575060015b610b3e573d808015610af1576040519150601f19603f3d011682016040523d82523d6000602084013e610af6565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610b2882611380565b6001600160e01b03191614610b3c57600080fd5b505b60405163d8544cf360e01b8152306004820152339063d8544cf390602401600060405180830381600087803b158015610b7657600080fd5b505af1925050508015610b87575060015b610c02573d808015610bb5576040519150601f19603f3d011682016040523d82523d6000602084013e610bba565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610bec82611380565b6001600160e01b03191614610c0057600080fd5b505b336001600160a01b03166397ce1c516040518163ffffffff1660e01b815260040160e060405180830381865afa925050508015610c5c575060408051601f3d908101601f19168201909252610c599181019061154e565b60015b610cdb573d808015610c8a576040519150601f19603f3d011682016040523d82523d6000602084013e610c8f565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610cc182611380565b6001600160e01b03191614610cd557600080fd5b50610ce3565b505050505050505b336001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d1e57600080fd5b505af1925050508015610d2f575060015b610daa573d808015610d5d576040519150601f19603f3d011682016040523d82523d6000602084013e610d62565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610d9482611380565b6001600160e01b03191614610da857600080fd5b505b336001600160a01b0316631dd19cb46040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610de557600080fd5b505af1925050508015610df6575060015b610e71573d808015610e24576040519150601f19603f3d011682016040523d82523d6000602084013e610e29565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610e5b82611380565b6001600160e01b03191614610e6f57600080fd5b505b336001600160a01b0316638380edb76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed391906115e8565b15610edd57600080fd5b60405162461bcd60e51b815260206004820152601160248201527f556e61626c6520746f207265656e746572000000000000000000000000000000604482015260640160405180910390fd5b600080546001600160a01b038088167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316178355600180548883169084161790556002805491871691909216179055610f87868686868661102e565b9695505050505050565b6040805160008082526020820192839052630251596160e31b9092526001600160a01b0383169163128acb0891610fe79190819060019073fffd8963efd1fc6a506488495d951d5263988d259060248101611317565b60408051808303816000875af1158015611005573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611029919061135c565b505050565b6040516336efcf6d60e21b81526000906001600160a01b0387169063dbbf3db49061106790309033908a908a908a908a9060040161160a565b6020604051808303816000875af1158015611086573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f879190611669565b6001600160a01b03811681146110bf57600080fd5b50565b60008083601f8401126110d457600080fd5b50813567ffffffffffffffff8111156110ec57600080fd5b60208301915083602082850101111561110457600080fd5b9250929050565b600080600080600080600060c0888a03121561112657600080fd5b8735611131816110aa565b96506020880135611141816110aa565b95506040880135611151816110aa565b94506060880135611161816110aa565b93506080880135611171816110aa565b925060a088013567ffffffffffffffff81111561118d57600080fd5b6111998a828b016110c2565b989b979a50959850939692959293505050565b600080600080606085870312156111c257600080fd5b8435935060208501359250604085013567ffffffffffffffff8111156111e757600080fd5b6111f3878288016110c2565b95989497509550505050565b60008060008060006080868803121561121757600080fd5b8535611222816110aa565b94506020860135611232816110aa565b93506040860135611242816110aa565b9250606086013567ffffffffffffffff81111561125e57600080fd5b61126a888289016110c2565b969995985093965092949392505050565b60006020828403121561128d57600080fd5b8135611298816110aa565b9392505050565b8051600281900b81146112b157600080fd5b919050565b6000602082840312156112c857600080fd5b6112988261129f565b6000815180845260005b818110156112f7576020818501810151868301820152016112db565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160a01b038088168352861515602084015285604084015280851660608401525060a0608083015261135160a08301846112d1565b979650505050505050565b6000806040838503121561136f57600080fd5b505080516020909101519092909150565b805160208201516001600160e01b031980821692919060048310156113af5780818460040360031b1b83161693505b505050919050565b60006001600160a01b0380891683528088166020840152861515604084015285606084015280851660808401525060c060a08301526113f960c08301846112d1565b98975050505050505050565b60006001600160a01b0380891683528088166020840152508560020b60408301528460020b60608301526fffffffffffffffffffffffffffffffff8416608083015260c060a08301526113f960c08301846112d1565b80516fffffffffffffffffffffffffffffffff811681146112b157600080fd5b60008060006060848603121561149057600080fd5b83519250602084015191506114a76040850161145b565b90509250925092565b600080604083850312156114c357600080fd5b6114cc8361145b565b91506114da6020840161145b565b90509250929050565b8460020b81528360020b60208201526fffffffffffffffffffffffffffffffff83166040820152608060608201526000610f8760808301846112d1565b6001600160a01b0385168152836020820152826040820152608060608201526000610f8760808301846112d1565b600080600080600080600060e0888a03121561156957600080fd5b8751611574816110aa565b96506115826020890161129f565b9550604088015161ffff8116811461159957600080fd5b606089015190955060ff811681146115b057600080fd5b93506115be6080890161145b565b92506115cc60a0890161129f565b91506115da60c0890161129f565b905092959891949750929550565b6000602082840312156115fa57600080fd5b8151801515811461129857600080fd5b60006001600160a01b0380891683528088166020840152808716604084015280861660608401525060a060808301528260a0830152828460c0840137600060c0848401015260c0601f19601f8501168301019050979650505050505050565b60006020828403121561167b57600080fd5b8151611298816110aa56fea164736f6c6343000814000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80635f64b55b1161005b5780635f64b55b146100d9578063819dbd89146100ec578063c22a2bfe146100ff578063c45a01551461011257600080fd5b80630fc63d10146100825780631d0338d9146100b15780632c8958f6146100c4575b600080fd5b600154610095906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100956100bf36600461110b565b610125565b6100d76100d23660046111ac565b610156565b005b600254610095906001600160a01b031681565b6100956100fa3660046111ff565b610f29565b6100d761010d36600461127b565b610f91565b600054610095906001600160a01b031681565b6000805460015460025461014a926001600160a01b039081169281169116868661102e565b50979650505050505050565b6000336001600160a01b031663d0c93a7c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610196573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ba91906112b6565b6040805160008082526020820192839052630251596160e31b909252919250339163128acb08916101f5918190600190829060248101611317565b60408051808303816000875af192505050801561022f575060408051601f3d908101601f1916820190925261022c9181019061135c565b60015b6102ae573d80801561025d576040519150601f19603f3d011682016040523d82523d6000602084013e610262565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61029482611380565b6001600160e01b031916146102a857600080fd5b506102b1565b50505b6040805160008082526020820192839052639e4e022760e01b9092523391639e4e0227916102ec9190819081906001908290602481016113b7565b60408051808303816000875af1925050508015610326575060408051601f3d908101601f191682019092526103239181019061135c565b60015b6103a5573d808015610354576040519150601f19603f3d011682016040523d82523d6000602084013e610359565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61038b82611380565b6001600160e01b0319161461039f57600080fd5b506103a8565b50505b60408051600080825260208201928390526302abf8a760e61b909252339163aafe29c0916103e3919081908190879060649060248101611405565b6060604051808303816000875af192505050801561041e575060408051601f3d908101601f1916820190925261041b9181019061147b565b60015b61049d573d80801561044c576040519150601f19603f3d011682016040523d82523d6000602084013e610451565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61048382611380565b6001600160e01b0319161461049757600080fd5b506104a1565b5050505b6040516309e3d67b60e31b815260006004820181905260248201819052604482018190526064820181905260848201523390634f1eb3d89060a40160408051808303816000875af1925050508015610516575060408051601f3d908101601f19168201909252610513918101906114b0565b60015b610595573d808015610544576040519150601f19603f3d011682016040523d82523d6000602084013e610549565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61057b82611380565b6001600160e01b0319161461058f57600080fd5b50610598565b50505b6040805160008082526020820192839052631d9de38760e11b9092523391633b3bc70e916105ce919085908290602481016114e3565b60408051808303816000875af1925050508015610608575060408051601f3d908101601f191682019092526106059181019061135c565b60015b610687573d808015610636576040519150601f19603f3d011682016040523d82523d6000602084013e61063b565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61066d82611380565b6001600160e01b0319161461068157600080fd5b5061068a565b50505b60408051600080825260208201928390526312439b2f60e21b909252339163490e6cbc916106c091908190819060248101611520565b600060405180830381600087803b1580156106da57600080fd5b505af19250505080156106eb575060015b610766573d808015610719576040519150601f19603f3d011682016040523d82523d6000602084013e61071e565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61075082611380565b6001600160e01b0319161461076457600080fd5b505b60405163120543ad60e11b8152600a6004820152339063240a875a90602401600060405180830381600087803b15801561079f57600080fd5b505af19250505080156107b0575060015b61082b573d8080156107de576040519150601f19603f3d011682016040523d82523d6000602084013e6107e3565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61081582611380565b6001600160e01b0319161461082957600080fd5b505b604051630f085a6160e41b815260146004820152339063f085a61090602401600060405180830381600087803b15801561086457600080fd5b505af1925050508015610875575060015b6108f0573d8080156108a3576040519150601f19603f3d011682016040523d82523d6000602084013e6108a8565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b6108da82611380565b6001600160e01b031916146108ee57600080fd5b505b60405163cc1f97cf60e01b8152306004820152339063cc1f97cf90602401600060405180830381600087803b15801561092857600080fd5b505af1925050508015610939575060015b6109b4573d808015610967576040519150601f19603f3d011682016040523d82523d6000602084013e61096c565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b61099e82611380565b6001600160e01b031916146109b257600080fd5b505b60405163bca57f8160e01b815260016004820152339063bca57f8190602401600060405180830381600087803b1580156109ed57600080fd5b505af19250505080156109fe575060015b610a79573d808015610a2c576040519150601f19603f3d011682016040523d82523d6000602084013e610a31565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610a6382611380565b6001600160e01b03191614610a7757600080fd5b505b604051638e00555360e01b8152607860048201523390638e00555390602401600060405180830381600087803b158015610ab257600080fd5b505af1925050508015610ac3575060015b610b3e573d808015610af1576040519150601f19603f3d011682016040523d82523d6000602084013e610af6565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610b2882611380565b6001600160e01b03191614610b3c57600080fd5b505b60405163d8544cf360e01b8152306004820152339063d8544cf390602401600060405180830381600087803b158015610b7657600080fd5b505af1925050508015610b87575060015b610c02573d808015610bb5576040519150601f19603f3d011682016040523d82523d6000602084013e610bba565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610bec82611380565b6001600160e01b03191614610c0057600080fd5b505b336001600160a01b03166397ce1c516040518163ffffffff1660e01b815260040160e060405180830381865afa925050508015610c5c575060408051601f3d908101601f19168201909252610c599181019061154e565b60015b610cdb573d808015610c8a576040519150601f19603f3d011682016040523d82523d6000602084013e610c8f565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610cc182611380565b6001600160e01b03191614610cd557600080fd5b50610ce3565b505050505050505b336001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610d1e57600080fd5b505af1925050508015610d2f575060015b610daa573d808015610d5d576040519150601f19603f3d011682016040523d82523d6000602084013e610d62565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610d9482611380565b6001600160e01b03191614610da857600080fd5b505b336001600160a01b0316631dd19cb46040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610de557600080fd5b505af1925050508015610df6575060015b610e71573d808015610e24576040519150601f19603f3d011682016040523d82523d6000602084013e610e29565b606091505b506040805180820190915260088152676c6f636b6564282960c01b602090910152636798480960e11b610e5b82611380565b6001600160e01b03191614610e6f57600080fd5b505b336001600160a01b0316638380edb76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed391906115e8565b15610edd57600080fd5b60405162461bcd60e51b815260206004820152601160248201527f556e61626c6520746f207265656e746572000000000000000000000000000000604482015260640160405180910390fd5b600080546001600160a01b038088167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316178355600180548883169084161790556002805491871691909216179055610f87868686868661102e565b9695505050505050565b6040805160008082526020820192839052630251596160e31b9092526001600160a01b0383169163128acb0891610fe79190819060019073fffd8963efd1fc6a506488495d951d5263988d259060248101611317565b60408051808303816000875af1158015611005573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611029919061135c565b505050565b6040516336efcf6d60e21b81526000906001600160a01b0387169063dbbf3db49061106790309033908a908a908a908a9060040161160a565b6020604051808303816000875af1158015611086573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f879190611669565b6001600160a01b03811681146110bf57600080fd5b50565b60008083601f8401126110d457600080fd5b50813567ffffffffffffffff8111156110ec57600080fd5b60208301915083602082850101111561110457600080fd5b9250929050565b600080600080600080600060c0888a03121561112657600080fd5b8735611131816110aa565b96506020880135611141816110aa565b95506040880135611151816110aa565b94506060880135611161816110aa565b93506080880135611171816110aa565b925060a088013567ffffffffffffffff81111561118d57600080fd5b6111998a828b016110c2565b989b979a50959850939692959293505050565b600080600080606085870312156111c257600080fd5b8435935060208501359250604085013567ffffffffffffffff8111156111e757600080fd5b6111f3878288016110c2565b95989497509550505050565b60008060008060006080868803121561121757600080fd5b8535611222816110aa565b94506020860135611232816110aa565b93506040860135611242816110aa565b9250606086013567ffffffffffffffff81111561125e57600080fd5b61126a888289016110c2565b969995985093965092949392505050565b60006020828403121561128d57600080fd5b8135611298816110aa565b9392505050565b8051600281900b81146112b157600080fd5b919050565b6000602082840312156112c857600080fd5b6112988261129f565b6000815180845260005b818110156112f7576020818501810151868301820152016112db565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160a01b038088168352861515602084015285604084015280851660608401525060a0608083015261135160a08301846112d1565b979650505050505050565b6000806040838503121561136f57600080fd5b505080516020909101519092909150565b805160208201516001600160e01b031980821692919060048310156113af5780818460040360031b1b83161693505b505050919050565b60006001600160a01b0380891683528088166020840152861515604084015285606084015280851660808401525060c060a08301526113f960c08301846112d1565b98975050505050505050565b60006001600160a01b0380891683528088166020840152508560020b60408301528460020b60608301526fffffffffffffffffffffffffffffffff8416608083015260c060a08301526113f960c08301846112d1565b80516fffffffffffffffffffffffffffffffff811681146112b157600080fd5b60008060006060848603121561149057600080fd5b83519250602084015191506114a76040850161145b565b90509250925092565b600080604083850312156114c357600080fd5b6114cc8361145b565b91506114da6020840161145b565b90509250929050565b8460020b81528360020b60208201526fffffffffffffffffffffffffffffffff83166040820152608060608201526000610f8760808301846112d1565b6001600160a01b0385168152836020820152826040820152608060608201526000610f8760808301846112d1565b600080600080600080600060e0888a03121561156957600080fd5b8751611574816110aa565b96506115826020890161129f565b9550604088015161ffff8116811461159957600080fd5b606089015190955060ff811681146115b057600080fd5b93506115be6080890161145b565b92506115cc60a0890161129f565b91506115da60c0890161129f565b905092959891949750929550565b6000602082840312156115fa57600080fd5b8151801515811461129857600080fd5b60006001600160a01b0380891683528088166020840152808716604084015280861660608401525060a060808301528260a0830152828460c0840137600060c0848401015260c0601f19601f8501168301019050979650505050505050565b60006020828403121561167b57600080fd5b8151611298816110aa56fea164736f6c6343000814000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
