0x608060405234801561001057600080fd5b50611283806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806334baeab914610030575b600080fd5b61004361003e366004611098565b610057565b604051901515815260200160405180910390f35b6000610061610e73565b6040805180820182528751815260208089015181830152908352815160808101835287515181840190815288518301516060830152815282518084018452888301805151825251830151818401528183015283820152815180830183528651815286820151918101919091529082015260006100db61055c565b60408051808201909152600080825260208201528351519192509060008051602061122e833981519152116101575760405162461bcd60e51b815260206004820152601760248201527f76657269666965722d61582d6774652d7072696d652d7100000000000000000060448201526064015b60405180910390fd5b82516020015160008051602061122e833981519152116101b95760405162461bcd60e51b815260206004820152601760248201527f76657269666965722d61592d6774652d7072696d652d71000000000000000000604482015260640161014e565b6020830151515160008051602061122e8339815191521161021c5760405162461bcd60e51b815260206004820152601860248201527f76657269666965722d6258302d6774652d7072696d652d710000000000000000604482015260640161014e565b60208381015101515160008051602061122e833981519152116102815760405162461bcd60e51b815260206004820152601860248201527f76657269666965722d6259302d6774652d7072696d652d710000000000000000604482015260640161014e565b60208381015151015160008051602061122e833981519152116102e65760405162461bcd60e51b815260206004820152601860248201527f76657269666965722d6258312d6774652d7072696d652d710000000000000000604482015260640161014e565b602083810151810151015160008051602061122e8339815191521161034d5760405162461bcd60e51b815260206004820152601860248201527f76657269666965722d6259312d6774652d7072696d652d710000000000000000604482015260640161014e565b60408301515160008051602061122e833981519152116103af5760405162461bcd60e51b815260206004820152601760248201527f76657269666965722d63582d6774652d7072696d652d71000000000000000000604482015260640161014e565b60008051602061122e833981519152836040015160200151106104145760405162461bcd60e51b815260206004820152601760248201527f76657269666965722d63592d6774652d7072696d652d71000000000000000000604482015260640161014e565b60005b6005811015610508577f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000186826005811061045357610453611176565b6020020151106104a55760405162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c6400604482015260640161014e565b6104f4826104ef85608001518460016104be91906111a2565b600681106104ce576104ce611176565b60200201518985600581106104e5576104e5611176565b60200201516109d3565b610a6f565b915080610500816111ba565b915050610417565b5060808201515161051a908290610a6f565b905061055061052c8460000151610b07565b84602001518460000151856020015185876040015189604001518960600151610b9d565b98975050505050505050565b610564610ec4565b6040805180820182527f2bc02a62f2147719bb2352da1c9c86231f2f4c098325a2d7dd90c245424cbdb281527f0abbf64d56cc88fc93cfb595227fd69fd7e158ade88a3e2624c3b3e056ba3db06020808301919091529083528151608080820184527f231bf37d9b63a38ec50aa89ca3418e80ddc9a1a1ddac46d02855c0b72c7c139c8285019081527f256ca526b22d41987e9d9f8bbf2dd669274c06100364a4381bfe9c7f71b47ee2606080850191909152908352845180860186527f15a14f14e4a930b47d3f34f4d993808a54bf3608d5f9798ce321c1f653ea3cc781527f19d89fbb3682a9b3364a464f5ccd52a505072165c7956516ae105401ce42f1c3818601528385015285840192909252835180820185527f217a2847fac4dee4e381ff7538a870718551472e7d4e22cee0d9195fc52dd7a58186019081527f28d30e76ed87ded1a16137b2b8364e88e50f3ea6205e92679f00dcbf8523ea09828501528152845180860186527f0f9f35413a222bf0a7feba8b4fe1d67dae60a163868189f4d8cd6124ad6dcb1a81527f21e5230704546c14e4c58ff8cca8b31cfd32c9d2cb658c21bdffe8baf00054b2818601528185015285850152835180820185527f2e0866c89ecffb78de967a21f2b6d249ca4d8208cf874c99d7c9e0cfefb6e3ee8186019081527f2bbc8300bb30ea15babc001653d1c83e67f6d626da42349ad3cfb8be17cd4c9e828501528152845180860186527f2dae7faf7c92ff5f794e7b57e7139da7baf3b6a3ab21193f5fa57ff8aff0f81181527f26c250b09679e50e05e4d4435da1b84b021b191d7950aa5839254bb23c013dd3818601528185015282860152835180850185527f0dcbeccfc2d3b7771fb66f9b04f2015ec666a819ef5ce03a5b5e88c9382dc73c81527f2fba146aa14e3e7162afa39845910655fc0c0ddd884ef28adc5ac8c4aadac55681850152818601805191909152845180860186527f1298363179715a6b7a119a9175df3b3c7ae307b821f810d1d83eef6ebe24485c81527f1ad734b7dbc7a4bd944eae98643632c59fcf17bf6b98fe4260395079fe59389a818601528151850152845180860186527f05e0e9b1537e657db0c20fe69a3a58f721edc3fc997037023183ae15fef3209081527f2e8dc91ba05db9efc0af19bbfddf9b9ec56d1eda9e54971b601146d2bfe40f13818601528151860152845180860186527f0db5bf323199c9ccb706338d6666f714325de5730f1b0dfcd9011c5a9696606281527e2a190d0b6d50e407b820af0d1ba60d0982010487808deba039bbf691c27adb81860152815190930192909252835180850185527f076d683319ae05adcad4d33604792afc07ad9a5180f24b91a95868134378c6da81527f1aab86173adf34099df8af21ee9ebf206ea064d7120e2c90b1a0b2e3ab4399ac8185015282519091015282518084019093527f184f960f1160085499aadf834601a9c38fdfe5117348e9ddf09a4b9de2712c0383527f092ac89e5bea66197a4619da447c3b5a383cb9fce524baea808c10788529e260918301919091525160a0015290565b60408051808201909152600080825260208201526109ef610f15565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa9050808015610a2257610a24565bfe5b5080610a675760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015260640161014e565b505092915050565b6040805180820190915260008082526020820152610a8b610f33565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa9050808015610a22575080610a675760405162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015260640161014e565b60408051808201909152600080825260208201528151158015610b2c57506020820151155b15610b4a575050604080518082019091526000808252602082015290565b60405180604001604052808360000151815260200160008051602061122e8339815191528460200151610b7d91906111d5565b610b959060008051602061122e8339815191526111f7565b905292915050565b60408051608080820183528a825260208083018a90528284018890526060808401879052845192830185528b83528282018a9052828501889052820185905283516018808252610320820190955260009491859190839082016103008036833701905050905060005b6004811015610df1576000610c1c82600661120e565b9050858260048110610c3057610c30611176565b60200201515183610c428360006111a2565b81518110610c5257610c52611176565b602002602001018181525050858260048110610c7057610c70611176565b60200201516020015183826001610c8791906111a2565b81518110610c9757610c97611176565b602002602001018181525050848260048110610cb557610cb5611176565b6020020151515183610cc88360026111a2565b81518110610cd857610cd8611176565b602002602001018181525050848260048110610cf657610cf6611176565b6020020151516001602002015183610d0f8360036111a2565b81518110610d1f57610d1f611176565b602002602001018181525050848260048110610d3d57610d3d611176565b602002015160200151600060028110610d5857610d58611176565b602002015183610d698360046111a2565b81518110610d7957610d79611176565b602002602001018181525050848260048110610d9757610d97611176565b602002015160200151600160028110610db257610db2611176565b602002015183610dc38360056111a2565b81518110610dd357610dd3611176565b60209081029190910101525080610de9816111ba565b915050610c06565b50610dfa610f51565b6000602082602086026020860160086107d05a03fa9050808015610a22575080610e5e5760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015260640161014e565b505115159d9c50505050505050505050505050565b6040805160a081019091526000606082018181526080830191909152815260208101610e9d610f6f565b8152602001610ebf604051806040016040528060008152602001600081525090565b905290565b6040805160e08101909152600060a0820181815260c0830191909152815260208101610eee610f6f565b8152602001610efb610f6f565b8152602001610f08610f6f565b8152602001610ebf610f8f565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060400160405280610f82610fc8565b8152602001610ebf610fc8565b6040518060c001604052806006905b6040805180820190915260008082526020820152815260200190600190039081610f9e5790505090565b60405180604001604052806002906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561101f5761101f610fe6565b60405290565b60405160a0810167ffffffffffffffff8111828210171561101f5761101f610fe6565b600082601f83011261105957600080fd5b611061610ffc565b80604084018581111561107357600080fd5b845b8181101561108d578035845260209384019301611075565b509095945050505050565b6000806000806101a08086880312156110b057600080fd5b6110ba8787611048565b9450604087605f8801126110cd57600080fd5b6110d5610ffc565b8060c089018a8111156110e757600080fd5b838a015b8181101561110c576110fd8c82611048565b845260209093019284016110eb565b5081975061111a8b82611048565b9650505050508661011f87011261113057600080fd5b611138611025565b90860190808883111561114a57600080fd5b61010088015b83811015611168578035835260209283019201611150565b509598949750929550505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156111b5576111b561118c565b500190565b60006000198214156111ce576111ce61118c565b5060010190565b6000826111f257634e487b7160e01b600052601260045260246000fd5b500690565b6000828210156112095761120961118c565b500390565b60008160001904831182151516156112285761122861118c565b50029056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a264697066735822122038da31e531f4c17a412135ceba064b98174b113c1e949aafd533c74b7a5f7d6d64736f6c634300080a0033