0 txs
16 calls
constructor
constructor(address _yelayOwner)
functions
allowance
purefunction allowance(address, address) pure returns (uint256)
approve
purefunction approve(address, uint256) pure returns (bool)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
firstTrancheStartTime
viewfunction firstTrancheStartTime() view returns (uint256)
FULL_POWER_TIME
viewfunction FULL_POWER_TIME() view returns (uint256)
FULL_POWER_TRANCHES_COUNT
viewfunction FULL_POWER_TRANCHES_COUNT() view returns (uint256)
getCurrentTrancheIndex
viewfunction getCurrentTrancheIndex() view returns (uint16)
getGlobalGradual
viewfunction getGlobalGradual() view returns (tuple)
getLastFinishedTrancheIndex
viewfunction getLastFinishedTrancheIndex() view returns (uint16)
getNextTrancheEndTime
viewfunction getNextTrancheEndTime() view returns (uint256)
getNotUpdatedGlobalGradual
viewfunction getNotUpdatedGlobalGradual() view returns (tuple)
getNotUpdatedUserGradual
viewfunction getNotUpdatedUserGradual(address user) view returns (tuple)
getTotalGradualVotingPower
viewfunction getTotalGradualVotingPower() view returns (uint256)
getTrancheEndTime
viewfunction getTrancheEndTime(uint256 trancheIndex) view returns (uint256)
getTrancheIndex
viewfunction getTrancheIndex(uint256 time) view returns (uint256)
getUserGradual
viewfunction getUserGradual(address user) view returns (tuple)
getUserGradualVotingPower
viewfunction getUserGradualVotingPower(address user) view returns (uint256)
gradualMinters
viewfunction gradualMinters(address) view returns (bool)
indexedGlobalTranches
viewfunction indexedGlobalTranches(uint256) view returns (tuple zero, tuple one, tuple two, tuple three, tuple four)
minters
viewfunction minters(address) view returns (bool)
name
viewfunction name() view returns (string)
symbol
viewfunction symbol() view returns (string)
totalInstantPower
viewfunction totalInstantPower() view returns (uint256)
totalLockupPower
viewfunction totalLockupPower() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
TRANCHE_TIME
viewfunction TRANCHE_TIME() view returns (uint256)
transfer
purefunction transfer(address, uint256) pure returns (bool)
transferFrom
purefunction transferFrom(address, address, uint256) pure returns (bool)
updatedUserTranches
viewfunction updatedUserTranches(address account) view returns (tuple[] positions, tuple[] tranches)
userInstantPower
viewfunction userInstantPower(address) view returns (uint256)
userLockupIndexes
viewfunction userLockupIndexes(address, uint256) view returns (uint16)
userLockupPower
viewfunction userLockupPower(address) view returns (uint256)
userLockups
viewfunction userLockups(address account) view returns (tuple[] lockups)
userToTrancheIndexToLockup
viewfunction userToTrancheIndexToLockup(address, uint256) view returns (uint48 amount, uint56 power, uint64 start, uint64 deadline)
userTranches
viewfunction userTranches(address, uint256) view returns (tuple zero, tuple one, tuple two, tuple three)
burn
nonpayablefunction burn(address from, uint256 amount)
burnGradual
nonpayablefunction burnGradual(address from, uint256 amount, bool burnAll)
burnLockups
nonpayablefunction burnLockups(address to) returns (uint256 amount)
continueLockup
nonpayablefunction continueLockup(uint256 start, uint256 deadline)
migrateToLockup
nonpayablefunction migrateToLockup(address to, tuple userTranchePosition, uint256 deadline) returns (uint256)
mint
nonpayablefunction mint(address to, uint256 amount)
mintGradual
nonpayablefunction mintGradual(address to, uint256 amount)
mintLockup
nonpayablefunction mintLockup(address to, uint256 amount, uint256 deadline) returns (uint256)
setGradualMinter
nonpayablefunction setGradualMinter(address _gradualMinter, bool _set)
setMinter
nonpayablefunction setMinter(address _minter, bool _set)
transferUser
nonpayablefunction transferUser(address from, address to)
updateUserVotingPower
nonpayablefunction updateUserVotingPower(address user)
updateVotingPower
nonpayablefunction updateVotingPower()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Burned
event Burned(address indexed source, uint256 amount)
GlobalGradualUpdated
event GlobalGradualUpdated(uint16 indexed lastUpdatedTrancheIndex, uint48 totalMaturedVotingPower, uint48 totalMaturingAmount, uint56 totalRawUnmaturedVotingPower)
GradualBurned
event GradualBurned(address indexed source, uint256 amount, bool burnAll)
GradualMinted
event GradualMinted(address indexed recipient, uint256 amount)
GradualMinterSet
event GradualMinterSet(address indexed minter, bool set)
LockupBurned
event LockupBurned(address indexed to, uint256 lockTranche)
LockupContinued
event LockupContinued(address indexed to, uint256 lockTranche, uint256 addedPower, uint256 endTranche)
LockupMinted
event LockupMinted(address indexed to, uint256 amount, uint256 power, uint256 startTranche, uint256 endTranche)
Minted
event Minted(address indexed recipient, uint256 amount)
MinterSet
event MinterSet(address indexed minter, bool set)
TrancheMigration
event TrancheMigration(address indexed user, uint256 amount, uint256 index, uint256 rawUnmaturedVotingPower)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
UserGradualUpdated
event UserGradualUpdated(address indexed user, uint16 indexed lastUpdatedTrancheIndex, uint48 maturedVotingPower, uint48 maturingAmount, uint56 rawUnmaturedVotingPower)
UserTransferred
event UserTransferred(address indexed from, address indexed to)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162005b7f38038062005b7f8339810160408190526200003491620000d5565b806001600160a01b038116620000c25760405162461bcd60e51b815260206004820152604360248201527f59656c61794f776e61626c653a3a636f6e7374727563746f723a2059656c617960448201527f206f776e657220636f6e747261637420616464726573732063616e6e6f74206260648201526206520360ec1b608482015260a40160405180910390fd5b6001600160a01b03166080525062000107565b600060208284031215620000e857600080fd5b81516001600160a01b03811681146200010057600080fd5b9392505050565b608051615a5c62000123600039600061421d0152615a5c6000f3fe608060405234801561001057600080fd5b506004361061032b5760003560e01c806388278207116101b2578063cbfd3a43116100f9578063d7febbca116100a2578063e42084df1161007c578063e42084df146109fe578063e4c4949514610a1e578063edcd508a14610a31578063f46eccc414610a5457600080fd5b8063d7febbca146109d0578063dd62ed3e146109d8578063e3d1d5bf146109eb57600080fd5b8063d131ef57116100d3578063d131ef5714610915578063d4f54eae14610928578063d6a182b3146109bd57600080fd5b8063cbfd3a43146108da578063cf456ae7146108e2578063d09f88b5146108f557600080fd5b8063a04d80431161015b578063ab95e67e11610135578063ab95e67e146108ac578063c8800d1c146108bf578063c8a168ef146108d257600080fd5b8063a04d80431461087e578063a5ef7fab14610891578063a9059cbb1461089957600080fd5b806395d89b411161018c57806395d89b411461081c5780639dc29fac146108585780639e52c7521461086b57600080fd5b8063882782071461068a5780638afd9bc4146106e35780638c2a80341461070957600080fd5b806344b066f5116102765780635eb5164d1161021f5780637a1957ca116101f95780637a1957ca146106675780637a81cf261461066f57806385cf95ac1461067757600080fd5b80635eb5164d1461064357806370a082311461064b57806378362cd61461065e57600080fd5b80635b1534cb116102505780635b1534cb146105595780635b4653441461061a5780635df0f4b61461063a57600080fd5b806344b066f51461051b578063468682c0146105255780635638f3dd1461054657600080fd5b80632d43b867116102d85780633f9a6020116102b25780633f9a6020146104ec57806340c10f19146104ff57806343481a181461051257600080fd5b80632d43b867146104015780632e638b5f146104bd578063313ce567146104d257600080fd5b806316349cff1161030957806316349cff146103c557806318160ddd146103e657806323b872dd146103ee57600080fd5b806306fdde0314610330578063095ea7b31461038257806312fb3175146103a5575b600080fd5b61036c6040518060400160405280600c81526020017f5374616b65642059656c6179000000000000000000000000000000000000000081525081565b6040516103799190615185565b60405180910390f35b61039561039036600461521c565b610a77565b6040519015158152602001610379565b6103b86103b3366004615246565b610b07565b6040516103799190615261565b6103d86103d3366004615246565b610d43565b604051908152602001610379565b6103d8610d62565b6103956103fc3660046152e3565b610da1565b61048061040f36600461531f565b60066020908152600091825260409182902082518083018452815465ffffffffffff9081168252845180850186526001840154821681528551808601875260028501548316815286518087018852600386015484168152875196870190975260049094015490911684529093909285565b60408051955165ffffffffffff9081168752945185166020870152925184169285019290925251821660608401525116608082015260a001610379565b6104d06104cb366004615246565b610e2c565b005b6104da601281565b60405160ff9091168152602001610379565b6104d06104fa36600461521c565b610e48565b6104d061050d36600461521c565b610ecf565b6103d860035481565b6103d862093a8081565b610538610533366004615246565b610f78565b604051610379929190615338565b6104d06105543660046153f8565b6110e3565b6105d961056736600461521c565b600b60209081526000928352604080842090915290825290205465ffffffffffff81169066ffffffffffffff66010000000000008204169067ffffffffffffffff6d01000000000000000000000000008204811691750100000000000000000000000000000000000000000090041684565b6040805165ffffffffffff909516855266ffffffffffffff909316602085015267ffffffffffffffff91821692840192909252166060820152608001610379565b61062d610628366004615246565b6112c3565b604051610379919061542f565b6103d860005481565b6103d86113e6565b6103d8610659366004615246565b6113f7565b6103d860095481565b6104d0611479565b6103d860d081565b6103d861068536600461531f565b61148b565b6106926114ad565b6040516103799190600060808201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff604084015116604083015261ffff606084015116606083015292915050565b6106f66106f136600461521c565b6114e0565b60405161ffff9091168152602001610379565b6107b361071736600461521c565b600860209081526000928352604080842082529183529181902081518083018352815465ffffffffffff808216835261ffff660100000000000092839004811684880152855180870187526001860154808416825284900482168189015286518088018852600287015480851682528590048316818a015287518089019098526003909601549283168752929091041694840194909452929184565b60408051855165ffffffffffff908116825260209687015161ffff908116888401528651821693830193909352948601518216606082015283518516608082015292850151811660a0840152815190931660c0830152909201511660e082015261010001610379565b61036c6040518060400160405280600581526020017f73594c415900000000000000000000000000000000000000000000000000000081525081565b6104d061086636600461521c565b611527565b6103d86108793660046154bb565b61167f565b6103d861088c36600461531f565b6116cf565b6106f661179b565b6103956108a736600461521c565b6117b6565b6103d86108ba366004615246565b611841565b6104d06108cd3660046154ee565b611aab565b6106f6611e0d565b6103d8611e18565b6104d06108f03660046153f8565b611e2e565b6103d8610903366004615246565b60046020526000908152604090205481565b6103d8610923366004615510565b611fe8565b610692604080516080810182526000808252602082018190529181018290526060810191909152506040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925273010000000000000000000000000000000000000090910461ffff16606082015290565b61062d6109cb366004615246565b612461565b6103d86124ca565b6103d86109e6366004615576565b6124e1565b6104d06109f9366004615576565b61256c565b6103d8610a0c366004615246565b600a6020526000908152604090205481565b6104d0610a2c3660046155a9565b612e2e565b610395610a3f366004615246565b60026020526000908152604090205460ff1681565b610395610a62366004615246565b60016020526000908152604090205460ff1681565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f73594c41593a3a617070726f76653a2050726f6869626974656420416374696f60448201527f6e0000000000000000000000000000000000000000000000000000000000000060648201526000906084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c60209081526040808320805482518185028101850190935280835260609493830182828015610b9b57602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411610b625790505b50505050509050805167ffffffffffffffff811115610bbc57610bbc6155e9565b604051908082528060200260200182016040528015610c2c57816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610bda5790505b50915060005b8151811015610d3c5773ffffffffffffffffffffffffffffffffffffffff84166000908152600b602052604081208351909190849084908110610c7757610c77615618565b60209081029190910181015161ffff1682528181019290925260409081016000208151608081018352905465ffffffffffff8116825266ffffffffffffff66010000000000008204169382019390935267ffffffffffffffff6d0100000000000000000000000000840481169282019290925275010000000000000000000000000000000000000000009092041660608201528351849083908110610d1e57610d1e615618565b60200260200101819052508080610d3490615676565b915050610c32565b5050919050565b600080610d4f83613474565b509050610d5b816136bd565b9392505050565b600080610d6d6136fa565b509050610d7b6009546137d6565b610d84826136bd565b600354610d9191906156ae565b610d9b91906156ae565b91505090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f73594c41593a3a7472616e7366657246726f6d3a2050726f686962697465642060448201527f416374696f6e00000000000000000000000000000000000000000000000000006064820152600090608401610afe565b610e346137e8565b610e3c613887565b610e45816139b6565b50565b610e506137e8565b610e58613887565b81610e62816139b6565b6000610e6d83613b73565b9050610e798482613b85565b8373ffffffffffffffffffffffffffffffffffffffff167fe24fb5918dfdd34ee115de98f0d2960d0ce30d6169a74367fd256ff3b5048b7484604051610ec191815260200190565b60405180910390a250505050565b610ed7613f09565b8060036000828254610ee991906156ae565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081208054839290610f239084906156ae565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe906020015b60405180910390a25050565b6060806000610f8684613474565b509050610f9281613fa8565b156110dd5760608101516000610fa783613fc2565b90508067ffffffffffffffff811115610fc257610fc26155e9565b60405190808252806020026020018201604052801561100757816020015b6040805180820190915260008082526020820152815260200190600190039081610fe05790505b5093508067ffffffffffffffff811115611023576110236155e9565b60405190808252806020026020018201604052801561106857816020015b60408051808201909152600080825260208201528152602001906001900390816110415790505b50945060005b84518110156110d9576110818784614035565b85828151811061109357611093615618565b6020026020010181905250828682815181106110b1576110b1615618565b60200260200101819052506110c583614175565b9250806110d181615676565b91505061106e565b5050505b50915091565b6110eb6141ec565b611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610afe565b73ffffffffffffffffffffffffffffffffffffffff8216611240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f73594c41593a3a7365744772616475616c4d696e7465723a206772616475616c60448201527f206d696e7465722063616e6e6f7420626520746865207a65726f20616464726560648201527f7373000000000000000000000000000000000000000000000000000000000000608482015260a401610afe565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fd066a75103af5bd5a100de58375e7cf390671150ac63a9f845137e25042bf1589101610f6c565b6113196040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b5073ffffffffffffffffffffffffffffffffffffffff16600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285015266ffffffffffffff6c01000000000000000000000000909104168185015283518085018552600183015461ffff808216835260ff6201000092839004811684880152606085019390935286518088019097526002850154808216885291909104909116938501939093526080810193909352600301541660a082015290565b6113f460d062093a806156c6565b81565b60008061140383613474565b5073ffffffffffffffffffffffffffffffffffffffff84166000908152600a6020526040902054909150611436906137d6565b61143f826136bd565b73ffffffffffffffffffffffffffffffffffffffff851660009081526004602052604090205461146f91906156ae565b610d5b91906156ae565b6114816137e8565b611489613887565b565b600061149a62093a80836156c6565b6000546114a791906156ae565b92915050565b6040805160808101825260008082526020820181905291810182905260608101829052906114d96136fa565b5092915050565b600c60205281600052604060002081815481106114fc57600080fd5b9060005260206000209060109182820401919006600202915091509054906101000a900461ffff1681565b61152f613f09565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020548111156115e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a6275726e3a205573657220696e7374616e7420706f776572206260448201527f616c616e636520746f6f206c6f770000000000000000000000000000000000006064820152608401610afe565b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081208054839290611619908490615703565b9250508190555080600360008282546116329190615703565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df790602001610f6c565b60006116896137e8565b600061169484613b73565b90506116b5858265ffffffffffff166116ab611e0d565b61ffff168661429d565b6116c68165ffffffffffff166137d6565b95945050505050565b60008054821015611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f73594c41593a3a6765745472616e636865496e6465783a2054696d65206d757360448201527f74206265206d6f7265206f7220657175616c20746f207468652066697273742060648201527f7472616e6368652074696d650000000000000000000000000000000000000000608482015260a401610afe565b611791826146b1565b61ffff1692915050565b600060016117a7611e0d565b6117b1919061571a565b905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73594c41593a3a7472616e736665723a2050726f68696269746564204163746960448201527f6f6e0000000000000000000000000000000000000000000000000000000000006064820152600090608401610afe565b600061184b6137e8565b6000611855611e0d565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c60205260408120805461ffff93909316935091905b81811015611a965760008382815481106118a4576118a4615618565b6000918252602080832060108304015473ffffffffffffffffffffffffffffffffffffffff8b168452600b82526040808520600f9094166002026101000a90910461ffff16808552928252928390208351608081018552905465ffffffffffff811682526601000000000000810466ffffffffffffff16928201929092526d0100000000000000000000000000820467ffffffffffffffff9081169482019490945275010000000000000000000000000000000000000000009091049092166060830152915061197486826146da565b15611a815761198881898461ffff16614704565b61199290886156ae565b9650846119a0600186615703565b815481106119b0576119b0615618565b90600052602060002090601091828204019190066002029054906101000a900461ffff168584815481106119e6576119e6615618565b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555084805480611a2557611a2561573d565b60008281526020902060107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191820401805461ffff6002600f8516026101000a0219169055905583611a798161576c565b945050611a8f565b82611a8b81615676565b9350505b5050611888565b50611aa0846137d6565b93505050505b919050565b336000908152600b602090815260408083208584529091529020805465ffffffffffff16611b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204e6f206c6f636b757060448201527f20706f736974696f6e20666f756e6400000000000000000000000000000000006064820152608401610afe565b80547501000000000000000000000000000000000000000000900467ffffffffffffffff168211611c0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020646560448201527f61646c696e652073686f756c6420626520696e207468652066757475726500006064820152608401610afe565b60d0611c1a8484615703565b1115611ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020706560448201527f72696f642065786365656473206120746f74616c206f662034207965617273006064820152608401610afe565b805460009060d090611cdd907501000000000000000000000000000000000000000000900467ffffffffffffffff1685615703565b8354611cf1919065ffffffffffff166156c6565b611cfb91906157d0565b90508060096000828254611d0f91906156ae565b9091555050336000908152600a602052604081208054839290611d339084906156ae565b9091555050815481908390600690611d5f9084906601000000000000900466ffffffffffffff166157e4565b82546101009290920a66ffffffffffffff8181021990931691909216919091021790555081547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000067ffffffffffffffff851602178255604080518581526020810183905290810184905233907ff105efae42c9c08d5eafed7135b77068bb81a1845393b4473ae79e86c94e97f190606001610ec1565b60006117b1426146b1565b60006117b1611e25611e0d565b61ffff1661148b565b611e366141ec565b611ec2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610afe565b73ffffffffffffffffffffffffffffffffffffffff8216611f65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f73594c41593a3a7365744d696e7465723a206d696e7465722063616e6e6f742060448201527f626520746865207a65726f2061646472657373000000000000000000000000006064820152608401610afe565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f583b0aa0e528532caf4b907c11d7a8158a122fe2a6fb80cd9b09776ebea8d92d9101610f6c565b6000611ff26137e8565b611ffa613887565b83612004816139b6565b600061201e866120193688900388018861580f565b614829565b805490915060009061203d906601000000000000900461ffff166148b0565b825490915065ffffffffffff16806120d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f616c7265616479206c6f636b65640000000000000000000000000000000000006064820152608401610afe565b60006120e1614930565b905061ffff811615806121055750835461ffff808316660100000000000090920416115b612191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f6d617475726564000000000000000000000000000000000000000000000000006064820152608401610afe565b83546000906601000000000000900461ffff166121ac611e0d565b6121b6919061571a565b6121c49061ffff16846158a2565b73ffffffffffffffffffffffffffffffffffffffff8b166000908152600760205260409020805465ffffffffffff9283169350859260069161221291859166010000000000009004166158d0565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555082600560000160068282829054906101000a900465ffffffffffff1661225a91906158d0565b825465ffffffffffff9182166101009390930a92830291909202199091161790555073ffffffffffffffffffffffffffffffffffffffff8a1660009081526007602052604090208054829190600c906122ce90849066ffffffffffffff6c01000000000000000000000000909104166158ef565b92506101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550806005600001600c8282829054906101000a900466ffffffffffffff1661231991906158ef565b825466ffffffffffffff9182166101009390930a92830291909202199091161790555084547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016855583548390859060009061237e90849065ffffffffffff166158d0565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055506123ca8a8465ffffffffffff168760000160069054906101000a900461ffff1661ffff168b61429d565b84546040805165ffffffffffff86168152660100000000000090920461ffff16602083015266ffffffffffffff83169082015273ffffffffffffffffffffffffffffffffffffffff8b16907ff6028e08bd4265711d36773ee2b3ab6b15824a3938c53ce8022919564a1b8d049060600160405180910390a26124538365ffffffffffff166137d6565b9a9950505050505050505050565b6124b76040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b60006124c283613474565b509392505050565b6000806124d56136fa565b509050610d9b816136bd565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a616c6c6f77616e63653a2050726f686962697465642041637460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152600090608401610afe565b6125746137e8565b61257d82614959565b612609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a6d6967726174653a205573657220646f6573206e6f7420657860448201527f69737400000000000000000000000000000000000000000000000000000000006064820152608401610afe565b61261281614959565b1561269f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a6d6967726174653a205573657220616c72656164792065786960448201527f73747300000000000000000000000000000000000000000000000000000000006064820152608401610afe565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285015266ffffffffffffff6c01000000000000000000000000909104168185015283518085018552600183015461ffff808216835260ff6201000092839004811684880152606085019390935286518088019097526002850154808216885291909104909116938501939093526080810193909352600301541660a082015261277281613fa8565b1561290d5760608101515160808201515161ffff9182169116815b8181116129095773ffffffffffffffffffffffffffffffffffffffff8681166000908152600860208181526040808420868552808352818520958b16855292825280842086855282529092208354815465ffffffffffff9182167fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000008083168217855587547fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000093841690921766010000000000009283900461ffff90811684029190911786556001808a0180549188018054928816838616811782558254938816179286900484168602929092179091556002808b0180549189018054928916838716811782558254938916179287900485168702929092179091556003808c0180549190990180549190981694811685178855885490871690941793859004909216909302919091179093559390945284548416909455815483169091558254821690925581541690558061290181615676565b91505061278d565b5050505b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c60209081526040808320805482518185028101850190935280835291929091908301828280156129a257602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116129695790505b5050505050905060005b8151811015612b8c5760008282815181106129c9576129c9615618565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff8881166000908152600b808552604080832061ffff909516808452858752818420948c16845291865280832091835290855290208154815465ffffffffffff9091167fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000082168117835583547fffffffffffffffffffffffffffffffffffffff000000000000000000000000009092161766010000000000009182900466ffffffffffffff169091021780825582547fffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffff82166d01000000000000000000000000009182900467ffffffffffffffff908116909202908117845584547fffffff00000000000000000000000000000000ffffffffffffffffffffffffff9093167fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff90911617750100000000000000000000000000000000000000000092839004909116909102179055915280547fffffff00000000000000000000000000000000000000000000000000000000001690555080612b8481615676565b9150506129ac565b5073ffffffffffffffffffffffffffffffffffffffff83166000908152600c602090815260409091208251612bc3928401906150aa565b5073ffffffffffffffffffffffffffffffffffffffff84166000908152600c60205260408120612bf29161514f565b73ffffffffffffffffffffffffffffffffffffffff84811660008181526007602090815260408083209488168084528184208654815465ffffffffffff9182167fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000082168117845589547fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090921617660100000000000091829004909216021780825587547fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff9091166c010000000000000000000000009182900466ffffffffffffff1690910217815560018088018054918301805461ffff9384167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00008083168217845584547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000938416909217620100009283900460ff9081168402919091179094556002808e01805491890180549289168385168117825582549387161792859004909616909302179093556003808d01805491909701805491909616908416179094558989528a547fffffffffffffffffffffffffff0000000000000000000000000000000000000016909a5581548a1690915581549098169055805490961690955560048252808320805486855282852055848452839055600a909152808220805485845282842055838352829055517fa7db278cab056bb874b7c975ab2e76c18be44e39da120a9cc6550170ec781cec9190a350505050565b612e366137e8565b612e3e613887565b82612e48816139b6565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600760209081526040808320815160c081018352815465ffffffffffff80821683526601000000000000808304821684880190815266ffffffffffffff6c010000000000000000000000009485900481168689015287518089018952600188015461ffff808216835260ff62010000928390048116848e01526060808b01949094528b51808d018d5260028c015480841682529390930416828d01526080808a0192909252600390990154891660a089015289519081018a52600554808716825294850490951699850199909952938204909316958201959095527301000000000000000000000000000000000000009094049092169383019390935251825192939192612f72919061590f565b835190915065ffffffffffff1615612f9757612f928284600001516149e8565b600083525b602083015165ffffffffffff1615612fbf57612fb7828460200151614a24565b600060208401525b604083015166ffffffffffffff1615612fe857612fe0828460400151614a5d565b600060408401525b612ff183613fa8565b156131715760608301515160808401515161ffff9182169116815b81811161316d5773ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452825291829020825160c081018452815465ffffffffffff8082166080840190815261ffff660100000000000093849004811660a086015290845286518088018852600186015480841682528490048216818801528487015286518088018852600286015480841682528490048216818801528488015286518088019097526003909401549081168652049091169183019190915260608101919091526130e390614aa8565b73ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000908116825560018201805482169055600282018054821690556003909101805490911690558061316581615676565b91505061300c565b5050505b6040518060400160405280600061ffff168152602001600060ff16815250836060018190525082600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160010160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060808201518160020160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060a08201518160030160006101000a81548161ffff021916908361ffff16021790555090505081600560008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160000160136101000a81548161ffff021916908361ffff1602179055509050508673ffffffffffffffffffffffffffffffffffffffff167f828d875bb1fd38ee261c0c069e9bc63df13bf8e7e59acc2385ea66b86c835137878760405161341d9291909182521515602082015260400190565b60405180910390a28461346b57600061343587614ada565b90508065ffffffffffff168265ffffffffffff16111561346957600061345b82846158d0565b90506134678982613b85565b505b505b50505050505050565b6134ca6040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600760209081526040808320815160c081018352815465ffffffffffff808216835266010000000000008204168286015266ffffffffffffff6c01000000000000000000000000909104168184015282518084018452600183015461ffff808216835260ff62010000928390048116848901526060850193909352855180870190965260028501548082168752919091049091169484019490945260808101929092526003015490911660a08201528161359e61179b565b90508061ffff168260a0015161ffff16036135be57509360009350915050565b6135c782613fa8565b156136aa5760006135d6614930565b905061ffff81161561363c5760006135f2878560600151614035565b90505b6135fe84613fa8565b801561361657508161ffff16816020015161ffff1611155b1561363a576136258482614b09565b613633878560600151614035565b90506135f5565b505b61364a838361ffff16614bc9565b156136a85760008360a0015183613661919061571a565b61ffff16905080846020015165ffffffffffff1661367f9190615930565b8460400181815161369091906157e4565b66ffffffffffffff169052505061ffff821660a08401525b505b61ffff1660a08201529360019350915050565b60006136dd6136d8836040015166ffffffffffffff166137d6565b614be6565b82516136f09065ffffffffffff166137d6565b6114a791906156ae565b6040805160808101825260008082526020820181905291810182905260608101829052908061372761179b565b6040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925261ffff7301000000000000000000000000000000000000009092048216606082015294501690505b80836060015161ffff1610156137d157606083018051906137b882615956565b61ffff169052506137c883614bf3565b60019150613798565b509091565b60006114a76509184e72a000836156c6565b3360009081526002602052604090205460ff16611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f73594c41593a3a5f6f6e6c794772616475616c4d696e7465723a20496e73756660448201527f66696369656e742050726976696c6567657300000000000000000000000000006064820152608401610afe565b6000806138926136fa565b9150915080156139b2578151600580546020808601516040808801516060808a015165ffffffffffff9889167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009097168717660100000000000099909516988902949094177fffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9093169283027fffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff161773010000000000000000000000000000000000000061ffff90951694850217909655815194855292840195909552938201527fb968421445b12044d4cf86ecc7f3f9589111c9efab4b7561360aea60f3e832eb9101610f6c565b5050565b6000806139c283613474565b915091508015613b6e5773ffffffffffffffffffffffffffffffffffffffff831660008181526007602090815260409182902085518154878401518886015165ffffffffffff9384167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009093168317660100000000000094909216938402919091177fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9092169182021784556060808a015180516001870180549289015161ffff9283167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000948516176201000060ff92831681029190911790925560808e0151805160028b018054928d0151918616929096169190911791169091021790915560a08b0151600390960180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000169690911695861790558651928352948201929092529384015292917febc99566369f3a0bb7856de228673359eed87e744e506850f424863304607709910160405180910390a35b505050565b60006114a76509184e72a000836157d0565b8065ffffffffffff16600003613b99575050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285019081526c0100000000000000000000000090910466ffffffffffffff168286015284518086018652600184015461ffff8082168352620100009182900460ff9081168489015260608601939093528751808901909852600286015480821689529190910490911694860194909452608082019490945260039091015490911660a0820152815190918391613c7b90839061590f565b65ffffffffffff908116909152600580548593509091600691613caa918591660100000000000090041661590f565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055506000613cdc848360800151614035565b90506000613ce8611e0d565b90506000613cf584613fa8565b1590508080613d0f57508161ffff16836020015161ffff16105b15613d5e576000613d238560800151614175565b90508115613d3357606085018190525b60808501526040805180820190915265ffffffffffff8616815261ffff831660208201529250613d7c565b8483600001818151613d70919061590f565b65ffffffffffff169052505b613d8e836020015161ffff1686614cb3565b613d9d86856080015185614d04565b50505073ffffffffffffffffffffffffffffffffffffffff90921660009081526007602090815260409182902084518154838701519487015166ffffffffffffff166c01000000000000000000000000027fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff65ffffffffffff9687166601000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090931696909316959095171716929092178255606084015180516001840180549284015160ff908116620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000095861661ffff958616171790925560808801518051600288018054929097015190921690920291909316928216929092179190911790915560a09093015160039091018054919093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000919091161790915550565b3360009081526001602052604090205460ff16611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f73594c41593a3a5f6f6e6c794d696e7465723a20496e73756666696369656e7460448201527f2050726976696c656765730000000000000000000000000000000000000000006064820152608401610afe565b60608101515160009061ffff1615611aa657506001919050565b6060810151608082015160208201518251600093929160ff1690613fe7906004615977565b613ff19190615998565b816020015160ff168260000151600461400a9190615977565b6140149190615998565b61401e919061571a565b614029906001615998565b61ffff16949350505050565b6040805180820182526000808252602080830182905273ffffffffffffffffffffffffffffffffffffffff8616825260088152838220855161ffff16835281529281209284015191929160ff1690036140b95760408051808201909152815465ffffffffffff811682526601000000000000900461ffff16602082015291506114d9565b826020015160ff166001036140fc5760408051808201909152600182015465ffffffffffff811682526601000000000000900461ffff16602082015291506114d9565b826020015160ff1660020361413f5760408051808201909152600282015465ffffffffffff811682526601000000000000900461ffff16602082015291506114d9565b60408051808201909152600382015465ffffffffffff811682526601000000000000900461ffff16602082015291505092915050565b6040805180820190915260008082526020820152815161ffff1660000361419f5760018152919050565b6003826020015160ff1610156141d457815161ffff16815260208201516141c79060016159b5565b60ff166020820152919050565b81516141e1906001615998565b61ffff168152919050565b6040517f83c603e30000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906383c603e390602401602060405180830381865afa158015614279573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b191906159da565b60006142a98383615703565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600b60209081526040808320878452909152902080549192509065ffffffffffff16156143ca5780547501000000000000000000000000000000000000000000900467ffffffffffffffff1683146143c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f73594c41593a3a6d696e744c6f636b75703a204c6f636b757020706f7369746960448201527f6f6e20616c726561647920657869737473207769746820646966666572656e7460648201527f20646561646c696e650000000000000000000000000000000000000000000000608482015260a401610afe565b6144cd565b6143d2611e0d565b61ffff16831180156143e5575060d08211155b614471576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a6d696e744c6f636b75703a20496e76616c696420646561646c60448201527f696e6500000000000000000000000000000000000000000000000000000000006064820152608401610afe565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600c6020908152604082208054600181018255908352912060108204018054600f9092166002026101000a61ffff81810219909316928716029190911790555b600060d06144db84886156c6565b6144e591906157d0565b905080600960008282546144f991906156ae565b909155505073ffffffffffffffffffffffffffffffffffffffff87166000908152600a6020526040812080548392906145339084906156ae565b909155505081548690839060009061455490849065ffffffffffff1661590f565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550808260000160068282829054906101000a900466ffffffffffffff1661459c91906157e4565b825466ffffffffffffff9182166101009390930a928302919092021990911617905550815467ffffffffffffffff8581167501000000000000000000000000000000000000000000027fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff9188166d010000000000000000000000000002919091167fffffff00000000000000000000000000000000ffffffffffffffffffffffffff9092169190911717825560408051878152602081018390529081018690526060810185905273ffffffffffffffffffffffffffffffffffffffff8816907f8d57bc413d172db24c650affb289486236f8cf804335bc881bb5033401acd5da9060800160405180910390a250505050505050565b600062093a80600054836146c59190615703565b6146cf91906157d0565b6114a79060016156ae565b805160009065ffffffffffff1615801590610d5b5750506060015167ffffffffffffffff16111590565b6000836020015166ffffffffffffff16600960008282546147259190615703565b909155505060208085015173ffffffffffffffffffffffffffffffffffffffff85166000908152600a90925260408220805466ffffffffffffff909216929091614770908490615703565b9091555050835160405183815265ffffffffffff909116915073ffffffffffffffffffffffffffffffffffffffff8416907fdebd6c689e64ba7da4f3606a398615e9e8df6a117b5fb6fe720db13a3cd34f5a9060200160405180910390a273ffffffffffffffffffffffffffffffffffffffff9092166000908152600b602090815260408083209383529290522080547fffffff0000000000000000000000000000000000000000000000000000000000169055919050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600860209081526040808320845161ffff168452825282209083015160ff168203614872579050806114d9565b826020015160ff1660010361488c578060010191506114d9565b826020015160ff166002036148a6578060020191506114d9565b6003019392505050565b6000806148be6005846157d0565b60008181526006602052604081209192506148da6005866159f7565b9050806000036148ec57509392505050565b806001036148ff57506001019392505050565b8060020361491257506002019392505050565b8060030361492557506003019392505050565b506004019392505050565b60008061493b611e0d565b61ffff16905060d081111561495557610d9b60d082615703565b5090565b73ffffffffffffffffffffffffffffffffffffffff811660009081526007602052604081206003015461ffff161515806149b7575073ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604090205415155b806114a757505073ffffffffffffffffffffffffffffffffffffffff16600090815260046020526040902054151590565b815165ffffffffffff80831691161015614a03575060009052565b8082600001818151614a1591906158d0565b65ffffffffffff169052505050565b8065ffffffffffff16826020015165ffffffffffff161015614a4b57600060208301525050565b8082602001818151614a1591906158d0565b8066ffffffffffffff16826040015166ffffffffffffff161015614a8657600060408301525050565b8082604001818151614a9891906158ef565b66ffffffffffffff169052505050565b8051614ab390614ebe565b614ac08160200151614ebe565b614acd8160400151614ebe565b610e458160600151614ebe565b6000614ae582613b73565b905081614af98265ffffffffffff166137d6565b1015611aa65780610d5b81615a0b565b6000614b1c826020015161ffff16615010565b825160a085015191925090600090614b34908461571a565b61ffff16905080856020015165ffffffffffff16614b529190615930565b85604001818151614b6391906157e4565b66ffffffffffffff169052506000614b7a83615029565b9050614b868682614a5d565b8286600001818151614b98919061590f565b65ffffffffffff16905250614bad8684614a24565b614bb68661503e565b50505061ffff1660a09092019190915250565b6000818360a0015161ffff16108015610d5b5750610d5b83613fa8565b60006114a760d0836157d0565b806020015165ffffffffffff1681604001818151614c1191906157e4565b66ffffffffffffff16905250606081015160d061ffff90911610610e4557600060d0826060015161ffff16614c469190615703565b614c519060016156ae565b90506000614c5e826148b0565b5465ffffffffffff1690508015613b6e576000614c7a82615029565b9050614c868482614a5d565b614c908483614a24565b8184600001818151614ca2919061590f565b65ffffffffffff1690525050505050565b6000614cbe836148b0565b805490915082908290600090614cdd90849065ffffffffffff1661590f565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600860209081526040808320855161ffff1684528252822090840151909160ff9091169003614d995781518154602084015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90921691909117178155614eb8565b826020015160ff16600103614dff578151600182018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614eb8565b826020015160ff16600203614e65578151600282018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614eb8565b8151600382018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff909316929092179190911790555b50505050565b805165ffffffffffff1615610e45576000614ee0826020015161ffff166148b0565b8251815491925065ffffffffffff908116911610614f3a57815181548290600090614f1490849065ffffffffffff166158d0565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055505050565b80548251614f509165ffffffffffff16906158d0565b65ffffffffffff16600103614f885780547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016905550565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f73594c41593a3a5f72656d6f7665557365725472616e63686546726f6d476c6f60448201527f62616c3a205472616e63686520707265636973696f6e000000000000000000006064820152608401610afe565b6000600161501f60d0846156ae565b6114a79190615703565b60006114a760d065ffffffffffff84166156c6565b60808101515160608201515161ffff9081169116148015615074575080608001516020015160ff1681606001516020015160ff16145b15615095576040805180820190915260008082526020820152606082015250565b6150a28160600151614175565b606082015250565b82805482825590600052602060002090600f016010900481019282156151435791602002820160005b8382111561511357835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026150d3565b80156151415782816101000a81549061ffff0219169055600201602081600101049283019260010302615113565b505b50614955929150615170565b50805460008255600f016010900490600052602060002090810190610e4591905b5b808211156149555760008155600101615171565b600060208083528351808285015260005b818110156151b257858101830151858201604001528201615196565b818111156151c4576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611aa657600080fd5b6000806040838503121561522f57600080fd5b615238836151f8565b946020939093013593505050565b60006020828403121561525857600080fd5b610d5b826151f8565b602080825282518282018190526000919060409081850190868401855b828110156152d6578151805165ffffffffffff1685528681015166ffffffffffffff16878601528581015167ffffffffffffffff9081168787015260609182015116908501526080909301929085019060010161527e565b5091979650505050505050565b6000806000606084860312156152f857600080fd5b615301846151f8565b925061530f602085016151f8565b9150604084013590509250925092565b60006020828403121561533157600080fd5b5035919050565b60408082528351828201819052600091906020906060850190828801855b8281101561538a5761537a848351805161ffff16825260209081015160ff16910152565b9285019290840190600101615356565b5050508481038286015285518082528683019183019060005b818110156153dc576153cc838551805165ffffffffffff16825260209081015161ffff16910152565b92840192918501916001016153a3565b509098975050505050505050565b8015158114610e4557600080fd5b6000806040838503121561540b57600080fd5b615414836151f8565b91506020830135615424816153ea565b809150509250929050565b60006101008201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff604084015116604083015260608301516154886060840182805161ffff16825260209081015160ff16910152565b506080830151805161ffff1660a0840152602081015160ff1660c08401525061ffff60a08401511660e083015292915050565b6000806000606084860312156154d057600080fd5b6154d9846151f8565b95602085013595506040909401359392505050565b6000806040838503121561550157600080fd5b50508035926020909101359150565b6000806000838503608081121561552657600080fd5b61552f856151f8565b935060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08201121561556157600080fd5b50602084019150606084013590509250925092565b6000806040838503121561558957600080fd5b615592836151f8565b91506155a0602084016151f8565b90509250929050565b6000806000606084860312156155be57600080fd5b6155c7846151f8565b92506020840135915060408401356155de816153ea565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036156a7576156a7615647565b5060010190565b600082198211156156c1576156c1615647565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156156fe576156fe615647565b500290565b60008282101561571557615715615647565b500390565b600061ffff8381169083168181101561573557615735615647565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008161577b5761577b615647565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826157df576157df6157a1565b500490565b600066ffffffffffffff80831681851680830382111561580657615806615647565b01949350505050565b60006040828403121561582157600080fd5b6040516040810181811067ffffffffffffffff8211171561586b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052823561ffff8116811461588057600080fd5b8152602083013560ff8116811461589657600080fd5b60208201529392505050565b600065ffffffffffff808316818516818304811182151516156158c7576158c7615647565b02949350505050565b600065ffffffffffff8381169083168181101561573557615735615647565b600066ffffffffffffff8381169083168181101561573557615735615647565b600065ffffffffffff80831681851680830382111561580657615806615647565b600066ffffffffffffff808316818516818304811182151516156158c7576158c7615647565b600061ffff80831681810361596d5761596d615647565b6001019392505050565b600061ffff808316818516818304811182151516156158c7576158c7615647565b600061ffff80831681851680830382111561580657615806615647565b600060ff821660ff84168060ff038211156159d2576159d2615647565b019392505050565b6000602082840312156159ec57600080fd5b8151610d5b816153ea565b600082615a0657615a066157a1565b500690565b600065ffffffffffff80831681810361596d5761596d61564756fea26469706673582212203c6919f16429b24db725a7ebe2b5020b96ac92258fe9f6575c33e9d8a5220d2c64736f6c634300080d0033000000000000000000000000ab865d95a574511a6c893c38a4d892275ca70570