{
  "_format": "hh-sol-artifact-1",
  "contractName": "StateCounter",
  "sourceName": "contracts/V3/StateCounter.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"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "clusterArea",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "lastHandler",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "snippet",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "valueTime",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "parentTaskId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "state",
              "type": "uint8"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "erc",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "internalType": "uint32",
                      "name": "attrId",
                      "type": "uint32"
                    },
                    {
                      "internalType": "int40",
                      "name": "attrAmount",
                      "type": "int40"
                    }
                  ],
                  "internalType": "struct Attribute.AttributeIn[]",
                  "name": "attrInList",
                  "type": "tuple[]"
                }
              ],
              "internalType": "struct Token.Token[]",
              "name": "inTokenList",
              "type": "tuple[]"
            },
            {
              "internalType": "bytes",
              "name": "args",
              "type": "bytes"
            }
          ],
          "internalType": "struct Task.Task",
          "name": "task",
          "type": "tuple"
        }
      ],
      "name": "add",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "cname",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        }
      ],
      "name": "get",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "clusterArea",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "lastHandler",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "snippet",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "valueTime",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "parentTaskId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "state",
              "type": "uint8"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "erc",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "internalType": "uint32",
                      "name": "attrId",
                      "type": "uint32"
                    },
                    {
                      "internalType": "int40",
                      "name": "attrAmount",
                      "type": "int40"
                    }
                  ],
                  "internalType": "struct Attribute.AttributeIn[]",
                  "name": "attrInList",
                  "type": "tuple[]"
                }
              ],
              "internalType": "struct Token.Token[]",
              "name": "inTokenList",
              "type": "tuple[]"
            },
            {
              "internalType": "bytes",
              "name": "args",
              "type": "bytes"
            }
          ],
          "internalType": "struct Task.Task",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCurrentTaskId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "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": [
        {
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "lastHandler",
          "type": "address"
        },
        {
          "internalType": "uint8",
          "name": "state",
          "type": "uint8"
        }
      ],
      "name": "process",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "name": "taskMap",
      "outputs": [
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "clusterArea",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "lastHandler",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "snippet",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "valueTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "parentTaskId",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "uint8",
          "name": "state",
          "type": "uint8"
        },
        {
          "internalType": "bytes",
          "name": "args",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        },
        {
          "internalType": "int32",
          "name": "delayTime",
          "type": "int32"
        }
      ],
      "name": "updateExecuteDelayTime",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "state",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "timestamp",
          "type": "uint32"
        },
        {
          "internalType": "uint32",
          "name": "blockNumber",
          "type": "uint32"
        }
      ],
      "name": "updateTime",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5061362b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100af5760003560e01c806333527184146100b457806334c76b25146100e157806354fd4d501461010f5780636a264dd014610120578063715018a6146101355780638267a5141461013d5780638da5cb5b14610150578063918f9c371461016b578063c4d66de814610173578063cc44abf914610186578063d8a26e3a146101b0578063f2fde38b146101d0578063fd908410146101e3575b600080fd5b6100c76100c2366004612c38565b6101f6565b60405163ffffffff90911681526020015b60405180910390f35b604080518082018252600c81526b29ba30ba32a1b7bab73a32b960a11b602082015290516100d89190612cc2565b60015b6040519081526020016100d8565b61013361012e366004612cfd565b610d7f565b005b610133610e60565b61013361014b366004612d40565b610e74565b6033546040516001600160a01b0390911681526020016100d8565b610112610fb4565b610133610181366004612da1565b610fc4565b610199610194366004612dbc565b6110f9565b6040516100d89b9a99989796959493929190612dd7565b6101c36101be366004612dbc565b611202565b6040516100d89190612f2d565b6101336101de366004612da1565b6114a2565b6100c76101f1366004613307565b61151b565b6066546000906001600160a01b0316331461022c5760405162461bcd60e51b81526004016102239061343c565b60405180910390fd5b63ffffffff808416600090815260686020908152604080832081516101808101835281546001600160a01b03908116825260018301548116828601526002830154811682850152600383015416606082015260048201546080820152600582015460a0820152600682015480871660c0830152600160201b8104871660e0830152600160401b8104909616610100820152600160601b90950460ff166101208601526007810180548351818602810186019094528084529195859461046e949193889361014086019392909190889084015b828210156103cf57600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b828210156103b8576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101610372565b5050505081525050815260200190600101906102fe565b5050505081526020016008820180546103e790613466565b80601f016020809104026020016040519081016040528092919081815260200182805461041390613466565b80156104605780601f1061043557610100808354040283529160200191610460565b820191906000526020600020905b81548152906001019060200180831161044357829003601f168201915b505050505081525050612624565b60ff1614156108c85760008460030b131561071357604080516101808101825283546001600160a01b0390811682526001850154811660208084019190915260028601548216838501526003860154909116606083015260048501546080830152600585015460a0830152600685015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff1661012083015260078501805484518184028101840190955280855260009489946106b5949093899361014086019392899084015b8282101561061657600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b828210156105ff576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b818301528252600190920191016105b9565b505050508152505081526020019060010190610545565b50505050815260200160088201805461062e90613466565b80601f016020809104026020016040519081016040528092919081815260200182805461065a90613466565b80156106a75780601f1061067c576101008083540402835291602001916106a7565b820191906000526020600020905b81548152906001019060200180831161068a57829003601f168201915b50505050508152505061263d565b6106bf91906134b7565b90508063ffffffff1642106106ef5760068301544292506106ea9063ffffffff166001846000610e74565b61070d565b6006830154909150819061070d9063ffffffff166001836000610e74565b50610d77565b60008460030b12156108c357600061072a856134df565b604080516101808101825285546001600160a01b0390811682526001870154811660208084019190915260028801548216838501526003880154909116606083015260048701546080830152600587015460a0830152600687015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007870180548451818402810184019095528085526108b994899361014086019391929060009084015b8282101561061657600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b828210156108a2576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b8183015282526001909201910161085c565b5050505081525050815260200190600101906107e8565b6106bf9190613503565b610d77565b60008460030b1315610b6857604080516101808101825283546001600160a01b0390811682526001850154811660208084019190915260028601548216838501526003860154909116606083015260048501546080830152600585015460a0830152600685015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007850180548451818402810184019095528085526000948994610b06949093899361014086019392899084015b82821015610a6757600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015610a50576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101610a0a565b505050508152505081526020019060010190610996565b505050508152602001600882018054610a7f90613466565b80601f0160208091040260200160405190810160405280929190818152602001828054610aab90613466565b8015610af85780601f10610acd57610100808354040283529160200191610af8565b820191906000526020600020905b815481529060010190602001808311610adb57829003601f168201915b50505050508152505061265c565b610b1091906134b7565b90508063ffffffff16610b216126a2565b10610b4a57610b2e6126a2565b60068401549092506106ea9063ffffffff166001600085610e74565b6006830154909150819061070d9063ffffffff166001600084610e74565b60008460030b1215610d77576000610b7f856134df565b604080516101808101825285546001600160a01b0390811682526001870154811660208084019190915260028801548216838501526003880154909116606083015260048701546080830152600587015460a0830152600687015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff16610120830152600787018054845181840281018401909552808552610d0e94899361014086019391929060009084015b82821015610a6757600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015610cf7576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101610cb1565b505050508152505081526020019060010190610c3d565b610d189190613503565b90508063ffffffff16610d296126a2565b10610d5757610d366126a2565b6006840154909250610d529063ffffffff166001600085610e74565b610d75565b60068301549091508190610d759063ffffffff166001600084610e74565b505b949350505050565b6066546001600160a01b03163314610da95760405162461bcd60e51b81526004016102239061343c565b63ffffffff831660009081526068602052604090206002810180546001600160a01b0319166001600160a01b03851617905560068101805460ff60601b1916600160601b60ff85169081029190911790915560051415610e2457610e0d814261272e565b610e1f610e186126a2565b8290612761565b610e5a565b60ff8216600a1480610e39575060ff82166014145b15610e5a57610e4881426127a4565b610e5a610e536126a2565b82906127bb565b50505050565b610e686127dd565b610e726000612837565b565b6066546001600160a01b03163314610e9e5760405162461bcd60e51b81526004016102239061343c565b63ffffffff808516600090815260686020526040902090841660011415610efd5763ffffffff831615610ede57610ede8163ffffffff8086169061288916565b63ffffffff821615610efd57610efd8163ffffffff808516906128a016565b63ffffffff841660051415610f4f5763ffffffff831615610f2b57610f2b8163ffffffff8086169061272e16565b63ffffffff821615610f4a57610f4a8163ffffffff8085169061276116565b610fad565b63ffffffff8416600a1480610f6a575063ffffffff84166014145b15610fad5763ffffffff831615610f8e57610f8e8163ffffffff808616906127a416565b63ffffffff821615610fad57610fad8163ffffffff808516906127bb16565b5050505050565b6000610fbf60675490565b905090565b600054610100900460ff1615808015610fe45750600054600160ff909116105b80610ffe5750303b158015610ffe575060005460ff166001145b6110615760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610223565b6000805460ff191660011790558015611084576000805461ff0019166101001790555b61108c6128b7565b6110946128de565b606680546001600160a01b0319166001600160a01b03841617905580156110f5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b606860205260009081526040902080546001820154600283015460038401546004850154600586015460068701546008880180546001600160a01b0398891699978916989687169796909516959394929363ffffffff80841694600160201b8504821694600160401b810490921693600160601b90920460ff1692919061117f90613466565b80601f01602080910402602001604051908101604052809291908181526020018280546111ab90613466565b80156111f85780601f106111cd576101008083540402835291602001916111f8565b820191906000526020600020905b8154815290600101906020018083116111db57829003601f168201915b505050505090508b565b604080516101808101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820192909252610140810182905261016081019190915263ffffffff828116600090815260686020908152604080832081516101808101835281546001600160a01b03908116825260018301548116828601526002830154811682850152600383015416606082015260048201546080820152600582015460a0820152600682015480871660c0830152600160201b8104871660e0830152600160401b8104909616610100820152600160601b90950460ff1661012086015260078101805483518186028101860190945280845294959491936101408601939290879084015b828210156113ff57600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b828210156113e8576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b818301528252600190920191016113a2565b50505050815250508152602001906001019061132e565b50505050815260200160088201805461141790613466565b80601f016020809104026020016040519081016040528092919081815260200182805461144390613466565b80156114905780601f1061146557610100808354040283529160200191611490565b820191906000526020600020905b81548152906001019060200180831161147357829003601f168201915b50505091909252509195945050505050565b6114aa6127dd565b6001600160a01b03811661150f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610223565b61151881612837565b50565b6066546000906001600160a01b031633146115485760405162461bcd60e51b81526004016102239061343c565b611556606780546001019055565b60006068600061156560675490565b63ffffffff1663ffffffff168152602001908152602001600020905061158a60675490565b60068201805460e0860151865185546001600160a01b039182166001600160a01b03199182161787556020808a01516001890180549190941692169190911790915560a0880151600587015561010088015161012089015160ff16600160601b0260ff60601b1963ffffffff928316600160401b021664ffffffffff60401b19948316600160201b0267ffffffffffffffff19909616979092169690961793909317919091169190911792909217905561016084015180516116529260088501920190612b86565b5060408301516002820180546001600160a01b039283166001600160a01b03199182161790915560608501516003840180549190931691161790556118ce61169984612624565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b8282101561182657600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b8282101561180f576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b818301528252600190920191016117c9565b505050508152505081526020019060010190611755565b50505050815260200160088201805461183e90613466565b80601f016020809104026020016040519081016040528092919081815260200182805461186a90613466565b80156118b75780601f1061188c576101008083540402835291602001916118b7565b820191906000526020600020905b81548152906001019060200180831161189a57829003601f168201915b50505050508152505061290e90919063ffffffff16565b611b0f6118da8461292f565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b82821015611a6757600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015611a50576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101611a0a565b505050508152505081526020019060010190611996565b505050508152602001600882018054611a7f90613466565b80601f0160208091040260200160405190810160405280929190818152602001828054611aab90613466565b8015611af85780601f10611acd57610100808354040283529160200191611af8565b820191906000526020600020905b815481529060010190602001808311611adb57829003601f168201915b50505050508152505061294990919063ffffffff16565b611d50611b1b84612965565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b82821015611ca857600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015611c91576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101611c4b565b505050508152505081526020019060010190611bd7565b505050508152602001600882018054611cc090613466565b80601f0160208091040260200160405190810160405280929190818152602001828054611cec90613466565b8015611d395780601f10611d0e57610100808354040283529160200191611d39565b820191906000526020600020905b815481529060010190602001808311611d1c57829003601f168201915b50505050508152505061298a90919063ffffffff16565b611f91611d5c846129b1565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b82821015611ee957600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015611ed2576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101611e8c565b505050508152505081526020019060010190611e18565b505050508152602001600882018054611f0190613466565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2d90613466565b8015611f7a5780601f10611f4f57610100808354040283529160200191611f7a565b820191906000526020600020905b815481529060010190602001808311611f5d57829003601f168201915b5050505050815250506129d690919063ffffffff16565b6121d2611f9d846129fb565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b8282101561212a57600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015612113576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b818301528252600190920191016120cd565b505050508152505081526020019060010190612059565b50505050815260200160088201805461214290613466565b80601f016020809104026020016040519081016040528092919081815260200182805461216e90613466565b80156121bb5780601f10612190576101008083540402835291602001916121bb565b820191906000526020600020905b81548152906001019060200180831161219e57829003601f168201915b505050505081525050612a3690919063ffffffff16565b6124136121de84612a72565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b8282101561236b57600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015612354576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b8183015282526001909201910161230e565b50505050815250508152602001906001019061229a565b50505050815260200160088201805461238390613466565b80601f01602080910402602001604051908101604052809291908181526020018280546123af90613466565b80156123fc5780601f106123d1576101008083540402835291602001916123fc565b820191906000526020600020905b8154815290600101906020018083116123df57829003601f168201915b505050505081525050612aad90919063ffffffff16565b61243461241f84612aec565b63ffffffff1682612aff90919063ffffffff16565b61245561244084612b11565b63ffffffff1682612b2b90919063ffffffff16565b6124766124618461265c565b63ffffffff16826128a090919063ffffffff16565b6124976124828461263d565b63ffffffff168261288990919063ffffffff16565b60005b836101400151518163ffffffff1610156126185760008461014001518263ffffffff16815181106124cd576124cd613528565b60209081029190910181015160078501805460018181018355600092835284832084516004909302018054958501516001600160a01b0316610100026001600160a81b031990961660ff90931692909217949094178155604083015193810193909355606082015160028401559092505b8260800151518163ffffffff16101561260457600382018054600181018255600091825260209091206080850151805191909201919063ffffffff841690811061258a5761258a613528565b602090810291909101015151815463ffffffff191663ffffffff91821617825560808501518051909184169081106125c4576125c4613528565b6020908102919091018101510151815464ffffffffff909116600160201b0268ffffffffff00000000199091161790556125fd8161353e565b905061253e565b505050806126119061353e565b905061249a565b506067545b9392505050565b60006126378260a0015160086000612b42565b92915050565b600061263782608001516020600060206126579190613562565b612b42565b600061263782608001516020600060206126769190613562565b612681906020613562565b61268c906020613562565b612697906020613562565b612657906020613562565b60004661a4b18114156127275760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156126e957600080fd5b505afa1580156126fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612721919061357a565b91505090565b4391505090565b600482015461275590826020612745600082613562565b612750906020613562565b612b61565b82600401819055505050565b600482015461275590826020612778600082613562565b612783906020613562565b61278e906020613562565b612799906020613562565b612745906020613562565b600482015461275590826020612799600082613562565b6004820154612755908260206127d2600082613562565b612778906020613562565b6033546001600160a01b03163314610e725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610223565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600482015461275590826020612750600082613562565b600482015461275590826020612783600082613562565b600054610100900460ff16610e725760405162461bcd60e51b815260040161022390613593565b600054610100900460ff166129055760405162461bcd60e51b815260040161022390613593565b610e7233612837565b6129238260a001518260ff1660086000612b61565b60a09092019190915250565b60006126378260a001516010600060086126579190613562565b60a08201516129239061ffff8316601061275060006008613562565b60006126378260a0015160106000600861297f9190613562565b612657906010613562565b60a08201516129239061ffff831660106129a660006008613562565b612750906010613562565b60006126378260a001516008600060086129cb9190613562565b61297f906010613562565b60a08201516129239060ff831660086129f0600082613562565b6129a6906010613562565b60006126378260a00151601060006008612a159190613562565b612a20906010613562565b612a2b906010613562565b612657906008613562565b60a08201516129239060ff83166010612a5160006008613562565b612a5c906010613562565b612a67906010613562565b612750906008613562565b60006126378260a00151602060006008612a8c9190613562565b612a97906010613562565b612aa2906010613562565b61297f906008613562565b60a08201516129239063ffffffff83166020612acb60006008613562565b612ad6906010613562565b612ae1906010613562565b6129a6906008613562565b6000612637826080015160206000612b42565b61275582600401548260206000612b61565b600061263782608001516020600060206126819190613562565b60048201546127559082602061278e600082613562565b91821c91600080612b56600180861b6135de565b909416949350505050565b600083821b8183612b75600180881b6135de565b901b19969096161795945050505050565b828054612b9290613466565b90600052602060002090601f016020900481019282612bb45760008555612bfa565b82601f10612bcd57805160ff1916838001178555612bfa565b82800160010185558215612bfa579182015b82811115612bfa578251825591602001919060010190612bdf565b50612c06929150612c0a565b5090565b5b80821115612c065760008155600101612c0b565b803563ffffffff81168114612c3357600080fd5b919050565b60008060408385031215612c4b57600080fd5b612c5483612c1f565b915060208301358060030b8114612c6a57600080fd5b809150509250929050565b6000815180845260005b81811015612c9b57602081850181015186830182015201612c7f565b81811115612cad576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061261d6020830184612c75565b80356001600160a01b0381168114612c3357600080fd5b803560ff81168114612c3357600080fd5b600080600060608486031215612d1257600080fd5b612d1b84612c1f565b9250612d2960208501612cd5565b9150612d3760408501612cec565b90509250925092565b60008060008060808587031215612d5657600080fd5b612d5f85612c1f565b9350612d6d60208601612c1f565b9250612d7b60408601612c1f565b9150612d8960608601612c1f565b905092959194509250565b6001600160a01b03169052565b600060208284031215612db357600080fd5b61261d82612cd5565b600060208284031215612dce57600080fd5b61261d82612c1f565b6001600160a01b038c811682528b811660208301528a81166040830152891660608201526080810188905260a0810187905263ffffffff86811660c083015285811660e0830152841661010082015260ff83166101208201526101606101408201819052600090612e4a83820185612c75565b9e9d5050505050505050505050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015612f1f578385038a528251805160ff168652868101516001600160a01b031687870152604080820151818801526060808301519088015260809182015160a0928801839052805192880183905288019160c088019185915b80831015612f09578451805163ffffffff1685528b015160040b8b850152938a01939281019260019290920191612ed7565b5050509a87019a95505091850191600101612e7b565b509298975050505050505050565b60208152612f3f602082018351612d94565b60006020830151612f536040840182612d94565b506040830151612f666060840182612d94565b506060830151612f796080840182612d94565b50608083015160a083015260a083015160c083015260c0830151612fa560e084018263ffffffff169052565b5060e0830151610100612fbf8185018363ffffffff169052565b8401519050610120612fd88482018363ffffffff169052565b8401519050610140612fee8482018360ff169052565b80850151915050610180610160818186015261300e6101a0860184612e5c565b90860151858203601f19018387015290925061302a8382612c75565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b038111828210171561306c5761306c613034565b60405290565b604080519081016001600160401b038111828210171561306c5761306c613034565b60405161018081016001600160401b038111828210171561306c5761306c613034565b604051601f8201601f191681016001600160401b03811182821017156130df576130df613034565b604052919050565b60006001600160401b0382111561310057613100613034565b5060051b60200190565b600082601f83011261311b57600080fd5b8135602061313061312b836130e7565b6130b7565b82815260059290921b8401810191818101908684111561314f57600080fd5b8286015b8481101561328d5780356001600160401b038082111561317257600080fd5b9088019060a0828b03601f1901121561318a57600080fd5b61319261304a565b61319d878401612cec565b815260406131ac818501612cd5565b888301526060840135818301526080840135606083015260a0840135838111156131d65760008081fd5b8085019450508b603f8501126131ee57600092508283fd5b87840135925061320061312b846130e7565b83815260069390931b8401810192888101908d8511156132205760008081fd5b948201945b848610156132775782868f03121561323d5760008081fd5b613245613072565b61324e87612c1f565b81528a8701358060040b81146132645760008081fd5b818c015282529482019490890190613225565b6080840152505085525050918301918301613153565b509695505050505050565b600082601f8301126132a957600080fd5b81356001600160401b038111156132c2576132c2613034565b6132d5601f8201601f19166020016130b7565b8181528460208386010111156132ea57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561331957600080fd5b81356001600160401b038082111561333057600080fd5b90830190610180828603121561334557600080fd5b61334d613094565b61335683612cd5565b815261336460208401612cd5565b602082015261337560408401612cd5565b604082015261338660608401612cd5565b60608201526080830135608082015260a083013560a08201526133ab60c08401612c1f565b60c08201526133bc60e08401612c1f565b60e08201526101006133cf818501612c1f565b908201526101206133e1848201612cec565b9082015261014083810135838111156133f957600080fd5b6134058882870161310a565b828401525050610160808401358381111561341f57600080fd5b61342b88828701613298565b918301919091525095945050505050565b60208082526010908201526f63616c6c657220213d20656e67696e6560801b604082015260600190565b600181811c9082168061347a57607f821691505b6020821081141561349b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8083168185168083038211156134d6576134d66134a1565b01949350505050565b60008160030b637fffffff198114156134fa576134fa6134a1565b60000392915050565b600063ffffffff83811690831681811015613520576135206134a1565b039392505050565b634e487b7160e01b600052603260045260246000fd5b600063ffffffff80831681811415613558576135586134a1565b6001019392505050565b60008219821115613575576135756134a1565b500190565b60006020828403121561358c57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000828210156135f0576135f06134a1565b50039056fea26469706673582212202f1f5fb555e3b7bdda8968c1a0e7f12052f4027b9744387a9d775279b06627f364736f6c63430008080033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100af5760003560e01c806333527184146100b457806334c76b25146100e157806354fd4d501461010f5780636a264dd014610120578063715018a6146101355780638267a5141461013d5780638da5cb5b14610150578063918f9c371461016b578063c4d66de814610173578063cc44abf914610186578063d8a26e3a146101b0578063f2fde38b146101d0578063fd908410146101e3575b600080fd5b6100c76100c2366004612c38565b6101f6565b60405163ffffffff90911681526020015b60405180910390f35b604080518082018252600c81526b29ba30ba32a1b7bab73a32b960a11b602082015290516100d89190612cc2565b60015b6040519081526020016100d8565b61013361012e366004612cfd565b610d7f565b005b610133610e60565b61013361014b366004612d40565b610e74565b6033546040516001600160a01b0390911681526020016100d8565b610112610fb4565b610133610181366004612da1565b610fc4565b610199610194366004612dbc565b6110f9565b6040516100d89b9a99989796959493929190612dd7565b6101c36101be366004612dbc565b611202565b6040516100d89190612f2d565b6101336101de366004612da1565b6114a2565b6100c76101f1366004613307565b61151b565b6066546000906001600160a01b0316331461022c5760405162461bcd60e51b81526004016102239061343c565b60405180910390fd5b63ffffffff808416600090815260686020908152604080832081516101808101835281546001600160a01b03908116825260018301548116828601526002830154811682850152600383015416606082015260048201546080820152600582015460a0820152600682015480871660c0830152600160201b8104871660e0830152600160401b8104909616610100820152600160601b90950460ff166101208601526007810180548351818602810186019094528084529195859461046e949193889361014086019392909190889084015b828210156103cf57600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b828210156103b8576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101610372565b5050505081525050815260200190600101906102fe565b5050505081526020016008820180546103e790613466565b80601f016020809104026020016040519081016040528092919081815260200182805461041390613466565b80156104605780601f1061043557610100808354040283529160200191610460565b820191906000526020600020905b81548152906001019060200180831161044357829003601f168201915b505050505081525050612624565b60ff1614156108c85760008460030b131561071357604080516101808101825283546001600160a01b0390811682526001850154811660208084019190915260028601548216838501526003860154909116606083015260048501546080830152600585015460a0830152600685015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff1661012083015260078501805484518184028101840190955280855260009489946106b5949093899361014086019392899084015b8282101561061657600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b828210156105ff576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b818301528252600190920191016105b9565b505050508152505081526020019060010190610545565b50505050815260200160088201805461062e90613466565b80601f016020809104026020016040519081016040528092919081815260200182805461065a90613466565b80156106a75780601f1061067c576101008083540402835291602001916106a7565b820191906000526020600020905b81548152906001019060200180831161068a57829003601f168201915b50505050508152505061263d565b6106bf91906134b7565b90508063ffffffff1642106106ef5760068301544292506106ea9063ffffffff166001846000610e74565b61070d565b6006830154909150819061070d9063ffffffff166001836000610e74565b50610d77565b60008460030b12156108c357600061072a856134df565b604080516101808101825285546001600160a01b0390811682526001870154811660208084019190915260028801548216838501526003880154909116606083015260048701546080830152600587015460a0830152600687015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007870180548451818402810184019095528085526108b994899361014086019391929060009084015b8282101561061657600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b828210156108a2576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b8183015282526001909201910161085c565b5050505081525050815260200190600101906107e8565b6106bf9190613503565b610d77565b60008460030b1315610b6857604080516101808101825283546001600160a01b0390811682526001850154811660208084019190915260028601548216838501526003860154909116606083015260048501546080830152600585015460a0830152600685015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007850180548451818402810184019095528085526000948994610b06949093899361014086019392899084015b82821015610a6757600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015610a50576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101610a0a565b505050508152505081526020019060010190610996565b505050508152602001600882018054610a7f90613466565b80601f0160208091040260200160405190810160405280929190818152602001828054610aab90613466565b8015610af85780601f10610acd57610100808354040283529160200191610af8565b820191906000526020600020905b815481529060010190602001808311610adb57829003601f168201915b50505050508152505061265c565b610b1091906134b7565b90508063ffffffff16610b216126a2565b10610b4a57610b2e6126a2565b60068401549092506106ea9063ffffffff166001600085610e74565b6006830154909150819061070d9063ffffffff166001600084610e74565b60008460030b1215610d77576000610b7f856134df565b604080516101808101825285546001600160a01b0390811682526001870154811660208084019190915260028801548216838501526003880154909116606083015260048701546080830152600587015460a0830152600687015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff16610120830152600787018054845181840281018401909552808552610d0e94899361014086019391929060009084015b82821015610a6757600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015610cf7576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101610cb1565b505050508152505081526020019060010190610c3d565b610d189190613503565b90508063ffffffff16610d296126a2565b10610d5757610d366126a2565b6006840154909250610d529063ffffffff166001600085610e74565b610d75565b60068301549091508190610d759063ffffffff166001600084610e74565b505b949350505050565b6066546001600160a01b03163314610da95760405162461bcd60e51b81526004016102239061343c565b63ffffffff831660009081526068602052604090206002810180546001600160a01b0319166001600160a01b03851617905560068101805460ff60601b1916600160601b60ff85169081029190911790915560051415610e2457610e0d814261272e565b610e1f610e186126a2565b8290612761565b610e5a565b60ff8216600a1480610e39575060ff82166014145b15610e5a57610e4881426127a4565b610e5a610e536126a2565b82906127bb565b50505050565b610e686127dd565b610e726000612837565b565b6066546001600160a01b03163314610e9e5760405162461bcd60e51b81526004016102239061343c565b63ffffffff808516600090815260686020526040902090841660011415610efd5763ffffffff831615610ede57610ede8163ffffffff8086169061288916565b63ffffffff821615610efd57610efd8163ffffffff808516906128a016565b63ffffffff841660051415610f4f5763ffffffff831615610f2b57610f2b8163ffffffff8086169061272e16565b63ffffffff821615610f4a57610f4a8163ffffffff8085169061276116565b610fad565b63ffffffff8416600a1480610f6a575063ffffffff84166014145b15610fad5763ffffffff831615610f8e57610f8e8163ffffffff808616906127a416565b63ffffffff821615610fad57610fad8163ffffffff808516906127bb16565b5050505050565b6000610fbf60675490565b905090565b600054610100900460ff1615808015610fe45750600054600160ff909116105b80610ffe5750303b158015610ffe575060005460ff166001145b6110615760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610223565b6000805460ff191660011790558015611084576000805461ff0019166101001790555b61108c6128b7565b6110946128de565b606680546001600160a01b0319166001600160a01b03841617905580156110f5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b606860205260009081526040902080546001820154600283015460038401546004850154600586015460068701546008880180546001600160a01b0398891699978916989687169796909516959394929363ffffffff80841694600160201b8504821694600160401b810490921693600160601b90920460ff1692919061117f90613466565b80601f01602080910402602001604051908101604052809291908181526020018280546111ab90613466565b80156111f85780601f106111cd576101008083540402835291602001916111f8565b820191906000526020600020905b8154815290600101906020018083116111db57829003601f168201915b505050505090508b565b604080516101808101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201839052610120820192909252610140810182905261016081019190915263ffffffff828116600090815260686020908152604080832081516101808101835281546001600160a01b03908116825260018301548116828601526002830154811682850152600383015416606082015260048201546080820152600582015460a0820152600682015480871660c0830152600160201b8104871660e0830152600160401b8104909616610100820152600160601b90950460ff1661012086015260078101805483518186028101860190945280845294959491936101408601939290879084015b828210156113ff57600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b828210156113e8576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b818301528252600190920191016113a2565b50505050815250508152602001906001019061132e565b50505050815260200160088201805461141790613466565b80601f016020809104026020016040519081016040528092919081815260200182805461144390613466565b80156114905780601f1061146557610100808354040283529160200191611490565b820191906000526020600020905b81548152906001019060200180831161147357829003601f168201915b50505091909252509195945050505050565b6114aa6127dd565b6001600160a01b03811661150f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610223565b61151881612837565b50565b6066546000906001600160a01b031633146115485760405162461bcd60e51b81526004016102239061343c565b611556606780546001019055565b60006068600061156560675490565b63ffffffff1663ffffffff168152602001908152602001600020905061158a60675490565b60068201805460e0860151865185546001600160a01b039182166001600160a01b03199182161787556020808a01516001890180549190941692169190911790915560a0880151600587015561010088015161012089015160ff16600160601b0260ff60601b1963ffffffff928316600160401b021664ffffffffff60401b19948316600160201b0267ffffffffffffffff19909616979092169690961793909317919091169190911792909217905561016084015180516116529260088501920190612b86565b5060408301516002820180546001600160a01b039283166001600160a01b03199182161790915560608501516003840180549190931691161790556118ce61169984612624565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b8282101561182657600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b8282101561180f576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b818301528252600190920191016117c9565b505050508152505081526020019060010190611755565b50505050815260200160088201805461183e90613466565b80601f016020809104026020016040519081016040528092919081815260200182805461186a90613466565b80156118b75780601f1061188c576101008083540402835291602001916118b7565b820191906000526020600020905b81548152906001019060200180831161189a57829003601f168201915b50505050508152505061290e90919063ffffffff16565b611b0f6118da8461292f565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b82821015611a6757600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015611a50576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101611a0a565b505050508152505081526020019060010190611996565b505050508152602001600882018054611a7f90613466565b80601f0160208091040260200160405190810160405280929190818152602001828054611aab90613466565b8015611af85780601f10611acd57610100808354040283529160200191611af8565b820191906000526020600020905b815481529060010190602001808311611adb57829003601f168201915b50505050508152505061294990919063ffffffff16565b611d50611b1b84612965565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b82821015611ca857600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015611c91576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101611c4b565b505050508152505081526020019060010190611bd7565b505050508152602001600882018054611cc090613466565b80601f0160208091040260200160405190810160405280929190818152602001828054611cec90613466565b8015611d395780601f10611d0e57610100808354040283529160200191611d39565b820191906000526020600020905b815481529060010190602001808311611d1c57829003601f168201915b50505050508152505061298a90919063ffffffff16565b611f91611d5c846129b1565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b82821015611ee957600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015611ed2576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b81830152825260019092019101611e8c565b505050508152505081526020019060010190611e18565b505050508152602001600882018054611f0190613466565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2d90613466565b8015611f7a5780601f10611f4f57610100808354040283529160200191611f7a565b820191906000526020600020905b815481529060010190602001808311611f5d57829003601f168201915b5050505050815250506129d690919063ffffffff16565b6121d2611f9d846129fb565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b8282101561212a57600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015612113576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b818301528252600190920191016120cd565b505050508152505081526020019060010190612059565b50505050815260200160088201805461214290613466565b80601f016020809104026020016040519081016040528092919081815260200182805461216e90613466565b80156121bb5780601f10612190576101008083540402835291602001916121bb565b820191906000526020600020905b81548152906001019060200180831161219e57829003601f168201915b505050505081525050612a3690919063ffffffff16565b6124136121de84612a72565b604080516101808101825284546001600160a01b0390811682526001860154811660208084019190915260028701548216838501526003870154909116606083015260048601546080830152600586015460a0830152600686015463ffffffff80821660c0850152600160201b8204811660e0850152600160401b820416610100840152600160601b900460ff166101208301526007860180548451818402810184019095528085529293879361014086019391929160009084015b8282101561236b57600084815260208082206040805160a08101825260048702909201805460ff8116845261010090046001600160a01b0316838501526001810154838301526002810154606084015260038101805483518187028101870190945280845293959194608087019491929084015b82821015612354576000848152602090819020604080518082019091529084015463ffffffff81168252600160201b900460040b8183015282526001909201910161230e565b50505050815250508152602001906001019061229a565b50505050815260200160088201805461238390613466565b80601f01602080910402602001604051908101604052809291908181526020018280546123af90613466565b80156123fc5780601f106123d1576101008083540402835291602001916123fc565b820191906000526020600020905b8154815290600101906020018083116123df57829003601f168201915b505050505081525050612aad90919063ffffffff16565b61243461241f84612aec565b63ffffffff1682612aff90919063ffffffff16565b61245561244084612b11565b63ffffffff1682612b2b90919063ffffffff16565b6124766124618461265c565b63ffffffff16826128a090919063ffffffff16565b6124976124828461263d565b63ffffffff168261288990919063ffffffff16565b60005b836101400151518163ffffffff1610156126185760008461014001518263ffffffff16815181106124cd576124cd613528565b60209081029190910181015160078501805460018181018355600092835284832084516004909302018054958501516001600160a01b0316610100026001600160a81b031990961660ff90931692909217949094178155604083015193810193909355606082015160028401559092505b8260800151518163ffffffff16101561260457600382018054600181018255600091825260209091206080850151805191909201919063ffffffff841690811061258a5761258a613528565b602090810291909101015151815463ffffffff191663ffffffff91821617825560808501518051909184169081106125c4576125c4613528565b6020908102919091018101510151815464ffffffffff909116600160201b0268ffffffffff00000000199091161790556125fd8161353e565b905061253e565b505050806126119061353e565b905061249a565b506067545b9392505050565b60006126378260a0015160086000612b42565b92915050565b600061263782608001516020600060206126579190613562565b612b42565b600061263782608001516020600060206126769190613562565b612681906020613562565b61268c906020613562565b612697906020613562565b612657906020613562565b60004661a4b18114156127275760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156126e957600080fd5b505afa1580156126fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612721919061357a565b91505090565b4391505090565b600482015461275590826020612745600082613562565b612750906020613562565b612b61565b82600401819055505050565b600482015461275590826020612778600082613562565b612783906020613562565b61278e906020613562565b612799906020613562565b612745906020613562565b600482015461275590826020612799600082613562565b6004820154612755908260206127d2600082613562565b612778906020613562565b6033546001600160a01b03163314610e725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610223565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600482015461275590826020612750600082613562565b600482015461275590826020612783600082613562565b600054610100900460ff16610e725760405162461bcd60e51b815260040161022390613593565b600054610100900460ff166129055760405162461bcd60e51b815260040161022390613593565b610e7233612837565b6129238260a001518260ff1660086000612b61565b60a09092019190915250565b60006126378260a001516010600060086126579190613562565b60a08201516129239061ffff8316601061275060006008613562565b60006126378260a0015160106000600861297f9190613562565b612657906010613562565b60a08201516129239061ffff831660106129a660006008613562565b612750906010613562565b60006126378260a001516008600060086129cb9190613562565b61297f906010613562565b60a08201516129239060ff831660086129f0600082613562565b6129a6906010613562565b60006126378260a00151601060006008612a159190613562565b612a20906010613562565b612a2b906010613562565b612657906008613562565b60a08201516129239060ff83166010612a5160006008613562565b612a5c906010613562565b612a67906010613562565b612750906008613562565b60006126378260a00151602060006008612a8c9190613562565b612a97906010613562565b612aa2906010613562565b61297f906008613562565b60a08201516129239063ffffffff83166020612acb60006008613562565b612ad6906010613562565b612ae1906010613562565b6129a6906008613562565b6000612637826080015160206000612b42565b61275582600401548260206000612b61565b600061263782608001516020600060206126819190613562565b60048201546127559082602061278e600082613562565b91821c91600080612b56600180861b6135de565b909416949350505050565b600083821b8183612b75600180881b6135de565b901b19969096161795945050505050565b828054612b9290613466565b90600052602060002090601f016020900481019282612bb45760008555612bfa565b82601f10612bcd57805160ff1916838001178555612bfa565b82800160010185558215612bfa579182015b82811115612bfa578251825591602001919060010190612bdf565b50612c06929150612c0a565b5090565b5b80821115612c065760008155600101612c0b565b803563ffffffff81168114612c3357600080fd5b919050565b60008060408385031215612c4b57600080fd5b612c5483612c1f565b915060208301358060030b8114612c6a57600080fd5b809150509250929050565b6000815180845260005b81811015612c9b57602081850181015186830182015201612c7f565b81811115612cad576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061261d6020830184612c75565b80356001600160a01b0381168114612c3357600080fd5b803560ff81168114612c3357600080fd5b600080600060608486031215612d1257600080fd5b612d1b84612c1f565b9250612d2960208501612cd5565b9150612d3760408501612cec565b90509250925092565b60008060008060808587031215612d5657600080fd5b612d5f85612c1f565b9350612d6d60208601612c1f565b9250612d7b60408601612c1f565b9150612d8960608601612c1f565b905092959194509250565b6001600160a01b03169052565b600060208284031215612db357600080fd5b61261d82612cd5565b600060208284031215612dce57600080fd5b61261d82612c1f565b6001600160a01b038c811682528b811660208301528a81166040830152891660608201526080810188905260a0810187905263ffffffff86811660c083015285811660e0830152841661010082015260ff83166101208201526101606101408201819052600090612e4a83820185612c75565b9e9d5050505050505050505050505050565b600081518084526020808501808196508360051b810191508286016000805b86811015612f1f578385038a528251805160ff168652868101516001600160a01b031687870152604080820151818801526060808301519088015260809182015160a0928801839052805192880183905288019160c088019185915b80831015612f09578451805163ffffffff1685528b015160040b8b850152938a01939281019260019290920191612ed7565b5050509a87019a95505091850191600101612e7b565b509298975050505050505050565b60208152612f3f602082018351612d94565b60006020830151612f536040840182612d94565b506040830151612f666060840182612d94565b506060830151612f796080840182612d94565b50608083015160a083015260a083015160c083015260c0830151612fa560e084018263ffffffff169052565b5060e0830151610100612fbf8185018363ffffffff169052565b8401519050610120612fd88482018363ffffffff169052565b8401519050610140612fee8482018360ff169052565b80850151915050610180610160818186015261300e6101a0860184612e5c565b90860151858203601f19018387015290925061302a8382612c75565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b038111828210171561306c5761306c613034565b60405290565b604080519081016001600160401b038111828210171561306c5761306c613034565b60405161018081016001600160401b038111828210171561306c5761306c613034565b604051601f8201601f191681016001600160401b03811182821017156130df576130df613034565b604052919050565b60006001600160401b0382111561310057613100613034565b5060051b60200190565b600082601f83011261311b57600080fd5b8135602061313061312b836130e7565b6130b7565b82815260059290921b8401810191818101908684111561314f57600080fd5b8286015b8481101561328d5780356001600160401b038082111561317257600080fd5b9088019060a0828b03601f1901121561318a57600080fd5b61319261304a565b61319d878401612cec565b815260406131ac818501612cd5565b888301526060840135818301526080840135606083015260a0840135838111156131d65760008081fd5b8085019450508b603f8501126131ee57600092508283fd5b87840135925061320061312b846130e7565b83815260069390931b8401810192888101908d8511156132205760008081fd5b948201945b848610156132775782868f03121561323d5760008081fd5b613245613072565b61324e87612c1f565b81528a8701358060040b81146132645760008081fd5b818c015282529482019490890190613225565b6080840152505085525050918301918301613153565b509695505050505050565b600082601f8301126132a957600080fd5b81356001600160401b038111156132c2576132c2613034565b6132d5601f8201601f19166020016130b7565b8181528460208386010111156132ea57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561331957600080fd5b81356001600160401b038082111561333057600080fd5b90830190610180828603121561334557600080fd5b61334d613094565b61335683612cd5565b815261336460208401612cd5565b602082015261337560408401612cd5565b604082015261338660608401612cd5565b60608201526080830135608082015260a083013560a08201526133ab60c08401612c1f565b60c08201526133bc60e08401612c1f565b60e08201526101006133cf818501612c1f565b908201526101206133e1848201612cec565b9082015261014083810135838111156133f957600080fd5b6134058882870161310a565b828401525050610160808401358381111561341f57600080fd5b61342b88828701613298565b918301919091525095945050505050565b60208082526010908201526f63616c6c657220213d20656e67696e6560801b604082015260600190565b600181811c9082168061347a57607f821691505b6020821081141561349b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8083168185168083038211156134d6576134d66134a1565b01949350505050565b60008160030b637fffffff198114156134fa576134fa6134a1565b60000392915050565b600063ffffffff83811690831681811015613520576135206134a1565b039392505050565b634e487b7160e01b600052603260045260246000fd5b600063ffffffff80831681811415613558576135586134a1565b6001019392505050565b60008219821115613575576135756134a1565b500190565b60006020828403121561358c57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000828210156135f0576135f06134a1565b50039056fea26469706673582212202f1f5fb555e3b7bdda8968c1a0e7f12052f4027b9744387a9d775279b06627f364736f6c63430008080033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
