60a06040523480156200001157600080fd5b506040516200653738038062006537833981810160405281019062000037919062000a4a565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ad5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000a4919062000b40565b60405180910390fd5b620000be816200023460201b60201c565b508460016000019081620000d3919062000da8565b5083600180019081620000e7919062000da8565b508260016002019081620000fc919062000da8565b506000600160030160006101000a81548160ff021916908315150217905550816bffffffffffffffffffffffff166001600401819055503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050336040516200017690620007fb565b62000182919062000b40565b604051809103906000f0801580156200019f573d6000803e3d6000fd5b50600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905062000228836bffffffffffffffffffffffff168383620002f860201b60201c565b50505050505062000e8f565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006200030a620006c060201b60201c565b90506bffffffffffffffffffffffff60016200032b620006d160201b60201c565b031062000364576040517f997c4ef400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620003ef576040517fead4d2e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000456576040517f39a84a7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b630f4599e560005233602052602060006024601c6000865af160016000511416620004895763d125259c6000526004601cfd5b620004a96200049d620006e260201b60201c565b620006eb60201b60201c565b8160000160046101000a81548163ffffffff021916908363ffffffff160217905550818160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008414620006ba57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200057e576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6200058f84620006f760201b60201c565b15620005c7576040517fe5cfe95700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550600081600b0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050848160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550846000528360601b60601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000a3620006b88460016200072460201b60201c565b505b50505050565b600068a20d6e21d0e5255308905090565b6000683635c9adc5dea00000905090565b60006001905090565b60008115159050919050565b6000806200070a620006d160201b60201c565b905080830463fffffffe108360601c171515915050919050565b600062000736620006c060201b60201c565b600b0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001600b9054906101000a900460ff169050821560028216151881816002021891508160011791508315156000528460601b60601c7fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360206000a2508082600001600b6101000a81548160ff021916908360ff16021790555050505050565b6116718062004ec683390190565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620008728262000827565b810181811067ffffffffffffffff8211171562000894576200089362000838565b5b80604052505050565b6000620008a962000809565b9050620008b7828262000867565b919050565b600067ffffffffffffffff821115620008da57620008d962000838565b5b620008e58262000827565b9050602081019050919050565b60005b8381101562000912578082015181840152602081019050620008f5565b60008484015250505050565b6000620009356200092f84620008bc565b6200089d565b90508281526020810184848401111562000954576200095362000822565b5b62000961848285620008f2565b509392505050565b600082601f8301126200098157620009806200081d565b5b8151620009938482602086016200091e565b91505092915050565b60006bffffffffffffffffffffffff82169050919050565b620009bf816200099c565b8114620009cb57600080fd5b50565b600081519050620009df81620009b4565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a1282620009e5565b9050919050565b62000a248162000a05565b811462000a3057600080fd5b50565b60008151905062000a448162000a19565b92915050565b600080600080600060a0868803121562000a695762000a6862000813565b5b600086015167ffffffffffffffff81111562000a8a5762000a8962000818565b5b62000a988882890162000969565b955050602086015167ffffffffffffffff81111562000abc5762000abb62000818565b5b62000aca8882890162000969565b945050604086015167ffffffffffffffff81111562000aee5762000aed62000818565b5b62000afc8882890162000969565b935050606062000b0f88828901620009ce565b925050608062000b228882890162000a33565b9150509295509295909350565b62000b3a8162000a05565b82525050565b600060208201905062000b57600083018462000b2f565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000bb057607f821691505b60208210810362000bc65762000bc562000b68565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bf1565b62000c3c868362000bf1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c8962000c8362000c7d8462000c54565b62000c5e565b62000c54565b9050919050565b6000819050919050565b62000ca58362000c68565b62000cbd62000cb48262000c90565b84845462000bfe565b825550505050565b600090565b62000cd462000cc5565b62000ce181848462000c9a565b505050565b5b8181101562000d095762000cfd60008262000cca565b60018101905062000ce7565b5050565b601f82111562000d585762000d228162000bcc565b62000d2d8462000be1565b8101602085101562000d3d578190505b62000d5562000d4c8562000be1565b83018262000ce6565b50505b505050565b600082821c905092915050565b600062000d7d6000198460080262000d5d565b1980831691505092915050565b600062000d98838362000d6a565b9150826002028217905092915050565b62000db38262000b5d565b67ffffffffffffffff81111562000dcf5762000dce62000838565b5b62000ddb825462000b97565b62000de882828562000d0d565b600060209050601f83116001811462000e20576000841562000e0b578287015190505b62000e17858262000d8a565b86555062000e87565b601f19841662000e308662000bcc565b60005b8281101562000e5a5784890151825560018201915060208501945060208101905062000e33565b8683101562000e7a578489015162000e76601f89168262000d6a565b8355505b6001600288020188555050505b505050505050565b60805161401462000eb26000396000818161173201526118e501526140146000f3fe60806040526004361061010d5760003560e01c806370a0823111610095578063907af6c011610064578063907af6c0146107d957806395d89b4114610804578063a9059cbb1461082f578063dd62ed3e1461086c578063f2fde38b146108a957610121565b806370a0823114610731578063715018a61461076e5780637cb04cb5146107855780638da5cb5b146107ae57610121565b8063274e430b116100dc578063274e430b1461064a5780632a6a935d14610687578063313ce567146106c45780634ef41efc146106ef5780636cef16e61461071a57610121565b806306fdde031461057a578063095ea7b3146105a557806318160ddd146105e257806323b872dd1461060d57610121565b36610121576000341461011f57600080fd5b005b600061012b6108d2565b9050600060e061013b60006108e3565b901c905063e5eb36c8810361020e578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101d3576040517fce5a776b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102036101e060046108e3565b6101ea60246108e3565b6101f460446108e3565b6101fe60646108e3565b6108ee565b61020d6001610f37565b5b63f6916ddd81036102d7578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102a2576040517fce5a776b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6102cc6102af60046108e3565b60006102bb60246108e3565b14156102c760446108e3565b610f41565b6102d66001610f37565b5b6362fb246d81036103155760006103006102f160046108e3565b6102fb60246108e3565b610f6b565b905061031361030e82610f91565b610f37565b505b632d8a746e81036103515761035061033561033060046108e3565b610f9d565b73ffffffffffffffffffffffffffffffffffffffff16610f37565b5b63c016aa52810361038d5761038c61037161036c60046108e3565b610fee565b73ffffffffffffffffffffffffffffffffffffffff16610f37565b5b63d10b6e0c810361046c578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610421576040517fce5a776b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061044961043060046108e3565b61043a60246108e3565b61044460446108e3565b611061565b905061046a8173ffffffffffffffffffffffffffffffffffffffff16610f37565b505b6327ef549581036104a8576104a761048c61048760046108e3565b6111dc565b73ffffffffffffffffffffffffffffffffffffffff16610f37565b5b63f5b100ea81036104ce576104cd6104c86104c360046108e3565b611261565b610f37565b5b63e2c7928181036104ea576104e96104e46112cc565b610f37565b5b63cb30b460810361053257602060405101604052600061051261050d60046108e3565b6112f5565b90506020810360408251016000818301526020825280601f01601f191682f35b63b7a94eb88103610548576105476001610f37565b5b6040517f3c10b94e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34801561058657600080fd5b5061058f611409565b60405161059c9190613674565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c7919061373e565b61149e565b6040516105d99190613799565b60405180910390f35b3480156105ee57600080fd5b506105f76114b5565b60405161060491906137c3565b60405180910390f35b34801561061957600080fd5b50610634600480360381019061062f91906137de565b6114c2565b6040516106419190613799565b60405180910390f35b34801561065657600080fd5b50610671600480360381019061066c9190613831565b61164d565b60405161067e9190613799565b60405180910390f35b34801561069357600080fd5b506106ae60048036038101906106a9919061388a565b6116c8565b6040516106bb9190613799565b60405180910390f35b3480156106d057600080fd5b506106d96116dd565b6040516106e691906138d3565b60405180910390f35b3480156106fb57600080fd5b506107046116e6565b60405161071191906138fd565b60405180910390f35b34801561072657600080fd5b5061072f611719565b005b34801561073d57600080fd5b5061075860048036038101906107539190613831565b61183d565b60405161076591906137c3565b60405180910390f35b34801561077a57600080fd5b506107836118b8565b005b34801561079157600080fd5b506107ac60048036038101906107a79190613a4d565b6118cc565b005b3480156107ba57600080fd5b506107c361198e565b6040516107d091906138fd565b60405180910390f35b3480156107e557600080fd5b506107ee6119b7565b6040516107fb91906137c3565b60405180910390f35b34801561081057600080fd5b506108196119c6565b6040516108269190613674565b60405180910390f35b34801561083b57600080fd5b506108566004803603810190610851919061373e565b611a5a565b6040516108639190613799565b60405180910390f35b34801561087857600080fd5b50610893600480360381019061088e9190613aa9565b611a71565b6040516108a091906137c3565b60405180910390f35b3480156108b557600080fd5b506108d060048036038101906108cb9190613831565b611b7e565b005b600068a20d6e21d0e5255308905090565b600081359050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610954576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061095e6108d2565b9050600073ffffffffffffffffffffffffffffffffffffffff168160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036109ea576040517f40739bf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081600a019050816002016000610a1283610a0d610a0889611c04565b611c17565b611c36565b63ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610ab1576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610b6157610aee8684610f6b565b610b60578273ffffffffffffffffffffffffffffffffffffffff16610b12856111dc565b73ffffffffffffffffffffffffffffffffffffffff1614610b5f576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b600082600b0160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600083600b0160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000610bf5611c5a565b9050600085600801905060008460000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905080831115610c68576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8281038560000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550828460000160148282829054906101000a90046bffffffffffffffffffffffff160192506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555050610cfb8660050189611c6b565b15610d4857610d0f86600501896000611c89565b85600401600089815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b60008160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000610dd38287600001601081819054906101000a900463ffffffff166001900391906101000a81548163ffffffff021916908363ffffffff160217905563ffffffff16611c36565b90506000610de988610de48d611cad565b611c36565b9050610dfc838263ffffffff1684611cce565b610e1588610e0f8463ffffffff16611cad565b83611cce565b505050600083600001601081819054906101000a900463ffffffff168092919060010191906101000a81548163ffffffff021916908363ffffffff1602179055509050610ea68260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208263ffffffff168b611cce565b610ebb868a610eb5878e611cf9565b84611e02565b50816000528860601b60601c8a60601b60601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000a3610efc611e58565b15610f2b57610f2a610f0f60018c611e5d565b610f1a60018c611e5d565b610f2560018c611e8f565b611ec5565b5b50505050505050505050565b8060005260206000f35b610f4a82610f91565b610f5f610f556108d2565b6003018386611eca565b60000181905550505050565b600080610f83610f796108d2565b6003018585611eca565b600001541415905092915050565b60008115159050919050565b6000610fa882611eeb565b610fde576040517fceea21b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fe782610fee565b9050919050565b600080610ff96108d2565b905080600201600061101e83600a0161101961101488611c04565b611c17565b611c36565b63ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b60008061106c6108d2565b905080600201600061109183600a0161108c61108789611c04565b611c17565b611c36565b63ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111425761110b8284610f6b565b611141576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b8481600401600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111d48160050185600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415611c89565b509392505050565b60006111e782611eeb565b61121d576040517fceea21b600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112256108d2565b600401600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061126b6108d2565b600b0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a900463ffffffff1663ffffffff169050919050565b60006112d66108d2565b60000160109054906101000a900463ffffffff1663ffffffff16905090565b6060600160030160009054906101000a900460ff166113a3576001600201805461131e90613b18565b80601f016020809104026020016040519081016040528092919081815260200182805461134a90613b18565b80156113975780601f1061136c57610100808354040283529160200191611397565b820191906000526020600020905b81548152906001019060200180831161137a57829003601f168201915b50505050509050611404565b6000600160020180546113b590613b18565b9050146113f15760016002016113ca83611f2c565b6040516020016113db929190613c69565b6040516020818303038152906040529050611404565b6040518060200160405280600081525090505b919050565b60606001600001805461141b90613b18565b80601f016020809104026020016040519081016040528092919081815260200182805461144790613b18565b80156114945780601f1061146957610100808354040283529160200191611494565b820191906000526020600020905b81548152906001019060200180831161147757829003601f168201915b5050505050905090565b60006114ab338484611ffa565b6001905092915050565b6000600160040154905090565b6000806114da6114d06108d2565b6007018633611eca565b905060006114e661211f565b801561152c57506e22d473030f116ddee9f6b43ac78ba373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b801561159657506000600461153f6108d2565b600b0160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600b9054906101000a900460ff161660ff16145b6115a45781600001546115c6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116355780841115611629576040517f13be252b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83810382600001819055505b611640868686612124565b6001925050509392505050565b6000806116586108d2565b600b0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600b9054906101000a900460ff1690506002811615159150600181166116c257823b151591505b50919050565b60006116d43383612db4565b60019050919050565b60006012905090565b60006116f06108d2565b60010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146117a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179e90613ce4565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636cef16e66040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183a9190613d19565b50565b60006118476108d2565b600b0160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b6118c0612e83565b6118ca6000612f0a565b565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195190613ce4565b60405180910390fd5b81600160030160006101000a81548160ff02191690831515021790555080600160020190816119899190613edd565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006119c1611c5a565b905090565b60606001800180546119d790613b18565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0390613b18565b8015611a505780601f10611a2557610100808354040283529160200191611a50565b820191906000526020600020905b815481529060010190602001808311611a3357829003601f168201915b5050505050905090565b6000611a67338484612124565b6001905092915050565b6000611a7b61211f565b8015611ac157506e22d473030f116ddee9f6b43ac78ba373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611b5c576000611ad06108d2565b600b0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600b9054906101000a900460ff16905060006004821660ff1603611b5a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff915050611b78565b505b611b71611b676108d2565b6007018484611eca565b6000015490505b92915050565b611b86612e83565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bf85760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611bef91906138fd565b60405180910390fd5b611c0181612f0a565b50565b6000640100000000821082029050919050565b60006001611c2b611c26612fce565b610f91565b8303901b9050919050565b60008160031c8360601b0180546007841660051b1c63ffffffff1691505092915050565b6000683635c9adc5dea00000905090565b60008160081c8360601b0180548360ff161c60011691505092915050565b8160081c8360601b018260ff16821515811b6001821b198354161782555050505050565b6000600180611cc2611cbd612fce565b610f91565b8403901b019050919050565b8160031c8360601b016007831660051b815480821c841863ffffffff16821b81188355505050505050565b600080611d046108d2565b905083600001600c9054906101000a900463ffffffff16915060008263ffffffff1603611dfb5780600001600081819054906101000a900463ffffffff1660010191906101000a81548163ffffffff021916908363ffffffff160217905591508184600001600c6101000a81548163ffffffff021916908363ffffffff160217905550828160020160008463ffffffff1663ffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008263ffffffff1603611dfa57600080fd5b5b5092915050565b6000611e14611e0f612fce565b610f91565b90508084038060021c8660601b0180546003831660061b8663ffffffff168660201b178083831c1867ffffffffffffffff16821b8318845550505050505050505050565b600090565b6060611e87611e82848473ffffffffffffffffffffffffffffffffffffffff16611e8f565b612fd7565b905092915050565b60606040519050602081018360051b8101806040528483525b808214611ebd57838252602082019150611ea8565b505092915050565b505050565b60008160285282601452836000526048600020905060006028529392505050565b60008073ffffffffffffffffffffffffffffffffffffffff16611f0d83610fee565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b606060006001611f3b84612fe1565b01905060008167ffffffffffffffff811115611f5a57611f59613922565b5b6040519080825280601f01601f191660200182016040528015611f8c5781602001600182028036833780820191505090505b509050600082602001820190505b600115611fef578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611fe357611fe2613faf565b5b04945060008503611f9a575b819350505050919050565b61200261211f565b801561204857506e22d473030f116ddee9f6b43ac78ba373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156120c55760046120576108d2565b600b0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600b8282829054906101000a900460ff161792506101000a81548160ff021916908360ff1602179055505b806120db6120d16108d2565b6007018585611eca565b60000181905550806000528160601b60601c8360601b60601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a3505050565b600090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361218a576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006121946108d2565b9050600081600b0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600082600b0160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036122aa576040517f40739bf000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122b2613571565b8260000160109054906101000a900463ffffffff1663ffffffff168160400181815250508160000160109054906101000a900463ffffffff1663ffffffff1681606001818152505060008360000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905080861115612363576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8581039050808460000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506000868460000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16019050808460000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550612424836040015161240f611c5a565b848161241e5761241d613faf565b5b04613134565b8360000181815250506124368861164d565b6124b1578773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16036124825782600001518360400151038360600181815250505b6124a761248d611c5a565b828161249c5761249b613faf565b5b048460600151613134565b8360200181815250505b50506124bb613145565b156127375760006124e182604001516124dc8460000151856020015161314e565b61314e565b9050600081036124f15750612737565b80826000018181510391508181525050808260200181815103915081815250508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff160361255a578082606001818151019150818152505050612737565b612565818989613161565b8261014001818152505060008560080160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008660080160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050612603858a611cf9565b8460e0019063ffffffff16908163ffffffff168152505060008460600151905083810193505b600061264384876040018051600190039081815250611c36565b63ffffffff169050612656838383611cce565b61266989600a01828860e0015185611e02565b612678866101400151826131b8565b6126858960050182611c6b565b156126d25761269989600501826000611c89565b88600401600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b50838160010191508103612629578085606001818152508660000160106101000a81548163ffffffff021916908363ffffffff16021790555084604001518760000160106101000a81548163ffffffff021916908363ffffffff160217905550505050505b806000015181602001518560000160109054906101000a900463ffffffff1663ffffffff16010381608001818152505080608001518460000160106101000a81548163ffffffff021916908363ffffffff160217905550600084600a0190506127a982602001518360000151016131c8565b8261016001818152505084600001600c9054906101000a900463ffffffff1682610120019063ffffffff16908163ffffffff168152505060008260000151146129e4576127fd8261016001518960016131f3565b600061283783608001518760000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16613203565b905060008660080160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600084604001519050846000015181038560a001818152508760000160106101000a81548163ffffffff021916908363ffffffff160217905550600085610120015190505b60006128d6848460019003945084611c36565b63ffffffff1690506128eb8682600080611e02565b6128fa87610160015182613212565b61290261322b565b15612917576129168a600601826000611c89565b5b8415612938576129378a6009018380600101945063ffffffff1683611cce565b5b6129458a60050182611c6b565b15612992576129598a600501826000611c89565b89600401600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b508560a0015182036128c35783156129df578086610120019063ffffffff16908163ffffffff1681525089600001600c6101000a81548163ffffffff021916908363ffffffff1602179055505b505050505b6000826020015114612c9857612a018261016001518860006131f3565b60008560080160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050612a508489611cf9565b8360e0019063ffffffff16908163ffffffff16815250506000612a71611c5a565b8760000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff1681612aaa57612aa9613faf565b5b049050612ad18760000160049054906101000a900463ffffffff1663ffffffff1682613234565b84610100018181525050600084606001519050846020015181018560c001818152508660000160106101000a81548163ffffffff021916908363ffffffff16021790555060008860000160089054906101000a900463ffffffff1690505b600086610120015163ffffffff168263ffffffff1614612b6f57612b628a6009018380600101945063ffffffff16611c36565b63ffffffff169050612bef565b86610100015190505b6000612b8c87612b8784611c17565b611c36565b63ffffffff1614612bd757612b9f61322b565b612bb557612bb06001820185613234565b612bd0565b612bcf612bc98b6006016001840187613265565b85613234565b5b9050612b78565b612be46001820185613234565b876101000181815250505b612bf761322b565b15612c0c57612c0b8a600601826001611c89565b5b612c17858483611cce565b612c2d86828960e0015186806001019750611e02565b612c3c87610160015182613212565b508560c001518203612b2f57808960000160086101000a81548163ffffffff021916908363ffffffff1602179055508561010001518960000160046101000a81548163ffffffff021916908363ffffffff160217905550505050505b6000801b82610140015114612cb757612cb682610140015186613370565b5b6000801b82610160015114612cd657612cd5826101600151866133ce565b5b50846000528560601b60601c8760601b60601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000a3612d17611e58565b15612dab576000612d2c826101400151613439565b9050612da9612d57612d4584600001518451018b611e5d565b612d52856020015161344e565b613473565b612d8d612d7a612d6885518c611e5d565b612d75876000015161344e565b613473565b612d8886602001518c611e5d565b613473565b612da484612d9f87610160015161349f565b6134de565b611ec5565b505b50505050505050565b6000612dbe6108d2565b600b0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600001600b9054906101000a900460ff169050821560028216151881816002021891508160011791508315156000528460601b60601c7fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360206000a2508082600001600b6101000a81548160ff021916908360ff16021790555050505050565b612e8b61355f565b73ffffffffffffffffffffffffffffffffffffffff16612ea961198e565b73ffffffffffffffffffffffffffffffffffffffff1614612f0857612ecc61355f565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401612eff91906138fd565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006001905090565b6060819050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061303f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161303557613034613faf565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061307c576d04ee2d6d415b85acef8100000000838161307257613071613faf565b5b0492506020810190505b662386f26fc1000083106130ab57662386f26fc1000083816130a1576130a0613faf565b5b0492506010810190505b6305f5e10083106130d4576305f5e10083816130ca576130c9613faf565b5b0492506008810190505b61271083106130f95761271083816130ef576130ee613faf565b5b0492506004810190505b6064831061311c576064838161311257613111613faf565b5b0492506002810190505b600a831061312b576001810190505b80915050919050565b600081830382841102905092915050565b60006001905090565b6000828210828418028318905092915050565b600060405190506040810163144027d381528360601b60601c60208201528260601b60601c604082015260608082015280608001858152806020018660051b81016040528184602001528084525050509392505050565b8151818152602081018352505050565b6000604051905060a08101828152806020018360051b81016040528183604001528083525050919050565b808260601b176020840152505050565b60008291506000905092915050565b81518160081b6020840151178152602081018352505050565b60006001905090565b6000613246613241612fce565b610f91565b9050801583838510020281838511858587111502170217905092915050565b6000801990508360601b8360081c81018054198560ff161c8560ff161b806132c5578460081c83015b6001156132ab57600183019250825419915080831182171561328e575b808311156132c35781861960ff161b861960ff161c91505b505b801561336657600181190181167a1412563212c14164235266736f7425221143267a452436752676777b2aaaaaaaba69a69a6db6db6db2cb2cb2ce739ce73def7bdeffffffff820260fa1c60021b1b60fc1c60051b7e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f83831c63d76453e004161a811790508085850360081b179050878110878211176000038117955050505b5050509392505050565b60008160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506020830151805160051b6084016080820360208183601c84016000885af16001825114166133c657600081fd5b505050505050565b60008160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060408301516040810363263c69d68152602080820152815160051b60440160208282601c85016000885af160018351141661343157600082fd5b505050505050565b6060811561344957602082015190505b919050565b606060405190508160051b60208201016040528181528160051b386020830139919050565b606061349761349261348485613567565b61348d85613567565b6134de565b612fd7565b905092915050565b606081156134d9576040820151905060208101815160051b81015b8082146134d657815160a01b60a81c82526020820191506134ba565b50505b919050565b6060600083519050600083519050600082036134fe578392505050613559565b60008103613510578492505050613559565b8082018015613555576040519350808452602084018160051b81016040528360051b80828260208b0160045afa508360051b8183018560051b60208a0160045afa5050505b5050505b92915050565b600033905090565b6060819050919050565b60405180610180016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600063ffffffff16815260200160008152602001600063ffffffff16815260200160008019168152602001600080191681525090565b600081519050919050565b600082825260208201905092915050565b60005b8381101561361e578082015181840152602081019050613603565b60008484015250505050565b6000601f19601f8301169050919050565b6000613646826135e4565b61365081856135ef565b9350613660818560208601613600565b6136698161362a565b840191505092915050565b6000602082019050818103600083015261368e818461363b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006136d5826136aa565b9050919050565b6136e5816136ca565b81146136f057600080fd5b50565b600081359050613702816136dc565b92915050565b6000819050919050565b61371b81613708565b811461372657600080fd5b50565b60008135905061373881613712565b92915050565b60008060408385031215613755576137546136a0565b5b6000613763858286016136f3565b925050602061377485828601613729565b9150509250929050565b60008115159050919050565b6137938161377e565b82525050565b60006020820190506137ae600083018461378a565b92915050565b6137bd81613708565b82525050565b60006020820190506137d860008301846137b4565b92915050565b6000806000606084860312156137f7576137f66136a0565b5b6000613805868287016136f3565b9350506020613816868287016136f3565b925050604061382786828701613729565b9150509250925092565b600060208284031215613847576138466136a0565b5b6000613855848285016136f3565b91505092915050565b6138678161377e565b811461387257600080fd5b50565b6000813590506138848161385e565b92915050565b6000602082840312156138a05761389f6136a0565b5b60006138ae84828501613875565b91505092915050565b600060ff82169050919050565b6138cd816138b7565b82525050565b60006020820190506138e860008301846138c4565b92915050565b6138f7816136ca565b82525050565b600060208201905061391260008301846138ee565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61395a8261362a565b810181811067ffffffffffffffff8211171561397957613978613922565b5b80604052505050565b600061398c613696565b90506139988282613951565b919050565b600067ffffffffffffffff8211156139b8576139b7613922565b5b6139c18261362a565b9050602081019050919050565b82818337600083830152505050565b60006139f06139eb8461399d565b613982565b905082815260208101848484011115613a0c57613a0b61391d565b5b613a178482856139ce565b509392505050565b600082601f830112613a3457613a33613918565b5b8135613a448482602086016139dd565b91505092915050565b60008060408385031215613a6457613a636136a0565b5b6000613a7285828601613875565b925050602083013567ffffffffffffffff811115613a9357613a926136a5565b5b613a9f85828601613a1f565b9150509250929050565b60008060408385031215613ac057613abf6136a0565b5b6000613ace858286016136f3565b9250506020613adf858286016136f3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613b3057607f821691505b602082108103613b4357613b42613ae9565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154613b7681613b18565b613b808186613b49565b94506001821660008114613b9b5760018114613bb057613be3565b60ff1983168652811515820286019350613be3565b613bb985613b54565b60005b83811015613bdb57815481890152600182019150602081019050613bbc565b838801955050505b50505092915050565b6000613bf7826135e4565b613c018185613b49565b9350613c11818560208601613600565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000613c53600583613b49565b9150613c5e82613c1d565b600582019050919050565b6000613c758285613b69565b9150613c818284613bec565b9150613c8c82613c46565b91508190509392505050565b7f43616c6c6572206973206e6f7420616e20617070726f7665642073656e646572600082015250565b6000613cce6020836135ef565b9150613cd982613c98565b602082019050919050565b60006020820190508181036000830152613cfd81613cc1565b9050919050565b600081519050613d138161385e565b92915050565b600060208284031215613d2f57613d2e6136a0565b5b6000613d3d84828501613d04565b91505092915050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613d937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613d56565b613d9d8683613d56565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613dda613dd5613dd084613708565b613db5565b613708565b9050919050565b6000819050919050565b613df483613dbf565b613e08613e0082613de1565b848454613d63565b825550505050565b600090565b613e1d613e10565b613e28818484613deb565b505050565b5b81811015613e4c57613e41600082613e15565b600181019050613e2e565b5050565b601f821115613e9157613e6281613b54565b613e6b84613d46565b81016020851015613e7a578190505b613e8e613e8685613d46565b830182613e2d565b50505b505050565b600082821c905092915050565b6000613eb460001984600802613e96565b1980831691505092915050565b6000613ecd8383613ea3565b9150826002028217905092915050565b613ee6826135e4565b67ffffffffffffffff811115613eff57613efe613922565b5b613f098254613b18565b613f14828285613e50565b600060209050601f831160018114613f475760008415613f35578287015190505b613f3f8582613ec1565b865550613fa7565b601f198416613f5586613b54565b60005b82811015613f7d57848901518255600182019150602085019450602081019050613f58565b86831015613f9a5784890151613f96601f891682613ea3565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea264697066735822122079b0e309b4bcabd74420f5612c74b5910072a761b962cb4ff15d8f4fa800354b64736f6c6343000814003360806040523480156200001157600080fd5b50604051620016713803806200167183398181016040528101906200003791906200010d565b8080620000496200009260201b60201c565b60010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506200013f565b6000683602298b8c10b01230905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d582620000a8565b9050919050565b620000e781620000c8565b8114620000f357600080fd5b50565b6000815190506200010781620000dc565b92915050565b600060208284031215620001265762000125620000a3565b5b60006200013684828501620000f6565b91505092915050565b611522806200014f6000396000f3fe6080604052600436106101185760003560e01c80636cef16e6116100a0578063a22cb46511610064578063a22cb465146107c4578063b88d4fde146107ed578063c87b56dd14610809578063e8a3d48514610846578063e985e9c5146108715761012c565b80636cef16e6146106db57806370a08231146107065780638da5cb5b1461074357806395d89b411461076e57806397e5311c146107995761012c565b806318160ddd116100e757806318160ddd146105fe57806323b872dd14610629578063243598791461064557806342842e0e146106825780636352211e1461069e5761012c565b806301ffc9a71461053d57806306fdde031461057a578063081812fc146105a5578063095ea7b3146105e25761012c565b3661012c576000341461012a57600080fd5b005b60006101366108ae565b9050600060e061014660006108bf565b901c905063263c69d6810361024c578160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101de576040517f363cb31200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600435602401602081033560051b81015b8082146102415781358060601c816001168260a01b60a81c811583028284027fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a45050508160200191506101ef565b600160005260206000f35b63144027d3810361033d578160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102e0576040517f363cb31200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600435602435604435602401602081033560051b81015b80821461033257813583857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a48160200191506102f7565b600160005260206000f35b630f4599e5810361050b57600073ffffffffffffffffffffffffffffffffffffffff168260010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610433578160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166103e560046108bf565b73ffffffffffffffffffffffffffffffffffffffff1614610432576040517fc59ec47a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104bd576040517fbf656a4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b338260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160005260206000f35b6040517f3c10b94e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34801561054957600080fd5b50610564600480360381019061055f9190611034565b6108ca565b604051610571919061107c565b60405180910390f35b34801561058657600080fd5b5061058f6108ef565b60405161059c9190611127565b60405180910390f35b3480156105b157600080fd5b506105cc60048036038101906105c7919061117f565b610905565b6040516105d991906111ed565b60405180910390f35b6105fc60048036038101906105f79190611234565b61091e565b005b34801561060a57600080fd5b506106136109a4565b6040516106209190611283565b60405180910390f35b610643600480360381019061063e919061129e565b6109bb565b005b34801561065157600080fd5b5061066c6004803603810190610667919061117f565b610a4a565b60405161067991906111ed565b60405180910390f35b61069c6004803603810190610697919061129e565b610a63565b005b3480156106aa57600080fd5b506106c560048036038101906106c0919061117f565b610a9d565b6040516106d291906111ed565b60405180910390f35b3480156106e757600080fd5b506106f0610ab6565b6040516106fd919061107c565b60405180910390f35b34801561071257600080fd5b5061072d600480360381019061072891906112f1565b610bf9565b60405161073a9190611283565b60405180910390f35b34801561074f57600080fd5b50610758610c28565b60405161076591906111ed565b60405180910390f35b34801561077a57600080fd5b50610783610c5b565b6040516107909190611127565b60405180910390f35b3480156107a557600080fd5b506107ae610c71565b6040516107bb91906111ed565b60405180910390f35b3480156107d057600080fd5b506107eb60048036038101906107e6919061134a565b610d0a565b005b610807600480360381019061080291906113ef565b610d8f565b005b34801561081557600080fd5b50610830600480360381019061082b919061117f565b610e00565b60405161083d9190611127565b60405180910390f35b34801561085257600080fd5b5061085b610e21565b6040516108689190611127565b60405180910390f35b34801561087d57600080fd5b5061089860048036038101906108939190611477565b610e41565b6040516108a5919061107c565b60405180910390f35b6000683602298b8c10b01230905090565b600081359050919050565b60008160e01c635b5e139f81146380ac58cd82146301ffc9a783141717915050919050565b60606109006306fdde036000610e89565b905090565b60006109176327ef5495836000610eef565b9050919050565b6000610928610c71565b90508260601b60601c925060405163d10b6e0c600052836020528260405233606052602060006064601c34865af1601f3d1116610968573d6000823e3d81fd5b8060405260006060528284600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600038a450505050565b60006109b663e2c79281600080610eef565b905090565b60006109c5610c71565b90508360601b60601c93508260601b60601c925060405163e5eb36c881528460208201528360408201528260608201523360808201526020816084601c840134865af1600182511416610a1b573d6000823e3d81fd5b8284867fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a45050505050565b6000610a5c63c016aa52836000610eef565b9050919050565b610a6e8383836109bb565b610a7782610f3a565b15610a9857610a9783838360405180602001604052806000815250610f45565b5b505050565b6000610aaf632d8a746e836000610eef565b9050919050565b6000806000610ac3610c71565b9050638da5cb5b600052602060006004601c845afa80601f3d1116600c5160601c029250506000610af26108ae565b905060008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610bee57838260020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35b600194505050505090565b6000610c2163f5b100ea8373ffffffffffffffffffffffffffffffffffffffff166000610eef565b9050919050565b6000610c326108ae565b60020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060610c6c6395d89b416000610e89565b905090565b6000610c7b6108ae565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d07576040517f5b2a47ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b90565b6000610d14610c71565b90508260601b60601c925060405163f6916ddd6000528360205282151560405233606052602060006064601c34865af160016000511416610d58573d6000823e3d81fd5b83337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a380604052600060605250505050565b610d9a8585856109bb565b610da384610f3a565b15610df957610df885858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610f45565b5b5050505050565b6060610e0b82610a9d565b50610e1a63cb30b46083610e89565b9050919050565b60606040518060600160405280603581526020016114b860359139905090565b600080610e7f6362fb246d8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16610eef565b1415905092915050565b60606000610e95610c71565b9050604051915083600052826020526000806024601c845afa610ebb573d6000833e3d82fd5b60206000803e6020600051833e8151602060005101602084013e815160208301016000815260208101604052505092915050565b600080610efa610c71565b9050604051856000528460205283604052602060006044601c855afa601f3d1116610f28573d6000823e3d81fd5b80604052600051925050509392505050565b6000813b9050919050565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a08401528015610f8c578060c08401826020870160045afa505b60208360a48301601c860160008a5af1610fb0573d15610faf573d6000843e3d83fd5b5b8160e01b835114610fc95763d1a57ed66000526004601cfd5b50505050505050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61101181610fdc565b811461101c57600080fd5b50565b60008135905061102e81611008565b92915050565b60006020828403121561104a57611049610fd2565b5b60006110588482850161101f565b91505092915050565b60008115159050919050565b61107681611061565b82525050565b6000602082019050611091600083018461106d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156110d15780820151818401526020810190506110b6565b60008484015250505050565b6000601f19601f8301169050919050565b60006110f982611097565b61110381856110a2565b93506111138185602086016110b3565b61111c816110dd565b840191505092915050565b6000602082019050818103600083015261114181846110ee565b905092915050565b6000819050919050565b61115c81611149565b811461116757600080fd5b50565b60008135905061117981611153565b92915050565b60006020828403121561119557611194610fd2565b5b60006111a38482850161116a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111d7826111ac565b9050919050565b6111e7816111cc565b82525050565b600060208201905061120260008301846111de565b92915050565b611211816111cc565b811461121c57600080fd5b50565b60008135905061122e81611208565b92915050565b6000806040838503121561124b5761124a610fd2565b5b60006112598582860161121f565b925050602061126a8582860161116a565b9150509250929050565b61127d81611149565b82525050565b60006020820190506112986000830184611274565b92915050565b6000806000606084860312156112b7576112b6610fd2565b5b60006112c58682870161121f565b93505060206112d68682870161121f565b92505060406112e78682870161116a565b9150509250925092565b60006020828403121561130757611306610fd2565b5b60006113158482850161121f565b91505092915050565b61132781611061565b811461133257600080fd5b50565b6000813590506113448161131e565b92915050565b6000806040838503121561136157611360610fd2565b5b600061136f8582860161121f565b925050602061138085828601611335565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126113af576113ae61138a565b5b8235905067ffffffffffffffff8111156113cc576113cb61138f565b5b6020830191508360018202830111156113e8576113e7611394565b5b9250929050565b60008060008060006080868803121561140b5761140a610fd2565b5b60006114198882890161121f565b955050602061142a8882890161121f565b945050604061143b8882890161116a565b935050606086013567ffffffffffffffff81111561145c5761145b610fd7565b5b61146888828901611399565b92509250509295509295909350565b6000806040838503121561148e5761148d610fd2565b5b600061149c8582860161121f565b92505060206114ad8582860161121f565b915050925092905056fe697066733a2f2f516d5071545959584d52363242744d7958756543436632694e526a61537136524a4c504d6f6364443374486a7238a2646970667358221220a7a37e0fd5d4c20506383656bd1b888704ada872aa28196690cfdf6907b63d1164736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000fe1c215e8f838e000000000000000000000000000000b033b356d1d6f9a8d1afe657c8cb70051f60c6d4000000000000000000000000000000000000000000000000000000000000000c476f6f6462796520536e61700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000347424300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d59474e45784b43514d31767354384344745133466a45434e41716f6f364b474d6f534c64527850344d646a510000000000000000000000