3 txs
4 calls
constructor
constructor(address _rolesManager, address _paymentSplitter, address _accountManager, address _initialOwner)
functions
_customName
viewfunction _customName() view returns (string)
_customSymbol
viewfunction _customSymbol() view returns (string)
ACCOUNT_MANAGER
viewfunction ACCOUNT_MANAGER() view returns (address)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
defilyNFTsIdCounter
viewfunction defilyNFTsIdCounter() view returns (uint256)
getAllNFTCollections
viewfunction getAllNFTCollections() view returns (tuple[])
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getCoreRefLink
viewfunction getCoreRefLink() view returns (string)
isAdminRefLink
viewfunction isAdminRefLink(string _refLink) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isPaused
viewfunction isPaused() view returns (bool)
name
viewfunction name() view returns (string)
nftCollections
viewfunction nftCollections(uint256) view returns (string baseURI, string name, uint256 price, uint256 createdAt, uint256 tokensCount, uint256 tokensLimit)
nftCollectionsIdCounter
viewfunction nftCollectionsIdCounter() view returns (uint256)
nftIdToPurchaseForLPTime
viewfunction nftIdToPurchaseForLPTime(address) view returns (uint256)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
paused
viewfunction paused() view returns (bool)
PAYMENT_SPLITTER
viewfunction PAYMENT_SPLITTER() view returns (address)
ROLES_MANAGER
viewfunction ROLES_MANAGER() view returns (address)
safeTransferFrom
purefunction safeTransferFrom(address, address, uint256, bytes) pure
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
approve
nonpayablefunction approve(address to, uint256 tokenId)
buy
nonpayablefunction buy(tuple _data, string _CID)
emergencyPause
nonpayablefunction emergencyPause()
emergencyUnpause
nonpayablefunction emergencyUnpause()
generateCoreRefLink
nonpayablefunction generateCoreRefLink()
migrateNFT
nonpayablefunction migrateNFT(tuple[] _data, address[] _nftOwnerAddress, uint96[] _sponsorNftId, string[] _CID)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setContractsAddress
nonpayablefunction setContractsAddress(address _address, uint8 _contract)
setNewNFTCollection
nonpayablefunction setNewNFTCollection(string _name, string _uri, uint256 _price)
transferFrom
nonpayablefunction transferFrom(address, address _to, uint256 _tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateNFTCollection
nonpayablefunction updateNFTCollection(uint96 _id, string _name, string _uri, uint256 _price)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BatchMetadataUpdate
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId)
MetadataUpdate
event MetadataUpdate(uint256 _tokenId)
NFTBought
event NFTBought(address indexed signer, uint256 indexed tokenId, address sponsorAddress, uint256 indexed sponsorNFTId, uint256 price)
NFTMigrated
event NFTMigrated(address nftOwner, uint96 tokenId, uint96 sponsorNftId, uint256 timestamp)
NFTtransfer
event NFTtransfer(address oldOwner, address newOwner, uint96 tokenId, uint256 timestamp)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Unpaused
event Unpaused(address account)
errors
AccessDenied
error AccessDenied()
EnforcedPause
error EnforcedPause()
ERC721IncorrectOwner
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)
ERC721InsufficientApproval
error ERC721InsufficientApproval(address operator, uint256 tokenId)
ERC721InvalidApprover
error ERC721InvalidApprover(address approver)
ERC721InvalidOperator
error ERC721InvalidOperator(address operator)
ERC721InvalidOwner
error ERC721InvalidOwner(address owner)
ERC721InvalidReceiver
error ERC721InvalidReceiver(address receiver)
ERC721InvalidSender
error ERC721InvalidSender(address sender)
ERC721NonexistentToken
error ERC721NonexistentToken(uint256 tokenId)
ExpectedPause
error ExpectedPause()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
V1
error V1()
V3
error V3()
V6
error V6()
creation bytecode
0x60806040523480156200001157600080fd5b5060405162005bc538038062005bc583398181016040528101906200003791906200029f565b6040518060400160405280600a81526020017f446566696c79204e4654000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f444e46540000000000000000000000000000000000000000000000000000000081525082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001195760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000110919062000322565b60405180910390fd5b6200012a816200016f60201b60201c565b506001600a8190555081600b9081620001449190620005b9565b5080600c9081620001569190620005b9565b50505083600055826001558160025550505050620006a0565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000267826200023a565b9050919050565b62000279816200025a565b81146200028557600080fd5b50565b60008151905062000299816200026e565b92915050565b60008060008060808587031215620002bc57620002bb62000235565b5b6000620002cc8782880162000288565b9450506020620002df8782880162000288565b9350506040620002f28782880162000288565b9250506060620003058782880162000288565b91505092959194509250565b6200031c816200025a565b82525050565b600060208201905062000339600083018462000311565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003c157607f821691505b602082108103620003d757620003d662000379565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000402565b6200044d868362000402565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200049a620004946200048e8462000465565b6200046f565b62000465565b9050919050565b6000819050919050565b620004b68362000479565b620004ce620004c582620004a1565b8484546200040f565b825550505050565b600090565b620004e5620004d6565b620004f2818484620004ab565b505050565b5b818110156200051a576200050e600082620004db565b600181019050620004f8565b5050565b601f82111562000569576200053381620003dd565b6200053e84620003f2565b810160208510156200054e578190505b620005666200055d85620003f2565b830182620004f7565b50505b505050565b600082821c905092915050565b60006200058e600019846008026200056e565b1980831691505092915050565b6000620005a983836200057b565b9150826002028217905092915050565b620005c4826200033f565b67ffffffffffffffff811115620005e057620005df6200034a565b5b620005ec8254620003a8565b620005f98282856200051e565b600060209050601f8311600181146200063157600084156200061c578287015190505b6200062885826200059b565b86555062000698565b601f1984166200064186620003dd565b60005b828110156200066b5784890151825560018201915060208501945060208101905062000644565b868310156200068b578489015162000687601f8916826200057b565b8355505b6001600288020188555050505b505050505050565b61551580620006b06000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c8063715018a611610130578063b187bd26116100b8578063cf61b2f21161007c578063cf61b2f21461064a578063e97c46b214610666578063e985e9c514610684578063f2fde38b146106b4578063f41e685d146106d057610232565b8063b187bd261461058d578063b88d4fde146105ab578063bc592953146105c7578063bfca66c9146105e5578063c87b56dd1461061a57610232565b80638da5cb5b116100ff5780638da5cb5b146104e757806395d89b41146105055780639d91119714610523578063a22cb46514610553578063a5f0292b1461056f57610232565b8063715018a61461049957806376a6bf2c146104a35780638676803b146104bf5780638690e43b146104c957610232565b80633584464e116101be5780635a85efbf116101825780635a85efbf146103e15780635c975abb146103fd5780636352211e1461041b5780636ee2e7d91461044b57806370a082311461046957610232565b80633584464e1461037757806342842e0e146103935780634a4e3bd5146103af57806350ea849b146103b957806351858e27146103d757610232565b80630b8e58c9116102055780630b8e58c9146102d157806322288126146102ef57806323b872dd1461030d57806328daeed5146103295780632b37b3ae1461035957610232565b806301ffc9a71461023757806306fdde0314610267578063081812fc14610285578063095ea7b3146102b5575b600080fd5b610251600480360381019061024c9190613815565b6106ec565b60405161025e919061385d565b60405180910390f35b61026f61074d565b60405161027c9190613908565b60405180910390f35b61029f600480360381019061029a9190613960565b6107df565b6040516102ac91906139ce565b60405180910390f35b6102cf60048036038101906102ca9190613a15565b6107fb565b005b6102d9610811565b6040516102e69190613908565b60405180910390f35b6102f761089f565b6040516103049190613c00565b60405180910390f35b61032760048036038101906103229190613c22565b6108ae565b005b610343600480360381019061033e9190613daa565b610967565b604051610350919061385d565b60405180910390f35b610361610a0c565b60405161036e9190613908565b60405180910390f35b610391600480360381019061038c9190613df3565b610b14565b005b6103ad60048036038101906103a89190613c22565b610c1c565b005b6103b7610c3c565b005b6103c1610cd7565b6040516103ce9190613e8d565b60405180910390f35b6103df610cdd565b005b6103fb60048036038101906103f69190613f2c565b610d78565b005b6104056110ce565b604051610412919061385d565b60405180910390f35b61043560048036038101906104309190613960565b6110e5565b60405161044291906139ce565b60405180910390f35b6104536110f7565b6040516104609190614007565b60405180910390f35b610483600480360381019061047e9190614022565b61111d565b6040516104909190613e8d565b60405180910390f35b6104a16111d7565b005b6104bd60048036038101906104b89190614074565b6111eb565b005b6104c7611407565b005b6104d16114f6565b6040516104de91906139ce565b60405180910390f35b6104ef61151a565b6040516104fc91906139ce565b60405180910390f35b61050d611544565b60405161051a9190613908565b60405180910390f35b61053d60048036038101906105389190614022565b6115d6565b60405161054a9190613e8d565b60405180910390f35b61056d600480360381019061056891906140e0565b6115ee565b005b610577611604565b6040516105849190614141565b60405180910390f35b61059561162a565b6040516105a2919061385d565b60405180910390f35b6105c560048036038101906105c091906141fd565b611639565b005b6105cf61166b565b6040516105dc9190613e8d565b60405180910390f35b6105ff60048036038101906105fa9190613960565b611671565b60405161061196959493929190614280565b60405180910390f35b610634600480360381019061062f9190613960565b6117bd565b6040516106419190613908565b60405180910390f35b610664600480360381019061065f9190614447565b6118d0565b005b61066e611c20565b60405161067b9190613908565b60405180910390f35b61069e60048036038101906106999190614530565b611cae565b6040516106ab919061385d565b60405180910390f35b6106ce60048036038101906106c99190614022565b611d42565b005b6106ea60048036038101906106e591906145b4565b611dc8565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610746575061074582611eb9565b5b9050919050565b6060600b805461075c90614682565b80601f016020809104026020016040519081016040528092919081815260200182805461078890614682565b80156107d55780601f106107aa576101008083540402835291602001916107d5565b820191906000526020600020905b8154815290600101906020018083116107b857829003601f168201915b5050505050905090565b60006107ea82611f9b565b506107f482612023565b9050919050565b61080d8282610808612060565b612068565b5050565b6007805461081e90614682565b80601f016020809104026020016040519081016040528092919081815260200182805461084a90614682565b80156108975780601f1061086c57610100808354040283529160200191610897565b820191906000526020600020905b81548152906001019060200180831161087a57829003601f168201915b505050505081565b60606108a961207a565b905090565b6108b6612280565b6108be6122c6565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630eea54d63384846040518463ffffffff1660e01b815260040161091d939291906146c2565b600060405180830381600087803b15801561093757600080fd5b505af115801561094b573d6000803e3d6000fd5b5050505061095a338383612307565b610962612409565b505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166328daeed5836040518263ffffffff1660e01b81526004016109c49190613908565b602060405180830381865afa1580156109e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a05919061470e565b9050919050565b6060610a6e60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518060400160405280600a81526020017f535550455241444d494e00000000000000000000000000000000000000000000815250612413565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166359457efd336040518263ffffffff1660e01b8152600401610ac991906139ce565b600060405180830381865afa158015610ae6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610b0f91906147ab565b905090565b610b1c6122c6565b610b7c60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518060400160405280600a81526020017f535550455241444d494e0000000000000000000000000000000000000000000081525061257c565b60046000815480929190610b8f90614823565b9190505550610b9f8383836125c2565b600360006001600454610bb2919061486b565b81526020019081526020016000206000820151816000019081610bd59190614a41565b506020820151816001019081610beb9190614a41565b5060408201518160020155606082015181600301556080820151816004015560a08201518160050155905050505050565b610c3783838360405180602001604052806000815250611639565b505050565b610c44612602565b732ee70f0585d83f523ae876f86b8df2c6c8677a9973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cbd576040517f3ee569bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cc5612280565b610ccd612669565b610cd5612409565b565b60045481565b610ce5612602565b732ee70f0585d83f523ae876f86b8df2c6c8677a9973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d5e576040517f3ee569bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d66612280565b610d6e6126cc565b610d76612409565b565b610d80612280565b610d886122c6565b6000339050600860008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421015610e06576040517f3ee569bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610258600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060036000866040016020810190610e659190614b4d565b61ffff1681526020019081526020016000209050806004016000815480929190610e8e90614823565b91905055506000600554905060056000815480929190610ead90614823565b9190505550600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636cfb0af8896000868b8b8b60006040518863ffffffff1660e01b8152600401610f1e9796959493929190614dd5565b60408051808303816000875af1158015610f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f609190614e70565b91509150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635647685186838588600201546000806040518763ffffffff1660e01b8152600401610fce96959493929190614f6f565b600060405180830381600087803b158015610fe857600080fd5b505af1158015610ffc573d6000803e3d6000fd5b5050505061100a858461272f565b6110588388888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061274d565b816bffffffffffffffffffffffff16838673ffffffffffffffffffffffffffffffffffffffff167f76da1cce06bef514cd31f5ad6eb50d59bdcefca95a2b95387a092ef7306096fb8488600201546040516110b4929190614fd0565b60405180910390a450505050506110c9612409565b505050565b6000601260009054906101000a900460ff16905090565b60006110f082611f9b565b9050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111905760006040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161118791906139ce565b60405180910390fd5b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111df6127a9565b6111e96000612830565b565b61124b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518060400160405280600a81526020017f535550455241444d494e0000000000000000000000000000000000000000000081525061257c565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b1576040517f2fb42d7000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060028111156112c5576112c4614eb0565b5b8160028111156112d8576112d7614eb0565b5b0361132257816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611403565b6001600281111561133657611335614eb0565b5b81600281111561134957611348614eb0565b5b036113945781600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611402565b6002808111156113a7576113a6614eb0565b5b8160028111156113ba576113b9614eb0565b5b036114015781600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b5050565b61146760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518060400160405280600a81526020017f535550455241444d494e0000000000000000000000000000000000000000000081525061257c565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639990ca70336040518263ffffffff1660e01b81526004016114c291906139ce565b600060405180830381600087803b1580156114dc57600080fd5b505af11580156114f0573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c805461155390614682565b80601f016020809104026020016040519081016040528092919081815260200182805461157f90614682565b80156115cc5780601f106115a1576101008083540402835291602001916115cc565b820191906000526020600020905b8154815290600101906020018083116115af57829003601f168201915b5050505050905090565b60086020528060005260406000206000915090505481565b6116006115f9612060565b83836128f6565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116346110ce565b905090565b6040517fdb34179500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055481565b600360205280600052604060002060009150905080600001805461169490614682565b80601f01602080910402602001604051908101604052809291908181526020018280546116c090614682565b801561170d5780601f106116e25761010080835404028352916020019161170d565b820191906000526020600020905b8154815290600101906020018083116116f057829003601f168201915b50505050509080600101805461172290614682565b80601f016020809104026020016040519081016040528092919081815260200182805461174e90614682565b801561179b5780601f106117705761010080835404028352916020019161179b565b820191906000526020600020905b81548152906001019060200180831161177e57829003601f168201915b5050505050908060020154908060030154908060040154908060050154905086565b60606117c882611f9b565b5060006011600084815260200190815260200160002080546117e990614682565b80601f016020809104026020016040519081016040528092919081815260200182805461181590614682565b80156118625780601f1061183757610100808354040283529160200191611862565b820191906000526020600020905b81548152906001019060200180831161184557829003601f168201915b505050505090506000611873612a65565b905060008151036118885781925050506118cb565b6000825111156118bd5780826040516020016118a5929190615035565b604051602081830303815290604052925050506118cb565b6118c684612a7c565b925050505b919050565b61193060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518060400160405280600681526020017f53595354454d000000000000000000000000000000000000000000000000000081525061257c565b6119386122c6565b611940612602565b600088889050905060008114806119575750603281115b1561198e576040517fdb34179500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b89899050811015611c145760008888838181106119b1576119b0615059565b5b90506020020160208101906119c69190614022565b905060008787848181106119dd576119dc615059565b5b90506020020160208101906119f29190615088565b905060008c8c85818110611a0957611a08615059565b5b9050602002810190611a1b91906150c4565b611a24906151ce565b905060008d8d86818110611a3b57611a3a615059565b5b9050602002810190611a4d91906150c4565b600001359050600181611a6091906151e1565b600581905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636cfb0af86040518060a001604052808560200151815260200185604001516bffffffffffffffffffffffff168152602001856060015161ffff168152602001856080015181526020018560a0015160ff1681525085848c8c8b818110611b0957611b08615059565b5b9050602002810190611b1b9190615215565b8a60016040518863ffffffff1660e01b8152600401611b4097969594939291906152f5565b60408051808303816000875af1158015611b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b829190614e70565b5050611b9284836000015161272f565b611c0381898988818110611ba957611ba8615059565b5b9050602002810190611bbb9190615215565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061274d565b505050508080600101915050611991565b50505050505050505050565b60068054611c2d90614682565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5990614682565b8015611ca65780601f10611c7b57610100808354040283529160200191611ca6565b820191906000526020600020905b815481529060010190602001808311611c8957829003601f168201915b505050505081565b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611d4a6127a9565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dbc5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611db391906139ce565b60405180910390fd5b611dc581612830565b50565b611dd06122c6565b611e3060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518060400160405280600a81526020017f535550455241444d494e0000000000000000000000000000000000000000000081525061257c565b611e3b8383836125c2565b60036000866bffffffffffffffffffffffff1681526020019081526020016000206000820151816000019081611e719190614a41565b506020820151816001019081611e879190614a41565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015590505050505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f8457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f945750611f9382612ae5565b5b9050919050565b600080611fa783612b4f565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361201a57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016120119190613e8d565b60405180910390fd5b80915050919050565b6000600f600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6120758383836001612b8c565b505050565b6060600060045467ffffffffffffffff81111561209a57612099613c7f565b5b6040519080825280602002602001820160405280156120d357816020015b6120c0613773565b8152602001906001900390816120b85790505b50905060005b60045481101561227857600360008281526020019081526020016000206040518060c001604052908160008201805461211190614682565b80601f016020809104026020016040519081016040528092919081815260200182805461213d90614682565b801561218a5780601f1061215f5761010080835404028352916020019161218a565b820191906000526020600020905b81548152906001019060200180831161216d57829003601f168201915b505050505081526020016001820180546121a390614682565b80601f01602080910402602001604051908101604052809291908181526020018280546121cf90614682565b801561221c5780601f106121f15761010080835404028352916020019161221c565b820191906000526020600020905b8154815290600101906020018083116121ff57829003601f168201915b505050505081526020016002820154815260200160038201548152602001600482015481526020016005820154815250508282815181106122605761225f615059565b5b602002602001018190525080806001019150506120d9565b508091505090565b6002600a54036122bc576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600a81905550565b6122ce6110ce565b15612305576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123795760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161237091906139ce565b60405180910390fd5b600061238d8383612388612060565b612d51565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612403578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016123fa93929190615366565b60405180910390fd5b50505050565b6001600a81905550565b8273ffffffffffffffffffffffffffffffffffffffff1663ae4525a483836040518363ffffffff1660e01b815260040161244e92919061539d565b602060405180830381865afa15801561246b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248f919061470e565b6124c5576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663ae4525a432836040518363ffffffff1660e01b815260040161250092919061539d565b602060405180830381865afa15801561251d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612541919061470e565b612577576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b612587838383612f6b565b6125bd576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6125ca613773565b6040518060c0016040528084815260200185815260200183815260200142815260200160008152602001600081525090509392505050565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614612667576040517f4ca8886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6126716130bf565b6000601260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6126b5612060565b6040516126c291906139ce565b60405180910390a1565b6126d46122c6565b6001601260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612718612060565b60405161272591906139ce565b60405180910390a1565b6127498282604051806020016040528060008152506130ff565b5050565b8060116000848152602001908152602001600020908161276d9190614a41565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78260405161279d9190613e8d565b60405180910390a15050565b6127b1612060565b73ffffffffffffffffffffffffffffffffffffffff166127cf61151a565b73ffffffffffffffffffffffffffffffffffffffff161461282e576127f2612060565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161282591906139ce565b60405180910390fd5b565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361296757816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161295e91906139ce565b60405180910390fd5b80601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612a58919061385d565b60405180910390a3505050565b606060405180602001604052806000815250905090565b6060612a8782611f9b565b506000612a92612a65565b90506000815111612ab25760405180602001604052806000815250612add565b80612abc84613123565b604051602001612acd929190615035565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000600d600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080612bc55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612cf9576000612bd584611f9b565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612c4057508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612c535750612c518184611cae565b155b15612c9557826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401612c8c91906139ce565b60405180910390fd5b8115612cf757838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b83600f600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b600080612d5d84612b4f565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612d9f57612d9e8184866131f1565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612e3057612de1600085600080612b8c565b6001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612eb3576001600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b84600d600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6000808473ffffffffffffffffffffffffffffffffffffffff16637909185185856040518363ffffffff1660e01b8152600401612fa992919061539d565b6020604051808303816000875af1158015612fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fec919061470e565b90508015801561302857508373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614155b156130b3578473ffffffffffffffffffffffffffffffffffffffff16637909185132856040518363ffffffff1660e01b815260040161306892919061539d565b6020604051808303816000875af1158015613087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ab919061470e565b9150506130b8565b809150505b9392505050565b6130c76110ce565b6130fd576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61310983836132b5565b61311e613114612060565b60008585856133ae565b505050565b6060600060016131328461355f565b01905060008167ffffffffffffffff81111561315157613150613c7f565b5b6040519080825280601f01601f1916602001820160405280156131835781602001600182028036833780820191505090505b509050600082602083010190505b6001156131e6578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816131da576131d96153cd565b5b04945060008503613191575b819350505050919050565b6131fc8383836136b2565b6132b057600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361327157806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016132689190613e8d565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016132a7929190614fd0565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133275760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161331e91906139ce565b60405180910390fd5b600061333583836000612d51565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146133a95760006040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016133a091906139ce565b60405180910390fd5b505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115613558578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b815260040161340d9493929190615451565b6020604051808303816000875af192505050801561344957506040513d601f19601f8201168201806040525081019061344691906154b2565b60015b6134cd573d8060008114613479576040519150601f19603f3d011682016040523d82523d6000602084013e61347e565b606091505b5060008151036134c557836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016134bc91906139ce565b60405180910390fd5b805160208201fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461355657836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161354d91906139ce565b60405180910390fd5b505b5050505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106135bd577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816135b3576135b26153cd565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106135fa576d04ee2d6d415b85acef810000000083816135f0576135ef6153cd565b5b0492506020810190505b662386f26fc10000831061362957662386f26fc10000838161361f5761361e6153cd565b5b0492506010810190505b6305f5e1008310613652576305f5e1008381613648576136476153cd565b5b0492506008810190505b612710831061367757612710838161366d5761366c6153cd565b5b0492506004810190505b6064831061369a57606483816136905761368f6153cd565b5b0492506002810190505b600a83106136a9576001810190505b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561376a57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061372b575061372a8484611cae565b5b8061376957508273ffffffffffffffffffffffffffffffffffffffff1661375183612023565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b6040518060c001604052806060815260200160608152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6137f2816137bd565b81146137fd57600080fd5b50565b60008135905061380f816137e9565b92915050565b60006020828403121561382b5761382a6137b3565b5b600061383984828501613800565b91505092915050565b60008115159050919050565b61385781613842565b82525050565b6000602082019050613872600083018461384e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156138b2578082015181840152602081019050613897565b60008484015250505050565b6000601f19601f8301169050919050565b60006138da82613878565b6138e48185613883565b93506138f4818560208601613894565b6138fd816138be565b840191505092915050565b6000602082019050818103600083015261392281846138cf565b905092915050565b6000819050919050565b61393d8161392a565b811461394857600080fd5b50565b60008135905061395a81613934565b92915050565b600060208284031215613976576139756137b3565b5b60006139848482850161394b565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006139b88261398d565b9050919050565b6139c8816139ad565b82525050565b60006020820190506139e360008301846139bf565b92915050565b6139f2816139ad565b81146139fd57600080fd5b50565b600081359050613a0f816139e9565b92915050565b60008060408385031215613a2c57613a2b6137b3565b5b6000613a3a85828601613a00565b9250506020613a4b8582860161394b565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b6000613a9d82613878565b613aa78185613a81565b9350613ab7818560208601613894565b613ac0816138be565b840191505092915050565b613ad48161392a565b82525050565b600060c0830160008301518482036000860152613af78282613a92565b91505060208301518482036020860152613b118282613a92565b9150506040830151613b266040860182613acb565b506060830151613b396060860182613acb565b506080830151613b4c6080860182613acb565b5060a0830151613b5f60a0860182613acb565b508091505092915050565b6000613b768383613ada565b905092915050565b6000602082019050919050565b6000613b9682613a55565b613ba08185613a60565b935083602082028501613bb285613a71565b8060005b85811015613bee5784840389528151613bcf8582613b6a565b9450613bda83613b7e565b925060208a01995050600181019050613bb6565b50829750879550505050505092915050565b60006020820190508181036000830152613c1a8184613b8b565b905092915050565b600080600060608486031215613c3b57613c3a6137b3565b5b6000613c4986828701613a00565b9350506020613c5a86828701613a00565b9250506040613c6b8682870161394b565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613cb7826138be565b810181811067ffffffffffffffff82111715613cd657613cd5613c7f565b5b80604052505050565b6000613ce96137a9565b9050613cf58282613cae565b919050565b600067ffffffffffffffff821115613d1557613d14613c7f565b5b613d1e826138be565b9050602081019050919050565b82818337600083830152505050565b6000613d4d613d4884613cfa565b613cdf565b905082815260208101848484011115613d6957613d68613c7a565b5b613d74848285613d2b565b509392505050565b600082601f830112613d9157613d90613c75565b5b8135613da1848260208601613d3a565b91505092915050565b600060208284031215613dc057613dbf6137b3565b5b600082013567ffffffffffffffff811115613dde57613ddd6137b8565b5b613dea84828501613d7c565b91505092915050565b600080600060608486031215613e0c57613e0b6137b3565b5b600084013567ffffffffffffffff811115613e2a57613e296137b8565b5b613e3686828701613d7c565b935050602084013567ffffffffffffffff811115613e5757613e566137b8565b5b613e6386828701613d7c565b9250506040613e748682870161394b565b9150509250925092565b613e878161392a565b82525050565b6000602082019050613ea26000830184613e7e565b92915050565b600080fd5b600060a08284031215613ec357613ec2613ea8565b5b81905092915050565b600080fd5b600080fd5b60008083601f840112613eec57613eeb613c75565b5b8235905067ffffffffffffffff811115613f0957613f08613ecc565b5b602083019150836001820283011115613f2557613f24613ed1565b5b9250929050565b600080600060408486031215613f4557613f446137b3565b5b600084013567ffffffffffffffff811115613f6357613f626137b8565b5b613f6f86828701613ead565b935050602084013567ffffffffffffffff811115613f9057613f8f6137b8565b5b613f9c86828701613ed6565b92509250509250925092565b6000819050919050565b6000613fcd613fc8613fc38461398d565b613fa8565b61398d565b9050919050565b6000613fdf82613fb2565b9050919050565b6000613ff182613fd4565b9050919050565b61400181613fe6565b82525050565b600060208201905061401c6000830184613ff8565b92915050565b600060208284031215614038576140376137b3565b5b600061404684828501613a00565b91505092915050565b6003811061405c57600080fd5b50565b60008135905061406e8161404f565b92915050565b6000806040838503121561408b5761408a6137b3565b5b600061409985828601613a00565b92505060206140aa8582860161405f565b9150509250929050565b6140bd81613842565b81146140c857600080fd5b50565b6000813590506140da816140b4565b92915050565b600080604083850312156140f7576140f66137b3565b5b600061410585828601613a00565b9250506020614116858286016140cb565b9150509250929050565b600061412b82613fd4565b9050919050565b61413b81614120565b82525050565b60006020820190506141566000830184614132565b92915050565b600067ffffffffffffffff82111561417757614176613c7f565b5b614180826138be565b9050602081019050919050565b60006141a061419b8461415c565b613cdf565b9050828152602081018484840111156141bc576141bb613c7a565b5b6141c7848285613d2b565b509392505050565b600082601f8301126141e4576141e3613c75565b5b81356141f484826020860161418d565b91505092915050565b60008060008060808587031215614217576142166137b3565b5b600061422587828801613a00565b945050602061423687828801613a00565b93505060406142478782880161394b565b925050606085013567ffffffffffffffff811115614268576142676137b8565b5b614274878288016141cf565b91505092959194509250565b600060c082019050818103600083015261429a81896138cf565b905081810360208301526142ae81886138cf565b90506142bd6040830187613e7e565b6142ca6060830186613e7e565b6142d76080830185613e7e565b6142e460a0830184613e7e565b979650505050505050565b60008083601f84011261430557614304613c75565b5b8235905067ffffffffffffffff81111561432257614321613ecc565b5b60208301915083602082028301111561433e5761433d613ed1565b5b9250929050565b60008083601f84011261435b5761435a613c75565b5b8235905067ffffffffffffffff81111561437857614377613ecc565b5b60208301915083602082028301111561439457614393613ed1565b5b9250929050565b60008083601f8401126143b1576143b0613c75565b5b8235905067ffffffffffffffff8111156143ce576143cd613ecc565b5b6020830191508360208202830111156143ea576143e9613ed1565b5b9250929050565b60008083601f84011261440757614406613c75565b5b8235905067ffffffffffffffff81111561442457614423613ecc565b5b6020830191508360208202830111156144405761443f613ed1565b5b9250929050565b6000806000806000806000806080898b031215614467576144666137b3565b5b600089013567ffffffffffffffff811115614485576144846137b8565b5b6144918b828c016142ef565b9850985050602089013567ffffffffffffffff8111156144b4576144b36137b8565b5b6144c08b828c01614345565b9650965050604089013567ffffffffffffffff8111156144e3576144e26137b8565b5b6144ef8b828c0161439b565b9450945050606089013567ffffffffffffffff811115614512576145116137b8565b5b61451e8b828c016143f1565b92509250509295985092959890939650565b60008060408385031215614547576145466137b3565b5b600061455585828601613a00565b925050602061456685828601613a00565b9150509250929050565b60006bffffffffffffffffffffffff82169050919050565b61459181614570565b811461459c57600080fd5b50565b6000813590506145ae81614588565b92915050565b600080600080608085870312156145ce576145cd6137b3565b5b60006145dc8782880161459f565b945050602085013567ffffffffffffffff8111156145fd576145fc6137b8565b5b61460987828801613d7c565b935050604085013567ffffffffffffffff81111561462a576146296137b8565b5b61463687828801613d7c565b92505060606146478782880161394b565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061469a57607f821691505b6020821081036146ad576146ac614653565b5b50919050565b6146bc81614570565b82525050565b60006060820190506146d760008301866139bf565b6146e460208301856139bf565b6146f160408301846146b3565b949350505050565b600081519050614708816140b4565b92915050565b600060208284031215614724576147236137b3565b5b6000614732848285016146f9565b91505092915050565b600061474e61474984613cfa565b613cdf565b90508281526020810184848401111561476a57614769613c7a565b5b614775848285613894565b509392505050565b600082601f83011261479257614791613c75565b5b81516147a284826020860161473b565b91505092915050565b6000602082840312156147c1576147c06137b3565b5b600082015167ffffffffffffffff8111156147df576147de6137b8565b5b6147eb8482850161477d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061482e8261392a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036148605761485f6147f4565b5b600182019050919050565b60006148768261392a565b91506148818361392a565b9250828203905081811115614899576148986147f4565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026149017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826148c4565b61490b86836148c4565b95508019841693508086168417925050509392505050565b600061493e6149396149348461392a565b613fa8565b61392a565b9050919050565b6000819050919050565b61495883614923565b61496c61496482614945565b8484546148d1565b825550505050565b600090565b614981614974565b61498c81848461494f565b505050565b5b818110156149b0576149a5600082614979565b600181019050614992565b5050565b601f8211156149f5576149c68161489f565b6149cf846148b4565b810160208510156149de578190505b6149f26149ea856148b4565b830182614991565b50505b505050565b600082821c905092915050565b6000614a18600019846008026149fa565b1980831691505092915050565b6000614a318383614a07565b9150826002028217905092915050565b614a4a82613878565b67ffffffffffffffff811115614a6357614a62613c7f565b5b614a6d8254614682565b614a788282856149b4565b600060209050601f831160018114614aab5760008415614a99578287015190505b614aa38582614a25565b865550614b0b565b601f198416614ab98661489f565b60005b82811015614ae157848901518255600182019150602085019450602081019050614abc565b86831015614afe5784890151614afa601f891682614a07565b8355505b6001600288020188555050505b505050505050565b600061ffff82169050919050565b614b2a81614b13565b8114614b3557600080fd5b50565b600081359050614b4781614b21565b92915050565b600060208284031215614b6357614b626137b3565b5b6000614b7184828501614b38565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112614ba657614ba5614b84565b5b83810192508235915060208301925067ffffffffffffffff821115614bce57614bcd614b7a565b5b600182023603831315614be457614be3614b7f565b5b509250929050565b6000614bf88385613a81565b9350614c05838584613d2b565b614c0e836138be565b840190509392505050565b6000614c28602084018461459f565b905092915050565b614c3981614570565b82525050565b6000614c4e6020840184614b38565b905092915050565b614c5f81614b13565b82525050565b600060ff82169050919050565b614c7b81614c65565b8114614c8657600080fd5b50565b600081359050614c9881614c72565b92915050565b6000614cad6020840184614c89565b905092915050565b614cbe81614c65565b82525050565b600060a08301614cd76000840184614b89565b8583036000870152614cea838284614bec565b92505050614cfb6020840184614c19565b614d086020860182614c30565b50614d166040840184614c3f565b614d236040860182614c56565b50614d316060840184614b89565b8583036060870152614d44838284614bec565b92505050614d556080840184614c9e565b614d626080860182614cb5565b508091505092915050565b6000819050919050565b6000614d92614d8d614d8884614d6d565b613fa8565b614570565b9050919050565b614da281614d77565b82525050565b6000614db48385613883565b9350614dc1838584613d2b565b614dca836138be565b840190509392505050565b600060c0820190508181036000830152614def818a614cc4565b9050614dfe6020830189614d99565b614e0b60408301886146b3565b8181036060830152614e1e818688614da8565b9050614e2d60808301856139bf565b614e3a60a083018461384e565b98975050505050505050565b600081519050614e5581614588565b92915050565b600081519050614e6a816139e9565b92915050565b60008060408385031215614e8757614e866137b3565b5b6000614e9585828601614e46565b9250506020614ea685828601614e5b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60038110614ef057614eef614eb0565b5b50565b6000819050614f0182614edf565b919050565b6000614f1182614ef3565b9050919050565b614f2181614f06565b82525050565b60038110614f3857614f37614eb0565b5b50565b6000819050614f4982614f27565b919050565b6000614f5982614f3b565b9050919050565b614f6981614f4e565b82525050565b600060c082019050614f8460008301896139bf565b614f9160208301886139bf565b614f9e60408301876146b3565b614fab6060830186613e7e565b614fb86080830185614f18565b614fc560a0830184614f60565b979650505050505050565b6000604082019050614fe560008301856139bf565b614ff26020830184613e7e565b9392505050565b600081905092915050565b600061500f82613878565b6150198185614ff9565b9350615029818560208601613894565b80840191505092915050565b60006150418285615004565b915061504d8284615004565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561509e5761509d6137b3565b5b60006150ac8482850161459f565b91505092915050565b600080fd5b600080fd5b600080fd5b60008235600160c0038336030381126150e0576150df6150b5565b5b80830191505092915050565b600080fd5b600080fd5b600060c0828403121561510c5761510b6150ec565b5b61511660c0613cdf565b905060006151268482850161394b565b600083015250602082013567ffffffffffffffff81111561514a576151496150f1565b5b61515684828501613d7c565b602083015250604061516a8482850161459f565b604083015250606061517e84828501614b38565b606083015250608082013567ffffffffffffffff8111156151a2576151a16150f1565b5b6151ae84828501613d7c565b60808301525060a06151c284828501614c89565b60a08301525092915050565b60006151da36836150f6565b9050919050565b60006151ec8261392a565b91506151f78361392a565b925082820190508082111561520f5761520e6147f4565b5b92915050565b60008083356001602003843603038112615232576152316150b5565b5b80840192508235915067ffffffffffffffff821115615254576152536150ba565b5b6020830192506001820236038313156152705761526f6150bf565b5b509250929050565b600060a08301600083015184820360008601526152958282613a92565b91505060208301516152aa6020860182614c30565b5060408301516152bd6040860182614c56565b50606083015184820360608601526152d58282613a92565b91505060808301516152ea6080860182614cb5565b508091505092915050565b600060c082019050818103600083015261530f818a615278565b905061531e60208301896146b3565b61532b60408301886146b3565b818103606083015261533e818688614da8565b905061534d60808301856139bf565b61535a60a083018461384e565b98975050505050505050565b600060608201905061537b60008301866139bf565b6153886020830185613e7e565b61539560408301846139bf565b949350505050565b60006040820190506153b260008301856139bf565b81810360208301526153c481846138cf565b90509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000615423826153fc565b61542d8185615407565b935061543d818560208601613894565b615446816138be565b840191505092915050565b600060808201905061546660008301876139bf565b61547360208301866139bf565b6154806040830185613e7e565b81810360608301526154928184615418565b905095945050505050565b6000815190506154ac816137e9565b92915050565b6000602082840312156154c8576154c76137b3565b5b60006154d68482850161549d565b9150509291505056fea26469706673582212202a26ba635298c219a80dded239ed4f8e7563603651e3a8cc9c9e4ef18fd5119664736f6c6343000818003300000000000000000000000039572b7c375a4be0be74fcf1ce33080a001f09a4000000000000000000000000357ce9738606b6eb6714605f4c30853fcc0c7a4f000000000000000000000000facaf7875fb4b7be74bfd3578ba21dd38aa6d0a60000000000000000000000001bd41c988fd8807a73e79cfb465df488e73d6c0d