60a06040526040518060400160405280600981526020017f4f726967696e496e750000000000000000000000000000000000000000000000815250600390805190602001906200005192919062000ca4565b506040518060400160405280600981526020017f4f726967696e496e750000000000000000000000000000000000000000000000815250600490805190602001906200009f92919062000ca4565b506009600560006101000a81548160ff021916908360ff160217905550734381f3dbb4840512659515ef39009817bd9fbe13600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f03f7418a5900f2710b8dfcee4828e8dfc33329f600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152506000600c556000600f55600060125560026013556001601455600060155560026016556001601755600460185560046019556010601a55600c601b55600c601c556018601d55600560009054906101000a900460ff16600a62000202919062000f1b565b633b9aca0062000213919062001058565b601e55600560009054906101000a900460ff16600a62000234919062000f1b565b633b9aca0062000245919062001058565b601f55600560009054906101000a900460ff16600a62000266919062000f1b565b633b9aca0062000277919062001058565b602055600560009054906101000a900460ff16600a62000298919062000f1b565b620f4240620002a8919062001058565b6021556001602360156101000a81548160ff0219169083151502179055506000602360166101000a81548160ff0219169083151502179055506000602360176101000a81548160ff0219169083151502179055503480156200030957600080fd5b5060006200031c62000c1060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041a57600080fd5b505afa1580156200042f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000455919062000d6b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620004b857600080fd5b505afa158015620004cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004f3919062000d6b565b6040518363ffffffff1660e01b81526004016200051292919062000de6565b602060405180830381600087803b1580156200052d57600080fd5b505af115801562000542573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000568919062000d6b565b602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e54600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a6000620006a462000c1860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007866014546200077260135460125462000c4160201b620032121790919060201c565b62000c4160201b620032121790919060201c565b601b81905550620007c5601754620007b160165460155462000c4160201b620032121790919060201c565b62000c4160201b620032121790919060201c565b601c8190555062000804601a54620007f060195460185462000c4160201b620032121790919060201c565b62000c4160201b620032121790919060201c565b601d819055506001600b60006200082062000c1860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160006200095962000c1860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600062000a1862000c1860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601e546008600062000b5262000c1060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000ba062000c1060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601e5460405162000c01919062000e35565b60405180910390a350620011ed565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000c52919062000e63565b90508381101562000c9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000c919062000e13565b60405180910390fd5b8091505092915050565b82805462000cb29062001104565b90600052602060002090601f01602090048101928262000cd6576000855562000d22565b82601f1062000cf157805160ff191683800117855562000d22565b8280016001018555821562000d22579182015b8281111562000d2157825182559160200191906001019062000d04565b5b50905062000d31919062000d35565b5090565b5b8082111562000d5057600081600090555060010162000d36565b5090565b60008151905062000d6581620011d3565b92915050565b60006020828403121562000d845762000d8362001198565b5b600062000d948482850162000d54565b91505092915050565b62000da881620010b9565b82525050565b600062000dbd601b8362000e52565b915062000dca82620011aa565b602082019050919050565b62000de081620010ed565b82525050565b600060408201905062000dfd600083018562000d9d565b62000e0c602083018462000d9d565b9392505050565b6000602082019050818103600083015262000e2e8162000dae565b9050919050565b600060208201905062000e4c600083018462000dd5565b92915050565b600082825260208201905092915050565b600062000e7082620010ed565b915062000e7d83620010ed565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000eb55762000eb46200113a565b5b828201905092915050565b6000808291508390505b600185111562000f125780860481111562000eea5762000ee96200113a565b5b600185161562000efa5780820291505b808102905062000f0a856200119d565b945062000eca565b94509492505050565b600062000f2882620010ed565b915062000f3583620010f7565b925062000f647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f6c565b905092915050565b60008262000f7e576001905062001051565b8162000f8e576000905062001051565b816001811462000fa7576002811462000fb25762000fe8565b600191505062001051565b60ff84111562000fc75762000fc66200113a565b5b8360020a91508482111562000fe15762000fe06200113a565b5b5062001051565b5060208310610133831016604e8410600b8410161715620010225782820a9050838111156200101c576200101b6200113a565b5b62001051565b62001031848484600162000ec0565b925090508184048111156200104b576200104a6200113a565b5b81810290505b9392505050565b60006200106582620010ed565b91506200107283620010ed565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620010ae57620010ad6200113a565b5b828202905092915050565b6000620010c682620010cd565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200111d57607f821691505b6020821081141562001134576200113362001169565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b620011de81620010b9565b8114620011ea57600080fd5b50565b60805160601c61595862001213600039600081816117ce01526118ea01526159586000f3fe6080604052600436106104145760003560e01c80637d73900f1161021e578063c469b6dd11610123578063dc44b6a0116100ab578063f0cd1dac1161007a578063f0cd1dac14610fe6578063f1d5f51714611011578063f2fde38b1461103a578063f84ba65d14611063578063f872858a1461108c5761041b565b8063dc44b6a014610f2c578063dd62ed3e14610f57578063ec28438a14610f94578063ef422a1814610fbd5761041b565b8063c8607952116100f2578063c860795214610e43578063c867d60b14610e6e578063cab0347114610eab578063d158272d14610ed6578063da00097d14610f015761041b565b8063c469b6dd14610d99578063c49b9a8014610dc4578063c5d2418914610ded578063c816841b14610e185761041b565b8063a073d37f116101a6578063a5d69d1f11610175578063a5d69d1f14610ca2578063a83f53a714610ccb578063a8e1515014610cf6578063a9059cbb14610d33578063c2d4640e14610d705761041b565b8063a073d37f14610be4578063a08e671f14610c0f578063a457c2d714610c3a578063a52dc2e714610c775761041b565b806388790a68116101ed57806388790a6814610b235780638da5cb5b14610b4e5780638f70ccf714610b79578063914eb66a14610ba257806395d89b4114610bb95761041b565b80637d73900f14610a7b578063807c2d9c14610aa457806382eefb4314610acf578063844d591c14610afa5761041b565b80632e97766d11610324578063512f9170116102ac5780635881f3ef1161027b5780635881f3ef1461098057806361a23c69146109bd5780636ad1fe02146109e857806370a0823114610a135780637d1db4a514610a505761041b565b8063512f9170146108c25780635342acb4146108ed578063557ed1ba1461092a57806357a5802f146109555761041b565b80633bbac579116102f35780633bbac579146107cb5780633ecad271146108085780634a74bb02146108455780634cb80fd51461087057806350b20cac146108995761041b565b80632e97766d1461070f578063313ce5671461073a57806339509351146107655780633b97084a146107a25761041b565b806318160ddd116103a75780632563ae83116103765780632563ae831461063e57806327c8f835146106675780632af38605146106925780632b112e49146106bb5780632c4b2334146106e65761041b565b806318160ddd146105845780631870517a146105af5780632198cf6c146105d857806323b872dd146106015761041b565b80630d5e5c87116103e35780630d5e5c87146104da5780631245e3471461050357806314353ed11461052e5780631694505e146105595761041b565b806303c0f5d4146104205780630504bc7a1461044957806306fdde0314610472578063095ea7b31461049d5761041b565b3661041b57005b600080fd5b34801561042c57600080fd5b5061044760048036038101906104429190614a27565b6110b7565b005b34801561045557600080fd5b50610470600480360381019061046b919061493a565b6111a7565b005b34801561047e57600080fd5b50610487611280565b6040516104949190614fa5565b60405180910390f35b3480156104a957600080fd5b506104c460048036038101906104bf9190614a67565b611312565b6040516104d19190614f6f565b60405180910390f35b3480156104e657600080fd5b5061050160048036038101906104fc9190614b61565b611330565b005b34801561050f57600080fd5b50610518611410565b6040516105259190614eca565b60405180910390f35b34801561053a57600080fd5b50610543611436565b6040516105509190615127565b60405180910390f35b34801561056557600080fd5b5061056e611440565b60405161057b9190614f8a565b60405180910390f35b34801561059057600080fd5b50610599611466565b6040516105a69190615127565b60405180910390f35b3480156105bb57600080fd5b506105d660048036038101906105d19190614b61565b611470565b005b3480156105e457600080fd5b506105ff60048036038101906105fa9190614a27565b611550565b005b34801561060d57600080fd5b50610628600480360381019061062391906149d4565b611640565b6040516106359190614f6f565b60405180910390f35b34801561064a57600080fd5b5061066560048036038101906106609190614b07565b61171a565b005b34801561067357600080fd5b5061067c6117cc565b6040516106899190614eaf565b60405180910390f35b34801561069e57600080fd5b506106b960048036038101906106b49190614a27565b6117f0565b005b3480156106c757600080fd5b506106d06118e0565b6040516106dd9190615127565b60405180910390f35b3480156106f257600080fd5b5061070d6004803603810190610708919061493a565b611924565b005b34801561071b57600080fd5b506107246119fd565b6040516107319190615127565b60405180910390f35b34801561074657600080fd5b5061074f611a05565b60405161075c91906151cc565b60405180910390f35b34801561077157600080fd5b5061078c60048036038101906107879190614a67565b611a1c565b6040516107999190614f6f565b60405180910390f35b3480156107ae57600080fd5b506107c960048036038101906107c49190614b34565b611acf565b005b3480156107d757600080fd5b506107f260048036038101906107ed919061493a565b611b6e565b6040516107ff9190614f6f565b60405180910390f35b34801561081457600080fd5b5061082f600480360381019061082a919061493a565b611b8e565b60405161083c9190614f6f565b60405180910390f35b34801561085157600080fd5b5061085a611bae565b6040516108679190614f6f565b60405180910390f35b34801561087c57600080fd5b506108976004803603810190610892919061493a565b611bc1565b005b3480156108a557600080fd5b506108c060048036038101906108bb9190614aa7565b611c9a565b005b3480156108ce57600080fd5b506108d7611de2565b6040516108e49190614eaf565b60405180910390f35b3480156108f957600080fd5b50610914600480360381019061090f919061493a565b611e08565b6040516109219190614f6f565b60405180910390f35b34801561093657600080fd5b5061093f611e28565b60405161094c9190615127565b60405180910390f35b34801561096157600080fd5b5061096a611e30565b6040516109779190615127565b60405180910390f35b34801561098c57600080fd5b506109a760048036038101906109a2919061493a565b611e36565b6040516109b49190614eaf565b60405180910390f35b3480156109c957600080fd5b506109d2612394565b6040516109df9190615127565b60405180910390f35b3480156109f457600080fd5b506109fd61239a565b604051610a0a9190615127565b60405180910390f35b348015610a1f57600080fd5b50610a3a6004803603810190610a35919061493a565b6123a0565b604051610a479190615127565b60405180910390f35b348015610a5c57600080fd5b50610a656123e9565b604051610a729190615127565b60405180910390f35b348015610a8757600080fd5b50610aa26004803603810190610a9d9190614b34565b6123ef565b005b348015610ab057600080fd5b50610ab961248e565b604051610ac69190615127565b60405180910390f35b348015610adb57600080fd5b50610ae4612494565b604051610af19190615127565b60405180910390f35b348015610b0657600080fd5b50610b216004803603810190610b1c9190614a27565b61249a565b005b348015610b2f57600080fd5b50610b3861258a565b604051610b459190615127565b60405180910390f35b348015610b5a57600080fd5b50610b63612590565b604051610b709190614eaf565b60405180910390f35b348015610b8557600080fd5b50610ba06004803603810190610b9b9190614b07565b6125b9565b005b348015610bae57600080fd5b50610bb761266b565b005b348015610bc557600080fd5b50610bce6127c0565b604051610bdb9190614fa5565b60405180910390f35b348015610bf057600080fd5b50610bf9612852565b604051610c069190615127565b60405180910390f35b348015610c1b57600080fd5b50610c2461285c565b604051610c319190615127565b60405180910390f35b348015610c4657600080fd5b50610c616004803603810190610c5c9190614a67565b612862565b604051610c6e9190614f6f565b60405180910390f35b348015610c8357600080fd5b50610c8c61292f565b604051610c999190615127565b60405180910390f35b348015610cae57600080fd5b50610cc96004803603810190610cc49190614b07565b612935565b005b348015610cd757600080fd5b50610ce06129e7565b604051610ced9190615127565b60405180910390f35b348015610d0257600080fd5b50610d1d6004803603810190610d18919061493a565b6129ed565b604051610d2a9190614f6f565b60405180910390f35b348015610d3f57600080fd5b50610d5a6004803603810190610d559190614a67565b612a0d565b604051610d679190614f6f565b60405180910390f35b348015610d7c57600080fd5b50610d976004803603810190610d929190614b61565b612a2c565b005b348015610da557600080fd5b50610dae612b0c565b604051610dbb9190615127565b60405180910390f35b348015610dd057600080fd5b50610deb6004803603810190610de69190614b07565b612b12565b005b348015610df957600080fd5b50610e02612bfb565b604051610e0f9190615127565b60405180910390f35b348015610e2457600080fd5b50610e2d612c01565b604051610e3a9190614eaf565b60405180910390f35b348015610e4f57600080fd5b50610e58612c27565b604051610e659190615127565b60405180910390f35b348015610e7a57600080fd5b50610e956004803603810190610e90919061493a565b612c2d565b604051610ea29190614f6f565b60405180910390f35b348015610eb757600080fd5b50610ec0612c4d565b604051610ecd9190615127565b60405180910390f35b348015610ee257600080fd5b50610eeb612c53565b604051610ef89190614eca565b60405180910390f35b348015610f0d57600080fd5b50610f16612c79565b604051610f239190614f6f565b60405180910390f35b348015610f3857600080fd5b50610f41612c8c565b604051610f4e9190615127565b60405180910390f35b348015610f6357600080fd5b50610f7e6004803603810190610f799190614994565b612c92565b604051610f8b9190615127565b60405180910390f35b348015610fa057600080fd5b50610fbb6004803603810190610fb69190614b34565b612d19565b005b348015610fc957600080fd5b50610fe46004803603810190610fdf9190614a27565b612db8565b005b348015610ff257600080fd5b50610ffb612ea8565b6040516110089190615127565b60405180910390f35b34801561101d57600080fd5b5061103860048036038101906110339190614b34565b612eae565b005b34801561104657600080fd5b50611061600480360381019061105c919061493a565b612f4d565b005b34801561106f57600080fd5b5061108a60048036038101906110859190614a27565b61310f565b005b34801561109857600080fd5b506110a16131ff565b6040516110ae9190614f6f565b60405180910390f35b6110bf613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611143906150c7565b60405180910390fd5b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6111af613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611233906150c7565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606003805461128f90615433565b80601f01602080910402602001604051908101604052809291908181526020018280546112bb90615433565b80156113085780601f106112dd57610100808354040283529160200191611308565b820191906000526020600020905b8154815290600101906020018083116112eb57829003601f168201915b5050505050905090565b600061132661131f613270565b8484613278565b6001905092915050565b611338613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc906150c7565b60405180910390fd5b8260158190555081601681905550806017819055506114056017546113f760165460155461321290919063ffffffff16565b61321290919063ffffffff16565b601c81905550505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c54905090565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601e54905090565b611478613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fc906150c7565b60405180910390fd5b82601281905550816013819055508060148190555061154560145461153760135460125461321290919063ffffffff16565b61321290919063ffffffff16565b601b81905550505050565b611558613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc906150c7565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061164d848484613443565b5061170f8461165a613270565b61170a856040518060600160405280602881526020016158d660289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006116c0613270565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc69092919063ffffffff16565b613278565b600190509392505050565b611722613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a6906150c7565b60405180910390fd5b80602360176101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6117f8613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c906150c7565b60405180910390fd5b80601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061191f61190e7f00000000000000000000000000000000000000000000000000000000000000006123a0565b601e54613c2a90919063ffffffff16565b905090565b61192c613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b0906150c7565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600043905090565b6000600560009054906101000a900460ff16905090565b6000611ac5611a29613270565b84611ac08560096000611a3a613270565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321290919063ffffffff16565b613278565b6001905092915050565b611ad7613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b906150c7565b60405180910390fd5b8060218190555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b60106020528060005260406000206000915054906101000a900460ff1681565b602360159054906101000a900460ff1681565b611bc9613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4d906150c7565b60405180910390fd5b80600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ca2613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d26906150c7565b60405180910390fd5b60c98383905010611d3f57600080fd5b60005b83839050811015611ddc578160116000868685818110611d6557611d6461553b565b5b9050602002016020810190611d7a919061493a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080611dd590615465565b9050611d42565b50505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b600042905090565b60185481565b6000611e40613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec4906150c7565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611f1857600080fd5b505afa158015611f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f509190614967565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611fb257600080fd5b505afa158015611fc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fea9190614967565b6040518363ffffffff1660e01b8152600401612007929190614ee5565b60206040518083038186803b15801561201f57600080fd5b505afa158015612033573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120579190614967565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612218578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156120d457600080fd5b505afa1580156120e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210c9190614967565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561216e57600080fd5b505afa158015612182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a69190614967565b6040518363ffffffff1660e01b81526004016121c3929190614ee5565b602060405180830381600087803b1580156121dd57600080fd5b505af11580156121f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122159190614967565b91505b81602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600b6000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b60195481565b600c5481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601f5481565b6123f7613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247b906150c7565b60405180910390fd5b80600f8190555050565b60205481565b601c5481565b6124a2613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461252f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612526906150c7565b60405180910390fd5b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6125c1613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461264e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612645906150c7565b60405180910390fd5b80600760146101000a81548160ff02191690831515021790555050565b612673613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f7906150c7565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6060600480546127cf90615433565b80601f01602080910402602001604051908101604052809291908181526020018280546127fb90615433565b80156128485780601f1061281d57610100808354040283529160200191612848565b820191906000526020600020905b81548152906001019060200180831161282b57829003601f168201915b5050505050905090565b6000602154905090565b601d5481565b600061292561286f613270565b84612920856040518060600160405280602581526020016158fe6025913960096000612899613270565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc69092919063ffffffff16565b613278565b6001905092915050565b600f5481565b61293d613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c1906150c7565b60405180910390fd5b80602360166101000a81548160ff02191690831515021790555050565b601a5481565b60116020528060005260406000206000915054906101000a900460ff1681565b6000612a21612a1a613270565b8484613443565b506001905092915050565b612a34613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab8906150c7565b60405180910390fd5b826018819055508160198190555080601a81905550612b01601a54612af360195460185461321290919063ffffffff16565b61321290919063ffffffff16565b601d81905550505050565b60145481565b612b1a613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9e906150c7565b60405180910390fd5b80602360156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051612bf09190614f6f565b60405180910390a150565b60135481565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b600b6020528060005260406000206000915054906101000a900460ff1681565b60175481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602360169054906101000a900460ff1681565b60125481565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b612d21613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da5906150c7565b60405180910390fd5b80601f8190555050565b612dc0613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e44906150c7565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b5481565b612eb6613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3a906150c7565b60405180910390fd5b8060208190555050565b612f55613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fd9906150c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161304990615027565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b613117613270565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146131a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161319b906150c7565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b602360179054906101000a900460ff1681565b6000808284613221919061523c565b905083811015613266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325d90615067565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156132e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132df90615107565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161334f90615047565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516134369190615127565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156134b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134ab906150e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161351b90614fc7565b60405180910390fd5b600760149054906101000a900460ff166135ae57613540612590565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146135ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135a490615007565b60405180910390fd5b5b602360149054906101000a900460ff16156135d5576135ce848484613c74565b9050613bbf565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561367f5750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561368c5743600c819055505b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561375257600f54600c546136f2919061523c565b4311613751576001600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b61375a612590565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156137c85750613798612590565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156137d8576137d78483613e47565b5b60006137e3306123a0565b9050600060215482101590508080156138095750602360149054906101000a900460ff16155b801561385f5750601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156138775750602360159054906101000a900460ff165b156138a157602360169054906101000a900460ff16156138975760215491505b6138a082613f71565b5b61392a846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc69092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613a105750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613a2457613a1f878787614162565b613a26565b845b9050602360179054906101000a900460ff168015613a8e5750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15613abd57602054613ab182613aa3896123a0565b61321290919063ffffffff16565b1115613abc57600080fd5b5b613b0f81600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321290919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613baf9190615127565b60405180910390a3600193505050505b9392505050565b6000838311158290613c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c059190614fa5565b60405180910390fd5b5060008385613c1d919061531d565b9050809150509392505050565b6000613c6c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613bc6565b905092915050565b6000613cff826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613bc69092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613d9482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321290919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613e349190615127565b60405180910390a3600190509392505050565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ecb90615087565b60405180910390fd5b601f5481111580613f2e5750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b613f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f6490614fe7565b60405180910390fd5b5050565b6001602360146101000a81548160ff0219169083151502179055506000613fca6002613fbc601d54613fae6018548761438990919063ffffffff16565b61440490919063ffffffff16565b61440490919063ffffffff16565b90506000613fe18284613c2a90919063ffffffff16565b9050613fec8161444e565b6000479050600061401d61400c600260185461440490919063ffffffff16565b601d54613c2a90919063ffffffff16565b9050600061405b600261404d8461403f6018548861438990919063ffffffff16565b61440490919063ffffffff16565b61440490919063ffffffff16565b9050600061408683614078601a548761438990919063ffffffff16565b61440490919063ffffffff16565b905060006140af826140a18588613c2a90919063ffffffff16565b613c2a90919063ffffffff16565b905060008111156140e7576140e6600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826146d9565b5b600082111561411d5761411c600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836146d9565b5b60008311801561412d5750600087115b1561413d5761413c8784614724565b5b505050505050506000602360146101000a81548160ff02191690831515021790555050565b60008060009050601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156141ea576141e360646141d5601b548661438990919063ffffffff16565b61440490919063ffffffff16565b9050614268565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614267576142646064614256601c548661438990919063ffffffff16565b61440490919063ffffffff16565b90505b5b600081111561436c576142c381600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321290919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516143639190615127565b60405180910390a35b61437f8184613c2a90919063ffffffff16565b9150509392505050565b60008083141561439c57600090506143fe565b600082846143aa91906152c3565b90508284826143b99190615292565b146143f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016143f0906150a7565b60405180910390fd5b809150505b92915050565b600061444683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614818565b905092915050565b6000600267ffffffffffffffff81111561446b5761446a61556a565b5b6040519080825280602002602001820160405280156144995781602001602082028036833780820191505090505b50905030816000815181106144b1576144b061553b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561455357600080fd5b505afa158015614567573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061458b9190614967565b8160018151811061459f5761459e61553b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061460630602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613278565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161466a959493929190615172565b600060405180830381600087803b15801561468457600080fd5b505af1158015614698573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516146cd929190615142565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561471f573d6000803e3d6000fd5b505050565b61475130602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684613278565b602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061479d612590565b426040518863ffffffff1660e01b81526004016147bf96959493929190614f0e565b6060604051808303818588803b1580156147d857600080fd5b505af11580156147ec573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906148119190614bb4565b5050505050565b6000808311829061485f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016148569190614fa5565b60405180910390fd5b506000838561486e9190615292565b9050809150509392505050565b60008135905061488a81615890565b92915050565b60008151905061489f81615890565b92915050565b60008083601f8401126148bb576148ba61559e565b5b8235905067ffffffffffffffff8111156148d8576148d7615599565b5b6020830191508360208202830111156148f4576148f36155a3565b5b9250929050565b60008135905061490a816158a7565b92915050565b60008135905061491f816158be565b92915050565b600081519050614934816158be565b92915050565b6000602082840312156149505761494f6155ad565b5b600061495e8482850161487b565b91505092915050565b60006020828403121561497d5761497c6155ad565b5b600061498b84828501614890565b91505092915050565b600080604083850312156149ab576149aa6155ad565b5b60006149b98582860161487b565b92505060206149ca8582860161487b565b9150509250929050565b6000806000606084860312156149ed576149ec6155ad565b5b60006149fb8682870161487b565b9350506020614a0c8682870161487b565b9250506040614a1d86828701614910565b9150509250925092565b60008060408385031215614a3e57614a3d6155ad565b5b6000614a4c8582860161487b565b9250506020614a5d858286016148fb565b9150509250929050565b60008060408385031215614a7e57614a7d6155ad565b5b6000614a8c8582860161487b565b9250506020614a9d85828601614910565b9150509250929050565b600080600060408486031215614ac057614abf6155ad565b5b600084013567ffffffffffffffff811115614ade57614add6155a8565b5b614aea868287016148a5565b93509350506020614afd868287016148fb565b9150509250925092565b600060208284031215614b1d57614b1c6155ad565b5b6000614b2b848285016148fb565b91505092915050565b600060208284031215614b4a57614b496155ad565b5b6000614b5884828501614910565b91505092915050565b600080600060608486031215614b7a57614b796155ad565b5b6000614b8886828701614910565b9350506020614b9986828701614910565b9250506040614baa86828701614910565b9150509250925092565b600080600060608486031215614bcd57614bcc6155ad565b5b6000614bdb86828701614925565b9350506020614bec86828701614925565b9250506040614bfd86828701614925565b9150509250925092565b6000614c138383614c2e565b60208301905092915050565b614c2881615363565b82525050565b614c3781615351565b82525050565b614c4681615351565b82525050565b6000614c57826151f7565b614c61818561521a565b9350614c6c836151e7565b8060005b83811015614c9d578151614c848882614c07565b9750614c8f8361520d565b925050600181019050614c70565b5085935050505092915050565b614cb381615375565b82525050565b614cc2816153b8565b82525050565b614cd1816153ca565b82525050565b6000614ce282615202565b614cec818561522b565b9350614cfc818560208601615400565b614d05816155b2565b840191505092915050565b6000614d1d60238361522b565b9150614d28826155c3565b604082019050919050565b6000614d4060118361522b565b9150614d4b82615612565b602082019050919050565b6000614d63603f8361522b565b9150614d6e8261563b565b604082019050919050565b6000614d8660268361522b565b9150614d918261568a565b604082019050919050565b6000614da960228361522b565b9150614db4826156d9565b604082019050919050565b6000614dcc601b8361522b565b9150614dd782615728565b602082019050919050565b6000614def60138361522b565b9150614dfa82615751565b602082019050919050565b6000614e1260218361522b565b9150614e1d8261577a565b604082019050919050565b6000614e3560208361522b565b9150614e40826157c9565b602082019050919050565b6000614e5860258361522b565b9150614e63826157f2565b604082019050919050565b6000614e7b60248361522b565b9150614e8682615841565b604082019050919050565b614e9a816153a1565b82525050565b614ea9816153ab565b82525050565b6000602082019050614ec46000830184614c3d565b92915050565b6000602082019050614edf6000830184614c1f565b92915050565b6000604082019050614efa6000830185614c3d565b614f076020830184614c3d565b9392505050565b600060c082019050614f236000830189614c3d565b614f306020830188614e91565b614f3d6040830187614cc8565b614f4a6060830186614cc8565b614f576080830185614c3d565b614f6460a0830184614e91565b979650505050505050565b6000602082019050614f846000830184614caa565b92915050565b6000602082019050614f9f6000830184614cb9565b92915050565b60006020820190508181036000830152614fbf8184614cd7565b905092915050565b60006020820190508181036000830152614fe081614d10565b9050919050565b6000602082019050818103600083015261500081614d33565b9050919050565b6000602082019050818103600083015261502081614d56565b9050919050565b6000602082019050818103600083015261504081614d79565b9050919050565b6000602082019050818103600083015261506081614d9c565b9050919050565b6000602082019050818103600083015261508081614dbf565b9050919050565b600060208201905081810360008301526150a081614de2565b9050919050565b600060208201905081810360008301526150c081614e05565b9050919050565b600060208201905081810360008301526150e081614e28565b9050919050565b6000602082019050818103600083015261510081614e4b565b9050919050565b6000602082019050818103600083015261512081614e6e565b9050919050565b600060208201905061513c6000830184614e91565b92915050565b60006040820190506151576000830185614e91565b81810360208301526151698184614c4c565b90509392505050565b600060a0820190506151876000830188614e91565b6151946020830187614cc8565b81810360408301526151a68186614c4c565b90506151b56060830185614c3d565b6151c26080830184614e91565b9695505050505050565b60006020820190506151e16000830184614ea0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000615247826153a1565b9150615252836153a1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115615287576152866154ae565b5b828201905092915050565b600061529d826153a1565b91506152a8836153a1565b9250826152b8576152b76154dd565b5b828204905092915050565b60006152ce826153a1565b91506152d9836153a1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615312576153116154ae565b5b828202905092915050565b6000615328826153a1565b9150615333836153a1565b925082821015615346576153456154ae565b5b828203905092915050565b600061535c82615381565b9050919050565b600061536e82615381565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006153c3826153dc565b9050919050565b60006153d5826153a1565b9050919050565b60006153e7826153ee565b9050919050565b60006153f982615381565b9050919050565b60005b8381101561541e578082015181840152602081019050615403565b8381111561542d576000848401525b50505050565b6000600282049050600182168061544b57607f821691505b6020821081141561545f5761545e61550c565b5b50919050565b6000615470826153a1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156154a3576154a26154ae565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f46726f6d2063616e6e6f7420626520626f742100000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61589981615351565b81146158a457600080fd5b50565b6158b081615375565b81146158bb57600080fd5b50565b6158c7816153a1565b81146158d257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c8daa01ebf56d9df8f8f036e762c2de174be28ec29fdf810ed6a4c99727e9d0264736f6c63430008070033