# Name: smd_query v0.4 # Type: Client side plugin # Generic database access via SQL # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjk6InNtZF9xdWVyeSI7czo2OiJhdXRob3IiO3M6MTE6IlN0 ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nvbi5j b20vIjtzOjc6InZlcnNpb24iO3M6MzoiMC40IjtzOjExOiJkZXNjcmlwdGlvbiI7czozMToi R2VuZXJpYyBkYXRhYmFzZSBhY2Nlc3MgdmlhIFNRTCI7czo0OiJjb2RlIjtzOjk4NDE6ImZ1 bmN0aW9uIHNtZF9xdWVyeSgkYXR0cywgJHRoaW5nPScnKSB7DQoJZ2xvYmFsICR0aGlzcGFn ZSwgJHByZXRleHQsICRzbWRfcXVlcnlfcGdpbmZvOw0KDQoJZXh0cmFjdChsQXR0cyhhcnJh eSgNCgkJJ2NvbHVtbicgPT4gJycsDQoJCSd0YWJsZScgPT4gJycsDQoJCSd3aGVyZScgPT4g JycsDQoJCSdxdWVyeScgPT4gJycsDQoJCSdmb3JtJyA9PiAnJywNCgkJJ3BhZ2Vmb3JtJyA9 PiAnJywNCgkJJ3BhZ2V2YXInID0+ICdwZycsDQoJCSdwYWdlcG9zJyA9PiAnYmVsb3cnLA0K CQknY29sc2Zvcm0nID0+ICcnLA0KCQknZXNjYXBlJyA9PiAnJywNCgkJJ3N0cmljdGZpZWxk cycgPT4gJzAnLA0KCQkncHJlcGFyc2UnID0+ICcwJywNCgkJJ3VybGZpbHRlcicgPT4gJycs DQoJCSd1cmxyZXBsYWNlJyA9PiAnJywNCgkJJ2RlZmF1bHRzJyA9PiAnJywNCgkJJ2RlbGlt JyA9PiAnLCcsDQoJCSdwYXJhbWRlbGltJyA9PiAnOicsDQoJCSdzaWxlbnQnID0+ICcwJywN CgkJJ2NvdW50JyA9PiAndXAnLA0KCQknbGltaXQnID0+IDAsDQoJCSdvZmZzZXQnID0+IDAs DQoJCSdicmVhaycgPT4gJycsDQoJCSd3cmFwdGFnJyA9PiAnJywNCgkJJ2xhYmVsJyA9PiAn JywNCgkJJ2xhYmVsdGFnJyA9PiAnJywNCgkJJ2NsYXNzJyA9PiAnJywNCgkJJ2RlYnVnJyA9 PiAnMCcsDQoJKSwkYXR0cykpOw0KDQoJLy8gR3JhYiB0aGUgZm9ybSBvciBlbWJlZGRlZCAk dGhpbmcNCgkkdGhpbmcgPSAoJHRoaW5nKSA/ICR0aGluZyA6IGZldGNoX2Zvcm0oJGZvcm0p Ow0KCSRjb2xzZm9ybSA9IChlbXB0eSgkY29sc2Zvcm0pKSA/ICcnIDogZmV0Y2hfZm9ybSgk Y29sc2Zvcm0pOw0KCSRwYWdlYml0ID0gYXJyYXkoKTsNCglpZiAoJHBhZ2Vmb3JtKSB7DQoJ CSRwYWdlUG9zQWxsb3dlZCA9IGFycmF5KCJiZWxvdyIsICJhYm92ZSIpOw0KCQkkcGFnaW5n ID0gMTsNCgkJJHBhZ2Vmb3JtID0gZmV0Y2hfZm9ybSgkcGFnZWZvcm0pOw0KCQkkcGFnZXBv cyA9IHN0cl9yZXBsYWNlKCdzbWRfJywgJycsICRwYWdlcG9zKTsNCgkJJHBhZ2Vwb3MgPSBk b19saXN0KCRwYWdlcG9zLCAkZGVsaW0pOw0KCQlmb3JlYWNoICgkcGFnZXBvcyBhcyAkcGFn ZWl0ZW0pIHsNCgkJCSRwYWdlYml0W10gPSAoaW5fYXJyYXkoJHBhZ2VpdGVtLCAkcGFnZVBv c0FsbG93ZWQpKSA/ICRwYWdlaXRlbSA6ICRwYWdlUG9zQWxsb3dlZFswXTsNCgkJfQ0KCX0N Cg0KCSR1cmxmaWx0ZXIgPSAoIWVtcHR5KCR1cmxmaWx0ZXIpKSA/IGRvX2xpc3QoJHVybGZp bHRlciwgJGRlbGltKSA6ICcnOw0KCSR1cmxyZXBsYWNlID0gKCFlbXB0eSgkdXJscmVwbGFj ZSkpID8gZG9fbGlzdCgkdXJscmVwbGFjZSwgJGRlbGltKSA6ICcnOw0KCWlmICgkZGVidWcg PiAwKSB7DQoJCWVjaG8gIisrIFVSTCBGSUxURVJTICsrIjsNCgkJZG1wKCR1cmxmaWx0ZXIp Ow0KCQlkbXAoJHVybHJlcGxhY2UpOw0KCX0NCg0KCS8vIFByb2Nlc3MgYW55IGRlZmF1bHRz DQoJJHNwYyA9ICgkc3RyaWN0ZmllbGRzKSA/IDAgOiAxOw0KCSRkZWZhdWx0cyA9IGRvX2xp c3QoJGRlZmF1bHRzLCAkZGVsaW0pOw0KCSRkZmx0cyA9IGFycmF5KCk7DQoJZm9yZWFjaCAo JGRlZmF1bHRzIGFzICRpdGVtKSB7DQoJCSRpdGVtID0gZG9fbGlzdCgkaXRlbSwgJHBhcmFt ZGVsaW0pOw0KCQlpZiAoJGl0ZW1bMF0gPT0gJycpIGNvbnRpbnVlOw0KCQlpZiAoY291bnQo JGl0ZW0pID09IDIpIHsNCgkJCSRkZmx0c1skaXRlbVswXV0gPSBzbWRfcXVlcnlfcGFyc2Uo JGl0ZW1bMV0sIGFycmF5KCcnKSwgYXJyYXkoJycpLCBhcnJheSgnJyksICRzcGMpOw0KCQl9 DQoJfQ0KDQoJaWYgKCRkZWJ1ZyA+IDApIHsNCgkJZWNobyAiKysgREVGQVVMVFMgKysiOw0K CQlkbXAoJGRmbHRzKTsNCgl9DQoNCgkvLyBHZXQgYSBsaXN0IG9mIGZpZWxkcyB0byBlc2Nh cGUNCgkkZXNjYXBlcyA9IGRvX2xpc3QoJGVzY2FwZSwgJGRlbGltKTsNCglmb3JlYWNoICgk ZXNjYXBlcyBhcyAkaWR4ID0+ICR2YWwpIHsNCgkJaWYgKCR2YWwgPT0gJycpIHsNCgkJCXVu c2V0KCRlc2NhcGVzWyRpZHhdKTsNCgkJfQ0KCX0NCg0KCSRycyA9IGFycmF5KCk7DQoJJG91 dCA9IGFycmF5KCk7DQoJJGNvbG91dCA9ICRmaW5hbG91dCA9IGFycmF5KCk7DQoJJHBhZ2Vv dXQgPSAnJzsNCgkNCgkvLyBxdWVyeSBvdmVycmlkZXMgY29sdW1uL3RhYmxlL3doZXJlDQoJ aWYgKCRxdWVyeSkgew0KCQkkcXVlcnkgPSBzbWRfcXVlcnlfcGFyc2UoJHF1ZXJ5LCAkZGZs dHMsICR1cmxmaWx0ZXIsICR1cmxyZXBsYWNlLCAkc3BjKTsNCgkJJHJzID0gKCRzaWxlbnQp ID8gQGdldFJvd3MoJHF1ZXJ5LCAkZGVidWcpIDogZ2V0Um93cygkcXVlcnksICRkZWJ1Zyk7 DQoJfSBlbHNlIHsNCgkJaWYgKCRjb2x1bW4gJiYgJHRhYmxlKSB7DQoJCQkvLyBUT0RPOiBQ ZXJoYXBzIGRvU2xhc2goKSB0aGVzZT8NCgkJCSRjb2x1bW4gPSBzbWRfcXVlcnlfcGFyc2Uo JGNvbHVtbiwgJGRmbHRzLCAkdXJsZmlsdGVyLCAkdXJscmVwbGFjZSwgJHNwYyk7DQoJCQkk dGFibGUgPSBzbWRfcXVlcnlfcGFyc2UoJHRhYmxlLCAkZGZsdHMsICR1cmxmaWx0ZXIsICR1 cmxyZXBsYWNlLCAkc3BjKTsNCgkJCSR3aGVyZSA9IHNtZF9xdWVyeV9wYXJzZSgkd2hlcmUs ICRkZmx0cywgJHVybGZpbHRlciwgJHVybHJlcGxhY2UsICRzcGMpOw0KCQkJJHdoZXJlID0g KCR3aGVyZSkgPyAkd2hlcmUgOiAiMT0xIjsNCgkJCSRycyA9ICgkc2lsZW50KSA/IEBzYWZl X3Jvd3MoJGNvbHVtbiwgJHRhYmxlLCAkd2hlcmUsICRkZWJ1ZykgOiBzYWZlX3Jvd3MoJGNv bHVtbiwgJHRhYmxlLCAkd2hlcmUsICRkZWJ1Zyk7DQoJCX0gZWxzZSB7DQoJCQl0cmlnZ2Vy X2Vycm9yKCJZb3UgbXVzdCBzcGVjaWZ5IGF0IGxlYXN0IDEgJ2NvbHVtbicgYW5kIGEgJ3Rh YmxlJy4iKTsNCgkJfQ0KCX0NCg0KCSRudW1yb3dzID0gY291bnQoJHJzKTsNCgkkdHJ1ZVBh cnQgPSBFdmFsRWxzZSgkdGhpbmcsIDEpOw0KDQoJaWYgKCRycykgew0KCQlpZiAoJGRlYnVn ID4gMSkgew0KCQkJZWNobyAiKysgUVVFUlkgUkVTVUxUIFNFVCArKyI7DQoJCQlkbXAoJG51 bXJvd3MgLiAiIFJPV1MiKTsNCgkJCWRtcCgkcnMpOw0KCQl9DQoNCgkJaWYgKCRsaW1pdCA+ IDApIHsNCgkJCSRrZWVwc2FmZSA9ICR0aGlzcGFnZTsNCgkJCSR0b3RhbCA9ICRudW1yb3dz IC0gJG9mZnNldDsNCgkJCSRudW1QYWdlcyA9IGNlaWwoJHRvdGFsLyRsaW1pdCk7DQoJCQkk cGcgPSAoIWdwcygkcGFnZXZhcikpID8gMSA6IGdwcygkcGFnZXZhcik7DQoJCQkkcGdvZmZz ZXQgPSAkb2Zmc2V0ICsgKCgkcGcgLSAxKSAqICRsaW1pdCk7DQoJCQkvLyBzZW5kIHBhZ2lu ZyBpbmZvIHRvIHR4cDpuZXdlciBhbmQgdHhwOm9sZGVyDQoJCQkkcGFnZW91dFsncGcnXSA9 ICRwZzsNCgkJCSRwYWdlb3V0WydudW1QYWdlcyddID0gJG51bVBhZ2VzOw0KCQkJJHBhZ2Vv dXRbJ3MnXSA9ICRwcmV0ZXh0WydzJ107DQoJCQkkcGFnZW91dFsnYyddID0gJHByZXRleHRb J2MnXTsNCgkJCSRwYWdlb3V0WydncmFuZF90b3RhbCddID0gJG51bXJvd3M7DQoJCQkkcGFn ZW91dFsndG90YWwnXSA9ICR0b3RhbDsNCgkJCSR0aGlzcGFnZSA9ICRwYWdlb3V0Ow0KCQl9 IGVsc2Ugew0KCQkJJHBnb2Zmc2V0ID0gJG9mZnNldDsNCgkJfQ0KDQoJCSRycyA9IGFycmF5 X3NsaWNlKCRycywgJHBnb2Zmc2V0LCAoKCRsaW1pdD09MCkgPyA5OTk5OSA6ICRsaW1pdCkp Ow0KCQkkcGFnZXJvd3MgPSBjb3VudCgkcnMpOw0KDQoJCSRyZXBsYWNlbWVudHMgPSAkcmVw YWdlbWVudHMgPSAkY29scmVwbGFjZW1lbnRzID0gYXJyYXkoKTsNCgkJJHBhZ2Vfcm93Y250 ID0gKCRjb3VudD09InVwIikgPyAwIDogJHBhZ2Vyb3dzLTE7DQoJCSRxcnlfcm93Y250ID0g KCRjb3VudD09InVwIikgPyAkcGdvZmZzZXQtJG9mZnNldCA6ICRudW1yb3dzLSRwZ29mZnNl dC0xOw0KCQkkZmlyc3Rfcm93ID0gJHFyeV9yb3djbnQgKyAxOw0KCQlmb3JlYWNoICgkcnMg YXMgJHJvdykgew0KCQkJZm9yZWFjaCAoJHJvdyBhcyAkY29saWQgPT4gJHZhbCkgew0KCQkJ CWlmICgkcGFnZV9yb3djbnQgPT0gMCAmJiAkY29sc2Zvcm0pIHsNCgkJCQkJJGNvbHJlcGxh Y2VtZW50c1sneycuJGNvbGlkLid9J10gPSAkY29saWQ7DQoJCQkJfQ0KCQkJCS8vIENvbnN0 cnVjdCB0aGUgcmVwbGFjZW1lbnQgYXJyYXlzDQoJCQkJJHJlcGxhY2VtZW50c1sneycuJGNv bGlkLid9J10gPSAoaW5fYXJyYXkoJGNvbGlkLCAkZXNjYXBlcykgPyBodG1sc3BlY2lhbGNo YXJzKCR2YWwsIEVOVF9RVU9URVMpIDogJHZhbCk7DQoJCQkJaWYgKCRwYWdlX3Jvd2NudCA9 PSAoKCRjb3VudD09InVwIikgPyAkcGFnZXJvd3MtMSA6IDApICYmICRwYWdlZm9ybSAmJiAk bGltaXQ+MCkgew0KCQkJCQkkcHJldnBnID0gKCgkcGctMSkgPiAwKSA/ICRwZy0xIDogJyc7 DQoJCQkJCSRuZXh0cGcgPSAoKCRwZysxKSA8PSAkbnVtUGFnZXMpID8gJHBnKzEgOiAnJzsN CgkJCQkJJHJlcGFnZW1lbnRzWyd7c21kX2FsbHJvd3N9J10gPSAkdG90YWw7DQoJCQkJCSRy ZXBhZ2VtZW50c1sne3NtZF9wYWdlc30nXSA9ICRudW1QYWdlczsNCgkJCQkJJHJlcGFnZW1l bnRzWyd7c21kX3ByZXZwYWdlfSddID0gJHByZXZwZzsNCgkJCQkJJHJlcGFnZW1lbnRzWyd7 c21kX3RoaXNwYWdlfSddID0gJHBnOw0KCQkJCQkkcmVwYWdlbWVudHNbJ3tzbWRfbmV4dHBh Z2V9J10gPSAkbmV4dHBnOw0KCQkJCQkkcmVwYWdlbWVudHNbJ3tzbWRfcm93X3N0YXJ0fSdd ID0gJGZpcnN0X3JvdzsNCgkJCQkJJHJlcGFnZW1lbnRzWyd7c21kX3Jvd19lbmR9J10gPSAk cXJ5X3Jvd2NudCArIDE7DQoJCQkJCSRyZXBhZ2VtZW50c1sne3NtZF9yb3dzX3ByZXZ9J10g PSAoKCRwcmV2cGcpID8gJGxpbWl0IDogMCk7DQoJCQkJCSRyZXBhZ2VtZW50c1sne3NtZF9y b3dzX25leHR9J10gPSAoKCRuZXh0cGcpID8gKCgkcXJ5X3Jvd2NudCskbGltaXQrMSkgPiAk dG90YWwgPyAkdG90YWwtJHFyeV9yb3djbnQtMSA6ICRsaW1pdCkgOiAwKTsNCgkJCQkJJHNt ZF9xdWVyeV9wZ2luZm8gPSAkcmVwYWdlbWVudHM7DQoJCQkJfQ0KCQkJfQ0KCQkJJHJlcGxh Y2VtZW50c1sne3NtZF9hbGxyb3dzfSddID0gKCgkbGltaXQ+MCkgPyAkdG90YWwgOiAkbnVt cm93cy0kcGdvZmZzZXQpOw0KCQkJJHJlcGxhY2VtZW50c1sne3NtZF9yb3dzfSddID0gJHBh Z2Vyb3dzOw0KCQkJJHJlcGxhY2VtZW50c1sne3NtZF9wYWdlc30nXSA9ICgoJGxpbWl0PjAp ID8gJG51bVBhZ2VzIDogMSk7DQoJCQkkcmVwbGFjZW1lbnRzWyd7c21kX3RoaXNwYWdlfSdd ID0gKCgkbGltaXQ+MCkgPyAkcGcgOiAxKTsNCgkJCSRyZXBsYWNlbWVudHNbJ3tzbWRfdGhp c2luZGV4fSddID0gJHBhZ2Vfcm93Y250Ow0KCQkJJHJlcGxhY2VtZW50c1sne3NtZF90aGlz cm93fSddID0gJHBhZ2Vfcm93Y250ICsgMTsNCgkJCSRyZXBsYWNlbWVudHNbJ3tzbWRfY3Vy c29yaW5kZXh9J10gPSAkcXJ5X3Jvd2NudDsNCgkJCSRyZXBsYWNlbWVudHNbJ3tzbWRfY3Vy c29yfSddID0gJHFyeV9yb3djbnQgKyAxOw0KCQkJaWYgKCRkZWJ1ZyA+IDApIHsNCgkJCQll Y2hvICIrKyBSRVBMQUNFTUVOVFMgKysiOw0KCQkJCWRtcCgkcmVwbGFjZW1lbnRzKTsNCgkJ CX0NCgkJCSRvdXRbXSA9ICgkcHJlcGFyc2UpID8gc3RydHIocGFyc2UoJHRydWVQYXJ0KSwg JHJlcGxhY2VtZW50cykgOiBwYXJzZShzdHJ0cigkdHJ1ZVBhcnQsICRyZXBsYWNlbWVudHMp KTsNCgkJCSRxcnlfcm93Y250ID0gKCRjb3VudD09InVwIikgPyAkcXJ5X3Jvd2NudCsxIDog JHFyeV9yb3djbnQtMTsNCgkJCSRwYWdlX3Jvd2NudCA9ICgkY291bnQ9PSJ1cCIpID8gJHBh Z2Vfcm93Y250KzEgOiAkcGFnZV9yb3djbnQtMTsNCgkJfQ0KDQoJCWlmICgkb3V0KSB7DQoJ CQlpZiAoJGNvbHJlcGxhY2VtZW50cykgew0KCQkJCSRjb2xvdXRbXSA9ICgkcHJlcGFyc2Up ID8gc3RydHIocGFyc2UoJGNvbHNmb3JtKSwgJGNvbHJlcGxhY2VtZW50cykgOiBwYXJzZShz dHJ0cigkY29sc2Zvcm0sICRjb2xyZXBsYWNlbWVudHMpKTsNCgkJCX0NCgkJCWlmICgkcmVw YWdlbWVudHMpIHsNCgkJCQkkcGFnZW91dCA9ICgkcHJlcGFyc2UpID8gc3RydHIocGFyc2Uo JHBhZ2Vmb3JtKSwgJHJlcGFnZW1lbnRzKSA6IHBhcnNlKHN0cnRyKCRwYWdlZm9ybSwgJHJl cGFnZW1lbnRzKSk7DQoJCQl9DQoNCgkJCS8vIE1ha2UgdXAgdGhlIGZpbmFsIG91dHB1dA0K CQkJaWYgKGluX2FycmF5KCJhYm92ZSIsICRwYWdlYml0KSkgew0KCQkJCSRmaW5hbG91dFtd ID0gJHBhZ2VvdXQ7DQoJCQl9DQoJCQkkZmluYWxvdXRbXSA9IGRvTGFiZWwoJGxhYmVsLCAk bGFiZWx0YWcpLmRvV3JhcChhcnJheV9tZXJnZSgkY29sb3V0LCAkb3V0KSwgJHdyYXB0YWcs ICRicmVhaywgJGNsYXNzKTsNCgkJCWlmIChpbl9hcnJheSgiYmVsb3ciLCAkcGFnZWJpdCkp IHsNCgkJCQkkZmluYWxvdXRbXSA9ICRwYWdlb3V0Ow0KCQkJfQ0KDQoJCQkvLyBSZXN0b3Jl IHRoZSBwYWdpbmcgb3V0c2lkZSB0aGUgcGx1Z2luIGNvbnRhaW5lcg0KCQkJaWYgKCRsaW1p dCA+IDApIHsNCgkJCQkkdGhpc3BhZ2UgPSAka2VlcHNhZmU7DQoJCQl9DQoJCQlyZXR1cm4g am9pbignJywgJGZpbmFsb3V0KTsNCgkJfQ0KCX0gZWxzZSB7DQoJCXJldHVybiBwYXJzZShF dmFsRWxzZSgkdGhpbmcsIDApKTsNCgl9DQoJcmV0dXJuICcnOw0KfQ0KDQovLyBSZXR1cm5z IGEgc3RyaW5nIHdpdGggYW55ID8gdmFyaWFibGVzIHJlcGxhY2VkIHdpdGggdGhlaXIgZ2xv YmFscw0KLy8gVVJMIFZhcmlhYmxlcyBhcmUgb3B0aW9uYWxseSBydW4gdGhyb3VnaCBwcmVn X3JlcGxhY2UoKSB0byBzYW5pdGl6ZSB0aGVtLg0KLy8gICRwYXQgaXMgYW4gYXJyYXkgb2Yg cmVnZXggc2VhcmNoIHBhdHRlcm5zDQovLyAgJHJlcCBpcyBhbiBhcnJheSBvZiByZWdleCBz ZWFyY2ggcmVwYWxjZW1lbnRzIChkZWZhdWx0ID0gJycsIGkuZS4gcmVtb3ZlIHdoYXRldmVy IG1hdGNoZXMpDQpmdW5jdGlvbiBzbWRfcXVlcnlfcGFyc2UoJGl0ZW0sICRkZmx0cz1hcnJh eSgnJyksICRwYXQ9YXJyYXkoJycpLCAkcmVwPWFycmF5KCcnKSwgJGxheD10cnVlKSB7DQoJ Z2xvYmFsICRwcmV0ZXh0LCAkdGhpc2FydGljbGUsICR0aGlzaW1hZ2UsICR0aGlzZmlsZSwg JHRoaXNsaW5rLCAkdmFyaWFibGU7DQoNCgkkaXRlbSA9IGh0bWxfZW50aXR5X2RlY29kZSgk aXRlbSk7DQoNCgkvLyBTb21ldGltZXMgcGVza3kgVW5pY29kZSBpcyBub3QgY29tcGlsZWQg aW4uIERldGVjdCBpZiBzbyBhbmQgZmFsbCBiYWNrIHRvIEFTQ0lJDQoJaWYgKCFAcHJlZ19t YXRjaCgnL1xwTC91JywgJ2EnKSkgew0KCQkkbW9kUkUgPSAoJGxheCkgPyAnLyhcPykoW0Et WmEtejAtOV9cLSBdKykvJyA6ICcvKFw/KShbQS1aYS16MC05X1wtXSspLyc7DQoJfSBlbHNl IHsNCgkJJG1vZFJFID0gKCRsYXgpID8gJy8oXD8pKFtccHtMfVxwe059XHB7UGN9XHB7UGR9 XHB7WnN9XSspLycgOiAnLyhcPykoW1xwe0x9XHB7Tn1ccHtQY31ccHtQZH1dKykvJzsNCgl9 DQoNCgkkbnVtTW9kcyA9IHByZWdfbWF0Y2hfYWxsKCRtb2RSRSwgJGl0ZW0sICRtb2RzKTsN Cg0KCWZvciAoJG1vZEN0ciA9IDA7ICRtb2RDdHIgPCAkbnVtTW9kczsgJG1vZEN0cisrKSB7 DQoJCSRtb2RDaGFyID0gJG1vZHNbMV1bJG1vZEN0cl07DQoJCSRtb2RJdGVtID0gdHJpbSgk bW9kc1syXVskbW9kQ3RyXSk7DQoJCSRsb3dpdGVtID0gc3RydG9sb3dlcigkbW9kSXRlbSk7 DQoJCSR1cmx2YXIgPSAkc3ZydmFyID0gJyc7DQoNCgkJaWYgKGdwcygkbG93aXRlbSkgIT0g JycpIHsNCgkJCSR1cmx2YXIgPSBkb1NsYXNoKGdwcygkbG93aXRlbSkpOw0KCQkJaWYgKCR1 cmx2YXIgJiYgJHBhdCkgew0KCQkJCSR1cmx2YXIgPSBwcmVnX3JlcGxhY2UoJHBhdCwgJHJl cCwgJHVybHZhcik7DQoJCQl9DQoJCX0NCgkJaWYgKHNlcnZlclNldCgkbW9kSXRlbSkgIT0g JycpIHsNCgkJCSRzdnJ2YXIgPSBkb1NsYXNoKHNlcnZlclNldCgkbW9kSXRlbSkpOw0KCQkJ aWYgKCRzdnJ2YXIgJiYgJHBhdCkgew0KCQkJCSRzdnJ2YXIgPSBwcmVnX3JlcGxhY2UoJHBh dCwgJHJlcCwgJHN2cnZhcik7DQoJCQl9DQoJCX0NCg0KCQlpZiAoaXNzZXQoJHZhcmlhYmxl WyRsb3dpdGVtXSkgJiYgJHZhcmlhYmxlWyRsb3dpdGVtXSAhPSAnJykgew0KCQkJJGl0ZW0g PSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwgJHZhcmlhYmxlWyRsb3dpdGVtXSwg JGl0ZW0pOw0KCQl9IGVsc2UgaWYgKCRzdnJ2YXIgIT0gJycpIHsNCgkJCSRpdGVtID0gc3Ry X3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sICRzdnJ2YXIsICRpdGVtKTsNCgkJfSBlbHNl IGlmIChpc3NldCgkdGhpc2ltYWdlWyRsb3dpdGVtXSkgJiYgIWVtcHR5KCR0aGlzaW1hZ2Vb JGxvd2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRl bSwgJHRoaXNpbWFnZVskbG93aXRlbV0sICRpdGVtKTsNCgkJfSBlbHNlIGlmIChpc3NldCgk dGhpc2ZpbGVbJGxvd2l0ZW1dKSAmJiAhZW1wdHkoJHRoaXNmaWxlWyRsb3dpdGVtXSkpIHsN CgkJCSRpdGVtID0gc3RyX3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sICR0aGlzZmlsZVsk bG93aXRlbV0sICRpdGVtKTsNCgkJfSBlbHNlIGlmIChpc3NldCgkdGhpc2xpbmtbJGxvd2l0 ZW1dKSAmJiAhZW1wdHkoJHRoaXNsaW5rWyRsb3dpdGVtXSkpIHsNCgkJCSRpdGVtID0gc3Ry X3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sICR0aGlzbGlua1skbG93aXRlbV0sICRpdGVt KTsNCgkJfSBlbHNlIGlmIChhcnJheV9rZXlfZXhpc3RzKCRsb3dpdGVtLCAkcHJldGV4dCkg JiYgIWVtcHR5KCRwcmV0ZXh0WyRsb3dpdGVtXSkpIHsNCgkJCSRpdGVtID0gc3RyX3JlcGxh Y2UoJG1vZENoYXIuJG1vZEl0ZW0sICRwcmV0ZXh0WyRsb3dpdGVtXSwgJGl0ZW0pOw0KCQl9 IGVsc2UgaWYgKGlzc2V0KCR0aGlzYXJ0aWNsZVskbG93aXRlbV0pICYmICFlbXB0eSgkdGhp c2FydGljbGVbJGxvd2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hh ci4kbW9kSXRlbSwgJHRoaXNhcnRpY2xlWyRsb3dpdGVtXSwgJGl0ZW0pOw0KCQl9IGVsc2Ug aWYgKCR1cmx2YXIgIT0gJycpIHsNCgkJCSRpdGVtID0gc3RyX3JlcGxhY2UoJG1vZENoYXIu JG1vZEl0ZW0sICR1cmx2YXIsICRpdGVtKTsNCgkJfSBlbHNlIGlmIChpc3NldCgkZGZsdHNb JGxvd2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRl bSwgJGRmbHRzWyRsb3dpdGVtXSwgJGl0ZW0pOw0KCQl9IGVsc2Ugew0KCQkJJGl0ZW0gPSBz dHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwgJG1vZEl0ZW0sICRpdGVtKTsNCgkJfQ0K CX0NCglyZXR1cm4gJGl0ZW07DQp9DQovLyBDb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gY2hl Y2sgaWYgdGhlcmUncyBhIHByZXYvbmV4dCBwYWdlIGRlZmluZWQuIENvdWxkIGFsc28gdXNl IHNtZF9pZg0KZnVuY3Rpb24gc21kX3F1ZXJ5X2lmX3ByZXYoJGF0dHMsICR0aGluZykgew0K CWdsb2JhbCAkc21kX3F1ZXJ5X3BnaW5mbzsNCg0KCSRyZXMgPSAkc21kX3F1ZXJ5X3BnaW5m byAmJiAkc21kX3F1ZXJ5X3BnaW5mb1sne3NtZF9wcmV2cGFnZX0nXSAhPSAnJzsNCglyZXR1 cm4gcGFyc2UoRXZhbEVsc2Uoc3RydHIoJHRoaW5nLCAkc21kX3F1ZXJ5X3BnaW5mbyksICRy ZXMpKTsNCn0NCmZ1bmN0aW9uIHNtZF9xdWVyeV9pZl9uZXh0KCRhdHRzLCAkdGhpbmcpIHsN CglnbG9iYWwgJHNtZF9xdWVyeV9wZ2luZm87DQoNCgkkcmVzID0gJHNtZF9xdWVyeV9wZ2lu Zm8gJiYgJHNtZF9xdWVyeV9wZ2luZm9bJ3tzbWRfbmV4dHBhZ2V9J10gIT0gJyc7DQoJcmV0 dXJuIHBhcnNlKEV2YWxFbHNlKHN0cnRyKCR0aGluZywgJHNtZF9xdWVyeV9wZ2luZm8pLCAk cmVzKSk7DQoNCn0iO3M6NDoidHlwZSI7czoxOiIwIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6 NToiZmxhZ3MiO3M6MToiMCI7czo0OiJoZWxwIjtzOjM1MjA2OiI8ZGl2IGlkPSJzbWRfaGVs cCI+CgoJPGgxPnNtZF9xdWVyeTwvaDE+CgoJPHA+VGhlIGxhemllc3QgdGFnIGV2ZXIhIEFs bG93cyB5b3UgdG8gbWFrZSBhZC1ob2MgcXVlcmllcyB0byB0aGUgZGF0YWJhc2UgYW5kIHBy b2Nlc3MgdGhlIHJlc3VsdHMsIHJvdyBieSByb3csIGluIGEgZm9ybSBvciBjb250YWluZXIu PC9wPgoKCTxoMj5GZWF0dXJlczwvaDI+CgoJPHVsPgoJCTxsaT5TdXBwb3J0cyBzaW1wbGUg cXVlcmllcyB3aXRoIGEgcmVkdWNlZCBzeW50YXggKDxzcGFuIGNsYXNzPSJjYXBzIj5TRUxF Q1Q8L3NwYW4+IGNvbHMgPHNwYW4gY2xhc3M9ImNhcHMiPkZST008L3NwYW4+IHRhYmxlIDxz cGFuIGNsYXNzPSJjYXBzIj5XSEVSRTwvc3Bhbj4gY2xhdXNlKSBvciB5b3VyIG93biBjdXN0 b20gcXVlcmllczwvbGk+CgkJPGxpPlJlYWQgaW5mb3JtYXRpb24gZnJvbSBhbnkgcGFydCBv ZiB0aGUgY3VycmVudCBhcnRpY2xlLCBpbWFnZSAocGxhbm5lZCksIGZpbGUsIGxpbmssIDxj b2RlPiZsdDt0eHA6dmFyaWFibGUgLyZndDs8L2NvZGU+IG9yIDxzcGFuIGNsYXNzPSJjYXBz Ij5VUkw8L3NwYW4+IGxpbmUuIElmIGFueSBmaWVsZHMgYXJlIG1pc3NpbmcgeW91IGNhbiBz cGVjaWZ5IGEgZGVmYXVsdCB2YWx1ZTwvbGk+CgkJPGxpPk9wdGlvbmFsbHkgZmlsdGVyIHRo ZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBpbnB1dCB1c2luZyByZWd1bGFyIGV4 cHJlc3Npb25zLCBmb3Igc2FmZXR5PC9saT4KCQk8bGk+RWFjaCByb3cgY2FuIGJlIHBhc3Nl ZCB0byBhIGZvcm0gKG9yIHRoZSBwbHVnaW4gY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIg dGFnIHdpdGggb3Igd2l0aG91dCA8Y29kZT4mbHQ7dHhwOmVsc2UgLyZndDs8L2NvZGU+KSB0 byBkaXNwbGF5IHRoZSByZXN1bHRzPC9saT4KCQk8bGk+Q29sdW1uIGhlYWRpbmdzIG1heSBi ZSBvdXRwdXQgdXNpbmcgYSBzZWNvbmQgZm9ybTwvbGk+CgkJPGxpPlJlc3VsdCBzZXRzIGNh biBiZSBwYWdpbmF0ZWQsIHdpdGggc3VwcG9ydCBmb3IgYSBwYWdpbmcgZm9ybTwvbGk+Cgk8 L3VsPgoKCTxoMj5BdXRob3I8L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS9jb250YWN0Ij5TdGVmIERhd3NvbjwvYT48L3A+CgoJPGgyPkluc3RhbGxhdGlvbiAv IFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20gZWl0 aGVyIDxhIGhyZWY9Imh0dHA6Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy85NzYvc21kX3F1 ZXJ5Ij50ZXh0cGF0dGVybi5vcmc8L2E+LCBvciB0aGUgPGEgaHJlZj0iaHR0cDovL3N0ZWZk YXdzb24uY29tL3N3Ij5zb2Z0d2FyZSBwYWdlPC9hPiwgcGFzdGUgdGhlIGNvZGUgaW50byB0 aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gQWRtaW4gLSZndDsgUGx1Z2lucyBw YW5lLCBpbnN0YWxsIGFuZCBlbmFibGUgdGhlIHBsdWdpbi4gVmlzaXQgdGhlIDxhIGhyZWY9 Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD0yNzI3OSI+ Zm9ydW0gdGhyZWFkPC9hPiBmb3IgbW9yZSBpbmZvIG9yIHRvIHJlcG9ydCBvbiB0aGUgc3Vj Y2VzcyBvciBvdGhlcndpc2Ugb2YgdGhlIHBsdWdpbi48L3A+CgoJPHA+VW5pbnN0YWxsIGJ5 IHNpbXBseSBkZWxldGluZyB0aGUgcGx1Z2luIGZyb20gdGhlIEFkbWluLSZndDtQbHVnaW5z IHBhbmUuPC9wPgoKCTxoMj48Y29kZT4mbHQ7dHhwOnNtZF9xdWVyeSAvJmd0OzwvY29kZT4g dXNhZ2U8L2gyPgoKCTxwPlVzZSB0aGlzIHRhZyBpbiBhbnkgcGFnZSwgZm9ybSwgYXJ0aWNs ZSwgZmlsZSwgbGluaywgZXRjIGNvbnRleHQgdG8gZ3JhYiBzdHVmZiBmcm9tIHRoZSBkYXRh YmFzZS4gVGhlIHBsdWdpbiBjYW4gb3BlcmF0ZSBpbiBvbmUgb2YgdHdvIG1vZGVzOjwvcD4K Cgk8b2w+CgkJPGxpPnNpbXBsZSBtb2RlIGp1c3QgYWxsb3dzIDxjb2RlPlNFTEVDVCBzdHVm ZiBGUk9NIHRhYmxlIFdIRVJFIGNsYXVzZTwvY29kZT48L2xpPgoJCTxsaT5hZHZhbmNlZCBt b2RlIHVzZXMgdGhlIDxjb2RlPnF1ZXJ5PC9jb2RlPiBhdHRyaWJ1dGUgc28geW91IGNhbiBk ZXNpZ24geW91ciBvd24gcXVlcnkuIEl0IGNhbiBpbmNsdWRlIDxzcGFuIGNsYXNzPSJjYXBz Ij5DT1VOVDwvc3Bhbj4gKCopLCBqb2lucywgYW55dGhpbmc7IHBlcmhhcHMgZXZlbiA8c3Bh biBjbGFzcz0iY2FwcyI+SU5TRVJUPC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMiPlVQ REFURTwvc3Bhbj4gKD8pIGFsdGhvdWdoIGl0JiM4MjE3O3MgdW50ZXN0ZWQgYW5kIGxpYWJs ZSB0byBmbG9vZGluZzwvbGk+Cgk8L29sPgoKCTxoMyBjbGFzcz0iYXR0cyAiIGlkPSJhdHRy aWJ1dGVzIj5BdHRyaWJ1dGVzPC9oMz4KCgk8aDQ+U2ltcGxlIG1vZGU8L2g0PgoKCTx1bCBj bGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jb2x1bW48L3NwYW4+IDog Y29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgY29sdW1ucyB0byByZXRyaWV2ZSBmcm9tIHRoZSBk YXRhYmFzZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj50YWJsZTwvc3Bhbj4gOiBu YW1lIG9mIHRoZSB0YWJsZSB0byByZXRyaWV2ZSB0aGUgY29sdW1ucyBmcm9tICh5ZXMsIG5v bi08c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB0YWJsZXMgYXJlIGFsc28gc3VwcG9y dGVkIGlmIHRoZXkgYXJlIGluIHRoZSBzYW1lIGRhdGFiYXNlIDotKTwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG5tIj53aGVyZTwvc3Bhbj4gOiBhbnkgZXh0cmEgY2xhdXNlIHlvdSB3 aXNoIHRvIHNwZWNpZnkuIERlZmF1bHRzIHRvICYjODIyMDt0aGUgd2hvbGUgZGFybiB0YWJs ZSYjODIyMTs8L2xpPgoJPC91bD4KCgk8aDQ+QWR2YW5jZWQgbW9kZTwvaDQ+CgoJPHVsPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+cXVlcnk8L3NwYW4+IDogYW55IHF1ZXJ5IHlvdSBs aWtlIGNhbiBiZSB1c2VkIGhlcmUuIE92ZXJyaWRlcyA8Y29kZT5jb2x1bW48L2NvZGU+LCA8 Y29kZT50YWJsZTwvY29kZT4gYW5kIDxjb2RlPndoZXJlPC9jb2RlPjwvbGk+Cgk8L3VsPgoK CTxoND5Gb3JtcyBhbmQgcGFnaW5nPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIj5mb3JtPC9zcGFuPiA6IHRoZSBmb3JtIHRvIHVzZSB0byBwYXJzZSBlYWNoIHJldHVy bmVkIHJvdy4gU2VlIDxhIGhyZWY9IiNyZXBsYWNlbWVudHMiPnJlcGxhY2VtZW50czwvYT4u IElmIG5vdCBzcGVjaWZpZWQsIHRoZSBwbHVnaW4gd2lsbCB1c2UgYW55dGhpbmcgY29udGFp bmVkIGJldHdlZW4gaXRzIG9wZW5pbmcgYW5kIGNsb3NpbmcgdGFnPC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0bm0iPmNvbHNmb3JtPC9zcGFuPiA6IG9wdGlvbmFsIDxzcGFuIGNsYXNz PSJjYXBzIj5UWFA8L3NwYW4+IGZvcm0gdG8gcGFyc2UgYW55IGhlYWRlciByb3cgY29udGFp bmluZyBjb2x1bW4gbmFtZXMgKG9mIGxpbWl0ZWQgdXNlKTwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG5tIj5wYWdlZm9ybTwvc3Bhbj4gOiBvcHRpb25hbCA8c3BhbiBjbGFzcz0iY2Fw cyI+VFhQPC9zcGFuPiBmb3JtIHVzZWQgdG8gc3BlY2lmeSB0aGUgbGF5b3V0IG9mIGFueSBw YWdpbmcgbmF2aWdhdGlvbiBhbmQgc3RhdGlzdGljcyBzdWNoIGFzIHBhZ2UgbnVtYmVyLCBx dWFudGl0eSBvZiByZWNvcmRzIHBlciBwYWdlLCB0b3RhbCBudW1iZXIgb2YgcmVjb3Jkcywg ZXRjLjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5wYWdlcG9zPC9zcGFuPiA6IHRo ZSBwb3NpdGlvbiBvZiB0aGUgcGFnaW5nIGluZm9ybWF0aW9uLiBPcHRpb25zIGFyZSA8Y29k ZT5iZWxvdzwvY29kZT4gKHRoZSBkZWZhdWx0KSwgPGNvZGU+YWJvdmU8L2NvZGU+LCBvciBi b3RoIG9mIHRoZW0gc2VwYXJhdGVkIGJ5IDxjb2RlPmRlbGltPC9jb2RlPjwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj5wcmVwYXJzZTwvc3Bhbj4gOiBub3JtYWxseSwgYW55IGNv bnRhaW5lciBvciBmb3JtIHdpbGwgaGF2ZSBpdHMgcmVwbGFjZW1lbnQgdmFyaWFibGVzIHN3 YXBwZWQgZm9yIGNvbnRlbnQgYW5kIDxlbT50aGVuPC9lbT4gaXQgd2lsbCBiZSBwYXJzZWQg dG8gcHJvY2VzcyBhbnkgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gdGFncy4gSWYg eW91IHdpc2ggdG8gcmV2ZXJzZSB0aGlzIG9yZGVyIHNvIHRoYXQgdGhlIGNvbnRhaW5lciBp cyBwYXJzZWQgZmlyc3QgYmVmb3JlIHRoZSByZXBsYWNlbWVudHMgYXJlIG1hZGUsIHNwZWNp ZnkgPGNvZGU+cHJlcGFyc2U9JnF1b3Q7MSZxdW90OzwvY29kZT4uIFZlcnkgdXNlZnVsIHdo ZW4gdXNpbmcgdGhlIDxjb2RlPiZsdDt0eHA6eWllbGQgLyZndDs8L2NvZGU+IHRhZyAoc2Vl IDxhIGhyZWY9IiNlZzkiPmV4YW1wbGUgOTwvYT4pLiBEZWZhdWx0OiAwPC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPmxpbWl0PC9zcGFuPiA6IHNob3cgdGhpcyBtYW55IHJlc3Vs dHMgcGVyIHBhZ2UuIEhhcyBubyBiZWFyaW5nIG9uIGFueSA8c3BhbiBjbGFzcz0iY2FwcyI+ U1FMPC9zcGFuPiA8Y29kZT5MSU1JVDwvY29kZT4geW91IG1heSBzZXQuIFNldHRpbmcgYSA8 Y29kZT5saW1pdDwvY29kZT4gaW4gdGhlIHNtZF9xdWVyeSB0YWcgc3dpdGNoZXMgcGFnaW5n IG9uIGF1dG9tYXRpY2FsbHkgc28geW91IGNhbiB1c2UgdGhlIDxjb2RlPiZsdDt0eHA6b2xk ZXIgLyZndDs8L2NvZGU+IGFuZCA8Y29kZT4mbHQ7dHhwOm5ld2VyIC8mZ3Q7PC9jb2RlPiB0 YWdzIGluc2lkZSB5b3VyIDxjb2RlPnBhZ2Vmb3JtPC9jb2RlPiB0byBzdGVwIHRocm91Z2gg ZWFjaCBwYWdlIG9mIHJlc3VsdHMuIFlvdSBtYXkgYWxzbyBjb25zdHJ1Y3QgeW91ciBvd24g cGFnaW5nIChzZWUgPGEgaHJlZj0iI2VnMTEiPmV4YW1wbGUgMTE8L2E+KTwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj5vZmZzZXQ8L3NwYW4+IDogc2tpcCB0aGlzIG1hbnkgcm93 cyBiZWZvcmUgb3V0cHV0dGluZyB0aGUgcmVzdWx0czwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdG5tIj5wYWdldmFyPC9zcGFuPiA6IGlmIHlvdSBhcmUgcHV0dGluZyBhbiBzbWRfcXVl cnkgb24gdGhlIHNhbWUgcGFnZSBhcyBhIHN0YW5kYXJkIGFydGljbGUgbGlzdCwgdGhlIGJ1 aWx0LWluIG5ld2VyIGFuZCBvbGRlciB0YWdzIHdpbGwgY2xhc2ggd2l0aCB0aG9zZSBvZiBz bWRfcXVlcnk7IGNsaWNraW5nIG5leHQvcHJldiB3aWxsIHN0ZXAgdGhyb3VnaCBib3RoIHlv dXIgcmVzdWx0IHNldCBhbmQgeW91ciBhcnRpY2xlIGxpc3QuIFNwZWNpZnkgYSBkaWZmZXJl bnQgdmFyaWFibGUgbmFtZSBoZXJlIHNvIHRoZSB0d28gbGlzdHMgY2FuIGJlIG5hdmlnYXRl ZCBpbmRlcGVuZGVudGx5LCBlLmcuIDxjb2RlPnBhZ2V2YXI9JnF1b3Q7cXBhZ2UmcXVvdDs8 L2NvZGU+LiBOb3RlIHRoYXQgaWYgeW91IGNoYW5nZSB0aGlzLCB5b3Ugd2lsbCBoYXZlIHRv IGdlbmVyYXRlIHlvdXIgb3duIGN1c3RvbSBuZXdlci9vbGRlciBsaW5rcyAoc2VlIDxhIGhy ZWY9IiNlZzExIj5leGFtcGxlIDExPC9hPikgYW5kIHRoZSA8YSBocmVmPSIjc21kX3FpZiI+ Y29uZGl0aW9uYWwgdGFnczwvYT4uIERlZmF1bHQ6IDxjb2RlPnBnPC9jb2RlPjwvbGk+Cgk8 L3VsPgoKCTxoND5GaWx0ZXJzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5t Ij51cmxmaWx0ZXI8L3NwYW4+IDogZmlsdGVyIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3Nw YW4+IGlucHV0IHdpdGggdGhpcyBsaXN0IG9mIHJlZ3VsYXIgZXhwcmVzc2lvbnMgKGVhY2gg c2VwYXJhdGVkIGJ5IDxjb2RlPmRlbGltPC9jb2RlPik8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+dXJscmVwbGFjZTwvc3Bhbj4gOiByZXBsYWNlIGVhY2ggZmlsdGVyZWQgPHNw YW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gZWxlbWVudCBsaXN0ZWQgaW4gPGNvZGU+dXJs ZmlsdGVyPC9jb2RlPiB3aXRoIHRoaXMgbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zIChl YWNoIHNlcGFyYXRlZCBieSA8Y29kZT5kZWxpbTwvY29kZT4pLiBJZiBub3QgdXNlZCwgYW55 dGhpbmcgbWF0Y2hpbmcgPGNvZGU+dXJsZmlsdGVyPC9jb2RlPiB3aWxsIGJlIHJlbW92ZWQg ZnJvbSBhbnkgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGVzLiBTZWUg PGEgaHJlZj0iI2ZpbHRlcmluZyI+RmlsdGVyaW5nIGFuZCBpbmplY3Rpb248L2E+PC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmRlZmF1bHRzPC9zcGFuPiA6IGNvbW1hIHNlcGFy YXRlZCBsaXN0IG9mIHZhbHVlcyB0byB1c2UgaW4gdGhlIGV2ZW50IHNvbWUgZmllbGQgeW91 IHNwZWNpZmllZCBkb2VzbiYjODIxNzt0IGV4aXN0LiBFYWNoIGRlZmF1bHQgc2hvdWxkIGJl IGdpdmVuIGFzIDxjb2RlPm5hbWU6IHZhbHVlPC9jb2RlPiAodGhlIDxjb2RlPjo8L2NvZGU+ IGlzIGNvbmZpZ3VyYWJsZSB2aWEgdGhlIDxjb2RlPnBhcmFtZGVsaW08L2NvZGU+IGF0dHJp YnV0ZSkuIEZvciBleGFtcGxlIDxjb2RlPmRlZmF1bHRzPSZxdW90O2lkOiAxLCBteV9jYXQ6 IG1hbW1hbHMsIHVzZXJfc2VjOiA/ZGVmc2VjJnF1b3Q7PC9jb2RlPiB3b3VsZCBtZWFuIHRo YXQgaWYgdGhlIDxjb2RlPmlkPC9jb2RlPiBmaWVsZCB3YXMgYmxhbmssIHRoZSBudW1iZXIg MSB3b3VsZCBiZSB1c2VkOyBpZiB0aGUgdmFyaWFibGUgPGNvZGU+bXlfY2F0PC9jb2RlPiB3 YXMgZW1wdHksIHRoZSB3b3JkIDxjb2RlPm1hbW1hbHM8L2NvZGU+IHdvdWxkIGJlIHVzZWQ7 IGFuZCBpZiB0aGUgPGNvZGU+dXNlcl9zZWM8L2NvZGU+IHZhcmlhYmxlIHdhcyBlbXB0eSwg dXNlIHRoZSBkZWZhdWx0IHZhbHVlIGFzIGZvdW5kIGluIHRoZSB2YXJpYWJsZSA8Y29kZT5k ZWZzZWM8L2NvZGU+ICh3aGljaCBjb3VsZCBoYXZlIGJlZW4gc2V0IHZpYSBhIDxjb2RlPiZs dDt0eHA6dmFyaWFibGUgLyZndDs8L2NvZGU+IGVhcmxpZXIgaW4gdGhlIHBhZ2UpPC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmVzY2FwZTwvc3Bhbj4gOiBsaXN0IG9mIGNvbHVt biBuYW1lcyB3aXRoIHdoaWNoIHRvIGVzY2FwZSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwv c3Bhbj4gZW50aXRpZXMuIFVzZWZ1bCBpZiB5b3UgaGF2ZSByZXR1cm5lZCBib2R5IG9yIGV4 Y2VycHQgYmxvY2tzIHRoYXQgbWF5IGNvbnRhaW4gYXBvc3Ryb3BoZXMgdGhhdCBjb3VsZCBr aWxsIHRhZ3MgaW5zaWRlIHRoZSBzbWRfcXVlcnkgY29udGFpbmVyLiBEZWZhdWx0PSYjODIx NzsmIzgyMTY7PC9saT4KCTwvdWw+CgoJPGg0PlRhZy9jbGFzcy9mb3JtYXR0aW5nIGF0dHJp YnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxhYmVsPC9zcGFu PiA6IGxhYmVsIHRvIGRpc3BsYXkgYWJvdmUgdGhlIGVudGlyZSBvdXRwdXQ8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+bGFiZWx0YWc8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFn IHRvIHN1cnJvdW5kIHRoZSBsYWJlbCB3aXRoLiBTcGVjaWZ5IGl0IHdpdGhvdXQgYW5nbGUg YnJhY2tldHMgKGUuZy4gPGNvZGU+bGFiZWx0YWc9JnF1b3Q7aDMmcXVvdDs8L2NvZGU+KTwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj53cmFwdGFnPC9zcGFuPiA6IHRoZSAoWClI VE1MIHRhZyB0byBzdXJyb3VuZCB0aGUgZW50aXJlIG91dHB1dCAoZS5nLiA8Y29kZT53cmFw dGFnPSZxdW90O3RhYmxlJnF1b3Q7PC9jb2RlPik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+YnJlYWs8L3NwYW4+IDogZWFjaCByb3cgd2lsbCBiZSB3cmFwcGVkIHdpdGggdGhp cyB0YWcgKGUuZy4gPGNvZGU+YnJlYWs9JnF1b3Q7dHImcXVvdDs8L2NvZGU+KTwvbGk+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jbGFzczwvc3Bhbj4gOiA8c3BhbiBjbGFzcz0iY2Fw cyI+Q1NTPC9zcGFuPiBjbGFzcyBuYW1lIHRvIGFwcGx5IHRvIGVhY2ggcm93PC9saT4KCTwv dWw+CgoJPGg0PlBsdWdpbiBjdXN0b21pc2F0aW9uPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5zdHJpY3RmaWVsZHM8L3NwYW4+IDogd2hlbiB1c2luZyAmIzgyMTY7 PyYjODIxNzsgZmllbGRzLCBzcGFjZXMgYXJlIGFsbG93ZWQgaW4gZmllbGQgbmFtZXMuIFNl dCA8Y29kZT5zdHJpY3RmaWVsZHM9JnF1b3Q7MSZxdW90OzwvY29kZT4gdG8gZm9yYmlkIHNw YWNlcy4gRGVmYXVsdDogMDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kZWxpbTwv c3Bhbj4gOiB0aGUgZGVsaW1pdGVyIHRvIHVzZSBiZXR3ZWVuIHBhdHRlcm5zIGluIDxjb2Rl PnVybGZpbHRlcjwvY29kZT4gYW5kIDxjb2RlPnVybHJlcGxhY2U8L2NvZGU+LiBEZWZhdWx0 OiBjb21tYSAoPGNvZGU+LDwvY29kZT4pPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PnBhcmFtZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2VlbiBuYW1l LXZhbHVlIHBhaXJzIGluIDxjb2RlPmRlZmF1bHRzPC9jb2RlPi4gRGVmYXVsdDogY29sb24g KDxjb2RlPjo8L2NvZGU+KTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5zaWxlbnQ8 L3NwYW4+IDogaWYgeW91ciBxdWVyeSBjb250YWlucyBhbiBlcnJvciAod3JvbmcgY29sdW1u IG5hbWUgb3Igc29tZSBtYWxmb3JtZWQgaW5wdXQpLCB0aGUgcGx1Z2luIHdpbGwgaXNzdWUg YSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBlcnJvciBtZXNzYWdlLiBVc2luZyA8 Y29kZT5zaWxlbnQ9JnF1b3Q7MSZxdW90OzwvY29kZT4gd2lsbCBhdHRlbXB0IHRvIGhpZGUg dGhpcyBlcnJvciBtZXNzYWdlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNvdW50 PC9zcGFuPiA6IENhbiBiZSBlaXRoZXIgJiM4MjIwO3VwJiM4MjIxOyAodGhlIGRlZmF1bHQp IG9yICYjODIyMDtkb3duJiM4MjIxOy4gU2VlIDxhIGhyZWY9IiNyZXBsYWNlbWVudHMiPntz bWRfdGhpc3Jvd308L2E+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmRlYnVnPC9z cGFuPiA6IHNldCB0byAxIHRvIHNob3cgc29tZSBkZWJ1ZyBvdXRwdXQ7IHVzZSAyIHRvIHNo b3cgYSBiaXQgbW9yZSBkZXRhaWw8L2xpPgoJPC91bD4KCgk8cD5UaGUgYXR0cmlidXRlcyA8 Y29kZT5xdWVyeTwvY29kZT4sIDxjb2RlPmNvbHVtbjwvY29kZT4sIDxjb2RlPnRhYmxlPC9j b2RlPiBhbmQgPGNvZGU+d2hlcmU8L2NvZGU+IGNhbiBjb250YWluIHJlcGxhY2VtZW50cyB0 aGVtc2VsdmVzIHRvIHJlYWQgdmFsdWVzIGZyb20gdGhlIGN1cnJlbnQgY29udGV4dC4gU3Bl Y2lmeSB0aGUgZmllbGQgbmFtZSB3aXRoIGEgPGNvZGU+PzwvY29kZT4gaW4gZnJvbnQgb2Yg aXQgKGUuZy4gPGNvZGU+cXVlcnk9JnF1b3Q7U0VMRUNUICogRlJPTSB0eHBfaW1hZ2UgV0hF UkUgY2F0ZWdvcnk9JiMzOTs/Y2F0ZWdvcnkxJiMzOTsgT1IgY2F0ZWdvcnk9JiMzOTs/Y2F0 ZWdvcnkyJiMzOTs8L2NvZGU+KSB3b3VsZCBzaG93IGltYWdlcyB0aGF0IGhhZCB0aGVpciBj YXRlZ29yeSBzZXQgdG8gb25lIG9mIHRoZSBhcnRpY2xlJiM4MjE3O3MgY2F0ZWdvcmllcy48 L3A+CgoJPHA+VGhlICYjODIxNjs/JiM4MjE3OyBmaWVsZHMgY2FuIGJlIGFueSBpdGVtIGZy b20gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHVuaXZlcnNlLCBpbmNsdWRp bmcgYW55dGhpbmcgc2V0IGluIGEgPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29k ZT4gb3Igc29tZSB1c2VyLWlucHV0IG9uIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9z cGFuPiBhZGRyZXNzIGJhci4gRmllbGRzIGFyZSBwcm9jZXNzZWQgaW4gdGhlIGZvbGxvd2lu ZyBvcmRlcjsgYXMgc29vbiBhcyBhIG1hdGNoaW5nIGVudHJ5IGlzIGZvdW5kLCB0aGUgcmVz dCBhcmUgbm90IGNoZWNrZWQ6PC9wPgoKCTxwPjxjb2RlPiZsdDt0eHA6dmFyaWFibGUgLyZn dDs8L2NvZGU+IC0mZ3Q7IDxjb2RlPiRfU0VSVkVSPC9jb2RlPiB2YXIgLSZndDsgaW1hZ2Ug LSZndDsgZmlsZSAtJmd0OyBsaW5rIC0mZ3Q7IGdsb2JhbCBhcnRpY2xlIC0mZ3Q7IGN1cnJl bnQgYXJ0aWNsZSAtJmd0OyA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXIgLSZn dDsgZGVmYXVsdCB2YWx1ZSAtJmd0OyB2ZXJiYXRpbSAod2l0aG91dCAmIzgyMTY7PyYjODIx NzspPC9wPgoKCTxwPlRoaXMgaGllcmFyY2h5IGFsbG93cyBzb21lIGRlZ3JlZSBvZiBzYWZl dHk6IHNpbmNlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHZhcmlhYmxlcyBhcmUg dWx0aW1hdGVseSBzZXQgYnkgeW91LCB0aGV5IGFyZSBjaGVja2VkIGZpcnN0LCB0aGVuIGdy YWR1YWxseSBsZXNzIHNwZWNpZmljIHN0dWZmIGlzIGNoZWNrZWQgdW50aWwgPHNwYW4gY2xh c3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGVzIGFyZSBjb25zaWRlcmVkIGF0IHRoZSBi b3R0b20gb2YgdGhlIGZvb2QgY2hhaW4uPC9wPgoKCTxoMiBjbGFzcz0iYXR0cyAiIGlkPSJy ZXBsYWNlbWVudHMiPlJlcGxhY2VtZW50IHRhZ3M8L2gyPgoKCTxwPkluIHlvdXIgb3V0cHV0 IGZvcm0geW91IG1heSBzcGVjaWZ5IGFueSBjb2x1bW4gbmFtZSBzdXJyb3VuZGVkIHdpdGgg PGNvZGU+e308L2NvZGU+IGNoYXJhY3RlcnMgdG8gZGlzcGxheSB0aGF0IGZpZWxkLiBTbyBp ZiB5b3VyIHF1ZXJ5IHdhcyA8Y29kZT5TRUxFQ1QgaWQsIG5hbWUsIGNhdGVnb3J5IEZST00g dHhwX2ltYWdlIFdIRVJFIGV4dD0mcXVvdDsuanBnJnF1b3Q7PC9jb2RlPiB5b3Ugd291bGQg aGF2ZSB0aGUgZm9sbG93aW5nIHJlcGxhY2VtZW50cyBhdmFpbGFibGU6PC9wPgoKCTx1bD4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntpZH08L3NwYW4+IDogdGhlIGltYWdlIElEPC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntuYW1lfTwvc3Bhbj4gOiB0aGUgaW1hZ2Ug ZmlsZW5hbWU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e2NhdGVnb3J5fTwvc3Bh bj4gOiB0aGUgaW1hZ2UgY2F0ZWdvcnk8L2xpPgoJPC91bD4KCgk8cD5KdXN0IHB1dCB0aG9z ZSBuYW1lcyBpbnRvIHlvdXIgPGNvZGU+Zm9ybTwvY29kZT4gYW1vbmcgb3RoZXIgbm9ybWFs IDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0iY2FwcyI+ VFhQPC9zcGFuPiB0YWdzLCBhbmQgdGhlIHJlbGV2YW50IHZhbHVlIGZyb20gdGhhdCByb3cg d2lsbCBiZSBkaXNwbGF5ZWQuIFRoZSByZXBsYWNlbWVudHMgaG9ub3VyIGFueSA8Y29kZT5B UzwvY29kZT4gc3RhdGVtZW50IHlvdSBtYXkgZW1wbG95IHRvIHJlbmFtZSB0aGVtLjwvcD4K Cgk8cD5JbiBhZGRpdGlvbiwgdGhlIGZvbGxvd2luZyByZXBsYWNlbWVudHMgYXJlIGFkZGVk IHRvIGVhY2ggcm93OjwvcD4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21k X2FsbHJvd3N9PC9zcGFuPiA6IHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cyBpbiB0aGUgcmVz dWx0IHNldDxzdXAgY2xhc3M9ImZvb3Rub3RlIj48YSBocmVmPSIjZm41MDYwODAxMDg0YjFh MzJiYTdlOTZkIj4xPC9hPjwvc3VwPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57 c21kX3Jvd3N9PC9zcGFuPiA6IHRoZSB0b3RhbCBudW1iZXIgb2Ygcm93cyB2aXNpYmxlIG9u IHRoaXMgcGFnZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3BhZ2VzfTwv c3Bhbj4gOiB0aGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzIGluIHRoaXMgcmVzdWx0IHNldDxz dXAgY2xhc3M9ImZvb3Rub3RlIj48YSBocmVmPSIjZm41MDYwODAxMDg0YjFhMzJiYTdlOTZk Ij4xPC9hPjwvc3VwPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3RoaXNw YWdlfTwvc3Bhbj4gOiB0aGUgY3VycmVudCBwYWdlIG51bWJlciBiZWluZyB2aWV3ZWQ8c3Vw IGNsYXNzPSJmb290bm90ZSI+PGEgaHJlZj0iI2ZuNTA2MDgwMTA4NGIxYTMyYmE3ZTk2ZCI+ MTwvYT48L3N1cD48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF90aGlzcm93 fTwvc3Bhbj4gOiB0aGUgY3VycmVudCByb3cgbnVtYmVyIG9uIHRoaXMgcGFnZTwvbGk+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3RoaXNpbmRleH08L3NwYW4+IDogdGhlIGN1 cnJlbnQgcm93IG51bWJlciAoemVyby1iYXNlZCkgb24gdGhpcyBwYWdlPC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfY3Vyc29yfTwvc3Bhbj4gOiB0aGUgY3VycmVudCBy b3cgbnVtYmVyIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSByZXN1bHQgc2V0PC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfY3Vyc29yaW5kZXh9PC9zcGFuPiA6IHRoZSBjdXJy ZW50IHJvdyBudW1iZXIgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHJlc3VsdCBzZXQgKHplcm8t YmFzZWQpPC9saT4KCTwvdWw+CgoJPHAgaWQ9ImZuNTA2MDgwMTA4NGIxYTMyYmE3ZTk2ZCIg Y2xhc3M9ImZvb3Rub3RlIj48c3VwPjE8L3N1cD4gVGhlc2UgdGhyZWUgaXRlbXMgYXJlIGFs c28gYXZhaWxhYmxlIGluIHlvdXIgZGVzaWduYXRlZCA8Y29kZT5wYWdlZm9ybTwvY29kZT4u IFRoZSBwYWdlZm9ybSBjYW4gYWxzbyB1dGlsaXNlIHRoZXNlIGV4dHJhIHJlcGxhY2VtZW50 czo8L3A+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9wcmV2cGFnZX08 L3NwYW4+IDogdGhlIHByZXZpb3VzIHBhZ2UgbnVtYmVyIChlbXB0eSBpZiBvbiBmaXJzdCBw YWdlKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX25leHRwYWdlfTwvc3Bh bj4gOiB0aGUgbmV4dCBwYWdlIG51bWJlciAoZW1wdHkgaWYgb24gbGFzdCBwYWdlKTwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX3Jvd19zdGFydH08L3NwYW4+IDogdGhl IGZpcnN0IHJvdyBudW1iZXIgYmVpbmcgZGlzcGxheWVkPC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0bm0iPntzbWRfcm93X2VuZH08L3NwYW4+IDogdGhlIGxhc3Qgcm93IG51bWJlciBi ZWluZyBkaXNwbGF5ZWQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9yb3dz X3ByZXZ9PC9zcGFuPiA6IHRoZSBudW1iZXIgb2Ygcm93cyBvbiB0aGUgcHJldmlvdXMgcGFn ZS4gV2lsbCBlaXRoZXIgYmUgdGhlIHZhbHVlIG9mIHlvdXIgPGNvZGU+bGltaXQ8L2NvZGU+ LCBvciAwIGlmIG9uIHRoZSBmaXJzdCBwYWdlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPntzbWRfcm93c19uZXh0fTwvc3Bhbj4gOiB0aGUgbnVtYmVyIG9mIHJvd3Mgb24gdGhl IG5leHQgcGFnZTwvbGk+Cgk8L3VsPgoKCTxwPlRoZXNlIGFyZSB1c2VmdWwgZm9yIHRhYmxl cyB0byBzaG93IHJvdyBudW1iZXJzLCBidXQgY2FuIGFsc28gYmUgdXNlZCBmb3IgcGFnaW5h dGlvbiBvciBjYW4gYmUgdGVzdGVkIHdpdGggc21kX2lmIHRvIHRha2UgYWN0aW9uIGZyb20g d2l0aGluIHlvdXIgZm9ybS4gPGNvZGU+e3NtZF90aGlzcm93fTwvY29kZT4sIDxjb2RlPntz bWRfdGhpc2luZGV4fTwvY29kZT4sIDxjb2RlPntzbWRfY3Vyc29yfTwvY29kZT4sIGFuZCA8 Y29kZT57c21kX2N1cnNvcmluZGV4fTwvY29kZT4gY291bnQgdXAgb3IgZG93biBkZXBlbmRp bmcgb24gdGhlIDxjb2RlPmNvdW50PC9jb2RlPiBhdHRyaWJ1dGUgKDxjb2RlPntzbWRfcm93 X3N0YXJ0fTwvY29kZT4gYW5kIDxjb2RlPntzbWRfcm93X2VuZH08L2NvZGU+IGFsc28gY2hh bmdlIGFjY29yZGluZ2x5KS48L3A+CgoJPGgyIGlkPSJzbWRfcWlmIj48Y29kZT4mbHQ7dHhw OnNtZF9xdWVyeV9pZl9wcmV2Jmd0OyAvICZsdDt0eHA6c21kX3F1ZXJ5X2lmX25leHQmZ3Q7 PC9jb2RlPjwvaDI+CgoJPHA+VXNlIHRoZXNlIGNvbnRhaW5lciB0YWdzIHRvIGRldGVybWlu ZSBpZiB0aGVyZSBpcyBhIG5leHQgb3IgcHJldmlvdXMgcGFnZSBhbmQgdGFrZSBhY3Rpb24g aWYgc28uIENhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIDxjb2RlPnBhZ2Vmb3JtPC9jb2RlPiwg dGh1cyBhbGwgPGEgaHJlZj0iI3JlcGxhY2VtZW50cyI+cGFnaW5nIHJlcGxhY2VtZW50IHZh cmlhYmxlczwvYT4gYXJlIGF2YWlsYWJsZSBpbnNpZGUgdGhlc2UgdGFncy48L3A+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9xdWVyeV9p Zl9wcmV2Jmd0O1ByZXZpb3VzIHBhZ2UmbHQ7L3R4cDpzbWRfcXVlcnlfaWZfcHJldiZndDsK Jmx0O3R4cDpzbWRfcXVlcnlfaWZfbmV4dCZndDtOZXh0IHBhZ2UmbHQ7L3R4cDpzbWRfcXVl cnlfaWZfbmV4dCZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlNlZSA8YSBocmVmPSIjZWcxMSI+ ZXhhbXBsZSAxMTwvYT4gZm9yIG1vcmUuPC9wPgoKCTxoMiBpZD0iZmlsdGVyaW5nIj5GaWx0 ZXJpbmcgYW5kIGluamVjdGlvbjwvaDI+CgoJPHA+QWZ0ZXIgZ3JlYXQgZGVsaWJlcmF0aW9u LCBhY2Nlc3MgdG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGxpbmUgaGFz IGJlZW4gZ3JhbnRlZCBzbyB5b3UgbWF5IGVtcGxveSB1c2VyLWVudGVyZWQgZGF0YSBpbiB5 b3VyIHF1ZXJpZXMsIGFsbG93aW5nIGNvbXBsZXRlIGZsZXhpYmlsaXR5IGZvciB5b3VyIHVz ZXIgYmFzZS4gSG93ZXZlciwgYXMgUGV0ZXIgUGFya2VyJiM4MjE3O3MgY29uc2NpZW5jZSBt aWdodCBzYXk6PC9wPgoKCTxibG9ja3F1b3RlPgoJCTxwPldpdGggZ3JlYXQgcG93ZXIgY29t ZXMgZ3JlYXQgcmVzcG9uc2liaWxpdHk8L3A+Cgk8L2Jsb2NrcXVvdGU+CgoJPHA+Tm90IGV2 ZXJ5Ym9keSBvdXQgdGhlcmUgaXMgdHJ1c3R3b3J0aHkgc28gaGVlZCB0aGlzIHdhcm5pbmc6 IDxzdHJvbmc+QXNzdW1lIDxzcGFuIGNsYXNzPSJjYXBzIj5BTEw8L3NwYW4+IHVzZXIgaW5w dXQgaXMgdGFpbnRlZDwvc3Ryb25nPi4gQ2hlY2sgZXZlcnl0aGluZy4gSWYgeW91IHdhbnQg dG8ga25vdyBtb3JlIGFib3V0IHdoYXQgcGVvcGxlIGNhbiBkbyB3aXRoIGFjY2VzcyB0byBv bmUgc2ltcGxlIHBvcnRpb24gb2YgeW91ciA8c3BhbiBjbGFzcz0iY2FwcyI+U1FMPC9zcGFu PiBxdWVyeSwgR29vZ2xlIGZvciAmIzgyMTY7PHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bh bj4gaW5qZWN0aW9uJiM4MjE3Oy48L3A+CgoJPHA+Rm9yIHRob3NlIHN0aWxsIHJlYWRpbmcs IHRoZSBnb29kIG5ld3MgaXMgdGhhdCB0aGUgcGx1Z2luIGRvZXMgZXZlcnl0aGluZyBpdCBj YW4gdG8gcHJlLWZpbHRlciBzdHVmZiBvbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwv c3Bhbj4gbGluZSBiZWZvcmUgaXQgZ2V0cyB0byB0aGUgcXVlcnkuIFRoaXMgc2hvdWxkIG1h a2UgeW91ciB1c2VyIGlucHV0IHNhZmUgZW5vdWdoLCBidXQgZm9yIHRoZSBwYXJhbm9pZCAo b3Igc2Vuc2libGUpIHRoZXJlIGFyZSB0d28gYXR0cmlidXRlcyB5b3UgY2FuIHVzZSB0byBj bGFtcCBkb3duIGFsbG93YWJsZSB1c2VyIGlucHV0LiBJZiB5b3Uga25vdyBhbnl0aGluZyBh Ym91dCA8YSBocmVmPSJodHRwOi8vd3d3LnJlZ3VsYXItZXhwcmVzc2lvbnMuaW5mby9xdWlj a3N0YXJ0Lmh0bWwiPnJlZ3VsYXIgZXhwcmVzc2lvbnM8L2E+IG9yIGFyZSBmYW1pbGlhciB3 aXRoIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9zcGFuPiBmdW5jdGlvbiA8YSBocmVm PSJodHRwOi8vdWsyLnBocC5uZXQvcHJlZ19yZXBsYWNlIj5wcmVnX3JlcGxhY2UoKTwvYT4g dGhlbiB5b3UmIzgyMTc7bGwgYmUgcmlnaHQgYXQgaG9tZSBiZWNhdXNlLCBwdXQgc2ltcGx5 LCB5b3UgY2FuIG9wdGlvbmFsbHkgcGFzcyBldmVyeSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJM PC9zcGFuPiB2YXJpYWJsZSB0aHJvdWdoIGl0IHRvIHJlbW92ZSBzdHVmZiB5b3UgZG9uJiM4 MjE3O3Qgd2FudC48L3A+CgoJPGgzIGlkPSJ1cmxmaWx0ZXIiPnVybGZpbHRlcjwvaDM+CgoJ PHA+VGhpcyB0YWtlcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IChhdCBsZWFzdCBieSBkZWZh dWx0OyBvdmVycmlkZSB0aGUgY29tbWEgd2l0aCB0aGUgPGNvZGU+ZGVsaW08L2NvZGU+IGF0 dHJpYnV0ZSBpZiB5b3UgbmVlZCB0byB1c2UgY29tbWFzIGluIHlvdXIgZmlsdGVyIHN0cmlu Z3MpIG9mIGNvbXBsZXRlIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJucyB0aGF0IHlvdSB3 aXNoIHRvIHNlYXJjaCBmb3IsIGluIGV2ZXJ5IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3Nw YW4+IHZhcmlhYmxlLiBGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnRlZCB0byBlbnN1cmUgdGhh dCB5b3VyIHVzZXJzIG9ubHkgZW50ZXJlZCBkaWdpdHMgeW91IGNvdWxkIHNwZWNpZnkgdGhp czo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj51cmxmaWx0 ZXI9JnF1b3Q7L1teXGRdKy8mcXVvdDsKPC9jb2RlPjwvcHJlPgoKCTxwPkJyaWVmbHksIHRo ZSBzdGFydGluZyBhbmQgdHJhaWxpbmcgPGNvZGU+LzwvY29kZT4gbWFya3MgZGVsaW1pdCBh IHJlZ3VsYXIgZXhwcmVzc2lvbiAmIzgyMTI7IHRoZXkgbXVzdCBhbHdheXMgYmUgcHJlc2Vu dC4gVGhlIHNxdWFyZSBicmFja2V0cyBkZW5vdGUgYSBncm91cCBvZiBjaGFyYWN0ZXJzLCB0 aGUgY2lyY3VtZmxleCBuZWdhdGVzIHRoZSBncm91cCwgdGhlIDxjb2RlPlxkPC9jb2RlPiBt ZWFucyAmIzgyMjA7YW55IGRpZ2l0JiM4MjIxOyBhbmQgdGhlIDxjb2RlPis8L2NvZGU+IHNw ZWNpZmllcyB0aGF0IHlvdSB3YW50IGl0IHRvIGNoZWNrIGZvciBvbmUgb3IgbW9yZSBvZiB0 aGUgcHJlY2VkaW5nIHRoaW5ncy4gSW4gb3RoZXIgd29yZHMsIGxvb2sgZm9yIGFueXRoaW5n IGluIHRoZSBpbnB1dCB0aGF0IGlzIDxzdHJvbmc+bm90PC9zdHJvbmc+IG9uZSBvciBtb3Jl IGRpZ2l0cy4gVGhhdCB3b3VsZCBtYXRjaCBhbnkgbGV0dGVycywgcXVvdGVzLCBzcGVjaWFs IGNoYXJhY3RlcnMsIGFueXRoaW5nIGF0IGFsbCB0aGF0IHdhc24mIzgyMTc7dCBhIHplcm8g dG8gbmluZS48L3A+CgoJPHA+WW91IGNhbiBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgZmlsdGVy IGxpa2UgdGhpczo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2Nr Ij51cmxmaWx0ZXI9JnF1b3Q7L1xkLywgL1xzLyZxdW90Owo8L2NvZGU+PC9wcmU+CgoJPHA+ VGhhdCB3b3VsZCBsb29rIGZvciBhbnkgc2luZ2xlIGRpZ2l0IGFuZCBhbnkgc2luZ2xlIHNw YWNlIGNoYXJhY3Rlci4gVGhhdCYjODIxNztzIGEgc2ltcGxlIGV4YW1wbGUgYW5kIHlvdSBj b3VsZCBkbyBpdCBhbGwgaW4gb25lIHJlZ2V4LCBidXQgc3BsaXR0aW5nIHRoZW0gdXAgY2Fu IGhlbHAgeW91IGZpbHRlciBzdHVmZiBiZXR0ZXIgKHNlZSA8YSBocmVmPSIjdXJscmVwbGFj ZSI+dXJscmVwbGFjZTwvYT4gZm9yIGFuIGV4YW1wbGUpLjwvcD4KCgk8cD5CeSBkZWZhdWx0 LCBpZiB5b3UganVzdCBzcGVjaWZ5IDxjb2RlPnVybGZpbHRlcjwvY29kZT4gd2l0aG91dCA8 Y29kZT51cmxyZXBsYWNlPC9jb2RlPiwgYW55dGhpbmcgdGhhdCBtYXRjaGVzIHlvdXIgZmls dGVyIHBhdHRlcm5zIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSB1c2VyIGlucHV0LjwvcD4K Cgk8aDMgaWQ9InVybHJlcGxhY2UiPnVybHJlcGxhY2U8L2gzPgoKCTxwPlRoZSBvdGhlciBo YWxmIG9mIHRoZSBmaWx0ZXJpbmcgamlnc2F3IGFsbG93cyB5b3UgdG8gbm90IGp1c3QgcmVt b3ZlIGFueXRoaW5nIHRoYXQgbWF0Y2hlcywgYnV0IGFjdHVhbGx5IHJlcGxhY2UgaXQgd2l0 aCBzb21ldGhpbmcgZWxzZS4gU3BlY2lmeSBhIGZpeGVkIHN0cmluZywgYSBsaXN0IG9mIGZp eGVkIHN0cmluZ3Mgb3IgbW9yZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBwYXR0 ZXJucyB0byByZXBsYWNlIHdoYXRldmVyIG1hdGNoZXMgeW91ciA8Y29kZT51cmxmaWx0ZXI8 L2NvZGU+LiBVc2luZyB0aGUgZmlyc3QgZmlsdGVyIGV4YW1wbGUgZnJvbSBhYm92ZSwgeW91 IGNvdWxkIHJlcGxhY2UgYW55dGhpbmcgdGhhdCBpcyBub3QgYSBkaWdpdCB3aXRoIGEgaHlw aGVuIGJ5IHNwZWNpZnlpbmc6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNz PSJibG9jayI+dXJscmVwbGFjZT0mcXVvdDstJnF1b3Q7CjwvY29kZT48L3ByZT4KCgk8cD5T byBpZiB5b3UgYWxsb3dlZCBhIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlh YmxlIGNhbGxlZCA8Y29kZT5kaWdpdHM8L2NvZGU+IGFuZCBhIHNpdGUgdmlzaXRvciBlbnRl cmVkIDxjb2RlPj9kaWdpdHM9WmFwaG9kIDQgVHJpbGxpYW48L2NvZGU+LCB5b3VyIDxzcGFu IGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxlIHdvdWxkIGJlY29tZTogPGNvZGU+ LS0tLS0tLTQtLS0tLS0tLTwvY29kZT4uIE5vdCBtdWNoIHVzZSwgYnV0IGhleSwgaXQmIzgy MTc7cyBhbiBleGFtcGxlITwvcD4KCgk8cD5BcyB3aXRoIDxjb2RlPnVybGZpbHRlcjwvY29k ZT4geW91IGNhbiBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgcmVwbGFjZW1lbnQgYW5kIHRoZXkg d2lsbCBwYWlyIHVwIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyBmaWx0ZXIuIEluIG90aGVy IHdvcmRzLCBpZiB5b3UgdGFrZSB0aGUgc2Vjb25kIGZpbHRlciBhYm92ZSAoPGNvZGU+dXJs ZmlsdGVyPSZxdW90Oy9cZC8sIC9ccy8mcXVvdDs8L2NvZGU+KSBhbmQgdXNlZCB0aGlzOjwv cD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPnVybHJlcGxhY2U9 JnF1b3Q7LCAtJnF1b3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGVuIGFueSBkaWdpdCBpbiB5 b3VyIHVzZXIgaW5wdXQgd291bGQgYmUgcmVtb3ZlZCAodGhlcmUgaXMgbm90aGluZyBiZWZv cmUgdGhlIGNvbW1hKSBhbmQgYW55IHNwYWNlIGNoYXJhY3RlciB3b3VsZCBiZSByZXBsYWNl ZCB3aXRoIGEgaHlwaGVuLjwvcD4KCgk8cD5JZiBhdCBhbnkgdGltZSBhIGZpZWxkIGdpdmVz IGFuIGVtcHR5IHJlc3VsdCAoaS5lLiBpdCB0b3RhbGx5IGZhaWxzIGFueSA8Y29kZT51cmxm aWx0ZXI8L2NvZGU+IHRlc3RzIG9yIHNpbXBseSByZXR1cm5zIG5vdGhpbmcgYmVjYXVzZSBp dCBoYXMgbm90IGJlZW4gc2V0KSwgYW55IDxjb2RlPmRlZmF1bHRzPC9jb2RlPiBhc3NpZ25l ZCB0byB0aGF0IHZhcmlhYmxlIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLiBJZiB0aGVyZSBhcmUg bm8gZGVmYXVsdHMsIHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZSBpdHNlbGYgKG1pbnVzIGl0 cyA8Y29kZT4/PC9jb2RlPikgd2lsbCBiZSB1c2VkLjwvcD4KCgk8cD5XaXRoIHRoZXNlIHR3 byBmaWx0ZXJzIGF0IHlvdXIgZGlzcG9zYWwgYW5kIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkg ZGVmYXVsdCB2YWx1ZXMgZm9yIHVzZXIgdmFyaWFibGVzLCB5b3UgY2FuIG1ha2UgeW91ciBx dWVyaWVzIG11Y2ggc2FmZXIgdG8gdGhlIG91dHNpZGUgd29ybGQgYW5kIHN0YXJ0IHVzaW5n IDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiBmb3JtcyB0byBnYXRoZXIgaW5wdXQg ZnJvbSB1c2VycyB0aGF0IGNhbiB0aGVuIGJlIHBsdWdnZWQgaW50byBxdWVyaWVzLCBmYWly bHkgc2FmZSBpbiB0aGUga25vd2xlZGdlIHRoYXQgeW91ciBkYXRhYmFzZSBpcyBub3QgZ29p bmcgdG8gaW1wbG9kZS48L3A+CgoJPHA+QnV0IHBsZWFzZSByZW1lbWJlcjo8L3A+CgoJPGJs b2NrcXVvdGU+CgkJPHA+QXNzdW1lIDxzdHJvbmc+YWxsPC9zdHJvbmc+IHVzZXIgaW5wdXQg aXMgdGFpbnRlZDogY2hlY2sgZXZlcnl0aGluZy48L3A+Cgk8L2Jsb2NrcXVvdGU+CgoJPGgy IGlkPSJleGFtcGxlcyI+RXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE6 IFNpbXBsZSBpbWFnZSBzZWxlY3QgcXVlcnk8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxj b2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcXVlcnkgY29sdW1uPSZxdW90OyomcXVv dDsKICAgICB0YWJsZT0mcXVvdDt0eHBfaW1hZ2UmcXVvdDsKICAgICB3aGVyZT0mcXVvdDtj YXRlZ29yeT0mIzM5O21hbW1hbCYjMzk7IE9SIGNhdGVnb3J5PSYjMzk7YmlyZCYjMzk7JnF1 b3Q7CiAgICAgZm9ybT0mcXVvdDtkYm91dCZxdW90OyB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7 IGJyZWFrPSZxdW90O2xpJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5XaXRoIGZv cm0gPGNvZGU+ZGJvdXQ8L2NvZGU+IGNvbnRhaW5pbmc6PC9wPgoKPHByZSBjbGFzcz0iYmxv Y2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O2EgaHJlZj0mcXVvdDsvaW1hZ2VzL3tpZH17 ZXh0fSZxdW90OyAvJmd0OyZsdDt0eHA6dGh1bWJuYWlsIG5hbWU9JnF1b3Q7e25hbWV9JnF1 b3Q7IC8mZ3Q7Jmx0Oy9hJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+V2lsbCByZW5kZXIgYW4g dW5vcmRlcmVkIGxpc3Qgb2YgdGh1bWJuYWlscyB3aXRoIGxpbmtzIHRvIHRoZSBmdWxsc2l6 ZSBpbWFnZSBpZiB0aGUgY2F0ZWdvcnkgaXMgZWl0aGVyIDxjb2RlPm1hbW1hbDwvY29kZT4g b3IgPGNvZGU+YmlyZDwvY29kZT4uPC9wPgoKCTxoMyBpZD0iZWcyIj5FeGFtcGxlIDI6IGxp bmsgY2F0ZWdvcnkgbGlzdCB0byBwYXJlbnQ8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxj b2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcXVlcnkgcXVlcnk9JnF1b3Q7U0VMRUNU IERJU1RJTkNUCiAgICAgdHhjLm5hbWUgRlJPTSB0eHBfY2F0ZWdvcnkgQVMgdHhjLCB0ZXh0 cGF0dGVybiBBUyB0eHAKICAgICBXSEVSRSB0eXBlPSYjMzk7YXJ0aWNsZSYjMzk7IEFORCBw YXJlbnQ9JiMzOTthbmltYWxzJiMzOTsKICAgICBBTkQgKHR4Yy5uYW1lID0gdHhwLmNhdGVn b3J5MSBPUiB0eGMubmFtZSA9IHR4cC5jYXRlZ29yeTIpCiAgICAgZm9ybT0mcXVvdDtkYm91 dCZxdW90OyB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGJyZWFrPSZxdW90O2xpJnF1b3Q7IC8m Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5XaXRoIGZvcm0gPGNvZGU+ZGJvdXQ8L2NvZGU+IGNv bnRhaW5pbmc6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+ Jmx0O3R4cDpjYXRlZ29yeSBuYW1lPSZxdW90O3tuYW1lfSZxdW90OyBsaW5rPSZxdW90OzEm cXVvdDsgdGl0bGU9JnF1b3Q7MSZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+V2ls bCByZW5kZXIgYSBsaXN0IG9mIGxpbmthYmxlIGNhdGVnb3J5IG5hbWVzIHRoYXQgY29udGFp biBhcnRpY2xlcyB3aXRoIGNhdGVnb3JpZXMgdGhhdCBoYXZlIHRoZSBnaXZlbiBwYXJlbnQu IElmIGEgY2F0ZWdvcnkgaXMgdW51c2VkIGl0IHdpbGwgbm90IGJlIGxpc3RlZC48L3A+CgoJ PGgzIGlkPSJlZzMiPkV4YW1wbGUgMzogY2hpbGQgY2F0ZWdvcnkgY291bnRzPC9oMz4KCjxw cmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3F1ZXJ5 IHF1ZXJ5PSZxdW90O1NFTEVDVCBESVNUSU5DVAogICAgIHR4Yy5uYW1lLCBDT1VOVCgqKSBB UyBjb3VudCBGUk9NIHR4cF9jYXRlZ29yeSBBUyB0eGMsCiAgICAgdGV4dHBhdHRlcm4gQVMg dHhwCiAgICAgV0hFUkUgdHlwZT0mIzM5O2FydGljbGUmIzM5OyBBTkQgcGFyZW50PSYjMzk7 P2N1c3RvbTMmIzM5OwogICAgIEFORCAodHhjLm5hbWUgPSB0eHAuY2F0ZWdvcnkxIE9SIHR4 Yy5uYW1lID0gdHhwLmNhdGVnb3J5MikKICAgICBHUk9VUCBCWSB0eGMubmFtZSZxdW90Owog ICAgIGZvcm09JnF1b3Q7ZGJvdXQmcXVvdDsgd3JhcHRhZz0mcXVvdDt1bCZxdW90OyBicmVh az0mcXVvdDtsaSZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+V2l0aCBmb3JtIDxj b2RlPmRib3V0PC9jb2RlPiBjb250YWluaW5nOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48 Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6Y2F0ZWdvcnkgbmFtZT0mcXVvdDt7bmFtZX0m cXVvdDsgbGluaz0mcXVvdDsxJnF1b3Q7IHRpdGxlPSZxdW90OzEmcXVvdDsgLyZndDsgKHtj b3VudH0pCjwvY29kZT48L3ByZT4KCgk8cD5XaWxsIHJlYWQgdGhlIHBhcmVudCBpdGVtIGZy b20gdGhlIDxjb2RlPmN1c3RvbTM8L2NvZGU+IGZpZWxkIGFuZCByZW5kZXIgYSBzaW1pbGFy IGxpc3QgdG8gRXhhbXBsZSAyIGJ1dCB3aXRoIHRoZSBhcnRpY2xlIGNvdW50cyBhZGRlZCBp biBwYXJlbnRoZXNlcyBhZnRlcndhcmRzLjwvcD4KCgk8aDMgaWQ9ImVnNCI+RXhhbXBsZSA0 OiBUb3AgMTAgZG93bmxvYWRzPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFz cz0iYmxvY2siPiZsdDt0eHA6c21kX3F1ZXJ5IGNvbHVtbj0mcXVvdDsqJnF1b3Q7IHRhYmxl PSZxdW90O3R4cF9maWxlJnF1b3Q7CiAgICAgd2hlcmU9JnF1b3Q7KGNhdGVnb3J5PSYjMzk7 P2NhdGVnb3J5MSYjMzk7IE9SIGNhdGVnb3J5PSYjMzk7P2NhdGVnb3J5MiYjMzk7KQogICAg IEFORCBzdGF0dXM9NCBPUkRFUiBCWSBkb3dubG9hZHMgZGVzYyBMSU1JVCAxMCZxdW90Owog ICAgIHdyYXB0YWc9JnF1b3Q7dGFibGUmcXVvdDsgYnJlYWs9JnF1b3Q7dHImcXVvdDsKICAg ICBsYWJlbD0mcXVvdDtNb3N0IHBvcHVsYXIgZG93bmxvYWRzJnF1b3Q7IGxhYmVsdGFnPSZx dW90O2gzJnF1b3Q7Jmd0OwogICZsdDt0ZCZndDsmbHQ7dHhwOmZpbGVfZG93bmxvYWRfbGlu ayBpZD0mcXVvdDt7aWR9JnF1b3Q7Jmd0O3tmaWxlbmFtZX0mbHQ7L3R4cDpmaWxlX2Rvd25s b2FkX2xpbmsmZ3Q7Jmx0Oy90ZCZndDsKICAmbHQ7dGQmZ3Q7e2Rlc2NyaXB0aW9ufSZsdDsv dGQmZ3Q7CiAgJmx0O3RkJmd0O2Rvd25sb2Fkczoge2Rvd25sb2Fkc30mbHQ7L3RkJmd0Owom bHQ7dHhwOmVsc2UgLyZndDsKICAmbHQ7cCZndDtObyByZWNlbnQgZG93bmxvYWRzLCBzb3Jy eSZsdDsvcCZndDsKJmx0Oy90eHA6c21kX3F1ZXJ5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+ VGhpcyBvbmUgdXNlcyB0aGUgcGx1Z2luIGFzIGEgY29udGFpbmVyIHRhZyBpbnN0ZWFkIG9m IGEgZm9ybSBhbmQgdGFidWxhdGVzIHRoZSB0b3AgMTAgZG93bmxvYWRzIChzdGF0dXM9bGl2 ZSkgdGhhdCBoYXZlIGEgY2F0ZWdvcnkgbWF0Y2hpbmcgZWl0aGVyIG9mIHRoZSBjdXJyZW50 IGFydGljbGUmIzgyMTc7cyBjYXRlZ29yaWVzLCB3aXRoIG1vc3QgcG9wdWxhciBsaXN0ZWQg Zmlyc3QuIElmIHRoZXJlIGFyZSBubyBkb3dubG9hZHMsIHRoZSA8Y29kZT4mbHQ7dHhwOmVs c2UgLyZndDs8L2NvZGU+IHBvcnRpb24gZGlzcGxheXMgYSBtZXNzYWdlLjwvcD4KCgk8aDMg aWQ9ImVnNSI+RXhhbXBsZSA1OiBBcnRpY2xlIGtleXdvcmRzIHJlbGF0ZWQgdG8gbGluazwv aDM+CgoJPHA+VmVyeSBpbnRlcmVzdGluZyB1c2UgY2FzZSBoZXJlLiBQdXQgdGhpcyBpbiB0 aGUgcGxhaW5saW5rcyBmb3JtOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFz cz0iYmxvY2siPiZsdDt0eHA6bGlua2Rlc2N0aXRsZSAvJmd0OwombHQ7dHhwOnNtZF9xdWVy eSBxdWVyeT0mcXVvdDtTRUxFQ1QgRElTVElOQ1QKICAgICB0eHAuaWQsIHR4cC50aXRsZSBG Uk9NIHRleHRwYXR0ZXJuIEFTIHR4cAogICAgIFdIRVJFICh0eHAua2V5d29yZHMgTElLRSAm IzM5OyUsP2NhdGVnb3J5JSwmIzM5OwogICAgIE9SIHR4cC5rZXl3b3JkcyBMSUtFICYjMzk7 JT9jYXRlZ29yeSUsJiMzOTsKICAgICBPUiB0eHAua2V5d29yZHMgTElLRSAmIzM5OyUsP2Nh dGVnb3J5JSYjMzk7KQogICAgIEdST1VQIEJZIHR4cC50aXRsZSZxdW90OwogICAgIHdyYXB0 YWc9JnF1b3Q7dWwmcXVvdDsgYnJlYWs9JnF1b3Q7bGkmcXVvdDsmZ3Q7CiAgJmx0O3R4cDpw ZXJtbGluayBpZD0mcXVvdDt7aWR9JnF1b3Q7Jmd0O3t0aXRsZX0mbHQ7L3R4cDpwZXJtbGlu ayZndDsKJmx0Oy90eHA6c21kX3F1ZXJ5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+V2hlbiB5 b3UgZXhlY3V0ZSA8Y29kZT4mbHQ7dHhwOmxpbmtsaXN0IC8mZ3Q7PC9jb2RlPiBmcm9tIGEg cGFnZSB5b3Ugd2lsbCBnZXQgYSBsaXN0IG9mIGxpbmtzIGFzIHVzdWFsLCBidXQgdW5kZXIg ZWFjaCBvbmUgeW91IHdpbGwgc2VlIGEgaHlwZXJsaW5rZWQgbGlzdCBvZiBhcnRpY2xlcyB0 aGF0IGFyZSByZWxhdGVkIChieSBrZXl3b3JkKSB0byB0aGUgY2F0ZWdvcnkgb2YgdGhlIGxp bmsuPC9wPgoKCTxwPlRoZSByZWFzb24gaXQgaXMgY29tcGFyZWQgdGhyZWUgdGltZXMgaXMg YmVjYXVzZSBhcnRpY2xlIGtleXdvcmRzIGFyZSBzdG9yZWQgbGlrZSB0aGlzIGluIHRoZSBk YXRhYmFzZTo8L3A+CgoJPHA+PGNvZGU+Z292ZXJubWVudCxjb25zcGlyYWN5LGlkLGNhcmQs ZGF0YSxiaW9tZXRyaWMsYmFkLGlkZWE8L2NvZGU+PC9wPgoKCTxwPklmIGVhY2ggY2F0ZWdv cnkgd29yZCB3YXMgY29tcGFyZWQgb25seSBvbmNlIHdpdGhvdXQgY29tbWFzIChpLmUuIDxj b2RlPnR4cC5rZXl3b3JkcyBMSUtFICYjMzk7JT9jYXRlZ29yeSUmIzM5OzwvY29kZT4pIHRo ZW4gYSBsaW5rIHdpdGggY2F0ZWdvcnkgPGNvZGU+cGlyYWN5PC9jb2RlPiB3b3VsZCBjYXVz ZSBhbnkgYXJ0aWNsZSBjb250YWluaW5nIGtleXdvcmQgPGNvZGU+Y29uc3BpcmFjeTwvY29k ZT4gdG8gYmUgaW5jbHVkZWQuIEVzc2VudGlhbGx5LCBieSBjb21wYXJpbmcgdGhlIGNhdGVn b3J5IGVpdGhlciBzdXJyb3VuZGVkIGJ5IGNvbW1hcywgd2l0aCBhIGNvbW1hIGFmdGVyIGl0 LCBvciB3aXRoIGEgY29tbWEgYmVmb3JlIGl0LCB0aGUgc2VhcmNoIGlzIHJlc3RyaWN0ZWQg dG8gb25seSBtYXRjaCB3aG9sZSB3b3Jkcy48L3A+CgoJPGgzIGlkPSJlZzYiPkV4YW1wbGUg NjogQ29tcGFyaXNvbiBpbiBxdWVyaWVzPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29k ZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3F1ZXJ5IHF1ZXJ5PSZxdW90O1NFTEVDVCAq CiAgICAgRlJPTSB0eHBfZmlsZSBXSEVSRSBkb3dubG9hZHMgJmFtcDtndDs9IDQyJnF1b3Q7 Jmd0OwogICZsdDt0eHA6ZmlsZV9kb3dubG9hZF9saW5rIGlkPSZxdW90O3tpZH0mcXVvdDsm Z3Q7CiAgICAge2ZpbGVuYW1lfQogICZsdDsvdHhwOmZpbGVfZG93bmxvYWRfbGluayZndDsK Jmx0Oy90eHA6c21kX3F1ZXJ5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+U2hvd3MgbGlua3Mg dG8gYWxsIGRvd25sb2FkcyB3aGVyZSB0aGUgZG93bmxvYWQgY291bnQgaXMgZ3JlYXRlciB0 aGFuIG9yIGVxdWFsIHRvIDQyLiBOb3RlIHRoYXQgdW5kZXIgPHNwYW4gY2xhc3M9ImNhcHMi PlRYUDwvc3Bhbj4gNC4wLjYgYW5kIGJlbG93IHlvdSBtdXN0IHVzZSB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPkhUTUw8L3NwYW4+IGVudGl0eSBuYW1lcyBmb3IgPGNvZGU+JmFtcDtndDs8 L2NvZGU+IGFuZCA8Y29kZT4mYW1wO2x0OzwvY29kZT4gb3IgdGhlIHBhcnNlciBnZXRzIGNv bmZ1c2VkLjwvcD4KCgk8aDMgaWQ9ImVnNyI+RXhhbXBsZSA3OiB1bmZpbHRlcmVkIDxzcGFu IGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHBhcmFtcyAoYmFkKTwvaDM+CgoJPHA+KGEgYmFk IHF1ZXJ5KTwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZs dDt0eHA6dmFyaWFibGUgbmFtZT0mcXVvdDtjdXRvZmYmcXVvdDsKICAgICB2YWx1ZT0mcXVv dDs0MiZxdW90OyAvJmd0OwombHQ7dHhwOnNtZF9xdWVyeSBxdWVyeT0mcXVvdDtTRUxFQ1Qg VGl0bGUKICAgICBGUk9NIHRleHRwYXR0ZXJuCiAgICAgV0hFUkUgaWQgJmx0OyAmIzM5Oz91 c2VyY3V0JiMzOTsmcXVvdDsKICAgICBkZWZhdWx0cz0mcXVvdDt1c2VyY3V0OiA/Y3V0b2Zm JnF1b3Q7Jmd0OwogICAmbHQ7dHhwOnBlcm1saW5rJmd0O3tUaXRsZX0mbHQ7L3R4cDpwZXJt bGluayZndDsKJmx0Oy90eHA6c21kX3F1ZXJ5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+U2hv d3MgaHlwZXJsaW5rcyB0byBvbmx5IHRob3NlIGFydGljbGVzIHdpdGggYW4gSUQgYmVsb3cg dGhlIG51bWJlciBnaXZlbiBieSB0aGUgdXNlciBvbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi PlVSTDwvc3Bhbj4gbGluZS4gSWYgdGhlIHZhbHVlIGlzIG5vdCBzdXBwbGllZCwgdGhlIGRl ZmF1bHQgdmFsdWUgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gdmFy aWFibGUgaXMgdXNlZCBpbnN0ZWFkICg0MiBpbiB0aGlzIGNhc2UpLjwvcD4KCgk8cD48c3Ry b25nPjxzcGFuIGNsYXNzPSJjYXBzIj5OT1RFPC9zcGFuPjwvc3Ryb25nPjogdmFsaWRhdGlv biBpcyBub3QgcGVyZm9ybWVkIGFuZCB5b3UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IHRoZSA8 Y29kZT51c2VyY3V0PC9jb2RlPiB2YXJpYWJsZSBpcyBnb2luZyB0byBiZSBudW1lcmljLiBZ b3Ugc2hvdWxkIG5vdCB1c2UgdGhpcyBxdWVyeSBvbiBhIHByb2R1Y3Rpb24gc2l0ZSB1bmxl c3MgeW91IGFkZCBhIDxjb2RlPnVybGZpbHRlcjwvY29kZT4gdG8gcmVtb3ZlIGFueSBub24t bnVtZXJpYyBjaGFyYWN0ZXJzIChzZWUgbmV4dCBleGFtcGxlIGZvciBhIGJldHRlciBxdWVy eSkuPC9wPgoKCTxoMyBpZD0iZWc4Ij5FeGFtcGxlIDg6IGZpbHRlcmVkIDxzcGFuIGNsYXNz PSJjYXBzIj5VUkw8L3NwYW4+IHBhcmFtcyAoYmV0dGVyISk8L2gzPgoKPHByZSBjbGFzcz0i YmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcXVlcnkgcXVlcnk9JnF1 b3Q7U0VMRUNUIFRpdGxlCiAgICAgRlJPTSB0ZXh0cGF0dGVybgogICAgIFdIRVJFIHN0YXR1 cyA9ICYjMzk7P3VzZXJfc3RhdHVzJiMzOTsmcXVvdDsKICAgICB1cmxmaWx0ZXI9JnF1b3Q7 L1teMS01XS8mcXVvdDsKICAgICBkZWZhdWx0cz0mcXVvdDt1c2VyX3N0YXR1czogNCZxdW90 OyZndDsKICAgJmx0O3R4cDpwZXJtbGluayZndDt7VGl0bGV9Jmx0Oy90eHA6cGVybWxpbmsm Z3Q7CiZsdDsvdHhwOnNtZF9xdWVyeSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlB1bGxzIGFs bCBhcnRpY2xlcyBvdXQgb2YgdGhlIGRhdGFiYXNlIHRoYXQgbWF0Y2ggdGhlIGdpdmVuIHN0 YXR1cy4gVGhpcyBpcyBhIG1vcmUgcm9idXN0IHF1ZXJ5IHRoYW4gRXhhbXBsZSA3IGJlY2F1 c2UgaXQgY2hlY2tzIGlmIHRoZSA8Y29kZT51c2VyX3N0YXR1czwvY29kZT4gZmllbGQgaXMg MSwgMiwgMywgNCwgb3IgNSAodGhlIHJlZ2V4IHNwZWNpZmllcyB0byByZW1vdmUgZXZlcnl0 aGluZyBmcm9tIHRoZSB1c2VyX3N0YXR1cyB2YXJpYWJsZSB0aGF0IGlzIG5vdCBpbiB0aGUg cmFuZ2UgMS01KS4gSWYgdGhpcyBjb25kaXRpb24gaXMgbm90IG1ldCAmIzgyMTI7IGUuZy4g dGhlIHVzZXIgc3BlY2lmaWVzIDxjb2RlPnVzZXJfc3RhdHVzPTY8L2NvZGU+IG9yIDxjb2Rl PnVzZXJfc3RhdHVzPSZxdW90O2FiYyZxdW90OzwvY29kZT4gJiM4MjEyOyB0aGVuIHVzZXJf c3RhdHVzIHdpbGwgYmUgc2V0IHRvIDxjb2RlPjQ8L2NvZGU+LiBOb3RlIHRoYXQgdXNpbmcg PGNvZGU+dXNlcl9zdGF0dXM9JnF1b3Q7WmFwaG9kIDQgVHJpbGxpYW4mcXVvdDs8L2NvZGU+ IG9uIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBhZGRyZXNzIGJhciB3aWxs IGFjdHVhbGx5IHBhc3MgdGhlIHRlc3QgYmVjYXVzZSBhbGwgY2hhcmFjdGVycyBvdGhlciB0 aGFuIHRoZSBudW1iZXIgJiM4MjE2OzQmIzgyMTc7IHdpbGwgYmUgcmVtb3ZlZC48L3A+CgoJ PHA+WW91IGNvdWxkIHVzZSBhIDxjb2RlPiZsdDt0eHA6dmFyaWFibGUgLyZndDs8L2NvZGU+ IGlmIHlvdSB3aXNoIGFuZCBzZXQgYWxsIHlvdXIgZGVmYXVsdHMgaW4gYSBzcGVjaWFsIGZv cm0sIHJlYWR5IHRvIHVzZSB0aHJvdWdob3V0IHlvdXIgcGFnZS4gSW4gdGhhdCBjYXNlICYj ODIxMjsgaWYgeW91IGhhZCBjcmVhdGVkIGEgdmFyaWFibGUgY2FsbGVkIDxjb2RlPmRmbHRf c3RhdDwvY29kZT4gJiM4MjEyOyB5b3UgbWlnaHQgcHJlZmVyIHRvIHVzZSA8Y29kZT5kZWZh dWx0cz0mcXVvdDt1c2VyX3N0YXR1czogP2RmbHRfc3RhdCZxdW90OzwvY29kZT4uPC9wPgoK CTxwPlF1ZXJ5LXRhc3RpYyA6LSk8L3A+CgoJPGgzIGlkPSJlZzkiPkV4YW1wbGUgOTogVXNp bmcgcHJlcGFyc2Ugd2l0aCA8Y29kZT4mbHQ7dHhwOnlpZWxkIC8mZ3Q7PC9jb2RlPjwvaDM+ CgoJPHA+U29tZXRpbWVzIHlvdSBtYXkgd2FudCB0byByZS11c2UgYSBxdWVyeSBpbiBhIGZl dyBwbGFjZXMgdGhyb3VnaG91dCB5b3VyIHNpdGUgYW5kIHNob3cgZGlmZmVyZW50IGNvbnRl bnQuIEZvciBleGFtcGxlLCB0aGUgc2FtZSBxdWVyeSBjb3VsZCBiZSB1c2VkIGZvciBsb2dn ZWQtaW4gYW5kIG5vdC1sb2dnZWQtaW4gdXNlcnMgYnV0IHlvdSYjODIxNztkIHNlZSBtb3Jl IGRldGFpbCBpZiB5b3Ugd2VyZSBsb2dnZWQgaW4uIE5vcm1hbGx5IHlvdSB3b3VsZCBuZWVk IHRvIHdyaXRlIHRoZSBxdWVyeSBtb3JlIHRoYW4gb25jZSwgd2hpY2ggaXMgZmFyIGZyb20g aWRlYWwuIFRoaXMgdGVjaG5pcXVlIGFsbG93cyB5b3UgdG8gd3JpdGUgdGhlIHF1ZXJ5IGp1 c3Qgb25jZSBhbmQgcmV1c2UgdGhlIGZvcm0uIFB1dCB0aGlzIGluIGEgZm9ybSBjYWxsZWQg PGNvZGU+dXNlcl90YWJsZTwvY29kZT46PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcXVlcnkgcXVlcnk9JnF1b3Q7U0VMRUNUICog RlJPTSB0eHBfdXNlcnMmcXVvdDsKICAgICB3cmFwdGFnPSZxdW90O3RhYmxlJnF1b3Q7IGJy ZWFrPSZxdW90O3RyJnF1b3Q7IHByZXBhcnNlPSZxdW90OzEmcXVvdDsmZ3Q7CiAgICZsdDt0 eHA6eWllbGQgLyZndDsKJmx0Oy90eHA6c21kX3F1ZXJ5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJ PHA+VXNpbmcgPGNvZGU+Jmx0O3R4cDpvdXRwdXRfZm9ybSZndDs8L2NvZGU+IGFzIGEgY29u dGFpbmVyIChpbiA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiA0LjIuMCBvciBoaWdo ZXIpIHlvdSBjYW4gdGhlbiBjYWxsIHRoZSBxdWVyeSBsaWtlIHRoaXMgdG8gc2hvdyBiYXNp YyBpbmZvOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZs dDt0eHA6b3V0cHV0X2Zvcm0gZm9ybT0mcXVvdDt1c2VyX3RhYmxlJnF1b3Q7Jmd0OwombHQ7 dGQmZ3Q7e25hbWV9Jmx0Oy90ZCZndDsKJmx0O3RkJmd0O3tSZWFsTmFtZX0mbHQ7L3RkJmd0 OwombHQ7L3R4cDpvdXRwdXRfZm9ybSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPmFuZCBsaWtl IHRoaXMgZm9yIG1vcmUgZGV0YWlsZWQgb3V0cHV0OjwvcD4KCjxwcmUgY2xhc3M9ImJsb2Nr Ij48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6b3V0cHV0X2Zvcm0gZm9ybT0mcXVvdDt1 c2VyX3RhYmxlJnF1b3Q7Jmd0OwombHQ7dGQmZ3Q7e25hbWV9Jmx0Oy90ZCZndDsKJmx0O3Rk Jmd0O3tSZWFsTmFtZX0mbHQ7L3RkJmd0OwombHQ7dGQmZ3Q7e2VtYWlsfSZsdDsvdGQmZ3Q7 CiZsdDt0ZCZndDt7bGFzdF9hY2Nlc3N9Jmx0Oy90ZCZndDsKJmx0Oy90eHA6b3V0cHV0X2Zv cm0mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Ob3RlIHRoYXQgd2hlbiB1c2luZyBzbWRfcXVl cnkgaW4gdGhpcyBtYW5uZXIgeW91IG11c3QgcmVtZW1iZXIgdG8gdXNlIDxjb2RlPnByZXBh cnNlPSZxdW90OzEmcXVvdDs8L2NvZGU+IGJlY2F1c2UgeW91IG5lZWQgdG8gZmV0Y2ggdGhl IGNvbnRlbnRzIG9mIHRoZSBzbWRfcXVlcnkgY29udGFpbmVyICh0aGUgPGNvZGU+Jmx0O3R4 cDp5aWVsZCAvJmd0OzwvY29kZT4gdGFnIGluIHRoaXMgY2FzZSksIHBhcnNlIGl0IHNvIGl0 IGdldHMgdGhlIGNvbnRlbnRzIG9mIDxjb2RlPiZsdDt0eHA6b3V0cHV0X2Zvcm0mZ3Q7PC9j b2RlPiYjODIxNztzIGNvbnRhaW5lciBhbmQgPGVtPnRoZW48L2VtPiBhcHBsaWVzIHRoZSBy ZXBsYWNlbWVudHMuIFdpdGhvdXQgdGhlIDxjb2RlPnByZXBhcnNlPC9jb2RlPiwgdGhlIHBs dWdpbiB0cmllcyB0byBhcHBseSB0aGUgcmVwbGFjZW1lbnRzIGRpcmVjdGx5IHRvIHRoZSBz bWRfcXVlcnkgY29udGFpbmVyLCB3aGljaCBkb2VzIG5vdCBhY3R1YWxseSBjb250YWluIGFu eSA8Y29kZT57Li4ufTwvY29kZT4gdGFncy48L3A+CgoJPGgzIGlkPSJlZzEwIj5FeGFtcGxl IDEwOiBwYWdpbmF0aW9uPC9oMz4KCgk8cD5JdGVyYXRlIG92ZXIgc29tZSA8c3BhbiBjbGFz cz0iY2FwcyI+VFhQPC9zcGFuPiB1c2VyIGluZm9ybWF0aW9uLCA1IHBlb3BsZSBhdCBhIHRp bWU6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4 cDpzbWRfcXVlcnkgcXVlcnk9JnF1b3Q7U0VMRUNUICogZnJvbSB0eHBfdXNlcnMmcXVvdDsK ICAgICBsaW1pdD0mcXVvdDs1JnF1b3Q7IHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgYnJlYWs9 JnF1b3Q7bGkmcXVvdDsKICAgICBwYWdlZm9ybT0mcXVvdDtwYWdlX2luZm8mcXVvdDsmZ3Q7 CiAgIHtSZWFsTmFtZX0gKHtwcml2c30pCiZsdDsvdHhwOnNtZF9xdWVyeSZndDsKPC9jb2Rl PjwvcHJlPgoKCTxwPkluIDxjb2RlPnBhZ2VfaW5mbzwvY29kZT46PC9wPgoKPHByZSBjbGFz cz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+UGFnZSB7c21kX3RoaXNwYWdlfSBvZiB7 c21kX3BhZ2VzfSB8ClNob3dpbmcgcmVjb3JkcyB7c21kX3Jvd19zdGFydH0gdG8ge3NtZF9y b3dfZW5kfQpvZiB7c21kX2FsbHJvd3N9IHwKJmx0O3R4cDpvbGRlciZndDtOZXh0IHtzbWRf cm93c19uZXh0fSZsdDsvdHhwOm9sZGVyJmd0OyB8CiZsdDt0eHA6bmV3ZXImZ3Q7UHJldmlv dXMge3NtZF9yb3dzX3ByZXZ9Jmx0Oy90eHA6bmV3ZXImZ3Q7CjwvY29kZT48L3ByZT4KCgk8 cD5VbmRlcm5lYXRoIHlvdXIgcmVzdWx0IHNldCB5b3Ugd291bGQgdGhlbiBzZWUgdGhlIGlu Zm9ybWF0aW9uIHJlZ2FyZGluZyB3aGljaCBwYWdlIGFuZCByb3dzIHlvdXIgdmlzaXRvcnMg d2VyZSBjdXJyZW50bHkgdmlld2luZy4gWW91IHdvdWxkIGFsc28gc2VlIG5leHQvcHJldiBs aW5rcyB0byB0aGUgcmVzdCBvZiB0aGUgcmVzdWx0cy48L3A+CgoJPGgzIGlkPSJlZzExIj5F eGFtcGxlIDExOiBjdXN0b20gcGFnaW5hdGlvbjwvaDM+CgoJPHA+VGhlcmUgaXMgYSBwcm9i bGVtIHdpdGggPGEgaHJlZj0iI2VnMTA7Ij5leGFtcGxlIDEwPC9hPiBpZiB5b3UgdXNlIHR4 cDpvbGRlciBhbmQgdHhwOm5ld2VyIHdoZW4geW91IGFyZSBzaG93aW5nIGEgc3RhbmRhcmQg YXJ0aWNsZSBsaXN0OyB0aGUgcGFnaW5nIHRhZ3Mgd2lsbCBzdGVwIHRocm91Z2ggPGVtPmJv dGg8L2VtPiB5b3VyIHJlc3VsdCBzZXQgYW5kIHlvdXIgYXJ0aWNsZXMuIFRvIGJyZWFrIHRo ZSBhc3NvY2lhdGlvbiBiZXR3ZWVuIHRoZW0geW91IG5lZWQgdG8gYWx0ZXIgdGhlIHZhcmlh YmxlIHRoYXQgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gdXNlcyB0byBjb250cm9s IHBhZ2luZy4gSXQgaXMgY2FsbGVkIDxjb2RlPnBnPC9jb2RlPmFuZCB5b3UmIzgyMTc7bGwg bm90aWNlIGl0IGluIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiAoPGNvZGU+ P3BnPTI8L2NvZGU+IGZvciBleGFtcGxlKSBhcyB5b3Ugc3RlcCB0aHJvdWdoIGFydGljbGUg bGlzdHMuPC9wPgoKCTxwPlVzaW5nIHRoZSA8Y29kZT5wYWdldmFyPC9jb2RlPiBhdHRyaWJ1 dGUgeW91IGNhbiB0ZWxsIHNtZF9xdWVyeSB0byB3YXRjaCBmb3IgeW91ciBvd24gdmFyaWFi bGUgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCA8Y29kZT5wZzwvY29kZT4gYW5kIHRodXMgYnVp bGQgeW91ciBvd24gbmV4dC9wcmV2IGxpbmtzIHRoYXQgb25seSBjb250cm9sIHNtZF9xdWVy eS48L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhw OnNtZF9xdWVyeSBxdWVyeT0mcXVvdDtTRUxFQ1QgKiBmcm9tIHR4cF91c2VycyZxdW90Owog ICAgIGxpbWl0PSZxdW90OzUmcXVvdDsgd3JhcHRhZz0mcXVvdDt1bCZxdW90OyBicmVhaz0m cXVvdDtsaSZxdW90OwogICAgIHBhZ2Vmb3JtPSZxdW90O3BhZ2VfaW5mbyZxdW90OyBwYWdl dmFyPSZxdW90O3NtZF9xcGcmcXVvdDsmZ3Q7CiAgIHtSZWFsTmFtZX0gKHtwcml2c30pCiZs dDsvdHhwOnNtZF9xdWVyeSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkluIDxjb2RlPnBhZ2Vf aW5mbzwvY29kZT46PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9j ayI+UGFnZSB7c21kX3RoaXNwYWdlfSBvZiB7c21kX3BhZ2VzfSB8IFNob3dpbmcgcmVjb3Jk cyB7c21kX3Jvd19zdGFydH0gdG8ge3NtZF9yb3dfZW5kfSBvZiB7c21kX2FsbHJvd3N9IHwK Jmx0O3R4cDpzbWRfcXVlcnlfaWZfcHJldiZndDsKICAmbHQ7YSBocmVmPSZxdW90OyZsdDt0 eHA6cGVybWxpbmsgLyZndDs/c21kX3FwZz17c21kX3ByZXZwYWdlfSZxdW90OyZndDtQcmV2 aW91cyB7c21kX3Jvd3NfcHJldn0mbHQ7L2EmZ3Q7CiZsdDsvdHhwOnNtZF9xdWVyeV9pZl9w cmV2Jmd0OwombHQ7dHhwOnNtZF9xdWVyeV9pZl9uZXh0Jmd0OwogICZsdDthIGhyZWY9JnF1 b3Q7Jmx0O3R4cDpwZXJtbGluayAvJmd0Oz9zbWRfcXBnPXtzbWRfbmV4dHBhZ2V9JnF1b3Q7 Jmd0O05leHQge3NtZF9yb3dzX25leHR9Jmx0Oy9hJmd0OwombHQ7L3R4cDpzbWRfcXVlcnlf aWZfbmV4dCZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMiBjbGFzcz0iY2hhbmdlbG9nIj5DaGFu Z2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+MjIgTWF5IDA4IHwgMC4xIHwgSW5pdGlhbCByZWxl YXNlPC9saT4KCQk8bGk+MjMgTWF5IDA4IHwgMC4xMSB8IEFsbG93ZWQgbWF0aHMgaW4gcXVl cmllcyAodXNlIGh0bWwgZW50aXRpZXMgaW4gVFhQNC4wLjYpIGFuZCBmaXhlZCA8c3BhbiBj bGFzcz0iY2FwcyI+V0hFUkU8L3NwYW4+IGNsYXVzZSB0byBkZWZhdWx0IHRvIDE9MSBpZiBu b25lIHN1cHBsaWVkIChib3RoIHRoYW5rcyBqbSkgOyBhZGRlZCBtb3JlIGRldGFpbGVkIGZp bGUgYW5kIGxpbmsgc3VwcG9ydDwvbGk+CgkJPGxpPjE0IEp1bCAwOCB8IDAuMTIgfCBBZGRl ZCA8Y29kZT50eHA6ZWxzZTwvY29kZT4gc3VwcG9ydCBpbiBjb250YWluZXIgKHRoYW5rcyBq YWtvYikgOyBhZGRlZCA8Y29kZT5zaWxlbnQ8L2NvZGU+IGFuZCA8Y29kZT5jb3VudDwvY29k ZT4gYXR0cmlidXRlcywgYW5kIHRoZSByZXBsYWNlbWVudCB0YWdzIDxjb2RlPntzbWRfcm93 c30ge3NtZF90aGlzcm93fSB7c21kX3RoaXNpbmRleH08L2NvZGU+PC9saT4KCQk8bGk+MjMg Tm92IDA4IHwgMC4yIHwgQWRkZWQgPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29k ZT4gc3VwcG9ydCA7IGVuYWJsZWQgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFy aWFibGUgc3VwcG9ydCA7IGFkZGVkIDxjb2RlPnVybGZpbHRlcjwvY29kZT4sIDxjb2RlPnVy bHJlcGxhY2U8L2NvZGU+LCA8Y29kZT5kZWxpbTwvY29kZT4sIDxjb2RlPnBhcmFtZGVsaW08 L2NvZGU+IGFuZCA8Y29kZT5kZWZhdWx0czwvY29kZT4gYXR0cmlidXRlczwvbGk+CgkJPGxp PjE3IE1hciAwOSB8IDAuMjEgfCBBZGRlZCA8Y29kZT4kX1NFUlZFUjwvY29kZT4gdmFyIHN1 cHBvcnQ8L2xpPgoJCTxsaT4xNiBPY3QgMDkgfCAwLjIyIHwgQWRkZWQgPGNvZGU+ZXNjYXBl PC9jb2RlPiBhdHRyaWJ1dGUgKHRoYW5rcyBqYWtvYikgOyBhZGRlZCA8Y29kZT5wcmVwYXJz ZTwvY29kZT4gYXR0cmlidXRlPC9saT4KCQk8bGk+MDIgRGVjIDA5IHwgMC4zIHwgQWRkZWQg dW5pY29kZSBzdXBwb3J0IGFuZCA8Y29kZT5zdHJpY3RmaWVsZHM8L2NvZGU+IHRvIGZpeCBh IGZldyBidWdzICh0aGFua3Mgc3BlZWtlKSA7IGFkZGVkIGRpcmVjdCBwYWdpbmF0aW9uIHN1 cHBvcnQ8L2xpPgoJCTxsaT4wNSBEZWMgMDkgfCAwLjQgfCBBZGRlZCA8Y29kZT5wYWdldmFy PC9jb2RlPiwgPGNvZGU+e3NtZF9wcmV2cGFnZX08L2NvZGU+LCA8Y29kZT57c21kX25leHRw YWdlfTwvY29kZT4sIDxjb2RlPntzbWRfcm93c19wcmV2fTwvY29kZT4gYW5kIDxjb2RlPntz bWRfcm93c19uZXh0fTwvY29kZT4sIDxjb2RlPiZsdDt0eHA6c21kX3F1ZXJ5X2lmX3ByZXYm Z3Q7PC9jb2RlPiBhbmQgPGNvZGU+Jmx0O3R4cDpzbWRfcXVlcnlfaWZfbmV4dCZndDs8L2Nv ZGU+IDsgcmVtb3ZlZCA8Y29kZT5wZ29ubHk8L2NvZGU+IGFzIHBhZ2luZyBjYW4gbm93IDxl bT5vbmx5PC9lbT4gYmUgcGVyZm9ybWVkIGluIHRoZSA8Y29kZT5wYWdlZm9ybTwvY29kZT48 L2xpPgoJPC91bD4KCjwvZGl2Pgo8IS0tICoqKiBCRUdJTiBQTFVHSU4gQ1NTICoqKiAtLT4K PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS41IDt9 CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJD b3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZG RkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3Jk ZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5 OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hl bHAgYTpsaW5rLCAjc21kX2hlbHAgYTp2aXNpdGVkIHsgY29sb3I6ICMwMGM7IHRleHQtZGVj b3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmct Ym90dG9tOjFweDt9CiNzbWRfaGVscCBhOmhvdmVyLCAjc21kX2hlbHAgYTphY3RpdmUgeyBj b2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAycHgg c29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6 ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0 LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNv bGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBH ZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjMDc5OyBmb250 OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1h cmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0 aW9uOnVuZGVybGluZTt9CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwg c2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4 dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQojc21kX2hlbHAgLmF0bm0geyBmb250LXdlaWdo dDpib2xkOyBjb2xvcjojMzNkOyB9CiNzbWRfaGVscCAubWFuZCB7IGJhY2tncm91bmQ6I2Vl ZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgfQojc21kX2hlbHAgdGFibGUge3dpZHRoOjkw JTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjFlbTt9CiNzbWRfaGVscCB0 ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6LjVlbSAw O30KI3NtZF9oZWxwIHVsIHsgbGlzdC1zdHlsZS10eXBlOnNxdWFyZTsgfQojc21kX2hlbHAg LnJlcXVpcmVkIHtjb2xvcjpyZWQ7fQojc21kX2hlbHAgbGkgeyBtYXJnaW46NXB4IDIwcHgg NXB4IDMwcHg7IH0KI3NtZF9oZWxwIC5icmVhayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5 bGU+CjwhLS0gKioqIEVORCBQTFVHSU4gQ1NTICoqKiAtLT4KIjtzOjM6Im1kNSI7czozMjoi ODMzMjk0NmQ4MzdlODJjN2ZmNTczMDVkNmE3NjZkOTMiO30=