{
  "_format": "hh-sol-artifact-1",
  "contractName": "RouterForKeeper",
  "sourceName": "contracts/core/RouterForKeeper.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "pairFactory_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_WETH",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "Deposit",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "DepositETH",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "Withdraw",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "WithdrawETH",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "WETH",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "routerToExecute",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "trader",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "baseToken",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "quoteToken",
              "type": "address"
            },
            {
              "internalType": "uint8",
              "name": "side",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "quoteAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "limitPrice",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "autoWithdraw",
              "type": "bool"
            },
            {
              "internalType": "bytes",
              "name": "nonce",
              "type": "bytes"
            }
          ],
          "internalType": "struct IOrderBook.ClosePositionOrder",
          "name": "order",
          "type": "tuple"
        }
      ],
      "name": "closePosition",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "baseAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "withdrawAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "baseToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "deposit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "depositETH",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "baseToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "quoteToken",
          "type": "address"
        }
      ],
      "name": "getSpotPriceWithMultiplier",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "spotPriceWithMultiplier",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "baseDecimal",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "quoteDecimal",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "routerToExecute",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "trader",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "baseToken",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "quoteToken",
              "type": "address"
            },
            {
              "internalType": "uint8",
              "name": "side",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "baseAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "quoteAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "slippage",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "limitPrice",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "withWallet",
              "type": "bool"
            },
            {
              "internalType": "bytes",
              "name": "nonce",
              "type": "bytes"
            }
          ],
          "internalType": "struct IOrderBook.OpenPositionOrder",
          "name": "order",
          "type": "tuple"
        },
        {
          "internalType": "uint256",
          "name": "slippageRatio",
          "type": "uint256"
        }
      ],
      "name": "openPositionWithMargin",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "baseAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "routerToExecute",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "trader",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "baseToken",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "quoteToken",
              "type": "address"
            },
            {
              "internalType": "uint8",
              "name": "side",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "baseAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "quoteAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "slippage",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "limitPrice",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "withWallet",
              "type": "bool"
            },
            {
              "internalType": "bytes",
              "name": "nonce",
              "type": "bytes"
            }
          ],
          "internalType": "struct IOrderBook.OpenPositionOrder",
          "name": "order",
          "type": "tuple"
        },
        {
          "internalType": "uint256",
          "name": "slippageRatio",
          "type": "uint256"
        }
      ],
      "name": "openPositionWithWallet",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "baseAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pairFactory",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "baseToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "withdrawETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60c06040523480156200001157600080fd5b506040516200255338038062002553833981016040819052620000349162000070565b6001600160601b0319606092831b8116608052911b1660a052620000a7565b80516001600160a01b03811681146200006b57600080fd5b919050565b6000806040838503121562000083578182fd5b6200008e8362000053565b91506200009e6020840162000053565b90509250929050565b60805160601c60a05160601c61243b620001186000396000818160b0015281816101fa0152818161054d015281816105c7015281816106640152818161071e01526107a00152600081816102860152818161030d0152818161087601528181610d7b01526113bb015261243b6000f3fe6080604052600436106100a05760003560e01c8063a779aaee11610064578063a779aaee146101b3578063ad5c4648146101e8578063c37457af14610234578063d9caed1214610254578063e14f870d14610274578063f7888aec146102a8576100ed565b8063250db48c146100f25780632d2da806146101325780634782f7791461014557806376fe0aab146101655780638340f54914610193576100ed565b366100ed57336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100eb57634e487b7160e01b600052600160045260246000fd5b005b600080fd5b3480156100fe57600080fd5b5061011261010d366004611d3f565b6102dd565b604080519384526020840192909252908201526060015b60405180910390f35b6100eb610140366004611d07565b610546565b34801561015157600080fd5b506100eb610160366004611db7565b61065a565b34801561017157600080fd5b50610185610180366004611f3b565b61081a565b604051908152602001610129565b34801561019f57600080fd5b506100eb6101ae366004611d77565b610c88565b3480156101bf57600080fd5b506101d36101ce366004611e43565b610d1f565b60408051928352602083019190915201610129565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610129565b34801561024057600080fd5b5061018561024f366004611f3b565b61135f565b34801561026057600080fd5b506100eb61026f366004611d77565b611682565b34801561028057600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102b457600080fd5b506101856102c3366004611d3f565b600060208181529281526040808220909352908152205481565b6040516365cc7a1d60e01b81526001600160a01b03838116600483015282811660248301526000918291829182917f000000000000000000000000000000000000000000000000000000000000000016906365cc7a1d9060440160206040518083038186803b15801561034f57600080fd5b505afa158015610363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103879190611d23565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156103c557600080fd5b505afa1580156103d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fd9190612053565b506001600160701b031691506001600160701b031691506000886001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561044f57600080fd5b505afa158015610463573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048791906120a1565b60ff1690506000886001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156104c757600080fd5b505afa1580156104db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ff91906120a1565b60ff1690506000816105128460126121c3565b61051c919061236d565b61052790600a612241565b90506105348185876117a5565b98509196509450505050509250925092565b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156105a657600080fd5b505af11580156105ba573d6000803e3d6000fd5b5050506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600090815260208181526040808320938816835292905290812080548594509092506106159084906121c3565b90915550506040517f54237c2539b0cb27d4d97aecc62a697c61df2720a0437c589acc1acb98117d819061064e903390859085906120f6565b60405180910390a15050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260208181526040808320338452909152902054808211156107085760405162461bcd60e51b815260206004820152602e60248201527f526f75746572466f724b65657065722e77697468647261774554483a20494e5360448201526d0aa8c8c9286928a9ca8beae8aa8960931b60648201526084015b60405180910390fd5b604051632e1a7d4d60e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561076a57600080fd5b505af115801561077e573d6000803e3d6000fd5b5050505061078c838361185a565b610796828261236d565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152602081815260408083203380855292529182902092909255517f6b1f4ce962fec27598edceab6195c77516c3df32025eaf0c38d0d4009ac3bd489161080d91869086906120f6565b60405180910390a1505050565b6000826101200151428110156108425760405162461bcd60e51b81526004016106ff9061211a565b604084810151606086015191516306dac30160e11b81526001600160a01b03918216600482015291811660248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690630db586029060440160206040518083038186803b1580156108ba57600080fd5b505afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f29190611d23565b90506001600160a01b03811661095e5760405162461bcd60e51b815260206004820152603860248201526000805160206123e683398151915260448201527f57616c6c65743a204e4f545f464f554e445f4d415247494e000000000000000060648201526084016106ff565b608085015160ff1615806109795750846080015160ff166001145b6109d05760405162461bcd60e51b815260206004820152603460248201526000805160206123e683398151915260448201527357616c6c65743a20494e56414c49445f5349444560601b60648201526084016106ff565b6040808601516001600160a01b0390811660009081526020818152838220818a0151909316825291909152205460a0860151811015610a655760405162461bcd60e51b815260206004820152603c60248201526000805160206123e683398151915260448201527f57616c6c65743a204e4f5f53554646494349454e545f4d415247494e0000000060648201526084016106ff565b610a788660400151838860a00151611939565b60a0860151610a87908261236d565b6040878101516001600160a01b0390811660009081526020818152838220818c0180518516845291529083902093909355915160a0890151915163cf70cb6960e01b8152908316600482015260248101919091529083169063cf70cb6990604401600060405180830381600087803b158015610b0257600080fd5b505af1158015610b16573d6000803e3d6000fd5b505050506020860151608087015160c088015160405163d67fb55360e01b81526001600160a01b03938416600482015260ff909216602483015260448201529083169063d67fb55390606401602060405180830381600087803b158015610b7c57600080fd5b505af1158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb49190611dfe565b9350856080015160ff16600014610bef57838660c00151670de0b6b3a7640000610bde919061230f565b610be891906121db565b8511610c15565b838660c00151670de0b6b3a7640000610c08919061230f565b610c1291906121db565b85105b610c7f5760405162461bcd60e51b815260206004820152604160248201526000805160206123e683398151915260448201527f57616c6c65743a20494e53554646494349454e545f51554f54455f414d4f554e6064820152601560fa1b608482015260a4016106ff565b50505092915050565b610c9483333084611a6a565b6001600160a01b0380841660009081526020818152604080832093861683529290529081208054839290610cc99084906121c3565b9091555050604080516001600160a01b038086168252336020830152841691810191909152606081018290527f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969060800161080d565b6000808260e0015142811015610d475760405162461bcd60e51b81526004016106ff9061211a565b604084810151606086015191516306dac30160e11b81526001600160a01b03918216600482015291811660248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690630db586029060440160206040518083038186803b158015610dbf57600080fd5b505afa158015610dd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df79190611d23565b90506001600160a01b038116610e675760405162461bcd60e51b815260206004820152602f60248201527f526f75746572466f724b65657065722e636c6f7365506f736974696f6e3a204e60448201526e27aa2fa327aaa7222fa6a0a923a4a760891b60648201526084016106ff565b60208501516040516316c1973960e01b81526001600160a01b0391821660048201526000918316906316c197399060240160606040518083038186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee89190611e16565b5091505060008113610f0257608086015160ff1615610f0e565b856080015160ff166001145b610f705760405162461bcd60e51b815260206004820152602d60248201527f526f75746572466f724b65657065722e636c6f7365506f736974696f6e3a205360448201526c092888abe9c9ea8be9a82a8869609b1b60648201526084016106ff565b85610100015161101b57602086015160a0870151604051630e85fc3f60e31b81526001600160a01b0385169263742fe1f892610fc2926004016001600160a01b03929092168252602082015260400190565b602060405180830381600087803b158015610fdc57600080fd5b505af1158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110149190611dfe565b9450611357565b602086015160a0870151604051630e85fc3f60e31b81526001600160a01b0385169263742fe1f892611063926004016001600160a01b03929092168252602082015260400190565b602060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b59190611dfe565b60208701516040516316c1973960e01b81526001600160a01b03918216600482015291965060009182918291908616906316c197399060240160606040518083038186803b15801561110657600080fd5b505afa15801561111a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e9190611e16565b60208c015160405163ee4424e560e01b81526001600160a01b03918216600482015293965091945092506000919087169063ee4424e59060240160206040518083038186803b15801561119057600080fd5b505afa1580156111a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c89190611dfe565b90506000808412156111f057816111df8685611ba4565b6111e99190612182565b9050611208565b816111fb8685611bf2565b6112059190612182565b90505b61121186611c40565b61121a85611c40565b61122383611c40565b61122d919061230f565b61123791906121db565b61124082611c40565b61124a919061236d565b60208c0151604051631966357360e11b81526001600160a01b039182166004820152919a5060009650881694506332cc6ae69350602401915061128a9050565b60206040518083038186803b1580156112a257600080fd5b505afa1580156112b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112da9190611dfe565b9050848110156112e8578094505b841561135557602087015160405163a8fe8f8160e01b81526001600160a01b0385169163a8fe8f8191611322919081908a906004016120f6565b600060405180830381600087803b15801561133c57600080fd5b505af1158015611350573d6000803e3d6000fd5b505050505b505b505050915091565b6000826101200151428110156113875760405162461bcd60e51b81526004016106ff9061211a565b604084810151606086015191516306dac30160e11b81526001600160a01b03918216600482015291811660248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690630db586029060440160206040518083038186803b1580156113ff57600080fd5b505afa158015611413573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114379190611d23565b90506001600160a01b0381166114a35760405162461bcd60e51b815260206004820152603860248201526000805160206123e683398151915260448201527f4d617267696e3a204e4f545f464f554e445f4d415247494e000000000000000060648201526084016106ff565b608085015160ff1615806114be5750846080015160ff166001145b6115155760405162461bcd60e51b815260206004820152603460248201526000805160206123e68339815191526044820152734d617267696e3a20494e56414c49445f5349444560601b60648201526084016106ff565b6020850151608086015160c087015160405163d67fb55360e01b81526001600160a01b03938416600482015260ff909216602483015260448201529082169063d67fb55390606401602060405180830381600087803b15801561157757600080fd5b505af115801561158b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115af9190611dfe565b9250846080015160ff166000146115ea57828560c00151670de0b6b3a76400006115d9919061230f565b6115e391906121db565b8411611610565b828560c00151670de0b6b3a7640000611603919061230f565b61160d91906121db565b84105b61167a5760405162461bcd60e51b815260206004820152604160248201526000805160206123e683398151915260448201527f4d617267696e3a20494e53554646494349454e545f51554f54455f414d4f554e6064820152601560fa1b608482015260a4016106ff565b505092915050565b6001600160a01b0383166000908152602081815260408083203384529091529020548082111561170e5760405162461bcd60e51b815260206004820152603160248201527f526f75746572466f724b65657065722e77697468647261773a20494e5355464660448201527024a1a4a2a72a2fa120a9a2afaa27a5a2a760791b60648201526084016106ff565b611719848484611939565b6001600160a01b0384166000908152602081815260408083203384529091528120805484929061174a90849061236d565b9091555050604080516001600160a01b0386811682523360208301528516818301526060810184905290517f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f79181900360800190a150505050565b6000808060001985870985870292508281108382030391505080600014156117df57600084116117d457600080fd5b508290049050611853565b8084116117eb57600080fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b604080516000808252602082019092526001600160a01b03841690839060405161188491906120bd565b60006040518083038185875af1925050503d80600081146118c1576040519150601f19603f3d011682016040523d82523d6000602084013e6118c6565b606091505b50509050806119345760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b60648201526084016106ff565b505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161199591906120bd565b6000604051808303816000865af19150503d80600081146119d2576040519150601f19603f3d011682016040523d82523d6000602084013e6119d7565b606091505b5091509150818015611a01575080511580611a01575080806020019051810190611a019190611de2565b611a635760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016106ff565b5050505050565b600080856001600160a01b03166323b872dd868686604051602401611a91939291906120f6565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611aca91906120bd565b6000604051808303816000865af19150503d8060008114611b07576040519150601f19603f3d011682016040523d82523d6000602084013e611b0c565b606091505b5091509150818015611b36575080511580611b36575080806020019051810190611b369190611de2565b611b9c5760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b60648201526084016106ff565b505050505050565b60006001600160ff1b03821115611be85760405162461bcd60e51b81526020600482015260086024820152676f766572666c6f7760c01b60448201526064016106ff565b611853828461232e565b60006001600160ff1b03821115611c365760405162461bcd60e51b81526020600482015260086024820152676f766572666c6f7760c01b60448201526064016106ff565b6118538284612182565b600080821215611c5c57611c5582600061232e565b9050611c5f565b50805b919050565b8035611c5f816123b0565b8035611c5f816123c8565b600082601f830112611c8a578081fd5b813567ffffffffffffffff811115611ca457611ca461239a565b611cb7601f8201601f1916602001612151565b818152846020838601011115611ccb578283fd5b816020850160208301379081016020019190915292915050565b80516001600160701b0381168114611c5f57600080fd5b8035611c5f816123d6565b600060208284031215611d18578081fd5b8135611853816123b0565b600060208284031215611d34578081fd5b8151611853816123b0565b60008060408385031215611d51578081fd5b8235611d5c816123b0565b91506020830135611d6c816123b0565b809150509250929050565b600080600060608486031215611d8b578081fd5b8335611d96816123b0565b92506020840135611da6816123b0565b929592945050506040919091013590565b60008060408385031215611dc9578182fd5b8235611dd4816123b0565b946020939093013593505050565b600060208284031215611df3578081fd5b8151611853816123c8565b600060208284031215611e0f578081fd5b5051919050565b600080600060608486031215611e2a578283fd5b8351925060208401519150604084015190509250925092565b600060208284031215611e54578081fd5b813567ffffffffffffffff80821115611e6b578283fd5b8184019150610140808387031215611e81578384fd5b611e8a81612151565b9050611e9583611c64565b8152611ea360208401611c64565b6020820152611eb460408401611c64565b6040820152611ec560608401611c64565b6060820152611ed660808401611cfc565b608082015260a083013560a082015260c083013560c082015260e083013560e0820152610100611f07818501611c6f565b908201526101208381013583811115611f1e578586fd5b611f2a88828701611c7a565b918301919091525095945050505050565b60008060408385031215611f4d578182fd5b823567ffffffffffffffff80821115611f64578384fd5b8185019150610180808388031215611f7a578485fd5b611f8381612151565b9050611f8e83611c64565b8152611f9c60208401611c64565b6020820152611fad60408401611c64565b6040820152611fbe60608401611c64565b6060820152611fcf60808401611cfc565b608082015260a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250610140612018818501611c6f565b90820152610160838101358381111561202f578687fd5b61203b89828701611c7a565b91830191909152509660209590950135955050505050565b600080600060608486031215612067578081fd5b61207084611ce5565b925061207e60208501611ce5565b9150604084015163ffffffff81168114612096578182fd5b809150509250925092565b6000602082840312156120b2578081fd5b8151611853816123d6565b60008251815b818110156120dd57602081860181015185830152016120c3565b818111156120eb5782828501525b509190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208082526018908201527f526f75746572466f724b65657065723a20455850495245440000000000000000604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561217a5761217a61239a565b604052919050565b600080821280156001600160ff1b03849003851316156121a4576121a4612384565b600160ff1b83900384128116156121bd576121bd612384565b50500190565b600082198211156121d6576121d6612384565b500190565b6000826121f657634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161220d5750612238565b81870482111561221f5761221f612384565b8086161561222c57918102915b9490941c9380026121fe565b94509492505050565b6000611853600019848460008261225a57506001611853565b8161226757506000611853565b816001811461227d5760028114612287576122b4565b6001915050611853565b60ff84111561229857612298612384565b6001841b9150848211156122ae576122ae612384565b50611853565b5060208310610133831016604e8410600b84101617156122e7575081810a838111156122e2576122e2612384565b611853565b6122f484848460016121fb565b80860482111561230657612306612384565b02949350505050565b600081600019048311821515161561232957612329612384565b500290565b60008083128015600160ff1b85018412161561234c5761234c612384565b6001600160ff1b038401831381161561236757612367612384565b50500390565b60008282101561237f5761237f612384565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146123c557600080fd5b50565b80151581146123c557600080fd5b60ff811681146123c557600080fdfe526f75746572466f724b65657065722e6f70656e506f736974696f6e57697468a2646970667358221220843d70deae972f7fbfb8587d8b636f26a604d58015b23d3d148160b420b5970664736f6c63430008020033",
  "deployedBytecode": "0x6080604052600436106100a05760003560e01c8063a779aaee11610064578063a779aaee146101b3578063ad5c4648146101e8578063c37457af14610234578063d9caed1214610254578063e14f870d14610274578063f7888aec146102a8576100ed565b8063250db48c146100f25780632d2da806146101325780634782f7791461014557806376fe0aab146101655780638340f54914610193576100ed565b366100ed57336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100eb57634e487b7160e01b600052600160045260246000fd5b005b600080fd5b3480156100fe57600080fd5b5061011261010d366004611d3f565b6102dd565b604080519384526020840192909252908201526060015b60405180910390f35b6100eb610140366004611d07565b610546565b34801561015157600080fd5b506100eb610160366004611db7565b61065a565b34801561017157600080fd5b50610185610180366004611f3b565b61081a565b604051908152602001610129565b34801561019f57600080fd5b506100eb6101ae366004611d77565b610c88565b3480156101bf57600080fd5b506101d36101ce366004611e43565b610d1f565b60408051928352602083019190915201610129565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610129565b34801561024057600080fd5b5061018561024f366004611f3b565b61135f565b34801561026057600080fd5b506100eb61026f366004611d77565b611682565b34801561028057600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102b457600080fd5b506101856102c3366004611d3f565b600060208181529281526040808220909352908152205481565b6040516365cc7a1d60e01b81526001600160a01b03838116600483015282811660248301526000918291829182917f000000000000000000000000000000000000000000000000000000000000000016906365cc7a1d9060440160206040518083038186803b15801561034f57600080fd5b505afa158015610363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103879190611d23565b9050600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156103c557600080fd5b505afa1580156103d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fd9190612053565b506001600160701b031691506001600160701b031691506000886001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561044f57600080fd5b505afa158015610463573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048791906120a1565b60ff1690506000886001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156104c757600080fd5b505afa1580156104db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ff91906120a1565b60ff1690506000816105128460126121c3565b61051c919061236d565b61052790600a612241565b90506105348185876117a5565b98509196509450505050509250925092565b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156105a657600080fd5b505af11580156105ba573d6000803e3d6000fd5b5050506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600090815260208181526040808320938816835292905290812080548594509092506106159084906121c3565b90915550506040517f54237c2539b0cb27d4d97aecc62a697c61df2720a0437c589acc1acb98117d819061064e903390859085906120f6565b60405180910390a15050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260208181526040808320338452909152902054808211156107085760405162461bcd60e51b815260206004820152602e60248201527f526f75746572466f724b65657065722e77697468647261774554483a20494e5360448201526d0aa8c8c9286928a9ca8beae8aa8960931b60648201526084015b60405180910390fd5b604051632e1a7d4d60e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561076a57600080fd5b505af115801561077e573d6000803e3d6000fd5b5050505061078c838361185a565b610796828261236d565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166000908152602081815260408083203380855292529182902092909255517f6b1f4ce962fec27598edceab6195c77516c3df32025eaf0c38d0d4009ac3bd489161080d91869086906120f6565b60405180910390a1505050565b6000826101200151428110156108425760405162461bcd60e51b81526004016106ff9061211a565b604084810151606086015191516306dac30160e11b81526001600160a01b03918216600482015291811660248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690630db586029060440160206040518083038186803b1580156108ba57600080fd5b505afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f29190611d23565b90506001600160a01b03811661095e5760405162461bcd60e51b815260206004820152603860248201526000805160206123e683398151915260448201527f57616c6c65743a204e4f545f464f554e445f4d415247494e000000000000000060648201526084016106ff565b608085015160ff1615806109795750846080015160ff166001145b6109d05760405162461bcd60e51b815260206004820152603460248201526000805160206123e683398151915260448201527357616c6c65743a20494e56414c49445f5349444560601b60648201526084016106ff565b6040808601516001600160a01b0390811660009081526020818152838220818a0151909316825291909152205460a0860151811015610a655760405162461bcd60e51b815260206004820152603c60248201526000805160206123e683398151915260448201527f57616c6c65743a204e4f5f53554646494349454e545f4d415247494e0000000060648201526084016106ff565b610a788660400151838860a00151611939565b60a0860151610a87908261236d565b6040878101516001600160a01b0390811660009081526020818152838220818c0180518516845291529083902093909355915160a0890151915163cf70cb6960e01b8152908316600482015260248101919091529083169063cf70cb6990604401600060405180830381600087803b158015610b0257600080fd5b505af1158015610b16573d6000803e3d6000fd5b505050506020860151608087015160c088015160405163d67fb55360e01b81526001600160a01b03938416600482015260ff909216602483015260448201529083169063d67fb55390606401602060405180830381600087803b158015610b7c57600080fd5b505af1158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb49190611dfe565b9350856080015160ff16600014610bef57838660c00151670de0b6b3a7640000610bde919061230f565b610be891906121db565b8511610c15565b838660c00151670de0b6b3a7640000610c08919061230f565b610c1291906121db565b85105b610c7f5760405162461bcd60e51b815260206004820152604160248201526000805160206123e683398151915260448201527f57616c6c65743a20494e53554646494349454e545f51554f54455f414d4f554e6064820152601560fa1b608482015260a4016106ff565b50505092915050565b610c9483333084611a6a565b6001600160a01b0380841660009081526020818152604080832093861683529290529081208054839290610cc99084906121c3565b9091555050604080516001600160a01b038086168252336020830152841691810191909152606081018290527f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969060800161080d565b6000808260e0015142811015610d475760405162461bcd60e51b81526004016106ff9061211a565b604084810151606086015191516306dac30160e11b81526001600160a01b03918216600482015291811660248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690630db586029060440160206040518083038186803b158015610dbf57600080fd5b505afa158015610dd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df79190611d23565b90506001600160a01b038116610e675760405162461bcd60e51b815260206004820152602f60248201527f526f75746572466f724b65657065722e636c6f7365506f736974696f6e3a204e60448201526e27aa2fa327aaa7222fa6a0a923a4a760891b60648201526084016106ff565b60208501516040516316c1973960e01b81526001600160a01b0391821660048201526000918316906316c197399060240160606040518083038186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee89190611e16565b5091505060008113610f0257608086015160ff1615610f0e565b856080015160ff166001145b610f705760405162461bcd60e51b815260206004820152602d60248201527f526f75746572466f724b65657065722e636c6f7365506f736974696f6e3a205360448201526c092888abe9c9ea8be9a82a8869609b1b60648201526084016106ff565b85610100015161101b57602086015160a0870151604051630e85fc3f60e31b81526001600160a01b0385169263742fe1f892610fc2926004016001600160a01b03929092168252602082015260400190565b602060405180830381600087803b158015610fdc57600080fd5b505af1158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110149190611dfe565b9450611357565b602086015160a0870151604051630e85fc3f60e31b81526001600160a01b0385169263742fe1f892611063926004016001600160a01b03929092168252602082015260400190565b602060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b59190611dfe565b60208701516040516316c1973960e01b81526001600160a01b03918216600482015291965060009182918291908616906316c197399060240160606040518083038186803b15801561110657600080fd5b505afa15801561111a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113e9190611e16565b60208c015160405163ee4424e560e01b81526001600160a01b03918216600482015293965091945092506000919087169063ee4424e59060240160206040518083038186803b15801561119057600080fd5b505afa1580156111a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c89190611dfe565b90506000808412156111f057816111df8685611ba4565b6111e99190612182565b9050611208565b816111fb8685611bf2565b6112059190612182565b90505b61121186611c40565b61121a85611c40565b61122383611c40565b61122d919061230f565b61123791906121db565b61124082611c40565b61124a919061236d565b60208c0151604051631966357360e11b81526001600160a01b039182166004820152919a5060009650881694506332cc6ae69350602401915061128a9050565b60206040518083038186803b1580156112a257600080fd5b505afa1580156112b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112da9190611dfe565b9050848110156112e8578094505b841561135557602087015160405163a8fe8f8160e01b81526001600160a01b0385169163a8fe8f8191611322919081908a906004016120f6565b600060405180830381600087803b15801561133c57600080fd5b505af1158015611350573d6000803e3d6000fd5b505050505b505b505050915091565b6000826101200151428110156113875760405162461bcd60e51b81526004016106ff9061211a565b604084810151606086015191516306dac30160e11b81526001600160a01b03918216600482015291811660248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690630db586029060440160206040518083038186803b1580156113ff57600080fd5b505afa158015611413573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114379190611d23565b90506001600160a01b0381166114a35760405162461bcd60e51b815260206004820152603860248201526000805160206123e683398151915260448201527f4d617267696e3a204e4f545f464f554e445f4d415247494e000000000000000060648201526084016106ff565b608085015160ff1615806114be5750846080015160ff166001145b6115155760405162461bcd60e51b815260206004820152603460248201526000805160206123e68339815191526044820152734d617267696e3a20494e56414c49445f5349444560601b60648201526084016106ff565b6020850151608086015160c087015160405163d67fb55360e01b81526001600160a01b03938416600482015260ff909216602483015260448201529082169063d67fb55390606401602060405180830381600087803b15801561157757600080fd5b505af115801561158b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115af9190611dfe565b9250846080015160ff166000146115ea57828560c00151670de0b6b3a76400006115d9919061230f565b6115e391906121db565b8411611610565b828560c00151670de0b6b3a7640000611603919061230f565b61160d91906121db565b84105b61167a5760405162461bcd60e51b815260206004820152604160248201526000805160206123e683398151915260448201527f4d617267696e3a20494e53554646494349454e545f51554f54455f414d4f554e6064820152601560fa1b608482015260a4016106ff565b505092915050565b6001600160a01b0383166000908152602081815260408083203384529091529020548082111561170e5760405162461bcd60e51b815260206004820152603160248201527f526f75746572466f724b65657065722e77697468647261773a20494e5355464660448201527024a1a4a2a72a2fa120a9a2afaa27a5a2a760791b60648201526084016106ff565b611719848484611939565b6001600160a01b0384166000908152602081815260408083203384529091528120805484929061174a90849061236d565b9091555050604080516001600160a01b0386811682523360208301528516818301526060810184905290517f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f79181900360800190a150505050565b6000808060001985870985870292508281108382030391505080600014156117df57600084116117d457600080fd5b508290049050611853565b8084116117eb57600080fd5b600084868809851960019081018716968790049682860381900495909211909303600082900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b604080516000808252602082019092526001600160a01b03841690839060405161188491906120bd565b60006040518083038185875af1925050503d80600081146118c1576040519150601f19603f3d011682016040523d82523d6000602084013e6118c6565b606091505b50509050806119345760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527308115512081d1c985b9cd9995c8819985a5b195960621b60648201526084016106ff565b505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161199591906120bd565b6000604051808303816000865af19150503d80600081146119d2576040519150601f19603f3d011682016040523d82523d6000602084013e6119d7565b606091505b5091509150818015611a01575080511580611a01575080806020019051810190611a019190611de2565b611a635760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016106ff565b5050505050565b600080856001600160a01b03166323b872dd868686604051602401611a91939291906120f6565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611aca91906120bd565b6000604051808303816000865af19150503d8060008114611b07576040519150601f19603f3d011682016040523d82523d6000602084013e611b0c565b606091505b5091509150818015611b36575080511580611b36575080806020019051810190611b369190611de2565b611b9c5760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b60648201526084016106ff565b505050505050565b60006001600160ff1b03821115611be85760405162461bcd60e51b81526020600482015260086024820152676f766572666c6f7760c01b60448201526064016106ff565b611853828461232e565b60006001600160ff1b03821115611c365760405162461bcd60e51b81526020600482015260086024820152676f766572666c6f7760c01b60448201526064016106ff565b6118538284612182565b600080821215611c5c57611c5582600061232e565b9050611c5f565b50805b919050565b8035611c5f816123b0565b8035611c5f816123c8565b600082601f830112611c8a578081fd5b813567ffffffffffffffff811115611ca457611ca461239a565b611cb7601f8201601f1916602001612151565b818152846020838601011115611ccb578283fd5b816020850160208301379081016020019190915292915050565b80516001600160701b0381168114611c5f57600080fd5b8035611c5f816123d6565b600060208284031215611d18578081fd5b8135611853816123b0565b600060208284031215611d34578081fd5b8151611853816123b0565b60008060408385031215611d51578081fd5b8235611d5c816123b0565b91506020830135611d6c816123b0565b809150509250929050565b600080600060608486031215611d8b578081fd5b8335611d96816123b0565b92506020840135611da6816123b0565b929592945050506040919091013590565b60008060408385031215611dc9578182fd5b8235611dd4816123b0565b946020939093013593505050565b600060208284031215611df3578081fd5b8151611853816123c8565b600060208284031215611e0f578081fd5b5051919050565b600080600060608486031215611e2a578283fd5b8351925060208401519150604084015190509250925092565b600060208284031215611e54578081fd5b813567ffffffffffffffff80821115611e6b578283fd5b8184019150610140808387031215611e81578384fd5b611e8a81612151565b9050611e9583611c64565b8152611ea360208401611c64565b6020820152611eb460408401611c64565b6040820152611ec560608401611c64565b6060820152611ed660808401611cfc565b608082015260a083013560a082015260c083013560c082015260e083013560e0820152610100611f07818501611c6f565b908201526101208381013583811115611f1e578586fd5b611f2a88828701611c7a565b918301919091525095945050505050565b60008060408385031215611f4d578182fd5b823567ffffffffffffffff80821115611f64578384fd5b8185019150610180808388031215611f7a578485fd5b611f8381612151565b9050611f8e83611c64565b8152611f9c60208401611c64565b6020820152611fad60408401611c64565b6040820152611fbe60608401611c64565b6060820152611fcf60808401611cfc565b608082015260a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250610140612018818501611c6f565b90820152610160838101358381111561202f578687fd5b61203b89828701611c7a565b91830191909152509660209590950135955050505050565b600080600060608486031215612067578081fd5b61207084611ce5565b925061207e60208501611ce5565b9150604084015163ffffffff81168114612096578182fd5b809150509250925092565b6000602082840312156120b2578081fd5b8151611853816123d6565b60008251815b818110156120dd57602081860181015185830152016120c3565b818111156120eb5782828501525b509190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60208082526018908201527f526f75746572466f724b65657065723a20455850495245440000000000000000604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561217a5761217a61239a565b604052919050565b600080821280156001600160ff1b03849003851316156121a4576121a4612384565b600160ff1b83900384128116156121bd576121bd612384565b50500190565b600082198211156121d6576121d6612384565b500190565b6000826121f657634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161220d5750612238565b81870482111561221f5761221f612384565b8086161561222c57918102915b9490941c9380026121fe565b94509492505050565b6000611853600019848460008261225a57506001611853565b8161226757506000611853565b816001811461227d5760028114612287576122b4565b6001915050611853565b60ff84111561229857612298612384565b6001841b9150848211156122ae576122ae612384565b50611853565b5060208310610133831016604e8410600b84101617156122e7575081810a838111156122e2576122e2612384565b611853565b6122f484848460016121fb565b80860482111561230657612306612384565b02949350505050565b600081600019048311821515161561232957612329612384565b500290565b60008083128015600160ff1b85018412161561234c5761234c612384565b6001600160ff1b038401831381161561236757612367612384565b50500390565b60008282101561237f5761237f612384565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146123c557600080fd5b50565b80151581146123c557600080fd5b60ff811681146123c557600080fdfe526f75746572466f724b65657065722e6f70656e506f736974696f6e57697468a2646970667358221220843d70deae972f7fbfb8587d8b636f26a604d58015b23d3d148160b420b5970664736f6c63430008020033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
