634 txs
4.7k calls
constructor
constructor(address _rolesManager, address _nftContract, address _paymentSplitter, address _storageAdministrator, address _bonusAndReward, address _usdcContract, address _initialOwner)
functions
BONUS_AND_REWARD
viewfunction BONUS_AND_REWARD() view returns (address)
cancelLPFees
viewfunction cancelLPFees() view returns (uint256)
getAllPools
viewfunction getAllPools() view returns (tuple[])
getClosedSeason
viewfunction getClosedSeason() view returns (tuple)
getCurrentSeason
viewfunction getCurrentSeason() view returns (tuple)
getMyPurchases
viewfunction getMyPurchases(uint96 _nftId) view returns (tuple[])
getMyPurchasesIds
viewfunction getMyPurchasesIds(uint96 _nftId) view returns (uint96[])
getPoolById
viewfunction getPoolById(uint16 poolId) view returns (tuple)
getPurchaseById
viewfunction getPurchaseById(uint96 _nftId, uint96 _purchaseId) view returns (tuple)
getSeasonbyId
viewfunction getSeasonbyId(uint96 _id) view returns (tuple)
isPaused
viewfunction isPaused() view returns (bool)
isPurchaseActive
viewfunction isPurchaseActive(uint96 _nftId, uint96 _purchaseId) view
LP_TOTAL_AMOUNT_INVESTED
viewfunction LP_TOTAL_AMOUNT_INVESTED() view returns (uint256)
lpPurchasesCount
viewfunction lpPurchasesCount() view returns (uint96)
NFT
viewfunction NFT() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
PAYMENT_SPLITTER
viewfunction PAYMENT_SPLITTER() view returns (address)
poolsCounter
viewfunction poolsCounter() view returns (uint16)
ROLES_MANAGER
viewfunction ROLES_MANAGER() view returns (address)
seasonsClosedCount
viewfunction seasonsClosedCount() view returns (uint96)
seasonsCount
viewfunction seasonsCount() view returns (uint96)
STORAGE_ADMINISTRATOR
viewfunction STORAGE_ADMINISTRATOR() view returns (address)
USDC
viewfunction USDC() view returns (address)
autoBoostLP
nonpayablefunction autoBoostLP(uint96 _nftId, uint96 _purchaseId)
boostLP
nonpayablefunction boostLP(uint96 _nftId, uint96 _purchaseId)
buyLP
nonpayablefunction buyLP(uint96 _nftId, uint16 _poolId)
cancelSubscription
nonpayablefunction cancelSubscription(uint96 _nftId, uint96 _purchaseId)
closeSeason
nonpayablefunction closeSeason(uint256 _totalAmountCollected)
createPool
nonpayablefunction createPool(string _name, uint256 _price, uint256 _feePercentage)
emergencyPause
nonpayablefunction emergencyPause()
emergencyUnpause
nonpayablefunction emergencyUnpause()
InitSeasons
nonpayablefunction InitSeasons()
migrateNftsLPpurchase
nonpayablefunction migrateNftsLPpurchase(uint96[] _nftIds, uint16[] _poolIds, uint96[] _purchaseIds, uint256[] _timeStamps, uint256[] _boostedAmounts)
purchaseEnded
nonpayablefunction purchaseEnded(uint96 _nftId, uint96 _purchaseId)
renounceOwnership
nonpayablefunction renounceOwnership()
setCancelLPFees
nonpayablefunction setCancelLPFees(uint256 _cancelLPFees)
setContracts
nonpayablefunction setContracts(address _address, uint8 _contractOption)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updatePool
nonpayablefunction updatePool(uint16 _poolId, string _name, uint256 _price, uint256 _feePercentage, bool _isActive)
events
LPBoosted
event LPBoosted(uint96 indexed _nftId, uint96 indexed _purchaseId, uint256 amountToBoost, uint256 timestamp)
MigrateLpPurchases
event MigrateLpPurchases(uint96 nftQuantity)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PoolCreated
event PoolCreated(uint96 indexed poolId, string name, uint256 price, uint256 feePercentage)
PoolPurchased
event PoolPurchased(address indexed buyer, uint96 nftId, uint96 nftSponsorId, uint96 purchaseId, uint16 poolId, uint96 seasonId, uint256 timestamp)
PoolPurchased
event PoolPurchased(address indexed signer, uint96 indexed nftId, uint96 nftSponsorId, uint96 indexed purchaseId, uint16 poolId)
SeasonClosed
event SeasonClosed(uint96 indexed seasonId, uint256 totalProfit)
SeasonOpened
event SeasonOpened(uint96 indexed seasonId, uint256 startTime, uint256 endTime)
Unpaused
event Unpaused(address account)
errors
AccessDenied
error AccessDenied()
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
P2
error P2(uint96 _purchaseId)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
S2
error S2()
S4
error S4()
S5
error S5()
V1
error V1()
V2
error V2()
V3
error V3()
V5
error V5()
V6
error V6()
V8
error V8()
creation bytecode
0x60806040523480156200001157600080fd5b50604051620055a5380380620055a583398181016040528101906200003791906200021c565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ad5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a49190620002e0565b60405180910390fd5b620000be81620000ec60201b60201c565b506001600f8190555086600055856001558460025583600355826004558160055550505050505050620002fd565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001e482620001b7565b9050919050565b620001f681620001d7565b81146200020257600080fd5b50565b6000815190506200021681620001eb565b92915050565b600080600080600080600060e0888a0312156200023e576200023d620001b2565b5b60006200024e8a828b0162000205565b9750506020620002618a828b0162000205565b9650506040620002748a828b0162000205565b9550506060620002878a828b0162000205565b94505060806200029a8a828b0162000205565b93505060a0620002ad8a828b0162000205565b92505060c0620002c08a828b0162000205565b91505092959891949750929550565b620002da81620001d7565b82525050565b6000602082019050620002f76000830184620002cf565b92915050565b615298806200030d6000396000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c806389a302711161013b578063b187bd26116100b8578063d88ff1f41161007c578063d88ff1f41461065b578063dbf80a0314610679578063df7049e614610695578063f1ad7055146106b3578063f2fde38b146106d157610248565b8063b187bd26146105b5578063b29a1575146105d3578063c34a2987146105f1578063cc8dfc7914610621578063d3b30b751461063d57610248565b80639e1f22e1116100ff5780639e1f22e114610513578063a5f0292b1461052f578063a99fc5591461054d578063afcdcdb614610569578063b14feb621461058557610248565b806389a302711461046f5780638afbe1831461048d5780638da5cb5b146104bd578063969a56a0146104db5780639b6c5283146104f757610248565b80634f60e6c1116101c9578063715018a61161018d578063715018a6146103db5780637c0b8de2146103e5578063821ba66d146104035780638690e43b146104335780638999dd6a1461045157610248565b80634f60e6c11461035d57806351858e27146103795780635c975abb146103835780635d0aeec1146103a15780635d0eb31a146103bd57610248565b80631f9b054d116102105780631f9b054d146102cb57806344443064146102e957806345cd36f9146103195780634a4e3bd5146103375780634df931fb1461034157610248565b8063018950261461024d57806301afd56e14610269578063074383a7146102735780630a2dd68d1461029157806319d3da97146102af575b600080fd5b6102676004803603810190610262919061395b565b6106ed565b005b610271610796565b005b61027b610869565b6040516102889190613a41565b60405180910390f35b6102996109af565b6040516102a69190613adb565b60405180910390f35b6102c960048036038101906102c4919061395b565b6109d5565b005b6102d3610c15565b6040516102e09190613b05565b60405180910390f35b61030360048036038101906102fe9190613b4c565b610c33565b6040516103109190613a41565b60405180910390f35b610321610cf3565b60405161032e9190613b05565b60405180910390f35b61033f610d11565b005b61035b60048036038101906103569190613d25565b610dac565b005b61037760048036038101906103729190613ec8565b610f7b565b005b6103816111d9565b005b61038b611274565b6040516103989190613ff4565b60405180910390f35b6103bb60048036038101906103b6919061400f565b61128b565b005b6103c56113e5565b6040516103d2919061405e565b60405180910390f35b6103e36113f9565b005b6103ed61140d565b6040516103fa919061409a565b60405180910390f35b61041d60048036038101906104189190613b4c565b611433565b60405161042a919061422b565b60405180910390f35b61043b6115ba565b604051610448919061409a565b60405180910390f35b6104596115de565b6040516104669190613b05565b60405180910390f35b6104776115fc565b604051610484919061409a565b60405180910390f35b6104a760048036038101906104a29190613b4c565b611622565b6040516104b491906142fc565b60405180910390f35b6104c56116e5565b6040516104d2919061409a565b60405180910390f35b6104f560048036038101906104f0919061431e565b61170f565b005b610511600480360381019061050c919061435e565b611adc565b005b61052d6004803603810190610528919061400f565b611cea565b005b610537611d14565b60405161054491906143ee565b60405180910390f35b6105676004803603810190610562919061400f565b611d3a565b005b610583600480360381019061057e919061400f565b611fc4565b005b61059f600480360381019061059a919061400f565b612214565b6040516105ac91906144c0565b60405180910390f35b6105bd612375565b6040516105ca9190613ff4565b60405180910390f35b6105db612384565b6040516105e891906144eb565b60405180910390f35b61060b60048036038101906106069190614506565b61238a565b6040516106189190614628565b60405180910390f35b61063b6004803603810190610636919061469b565b6124a0565b005b610645612819565b6040516106529190613a41565b60405180910390f35b6106636128fd565b6040516106709190614813565b60405180910390f35b610693600480360381019061068e919061400f565b612920565b005b61069d6129d1565b6040516106aa9190614856565b60405180910390f35b6106bb6129f7565b6040516106c891906144eb565b60405180910390f35b6106eb60048036038101906106e69190614871565b6129fd565b005b336040518060400160405280600a81526020017f535550455241444d494e0000000000000000000000000000000000000000000081525061074f60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383612a83565b606483111561078a576040517f9c58ee2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600d81905550505050565b336040518060400160405280600681526020017f53595354454d00000000000000000000000000000000000000000000000000008152506107f860008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383612a83565b6000600a600e9054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16111561085b576040517f3a347c7600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108656000612b07565b5050565b610871613825565b6000600b60009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16036108d3576040517fd819ab6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600960006001600b60009054906101000a90046bffffffffffffffffffffffff166108fe91906148cd565b6bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405290816000820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581525050905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b336040518060400160405280600681526020017f53595354454d0000000000000000000000000000000000000000000000000000815250610a3760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383612a83565b610a3f612cad565b6000600a600e9054906101000a90046bffffffffffffffffffffffff1690506000816bffffffffffffffffffffffff1603610aa6576040517fd819ab6300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600182610ab591906148cd565b9050600060096000836bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200190815260200160002090508060040160009054906101000a900460ff1615610b33576040517f6558179300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85816003018190555060018160040160006101000a81548160ff021916908315150217905550600b600081819054906101000a90046bffffffffffffffffffffffff1680929190610b839061490d565b91906101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555050816bffffffffffffffffffffffff167fbd4185a09dd89c1703a5e891dcf85f1e0b7b0c1f32fad28b60570c0bb8d5948587604051610bf091906144eb565b60405180910390a2610c0d600183610c089190614941565b612b07565b505050505050565b600b60009054906101000a90046bffffffffffffffffffffffff1681565b610c3b613825565b60096000836bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405290816000820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff1615151515815250509050919050565b600a60029054906101000a90046bffffffffffffffffffffffff1681565b610d19612cee565b732ee70f0585d83f523ae876f86b8df2c6c8677a9973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d92576040517f84806c3300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d9a612d55565b610da2612d9b565b610daa612dfe565b565b336040518060400160405280600a81526020017f535550455241444d494e00000000000000000000000000000000000000000000815250610e0e60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383612a83565b610e16612d55565b610e1e612cad565b610e26612cee565b600a60009054906101000a900461ffff1661ffff168761ffff1610610e77576040517f2fb42d7000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6064841115610eb2576040517f9c58ee2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060a001604052808861ffff168152602001878152602001868152602001858152602001841515815250600660008961ffff1661ffff16815260200190815260200160002060008201518160000160006101000a81548161ffff021916908361ffff1602179055506020820151816001019081610f329190614b83565b50604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050610f72612dfe565b50505050505050565b336040518060400160405280600a81526020017f535550455241444d494e00000000000000000000000000000000000000000000815250610fdd60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383612a83565b610fe5612cad565b610fed612cee565b60008c8c9050905060008114806110045750603281115b1561103b576040517fdb34179500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080600090505b8e8e9050816bffffffffffffffffffffffff1610156111af5760008f8f836bffffffffffffffffffffffff1681811061107f5761107e614c55565b5b90506020020160208101906110949190613b4c565b905060008e8e846bffffffffffffffffffffffff168181106110b9576110b8614c55565b5b90506020020160208101906110ce9190614506565b905060008b8b856bffffffffffffffffffffffff168181106110f3576110f2614c55565b5b90506020020135905060008a8a866bffffffffffffffffffffffff1681811061111f5761111e614c55565b5b90506020020135905060008f8f876bffffffffffffffffffffffff1681811061114b5761114a614c55565b5b90506020020160208101906111609190613b4c565b9050600061117386868686866001612e08565b91505060006002826111859190614cb3565b905080896111939190614ce4565b98505050505050505080806111a79061490d565b915050611043565b5080600c60008282546111c29190614ce4565b925050819055505050505050505050505050505050565b6111e1612cee565b732ee70f0585d83f523ae876f86b8df2c6c8677a9973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461125a576040517f84806c3300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611262612d55565b61126a613212565b611272612dfe565b565b6000600e60149054906101000a900460ff16905090565b336040518060400160405280600a81526020017f535550455241444d494e000000000000000000000000000000000000000000008152506112ed60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383612a83565b6112f5612cad565b6112fd612cee565b600060076000866bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019081526020016000206000856bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200190815260200160002090508060040160009054906101000a900460ff16158061137f575060008160030154145b156113c157836040517fe6ba0f3f0000000000000000000000000000000000000000000000000000000081526004016113b89190613b05565b60405180910390fd5b60008160040160006101000a81548160ff0219169083151502179055505050505050565b600a60009054906101000a900461ffff1681565b611401613275565b61140b60006132fc565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600060086000846bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019081526020016000209050600081805490509050600081036114d757600067ffffffffffffffff81111561149457611493613bce565b5b6040519080825280602002602001820160405280156114cd57816020015b6114ba613864565b8152602001906001900390816114b25790505b50925050506115b5565b60008167ffffffffffffffff8111156114f3576114f2613bce565b5b60405190808252806020026020018201604052801561152c57816020015b611519613864565b8152602001906001900390816115115790505b50905060005b828110156115ad576115848685838154811061155157611550614c55565b5b9060005260206000209060029182820401919006600c029054906101000a90046bffffffffffffffffffffffff16612214565b82828151811061159757611596614c55565b5b6020026020010181905250806001019050611532565b508093505050505b919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a600e9054906101000a90046bffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060086000836bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156116d957602002820191906000526020600020906000905b82829054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200190600c0190602082600b0104928301926001038202915080841161168c5790505b50505050509050919050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b813373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016117829190614d49565b602060405180830381865afa15801561179f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c39190614d79565b73ffffffffffffffffffffffffffffffffffffffff1614611810576040517f84806c3300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611818612d55565b611820612cad565b611828612cee565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ab1c188856040518263ffffffff1660e01b81526004016118859190613b05565b602060405180830381865afa1580156118a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c69190614dbb565b90506000806118db8686426000806000612e08565b9150915080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161193b919061409a565b602060405180830381865afa158015611958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197c9190614dfd565b10156119b4576040517f3ee569bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663564768513360008685600160006040518763ffffffff1660e01b8152600401611a1c96959493929190614ee9565b600060405180830381600087803b158015611a3657600080fd5b505af1158015611a4a573d6000803e3d6000fd5b5050505080600c60008282540192505081905550816bffffffffffffffffffffffff16866bffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f27309e519004512d0fb9fbcdc060e3690e558c9bd68e064df57f1bfcee44f8ed8689604051611ac4929190614f4a565b60405180910390a4505050611ad7612dfe565b505050565b336040518060400160405280600a81526020017f535550455241444d494e00000000000000000000000000000000000000000000815250611b3e60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383612a83565b611b46612d55565b611b4e612cad565b611b56612cee565b6064831115611b91576040517f9c58ee2100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600a60009054906101000a900461ffff1690506040518060a001604052808261ffff16815260200187815260200186815260200185815260200160011515815250600660008361ffff1661ffff16815260200190815260200160002060008201518160000160006101000a81548161ffff021916908361ffff1602179055506020820151816001019081611c279190614b83565b50604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050600a600081819054906101000a900461ffff1680929190611c7f90614f73565b91906101000a81548161ffff021916908361ffff160217905550508061ffff167f202127a3b621c057f83d5f6394c98a33490b6d93f38e17d6ef33cabe43d3d218878787604051611cd293929190614fe7565b60405180910390a250611ce3612dfe565b5050505050565b611d1082823073ffffffffffffffffffffffffffffffffffffffff1663b14feb626133c2565b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b813373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401611dad9190614d49565b602060405180830381865afa158015611dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dee9190614d79565b73ffffffffffffffffffffffffffffffffffffffff1614611e3b576040517f84806c3300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611e43612cad565b611e4d8383611cea565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a99fc55985856040518363ffffffff1660e01b8152600401611eac929190615025565b6020604051808303816000875af1158015611ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eef9190614dfd565b90508060076000866bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019081526020016000206000856bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019081526020016000206005016000828254611f609190614ce4565b92505081905550826bffffffffffffffffffffffff16846bffffffffffffffffffffffff167fee345a8d877e3f266620b91711eaa4125404bcf2a352ca8369c0e4abc5be8f858342604051611fb692919061504e565b60405180910390a350505050565b813373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016120379190614d49565b602060405180830381865afa158015612054573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120789190614d79565b73ffffffffffffffffffffffffffffffffffffffff16146120c5576040517f84806c3300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120cd612cad565b6120d78383611cea565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663163af7aa846040518263ffffffff1660e01b81526004016121349190613b05565b6020604051808303816000875af1158015612153573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612177919061508c565b90508061220e57600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663438e0ce185856040518363ffffffff1660e01b81526004016121db929190615025565b600060405180830381600087803b1580156121f557600080fd5b505af1158015612209573d6000803e3d6000fd5b505050505b50505050565b61221c613864565b60076000846bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019081526020016000206000836bffffffffffffffffffffffff166bffffffffffffffffffffffff168152602001908152602001600020604051806101200160405290816000820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200160008201600c9054906101000a900461ffff1661ffff1661ffff16815260200160008201600e9054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff1615151515815260200160058201548152602001600682015481525050905092915050565b600061237f611274565b905090565b600c5481565b6123926138d2565b600660008361ffff1661ffff1681526020019081526020016000206040518060a00160405290816000820160009054906101000a900461ffff1661ffff1661ffff1681526020016001820180546123e8906149b0565b80601f0160208091040260200160405190810160405280929190818152602001828054612414906149b0565b80156124615780601f1061243657610100808354040283529160200191612461565b820191906000526020600020905b81548152906001019060200180831161244457829003601f168201915b5050505050815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff1615151515815250509050919050565b336040518060400160405280600a81526020017f535550455241444d494e0000000000000000000000000000000000000000000081525061250260008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383612a83565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612568576040517f96cd25ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600581111561257c5761257b614e2a565b5b83600581111561258f5761258e614e2a565b5b036125d957836000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612813565b600160058111156125ed576125ec614e2a565b5b836005811115612600576125ff614e2a565b5b0361264b5783600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612812565b6002600581111561265f5761265e614e2a565b5b83600581111561267257612671614e2a565b5b036126bd5783600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612811565b600360058111156126d1576126d0614e2a565b5b8360058111156126e4576126e3614e2a565b5b0361272f5783600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612810565b6004600581111561274357612742614e2a565b5b83600581111561275657612755614e2a565b5b036127a15783600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061280f565b6005808111156127b4576127b3614e2a565b5b8360058111156127c7576127c6614e2a565b5b0361280e5783600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b5b5b5b50505050565b612821613825565b600960006001600a600e9054906101000a90046bffffffffffffffffffffffff1661284c91906148cd565b6bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019081526020016000206040518060a00160405290816000820160009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581525050905090565b606061291b600a60009054906101000a900461ffff1661238a613487565b905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661294c81613542565b612954612cad565b600060076000856bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019081526020016000206000846bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200190815260200160002060040160006101000a81548160ff021916908315150217905550505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b612a05613275565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612a775760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612a6e919061409a565b60405180910390fd5b612a80816132fc565b50565b612ac16040518060400160405280600481526020017f48455245000000000000000000000000000000000000000000000000000000008152506135aa565b612acc838383613643565b612b02576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60004290506040518060a00160405280836bffffffffffffffffffffffff16815260200182815260200162093a8083612b409190614ce4565b8152602001600081526020016000151581525060096000846bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555060208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050600a600e81819054906101000a90046bffffffffffffffffffffffff1680929190612c249061490d565b91906101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555050816bffffffffffffffffffffffff167fbbc94c2557f1a2c3d21f45c50ef2d72721a9a84973f1d9d529f8edbc0cfdea838262093a8084612c939190614ce4565b604051612ca192919061504e565b60405180910390a25050565b612cb5611274565b15612cec576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614612d53576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6002600f5403612d91576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600f81905550565b612da3613797565b6000600e60146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612de76137d7565b604051612df4919061409a565b60405180910390a1565b6001600f81905550565b6000806000600660008961ffff1661ffff1681526020019081526020016000206040518060a00160405290816000820160009054906101000a900461ffff1661ffff1661ffff168152602001600182018054612e63906149b0565b80601f0160208091040260200160405190810160405280929190818152602001828054612e8f906149b0565b8015612edc5780601f10612eb157610100808354040283529160200191612edc565b820191906000526020600020905b815481529060010190602001808311612ebf57829003601f168201915b5050505050815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff16151515158152505090506000600a600e9054906101000a90046bffffffffffffffffffffffff169050600085612f5c57600a60029054906101000a90046bffffffffffffffffffffffff16612f5e565b865b9050604051806101200160405280826bffffffffffffffffffffffff168152602001846000015161ffff168152602001836bffffffffffffffffffffffff16815260200184604001518152602001600081526020018a81526020016001151581526020018981526020016000815250600760008d6bffffffffffffffffffffffff166bffffffffffffffffffffffff1681526020019081526020016000206000836bffffffffffffffffffffffff166bffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550602082015181600001600c6101000a81548161ffff021916908361ffff160217905550604082015181600001600e6101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550606082015181600101556080820151816002015560a0820151816003015560c08201518160040160006101000a81548160ff02191690831515021790555060e0820151816005015561010082015181600601559050508561316f57600a600281819054906101000a90046bffffffffffffffffffffffff168092919061313f9061490d565b91906101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505b600860008c6bffffffffffffffffffffffff166bffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000209060029182820401919006600c029091909190916101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555080836040015194509450505050965096945050505050565b61321a612cad565b6001600e60146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861325e6137d7565b60405161326b919061409a565b60405180910390a1565b61327d6137d7565b73ffffffffffffffffffffffffffffffffffffffff1661329b6116e5565b73ffffffffffffffffffffffffffffffffffffffff16146132fa576132be6137d7565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016132f1919061409a565b60405180910390fd5b565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000828286866040518363ffffffff1660e01b81526004016133e5929190615025565b61012060405180830381865afa158015613403573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061342791906151b3565b90508060c00151158061343e575060008160a00151145b1561348057836040517fe6ba0f3f0000000000000000000000000000000000000000000000000000000081526004016134779190613b05565b60405180910390fd5b5050505050565b606060008361ffff1667ffffffffffffffff8111156134a9576134a8613bce565b5b6040519080825280602002602001820160405280156134e257816020015b6134cf6138d2565b8152602001906001900390816134c75790505b50905060005b81518161ffff16101561353757613502818563ffffffff16565b828261ffff168151811061351957613518614c55565b5b6020026020010181905250808061352f90614f73565b9150506134e8565b508091505092915050565b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146135a7576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b613640816040516024016135be91906151e1565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506137df565b50565b6000808473ffffffffffffffffffffffffffffffffffffffff16637909185185856040518363ffffffff1660e01b8152600401613681929190615203565b6020604051808303816000875af11580156136a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c4919061508c565b90508015801561370057508373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b1561378b578473ffffffffffffffffffffffffffffffffffffffff16637909185132856040518363ffffffff1660e01b8152600401613740929190615203565b6020604051808303816000875af115801561375f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613783919061508c565b915050613790565b809150505b9392505050565b61379f611274565b6137d5576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600033905090565b6137f6816137ee6137f961381a565b63ffffffff16565b50565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b613907819050919050565b6040518060a0016040528060006bffffffffffffffffffffffff1681526020016000815260200160008152602001600081526020016000151581525090565b60405180610120016040528060006bffffffffffffffffffffffff168152602001600061ffff16815260200160006bffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081525090565b6040518060a00160405280600061ffff1681526020016060815260200160008152602001600081526020016000151581525090565b61390f615233565b565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61393881613925565b811461394357600080fd5b50565b6000813590506139558161392f565b92915050565b6000602082840312156139715761397061391b565b5b600061397f84828501613946565b91505092915050565b60006bffffffffffffffffffffffff82169050919050565b6139a981613988565b82525050565b6139b881613925565b82525050565b60008115159050919050565b6139d3816139be565b82525050565b60a0820160008201516139ef60008501826139a0565b506020820151613a0260208501826139af565b506040820151613a1560408501826139af565b506060820151613a2860608501826139af565b506080820151613a3b60808501826139ca565b50505050565b600060a082019050613a5660008301846139d9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613aa1613a9c613a9784613a5c565b613a7c565b613a5c565b9050919050565b6000613ab382613a86565b9050919050565b6000613ac582613aa8565b9050919050565b613ad581613aba565b82525050565b6000602082019050613af06000830184613acc565b92915050565b613aff81613988565b82525050565b6000602082019050613b1a6000830184613af6565b92915050565b613b2981613988565b8114613b3457600080fd5b50565b600081359050613b4681613b20565b92915050565b600060208284031215613b6257613b6161391b565b5b6000613b7084828501613b37565b91505092915050565b600061ffff82169050919050565b613b9081613b79565b8114613b9b57600080fd5b50565b600081359050613bad81613b87565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613c0682613bbd565b810181811067ffffffffffffffff82111715613c2557613c24613bce565b5b80604052505050565b6000613c38613911565b9050613c448282613bfd565b919050565b600067ffffffffffffffff821115613c6457613c63613bce565b5b613c6d82613bbd565b9050602081019050919050565b82818337600083830152505050565b6000613c9c613c9784613c49565b613c2e565b905082815260208101848484011115613cb857613cb7613bb8565b5b613cc3848285613c7a565b509392505050565b600082601f830112613ce057613cdf613bb3565b5b8135613cf0848260208601613c89565b91505092915050565b613d02816139be565b8114613d0d57600080fd5b50565b600081359050613d1f81613cf9565b92915050565b600080600080600060a08688031215613d4157613d4061391b565b5b6000613d4f88828901613b9e565b955050602086013567ffffffffffffffff811115613d7057613d6f613920565b5b613d7c88828901613ccb565b9450506040613d8d88828901613946565b9350506060613d9e88828901613946565b9250506080613daf88828901613d10565b9150509295509295909350565b600080fd5b600080fd5b60008083601f840112613ddc57613ddb613bb3565b5b8235905067ffffffffffffffff811115613df957613df8613dbc565b5b602083019150836020820283011115613e1557613e14613dc1565b5b9250929050565b60008083601f840112613e3257613e31613bb3565b5b8235905067ffffffffffffffff811115613e4f57613e4e613dbc565b5b602083019150836020820283011115613e6b57613e6a613dc1565b5b9250929050565b60008083601f840112613e8857613e87613bb3565b5b8235905067ffffffffffffffff811115613ea557613ea4613dbc565b5b602083019150836020820283011115613ec157613ec0613dc1565b5b9250929050565b60008060008060008060008060008060a08b8d031215613eeb57613eea61391b565b5b60008b013567ffffffffffffffff811115613f0957613f08613920565b5b613f158d828e01613dc6565b9a509a505060208b013567ffffffffffffffff811115613f3857613f37613920565b5b613f448d828e01613e1c565b985098505060408b013567ffffffffffffffff811115613f6757613f66613920565b5b613f738d828e01613dc6565b965096505060608b013567ffffffffffffffff811115613f9657613f95613920565b5b613fa28d828e01613e72565b945094505060808b013567ffffffffffffffff811115613fc557613fc4613920565b5b613fd18d828e01613e72565b92509250509295989b9194979a5092959850565b613fee816139be565b82525050565b60006020820190506140096000830184613fe5565b92915050565b600080604083850312156140265761402561391b565b5b600061403485828601613b37565b925050602061404585828601613b37565b9150509250929050565b61405881613b79565b82525050565b6000602082019050614073600083018461404f565b92915050565b600061408482613a5c565b9050919050565b61409481614079565b82525050565b60006020820190506140af600083018461408b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140ea81613b79565b82525050565b6101208201600082015161410760008501826139a0565b50602082015161411a60208501826140e1565b50604082015161412d60408501826139a0565b50606082015161414060608501826139af565b50608082015161415360808501826139af565b5060a082015161416660a08501826139af565b5060c082015161417960c08501826139ca565b5060e082015161418c60e08501826139af565b506101008201516141a16101008501826139af565b50505050565b60006141b383836140f0565b6101208301905092915050565b6000602082019050919050565b60006141d8826140b5565b6141e281856140c0565b93506141ed836140d1565b8060005b8381101561421e57815161420588826141a7565b9750614210836141c0565b9250506001810190506141f1565b5085935050505092915050565b6000602082019050818103600083015261424581846141cd565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600061428583836139a0565b60208301905092915050565b6000602082019050919050565b60006142a98261424d565b6142b38185614258565b93506142be83614269565b8060005b838110156142ef5781516142d68882614279565b97506142e183614291565b9250506001810190506142c2565b5085935050505092915050565b60006020820190508181036000830152614316818461429e565b905092915050565b600080604083850312156143355761433461391b565b5b600061434385828601613b37565b925050602061435485828601613b9e565b9150509250929050565b6000806000606084860312156143775761437661391b565b5b600084013567ffffffffffffffff81111561439557614394613920565b5b6143a186828701613ccb565b93505060206143b286828701613946565b92505060406143c386828701613946565b9150509250925092565b60006143d882613aa8565b9050919050565b6143e8816143cd565b82525050565b600060208201905061440360008301846143df565b92915050565b6101208201600082015161442060008501826139a0565b50602082015161443360208501826140e1565b50604082015161444660408501826139a0565b50606082015161445960608501826139af565b50608082015161446c60808501826139af565b5060a082015161447f60a08501826139af565b5060c082015161449260c08501826139ca565b5060e08201516144a560e08501826139af565b506101008201516144ba6101008501826139af565b50505050565b6000610120820190506144d66000830184614409565b92915050565b6144e581613925565b82525050565b600060208201905061450060008301846144dc565b92915050565b60006020828403121561451c5761451b61391b565b5b600061452a84828501613b9e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561456d578082015181840152602081019050614552565b60008484015250505050565b600061458482614533565b61458e818561453e565b935061459e81856020860161454f565b6145a781613bbd565b840191505092915050565b600060a0830160008301516145ca60008601826140e1565b50602083015184820360208601526145e28282614579565b91505060408301516145f760408601826139af565b50606083015161460a60608601826139af565b50608083015161461d60808601826139ca565b508091505092915050565b6000602082019050818103600083015261464281846145b2565b905092915050565b61465381614079565b811461465e57600080fd5b50565b6000813590506146708161464a565b92915050565b6006811061468357600080fd5b50565b60008135905061469581614676565b92915050565b600080604083850312156146b2576146b161391b565b5b60006146c085828601614661565b92505060206146d185828601614686565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600060a08301600083015161471f60008601826140e1565b50602083015184820360208601526147378282614579565b915050604083015161474c60408601826139af565b50606083015161475f60608601826139af565b50608083015161477260808601826139ca565b508091505092915050565b60006147898383614707565b905092915050565b6000602082019050919050565b60006147a9826146db565b6147b381856146e6565b9350836020820285016147c5856146f7565b8060005b8581101561480157848403895281516147e2858261477d565b94506147ed83614791565b925060208a019950506001810190506147c9565b50829750879550505050505092915050565b6000602082019050818103600083015261482d818461479e565b905092915050565b600061484082613aa8565b9050919050565b61485081614835565b82525050565b600060208201905061486b6000830184614847565b92915050565b6000602082840312156148875761488661391b565b5b600061489584828501614661565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006148d882613988565b91506148e383613988565b925082820390506bffffffffffffffffffffffff8111156149075761490661489e565b5b92915050565b600061491882613988565b91506bffffffffffffffffffffffff82036149365761493561489e565b5b600182019050919050565b600061494c82613988565b915061495783613988565b925082820190506bffffffffffffffffffffffff81111561497b5761497a61489e565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806149c857607f821691505b6020821081036149db576149da614981565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614a437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614a06565b614a4d8683614a06565b95508019841693508086168417925050509392505050565b6000614a80614a7b614a7684613925565b613a7c565b613925565b9050919050565b6000819050919050565b614a9a83614a65565b614aae614aa682614a87565b848454614a13565b825550505050565b600090565b614ac3614ab6565b614ace818484614a91565b505050565b5b81811015614af257614ae7600082614abb565b600181019050614ad4565b5050565b601f821115614b3757614b08816149e1565b614b11846149f6565b81016020851015614b20578190505b614b34614b2c856149f6565b830182614ad3565b50505b505050565b600082821c905092915050565b6000614b5a60001984600802614b3c565b1980831691505092915050565b6000614b738383614b49565b9150826002028217905092915050565b614b8c82614533565b67ffffffffffffffff811115614ba557614ba4613bce565b5b614baf82546149b0565b614bba828285614af6565b600060209050601f831160018114614bed5760008415614bdb578287015190505b614be58582614b67565b865550614c4d565b601f198416614bfb866149e1565b60005b82811015614c2357848901518255600182019150602085019450602081019050614bfe565b86831015614c405784890151614c3c601f891682614b49565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614cbe82613925565b9150614cc983613925565b925082614cd957614cd8614c84565b5b828204905092915050565b6000614cef82613925565b9150614cfa83613925565b9250828201905080821115614d1257614d1161489e565b5b92915050565b6000614d33614d2e614d2984613988565b613a7c565b613925565b9050919050565b614d4381614d18565b82525050565b6000602082019050614d5e6000830184614d3a565b92915050565b600081519050614d738161464a565b92915050565b600060208284031215614d8f57614d8e61391b565b5b6000614d9d84828501614d64565b91505092915050565b600081519050614db581613b20565b92915050565b600060208284031215614dd157614dd061391b565b5b6000614ddf84828501614da6565b91505092915050565b600081519050614df78161392f565b92915050565b600060208284031215614e1357614e1261391b565b5b6000614e2184828501614de8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110614e6a57614e69614e2a565b5b50565b6000819050614e7b82614e59565b919050565b6000614e8b82614e6d565b9050919050565b614e9b81614e80565b82525050565b60038110614eb257614eb1614e2a565b5b50565b6000819050614ec382614ea1565b919050565b6000614ed382614eb5565b9050919050565b614ee381614ec8565b82525050565b600060c082019050614efe600083018961408b565b614f0b602083018861408b565b614f186040830187613af6565b614f2560608301866144dc565b614f326080830185614e92565b614f3f60a0830184614eda565b979650505050505050565b6000604082019050614f5f6000830185613af6565b614f6c602083018461404f565b9392505050565b6000614f7e82613b79565b915061ffff8203614f9257614f9161489e565b5b600182019050919050565b600082825260208201905092915050565b6000614fb982614533565b614fc38185614f9d565b9350614fd381856020860161454f565b614fdc81613bbd565b840191505092915050565b600060608201905081810360008301526150018186614fae565b905061501060208301856144dc565b61501d60408301846144dc565b949350505050565b600060408201905061503a6000830185613af6565b6150476020830184613af6565b9392505050565b600060408201905061506360008301856144dc565b61507060208301846144dc565b9392505050565b60008151905061508681613cf9565b92915050565b6000602082840312156150a2576150a161391b565b5b60006150b084828501615077565b91505092915050565b600080fd5b6000815190506150cd81613b87565b92915050565b600061012082840312156150ea576150e96150b9565b5b6150f5610120613c2e565b9050600061510584828501614da6565b6000830152506020615119848285016150be565b602083015250604061512d84828501614da6565b604083015250606061514184828501614de8565b606083015250608061515584828501614de8565b60808301525060a061516984828501614de8565b60a08301525060c061517d84828501615077565b60c08301525060e061519184828501614de8565b60e0830152506101006151a684828501614de8565b6101008301525092915050565b600061012082840312156151ca576151c961391b565b5b60006151d8848285016150d3565b91505092915050565b600060208201905081810360008301526151fb8184614fae565b905092915050565b6000604082019050615218600083018561408b565b818103602083015261522a8184614fae565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052605160045260246000fdfea26469706673582212204e3e5c1d7f94ba6107b35ca8a890106219fc3eebbe2d1a6b396e0325fd7244e464736f6c6343000818003300000000000000000000000039572b7c375a4be0be74fcf1ce33080a001f09a400000000000000000000000058ddc654ee4e695b96a051994e902ad3d5dc65f2000000000000000000000000357ce9738606b6eb6714605f4c30853fcc0c7a4f0000000000000000000000000aa690bb4cda278c0d7662ac5f41d4cd434810bc0000000000000000000000006827881f9fff0f4b48a26c104f6596e29322012a0000000000000000000000008ac76a51cc950d9822d68b83fe1ad97b32cd580d0000000000000000000000001bd41c988fd8807a73e79cfb465df488e73d6c0d