{
  "_format": "hh-sol-artifact-1",
  "contractName": "TestERC721Guard",
  "sourceName": "contracts/soma/SecurityTokens/ERC721/extensions/tests/TestERC721Guard.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "approved",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "prevPrivileges",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "newPrivileges",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RequiredPrivilegesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DEFAULT_PRIVILEGES",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "GLOBAL_UPDATE_PRIVILEGES_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "LOCAL_UPDATE_PRIVILEGES_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "SOMA",
      "outputs": [
        {
          "internalType": "contract ISOMA",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "canTransferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getApproved",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasPrivileges",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes[]",
          "name": "data",
          "type": "bytes[]"
        }
      ],
      "name": "multicall",
      "outputs": [
        {
          "internalType": "bytes[]",
          "name": "results",
          "type": "bytes[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ownerOf",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "requiredPrivileges",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "newRequiredPrivileges",
          "type": "bytes32"
        }
      ],
      "name": "updateRequiredPrivileges",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "validateTokenTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60c0604052730f3dc00189dbcd1d0c574e48031270cae04c4adf6080526001600160401b0360a05234801561003357600080fd5b5060805160a05161256561009860003960006102c901526000818161034c015281816106910152818161085e015281816108fa015281816109fb01528181610b0501528181610da101528181610e3d01528181610f2001526111dd01526125656000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635c975abb1161010457806395d89b41116100a2578063c87b56dd11610071578063c87b56dd146103f2578063e985e9c514610405578063eec47d6014610441578063f37d11cc1461044b57600080fd5b806395d89b41146103a4578063a22cb465146103ac578063ac9650d8146103bf578063b88d4fde146103df57600080fd5b806370a08231116100de57806370a082311461036e5780638129fc1c146103815780638456cb591461038957806391d148541461039157600080fd5b80635c975abb1461032c5780636352211e1461033457806363727fc21461034757600080fd5b8063248a9ca3116101715780632b41de811161014b5780632b41de81146102eb5780633f4ba83a146102fe57806342842e0e146103065780634b63885a1461031957600080fd5b8063248a9ca31461029e5780632772ce9d146102b15780632a7a0c68146102c457600080fd5b8063095ea7b3116101ad578063095ea7b31461023c5780631e26571f14610251578063227102a61461026457806323b872dd1461028b57600080fd5b806301ffc9a7146101d457806306fdde03146101fc578063081812fc14610211575b600080fd5b6101e76101e2366004611e88565b61045e565b60405190151581526020015b60405180910390f35b610204610489565b6040516101f39190611ef5565b61022461021f366004611f08565b61051b565b6040516001600160a01b0390911681526020016101f3565b61024f61024a366004611f36565b610542565b005b610160545b6040519081526020016101f3565b6102567ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb181565b61024f610299366004611f62565b61065c565b6102566102ac366004611f08565b61068d565b6101e76102bf366004611f08565b61077f565b6102567f000000000000000000000000000000000000000000000000000000000000000081565b61024f6102f9366004611f62565b610842565b61024f61084d565b61024f610314366004611f62565b6109dc565b6101e7610327366004611fa3565b6109f7565b6101e7610b01565b610224610342366004611f08565b610b9a565b6102247f000000000000000000000000000000000000000000000000000000000000000081565b61025661037c366004611fa3565b610bfa565b61024f610c80565b61024f610d90565b6101e761039f366004611fc0565b610f1c565b61020461101a565b61024f6103ba366004611ffe565b611029565b6103d26103cd36600461202c565b611038565b6040516101f391906120a1565b61024f6103ed366004612119565b61112d565b610204610400366004611f08565b611165565b6101e76104133660046121f9565b6001600160a01b039182166000908152609c6020908152604080832093909416825291909152205460ff1690565b61025661015f5481565b6101e7610459366004611f62565b6111d8565b60006001600160e01b03198216633cdf447360e21b1480610483575061048382611382565b92915050565b60606097805461049890612227565b80601f01602080910402602001604051908101604052809291908181526020018280546104c490612227565b80156105115780601f106104e657610100808354040283529160200191610511565b820191906000526020600020905b8154815290600101906020018083116104f457829003601f168201915b5050505050905090565b6000610526826113a7565b506000908152609b60205260409020546001600160a01b031690565b600061054d82610b9a565b9050806001600160a01b0316836001600160a01b0316036105bf5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105db57506105db8133610413565b61064d5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016105b6565b6106578383611406565b505050565b6106663382611474565b6106825760405162461bcd60e51b81526004016105b690612261565b6106578383836114f3565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071191906122af565b6001600160a01b031663248a9ca3836040518263ffffffff1660e01b815260040161073e91815260200190565b602060405180830381865afa15801561075b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048391906122cc565b600061078f61015f5461039f3390565b806107bf57506107bf7ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb133610f1c565b6108315760405162461bcd60e51b815260206004820152603860248201527f477561726461626c653a20796f7520646f206e6f74206861766520746865207260448201527f6571756972656420726f6c657320746f20646f2074686973000000000000000060648201526084016105b6565b61083a8261169a565b506001919050565b6106578383836116df565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108de91906122af565b6001600160a01b031614806109855750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097a91906122af565b6001600160a01b0316145b6109d15760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c790060448201526064016105b6565b6109d9611736565b50565b6106578383836040518060200160405280600081525061112d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ceab3b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7b91906122af565b6001600160a01b031663253bd7b783610a946101605490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015610add573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048391906122e5565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8591906122e5565b80610b9557505060335460ff1690565b905090565b6000818152609960205260408120546001600160a01b0316806104835760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b6565b60006001600160a01b038216610c645760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105b6565b506001600160a01b03166000908152609a602052604090205490565b600054610100900460ff1615808015610ca05750600054600160ff909116105b80610cba5750303b158015610cba575060005460ff166001145b610d1d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105b6565b6000805460ff191660011790558015610d40576000805461ff0019166101001790555b610d48611788565b80156109d9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2191906122af565b6001600160a01b03161480610ec85750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd91906122af565b6001600160a01b0316145b610f145760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c790060448201526064016105b6565b6109d96117f1565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa091906122af565b604051632474521560e21b8152600481018590526001600160a01b03848116602483015291909116906391d1485490604401602060405180830381865afa158015610fef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101391906122e5565b9392505050565b60606098805461049890612227565b61103433838361182e565b5050565b60608167ffffffffffffffff81111561105357611053612103565b60405190808252806020026020018201604052801561108657816020015b60608152602001906001900390816110715790505b50905060005b82811015611126576110f6308585848181106110aa576110aa612302565b90506020028101906110bc9190612318565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118fc92505050565b82828151811061110857611108612302565b6020026020010181905250808061111e9061237c565b91505061108c565b5092915050565b6111373383611474565b6111535760405162461bcd60e51b81526004016105b690612261565b61115f848484846119f0565b50505050565b6060611170826113a7565b600061118760408051602081019091526000815290565b905060008151116111a75760405180602001604052806000815250611013565b806111b184611a23565b6040516020016111c2929190612395565b6040516020818303038152906040529392505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ceab3b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125d91906122af565b9050600061126b6101605490565b90506001600160a01b03861615806112ef575060405163253bd7b760e01b81526001600160a01b0387811660048301526024820183905283169063253bd7b790604401602060405180830381865afa1580156112cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ef91906122e5565b801561137857506001600160a01b0385161580611378575060405163253bd7b760e01b81526001600160a01b0386811660048301526024820183905283169063253bd7b790604401602060405180830381865afa158015611354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137891906122e5565b9695505050505050565b60006001600160e01b03198216630e46e23b60e31b1480610483575061048382611b24565b6000818152609960205260409020546001600160a01b03166109d95760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b6565b6000818152609b6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061143b82610b9a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061148083610b9a565b9050806001600160a01b0316846001600160a01b031614806114c757506001600160a01b038082166000908152609c602090815260408083209388168352929052205460ff165b806114eb5750836001600160a01b03166114e08461051b565b6001600160a01b0316145b949350505050565b826001600160a01b031661150682610b9a565b6001600160a01b03161461156a5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016105b6565b6001600160a01b0382166115cc5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105b6565b6115d78383836116df565b6115e2600082611406565b6001600160a01b0383166000908152609a6020526040812080546001929061160b9084906123c4565b90915550506001600160a01b0382166000908152609a602052604081208054600192906116399084906123d7565b909155505060008181526099602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61016054604080519182526020820183905233917f53f0b6b34c97fd1733ccb4b21aea7549d7ad3a83e6316864417b8cc1a9a9a807910160405180910390a261016055565b6116ea8383836111d8565b6106575760405162461bcd60e51b815260206004820152601f60248201527f45524337323147756172643a204d495353494e475f50524956494c454745530060448201526064016105b6565b61173e611b49565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166117af5760405162461bcd60e51b81526004016105b6906123ea565b6117b7611b94565b6117bf611b94565b6117c7611bbb565b6117cf611b94565b6117d7611b94565b6117df611b94565b6117e7611c4d565b6117ef611b94565b565b6117f9611c80565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861176b3390565b816001600160a01b0316836001600160a01b03160361188f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105b6565b6001600160a01b038381166000818152609c6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60606001600160a01b0383163b6119645760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105b6565b600080846001600160a01b03168460405161197f9190612435565b600060405180830381855af49150503d80600081146119ba576040519150601f19603f3d011682016040523d82523d6000602084013e6119bf565b606091505b50915091506119e7828260405180606001604052806027815260200161253260279139611cc8565b95945050505050565b6119fb8484846114f3565b611a0784848484611d01565b61115f5760405162461bcd60e51b81526004016105b690612451565b606081600003611a4a5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611a745780611a5e8161237c565b9150611a6d9050600a836124b9565b9150611a4e565b60008167ffffffffffffffff811115611a8f57611a8f612103565b6040519080825280601f01601f191660200182016040528015611ab9576020820181803683370190505b5090505b84156114eb57611ace6001836123c4565b9150611adb600a866124cd565b611ae69060306123d7565b60f81b818381518110611afb57611afb612302565b60200101906001600160f81b031916908160001a905350611b1d600a866124b9565b9450611abd565b60006001600160e01b0319821663b55bd4f760e01b1480610483575061048382611e02565b611b51610b01565b6117ef5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105b6565b600054610100900460ff166117ef5760405162461bcd60e51b81526004016105b6906123ea565b600054610100900460ff16611be25760405162461bcd60e51b81526004016105b6906123ea565b6040516bffffffffffffffffffffffff193060601b1660208201527ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb1603482015260540160408051601f19818403018152919052805160209091012061015f556117ef60001961169a565b600054610100900460ff16611c745760405162461bcd60e51b81526004016105b6906123ea565b6033805460ff19169055565b611c88610b01565b156117ef5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105b6565b60608315611cd7575081611013565b825115611ce75782518084602001fd5b8160405162461bcd60e51b81526004016105b69190611ef5565b60006001600160a01b0384163b15611df757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611d459033908990889088906004016124e1565b6020604051808303816000875af1925050508015611d80575060408051601f3d908101601f19168201909252611d7d91810190612514565b60015b611ddd573d808015611dae576040519150601f19603f3d011682016040523d82523d6000602084013e611db3565b606091505b508051600003611dd55760405162461bcd60e51b81526004016105b690612451565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506114eb565b506001949350505050565b60006001600160e01b0319821663d86f1ca160e01b148061048357506104838260006001600160e01b031982166380ac58cd60e01b1480611e5357506001600160e01b03198216635b5e139f60e01b145b8061048357506301ffc9a760e01b6001600160e01b0319831614610483565b6001600160e01b0319811681146109d957600080fd5b600060208284031215611e9a57600080fd5b813561101381611e72565b60005b83811015611ec0578181015183820152602001611ea8565b50506000910152565b60008151808452611ee1816020860160208601611ea5565b601f01601f19169290920160200192915050565b6020815260006110136020830184611ec9565b600060208284031215611f1a57600080fd5b5035919050565b6001600160a01b03811681146109d957600080fd5b60008060408385031215611f4957600080fd5b8235611f5481611f21565b946020939093013593505050565b600080600060608486031215611f7757600080fd5b8335611f8281611f21565b92506020840135611f9281611f21565b929592945050506040919091013590565b600060208284031215611fb557600080fd5b813561101381611f21565b60008060408385031215611fd357600080fd5b823591506020830135611fe581611f21565b809150509250929050565b80151581146109d957600080fd5b6000806040838503121561201157600080fd5b823561201c81611f21565b91506020830135611fe581611ff0565b6000806020838503121561203f57600080fd5b823567ffffffffffffffff8082111561205757600080fd5b818501915085601f83011261206b57600080fd5b81358181111561207a57600080fd5b8660208260051b850101111561208f57600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156120f657603f198886030184526120e4858351611ec9565b945092850192908501906001016120c8565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561212f57600080fd5b843561213a81611f21565b9350602085013561214a81611f21565b925060408501359150606085013567ffffffffffffffff8082111561216e57600080fd5b818701915087601f83011261218257600080fd5b81358181111561219457612194612103565b604051601f8201601f19908116603f011681019083821181831017156121bc576121bc612103565b816040528281528a60208487010111156121d557600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561220c57600080fd5b823561221781611f21565b91506020830135611fe581611f21565b600181811c9082168061223b57607f821691505b60208210810361225b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000602082840312156122c157600080fd5b815161101381611f21565b6000602082840312156122de57600080fd5b5051919050565b6000602082840312156122f757600080fd5b815161101381611ff0565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261232f57600080fd5b83018035915067ffffffffffffffff82111561234a57600080fd5b60200191503681900382131561235f57600080fd5b9250929050565b634e487b7160e01b600052601160045260246000fd5b60006001820161238e5761238e612366565b5060010190565b600083516123a7818460208801611ea5565b8351908301906123bb818360208801611ea5565b01949350505050565b8181038181111561048357610483612366565b8082018082111561048357610483612366565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251612447818460208701611ea5565b9190910192915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826124c8576124c86124a3565b500490565b6000826124dc576124dc6124a3565b500690565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061137890830184611ec9565b60006020828403121561252657600080fd5b815161101381611e7256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000812000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635c975abb1161010457806395d89b41116100a2578063c87b56dd11610071578063c87b56dd146103f2578063e985e9c514610405578063eec47d6014610441578063f37d11cc1461044b57600080fd5b806395d89b41146103a4578063a22cb465146103ac578063ac9650d8146103bf578063b88d4fde146103df57600080fd5b806370a08231116100de57806370a082311461036e5780638129fc1c146103815780638456cb591461038957806391d148541461039157600080fd5b80635c975abb1461032c5780636352211e1461033457806363727fc21461034757600080fd5b8063248a9ca3116101715780632b41de811161014b5780632b41de81146102eb5780633f4ba83a146102fe57806342842e0e146103065780634b63885a1461031957600080fd5b8063248a9ca31461029e5780632772ce9d146102b15780632a7a0c68146102c457600080fd5b8063095ea7b3116101ad578063095ea7b31461023c5780631e26571f14610251578063227102a61461026457806323b872dd1461028b57600080fd5b806301ffc9a7146101d457806306fdde03146101fc578063081812fc14610211575b600080fd5b6101e76101e2366004611e88565b61045e565b60405190151581526020015b60405180910390f35b610204610489565b6040516101f39190611ef5565b61022461021f366004611f08565b61051b565b6040516001600160a01b0390911681526020016101f3565b61024f61024a366004611f36565b610542565b005b610160545b6040519081526020016101f3565b6102567ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb181565b61024f610299366004611f62565b61065c565b6102566102ac366004611f08565b61068d565b6101e76102bf366004611f08565b61077f565b6102567f000000000000000000000000000000000000000000000000000000000000000081565b61024f6102f9366004611f62565b610842565b61024f61084d565b61024f610314366004611f62565b6109dc565b6101e7610327366004611fa3565b6109f7565b6101e7610b01565b610224610342366004611f08565b610b9a565b6102247f000000000000000000000000000000000000000000000000000000000000000081565b61025661037c366004611fa3565b610bfa565b61024f610c80565b61024f610d90565b6101e761039f366004611fc0565b610f1c565b61020461101a565b61024f6103ba366004611ffe565b611029565b6103d26103cd36600461202c565b611038565b6040516101f391906120a1565b61024f6103ed366004612119565b61112d565b610204610400366004611f08565b611165565b6101e76104133660046121f9565b6001600160a01b039182166000908152609c6020908152604080832093909416825291909152205460ff1690565b61025661015f5481565b6101e7610459366004611f62565b6111d8565b60006001600160e01b03198216633cdf447360e21b1480610483575061048382611382565b92915050565b60606097805461049890612227565b80601f01602080910402602001604051908101604052809291908181526020018280546104c490612227565b80156105115780601f106104e657610100808354040283529160200191610511565b820191906000526020600020905b8154815290600101906020018083116104f457829003601f168201915b5050505050905090565b6000610526826113a7565b506000908152609b60205260409020546001600160a01b031690565b600061054d82610b9a565b9050806001600160a01b0316836001600160a01b0316036105bf5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105db57506105db8133610413565b61064d5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016105b6565b6106578383611406565b505050565b6106663382611474565b6106825760405162461bcd60e51b81526004016105b690612261565b6106578383836114f3565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071191906122af565b6001600160a01b031663248a9ca3836040518263ffffffff1660e01b815260040161073e91815260200190565b602060405180830381865afa15801561075b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048391906122cc565b600061078f61015f5461039f3390565b806107bf57506107bf7ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb133610f1c565b6108315760405162461bcd60e51b815260206004820152603860248201527f477561726461626c653a20796f7520646f206e6f74206861766520746865207260448201527f6571756972656420726f6c657320746f20646f2074686973000000000000000060648201526084016105b6565b61083a8261169a565b506001919050565b6106578383836116df565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108de91906122af565b6001600160a01b031614806109855750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097a91906122af565b6001600160a01b0316145b6109d15760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c790060448201526064016105b6565b6109d9611736565b50565b6106578383836040518060200160405280600081525061112d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ceab3b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7b91906122af565b6001600160a01b031663253bd7b783610a946101605490565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381865afa158015610add573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048391906122e5565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8591906122e5565b80610b9557505060335460ff1690565b905090565b6000818152609960205260408120546001600160a01b0316806104835760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b6565b60006001600160a01b038216610c645760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105b6565b506001600160a01b03166000908152609a602052604090205490565b600054610100900460ff1615808015610ca05750600054600160ff909116105b80610cba5750303b158015610cba575060005460ff166001145b610d1d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105b6565b6000805460ff191660011790558015610d40576000805461ff0019166101001790555b610d48611788565b80156109d9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000339050806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ee97f7f36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2191906122af565b6001600160a01b03161480610ec85750806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632d37ead56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd91906122af565b6001600160a01b0316145b610f145760405162461bcd60e51b815260206004820152601f60248201527f534f4d413a204d4153544552206f7220535542204d4153544552206f6e6c790060448201526064016105b6565b6109d96117f1565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa091906122af565b604051632474521560e21b8152600481018590526001600160a01b03848116602483015291909116906391d1485490604401602060405180830381865afa158015610fef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101391906122e5565b9392505050565b60606098805461049890612227565b61103433838361182e565b5050565b60608167ffffffffffffffff81111561105357611053612103565b60405190808252806020026020018201604052801561108657816020015b60608152602001906001900390816110715790505b50905060005b82811015611126576110f6308585848181106110aa576110aa612302565b90506020028101906110bc9190612318565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118fc92505050565b82828151811061110857611108612302565b6020026020010181905250808061111e9061237c565b91505061108c565b5092915050565b6111373383611474565b6111535760405162461bcd60e51b81526004016105b690612261565b61115f848484846119f0565b50505050565b6060611170826113a7565b600061118760408051602081019091526000815290565b905060008151116111a75760405180602001604052806000815250611013565b806111b184611a23565b6040516020016111c2929190612395565b6040516020818303038152906040529392505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637ceab3b16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611239573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125d91906122af565b9050600061126b6101605490565b90506001600160a01b03861615806112ef575060405163253bd7b760e01b81526001600160a01b0387811660048301526024820183905283169063253bd7b790604401602060405180830381865afa1580156112cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ef91906122e5565b801561137857506001600160a01b0385161580611378575060405163253bd7b760e01b81526001600160a01b0386811660048301526024820183905283169063253bd7b790604401602060405180830381865afa158015611354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137891906122e5565b9695505050505050565b60006001600160e01b03198216630e46e23b60e31b1480610483575061048382611b24565b6000818152609960205260409020546001600160a01b03166109d95760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b6565b6000818152609b6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061143b82610b9a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061148083610b9a565b9050806001600160a01b0316846001600160a01b031614806114c757506001600160a01b038082166000908152609c602090815260408083209388168352929052205460ff165b806114eb5750836001600160a01b03166114e08461051b565b6001600160a01b0316145b949350505050565b826001600160a01b031661150682610b9a565b6001600160a01b03161461156a5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016105b6565b6001600160a01b0382166115cc5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105b6565b6115d78383836116df565b6115e2600082611406565b6001600160a01b0383166000908152609a6020526040812080546001929061160b9084906123c4565b90915550506001600160a01b0382166000908152609a602052604081208054600192906116399084906123d7565b909155505060008181526099602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61016054604080519182526020820183905233917f53f0b6b34c97fd1733ccb4b21aea7549d7ad3a83e6316864417b8cc1a9a9a807910160405180910390a261016055565b6116ea8383836111d8565b6106575760405162461bcd60e51b815260206004820152601f60248201527f45524337323147756172643a204d495353494e475f50524956494c454745530060448201526064016105b6565b61173e611b49565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff166117af5760405162461bcd60e51b81526004016105b6906123ea565b6117b7611b94565b6117bf611b94565b6117c7611bbb565b6117cf611b94565b6117d7611b94565b6117df611b94565b6117e7611c4d565b6117ef611b94565b565b6117f9611c80565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861176b3390565b816001600160a01b0316836001600160a01b03160361188f5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105b6565b6001600160a01b038381166000818152609c6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60606001600160a01b0383163b6119645760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105b6565b600080846001600160a01b03168460405161197f9190612435565b600060405180830381855af49150503d80600081146119ba576040519150601f19603f3d011682016040523d82523d6000602084013e6119bf565b606091505b50915091506119e7828260405180606001604052806027815260200161253260279139611cc8565b95945050505050565b6119fb8484846114f3565b611a0784848484611d01565b61115f5760405162461bcd60e51b81526004016105b690612451565b606081600003611a4a5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611a745780611a5e8161237c565b9150611a6d9050600a836124b9565b9150611a4e565b60008167ffffffffffffffff811115611a8f57611a8f612103565b6040519080825280601f01601f191660200182016040528015611ab9576020820181803683370190505b5090505b84156114eb57611ace6001836123c4565b9150611adb600a866124cd565b611ae69060306123d7565b60f81b818381518110611afb57611afb612302565b60200101906001600160f81b031916908160001a905350611b1d600a866124b9565b9450611abd565b60006001600160e01b0319821663b55bd4f760e01b1480610483575061048382611e02565b611b51610b01565b6117ef5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105b6565b600054610100900460ff166117ef5760405162461bcd60e51b81526004016105b6906123ea565b600054610100900460ff16611be25760405162461bcd60e51b81526004016105b6906123ea565b6040516bffffffffffffffffffffffff193060601b1660208201527ff28c151dcc22c5bfb460fbc387993d6c0d1c1245ca20aca5f3cbd33f33041eb1603482015260540160408051601f19818403018152919052805160209091012061015f556117ef60001961169a565b600054610100900460ff16611c745760405162461bcd60e51b81526004016105b6906123ea565b6033805460ff19169055565b611c88610b01565b156117ef5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105b6565b60608315611cd7575081611013565b825115611ce75782518084602001fd5b8160405162461bcd60e51b81526004016105b69190611ef5565b60006001600160a01b0384163b15611df757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611d459033908990889088906004016124e1565b6020604051808303816000875af1925050508015611d80575060408051601f3d908101601f19168201909252611d7d91810190612514565b60015b611ddd573d808015611dae576040519150601f19603f3d011682016040523d82523d6000602084013e611db3565b606091505b508051600003611dd55760405162461bcd60e51b81526004016105b690612451565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506114eb565b506001949350505050565b60006001600160e01b0319821663d86f1ca160e01b148061048357506104838260006001600160e01b031982166380ac58cd60e01b1480611e5357506001600160e01b03198216635b5e139f60e01b145b8061048357506301ffc9a760e01b6001600160e01b0319831614610483565b6001600160e01b0319811681146109d957600080fd5b600060208284031215611e9a57600080fd5b813561101381611e72565b60005b83811015611ec0578181015183820152602001611ea8565b50506000910152565b60008151808452611ee1816020860160208601611ea5565b601f01601f19169290920160200192915050565b6020815260006110136020830184611ec9565b600060208284031215611f1a57600080fd5b5035919050565b6001600160a01b03811681146109d957600080fd5b60008060408385031215611f4957600080fd5b8235611f5481611f21565b946020939093013593505050565b600080600060608486031215611f7757600080fd5b8335611f8281611f21565b92506020840135611f9281611f21565b929592945050506040919091013590565b600060208284031215611fb557600080fd5b813561101381611f21565b60008060408385031215611fd357600080fd5b823591506020830135611fe581611f21565b809150509250929050565b80151581146109d957600080fd5b6000806040838503121561201157600080fd5b823561201c81611f21565b91506020830135611fe581611ff0565b6000806020838503121561203f57600080fd5b823567ffffffffffffffff8082111561205757600080fd5b818501915085601f83011261206b57600080fd5b81358181111561207a57600080fd5b8660208260051b850101111561208f57600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156120f657603f198886030184526120e4858351611ec9565b945092850192908501906001016120c8565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561212f57600080fd5b843561213a81611f21565b9350602085013561214a81611f21565b925060408501359150606085013567ffffffffffffffff8082111561216e57600080fd5b818701915087601f83011261218257600080fd5b81358181111561219457612194612103565b604051601f8201601f19908116603f011681019083821181831017156121bc576121bc612103565b816040528281528a60208487010111156121d557600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561220c57600080fd5b823561221781611f21565b91506020830135611fe581611f21565b600181811c9082168061223b57607f821691505b60208210810361225b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000602082840312156122c157600080fd5b815161101381611f21565b6000602082840312156122de57600080fd5b5051919050565b6000602082840312156122f757600080fd5b815161101381611ff0565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261232f57600080fd5b83018035915067ffffffffffffffff82111561234a57600080fd5b60200191503681900382131561235f57600080fd5b9250929050565b634e487b7160e01b600052601160045260246000fd5b60006001820161238e5761238e612366565b5060010190565b600083516123a7818460208801611ea5565b8351908301906123bb818360208801611ea5565b01949350505050565b8181038181111561048357610483612366565b8082018082111561048357610483612366565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008251612447818460208701611ea5565b9190910192915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826124c8576124c86124a3565b500490565b6000826124dc576124dc6124a3565b500690565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061137890830184611ec9565b60006020828403121561252657600080fd5b815161101381611e7256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a164736f6c6343000812000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
