61010060405260008055600060085573084b1c3c81545d370f3634392de611caabff814873ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff168152506000601060156101000a81548160ff021916908360038111156200007e576200007d620002f0565b5b02179055503480156200009057600080fd5b50604051620063a9380380620063a98339818101604052810190620000b691906200055c565b88888560008111620000ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000f690620006da565b60405180910390fd5b82600190816200011091906200093d565b5081600290816200012291906200093d565b5080608081815250505050506200014e620001426200022260201b60201c565b6200022a60201b60201c565b86600d8190555085600c8190555084600e8190555083600f8190555082601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505050505050505050505062000a24565b600033905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000388826200033d565b810181811067ffffffffffffffff82111715620003aa57620003a96200034e565b5b80604052505050565b6000620003bf6200031f565b9050620003cd82826200037d565b919050565b600067ffffffffffffffff821115620003f057620003ef6200034e565b5b620003fb826200033d565b9050602081019050919050565b60005b83811015620004285780820151818401526020810190506200040b565b8381111562000438576000848401525b50505050565b6000620004556200044f84620003d2565b620003b3565b90508281526020810184848401111562000474576200047362000338565b5b6200048184828562000408565b509392505050565b600082601f830112620004a157620004a062000333565b5b8151620004b38482602086016200043e565b91505092915050565b6000819050919050565b620004d181620004bc565b8114620004dd57600080fd5b50565b600081519050620004f181620004c6565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200052482620004f7565b9050919050565b620005368162000517565b81146200054257600080fd5b50565b60008151905062000556816200052b565b92915050565b60008060008060008060008060006101208a8c03121562000582576200058162000329565b5b60008a015167ffffffffffffffff811115620005a357620005a26200032e565b5b620005b18c828d0162000489565b99505060208a015167ffffffffffffffff811115620005d557620005d46200032e565b5b620005e38c828d0162000489565b9850506040620005f68c828d01620004e0565b9750506060620006098c828d01620004e0565b96505060806200061c8c828d01620004e0565b95505060a06200062f8c828d01620004e0565b94505060c0620006428c828d0162000545565b93505060e0620006558c828d0162000545565b925050610100620006698c828d0162000545565b9150509295985092959850929598565b600082825260208201905092915050565b7f6200000000000000000000000000000000000000000000000000000000000000600082015250565b6000620006c260018362000679565b9150620006cf826200068a565b602082019050919050565b60006020820190508181036000830152620006f581620006b3565b9050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200074f57607f821691505b60208210810362000765576200076462000707565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000790565b620007db868362000790565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200081e620008186200081284620004bc565b620007f3565b620004bc565b9050919050565b6000819050919050565b6200083a83620007fd565b62000852620008498262000825565b8484546200079d565b825550505050565b600090565b620008696200085a565b620008768184846200082f565b505050565b5b818110156200089e57620008926000826200085f565b6001810190506200087c565b5050565b601f821115620008ed57620008b7816200076b565b620008c28462000780565b81016020851015620008d2578190505b620008ea620008e18562000780565b8301826200087b565b50505b505050565b600082821c905092915050565b60006200091260001984600802620008f2565b1980831691505092915050565b60006200092d8383620008ff565b9150826002028217905092915050565b6200094882620006fc565b67ffffffffffffffff8111156200096457620009636200034e565b5b62000970825462000736565b6200097d828285620008a2565b600060209050601f831160018114620009b55760008415620009a0578287015190505b620009ac85826200091f565b86555062000a1c565b601f198416620009c5866200076b565b60005b82811015620009ef57848901518255600182019150602085019450602081019050620009c8565b8683101562000a0f578489015162000a0b601f891682620008ff565b8355505b6001600288020188555050505b505050505050565b60805160a05160c05160e05161591a62000a8f60003960006124bc015260008181610ac0015261211b015260008181610af701528181610b8a01528181612152015281816121e5015261255c015260008181612e7601528181612e9f0152613507015261591a6000f3fe60806040526004361061023f5760003560e01c806368855b641161012e578063a22cb465116100ab578063dfb5259c1161006f578063dfb5259c14610873578063e5a6b10f1461089c578063e985e9c5146108c7578063efd0cbf914610904578063f2fde38b146109205761025c565b8063a22cb4651461079d578063a9cbd06d146107c6578063b88d4fde146107e2578063c87b56dd1461080b578063d7224ba0146108485761025c565b80637cac2602116100f25780637cac2602146106ca5780638ad433ac146106f35780638da5cb5b1461071c57806395d89b41146107475780639da3f8fd146107725761025c565b806368855b64146105e35780636c0360eb1461060e5780636c82054b1461063957806370a0823114610676578063715018a6146106b35761025c565b80633ccfd60b116101bc57806355f804b31161018057806355f804b3146104fc5780635c975abb146105255780636352211e146105505780636373a6b11461058d5780636817c76c146105b85761025c565b80633ccfd60b1461042b57806342842e0e1461044257806344fead9e1461046b57806349df728c146104965780634f6ccce7146104bf5761025c565b806318160ddd1161020357806318160ddd1461035857806323b872dd146103835780632f745c59146103ac578063333171bb146103e9578063386b7691146104005761025c565b806301ffc9a71461026157806306fdde031461029e578063081812fc146102c9578063095ea7b314610306578063109695231461032f5761025c565b3661025c5761025a600c54346102559190613e05565b610949565b005b600080fd5b34801561026d57600080fd5b5061028860048036038101906102839190613ea2565b610d12565b6040516102959190613eea565b60405180910390f35b3480156102aa57600080fd5b506102b3610e5c565b6040516102c09190613f9e565b60405180910390f35b3480156102d557600080fd5b506102f060048036038101906102eb9190613fec565b610eee565b6040516102fd919061405a565b60405180910390f35b34801561031257600080fd5b5061032d600480360381019061032891906140a1565b610f73565b005b34801561033b57600080fd5b5061035660048036038101906103519190614216565b61108b565b005b34801561036457600080fd5b5061036d61114f565b60405161037a919061426e565b60405180910390f35b34801561038f57600080fd5b506103aa60048036038101906103a59190614289565b611158565b005b3480156103b857600080fd5b506103d360048036038101906103ce91906140a1565b611168565b6040516103e0919061426e565b60405180910390f35b3480156103f557600080fd5b506103fe611364565b005b34801561040c57600080fd5b5061041561140c565b604051610422919061426e565b60405180910390f35b34801561043757600080fd5b50610440611412565b005b34801561044e57600080fd5b5061046960048036038101906104649190614289565b6114dd565b005b34801561047757600080fd5b506104806114fd565b60405161048d919061426e565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b891906142dc565b611503565b005b3480156104cb57600080fd5b506104e660048036038101906104e19190613fec565b61167a565b6040516104f3919061426e565b60405180910390f35b34801561050857600080fd5b50610523600480360381019061051e9190614216565b6116cd565b005b34801561053157600080fd5b5061053a611755565b6040516105479190613eea565b60405180910390f35b34801561055c57600080fd5b5061057760048036038101906105729190613fec565b611768565b604051610584919061405a565b60405180910390f35b34801561059957600080fd5b506105a261177e565b6040516105af9190613f9e565b60405180910390f35b3480156105c457600080fd5b506105cd61180c565b6040516105da919061426e565b60405180910390f35b3480156105ef57600080fd5b506105f8611812565b604051610605919061426e565b60405180910390f35b34801561061a57600080fd5b50610623611818565b6040516106309190613f9e565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b9190614309565b6118aa565b60405161066d9190614362565b60405180910390f35b34801561068257600080fd5b5061069d600480360381019061069891906142dc565b6118dd565b6040516106aa919061426e565b60405180910390f35b3480156106bf57600080fd5b506106c86119c5565b005b3480156106d657600080fd5b506106f160048036038101906106ec91906143a2565b611a4d565b005b3480156106ff57600080fd5b5061071a60048036038101906107159190613fec565b611b27565b005b34801561072857600080fd5b50610731611c7d565b60405161073e919061405a565b60405180910390f35b34801561075357600080fd5b5061075c611ca7565b6040516107699190613f9e565b60405180910390f35b34801561077e57600080fd5b50610787611d39565b6040516107949190614446565b60405180910390f35b3480156107a957600080fd5b506107c460048036038101906107bf919061448d565b611d4c565b005b6107e060048036038101906107db9190614559565b611ecc565b005b3480156107ee57600080fd5b506108096004803603810190610804919061466e565b612334565b005b34801561081757600080fd5b50610832600480360381019061082d9190613fec565b612390565b60405161083f9190613f9e565b60405180910390f35b34801561085457600080fd5b5061085d612438565b60405161086a919061426e565b60405180910390f35b34801561087f57600080fd5b5061089a60048036038101906108959190614216565b61243e565b005b3480156108a857600080fd5b506108b161255a565b6040516108be919061405a565b60405180910390f35b3480156108d357600080fd5b506108ee60048036038101906108e99190614309565b61257e565b6040516108fb9190613eea565b60405180910390f35b61091e60048036038101906109199190613fec565b610949565b005b34801561092c57600080fd5b50610947600480360381019061094291906142dc565b612612565b005b6002600381111561095d5761095c6143cf565b5b601060159054906101000a900460ff16600381111561097f5761097e6143cf565b5b1480156109995750601060149054906101000a900460ff16155b6109d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cf9061473d565b60405180910390fd5b600d54816109e461114f565b6109ee919061475d565b1115610a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a26906147ff565b60405180910390fd5b600f5481601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a7d919061475d565b1115610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab59061486b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1603610b86573481600c54610b40919061488b565b1115610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7890614931565b60405180910390fd5b610c3b565b60007f000000000000000000000000000000000000000000000000000000000000000090508073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330600c5486610bd7919061488b565b6040518463ffffffff1660e01b8152600401610bf593929190614951565b6020604051808303816000875af1158015610c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c38919061499d565b50505b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c86919061475d565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cd33382612709565b600d54610cde61114f565b03610d0f576003601060156101000a81548160ff02191690836003811115610d0957610d086143cf565b5b02179055505b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ddd57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610e4557507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610e555750610e5482612727565b5b9050919050565b606060018054610e6b906149f9565b80601f0160208091040260200160405190810160405280929190818152602001828054610e97906149f9565b8015610ee45780601f10610eb957610100808354040283529160200191610ee4565b820191906000526020600020905b815481529060010190602001808311610ec757829003601f168201915b5050505050905090565b6000610ef982612791565b610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f90614931565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610f7e82611768565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe590614a76565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661100d61279e565b73ffffffffffffffffffffffffffffffffffffffff16148061103c575061103b8161103661279e565b61257e565b5b61107b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107290614931565b60405180910390fd5b6110868383836127a6565b505050565b61109361279e565b73ffffffffffffffffffffffffffffffffffffffff166110b1611c7d565b73ffffffffffffffffffffffffffffffffffffffff1614611107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fe90614ae2565b60405180910390fd5b600b60009054906101000a900460ff161561112157600080fd5b80600a90816111309190614cae565b506001600b60006101000a81548160ff02191690831515021790555050565b60008054905090565b611163838383612858565b505050565b6000611173836118dd565b82106111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab90614dcc565b60405180910390fd5b60006111be61114f565b905060008060005b83811015611322576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146112b857806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130e578684036112ff57819550505050505061135e565b838061130a90614dec565b9450505b50808061131a90614dec565b9150506111c6565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135590614e80565b60405180910390fd5b92915050565b61136c61279e565b73ffffffffffffffffffffffffffffffffffffffff1661138a611c7d565b73ffffffffffffffffffffffffffffffffffffffff16146113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790614ae2565b60405180910390fd5b601060149054906101000a900460ff1615601060146101000a81548160ff021916908315150217905550565b600d5481565b61141a61279e565b73ffffffffffffffffffffffffffffffffffffffff16611438611c7d565b73ffffffffffffffffffffffffffffffffffffffff161461148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590614ae2565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156114d9573d6000803e3d6000fd5b5050565b6114f883838360405180602001604052806000815250612334565b505050565b600f5481565b61150b61279e565b73ffffffffffffffffffffffffffffffffffffffff16611529611c7d565b73ffffffffffffffffffffffffffffffffffffffff161461157f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157690614ae2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016115d5919061405a565b602060405180830381865afa1580156115f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116169190614eb5565b6040518363ffffffff1660e01b8152600401611633929190614ee2565b6020604051808303816000875af1158015611652573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611676919061499d565b5050565b600061168461114f565b82106116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bc90614f57565b60405180910390fd5b819050919050565b6116d561279e565b73ffffffffffffffffffffffffffffffffffffffff166116f3611c7d565b73ffffffffffffffffffffffffffffffffffffffff1614611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090614ae2565b60405180910390fd5b61175281612e0f565b50565b601060149054906101000a900460ff1681565b600061177382612e22565b600001519050919050565b600a805461178b906149f9565b80601f01602080910402602001604051908101604052809291908181526020018280546117b7906149f9565b80156118045780601f106117d957610100808354040283529160200191611804565b820191906000526020600020905b8154815290600101906020018083116117e757829003601f168201915b505050505081565b600c5481565b600e5481565b606060038054611827906149f9565b80601f0160208091040260200160405190810160405280929190818152602001828054611853906149f9565b80156118a05780601f10611875576101008083540402835291602001916118a0565b820191906000526020600020905b81548152906001019060200180831161188357829003601f168201915b5050505050905090565b600082826040516020016118bf929190614fbf565b60405160208183030381529060405280519060200120905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361194d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194490615037565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b6119cd61279e565b73ffffffffffffffffffffffffffffffffffffffff166119eb611c7d565b73ffffffffffffffffffffffffffffffffffffffff1614611a41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3890614ae2565b60405180910390fd5b611a4b6000613025565b565b611a5561279e565b73ffffffffffffffffffffffffffffffffffffffff16611a73611c7d565b73ffffffffffffffffffffffffffffffffffffffff1614611ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac090614ae2565b60405180910390fd5b60006003811115611add57611adc6143cf565b5b816003811115611af057611aef6143cf565b5b03611afa57600080fd5b80601060156101000a81548160ff02191690836003811115611b1f57611b1e6143cf565b5b021790555050565b611b2f61279e565b73ffffffffffffffffffffffffffffffffffffffff16611b4d611c7d565b73ffffffffffffffffffffffffffffffffffffffff1614611ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9a90614ae2565b60405180910390fd5b60006003811115611bb757611bb66143cf565b5b601060159054906101000a900460ff166003811115611bd957611bd86143cf565b5b14611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c109061473d565b60405180910390fd5b600d5481611c2561114f565b611c2f919061475d565b1115611c70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c67906147ff565b60405180910390fd5b611c7a3382612709565b50565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054611cb6906149f9565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce2906149f9565b8015611d2f5780601f10611d0457610100808354040283529160200191611d2f565b820191906000526020600020905b815481529060010190602001808311611d1257829003601f168201915b5050505050905090565b601060159054906101000a900460ff1681565b611d5461279e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db890614931565b60405180910390fd5b8060076000611dce61279e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611e7b61279e565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ec09190613eea565b60405180910390a35050565b60016003811115611ee057611edf6143cf565b5b601060159054906101000a900460ff166003811115611f0257611f016143cf565b5b148015611f1c5750601060149054906101000a900460ff16155b611f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f529061473d565b60405180910390fd5b600d5481611f6761114f565b611f71919061475d565b1115611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa9906147ff565b60405180910390fd5b83611fbd33306118aa565b14611ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff4906150a3565b60405180910390fd5b61204b8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506130eb565b61208a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120819061510f565b60405180910390fd5b600f5481601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d8919061475d565b1115612119576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121109061486b565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16036121e1573481600e5461219b919061488b565b11156121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d390614931565b60405180910390fd5b612296565b60007f000000000000000000000000000000000000000000000000000000000000000090508073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330600e5486612232919061488b565b6040518463ffffffff1660e01b815260040161225093929190614951565b6020604051808303816000875af115801561226f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612293919061499d565b50505b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e1919061475d565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061232e3382612709565b50505050565b61233f848484612858565b61234b84848484613160565b61238a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123819061517b565b60405180910390fd5b50505050565b606061239b82612791565b6123da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d19061517b565b60405180910390fd5b6000600380546123e9906149f9565b9050116124055760405180602001604052806000815250612431565b6003612410836132e7565b60405160200161242192919061525a565b6040516020818303038152906040525b9050919050565b60085481565b61244661279e565b73ffffffffffffffffffffffffffffffffffffffff16612464611c7d565b73ffffffffffffffffffffffffffffffffffffffff16146124ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b190614ae2565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c47f0027826040518263ffffffff1660e01b81526004016125139190613f9e565b6020604051808303816000875af1158015612532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125569190615293565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61261a61279e565b73ffffffffffffffffffffffffffffffffffffffff16612638611c7d565b73ffffffffffffffffffffffffffffffffffffffff161461268e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268590614ae2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036126fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f490615332565b60405180910390fd5b61270681613025565b50565b612723828260405180602001604052806000815250613447565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000805482109050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600061286382612e22565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff1661288a61279e565b73ffffffffffffffffffffffffffffffffffffffff1614806128e657506128af61279e565b73ffffffffffffffffffffffffffffffffffffffff166128ce84610eee565b73ffffffffffffffffffffffffffffffffffffffff16145b80612902575061290182600001516128fc61279e565b61257e565b5b905080612944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293b90614931565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16146129b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ad90614a76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1c90615037565b60405180910390fd5b612a328585856001613925565b612a4260008484600001516127a6565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff16612ab0919061536e565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff16612b5491906153a2565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050506000600184612c5a919061475d565b9050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612d9f57612ccf81612791565b15612d9e576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612e07868686600161392b565b505050505050565b8060039081612e1e9190614cae565b5050565b612e2a613d63565b612e3382612791565b612e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6990615434565b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000008310612ed65760017f000000000000000000000000000000000000000000000000000000000000000084612ec99190615454565b612ed3919061475d565b90505b60008390505b818110612fe4576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614612fd057809350505050613020565b508080612fdc90615488565b915050612edc565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161301790614a76565b60405180910390fd5b919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000613108826130fa85613931565b61396190919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60006131818473ffffffffffffffffffffffffffffffffffffffff16613988565b156132da578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026131aa61279e565b8786866040518563ffffffff1660e01b81526004016131cc9493929190615506565b6020604051808303816000875af192505050801561320857506040513d601f19601f820116820180604052508101906132059190615567565b60015b61328a573d8060008114613238576040519150601f19603f3d011682016040523d82523d6000602084013e61323d565b606091505b506000815103613282576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132799061517b565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506132df565b600190505b949350505050565b60606000820361332e576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613442565b600082905060005b6000821461336057808061334990614dec565b915050600a826133599190613e05565b9150613336565b60008167ffffffffffffffff81111561337c5761337b6140eb565b5b6040519080825280601f01601f1916602001820160405280156133ae5781602001600182028036833780820191505090505b5090505b6000851461343b576001826133c79190615454565b9150600a856133d69190615594565b60306133e2919061475d565b60f81b8183815181106133f8576133f76155c5565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856134349190613e05565b94506133b2565b8093505050505b919050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036134bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134b390615037565b60405180910390fd5b6134c581612791565b15613505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134fc90614931565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000831115613568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161355f906147ff565b60405180910390fd5b6135756000858386613925565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050604051806040016040528085836000015161367291906153a2565b6fffffffffffffffffffffffffffffffff16815260200185836020015161369991906153a2565b6fffffffffffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b8581101561390857818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46138a86000888488613160565b6138e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138de9061517b565b60405180910390fd5b81806138f290614dec565b925050808061390090614dec565b915050613837565b508060008190555061391d600087858861392b565b505050505050565b50505050565b50505050565b6000816040516020016139449190615661565b604051602081830303815290604052805190602001209050919050565b600080600061397085856139ab565b9150915061397d81613a2c565b819250505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008060418351036139ec5760008060006020860151925060408601519150606086015160001a90506139e087828585613bf8565b94509450505050613a25565b6040835103613a1c576000806020850151915060408501519050613a11868383613d04565b935093505050613a25565b60006002915091505b9250929050565b60006004811115613a4057613a3f6143cf565b5b816004811115613a5357613a526143cf565b5b0315613bf55760016004811115613a6d57613a6c6143cf565b5b816004811115613a8057613a7f6143cf565b5b03613ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ab7906156d3565b60405180910390fd5b60026004811115613ad457613ad36143cf565b5b816004811115613ae757613ae66143cf565b5b03613b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b1e9061573f565b60405180910390fd5b60036004811115613b3b57613b3a6143cf565b5b816004811115613b4e57613b4d6143cf565b5b03613b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b85906157d1565b60405180910390fd5b600480811115613ba157613ba06143cf565b5b816004811115613bb457613bb36143cf565b5b03613bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613beb90615863565b60405180910390fd5b5b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115613c33576000600391509150613cfb565b601b8560ff1614158015613c4b5750601c8560ff1614155b15613c5d576000600491509150613cfb565b600060018787878760405160008152602001604052604051613c82949392919061589f565b6020604051602081039080840390855afa158015613ca4573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613cf257600060019250925050613cfb565b80600092509250505b94509492505050565b60008060007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b841690506000601b60ff8660001c901c613d47919061475d565b9050613d5587828885613bf8565b935093505050935093915050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e1082613d9d565b9150613e1b83613d9d565b925082613e2b57613e2a613da7565b5b828204905092915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613e7f81613e4a565b8114613e8a57600080fd5b50565b600081359050613e9c81613e76565b92915050565b600060208284031215613eb857613eb7613e40565b5b6000613ec684828501613e8d565b91505092915050565b60008115159050919050565b613ee481613ecf565b82525050565b6000602082019050613eff6000830184613edb565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613f3f578082015181840152602081019050613f24565b83811115613f4e576000848401525b50505050565b6000601f19601f8301169050919050565b6000613f7082613f05565b613f7a8185613f10565b9350613f8a818560208601613f21565b613f9381613f54565b840191505092915050565b60006020820190508181036000830152613fb88184613f65565b905092915050565b613fc981613d9d565b8114613fd457600080fd5b50565b600081359050613fe681613fc0565b92915050565b60006020828403121561400257614001613e40565b5b600061401084828501613fd7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061404482614019565b9050919050565b61405481614039565b82525050565b600060208201905061406f600083018461404b565b92915050565b61407e81614039565b811461408957600080fd5b50565b60008135905061409b81614075565b92915050565b600080604083850312156140b8576140b7613e40565b5b60006140c68582860161408c565b92505060206140d785828601613fd7565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61412382613f54565b810181811067ffffffffffffffff82111715614142576141416140eb565b5b80604052505050565b6000614155613e36565b9050614161828261411a565b919050565b600067ffffffffffffffff821115614181576141806140eb565b5b61418a82613f54565b9050602081019050919050565b82818337600083830152505050565b60006141b96141b484614166565b61414b565b9050828152602081018484840111156141d5576141d46140e6565b5b6141e0848285614197565b509392505050565b600082601f8301126141fd576141fc6140e1565b5b813561420d8482602086016141a6565b91505092915050565b60006020828403121561422c5761422b613e40565b5b600082013567ffffffffffffffff81111561424a57614249613e45565b5b614256848285016141e8565b91505092915050565b61426881613d9d565b82525050565b6000602082019050614283600083018461425f565b92915050565b6000806000606084860312156142a2576142a1613e40565b5b60006142b08682870161408c565b93505060206142c18682870161408c565b92505060406142d286828701613fd7565b9150509250925092565b6000602082840312156142f2576142f1613e40565b5b60006143008482850161408c565b91505092915050565b600080604083850312156143205761431f613e40565b5b600061432e8582860161408c565b925050602061433f8582860161408c565b9150509250929050565b6000819050919050565b61435c81614349565b82525050565b60006020820190506143776000830184614353565b92915050565b6004811061438a57600080fd5b50565b60008135905061439c8161437d565b92915050565b6000602082840312156143b8576143b7613e40565b5b60006143c68482850161438d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811061440f5761440e6143cf565b5b50565b6000819050614420826143fe565b919050565b600061443082614412565b9050919050565b61444081614425565b82525050565b600060208201905061445b6000830184614437565b92915050565b61446a81613ecf565b811461447557600080fd5b50565b60008135905061448781614461565b92915050565b600080604083850312156144a4576144a3613e40565b5b60006144b28582860161408c565b92505060206144c385828601614478565b9150509250929050565b6144d681614349565b81146144e157600080fd5b50565b6000813590506144f3816144cd565b92915050565b600080fd5b600080fd5b60008083601f840112614519576145186140e1565b5b8235905067ffffffffffffffff811115614536576145356144f9565b5b602083019150836001820283011115614552576145516144fe565b5b9250929050565b6000806000806060858703121561457357614572613e40565b5b6000614581878288016144e4565b945050602085013567ffffffffffffffff8111156145a2576145a1613e45565b5b6145ae87828801614503565b935093505060406145c187828801613fd7565b91505092959194509250565b600067ffffffffffffffff8211156145e8576145e76140eb565b5b6145f182613f54565b9050602081019050919050565b600061461161460c846145cd565b61414b565b90508281526020810184848401111561462d5761462c6140e6565b5b614638848285614197565b509392505050565b600082601f830112614655576146546140e1565b5b81356146658482602086016145fe565b91505092915050565b6000806000806080858703121561468857614687613e40565b5b60006146968782880161408c565b94505060206146a78782880161408c565b93505060406146b887828801613fd7565b925050606085013567ffffffffffffffff8111156146d9576146d8613e45565b5b6146e587828801614640565b91505092959194509250565b7f7300000000000000000000000000000000000000000000000000000000000000600082015250565b6000614727600183613f10565b9150614732826146f1565b602082019050919050565b600060208201905081810360008301526147568161471a565b9050919050565b600061476882613d9d565b915061477383613d9d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156147a8576147a7613dd6565b5b828201905092915050565b7f6d00000000000000000000000000000000000000000000000000000000000000600082015250565b60006147e9600183613f10565b91506147f4826147b3565b602082019050919050565b60006020820190508181036000830152614818816147dc565b9050919050565b7f6c00000000000000000000000000000000000000000000000000000000000000600082015250565b6000614855600183613f10565b91506148608261481f565b602082019050919050565b6000602082019050818103600083015261488481614848565b9050919050565b600061489682613d9d565b91506148a183613d9d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156148da576148d9613dd6565b5b828202905092915050565b7f6100000000000000000000000000000000000000000000000000000000000000600082015250565b600061491b600183613f10565b9150614926826148e5565b602082019050919050565b6000602082019050818103600083015261494a8161490e565b9050919050565b6000606082019050614966600083018661404b565b614973602083018561404b565b614980604083018461425f565b949350505050565b60008151905061499781614461565b92915050565b6000602082840312156149b3576149b2613e40565b5b60006149c184828501614988565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614a1157607f821691505b602082108103614a2457614a236149ca565b5b50919050565b7f6f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000614a60600183613f10565b9150614a6b82614a2a565b602082019050919050565b60006020820190508181036000830152614a8f81614a53565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614acc602083613f10565b9150614ad782614a96565b602082019050919050565b60006020820190508181036000830152614afb81614abf565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302614b647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614b27565b614b6e8683614b27565b95508019841693508086168417925050509392505050565b6000819050919050565b6000614bab614ba6614ba184613d9d565b614b86565b613d9d565b9050919050565b6000819050919050565b614bc583614b90565b614bd9614bd182614bb2565b848454614b34565b825550505050565b600090565b614bee614be1565b614bf9818484614bbc565b505050565b5b81811015614c1d57614c12600082614be6565b600181019050614bff565b5050565b601f821115614c6257614c3381614b02565b614c3c84614b17565b81016020851015614c4b578190505b614c5f614c5785614b17565b830182614bfe565b50505b505050565b600082821c905092915050565b6000614c8560001984600802614c67565b1980831691505092915050565b6000614c9e8383614c74565b9150826002028217905092915050565b614cb782613f05565b67ffffffffffffffff811115614cd057614ccf6140eb565b5b614cda82546149f9565b614ce5828285614c21565b600060209050601f831160018114614d185760008415614d06578287015190505b614d108582614c92565b865550614d78565b601f198416614d2686614b02565b60005b82811015614d4e57848901518255600182019150602085019450602081019050614d29565b86831015614d6b5784890151614d67601f891682614c74565b8355505b6001600288020188555050505b505050505050565b7f6200000000000000000000000000000000000000000000000000000000000000600082015250565b6000614db6600183613f10565b9150614dc182614d80565b602082019050919050565b60006020820190508181036000830152614de581614da9565b9050919050565b6000614df782613d9d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e2957614e28613dd6565b5b600182019050919050565b7f7500000000000000000000000000000000000000000000000000000000000000600082015250565b6000614e6a600183613f10565b9150614e7582614e34565b602082019050919050565b60006020820190508181036000830152614e9981614e5d565b9050919050565b600081519050614eaf81613fc0565b92915050565b600060208284031215614ecb57614eca613e40565b5b6000614ed984828501614ea0565b91505092915050565b6000604082019050614ef7600083018561404b565b614f04602083018461425f565b9392505050565b7f6700000000000000000000000000000000000000000000000000000000000000600082015250565b6000614f41600183613f10565b9150614f4c82614f0b565b602082019050919050565b60006020820190508181036000830152614f7081614f34565b9050919050565b60008160601b9050919050565b6000614f8f82614f77565b9050919050565b6000614fa182614f84565b9050919050565b614fb9614fb482614039565b614f96565b82525050565b6000614fcb8285614fa8565b601482019150614fdb8284614fa8565b6014820191508190509392505050565b7f3000000000000000000000000000000000000000000000000000000000000000600082015250565b6000615021600183613f10565b915061502c82614feb565b602082019050919050565b6000602082019050818103600083015261505081615014565b9050919050565b7f6900000000000000000000000000000000000000000000000000000000000000600082015250565b600061508d600183613f10565b915061509882615057565b602082019050919050565b600060208201905081810360008301526150bc81615080565b9050919050565b7f6600000000000000000000000000000000000000000000000000000000000000600082015250565b60006150f9600183613f10565b9150615104826150c3565b602082019050919050565b60006020820190508181036000830152615128816150ec565b9050919050565b7f7a00000000000000000000000000000000000000000000000000000000000000600082015250565b6000615165600183613f10565b91506151708261512f565b602082019050919050565b6000602082019050818103600083015261519481615158565b9050919050565b600081905092915050565b600081546151b3816149f9565b6151bd818661519b565b945060018216600081146151d857600181146151ed57615220565b60ff1983168652811515820286019350615220565b6151f685614b02565b60005b83811015615218578154818901526001820191506020810190506151f9565b838801955050505b50505092915050565b600061523482613f05565b61523e818561519b565b935061524e818560208601613f21565b80840191505092915050565b600061526682856151a6565b91506152728284615229565b91508190509392505050565b60008151905061528d816144cd565b92915050565b6000602082840312156152a9576152a8613e40565b5b60006152b78482850161527e565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061531c602683613f10565b9150615327826152c0565b604082019050919050565b6000602082019050818103600083015261534b8161530f565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600061537982615352565b915061538483615352565b92508282101561539757615396613dd6565b5b828203905092915050565b60006153ad82615352565b91506153b883615352565b9250826fffffffffffffffffffffffffffffffff038211156153dd576153dc613dd6565b5b828201905092915050565b7f7400000000000000000000000000000000000000000000000000000000000000600082015250565b600061541e600183613f10565b9150615429826153e8565b602082019050919050565b6000602082019050818103600083015261544d81615411565b9050919050565b600061545f82613d9d565b915061546a83613d9d565b92508282101561547d5761547c613dd6565b5b828203905092915050565b600061549382613d9d565b9150600082036154a6576154a5613dd6565b5b600182039050919050565b600081519050919050565b600082825260208201905092915050565b60006154d8826154b1565b6154e281856154bc565b93506154f2818560208601613f21565b6154fb81613f54565b840191505092915050565b600060808201905061551b600083018761404b565b615528602083018661404b565b615535604083018561425f565b818103606083015261554781846154cd565b905095945050505050565b60008151905061556181613e76565b92915050565b60006020828403121561557d5761557c613e40565b5b600061558b84828501615552565b91505092915050565b600061559f82613d9d565b91506155aa83613d9d565b9250826155ba576155b9613da7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b600061562a601c8361519b565b9150615635826155f4565b601c82019050919050565b6000819050919050565b61565b61565682614349565b615640565b82525050565b600061566c8261561d565b9150615678828461564a565b60208201915081905092915050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b60006156bd601883613f10565b91506156c882615687565b602082019050919050565b600060208201905081810360008301526156ec816156b0565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000615729601f83613f10565b9150615734826156f3565b602082019050919050565b600060208201905081810360008301526157588161571c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b60006157bb602283613f10565b91506157c68261575f565b604082019050919050565b600060208201905081810360008301526157ea816157ae565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b600061584d602283613f10565b9150615858826157f1565b604082019050919050565b6000602082019050818103600083015261587c81615840565b9050919050565b600060ff82169050919050565b61589981615883565b82525050565b60006080820190506158b46000830187614353565b6158c16020830186615890565b6158ce6040830185614353565b6158db6060830184614353565b9594505050505056fea2646970667358221220d44f45d62da68ab62d98da08bfeef415327dc98aff570585b9bafd496d447a3464736f6c634300080f003300000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000b263e399781ac16fe32e1713fbfcbe642007f27d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000007596f626c696e73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007594f424c494e5300000000000000000000000000000000000000000000000000