0x6101806040523480156200001257600080fd5b506040516200994338038062009943833981810160405281019062000038919062000e7a565b80600483611c2061c4e060006040518060400160405280600781526020017f4d696e64696e6700000000000000000000000000000000000000000000000000815250806200008b620001f060201b60201c565b620000a66000836200022d60201b620023be1790919060201c565b6101208181525050620000c96001826200022d60201b620023be1790919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a08181525050620001086200028a60201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050505080600290816200015691906200113b565b50506200016983620002e760201b60201c565b6200017a826200032e60201b60201c565b6200018b81620003bb60201b60201c565b5050508073ffffffffffffffffffffffffffffffffffffffff166101608173ffffffffffffffffffffffffffffffffffffffff168152505050620001d5816200040260201b60201c565b50620001e7816200062460201b60201c565b505050620018da565b60606040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250905090565b600060208351101562000253576200024b83620006c560201b60201c565b905062000284565b826200026a836200073260201b620024021760201c565b60000190816200027b91906200113b565b5060ff60001b90505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e051610100514630604051602001620002cc9594939291906200125f565b60405160208183030381529060405280519060200120905090565b7fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93600654826040516200031c929190620012bc565b60405180910390a18060068190555050565b6000811162000374576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200036b9062001370565b60405180910390fd5b7f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e882860075482604051620003a9929190620012bc565b60405180910390a18060078190555050565b7fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc0546160085482604051620003f0929190620012bc565b60405180910390a18060088190555050565b620004126200073c60201b60201c565b81111562000457576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200044e906200142e565b60405180910390fd5b6000620004696200074560201b60201c565b9050600081141580156200048557506000600b60000180549050145b156200058557600b6000016040518060400160405280600063ffffffff168152602001620004be846200079b60201b6200240c1760201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b620005e3620005b66200059d6200080960201b60201c565b65ffffffffffff16620008a460201b620024771760201c565b620005cc846200079b60201b6200240c1760201c565b600b620008fa60201b620024ca179092919060201c565b50507f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997818360405162000618929190620012bc565b60405180910390a15050565b7f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826040516200067992919062001450565b60405180910390a180600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080829050601f815111156200071557826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016200070c9190620014fb565b60405180910390fd5b805181620007239062001551565b60001c1760001b915050919050565b6000819050919050565b60006064905090565b600080600b600001805490501462000792576200076e600b6200091f60201b620024e71760201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1662000796565b600a545b905090565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff801682111562000801576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f89062001637565b60405180910390fd5b819050919050565b60006101605173ffffffffffffffffffffffffffffffffffffffff166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200087957506040513d601f19601f820116820180604052508101906200087691906200169c565b60015b6200089c5762000894436200099560201b620025511760201c565b9050620008a1565b809150505b90565b600063ffffffff8016821115620008f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e99062001744565b60405180910390fd5b819050919050565b60008062000913856000018585620009ed60201b60201c565b91509150935093915050565b60008082600001805490509050600081146200098a5762000958836000016001836200094c919062001795565b62000d8e60201b60201c565b60000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166200098d565b60005b915050919050565b600065ffffffffffff8016821115620009e5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009dc9062001846565b60405180910390fd5b819050919050565b600080600085805490509050600081111562000c9e57600062000a258760018462000a19919062001795565b62000d8e60201b60201c565b6040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152505090508563ffffffff16816000015163ffffffff16111562000b1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b1390620018b8565b60405180910390fd5b8563ffffffff16816000015163ffffffff160362000bac578462000b558860018562000b49919062001795565b62000d8e60201b60201c565b60000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555062000c8c565b8660405180604001604052808863ffffffff168152602001877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b80602001518593509350505062000d86565b8560405180604001604052808763ffffffff168152602001867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550505060008492509250505b935093915050565b60008260005281602060002001905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000dd58262000da8565b9050919050565b600062000de98262000dc8565b9050919050565b62000dfb8162000ddc565b811462000e0757600080fd5b50565b60008151905062000e1b8162000df0565b92915050565b600062000e2e8262000da8565b9050919050565b600062000e428262000e21565b9050919050565b62000e548162000e35565b811462000e6057600080fd5b50565b60008151905062000e748162000e49565b92915050565b6000806040838503121562000e945762000e9362000da3565b5b600062000ea48582860162000e0a565b925050602062000eb78582860162000e63565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f4357607f821691505b60208210810362000f595762000f5862000efb565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000fc37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f84565b62000fcf868362000f84565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200101c62001016620010108462000fe7565b62000ff1565b62000fe7565b9050919050565b6000819050919050565b620010388362000ffb565b62001050620010478262001023565b84845462000f91565b825550505050565b600090565b6200106762001058565b620010748184846200102d565b505050565b5b818110156200109c57620010906000826200105d565b6001810190506200107a565b5050565b601f821115620010eb57620010b58162000f5f565b620010c08462000f74565b81016020851015620010d0578190505b620010e8620010df8562000f74565b83018262001079565b50505b505050565b600082821c905092915050565b60006200111060001984600802620010f0565b1980831691505092915050565b60006200112b8383620010fd565b9150826002028217905092915050565b620011468262000ec1565b67ffffffffffffffff81111562001162576200116162000ecc565b5b6200116e825462000f2a565b6200117b828285620010a0565b600060209050601f831160018114620011b357600084156200119e578287015190505b620011aa85826200111d565b8655506200121a565b601f198416620011c38662000f5f565b60005b82811015620011ed57848901518255600182019150602085019450602081019050620011c6565b868310156200120d578489015162001209601f891682620010fd565b8355505b6001600288020188555050505b505050505050565b6000819050919050565b620012378162001222565b82525050565b620012488162000fe7565b82525050565b620012598162000dc8565b82525050565b600060a0820190506200127660008301886200122c565b6200128560208301876200122c565b6200129460408301866200122c565b620012a360608301856200123d565b620012b260808301846200124e565b9695505050505050565b6000604082019050620012d360008301856200123d565b620012e260208301846200123d565b9392505050565b600082825260208201905092915050565b7f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f642060008201527f746f6f206c6f7700000000000000000000000000000000000000000000000000602082015250565b600062001358602783620012e9565b91506200136582620012fa565b604082019050919050565b600060208201905081810360008301526200138b8162001349565b9050919050565b7f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60008201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e6160208201527f746f720000000000000000000000000000000000000000000000000000000000604082015250565b600062001416604383620012e9565b9150620014238262001392565b606082019050919050565b60006020820190508181036000830152620014498162001407565b9050919050565b60006040820190506200146760008301856200124e565b6200147660208301846200124e565b9392505050565b60005b838110156200149d57808201518184015260208101905062001480565b60008484015250505050565b6000601f19601f8301169050919050565b6000620014c78262000ec1565b620014d38185620012e9565b9350620014e58185602086016200147d565b620014f081620014a9565b840191505092915050565b60006020820190508181036000830152620015178184620014ba565b905092915050565b600081519050919050565b6000819050602082019050919050565b600062001548825162001222565b80915050919050565b60006200155e826200151f565b826200156a846200152a565b905062001577816200153a565b92506020821015620015ba57620015b57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080262000f84565b831692505b5050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b60006200161f602783620012e9565b91506200162c82620015c1565b604082019050919050565b60006020820190508181036000830152620016528162001610565b9050919050565b600065ffffffffffff82169050919050565b620016768162001659565b81146200168257600080fd5b50565b60008151905062001696816200166b565b92915050565b600060208284031215620016b557620016b462000da3565b5b6000620016c58482850162001685565b91505092915050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b60006200172c602683620012e9565b91506200173982620016ce565b604082019050919050565b600060208201905081810360008301526200175f816200171d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620017a28262000fe7565b9150620017af8362000fe7565b9250828203905081811115620017ca57620017c962001766565b5b92915050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203460008201527f3820626974730000000000000000000000000000000000000000000000000000602082015250565b60006200182e602683620012e9565b91506200183b82620017d0565b604082019050919050565b6000602082019050818103600083015262001861816200181f565b9050919050565b7f436865636b706f696e743a2064656372656173696e67206b6579730000000000600082015250565b6000620018a0601b83620012e9565b9150620018ad8262001868565b602082019050919050565b60006020820190508181036000830152620018d38162001891565b9050919050565b60805160a05160c05160e05161010051610120516101405161016051617fe76200195c6000396000818161161801528181611beb0152818161239c01528181613533015261379a01526000611b2c01526000611af801526000614c2701526000614c0601526000613e7001526000613ec601526000613eef0152617fe76000f3fe6080604052600436106102815760003560e01c80637b3c71d31161014f578063c01f9e37116100c1578063ea0217cf1161007a578063ea0217cf14610b2c578063eb9019d414610b55578063ece40cc114610b92578063f23a6e6114610bbb578063f8ce560a14610bf8578063fc0c546a14610c35576102fd565b8063c01f9e3714610a15578063c28bc2fa14610a52578063c59057e414610a6e578063d33219b414610aab578063dd4e2ba514610ad6578063deaaa7cc14610b01576102fd565b80639a802a6d116101135780639a802a6d146108df578063a7713a701461091c578063a890c91014610947578063ab58fb8e14610970578063b58131b0146109ad578063bc197c81146109d8576102fd565b80637b3c71d3146107de5780637d5e81e21461081b57806384b0196e1461085857806391ddadf41461088957806397c3d334146108b4576102fd565b80633932abb1116101f3578063544ffc9c116101ac578063544ffc9c1461069457806354fd4d50146106d357806356781388146106fe5780635f398a141461073b57806360c4247f1461077857806370b0f660146107b5576102fd565b80633932abb11461054a5780633bccf4fd146105755780633e4f49e6146105b257806343859632146105ef578063452115d61461062c5780634bf5d7e914610669576102fd565b8063143489d011610245578063143489d0146103fb578063150b7a0214610438578063160cbed7146104755780632656227d146104b25780632d63f693146104e25780632fe3e2611461051f576102fd565b806301ffc9a71461030257806302a251a31461033f578063034201811461036a57806306f3f9e6146103a757806306fdde03146103d0576102fd565b366102fd573073ffffffffffffffffffffffffffffffffffffffff166102a5610c60565b73ffffffffffffffffffffffffffffffffffffffff16146102fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f2906150aa565b60405180910390fd5b005b600080fd5b34801561030e57600080fd5b5061032960048036038101906103249190615136565b610c6f565b604051610336919061517e565b60405180910390f35b34801561034b57600080fd5b50610354610c81565b60405161036191906151b2565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c919061540e565b610c90565b60405161039e91906151b2565b60405180910390f35b3480156103b357600080fd5b506103ce60048036038101906103c991906154ec565b610d75565b005b3480156103dc57600080fd5b506103e5610e6c565b6040516103f29190615587565b60405180910390f35b34801561040757600080fd5b50610422600480360381019061041d91906154ec565b610efe565b60405161042f91906155ea565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190615631565b610f3e565b60405161046c91906156c3565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190615945565b610f52565b6040516104a991906151b2565b60405180910390f35b6104cc60048036038101906104c79190615945565b61120c565b6040516104d991906151b2565b60405180910390f35b3480156104ee57600080fd5b50610509600480360381019061050491906154ec565b61135a565b60405161051691906151b2565b60405180910390f35b34801561052b57600080fd5b50610534611398565b6040516105419190615a0f565b60405180910390f35b34801561055657600080fd5b5061055f6113bc565b60405161056c91906151b2565b60405180910390f35b34801561058157600080fd5b5061059c60048036038101906105979190615a2a565b6113cb565b6040516105a991906151b2565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d491906154ec565b611455565b6040516105e69190615b1c565b60405180910390f35b3480156105fb57600080fd5b5061061660048036038101906106119190615b37565b611467565b604051610623919061517e565b60405180910390f35b34801561063857600080fd5b50610653600480360381019061064e9190615945565b6114d2565b60405161066091906151b2565b60405180910390f35b34801561067557600080fd5b5061067e611614565b60405161068b9190615587565b60405180910390f35b3480156106a057600080fd5b506106bb60048036038101906106b691906154ec565b6116ec565b6040516106ca93929190615b77565b60405180910390f35b3480156106df57600080fd5b506106e8611724565b6040516106f59190615587565b60405180910390f35b34801561070a57600080fd5b5061072560048036038101906107209190615bae565b611761565b60405161073291906151b2565b60405180910390f35b34801561074757600080fd5b50610762600480360381019061075d9190615bee565b611792565b60405161076f91906151b2565b60405180910390f35b34801561078457600080fd5b5061079f600480360381019061079a91906154ec565b6117fc565b6040516107ac91906151b2565b60405180910390f35b3480156107c157600080fd5b506107dc60048036038101906107d791906154ec565b61196e565b005b3480156107ea57600080fd5b5061080560048036038101906108009190615c92565b611a65565b60405161081291906151b2565b60405180910390f35b34801561082757600080fd5b50610842600480360381019061083d9190615da7565b611acd565b60405161084f91906151b2565b60405180910390f35b34801561086457600080fd5b5061086d611ae5565b6040516108809796959493929190615f77565b60405180910390f35b34801561089557600080fd5b5061089e611be7565b6040516108ab919061601c565b60405180910390f35b3480156108c057600080fd5b506108c9611c8d565b6040516108d691906151b2565b60405180910390f35b3480156108eb57600080fd5b5061090660048036038101906109019190616037565b611c96565b60405161091391906151b2565b60405180910390f35b34801561092857600080fd5b50610931611cac565b60405161093e91906151b2565b60405180910390f35b34801561095357600080fd5b5061096e600480360381019061096991906160f6565b611cf3565b005b34801561097c57600080fd5b50610997600480360381019061099291906154ec565b611dea565b6040516109a491906151b2565b60405180910390f35b3480156109b957600080fd5b506109c2611eb7565b6040516109cf91906151b2565b60405180910390f35b3480156109e457600080fd5b506109ff60048036038101906109fa9190616123565b611ec6565b604051610a0c91906156c3565b60405180910390f35b348015610a2157600080fd5b50610a3c6004803603810190610a3791906154ec565b611edb565b604051610a4991906151b2565b60405180910390f35b610a6c6004803603810190610a679190616248565b611f19565b005b348015610a7a57600080fd5b50610a956004803603810190610a909190615945565b6120a2565b604051610aa291906151b2565b60405180910390f35b348015610ab757600080fd5b50610ac06120de565b604051610acd91906155ea565b60405180910390f35b348015610ae257600080fd5b50610aeb612108565b604051610af89190615587565b60405180910390f35b348015610b0d57600080fd5b50610b16612145565b604051610b239190615a0f565b60405180910390f35b348015610b3857600080fd5b50610b536004803603810190610b4e91906154ec565b612169565b005b348015610b6157600080fd5b50610b7c6004803603810190610b7791906162bc565b612260565b604051610b8991906151b2565b60405180910390f35b348015610b9e57600080fd5b50610bb96004803603810190610bb491906154ec565b61227c565b005b348015610bc757600080fd5b50610be26004803603810190610bdd91906162fc565b612373565b604051610bef91906156c3565b60405180910390f35b348015610c0457600080fd5b50610c1f6004803603810190610c1a91906154ec565b612388565b604051610c2c91906151b2565b60405180910390f35b348015610c4157600080fd5b50610c4a61239a565b604051610c5791906163f2565b60405180910390f35b6000610c6a6125a6565b905090565b6000610c7a826125d0565b9050919050565b6000610c8b61264a565b905090565b600080610d13610d0b7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610ccc92919061643d565b60405180910390208b80519060200120604051602001610cf0959493929190616465565b60405160208183030381529060405280519060200120612654565b86868661266e565b9050610d668a828b8b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508a612699565b91505098975050505050505050565b610d7d610c60565b73ffffffffffffffffffffffffffffffffffffffff16610d9b612825565b73ffffffffffffffffffffffffffffffffffffffff1614610df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de890616504565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16610e10610c60565b73ffffffffffffffffffffffffffffffffffffffff1614610e60576000610e3561282d565b604051610e4392919061643d565b604051809103902090505b80610e59600461283a565b03610e4e57505b610e6981612916565b50565b606060028054610e7b90616553565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea790616553565b8015610ef45780601f10610ec957610100808354040283529160200191610ef4565b820191906000526020600020905b815481529060010190602001808311610ed757829003601f168201915b5050505050905090565b60006003600083815260200190815260200160002060000160089054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600063150b7a0260e01b9050949350505050565b600080610f61868686866120a2565b905060046007811115610f7757610f76615aa5565b5b610f8082611455565b6007811115610f9257610f91615aa5565b5b14610fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc9906165f6565b60405180910390fd5b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015611041573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611065919061662b565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b1c5f4278888886000896040518663ffffffff1660e01b81526004016110cb959493929190616875565b602060405180830381865afa1580156110e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110c91906168f2565b600d600084815260200190815260200160002081905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638f2a0bb0888888600089876040518763ffffffff1660e01b81526004016111899695949392919061691f565b600060405180830381600087803b1580156111a357600080fd5b505af11580156111b7573d6000803e3d6000fd5b505050507f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda28928282426111e991906169c4565b6040516111f79291906169f8565b60405180910390a18192505050949350505050565b60008061121b868686866120a2565b9050600061122882611455565b90506004600781111561123e5761123d615aa5565b5b81600781111561125157611250615aa5565b5b148061128157506005600781111561126c5761126b615aa5565b5b81600781111561127f5761127e615aa5565b5b145b6112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b7906165f6565b60405180910390fd5b60016003600084815260200190815260200160002060020160006101000a81548160ff0219169083151502179055507f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f8260405161131e91906151b2565b60405180910390a16113338288888888612aeb565b6113408288888888612bce565b61134d8288888888612be2565b8192505050949350505050565b60006003600083815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b7fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b60006113c6612c3d565b905090565b60008061142c6114247f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f898960405160200161140993929190616a21565b60405160208183030381529060405280519060200120612654565b86868661266e565b905061144987828860405180602001604052806000815250612c47565b91505095945050505050565b600061146082612c67565b9050919050565b60006009600084815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806114e1868686866120a2565b9050600060078111156114f7576114f6615aa5565b5b61150082611455565b600781111561151257611511615aa5565b5b14611552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154990616aa4565b60405180910390fd5b6003600082815260200190815260200160002060000160089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115a7612825565b73ffffffffffffffffffffffffffffffffffffffff16146115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f490616b36565b60405180910390fd5b61160986868686612e3a565b915050949350505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634bf5d7e96040518163ffffffff1660e01b8152600401600060405180830381865afa9250505080156116a357506040513d6000823e3d601f19601f820116820180604052508101906116a09190616bc6565b60015b6116e4576040518060400160405280601d81526020017f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c7400000081525090506116e9565b809150505b90565b600080600080600960008681526020019081526020016000209050806000015481600101548260020154935093509350509193909250565b60606040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250905090565b60008061176c612825565b905061178984828560405180602001604052806000815250612c47565b91505092915050565b60008061179d612825565b90506117f087828888888080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505087612699565b91505095945050505050565b600080600b6000018054905090506000810361181d57600a54915050611969565b6000600b6000016001836118319190616c0f565b8154811061184257611841616c43565b5b906000526020600020016040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905083816000015163ffffffff161161192a5780602001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692505050611969565b61194661193685612477565b600b612e5290919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16925050505b919050565b611976610c60565b73ffffffffffffffffffffffffffffffffffffffff16611994612825565b73ffffffffffffffffffffffffffffffffffffffff16146119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e190616504565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16611a09610c60565b73ffffffffffffffffffffffffffffffffffffffff1614611a59576000611a2e61282d565b604051611a3c92919061643d565b604051809103902090505b80611a52600461283a565b03611a4757505b611a6281612f48565b50565b600080611a70612825565b9050611ac286828787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612c47565b915050949350505050565b6000611adb85858585612f8d565b9050949350505050565b600060608060008060006060611b2560007f000000000000000000000000000000000000000000000000000000000000000061347f90919063ffffffff16565b611b5960017f000000000000000000000000000000000000000000000000000000000000000061347f90919063ffffffff16565b46306000801b600067ffffffffffffffff811115611b7a57611b796152ad565b5b604051908082528060200260200182016040528015611ba85781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c7157506040513d601f19601f82011682018060405250810190611c6e9190616c9e565b60015b611c8557611c7e43612551565b9050611c8a565b809150505b90565b60006064905090565b6000611ca384848461352f565b90509392505050565b600080600b6000018054905014611cea57611cc7600b6124e7565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16611cee565b600a545b905090565b611cfb610c60565b73ffffffffffffffffffffffffffffffffffffffff16611d19612825565b73ffffffffffffffffffffffffffffffffffffffff1614611d6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6690616504565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16611d8e610c60565b73ffffffffffffffffffffffffffffffffffffffff1614611dde576000611db361282d565b604051611dc192919061643d565b604051809103902090505b80611dd7600461283a565b03611dcc57505b611de7816135d6565b50565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d45c4435600d6000868152602001908152602001600020546040518263ffffffff1660e01b8152600401611e5b9190615a0f565b602060405180830381865afa158015611e78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e9c919061662b565b905060018114611eac5780611eaf565b60005b915050919050565b6000611ec1613675565b905090565b600063bc197c8160e01b905095945050505050565b60006003600083815260200190815260200160002060010160009054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b611f21610c60565b73ffffffffffffffffffffffffffffffffffffffff16611f3f612825565b73ffffffffffffffffffffffffffffffffffffffff1614611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c90616504565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16611fb4610c60565b73ffffffffffffffffffffffffffffffffffffffff1614612004576000611fd961282d565b604051611fe792919061643d565b604051809103902090505b80611ffd600461283a565b03611ff257505b6000808573ffffffffffffffffffffffffffffffffffffffff1685858560405161202f92919061643d565b60006040518083038185875af1925050503d806000811461206c576040519150601f19603f3d011682016040523d82523d6000602084013e612071565b606091505b50915091506120998282604051806060016040528060288152602001617f8a6028913961367f565b50505050505050565b6000848484846040516020016120bb9493929190616ccb565b6040516020818303038152906040528051906020012060001c9050949350505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280602081526020017f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e815250905090565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b612171610c60565b73ffffffffffffffffffffffffffffffffffffffff1661218f612825565b73ffffffffffffffffffffffffffffffffffffffff16146121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc90616504565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16612204610c60565b73ffffffffffffffffffffffffffffffffffffffff161461225457600061222961282d565b60405161223792919061643d565b604051809103902090505b8061224d600461283a565b0361224257505b61225d816136a1565b50565b6000612274838361226f613729565b61352f565b905092915050565b612284610c60565b73ffffffffffffffffffffffffffffffffffffffff166122a2612825565b73ffffffffffffffffffffffffffffffffffffffff16146122f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ef90616504565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16612317610c60565b73ffffffffffffffffffffffffffffffffffffffff161461236757600061233c61282d565b60405161234a92919061643d565b604051809103902090505b80612360600461283a565b0361235557505b61237081613740565b50565b600063f23a6e6160e01b905095945050505050565b600061239382613785565b9050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006020835110156123da576123d38361384d565b90506123fc565b826123e483612402565b60000190816123f39190616ec7565b5060ff60001b90505b92915050565b6000819050919050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff801682111561246f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124669061700b565b60405180910390fd5b819050919050565b600063ffffffff80168211156124c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b99061709d565b60405180910390fd5b819050919050565b6000806124db8560000185856138b5565b91509150935093915050565b600080826000018054905090506000811461254657612515836000016001836125109190616c0f565b613c3b565b60000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16612549565b60005b915050919050565b600065ffffffffffff801682111561259e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125959061712f565b60405180910390fd5b819050919050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60007f6e665ced000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612643575061264282613c50565b5b9050919050565b6000600754905090565b6000612667612661613e6c565b83613f23565b9050919050565b600080600061267f87878787613f64565b9150915061268c81614046565b8192505050949350505050565b600080600360008881526020019081526020016000209050600160078111156126c5576126c4615aa5565b5b6126ce88611455565b60078111156126e0576126df615aa5565b5b14612720576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612717906171c1565b60405180910390fd5b600061274f878360000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff168661352f565b905061275e88888884886141ac565b60008451036127c0578673ffffffffffffffffffffffffffffffffffffffff167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4898884896040516127b394939291906171e1565b60405180910390a2612817565b8673ffffffffffffffffffffffffffffffffffffffff167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb8712898884898960405161280e959493929190617277565b60405180910390a25b809250505095945050505050565b600033905090565b3660008036915091509091565b6000612845826143b0565b1561287c576040517f3db2a12a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008260000160009054906101000a9004600f0b905082600101600082600f0b600f0b815260200190815260200160002054915082600101600082600f0b600f0b815260200190815260200160002060009055600181018360000160006101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff16021790555050919050565b61291e611c8d565b811115612960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295790617370565b60405180910390fd5b600061296a611cac565b90506000811415801561298557506000600b60000180549050145b15612a7757600b6000016040518060400160405280600063ffffffff1681526020016129b08461240c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b612aac612a92612a85611be7565b65ffffffffffff16612477565b612a9b8461240c565b600b6124ca9092919063ffffffff16565b50507f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b46339978183604051612adf9291906169f8565b60405180910390a15050565b3073ffffffffffffffffffffffffffffffffffffffff16612b0a610c60565b73ffffffffffffffffffffffffffffffffffffffff1614612bc75760005b8451811015612bc5573073ffffffffffffffffffffffffffffffffffffffff16858281518110612b5b57612b5a616c43565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603612bb457612bb3838281518110612b9457612b93616c43565b5b60200260200101518051906020012060046143e590919063ffffffff16565b5b80612bbe90617390565b9050612b28565b505b5050505050565b612bdb8585858585614461565b5050505050565b3073ffffffffffffffffffffffffffffffffffffffff16612c01610c60565b73ffffffffffffffffffffffffffffffffffffffff1614612c3657612c2660046143b0565b612c3557612c3460046144ff565b5b5b5050505050565b6000600654905090565b6000612c5d85858585612c58613729565b612699565b9050949350505050565b600080612c7383614580565b905060046007811115612c8957612c88615aa5565b5b816007811115612c9c57612c9b615aa5565b5b14612caa5780915050612e35565b6000600d60008581526020019081526020016000205490506000801b8103612cd6578192505050612e35565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ab0f529826040518263ffffffff1660e01b8152600401612d319190615a0f565b602060405180830381865afa158015612d4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d729190617404565b15612d8257600792505050612e35565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663584b153e826040518263ffffffff1660e01b8152600401612ddd9190615a0f565b602060405180830381865afa158015612dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e1e9190617404565b15612e2e57600592505050612e35565b6002925050505b919050565b6000612e48858585856146ac565b9050949350505050565b600080836000018054905090506000808290506005831115612ed4576000612e798461479e565b84612e849190616c0f565b9050612e938760000182613c3b565b60000160009054906101000a900463ffffffff1663ffffffff168663ffffffff161015612ec257809150612ed2565b600181612ecf91906169c4565b92505b505b6000612ee587600001878585614897565b905060008114612f3957612f0887600001600183612f039190616c0f565b613c3b565b60000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16612f3c565b60005b94505050505092915050565b7fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a9360065482604051612f7b9291906169f8565b60405180910390a18060068190555050565b600080612f98612825565b9050612fa4818461490a565b612fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fda9061747d565b60405180910390fd5b6000612fed611be7565b65ffffffffffff169050612fff611eb7565b613015836001846130109190616c0f565b612260565b1015613056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304d9061750f565b60405180910390fd5b600061306b88888888805190602001206120a2565b905086518851146130b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130a8906175a1565b60405180910390fd5b85518851146130f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ec906175a1565b60405180910390fd5b6000885111613139576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131309061760d565b60405180910390fd5b60006003600083815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16146131b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a79061769f565b60405180910390fd5b60006131ba6113bc565b836131c591906169c4565b905060006131d1610c81565b826131dc91906169c4565b90506040518060e001604052806131f284614a5c565b67ffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff168152602001600060e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200161324f83614a5c565b67ffffffffffffffff168152602001600060401b67ffffffffffffffff19168152602001600015158152602001600015158152506003600085815260200190815260200160002060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600001601c6101000a81548163ffffffff021916908360e01c021790555060608201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160010160086101000a81548177ffffffffffffffffffffffffffffffffffffffffffffffff021916908360401c021790555060a08201518160020160006101000a81548160ff02191690831515021790555060c08201518160020160016101000a81548160ff0219169083151502179055509050507f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e083868c8c8e5167ffffffffffffffff81111561341a576134196152ad565b5b60405190808252806020026020018201604052801561344d57816020015b60608152602001906001900390816134385790505b508d88888f604051613467999897969594939291906177cb565b60405180910390a18295505050505050949350505050565b606060ff60001b831461349c5761349583614ab3565b9050613529565b8180546134a890616553565b80601f01602080910402602001604051908101604052809291908181526020018280546134d490616553565b80156135215780601f106134f657610100808354040283529160200191613521565b820191906000526020600020905b81548152906001019060200180831161350457829003601f168201915b505050505090505b92915050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633a46b1a885856040518363ffffffff1660e01b815260040161358c92919061787b565b602060405180830381865afa1580156135a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135cd919061662b565b90509392505050565b7f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826040516136299291906178a4565b60405180910390a180600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600854905090565b6060831561368f5782905061369a565b6136998383614b27565b5b9392505050565b600081116136e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136db9061793f565b60405180910390fd5b7f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828600754826040516137179291906169f8565b60405180910390a18060078190555050565b606060405180602001604052806000815250905090565b7fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461600854826040516137739291906169f8565b60405180910390a18060088190555050565b600061378f611c8d565b613798836117fc565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638e539e8c856040518263ffffffff1660e01b81526004016137f191906151b2565b602060405180830381865afa15801561380e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613832919061662b565b61383c919061795f565b61384691906179d0565b9050919050565b600080829050601f8151111561389a57826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016138919190615587565b60405180910390fd5b8051816138a690617a26565b60001c1760001b915050919050565b6000806000858054905090506000811115613b4b5760006138e2876001846138dd9190616c0f565b613c3b565b6040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152505090508563ffffffff16816000015163ffffffff1611156139d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139cd90617ad9565b60405180910390fd5b8563ffffffff16816000015163ffffffff1603613a5a5784613a04886001856139ff9190616c0f565b613c3b565b60000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550613b3a565b8660405180604001604052808863ffffffff168152602001877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b806020015185935093505050613c33565b8560405180604001604052808763ffffffff168152602001867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550505060008492509250505b935093915050565b60008260005281602060002001905092915050565b60008063143489d060e01b63452115d660e01b1890506000639a802a6d60e01b630342018160e01b635f398a1460e01b18189050600081837fda287a1d000000000000000000000000000000000000000000000000000000007ff2e09f740000000000000000000000000000000000000000000000000000000018181890506000837fda287a1d000000000000000000000000000000000000000000000000000000007ff2e09f740000000000000000000000000000000000000000000000000000000018189050817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480613da15750807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613de95750837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613e5157507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613e615750613e6086614b77565b5b945050505050919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015613ee857507f000000000000000000000000000000000000000000000000000000000000000046145b15613f15577f00000000000000000000000000000000000000000000000000000000000000009050613f20565b613f1d614be1565b90505b90565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115613f9f57600060039150915061403d565b600060018787878760405160008152602001604052604051613fc49493929190617af9565b6020604051602081039080840390855afa158015613fe6573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036140345760006001925092505061403d565b80600092509250505b94509492505050565b6000600481111561405a57614059615aa5565b5b81600481111561406d5761406c615aa5565b5b03156141a9576001600481111561408757614086615aa5565b5b81600481111561409a57614099615aa5565b5b036140da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140d190617b8a565b60405180910390fd5b600260048111156140ee576140ed615aa5565b5b81600481111561410157614100615aa5565b5b03614141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161413890617bf6565b60405180910390fd5b6003600481111561415557614154615aa5565b5b81600481111561416857614167615aa5565b5b036141a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161419f90617c88565b60405180910390fd5b5b50565b60006009600087815260200190815260200160002090508060030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161424990617d1a565b60405180910390fd5b60018160030160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600060028111156142c0576142bf615aa5565b5b60ff168460ff16036142ec57828160000160008282546142e091906169c4565b925050819055506143a8565b60016002811115614300576142ff615aa5565b5b60ff168460ff160361432c578281600101600082825461432091906169c4565b925050819055506143a7565b60028081111561433f5761433e615aa5565b5b60ff168460ff160361436b578281600201600082825461435f91906169c4565b925050819055506143a6565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161439d90617dac565b60405180910390fd5b5b5b505050505050565b60008160000160009054906101000a9004600f0b600f0b8260000160109054906101000a9004600f0b600f0b13159050919050565b60008260000160109054906101000a9004600f0b90508183600101600083600f0b600f0b815260200190815260200160002081905550600181018360000160106101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff160217905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e38335e5348686866000876040518763ffffffff1660e01b81526004016144c6959493929190616875565b6000604051808303818588803b1580156144df57600080fd5b505af11580156144f3573d6000803e3d6000fd5b50505050505050505050565b60008160000160006101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff16021790555060008160000160106101000a8154816fffffffffffffffffffffffffffffffff0219169083600f0b6fffffffffffffffffffffffffffffffff16021790555050565b6000806003600084815260200190815260200160002090508060020160009054906101000a900460ff16156145b95760079150506146a7565b8060020160019054906101000a900460ff16156145da5760029150506146a7565b60006145e58461135a565b90506000810361462a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161462190617e18565b60405180910390fd5b6000614634611be7565b65ffffffffffff16905080821061465157600093505050506146a7565b600061465c86611edb565b90508181106146725760019450505050506146a7565b61467b86614c77565b801561468c575061468b86614cbe565b5b1561469e5760049450505050506146a7565b60039450505050505b919050565b6000806146bb86868686614ce9565b90506000801b600d6000838152602001908152602001600020541461479257600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c4d252f5600d6000848152602001908152602001600020546040518263ffffffff1660e01b81526004016147489190615a0f565b600060405180830381600087803b15801561476257600080fd5b505af1158015614776573d6000803e3d6000fd5b50505050600d6000828152602001908152602001600020600090555b80915050949350505050565b60008082036147b05760009050614892565b600060016147bd84614e43565b901c6001901b905060018184816147d7576147d66179a1565b5b048201901c905060018184816147f0576147ef6179a1565b5b048201901c90506001818481614809576148086179a1565b5b048201901c90506001818481614822576148216179a1565b5b048201901c9050600181848161483b5761483a6179a1565b5b048201901c90506001818481614854576148536179a1565b5b048201901c9050600181848161486d5761486c6179a1565b5b048201901c905061488e81828581614888576148876179a1565b5b04614f24565b9150505b919050565b60005b818310156148ff5760006148ae8484614f3d565b90508463ffffffff166148c18783613c3b565b60000160009054906101000a900463ffffffff1663ffffffff1611156148e9578092506148f9565b6001816148f691906169c4565b93505b5061489a565b819050949350505050565b600080825190506034811015614924576001915050614a56565b60006014820384015190507f2370726f706f7365723d3078000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff19168173ffffffffffffffffffffffffffffffffffffffff19161461498f57600192505050614a56565b60008060288461499f9190616c0f565b90505b83811015614a20576000806149d38884815181106149c3576149c2616c43565b5b602001015160f81c60f81b614f63565b91509150816149eb5760019650505050505050614a56565b8060ff1660048573ffffffffffffffffffffffffffffffffffffffff16901b179350505080614a1990617390565b90506149a2565b508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161493505050505b92915050565b600067ffffffffffffffff8016821115614aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614aa290617eaa565b60405180910390fd5b819050919050565b60606000614ac083614ffd565b90506000602067ffffffffffffffff811115614adf57614ade6152ad565b5b6040519080825280601f01601f191660200182016040528015614b115781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b600082511115614b3a5781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614b6e9190615587565b60405180910390fd5b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001614c5c959493929190617eca565b60405160208183030381529060405280519060200120905090565b60008060096000848152602001908152602001600020905080600201548160010154614ca391906169c4565b614cb4614caf8561135a565b612388565b1115915050919050565b6000806009600084815260200190815260200160002090508060000154816001015411915050919050565b600080614cf8868686866120a2565b90506000614d0582611455565b905060026007811115614d1b57614d1a615aa5565b5b816007811115614d2e57614d2d615aa5565b5b14158015614d61575060066007811115614d4b57614d4a615aa5565b5b816007811115614d5e57614d5d615aa5565b5b14155b8015614d915750600780811115614d7b57614d7a615aa5565b5b816007811115614d8e57614d8d615aa5565b5b14155b614dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614dc790617f69565b60405180910390fd5b60016003600084815260200190815260200160002060020160016101000a81548160ff0219169083151502179055507f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c82604051614e2e91906151b2565b60405180910390a18192505050949350505050565b600080600090506000608084901c1115614e6557608083901c92506080810190505b6000604084901c1115614e8057604083901c92506040810190505b6000602084901c1115614e9b57602083901c92506020810190505b6000601084901c1115614eb657601083901c92506010810190505b6000600884901c1115614ed157600883901c92506008810190505b6000600484901c1115614eec57600483901c92506004810190505b6000600284901c1115614f0757600283901c92506002810190505b6000600184901c1115614f1b576001810190505b80915050919050565b6000818310614f335781614f35565b825b905092915050565b60006002828418614f4e91906179d0565b828416614f5b91906169c4565b905092915050565b60008060008360f81c90508060ff16602f108015614f845750603a8160ff16105b15614f99576001603082039250925050614ff8565b8060ff166040108015614faf575060478160ff16105b15614fc4576001603782039250925050614ff8565b8060ff166060108015614fda575060678160ff16105b15614fef576001605782039250925050614ff8565b60008092509250505b915091565b60008060ff8360001c169050601f811115615044576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b600082825260208201905092915050565b7f476f7665726e6f723a206d7573742073656e6420746f206578656375746f7200600082015250565b6000615094601f8361504d565b915061509f8261505e565b602082019050919050565b600060208201905081810360008301526150c381615087565b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b615113816150de565b811461511e57600080fd5b50565b6000813590506151308161510a565b92915050565b60006020828403121561514c5761514b6150d4565b5b600061515a84828501615121565b91505092915050565b60008115159050919050565b61517881615163565b82525050565b6000602082019050615193600083018461516f565b92915050565b6000819050919050565b6151ac81615199565b82525050565b60006020820190506151c760008301846151a3565b92915050565b6151d681615199565b81146151e157600080fd5b50565b6000813590506151f3816151cd565b92915050565b600060ff82169050919050565b61520f816151f9565b811461521a57600080fd5b50565b60008135905061522c81615206565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261525757615256615232565b5b8235905067ffffffffffffffff81111561527457615273615237565b5b6020830191508360018202830111156152905761528f61523c565b5b9250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6152e58261529c565b810181811067ffffffffffffffff82111715615304576153036152ad565b5b80604052505050565b60006153176150ca565b905061532382826152dc565b919050565b600067ffffffffffffffff821115615343576153426152ad565b5b61534c8261529c565b9050602081019050919050565b82818337600083830152505050565b600061537b61537684615328565b61530d565b90508281526020810184848401111561539757615396615297565b5b6153a2848285615359565b509392505050565b600082601f8301126153bf576153be615232565b5b81356153cf848260208601615368565b91505092915050565b6000819050919050565b6153eb816153d8565b81146153f657600080fd5b50565b600081359050615408816153e2565b92915050565b60008060008060008060008060e0898b03121561542e5761542d6150d4565b5b600061543c8b828c016151e4565b985050602061544d8b828c0161521d565b975050604089013567ffffffffffffffff81111561546e5761546d6150d9565b5b61547a8b828c01615241565b9650965050606089013567ffffffffffffffff81111561549d5761549c6150d9565b5b6154a98b828c016153aa565b94505060806154ba8b828c0161521d565b93505060a06154cb8b828c016153f9565b92505060c06154dc8b828c016153f9565b9150509295985092959890939650565b600060208284031215615502576155016150d4565b5b6000615510848285016151e4565b91505092915050565b600081519050919050565b60005b83811015615542578082015181840152602081019050615527565b60008484015250505050565b600061555982615519565b615563818561504d565b9350615573818560208601615524565b61557c8161529c565b840191505092915050565b600060208201905081810360008301526155a1818461554e565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006155d4826155a9565b9050919050565b6155e4816155c9565b82525050565b60006020820190506155ff60008301846155db565b92915050565b61560e816155c9565b811461561957600080fd5b50565b60008135905061562b81615605565b92915050565b6000806000806080858703121561564b5761564a6150d4565b5b60006156598782880161561c565b945050602061566a8782880161561c565b935050604061567b878288016151e4565b925050606085013567ffffffffffffffff81111561569c5761569b6150d9565b5b6156a8878288016153aa565b91505092959194509250565b6156bd816150de565b82525050565b60006020820190506156d860008301846156b4565b92915050565b600067ffffffffffffffff8211156156f9576156f86152ad565b5b602082029050602081019050919050565b600061571d615718846156de565b61530d565b905080838252602082019050602084028301858111156157405761573f61523c565b5b835b818110156157695780615755888261561c565b845260208401935050602081019050615742565b5050509392505050565b600082601f83011261578857615787615232565b5b813561579884826020860161570a565b91505092915050565b600067ffffffffffffffff8211156157bc576157bb6152ad565b5b602082029050602081019050919050565b60006157e06157db846157a1565b61530d565b905080838252602082019050602084028301858111156158035761580261523c565b5b835b8181101561582c578061581888826151e4565b845260208401935050602081019050615805565b5050509392505050565b600082601f83011261584b5761584a615232565b5b813561585b8482602086016157cd565b91505092915050565b600067ffffffffffffffff82111561587f5761587e6152ad565b5b602082029050602081019050919050565b60006158a361589e84615864565b61530d565b905080838252602082019050602084028301858111156158c6576158c561523c565b5b835b8181101561590d57803567ffffffffffffffff8111156158eb576158ea615232565b5b8086016158f889826153aa565b855260208501945050506020810190506158c8565b5050509392505050565b600082601f83011261592c5761592b615232565b5b813561593c848260208601615890565b91505092915050565b6000806000806080858703121561595f5761595e6150d4565b5b600085013567ffffffffffffffff81111561597d5761597c6150d9565b5b61598987828801615773565b945050602085013567ffffffffffffffff8111156159aa576159a96150d9565b5b6159b687828801615836565b935050604085013567ffffffffffffffff8111156159d7576159d66150d9565b5b6159e387828801615917565b92505060606159f4878288016153f9565b91505092959194509250565b615a09816153d8565b82525050565b6000602082019050615a246000830184615a00565b92915050565b600080600080600060a08688031215615a4657615a456150d4565b5b6000615a54888289016151e4565b9550506020615a658882890161521d565b9450506040615a768882890161521d565b9350506060615a87888289016153f9565b9250506080615a98888289016153f9565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60088110615ae557615ae4615aa5565b5b50565b6000819050615af682615ad4565b919050565b6000615b0682615ae8565b9050919050565b615b1681615afb565b82525050565b6000602082019050615b316000830184615b0d565b92915050565b60008060408385031215615b4e57615b4d6150d4565b5b6000615b5c858286016151e4565b9250506020615b6d8582860161561c565b9150509250929050565b6000606082019050615b8c60008301866151a3565b615b9960208301856151a3565b615ba660408301846151a3565b949350505050565b60008060408385031215615bc557615bc46150d4565b5b6000615bd3858286016151e4565b9250506020615be48582860161521d565b9150509250929050565b600080600080600060808688031215615c0a57615c096150d4565b5b6000615c18888289016151e4565b9550506020615c298882890161521d565b945050604086013567ffffffffffffffff811115615c4a57615c496150d9565b5b615c5688828901615241565b9350935050606086013567ffffffffffffffff811115615c7957615c786150d9565b5b615c85888289016153aa565b9150509295509295909350565b60008060008060608587031215615cac57615cab6150d4565b5b6000615cba878288016151e4565b9450506020615ccb8782880161521d565b935050604085013567ffffffffffffffff811115615cec57615ceb6150d9565b5b615cf887828801615241565b925092505092959194509250565b600067ffffffffffffffff821115615d2157615d206152ad565b5b615d2a8261529c565b9050602081019050919050565b6000615d4a615d4584615d06565b61530d565b905082815260208101848484011115615d6657615d65615297565b5b615d71848285615359565b509392505050565b600082601f830112615d8e57615d8d615232565b5b8135615d9e848260208601615d37565b91505092915050565b60008060008060808587031215615dc157615dc06150d4565b5b600085013567ffffffffffffffff811115615ddf57615dde6150d9565b5b615deb87828801615773565b945050602085013567ffffffffffffffff811115615e0c57615e0b6150d9565b5b615e1887828801615836565b935050604085013567ffffffffffffffff811115615e3957615e386150d9565b5b615e4587828801615917565b925050606085013567ffffffffffffffff811115615e6657615e656150d9565b5b615e7287828801615d79565b91505092959194509250565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b615eb381615e7e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615eee81615199565b82525050565b6000615f008383615ee5565b60208301905092915050565b6000602082019050919050565b6000615f2482615eb9565b615f2e8185615ec4565b9350615f3983615ed5565b8060005b83811015615f6a578151615f518882615ef4565b9750615f5c83615f0c565b925050600181019050615f3d565b5085935050505092915050565b600060e082019050615f8c600083018a615eaa565b8181036020830152615f9e818961554e565b90508181036040830152615fb2818861554e565b9050615fc160608301876151a3565b615fce60808301866155db565b615fdb60a0830185615a00565b81810360c0830152615fed8184615f19565b905098975050505050505050565b600065ffffffffffff82169050919050565b61601681615ffb565b82525050565b6000602082019050616031600083018461600d565b92915050565b6000806000606084860312156160505761604f6150d4565b5b600061605e8682870161561c565b935050602061606f868287016151e4565b925050604084013567ffffffffffffffff8111156160905761608f6150d9565b5b61609c868287016153aa565b9150509250925092565b60006160b1826155a9565b9050919050565b60006160c3826160a6565b9050919050565b6160d3816160b8565b81146160de57600080fd5b50565b6000813590506160f0816160ca565b92915050565b60006020828403121561610c5761610b6150d4565b5b600061611a848285016160e1565b91505092915050565b600080600080600060a0868803121561613f5761613e6150d4565b5b600061614d8882890161561c565b955050602061615e8882890161561c565b945050604086013567ffffffffffffffff81111561617f5761617e6150d9565b5b61618b88828901615836565b935050606086013567ffffffffffffffff8111156161ac576161ab6150d9565b5b6161b888828901615836565b925050608086013567ffffffffffffffff8111156161d9576161d86150d9565b5b6161e5888289016153aa565b9150509295509295909350565b60008083601f84011261620857616207615232565b5b8235905067ffffffffffffffff81111561622557616224615237565b5b6020830191508360018202830111156162415761624061523c565b5b9250929050565b60008060008060608587031215616262576162616150d4565b5b60006162708782880161561c565b9450506020616281878288016151e4565b935050604085013567ffffffffffffffff8111156162a2576162a16150d9565b5b6162ae878288016161f2565b925092505092959194509250565b600080604083850312156162d3576162d26150d4565b5b60006162e18582860161561c565b92505060206162f2858286016151e4565b9150509250929050565b600080600080600060a08688031215616318576163176150d4565b5b60006163268882890161561c565b95505060206163378882890161561c565b9450506040616348888289016151e4565b9350506060616359888289016151e4565b925050608086013567ffffffffffffffff81111561637a576163796150d9565b5b616386888289016153aa565b9150509295509295909350565b6000819050919050565b60006163b86163b36163ae846155a9565b616393565b6155a9565b9050919050565b60006163ca8261639d565b9050919050565b60006163dc826163bf565b9050919050565b6163ec816163d1565b82525050565b600060208201905061640760008301846163e3565b92915050565b600081905092915050565b6000616424838561640d565b9350616431838584615359565b82840190509392505050565b600061644a828486616418565b91508190509392505050565b61645f816151f9565b82525050565b600060a08201905061647a6000830188615a00565b61648760208301876151a3565b6164946040830186616456565b6164a16060830185615a00565b6164ae6080830184615a00565b9695505050505050565b7f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000600082015250565b60006164ee60188361504d565b91506164f9826164b8565b602082019050919050565b6000602082019050818103600083015261651d816164e1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061656b57607f821691505b60208210810361657e5761657d616524565b5b50919050565b7f476f7665726e6f723a2070726f706f73616c206e6f742073756363657373667560008201527f6c00000000000000000000000000000000000000000000000000000000000000602082015250565b60006165e060218361504d565b91506165eb82616584565b604082019050919050565b6000602082019050818103600083015261660f816165d3565b9050919050565b600081519050616625816151cd565b92915050565b600060208284031215616641576166406150d4565b5b600061664f84828501616616565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61668d816155c9565b82525050565b600061669f8383616684565b60208301905092915050565b6000602082019050919050565b60006166c382616658565b6166cd8185616663565b93506166d883616674565b8060005b838110156167095781516166f08882616693565b97506166fb836166ab565b9250506001810190506166dc565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b600061676982616742565b616773818561674d565b9350616783818560208601615524565b61678c8161529c565b840191505092915050565b60006167a3838361675e565b905092915050565b6000602082019050919050565b60006167c382616716565b6167cd8185616721565b9350836020820285016167df85616732565b8060005b8581101561681b57848403895281516167fc8582616797565b9450616807836167ab565b925060208a019950506001810190506167e3565b50829750879550505050505092915050565b6000819050919050565b60008160001b9050919050565b600061685f61685a6168558461682d565b616837565b6153d8565b9050919050565b61686f81616844565b82525050565b600060a082019050818103600083015261688f81886166b8565b905081810360208301526168a38187615f19565b905081810360408301526168b781866167b8565b90506168c66060830185616866565b6168d36080830184615a00565b9695505050505050565b6000815190506168ec816153e2565b92915050565b600060208284031215616908576169076150d4565b5b6000616916848285016168dd565b91505092915050565b600060c082019050818103600083015261693981896166b8565b9050818103602083015261694d8188615f19565b9050818103604083015261696181876167b8565b90506169706060830186616866565b61697d6080830185615a00565b61698a60a08301846151a3565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006169cf82615199565b91506169da83615199565b92508282019050808211156169f2576169f1616995565b5b92915050565b6000604082019050616a0d60008301856151a3565b616a1a60208301846151a3565b9392505050565b6000606082019050616a366000830186615a00565b616a4360208301856151a3565b616a506040830184616456565b949350505050565b7f476f7665726e6f723a20746f6f206c61746520746f2063616e63656c00000000600082015250565b6000616a8e601c8361504d565b9150616a9982616a58565b602082019050919050565b60006020820190508181036000830152616abd81616a81565b9050919050565b7f476f7665726e6f723a206f6e6c792070726f706f7365722063616e2063616e6360008201527f656c000000000000000000000000000000000000000000000000000000000000602082015250565b6000616b2060228361504d565b9150616b2b82616ac4565b604082019050919050565b60006020820190508181036000830152616b4f81616b13565b9050919050565b6000616b69616b6484615d06565b61530d565b905082815260208101848484011115616b8557616b84615297565b5b616b90848285615524565b509392505050565b600082601f830112616bad57616bac615232565b5b8151616bbd848260208601616b56565b91505092915050565b600060208284031215616bdc57616bdb6150d4565b5b600082015167ffffffffffffffff811115616bfa57616bf96150d9565b5b616c0684828501616b98565b91505092915050565b6000616c1a82615199565b9150616c2583615199565b9250828203905081811115616c3d57616c3c616995565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b616c7b81615ffb565b8114616c8657600080fd5b50565b600081519050616c9881616c72565b92915050565b600060208284031215616cb457616cb36150d4565b5b6000616cc284828501616c89565b91505092915050565b60006080820190508181036000830152616ce581876166b8565b90508181036020830152616cf98186615f19565b90508181036040830152616d0d81856167b8565b9050616d1c6060830184615a00565b95945050505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302616d877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82616d4a565b616d918683616d4a565b95508019841693508086168417925050509392505050565b6000616dc4616dbf616dba84615199565b616393565b615199565b9050919050565b6000819050919050565b616dde83616da9565b616df2616dea82616dcb565b848454616d57565b825550505050565b600090565b616e07616dfa565b616e12818484616dd5565b505050565b5b81811015616e3657616e2b600082616dff565b600181019050616e18565b5050565b601f821115616e7b57616e4c81616d25565b616e5584616d3a565b81016020851015616e64578190505b616e78616e7085616d3a565b830182616e17565b50505b505050565b600082821c905092915050565b6000616e9e60001984600802616e80565b1980831691505092915050565b6000616eb78383616e8d565b9150826002028217905092915050565b616ed082615519565b67ffffffffffffffff811115616ee957616ee86152ad565b5b616ef38254616553565b616efe828285616e3a565b600060209050601f831160018114616f315760008415616f1f578287015190505b616f298582616eab565b865550616f91565b601f198416616f3f86616d25565b60005b82811015616f6757848901518255600182019150602085019450602081019050616f42565b86831015616f845784890151616f80601f891682616e8d565b8355505b6001600288020188555050505b505050505050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b6000616ff560278361504d565b915061700082616f99565b604082019050919050565b6000602082019050818103600083015261702481616fe8565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b600061708760268361504d565b91506170928261702b565b604082019050919050565b600060208201905081810360008301526170b68161707a565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203460008201527f3820626974730000000000000000000000000000000000000000000000000000602082015250565b600061711960268361504d565b9150617124826170bd565b604082019050919050565b600060208201905081810360008301526171488161710c565b9050919050565b7f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460008201527f6976650000000000000000000000000000000000000000000000000000000000602082015250565b60006171ab60238361504d565b91506171b68261714f565b604082019050919050565b600060208201905081810360008301526171da8161719e565b9050919050565b60006080820190506171f660008301876151a3565b6172036020830186616456565b61721060408301856151a3565b8181036060830152617222818461554e565b905095945050505050565b600082825260208201905092915050565b600061724982616742565b617253818561722d565b9350617263818560208601615524565b61726c8161529c565b840191505092915050565b600060a08201905061728c60008301886151a3565b6172996020830187616456565b6172a660408301866151a3565b81810360608301526172b8818561554e565b905081810360808301526172cc818461723e565b90509695505050505050565b7f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60008201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e6160208201527f746f720000000000000000000000000000000000000000000000000000000000604082015250565b600061735a60438361504d565b9150617365826172d8565b606082019050919050565b600060208201905081810360008301526173898161734d565b9050919050565b600061739b82615199565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036173cd576173cc616995565b5b600182019050919050565b6173e181615163565b81146173ec57600080fd5b50565b6000815190506173fe816173d8565b92915050565b60006020828403121561741a576174196150d4565b5b6000617428848285016173ef565b91505092915050565b7f476f7665726e6f723a2070726f706f7365722072657374726963746564000000600082015250565b6000617467601d8361504d565b915061747282617431565b602082019050919050565b600060208201905081810360008301526174968161745a565b9050919050565b7f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f77207060008201527f726f706f73616c207468726573686f6c64000000000000000000000000000000602082015250565b60006174f960318361504d565b91506175048261749d565b604082019050919050565b60006020820190508181036000830152617528816174ec565b9050919050565b7f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e677460008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b600061758b60218361504d565b91506175968261752f565b604082019050919050565b600060208201905081810360008301526175ba8161757e565b9050919050565b7f476f7665726e6f723a20656d7074792070726f706f73616c0000000000000000600082015250565b60006175f760188361504d565b9150617602826175c1565b602082019050919050565b60006020820190508181036000830152617626816175ea565b9050919050565b7f476f7665726e6f723a2070726f706f73616c20616c726561647920657869737460008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061768960218361504d565b91506176948261762d565b604082019050919050565b600060208201905081810360008301526176b88161767c565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061770782615519565b61771181856176eb565b9350617721818560208601615524565b61772a8161529c565b840191505092915050565b600061774183836176fc565b905092915050565b6000602082019050919050565b6000617761826176bf565b61776b81856176ca565b93508360208202850161777d856176db565b8060005b858110156177b9578484038952815161779a8582617735565b94506177a583617749565b925060208a01995050600181019050617781565b50829750879550505050505092915050565b6000610120820190506177e1600083018c6151a3565b6177ee602083018b6155db565b8181036040830152617800818a6166b8565b905081810360608301526178148189615f19565b905081810360808301526178288188617756565b905081810360a083015261783c81876167b8565b905061784b60c08301866151a3565b61785860e08301856151a3565b81810361010083015261786b818461554e565b90509a9950505050505050505050565b600060408201905061789060008301856155db565b61789d60208301846151a3565b9392505050565b60006040820190506178b960008301856155db565b6178c660208301846155db565b9392505050565b7f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f642060008201527f746f6f206c6f7700000000000000000000000000000000000000000000000000602082015250565b600061792960278361504d565b9150617934826178cd565b604082019050919050565b600060208201905081810360008301526179588161791c565b9050919050565b600061796a82615199565b915061797583615199565b925082820261798381615199565b9150828204841483151761799a57617999616995565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006179db82615199565b91506179e683615199565b9250826179f6576179f56179a1565b5b828204905092915050565b6000819050602082019050919050565b6000617a1d82516153d8565b80915050919050565b6000617a3182616742565b82617a3b84617a01565b9050617a4681617a11565b92506020821015617a8657617a817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802616d4a565b831692505b5050919050565b7f436865636b706f696e743a2064656372656173696e67206b6579730000000000600082015250565b6000617ac3601b8361504d565b9150617ace82617a8d565b602082019050919050565b60006020820190508181036000830152617af281617ab6565b9050919050565b6000608082019050617b0e6000830187615a00565b617b1b6020830186616456565b617b286040830185615a00565b617b356060830184615a00565b95945050505050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000617b7460188361504d565b9150617b7f82617b3e565b602082019050919050565b60006020820190508181036000830152617ba381617b67565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000617be0601f8361504d565b9150617beb82617baa565b602082019050919050565b60006020820190508181036000830152617c0f81617bd3565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000617c7260228361504d565b9150617c7d82617c16565b604082019050919050565b60006020820190508181036000830152617ca181617c65565b9050919050565b7f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c72656160008201527f6479206361737400000000000000000000000000000000000000000000000000602082015250565b6000617d0460278361504d565b9150617d0f82617ca8565b604082019050919050565b60006020820190508181036000830152617d3381617cf7565b9050919050565b7f476f7665726e6f72566f74696e6753696d706c653a20696e76616c696420766160008201527f6c756520666f7220656e756d20566f7465547970650000000000000000000000602082015250565b6000617d9660358361504d565b9150617da182617d3a565b604082019050919050565b60006020820190508181036000830152617dc581617d89565b9050919050565b7f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c206964000000600082015250565b6000617e02601d8361504d565b9150617e0d82617dcc565b602082019050919050565b60006020820190508181036000830152617e3181617df5565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203660008201527f3420626974730000000000000000000000000000000000000000000000000000602082015250565b6000617e9460268361504d565b9150617e9f82617e38565b604082019050919050565b60006020820190508181036000830152617ec381617e87565b9050919050565b600060a082019050617edf6000830188615a00565b617eec6020830187615a00565b617ef96040830186615a00565b617f0660608301856151a3565b617f1360808301846155db565b9695505050505050565b7f476f7665726e6f723a2070726f706f73616c206e6f7420616374697665000000600082015250565b6000617f53601d8361504d565b9150617f5e82617f1d565b602082019050919050565b60006020820190508181036000830152617f8281617f46565b905091905056fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765a264697066735822122019baa23ba3cc7234d809421c8d629fdcac6cc48347db80644fc58a7fed83bf8464736f6c6343000812003300000000000000000000000089056a4692f0ad73829977e2c924138bda7ee47d00000000000000000000000089056a4692f0ad73829977e2c924138bda7ee47d