Loading
60806040523480156200001157600080fd5b5060405162001e0c38038062001e0c833981016040819052620000349162000193565b818160006200004483826200028c565b5060016200005382826200028c565b505050620000706200006a6200007860201b60201c565b6200007c565b505062000358565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000f657600080fd5b81516001600160401b0380821115620001135762000113620000ce565b604051601f8301601f19908116603f011681019082821181831017156200013e576200013e620000ce565b816040528381526020925086838588010111156200015b57600080fd5b600091505b838210156200017f578582018301518183018401529082019062000160565b600093810190920192909252949350505050565b60008060408385031215620001a757600080fd5b82516001600160401b0380821115620001bf57600080fd5b620001cd86838701620000e4565b93506020850151915080821115620001e457600080fd5b50620001f385828601620000e4565b9150509250929050565b600181811c908216806200021257607f821691505b6020821081036200023357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028757600081815260208120601f850160051c81016020861015620002625750805b601f850160051c820191505b8181101562000283578281556001016200026e565b5050505b505050565b81516001600160401b03811115620002a857620002a8620000ce565b620002c081620002b98454620001fd565b8462000239565b602080601f831160018114620002f85760008415620002df5750858301515b600019600386901b1c1916600185901b17855562000283565b600085815260208120601f198616915b82811015620003295788860151825594840194600190910190840162000308565b5085821015620003485787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611aa480620003686000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b2578063a22cb46511610081578063c87b56dd11610066578063c87b56dd1461026b578063e985e9c51461027e578063f2fde38b146102c757600080fd5b8063a22cb46514610245578063b88d4fde1461025857600080fd5b8063715018a6146102045780638da5cb5b1461020c57806395d89b411461022a578063a14481941461023257600080fd5b806323b872dd116100ee57806323b872dd146101aa57806342842e0e146101bd5780636352211e146101d057806370a08231146101e357600080fd5b806301ffc9a71461012057806306fdde0314610148578063081812fc1461015d578063095ea7b314610195575b600080fd5b61013361012e3660046116c3565b6102da565b60405190151581526020015b60405180910390f35b6101506103bf565b60405161013f919061174e565b61017061016b366004611761565b610451565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013f565b6101a86101a33660046117a3565b610485565b005b6101a86101b83660046117cd565b6105e2565b6101a86101cb3660046117cd565b610669565b6101706101de366004611761565b610684565b6101f66101f1366004611809565b6106f6565b60405190815260200161013f565b6101a86107aa565b60065473ffffffffffffffffffffffffffffffffffffffff16610170565b6101506107be565b6101a86102403660046117a3565b6107cd565b6101a8610253366004611824565b6107db565b6101a861026636600461188f565b6107e6565b610150610279366004611761565b610874565b61013361028c366004611989565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b6101a86102d5366004611809565b61090d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061036d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806103b957507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060600080546103ce906119bc565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa906119bc565b80156104475780601f1061041c57610100808354040283529160200191610447565b820191906000526020600020905b81548152906001019060200180831161042a57829003601f168201915b5050505050905090565b600061045c826109aa565b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061049082610684565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105385760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff821614806105615750610561813361028c565b6105d35760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161052f565b6105dd8383610a1b565b505050565b6105ec3382610abb565b61065e5760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161052f565b6105dd838383610b7b565b6105dd838383604051806020016040528060008152506107e6565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff16806103b95760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161052f565b600073ffffffffffffffffffffffffffffffffffffffff82166107815760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e65720000000000000000000000000000000000000000000000606482015260840161052f565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b6107b2610e28565b6107bc6000610e8f565b565b6060600180546103ce906119bc565b6107d78282610f06565b5050565b6107d7338383610f20565b6107f03383610abb565b6108625760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161052f565b61086e84848484611033565b50505050565b606061087f826109aa565b60006108bb60408051808201909152601681527f68747470733a2f2f746f6b656e736869656c642e696f00000000000000000000602082015290565b905060008151116108db5760405180602001604052806000815250610906565b806108e5846110bc565b6040516020016108f6929190611a0f565b6040516020818303038152906040525b9392505050565b610915610e28565b73ffffffffffffffffffffffffffffffffffffffff811661099e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161052f565b6109a781610e8f565b50565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff166109a75760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161052f565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190610a7582610684565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610ac783610684565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610b35575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b80610b7357508373ffffffffffffffffffffffffffffffffffffffff16610b5b84610451565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610b9b82610684565b73ffffffffffffffffffffffffffffffffffffffff1614610c245760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161052f565b73ffffffffffffffffffffffffffffffffffffffff8216610cac5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161052f565b8273ffffffffffffffffffffffffffffffffffffffff16610ccc82610684565b73ffffffffffffffffffffffffffffffffffffffff1614610d555760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161052f565b600081815260046020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526003855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60065473ffffffffffffffffffffffffffffffffffffffff1633146107bc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161052f565b6006805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6107d782826040518060200160405280600081525061117a565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f9b5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161052f565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61103e848484610b7b565b61104a84848484611203565b61086e5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161052f565b606060006110c9836113dc565b600101905060008167ffffffffffffffff8111156110e9576110e9611860565b6040519080825280601f01601f191660200182016040528015611113576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461111d57509392505050565b61118483836114be565b6111916000848484611203565b6105dd5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161052f565b600073ffffffffffffffffffffffffffffffffffffffff84163b156113d1576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061127a903390899088908890600401611a3e565b6020604051808303816000875af19250505080156112d3575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526112d091810190611a87565b60015b611386573d808015611301576040519150601f19603f3d011682016040523d82523d6000602084013e611306565b606091505b50805160000361137e5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161052f565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610b73565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611425577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611451576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061146f57662386f26fc10000830492506010015b6305f5e1008310611487576305f5e100830492506008015b612710831061149b57612710830492506004015b606483106114ad576064830492506002015b600a83106103b95760010192915050565b73ffffffffffffffffffffffffffffffffffffffff82166115215760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161052f565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16156115935760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161052f565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16156116055760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161052f565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146109a757600080fd5b6000602082840312156116d557600080fd5b813561090681611695565b60005b838110156116fb5781810151838201526020016116e3565b50506000910152565b6000815180845261171c8160208601602086016116e0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006109066020830184611704565b60006020828403121561177357600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461179e57600080fd5b919050565b600080604083850312156117b657600080fd5b6117bf8361177a565b946020939093013593505050565b6000806000606084860312156117e257600080fd5b6117eb8461177a565b92506117f96020850161177a565b9150604084013590509250925092565b60006020828403121561181b57600080fd5b6109068261177a565b6000806040838503121561183757600080fd5b6118408361177a565b91506020830135801515811461185557600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080600080608085870312156118a557600080fd5b6118ae8561177a565b93506118bc6020860161177a565b925060408501359150606085013567ffffffffffffffff808211156118e057600080fd5b818701915087601f8301126118f457600080fd5b81358181111561190657611906611860565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561194c5761194c611860565b816040528281528a602084870101111561196557600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561199c57600080fd5b6119a58361177a565b91506119b36020840161177a565b90509250929050565b600181811c908216806119d057607f821691505b602082108103611a09577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008351611a218184602088016116e0565b835190830190611a358183602088016116e0565b01949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152611a7d6080830184611704565b9695505050505050565b600060208284031215611a9957600080fd5b81516109068161169556000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000007546573743732310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045437323100000000000000000000000000000000000000000000000000000000