{
  "_format": "hh-sol-artifact-1",
  "contractName": "ClusterAttributeArea",
  "sourceName": "contracts/V3/ClusterAttributeArea.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "attrId",
          "type": "uint32"
        }
      ],
      "name": "SetClusterAttr",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "attrId",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "state",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "newState",
          "type": "uint8"
        }
      ],
      "name": "SetClusterAttrState",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "attrId",
          "type": "uint32"
        }
      ],
      "name": "SetTokenAttr",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "attrId",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "state",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "newState",
          "type": "uint8"
        }
      ],
      "name": "SetTokenAttrState",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "attribute",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "attrId",
          "type": "uint32"
        },
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "symbol",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        },
        {
          "internalType": "uint8",
          "name": "level",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "attributeIdList",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "attributeState",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "cname",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        }
      ],
      "name": "getAttrState",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "getClusterAttrIdList",
      "outputs": [
        {
          "internalType": "uint32[]",
          "name": "",
          "type": "uint32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint32[]",
          "name": "attrIdList",
          "type": "uint32[]"
        }
      ],
      "name": "getClusterAttrList",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "attrId",
              "type": "uint32"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "symbol",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "uri",
              "type": "string"
            },
            {
              "internalType": "uint8",
              "name": "level",
              "type": "uint8"
            }
          ],
          "internalType": "struct Attribute.Attribute[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint32[]",
          "name": "attrIdList",
          "type": "uint32[]"
        }
      ],
      "name": "getClusterAttrStateList",
      "outputs": [
        {
          "internalType": "uint8[]",
          "name": "",
          "type": "uint8[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "clusterArea_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "poolContract_",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "engine_",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint32[]",
          "name": "attrIdList",
          "type": "uint32[]"
        },
        {
          "internalType": "uint8[]",
          "name": "stateList",
          "type": "uint8[]"
        }
      ],
      "name": "setClusterAttrStateList",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "attrId",
              "type": "uint32"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "symbol",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "uri",
              "type": "string"
            },
            {
              "internalType": "uint8",
              "name": "level",
              "type": "uint8"
            }
          ],
          "internalType": "struct Attribute.Attribute[]",
          "name": "attrList",
          "type": "tuple[]"
        },
        {
          "internalType": "uint8[]",
          "name": "attrStateList",
          "type": "uint8[]"
        }
      ],
      "name": "updateClusterAttrList",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5061274e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100c55760003560e01c8063023947ff146100ca5780632b729548146101045780632c618d881461012457806334c76b251461014c5780634abbcd0b146101825780634e58f811146101975780634fa2a891146101b757806354fd4d50146101db578063715018a6146101ea5780638c91c7a7146101f25780638da5cb5b14610215578063c0c53b8b1461022e578063c51046aa14610241578063e48c779014610261578063f2fde38b14610274575b600080fd5b6100ed6100d8366004611dca565b606c6020526000908152604090205460ff1681565b60405160ff90911681526020015b60405180910390f35b610117610112366004611f14565b610287565b6040516100fb9190611f73565b610137610132366004611fba565b610391565b60405163ffffffff90911681526020016100fb565b6040805180820182526014815273436c75737465724174747269627574654172656160601b602082015290516100fb9190612034565b610195610190366004612130565b6103da565b005b6101aa6101a53660046122f2565b610b46565b6040516100fb9190612329565b6101ca6101c5366004611dca565b610bff565b6040516100fb959493929190612367565b604051600181526020016100fb565b610195610dd0565b6100ed610200366004611dca565b6000908152606c602052604090205460ff1690565b6033546001600160a01b03166040516100fb91906123c2565b61019561023c3660046123d6565b610de4565b61025461024f366004611f14565b610f3d565b6040516100fb9190612421565b61019561026f3660046124e1565b6112d3565b610195610282366004612567565b611951565b6060600082516001600160401b038111156102a4576102a4611e11565b6040519080825280602002602001820160405280156102cd578160200160208202803683370190505b50905060005b83518110156103885760006001600160a01b0386166103165761030f8786848151811061030257610302612584565b60200260200101516119ca565b905061033c565b6103398686848151811061032c5761032c612584565b6020026020010151611a09565b90505b6000818152606c6020526040902054835160ff9091169084908490811061036557610365612584565b60ff9092166020928302919091019091015250610381816125b0565b90506102d3565b50949350505050565b606a60205281600052604060002081815481106103ad57600080fd5b9060005260206000209060089182820401919006600402915091509054906101000a900463ffffffff1681565b63ffffffff841615610500576067546001600160a01b0316336001600160a01b0316148061048657506067546001600160a01b031663f1a12e66856002336040518463ffffffff1660e01b8152600401610436939291906125cb565b60206040518083038186803b15801561044e57600080fd5b505afa158015610462573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048691906125f5565b6104fb5760405162461bcd60e51b815260206004820152603b60248201527f63616c6c20757064617465436c7573746572417474724c697374206d7573742060448201527a31b63ab9ba32b920b932b09037b91031b63ab9ba32b920b236b4b760291b60648201526084015b60405180910390fd5b610679565b6001600160a01b0383166105685760405162461bcd60e51b815260206004820152602960248201527f63616c6c20757064617465436c7573746572417474724c69737420746f6b656e604482015268206e6f74207a65726f60b81b60648201526084016104f2565b6067546001600160a01b0316331480610607575060695460405163b9caf9d960e01b815233916001600160a01b03169063b9caf9d9906105ac9087906004016123c2565b60206040518083038186803b1580156105c457600080fd5b505afa1580156105d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fc9190612617565b6001600160a01b0316145b6106795760405162461bcd60e51b815260206004820152603e60248201527f63616c6c20757064617465546f6b656e417474724c697374206d75737420636c60448201527f757374657241726561206f7220636f6e7472616374206465706c6f796572000060648201526084016104f2565b80518251146106fb5760405162461bcd60e51b815260206004820152604260248201527f757064617465436c7573746572417474724c697374206d75737420617474724c60448201527f6973742e6c656e677468203d3d206174747253746174654c6973742e6c656e676064820152610e8d60f31b608482015260a4016104f2565b60008463ffffffff16118061071857506001600160a01b03831615155b6107995760405162461bcd60e51b815260206004820152604660248201527f757064617465436c7573746572417474724c697374206d75737420617474725360448201527f746174654c6973742e6c656e677468203d3d2061747472547970654c6973742e6064820152650d8cadccee8d60d31b608482015260a4016104f2565b60006001600160a01b0384166107b9576107b285611a35565b90506107c5565b6107c284611a6b565b90505b6000818152606a60205260408120905b84518161ffff161015610b3c576000858261ffff16815181106107fa576107fa612584565b602002602001015190506000858361ffff168151811061081c5761081c612584565b602002602001015190506000806001600160a01b0316896001600160a01b03161415610857576108508a84600001516119ca565b9050610868565b610865898460000151611a09565b90505b6000818152606c602052604090205460ff16806108bd57835186546001810188556000888152602090206008820401805460079092166004026101000a63ffffffff8181021990931692909316929092021790555b60ff8116600b14156109425760ff8316600c146109425760405162461bcd60e51b815260206004820152603c60248201527f757064617465436c7573746572417474724c697374206d75737420656e61626c60448201527f6520666f726576657220746f2064697361626c6520666f72657665720000000060648201526084016104f2565b60ff8116600c14156109c75760ff8316600b146109c75760405162461bcd60e51b815260206004820152603c60248201527f757064617465436c7573746572417474724c697374206d75737420646973616260448201527f6c6520666f726576657220746f20656e61626c6520666f72657665720000000060648201526084016104f2565b60ff83166001148015906109df575060ff8316600214155b80156109ef575060ff8316600b14155b80156109ff575060ff8316600c14155b15610a575760405162461bcd60e51b815260206004820152602260248201527f5f757064617465417474724c697374206174747253746174652069732077726f6044820152616e6760f01b60648201526084016104f2565b60ff8116600b14801590610a6f575060ff8116600c14155b15610b27576000828152606b602090815260409091208551815463ffffffff191663ffffffff9091161781558582015180518793610ab4926001850192910190611d31565b5060408201518051610ad0916002840191602090910190611d31565b5060608201518051610aec916003840191602090910190611d31565b50608091909101516004909101805460ff1990811660ff938416179091556000848152606c6020526040902080549091169185169190911790555b5050505080610b3590612634565b90506107d5565b5050505050505050565b6060600063ffffffff8416610b6557610b5e83611a6b565b9050610b71565b610b6e84611a35565b90505b6000818152606a602090815260409182902080548351818402810184019094528084529091830182828015610bf157602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610bb45790505b505050505091505092915050565b606b602052600090815260409020805460018201805463ffffffff9092169291610c2890612656565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5490612656565b8015610ca15780601f10610c7657610100808354040283529160200191610ca1565b820191906000526020600020905b815481529060010190602001808311610c8457829003601f168201915b505050505090806002018054610cb690612656565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce290612656565b8015610d2f5780601f10610d0457610100808354040283529160200191610d2f565b820191906000526020600020905b815481529060010190602001808311610d1257829003601f168201915b505050505090806003018054610d4490612656565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7090612656565b8015610dbd5780601f10610d9257610100808354040283529160200191610dbd565b820191906000526020600020905b815481529060010190602001808311610da057829003601f168201915b5050506004909301549192505060ff1685565b610dd8611a7f565b610de26000611ad9565b565b600054610100900460ff1615808015610e045750600054600160ff909116105b80610e1e5750303b158015610e1e575060005460ff166001145b610e815760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104f2565b6000805460ff191660011790558015610ea4576000805461ff0019166101001790555b610eac611b2b565b610eb4611b52565b606680546001600160a01b038085166001600160a01b0319928316179092556067805487841690831617905560698054928616929091169190911790558015610f37576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6060600082516001600160401b03811115610f5a57610f5a611e11565b604051908082528060200260200182016040528015610fc657816020015b610fb36040518060a00160405280600063ffffffff168152602001606081526020016060815260200160608152602001600060ff1681525090565b815260200190600190039081610f785790505b50905060005b83518110156103885760006001600160a01b03861661100257610ffb8786848151811061030257610302612584565b905061101b565b6110188686848151811061032c5761032c612584565b90505b6000818152606c602052604090205460ff166110b45760006110946040518060400160405280601881526020017719d95d105d1d1c88185d1d1c9259081b9bdd08195e1a5cdd60421b81525061108f88868151811061107c5761107c612584565b602002602001015163ffffffff16611b82565b611b93565b906110b25760405162461bcd60e51b81526004016104f29190612034565b505b6000818152606b6020908152604091829020825160a08101909352805463ffffffff16835260018101805491928401916110ed90612656565b80601f016020809104026020016040519081016040528092919081815260200182805461111990612656565b80156111665780601f1061113b57610100808354040283529160200191611166565b820191906000526020600020905b81548152906001019060200180831161114957829003601f168201915b5050505050815260200160028201805461117f90612656565b80601f01602080910402602001604051908101604052809291908181526020018280546111ab90612656565b80156111f85780601f106111cd576101008083540402835291602001916111f8565b820191906000526020600020905b8154815290600101906020018083116111db57829003601f168201915b5050505050815260200160038201805461121190612656565b80601f016020809104026020016040519081016040528092919081815260200182805461123d90612656565b801561128a5780601f1061125f5761010080835404028352916020019161128a565b820191906000526020600020905b81548152906001019060200180831161126d57829003601f168201915b50505091835250506004919091015460ff1660209091015283518490849081106112b6576112b6612584565b602002602001018190525050806112cc906125b0565b9050610fcc565b63ffffffff8416156113cd576067546001600160a01b031663f1a12e66856002336040518463ffffffff1660e01b8152600401611312939291906125cb565b60206040518083038186803b15801561132a57600080fd5b505afa15801561133e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136291906125f5565b6113c85760405162461bcd60e51b815260206004820152603160248201527f63616c6c20736574436c75737465724174747253746174654c697374206d75736044820152703a1031b63ab9ba32b92232b83637bcb2b960791b60648201526084016104f2565b611529565b6001600160a01b0383166114375760405162461bcd60e51b815260206004820152602b60248201527f63616c6c20736574436c75737465724174747253746174654c69737420746f6b60448201526a656e206e6f74207a65726f60a81b60648201526084016104f2565b60695460405163b9caf9d960e01b815233916001600160a01b03169063b9caf9d9906114679087906004016123c2565b60206040518083038186803b15801561147f57600080fd5b505afa158015611493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b79190612617565b6001600160a01b0316146115295760405162461bcd60e51b815260206004820152603360248201527f63616c6c20736574436c75737465724174747253746174654c697374206d75736044820152723a1031b7b73a3930b1ba103232b83637bcb2b960691b60648201526084016104f2565b805182511461159b5760405162461bcd60e51b815260206004820152603860248201527f5f736574417474725374617465206d757374206174747249644c6973742e6c656044820152770dccee8d0407a7a40e6e8c2e8ca98d2e6e85cd8cadccee8d60431b60648201526084016104f2565b60005b825181101561194a5760008060008484815181106115be576115be612584565b6020026020010151905060006001600160a01b0316876001600160a01b03161415611696576115f98887868151811061030257610302612584565b6000818152606c6020526040902054875191945060ff1692507f2da74215db16b29687d84a018b8d7e85c7b8d4df4e9667f256ec4fb53780744a90899088908790811061164857611648612584565b60200260200101518484604051611689949392919063ffffffff948516815292909316602083015260ff908116604083015291909116606082015260800190565b60405180910390a161174b565b6116ac8787868151811061032c5761032c612584565b6000818152606c6020526040902054875191945060ff1692507f16c132abe2752f6eb0e13c5e5ede738de247594e772f234cf2d63acc6262f1239088908890879081106116fb576116fb612584565b6020026020010151848460405161174294939291906001600160a01b0394909416845263ffffffff92909216602084015260ff908116604084015216606082015260800190565b60405180910390a15b60ff821661179b5760405162461bcd60e51b815260206004820152601e60248201527f5f73657441747472537461746520617474724964206e6f74206578697374000060448201526064016104f2565b60ff8216600b14156118175760ff8116600c146118175760405162461bcd60e51b815260206004820152603460248201527f5f736574417474725374617465206d75737420656e61626c6520666f7265766560448201527339103a37903234b9b0b13632903337b932bb32b960611b60648201526084016104f2565b60ff8216600c14156118935760ff8116600b146118935760405162461bcd60e51b815260206004820152603460248201527f5f736574417474725374617465206d7573742064697361626c6520666f72657660448201527332b9103a379032b730b13632903337b932bb32b960611b60648201526084016104f2565b60ff81166001148015906118ab575060ff8116600214155b80156118bb575060ff8116600b14155b80156118cb575060ff8116600c14155b156119185760405162461bcd60e51b815260206004820181905260248201527f5f736574417474725374617465206174747253746174652069732077726f6e6760448201526064016104f2565b6000928352606c6020526040909220805460ff191660ff9093169290921790915550611943816125b0565b905061159e565b5050505050565b611959611a7f565b6001600160a01b0381166119be5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f2565b6119c781611ad9565b50565b6040805163ffffffff80851660208301528316918101919091526000906060015b60405160208183030381529060405280519060200120905092915050565b604080516001600160a01b038416602082015263ffffffff8316918101919091526000906060016119eb565b6040805163ffffffff831660208201526000918291015b60408051601f1981840301815291905280516020909101209392505050565b60008082604051602001611a4c91906123c2565b6033546001600160a01b03163314610de25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610de25760405162461bcd60e51b81526004016104f290612691565b600054610100900460ff16611b795760405162461bcd60e51b81526004016104f290612691565b610de233611ad9565b6060611b8d82611bbf565b92915050565b60608282604051602001611ba89291906126dc565b604051602081830303815290604052905092915050565b60606000611bcc83611c5b565b60010190506000816001600160401b03811115611beb57611beb611e11565b6040519080825280601f01601f191660200182016040528015611c15576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611c4e57611c53565b611c1f565b509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611c9a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310611cc4576904ee2d6d415b85acef8160201b830492506020015b662386f26fc100008310611ce257662386f26fc10000830492506010015b6305f5e1008310611cfa576305f5e100830492506008015b6127108310611d0e57612710830492506004015b60648310611d20576064830492506002015b600a8310611b8d5760010192915050565b828054611d3d90612656565b90600052602060002090601f016020900481019282611d5f5760008555611da5565b82601f10611d7857805160ff1916838001178555611da5565b82800160010185558215611da5579182015b82811115611da5578251825591602001919060010190611d8a565b50611db1929150611db5565b5090565b5b80821115611db15760008155600101611db6565b600060208284031215611ddc57600080fd5b5035919050565b803563ffffffff81168114611df757600080fd5b919050565b6001600160a01b03811681146119c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715611e4957611e49611e11565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611e7757611e77611e11565b604052919050565b60006001600160401b03821115611e9857611e98611e11565b5060051b60200190565b600082601f830112611eb357600080fd5b81356020611ec8611ec383611e7f565b611e4f565b82815260059290921b84018101918181019086841115611ee757600080fd5b8286015b84811015611f0957611efc81611de3565b8352918301918301611eeb565b509695505050505050565b600080600060608486031215611f2957600080fd5b611f3284611de3565b92506020840135611f4281611dfc565b915060408401356001600160401b03811115611f5d57600080fd5b611f6986828701611ea2565b9150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015611fae57835160ff1683529284019291840191600101611f8f565b50909695505050505050565b60008060408385031215611fcd57600080fd5b50508035926020909101359150565b60005b83811015611ff7578181015183820152602001611fdf565b83811115610f375750506000910152565b60008151808452612020816020860160208601611fdc565b601f01601f19169290920160200192915050565b6020815260006120476020830184612008565b9392505050565b600082601f83011261205f57600080fd5b81356001600160401b0381111561207857612078611e11565b61208b601f8201601f1916602001611e4f565b8181528460208386010111156120a057600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611df757600080fd5b600082601f8301126120df57600080fd5b813560206120ef611ec383611e7f565b82815260059290921b8401810191818101908684111561210e57600080fd5b8286015b84811015611f0957612123816120bd565b8352918301918301612112565b600080600080600060a0868803121561214857600080fd5b6121528635611dfc565b8535945061216260208701611de3565b93506121716040870135611dfc565b604086013592506001600160401b03806060880135111561219157600080fd5b6060870135870188601f8201126121a757600080fd5b6121b4611ec38235611e7f565b81358082526020808301929160051b8401018b10156121d257600080fd5b602083015b6020843560051b8501018110156122bf5784813511156121f657600080fd5b8035840160a0818e03601f1901121561220e57600080fd5b612216611e27565b61222260208301611de3565b8152866040830135111561223557600080fd5b6122488e6020604085013585010161204e565b6020820152866060830135111561225e57600080fd5b6122718e6020606085013585010161204e565b6040820152866080830135111561228757600080fd5b61229a8e6020608085013585010161204e565b60608201526122ab60a083016120bd565b6080820152845250602092830192016121d7565b509450505060808701358110156122d557600080fd5b506122e687608088013588016120ce565b90509295509295909350565b6000806040838503121561230557600080fd5b61230e83611de3565b9150602083013561231e81611dfc565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015611fae57835163ffffffff1683529284019291840191600101612345565b63ffffffff8616815260a06020820152600061238660a0830187612008565b82810360408401526123988187612008565b905082810360608401526123ac8186612008565b91505060ff831660808301529695505050505050565b6001600160a01b0391909116815260200190565b6000806000606084860312156123eb57600080fd5b83356123f681611dfc565b9250602084013561240681611dfc565b9150604084013561241681611dfc565b809150509250925092565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156124d357603f19898403018552815160a063ffffffff825116855288820151818a87015261247c82870182612008565b91505087820151858203898701526124948282612008565b915050606080830151868303828801526124ae8382612008565b60809485015160ff169790940196909652505094870194925090860190600101612448565b509098975050505050505050565b600080600080608085870312156124f757600080fd5b61250085611de3565b9350602085013561251081611dfc565b925060408501356001600160401b038082111561252c57600080fd5b61253888838901611ea2565b9350606087013591508082111561254e57600080fd5b5061255b878288016120ce565b91505092959194509250565b60006020828403121561257957600080fd5b813561204781611dfc565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156125c4576125c461259a565b5060010190565b63ffffffff93909316835260ff9190911660208301526001600160a01b0316604082015260600190565b60006020828403121561260757600080fd5b8151801515811461204757600080fd5b60006020828403121561262957600080fd5b815161204781611dfc565b600061ffff8083168181141561264c5761264c61259a565b6001019392505050565b600181811c9082168061266a57607f821691505b6020821081141561268b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600083516126ee818460208801611fdc565b600b60fa1b908301908152835161270c816001840160208801611fdc565b0160010194935050505056fea2646970667358221220bef834936b59a322bc4abdaa51ef1ce1e62d680e5767e5877320710799dc6cf964736f6c63430008080033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c55760003560e01c8063023947ff146100ca5780632b729548146101045780632c618d881461012457806334c76b251461014c5780634abbcd0b146101825780634e58f811146101975780634fa2a891146101b757806354fd4d50146101db578063715018a6146101ea5780638c91c7a7146101f25780638da5cb5b14610215578063c0c53b8b1461022e578063c51046aa14610241578063e48c779014610261578063f2fde38b14610274575b600080fd5b6100ed6100d8366004611dca565b606c6020526000908152604090205460ff1681565b60405160ff90911681526020015b60405180910390f35b610117610112366004611f14565b610287565b6040516100fb9190611f73565b610137610132366004611fba565b610391565b60405163ffffffff90911681526020016100fb565b6040805180820182526014815273436c75737465724174747269627574654172656160601b602082015290516100fb9190612034565b610195610190366004612130565b6103da565b005b6101aa6101a53660046122f2565b610b46565b6040516100fb9190612329565b6101ca6101c5366004611dca565b610bff565b6040516100fb959493929190612367565b604051600181526020016100fb565b610195610dd0565b6100ed610200366004611dca565b6000908152606c602052604090205460ff1690565b6033546001600160a01b03166040516100fb91906123c2565b61019561023c3660046123d6565b610de4565b61025461024f366004611f14565b610f3d565b6040516100fb9190612421565b61019561026f3660046124e1565b6112d3565b610195610282366004612567565b611951565b6060600082516001600160401b038111156102a4576102a4611e11565b6040519080825280602002602001820160405280156102cd578160200160208202803683370190505b50905060005b83518110156103885760006001600160a01b0386166103165761030f8786848151811061030257610302612584565b60200260200101516119ca565b905061033c565b6103398686848151811061032c5761032c612584565b6020026020010151611a09565b90505b6000818152606c6020526040902054835160ff9091169084908490811061036557610365612584565b60ff9092166020928302919091019091015250610381816125b0565b90506102d3565b50949350505050565b606a60205281600052604060002081815481106103ad57600080fd5b9060005260206000209060089182820401919006600402915091509054906101000a900463ffffffff1681565b63ffffffff841615610500576067546001600160a01b0316336001600160a01b0316148061048657506067546001600160a01b031663f1a12e66856002336040518463ffffffff1660e01b8152600401610436939291906125cb565b60206040518083038186803b15801561044e57600080fd5b505afa158015610462573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048691906125f5565b6104fb5760405162461bcd60e51b815260206004820152603b60248201527f63616c6c20757064617465436c7573746572417474724c697374206d7573742060448201527a31b63ab9ba32b920b932b09037b91031b63ab9ba32b920b236b4b760291b60648201526084015b60405180910390fd5b610679565b6001600160a01b0383166105685760405162461bcd60e51b815260206004820152602960248201527f63616c6c20757064617465436c7573746572417474724c69737420746f6b656e604482015268206e6f74207a65726f60b81b60648201526084016104f2565b6067546001600160a01b0316331480610607575060695460405163b9caf9d960e01b815233916001600160a01b03169063b9caf9d9906105ac9087906004016123c2565b60206040518083038186803b1580156105c457600080fd5b505afa1580156105d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fc9190612617565b6001600160a01b0316145b6106795760405162461bcd60e51b815260206004820152603e60248201527f63616c6c20757064617465546f6b656e417474724c697374206d75737420636c60448201527f757374657241726561206f7220636f6e7472616374206465706c6f796572000060648201526084016104f2565b80518251146106fb5760405162461bcd60e51b815260206004820152604260248201527f757064617465436c7573746572417474724c697374206d75737420617474724c60448201527f6973742e6c656e677468203d3d206174747253746174654c6973742e6c656e676064820152610e8d60f31b608482015260a4016104f2565b60008463ffffffff16118061071857506001600160a01b03831615155b6107995760405162461bcd60e51b815260206004820152604660248201527f757064617465436c7573746572417474724c697374206d75737420617474725360448201527f746174654c6973742e6c656e677468203d3d2061747472547970654c6973742e6064820152650d8cadccee8d60d31b608482015260a4016104f2565b60006001600160a01b0384166107b9576107b285611a35565b90506107c5565b6107c284611a6b565b90505b6000818152606a60205260408120905b84518161ffff161015610b3c576000858261ffff16815181106107fa576107fa612584565b602002602001015190506000858361ffff168151811061081c5761081c612584565b602002602001015190506000806001600160a01b0316896001600160a01b03161415610857576108508a84600001516119ca565b9050610868565b610865898460000151611a09565b90505b6000818152606c602052604090205460ff16806108bd57835186546001810188556000888152602090206008820401805460079092166004026101000a63ffffffff8181021990931692909316929092021790555b60ff8116600b14156109425760ff8316600c146109425760405162461bcd60e51b815260206004820152603c60248201527f757064617465436c7573746572417474724c697374206d75737420656e61626c60448201527f6520666f726576657220746f2064697361626c6520666f72657665720000000060648201526084016104f2565b60ff8116600c14156109c75760ff8316600b146109c75760405162461bcd60e51b815260206004820152603c60248201527f757064617465436c7573746572417474724c697374206d75737420646973616260448201527f6c6520666f726576657220746f20656e61626c6520666f72657665720000000060648201526084016104f2565b60ff83166001148015906109df575060ff8316600214155b80156109ef575060ff8316600b14155b80156109ff575060ff8316600c14155b15610a575760405162461bcd60e51b815260206004820152602260248201527f5f757064617465417474724c697374206174747253746174652069732077726f6044820152616e6760f01b60648201526084016104f2565b60ff8116600b14801590610a6f575060ff8116600c14155b15610b27576000828152606b602090815260409091208551815463ffffffff191663ffffffff9091161781558582015180518793610ab4926001850192910190611d31565b5060408201518051610ad0916002840191602090910190611d31565b5060608201518051610aec916003840191602090910190611d31565b50608091909101516004909101805460ff1990811660ff938416179091556000848152606c6020526040902080549091169185169190911790555b5050505080610b3590612634565b90506107d5565b5050505050505050565b6060600063ffffffff8416610b6557610b5e83611a6b565b9050610b71565b610b6e84611a35565b90505b6000818152606a602090815260409182902080548351818402810184019094528084529091830182828015610bf157602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610bb45790505b505050505091505092915050565b606b602052600090815260409020805460018201805463ffffffff9092169291610c2890612656565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5490612656565b8015610ca15780601f10610c7657610100808354040283529160200191610ca1565b820191906000526020600020905b815481529060010190602001808311610c8457829003601f168201915b505050505090806002018054610cb690612656565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce290612656565b8015610d2f5780601f10610d0457610100808354040283529160200191610d2f565b820191906000526020600020905b815481529060010190602001808311610d1257829003601f168201915b505050505090806003018054610d4490612656565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7090612656565b8015610dbd5780601f10610d9257610100808354040283529160200191610dbd565b820191906000526020600020905b815481529060010190602001808311610da057829003601f168201915b5050506004909301549192505060ff1685565b610dd8611a7f565b610de26000611ad9565b565b600054610100900460ff1615808015610e045750600054600160ff909116105b80610e1e5750303b158015610e1e575060005460ff166001145b610e815760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104f2565b6000805460ff191660011790558015610ea4576000805461ff0019166101001790555b610eac611b2b565b610eb4611b52565b606680546001600160a01b038085166001600160a01b0319928316179092556067805487841690831617905560698054928616929091169190911790558015610f37576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6060600082516001600160401b03811115610f5a57610f5a611e11565b604051908082528060200260200182016040528015610fc657816020015b610fb36040518060a00160405280600063ffffffff168152602001606081526020016060815260200160608152602001600060ff1681525090565b815260200190600190039081610f785790505b50905060005b83518110156103885760006001600160a01b03861661100257610ffb8786848151811061030257610302612584565b905061101b565b6110188686848151811061032c5761032c612584565b90505b6000818152606c602052604090205460ff166110b45760006110946040518060400160405280601881526020017719d95d105d1d1c88185d1d1c9259081b9bdd08195e1a5cdd60421b81525061108f88868151811061107c5761107c612584565b602002602001015163ffffffff16611b82565b611b93565b906110b25760405162461bcd60e51b81526004016104f29190612034565b505b6000818152606b6020908152604091829020825160a08101909352805463ffffffff16835260018101805491928401916110ed90612656565b80601f016020809104026020016040519081016040528092919081815260200182805461111990612656565b80156111665780601f1061113b57610100808354040283529160200191611166565b820191906000526020600020905b81548152906001019060200180831161114957829003601f168201915b5050505050815260200160028201805461117f90612656565b80601f01602080910402602001604051908101604052809291908181526020018280546111ab90612656565b80156111f85780601f106111cd576101008083540402835291602001916111f8565b820191906000526020600020905b8154815290600101906020018083116111db57829003601f168201915b5050505050815260200160038201805461121190612656565b80601f016020809104026020016040519081016040528092919081815260200182805461123d90612656565b801561128a5780601f1061125f5761010080835404028352916020019161128a565b820191906000526020600020905b81548152906001019060200180831161126d57829003601f168201915b50505091835250506004919091015460ff1660209091015283518490849081106112b6576112b6612584565b602002602001018190525050806112cc906125b0565b9050610fcc565b63ffffffff8416156113cd576067546001600160a01b031663f1a12e66856002336040518463ffffffff1660e01b8152600401611312939291906125cb565b60206040518083038186803b15801561132a57600080fd5b505afa15801561133e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136291906125f5565b6113c85760405162461bcd60e51b815260206004820152603160248201527f63616c6c20736574436c75737465724174747253746174654c697374206d75736044820152703a1031b63ab9ba32b92232b83637bcb2b960791b60648201526084016104f2565b611529565b6001600160a01b0383166114375760405162461bcd60e51b815260206004820152602b60248201527f63616c6c20736574436c75737465724174747253746174654c69737420746f6b60448201526a656e206e6f74207a65726f60a81b60648201526084016104f2565b60695460405163b9caf9d960e01b815233916001600160a01b03169063b9caf9d9906114679087906004016123c2565b60206040518083038186803b15801561147f57600080fd5b505afa158015611493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b79190612617565b6001600160a01b0316146115295760405162461bcd60e51b815260206004820152603360248201527f63616c6c20736574436c75737465724174747253746174654c697374206d75736044820152723a1031b7b73a3930b1ba103232b83637bcb2b960691b60648201526084016104f2565b805182511461159b5760405162461bcd60e51b815260206004820152603860248201527f5f736574417474725374617465206d757374206174747249644c6973742e6c656044820152770dccee8d0407a7a40e6e8c2e8ca98d2e6e85cd8cadccee8d60431b60648201526084016104f2565b60005b825181101561194a5760008060008484815181106115be576115be612584565b6020026020010151905060006001600160a01b0316876001600160a01b03161415611696576115f98887868151811061030257610302612584565b6000818152606c6020526040902054875191945060ff1692507f2da74215db16b29687d84a018b8d7e85c7b8d4df4e9667f256ec4fb53780744a90899088908790811061164857611648612584565b60200260200101518484604051611689949392919063ffffffff948516815292909316602083015260ff908116604083015291909116606082015260800190565b60405180910390a161174b565b6116ac8787868151811061032c5761032c612584565b6000818152606c6020526040902054875191945060ff1692507f16c132abe2752f6eb0e13c5e5ede738de247594e772f234cf2d63acc6262f1239088908890879081106116fb576116fb612584565b6020026020010151848460405161174294939291906001600160a01b0394909416845263ffffffff92909216602084015260ff908116604084015216606082015260800190565b60405180910390a15b60ff821661179b5760405162461bcd60e51b815260206004820152601e60248201527f5f73657441747472537461746520617474724964206e6f74206578697374000060448201526064016104f2565b60ff8216600b14156118175760ff8116600c146118175760405162461bcd60e51b815260206004820152603460248201527f5f736574417474725374617465206d75737420656e61626c6520666f7265766560448201527339103a37903234b9b0b13632903337b932bb32b960611b60648201526084016104f2565b60ff8216600c14156118935760ff8116600b146118935760405162461bcd60e51b815260206004820152603460248201527f5f736574417474725374617465206d7573742064697361626c6520666f72657660448201527332b9103a379032b730b13632903337b932bb32b960611b60648201526084016104f2565b60ff81166001148015906118ab575060ff8116600214155b80156118bb575060ff8116600b14155b80156118cb575060ff8116600c14155b156119185760405162461bcd60e51b815260206004820181905260248201527f5f736574417474725374617465206174747253746174652069732077726f6e6760448201526064016104f2565b6000928352606c6020526040909220805460ff191660ff9093169290921790915550611943816125b0565b905061159e565b5050505050565b611959611a7f565b6001600160a01b0381166119be5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f2565b6119c781611ad9565b50565b6040805163ffffffff80851660208301528316918101919091526000906060015b60405160208183030381529060405280519060200120905092915050565b604080516001600160a01b038416602082015263ffffffff8316918101919091526000906060016119eb565b6040805163ffffffff831660208201526000918291015b60408051601f1981840301815291905280516020909101209392505050565b60008082604051602001611a4c91906123c2565b6033546001600160a01b03163314610de25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610de25760405162461bcd60e51b81526004016104f290612691565b600054610100900460ff16611b795760405162461bcd60e51b81526004016104f290612691565b610de233611ad9565b6060611b8d82611bbf565b92915050565b60608282604051602001611ba89291906126dc565b604051602081830303815290604052905092915050565b60606000611bcc83611c5b565b60010190506000816001600160401b03811115611beb57611beb611e11565b6040519080825280601f01601f191660200182016040528015611c15576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611c4e57611c53565b611c1f565b509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611c9a5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310611cc4576904ee2d6d415b85acef8160201b830492506020015b662386f26fc100008310611ce257662386f26fc10000830492506010015b6305f5e1008310611cfa576305f5e100830492506008015b6127108310611d0e57612710830492506004015b60648310611d20576064830492506002015b600a8310611b8d5760010192915050565b828054611d3d90612656565b90600052602060002090601f016020900481019282611d5f5760008555611da5565b82601f10611d7857805160ff1916838001178555611da5565b82800160010185558215611da5579182015b82811115611da5578251825591602001919060010190611d8a565b50611db1929150611db5565b5090565b5b80821115611db15760008155600101611db6565b600060208284031215611ddc57600080fd5b5035919050565b803563ffffffff81168114611df757600080fd5b919050565b6001600160a01b03811681146119c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715611e4957611e49611e11565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611e7757611e77611e11565b604052919050565b60006001600160401b03821115611e9857611e98611e11565b5060051b60200190565b600082601f830112611eb357600080fd5b81356020611ec8611ec383611e7f565b611e4f565b82815260059290921b84018101918181019086841115611ee757600080fd5b8286015b84811015611f0957611efc81611de3565b8352918301918301611eeb565b509695505050505050565b600080600060608486031215611f2957600080fd5b611f3284611de3565b92506020840135611f4281611dfc565b915060408401356001600160401b03811115611f5d57600080fd5b611f6986828701611ea2565b9150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015611fae57835160ff1683529284019291840191600101611f8f565b50909695505050505050565b60008060408385031215611fcd57600080fd5b50508035926020909101359150565b60005b83811015611ff7578181015183820152602001611fdf565b83811115610f375750506000910152565b60008151808452612020816020860160208601611fdc565b601f01601f19169290920160200192915050565b6020815260006120476020830184612008565b9392505050565b600082601f83011261205f57600080fd5b81356001600160401b0381111561207857612078611e11565b61208b601f8201601f1916602001611e4f565b8181528460208386010111156120a057600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff81168114611df757600080fd5b600082601f8301126120df57600080fd5b813560206120ef611ec383611e7f565b82815260059290921b8401810191818101908684111561210e57600080fd5b8286015b84811015611f0957612123816120bd565b8352918301918301612112565b600080600080600060a0868803121561214857600080fd5b6121528635611dfc565b8535945061216260208701611de3565b93506121716040870135611dfc565b604086013592506001600160401b03806060880135111561219157600080fd5b6060870135870188601f8201126121a757600080fd5b6121b4611ec38235611e7f565b81358082526020808301929160051b8401018b10156121d257600080fd5b602083015b6020843560051b8501018110156122bf5784813511156121f657600080fd5b8035840160a0818e03601f1901121561220e57600080fd5b612216611e27565b61222260208301611de3565b8152866040830135111561223557600080fd5b6122488e6020604085013585010161204e565b6020820152866060830135111561225e57600080fd5b6122718e6020606085013585010161204e565b6040820152866080830135111561228757600080fd5b61229a8e6020608085013585010161204e565b60608201526122ab60a083016120bd565b6080820152845250602092830192016121d7565b509450505060808701358110156122d557600080fd5b506122e687608088013588016120ce565b90509295509295909350565b6000806040838503121561230557600080fd5b61230e83611de3565b9150602083013561231e81611dfc565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015611fae57835163ffffffff1683529284019291840191600101612345565b63ffffffff8616815260a06020820152600061238660a0830187612008565b82810360408401526123988187612008565b905082810360608401526123ac8186612008565b91505060ff831660808301529695505050505050565b6001600160a01b0391909116815260200190565b6000806000606084860312156123eb57600080fd5b83356123f681611dfc565b9250602084013561240681611dfc565b9150604084013561241681611dfc565b809150509250925092565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156124d357603f19898403018552815160a063ffffffff825116855288820151818a87015261247c82870182612008565b91505087820151858203898701526124948282612008565b915050606080830151868303828801526124ae8382612008565b60809485015160ff169790940196909652505094870194925090860190600101612448565b509098975050505050505050565b600080600080608085870312156124f757600080fd5b61250085611de3565b9350602085013561251081611dfc565b925060408501356001600160401b038082111561252c57600080fd5b61253888838901611ea2565b9350606087013591508082111561254e57600080fd5b5061255b878288016120ce565b91505092959194509250565b60006020828403121561257957600080fd5b813561204781611dfc565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156125c4576125c461259a565b5060010190565b63ffffffff93909316835260ff9190911660208301526001600160a01b0316604082015260600190565b60006020828403121561260757600080fd5b8151801515811461204757600080fd5b60006020828403121561262957600080fd5b815161204781611dfc565b600061ffff8083168181141561264c5761264c61259a565b6001019392505050565b600181811c9082168061266a57607f821691505b6020821081141561268b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600083516126ee818460208801611fdc565b600b60fa1b908301908152835161270c816001840160208801611fdc565b0160010194935050505056fea2646970667358221220bef834936b59a322bc4abdaa51ef1ce1e62d680e5767e5877320710799dc6cf964736f6c63430008080033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
