[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint96", "name": "previousBalance", "type": "uint96" }, { "indexed": false, "internalType": "uint96", "name": "newBalance", "type": "uint96" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PRE_MINE_SUPPLY", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "checkpoints", "outputs": [ { "internalType": "uint32", "name": "id", "type": "uint32" }, { "internalType": "uint96", "name": "votes", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_delegatee", "type": "address" }, { "internalType": "uint256", "name": "_nonce", "type": "uint256" }, { "internalType": "uint256", "name": "_expiry", "type": "uint256" }, { "internalType": "bytes", "name": "_signature", "type": "bytes" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getCurrentVotes", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_blockNumber", "type": "uint256" } ], "name": "getPriorVotes", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "issuedSupply", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "issuer", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ownershipTransferred", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_value", "type": "uint256" }, { "internalType": "uint256", "name": "_nonce", "type": "uint256" }, { "internalType": "uint256", "name": "_expiry", "type": "uint256" }, { "internalType": "bytes", "name": "_signature", "type": "bytes" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_derivaDEXProxy", "type": "address" } ], "name": "transferOwnershipToDerivaDEXProxy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50600180546001600160a01b031916339081179091556200003e906a295be96e6406697200000062000044565b62000912565b6001600160a01b038216620000765760405162461bcd60e51b81526004016200006d9062000700565b60405180910390fd5b6001600160a01b038216600090815260036020908152604090912054620000b4916001600160601b0390911690839062001755620001da821b17901c565b6001600160a01b0383166000908152600360209081526040822080546001600160601b0319166001600160601b039485161790559054620001029216908390620001da811b6200175517901c565b600080546001600160601b0319166001600160601b0392831617908190556200014a916c010000000000000000000000009091041682620001da602090811b6200175517901c565b6000600c6101000a8154816001600160601b0302191690836001600160601b03160217905550816001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001b6919062000779565b60405180910390a3620001d66000620001cf8462000229565b836200026e565b5050565b600080620001e983856200079f565b9050836001600160601b0316816001600160601b03161015620002205760405162461bcd60e51b81526004016200006d90620007da565b90505b92915050565b6001600160a01b038181166000908152600460205260408120549091166200024f575090565b506001600160a01b039081166000908152600460205260409020541690565b816001600160a01b0316836001600160a01b0316141580156200029a57506000816001600160601b0316115b1562000416576001600160a01b038316156200035b576001600160a01b0383166000908152600660205260408120549081620002d857600062000321565b6001600160a01b038516600090815260056020526040812090620002fe60018562000816565b815260208101919091526040016000205464010000000090046001600160601b03165b905060006200034884836001600160601b03166200041b60201b620017a01790919060201c565b90506200035786838362000465565b5050505b6001600160a01b0382161562000416576001600160a01b038216600090815260066020526040812054908162000393576000620003dc565b6001600160a01b038416600090815260056020526040812090620003b960018562000816565b815260208101919091526040016000205464010000000090046001600160601b03165b905060006200040384836001600160601b0316620001da60201b620017551790919060201c565b90506200041285838362000465565b5050505b505050565b60006200022083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200066b60201b60201c565b6000620004ae436040518060400160405280601581526020017f4444583a206578636565647320333220626974732e0000000000000000000000815250620006bf60201b60201c565b6001600160a01b03851660009081526006602052604090205490915080158015906200051b57506001600160a01b038516600090815260056020526040812063ffffffff8416916200050260018562000816565b815260208101919091526040016000205463ffffffff16145b1562000583576001600160a01b038516600090815260056020526040812084916200054860018562000816565b815260200190815260200160002060000160046101000a8154816001600160601b0302191690836001600160601b031602179055506200061f565b60408051808201825263ffffffff80851682526001600160601b0380871660208085019182526001600160a01b038b16600090815260058252868120888252825295909520935184549151909216640100000000026001600160801b0319909116919092161717905562000605908290600190620017e2620006f2821b17901c565b6001600160a01b0386166000908152600660205260409020555b846001600160a01b03167f664ef4a22338e827df5b675ec1747eac10c2ea611e1c575f3d96c38a2e24231e85856040516200065c92919062000844565b60405180910390a25050505050565b6000836001600160601b0316836001600160601b031611158290620006a55760405162461bcd60e51b81526004016200006d9190620008cb565b506000620006b48486620008de565b9150505b9392505050565b6000816401000000008410620006ea5760405162461bcd60e51b81526004016200006d9190620008cb565b509192915050565b6000620002208284620008fc565b602080825281016200022381602981527f4444583a2063616e6e6f74207472616e7366657220746f20746865207a65726f6020820152681030b2323932b9b99760b91b604082015260600190565b600062000223620007656001600160601b03841681565b90565b62000773816200074e565b82525050565b6020810162000223828462000768565b634e487b7160e01b600052601160045260246000fd5b60006001600160601b03821691506001600160601b0383169250826001600160601b0303821115620007d557620007d562000789565b500190565b602080825281016200022381601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b6000825b9250828210156200082f576200082f62000789565b500390565b6001600160601b03811662000773565b6040810162000854828562000834565b620006b8602083018462000834565b60005b838110156200088057818101518382015260200162000866565b8381111562000890576000848401525b50505050565b6000620008a1825190565b808452602084019350620008ba81856020860162000863565b601f01601f19169290920192915050565b6020808252810162000220818462000896565b60006001600160601b03821691506001600160601b0383166200081a565b60008219821115620007d557620007d562000789565b612f2780620009226000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80635c19a95c116101045780637ecebe00116100a2578063b4b5ea5711610071578063b4b5ea5714610547578063dd62ed3e1461055a578063e6cfe6fc146105a1578063e961b94a146105ca57600080fd5b80637ecebe00146104c557806395d89b41146104e5578063a457c2d714610521578063a9059cbb1461053457600080fd5b80636fcfff45116100de5780636fcfff451461043b57806370a0823114610468578063782d6fe11461049f57806379cc6790146104b257600080fd5b80635c19a95c146103fd57806361a1007c146104105780636291f5721461042357600080fd5b8063313ce5671161017c57806342966c681161014b57806342966c68146103725780634a9e3e131461038557806354fd4d5014610398578063587cde1e146103d457600080fd5b8063313ce5671461032557806332cb6b0c1461033a578063395093511461034c57806340c10f191461035f57600080fd5b80630f5730f1116101b85780630f5730f1146102a857806318160ddd146102bd5780631d143848146102f257806323b872dd1461031257600080fd5b806306fdde03146101df578063095ea7b3146102315780630cdfebfa14610251575b600080fd5b61021b6040518060400160405280600981526020017f44657269766144414f000000000000000000000000000000000000000000000081525081565b604051610228919061231b565b60405180910390f35b61024461023f36600461236d565b6105dc565b60405161022891906123b4565b61029a61025f36600461236d565b600560209081526000928352604080842090915290825290205463ffffffff81169064010000000090046bffffffffffffffffffffffff1682565b6040516102289291906123e2565b6102bb6102b6366004612519565b6106fb565b005b6000546102e5906c0100000000000000000000000090046bffffffffffffffffffffffff1681565b60405161022891906125ac565b600154610305906001600160a01b031681565b60405161022891906125c3565b6102446103203660046125d1565b610ac6565b61032d601281565b604051610228919061262a565b6102e56a52b7d2dcc80cd2e400000081565b61024461035a36600461236d565b610c3a565b6102bb61036d36600461236d565b610d7a565b6102bb610380366004612638565b610e67565b6102bb610393366004612659565b610ed5565b61021b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b6103056103e23660046126d8565b6004602052600090815260409020546001600160a01b031681565b6102bb61040b3660046126d8565b6110b3565b6102bb61041e3660046126d8565b6110c0565b6000546102e5906bffffffffffffffffffffffff1681565b61045b6104493660046126d8565b60066020526000908152604090205481565b60405161022891906126ff565b61045b6104763660046126d8565b6001600160a01b03166000908152600360205260409020546bffffffffffffffffffffffff1690565b6102e56104ad36600461236d565b6111cd565b6102bb6104c036600461236d565b611404565b61045b6104d33660046126d8565b60076020526000908152604090205481565b61021b6040518060400160405280600381526020017f444458000000000000000000000000000000000000000000000000000000000081525081565b61024461052f36600461236d565b61158a565b61024461054236600461236d565b611668565b6102e56105553660046126d8565b6116de565b61045b61056836600461270d565b6001600160a01b0391821660009081526002602090815260408083209390941682529190915220546bffffffffffffffffffffffff1690565b600054610244907801000000000000000000000000000000000000000000000000900460ff1681565b6102e56a295be96e6406697200000081565b60006001600160a01b03831661060d5760405162461bcd60e51b81526004016106049061279d565b60405180910390fd5b6000600019830361062b57506bffffffffffffffffffffffff61066d565b61066a836040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e000000008152506117ee565b90505b3360008181526002602090815260408083206001600160a01b03891680855292529182902080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff861617905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106e79087906126ff565b60405180910390a360019150505b92915050565b60006107cb6040518060400160405280600981526020017f44657269766144414f00000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506107734690565b308351602094850120835193850193909320604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f815295860194909452928401929092526060830152608082015260a0902090565b905060006108026040518060800160405280896001600160a01b031681526020018881526020018781526020018681525083611826565b9050600083600081518110610819576108196127ad565b016020015160f81c9050600061083085600161186f565b9050600061083f86602161186f565b90507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08111156108815760405162461bcd60e51b815260040161060490612836565b8260ff16601b1415801561089957508260ff16601c14155b156108b65760405162461bcd60e51b8152600401610604906128a0565b6000600185858585604051600081526020016040526040516108db94939291906128b0565b6020604051602081039080840390855afa1580156108fd573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166109305760405162461bcd60e51b81526004016106049061291c565b6001600160a01b03811660009081526007602052604081208054916109548361295b565b9190505589146109765760405162461bcd60e51b8152600401610604906129a9565b874211156109965760405162461bcd60e51b8152600401610604906129ed565b60006000198b036109b457506bffffffffffffffffffffffff6109f6565b6109f38b6040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e000000008152506117ee565b90505b8060026000846001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508b6001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258d604051610ab091906126ff565b60405180910390a3505050505050505050505050565b6001600160a01b03831660009081526002602090815260408083203384529091528120546bffffffffffffffffffffffff168160018401610b1457506bffffffffffffffffffffffff610b56565b610b53846040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e000000008152506117ee565b90505b336001600160a01b03871614801590610b7d57506bffffffffffffffffffffffff82811614155b15610c21576000610b9c6bffffffffffffffffffffffff8416836117a0565b6001600160a01b03881660008181526002602090815260408083203380855292529182902080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff86161790559051929350917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c17908590612a23565b60405180910390a3505b610c2c8686836118b2565b6001925050505b9392505050565b60006001600160a01b038316610c625760405162461bcd60e51b81526004016106049061279d565b60006000198303610c8057506bffffffffffffffffffffffff610cc2565b610cbf836040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e000000008152506117ee565b90505b3360009081526002602090815260408083206001600160a01b0388168452909152902054610cfe906bffffffffffffffffffffffff1682611755565b3360008181526002602090815260408083206001600160a01b038a1680855292529182902080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff959095169485179055905190927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916106e79190612a23565b6001546001600160a01b03163314610da45760405162461bcd60e51b815260040161060490612a65565b60006000198203610dc257506bffffffffffffffffffffffff610e04565b610e01826040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e000000008152506117ee565b90505b6000546a52b7d2dcc80cd2e400000090610e2c906bffffffffffffffffffffffff1683611755565b6bffffffffffffffffffffffff161115610e585760405162461bcd60e51b815260040161060490612aa9565b610e628382611a19565b505050565b60006000198203610e8557506bffffffffffffffffffffffff610ec7565b610ec4826040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e000000008152506117ee565b90505b610ed13382611b86565b5050565b6000610f4d6040518060400160405280600981526020017f44657269766144414f00000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506107734690565b90506000610f7e6040518060600160405280886001600160a01b031681526020018781526020018681525083611d12565b9050600083600081518110610f9557610f956127ad565b016020015160f81c90506000610fac85600161186f565b90506000610fbb86602161186f565b9050600060018585858560405160008152602001604052604051610fe294939291906128b0565b6020604051602081039080840390855afa158015611004573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110375760405162461bcd60e51b81526004016106049061291c565b6001600160a01b038116600090815260076020526040812080549161105b8361295b565b91905055891461107d5760405162461bcd60e51b8152600401610604906129a9565b8742111561109d5760405162461bcd60e51b8152600401610604906129ed565b6110a7818b611d21565b50505050505050505050565b6110bd3382611d21565b50565b6001546001600160a01b031633146110ea5760405162461bcd60e51b815260040161060490612b13565b6001600160a01b0381166111105760405162461bcd60e51b815260040161060490612b7d565b6000547801000000000000000000000000000000000000000000000000900460ff161561114f5760405162461bcd60e51b815260040161060490612be7565b600080547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000179055600180546001600160a01b039092167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179055565b60004382106111ee5760405162461bcd60e51b815260040161060490612c2b565b6001600160a01b038316600090815260066020526040812054908190036112195760009150506106f5565b6001600160a01b0384166000908152600560205260408120849161123e600185612c3b565b815260208101919091526040016000205463ffffffff16116112ae576001600160a01b03841660009081526005602052604081209061127e600184612c3b565b815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff1691506106f59050565b6001600160a01b038416600090815260056020908152604080832083805290915290205463ffffffff168310156112e95760009150506106f5565b6000806112f7600184612c3b565b90505b818111156113c057600060026113108484612c3b565b61131a9190612c85565b6113249083612c3b565b6001600160a01b038816600090815260056020908152604080832084845282529182902082518084019093525463ffffffff81168084526401000000009091046bffffffffffffffffffffffff169183019190915291925090879003611394576020015194506106f59350505050565b805163ffffffff168711156113ab578193506113b9565b6113b6600183612c3b565b92505b50506112fa565b506001600160a01b038516600090815260056020908152604080832093835292905220546bffffffffffffffffffffffff6401000000009091041691505092915050565b6001600160a01b03821660009081526002602090815260408083203384529091528120546bffffffffffffffffffffffff16906001830161145257506bffffffffffffffffffffffff611494565b611491836040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e000000008152506117ee565b90505b336001600160a01b038516148015906114bb57506bffffffffffffffffffffffff82811614155b1561157a5760006114f582604051806060016040528060238152602001612ecf602391396bffffffffffffffffffffffff86169190611dc8565b6001600160a01b03861660008181526002602090815260408083203380855292529182902080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff86161790559051929350917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611570908590612a23565b60405180910390a3505b6115848482611b86565b50505050565b60006001600160a01b0383166115b25760405162461bcd60e51b81526004016106049061279d565b600060001983036115d057506bffffffffffffffffffffffff611612565b61160f836040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e000000008152506117ee565b90505b610cfe81604051806060016040528060248152602001612eab602491393360009081526002602090815260408083206001600160a01b038b1684529091529020546bffffffffffffffffffffffff169190611dc8565b600080600019830361168757506bffffffffffffffffffffffff6116c9565b6116c6836040518060400160405280601c81526020017f4444583a20616d6f756e74206578636565647320393620626974732e000000008152506117ee565b90505b6116d43385836118b2565b5060019392505050565b6001600160a01b03811660009081526006602052604081205480611703576000610c33565b6001600160a01b038316600090815260056020526040812090611727600184612c3b565b815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff169392505050565b6000806117628385612c99565b9050836bffffffffffffffffffffffff16816bffffffffffffffffffffffff161015610c335760405162461bcd60e51b815260040161060490612d14565b6000610c3383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dc8565b6000610c338284612d24565b6000816c01000000000000000000000000841061181e5760405162461bcd60e51b8152600401610604919061231b565b509192915050565b6000610c338261183585611e1f565b6040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600061187c826020612d24565b8351101561189c5760405162461bcd60e51b815260040161060490612d91565b6118a7602083612d24565b929092015192915050565b6001600160a01b0383166118d85760405162461bcd60e51b815260040161060490612dfb565b6001600160a01b0382166118fe5760405162461bcd60e51b815260040161060490612e65565b6001600160a01b03831660009081526003602052604090205461192f906bffffffffffffffffffffffff16826117a0565b6001600160a01b0384811660009081526003602052604080822080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff9586161790559185168152205461197f911682611755565b6001600160a01b038381166000818152600360205260409081902080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff95909516949094179093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119f6908590612a23565b60405180910390a3610e62611a0a84611e63565b611a1384611e63565b83611ea7565b6001600160a01b038216611a3f5760405162461bcd60e51b815260040161060490612e65565b6001600160a01b038216600090815260036020526040902054611a70906bffffffffffffffffffffffff1682611755565b6001600160a01b038316600090815260036020526040812080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff93841617905554611ab8911682611755565b600080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff9283161790819055611afc916c010000000000000000000000009091041682611755565b6000600c6101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550816001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b709190612a23565b60405180910390a3610ed16000611a1384611e63565b6001600160a01b038216611bac5760405162461bcd60e51b815260040161060490612dfb565b60408051808201825260208082527f4444583a206e6f7420656e6f7567682062616c616e636520746f206275726e2e818301526001600160a01b038516600090815260039091529190912054611c14916bffffffffffffffffffffffff909116908390611dc8565b6001600160a01b038316600090815260036020526040812080546bffffffffffffffffffffffff19166bffffffffffffffffffffffff93841617905554611c6d916c0100000000000000000000000090910416826117a0565b600080546bffffffffffffffffffffffff929092166c01000000000000000000000000027fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff9092169190911781556040516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cf6908590612a23565b60405180910390a3610ed1611d0a83611e63565b600083611ea7565b6000610c33826118358561203c565b6000611d2c83611e63565b6001600160a01b03848116600081815260036020908152604080832054600490925280832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001689871690811790915590519596506bffffffffffffffffffffffff909116949093861692917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f91a4611584828483611ea7565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290611e095760405162461bcd60e51b8152600401610604919061231b565b506000611e168486612e75565b95945050505050565b60007f58e19c95adc541dea238d3211d11e11e7def7d0c7fda4e10e0c45eb224ef2fb76020831015611e4d57fe5b601f19909201805192815260a081209290525090565b6001600160a01b03818116600090815260046020526040812054909116611e88575090565b506001600160a01b039081166000908152600460205260409020541690565b816001600160a01b0316836001600160a01b031614158015611ed757506000816bffffffffffffffffffffffff16115b15610e62576001600160a01b03831615611f8a576001600160a01b0383166000908152600660205260408120549081611f11576000611f5d565b6001600160a01b038516600090815260056020526040812090611f35600185612c3b565b815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff165b90506000611f796bffffffffffffffffffffffff8316856117a0565b9050611f86868383612080565b5050505b6001600160a01b03821615610e62576001600160a01b0382166000908152600660205260408120549081611fbf57600061200b565b6001600160a01b038416600090815260056020526040812090611fe3600185612c3b565b815260208101919091526040016000205464010000000090046bffffffffffffffffffffffff165b905060006120276bffffffffffffffffffffffff831685611755565b9050612034858383612080565b505050505050565b60007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf602083101561206a57fe5b601f199092018051928152608081209290525090565b60006120c1436040518060400160405280601581526020017f4444583a206578636565647320333220626974732e0000000000000000000000815250612295565b6001600160a01b038516600090815260066020526040902054909150801580159061212b57506001600160a01b038516600090815260056020526040812063ffffffff841691612112600185612c3b565b815260208101919091526040016000205463ffffffff16145b15612199576001600160a01b03851660009081526005602052604081208491612155600185612c3b565b815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555061224b565b60408051808201825263ffffffff80851682526bffffffffffffffffffffffff80871660208085019182526001600160a01b038b1660009081526005825286812088825290915294909420925183549451909116640100000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909416908216179290921790556122319082906001906117e216565b6001600160a01b0386166000908152600660205260409020555b846001600160a01b03167f664ef4a22338e827df5b675ec1747eac10c2ea611e1c575f3d96c38a2e24231e8585604051612286929190612e9c565b60405180910390a25050505050565b600081640100000000841061181e5760405162461bcd60e51b8152600401610604919061231b565b60005b838110156122d85781810151838201526020016122c0565b838111156115845750506000910152565b60006122f3825190565b80845260208401935061230a8185602086016122bd565b601f01601f19169290920192915050565b60208082528101610c3381846122e9565b60006001600160a01b0382166106f5565b6123468161232c565b81146110bd57600080fd5b80356106f58161233d565b80612346565b80356106f58161235c565b6000806040838503121561238357612383600080fd5b600061238f8585612351565b92505060206123a085828601612362565b9150509250929050565b8015155b82525050565b602081016106f582846123aa565b63ffffffff81166123ae565b6bffffffffffffffffffffffff81166123ae565b604081016123f082856123c2565b610c3360208301846123ce565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715612452576124526123fd565b6040525050565b600061246460405190565b9050612470828261242c565b919050565b600067ffffffffffffffff82111561248f5761248f6123fd565b601f19601f83011660200192915050565b82818337506000910152565b60006124bf6124ba84612475565b612459565b9050828152602081018484840111156124da576124da600080fd5b6124e58482856124a0565b509392505050565b600082601f83011261250157612501600080fd5b81356125118482602086016124ac565b949350505050565b600080600080600060a0868803121561253457612534600080fd5b60006125408888612351565b955050602061255188828901612362565b945050604061256288828901612362565b935050606061257388828901612362565b925050608086013567ffffffffffffffff81111561259357612593600080fd5b61259f888289016124ed565b9150509295509295909350565b602081016106f582846123ce565b6123ae8161232c565b602081016106f582846125ba565b6000806000606084860312156125e9576125e9600080fd5b60006125f58686612351565b935050602061260686828701612351565b925050604061261786828701612362565b9150509250925092565b60ff81166123ae565b602081016106f58284612621565b60006020828403121561264d5761264d600080fd5b60006125118484612362565b6000806000806080858703121561267257612672600080fd5b600061267e8787612351565b945050602061268f87828801612362565b93505060406126a087828801612362565b925050606085013567ffffffffffffffff8111156126c0576126c0600080fd5b6126cc878288016124ed565b91505092959194509250565b6000602082840312156126ed576126ed600080fd5b60006125118484612351565b806123ae565b602081016106f582846126f9565b6000806040838503121561272357612723600080fd5b600061272f8585612351565b92505060206123a085828601612351565b602181526000602082017f4444583a20617070726f766520746f20746865207a65726f206164647265737381527f2e00000000000000000000000000000000000000000000000000000000000000602082015291505b5060400190565b602080825281016106f581612740565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602281526000602082017f45434453413a20696e76616c6964207369676e6174757265202773272076616c81527f756500000000000000000000000000000000000000000000000000000000000060208201529150612796565b602080825281016106f5816127dc565b602281526000602082017f45434453413a20696e76616c6964207369676e6174757265202776272076616c81527f756500000000000000000000000000000000000000000000000000000000000060208201529150612796565b602080825281016106f581612846565b608081016128be82876126f9565b6128cb6020830186612621565b6128d860408301856126f9565b611e1660608301846126f9565b601781526000602082017f4444583a20696e76616c6964207369676e61747572652e000000000000000000815291505b5060200190565b602080825281016106f5816128e5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000600019820361296e5761296e61292c565b5060010190565b601381526000602082017f4444583a20696e76616c6964206e6f6e63652e0000000000000000000000000081529150612915565b602080825281016106f581612975565b601781526000602082017f4444583a207369676e617475726520657870697265642e00000000000000000081529150612915565b602080825281016106f5816129b9565b60006106f5612a176bffffffffffffffffffffffff841681565b90565b6123ae816129fd565b602081016106f58284612a1a565b601781526000602082017f4444583a20756e617574686f72697a6564206d696e742e00000000000000000081529150612915565b602080825281016106f581612a31565b601281526000602082017f4444583a206361702065786365656465642e000000000000000000000000000081529150612915565b602080825281016106f581612a75565b602881526000602082017f4444583a20756e617574686f72697a6564207472616e73666572206f66206f7781527f6e6572736869702e00000000000000000000000000000000000000000000000060208201529150612796565b602080825281016106f581612ab9565b602281526000602082017f4444583a207472616e7366657272696e6720746f207a65726f2061646472657381527f732e00000000000000000000000000000000000000000000000000000000000060208201529150612796565b602080825281016106f581612b23565b602381526000602082017f4444583a206f776e65727368697020616c7265616479207472616e736665727281527f65642e000000000000000000000000000000000000000000000000000000000060208201529150612796565b602080825281016106f581612b8d565b601e81526000602082017f4444583a20626c6f636b206e6f74207965742064657465726d696e65642e000081529150612915565b602080825281016106f581612bf7565b6000825b925082821015612c5157612c5161292c565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612c9457612c94612c56565b500490565b60006bffffffffffffffffffffffff821691506bffffffffffffffffffffffff83169250826bffffffffffffffffffffffff03821115612cdb57612cdb61292c565b500190565b601b81526000602082017f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081529150612915565b602080825281016106f581612ce0565b60008219821115612cdb57612cdb61292c565b602681526000602082017f475245415445525f4f525f455155414c5f544f5f33325f4c454e4754485f524581527f515549524544000000000000000000000000000000000000000000000000000060208201529150612796565b602080825281016106f581612d37565b602b81526000602082017f4444583a2063616e6e6f74207472616e736665722066726f6d20746865207a6581527f726f20616464726573732e00000000000000000000000000000000000000000060208201529150612796565b602080825281016106f581612da1565b602981526000602082017f4444583a2063616e6e6f74207472616e7366657220746f20746865207a65726f81527f20616464726573732e000000000000000000000000000000000000000000000060208201529150612796565b602080825281016106f581612e0b565b60006bffffffffffffffffffffffff821691506bffffffffffffffffffffffff8316612c3f565b604081016123f082856123ce56fe4444583a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f2e4444583a206275726e20616d6f756e74206578636565647320616c6c6f77616e63652ea2646970667358221220324431684bd52faba3c62f8292ea41119fa73d28b727714d3b17a002188036e364736f6c634300080f0033