# Name: smd_slimbox v0.32 # Type: Client side plugin # Image gallery lightbox wrapper that can use Slimbox, Litebox, Moonbox, Thickbox etc # 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: # ..................................................................... YToxMDp7czo0OiJuYW1lIjtzOjExOiJzbWRfc2xpbWJveCI7czo2OiJhdXRob3IiO3M6MTE6 IlN0ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nv bi5jb20vIjtzOjc6InZlcnNpb24iO3M6NDoiMC4zMiI7czoxMToiZGVzY3JpcHRpb24iO3M6 ODM6IkltYWdlIGdhbGxlcnkgbGlnaHRib3ggd3JhcHBlciB0aGF0IGNhbiB1c2UgU2xpbWJv eCwgTGl0ZWJveCwgTW9vbmJveCwgVGhpY2tib3ggZXRjIjtzOjQ6ImNvZGUiO3M6MTU0NjY6 Ii8vIERFUFJFQ0FURUQNCmZ1bmN0aW9uIHNtZF9zbGltYm94X2luYygkYXR0cykgew0KCWds b2JhbCAkcHJvZHVjdGlvbl9zdGF0dXM7DQoJaWYgKGluX2FycmF5KCRwcm9kdWN0aW9uX3N0 YXR1cywgYXJyYXkoJ2RlYnVnJywgJ3Rlc3RpbmcnKSkpIHsNCgkJdHJpZ2dlcl9lcnJvcigi c21kX3NsaW1ib3hfaW5jIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuIFBsZWFzZSByZW1vdmUg aXQgYW5kIGluY2x1ZGUgdGhlIHJlbGV2YW50IGphdmFzY3JpcHQgbGlicmFyaWVzIG1hbnVh bGx5IG9uIHlvdXIgcGFnZS4iKTsNCgl9DQoJcmV0dXJuOw0KfQ0KcmVxdWlyZV9wbHVnaW4o J3NtZF9saWInKTsNCi8vIE1MUCBzdXBwb3J0DQpnbG9iYWwgJHNtZF9zYm94TGFuZzsNCiRz bWRfc2JveFN0ciA9IGFycmF5KA0KCSduZXh0X2xibCcgPT4gJ05leHQnLA0KCSdwcmV2X2xi bCcgPT4gJ1ByZXYnLA0KKTsNCiRzbWRfc2JveExhbmcgPSBuZXcgc21kX01MUCgnc21kX3Ns aW1ib3gnLCAnc21kX3Nib3gnLCAkc21kX3Nib3hTdHIpOw0KDQpmdW5jdGlvbiBzbWRfc2xp bWJveCgkYXR0cywgJHRoaW5nPScnKSB7DQoJZ2xvYmFsICRwcm9kdWN0aW9uX3N0YXR1cywg JHByZXRleHQsICR0aGlzYXJ0aWNsZSwgJGltZ19kaXIsICRzbWRfc2JveExhbmc7DQoNCgkv LyAqKiBMT09LVVAgVEFCTEVTDQoJLy8gSG9sZHMgZGF0YWJhc2UgZmllbGQgYXMga2V5IGlu ZGV4IGFuZCBwbHVnaW4gb3B0aW9uIG5hbWVzIGFzIHZhbHVlLg0KCS8vIFVzZSBhcnJheV9z ZWFyY2ggdG8gZmluZCBpZiB2YWx1ZSBleGlzdHMgYW5kIHJldHVybiBjb3JyZWN0IGtleSBm b3IgdXNlIGluIGRiIGNhbGxzLg0KCSRmaWVsZE1hcCA9IGFycmF5KA0KCQkibmFtZSIgPT4g Im5hbWUiLA0KCQkiaWQiID0+ICJpZCIsDQoJCSJhbHQiID0+ICJhbHQiLA0KCQkiY2FwdGlv biIgPT4gImNhcHRpb24iLA0KCQkiY2F0ZWdvcnkiID0+ICJjYXRlZ29yeSIsDQoJCSJhdXRo b3IiID0+ICJhdXRob3IiLA0KCQkiZGF0ZSIgPT4gImRhdGUiLA0KCQkiZXh0IiA9PiAiZXh0 IiwNCgkJInciID0+ICJ3aWR0aCIsDQoJCSJoIiA9PiAiaGVpZ2h0IiwNCgkpOw0KCSRzaG93 TG9jcyA9IGFycmF5KCJiZWxvdyIsImFib3ZlIiwiYWZ0ZXIiLCJiZWZvcmUiLCJvbmNoYW5n ZSIpOw0KLy8JJGNsYXNzVHlwZXMgPSBhcnJheV9tZXJnZShhcnJheSgiZ3JvdXAiLCJjZWxs IiwibGluayIsImltZyIsInRodW1idGV4dCIsIm5hdiIsInByZXYiLCJuZXh0IiksJHNob3dM b2NzKTsNCi8vCSRvcGVyYW5kcyA9IGFycmF5KCJjaGFuZ2VzIiwgImNvbnRhaW5zIiwgImVx IiwgImx0IiwgImd0IiwgImx0ZSIsICJndGUiLCAibm90Iik7DQoJJHRodW1iaG9sZGVyID0g Ijo6U0JPWF9SRVBMOjoiOw0KDQoJJGF0dGVtcHRNYXRjaCA9IChpc3NldCgkYXR0c1snY2F0 ZWdvcnknXSkgfHwgaXNzZXQoJGF0dHNbJ2ltYWdlaWQnXSkpID8gdHJ1ZSA6IGZhbHNlOw0K DQoJLy8gUGx1Z2luIG9wdGlvbnMNCglleHRyYWN0KGxBdHRzKGFycmF5KA0KCQknZGVsaW0n CQkJCT0+ICcsJywNCgkJJ3BhcmFtZGVsaW0nCQk9PiAnOicsDQoJCSdpbWFnZWlkJwkJCT0+ ICcnLA0KCQknY2F0ZWdvcnknCQkJPT4gJycsDQoJCSdzdWJjYXRzJwkJCT0+ICcwJywNCgkJ J3RyaWdnZXInCQkJPT4gJ2xpZ2h0Ym94LScsDQoJCSdncm91cG5hbWUnCQkJPT4gJ3NtZCcs DQoJCSd0aHVtYicJCQkJPT4gJzA6MScsDQoJCSdsaW1pdCcJCQkJPT4gJzAnLA0KCQknbWF4 bGltaXQnCQkJPT4gJzk5OTk5JywNCgkJJ3NvcnQnCQkJCT0+ICdjYXRlZ29yeSBhc2MnLCAv LyB3YXMgb3JkZXJieQ0KCQknb3JkZXJieScJCQk9PiAnJywgLy8gREVQUkVDQVRFRA0KCQkn c2hvd3BhZ2VsaW5rcycJPT4gJzEnLA0KCQknZ2FsbGVyeWlkJwkJCT0+ICc/NDo2JywNCgkJ J2ltYWdlY2FwdGlvbicJCT0+ICc/Y2FwdGlvbicsDQoJCSd0aHVtYnNpemUnCQkJPT4gJycs DQoJCSd0aHVtYnRleHQnCQkJPT4gJycsDQoJCSd0aHVtYnRleHR3cmFwJwk9PiAnc3Bhbics DQoJCSd0aHVtYnRleHRjbGFzcycJPT4gJycsDQoJCSd3cmFwdGFnJwkJCT0+ICcnLA0KCQkn bmF2d3JhcHRhZycJCT0+ICcnLA0KCQkncHJldmxhYmVsJwkJCT0+ICRzbWRfc2JveExhbmct PmdUeHQoJ3ByZXZfbGJsJyksDQoJCSduZXh0bGFiZWwnCQkJPT4gJHNtZF9zYm94TGFuZy0+ Z1R4dCgnbmV4dF9sYmwnKSwNCgkJJ3ByZXZjbGFzcycJCQk9PiAnc21kX3NsaW1ib3hfcHJl dicsDQoJCSduZXh0Y2xhc3MnCQkJPT4gJ3NtZF9zbGltYm94X25leHQnLA0KCQknbmF2Y2xh c3MnCQkJPT4gJycsDQoJCSdjZWxsY2xhc3MnCQkJPT4gJycsDQoJCSdsaW5rY2xhc3MnCQkJ PT4gJycsDQoJCSdpbWdjbGFzcycJCQk9PiAnJywNCgkJJ2RlYnVnJwkJCT0+ICcwJywNCgkp LCAkYXR0cykpOw0KDQoJLy8gREVQUkVDQVRFRDogQ29udmVydCBvcmRlcmJ5IHRvIHRoZSBu ZXcgc29ydC4gUmVtb3ZlIGluIGxhdGVyIHZlcnNpb25zDQoJaWYgKCRvcmRlcmJ5KSB7DQoJ CSRzb3J0ID0gc3RyX3JlcGxhY2UgKCI6IiwgIiAiLCAkb3JkZXJieSk7DQoJCWlmIChpbl9h cnJheSgkcHJvZHVjdGlvbl9zdGF0dXMsIGFycmF5KCdkZWJ1ZycsICd0ZXN0aW5nJykpKSB7 DQoJCQl0cmlnZ2VyX2Vycm9yKCInb3JkZXJieScgaXMgbm93IHJlbmFtZWQgJ3NvcnQnLiBV c2UgYSBzcGFjZSBpbnN0ZWFkIG9mIGEgY29sb24gdG8gc3BlY2lmeSBzb3J0IG9yZGVyIChl LmcuIG9yZGVyYnk9J2NhdGVnb3J5OmFzYycgaXMgbm93IHNvcnQ9J2NhdGVnb3J5IGFzYycp LiIpOw0KCQl9DQoJfQ0KCS8vIENhdGVnb3J5IHJlbGllcyBvbiB3aGV0aGVyIGltYWdlaWQg aGFzIGJlZW4gc3BlY2lmaWVkIG9yIG5vdC4NCgkvLyBsQXR0cygpIHdvbid0IGxldCB1cyBo YW5kbGUgdGhpcyBsb2dpYyBzbyBpdCBoYXMgdG8gYmUgZG9uZSBtYW51YWxseQ0KCSRjYXRl Z29yeSA9IGlzc2V0KCRjYXRlZ29yeSkgPyBkb1NsYXNoKCRjYXRlZ29yeSkgOiAoKCRpbWFn ZWlkPT0iIikgPyAkcHJldGV4dFsnYyddOiAnJyk7DQoNCgkvLyBUaGUgZ2FsbGVyeSBpZGVu dGlmaWVyIGlzIHVzZWQgZm9yIGtlZXBpbmcgdHJhY2sgb2YgbmV4dC9wcmV2IHRodW1icGFn ZSBsaW5rcy4NCgkvLyBEb24ndCB1c2UgcGFyYW1kZWxpbSBoZXJlIG9yIHRoZSBkZWZhdWx0 IG9wdGlvbiBicmVha3MNCgkkZ2FsbElEID0gIiI7DQoJaWYgKCRnYWxsZXJ5aWQgPT0gIiIg fHwgc3Vic3RyKCRnYWxsZXJ5aWQsMCwxKSA9PSAiPyIpIHsNCgkJLy8gR2VuZXJhdGUgYSB1 bmlxdWUgSUQgZm9yIHRoaXMgZ2FsbGVyeSBpbnN0YW5jZQ0KCQkkZ2FsbFRtcCA9IG1kNSgk Y2F0ZWdvcnkuJGltYWdlaWQuJG9yZGVyYnkuJGxpbWl0LiRtYXhsaW1pdC4kd3JhcHRhZyk7 DQoJCWxpc3QoJGdhbGxMZW4sICRnYWxsU2tpcCkgPSBleHBsb2RlKCI6Iiwgc3Vic3RyKCRn YWxsZXJ5aWQsMSkpOw0KCQkkZ2FsbExlbiA9ICAoZW1wdHkoJGdhbGxMZW4pKSA/ICI0IiA6 ICRnYWxsTGVuOw0KCQkkZ2FsbFNraXAgPSAgKGVtcHR5KCRnYWxsU2tpcCkpID8gIjEiIDog JGdhbGxTa2lwOw0KCQlmb3IgKCRpZHggPSAwLCAkY250ID0gMDsgJGNudCA8ICRnYWxsTGVu OyAkY250KyssICRpZHggPSAoKCRpZHgrJGdhbGxTa2lwKSAlIHN0cmxlbigkZ2FsbFRtcCkp KSB7DQoJCQkkZ2FsbElEIC49ICRnYWxsVG1wWyRpZHhdOw0KCQl9DQoJfSBlbHNlIHsNCgkJ JGdhbGxJRCA9ICRnYWxsZXJ5aWQ7DQoJfQ0KDQoJLy8gU2V0IHVwIHRoZSB2YXJpYWJsZXMg ZnJvbSB0aGUgdGh1bWIgb3B0aW9uLg0KCS8vIERvbid0IHVzZSBwYXJhbWRlbGltIGhlcmUg b3IgdGhlIGRlZmF1bHQgb3B0aW9uIGJyZWFrcw0KCSR0aHVtYk9wdHMgPSBkb19saXN0KCR0 aHVtYiwgIjoiKTsNCglpZiAoY291bnQoJHRodW1iT3B0cykgPT0gMSkgew0KCQkkZnVsbG1v ZCA9ICgkdGh1bWJPcHRzWzBdID09IDEpID8gInQiIDogIiI7DQoJCSR0aHVtYm1vZCA9ICJ0 IjsNCgl9IGVsc2Ugew0KCQkkZnVsbG1vZCA9ICgkdGh1bWJPcHRzWzBdID09IDEpID8gInQi IDogIiI7DQoJCSR0aHVtYm1vZCA9ICgkdGh1bWJPcHRzWzFdID09IDEpID8gInQiIDogIiI7 DQoJfQ0KDQoJLy8gRXh0cmFjdCB0aGUgZ2l2ZW4gY2F0ZWdvcnkvaW1hZ2VpZCBsaXN0cyBh bmQgbWFrZSB1cCB0aGUgYmVnaW5uaW5ncyBvZiBhIFdIRVJFIGNsYXVzZQ0KCSRjbGF1c2Vb XSA9ICcxPTEnOw0KCSRjbGF1c2VPUiA9IGFycmF5KCk7DQoJJHN1YmluZm8gPSAoJHN1YmNh dHMpID8gImltYWdlOiIuJHN1YmNhdHMgOiAnJzsNCglsaXN0KCRmdWxsSURMaXN0LCAkbm90 SURMaXN0KSA9IHNtZF9kb0xpc3QoJGltYWdlaWQsIHRydWUsICcnLCB0cnVlLCAkZGVsaW0p Ow0KCWxpc3QoJGZ1bGxDYXRMaXN0LCAkbm90Q2F0TGlzdCkgPSBzbWRfZG9MaXN0KCRjYXRl Z29yeSwgZmFsc2UsICRzdWJpbmZvLCB0cnVlLCAkZGVsaW0pOw0KCWlmICgkZnVsbElETGlz dCkgew0KCQkkY2xhdXNlT1JbXSA9ICd0eHBfaW1hZ2UuaWQgSU4gKCcuaW1wbG9kZSgiLCIs ICRmdWxsSURMaXN0KS4nKSc7DQoJfQ0KCWlmICgkZnVsbENhdExpc3QpIHsNCgkJJGNsYXVz ZU9SW10gPSAndHhwX2ltYWdlLmNhdGVnb3J5IElOICgnLmltcGxvZGUoIiwiLCAkZnVsbENh dExpc3QpLicpJzsNCgl9DQoJaWYgKCFlbXB0eSgkY2xhdXNlT1IpKSB7DQoJCSRjbGF1c2Vb XSA9IGltcGxvZGUoIiBPUiAiLCAkY2xhdXNlT1IpOw0KCX0NCg0KCSRjbGF1c2UgPSBpbXBs b2RlKCIgQU5EICIsICRjbGF1c2UpOw0KCSRjbGF1c2UgLj0gKCRub3RDYXRMaXN0KSA/ICcg QU5EIHR4cF9pbWFnZS5jYXRlZ29yeSBOT1QgSU4gKCcuaW1wbG9kZSgiLCIsICRub3RDYXRM aXN0KS4nKScgOiAnJzsNCgkkY2xhdXNlIC49ICgkbm90SURMaXN0KSA/ICcgQU5EIHR4cF9p bWFnZS5pZCBOT1QgSU4gKCcuaW1wbG9kZSgiLCIsICRub3RJRExpc3QpLicpJyA6ICcnOw0K DQoJLy8gSWYgYSBjYXRlZ29yeS9pbWFnZWlkIG9wdGlvbiB3YXMgY2hvc2VuIGFuZCB0aGV5 IG1hdGNoZWQgbm90aGluZywgdXNlIGEgYm9ndXMgY2F0ZWdvcnkgdGhhdCBzaG91bGQgbm90 IGV4aXN0Lg0KCS8vIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBwbHVnaW4gZG9lcyB0aGUgZXhw ZWN0ZWQgdGhpbmcgb2YgbWF0Y2hpbmcgbm90aGluZyBpbiB0aGUgZXZlbnQgaXQgZmluZHMg bm90aGluZy4NCglpZiAoJGNsYXVzZSA9PSAiMT0xIiAmJiAkYXR0ZW1wdE1hdGNoKSB7DQog IAkJJGNsYXVzZSA9ICd0eHBfaW1hZ2UuY2F0ZWdvcnkgPSAic21kXycgLm10X3JhbmQoKS4g JyInOw0KCX0NCg0KCS8vIENvbnZlcnQgdGhlIHNvcnQgaW50byBhIHZhbGlkIHNvcnRpbmcg aGllcmFyY2h5Lg0KCS8vIE5vdGUgdGhhdCByYW5kb20gaXMgYSBzcGVjaWFsIGNhc2UgYW5k IHRoZSBmb2xsb3dpbmcgcnVsZXMgYXBwbHk6DQoJLy8gIDEpIEFueXRoaW5nIGFwcGVhcmlu ZyBiZWZvcmUgcmFuZG9tIGlzIHBhc3NlZCB0byB0aGUgZGF0YWJhc2UgcXVlcnkgZm9yIG9y ZGVyaW5nDQoJLy8gIDIpIEFzIHNvb24gYXMgcmFuZG9tIGlzIGVuY291bnRlcmVkLCB0aGUg cmVzdCBvZiB0aGUgc29ydCBzdHJpbmcgaXMgaWdub3JlZC4NCgkvLyAgICAgVGhlIHJlc3Vs dHNldCB3aWxsIGJlIHNvcnRlZCByYW5kb21seSBpbnN0ZWFkDQoJLy8gIDMpIElmIHJhbmRv bSBhcHBlYXJzIGZpcnN0IGluIHRoZSBsaXN0LCB0aGUgZGF0YSBpcyByZXRyaWV2ZWQgcmFu ZG9tbHkgdGhlbiB0aGUNCgkvLyAgICAgcmVtYWluaW5nIG9wdGlvbnMgc29ydCB0aGUgcmVz dWx0c2V0DQoJJGNsYXVzZVNvcnQgPSBhcnJheSgpOw0KCSRwb3N0T3JkZXIgPSBhcnJheSgp Ow0KCSRydWxlID0gInNxbCI7DQoJJHBvc3RQcmVmaXggPSAiU09SVF8iOw0KCSRmaXhlZE9y ZGVyID0gJHJhbmRzb3J0ID0gZmFsc2U7DQoJJHNvcnQgPSBkb19saXN0KCRzb3J0LCAkZGVs aW0pOw0KCWZvciAoJGlkeCA9IDA7ICRpZHggPCBjb3VudCgkc29ydCk7ICRpZHgrKykgew0K CQkkc29ydF9kaXIgPSBleHBsb2RlKCcgJywgJHNvcnRbJGlkeF0pOw0KCQkkZGlyZWN0aW9u ID0gJGNvbFJlZiA9ICcnOw0KCQlpZiAoY291bnQoJHNvcnRfZGlyKSA8PSAxKSB7DQoJCQkk c29ydF9kaXJbMV0gPSAiYXNjIjsNCgkJfQ0KCQlpZiAoJHJ1bGUgPT0gInNxbCIpIHsNCgkJ CSRkaXJlY3Rpb24gPSAoJHNvcnRfZGlyWzFdID09ICJkZXNjIikgPyAnIGRlc2MnIDogJyBh c2MnOw0KCQl9IGVsc2Ugew0KCQkJJGRpcmVjdGlvbiA9ICgkc29ydF9kaXJbMV0gPT0gImRl c2MiKSA/ICRwb3N0UHJlZml4LidERVNDJyA6ICRwb3N0UHJlZml4LidBU0MnOw0KCQl9DQoN CgkJc3dpdGNoICgkc29ydF9kaXJbMF0pIHsNCgkJCWNhc2UgJ3JhbmRvbSc6DQoJCQkJJHJ1 bGUgPSAicG9zdCI7DQoJCQkJaWYgKCRpZHggPT0gMCkgew0KCQkJCQkkY2xhdXNlU29ydFtd ID0gJ3JhbmQoKSc7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJHJhbmRzb3J0ID0gdHJ1ZTsNCgkJ CQl9DQoJCQkJYnJlYWs7DQoJCQljYXNlICdmaXhlZCc6DQoJCQkJLy8gJ2ZpeGVkJyBvbmx5 IHdvcmtzIG9uIGlkcw0KCQkJCSRmaXhlZE9yZGVyID0gKCRpbWFnZWlkID09ICcnKSA/IGZh bHNlIDogdHJ1ZTsNCgkJCQlicmVhazsNCgkJCWRlZmF1bHQ6DQoJCQkJJGNvbFJlZiA9IGFy cmF5X3NlYXJjaCgkc29ydF9kaXJbMF0sICRmaWVsZE1hcCk7DQoJCQkJYnJlYWs7DQoJCX0N CgkJaWYgKCRydWxlID09ICJzcWwiKSB7DQoJCQlpZiAoJGNvbFJlZiAhPSAnJykgew0KCQkJ CSRjbGF1c2VTb3J0W10gPSAkY29sUmVmLiRkaXJlY3Rpb247DQoJCQl9DQoJCX0gZWxzZSB7 DQoJCQlpZiAoISRyYW5kc29ydCkgew0KCQkJCWlmICgkY29sUmVmICE9ICcnKSB7DQoJCQkJ CSRwb3N0T3JkZXJbXSA9IGFycmF5KCJjb2wiID0+ICRjb2xSZWYsICJzb3J0IiA9PiAkZGly ZWN0aW9uKTsNCgkJCQl9DQoJCQl9DQoJCX0NCgl9DQoNCglpZiAoY291bnQoJGNsYXVzZVNv cnQpID4gMCkgew0KCQkkY2xhdXNlIC49ICcgT1JERVIgQlkgJyAuIGltcGxvZGUoIiwiLCRj bGF1c2VTb3J0KTsNCgl9DQoNCgkvLyBUaGUgZGF0YWJhc2UgZmllbGRzIHJlcXVpcmVkDQoJ JGZpZWxkcyA9ICdpZCxuYW1lLGNhcHRpb24sYWx0LGNhdGVnb3J5LGRhdGUsYXV0aG9yLGV4 dCx3LGgnOw0KDQoJLy8gSGFuZGxlIHBhZ2luZw0KCWlmICgoJGxpbWl0ID4gMCkgJiYgJHNo b3dwYWdlbGlua3MpIHsNCgkJJHJzID0gc2FmZV9yb3dzKCRmaWVsZHMsICd0eHBfaW1hZ2Un LCAkY2xhdXNlIC4nIExJTUlUIDAsJy4kbWF4bGltaXQsICRkZWJ1Zyk7DQoJCSRudW10aHVt ID0gY291bnQoJHJzKTsNCgkJJG51bVBhZ2VzID0gKCRudW10aHVtID4gMCkgPyBjZWlsKCRu dW10aHVtLyRsaW1pdCkgOiAxOw0KCQkkdGh1bWJwYWdlID0gKCFncHMoJGdhbGxJRCkpID8g MSA6IGdwcygkZ2FsbElEKTsNCgkJJG9mZnNldCA9ICgkdGh1bWJwYWdlIC0gMSkgKiAkbGlt aXQ7DQoJfSBlbHNlIHsNCgkJLy8gTm8gcGFnaW5nIHJlcXVpcmVkDQoJCSRudW1QYWdlcyA9 IDE7DQoJCSR0aHVtYnBhZ2UgPSAxOw0KCQkkcnMgPSBzYWZlX3Jvd3MoJGZpZWxkcywgJ3R4 cF9pbWFnZScsICRjbGF1c2UgLicgTElNSVQgMCwnLiAoKCRsaW1pdD09MCkgPyAkbWF4bGlt aXQgOiAkbGltaXQpLCAkZGVidWcpOw0KCX0NCg0KCS8vIElzIHBvc3Qtb3JkZXJpbmcgcmVx dWlyZWQ/IERvIGl0DQoJaWYgKCRyYW5kc29ydCkgew0KCQlzaHVmZmxlKCRycyk7DQoJfSBl bHNlIGlmIChjb3VudCgkcG9zdE9yZGVyKSA+IDApIHsNCgkJLy8gVHJhbnNsYXRlIHRoZSBy b3dzIGludG8gY29sdW1ucyB0aGF0IGNhbiBiZSBzb3J0ZWQNCgkJZm9yZWFjaCgkcnMgYXMg JGtleSA9PiAkcm93KSB7DQoJCQkkY29sX2lkWyRrZXldID0gJHJvd1snaWQnXTsNCgkJCSRj b2xfbmFtZVska2V5XSA9ICRyb3dbJ25hbWUnXTsNCgkJCSRjb2xfY2FwdGlvblska2V5XSA9 ICRyb3dbJ2NhcHRpb24nXTsNCgkJCSRjb2xfYWx0WyRrZXldID0gJHJvd1snYWx0J107DQoJ CQkkY29sX2NhdGVnb3J5WyRrZXldID0gJHJvd1snY2F0ZWdvcnknXTsNCgkJCSRjb2xfZGF0 ZVska2V5XSA9ICRyb3dbJ2RhdGUnXTsNCgkJCSRjb2xfZXh0WyRrZXldID0gJHJvd1snZXh0 J107DQoJCQkkY29sX2F1dGhvclska2V5XSA9ICRyb3dbJ2F1dGhvciddOw0KCQkJJGNvbF93 WyRrZXldID0gJHJvd1sndyddOw0KCQkJJGNvbF9oWyRrZXldID0gJHJvd1snaCddOw0KCQl9 DQoJCS8vIE1ha2UgdXAgYW4gYXJyYXlfbXVsdGlzb3J0IGFyZyBsaXN0IGFuZCBleGVjdXRl IGl0DQoJCWZvciAoJGlkeCA9IDA7ICRpZHggPCBjb3VudCgkcG9zdE9yZGVyKTsgJGlkeCsr KSB7DQoJCQkkc29ydGFyZ3NbXSA9ICckY29sXycuJHBvc3RPcmRlclskaWR4XVsnY29sJ107 DQoJCQkkc29ydGFyZ3NbXSA9ICRwb3N0T3JkZXJbJGlkeF1bJ3NvcnQnXTsNCgkJfQ0KCQkk c29ydGl0ID0gJ2FycmF5X211bHRpc29ydCgnLmltcGxvZGUoIiwgIiwkc29ydGFyZ3MpLics ICRycyk7JzsNCgkJZXZhbCgkc29ydGl0KTsNCgl9DQoNCgkvLyBJcyBmaXhlZC1vcmRlciBv dXRwdXQgZGVzaXJlZD8gSWYgc28sIHJlLW9yZGVyIHRoZSAkcnMNCglpZiAoJGZpeGVkT3Jk ZXIpIHsNCgkJJG9yZGVyZWRSUyA9IEFycmF5KCk7DQoJCSRpZ25vcmVMaXN0ID0gQXJyYXko KTsNCgkJJHJlbWFpbmluZ1JTID0gQXJyYXkoKTsNCgkJLy8gU3VjayBvdXQgdGhlIGZpeGVk IGl0ZW1zIGZpcnN0DQoJCWZvciAoJGlkeCA9IDA7ICRpZHggPCBjb3VudCgkZnVsbElETGlz dCk7ICRpZHgrKykgew0KCQkJZm9yZWFjaCgkcnMgYXMgJHJvdykgew0KCQkJCWlmICgiJyIu JHJvd1snaWQnXS4iJyIgPT0gJGZ1bGxJRExpc3RbJGlkeF0pIHsNCgkJCQkJJG9yZGVyZWRS U1tdID0gJHJvdzsNCgkJCQkJJGlnbm9yZUxpc3RbXSA9ICRyb3dbJ2lkJ107DQoJCQkJfQ0K CQkJfQ0KCQl9DQoJCS8vIFRhY2sgb24gdGhlIHJlbWFpbmluZyByb3dzDQoJCWZvcmVhY2go JHJzIGFzICRyb3cpIHsNCgkJCWlmICghaW5fYXJyYXkoJHJvd1snaWQnXSwgJGlnbm9yZUxp c3QpKSB7DQoJCQkJJHJlbWFpbmluZ1JTW10gPSAkcm93Ow0KCQkJfQ0KCQl9DQoJCSRycyA9 IGFycmF5X21lcmdlKCRvcmRlcmVkUlMsICRyZW1haW5pbmdSUyk7DQoJfQ0KDQoJaWYgKCgk bGltaXQgPiAwKSAmJiAkc2hvd3BhZ2VsaW5rcykgew0KCQkkcnMgPSBhcnJheV9zbGljZSgk cnMsICRvZmZzZXQsICRsaW1pdCk7DQoJfQ0KDQoJLy8gSGFuZGxlIHRodW1ic2l6ZQ0KCSR0 aHVtYldpZHRoID0gJHRodW1iSGVpZ2h0ID0gJyc7DQoJJHRodW1iV1VuaXRzID0gJHRodW1i SFVuaXRzID0gJyc7DQoJaWYgKCR0aHVtYnNpemUpIHsNCgkJJHRodW1iU2l6ZXMgPSBkb19s aXN0KCR0aHVtYnNpemUsICRkZWxpbSk7DQoJCWlmIChjb3VudCgkdGh1bWJTaXplcykgPT0g MSkgew0KCQkJJHRodW1iV2lkdGggPSAkdGh1bWJIZWlnaHQgPSBlcmVnX3JlcGxhY2UoIlte MC05XSIsICcnLCAkdGh1bWJTaXplc1swXSk7DQoJCQkkdW5pdHMgPSBlcmVnX3JlcGxhY2Uo IlswLTldIiwgJycsICR0aHVtYlNpemVzWzBdKTsNCgkJCSR0aHVtYldVbml0cyA9ICR0aHVt YkhVbml0cyA9ICgkdW5pdHMgPT0gJycpID8gJHRodW1iV1VuaXRzIDogJHVuaXRzOw0KCQl9 IGVsc2Ugew0KCQkJJHRodW1iV2lkdGggPSBlcmVnX3JlcGxhY2UoIlteMC05XSIsICcnLCAk dGh1bWJTaXplc1swXSk7DQoJCQkkdGh1bWJIZWlnaHQgPSBlcmVnX3JlcGxhY2UoIlteMC05 XSIsICcnLCAkdGh1bWJTaXplc1sxXSk7DQoJCQkkdW5pdHMgPSBlcmVnX3JlcGxhY2UoIlsw LTldIiwgJycsICR0aHVtYlNpemVzWzBdKTsNCgkJCSR0aHVtYldVbml0cyA9ICgkdW5pdHMg PT0gJycgJiYgJHRodW1iV2lkdGggIT0gJycpID8gJHRodW1iV1VuaXRzIDogJHVuaXRzOw0K CQkJJHVuaXRzID0gZXJlZ19yZXBsYWNlKCJbMC05XSIsICcnLCAkdGh1bWJTaXplc1sxXSk7 DQoJCQkkdGh1bWJIVW5pdHMgPSAoJHVuaXRzID09ICcnICYmICR0aHVtYkhlaWdodCAhPSAn JykgPyAkdGh1bWJIVW5pdHMgOiAkdW5pdHM7DQoJCX0NCgl9DQoNCgkvLyBTZXQgdXAgdGhl IHRodW1idGV4dCBwb3NpdGlvbnMNCgkkcG9zQXJyYXkgPSBhcnJheSgpOw0KCSRzaG93b3B0 cyA9IGRvX2xpc3QoJHRodW1idGV4dCwgJGRlbGltKTsNCglmb3JlYWNoICgkc2hvd29wdHMg YXMgJGl0ZW0pIHsNCgkJJHNob3dwb3MgPSBkb19saXN0KCRpdGVtLCAkcGFyYW1kZWxpbSk7 DQoJCWlmIChjb3VudCgkc2hvd3BvcykgPiAxICYmIGluX2FycmF5KCRzaG93cG9zWzBdLCRz aG93TG9jcykpIHsNCgkJCSRwb3NBcnJheVskc2hvd3Bvc1swXV0gPSAkc2hvd3Bvc1sxXTsN CgkJfSBlbHNlIHsNCgkJCSRwb3NBcnJheVskc2hvd0xvY3NbMF1dID0gKChjb3VudCgkc2hv d3Bvcyk+MSkgPyAkc2hvd3Bvc1sxXSA6ICRzaG93cG9zWzBdKTsNCgkJfQ0KCX0NCg0KCS8v IENvbnN0cnVjdCB0aGUgb3V0cHV0DQoJJGZpZWxkUkUgPSAnL1w/KCcuaW1wbG9kZSgnfCcs ICRmaWVsZE1hcCkuJ3x1cmwpLyc7DQoJJHRodW1idGV4dFBsYXRlID0gKCgkdGh1bWJ0ZXh0 d3JhcCkgPyAnPCcgLiAkdGh1bWJ0ZXh0d3JhcCAuICgoJHRodW1idGV4dGNsYXNzICE9ICIi KSA/ICcgY2xhc3M9IicgLiR0aHVtYnRleHRjbGFzcy4gJyInIDogJycpIC4gJz4nIDogJycp IC4kdGh1bWJob2xkZXIuICgoJHRodW1idGV4dHdyYXApID8gJzwvJyAuICR0aHVtYnRleHR3 cmFwLiAnPicgOiAnJyk7DQoJJG91dFN0ciA9ICcnOw0KDQoJaWYgKCRkZWJ1Zykgew0KCQlk bXAoJHJzKTsNCgl9DQoNCglpZigkcnMpIHsNCgkJJHRodW1idGV4dEN1cnI9IiI7DQoJCWZv cmVhY2goJHJzIGFzICRyb3cpIHsNCgkJCSR0aGVUaHVtYiA9IGh1LiRpbWdfZGlyLicvJyAu ICRyb3dbJ2lkJ10gLiAkdGh1bWJtb2QgLiAkcm93WydleHQnXTsNCgkJCSRmdWxsID0gaHUu JGltZ19kaXIuJy8nIC4gJHJvd1snaWQnXSAuICRmdWxsbW9kIC4kcm93WydleHQnXTsNCgkJ CWlmICgkZ3JvdXBuYW1lID09PSAiP2MiKSB7DQoJCQkJJGdycCA9ICRyb3dbJ2NhdGVnb3J5 J107DQoJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/aWQiKSB7DQoJCQkJJGdycCA9 ICRyb3dbJ2lkJ107DQoJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/YXV0aG9yIikg ew0KCQkJCSRncnAgPSAkcm93WydhdXRob3InXTsNCgkJCX0gZWxzZSBpZiAoJGdyb3VwbmFt ZSA9PT0gIj9kYXRlIikgew0KCQkJCSRncnAgPSAkcm93WydkYXRlJ107DQoJCQl9IGVsc2Ug aWYgKCRncm91cG5hbWUgPT09ICI/YWx0Iikgew0KCQkJCSRncnAgPSAkcm93WydhbHQnXTsN CgkJCX0gZWxzZSBpZiAoJGdyb3VwbmFtZSA9PT0gIj9jYXB0aW9uIikgew0KCQkJCSRncnAg PSAkcm93WydjYXB0aW9uJ107DQoJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/ZXh0 Iikgew0KCQkJCSRncnAgPSAkcm93WydleHQnXTsNCgkJCX0gZWxzZSBpZiAoJGdyb3VwbmFt ZSA9PT0gIj9uYW1lIikgew0KCQkJCSRncnAgPSAkcm93WyduYW1lJ107DQoJCQl9IGVsc2Ug aWYgKCRncm91cG5hbWUgPT09ICI/d2lkdGgiKSB7DQoJCQkJJGdycCA9ICRyb3dbJ3cnXTsN CgkJCX0gZWxzZSBpZiAoJGdyb3VwbmFtZSA9PT0gIj9oZWlnaHQiKSB7DQoJCQkJJGdycCA9 ICRyb3dbJ2gnXTsNCgkJCX0gZWxzZSBpZiAoc3Vic3RyKCRncm91cG5hbWUsMCwxKSA9PT0g Ij8iKSB7DQoJCQkJLy8gU3BsaXQgb2ZmIHRoZSBmaWVsZCBuYW1lIGZyb20gdGhlIHF1ZXN0 aW9uIG1hcmsNCgkJCQkkZmllbGRuYW1lID0gc3Vic3RyKCRncm91cG5hbWUsMSk7DQoJCQkJ aWYgKGlzc2V0KCR0aGlzYXJ0aWNsZVskZmllbGRuYW1lXSkpIHsNCgkJCQkJJGdycCA9ICR0 aGlzYXJ0aWNsZVskZmllbGRuYW1lXTsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkZ3JwID0gJyc7 DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQkkZ3JwID0gJGdyb3VwbmFtZTsNCgkJCX0NCg0K CQkJLy8gSGFuZGxlIGltYWdlY2FwdGlvbg0KCQkJJGNhcHRpb25Nc2cgPSAkaW1hZ2VjYXB0 aW9uOw0KCQkJJG1hdGNoZXMgPSBhcnJheSgpOw0KCQkJJGN0ciA9IHByZWdfbWF0Y2hfYWxs KCRmaWVsZFJFLCAkY2FwdGlvbk1zZywgJG1hdGNoZXMsIFBSRUdfU0VUX09SREVSKTsNCgkJ CWZvciAoJGlkeCA9IDA7ICRpZHggPCAkY3RyOyAkaWR4KyspIHsNCgkJCQkkZmllbGRuYW1l ID0gJG1hdGNoZXNbJGlkeF1bMV07DQoJCQkJJGtleSA9IGFycmF5X3NlYXJjaCgkZmllbGRu YW1lLCAkZmllbGRNYXApOw0KCQkJCWlmICgka2V5KSB7DQoJCQkJCSRyZXAgPSAkcm93WyRr ZXldOw0KCQkJCX0gZWxzZSBpZiAoJGZpZWxkbmFtZSA9PSAidXJsIikgew0KCQkJCQkkcmVw ID0gJGZ1bGw7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJHJlcCA9ICRmaWVsZG5hbWU7DQoJCQkJ fQ0KCQkJCSRjYXB0aW9uTXNnID0gc3RyX3JlcGxhY2UoJG1hdGNoZXNbJGlkeF1bMF0sICRy ZXAsICRjYXB0aW9uTXNnKTsNCgkJCX0NCg0KCQkJLy8gSGFuZGxlIHRodW1idGV4dA0KCQkJ JHRodW1idGV4dEFycmF5ID0gYXJyYXlfY29tYmluZSgkc2hvd0xvY3MsIGFycmF5KCIiLCIi LCIiLCIiLCIiKSk7IC8vIEluaXRpYWxpc2UgZXZlcnkgZWxlbWVudA0KCQkJZm9yZWFjaCAo JHBvc0FycmF5IGFzICRwb3MgPT4gJHRleHQpIHsNCgkJCQkkbWF0Y2hlcyA9IGFycmF5KCk7 DQoJCQkJJGN0ciA9IHByZWdfbWF0Y2hfYWxsKCRmaWVsZFJFLCAkdGV4dCwgJG1hdGNoZXMs IFBSRUdfU0VUX09SREVSKTsNCgkJCQlmb3IgKCRpZHggPSAwOyAkaWR4IDwgJGN0cjsgJGlk eCsrKSB7DQoJCQkJCSRmaWVsZG5hbWUgPSAkbWF0Y2hlc1skaWR4XVsxXTsNCgkJCQkJJGtl eSA9IGFycmF5X3NlYXJjaCgkZmllbGRuYW1lLCAkZmllbGRNYXApOw0KCQkJCQlpZiAoJGtl eSkgew0KCQkJCQkJJHJlcCA9ICRyb3dbJGtleV07DQoJCQkJCX0gZWxzZSBpZiAoJGZpZWxk bmFtZSA9PSAidXJsIikgew0KCQkJCQkJJHJlcCA9ICRmdWxsOw0KCQkJCQl9IGVsc2Ugew0K CQkJCQkJJHJlcCA9ICRmaWVsZG5hbWU7DQoJCQkJCX0NCgkJCQkJJHRleHQgPSBzdHJfcmVw bGFjZSgkbWF0Y2hlc1skaWR4XVswXSwgJHJlcCwgJHRleHQpOw0KCQkJCX0NCgkJCQkkdGh1 bWJ0ZXh0QXJyYXlbJHBvc10gPSAkdGV4dDsNCgkJCX0NCg0KCQkJLy8gQ29uc3RydWN0IHRo ZSBsaW5rIGFuZCBwdXQgdGh1bWJ0ZXh0IGluIHRoZSBhcHByb3ByaWF0ZSBwb3NpdGlvbnMN CgkJCSRvdXRTdHIgLj0gKCR0aHVtYnRleHRBcnJheVsib25jaGFuZ2UiXSAmJiAkdGh1bWJ0 ZXh0QXJyYXlbIm9uY2hhbmdlIl0gIT0gJHRodW1idGV4dEN1cnIpID8gc3RyX3JlcGxhY2Uo JHRodW1iaG9sZGVyLCBodG1sc3BlY2lhbGNoYXJzX2RlY29kZSgkdGh1bWJ0ZXh0QXJyYXlb Im9uY2hhbmdlIl0pLCAkdGh1bWJ0ZXh0UGxhdGUpIDogJyc7DQoJCQkkb3V0U3RyIC49ICgk d3JhcHRhZyAhPSAiIikgPyAnPCcgLiR3cmFwdGFnLiAoKCRjZWxsY2xhc3MgIT0gIiIpID8g JyBjbGFzcz0iJyAuJGNlbGxjbGFzcy4gJyInIDogJycpIC4gJz4nIDogJyc7DQoJCQkkb3V0 U3RyIC49ICgkdGh1bWJ0ZXh0QXJyYXlbImFib3ZlIl0pID8gc3RyX3JlcGxhY2UoJHRodW1i aG9sZGVyLCBodG1sc3BlY2lhbGNoYXJzX2RlY29kZSgkdGh1bWJ0ZXh0QXJyYXlbImFib3Zl Il0pLCAkdGh1bWJ0ZXh0UGxhdGUpIDogJyc7DQoJCQkkb3V0U3RyIC49ICc8YSBocmVmPSIn LiRmdWxsLiciIHJlbD0iJyAuJHRyaWdnZXIuJGdycC4gJyIgdGl0bGU9IicgLiRjYXB0aW9u TXNnLiAnIicgLigoJGxpbmtjbGFzcyAhPSAiIikgPyAnIGNsYXNzPSInIC4kbGlua2NsYXNz LiAnIicgOiAnJykuICc+JyAuKCgkdGh1bWJ0ZXh0QXJyYXlbImJlZm9yZSJdKSA/IHN0cl9y ZXBsYWNlKCR0aHVtYmhvbGRlciwgaHRtbHNwZWNpYWxjaGFyc19kZWNvZGUoJHRodW1idGV4 dEFycmF5WyJiZWZvcmUiXSksICR0aHVtYnRleHRQbGF0ZSkgOiAnJykuICc8aW1nIHNyYz0i JyAuJHRoZVRodW1iLiAnIiBhbHQ9IicgLiRyb3dbJ2FsdCddLiAnIicgLiAoKCRpbWdjbGFz cyAhPSAiIikgPyAnIGNsYXNzPSInIC4kaW1nY2xhc3MuICciJyA6ICcnKSAuICgoJHRodW1i V2lkdGgpID8gJyB3aWR0aD0iJyAuICR0aHVtYldpZHRoLiR0aHVtYldVbml0cy4gJyInIDog JycpIC4gKCgkdGh1bWJIZWlnaHQpID8gJyBoZWlnaHQ9IicgLiAkdGh1bWJIZWlnaHQuJHRo dW1iSFVuaXRzLiAnIicgOiAnJykgLiAnIC8+JyAuKCgkdGh1bWJ0ZXh0QXJyYXlbImFmdGVy Il0pID8gc3RyX3JlcGxhY2UoJHRodW1iaG9sZGVyLCBodG1sc3BlY2lhbGNoYXJzX2RlY29k ZSgkdGh1bWJ0ZXh0QXJyYXlbImFmdGVyIl0pLCAkdGh1bWJ0ZXh0UGxhdGUpIDogJycpLiAn PC9hPicubjsNCgkJCSRvdXRTdHIgLj0gKCR0aHVtYnRleHRBcnJheVsiYmVsb3ciXSkgPyBz dHJfcmVwbGFjZSgkdGh1bWJob2xkZXIsIGh0bWxzcGVjaWFsY2hhcnNfZGVjb2RlKCR0aHVt YnRleHRBcnJheVsiYmVsb3ciXSksICR0aHVtYnRleHRQbGF0ZSkgOiAnJzsNCgkJCSRvdXRT dHIgLj0gKCR3cmFwdGFnICE9ICIiKSA/ICc8LycgLiR3cmFwdGFnLiAnPicgOiAnJzsNCgkJ CSRvdXRTdHIgLj0gbjsNCgkJCSR0aHVtYnRleHRDdXJyID0gJHRodW1idGV4dEFycmF5WyJv bmNoYW5nZSJdOw0KCQl9DQoNCgkJLy8gQWRkIHRoZSBwYWdpbmcgZmVhdHVyZXMgaWYgcmVx dWlyZWQNCgkJaWYgKCgkbGltaXQgPiAwKSAmJiAkc2hvd3BhZ2VsaW5rcykgew0KCQkJJG5l eHQgPSAoJG51bVBhZ2VzID4gMSAmJiAkdGh1bWJwYWdlICE9ICRudW1QYWdlcyk7DQoJCQkk cHJldiA9ICgkbnVtUGFnZXMgPiAxICYmICR0aHVtYnBhZ2UgPiAxKTsNCg0KCQkJLy8gUmVw bGFjZSBhbnkgcGFnaW5nIGluZm8gaW4gdGhlIHF1ZXJ5IHN0cmluZw0KCQkJJHByZXZQYWdl ID0gc21kX2FkZFFTVmFyKCRwcmV0ZXh0WydyZXF1ZXN0X3VyaSddLCAkZ2FsbElELCAkdGh1 bWJwYWdlLTEpOw0KCQkJJG5leHRQYWdlID0gc21kX2FkZFFTVmFyKCRwcmV0ZXh0WydyZXF1 ZXN0X3VyaSddLCAkZ2FsbElELCAkdGh1bWJwYWdlKzEpOw0KDQoJCQkkb3V0U3RyIC49ICgk bmF2d3JhcHRhZyAhPSAiIikgPyAnPCcgLiRuYXZ3cmFwdGFnLiAoKCRuYXZjbGFzcyAhPSAi IikgPyAnIGNsYXNzPSInIC4kbmF2Y2xhc3MuICciJyA6ICcnKSAuICc+JyA6ICcnOw0KCQkJ JG91dFN0ciAuPSAoJHByZXYpID8gJzxhJyAuICgoJHByZXZjbGFzcyAhPSAiIikgPyAnIGNs YXNzPSInIC4kcHJldmNsYXNzLiAnIicgOiAnJykgLiAnIGhyZWY9IicgLiRwcmV2UGFnZS4g JyI+JyAuJHByZXZsYWJlbC4gJzwvYT4nLm4gOiAnJzsNCgkJCSRvdXRTdHIgLj0gKCRuZXh0 KSA/ICc8YScgLiAoKCRuZXh0Y2xhc3MgIT0gIiIpID8gJyBjbGFzcz0iJyAuJG5leHRjbGFz cy4gJyInIDogJycpIC4gJyBocmVmPSInIC4kbmV4dFBhZ2UuICciPicgLiRuZXh0bGFiZWwu ICc8L2E+Jy5uIDogJyc7DQoJCQkkb3V0U3RyIC49ICgkbmF2d3JhcHRhZyAhPSAiIikgPyAn PC8nIC4kbmF2d3JhcHRhZy4gJz4nIDogJyc7DQoJCQkkb3V0U3RyIC49IG47DQoJCX0NCgl9 DQoNCglyZXR1cm4gJG91dFN0cjsNCn0iO3M6NDoidHlwZSI7czoxOiIwIjtzOjU6Im9yZGVy IjtzOjE6IjUiO3M6NDoiaGVscCI7czozODM0ODoiCTxwPjxkaXYgaWQ9InNtZF9oZWxwIj48 L3A+CgoJPGgxIGlkPSJ0b3AiPnNtZF9zbGltYm94PC9oMT4KCgk8aDIgaWQ9ImNvbnRlbnRz Ij5Db250ZW50czwvaDI+CgoJPHVsPgoJCTxsaT48YSBocmVmPSIjZmVhdHVyZXMiPkZlYXR1 cmVzPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNhdXRob3IiPkF1dGhvcjwvYT48L2xpPgoJ CTxsaT48YSBocmVmPSIjaW5zdGFsbCI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248 L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI3VzYWdlIj5UYWcgdXNhZ2U8L2E+Cgk8dWw+CgkJ PGxpPjxhIGhyZWY9IiNjaGFuZ2VzIj5DaGFuZ2VzIGZyb20gcHJldmlvdXMgdmVyc2lvbjwv YT48L2xpPgoJCTxsaT48YSBocmVmPSIjYXR0cyI+QXR0cmlidXRlczwvYT48L2xpPgoJCTxs aT48YSBocmVmPSIjZmllbGRzIj5BcnRpY2xlIGZpZWxkIGNvZGVzPC9hPjwvbGk+CgkJPGxp PjxhIGhyZWY9IiNpbWFnZV9maWVsZHMiPkltYWdlIGZpZWxkIGNvZGVzPC9hPjwvbGk+Cgk8 L3VsPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNleGFtcGxlcyI+RXhhbXBsZXM8L2E+PC9saT4K CQk8bGk+PGEgaHJlZj0iI3N0eWxlIj5TdHlsaW5nPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9 IiNjaGFuZ2Vsb2ciPkNoYW5nZWxvZzwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjY3JlZGl0 cyI+Q3JlZGl0czwvYT48L2xpPgoJPC91bD4KCgk8aDIgaWQ9ImZlYXR1cmVzIj5GZWF0dXJl czwvaDI+CgoJPHVsPgoJCTxsaT5HZW5lcmF0ZXMgYSBsaXN0IG9mIHRodW1ibmFpbHMgdGhh dCBjYW4gYmUgc3R5bGVkIGFueSB3YXkgeW91IGxpa2U8L2xpPgoJCTxsaT5GbGV4aWJsZSB3 YXkgb2YgZXh0cmFjdGluZyBpbWFnZXMgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRY UDwvc3Bhbj4gZGF0YWJhc2U7IGFyYml0cmFyeSBpbmNsdXNpb24vZXhjbHVzaW9uIG9mIGNh dGVnb3JpZXMgb3IgaW1hZ2UgSURzPC9saT4KCQk8bGk+TGlzdHMgb2YgY2F0ZWdvcmllcyBh bmQgSURzIGNhbiBiZSBwdWxsZWQgZnJvbSBhbnkgZmllbGQgaW4gdGhlIGN1cnJlbnQgYXJ0 aWNsZSwgaW5jbHVkaW5nIGN1c3RvbSBmaWVsZHM8L2xpPgoJCTxsaT5TdXBwb3J0cyBnbHpf Y3VzdG9tX2ZpZWxkcyBmb3IgZXZlbiBncmVhdGVyIGZsZXhpYmlsaXR5IChjdXJyZW50bHkg cmVxdWlyZXMgYSBzbWFsbCBtb2QgdG8gcHVibGlzaC5waHApPC9saT4KCQk8bGk+U3ViY2F0 ZWdvcmllczogc3BlY2lmeSBhIHBhcmVudCBhbmQgYWxsIGNoaWxkIGNhdGVnb3JpZXMgYXJl IGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQ8L2xpPgoJCTxsaT5TaG93IGFzc29jaWF0ZWQgaW1h Z2UgdGV4dCBpbiB2YXJpb3VzIGxvY2F0aW9ucyBhcm91bmQgdGhlIHRodW1ibmFpbHM8L2xp PgoJCTxsaT5QYWdpbmcgYW5kIG11bHRpcGxlIGdhbGxlcmllcyBwZXIgcGFnZTwvbGk+CgkJ PGxpPlN1cHBvcnRzIFNsaW1ib3gsIExpZ2h0Ym94LCBMaXRlYm94LCBNb29uYm94LCBUaGlj a2JveCBhbmQgcGVyaGFwcyBzb21lIG1vcmUgYmVzaWRlcy4gRm9yIGEgd2lkZXIgcmFuZ2Us IHNlZSA8YSBocmVmPSJodHRwOi8vdGV4dHBhdHRlcm4ub3JnL3BsdWdpbnMvOTU3L3NtZF9n YWxsZXJ5Ij5zbWRfZ2FsbGVyeTwvYT48L2xpPgoJPC91bD4KCgk8aDIgaWQ9ImF1dGhvciI+ QXV0aG9yPC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vY29tbWVu dEZvcm0iPlN0ZWYgRGF3c29uPC9hPi4gRm9yIG90aGVyIHNvZnR3YXJlIGJ5IG1lLCBvciB0 byBtYWtlIGEgZG9uYXRpb24sIHNlZSB0aGUgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24u Y29tL3N3Ij5zb2Z0d2FyZSBwYWdlPC9hPi48L3A+CgoJPHA+T3JpZ2luYWxseSBiYXNlZCBv biA8YSBocmVmPSJodHRwOi8vd3d3LmRpZ2l0YWxpYS5iZS9zb2Z0d2FyZS9zbGltYm94Ij5z bGltYm94LCBhIGxpZ2h0d2VpZ2h0IExpZ2h0Ym94IGNsb25lPC9hPiBieSBDaHJpc3RvcGhl IEJleWxzLiBGb3IgbW9yZSBpbmZvIG9yIHRyb3VibGVzaG9vdGluZyBvbiB0aGUgbGlnaHRi b3ggc2lkZSBvZiB0aGluZ3MgKGFzIG9wcG9zZWQgdG8gdGhlIHRodW1ibmFpbCBnZW5lcmF0 aW9uIHNpZGUgb2YgdGhpbmdzKSA8YSBocmVmPSJodHRwOi8vd3d3LmZyZWV3ZWJzZmFybXMu Y29tL2ZvcnVtcy92aWV3dG9waWMucGhwP3BpZD0zMzE2I3AzMzE2Ij5zZWUgQ2hyaXN0b3Bo ZSYjODIxNztzIGZvcnVtPC9hPi48L3A+CgoJPGgyIGlkPSJpbnN0YWxsIj5JbnN0YWxsYXRp b24gLyBVbmluc3RhbGxhdGlvbjwvaDI+CgoJPHAgY2xhc3M9InJlcXVpcmVkIj5SZXF1aXJl cyA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9saWJfdjAu MzIudHh0Ij5zbWRfbGliIHYwLjMyPC9hPiB0byBiZSBpbnN0YWxsZWQgYW5kIGFjdGl2YXRl ZC48L3A+CgoJPHA+RG93bmxvYWQgdGhlIHBsdWdpbiBmcm9tIGVpdGhlciA8YSBocmVmPSJo dHRwOi8vdGV4dHBhdHRlcm4ub3JnL3BsdWdpbnMvNzQxL3NtZF9zbGltYm94Ij50ZXh0cGF0 dGVybi5vcmc8L2E+LCBvciB0aGUgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL3N3 Ij5zb2Z0d2FyZSBwYWdlPC9hPiwgcGFzdGUgdGhlIGNvZGUgaW50byB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPlRYUDwvc3Bhbj4gQWRtaW4gLSZndDsgUGx1Z2lucyBwYW5lLCBpbnN0YWxs IGFuZCBlbmFibGUgdGhlIHBsdWdpbi48L3A+CgoJPHA+WW91IHdpbGwgYWxzbyBuZWVkIGEg amF2YXNjcmlwdCBsaWJyYXJ5IHRvIHBlcmZvcm0gdGhlIGxpZ2h0Ym94IGVmZmVjdCwgd2hp Y2ggeW91IG11c3QgbG9hZCBvbiB5b3VyIHBhZ2UgYXMgcGVyIHRoZSBpbnN0cnVjdGlvbnMg Zm9yIHRoYXQgbGlicmFyeS4gQWx0aG91Z2ggdGhlIGV4YW1wbGVzIGluIHRoaXMgcGFnZSBh cmUgZm9yIFNsaW1ib3gsIHRoZSBwbHVnaW4gd2lsbCB3b3JrIHdpdGggYSBudW1iZXIgb2Yg ZnJlZWx5LWF2YWlsYWJsZSBqYXZhc2NyaXB0IGxpYnJhcmllcyAmIzgyMTI7IG9mdGVuIHdp dGhvdXQgbW9kaWZpY2F0aW9uLiBTb21lIGxpYnJhcmllcyAoZS5nLiBUaGlja2JveCkgc2lt cGx5IHJlcXVpcmUgYW4gYWRkaXRpb25hbCBjbGFzcyB0byBiZSBzZXQgb24gdGhlIGltYWdl IHRhZ3MuPC9wPgoKCTxwPlZpc2l0IHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBh dHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9MjA3MTQiPmZvcnVtIHRocmVhZDwvYT4gZm9y IG1vcmUgaW5mbyBvciB0byByZXBvcnQgb24gdGhlIHN1Y2Nlc3Mgb3Igb3RoZXJ3aXNlIG9m IHRoZSBwbHVnaW4uPC9wPgoKCTxwPlRvIHJlbW92ZSB0aGUgcGx1Z2luLCBzaW1wbHkgZGVs ZXRlIGl0IGZyb20gdGhlIEFkbWluLSZndDtQbHVnaW5zIHRhYiBhbmQgcmVtb3ZlIHlvdXIg dGhpcmQgcGFydHkgbGlicmFyaWVzLjwvcD4KCgk8aDIgaWQ9InVzYWdlIj5Vc2FnZTwvaDI+ CgoJPHA+VGhlIHBsdWdpbiBvcHRpb25zIGdvdmVybiB3aGljaCB0aHVtYm5haWxzIHRvIHVz ZSBhbmQgaG93IHRoZXkgYXJlIGRpc3BsYXllZC4gT25jZSBhIHRodW1iIGlzIGNsaWNrZWQs IGNvbnRyb2wgaXMgaGFuZGVkIG92ZXIgdG8gbW9vdG9vbHMvalF1ZXJ5L3Byb3RvdHlwZSB0 byBkbyB0aGUgZmFuY3kgd29yay4gVGhlcmVmb3JlLCBpZiB5b3Ugd2lzaCB0byBjb25maWd1 cmUgdGhlIGxvb2sgb2YgdGhlICYjODIyMDtsaWdodGJveCYjODIyMTsgcGFydCwgeW91IG5l ZWQgdG8gZWRpdCBpdHMgamF2YXNjcmlwdCBhbmQvb3IgYXNzb2NpYXRlZCA8c3BhbiBjbGFz cz0iY2FwcyI+Q1NTPC9zcGFuPi48L3A+CgoJPHA+QmVmb3JlIHlvdSBjYW4gdXNlIHNtZF9z bGltYm94IHlvdSBoYXZlIHRvIGVuc3VyZSB0aGF0IHRoZSBwYWdlIGNhbiByZWFkIHRoZSBl eHRlcm5hbCBsaWJyYXJ5IGZpbGVzLiBZb3UgZG8gdGhpcyBieSBwdXR0aW5nIDxjb2RlPiZs dDtzY3JpcHQmZ3Q7PC9jb2RlPiBhbmQgPGNvZGU+Jmx0O2xpbmsmZ3Q7PC9jb2RlPiB0YWdz IGFzIHVzdWFsIGluIHlvdXIgcGFnZSA8Y29kZT4mbHQ7aGVhZCZndDs8L2NvZGU+LjwvcD4K Cgk8aDMgaWQ9ImNoYW5nZXMiPkNoYW5nZXMgZnJvbSBwcmV2aW91cyB2ZXJzaW9uPC9oMz4K Cgk8cD5FeHBlcmllbmNlZCB1c2VycyBvZiBzbWRfc2xpbWJveCwgcGxlYXNlIG5vdGUgdGhl c2UgaW1wb3J0YW50IGNoYW5nZXMgdG8gdGhlIHBsdWdpbjo8L3A+CgoJPHVsPgoJCTxsaT5B ZnRlciBvdmVyd2hlbG1pbmcgc3VwcG9ydCBmcm9tIHRoZSBwb2xsLCA8Y29kZT5zbWRfc2xp bWJveF9pbmM8L2NvZGU+IGlzIG5vdyByZW1vdmVkLiBJZiB5b3UgdXNlIGl0LCBhIHdhcm5p bmcgd2lsbCBiZSBpc3N1ZWQ8L2xpPgoJCTxsaT5BY2NvcmRpbmdseSwgPGNvZGU+bGliY2hl Y2s8L2NvZGU+IGhhcyBiZWVuIHJlbW92ZWQ8L2xpPgoJCTxsaT48Y29kZT5jYXRsYWJlbDwv Y29kZT4gaGFzIGJlZW4gcmVtb3ZlZC4gV2l0aCBtb3JlIDxjb2RlPj88L2NvZGU+IGFuZCA8 Y29kZT4hPC9jb2RlPiA8YSBocmVmPSIjZmllbGRzIj5hcnRpY2xlIGZpZWxkIGNvZGVzPC9h PiBub3cgYXZhaWxhYmxlLCBhbmQgdGhlIGFiaWxpdHkgdG8gY29tYmluZSB0aGVtIChlLmcu ID9zLT9jKSB5b3UgY2FuIG5vdyBwZXJmb3JtIHRoZSBzYW1lIGZ1bmN0aW9uIGFzIDxjb2Rl PmNhdGxhYmVsPC9jb2RlPiBieSB1c2luZyA8Y29kZT5jYXRlZ29yeT0mcXVvdDthcnRpY2xl LT9pZCZxdW90OzwvY29kZT48L2xpPgoJCTxsaT48Y29kZT5zdWJjYXRzPC9jb2RlPiBpbXBy b3ZlZC4gTm93IHRha2VzIGFuIGludGVnZXIgJiM4MjIwO2xldmVsJiM4MjIxOyB0aGF0IHNw ZWNpZmllcyBob3cgZmFyIGRvd24gdGhlIHRyZWUgdG8gZ28uIEZvciB0aGUgc2FtZSBiZWhh dmlvdXIgYXMgYmVmb3JlLCB1c2UgPGNvZGU+c3ViY2F0cz0mcXVvdDthbGwmcXVvdDs8L2Nv ZGU+PC9saT4KCQk8bGk+c2hvd2FsdC9zaG93Y2FwdGlvbi9hbHRjbGFzcy9jYXB0aW9uY2xh c3MvdGV4dHBvcyBoYXZlIGJlZW4gcmVtb3ZlZC4gVXNlIDxjb2RlPnRodW1idGV4dDwvY29k ZT4sIDxjb2RlPnRodW1idGV4dHdyYXA8L2NvZGU+IGFuZCA8Y29kZT50aHVtYnRleHRjbGFz czwvY29kZT4gaW5zdGVhZDwvbGk+CgkJPGxpPjxjb2RlPm9yZGVyYnk8L2NvZGU+IGlzIG5v dyBjYWxsZWQgPGNvZGU+c29ydDwvY29kZT4gaW4gbGluZSB3aXRoIG90aGVyIDxzcGFuIGNs YXNzPSJjYXBzIj5UWFA8L3NwYW4+IHRhZ3MsIGFuZCB0YWtlcyBhIHNwYWNlLWRlbGltaXRl ZCBkaXJlY3Rpb24gbW9kaWZpZXIgaW5zdGVhZCBvZiB0aGUgb2xkIGNvbG9uIGRlbGltaXRl ci4gPGNvZGU+b3JkZXJieTwvY29kZT4gaXMgc3RpbGwgc3VwcG9ydGVkIGZvciBub3cgYW5k IHdpbGwgYmUgY29udmVydGVkIHRvIHRoZSBuZXcgPGNvZGU+c29ydDwvY29kZT4gdGFnIGJ1 dCB3aWxsIGlzc3VlIGEgd2FybmluZyBpbiBwcm9kdWN0aW9uL2RlYnVnIG1vZGVzPC9saT4K CQk8bGk+PGNvZGU+dGh1bWI8L2NvZGU+IGlzIG5vdyBlbmhhbmNlZCB0byBhbGxvdyB5b3Ug dG8gc3BlY2lmeSB3aGV0aGVyIHRoZSBmdWxsLXNpemUgaW1hZ2UgYW5kL29yIHRoZSB0aHVt Ym5haWwgYXJlIGRpc3BsYXllZCB1c2luZyB0aGUgJiM4MjE2O3QmIzgyMTc7IGltYWdlIG9y IG5vdC4gU28geW91IGNhbiBub3cgc3dhcCB0aHVtYm5haWwgYW5kIGZ1bGwtc2l6ZSBpZiB5 b3Ugd2lzaCwgb3IgbWFrZSB0aGVtIHNob3cgaWRlbnRpY2FsIGltYWdlczwvbGk+CgkJPGxp Pjxjb2RlPnRyaWdnZXI8L2NvZGU+IGFkZGVkLiBUaGlzIGRlZmF1bHRzIHRvICYjODIyMDts aWdodGJveC0mIzgyMjE7IHdoaWNoIGlzIHdoYXQgc2xpbWJveCB1c2VzIGluIHRoZSA8Y29k ZT5yZWw8L2NvZGU+IGF0dHJpYnV0ZSBvZiB0aGUgYW5jaG9ycy4gT3RoZXIgbGlicmFyaWVz IG1heSB1c2Ugb3RoZXIgd29yZHMgdG8gaWRlbnRpZnkgdGhlbXNlbHZlcywgc28gdGhpcyBh bGxvd3MgeW91IHRvIG1vZGlmeSB0aGUgc3RyaW5nIHRvIHN1aXQ8L2xpPgoJCTxsaT48Y29k ZT5kZWxpbTwvY29kZT4gYWRkZWQuIElmIHlvdSBkb24mIzgyMTc7dCBsaWtlIHVzaW5nIGEg Y29tbWEgYXMgYSBkZWxpbWl0ZXIsIGNoYW5nZSBpdC4gU2V0IDxjb2RlPmRlbGltPSZxdW90 O3wmcXVvdDs8L2NvZGU+IGlmIHVzaW5nIGNoZWNrYm94ZXMgYW5kIG11bHRpLXNlbGVjdHMg d2l0aCBnbHpfY3VzdG9tX2ZpZWxkczwvbGk+CgkJPGxpPjxjb2RlPm5hdndyYXB0YWc8L2Nv ZGU+IGFkZGVkIHNvIHRoZSBuYXZpZ2F0aW9uIGJsb2NrIGNhbiBiZSB3cmFwcGVkIGluIGEg ZGlmZmVyZW50IHRhZyB0byBlYWNoIGltYWdlPC9saT4KCQk8bGk+PGNvZGU+bGlua2NsYXNz PC9jb2RlPiBhZGRlZCBzbyB5b3UgY2FuIHNwZWNpZnkgYSBzZXBhcmF0ZSBjbGFzcyBmb3Ig dGhlIGltYWdlIGFuY2hvcnMgaWYgeW91IHdpc2g8L2xpPgoJPC91bD4KCgk8aDMgY2xhc3M9 ImF0dHMgIiBpZD0iYXR0cyI+QXR0cmlidXRlczwvaDM+CgoJPHA+V2l0aG91dCBhbnkgb3B0 aW9ucyB0aGUgcGx1Z2luIGRpc3BsYXlzIGV2ZXJ5IGltYWdlIGluIHlvdXIgZW50aXJlIGNv bGxlY3Rpb24gYW5kIHdvbiYjODIxNzt0IGxvb2sgdmVyeSBwcmV0dHkgKHRob3VnaCB5b3Ug Y2FuIGhlbHAgYSBiaXQgYnkgc3RhcnRpbmcgd2l0aCB0aGUgPGEgaHJlZj0iI3N0eWxlIj48 c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPjwvYT4pLiBUaGUgZm9sbG93aW5nIG9wdGlv bnMgdGFtZSB0aGUgcGx1Z2luIGEgbGl0dGxlOjwvcD4KCgk8dWwgY2xhc3M9ImF0dHMiPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmNhdGVnb3J5PC9zcGFuPiA6IGEgbGlzdCBv ZiBpbWFnZSBjYXRlZ29yaWVzLiBCeSBkZWZhdWx0IHRoZSBsaXN0IHNob3VsZCBiZSBjb21t YS1zZXBhcmF0ZWQgYnV0IHRoaXMgY2FuIGJlIGNoYW5nZWQgd2l0aCB0aGUgPGNvZGU+ZGVs aW08L2NvZGU+IG9wdGlvbi4gVGhpcyBhdHRyaWJ1dGUgbWF5IHRha2UgYW55IG9mIHRoZSBz cGVjaWFsIDxhIGhyZWY9IiNmaWVsZHMiPmZpZWxkIGNvZGVzPC9hPiBieSBnaXZpbmcgaXRz IG5hbWUgYWZ0ZXIgYSA8Y29kZT4/PC9jb2RlPiAodG8gaW5jbHVkZSB0aGF0IGZpZWxkKSBv ciA8Y29kZT4hPC9jb2RlPiAodG8gZXhjbHVkZSB0aGF0IGZpZWxkKTwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+aW1hZ2VpZDwvc3Bhbj4gOiBhIGxpc3Qgb2YgaW1hZ2Ug SURzLiBUYWtlcyBleGFjdGx5IHRoZSBzYW1lIHN5bnRheCBhcyB0aGUgPGNvZGU+Y2F0ZWdv cnk8L2NvZGU+IGF0dHJpYnV0ZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ c3ViY2F0czwvc3Bhbj4gOiBob3cgZmFyICYjODIxNjtkb3duJiM4MjE3OyB0byB0cmF2ZXJz ZSBpbWFnZSBzdWItY2F0ZWdvcmllcy4gVGFrZXMgYW4gaW50ZWdlciB2YWx1ZSBvciAmIzgy MTY7YWxsJiM4MjE3Oy4gMCAodGhlIGRlZmF1bHQpIG1lYW5zIG5vIGNoaWxkIGNhdGVnb3Jp ZXM7IDEgdXNlcyB0aGUgbWFpbiBjYXRlZ29yaWVzIGFuZCB0aGUgZmlyc3QgbGV2ZWwgb2Yg Y2hpbGRyZW47IDIgdXNlcyB0aGUgbWFpbiBjYXRlZ29yaWVzIGFuZCB1cCB0byB0d28gY2hp bGQgc3ViLWNhdGVnb3JpZXM7IGFuZCBzbyBvbjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHQtbmFtZSI+aW1hZ2VjYXB0aW9uPC9zcGFuPiA6IHRoZSB0ZXh0IHRvIGRpc3BsYXkgdW5k ZXIgdGhlIGxhcmdlIGxpZ2h0Ym94IGltYWdlLiBJdCBjYW4gYmUgYW55IGZpeGVkIHN0cmlu ZyAocmF0aGVyIHBvaW50bGVzcyEpIG9yIGEgY29tYmluYXRpb24gb2YgZml4ZWQgdGV4dCBh bmQgPGEgaHJlZj0iI2ltYWdlX2ZpZWxkcyI+aW1hZ2UgZmllbGQgY29kZXM8L2E+PC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50aHVtYjwvc3Bhbj4gOiBpZiB5b3Ugd2lz aCB0aGUgZnVsbHNpemUgaW1hZ2VzIGRpc3BsYXllZCBpbiB0aGUgbGlnaHRib3ggdG8gYmUg dGhlIHRodW1ibmFpbHMsIG9yIGlmIHlvdSB3YW50IHRoZSB0aHVtYm5haWwgZ2FsbGVyeSB0 byB1c2UgdGhlIGZ1bGxzaXplIGltYWdlcywgc3BlY2lmeSBpdCB3aXRoIHRoaXMgYXR0cmli dXRlLiBVc2UgPGNvZGU+dGh1bWI9JnF1b3Q7MSZxdW90OzwvY29kZT4gdG8gc3BlY2lmeSB0 aGF0IGJvdGggZnVsbHNpemUgaW1hZ2UgYW5kIHRodW1ibmFpbCBkaXNwbGF5IHRoZSAmIzgy MTY7dCYjODIxNzsgKHRodW1ibmFpbCkgaW1hZ2UuIENvbnZlcnNlbHksIHVzZSA8Y29kZT50 aHVtYj0mcXVvdDswJnF1b3Q7PC9jb2RlPiB0byBzcGVjaWZ5IHRoYXQgYm90aCBmdWxsc2l6 ZSBhbmQgdGh1bWJuYWlscyB1c2UgdGhlIGZ1bGwgc2l6ZSBpbWFnZXMuIFlvdSBjYW4gYWxz byBjaG9vc2Ugb25lIG9yIHRoZSBvdGhlciBieSBnaXZpbmcgdGhpcyBhdHRyaWJ1dGUgdHdv IG51bWJlcnMgc2VwYXJhdGVkIGJ5IGEgY29sb24uPGRpdiBjbGFzcz0iYnJlYWsiPkZvciAm IzgyMTY7bm9ybWFsJiM4MjE3OyBvcGVyYXRpb24gJiM4MjEyOyBpLmUuIGZ1bGxzaXplIGlt YWdlIGlzIGZ1bGwgc2l6ZSwgdGh1bWJuYWlsIGlzICB0aHVtYiBzaXplZCAmIzgyMTI7IHNw ZWNpZnkgPGNvZGU+dGh1bWI9JnF1b3Q7MDoxJnF1b3Q7PC9jb2RlPi4gVG8gcmV2ZXJzZSB0 aGlzLCB1c2UgPGNvZGU+dGh1bWI9JnF1b3Q7MTowJnF1b3Q7PC9jb2RlPi4gTm90ZSB0aGF0 IDxjb2RlPjE6MTwvY29kZT4gYW5kIDxjb2RlPjA6MDwvY29kZT4gYWxzbyB3b3JrIHRvIHNl dCBib3RoIGltYWdlcyB0byB0aGUgc2FtZSBzaXplIGlmIHlvdSBwcmVmZXIgdGhhdCBzeW50 YXggb3ZlciB1c2luZyBhIHNpbmdsZSBkaWdpdDwvZGl2PjwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdHQtbmFtZSI+bGltaXQ8L3NwYW4+IDogdGhlIG51bWJlciBvZiBpbWFnZSB0aHVt Ym5haWxzIHRvIHNob3cgcGVyIHBhZ2UuIDAgKG9yIG9taXR0ZWQpIG1lYW5zIGVzc2VudGlh bGx5IHVubGltaXRlZDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bWF4bGlt aXQ8L3NwYW4+IDogdGhlIGFic29sdXRlIG1heGltdW0gbnVtYmVyIG9mIGltYWdlcyB0byBw dWxsIGZyb20gdGhlIGRhdGFiYXNlLiAwIChvciBvbWl0dGVkKSBtZWFucyBlc3NlbnRpYWxs eSB1bmxpbWl0ZWQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnNvcnQ8L3Nw YW4+IDogYSBsaXN0IG9mIHdheXMgdG8gb3JkZXIgdGhlIHJlc3VsdHM7IGJ5IGRlZmF1bHQg aXQgaXMgYnkgY2F0ZWdvcnkuIFNwZWNpZnkgdGhlIHNvcnQgb3JkZXIgYnkgYWRkaW5nIDxj b2RlPmFzYzwvY29kZT4gb3IgPGNvZGU+ZGVzYzwvY29kZT4gdG8gYW55IHZhbHVlLCBlLmcu IDxjb2RlPnNvcnQ9JnF1b3Q7Y2F0ZWdvcnksIGRhdGUgZGVzYyZxdW90OzwvY29kZT4gd291 bGQgc29ydCBieSBjYXRlZ29yeSBmaXJzdCwgdGhlbiBkZXNjZW5kaW5nIGRhdGUuIFRha2Vz IGFueSBvZiB0aGUgPGEgaHJlZj0iI2ltYWdlX2ZpZWxkcyI+aW1hZ2UgZmllbGQgY29kZXM8 L2E+IHBsdXMgdHdvIHNwZWNpYWwgY29kZXM6PGRpdiBjbGFzcz0iYnJlYWsiPjxjb2RlPmZp eGVkPC9jb2RlPiBmb3JjZXMgdGh1bWJzIHRvIGJlIG91dHB1dCBpbiB0aGUgb3JkZXIgZ2l2 ZW4gaW4gPGNvZGU+aW1hZ2VpZDwvY29kZT4uPC9kaXY+PGRpdiBjbGFzcz0iYnJlYWsiPjxj b2RlPnJhbmRvbTwvY29kZT4gYWN0cyBzbGlnaHRseSBkaWZmZXJlbnRseSBmcm9tIHRoZSBv dGhlcnM6IGlmIGl0IGFwcGVhcnMgYXMgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QsIHJh bmRvbSBpbWFnZXMgd2lsbCBiZSBwdWxsZWQgZnJvbSB0aGUgZGF0YWJhc2UgYW5kIHRoZXkg d2lsbCB0aGVuIGJlIHNvcnRlZCBhY2NvcmRpbmcgdG8gdGhlIG9wdGlvbnMgbGlzdGVkIGFm dGVyIGl0LiBIb3dldmVyLCBpZiBpdCBhcHBlYXJzIGFueXdoZXJlIGVsc2UgaW4gdGhlIGxp c3QsIGFueSBzb3J0IGl0ZW1zIGJlZm9yZSBpdCB3aWxsIGRldGVybWluZSB0aGUgb3JkZXIg b2YgZGF0YSBwdWxsZWQgZnJvbSB0aGUgZGF0YWJhc2UsIGFuZCB0aGUgcmVzdWx0cyB3aWxs IDxlbT50aGVuPC9lbT4gYmUgb3JkZXJlZCByYW5kb21seSAoaW4gdGhhdCBjYXNlLCBhbnkg aXRlbXMgbGlzdGVkIGFmdGVyIDxjb2RlPnJhbmRvbTwvY29kZT4gd2lsbCBiZSBpZ25vcmVk LCB0aG91Z2ggPGNvZGU+Zml4ZWQ8L2NvZGU+IGlzIHN0aWxsIGhvbm91cmVkKS4gU2VlIDxh IGhyZWY9IiNlZzIiPmV4YW1wbGUgMjwvYT4gZm9yIG1vcmU8L2Rpdj48L2xpPgoJCTxsaT48 c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnRyaWdnZXI8L3NwYW4+IDogaW4gb3JkZXIgdG8gaW5k aWNhdGUgdG8gdGhlIGphdmFzY3JpcHQgbGlicmFyeSB0aGF0IGltYWdlcyBhcmUgdG8gYmUg JiM4MjIwO2xpZ2h0Ym94ZWQmIzgyMjE7IHRoZSAmIzgyMTY7cmVsJiM4MjE3OyBhdHRyaXV0 ZSBvZiBhbmNob3IgaW1hZ2VzIGlzIG9mdGVuIHVzZWQgKHRoaWNrYm94IGlzIHRoZSBleGNl cHRpb24gYW5kIHVzZXMgaXRzIG93biBjbGFzcykuIFNpbmNlIHRoZSBtZXRob2Qgb2YgaW5k aWNhdGluZyBob3cgdG8gbGlnaHRib3ggYW4gaW1hZ2UgdmFyaWVzLCB0aGlzIGF0dHJpYnV0 ZSBjYW4gYmUgdGFpbG9yZWQgdG8gbWF0Y2ggd2hpY2hldmVyIGphdmFzY3JpcHQgbGlicmFy eSB5b3UgYXJlIHVzaW5nIChzZWUgdGhlaXIgaW5zdHJ1Y3Rpb25zKS4gQnkgZGVmYXVsdCwg aXQgaXMgc2V0IHRvICYjODIyMDtsaWdodGJveC0mIzgyMjE7IHdoaWNoIHNob3VsZCBjb3Zl ciBtb3N0IG1ham9yIGxpZ2h0Ym94IGdhbGxlcnkgZWZmZWN0czwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdHQtbmFtZSI+Z3JvdXBuYW1lPC9zcGFuPiA6IHdoZW4gbWFraW5nIG11bHRp cGxlIGdhbGxlcmllcyBvciBmb3Igc3BlY2lhbCBiZWhhdmlvdXJzLCB0aGlzIGF0dHJpYnV0 ZSBhbGxvd3MgeW91IHRvIGxvZ2ljYWxseSAmIzgyMjA7Z3JvdXAmIzgyMjE7IHRodW1ibmFp bHMuPGJyIC8+Ck9uY2UgYSB2aXNpdG9yIGNsaWNrcyBhIHRodW1ibmFpbCBhbmQgY29udHJv bCBpcyBwYXNzZWQgdG8gdGhlIGphdmFzY3JpcHQgY29kZSwgbmF2aWdhdGlvbiBpcyB2aWEg dGhlIE5leHQvUHJldiBsaW5rcy4gV2l0aG91dCBzdXBwbHlpbmcgYSA8Y29kZT5ncm91cG5h bWU8L2NvZGU+LCA8ZW0+YWxsPC9lbT4gbGlnaHRib3hhYmxlIGltYWdlcyBmcm9tIDxlbT5h bGw8L2VtPiBzbWRfc2xpbWJveCB0YWdzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIG5hdmln YXRpb24uIFNvIGlmIHlvdSBoYWQgMyBzbGltYm94IHRhZ3Mgb24gdGhlIHBhZ2UsIGVhY2gg d2l0aCAyMCBpbWFnZXMgaW4gdGhlbSwgdGhlIGxpZ2h0Ym94IHdvdWxkIHNob3cgJiM4MjIw O0ltYWdlIDEgb2YgNjAmIzgyMjE7IGFuZCBhbGxvdyB5b3UgdG8gbmF2aWdhdGUgYW1vbmcg YWxsIG9mIHRoZW0uPGRpdiBjbGFzcz0iYnJlYWsiPk9uIGFydGljbGUgbGlzdCBwYWdlcywg dGhpcyBpcyBvZnRlbiB1bmRlc2lyYWJsZSBzbyB0byBjaGFuZ2UgdGhpcyBiZWhhdmlvdXIs IGdpdmUgZWFjaCBzbGltYm94IHRhZyBhIHVuaXF1ZSA8Y29kZT5ncm91cG5hbWU8L2NvZGU+ OyB0aGF0IHdpbGwgbGltaXQgdGhlIG5hdmlnYXRpb24gb25seSB0byB0aGUgZ3JvdXAgb2Yg aW1hZ2VzIGluIHRoYXQgdGFnLiA8Y29kZT5ncm91cG5hbWU8L2NvZGU+IGNhbiBiZSBhbnkg dGV4dCB5b3UgbGlrZSAoaXQgZGVmYXVsdHMgdG8gJiM4MjIwO3NtZCYjODIyMTspLCBvciB5 b3UgY2FuIHN1cHBseSBhbnkgb2YgdGhlIDxhIGhyZWY9IiNpbWFnZV9maWVsZHMiPmltYWdl IGZpZWxkIGNvZGVzPC9hPiB0byBzbGljZSBhbmQgZGljZSB0aGUgdGh1bWJuYWlscyBhbnkg d2F5IHlvdSBjaG9vc2UuIFNlZSA8YSBocmVmPSIjZWc0Ij5leGFtcGxlIDQ8L2E+IGZvciBt b3JlPC9kaXY+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5zaG93cGFnZWxp bmtzPC9zcGFuPiA6IGRpc3BsYXlzIGNsaWNrYWJsZSBuZXh0L3ByZXZpb3VzIGxpbmtzIHVu ZGVyIHRoZSB0aHVtYm5haWxzLCBhbGxvd2luZyB5b3UgdG8gbmF2aWdhdGUgZnJvbSBwYWdl IHRvIHBhZ2UgYW5kIG9ubHkgc2hvdyA8Y29kZT5saW1pdDwvY29kZT4gdGh1bWJzIHBlciBw YWdlLiBJdCBpcyBvbiAoPGNvZGU+MTwvY29kZT4pIGJ5IGRlZmF1bHQgaWYgbGltaXQgaXMg Z3JlYXRlciB0aGFuIDAuIFVzZSA8Y29kZT5zaG93cGFnZWxpbmtzPSZxdW90OzAmcXVvdDs8 L2NvZGU+IHRvIHR1cm4gaXQgb2ZmPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1l Ij5nYWxsZXJ5aWQ8L3NwYW4+IDogaWYgdXNpbmcgPGNvZGU+c2hvd3BhZ2VsaW5rczwvY29k ZT4sIHRoaXMgaXMgdGhlIHN0cmluZyB0aGF0IGlzIHVzZWQgdG8gZGlmZmVyZW50aWF0ZSBi ZXR3ZWVuIG11bHRpcGxlIHNsaW1ib3ggZ2FsbGVyaWVzIG9uIGEgc2luZ2xlIHBhZ2UuIEl0 IGFsbG93cyBwYWdpbmcgdG8gYmUgY29udHJvbGxlZCBvbiBhIHBlci1nYWxsZXJ5IGJhc2lz LCBzbyBjbGlja2luZyBOZXh0L1ByZXYgaW4gb25lIGdhbGxlcnkgd29uJiM4MjE3O3QgYWZm ZWN0IHRoZSB0aHVtYm5haWxzIGluIG90aGVyIGdhbGxlcmllcyBvbiB0aGUgc2FtZSBwYWdl LiBFYWNoIGdhbGxlcnkgb24gYSBwYWdlIDxlbT5tdXN0PC9lbT4gaGF2ZSBhIHVuaXF1ZSA8 Y29kZT5nYWxsZXJ5aWQ8L2NvZGU+IGluIG9yZGVyIGZvciBwYWdpbmcgdG8gd29yay4gVGhl IGdvb2QgbmV3cyBpcyB5b3UmIzgyMTc7bGwgcHJvYmFibHkgbmV2ZXIgaGF2ZSB0byB1c2Ug dGhpcyBhdHRyaWJ1dGUgYmVjYXVzZSBpdCB3b3JrcyBhdXRvbWF0aWNhbGx5IGZvciB5b3Uu IEluIHRoZSAodmVyeSkgdW5saWtlbHkgZXZlbnQgaXQgZ2VuZXJhdGVzIHR3byBpZGVudGlj YWwgc3RyaW5ncywgeW91IGNhbiB1c2UgdGhpcyBvcHRpb24gdG8gb3ZlcnJpZGUgdGhlIGRl ZmF1bHQgYmVoYXZpb3VyLjxkaXYgY2xhc3M9ImJyZWFrIj5JdCB0YWtlcyBlaXRoZXIgYSBm aXhlZCBzdHJpbmcgKGUuZy4gPGNvZGU+Z2FsbGVyeWlkPSZxdW90O215R2FsbGVyeTEmcXVv dDs8L2NvZGU+KTsgb3IgYSAmIzgyMTY7PyYjODIxNzsgZm9sbG93ZWQgYnkgdXAgdG8gdHdv IG51bWJlcnMgc2VwYXJhdGVkIGJ5IGEgY29sb24gKHRoZSBjb2xvbiBjYW4gYmUgY2hhZ25l ZCB3aXRoIDxjb2RlPnBhcmFtZGVsaW08L2NvZGU+KS4gSW50ZXJuYWxseSwgdGhlIHBsdWdp biBnZW5lcmF0ZXMgYSB1bmlxdWUgKDMyLWNoYXJhY3Rlcikgc3RyaW5nIGJhc2VkIG9uIHRo ZSBvdGhlciBhdHRyaWJ1dGVzIGdpdmVuLiBZb3UgdXNlIHRoZSB0d28gbnVtYmVycyB0byBj b250cm9sIHdoaWNoIGNoYXJhY3RlcnMgZnJvbSB0aGlzIHN0cmluZyB0byB1c2UgaW4geW91 ciB1bmlxdWUgY29kZS4gVGhlIGZpcnN0IG51bWJlciBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBz dHJpbmcgdG8gZ2VuZXJhdGUgYW5kIHRoZSAybmQgbnVtYmVyIGlzIGhvdyBtYW55IGNoYXJh Y3RlcnMgdG8gc2tpcCBlYWNoIHRpbWUgaXQgcGlja3Mgb25lIGZyb20gdGhlIHN0cmluZyAo d3JhcHBpbmcgYmFjayB0byB0aGUgc3RhcnQgb2YgdGhlIHN0cmluZyBpZiBpdCBmYWxscyBv ZmYgdGhlIGVuZCkuPC9kaXY+PGRpdiBjbGFzcz0iYnJlYWsiPkFuIGV4YW1wbGU6IHN1cHBv c2UgdGhlIHRhZyBnZW5lcmF0ZWQgdGhpcyBzdHJpbmcgaW50ZXJuYWxseTogPGNvZGU+MmNi NWJiZjhiMGMyYzAyOGQ4ZjIzNGI0YmQ0NmZkZGU8L2NvZGU+LiBUaGVzZSBhcmUgdGhlIHJl c3VsdHMgb2YgdmFyaW91cyB2YWx1ZXM6PC9kaXY+PC9saT4KCTwvdWw+CgoJPHRhYmxlPgoJ CTx0cj4KCQkJPHRoPmdhbGxlcnlpZD08L3RoPgoJCQk8dGg+cmVzdWx0PC90aD4KCQkJPHRo PnJlbWFya3M8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+ICYjODIyMDsmIzgyMjE7IG9y ICYjODIyMDs/NDo2JiM4MjIxOyA8L3RkPgoJCQk8dGQ+IDJmY2YgPC90ZD4KCQkJPHRkPiB0 aGUgZGVmYXVsdCA8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+ICYjODIyMDs/OCYjODIy MTsgPC90ZD4KCQkJPHRkPiAyY2I1YmJmOCA8L3RkPgoJCQk8dGQ+IHRoZSBmaXJzdCA4IGNo YXJhY3RlcnMgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiAmIzgyMjA7Pzc6MyYjODIy MTsgPC90ZD4KCQkJPHRkPiAyNWYwYzhmIDwvdGQ+CgkJCTx0ZD4gbGVuZ3RoIDcsIGNob29z aW5nIGV2ZXJ5IDNyZCBjaGFyYWN0ZXIgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiAm IzgyMjA7Pzg6NyYjODIyMTsgPC90ZD4KCQkJPHRkPiAyODI0ZjVjOCA8L3RkPgoJCQk8dGQ+ IGxlbmd0aCA4LCBjaG9vc2luZyBldmVyeSA3dGggY2hhcmFjdGVyICh3cmFwcykgPC90ZD4K CQk8L3RyPgoJPC90YWJsZT4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ d3JhcHRhZzwvc3Bhbj4gOiAoWClIVE1MIHRhZyB0byB3cmFwIGVhY2ggJiM4MjE2O2NlbGwm IzgyMTc7IChlZmZlY3RpdmVseSBhIHRodW1ibmFpbCBpbWFnZSkgd2l0aC4gRG8gbm90IHNw ZWNpZnkgdGhlICZsdDsgb3IgJmd0OyBjaGFyYWN0ZXJzLiBGb3IgYSB2YWxpZCBwYWdlLCB0 aGUgb25seSB1c2VmdWwgb3B0aW9ucyBhcmUgJiM4MjIwO2RpdiYjODIyMTssICYjODIyMDts aSYjODIyMTsgb3IgJiM4MjIwO3AmIzgyMjE7LiBEZWZhdWx0OiBlbXB0eSAoaS5lLiBubyB0 YWcpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50aHVtYnNpemU8L3NwYW4+ IDogZWl0aGVyIGZvciBzcGVjaWFsIGVmZmVjdHMsIG9yIGluIG9yZGVyIHRvIHZhbGlkYXRl IGFnYWluc3QgPHNwYW4gY2xhc3M9ImNhcHMiPlhIVE1MPC9zcGFuPiwgdGhlIGltYWdlIHRo dW1ibmFpbHMgc2hvdWxkIGhhdmUgPGNvZGU+d2lkdGg8L2NvZGU+IGFuZCA8Y29kZT5oZWln aHQ8L2NvZGU+IGF0dHJpYnV0ZXMuIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGNh bm5vdCBzdXBwbHkgdGhpcyBhdXRvbWF0aWNhbGx5LCBidXQgdGhpcyBhdHRyaWJ1dGUgd2ls bC48ZGl2IGNsYXNzPSJicmVhayI+U2ltcGx5IHNwZWNpZnkgdXAgdG8gdHdvIHZhbHVlcyBz ZXBhcmF0ZWQgYnkgYSBjb21tYSAoeW91IGNhbiBvdmVycmlkZSB0aGlzIHdpdGggPGNvZGU+ ZGVsaW08L2NvZGU+KSB0byBkZWZpbmUgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgeW91ciB0 aHVtYm5haWxzIChpbiBwaXhlbHMgYnkgZGVmYXVsdCkuIEZvciBleGFtcGxlOiA8Y29kZT50 aHVtYnNpemU9JnF1b3Q7NDAsIDYwJnF1b3Q7PC9jb2RlPiB3aWxsIHNldCA0MC1waXhlbCB4 IDYwLXBpeGVsIHRodW1ibmFpbHMuIFN1cHBseWluZyBvbmx5IG9uZSB2YWx1ZSB3aWxsIHNl dCBib3RoIHdpZHRoIGFuZCBoZWlnaHQgdG8gdGhlIHNhbWUgdmFsdWUuIEFkZGluZyB1bml0 cyBhZnRlciBlYWNoIHZhbHVlICgmIzgyMjA7cHgmIzgyMjE7LCAmIzgyMjA7ZW0mIzgyMjE7 LCAmIzgyMjA7JSYjODIyMTsgZXRjKSB3aWxsIHVzZSB0aG9zZSB1bml0cyBpbnN0ZWFkIG9m IHRoZSBkZWZhdWx0IHBpeGVscy48L2Rpdj48ZGl2IGNsYXNzPSJicmVhayI+VG8gc3BlY2lm eSBqdXN0IHRoZSB3aWR0aCwgcHV0IHRoZSBjb21tYSBpbiBidXQgbGVhdmUgdGhlIHNlY29u ZCBwYXJhbWV0ZXIgZW1wdHkgKGUuZy4gPGNvZGU+dGh1bWJzaXplPSZxdW90OzJlbSwmcXVv dDs8L2NvZGU+KS4gU2ltaWxhcmx5IHRvIHNwZWNpZnkgdGhlIGhlaWdodCBvbmx5LCBsZWF2 ZSB0aGUgZmlyc3QgdmFsdWUgZW1wdHkgYnkgc3RhcnRpbmcgd2l0aCBhIGNvbW1hIChlLmcu IDxjb2RlPnRodW1ic2l6ZT0mcXVvdDssMTAlJnF1b3Q7PC9jb2RlPik8L2Rpdj48L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnRodW1idGV4dDwvc3Bhbj4gOiB5b3UgY2Fu IHBsYWNlIHRleHQgYXJvdW5kIGVhY2ggdGh1bWJuYWlsLiBMaWtlIDxjb2RlPmltYWdlY2Fw dGlvbjwvY29kZT4sIGdpdmUgYW55IGZpeGVkIHRleHQgYW5kL29yIDxhIGhyZWY9IiNpbWFn ZV9maWVsZHMiPmltYWdlIGZpZWxkIGNvZGVzPC9hPiB0byBhZGQgaXQgYmVsb3cgZXZlcnkg dGh1bWJuYWlsIChpbnNpZGUgdGFnIDxjb2RlPnRodW1idGV4dHdyYXA8L2NvZGU+IHdpdGgg YSBjbGFzcyBvZiA8Y29kZT50aHVtYnRleHRjbGFzczwvY29kZT4pLiBCeSBkZWZhdWx0LCB0 ZXh0IGlzIHBsYWNlZCA8Y29kZT5iZWxvdzwvY29kZT4gdGhlIGltYWdlIGJ1dCBjYW4gYmUg cGxhY2VkIGluIGFueSBvZiA1IHBvc2l0aW9ucywgYXMgZ2l2ZW4gaW4gdGhlIHRhYmxlIGJl bG93LiA8Y29kZT5vbmNoYW5nZTwvY29kZT4gaXMgdmVyeSB1c2VmdWwgZm9yIGFwcGx5aW5n IGhlYWRlcnMgd2hlbiB0aGUgY2F0ZWdvcnkgY2hhbmdlcy4gU2VlIDxhIGhyZWY9IiNlZzYi PmV4YW1wbGUgNjwvYT4uPC9saT4KCTwvdWw+CgoJPHRhYmxlPgoJCTx0cj4KCQkJPHRoPnBv c2l0aW9uPC90aD4KCQkJPHRoPnJlbWFya3M8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+ IGFib3ZlIDwvdGQ+CgkJCTx0ZD4gYWJvdmUgdGhlIHRodW1ibmFpbCwgbm90IGNsaWNrYWJs ZSA8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IGJlbG93IDwvdGQ+CgkJCTx0ZD4gYmVs b3cgdGhlIHRodW1ibmFpbCwgbm90IGNsaWNrYWJsZSAoZGVmYXVsdCkgPC90ZD4KCQk8L3Ry PgoJCTx0cj4KCQkJPHRkPiBiZWZvcmUgPC90ZD4KCQkJPHRkPiBpbW1lZGlhdGVseSBpbiBm cm9udCBvZiB0aGUgdGh1bWJuYWlsLCBjbGlja2FibGUgYXMgcGFydCBvZiB0aGUgbGluayA8 L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IGFmdGVyIDwvdGQ+CgkJCTx0ZD4gaW1tZWRp YXRlbHkgZm9sbG93aW5nIHRoZSB0aHVtYm5haWwsIGNsaWNrYWJsZSBhcyBwYXJ0IG9mIHRo ZSBsaW5rIDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gb25jaGFuZ2UgPC90ZD4KCQkJ PHRkPiBhYm92ZSBldmVyeSB0aHVtYm5haWwgYnV0IDxlbT5vbmx5PC9lbT4gaWYgaXRzIGNv bnRlbnRzIGNoYW5nZXMgZnJvbSB0aGUgaW1hZ2UgYmVmb3JlIGl0IDwvdGQ+CgkJPC90cj4K CTwvdGFibGU+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnRodW1idGV4 dHdyYXA8L3NwYW4+IDogKFgpSFRNTCB0YWcgdG8gd3JhcCBhcm91bmQgZWFjaCB0aHVtYnRl eHQgaXRlbS4gRG8gbm90IHNwZWNpZnkgdGhlICZsdDsgb3IgJmd0OyBjaGFyYWN0ZXJzLiBE ZWZhdWx0OiBzcGFuPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50aHVtYnRl eHRjbGFzczwvc3Bhbj4gOiA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyB0 byBhcHBseSB0byBldmVyeSB0aHVtYnRleHQgaXRlbS4gRGVmYXVsdDogZW1wdHkgKGkuZS4g bm8gY2xhc3MpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5kZWxpbTwvc3Bh bj4gOiBUaGUgZGVsaW1pdGVyIHRvIHVzZSBiZXR3ZWVuIGl0ZW1zIGluIGxpc3RzICg8Y29k ZT5jYXRlZ29yeTwvY29kZT4sIDxjb2RlPmltYWdlaWQ8L2NvZGU+LCA8Y29kZT50aHVtYnRl eHQ8L2NvZGU+IGV0YykuIElmIHVzaW5nIGdsel9jdXN0b21fZmllbGRzICYjODIxMjsgZXNw ZWNpYWxseSB3aXRoIGNoZWNrYm94ZXMgb3IgYSBtdWx0aSBzZWxlY3QgJiM4MjEyOyB5b3Ug c2hvdWxkIGNoYW5nZSA8Y29kZT5kZWxpbTwvY29kZT4gdG8gYSBwaXBlICYjODIxNjt8JiM4 MjE3OyBjaGFyYWN0ZXI8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnBhcmFt ZGVsaW08L3NwYW4+IDogYnkgZGVmYXVsdCBpbiB0aGUgPGNvZGU+dGh1bWJ0ZXh0PC9jb2Rl PiBhdHRyaWJ1dGUsIHlvdSBzZXBhcmF0ZSBwYXJhbWV0ZXJzIGZyb20gb3B0aW9uIG5hbWVz IHVzaW5nIHRoZSBjb2xvbi4gSW4gc29tZSBjYXNlIHlvdSBtYXkgd2lzaCB0byB1c2UgdGhl IGNvbG9uIGluIHlvdXIgc3RyaW5nIG9mIHRleHQgc28geW91IHdpbGwgbmVlZCB0byBzZXQg dGhlIGRlbGltaXRlciB0byBzb21ldGhpbmcgZWxzZS4gSXQgY2FuIGJlIHByZXR0eSBtdWNo IGFueSBzdHJpbmcgeW91IGxpa2UgKGUuZy4gPGNvZGU+cGFyYW1kZWxpbT0mcXVvdDtbW1NR VUlEJnF1b3Q7PC9jb2RlPiksIGp1c3QgbWFrZSBzdXJlIGl0IGRvZXNuJiM4MjE3O3QgYXBw ZWFyIGFueXdoZXJlIGVsc2UgaW4geW91ciB0ZXh0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0dC1uYW1lIj5jZWxsY2xhc3M8L3NwYW4+IDogPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwv c3Bhbj4gY2xhc3MgZm9yIGVhY2ggJiM4MjE2O2NlbGwmIzgyMTc7IHRoYXQgZGlzcGxheXMg YSB0aHVtYm5haWwuIERlZmF1bHQ6IGVtcHR5IChpLmUuIG5vIGNsYXNzKTwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bGlua2NsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNz PSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGZvciB0aGUgYW5jaG9yIHRhZyBvZiBlYWNoIGlt YWdlLiBEZWZhdWx0OiBlbXB0eSAoaS5lLiBubyBjbGFzcyk8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXR0LW5hbWUiPmltZ2NsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNzPSJjYXBzIj5D U1M8L3NwYW4+IGNsYXNzIGZvciBlYWNoIGltZyB0YWcuIERlZmF1bHQ6IGVtcHR5IChpLmUu IG5vIGNsYXNzKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bmF2d3JhcHRh Zzwvc3Bhbj4gOiB3aGVuIDxjb2RlPnNob3dwYWdlbGlua3M8L2NvZGU+IGlzIG9uLCBzb21l IG5leHQvcHJldiBsaW5rcyBhcmUgcGxhY2VkIHVuZGVyIGVhY2ggZ2FsbGVyeSB0byBwYWdl IHRocm91Z2ggPGNvZGU+bGltaXQ8L2NvZGU+IHRodW1ibmFpbHMgYXQgYSB0aW1lLiBUaGlz IGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhlIChYKUhUTUwgdGFnIHRvIHdyYXAgYXJvdW5kIHRo ZSB3aG9sZSBuYXZpZ2F0aW9uIGJsb2NrLiBEbyBub3Qgc3BlY2lmeSB0aGUgJmx0OyBvciAm Z3Q7IGNoYXJhY3RlcnMuIERlZmF1bHQ6IGVtcHR5IChpLmUuIG5vIHRhZyk8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm5hdmNsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNz PSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGZvciB0aGUgbmV4dC9wcmV2IGNvbnRhaW5lci4g RGVmYXVsdDogZW1wdHkgKGkuZS4gbm8gY2xhc3MpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0dC1uYW1lIj5wcmV2bGFiZWw8L3NwYW4+IDogTGFiZWwgZm9yIHRoZSAmIzgyMTY7cHJl dmlvdXMgcGFnZSYjODIxNzsgb2YgcGljdHVyZXMgd2hlbiB1c2luZyA8Y29kZT5zaG93cGFn ZWxpbmtzPC9jb2RlPi4gRGVmYXVsdDogJiM4MjIwO1ByZXYmIzgyMjE7LiBDdXN0b21pc2Fi bGUgaW4gZGlmZmVyZW50IGxhbmd1YWdlcyB2aWEgPHNwYW4gY2xhc3M9ImNhcHMiPk1MUDwv c3Bhbj48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm5leHRsYWJlbDwvc3Bh bj4gOiBMYWJlbCBmb3IgdGhlICYjODIxNjtuZXh0IHBhZ2UmIzgyMTc7IG9mIHBpY3R1cmVz IHdoZW4gdXNpbmcgPGNvZGU+c2hvd3BhZ2VsaW5rczwvY29kZT4uIERlZmF1bHQ6ICYjODIy MDtOZXh0JiM4MjIxOy4gQ3VzdG9taXNhYmxlIGluIGRpZmZlcmVudCBsYW5ndWFnZXMgdmlh IDxzcGFuIGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0dC1uYW1lIj5wcmV2Y2xhc3M8L3NwYW4+IDogPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwv c3Bhbj4gY2xhc3MgZm9yIHRoZSAmIzgyMTY7cHJldiYjODIxNzsgbGluay4gRGVmYXVsdDog c21kX3NsaW1ib3hfcHJldjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bmV4 dGNsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGZv ciB0aGUgJiM4MjE2O25leHQmIzgyMTc7IGxpbmsuIERlZmF1bHQ6IHNtZF9zbGltYm94X25l eHQ8L2xpPgoJPC91bD4KCgk8aDMgaWQ9ImZpZWxkcyI+QXJ0aWNsZSBmaWVsZCBjb2Rlczwv aDM+CgoJPHA+VXNlIHRoZXNlIGNvZGVzIHRvIGdyYWIgaXRlbXMgZnJvbSB0aGUgY3VycmVu dGx5IGRpc3BsYXllZCBhcnRpY2xlIGFuZCBpbmplY3QgdGhlbSBpbnRvIHNtZF9zbGltYm94 IHRhZyBhdHRyaWJ1dGVzLiBBbGwgb2YgdGhlIHRhZ3MgY2FuIGJlIGNvbWJpbmVkIHdpdGgg Zml4ZWQgdGV4dCAoZS5nLiA8Y29kZT5jYXRlZ29yeT0mcXVvdDtteWNhdC0/YXJ0aWNsZV9p bWFnZV8/cyZxdW90OzwvY29kZT4gbWlnaHQgY2hvb3NlIGltYWdlcyBmcm9tIHRoZSBjYXRl Z29yeSAmIzgyMjA7bXljYXQtMTJfbGlvbiYjODIyMTsgaWYgdGhlIGN1cnJlbnQgYXJ0aWNs ZSB3YXMgaW4gc2VjdGlvbiAmIzgyMTY7bGlvbiYjODIxNzsgYW5kIGhhZCBhbiBhcnRpY2xl IGltYWdlIG9mICYjODIxNjsxMiYjODIxNzspLiBOb3RlIHRoYXQgYW55IGFydGljbGUgb3Ig Y3VzdG9tIGZpZWxkcyAmIzgyMTI7IGluY2x1ZGluZyB0aG9zZSB1dGlsaXNpbmcgZ2x6X2N1 c3RvbV9maWVsZHMgJiM4MjEyOyBtYXkgY29udGFpbiBsaXN0cyBvZiBpdGVtcy48L3A+CgoJ PHVsPgoJCTxsaT48Y29kZT4/YzwvY29kZT4gOiB1c2UgdGhlIGN1cnJlbnQgZ2xvYmFsIChh cnRpY2xlKSBjYXRlZ29yeTwvbGk+CgkJPGxpPjxjb2RlPiFjPC9jb2RlPiA6IHVzZXMgZXZl cnl0aGluZyBleGNlcHQgdGhlIGN1cnJlbnQgZ2xvYmFsIGNhdGVnb3J5PC9saT4KCQk8bGk+ PGNvZGU+P3M8L2NvZGU+IDogdXNlIHRoZSBjdXJyZW50IDxzcGFuIGNsYXNzPSJjYXBzIj5U WFA8L3NwYW4+IHNlY3Rpb248L2xpPgoJCTxsaT48Y29kZT4hczwvY29kZT4gOiB1c2VzIGV2 ZXJ5dGhpbmcgZXhjZXB0IHRoZSBjdXJyZW50IHNlY3Rpb248L2xpPgoJCTxsaT48Y29kZT4/ dDwvY29kZT4gOiB1c2UgdGhlIGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIHVybC10aXRsZTwv bGk+CgkJPGxpPjxjb2RlPiF0PC9jb2RlPiA6IHVzZXMgYWxsIHVybC10aXRsZXMgZXhjZXB0 IHRoZSBjdXJyZW50IGFydGljbGUgKHByb2JhYmx5IG5vdCBtdWNoIHVzZSEpPC9saT4KCQk8 bGk+PGNvZGU+P2lkPC9jb2RlPiA6IHVzZSB0aGUgY3VycmVudCBhcnRpY2xlJiM4MjE3O3Mg SUQgYXMgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgY2F0ZWdvcnkuIFVzZWZ1bCB0byBtYWtlIGEg cGVyLWFydGljbGUgaW1hZ2UgZ2FsbGVyeSAoZS5nLiA8Y29kZT5jYXRlZ29yeT0mcXVvdDth cnRpY2xlLT9pZCZxdW90OzwvY29kZT4pPC9saT4KCQk8bGk+PGNvZGU+IWlkPC9jb2RlPiA6 IHVzZXMgYWxsIGltYWdlIElEcyBleGNlcHQgdGhlIGN1cnJlbnQgYXJ0aWNsZTwvbGk+CgkJ PGxpPjxjb2RlPj9maWVsZG5hbWU8L2NvZGU+IDogbG9va3MgaW4gdGhlIGdpdmVuIGZpZWxk bmFtZSBvZiB0aGUgY3VycmVudCBhcnRpY2xlLiBEZXNpZ25lZCBwcmltYXJpbHkgZm9yIHVz ZSB3aXRoIGN1c3RvbSBmaWVsZHMgKGUuZy4gPGNvZGU+aW1hZ2VpZD0mcXVvdDs/Y3VzdG9t MSZxdW90OzwvY29kZT4pLCBpdCBjYW4gYWxzbyBiZSBhbnkgb3RoZXIgZmllbGQgZnJvbSB5 b3VyIGFydGljbGUuIENvbW1vbiBmaWVsZHMgYXJlIDxjb2RlPj9leGNlcnB0PC9jb2RlPiBA P2NhdGVnb3J5MUAgPGNvZGU+P2tleXdvcmRzPC9jb2RlPiBAP2FydGljbGVfaW1hZ2VAIG9y IDxjb2RlPj9hdXRob3JpZDwvY29kZT4uPC9saT4KCTwvdWw+CgoJPHA+VG8gbmVnYXRlIGFu eSBjYXRlZ29yeSBzZWxlY3Rpb24sIHVzZSA8Y29kZT4hY2F0ZWdvcnk8L2NvZGU+IG9yIDxj b2RlPiFmaWVsZF9uYW1lPC9jb2RlPi4gSWYgeW91IGxpc3Qgc3BlY2lmaWMgaW1hZ2UgY2F0 ZWdvcmllcyAoZS5nLiA8Y29kZT5jYXRlZ29yeT0mcXVvdDshbGFuZHNjYXBlLCAhYmlyZHMm cXVvdDs8L2NvZGU+KSB0aG9zZSBjYXRlZ29yaWVzIHdpbGwgYmUgZXhjbHVkZWQuIElmIHlv dSBzcGVjaWZ5IGEgZmllbGQgbmFtZSBzdWNoIGFzIDxjb2RlPiFrZXl3b3JkczwvY29kZT4s IHRoZSBjb250ZW50cyBvZiB0aGF0IGZpZWxkIHdpbGwgYmUgcmVhZCBhbmQgdGhlIGxpc3Qg b2YgaW1hZ2UgY2F0ZWdvcmllcyBmb3VuZCB0aGVyZSB3aWxsIGJlIGV4Y2x1ZGVkLjwvcD4K Cgk8cD5Ob3RlIHRoYXQgaWYgeW91IHNwZWNpZnkgYSBmaWVsZCBuYW1lIGFuZCB0aGF0IGZp ZWxkIGluIHRoZSBhcnRpY2xlIGlzIGVtcHR5LCB0aGUgbmFtZSB3aWxsIGJlIHRyZWF0ZWQg YXMgaWYgaXQgd2FzIGFuIGFjdHVhbCBpbWFnZSBjYXRlZ29yeS4gU28gaWYgeW91IHNwZWNp ZmllZCA8Y29kZT5jYXRlZ29yeT0mcXVvdDs/a2V5d29yZHMmcXVvdDs8L2NvZGU+IGFuZCB0 aGUgJiM4MjE2O2tleXdvcmRzJiM4MjE3OyBmaWVsZCBpbiB0aGUgY3VycmVudCBhcnRpY2xl IHdhcyBlbXB0eSwgaXQgd291bGQgbG9vayBmb3IgYW4gaW1hZ2UgY2F0ZWdvcnkgbmFtZWQg JiM4MjIwO2tleXdvcmRzJiM4MjIxOy48L3A+CgoJPHA+QWxzbyBub3RlIHRoYXQsIHJlZ2Fy ZGxlc3Mgb2YgdGhlIG9yZGVyIHlvdSBsaXN0IHRoZW0sIGFsbCAmIzgyMTY7cG9zaXRpdmVz JiM4MjE3OyB3aWxsIGJlIHByb2Nlc3NlZCBmaXJzdCwgdGhlbiBhbnkgZXhjbHVzaW9ucyBh cHBsaWVkLjwvcD4KCgk8aDMgaWQ9ImltYWdlX2ZpZWxkcyI+SW1hZ2UgZmllbGQgY29kZXM8 L2gzPgoKCTxwPkxpa2UgPGEgaHJlZj0iI2ZpZWxkcyI+YXJ0aWNsZSBmaWVsZCBjb2Rlczwv YT4sIHRoZXNlIGNhbiBiZSBzcGVjaWZpZWQgdG8gZ3JhYiBwaWVjZXMgb2YgaW5mb3JtYXRp b24gZnJvbSB0aGUgY3VycmVudCBpbWFnZS4gTm90ZSB0aGF0IHRoZSAmIzgyMTY7bmVnYXRp b24mIzgyMTc7IHZlcnNpb25zIGRvbiYjODIxNzt0IG1ha2Ugc2Vuc2UgaGVyZSBzbyB0aGUg Y29kZXMgYXJlICYjODIxNjtpbmNsdWRlIG9ubHkmIzgyMTc7OjwvcD4KCgk8dWw+CgkJPGxp Pjxjb2RlPj9jYXRlZ29yeTwvY29kZT4gOiBpbWFnZSBjYXRlZ29yeTwvbGk+CgkJPGxpPjxj b2RlPj9jYXB0aW9uPC9jb2RlPiA6IGltYWdlIGNhcHRpb248L2xpPgoJCTxsaT48Y29kZT4/ YWx0PC9jb2RlPiA6IGltYWdlIGFsdCB0ZXh0PC9saT4KCQk8bGk+PGNvZGU+P25hbWU8L2Nv ZGU+IDogaW1hZ2UgKHVzdWFsbHkgZmlsZSkgbmFtZTwvbGk+CgkJPGxpPjxjb2RlPj9pZDwv Y29kZT4gOiBpbWFnZSBJRDwvbGk+CgkJPGxpPjxjb2RlPj9kYXRlPC9jb2RlPiA6IGltYWdl IHVwbG9hZCBkYXRlc3RhbXA8L2xpPgoJCTxsaT48Y29kZT4/YXV0aG9yPC9jb2RlPiA6IGlt YWdlIGF1dGhvciAod2hvIHVwbG9hZGVkIGl0IHRvIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8 L3NwYW4+KTwvbGk+CgkJPGxpPjxjb2RlPj9leHQ8L2NvZGU+IDogaW1hZ2UgZmlsZSBleHRl bnNpb248L2xpPgoJCTxsaT48Y29kZT4/d2lkdGg8L2NvZGU+IDogaW1hZ2Ugd2lkdGggaW4g cGl4ZWxzPC9saT4KCQk8bGk+PGNvZGU+P2hlaWdodDwvY29kZT4gOiBpbWFnZSBoZWlnaHQg aW4gcGl4ZWxzPC9saT4KCQk8bGk+PGNvZGU+P3VybDwvY29kZT4gOiB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPlVSTDwvc3Bhbj4gb2YgdGhlIGZ1bGwtc2l6ZSBpbWFnZSAmIzgyMTI7IGNh biBvbmx5IGJlIHVzZWQgd2l0aCA8Y29kZT5pbWFnZWNhcHRpb248L2NvZGU+IG9yIDxjb2Rl PnRodW1idGV4dDwvY29kZT48L2xpPgoJPC91bD4KCgk8cD5Gb3IgZXhhbXBsZSwgdG8gc2hv dyB0aGUgYWx0IHRleHQgdW5kZXIgdGhlIG1haW4gaW1hZ2UgaW5zdGVhZCBvZiB0aGUgY2Fw dGlvbiAod2hpY2ggaXQgb3RoZXJ3aXNlIHVzZXMgYnkgZGVmYXVsdCkgOjwvcD4KCjxwcmUg Y2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPmltYWdlY2FwdGlvbj0mcXVvdDs/ YWx0JnF1b3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Gb3IgdGhlIGFkdmVudHVyb3VzOjwvcD4K CjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPmltYWdlY2FwdGlvbj0m cXVvdDs/Y2FwdGlvbiBieSA/YXV0aG9yCiAgICAgWz9leHQgcGljdHVyZTogP3dpZHRoeD9o ZWlnaHRweF0mcXVvdDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoYXQgbWlnaHQgc2hvdyBhIGNh cHRpb24gc3VjaCBhcyAmIzgyMjA7TGFrZSBXaW5kZXJtZXJlIGF0IG5pZ2h0IGJ5IFN0ZWYg W2pwZyBwaWN0dXJlOiA4MDAmIzIxNTs2MDBweF0mIzgyMjE7LjwvcD4KCgk8cD5UbyBwdXQg KGFib3ZlIGVhY2ggdGh1bWJuYWlsKSB0aGUgdGV4dCAmIzgyMjA7RmlsZWQgaW4mIzgyMjE7 IGFuZCB0aGVuIHRoZSBjYXRlZ29yeSBuYW1lIG9mIHRoZSBpbWFnZSwgZm9sbG93ZWQgYnkg aXRzIGZpbGVuYW1lIGluIHNxdWFyZSBicmFja2V0czo8L3A+Cgo8cHJlIGNsYXNzPSJibG9j ayI+PGNvZGUgY2xhc3M9ImJsb2NrIj50aHVtYnRleHQ9JnF1b3Q7YWJvdmU6IEZpbGVkIGlu ID9jYXRlZ29yeSBbP25hbWVdJnF1b3Q7Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+WW91IGNh biBjb21iaW5lIGRlZmluaXRpb25zLCBlYWNoIHNlcGFyYXRlZCBieSBhIGNvbW1hLCBmb3Ig ZXhhbXBsZTo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj50 aHVtYnRleHQ9JnF1b3Q7YWJvdmU6RmlsZWQgaW4gP2NhdGVnb3J5IFs/bmFtZSAoP3dpZHRo IHggP2hlaWdodCldLAogICAgIGJlbG93Oj9hdXRob3ImcXVvdDsmbHQ7L2NvZGUmZ3Q7Cjwv Y29kZT48L3ByZT4KCgk8cD5UaGF0IHdvdWxkIGFkZCB0aGUgY2F0ZWdvcnksIGZpbGVuYW1l LCB3aWR0aCBhbmQgaGVpZ2h0IGFib3ZlIHRoZSBpbWFnZSBhbmQgdGhlIGF1dGhvciAodGhl IHBlcnNvbiB3aG8gdXBsb2FkZWQgaXQpIGJlbG93IHRoZSB0aHVtYm5haWwuIFlvdSBjYW4g Z2V0IGFzIGNyZWF0aXZlIGFzIHlvdSBsaWtlLjwvcD4KCgk8cD5Ob3RlIHRoYXQgaWYgeW91 IHdhbnQgdG8gdXNlIGEgY29sb24gaW4gdGhlIHRleHQgaXRzZWxmLCB5b3Ugd2lsbCBuZWVk IHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGFuZCBzZXQgaXQgdG8gYW55IHN0cmluZyBvZiBj aGFyYWN0ZXJzIHlvdSBwcmVmZXIgdXNpbmcgdGhlIDxjb2RlPnBhcmFtZGVsaW08L2NvZGU+ IG9wdGlvbi48L3A+CgoJPGgyIGlkPSJleGFtcGxlcyI+RXhhbXBsZXM8L2gyPgoKCTxoMyBp ZD0iZWcxIj5FeGFtcGxlIDE8L2gzPgoKCTxwPlNob3cgYWxsIGltYWdlcyBpbiB0aGUgbGFu ZHNjYXBlIGNhdGVnb3J5LCB0ZW4gYXQgYSB0aW1lOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2Nr Ij48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3NsaW1ib3ggY2F0ZWdvcnk9JnF1 b3Q7bGFuZHNjYXBlJnF1b3Q7IGxpbWl0PSZxdW90OzEwJnF1b3Q7IC8mZ3Q7CjwvY29kZT48 L3ByZT4KCgk8aDMgaWQ9ImVnMiI+RXhhbXBsZSAyPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2Nr Ij48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3NsaW1ib3ggY2F0ZWdvcnk9JnF1 b3Q7ZG9ncywgYmlyZHMmcXVvdDsgbGltaXQ9JnF1b3Q7OSZxdW90OwogICAgIHRodW1idGV4 dD0mcXVvdDthZnRlcjo/Y2FwdGlvbiZxdW90OyB3cmFwdGFnPSZxdW90O2xpJnF1b3Q7CiAg ICAgY2VsbGNsYXNzPSZxdW90O2NlbGwmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxw PlNob3cgYWxsIGltYWdlcyBpbiB0aGUgZG9ncyBhbmQgYmlyZHMgY2F0ZWdvcmllcywgOSBw ZXIgcGFnZS4gQWRkIHRoZSBjYXB0aW9ucyB1bmRlciB0aGUgdGh1bWJuYWlscyBhbmQgbWFr ZSB0aGVtIGNsaWNrYWJsZSB0b28uIFdyYXAgZWFjaCBpbWFnZSBpbiBhIDxjb2RlPmxpPC9j b2RlPiB0YWcgYW5kIGdpdmUgZWFjaCBhIGNsYXNzIG9mICYjODIxNjtjZWxsJiM4MjE3OyAo aW1wbGllcyB5b3UgbXVzdCBtYW51YWxseSBhZGQgYSBjb3JyZXNwb25kaW5nIDxjb2RlPiZs dDt1bCZndDs8L2NvZGU+IHRhZyBhcm91bmQgdGhlIHBsdWdpbiBpbiBvcmRlciB0byBtYWlu dGFpbiBwYWdlIHZhbGlkaXR5KS48L3A+CgoJPHA+SWYgeW91IGFkZGVkIDxjb2RlPnNvcnQ9 JnF1b3Q7ZGF0ZSBkZXNjLCByYW5kb20mcXVvdDs8L2NvZGU+IHRvIHRoZSBhYm92ZSB0YWcs IHlvdSB3b3VsZCBnZXQgdGhlIG1vc3QgcmVjZW50IDkgaW1hZ2VzIG9uIHRoZSBmaXJzdCBw YWdlLCBidXQgc2hvd24gaW4gYSByYW5kb20gb3JkZXIuIFRoZSBuZXh0IHBhZ2Ugd291bGQg c2hvdyB0aGUgbmV4dCBtb3N0LXJlY2VudCA5IGltYWdlcywgYWdhaW4gc29ydGVkIHJhbmRv bWx5IHdpdGhpbiB0aGVtc2VsdmVzLjwvcD4KCgk8cD5Ib3dldmVyLCBzd2l0Y2hpbmcgdGhl IGF0dHJpYnV0ZXMgdG86IDxjb2RlPnNvcnQ9JnF1b3Q7cmFuZG9tLCBkYXRlIGRlc2MmcXVv dDs8L2NvZGU+IHdvdWxkIGNoYW5nZSB0aGUgb3V0cHV0LiBZb3Ugd291bGQgdGhlbiBnZXQg OSByYW5kb20gaW1hZ2VzIG9uIHRoZSBmaXJzdCBwYWdlLCB3aXRoIHRoZSBtb3N0IHJlY2Vu dCBvbmVzIG9mIHRoZSBncm91cCBzaG93biBmaXJzdC4gQ2xpY2tpbmcgJiM4MjE2O05leHQm IzgyMTc7IHdvdWxkIHNob3cgYW5vdGhlciA5IHJhbmRvbSBpbWFnZXMgKHNvbWUgbWF5IGJl IHRoZSBzYW1lIGFzIHBhZ2UgMSksIGFnYWluIHNvcnRlZCBpbiBkZXNjZW5kaW5nIG9yZGVy IG9mIGRhdGUuIEZvciB0aGlzIHJlYXNvbiAodW5sZXNzIHlvdSYjODIxNztyZSBzaW1wbHkg dXNpbmcgdGhlIHBsdWdpbiB0byBwcmV0dHkgdXAgYSBwYWdlIHdpdGggcmFuZG9tIGltYWdl cykgaWYgeW91JiM4MjE3O3JlIHVzaW5nIHJhbmRvbSBhcyB0aGUgZmlyc3QgYXJndW1lbnQg dG8gPGNvZGU+c29ydDwvY29kZT4sIHlvdSBwcm9iYWJseSB3YW50IHRvIGRpc2FibGUgcGFn aW5nIGJ5IHNldHRpbmcgc2hvd3BhZ2VsaW5rcz0mIzgyMjA7MCYjODIyMTsuPC9wPgoKCTxo MyBpZD0iZWczIj5FeGFtcGxlIDM8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNs YXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfc2xpbWJveCBpbWFnZWlkPSZxdW90OzQ4LCAyNSwg NCZxdW90OwogICAgIGNhdGVnb3J5PSZxdW90O2RvZ3MsID9jdXN0b20xJnF1b3Q7IHN1YmNh dHM9JnF1b3Q7YWxsJnF1b3Q7IGxpbWl0PSZxdW90OzIwJnF1b3Q7CiAgICAgcHJldmxhYmVs PSZxdW90O0JhY2smcXVvdDsgc29ydD0mcXVvdDtuYW1lIGRlc2MsIGNhdGVnb3J5JnF1b3Q7 IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5TaG93IGltYWdlcyB3aXRoIElEcyA0OCwgMjUg YW5kIDQgYXMgd2VsbCBhcyBhbGwgaW1hZ2VzIGluIHRoZSBkb2dzIGNhdGVnb3J5IGFuZCBh bHNvIHB1bGwgdGhlIGltYWdlIGNhdGVnb3J5IG5hbWVzIGZyb20gdGhlIGN1cnJlbnQgYXJ0 aWNsZSYjODIxNztzIGN1c3RvbTEgZmllbGQgKGlmIGN1c3RvbTEgaGVsZCA8Y29kZT5iaXJk cywgbGFuZHNjYXBlczwvY29kZT4geW91JiM4MjE3O2QgZ2V0IHBpY3R1cmVzIGZyb20gYWxs IHRocmVlIGNhdGVnb3JpZXMgYW5kIGFsbCB0aGVpciBzdWItY2F0ZWdvcmllcykuIFRoZSB0 YWcgYWxzbyBsaW1pdHMgdGhlIG51bWJlciBvZiB0aHVtYnMgcGVyIHBhZ2UgdG8gMjAsIGNo YW5nZXMgdGhlIHByZXZpb3VzIHBhZ2UgbGFiZWwgdG8gJiM4MjIwO0JhY2smIzgyMjE7IGFu ZCBzb3J0cyB0aGUgaW1hZ2VzIGluIGRlc2NlbmRpbmcgb3JkZXIgb2YgbmFtZSwgdGhlbiBj YXRlZ29yeS48L3A+CgoJPGgzIGlkPSJlZzQiPkV4YW1wbGUgNDwvaDM+Cgo8cHJlIGNsYXNz PSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9zbGltYm94IGNhdGVn b3J5PSZxdW90O3N0YXRpYywgY2F0LT9pZCZxdW90OwogICAgIGltYWdlaWQ9JnF1b3Q7IWFy dGljbGVfaW1hZ2UmcXVvdDsgbGltaXQ9JnF1b3Q7NiZxdW90OyBncm91cG5hbWU9JnF1b3Q7 P2MmcXVvdDsKICAgICBzaG93cGFnZWxpbmtzPSZxdW90OzAmcXVvdDsgLyZndDsKPC9jb2Rl PjwvcHJlPgoKCTxwPklmIHRoZSBwZXJzb24gaXMgY3VycmVudGx5IHZpZXdpbmcgYXJ0aWNs ZSBJRCA2Nywgc2hvdyBhbGwgaW1hZ2VzIGZyb20gdGhlICYjODIxNjtzdGF0aWMmIzgyMTc7 IGNhdGVnb3J5IGFuZCB0aGUgJiM4MjE2O2NhdC02NyYjODIxNzsgY2F0ZWdvcnkuIElmIGFu eSBpbWFnZSBpbiBlaXRoZXIgb2YgdGhvc2UgY2F0ZWdvcmllcyBpcyBmb3VuZCB0byBoYXZl IGFuIElEIG9mIHRoZSBhcnRpY2xlIGltYWdlIGZyb20gdGhlIGN1cnJlbnQgYXJ0aWNsZSwg dGhhdCBwaWN0dXJlIHdpbGwgYmUgaWdub3JlZC4gT25seSBzaG93IDYgcGljdHVyZXMgYW5k IGRvbiYjODIxNzt0IHNob3cgdGhlIG5leHQvcHJldiBsaW5rcyBvbiB0aGUgcGFnZS48L3A+ CgoJPHA+QWxzbywgZ3JvdXAgdGhlIGxpZ2h0Ym94IHBpY3R1cmVzIGJ5IGltYWdlIGNhdGVn b3J5LiBUaGlzIG1lYW5zIHRoYXQgaWYgc29tZW9uZSBjbGlja3Mgb24gYSBwaWN0dXJlIGZy b20gdGhlICYjODIyMDtzdGF0aWMmIzgyMjE7IGNhdGVnb3J5LCB0aGUgU2xpbWJveCBuZXh0 L3ByZXYgbGlua3Mgb25seSBuYXZpZ2F0ZSBiZXR3ZWVuIHRob3NlIHBpY3R1cmVzLiBUaGUg dXNlciB3aWxsIGhhdmUgdG8gY2xvc2UgdGhlIGxpZ2h0Ym94IGFuZCBjbGljayBhIHBpY3R1 cmUgaW4gdGhlIGNhdC02NyBjYXRlZ29yeSB0byBzaG93IHBpY3R1cmVzIGZyb20gdGhlIG90 aGVyIGdyb3VwLjwvcD4KCgk8cD5PbiB0aGUgc3VyZmFjZSB0aGUgZ3JvdXBuYW1lIG9wdGlv biBtYXkgc2VlbSBhIGxpdHRsZSBzdXBlcmZsdW91cyBidXQgaXQgY2FuIGJlIHVzZWZ1bCB0 byBhbGxvdyBwZW9wbGUgdG8gb25seSBmbGljayB0aHJvdWdoIGEgc3Vic2V0IG9mIHRoZSBw aWN0dXJlcyBvbiBlYWNoIHBhZ2UsIGJhc2VkIG9uIHRoZWlyIGNhdGVnb3J5LCBmaWxlIG5h bWUsIGF1dGhvciwgd2lkdGgvaGVpZ2h0LCBhbHQvY2FwdGlvbiwgZXZlbiBJRCBpZiB5b3Ug d2FudCB0aGVtIHRvIGFsbCBiZSB1bmlxdWUgZW50aXRpZXMuIFlvdSBjYW4gYWxzbyB1c2Ug YSBmaXhlZCB2YWx1ZSByZWFkIGZyb20gYSBmaWVsZCBpbiB0aGUgY3VycmVudCBhcnRpY2xl LCBlLmcuIDxjb2RlPmdyb3VwbmFtZT0mcXVvdDs/Y3VzdG9tMiZxdW90OzwvY29kZT4uIFVz ZWZ1bCB3aGVuIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBzb3J0LjwvcD4KCgk8aDMgaWQ9 ImVnNSI+RXhhbXBsZSA1PC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0i YmxvY2siPiZsdDt0eHA6c21kX3NsaW1ib3ggY2F0ZWdvcnk9JnF1b3Q7P2MsID9jdXN0b20x LCAhY3VzdG9tMiwgIXN0YXRpYyZxdW90OwogICAgIGxpbWl0PSZxdW90OzgmcXVvdDsgbWF4 bGltaXQ9JnF1b3Q7MzImcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkEgYml0IG9m IGEgY29udHJpdmVkIGV4YW1wbGUgdGhhdCBzaG93cyBob3cgY3JhenkgeW91IGNhbiBnZXQ6 IFRoaXMgd2lsbCBzaG93IGEgbWF4aW11bSBvZiAzMiBpbWFnZXMgZnJvbSBhbiBpbWFnZSBj YXRlZ29yeSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGN1cnJlbnQgZ2xvYmFsIGNhdGVn b3J5LCBwbHVzIGFsbCBpbWFnZXMgZnJvbSBjYXRlZ29yaWVzIGxpc3RlZCBpbiB0aGUgY3Vz dG9tMSBmaWVsZCBvZiB0aGUgY3VycmVudCBhcnRpY2xlIGJ1dCA8ZW0+ZXhjbHVkaW5nPC9l bT4gaW1hZ2VzIGZyb20gY2F0ZWdvcmllcyBsaXN0ZWQgaW4gY3VzdG9tMiBhbmQgYWxzbyBl eGNsdWRpbmcgdGhlICYjODIxNjtzdGF0aWMmIzgyMTc7IGNhdGVnb3J5LiBTaG93IDggaW1h Z2UgdGh1bWJuYWlscyBhdCBhIHRpbWUgKGkuZS4gNCBwYWdlcykuPC9wPgoKCTxoMyBpZD0i ZWc2Ij5FeGFtcGxlIDY8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJi bG9jayI+Jmx0O3R4cDpzbWRfc2xpbWJveCBjYXRlZ29yeT0mcXVvdDs/UGhvdG8gY291bnRy eSZxdW90OyBzdWJjYXRzPSZxdW90O2FsbCZxdW90OwogICAgIHRodW1idGV4dD0mcXVvdDtv bmNoYW5nZTogJmFtcDthbXA7bHQ7aDQmYW1wO2FtcDtndDs/Y2F0ZWdvcnkmYW1wO2FtcDts dDsvaDQmYW1wO2FtcDtndDsmcXVvdDsKICAgICBncm91cG5hbWU9JnF1b3Q7P2MmcXVvdDsg dGh1bWJ0ZXh0d3JhcD0mcXVvdDsmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkEg d29yay1zYXZpbmcgdGFnISBQdWxscyBvdXQgYWxsIHBpY3R1cmVzIGZyb20gdGhlIGNhdGVn b3J5IGdpdmVuIGluIHRoZSBjdXN0b20gZmllbGQgbGFiZWxsZWQgJiM4MjE2O1Bob3RvIGNv dW50cnkmIzgyMTc7LCBpbmNsdWRpbmcgYW55IHN1Yi1jYXRlZ29yaWVzLiBCeSBkZWZhdWx0 IGl0IHNvcnRzIHRoZW0gYnkgY2F0ZWdvcnksIHdoaWNoIGlzIHBlcmZlY3QuIFRoZSBjbGV2 ZXIgYml0IGlzIDxjb2RlPnRodW1idGV4dDwvY29kZT4sIHdoaWNoIHRlbGxzIHRoZSBwbHVn aW4gdG8gZGlzcGxheSB0aGUgY2F0ZWdvcnkgbmFtZSBhYm92ZSB0aGUgaW1hZ2VzIGJ1dCA8 ZW0+b25seTwvZW0+IHdoZW4gdGhlIGNhdGVnb3J5IGNoYW5nZXMuIFRoZSByZXN1bHQgaXMg Y2F0ZWdvcnkgaGVhZGluZ3MgKHN1cnJvdW5kZWQgYnkgaDQgdGFncywgd2l0aG91dCB0aGUg ZGVmYXVsdCA8Y29kZT50aHVtYnRleHR3cmFwPC9jb2RlPiBzcGFuKSBhYm92ZSBlYWNoIGdy b3VwIG9mIGltYWdlcy4gTm90ZSB0aGF0IGlmIHlvdSB3YW50IHRvIGluY2x1ZGUgc2ltcGxl IDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiB0YWdzIHlvdSBjYW4sIGJ1dCB0aGV5 IG11c3QgYmUgZW5jb2RlZCB3aXRoIHRoZWlyIGNoYXJhY3RlciBjb2RlIGVxdWl2YWxlbnRz IG9yIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGdldHMgbWFkLjwvcD4KCgk8cD5U aGUgPGNvZGU+Z3JvdXBuYW1lPC9jb2RlPiBvcHRpb24gdGVsbHMgc2xpbWJveCB0byBvbmx5 IHBlcm1pdCBzdGVwcGluZyB0aHJvdWdoIGVhY2ggaW1hZ2UgaW4gZWFjaCBjYXRlZ29yeS4g WW91IGNhbm5vdCAmIzgyMTY7ZmFsbCBvZmYmIzgyMTc7IHRoZSBlbmQgb2Ygb25lIGNhdGVn b3J5IGludG8gdGhlIG5leHQgd2hlbiB1c2luZyB0aGUgTmV4dC9QcmV2IGxpbmtzIGluIHRo ZSBsaWdodGJveC48L3A+CgoJPHA+SWYgeW91IHdhbnRlZCB0byBzaG93IGNhdGVnb3J5IGhl YWRpbmdzIHRoYXQgZ3JvdXBlZCBwaWN0dXJlcyBieSBhdXRob3IgYXMgd2VsbCB5b3UgY291 bGQgdXNlOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPnNv cnQ9JnF1b3Q7Y2F0ZWdvcnksIGF1dGhvciZxdW90OwogICAgIHRodW1idGV4dD0mcXVvdDtv bmNoYW5nZTogJmFtcDthbXA7bHQ7aDQmYW1wO2FtcDtndDs/Y2F0ZWdvcnkKICAgICAoYnkg P2F1dGhvcikmYW1wO2FtcDtsdDsvaDQmYW1wO2FtcDtndDsmcXVvdDsKPC9jb2RlPjwvcHJl PgoKCTxwPkFkZCBhIGxpdHRsZSBiaXQgb2YgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bh bj4gYW5kIHlvdXIgc2luZ2xlIHNsaW1ib3ggdGFnIGNhbiBsb29rIGxpa2UgaXQmIzgyMTc7 cyBjcmVhdGluZyBtdWx0aXBsZSBnYWxsZXJpZXMsIGFsbCBhdXRvbWF0aWNhbGx5LjwvcD4K Cgk8aDIgaWQ9InN0eWxlIj5TdHlsaW5nIHdpdGggPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwv c3Bhbj48L2gyPgoKCTxwPlRoZXJlIGFyZSAoZGVsaWJlcmF0ZWx5KSB2ZXJ5IGZldyBsYXlv dXQgYXR0cmlidXRlcyBmb3IgdGhlIHBsdWdpbiBiZWNhdXNlIHByZXR0eSBtdWNoIGV2ZXJ5 dGhpbmcgY2FuIGJlIGFjY2Vzc2VkIGZyb20gPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bh bj4gdG8gbGF5IHlvdXIgaW1hZ2VzIG91dCBob3dldmVyIHlvdSBsaWtlIHRoZW0uIFdhbnQg dG8gY2hhbmdlIHRoZSBudW1iZXIgb2YgaW1hZ2VzIHBlciByb3c/IENoYW5nZSB0aGUgd2lk dGggb2YgdGhlIGNvbnRhaW5pbmcgJmx0O2RpdiZndDsgYW5kIHNldCB0aGUgd2lkdGggb2Yg ZWFjaCB0aHVtYm5haWwgc3BhY2UgdG8gYSBwYXJ0aWN1bGFyIHNpemUuPC9wPgoKCTxwPlRo ZSBmb2xsb3dpbmcgbG9naWNhbCBzdHJ1Y3R1cmUgYXBwbGllczo8L3A+CgoJPHVsPgoJCTxs aT5BbiBvcHRpb25hbCB3cmFwdGFnIGFuZCBjZWxsY2xhc3MgYXJvdW5kIGVhY2ggJiM4MjIw O2NlbGwmIzgyMjE7IChpLmUuIGxpbmtlZCB0aHVtYm5haWwpPC9saT4KCQk8bGk+QSBsaW5r IGVsZW1lbnQgY29udGFpbmluZyB0aGUgdGh1bWJuYWlsJiM4MjE3O3MgPGNvZGU+Jmx0O2lt ZyZndDs8L2NvZGU+IHRhZyB3aXRoIGFuIG9wdGlvbmFsIGltZ2NsYXNzPC9saT4KCQk8bGk+ VGhlIHRodW1idGV4dCBpcyBhICZsdDtzcGFuJmd0OyB3aXRoIGFuIG9wdGlvbmFsIHRodW1i dGV4dGNsYXNzIGFuZCBjYW4gYXBwZWFyIGFib3ZlLCBiZWxvdyBvciB3aXRoaW4gdGhlIGxp bmsgZWxlbWVudDwvbGk+CgkJPGxpPlRoZSBuZXh0L3ByZXYgbGlua3MgYXJlIHdyYXBwZWQg aW4gdGhlIG9wdGlvbmFsIG5hdndyYXB0YWcgY29udGFpbmVyIGFuZCBjYW4gYmUgZ2l2ZW4g YW4gb3B0aW9uYWwgbmF2Y2xhc3M8L2xpPgoJCTxsaT5UaGUgbmV4dCBsaW5rIGhhcyBhIChk ZWZhdWx0KSBjbGFzcyBvZiAmIzgyMjA7c21kX3NsaW1ib3hfbmV4dCYjODIyMTsgYW5kIHBy ZXYgaGFzICYjODIyMDtzbWRfc2xpbWJveF9wcmV2JiM4MjIxOy4gVGhlc2UgY2FuIGJlIGNo YW5nZWQgb3IgcmVtb3ZlZCBpZiB5b3Ugd2lzaDwvbGk+Cgk8L3VsPgoKCTxwPlVzaW5nIDxz cGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IHNlbGVjdG9ycyB5b3UgY2FuIGFjY2VzcyBl dmVyeSBwYXJ0IG9mIHRoZSBzdHJ1Y3R1cmUuIEFuIGV4YW1wbGUgPHNwYW4gY2xhc3M9ImNh cHMiPkNTUzwvc3Bhbj4gbGF5b3V0IGlzIGdpdmVuIGhlcmUgdG8gZ2V0IHlvdSBzdGFydGVk IChhc3N1bWVzIGEgd3JhcHRhZyBvZiAmIzgyMTY7bGkmIzgyMTc7LCBhIGNvbnRhaW5pbmcg JiM4MjE2O3VsJiM4MjE3OyBhcm91bmQgdGhlIHBsdWdpbiB0YWcgd2l0aCBhIGNsYXNzIG9m IDxjb2RlPnNtZF9zbGltYm94PC9jb2RlPiBhbmQgPGNvZGU+bmF2Y2xhc3M9JnF1b3Q7c21k X3NsaW1ib3hfbmF2JnF1b3Q7PC9jb2RlPikuIFBhc3RlIGl0IGludG8geW91ciA8c3BhbiBj bGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiB0ZW1wbGF0ZSBhbmQgeW91JiM4MjE3O3JlIGdvb2Qg dG8gZ28uPC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+LnNt ZF9zbGltYm94IHsKCWZsb2F0OmxlZnQ7Cgl3aWR0aDo2MDBweDsKCW1hcmdpbjoxZW0gMDsK CWNsZWFyOmJvdGg7CglsaXN0LXN0eWxlOm5vbmU7Cn0KLnNtZF9zbGltYm94IGxpIHsKCXdp ZHRoOjE1MHB4OwoJaGVpZ2h0OjE1MHB4OwoJZmxvYXQ6bGVmdDsKCW1hcmdpbjoxZW0gYXV0 bzsKCXRleHQtYWxpZ246Y2VudGVyOwp9Ci5zbWRfc2xpbWJveCBpbWcgewoJbWFyZ2luOjAg YXV0bzsKfQouc21kX3NsaW1ib3ggc3BhbiB7CglmbG9hdDpsZWZ0OwoJd2lkdGg6MTQwcHg7 CglwYWRkaW5nOjJweCAwIDAgNXB4Owp9Ci5zbWRfc2xpbWJveF9uYXYgewoJY2xlYXI6Ym90 aDsKCXdpZHRoOjUwMHB4OwoJcGFkZGluZzoyMHB4Owp9Ci5zbWRfc2xpbWJveF9wcmV2IHsK CWZsb2F0OmxlZnQ7Cn0KLnNtZF9zbGltYm94X25leHQgewoJZmxvYXQ6cmlnaHQ7Cn0KPC9j b2RlPjwvcHJlPgoKCTxoMiBpZD0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4K CQk8bGk+MTkgSmFuIDA3IHwgMC4xIHwgSW5pdGlhbCByZWxlYXNlPC9saT4KCQk8bGk+MjAg SmFuIDA3IHwgMC4xMSB8IEFkZGVkICFjYXRlZ29yeSAobmVnYXRpb24pIHN1cHBvcnQuIFRo YW5rcyBWaXRydXZpdXM8L2xpPgoJCTxsaT4wMiBGZWIgMDcgfCAwLjEyIHwgQWRkZWQgaW1h Z2VpZCwgd2l0aCBuZWdhdGlvbiBzdXBwb3J0ICh0aGFua3Mgd291YXJlbikgYW5kIHRleHRw b3Mgb3B0aW9uICh0aGFua3MgbGVlKTwvbGk+CgkJPGxpPjA2IEZlYiAwNyB8IDAuMiB8IGpz IGFuZCBjc3MgY2FuIG5vdyBiZSBsb2FkZWQgZWxzZXdoZXJlICh0aGFua3MganN0dWJicyku IEFkZGVkIHdyYXB0YWcgYW5kIGNoYW5nZWQgZGVmYXVsdHMgdG8gbWFrZSBvdXRwdXQgbGVz cyBsaWtlIHRhZy1zb3VwICh0aGFua3Mgd291YXJlbik8L2xpPgoJCTxsaT4xMyBGZWIgMDcg fCAwLjIxIHwgQWRkZWQgb3JkZXJieT0mIzgyMjA7Zml4ZWQmIzgyMjE7ICh0aGFua3MgbGVl KSBhbmQgbWlub3Igd2FybmZpeCAodGhhbmtzIGJlbmppYm90KTwvbGk+CgkJPGxpPjA0IE1h ciAwNyB8IDAuMjIgfCBBZGRlZCA8c3BhbiBjbGFzcz0iY2FwcyI+TUxQPC9zcGFuPiBzdXBw b3J0LCBzdWJjYXRlZ29yeSBzdXBwb3J0IGFuZCBleHRlbmRlZCB0aGUgY2F0ZWdvcnkvaW1h Z2VpZCBvcHRpb25zLiBOb3cgcmVxdWlyZXMgc21kX2xpYiAoaW5jbHVkZWQgaW4gdGhlIHpp cCBmaWxlIGZvciBjb252ZW5pZW5jZSBidXQgYXZhaWxhYmxlIHNlcGFyYXRlbHkgYXMgd2Vs bCk8L2xpPgoJCTxsaT4wNCBNYXIgMDcgfCAwLjIzIHwgRml4ZWQgb3JkZXJieSB3aGVuIHVz aW5nIHJhbmRvbSAodGhhbmtzIG1yZGFsZSkgYW5kIGFkZGVkIGFiaWxpdHkgdG8gb3ZlcnJp ZGUgbWF4bGltaXQ8L2xpPgoJCTxsaT4xOSBNYXIgMDcgfCAwLjI0IHwgQWxsb3dlZCBzbWRf c2xpbWJveF9pbmMgdG8gYmUgaWdub3JlZCB2aWEgPGNvZGU+bGliY2hlY2s9JnF1b3Q7MCZx dW90OzwvY29kZT4gKHRoYW5rcyBwYXB1YXNzKTwvbGk+CgkJPGxpPjMwIEp1biAwNyB8IDAu MjRiIHwgRml4ZWQgcGFnaW5nIGluIHN1Yi1kaXJlY3RvcnkgaW5zdGFsbGF0aW9ucyAodGhh bmtzIHVsdHJhbWVnYSBhbmQgUXdlc3QpPC9saT4KCQk8bGk+MjggSnVsIDA3IHwgMC4yNSB8 IFN1cGVyY2hhcmdlZCB0aGUgZ3JvdXBuYW1lIG9wdGlvbiAodGhhbmtzIFtBeGVsXSk8L2xp PgoJCTxsaT4zMSBKdWwgMDcgfCAwLjI1YSB8IE1haW50ZW5hbmNlIHVwZ3JhZGUgb25seS4g Tm8gZmVhdHVyZXMsIGp1c3QgYnVuZGxlZCB0aGUgbGF0ZXN0IHNsaW1ib3gvbW9vdG9vbHMg bGlicmFyeSBhbmQgZml4ZWQgdGhlIGhlbHAgZmlsZTwvbGk+CgkJPGxpPjA0IEF1ZyAwNyB8 IDAuMjY6IHwgRml4ZWQgcGFnaW5nIHRvIGFsbG93IG11bHRpcGxlIHNsaW1ib3ggdGFncyBw ZXIgcGFnZSB0byBjby1leGlzdCAodGhhbmtzIHdoZWF0aWN1cyk8L2xpPgoJCTxsaT4yMiBB dWcgMDcgfCAwLjI3OiB8IEFkZGVkIHRodW1ibmFpbHMtYXMtbWFpbi1pbWFnZSBvcHRpb24g KHRoYW5rcyBwcm9ncmU1NSk8L2xpPgoJCTxsaT4zMCBBdWcgMDcgfCAwLjI4IHwgQWRkZWQg Y3VzdG9taXNhYmxlIGNhcHRpb25zIHVuZGVyIHRoZSBtYWluIGltYWdlICh0aGFua3MgQWRh bV9WKSBhbmQgY29uc29saWRhdGVkIG9yZGVyYnkgKGludGVybmFsIGNvZGUpPC9saT4KCQk8 bGk+MTQgU2VwIDA3IHwgMC4yOSB8IEFkZGVkIHRoZSB0aHVtYnNpemUgb3B0aW9uIHRvIHNl dCB0aHVtYm5haWwgZGltZW5zaW9ucyAodGhhbmtzIFNpbWFuZWspPC9saT4KCQk8bGk+MjAg U2VwIDA3IHwgMC4yOWEgfCBGaXhlZCB1bmRlY2xhcmVkIGluZGV4IHdhcm5pbmdzICh0aGFu a3MgQW1iaXRpb3VzbGVtb24pPC9saT4KCQk8bGk+MjAgT2N0IDA3IHwgMC4yOWIgfCBGaXhl ZCB0aGUgZml4IHRoYXQgYnJva2UgaW4gdjAuMjQgKHRoYW5rcyBNci5TbWl0aCkgYW5kIHRo ZSAmIzgyMTY7cHgmIzgyMTc7IHRodW1ic2l6ZSBpc3N1ZSAodGhhbmtzIHJvYmluNzQ2KTwv bGk+CgkJPGxpPjAzIE5vdiAwNyB8IDAuMjEwIHwgVXNlcyBzbWRfbGliIHYwLjMgc28gaW50 ZWdlciByYW5nZXMgYXJlIG5vdyBvbmx5IGFsbG93ZWQgaW4gaW1hZ2VpZC4gQWRkZWQgdGh1 bWJ0ZXh0L3RodW1idGV4dGNsYXNzL3BhcmFtZGVsaW0uIERlcHJlY2F0ZWQgc2hvd2FsdC9z aG93Y2FwdGlvbi9hbHRjbGFzcy9jYXB0aW9uY2xhc3MvdGV4dHBvczwvbGk+CgkJPGxpPjI4 IE5vdiAwNyB8IDAuMjExIHwgVXNlcyBzbWRfbGliIHYwLjMxLiBGaXhlZCBzb21lIHdhcm5p bmdzIGFuZCBhZGRlZCBvbmNoYW5nZSBoZWFkaW5nIHN1cHBvcnQgKHRoYW5rcyBrYXJsLnNw ZW5jZXIsIGRlY29kZXJsdGQpPC9saT4KCQk8bGk+MjAgSmFuIDA4IHwgMC4yMTIgfCBBZGRl ZCB0aHVtYnRleHR3cmFwICh0aGFua3Mgam9kZWNpKSBhbmQgPGNvZGU+P3VybDwvY29kZT4g KHRoYW5rcyBtYXJrdXNmYWxrKSA7IGZpeGVkIHdoaXRlc3BhY2UgYXJvdW5kICYjODIxNjs/ JiM4MjE3OyBjb2RlczwvbGk+CgkJPGxpPjAxIEFwciAwOCB8IDAuMyB8IFVzZXMgc21kX2xp YiB2MC4zMi4gQmFja3BvcnRlZCBmZWF0dXJlcyBhbmQgcmVmYWN0b3Jpc2F0aW9uIGZyb20g c21kX2dhbGxlcnkgOyBhZGRlZCB0cmlnZ2VyLCBkZWxpbSwgbmF2d3JhcHRhZyBhbmQgbGlu a2NsYXNzICh0aGFua3MgbWFyaW9zKSA7IGNoYW5nZWQgc3ViY2F0cyBhbmQgdGh1bWIgKHRo YW5rcyBmYW5nb25rKSA7IGRlcHJlY2F0ZWQgc21kX3NsaW1ib3hfaW5jIDsgcmVtb3ZlZCBj YXRsYWJlbCwgbGliY2hlY2sgYW5kIHRoZSBkZXByZWNhdGVkIGF0dHMgZnJvbSB2MC4yMTAg OyByZW5hbWVkIG9yZGVyYnkgYXMgc29ydCA7IE1vb25ib3gsIExpZ2h0Ym94LCBMaXRlYm94 LCBJbWFnZWJveCBhbmQgVGhpY2tib3ggKGpRdWVyeSkgbm93IHN1cHBvcnRlZCA7IGFsc28g d29ya3Mgd2l0aCBnbHpfY3VzdG9tX2ZpZWxkcyAodGhhbmtzIHByb2dyZTU1IGFuZCBnZXJo YXJkKTwvbGk+CgkJPGxpPjA5IEp1biAwOCB8IDAuMzEgfCBGaXhlZCA8Y29kZT5zb3J0PC9j b2RlPiB3aGVuIHVzaW5nIDxjb2RlPmxpbWl0PC9jb2RlPiBhbmQgc2F2ZWQgYSBxdWVyeSAo dGhhbmtzIHJvYmluNzQ2KTwvbGk+CgkJPGxpPjE5IERlYyAwOCB8IDAuMzIgfCBGaXhlZCA8 c3BhbiBjbGFzcz0iY2FwcyI+TUxQPC9zcGFuPiBzdHJpbmcgYnVnPC9saT4KCTwvdWw+CgoJ PGgyIGlkPSJjcmVkaXRzIj5DcmVkaXRzPC9oMj4KCgk8cD5UaGlzIHBsdWdpbiBvcmlnaW5h bGx5IHBsYWdpYXJpc2VkIGlkZWFzIGZyb20gUm9iIFNhYmxlJiM4MjE3O3MgcnNzX3RodW1i cG9wIGFuZCBoYXMgYmVlbiBidWlsdCB1cCBmcm9tIHRoZXJlIHdpdGggc3VnZ2VzdGlvbnMg ZnJvbSB2YXJpb3VzIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+ZXJzIGluIHRoZSBj b21tdW5pdHkuIEl0IGFsc28gd291bGRuJiM4MjE3O3QgZXhpc3Qgd2l0aG91dCB0aGUgaGFy ZCB3b3JrIG9mIENocmlzdG9waGUgQmV5bHMmIzgyMTc7IG9yaWdpbmFsIGltcGxlbWVudGF0 aW9uIG9mIFNsaW1ib3guIE1hbnkgdGhhbmtzIHRvIGFsbCB3aG8gaGF2ZSBoZWxwZWQgY3Jh ZnQgdGhpcyBwbHVnaW4sIGFuZCBvZiBjb3Vyc2UgdG8gdGhlIGF3ZXNvbWUgVGVhbSBUZXh0 UGF0dGVybi48L3A+CgoJPHA+PC9kaXY+PC9wPgo8IS0tIC0tLSBCRUdJTiBQTFVHSU4gQ1NT IC0tLSAtLT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWln aHQ6MS40NTt9CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1 JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1j b2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9y bWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhj OyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsg fQojc21kX2hlbHAgLnJlcXVpcmVkIHtjb2xvcjpyZWQ7fQojc21kX2hlbHAgYTpsaW5rLCAj c21kX2hlbHAgYTp2aXNpdGVkIHsgY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogbm9u ZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9 CiNzbWRfaGVscCBhOmhvdmVyLCAjc21kX2hlbHAgYTphY3RpdmUgeyBjb2xvcjogYmx1ZTsg dGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAycHggc29saWQgYmx1ZTsg cGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6 IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50 ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBw YWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5z LXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjNjkzOyBmb250OiBib2xkIDEycHgg QXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMjJweCAw IDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxp bmU7fQojc21kX2hlbHAgaDQgeyBmb250OiBib2xkIDExcHggQXJpYWwsIHNhbnMtc2VyaWY7 IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDAgO3RleHQtdHJhbnNmb3Jt OiB1cHBlcmNhc2U7IH0KI3NtZF9oZWxwIHVsIHsgbGlzdC1zdHlsZS10eXBlOnNxdWFyZTsg fQojc21kX2hlbHAgbGkgeyBtYXJnaW4tbGVmdDozNXB4OyB9CiNzbWRfaGVscCAuYXR0LW5h bWUgeyBmb250LXdlaWdodDpib2xkOyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6OTAlOyB0 ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206MWVtOyBtYXJnaW46MCBhdXRvO30K I3NtZF9oZWxwIHRkLCAjc21kX2hlbHAgdGgge2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFk ZGluZzouNWVtIDA7fQojc21kX2hlbHAgLmJyZWFrIHsgbWFyZ2luLXRvcDo1cHg7IH0KPC9z dHlsZT4KPCEtLSAtLS0gRU5EIFBMVUdJTiBDU1MgLS0tIC0tPgoiO3M6MzoibWQ1IjtzOjMy OiIwYmYxN2E5ZmNkYjQ4NGEzMzA3YWY3YzM0NTlhZWQzZiI7fQ==