# Name: smd_random_banner v0.41 # Type: Client side plugin # Random image or file chosen by category/text/article field. Use for advertising or fun # 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: # ..................................................................... YToxMDp7czo0OiJuYW1lIjtzOjE3OiJzbWRfcmFuZG9tX2Jhbm5lciI7czo2OiJhdXRob3Ii O3M6MTE6IlN0ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3Rl ZmRhd3Nvbi5jb20vIjtzOjc6InZlcnNpb24iO3M6NDoiMC40MSI7czoxMToiZGVzY3JpcHRp b24iO3M6ODY6IlJhbmRvbSBpbWFnZSBvciBmaWxlIGNob3NlbiBieSBjYXRlZ29yeS90ZXh0 L2FydGljbGUgZmllbGQuIFVzZSBmb3IgYWR2ZXJ0aXNpbmcgb3IgZnVuIjtzOjQ6ImNvZGUi O3M6MTU2NTE6InJlcXVpcmVfcGx1Z2luKCdzbWRfbGliJyk7DQoNCi8vIE1MUCBzdXBwb3J0 DQpnbG9iYWwgJHNtZF9yYmFuTGFuZzsNCiRzbWRfcmJhbl9zdHIgPSBhcnJheSgNCgknd2lk dGgnID0+ICczMDAnLA0KCSdoZWlnaHQnID0+ICc3NScsDQoJJ25vX3BsdWdfdGV4dCcgPT4g JycsDQopOw0KJHNtZF9yYmFuTGFuZyA9IG5ldyBzbWRfTUxQKCdzbWRfcmFuZG9tX2Jhbm5l cicsICdzbWRfcmJhbicsICRzbWRfcmJhbl9zdHIpOw0KDQpmdW5jdGlvbiBzbWRfcmFuZG9t X2Jhbm5lcigkYXR0cykgew0KCWdsb2JhbCAkaW1nX2RpciwgJGZpbGVfYmFzZV9wYXRoLCAk c21kX3JiYW5MYW5nOw0KDQoJaWYgKCFkZWZpbmVkKCdTTURfRExNX1RSJykpIHsNCgkJZGVm aW5lKCdTTURfRExNX1RSJywgJ0BAJyk7DQoJfQ0KCWlmICghZGVmaW5lZCgnU01EX0RMTV9S RUMnKSkgew0KCQlkZWZpbmUoJ1NNRF9ETE1fUkVDJywgJ3wnKTsNCgl9DQoNCgkvLyBhbGxv d2FibGUgb3B0aW9ucyAoZGVmYXVsdCBsaXN0ZWQgZmlyc3QpDQoJJGFsbE1vZGUgPSBhcnJh eSgiaW1hZ2UiLCJmaWxlIik7DQoJJGFsbENvbXBhcmUgPSBhcnJheSgiaW1hZ2U6bmFtZSIs ImltYWdlOmlkIiwiaW1hZ2U6YWx0IiwiaW1hZ2U6Y2FwdGlvbiIsImltYWdlOmNhdGVnb3J5 IiwiZmlsZTpmaWxlbmFtZSIsImZpbGU6aWQiLCJmaWxlOmNhdGVnb3J5IiwiZmlsZTpkZXNj cmlwdGlvbiIsImZpbGU6c3RhdHVzIiwiZmlsZTpzaXplIik7DQoJJGFsbExpbmtJbiA9IGFy cmF5KCIiLCJpbWFnZTpjYXB0aW9uIiwiaW1hZ2U6YWx0IiwiaW1hZ2U6bmFtZSIsImZpbGU6 ZGVzY3JpcHRpb24iKTsNCg0KCS8vIGxvb2t1cCB0YWJsZXMNCgkkaHRtbE9iakZpeGVkID0g YXJyYXkoImlkIiwiZGF0YSIsImhlaWdodCIsInR5cGUiLCJ3aWR0aCIsInBsYXllcnZlcnNp b24iLCJiYWNrY29sb3IiLCJlbGVtZW50aWQiLCJ1aWQiKTsNCgkkaHRtbE9ialBhcmFtID0g YXJyYXkoImNsYXNzIiwidGl0bGUiLCJzdHlsZSIsImRpciIsImxhbmciLCJ4bWw6bGFuZyIs ImFsaWduIiwiYXJjaGl2ZSIsImJvcmRlciIsImNsYXNzaWQiLCJjb2RlYmFzZSIsImNvZGV0 eXBlIiwiZGVjbGFyZSIsImhzcGFjZSIsIm5hbWUiLCJzdGFuZGJ5IiwidXNlbWFwIiwidnNw YWNlIik7DQoJJG9iak1pbWVUeXBlID0gYXJyYXkoImF2aSIgPT4gYXJyYXkoInZpZGVvL2F2 aSIsICJWaWRlbyIpLA0KCQkJCQkJCQkiZmxhfGZsYWMiID0+IGFycmF5KCJhdWRpby9mbGFj IiwgIkF1ZGlvIiksDQoJCQkJCQkJCSJmbHZ8c3dmIiA9PiBhcnJheSgiYXBwbGljYXRpb24v eC1zaG9ja3dhdmUtZmxhc2giLCAiRmxhc2giKSwNCgkJCQkJCQkJImdpZiIgPT4gYXJyYXko ImltYWdlL2dpZiIsICJJbWFnZSIpLA0KCQkJCQkJCQkiamF2YSIgPT4gYXJyYXkoImFwcGxp Y2F0aW9uL3gtamF2YS1hcHBsZXQiLCAiQXBwIiksDQoJCQkJCQkJCSJqcGciID0+IGFycmF5 KCJpbWFnZS9qcGVnIiwgIkltYWdlIiksDQoJCQkJCQkJCSJtaWQiID0+IGFycmF5KCJhdWRp by94LW1pZGkiLCAiQXVkaW8iKSwNCgkJCQkJCQkJIm1vdiIgPT4gYXJyYXkoInZpZGVvL3F1 aWNrdGltZSIsICJWaWRlbyIpLA0KCQkJCQkJCQkibXBnfG1wZWd8bXA0IiA9PiBhcnJheSgi dmlkZW8vbXBlZyIsICJWaWRlbyIpLA0KCQkJCQkJCQkibXAyfG1wM3xtNGEiID0+IGFycmF5 KCJhdWRpby9tcGVnIiwgIkF1ZGlvIiksDQoJCQkJCQkJCSJvZ3Z8b2dhfG9neHxvZ2ciID0+ IGFycmF5KCJhcHBsaWNhdGlvbi9vZ2ciLCAiQXVkaW8iKSwNCgkJCQkJCQkJIm9mciIgPT4g YXJyYXkoImFwcGxpY2F0aW9uL3gtb2ZyIiwgIkF1ZGlvIiksDQoJCQkJCQkJCSJwbmciID0+ IGFycmF5KCJpbWFnZS9wbmciLCAiSW1hZ2UiKSwNCgkJCQkJCQkJInJhfHJtIiA9PiBhcnJh eSgiYXVkaW8veC1wbi1yZWFsdmlkZW8iLCAiVmlkZW8iKSwNCgkJCQkJCQkJInN3byIgPT4g YXJyYXkoInRleHQvamF2YXNjcmlwdCIsICJTV0ZPYmplY3QiKSwNCgkJCQkJCQkJInRpZnx0 aWZmIiA9PiBhcnJheSgiaW1hZ2UvdGlmZiIsICJJbWFnZSIpLA0KCQkJCQkJCQkid2F2IiA9 PiBhcnJheSgiYXVkaW8veC13YXYiLCAiQXVkaW8iKSwNCgkJCQkJCQkJIndtdnx3bWF8YXNm IiA9PiBhcnJheSgidmlkZW8veC1tcy13bXYiLCAiQXVkaW8iKSwNCgkJCQkJCQkJKTsNCgkk b2JqVGVtcGxhdGVGaXhlZCA9ICd0eXBlPSJAQHR5cGUiIGRhdGE9IkBAZGF0YSIgd2lkdGg9 IkBAd2lkdGgiIGhlaWdodD0iQEBoZWlnaHQiIEBAb3RoZXJzICc7DQoJJG9ialRlbXBsYXRl ID0gYXJyYXkoDQoJCSJGbGFzaCIgPT4gYXJyYXkoJzxvYmplY3QgJyAuJG9ialRlbXBsYXRl Rml4ZWQuICdpZD0iQEBpZCI+PHBhcmFtIG5hbWU9Im1vdmllIiB2YWx1ZT0iQEBkYXRhIiAv PicsICc8L29iamVjdD4nKSwNCgkJIlNXRk9iamVjdCIgPT4gYXJyYXkoJzxzY3JpcHQgdHlw ZT0iQEB0eXBlIiBkZWZlcj0iZGVmZXIiPicubi4ndmFyIEBAdWlkID0gbmV3IFNXRk9iamVj dCgiQEBkYXRhIiwgIkBAaWQiLCAiQEB3aWR0aCIsICJAQGhlaWdodCIsICJAQHBsYXllcnZl cnNpb24iLCAiQEBiYWNrY29sb3IiKTsnLm4sICdAQHVpZC53cml0ZSgiQEBlbGVtZW50aWQi KTsnLm4uJzwvc2NyaXB0PicubiksDQoJCSJBdWRpbyIgPT4gYXJyYXkoJzxvYmplY3QgJyAu JG9ialRlbXBsYXRlRml4ZWQuICc+PHBhcmFtIG5hbWU9InNyYyIgdmFsdWU9IkBAZGF0YSIg Lz4nLCAnPC9vYmplY3Q+JyksDQoJCSJWaWRlbyIgPT4gYXJyYXkoJzxvYmplY3QgJyAuJG9i alRlbXBsYXRlRml4ZWQuICc+JywgJzwvb2JqZWN0PicpLA0KCQkiSW1hZ2UiID0+IGFycmF5 KCc8aW1nIHNyYz0iQEBkYXRhIiB3aWR0aD0iQEB3aWR0aCIgaGVpZ2h0PSJAQGhlaWdodCIg QEBvdGhlcnMgLz4nLCAnJyksDQoJCSk7DQoNCgkvLyBMb2cgd2hldGhlciBhbnkgYXR0ZW1w dCBoYXMgYmVlbiBtYWRlIHRvIHVzZSBjYXRlZ29yeS9pZCBCRUZPUkUgbEF0dHMoKSwgd2hp Y2ggYXNzaWducyB0aGVtIHJlZ2FyZGxlc3MNCgkkYXR0ZW1wdE1hdGNoID0gKGlzc2V0KCRh dHRzWydjYXRlZ29yeSddKSB8fCBpc3NldCgkYXR0c1snaWQnXSkpID8gdHJ1ZSA6IGZhbHNl Ow0KDQoJLy8gUGx1Z2luIG9wdGlvbnMNCglleHRyYWN0KGxBdHRzKGFycmF5KA0KCQknbW9k ZScgPT4gJ2ltYWdlJywNCgkJJ2NhdGVnb3J5JyA9PiAnJywNCgkJJ2lkJyA9PiAnJywNCgkJ J3N1YmNhdHMnID0+ICcwJywNCgkJJ21hdGNoX3RleHQnID0+ICcnLA0KCQknYXZvaWRfdGV4 dCcgPT4gJycsDQoJCSdjb21wYXJlX3RvJyA9PiAnbmFtZScsDQoJCSdsaW1pdCcgPT4gJzEn LA0KCQknYWx3YXlzX2Rpc3BsYXknID0+ICcwJywNCgkJJ3RodW1iJyA9PiAnMCcsDQoJCSds aW5rX2luJyA9PiAnJywNCgkJJ2xpbmtfcHJlZml4JyA9PiAnJywNCgkJJ2Rpc3BsYXlfdXJs JyA9PiAnMScsDQoJCSdyZWZlcmVyJyA9PiAnYmlkJywNCgkJJ3Jhd191cmwnID0+ICcwJywN CgkJJ3RhcmdldCcgPT4gJycsDQoJCSdjb3VudF9kb3dubG9hZHMnID0+ICcxJywNCgkJJ2Zp bGVzX2RpcicgPT4gJ2ZpbGVzJywNCgkJJ2RlbGltJyA9PiAnLCcsDQoJCSdudl9kZWxpbScg PT4gJz0nLA0KCQknbm9fcGx1Z190ZXh0JyA9PiAnJywNCgkJJ2dsb2JhbF9wYXJhbXMnID0+ ICcnLA0KCQknaW1nY2xhc3MnID0+ICcnLCAvLyBERVBSRUNBVEVEDQoJCSdjbGFzcycgPT4g JycsDQoJCSdkZWJ1ZycgPT4gJzAnLA0KCSksICRhdHRzKSk7DQoNCgkvLyBWYWxpZGF0ZSBt b2RlIC8gbGlua19pbiAvIHRhcmdldCAvIGNsYXNzDQoJJG1vZGUgPSAoaW5fYXJyYXkoJG1v ZGUsJGFsbE1vZGUpKSA/ICRtb2RlIDogJGFsbE1vZGVbMF07DQoJJGxpbmtfaW4gPSAoJGxp bmtfaW4gJiYgaW5fYXJyYXkoJG1vZGUuJzonLiRsaW5rX2luLCRhbGxMaW5rSW4pKSA/ICRs aW5rX2luIDogJGFsbExpbmtJblswXTsNCgkkdGFyZ2V0ID0gKCR0YXJnZXQpID8gJyB0YXJn ZXQ9IicgLiR0YXJnZXQuICciJyA6ICcnOw0KCSRjbGFzcyA9ICghJGNsYXNzICYmICRpbWdj bGFzcykgPyAkaW1nY2xhc3MgOiAkY2xhc3M7DQoNCgkvLyBWYWxpZGF0ZSBjb21wYXJlX3Rv DQoJJGNvbXBhcmVUb09wdHMgPSBhcnJheSgpOw0KCWlmIChpc3NldCgkY29tcGFyZV90bykp IHsNCgkJJGN0TGlzdCA9IGRvX2xpc3QoJGNvbXBhcmVfdG8pOw0KCQkkY3RDb3VudCA9IGNv dW50KCRjdExpc3QpOw0KCQlmb3IgKCRpZHggPSAwOyAkaWR4IDwgJGN0Q291bnQ7ICRpZHgr Kykgew0KCQkJaWYoaW5fYXJyYXkoJG1vZGUuJzonLiRjdExpc3RbJGlkeF0sJGFsbENvbXBh cmUpKSB7DQoJCQkJJGNvbXBhcmVUb09wdHNbXSA9ICRjdExpc3RbJGlkeF07DQoJCQl9DQoJ CX0NCgl9DQoJaWYoY291bnQoJGNvbXBhcmVUb09wdHMpIDw9IDApIHsNCgkJLy8gRmluZCB0 aGUgZmlyc3QgZW50cnkgbWF0Y2hpbmcgJG1vZGUgYW5kIHVzZSB0aGF0DQoJCWZvcmVhY2gg KCRhbGxDb21wYXJlIGFzICRjbXApIHsNCgkJCWlmIChzdHJwb3MoJGNtcCwgJG1vZGUuJzon KSA9PT0gMCkgew0KCQkJCSRjb21wYXJlVG9PcHRzW10gPSBzdWJzdHIoJGNtcCxzdHJsZW4o JG1vZGUpKzEpOw0KCQkJCWJyZWFrOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJLy8gSWYgbm9fcGx1 Z190ZXh0IGlzIGEgZm9ybSwgaGFuZGxlIGFjY29yZGluZ2x5DQoJJG5vcGx1ZyA9IGRvX2xp c3QoJG5vX3BsdWdfdGV4dCwgJzonKTsNCglpZiAoY291bnQoJG5vcGx1ZykgPiAwICYmICRu b3BsdWdbMF0gPT0gJ3R4cGZvcm0nKSB7DQoJCSRub19wbHVnX3RleHQgPSBwYXJzZV9mb3Jt KCRub3BsdWdbMV0pOw0KCX0NCg0KCS8vIGluaXQgdmFyaWFibGVzDQoJJGNsYXVzZSA9ICcx PTEnOw0KCSRjbGF1c2VDYXQgPSAkY2xhdXNlOw0KCSRjbGF1c2VPUiA9IGFycmF5KCk7DQoN CgkkZmllbGRzID0gKCRtb2RlPT0naW1hZ2UnKSA/ICdpZCwgbmFtZSwgZXh0LCBjYXB0aW9u LCBhbHQnIDogJ2lkLCBmaWxlbmFtZSwgZGVzY3JpcHRpb24sIHN0YXR1cywgc2l6ZSc7DQoJ JGRiVGFibGUgPSAoJG1vZGU9PSdpbWFnZScpID8gJ3R4cF9pbWFnZScgOiAndHhwX2ZpbGUn Ow0KCSRzdWJpbmZvID0gKCRzdWJjYXRzKSA/ICRtb2RlLic6Jy4kc3ViY2F0cyA6ICcnOw0K DQoJLy8gRXh0cmFjdCBhbGwgdGhlIGZpeGVkLCA/IGFuZCAhIHN0cmluZ3MgZnJvbSBjYXRl Z29yeSwgSUQsIG1hdGNoIGFuZCBhdm9pZCB0ZXh0cw0KCWxpc3QoJGlkaW5jLCAkaWRleGMp ID0gc21kX2RvTGlzdCgkaWQsIHRydWUsICcnLCB0cnVlLCAkZGVsaW0pOw0KCWxpc3QoJGNh dGluYywgJGNhdGV4YykgPSBzbWRfZG9MaXN0KCRjYXRlZ29yeSwgZmFsc2UsICRzdWJpbmZv LCB0cnVlLCAkZGVsaW0pOw0KCWxpc3QoJG1hdGNoQXJyYXksICRtYXRjaGV4YykgPSBzbWRf ZG9MaXN0KCRtYXRjaF90ZXh0LCBmYWxzZSwgJycsIGZhbHNlLCAkZGVsaW0pOw0KCWxpc3Qo JGF2b2lkQXJyYXksICRhdm9pZGV4YykgPSBzbWRfZG9MaXN0KCRhdm9pZF90ZXh0LCBmYWxz ZSwgJycsIGZhbHNlLCAkZGVsaW0pOw0KDQoJLy8gQ29tYmluZSBsaXN0cyBpZiBhcHBsaWNh YmxlIChzaW5jZSBhdm9pZF90ZXh0PSIhc3F1aWQiIGlzIGEgZG91YmxlIG5lZ2F0aXZlIGFu ZCBtZWFucyBtYXRjaF90ZXh0PSJzcXVpZCIpDQoJJG1hdGNoQXJyYXkgPSBhcnJheV9tZXJn ZSgkbWF0Y2hBcnJheSwgJGF2b2lkZXhjKTsNCgkkYXZvaWRBcnJheSA9IGFycmF5X21lcmdl KCRhdm9pZEFycmF5LCAkbWF0Y2hleGMpOw0KDQoJLy8gU3Vycm91bmQgZWFjaCBlbnRyeSBp biB0aGUgSUQvY2F0IGxpc3RzIHdpdGggcXVvdGVzIGFuZCBtYWtlIGFuIFNRTCAiaW4iIGxp c3QNCglpZiAoJGlkaW5jKSB7DQoJCSRjbGF1c2VPUltdID0gJGRiVGFibGUuJy5pZCBJTiAo Jy5pbXBsb2RlKCIsIiwgJGlkaW5jKS4nKSc7DQoJfQ0KCWlmICgkY2F0aW5jKSB7DQoJCSRj bGF1c2VPUltdID0gJGRiVGFibGUuJy5jYXRlZ29yeSBJTiAoJy5pbXBsb2RlKCIsIiwgJGNh dGluYykuJyknOw0KCX0NCglpZiAoIWVtcHR5KCRjbGF1c2VPUikpIHsNCgkJJGNsYXVzZUNh dCAuPSAnIEFORCAoJy5pbXBsb2RlKCIgT1IgIiwgJGNsYXVzZU9SKS4nKSAnOw0KCX0NCg0K CSRjbGF1c2VDYXQgLj0gKCRjYXRleGMpID8gJyBBTkQgJy4kZGJUYWJsZS4nLmNhdGVnb3J5 IE5PVCBJTiAoJy5pbXBsb2RlKCIsIiwgJGNhdGV4YykuJyknIDogJyc7DQoJJGNsYXVzZUNh dCAuPSAoJGlkZXhjKSA/ICcgQU5EICcuJGRiVGFibGUuJy5pZCBOT1QgSU4gKCcuaW1wbG9k ZSgiLCIsICRpZGV4YykuJyknIDogJyc7DQoNCgkvLyBJZiBhIGNhdGVnb3J5L2lkIG9wdGlv biB3YXMgY2hvc2VuIGFuZCB0aGV5IG1hdGNoZWQgbm90aGluZywgdXNlIGEgYm9ndXMgY2F0 ZWdvcnkgdGhhdCBzaG91bGQgbm90IGV4aXN0Lg0KCS8vIFRoaXMgZW5zdXJlcyB0aGF0IHRo ZSBwbHVnaW4gZG9lcyB0aGUgZXhwZWN0ZWQgdGhpbmcgb2YgbWF0Y2hpbmcgbm90aGluZyBp biB0aGUgZXZlbnQgaXQgZmluZHMgbm90aGluZy4NCglpZiAoJGNsYXVzZUNhdCA9PSAnMT0x JyAmJiAkYXR0ZW1wdE1hdGNoKSB7DQogIAkJJGNsYXVzZSA9ICRkYlRhYmxlLicuY2F0ZWdv cnkgPSAic21kXycgLm10X3JhbmQoKS4gJyInOw0KCX0gZWxzZSB7DQoJCSRjbGF1c2UgPSAk Y2xhdXNlQ2F0Ow0KCX0NCg0KCS8vIE5vdyBmYWN0b3IgaW4gYW55IG1hdGNoL2F2b2lkIHRl eHQsIGNvbXBhcmluZyBldmVyeXRoaW5nIHdpdGggd2hhdGV2ZXIgaXMgaW4gY29tcGFyZV90 bw0KCSRjbGF1c2VBTkQgPSBhcnJheSgpOw0KCSRjbGF1c2VNQVRDSCA9IGFycmF5KCk7DQoJ JGNsYXVzZUFWT0lEID0gYXJyYXkoKTsNCg0KCWZvcmVhY2ggKCRjb21wYXJlVG9PcHRzIGFz ICRjb21wKSB7DQoJCWZvciAoJGlkeCA9IDA7ICRpZHggPCBjb3VudCgkbWF0Y2hBcnJheSk7 ICRpZHgrKykgew0KCQkJJGNsYXVzZU1BVENIW10gPSAkZGJUYWJsZS4nLicuJGNvbXAgLiAi IExJS0UgJyUiIC4kbWF0Y2hBcnJheVskaWR4XS4gIiUnIjsNCgkJfQ0KCQlmb3IgKCRpZHgg PSAwOyAkaWR4IDwgY291bnQoJGF2b2lkQXJyYXkpOyAkaWR4KyspIHsNCgkJCSRjbGF1c2VB Vk9JRFtdID0gJGRiVGFibGUuJy4nLiRjb21wIC4gIiBMSUtFICclIiAuJGF2b2lkQXJyYXlb JGlkeF0uICIlJyI7DQoJCX0NCgl9DQoNCglpZiAoY291bnQoJGNsYXVzZU1BVENIKSA+IDAp IHsNCgkJJGNsYXVzZUFORFtdID0gJygnIC5pbXBsb2RlKCcgT1IgJywkY2xhdXNlTUFUQ0gp LiAnKSc7DQoJfQ0KCWlmIChjb3VudCgkY2xhdXNlQVZPSUQpID4gMCkgew0KCQkkY2xhdXNl QU5EW10gPSAnTk9UICgnIC5pbXBsb2RlKCcgT1IgJywkY2xhdXNlQVZPSUQpLiAnKSc7DQoJ fQ0KCWlmIChjb3VudCgkY2xhdXNlQU5EKSA+IDApIHsNCgkJJGNsYXVzZSAuPSAnIEFORCAn IC4gaW1wbG9kZSgnIEFORCAnLCAkY2xhdXNlQU5EKTsNCgl9DQoNCgkvLyBOZWVkIHRvIGtl ZXAgY2xhdXNlLCBjbGF1c2VDYXQgYW5kIGNsYXVzZVNvcnQgc2VwYXJhdGUgZm9yIGFsd2F5 c19kaXNwbGF5DQoJJGNsYXVzZVNvcnQgPSAiIE9SREVSIEJZIFJBTkQoKSBMSU1JVCAkbGlt aXQiOw0KCSRjbGF1c2UgLj0gJGNsYXVzZVNvcnQ7DQoNCglpZiAoJGRlYnVnID4gMSkgew0K CQllY2hvICIrKyBJTkNMVURFRC9FWENMVURFRCBJRHMgKysiOw0KCQlkbXAoJGlkaW5jKTsN CgkJZG1wKCRpZGV4Yyk7DQoJCWVjaG8gIisrIElOQ0xVREVEL0VYQ0xVREVEIENhdGVnb3Jp ZXMgKysiOw0KCQlkbXAoJGNhdGluYyk7DQoJCWRtcCgkY2F0ZXhjKTsNCgkJZWNobyAiKysg SU5DTFVERUQvRVhDTFVERUQgTWF0Y2hlcyArKyI7DQoJCWRtcCgkbWF0Y2hBcnJheSk7DQoJ CWRtcCgkYXZvaWRBcnJheSk7DQoJCWRtcCgkY2xhdXNlQU5EKTsNCgl9DQoNCglpZiAoJGRl YnVnID4gMCkgew0KCQllY2hvICIrKyBXSEVSRSBDTEFVU0VTICsrIjsNCgkJZG1wKCRjbGF1 c2VDYXQpOw0KCQlkbXAoJGNsYXVzZSk7DQoJfQ0KDQoJLy8gUHVsbCBvdXQgdGhlIHJlcXVl c3RlZCBvYmplY3RzLCBob25vdXJpbmcgdGhlIGFsd2F5c19kaXNwbGF5IGxldmVsIGlmIG5v dGhpbmcncyByZXR1cm5lZA0KCSRycyA9IHNhZmVfcm93cygkZmllbGRzLCAkZGJUYWJsZSwg JGNsYXVzZSk7DQoJaWYgKCEkcnMpIHsNCgkJaWYgKCRhbHdheXNfZGlzcGxheSA+IDApIHsN CgkJCSRycyA9IHNhZmVfcm93cygkZmllbGRzLCAkZGJUYWJsZSwgJGNsYXVzZUNhdCAuICRj bGF1c2VTb3J0KTsNCgkJCWlmICghJHJzKSB7DQoJCQkJaWYgKCRhbHdheXNfZGlzcGxheSA+ IDEpIHsNCgkJCQkJJHJzID0gc2FmZV9yb3dzKCRmaWVsZHMsICRkYlRhYmxlLCAiMT0xIi4k Y2xhdXNlU29ydCk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KDQoJaWYgKCRkZWJ1ZyA+IDIp IHsNCgkJZWNobyAiKysgUkVDT1JEIFNFVCArKyI7DQoJCWRtcCgkcnMpOw0KCX0NCg0KCS8v IERpc3BsYXkgdGhlbQ0KCSRvdXRTdHIgPSAnJzsNCglpZigkcnMpIHsNCgkJZm9yZWFjaCgk cnMgYXMgJHJvdykgew0KCQkJJG9iak91dCA9ICcnOw0KCQkJJGxpbmt1cmwgPSAnJzsNCgkJ CSRsaW5rTmFtZSA9ICcnOw0KCQkJJHNldE1pbWVUeXBlID0gJyc7DQoJCQkkdHJpbU9wdHMg PSAiIFx4MjJcdFxuXHJcMFx4MEIiOw0KCQkJJG9ialBhcmFtcyA9IGFycmF5KCk7DQoJCQkk dGhlUGFyYW1zID0gYXJyYXkoKTsNCgkJCSRmbGFzaFZhcnMgPSBhcnJheSgpOw0KCQkJJHRl bXBsYXRlT3B0aW9ucyA9IGFycmF5KCk7DQoNCgkJCS8vIEV4dHJhY3QgcGFyYW1ldGVycw0K CQkJc3dpdGNoICgkbW9kZSkgew0KCQkJCWNhc2UgImltYWdlIjoNCgkJCQkJJGxpbmtOYW1l ID0gKCRsaW5rX2luKSA/IHRyaW0oJHJvd1skbGlua19pbl0pIDogJyc7DQoJCQkJCWJyZWFr Ow0KCQkJCWNhc2UgImZpbGUiOg0KCQkJCQkkdGhlRGVzYyA9IGRvX2xpc3QoJGdsb2JhbF9w YXJhbXMuJHJvd1skbGlua19pbl0sICI7Iik7DQoNCgkJCQkJaWYgKCRkZWJ1ZyA+IDIpIHsN CgkJCQkJCWVjaG8gIisrIERFU0NSSVBUSU9OIEZJRUxEIENPTlRFTlRTICsrIjsNCgkJCQkJ CWRtcCgkdGhlRGVzYyk7DQoJCQkJCX0NCg0KCQkJCQlmb3JlYWNoICgkdGhlRGVzYyBhcyAk cGFyYW1zKSB7DQoJCQkJCQkkcGFyYW1zID0gdHJpbSgkcGFyYW1zKTsNCgkJCQkJCWlmICgk cGFyYW1zICE9ICIiKSB7DQoJCQkJCQkJJHRoZXNlUGFyYW1zID0gZG9fbGlzdCgkcGFyYW1z LCAkbnZfZGVsaW0pOw0KCQkJCQkJCSRwYXJhbU5hbWUgPSBzdHJ0b2xvd2VyKCR0aGVzZVBh cmFtc1swXSk7DQoJCQkJCQkJJHBhcmFtVmFsID0gdHJpbSgkdGhlc2VQYXJhbXNbMV0sJHRy aW1PcHRzKTsNCgkJCQkJCQlpZiAoJHBhcmFtTmFtZSA9PSAibGlua191cmwiICYmICRsaW5r X2luKSB7DQoJCQkJCQkJCSRsaW5rTmFtZSA9ICRwYXJhbVZhbDsNCgkJCQkJCQl9IGVsc2Ug aWYgKCRwYXJhbU5hbWUgPT0gIm1pbWVfdHlwZSIpIHsNCgkJCQkJCQkJJHNldE1pbWVUeXBl ID0gJHBhcmFtVmFsOw0KCQkJCQkJCX0gZWxzZSBpZiAoJHBhcmFtTmFtZSA9PSAiZmxhc2h2 YXJzIikgew0KCQkJCQkJCQkkdGhlUGFyYW1zWyRwYXJhbU5hbWVdID0gJHBhcmFtVmFsOw0K CQkJCQkJCQkkdmFyc3RyID0gZG9fbGlzdCgkcGFyYW1WYWwsICImIik7DQoJCQkJCQkJCWZv cmVhY2ggKCR2YXJzdHIgYXMgJHZhcikgew0KCQkJCQkJCQkJJG52UGFpciA9IGRvX2xpc3Qo JHZhciwgIj0iKTsNCgkJCQkJCQkJCSRmbGFzaFZhcnNbJG52UGFpclswXV0gPSAkbnZQYWly WzFdOw0KCQkJCQkJCQl9DQoJCQkJCQkJfSBlbHNlIGlmIChpbl9hcnJheSgkcGFyYW1OYW1l LCRodG1sT2JqRml4ZWQpKSB7DQoJCQkJCQkJCSRvYmpQYXJhbXNbU01EX0RMTV9UUi4kcGFy YW1OYW1lXSA9ICRwYXJhbVZhbDsNCgkJCQkJCQl9IGVsc2UgaWYgKGluX2FycmF5KCRwYXJh bU5hbWUsJGh0bWxPYmpQYXJhbSkpIHsNCgkJCQkJCQkJJG9ialBhcmFtc1tTTURfRExNX1RS LiRwYXJhbU5hbWVdID0gJHBhcmFtVmFsOw0KCQkJCQkJCQkkdGVtcGxhdGVPcHRpb25zWyRw YXJhbU5hbWVdID0gJHBhcmFtTmFtZS4gJz0iJyAuU01EX0RMTV9UUi4kcGFyYW1OYW1lLiAn Iic7DQoJCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkJJHRoZVBhcmFtc1skcGFyYW1OYW1lXSA9 ICRwYXJhbVZhbDsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJYnJlYWs7DQoJ CQl9DQoNCgkJCS8vIEhhbmRsZSBsaW5rcw0KCQkJJHVybHBmeCA9ICJodHRwOi8vIjsNCgkJ CWlmIChzdHJsZW4oJGxpbmtOYW1lKSA+IDApIHsNCgkJCQlpZiAoc3RybmNtcCgkbGlua05h bWUsICR1cmxwZngsIHN0cmxlbigkdXJscGZ4KSkgPT0gMCkgew0KCQkJCQkkbGlua3VybCA9 ICRsaW5rTmFtZTsNCgkJCQl9IGVsc2UgaWYgKHN1YnN0cigkbGlua05hbWUsIDAsIDEpID09 ICcvJyAmJiAkbGlua19wcmVmaXggPT0gJycpIHsNCgkJCQkJJGxpbmt1cmwgPSBzaXRlX3Vy bChhcnJheSgpKSAuIHN1YnN0cigkbGlua05hbWUsMSk7DQoJCQkJfSBlbHNlIGlmIChzdWJz dHIoJGxpbmtfcHJlZml4LDAsMSkgPT0gJy8nKSB7DQoJCQkJCSRsaW5rdXJsID0gc2l0ZV91 cmwoYXJyYXkoKSkgLiBzdWJzdHIoJGxpbmtfcHJlZml4LDEpIC4gJGxpbmtOYW1lOw0KCQkJ CX0gZWxzZSB7DQoJCQkJCSRsaW5rdXJsID0gJGxpbmtfcHJlZml4IC4gJGxpbmtOYW1lOw0K CQkJCX0NCgkJCX0NCg0KCQkJaWYgKCRkZWJ1ZyA+IDApIHsNCgkJCQllY2hvICIrKyBERVNU SU5BVElPTiBMSU5LICsrIjsNCgkJCQlkbXAoJGxpbmt1cmwpOw0KCQkJfQ0KDQoJCQkvLyBU aHJvdyBvYmplY3Qgb3V0IHRvIHRoZSBwYWdlDQoJCQlpZiAoJHJhd191cmwpIHsNCgkJCQlz d2l0Y2ggKCRtb2RlKSB7DQoJCQkJCWNhc2UgImltYWdlIjoNCgkJCQkJCSRvdXRTdHIgPSBo dS4kaW1nX2RpciAuIERTIC4kcm93WydpZCddIC4gKCgkdGh1bWIpID8gJ3QnIDogJycpIC4g JHJvd1snZXh0J107DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAiZmlsZSI6DQoJCQkJCQkk b3V0U3RyID0gKCRjb3VudF9kb3dubG9hZHMpID8gaHUuZ1R4dCgnZmlsZV9kb3dubG9hZCcp LiBEUyAuJHJvd1snaWQnXSA6IGh1LiRmaWxlc19kaXIuIERTIC4kcm93WydmaWxlbmFtZSdd Ow0KCQkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQlzd2l0Y2goJG1vZGUp IHsNCgkJCQkJY2FzZSAiaW1hZ2UiOg0KCQkJCQkJJGltZ09wdGlvbnMgPSBhcnJheSgiaWQi ID0+ICRyb3dbJ2lkJ10pOw0KCQkJCQkJaWYgKCRjbGFzcyAhPSAnJykgew0KCQkJCQkJCSRp bWdPcHRpb25zWyJjbGFzcyJdID0gJGNsYXNzOw0KCQkJCQkJfQ0KCQkJCQkJJG9iak91dCA9 ICgoJHRodW1iKSA/IHRodW1ibmFpbCgkaW1nT3B0aW9ucykgOiBpbWFnZSgkaW1nT3B0aW9u cykpOw0KDQoJCQkJCQkvLyBTaW5jZSB0aGUgYWx0L2NhcHRpb24gbWF5IGhhdmUgYmVlbiBo aWphY2tlZCBmb3IgbGlua19pbiwgdXNlIHRoZSBvdGhlciB2YWx1ZSBpZiBpbnN0cnVjdGVk DQoJCQkJCQlpZiAoISRkaXNwbGF5X3VybCkgew0KCQkJCQkJCXN3aXRjaCAoJGxpbmtfaW4p IHsNCgkJCQkJCQkJY2FzZSAiYWx0IjoNCgkJCQkJCQkJCSRvYmpPdXQgPSBzdHJfcmVwbGFj ZSgnYWx0PSInLiRyb3dbJ2FsdCddLiciJywgJ2FsdD0iJy4kcm93WydjYXB0aW9uJ10uJyIn LCAkb2JqT3V0KTsNCgkJCQkJCQkJCWJyZWFrOw0KCQkJCQkJCQljYXNlICJjYXB0aW9uIjoN CgkJCQkJCQkJCSRvYmpPdXQgPSBzdHJfcmVwbGFjZSgndGl0bGU9IicuJHJvd1snY2FwdGlv biddLiciJywgJ3RpdGxlPSInLiRyb3dbJ2FsdCddLiciJywgJG9iak91dCk7DQoJCQkJCQkJ CQlicmVhazsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAi ZmlsZSI6DQoJCQkJCQkkdGVtcGxhdGVTdGFydCA9ICcnOw0KCQkJCQkJJHRlbXBsYXRlRW5k ID0gJyc7DQoJCQkJCQkkZmlsZVBhdGggPSBidWlsZF9maWxlX3BhdGgoJGZpbGVfYmFzZV9w YXRoLCAkcm93WydmaWxlbmFtZSddKTsNCgkJCQkJCSRmaWxlREwgPSAoJGNvdW50X2Rvd25s b2FkcykgPyBodS5nVHh0KCdmaWxlX2Rvd25sb2FkJykgLkRTLiAkcm93WydpZCddIDogaHUu JGZpbGVzX2RpciAuRFMuICRyb3dbJ2ZpbGVuYW1lJ107DQoJCQkJCQlpZiAoZmlsZV9leGlz dHMoJGZpbGVQYXRoKSkgew0KCQkJCQkJCS8vIEdldCB0aGUgZmlsZSBleHRlbnNpb24gYW5k IGxvb2sgaXQgdXAgaW4gdGhlIHRhYmxlDQoJCQkJCQkJJHBhdGhCaXQgPSBwYXRoaW5mbygk ZmlsZVBhdGgpOw0KCQkJCQkJCSRwYXRoRXh0ID0gKCRzZXRNaW1lVHlwZSkgPyAkc2V0TWlt ZVR5cGUgOiAkcGF0aEJpdFsnZXh0ZW5zaW9uJ107DQoJCQkJCQkJZm9yZWFjaCAoJG9iak1p bWVUeXBlIGFzICRleHRzID0+ICR0eXBlcyApIHsNCgkJCQkJCQkJJGV4dExpc3QgPSBleHBs b2RlKFNNRF9ETE1fUkVDLCRleHRzKTsNCgkJCQkJCQkJLy8gU2V0IHNvbWUgc2Vuc2libGUg ZGVmYXVsdHMgaWYgdGhlIG1hbmRhdG9yeSBvcHRpb25zIGFyZSBub3Qgc3VwcGxpZWQNCgkJ CQkJCQkJaWYgKGluX2FycmF5KCRwYXRoRXh0LCAkZXh0TGlzdCkpIHsNCgkJCQkJCQkJCWlm ICghYXJyYXlfa2V5X2V4aXN0cyhTTURfRExNX1RSLiJ0eXBlIiwgJG9ialBhcmFtcykpIHsN CgkJCQkJCQkJCQkkb2JqUGFyYW1zW1NNRF9ETE1fVFIuInR5cGUiXSA9ICR0eXBlc1swXTsN CgkJCQkJCQkJCX0NCgkJCQkJCQkJCWlmICghYXJyYXlfa2V5X2V4aXN0cyhTTURfRExNX1RS LiJkYXRhIiwgJG9ialBhcmFtcykpIHsNCgkJCQkJCQkJCQkkb2JqUGFyYW1zW1NNRF9ETE1f VFIuImRhdGEiXSA9ICRmaWxlREw7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQlpZiAoIWFycmF5 X2tleV9leGlzdHMoU01EX0RMTV9UUi4iaWQiLCAkb2JqUGFyYW1zKSkgew0KCQkJCQkJCQkJ CSRvYmpQYXJhbXNbU01EX0RMTV9UUi4iaWQiXSA9ICJpZCIubXRfcmFuZCgpOw0KCQkJCQkJ CQkJfQ0KCQkJCQkJCQkJaWYgKCFhcnJheV9rZXlfZXhpc3RzKFNNRF9ETE1fVFIuIndpZHRo IiwgJG9ialBhcmFtcykpIHsNCgkJCQkJCQkJCQkkb2JqUGFyYW1zW1NNRF9ETE1fVFIuIndp ZHRoIl0gPSAkc21kX3JiYW5MYW5nLT5nVHh0KCd3aWR0aCcpOw0KCQkJCQkJCQkJfQ0KCQkJ CQkJCQkJaWYgKCFhcnJheV9rZXlfZXhpc3RzKFNNRF9ETE1fVFIuImhlaWdodCIsICRvYmpQ YXJhbXMpKSB7DQoJCQkJCQkJCQkJJG9ialBhcmFtc1tTTURfRExNX1RSLiJoZWlnaHQiXSA9 ICRzbWRfcmJhbkxhbmctPmdUeHQoJ2hlaWdodCcpOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJ aWYgKCFhcnJheV9rZXlfZXhpc3RzKFNNRF9ETE1fVFIuInBsYXllcnZlcnNpb24iLCAkb2Jq UGFyYW1zKSkgew0KCQkJCQkJCQkJCSRvYmpQYXJhbXNbU01EX0RMTV9UUi4icGxheWVydmVy c2lvbiJdID0gIjgiOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJaWYgKCFhcnJheV9rZXlfZXhp c3RzKFNNRF9ETE1fVFIuImJhY2tjb2xvciIsICRvYmpQYXJhbXMpKSB7DQoJCQkJCQkJCQkJ JG9ialBhcmFtc1tTTURfRExNX1RSLiJiYWNrY29sb3IiXSA9ICcjZmZmZmZmJzsNCgkJCQkJ CQkJCX0NCgkJCQkJCQkJCWlmICghYXJyYXlfa2V5X2V4aXN0cyhTTURfRExNX1RSLiJlbGVt ZW50aWQiLCAkb2JqUGFyYW1zKSkgew0KCQkJCQkJCQkJCSRvYmpQYXJhbXNbU01EX0RMTV9U Ui4iZWxlbWVudGlkIl0gPSAiZmxhc2hjb250ZW50XyIubXRfcmFuZCgpOw0KCQkJCQkJCQkJ fQ0KCQkJCQkJCQkJaWYgKCFhcnJheV9rZXlfZXhpc3RzKFNNRF9ETE1fVFIuInVpZCIsICRv YmpQYXJhbXMpKSB7DQoJCQkJCQkJCQkJJG9ialBhcmFtc1tTTURfRExNX1RSLiJ1aWQiXSA9 ICJzbWRfIi5tdF9yYW5kKCk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQkkdWlkID0gJG9ialBh cmFtc1tTTURfRExNX1RSLiJ1aWQiXTsNCgkJCQkJCQkJCWlmICgkY2xhc3MgIT0gJycgJiYg IWFycmF5X2tleV9leGlzdHMoU01EX0RMTV9UUi4iY2xhc3MiLCAkb2JqUGFyYW1zKSkgew0K CQkJCQkJCQkJCSRvYmpQYXJhbXNbU01EX0RMTV9UUi4iY2xhc3MiXSA9ICRjbGFzczsNCgkJ CQkJCQkJCQkkdGVtcGxhdGVPcHRpb25zW10gPSAnY2xhc3M9IicgLlNNRF9ETE1fVFIuICdj bGFzcyInOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJJHRlbXBsYXRlU3RhcnQgPSAkb2JqVGVt cGxhdGVbJHR5cGVzWzFdXVswXTsNCgkJCQkJCQkJCSR0ZW1wbGF0ZUVuZCA9ICRvYmpUZW1w bGF0ZVskdHlwZXNbMV1dWzFdOw0KCQkJCQkJCQkJJHRlbXBsYXRlU3RhcnQgPSBzdHJfcmVw bGFjZShTTURfRExNX1RSLiJvdGhlcnMiLCBpbXBsb2RlKCIgIiwgJHRlbXBsYXRlT3B0aW9u cyksICR0ZW1wbGF0ZVN0YXJ0KTsNCgkJCQkJCQkJCSR0ZW1wbGF0ZUVuZCA9IHN0cl9yZXBs YWNlKFNNRF9ETE1fVFIuIm90aGVycyIsIGltcGxvZGUoIiAiLCAkdGVtcGxhdGVPcHRpb25z KSwgJHRlbXBsYXRlRW5kKTsNCgkJCQkJCQkJfQ0KCQkJCQkJCX0NCgkJCQkJCQkkb2JqT3V0 IC49IHN0cnRyKCR0ZW1wbGF0ZVN0YXJ0LCAkb2JqUGFyYW1zKTsNCg0KCQkJCQkJCWlmICgk ZGVidWcgPiAxKSB7DQoJCQkJCQkJCWVjaG8gIisrIE1JTUUgSU5GTyArKyI7DQoJCQkJCQkJ CWRtcCgkcGF0aEV4dCk7DQoJCQkJCQkJCWVjaG8gIisrIE9CSkVDVCBJTkZPICsrIjsNCgkJ CQkJCQkJZG1wKCRvYmpQYXJhbXMpOw0KCQkJCQkJCQlkbXAoJHRoZVBhcmFtcyk7DQoJCQkJ CQkJCWRtcCgkZmxhc2hWYXJzKTsNCgkJCQkJCQl9DQoNCgkJCQkJCQlpZiAoJHNldE1pbWVU eXBlID09ICJzd28iKSB7DQoJCQkJCQkJCWZvcmVhY2ggKCR0aGVQYXJhbXMgYXMgJGtleSA9 PiAkdmFsdWUpIHsNCgkJCQkJCQkJCWlmICgka2V5ICE9ICJmbGFzaHZhcnMiKSB7DQoJCQkJ CQkJCQkJJG9iak91dCAuPSAkdWlkLicuYWRkUGFyYW0oIicuJGtleS4nIiwgIicuJHZhbHVl LiciKTsnLm47DQoJCQkJCQkJCQl9DQoJCQkJCQkJCX0NCgkJCQkJCQkJZm9yZWFjaCAoJGZs YXNoVmFycyBhcyAkbmFtZSA9PiAkdmFsKSB7DQoJCQkJCQkJCQkkb2JqT3V0IC49ICR1aWQu Jy5hZGRWYXJpYWJsZSgiJy4kbmFtZS4nIiwgIicuJHZhbC4nIik7Jy5uOw0KCQkJCQkJCQl9 DQoJCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkJZm9yZWFjaCAoJHRoZVBhcmFtcyBhcyAka2V5 ID0+ICR2YWx1ZSkgew0KCQkJCQkJCQkJJG9iak91dCAuPSAnPHBhcmFtIG5hbWU9IicuJGtl eS4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgLz4nOw0KCQkJCQkJCQl9DQoJCQkJCQkJfQ0KCQkJ CQkJCSRvYmpPdXQgLj0gKCgkc2V0TWltZVR5cGU9PSJzd28iKSA/ICcnIDogJG5vX3BsdWdf dGV4dCkgLiBzdHJ0cigkdGVtcGxhdGVFbmQsICRvYmpQYXJhbXMpLm47DQoJCQkJCQl9DQoJ CQkJCQlicmVhazsNCgkJCQl9DQoNCgkJCQkvLyBTdXJyb3VuZCB3aXRoIGxpbmsgLyByZWZl cmVyIGlmIG5lY2Vzc2FyeQ0KCQkJCWlmICgoJGxpbmtfaW4gIT0gIiIpICYmIChzdHJsZW4o JGxpbmt1cmwpID4gMCkpIHsNCgkJCQkJaWYgKCRyZWZlcmVyICE9ICIiKSB7DQoJCQkJCQkk cmVmZXJ0eHQgPSBzbWRfYWRkUVNWYXIoJGxpbmt1cmwsICRyZWZlcmVyLCAkcm93WydpZCdd KTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCSRyZWZlcnR4dCA9ICRsaW5rdXJsOw0KCQkJCQl9 DQoJCQkJCSRvdXRTdHIgLj0gJzxhIGhyZWY9IicgLiRyZWZlcnR4dC4gJyInIC4kdGFyZ2V0 LiAnPicgLiAkb2JqT3V0LiAnPC9hPic7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJG91dFN0ciAu PSAkb2JqT3V0Ow0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCg0KCXJldHVybiAkb3V0U3RyOw0K fSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToiNSI7czo0OiJoZWxwIjtz OjQ5NTc4OiIJPHA+PGRpdiBpZD0ic21kX2hlbHAiPjwvcD4KCgk8aDEgaWQ9InRvcCI+c21k X3JhbmRvbV9iYW5uZXI8L2gxPgoKCTxoMiBpZD0iY29udGVudHMiPkNvbnRlbnRzPC9oMj4K Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNmZWF0dXJlcyI+RmVhdHVyZXM8L2E+PC9saT4KCQk8 bGk+PGEgaHJlZj0iI2F1dGhvciI+QXV0aG9yPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNp bnN0YWxsIj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxhdGlvbjwvYT48L2xpPgoJCTxsaT48 YSBocmVmPSIjdXNhZ2UiPlRhZyB1c2FnZTwvYT4KCTx1bD4KCQk8bGk+PGEgaHJlZj0iI2lt Z21vZGUiPkltYWdlIG1vZGU8L2E+Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNpbWdhdHRzIj5B dHRyaWJ1dGVzPC9hPjwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNmaWxlbW9k ZSI+RmlsZSBtb2RlPC9hPgoJPHVsPgoJCTxsaT48YSBocmVmPSIjbWltZXR5cGVzIj5NaW1l IHR5cGVzPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNmaWxlYXR0cyI+QXR0cmlidXRlczwv YT48L2xpPgoJPC91bD48L2xpPgoJCTxsaT48YSBocmVmPSIjZmllbGRzIj5BcnRpY2xlIGZp ZWxkIGNvZGVzPC9hPjwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNleGFtcGxl cyI+RXhhbXBsZXM8L2E+Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNpbWVnIj5JbWFnZSBtb2Rl PC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNmbWVnIj5GaWxlIG1vZGU8L2E+PC9saT4KCTwv dWw+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2NoYW5nZWxvZyI+Q2hhbmdlbG9nPC9hPjwvbGk+ CgkJPGxpPjxhIGhyZWY9IiNjcmVkaXRzIj5DcmVkaXRzPC9hPjwvbGk+Cgk8L3VsPgoKCTxo MiBpZD0iZmVhdHVyZXMiPkZlYXR1cmVzPC9oMj4KCgk8dWw+CgkJPGxpPlJhbmRvbWx5IGRp c3BsYXkgb25lIG9yIG1vcmUgYmFubmVycyBvbiBhIHBhZ2UgZm9yIGNvc21ldGljIG9yIGFk dmVydGlzaW5nIHB1cnBvc2VzPC9saT4KCQk8bGk+UmVkdWNlIHRoZSBwb29sIG9mIHBvdGVu dGlhbCBiYW5uZXJzIGJhc2VkIG9uIGNhdGVnb3J5L2lkIG9yIHNvbWUgdGV4dCB0aGF0IG1h dGNoZXMgc29tZXRoaW5nIGluIHRoZSBjdXJyZW50IGFydGljbGU8L2xpPgoJCTxsaT5TdWJj YXRlZ29yeSBzdXBwb3J0PC9saT4KCQk8bGk+QmFubmVycyBjYW4gYmUgaW1hZ2VzIG9yIGZp bGVzIHRvIGRpc3BsYXkgc3RhdGljIG9yIG1vdmluZyBjb250ZW50IChpbmNsdWRlcyA8YSBo cmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3Avc3dmb2JqZWN0LyI+c3dmb2JqZWN0PC9h PiBzdXBwb3J0KTwvbGk+CgkJPGxpPk9wdGlvbmFsbHkgbGluayBiYW5uZXJzIHRvIDxzcGFu IGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+cyBhbmQgKGtpbmQgb2YpIHRyYWNrIHdoaWNoIGJh bm5lcnMgcmVjZWl2ZWQgbW9zdCBjbGlja3MgdmlhIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8 L3NwYW4+JiM4MjE3O3MgbG9nczwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iYXV0aG9yIj5BdXRo b3I8L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9jb21tZW50Rm9y bSI+U3RlZiBEYXdzb248L2E+LiBGb3Igb3RoZXIgc29mdHdhcmUgYnkgbWUsIG9yIHRvIG1h a2UgYSBkb25hdGlvbiwgc2VlIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20v c3ciPnNvZnR3YXJlIHBhZ2U8L2E+LjwvcD4KCgk8aDIgaWQ9Imluc3RhbGwiPkluc3RhbGxh dGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cCBjbGFzcz0icmVxdWlyZWQiPlJlcXVp cmVzIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX2xpYl92 MC4zMi50eHQiPnNtZF9saWIgdjAuMzI8L2E+IHRvIGJlIGluc3RhbGxlZCBhbmQgYWN0aXZh dGVkLjwvcD4KCgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20gZWl0aGVyIDxhIGhyZWY9 Imh0dHA6Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy82MTEvc21kX3JhbmRvbV9iYW5uZXIi PnRleHRwYXR0ZXJuLm9yZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nv bi5jb20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRoZSA8 c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhbmUs IGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0 cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTE2NDQ4Ij5mb3J1 bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNz IG9yIG90aGVyd2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5UbyByZW1vdmUgdGhlIHBs dWdpbiwgc2ltcGx5IGRlbGV0ZSBpdCBmcm9tIHRoZSBBZG1pbi0mZ3Q7UGx1Z2lucyB0YWIu IElmIHlvdSBhcmUgbm8gbG9uZ2VyIHVzaW5nIHNtZF9saWIgd2l0aCBhbnkgb3RoZXIgcGx1 Z2lucywgdGhpcyBjYW4gYWxzbyBiZSByZW1vdmVkLjwvcD4KCgk8aDIgaWQ9InVzYWdlIj5V c2FnZTwvaDI+CgoJPHA+SWYgeW91IHdhbnQgdG8gZWl0aGVyIGRpc3BsYXkgJiM4MjE2O2lu dGVsbGlnZW50JiM4MjE3OyBiYW5uZXJzIG9uIHlvdXIgcGFnZSB0aGF0IHNvbWVob3cgcmVs YXRlIHRvIHRoZSBjdXJyZW50bHktdmlld2VkIGNvbnRlbnQ7IG9yIHBlcmhhcHMgZGlzcGxh eSBzb21lIGJhbm5lcnMgdGhhdCBhZHZlcnRpc2UgPGVtPm90aGVyPC9lbT4gcGFydHMgb2Yg eW91ciBzaXRlIChlLmcuICYjODIyMDtXaGlsZSB5b3UgYXJlIGhlcmUsIGhvdyBhYm91dCYj ODIzMDsmIzgyMjE7KSB0aGVuIHRoaXMgcGx1Z2luIHdpbGwgaGVscCB5b3UgYWNoaWV2ZSB0 aGF0LiBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIHNpbXBseSBzcHJ1Y2UgdXAgYSBwYWdlIGFu ZCBzaG93IGEgcmFuZG9tIGltYWdlIG9yIHR3byBlYWNoIHRpbWUuPC9wPgoKCTxwPlRoZSBw bHVnaW4gY2FuIGZ1bmN0aW9uIGluIHR3byBkaXN0aW5jdCBtb2RlczsgPGEgaHJlZj0iI2lt Z21vZGUiPmltYWdlPC9hPiBvciA8YSBocmVmPSIjZmlsZW1vZGUiPmZpbGU8L2E+LjwvcD4K Cgk8aDIgaWQ9ImltZ21vZGUiPkltYWdlIG1vZGU8L2gyPgoKCTxwPkluIGl0cyBiYXNlIGZv cm0sIHRoaXMgbW9kZSBmdW5jdGlvbnMgZXhhY3RseSBhcyBkcnVfcmFuZG9tX2ltYWdlLCBp LmUuIGl0IHBpY2tzIG9uZSByYW5kb20gaW1hZ2UgZnJvbSB0aGUgZW50aXJlIGRhdGFiYXNl IG9mIGltYWdlcyBhbmQgZGlzcGxheXMgaXQuIEJ1dCBpdCBjYW4gZG8gYSB3aG9sZSBsb3Qg bW9yZS4gRWFjaCBvcHRpb24gd2hpdHRsZXMgdGhlIGltYWdlcyBkb3duIGZ1cnRoZXIsIGJh c2VkIG9uIHZhcmlvdXMgY3JpdGVyaWEsIHVudGlsIHlvdSBhcmUgbGVmdCB3aXRoIGEgcG90 ZW50aWFsIHBvb2wgb2YgaW1hZ2VzLCBmcm9tIHdoaWNoIHRoZSBwbHVnaW4gdGhlbiByYW5k b21seSBjaG9vc2VzIG9uZSBvciBtb3JlIHBpY3R1cmVzLjwvcD4KCgk8aDIgaWQ9ImltZ2F0 dHMiPkltYWdlIG1vZGUgYXR0cmlidXRlczwvaDI+Cgo8cD5Td2l0Y2hlcyB0aGUgcGx1Z2lu IGJldHdlZW4gdGhpcyBkZWZhdWx0IDxhIGhyZWY9IiNpbWdtb2RlIj5pbWFnZSBtb2RlPC9h PiAocHVsbGluZyBwaWN0dXJlcyBmcm9tIHRoZSBpbWFnZSBkYXRhYmFzZSkgb3IgPGEgaHJl Zj0iI2ZpbGVtb2RlIj5maWxlIG1vZGU8L2E+IChmcm9tIHVwbG9hZGVkIGZpbGVzKS48L3A+ CgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5tb2Rl PC9zcGFuPiA6IHN3aXRjaGVzIHRoZSBwbHVnaW4gYmV0d2VlbiB0aGlzIGRlZmF1bHQgPGNv ZGU+bW9kZT0mcXVvdDtpbWFnZSZxdW90OzwvY29kZT4gZm9yIHB1bGxpbmcgYmFubmVycyBm cm9tIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+JiM4MjE3O3MgSW1hZ2VzIHBhZ2Us IG9yIDxjb2RlPm1vZGU9JnF1b3Q7ZmlsZSZxdW90OzwvY29kZT4gdG8gY2hvb3NlIGJhbm5l cnMgZnJvbSBmaWxlcyB1cGxvYWRlZCB0byA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFu PiBGaWxlcyBwYWdlLjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+Y2F0ZWdv cnk8L3NwYW4+IDogYSBsaXN0IG9mIGltYWdlIGNhdGVnb3JpZXMuIEJ5IGRlZmF1bHQgdGhl IGxpc3Qgc2hvdWxkIGJlIGNvbW1hLXNlcGFyYXRlZCBidXQgdGhpcyBjYW4gYmUgY2hhbmdl ZCB3aXRoIHRoZSA8Y29kZT5kZWxpbTwvY29kZT4gb3B0aW9uLiBUaGlzIGF0dHJpYnV0ZSBt YXkgdGFrZSBhbnkgb2YgdGhlIHNwZWNpYWwgPGEgaHJlZj0iI2ZpZWxkcyI+ZmllbGQgY29k ZXM8L2E+IGJ5IGdpdmluZyBpdHMgbmFtZSBhZnRlciBhIDxjb2RlPj88L2NvZGU+ICh0byBp bmNsdWRlIHRoYXQgZmllbGQpIG9yIDxjb2RlPiE8L2NvZGU+ICh0byBleGNsdWRlIHRoYXQg ZmllbGQpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5pZDwvc3Bhbj4gOiBh IGxpc3Qgb2YgaW1hZ2UgSURzLiBUYWtlcyBleGFjdGx5IHRoZSBzYW1lIHN5bnRheCBhcyB0 aGUgPGNvZGU+Y2F0ZWdvcnk8L2NvZGU+IGF0dHJpYnV0ZS4gQ2FuIGJlIHVzZWQgaW4gY29t YmluYXRpb24gd2l0aCBjYXRlZ29yeSB0byBwcm9kdWNlIGEgZnVsbCBzZXQgb2YgaW1hZ2Vz IHRvIGNob29zZSBmcm9tLiBZb3UgbWF5IGFsc28gc3BlY2lmeSByYW5nZXMgb2YgaW1hZ2Ug SURzLCBlLmcuIDxjb2RlPmlkPSZxdW90OzEwLTE1LCA0MiZxdW90OzwvY29kZT4gd291bGQg bWFrZSBpbWFnZXMgd2l0aCBJRHMgMTAgdGhyb3VnaCAxNSBhbmQgSUQgNDIgYXZhaWxhYmxl PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5zdWJjYXRzPC9zcGFuPiA6IGhv dyBmYXIgJiM4MjE2O2Rvd24mIzgyMTc7IHRvIHRyYXZlcnNlIGltYWdlIHN1Yi1jYXRlZ29y aWVzLiBUYWtlcyBhbiBpbnRlZ2VyIHZhbHVlIG9yICYjODIxNjthbGwmIzgyMTc7LiAwICh0 aGUgZGVmYXVsdCkgbWVhbnMgbm8gY2hpbGQgY2F0ZWdvcmllczsgMSB1c2VzIHRoZSBtYWlu IGNhdGVnb3JpZXMgYW5kIHRoZSBmaXJzdCBsZXZlbCBvZiBjaGlsZHJlbjsgMiB1c2VzIHRo ZSBtYWluIGNhdGVnb3JpZXMgYW5kIHVwIHRvIHR3byBjaGlsZCBzdWItY2F0ZWdvcmllczsg YW5kIHNvIG9uPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5tYXRjaF90ZXh0 PC9zcGFuPiA6IGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGV4dCBzdHJpbmdzIHRvIGxv b2sgZm9yIGluIHRoZSBpbWFnZSBkZXRhaWxzLiBBcyB3aXRoIHRoZSA8Y29kZT5jYXRlZ29y eTwvY29kZT4gYW5kIDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGVzLCB5b3UgY2FuIHNwZWNp ZnkgPGEgaHJlZj0iI2ZpZWxkcyI+ZmllbGQgY29kZXM8L2E+IHRvIG1hdGNoIGFnYWluc3Qg c29tZXRoaW5nIGluIHRoZSBjdXJyZW50IGFydGljbGU8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXR0LW5hbWUiPmF2b2lkX3RleHQ8L3NwYW4+IDogdGhlIG9wcG9zaXRlIG9mIG1hdGNo X3RleHQ7IGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGV4dCBzdHJpbmdzIHRoYXQgbXVz dCA8c3Ryb25nPm5vdDwvc3Ryb25nPiBhcHBlYXIgaW4gdGhlIGltYWdlIGRldGFpbHMuIFlv dSBjYW4gYWxzbyBzcGVjaWZ5IDxhIGhyZWY9IiNmaWVsZHMiPmZpZWxkIGNvZGVzPC9hPiB0 byBtYXRjaCBhZ2FpbnN0IHNvbWV0aGluZyBpbiB0aGUgY3VycmVudCBhcnRpY2xlLiBOb3Rl IHRoYXQgYW55IGltYWdlcyBtYXRjaGluZyBzdHVmZiBpbiB0aGUgJiM4MjE2O3Bvc2l0aXZl JiM4MjE3OyA8Y29kZT5tYXRjaF90ZXh0PC9jb2RlPiBsaXN0IHdpbGwgYmUgY2hvc2VuIGZp cnN0LCBiZWZvcmUgc29tZSBvZiB0aGVtIGFyZSB0aGVuIGV4Y2x1ZGVkIGZyb20gdGhlIGxp c3QgaW4gPGNvZGU+YXZvaWRfdGV4dDwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXR0LW5hbWUiPmNvbXBhcmVfdG88L3NwYW4+IDogYWxsIHRoaXMgdGFsayBvZiBjb21wYXJp bmcgd29yZHMgdG8gaW1hZ2VzIGlzIGZpbmUsIGJ1dCB3aGF0IGV4YWN0bHkgaXMgaXQgY29t cGFyaW5nIHRvPyBUaGlzIGlzIHdoZXJlIHlvdSBkZWNsYXJlIHdoZXJlIHRoZSBwbHVnaW4g bG9va3MuIEJ5IGRlZmF1bHQgaXQgdXNlcyBqdXN0IHRoZSBpbWFnZSBmaWxlIG5hbWUsIGJ1 dCBpdCBjYW4gYmUgZXh0ZW5kZWQgdG8gZW5jb21wYXNzIGFueSBvZiB0aGUgZm9sbG93aW5n OgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm5hbWU8L3NwYW4+IDogbG9v ayBhdCB0aGUgZmlsZW5hbWUgb2YgdGhlIGltYWdlIGFuZCBpZiBpdCBjb250YWlucyBhbnkg b2YgdGhlIHdvcmRzIGluIDxjb2RlPm1hdGNoX3RleHQ8L2NvZGU+IHRoZW4gYWRkIGl0IHRv IHRoZSBwb29sLiBDb252ZXJzZWx5LCBpZiBpdCBjb250YWlucyBhbnkgb2YgdGhlIHdvcmRz IGluIDxjb2RlPmF2b2lkX3RleHQ8L2NvZGU+IHRoZW4gaWdub3JlIHRoZSBpbWFnZTwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+aWQ8L3NwYW4+IDogbG9vayBhdCB0aGUg aWQgb2YgdGhlIGltYWdlIGFuZCBpbmNsdWRlL2V4Y2x1ZGUgaXQgYmFzZWQgb24gdGhlIG51 bWJlcnMgZ2l2ZW4gaW4gPGNvZGU+bWF0Y2hfdGV4dDwvY29kZT4gLyA8Y29kZT5hdm9pZF90 ZXh0PC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+Y2FwdGlvbjwv c3Bhbj4gOiBpZiB0aGUgY2FwdGlvbiBjb250YWlucyB3b3JkcyBmb3VuZCBpbiA8Y29kZT5t YXRjaF90ZXh0PC9jb2RlPiBhbmQgd29yZHMgbm90IGZvdW5kIGluIDxjb2RlPmF2b2lkX3Rl eHQ8L2NvZGU+LCBpbmNsdWRlL2V4Y2x1ZGUgdGhpcyBpbWFnZSBmcm9tIHRoZSBwb29sPC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5hbHQ8L3NwYW4+IDogaWYgdGhlIGFs dCB0ZXh0IGNvbnRhaW5zIG9yIGRvZXMgbm90IGNvbnRhaW4gdGhlIHNwZWNpZmllZCB3b3Jk cywgaW5jbHVkZS9leGNsdWRlIHRoaXMgaW1hZ2UgZnJvbSB0aGU8L2xpPgoJCTxsaT48c3Bh biBjbGFzcz0iYXR0LW5hbWUiPmNhdGVnb3J5PC9zcGFuPiA6IGFsdGhvdWdoIG5vdCByZWFs bHkgb2YgbXVjaCB1c2UgKHRoZSA8Y29kZT5jYXRlZ29yeTwvY29kZT4gYXR0cmlidXRlIGNh biBiZSB1c2VkIGluc3RlYWQpLCB5b3UgbWF5IHNwZWNpZnkgdGhlIGNhdGVnb3J5IGFzIGEg cGxhY2UgdG8gbG9vayBmb3IgcGFydGljdWxhciB3b3JkczwvbGk+Cgk8L3VsPjwvbGk+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bGltaXQ8L3NwYW4+IDogdGhlIG51bWJlciBv ZiBiYW5uZXJzIHRvIHNob3cgcGVyIHBhZ2UuIERlZmF1bHQ6IDEuIE5vdGUgdGhhdCBpZiB0 aGUgcG9vbCBjb250YWlucyBmZXdlciBpdGVtcyB0aGFuIHRoZSBudW1iZXIgc3BlY2lmaWVk IGhlcmUsIHRoZSBwbHVnaW4gY2FuIG9ubHkgZGlzcGxheSB0aGUgbWF4aW11bSBudW1iZXIg aXQgaGFzIGZvdW5kIHRoYXQgbWF0Y2ggeW91ciBjcml0ZXJpYTwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdHQtbmFtZSI+YWx3YXlzX2Rpc3BsYXk8L3NwYW4+IDogaWYgbm8gbWF0Y2hp bmcgaW1hZ2VzIGFyZSBmb3VuZCB0aGUgcGx1Z2luIHVzdWFsbHkgcmV0dXJucyBub3RoaW5n LiBTZXR0aW5nIDxjb2RlPmFsd2F5c19kaXNwbGF5PSZxdW90OzEmcXVvdDs8L2NvZGU+IGZv cmNlcyBpdCB0byB0cnkgYWdhaW4gd2l0aG91dCBhbnkgPGNvZGU+bWF0Y2hfdGV4dDwvY29k ZT4gb3IgPGNvZGU+YXZvaWRfdGV4dDwvY29kZT4gKGkuZS4ganVzdCBhbnkgPGNvZGU+Y2F0 ZWdvcnk8L2NvZGU+IC8gPGNvZGU+aWQ8L2NvZGU+IHlvdSBzcGVjaWZpZWQpLiBJZiB5b3Ug cmVhbGx5LCByZWFsbHkgd2FudCBhbiBpbWFnZSByZWdhcmRsZXNzLCB1c2UgPGNvZGU+YWx3 YXlzX2Rpc3BsYXk9JnF1b3Q7MiZxdW90OzwvY29kZT4gdG8gcHVsbCBhbiBpbWFnZSBmcm9t IHRoZSBlbnRpcmUgZGF0YWJhc2UuIERlZmF1bHQ6IDAgKGkuZS4gb2ZmKTwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+dGh1bWI8L3NwYW4+IDogc2V0IHRoaXMgdG8gPGNv ZGU+MTwvY29kZT4gdG8gZGlzcGxheSB0aHVtYm5haWxzIGluc3RlYWQgb2YgZnVsbCBzaXpl IGltYWdlcy4gRGVmYXVsdDogMCAob3Igb21pdHRlZCk8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXR0LW5hbWUiPmxpbmtfaW48L3NwYW4+IDogbWFrZXMgdGhlIGJhbm5lciBpbWFnZSBj bGlja2FibGUuIEluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIDxzcGFuIGNsYXNz PSJjYXBzIj5UWFA8L3NwYW4+IHdlIGFyZSBsaW1pdGVkIHRvIHB1dHRpbmcgYSA8c3BhbiBj bGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5rIGVpdGhlciBpbiB0aGUgYWx0LCBjYXB0aW9u IG9yIG5hbWUgZmllbGRzLiBTaW1wbHkgdXNlIHRoaXMgYXR0cmlidXRlIHRvIHNwZWNpZnkg d2hpY2ggcGFydCBvZiB0aGUgaW1hZ2UgZGV0YWlscyBjb250YWluIHRoZSBkZXN0aW5hdGlv biA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPi4gSXQgY2FuIGJlIGVpdGhlciA8Y29k ZT5hbHQ8L2NvZGU+LCA8Y29kZT5jYXB0aW9uPC9jb2RlPiBvciA8Y29kZT5uYW1lPC9jb2Rl Pi4gRGVmYXVsdDogb21pdHRlZCAobm8gbGluayk8ZGl2IGNsYXNzPSJicmVhayI+SWYgdGhl IGxpbmsgaXMgYSBmdWxsIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHN0YXJ0aW5n IHdpdGggPGNvZGU+aHR0cDovLzwvY29kZT4gaXQgd2lsbCBiZSB1c2VkIHZlcmJhdGltIGZv ciB0aGUgaW1hZ2UgbGluay4gSWYgaXQgc3RhcnRzIHdpdGggYSA8Y29kZT4vPC9jb2RlPiBp dCB3aWxsIGJlIGh1bmcgb2ZmIHRoZSByb290IHNpdGVfdXJsIGRpcmVjdGx5LiBJZiBpdCBz dGFydHMgd2l0aCBhbnl0aGluZyBlbHNlIGl0IGlzIGFzc3VtZWQgYSAmIzgyMTY7cmVsYXRp dmUmIzgyMTc7IChvciAmIzgyMTY7bG9jYWwmIzgyMTc7KSBsaW5rIGFuZCBpbmhlcml0cyB0 aGUgY3VycmVudCBzZWN0aW9uLjwvZGl2PjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQt bmFtZSI+bGlua19wcmVmaXg8L3NwYW4+IDogYSBzdHJpbmcgdG8gcHJlcGVuZCB0byBldmVy eSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB3aGVuIHVzaW5nIDxjb2RlPmxpbmtf aW48L2NvZGU+LiBVc2VmdWwgaWYgeW91IHJlb3JnYW5pc2UgeW91ciBzaXRlOiB1c2UgdGhp cyBpbnN0ZWFkIG9mIHZpc2l0aW5nIGVhY2ggaW1hZ2UgYW5kIGFsdGVyaW5nIHRoZSBuYW1l L2NhcHRpb24vYWx0IHRleHQuIERlZmF1bHQ6IG9taXR0ZWQgKG5vIHRleHQpLiBBcyB3aXRo IDxjb2RlPmxpbmtfaW48L2NvZGU+LCBpZiB0aGlzIGF0dHJpYnV0ZSBiZWdpbnMgd2l0aCA8 Y29kZT5odHRwOi8vPC9jb2RlPiBpdCBpcyBhc3N1bWVkIGEgZnVsbCA8c3BhbiBjbGFzcz0i Y2FwcyI+VVJMPC9zcGFuPiB0byBhbm90aGVyIHNpdGU7IGlmIGl0IGJlZ2lucyB3aXRoIDxj b2RlPi88L2NvZGU+IGl0IGlzIGEgcm9vdCBsaW5rOyBhbnl0aGluZyBlbHNlIGlzIGFzc3Vt ZWQgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgc2VjdGlvbi4gTm90ZSB0aGF0IGlmIHlvdSB1 c2UgYW4gPGNvZGU+aHR0cDovLzwvY29kZT4gZnVsbCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJM PC9zcGFuPiBpbiB0aGUgaW1hZ2UgaXRzZWxmLCBhbnkgPGNvZGU+bGlua19wcmVmaXg8L2Nv ZGU+IHdpbGwgYmUgaWdub3JlZDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ ZGlzcGxheV91cmw8L3NwYW4+IDogc2luY2UgdGhpcyBwbHVnaW4gY2FuIGhpamFjayB0aGUg Y2FwdGlvbi9hbHQgdGV4dCBmb3IgYSBkZXN0aW5hdGlvbiA8c3BhbiBjbGFzcz0iY2FwcyI+ VVJMPC9zcGFuPiwgeW91IG1heSB3aXNoIHRvIG5vdCBzaG93IHRoaXMgdG8gdmlzaXRvcnMg KGFzIHRoZSBkZWZhdWx0IHRvb2x0aXAgcG9wdXAgdGl0bGUpIG9yIHNjcmVlbiByZWFkZXJz L3NlYXJjaCBlbmdpbmUgcmF3bGVycyAodGhlIGFsdCB0ZXh0KS4gVXNpbmcgPGNvZGU+ZGlz cGxheV91cmw9JnF1b3Q7MCZxdW90OzwvY29kZT4gd2lsbCBzaW1wbHkgdXNlIHRoZSBkZXRh aWxzIGZyb20gd2hpY2hldmVyIGVsZW1lbnQgeW91IGFyZSA8ZW0+bm90PC9lbT4gdXNpbmcg Zm9yIDxjb2RlPmxpbmtfaW48L2NvZGU+LiBGb3IgZXhhbXBsZSwgaWYgeW91ciBhbHQgdGV4 dCBpcyAmIzgyMjA7U3B1ZCBndW4mIzgyMjE7IGFuZCB5b3VyIGNhcHRpb24gaXMgJiM4MjIw O2h0dHA6Ly9zcHVkZ3Vucy5jb20vJiM4MjIxOywgc2V0dGluZyBkaXNwbGF5X3VybCB0byAw IHdpbGwgbWFrZSBib3RoIGFsdCBhbmQgdGl0bGUgYXR0cmlidXRlcyBib3RoICYjODIyMDtT cHVkIGd1biYjODIyMTs8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnJlZmVy ZXI8L3NwYW4+IDogW3NpYyFdIHdoZW4gPGNvZGU+bGlua19pbjwvY29kZT4gaXMgdXNlZCwg ZWFjaCBjbGlja2FibGUgaW1hZ2UgaGFzIDxjb2RlPj9iaWQ9aW1hZ2VJRDwvY29kZT4gYWRk ZWQgdG8gaXQsIHNvIGNsaWNrcyBjYW4gYmUgdHJhY2tlZCBpbiB0aGUgPHNwYW4gY2xhc3M9 ImNhcHMiPlRYUDwvc3Bhbj4gYWRtaW4gbG9ncyB0byBzZWUgd2hpY2ggYXJlIHRoZSBtb3N0 IGVmZmVjdGl2ZSBhZHMuIENoYW5nZSB0aGUgPGNvZGU+YmlkPC9jb2RlPiB0ZXh0IGhlcmUg dG8gc29tZXRoaW5nIG9mIHlvdXIgY2hvb3NpbmcsIG9yIHVzZSA8Y29kZT5yZWZlcmVyPSZx dW90OyZxdW90OzwvY29kZT4gdG8gZGlzYWJsZSB0cmFja2luZy4gRGVmYXVsdDogPGNvZGU+ YmlkPC9jb2RlPi4gTm90ZSB0aGF0IHRoZSBhdHRyaWJ1dGUgaXMgbWlzLXNwZWxsZWQgZXhh Y3RseSB0aGUgc2FtZSB3YXkgYXMgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5IVFRQPC9zcGFu PiBzcGVjIHdhcyBhbGwgdGhvc2UgeWVhcnMgYWdvIDotcDwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdHQtbmFtZSI+cmF3X3VybDwvc3Bhbj4gOiBpbnN0ZWFkIG9mIGxpbmtpbmcgYW5k IG1ha2luZyBhIGZ1bGwgaW1hZ2UgdGFnLCB1c2luZyB0aGlzIG9wdGlvbiBqdXN0IG91dHB1 dHMgdGhlIGJhbm5lciA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBkaXJlY3RseSB0 byB0aGUgcGFnZS4gVGhpcyBjYW4gYmUgdXNlZCBpbiA8Y29kZT4mbHQ7c3R5bGUmZ3Q7PC9j b2RlPiBkZWNsYXJhdGlvbnMgdG8sIGZvciBleGFtcGxlLCBzZXQgYSByYW5kb20gPHNwYW4g Y2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gb2JqZWN0IGJhY2tncm91bmQuIERlZmF1bHQ6IG9m ZjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+dGFyZ2V0PC9zcGFuPiA6IHNw ZWNpZmllcyB0aGUgYW5jaG9yIHRhcmdldCB3aW5kb3cgKGUuZy4gJiM4MjIwOzxlbT5ibGFu ayYjODIyMTspIHdoaWNoIHdpbGwgY2F1c2UgYSBwb3B1cCBlZmZlY3Qgd2hlbiBhIGxpbmtl ZCBiYW5uZXIgaXMgY2xpY2tlZC4gX05COiBpZiB1c2luZyB0aGUgPHNwYW4gY2xhc3M9ImNh cHMiPlhIVE1MPC9zcGFuPiAxLjEgPHNwYW4gY2xhc3M9ImNhcHMiPkRPQ1RZUEU8L3NwYW4+ IHdpdGggdGhpcyBvcHRpb24sIHlvdXIgcGFnZSB3aWxsIG5vdCB2YWxpZGF0ZSBzaW5jZSB0 YXJnZXQgaXMgZGVwcmVjYXRlZCBieSB0aGUgVzNDPC9lbT4uIERlZmF1bHQ6IG5vdCBzZXQg KGxpbmtzIG9wZW4gaW4gc2FtZSB3aW5kb3cpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 dC1uYW1lIj5jbGFzczwvc3Bhbj4gOiA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBj bGFzcyBmb3IgZWFjaCBiYW5uZXIgaW1hZ2UgZGlzcGxheWVkLiBEZWZhdWx0OiBlbXB0eSAo aS5lLiBubyBjbGFzcykuIDxlbT5Ob3RlIHRoYXQgdGhpcyBhdHRyaWJ1dGUgd2FzIGZvcm1l cmx5IGNhbGxlZCBpbWdjbGFzczwvZW0+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1u YW1lIj5kZWxpbTwvc3Bhbj4gOiBpZiB5b3UgcHJlZmVyIHRvIHNldCB0aGUgZGVsaW1pdGVy IHRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGEgY29tbWEgd2hlbiBzcGVjaWZ5aW5nIGZpZWxk cywgdXNlIHRoaXMgYXR0cmlidXRlLiBWZXJ5IHVzZWZ1bCBpZiB1c2luZyB0aGUgZ2x6X2N1 c3RvbV9maWVsZHMgcGx1Z2luOyB5b3UgY2FuIHNldCB0aGlzIHRvIDxjb2RlPmRlbGltPSZx dW90O3wmcXVvdDs8L2NvZGU+IHRvIHVzZSBzZWxlY3Qgb3IgcmFkaW8gYnV0dG9ucyBpbiBj dXN0b20gZmllbGRzPC9saT4KCTwvdWw+CgoJPGgyIGlkPSJmaWxlbW9kZSI+RmlsZSBtb2Rl PC9oMj4KCgk8cD5TaW1pbGFyIGluIG1hbnkgcmVzcGVjdHMgdG8gdGhlIDxhIGhyZWY9IiNp bWdtb2RlIj5pbWFnZSBtb2RlPC9hPiB0aGUgcGx1Z2luIGNhbiBjaG9vc2UgcmFuZG9tIGZp bGVzIGZyb20gdGhvc2UgdXBsb2FkZWQgdG8gdGhlIEZpbGVzIHRhYiBpbiB0aGUgPHNwYW4g Y2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gaW50ZXJmYWNlLiBUaGlzIGdpdmVzIHlvdSB0aGUg b3B0aW9uIG9mIHVzaW5nIGEgcmFuZG9tbHkgc2VsZWN0ZWQgcGllY2Ugb2YgRmxhc2ggb3Ig YSB2aWRlbyBmaWxlIGlmIHlvdSB3YW50LiBJbiB0aGVvcnksIGlmIHRoZXJlJiM4MjE3O3Mg YSBicm93c2VyIHBsdWdpbiBhdmFpbGFibGUgZm9yIGl0LCB5b3UgY2FuIHBsYXkgaXQgKGJ1 dCBub3RlIHRoZSBjYXZlYXRzIGxhdGVyOiBzdXBwb3J0IGZvciBldmVyeXRoaW5nIGlzbiYj ODIxNzt0IGJ1aWx0IGluIG5hdGl2ZWx5KS48L3A+CgoJPHA+QXMgd2l0aCB0aGUgaW1hZ2Ug bW9kZSwgbW9zdCBvZiB0aGUgb3B0aW9ucyB3b3JrIHRvIHdoaXR0bGUgZG93biB0aGUgY2hv aWNlcyB0byBhIHBvb2wgb2YgZmlsZXMgdGhhdCBtYXRjaCB5b3VyIHNwZWNpZmljIGNyaXRl cmlhLiBUaGUgcGx1Z2luIHRoZW4gcmFuZG9tbHkgY2hvb3NlcyBvbmUgKG9yIG1vcmUpIG9m IHRob3NlIGFuZCByZW5kZXJzIGl0IGFzIGJlc3QgaXQgY2FuLjwvcD4KCgk8cD5UaGVyZSBp cyBvbmUgY3J1Y2lhbCBkaWZmZXJlbmNlIGluIHRoaXMgbW9kZTogc2luY2UgPHNwYW4gY2xh c3M9ImNhcHMiPlRYUDwvc3Bhbj4gaXMgbGltaXRlZCB0byBvbmUgZmllbGQgb2YgY3VzdG9t aXNhYmxlIGNvbnRlbnQgd2l0aCBGaWxlcyBhbmQgdGhlcmUgYXJlIGEgbG90IG9mIHBvdGVu dGlhbCBpZGlvc3luY3JhY2llcyBpbiBlbWJlZGRpbmcgcGxheWFibGUgY29udGVudCwgb25s eSB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IGlzIHNwZWNpZmllZCBhcyBwbHVnaW4gb3B0aW9u cy4gQ3VzdG9taXNhdGlvbiBhYm92ZSBhbmQ8YnIgLz4KYmV5b25kIHRoYXQgZ29lcyBpbiB0 aGUgPGNvZGU+ZGVzY3JpcHRpb248L2NvZGU+IGZpZWxkIGFzIGEgY2F0Y2gtYWxsIGZvciBt YW55IGV4dHJhIG9wdGlvbnMuPC9wPgoKCTxwPlVuZm9ydHVuYXRlbHksIHVzaW5nIG9uZSBm aWVsZCBmb3IgbWFueSBwdXJwb3NlcyBpbXBsaWVzIHN0aWNraW5nIHRvIHNvbWUgY29udmVu dGlvbnMuIFRvIHRoaXMgZW5kLCB3aGVuIHNwZWNpZnlpbmcgb3B0aW9ucyBpbiB0aGUgZGVz Y3JpcHRpb24gZmllbGQsIHVzZSB0aGUgZm9sbG93aW5nIGZvcm1hdDo8L3A+Cgo8cHJlIGNs YXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj5vcHRpb25OYW1lMT1vcHRpb25WYWx1 ZTE7Cm9wdGlvbk5hbWUyPW9wdGlvblZhbHVlMjsKLi4uCjwvY29kZT48L3ByZT4KCgk8cD5O byBxdW90ZXMgYXJlIG5lY2Vzc2FyeSBhcm91bmQgdGhlIG9wdGlvbiB2YWx1ZXMgYXMgdGhl IHBsdWdpbiB3aWxsIHB1dCB0aGVtIGluIGZvciB5b3UsIHRob3VnaCBpdCBkb2VzIG5vIGhh cm0gdG8gaW5jbHVkZSB0aGVtLiBBbmQgYWx0aG91Z2ggc3BhY2VzIGFuZCBuZXdsaW5lcyBh cmUgYWxzbyBvcHRpb25hbCwgaXQmIzgyMTc7bGwgaGVscCBrZWVwIHlvdXIgc2FuaXR5IGlm IHlvdSBkbyB0aGluZ3MgdGhpcyB3YXkhIEp1c3Qgbm90ZSB0aGF0IGV2ZXJ5IDxjb2RlPm9w dGlvbj12YWx1ZTwvY29kZT4gcGFpciBlbmRzIHdpdGggYSBzZW1pY29sb24gKDxjb2RlPjs8 L2NvZGU+KS4gSXQgaXMgcHJvYmFibHkgYmVzdCB0byBzZXQgYXNpZGUgYSBzcGVjaWZpYyBj YXRlZ29yeS9zdWItY2F0ZWdvcnkgZmlsZSB0cmVlIGZvciB5b3VyIGJhbm5lcnMgc2luY2Ug d2UgYXJlIGdvaW5nIHRvIGJlIGhpamFja2luZyB0aGUgZGVzY3JpcHRpb24gZmllbGQgZm9y IHB1cnBvc2VzIG90aGVyIHRoYW4gaXQgd2FzIGludGVuZGVkLjwvcD4KCgk8aDIgaWQ9Im1p bWV0eXBlcyI+PHNwYW4gY2xhc3M9ImNhcHMiPk1JTUU8L3NwYW4+IHR5cGVzPC9oMj4KCgk8 cD48c3BhbiBjbGFzcz0iY2FwcyI+TUlNRTwvc3Bhbj4gdHlwZXMgcnVsZSBpbiBGaWxlcyBt b2RlLiBVbmZvcnR1bmF0ZWx5LCB0aGUgdG9vbHMgYnJvd3NlcnMgYW5kIHNlcnZlcnMgZW1w bG95IHRvIGFjY3VyYXRlbHkgZGV0ZXJtaW5lIHdoaWNoIGZpbGUgaXMgb2Ygd2hhdCB0eXBl IGFyZSBvZnRlbiBleHRlbnNpb25zIGFuZCBjYW5ub3QgYmUgZ3VhcmFudGVlZCB0byBiZSBp bnN0YWxsZWQgb24gZXZlcnkgc2VydmVyLiBTbyB3ZSBoYXZlIHRvIHVzZSB0aGUgbmV4dCBi ZXN0IHRoaW5nOiB0aGUgZmlsZSBleHRlbnNpb24uIFllcyBpdCBjYW4gYmUgbWlzbGVhZGlu ZywgYnV0IHdlJiM4MjE3O3JlIHN0dWNrIHdpdGggaXQuPC9wPgoKCTxwPk9uY2UgYSBmaWxl IGhhcyBiZWVuIHNlbGVjdGVkIGJhc2VkIG9uIHlvdXIgY2hvc2VuIGF0dHJpYnV0ZXMsIHRo ZSBwbHVnaW4gbG9va3MgYXQgaXRzIGZpbGUgZXh0ZW5zaW9uLiBCYXNlZCBvbiB0aGF0IGl0 IHVzZXMgYSBsb29rdXAgdGFibGUgdG8gZGV0ZXJtaW5lIHRoZSBjb3JyZWN0IDxzcGFuIGNs YXNzPSJjYXBzIj5NSU1FPC9zcGFuPiB0eXBlIGFuZCB0ZW1wbGF0ZS4gVGhlIDxzcGFuIGNs YXNzPSJjYXBzIj5NSU1FPC9zcGFuPiB0eXBlIGlzIG92ZXJyaWRhYmxlIG9uIGEgcGVyLWZp bGUgYmFzaXMgYnV0IHRoZSB0ZW1wbGF0ZXMgYXJlIGFsbCBoYXJkLWNvZGVkIGZvciBub3cu IEkmIzgyMTc7bSBob3BpbmcgdG8gb25lIGRheSBhbGxvdyB0aGVtIHRvIGJlIGV4dGVuZGVk L21vZGlmaWVkIHZpYSBwbHVnaW4gb3B0aW9ucywgYnV0IGl0JiM4MjE3O3MgYSB3YXkgb2Zm IHlldC48L3A+CgoJPHA+Rm9yIG5vdywgdGhlIG1vc3QgY29tbW9uIHRoaW5ncyBsaWtlIEZs YXNoIGZpbGVzLCA8c3BhbiBjbGFzcz0iY2FwcyI+QVZJPC9zcGFuPi9NT1YvTVBHL1dNViBt b3ZpZXMgYW5kIGV2ZW4gc29tZSBhdWRpbyBmb3JtYXRzIGxpa2UgPHNwYW4gY2xhc3M9ImNh cHMiPldBVjwvc3Bhbj4vT0dHL09QVElNRlJPRy9GTEFDIGFyZSBzdXBwb3J0ZWQgKGF1ZGlv IGJhbm5lcnMgYW55b25lPyEpIEFuZCB0aGUgZ29vZCBuZXdzIGlzIGl0IHNob3VsZCBiZSBm YWlybHkgYXV0b21hdGljIChpZiBpdCBpc24mIzgyMTc7dCwgcGxlYXNlIDxhIGhyZWY9Imh0 dHA6Ly9zdGVmZGF3c29uLmNvbS9jb21tZW50Rm9ybSI+Z2V0IGluIHRvdWNoPC9hPiBhbmQg c3VnZ2VzdCBiZXR0ZXIgdGVtcGxhdGVzIGZvciB0aGUgbmV4dCByZXZpc2lvbikuPC9wPgoK CTxwPlRoZSBrZXkgdG8gaXQgaXMgb3ZlcnJpZGluZyB0aGUgZGVmYXVsdCBvcHRpb25zLiBU aGUgPGEgaHJlZj0iaHR0cDovL3d3dy53M3NjaG9vbHMuY29tL3RhZ3MvdGFnX29iamVjdC5h c3AiPjxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiBvYmplY3QgdGFnPC9hPiBjb250 YWlucyBhIGhvc3Qgb2YgYXR0cmlidXRlcywgYWxsIG9mIHdoaWNoIHlvdSBjYW4gb3ZlcnJp ZGUgYnkgc3BlY2lmeWluZyB0aGVtIGFzIDxjb2RlPm9wdGlvbj12YWx1ZTwvY29kZT4gcGFp cnMgaW4gdGhlIGRlc2NyaXB0aW9uIGZpZWxkIG9mIHRoYXQgcGFydGljdWxhciBmaWxlLiBB bnkgYXR0cmlidXRlcyB0aGF0IG1hdGNoIHRoZSBuYW1lcyBpbiB0aGUgPHNwYW4gY2xhc3M9 ImNhcHMiPkhUTUw8L3NwYW4+IHNwZWMgY2FuIGJlIHVzZWQuIFRoZXNlIGFyZSB0aGUgY29y ZSBvbmVzIHRoYXQgdGhlIHBsdWdpbiB3aWxsIHNlbGVjdCBmb3IgeW91IGlmIHlvdSBkbzxi ciAvPgpub3Qgc3BlY2lmeSB5b3VyIG93biBpbiB0aGUgPGNvZGU+ZGVzY3JpcHRpb248L2Nv ZGU+IGZpZWxkIG9yIHRoZSA8Y29kZT5nbG9iYWxfcGFyYW1zPC9jb2RlPiBhdHRyaWJ1dGU6 PC9wPgoKCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ ZGF0YTwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdG8gdGhl IGZpbGUgaXRzZWxmLiBUYWtlcyB0aGUgZmlsZSYjODIxNztzIDxzcGFuIGNsYXNzPSJjYXBz Ij5VUkw8L3NwYW4+IGZyb20gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGRh dGFiYXNlIGJ5IGRlZmF1bHQsIG9yIGl0IG1heSBiZSBvdmVycmlkZGVuIGJ5IHlvdTwvbGk+ Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1l Ij50eXBlPC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+TUlNRTwvc3Bhbj4gdHlw ZSBvZiB0aGUgZmlsZSwgZGV0ZXJtaW5lZCBmcm9tIHRoZSBpbnRlcm5hbCBsb29rdXAgdGFi bGUuIElmIGl0IGNob29zZXMgd3JvbmdseSBvciB5b3Ugd2FudCBhIGZhbmNpZnVsIHR5cGUg bm90IGluY2x1ZGVkLCBvdmVycmlkZSBpdDwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRz Ij4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj53aWR0aDwvc3Bhbj4gOiB0aGUgaG9y aXpvbnRhbCBzY3JlZW4gcmVhbCBlc3RhdGUgdGhhdCB0aGUgb2JqZWN0IHdpbGwgb2NjdXB5 LiBCeSBkZWZhdWx0IGl0IHRha2VzIHRoZSB2YWx1ZXMgb24gYSBwZXItbGFuZ3VhZ2UgYmFz aXMgKGlmIDxzcGFuIGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+IGlzIGluc3RhbGxlZCkgYmVj YXVzZSBjb250ZW50IG9mdGVuIHZhcmllcyBmcm9tIGNvdW50cnkgdG8gY291bnRyeS4gV2l0 aG91dCA8c3BhbiBjbGFzcz0iY2FwcyI+TUxQPC9zcGFuPiBpdCYjODIxNztzIDMwMHB4IHNv IHlvdSBwcm9iYWJseSBzaG91bGQgb3ZlcnJpZGUgdGhpczwvbGk+Cgk8L3VsPgoJPHVsIGNs YXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5oZWlnaHQ8L3NwYW4+ IDogdGhlIHZlcnRpY2FsIHNjcmVlbiByZWFsIGVzdGF0ZSB0aGUgb2JqZWN0IHRha2VzIHVw LiA8c3BhbiBjbGFzcz0iY2FwcyI+TUxQPC9zcGFuPi1hd2FyZSwgYXMgYWJvdmU8L2xpPgoJ PC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ aWQ8L3NwYW4+IDogdGhlIHVuaXF1ZSBJRCBmb3IgdGhlIG9iamVjdC4gSWYgbm90IG92ZXJy aWRlbiwgdGhlIGRlZmF1bHQgaXMgJiM4MjIwO2lkJiM4MjIxOyBwbHVzIGEgcmFuZG9tIG51 bWJlcjwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0ic3dmb2JqZWN0Ij5PdmVycmlkaW5nIDxzcGFu IGNsYXNzPSJjYXBzIj5NSU1FPC9zcGFuPiB0eXBlcyAvIHN3Zm9iamVjdDwvaDI+CgoJPHA+ SWYgeW91IHdpc2ggdG8gb3ZlcnJpZGUgdGhlIGF1dG8tZGV0ZWN0ZWQgbWltZSB0eXBlIGZv ciBhbnkgcmVhc29uLCBzcGVjaWZ5IDxjb2RlPm1pbWVfdHlwZT1Vc2VUaGlzRmlsZUV4dGVu c2lvbkluc3RlYWQ8L2NvZGU+IChlLmcuIDxjb2RlPm1pbWVfdHlwZT0mcXVvdDthdmkmcXVv dDs8L2NvZGU+KS4gVGhhdCB3aWxsIHRoZW4gdXNlIHRoZSB0ZW1wbGF0ZSBmb3IgYW4gYXZp IGZpbGUgcmVnYXJkbGVzcyBvZiB0aGUgZmlsZSYjODIxNztzIHJlYWwgZXh0ZW5zaW9uLjwv cD4KCgk8cD5Tb21lIHBlb3BsZSBwcmVmZXIgdG8gZW1iZWQgbW92aWVzIHVzaW5nIHRoZSAz cmQgcGFydHkgbGlicmFyeSBzd2ZvYmplY3QuIFJhbmRvbV9iYW5uZXIgc3VwcG9ydHMgdGhp cyBsaWJyYXJ5IGJ1dCBpdCA8ZW0+ZG9lcyBub3Q8L2VtPiBsb2FkIHRoZSBsaWJyYXJ5IGZv ciB5b3U6IGluY29ycG9yYXRlIGl0IG9udG8geW91ciBwYWdlIHByaW9yIHRvIGNhbGxpbmcg c21kX3JhbmRvbV9iYW5uZXIuPC9wPgoKCTxwPk92ZXJyaWRpbmcgdGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5NSU1FPC9zcGFuPiB0eXBlIGlzIGN1cnJlbnRseSBob3cgc3dmb2JqZWN0IG1v ZGUgd29ya3M6IGl0JiM4MjE3O3MgYSBoYWNrIGJlY2F1c2UgdGhlIHBsdWdpbiBjYW5ub3Qg ZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGEgPGNvZGU+LnN3ZjwvY29kZT4geW91IHdhbnQgdG8g ZW1iZWQgd2l0aCB0aGUgb2JqZWN0IHRhZyBhbmQgb25lIHlvdSB3YW50IHRvIGVtYmVkIHVz aW5nIHN3Zm9iamVjdC4gSW4gdGhpcyBjYXNlLCBzcGVjaWZ5IHRoZSBzcGVjaWFsIGF0dHJp YnV0ZSA8Y29kZT5taW1lX3R5cGU9JnF1b3Q7c3dvJnF1b3Q7PC9jb2RlPiwgZWl0aGVyIGlu IHRoZSBkZXNjcmlwdGlvbiBmaWVsZCBvZiB0aGUgcmVsZXZhbnQgZmlsZSBvciBhcyBhIDxj b2RlPmdsb2JhbF9wYXJhbTwvY29kZT4uPC9wPgoKCTxwPldoZW4gdXNpbmcgc3dmb2JqZWN0 IHRoZXJlIGFyZSBhIGZldyBtb3JlIG9wdGlvbnMgeW91IGNhbiBzcGVjaWZ5OjwvcD4KCgk8 dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnBsYXllcnZl cnNpb248L3NwYW4+IDogdGhlIG1pbmltdW0gdmVyc2lvbiBvZiBmbGFzaCBwbGF5ZXIgeW91 IHJlcXVpcmUgdXNlcnMgdG8gaGF2ZSBiZWZvcmUgdGhleSBjYW4gc2VlIHRoZSBjb250ZW50 LiBEZWZhdWx0IGlzIDg8L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+YmFja2NvbG9yPC9zcGFuPiA6IGEgaGV4IHN0cmluZyBs aWtlIDxjb2RlPiMwMDc0MTI8L2NvZGU+IHRvIHNldCB0aGUgY29sb3Igb2YgdGhlIGJhY2tn cm91bmQgb2YgdGhlIHN3Zm9iamVjdC4gTm90ZSBpdCYjODIxNztzIGNhbGxlZCA8Y29kZT5i YWNrY29sb3I8L2NvZGU+IHRvIGRpc3Rpbmd1aXNoIGl0IGZyb20gdGhlIG9iamVjdCB0YWcm IzgyMTc7cyA8Y29kZT5iZ2NvbG9yPC9jb2RlPi4gRGVmYXVsdCBpcyB3aGl0ZTwvbGk+Cgk8 L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5l bGVtZW50aWQ8L3NwYW4+IDogdGhlIHVuaXF1ZSBpZGVudGlmaWVyIHdoaWNoIHRoZSBtb3Zp ZSByZXBsYWNlcy4gVGhpcyBpcyBub3JtYWxseSBhbiBlbXB0eSBkaXYgd2l0aCBhbiBpZCBv ZiA8Y29kZT5mbGFzaGNvbnRlbnQ8L2NvZGU+IGJ1dCBzaW5jZSB0aGlzIHBsdWdpbiBjYW4g b3V0cHV0IG1vcmUgdGhhbiBvbmUgYmFubmVyIG9uIHRoZSBwYWdlLCB0aGUgZGVmYXVsdCBi ZWhhdmlvdXIgaXMgdG8gYWRkIGEgcmFuZG9tIG51bWJlciBvbiB0aGUgZW5kIG9mIGl0PC9s aT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5h bWUiPnVpZDwvc3Bhbj4gOiB0aGUgamF2YXNjcmlwdCBpZGVudGlmaWVyIHRoYXQgaXMgdXNl ZCB0byBpZGVudGlmeSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlNXRk88L3NwYW4+YmplY3Qg aW5zdGFuY2UuIEluIGFsbCB0aGUgZXhhbXBsZXMgb24gdGhlIHN3Zm9iamVjdDxiciAvPgp3 ZWIgc2l0ZSB0aGlzIGlzIDxjb2RlPnNvPC9jb2RlPiBidXQgYWdhaW4sIHNpbmNlIHRoZSBw bHVnaW4gY2FuIG91dHB1dCBtb3JlIHRoYW4gb25lIGJhbm5lciwgdGhlIGRlZmF1bHQgYmVo YXZpb3VyIGFkZHMgYSByYW5kb20gbnVtYmVyIG9uIHRoZSBlbmQgb2YgaXQ8L2xpPgoJPC91 bD4KCgk8cD5JbiBib3RoIHN0YW5kYXJkIG9iamVjdCBhbmQgc3dmb2JqZWN0IG1vZGVzLCB0 aGUgb3RoZXIgb3B0aW9ucyBhcmUgdG9vIG51bWVyb3VzIHRvIGxpc3QsIGJ1dCBXM1NjaG9v bHMsIEFkb2JlIG9yIEdvb2dsZSB3aWxsIGhlbHAgeW91IGZpbmQgdGhlbSBpZiB5b3UgbmVl ZCB0aGVtLjwvcD4KCgk8cD5BbnkgPGNvZGU+b3B0aW9uPXZhbHVlPC9jb2RlPiBwYWlyIHNw ZWNpZmllZCBpbiB0aGUgPGNvZGU+ZGVzY3JpcHRpb248L2NvZGU+IGZpZWxkIHRoYXQgaXMg PGVtPm5vdDwvZW0+IHBhcnQgb2YgdGhlIGNvcmUgc3BlYyBpcyBhc3N1bWVkIHRvIGJlIGEg PGNvZGU+Jmx0O3BhcmFtJmd0OzwvY29kZT4gd2l0aGluIHRoZSBvYmplY3QgaXRzZWxmLiBV c2UgdGhpcyBmYWNpbGl0eSB0byBzcGVjaWZ5IGFueSBleHRyYSBvcHRpb25zIHlvdXIgY2hv c2VuIGZpbGUgdHlwZSByZXF1aXJlcyB0byBvcGVyYXRlIGNvcnJlY3RseS4gSWYgeW91IG5l ZWQgdG8gdXNlIGEgZGVsaW1pdGVyIG90aGVyIHRoYW4gPGNvZGU+PTwvY29kZT4gYmV0d2Vl biBuYW1lLXZhbHVlIHBhaXJzLCB1c2UgdGhlIG52X2RlbGltIGF0dHJpYnV0ZS48L3A+CgoJ PHA+V2hlbiB1c2luZyBzd2ZvYmplY3QgbW9kZSwgc3RhbmRhcmQgcGFyYW1ldGVycyBhbmQg Rmxhc2hWYXJzIGFyZSBkaWZmZXJlbnRpYXRlZCBhbmQgcGFzc2VkIHRvIHlvdXIgYXBwbGlj YXRpb24gdXNpbmcgPGNvZGU+YWRkUGFyYW0oKTwvY29kZT4gYW5kIDxjb2RlPmFkZFZhcmlh YmxlKCk8L2NvZGU+IHJlc3BlY3RpdmVseS4gTm90ZSB0aGF0IDxjb2RlPmV4cHJlc3NpbnN0 YWxsPC9jb2RlPiBpcyBjdXJyZW50bHkgPGVtPm5vdDwvZW0+IHN1cHBvcnRlZC48L3A+CgoJ PGgyIGlkPSJmaWxlYXR0cyI+RmlsZSBtb2RlIGF0dHJpYnV0ZXM8L2gyPgoKCTxwPlRoZSBm b2xsb3dpbmcgYXR0cmlidXRlcyB3b3JrIGluIGV4YWN0bHkgdGhlIHNhbWUgd2F5IGFzIHRo ZXkgZG8gaW4gPGEgaHJlZj0iI2ltZ21vZGUiPmltYWdlIG1vZGU8L2E+IHdpdGggdGhlIGV4 Y2VwdGlvbiB0aGF0IGV2ZXJ5d2hlcmUgaXQgbWVudGlvbnMgJiM4MjE2O2ltYWdlJiM4MjE3 OyB5b3UgY2FuIHN1YnN0aXR1dGUgJiM4MjE2O2ZpbGUmIzgyMTc7OjwvcD4KCgk8dWwgY2xh c3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm1vZGU8L3NwYW4+PC9s aT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5h bWUiPmNhdGVnb3J5PC9zcGFuPjwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5pZDwvc3Bhbj48L2xpPgoJPC91bD4KCTx1bCBj bGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+c3ViY2F0czwvc3Bh bj48L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHQtbmFtZSI+bWF0Y2hfdGV4dDwvc3Bhbj48L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0 cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+YXZvaWRfdGV4dDwvc3Bhbj48L2xp PgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFt ZSI+bGltaXQ8L3NwYW4+PC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48 c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmFsd2F5c19kaXNwbGF5PC9zcGFuPjwvbGk+Cgk8L3Vs PgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5saW5r X3ByZWZpeDwvc3Bhbj48L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+cmVmZXJlcjwvc3Bhbj48L2xpPgoJPC91bD4KCTx1bCBj bGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+cmF3X3VybDwvc3Bh bj48L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHQtbmFtZSI+dGFyZ2V0PC9zcGFuPjwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5kZWxpbTwvc3Bhbj48L2xpPgoJPC91bD4K Cgk8cD5UaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIGlnbm9yZWQgaW4gRmlsZSBtb2RlOjwv cD4KCgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnRo dW1iPC9zcGFuPjwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0dC1uYW1lIj5kaXNwbGF5X3VybDwvc3Bhbj48L2xpPgoJPC91bD4KCgk8cD5B bmQgdGhlc2Ugb3B0aW9ucyB3b3JrIGRpZmZlcmVudGx5LCBvciBhcmUgc3BlY2lmaWMgdG8g dGhpcyBtb2RlOjwvcD4KCgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0i YXR0LW5hbWUiPmNvbXBhcmVfdG88L3NwYW4+IDogZGVjbGFyZSB3aGljaCBmaWVsZHMgb2Yg dGhlIGZpbGUgdGhlIHBsdWdpbiBsb29rcyB3aGVuIG1hdGNoaW5nIG9yIGF2b2lkaW5nIHRl eHQuIEJ5IGRlZmF1bHQgaXQgdXNlcyBqdXN0IHRoZSBmaWxlIG5hbWUsIGJ1dCBpdCBjYW4g YmUgZXh0ZW5kZWQgdG8gZW5jb21wYXNzIGFueSBvZiB0aGUgZm9sbG93aW5nOgoJPHVsPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmZpbGVuYW1lPC9zcGFuPiA6IGxvb2sgYXQg dGhlIGZpbGVuYW1lIG9mIHRoZSBmaWxlIGFuZCBpZiBpdCBjb250YWlucyBhbnkgb2YgdGhl IHdvcmRzIGluIDxjb2RlPm1hdGNoX3RleHQ8L2NvZGU+IHRoZW4gYWRkIGl0IHRvIHRoZSBw b29sLiBDb252ZXJzZWx5LCBpZiBpdCBjb250YWlucyBhbnkgb2YgdGhlIHdvcmRzIGluIDxj b2RlPmF2b2lkX3RleHQ8L2NvZGU+IHRoZW4gaWdub3JlIHRoZSBmaWxlPC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5pZDwvc3Bhbj4gOiBsb29rIGF0IHRoZSBpZCBvZiB0 aGUgZmlsZSBhbmQgaW5jbHVkZS9leGNsdWRlIGl0IGJhc2VkIG9uIHRoZSBudW1iZXJzIGdp dmVuIGluIDxjb2RlPm1hdGNoX3RleHQ8L2NvZGU+IC8gPGNvZGU+YXZvaWRfdGV4dDwvY29k ZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmRlc2NyaXB0aW9uPC9zcGFu PiA6IGxvb2sgYXQgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBmaWxlIGFuZCBpbmNsdWRlL2V4 Y2x1ZGUgaXQgYmFzZWQgb24gdGhlIHdvcmRzIGluIDxjb2RlPm1hdGNoX3RleHQ8L2NvZGU+ IC8gPGNvZGU+YXZvaWRfdGV4dDwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0 LW5hbWUiPnN0YXR1czwvc3Bhbj4gOiBpZiB0aGUgbnVtZXJpYyBkaXNwbGF5IHN0YXR1cyBv ZiB0aGUgZmlsZSBtYXRjaGVzIChmb3IgPGNvZGU+bWF0Y2hfdGV4dDwvY29kZT4pIG9yIGRv ZXMgbm90IG1hdGNoIChmb3IgPGNvZGU+YXZvaWRfdGV4dDwvY29kZT4pIGFueSBnaXZlbiBu dW1iZXJzLCBpbmNsdWRlL2V4Y2x1ZGUgdGhpcyBmaWxlIGZyb20gdGhlIHBvb2w8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnNpemU8L3NwYW4+IDogKG9mIGxpbWl0ZWQg dXNlKSBpZiB0aGUgZmlsZSBpcyBvZiBhIHBhcnRpY3VsYXIgc2l6ZSAoZm9yIG1hdGNoX3Rl eHQpIG9yIG5vdCBvZiBhIHBhcnRpY3VsYXIgc2l6ZSAoZm9yIGF2b2lkX3RleHQpLCBpbmNs dWRlL2V4Y2x1ZGUgdGhpcyBmaWxlIGZyb20gdGhlIHBvb2w8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXR0LW5hbWUiPmNhdGVnb3J5PC9zcGFuPiA6IGFzIHdpdGggaW1hZ2UgbW9kZSwg dGhpcyBtYXkgbm90IGJlIG9mIG11Y2ggdXNlICh0aGUgPGNvZGU+Y2F0ZWdvcnk8L2NvZGU+ IGF0dHJpYnV0ZSBjYW4gYmUgdXNlZCBpbnN0ZWFkKSwgYnV0IHlvdSBtYXkgc3BlY2lmeSB0 aGUgY2F0ZWdvcnkgYXMgYSBwbGFjZSB0byBsb29rIGZvciBwYXJ0aWN1bGFyIHdvcmRzPC9s aT4KCTwvdWw+PC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBj bGFzcz0iYXR0LW5hbWUiPmxpbmtfaW48L3NwYW4+IDogbWFrZXMgdGhlIGJhbm5lciBmaWxl IGNsaWNrYWJsZSBieSBzcGVjaWZ5aW5nIHdoaWNoIGZpZWxkIG9mIHRoZSBmaWxlIHRoZSA8 c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBpcyBzdG9yZWQuIFRoaXMgY2FuIGN1cnJl bnRseSBvbmx5IGJlIDxjb2RlPmRlc2NyaXB0aW9uPC9jb2RlPi4gRGVmYXVsdDogb21pdHRl ZCAobm8gbGluaykuIFRoZSBkZXN0aW5hdGlvbiA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9z cGFuPiBpbiB0aGUgZGVzY3JpcHRpb24gZmllbGQgb2YgdGhlIGZpbGUgaXMgYSBuYW1lPXZh bHVlIHBhaXIgbGlrZSB0aGlzOiA8Y29kZT5saW5rX3VybD1odHRwOi8vbXkuZG9tYWluLmNv bS9wbGFjZS90by92aXNpdDwvY29kZT48ZGl2IGNsYXNzPSJicmVhayI+QSBmdWxsIDxzcGFu IGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGJlZ2lubmluZyA8Y29kZT5odHRwOi8vPC9jb2Rl PiB3aWxsIGJlIHVzZWQgdmVyYmF0aW0sIGFueXRoaW5nIGJlZ2lubmluZyB3aXRoIGEgPGNv ZGU+LzwvY29kZT4gd2lsbCBhc3N1bWUgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHNpdGUgcm9v dCBhbmQgZXZlcnl0aGluZyBlbHNlIHdpbGwgYmUgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQg c2VjdGlvbi9hcnRpY2xlLiBOb3RlIHRoYXQgZGVwZW5kaW5nIG9uIHRoZSBwbHVnaW4gbW9k ZSwgdGhlIGxpbmsgbWF5IG5vdCBiZSBob25vdXJlZCBiZWNhdXNlIHRoZSBjaG9zZW4gYnJv d3NlciBwbHVnaW4gKGUuZy4gc2hvY2t3YXZlIGZsYXNoKSBtYXkgY2FwdHVyZSBtb3VzZSBj bGlja3MuIEluIGZsYXNoLCB0aGlzIGNhbiBiZSBjaXJjdW12ZW50ZWQgKGN1cnJlbnRseSBv biBwbGF0Zm9ybXMgZXhjZXB0IExpbnV4KSBieSBzcGVjaWZ5aW5nIHRoZSBwYXJhbSA8Y29k ZT53bW9kZT10cmFuc3BhcmVudDs8L2NvZGU+IDwvZGl2PjwvbGk+Cgk8L3VsPgoJPHVsIGNs YXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5udl9kZWxpbTwvc3Bh bj4gOiB3aGVuIHNwZWNpZnlpbmcgbmFtZS12YWx1ZSBwYWlycyBpbiB0aGUgZGVzY3JpcHRp b24gZmllbGQsIHlvdSBtYXkgYmUgZmFjZWQgd2l0aCB0aGUgcHJvYmxlbSB0aGF0IHlvdSB3 YW50IHRvIHVzZSB0aGUgPGNvZGU+PTwvY29kZT4gc2lnbiBlbHNld2hlcmU7IHRoaXMgaXMg bW9zdCBub3RhYmxlIHdoZW4gdXNpbmcgRmxhc2hWYXJzIGJlY2F1c2UgdGhleSByZXF1aXJl IDxjb2RlPm5hbWU9dmFsdWU8L2NvZGU+IHRvIGJlIHVzZWQuIFRoZSBsaW5lOiA8Y29kZT5G bGFzaFZhcnM9JnF1b3Q7bXlWYXI9SmltJnF1b3Q7OzwvY29kZT4gd2lsbCBjYXVzZSB0aGUg cGx1Z2luIHByb2JsZW1zIGJlY2F1c2UgaXQgd2lsbCBzcGxpdCB0aGUgbGluZSB1cCBpbnRv IDMgcGFydHMsIGluc3RlYWQgb2YgdGhlIHR3byB5b3UgcmVxdWlyZS4gPGRpdiBjbGFzcz0i YnJlYWs+VG8gYXZvaWQgdGhpcywgeW91IG1heSBzcGVjaWZ5IDxjb2RlPm52X2RlbGltPC9j b2RlPiBhbmQgc2V0IHRoZSBmaXJzdCBkZWxpbWl0ZXIgdG8gYW55dGhpbmcgZWxzZSB5b3Ug bGlrZS4gSXQgY291bGQgYmUgYSBzaW5nbGUgY2hhcmFjdGVyLCBhIHNlcXVlbmNlIG9mIGNo YXJhY3RlcnMsIGEgd29yZCwgYW55dGhpbmcgYXMgbG9uZyBhcyBpdCYjODIxNztzIHVuaXF1 ZS4gTm9ybWFsbHkgPGNvZGU+bnZfZGVsaW09JnF1b3Q7OjomcXVvdDs8L2NvZGU+IHdvcmtz IHdlbGwgc28geW91ciB2YXJpYWJsZXMgaW4gdGhlIGRlc2NyaXB0aW9uIGZpZWxkIGJlY29t ZTogPGNvZGU+Rmxhc2hWYXJzOjpteVZhcj1KaW07PC9jb2RlPjwvZGl2PjwvbGk+Cgk8L3Vs PgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5ub19w bHVnX3RleHQ8L3NwYW4+IDogaWYgYSBicm93c2VyIHBsdWdpbiBpcyBub3QgYXZhaWxhYmxl IHRvIGEgdXNlciwgdGhpcyB0ZXh0IHdpbGwgYmUgZGlzcGxheWVkIGluc3RlYWQuIEl0IGNv dWxkIGRpcmVjdCB0aGVtIHRvIGEgc2l0ZSBmcm9tIHdoaWNoIHRvIGRvd25sb2FkIHRoZSBw bHVnaW4uIFlvdSBjYW4gZWl0aGVyIHB1dCBwbGFpbiB0ZXh0L2h0bWwgaW4gaGVyZSBvciBz cGVjaWZ5IGEgdGV4dHBhdHRlcm4gZm9ybSBieSB1c2luZyA8Y29kZT5ub19wbHVnX3RleHQ9 JnF1b3Q7dHhwZm9ybTpuYW1lX29mX2Zvcm0mcXVvdDs8L2NvZGU+LiBUaGlzIHNhdmVzIHlv dSBoYXZpbmcgdG8gdXNlIHRoZSBhc3lfd29uZGVydGFnIHBsdWdpbiB0byBlbmFibGUgdGFn cy1pbi10YWdzIGZ1bmN0aW9uYWxpdHk8L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+Z2xvYmFsX3BhcmFtczwvc3Bhbj4gOiBz cGVjaWZ5IGFueSBnbG9iYWwgbmFtZS12YWx1ZSBwYWlycyBpbiB0aGlzIG9wdGlvbiB0aGF0 IHlvdSBzaWggdG8gYXBwbHkgdG8gYWxsIGJhbm5lcnMuIFZlcnkgdXNlZnVsIGZvciB0aGlu Z3MgbGlrZSA8Y29kZT5jb2RlYmFzZTwvY29kZT4gb3Igc3BlY2lmeWluZyBhIGdsb2JhbCB3 aWR0aCBhbmQgaGVpZ2h0LiBUaGUgdmFsdWVzIGFyZSBvdmVycmlkYWJsZSBvbiBhIGZpbGUg YnkgZmlsZSBiYXNpcyB1c2luZyB2YWx1ZXMgaW4gdGhlIGRlc2NyaXB0aW9uIGZpZWxkIGFz IHVzdWFsLiBUaGUgcGFyYW1ldGVycyB3b3JrIGZvciBib3RoIHRoZSBzdGFuZGFyZCBvYmpl Y3QgdGFnIGFuZCB0aGUgc3dmb2JqZWN0IGphdmFzY3JpcHQuIE5vdGUgdGhhdCB5b3Ugc3Bl Y2lmeSBwYXJhbWV0ZXJzIGluIGV4YWN0bHkgdGhlIHNhbWUgd2F5IGFzIHlvdSBkbyBpbiB0 aGUgZGVzY3JpcHRpb24gZmllbGQgJiM4MjEyOyBlYWNoIHNlcGFyYXRlZCBieSBzZW1pY29s b25zICYjODIxMjsgYW5kIHRoYXQgdGhlIDxjb2RlPm52X2RlbGltPC9jb2RlPiBhdHRyaWJ1 dGUgZ292ZXJucyB3aGljaCBkZWxpbWl0ZXIgd2lsbCBiZSB1c2VkLiA8ZW0+PHNwYW4gY2xh c3M9ImNhcHMiPklNUE9SVEFOVDwvc3Bhbj48L2VtPiA6IHRoZSBsYXN0IHZhbHVlIGluIHRo ZSBsaXN0IG11c3QgYWxzbyBiZSB0ZXJtaW5hdGVkIHdpdGggYSBzZW1pY29sb248L2xpPgoJ PC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ Y291bnRfZG93bmxvYWRzPC9zcGFuPiA6IGJ5IGRlZmF1bHQgKDxjb2RlPmNvdW50X2Rvd25s b2Fkcz0mcXVvdDsxJnF1b3Q7PC9jb2RlPikgZXZlcnkgdGltZSBhIGJhbm5lciBmaWxlIGlz IHNlcnZlZCwgdGhlIGFzc29jaWF0ZWQgY291bnRlciBmb3IgdGhhdCBmaWxlIGlzIGluY3Jl bWVudGVkLiBUaGlzIG1heSBvciBtYXkgbm90IGJlIGRlc2lyYWJsZSBzbyBpdCBjYW4gYmUg dHVybmVkIG9mZiBoZXJlLiBUaGUgcmVhc29uIGl0IGlzIGFuIG9wdGlvbiBpcyBiZWNhdXNl IGl0IGNhbiBpbiBzb21lIGNpcmN1bXN0YW5jZXMgbGVhZCB0byBtaXNsZWFkaW5nIHJlc3Vs dHMuIEZvciBleGFtcGxlLCBhIGNlcnRhaW4gYnJvd3NlciB0aGF0IHNoYWxsIHJlbWFpbiBu YW1lbGVzcyByZXF1aXJlcyBhbiA8b2JqZWN0PiB0YWcgdG8gbm90IG9ubHkgaGF2ZSBhIDxj b2RlPmRhdGE8L2NvZGU+IHBhcmFtZXRlciBidXQgYWxzbyBhIDxjb2RlPm1vdmllPC9jb2Rl PiBwYXJhbWV0ZXIgd2hlbiBzZXJ2aW5nIEZsYXNoIGNvbnRlbnQuIFdpdGggb25seSBvbmUg b2YgdGhlc2Ugc3BlY2lmaWVkLCB0aGUgZmlsZSB3aWxsIG5vdCBwbGF5OyB5ZXQgd2l0aCBi b3RoIHRoZSBmaWxlIGlzIGRvd25sb2FkZWQgPGVtPnR3aWNlPC9lbT4gYW5kIHRoZSBkb3du bG9hZCBjb3VudGVyIGdvZXMgdXAgYnkgdHdvLiBTbyB0aGUgbnVtYmVyIG9mIHZpc2l0b3Jz IHlvdSBoYXZlIHVzaW5nIHRoaXMgYnJvd3NlciBtYXkgc2tldyB5b3VyIGRvd25sb2FkIHN0 YXRzLiBJZiB5b3VyIGJvc3MgbGlrZXMgdG8gcmVseSBvbiBzdWNoIHZhbHVlcyBpdCBtaWdo dCBiZSBiZXN0IHRvIHR1cm4gdGhlIG9wdGlvbiBvZmYgYW5kIGtlZXAgcXVpZXQhIFdoZW4g dXNpbmcgPGNvZGU+Y291bnRfZG93bmxvYWRzPSZxdW90OzAmcXVvdDs8L2NvZGU+LCB5b3Ug bWF5IHJlcXVpcmUgdXNlIG9mIHRoZSA8Y29kZT5maWxlc19kaXI8L2NvZGU+IGF0dHJpYnV0 ZSBpZiB5b3UgaGF2ZSBjaGFuZ2VkIHlvdXIgZGVmYXVsdCB0ZXh0cGF0dGVybiBkaXJlY3Rv cnkgc3RydWN0dXJlPC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3Bh biBjbGFzcz0iYXR0LW5hbWUiPmZpbGVzX2Rpcjwvc3Bhbj4gOiB3aGVuIHRoZSA8Y29kZT5j b3VudF9kb3dubG9hZHM8L2NvZGU+IGF0dHJpYnV0ZSBpcyB0dXJuZWQgb2ZmLCBmaWxlcyBh cmUgc2VydmVkIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi PlVSTDwvc3Bhbj4gb2YgdGhlIDxjb2RlPmZpbGVzPC9jb2RlPiBkaXJlY3RvcnkuIFRoaXMg aXMgdXN1YWxseSA8ZW0+aHR0cDovL3lvdXJkb21haW4uY29tL2ZpbGVzPC9lbT4uIElmIHlv dSBoYXZlIGNoYW5nZWQgeW91ciBkaXJlY3Rvcnkgc3RydWN0dXJlIGFuZCB0aGUgZmlsZXMg ZGlyZWN0b3J5IGlzPGJyIC8+CnNvbWV3aGVyZSBlbHNlIG9yIGNhbGxlZCBzb21ldGhpbmcg ZWxzZSwgc3BlY2lmeSBpdCB3aXRoIHRoaXMgYXR0cmlidXRlLiBUaGUgZGVmYXVsdCBpcyA8 Y29kZT5maWxlczwvY29kZT48L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+Y2xhc3M8L3NwYW4+IDogYXBwbHkgYW4gb3ZlcmFs bCA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyB0byBlYWNoIGJhbm5lciBm aWxlJiM4MjE3O3MgPGNvZGU+Jmx0O29iamVjdCZndDs8L2NvZGU+IHRhZy4gRGVmYXVsdDog ZW1wdHkgKGkuZS4gbm8gY2xhc3MpLiBDYW4gYmUgb3ZlcnJpZGRlbiBvbiBhIGZpbGUtYnkt ZmlsZSBiYXNpcyBieSBzcGVjaWZ5aW5nIHRoZSB2YWx1ZSA8Y29kZT5jbGFzcz1teUNsYXNz TmFtZTs8L2NvZGU+IGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZCBvZiBhbnkgZmlsZS48L2xp PgoJPC91bD4KCgk8aDMgaWQ9ImZpZWxkcyI+QXJ0aWNsZSBmaWVsZCBjb2RlczwvaDM+CgoJ PHA+VXNlIHRoZXNlIGNvZGVzIHRvIGdyYWIgaXRlbXMgZnJvbSB0aGUgY3VycmVudGx5IGRp c3BsYXllZCBhcnRpY2xlIGFuZCBpbmplY3QgdGhlbSBpbnRvIHRhZyBhdHRyaWJ1dGVzLiBX aGVuIHVzaW5nIGZpZWxkIGNvZGVzLCB0aGUgdGFncyBjYW4gYmUgY29tYmluZWQgd2l0aCBm aXhlZCB0ZXh0IChlLmcuIDxjb2RlPmNhdGVnb3J5PSZxdW90O215Y2F0LT9hcnRpY2xlX2lt YWdlXz9zJnF1b3Q7PC9jb2RlPiBtaWdodCBjaG9vc2UgaW1hZ2VzIGZyb20gdGhlIGNhdGVn b3J5ICYjODIyMDtteWNhdC0xMl9saW9uJiM4MjIxOyBpZiB0aGUgY3VycmVudCBhcnRpY2xl IHdhcyBpbiBzZWN0aW9uICYjODIxNjtsaW9uJiM4MjE3OyBhbmQgaGFkIGFuIGFydGljbGUg aW1hZ2Ugb2YgJiM4MjE2OzEyJiM4MjE3OykuIE5vdGUgdGhhdCBhbnkgYXJ0aWNsZSBvciBj dXN0b20gZmllbGRzICYjODIxMjsgaW5jbHVkaW5nIHRob3NlIHV0aWxpc2luZyBnbHpfY3Vz dG9tX2ZpZWxkcyAmIzgyMTI7IG1heSBjb250YWluIGxpc3RzIG9mIGl0ZW1zLjwvcD4KCgk8 dWw+CgkJPGxpPjxjb2RlPj9jPC9jb2RlPiA6IHVzZSB0aGUgY3VycmVudCBnbG9iYWwgKGFy dGljbGUpIGNhdGVnb3J5PC9saT4KCQk8bGk+PGNvZGU+IWM8L2NvZGU+IDogdXNlcyBldmVy eXRoaW5nIGV4Y2VwdCB0aGUgY3VycmVudCBnbG9iYWwgY2F0ZWdvcnk8L2xpPgoJCTxsaT48 Y29kZT4/czwvY29kZT4gOiB1c2UgdGhlIGN1cnJlbnQgPHNwYW4gY2xhc3M9ImNhcHMiPlRY UDwvc3Bhbj4gc2VjdGlvbjwvbGk+CgkJPGxpPjxjb2RlPiFzPC9jb2RlPiA6IHVzZXMgZXZl cnl0aGluZyBleGNlcHQgdGhlIGN1cnJlbnQgc2VjdGlvbjwvbGk+CgkJPGxpPjxjb2RlPj90 PC9jb2RlPiA6IHVzZSB0aGUgY3VycmVudCBhcnRpY2xlJiM4MjE3O3MgdXJsLXRpdGxlPC9s aT4KCQk8bGk+PGNvZGU+IXQ8L2NvZGU+IDogdXNlcyBhbGwgdXJsLXRpdGxlcyBleGNlcHQg dGhlIGN1cnJlbnQgYXJ0aWNsZSAocHJvYmFibHkgbm90IG11Y2ggdXNlISk8L2xpPgoJCTxs aT48Y29kZT4/aWQ8L2NvZGU+IDogdXNlIHRoZSBjdXJyZW50IGFydGljbGUmIzgyMTc7cyBJ RCBhcyB0aGUgbmFtZSBvZiBhbiBpbWFnZSBjYXRlZ29yeS4gVXNlZnVsIHRvIG1ha2UgYSBw ZXItYXJ0aWNsZSBpbWFnZSBnYWxsZXJ5IChlLmcuIDxjb2RlPmNhdGVnb3J5PSZxdW90O2Fy dGljbGUtP2lkJnF1b3Q7PC9jb2RlPik8L2xpPgoJCTxsaT48Y29kZT4haWQ8L2NvZGU+IDog dXNlcyBhbGwgaW1hZ2UgSURzIGV4Y2VwdCB0aGUgY3VycmVudCBhcnRpY2xlPC9saT4KCQk8 bGk+PGNvZGU+P2ZpZWxkbmFtZTwvY29kZT4gOiBsb29rcyBpbiB0aGUgZ2l2ZW4gZmllbGRu YW1lIG9mIHRoZSBjdXJyZW50IGFydGljbGUuIERlc2lnbmVkIHByaW1hcmlseSBmb3IgdXNl IHdpdGggY3VzdG9tIGZpZWxkcyAoZS5nLiA8Y29kZT5pZD0mcXVvdDs/Y3VzdG9tMSZxdW90 OzwvY29kZT4pLCBpdCBjYW4gYWxzbyBiZSBhbnkgb3RoZXIgZmllbGQgZnJvbSB5b3VyIGFy dGljbGUuIENvbW1vbiBmaWVsZHMgYXJlIDxjb2RlPj9leGNlcnB0PC9jb2RlPiBAP2NhdGVn b3J5MUAgPGNvZGU+P2tleXdvcmRzPC9jb2RlPiBAP2FydGljbGVfaW1hZ2VAIG9yIDxjb2Rl Pj9hdXRob3JpZDwvY29kZT4uPC9saT4KCTwvdWw+CgoJPHA+VG8gbmVnYXRlIGFueSBjYXRl Z29yeSBzZWxlY3Rpb24sIHVzZSA8Y29kZT4hY2F0ZWdvcnk8L2NvZGU+IG9yIDxjb2RlPiFm aWVsZF9uYW1lPC9jb2RlPi4gSWYgeW91IGxpc3Qgc3BlY2lmaWMgaW1hZ2UgY2F0ZWdvcmll cyAoZS5nLiA8Y29kZT5jYXRlZ29yeT0mcXVvdDshbGFuZHNjYXBlLCAhYmlyZHMmcXVvdDs8 L2NvZGU+KSB0aG9zZSBjYXRlZ29yaWVzIHdpbGwgYmUgZXhjbHVkZWQuIElmIHlvdSBzcGVj aWZ5IGEgZmllbGQgbmFtZSBzdWNoIGFzIDxjb2RlPiFrZXl3b3JkczwvY29kZT4sIHRoZSBj b250ZW50cyBvZiB0aGF0IGZpZWxkIHdpbGwgYmUgcmVhZCBhbmQgdGhlIGxpc3Qgb2YgaW1h Z2UgY2F0ZWdvcmllcyBmb3VuZCB0aGVyZSB3aWxsIGJlIGV4Y2x1ZGVkLjwvcD4KCgk8cD5O b3RlIHRoYXQgaWYgeW91IHNwZWNpZnkgYSBmaWVsZCBuYW1lIGFuZCB0aGF0IGZpZWxkIGlu IHRoZSBhcnRpY2xlIGlzIGVtcHR5LCB0aGUgbmFtZSB3aWxsIGJlIHRyZWF0ZWQgYXMgaWYg aXQgd2FzIGFuIGFjdHVhbCBpbWFnZSBjYXRlZ29yeS4gU28gaWYgeW91IHNwZWNpZmllZCA8 Y29kZT5jYXRlZ29yeT0mcXVvdDs/a2V5d29yZHMmcXVvdDs8L2NvZGU+IGFuZCB0aGUgJiM4 MjE2O2tleXdvcmRzJiM4MjE3OyBmaWVsZCBpbiB0aGUgY3VycmVudCBhcnRpY2xlIHdhcyBl bXB0eSwgaXQgd291bGQgbG9vayBmb3IgYW4gaW1hZ2UgY2F0ZWdvcnkgbmFtZWQgJiM4MjIw O2tleXdvcmRzJiM4MjIxOy48L3A+CgoJPHA+QWxzbyBub3RlIHRoYXQsIHJlZ2FyZGxlc3Mg b2YgdGhlIG9yZGVyIHlvdSBsaXN0IHRoZW0sIGFsbCAmIzgyMTY7cG9zaXRpdmVzJiM4MjE3 OyB3aWxsIGJlIHByb2Nlc3NlZCBmaXJzdCwgdGhlbiBhbnkgZXhjbHVzaW9ucyBhcHBsaWVk LjwvcD4KCgk8aDIgaWQ9ImV4YW1wbGVzIj5FeGFtcGxlczwvaDI+CgoJPHA+VG8gaGlnaGxp Z2h0IHRoZSBmZWF0dXJlcywgd2UgYXJlIGdvaW5nIHRvIHVzZSBhbiBleGFtcGxlIG9mIGEg em9vIHdlYiBzaXRlLiBPbiB0aGlzIHNpdGUgeW91IGhhdmUgdGhyZWUgc2VjdGlvbnM6ICYj ODIyMDthYm91dCYjODIyMTssICYjODIyMDthbmltYWxzJiM4MjIxOyBhbmQ8YnIgLz4KJiM4 MjIwO3RvdXJzJiM4MjIxOy4gWW91IGhhdmUgaW1hZ2VzIG9mIHZhcmlvdXMgYW5pbWFscyB1 bmRlciBhbiBpbWFnZSBjYXRlZ29yeSBjYWxsZWQgJiM4MjIwO2FuaW1hbHMmIzgyMjE7LiBC ZWxvdyB0aGF0IHRoZXkgYXJlIHNlcGFyYXRlZCBpbnRvICYjODIyMDttYW1tYWxzJiM4MjIx OywgJiM4MjIwO3JlcHRpbGVzJiM4MjIxOywgYW5kICYjODIyMDtiaXJkcyYjODIyMTsuIFlv dXIgYWx0IHRleHQgaG9sZHMgc3VpdGFibGUgYWx0ZXJuYXRlIGRlc2NyaXB0aW9ucyBvZiB0 aGUgYW5pbWFscyBhbmQgdGhlIGNhcHRpb24gdGV4dCBpcyBhIHVybCB0byBhbiBhcnRpY2xl IGFib3V0IGVhY2ggYW5pbWFsLiBZb3UgYWxzbyBoYXZlIG90aGVyIGltYWdlIGNhdGVnb3Jp ZXMgZm9yIHRoZSByZXN0IG9mIHlvdXIgc2l0ZS48L3A+CgoJPGgyIGlkPSJpbWVnIj5JbWFn ZSBtb2RlIGV4YW1wbGVzPC9oMj4KCgk8aDMgaWQ9ImVnMSI+RXhhbXBsZSAxPC9oMz4KCjxw cmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3JhbmRv bV9iYW5uZXIgY2F0ZWdvcnk9JnF1b3Q7YW5pbWFscyZxdW90OyBsaW1pdD0mcXVvdDs0JnF1 b3Q7CiAgICAgc3ViY2F0cz0mcXVvdDthbGwmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoK CTxwPlRoYXQgd291bGQgcHVsbCBvdXQgZm91ciBwaWN0dXJlcyBvZiBhbnkgYW5pbWFsIHRv IHNob3cgb24geW91ciBmcm9udCBwYWdlOyBtYXliZSBhcnJhbmdlZCBpbnRvIGEgbmVhdCBz cXVhcmUhPC9wPgoKCTxoMyBpZD0iZWcyIj5FeGFtcGxlIDI8L2gzPgoKPHByZSBjbGFzcz0i YmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX2Jhbm5lciBj YXRlZ29yeT0mcXVvdDttYW1tYWxzLCByZXB0aWxlcyZxdW90OwogICAgIGxpbmtfaW49JnF1 b3Q7Y2FwdGlvbiZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+V291bGQgZGlzcGxh eSBhIHJhbmRvbSBwaWN0dXJlIGZyb20gZWl0aGVyIHRoZSBtYW1tYWxzIG9yIHJlcHRpbGVz IGNhdGVnb3JpZXMuIFRoZSBpbWFnZSB3b3VsZCBiZSBjbGlja2FibGUgYW5kIHRoZSBsaW5r IHdvdWxkIHRha2UgeW91IHRvIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBn aXZlbiBpbiB0aGUgY2FwdGlvbiBmaWVsZCBvZiB0aGF0IGltYWdlLiBJZiB0aGUgY2FwdGlv biBmaWVsZCBoYXBwZW5lZCB0byBiZSBlbXB0eSwgdGhlIGxpbmsgd291bGQgYmUgc3VwcmVz c2VkLjwvcD4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAzPC9oMz4KCjxwcmUgY2xhc3M9ImJs b2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDtzdHlsZSB0eXBlPSZxdW90O3RleHQvY3Nz JnF1b3Q7Jmd0OzsKI215RGl2IHsKICBiYWNrZ3JvdW5kOiB1cmwoJmx0O3R4cDpzbWRfcmFu ZG9tX2Jhbm5lciBjYXRlZ29yeT0mcXVvdDthbmltYWxzJnF1b3Q7CiAgICAgc3ViY2F0cz0m cXVvdDsxJnF1b3Q7IHJhd191cmw9JnF1b3Q7MSZxdW90OyAvJmd0Oykgbm8tcmVwZWF0IHRv cDsKfQombHQ7L3N0eWxlJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhpcyBraW5kIG9mIHN5 bnRheCBjYW4gYmUgdXNlZCBpZiB5b3Ugb25seSB3YW50ZWQgdGhlIGJhY2tncm91bmQgb2Yg YSBzcGVjaWZpYyBkaXYgdGFnIHRvIGhvbGQgeW91ciByYW5kb20gaW1hZ2UuPC9wPgoKCTxo MyBpZD0iZWc0Ij5FeGFtcGxlIDQ8L2gzPgoKCTxwPklmIHlvdSBhcnJhbmdlZCB5b3VyIHNp dGUgc28gdGhhdCB5b3UgaGFkIGFydGljbGUgY2F0ZWdvcmllcyBzdWNoIGFzICYjODIyMDtt YW1tYWxzJiM4MjIxOyBhbmQgJiM4MjIwO3JlcHRpbGVzJiM4MjIxOyAobWlycm9yaW5nIHlv dXIgaW1hZ2UgY2F0ZWdvcmllcyksIHlvdSBjb3VsZCBkbyB0aGlzOjwvcD4KCjxwcmUgY2xh c3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3JhbmRvbV9iYW5u ZXIgY2F0ZWdvcnk9JnF1b3Q7P2MmcXVvdDsKICAgICBsaW5rX2luPSZxdW90O2NhcHRpb24m cXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoZSA8Y29kZT4/PC9jb2RlPiB0ZWxs cyB0aGUgcGx1Z2luIHlvdSBkb24mIzgyMTc7dCBrbm93IHdoYXQgdGhlIChpbWFnZSkgY2F0 ZWdvcnkgaXMgZ29pbmcgdG8gYmUgd2hlbiB5b3UgY29kZSB0aGUgZm9ybSwgYnV0IHlvdSB3 YW50IGl0IHRvIGJlIHJlYWQgZnJvbSB0aGUgY3VycmVudCBhcnRpY2xlIHRoYXQgYSB2aXNp dG9yIGlzIHZpZXdpbmcuIFNpbmNlIG91ciBhcnRpY2xlIGNhdGVnb3JpZXMgbWltaWMgb3Vy IGltYWdlIGNhdGVnb3JpZXMgaW4gdGhpcyBjYXNlLCA8Y29kZT4/YzwvY29kZT4gbWVhbnMg JiM4MjIwO3JlYWQgdGhlIGFydGljbGUgY2F0ZWdvcnkgYW5kIHVzZSB0aGF0IGFzIHRoZSBp bWFnZSBjYXRlZ29yeSYjODIyMTsuPC9wPgoKCTxwPlNvIGlmIHlvdXIgdmlzaXRvciB3YXMg dmlld2luZyBhIHBhZ2UgYWJvdXQgYSByZXB0aWxlLCB0aGUgcmFuZG9tIGltYWdlIGRpc3Bs YXllZCBvbiB0aGUgcGFnZSB3b3VsZCBiZSBvZiBhbm90aGVyIHJlcHRpbGUgKHBvc3NpYmx5 IHRoZTxiciAvPgpzYW1lIG9uZSkuIFRoZXJlIGFyZSA8YSBocmVmPSIjZmllbGRzIj5tYW55 IG90aGVyIG9wdGlvbnM8L2E+LjwvcD4KCgk8aDMgaWQ9ImVnNSI+RXhhbXBsZSA1PC9oMz4K CjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3Jh bmRvbV9iYW5uZXIgY2F0ZWdvcnk9JnF1b3Q7YW5pbWFscywgIWMmcXVvdDsKICAgICBzdWJj YXRzPSZxdW90OzEmcXVvdDsgbGlua19pbj0mcXVvdDtjYXB0aW9uJnF1b3Q7IGRpc3BsYXlf dXJsPSZxdW90OzAmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlNsaWdodGx5IG1v cmUgdXNlZnVsLCB0aGlzIG9uZS4gSXQgdGVsbHMgdGhlIHBsdWdpbiB0byBzZWxlY3QgYW55 IGFuaW1hbCBpbWFnZSBmcm9tIHRoZSB0b3AgbGV2ZWwgYW5kIGZpcnN0IHN1Yi1jYXRlZ29y eSBsZXZlbCBidXQgPGVtPm5vdDwvZW0+IG9uZSBmcm9tIHRoZSBjdXJyZW50IGNhdGVnb3J5 IHRoYXQgaXMgYmVpbmcgdmlld2VkLiBTbyBpdCYjODIxNztsbCBlZmZlY3RpdmVseSAmIzgy MTY7YWR2ZXJ0aXNlJiM4MjE3OyBvdGhlciBjYXRlZ29yaWVzIGZvciB5b3UuIFRoZSA8Y29k ZT5kaXNwbGF5X3VybDwvY29kZT4gaXMgdHVybmVkIG9mZiB0aGlzIHRpbWUgc28gdGhlIDxz cGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGluIHRoZSBjYXB0aW9uIGZpZWxkIGRvZXMg bm90IGFwcGVhciBhcyB0aGUgPGNvZGU+dGl0bGU8L2NvZGU+IGF0dHJpYnV0ZSB0byB0aGUg aW1hZ2U7IHRoZSBhbHQgdGV4dCBpcyB1c2VkIGluc3RlYWQuPC9wPgoKCTxoMyBpZD0iZWc2 Ij5FeGFtcGxlIDY8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9j ayI+Jmx0O3R4cDpzbWRfcmFuZG9tX2Jhbm5lciBjYXRlZ29yeT0mcXVvdDtyZXB0aWxlcywg P2N1c3RvbTEmcXVvdDsKICAgICBpZD0mcXVvdDs0LTgsIDEyJnF1b3Q7IGxpbmtfaW49JnF1 b3Q7Y2FwdGlvbiZxdW90OyBzdWJjYXRzPSZxdW90O2FsbCZxdW90OyAvJmd0Owo8L2NvZGU+ PC9wcmU+CgoJPHA+R2l2ZXMgeW91IGEgcmFuZG9tIGltYWdlIGNob3NlbiBmcm9tIHRoZSAm IzgyMTY7cmVwdGlsZXMmIzgyMTc7IGltYWdlIGNhdGVnb3J5LCBpbWFnZXMgNCwgNSwgNiwg NywgOCBvciAxMiBhbmQgYWxzbyBhbnkgY2F0ZWdvcmllcyBsaXN0ZWQgaW4gY3VzdG9tMSBv ZiB0aGUgY3VycmVudGx5IHZpZXdlZCBhcnRpY2xlLiBJZiB5b3UgcHV0ICYjODIyMDttYW1t YWxzLCBiaXJkcywgcGVuZ3VpbnMmIzgyMjE7IGluIGN1c3RvbV8xIHdoZW4geW91IHdyb3Rl IHRoZSBhcnRpY2xlIHlvdSB3b3VsZCBnZXQgYW4gaW1hZ2UgY2hvc2VuIGZyb20gdGhvc2Ug aW1hZ2UgSURzIHBsdXMgYWxsIGZvdXIgY2F0ZWdvcmllcyAoYW5kIHRoZWlyIHN1Yi1jYXRl Z29yaWVzIGluIHRoaXMgY2FzZSkuIEluY2lkZW50YWxseSwgdGhpcyBzb3J0IG9mIGlkZWEg Y291bGQgYmUgdXNlZCB3aXRoIDxjb2RlPmNhdGVnb3J5PSZxdW90Oz9rZXl3b3JkcyZxdW90 OzwvY29kZT4gdG8gZ2V0IGEgbGlzdCBvZiAmIzgyMjA7cmVsYXRlZCBpbWFnZSBjYXRlZ29y aWVzJiM4MjIxOyYjODIzMDs8L3A+CgoJPHA+Tm90ZSB5b3UgY2FuIHNpbXBseSBuZWdhdGUg dGhlIGNob2ljZSBsaWtlIHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNs YXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX2Jhbm5lciBjYXRlZ29yeT0mcXVvdDth bmltYWxzLCAhY3VzdG9tMSZxdW90OwogICAgIGxpbmtfaW49JnF1b3Q7Y2FwdGlvbiZxdW90 OyBzdWJjYXRzPSZxdW90O2FsbCZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+U28g dGhhdCB3b3VsZCBjaG9vc2UgYW4gaW1hZ2UgZnJvbSBhbnkgb2YgdGhlIGFuaW1hbHMgZXhj ZXB0IG9uZXMgdGhhdCB3ZXJlIGluIGFueSBjYXRlZ29yaWVzIGxpc3RlZCBpbiBjdXN0b20x LiBZb3UgY2FuIG5lZ2F0ZSBpbWFnZSBJRHMgYW5kIHJhbmdlcyBhcyB3ZWxsIChlLmcuIDxj b2RlPmlkPSZxdW90OzE0LTIwLCAyNCwgITE5LCA1LCAhMTAtMTYmcXVvdDs8L2NvZGU+IHdv dWxkIGdpdmUgYW4gaW1hZ2UgcG9vbCBvZiA1LCAxNywgMTgsIDIwLCAyNCkuPC9wPgoKCTxo MyBpZD0iZWc3Ij5FeGFtcGxlIDc8L2gzPgoKCTxwPkNhdGVnb3JpZXMgb24gdGhlaXIgb3du IG9ubHkgdGVsbCBoYWxmIHRoZSBzdG9yeS4gVGhlcmUgYXJlIHRpbWVzIHlvdSBtaWdodCB3 YW50IHRvIGluY2x1ZGUgb3IgZXhjbHVkZSBzcGVjaWZpYyBwaWVjZXMgb2YgdGV4dCBmb3Vu ZCBpbiB5b3VyIGltYWdlcy4gVGhlIHRleHQgY291bGQgYmUgaW4gdGhlIGZpbGVuYW1lLCB0 aGUgaWQsIHRoZSBjYXB0aW9uLCB0aGUgYWx0IHRleHQsIG9yIHRoZSBjYXRlZ29yeSBuYW1l LjwvcD4KCgk8cD5JbWFnaW5lIHlvdXIgdmlzaXRvciBjbGlja2VkIGEgcGljdHVyZSBvZiBh IGNyb2NvZGlsZSBhbmQgdGhleSBhcmUgdmlld2luZyB0aGUgZ3Jpc2x5IGRldGFpbHMgb24g YW4gYXJ0aWNsZSBwYWdlLiBZb3UgbWlnaHQgd2FudCB0byBwdXQgJiM4MjIwO0lmIHlvdSBs aWtlZCB0aGlzLCBmaW5kIG91dCBhYm91dCB0aGVzZSBhbmltYWxzIHRvbzomIzgyMjE7IGFu ZCBzaG93IGEgZmV3IHJhbmRvbSBpbWFnZXMgdGhhdCBhbGxvdyB0aGVtIHRvIHNlZSBzdHVm ZiBhYm91dCBvdGhlciBhbmltYWxzLiBPYnZpb3VzbHksIHdlIGRvbiYjODIxNzt0IHdhbnQg YSBwaWN0dXJlIG9mIGEgY3JvY29kaWxlIHRvIHNob3cgdXAuIEFuZCBtYXliZSB3ZSBkb24m IzgyMTc7dCB3YW50IHRvIHNob3cgYWxsaWdhdG9ycyBlaXRoZXIgYmVjYXVzZSB0aGV5JiM4 MjE3O3JlIHF1aXRlIHNpbWlsYXIgKHNvcnJ5IGFueSByZXB0aWxlLWxvdmVycyB3aG8gbWF5 IGRpc2FncmVlISk8L3A+CgoJPHA+U28gd2UgY2FuIGRvIHRoaXM6PC9wPgoKPHByZSBjbGFz cz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX2Jhbm5l ciBjYXRlZ29yeT0mcXVvdDthbmltYWxzJnF1b3Q7IHN1YmNhdHM9JnF1b3Q7YWxsJnF1b3Q7 CiAgICAgbGlua19pbj0mcXVvdDtjYXB0aW9uJnF1b3Q7IGF2b2lkX3RleHQ9JnF1b3Q7Y3Jv YywgY3JvY29kaWxlLCBhbGxpZ2F0b3ImcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxw PlRoYXQgd291bGQgY2hvb3NlIGFueSBwaWN0dXJlIGZyb20gdGhlIGFuaW1hbHMgY2F0ZWdv cnkgKGFuZCBhbGwgaXRzIHN1Yi1jYXRlZ29yaWVzKSBhcyBsb25nIGFzIHRoZSBuYW1lIG9m IHRoZSBpbWFnZSA8ZW0+ZGlkbiYjODIxNzt0PC9lbT4gY29udGFpbiAmIzgyMTY7Y3JvYyYj ODIxNzsgb3IgJiM4MjE2O2Nyb2NvZGlsZSYjODIxNzsgb3IgJiM4MjE2O2FsbGlnYXRvciYj ODIxNzsuPC9wPgoKCTxoMyBpZD0iZWc4Ij5FeGFtcGxlIDg8L2gzPgoKCTxwPklmIHlvdXIg ZmlsZW5hbWVzIHdlcmUgYSBsaXR0bGUgdW5zdHJ1Y3R1cmVkLCBtYXliZSB5b3UmIzgyMTc7 ZCB3YW50IHRvIGNoZWNrIGJvdGggdGhlIGFsdCB0ZXh0IGFuZCBjYXB0aW9uIHRleHQgZm9y IGEgbWF0Y2ggYXMgd2VsbCBhcyB0aGUgZmlsZW5hbWUuIFVzZSA8Y29kZT5jb21wYXJlX3Rv PC9jb2RlPiBmb3IgdGhpczo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj4mbHQ7dHhwOnNtZF9yYW5kb21fYmFubmVyIGNhdGVnb3J5PSZxdW90O2FuaW1h bHMmcXVvdDsgc3ViY2F0cz0mcXVvdDthbGwmcXVvdDsKICAgICBsaW5rX2luPSZxdW90O2Nh cHRpb24mcXVvdDsgYXZvaWRfdGV4dD0mcXVvdDtjcm9jLCBjcm9jb2RpbGUsIGFsbGlnYXRv ciZxdW90OwogICAgIGNvbXBhcmVfdG89JnF1b3Q7bmFtZSwgYWx0LCBjYXB0aW9uJnF1b3Q7 IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnOSI+RXhhbXBsZSA5PC9oMz4KCjxw cmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3JhbmRv bV9iYW5uZXIgY2F0ZWdvcnk9JnF1b3Q7YW5pbWFscyZxdW90OyBzdWJjYXRzPSZxdW90O2Fs bCZxdW90OwogICAgIGF2b2lkX3RleHQ9JnF1b3Q7P3MsID9jJnF1b3Q7IGNvbXBhcmVfdG89 JnF1b3Q7bmFtZSwgYWx0LCBjYXB0aW9uLCBjYXRlZ29yeSZxdW90OyAvJmd0Owo8L2NvZGU+ PC9wcmU+CgoJPHA+T24gYW4gYXJ0aWNsZSBwYWdlLCBoYXJkLWNvZGluZyBsaXN0cyBvZiB0 aGluZ3MgdG8gaW5jbHVkZS9leGNsdWRlIGlzIGFjY2VwdGFibGUuIEJ1dCBpZiB5b3UmIzgy MTc7cmUgdXNpbmcgYSBmb3JtIHlvdSBkb24mIzgyMTc7dCB3YW50IHRvIGRvIHRoYXQsIHNv IGp1c3QgbGlrZSB0aGUgPGNvZGU+Y2F0ZWdvcnk8L2NvZGU+IG9wdGlvbiB5b3UgY2FuIHVz ZSA8Y29kZT4/PC9jb2RlPiBwbGFjZWhvbGRlcnMgdGhhdCB3aWxsIHJlYWQgc3R1ZmYgZnJv bSB0aGUgY3VycmVudCBhcnRpY2xlLiBUaGlzIGV4YW1wbGUgd2lsbCBwaWNrIGFueSByYW5k b20gYW5pbWFsIGV4Y2VwdCBvbmVzIGZyb20gdGhlIGN1cnJlbnQgc2VjdGlvbiBvciBnbG9i YWwgY2F0ZWdvcnkuIE5vdGUgdGhhdCwgdG8gYmUgb24gdGhlIHNhZmUgc2lkZSwgaXQgY2hl Y2tzIGluIGZvdXIgbG9jYXRpb25zIHRvIGhlbHAgZW5zdXJlIGl0IHdvbiYjODIxNzt0IGZp bmQgYW55dGhpbmcgcmVsYXRlZCB0byB0aGUgY3VycmVudCBjYXRlZ29yeS48L3A+CgoJPGgy IGlkPSJmbWVnIj5GaWxlIG1vZGUgZXhhbXBsZXM8L2gyPgoKCTxwPlRvIGhpZ2hsaWdodCB0 aGUgZmVhdHVyZXMsIHdlIGFyZSBnb2luZyB0byB1c2UgdGhlIHNhbWUgem9vIHdlYiBzaXRl IGFzIGluIHRoZSA8YSBocmVmPSIjaW1lZyI+SW1hZ2UgbW9kZSBleGFtcGxlczwvYT4uIEJ1 dCB0aGlzIHRpbWUsIGFzc3VtZSB5b3UgaGF2ZSB1cGxvYWRlZCBhIGZldyBTaG9ja3dhdmUg Rmxhc2ggZG9jdW1lbnRzIGFib3V0IHZhcmlvdXMgYW5pbWFscyBhbmQgYSBjb3VwbGUgb2Yg c2hvcnQgbW92aWVzIGFib3V0IGNoZWV0YWhzIHVuZGVyIGEgZmlsZSBjYXRlZ29yeSBjYWxs ZWQgJiM4MjIwO2FuaW1hbHMmIzgyMjE7LiBUaGUgbW92aWVzIGFyZSBzdWItY2F0ZWdvcmlz ZWQgYXMgYmVmb3JlLiBUaGUgPGNvZGU+ZGVzY3JpcHRpb248L2NvZGU+IGZpZWxkIG9mIGVh Y2ggZmlsZSBob2xkcyBhIHVybCB0byBhbiBhcnRpY2xlIGFib3V0IGVhY2ggYW5pbWFsIHVz aW5nIDxjb2RlPmxpbmtfdXJsPS9hbmltYWxzL2FuaW1hbE5hbWU7PC9jb2RlPjwvcD4KCgk8 cD5Zb3UgY2FuIGRvIGFsbCB0aGUgc2FtZSB0aGluZ3MgYXMgaW4gaW1hZ2UgbW9kZSB0byBj aG9vc2Ugd2hpY2ggZmlsZXMgbWF0Y2ggd2hhdCB0ZXh0L2NhdGVnb3JpZXMgc28gd2UmIzgy MTc7bGwgbm90IGNvdmVyIHRoYXQgaGVyZS4gT25seSB0aGU8YnIgLz4KbmV3IG9wdGlvbnMg YXJlIGNvdmVyZWQgb3Igd2hlcmUgYW4gb3B0aW9uIGRpZmZlcnMgc2lnbmlmaWNhbnRseS48 L3A+CgoJPGgzIGlkPSJmZWcxIj5FeGFtcGxlIDE8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX2Jhbm5lciBtb2RlPSZx dW90O2ZpbGUmcXVvdDsgY2F0ZWdvcnk9JnF1b3Q7YW5pbWFscyZxdW90OwogICAgIGF2b2lk X3RleHQ9JnF1b3Q7P2tleXdvcmRzJnF1b3Q7IGNvbXBhcmVfdG89JnF1b3Q7ZmlsZW5hbWUs IGRlc2NyaXB0aW9uJnF1b3Q7CiAgICAgc3ViY2F0cz0mcXVvdDthbGwmcXVvdDsgLyZndDsK PC9jb2RlPjwvcHJlPgoKCTxwPkZhaXJseSBzdHJhaWdodGZvcndhcmQuIFBpY2tzIGFueSBm aWxlIGluIHRoZSBjYXRlZ29yeSBjYWxsZWQgJiM4MjE2O2FuaW1hbHMmIzgyMTc7IHRoYXQg ZG9lcyBub3QgY29udGFpbiBhbnkgb2YgdGhlIGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIGtl eXdvcmRzIGluIGl0cyBmaWxlbmFtZSBvciBkZXNjcmlwdGlvbiBmaWVsZHMuPC9wPgoKCTxw PkFzc3VtaW5nIGl0IHNlbGVjdHMgYSBzaG9ja3dhdmUgZmxhc2ggZmlsZSwgdGhlIHRhZyBp dCBvdXRwdXRzIG1pZ2h0IGJlOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFz cz0iYmxvY2siPiZsdDtvYmplY3QgZGF0YT0mcXVvdDtodHRwOi8vbXlncmVhdHpvby5jb20v ZmlsZV9kb3dubG9hZC8yJnF1b3Q7CiAgICAgICB0eXBlPSZxdW90O2FwcGxpY2F0aW9uL3gt c2hvY2t3YXZlLWZsYXNoJnF1b3Q7CiAgICAgICB3aWR0aD0mcXVvdDszMDAmcXVvdDsgaGVp Z2h0PSZxdW90Ozc1JnF1b3Q7IGlkPSZxdW90O2lkNzQ2NTg5MyZxdW90OyZndDsKJmx0O3Bh cmFtIG5hbWU9JnF1b3Q7bW92aWUmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDtodHRwOi8vbXln cmVhdHpvby5jb20vZmlsZV9kb3dubG9hZC8yJnF1b3Q7IC8mZ3Q7CiZsdDsvb2JqZWN0Jmd0 Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJmZWcyIj5FeGFtcGxlIDI8L2gzPgoKCTxwPlVz aW5nIHRoZSBzYW1lIG9wdGlvbnMgYXMgaW4gPGEgaHJlZj0iI2ZlZzEiPkV4YW1wbGUgMTwv YT4sIGlmIHlvdSBnbyB0byB0aGUgRmlsZXMgdGFiLCBzZWxlY3QgdGhlIEZsYXNoIGZpbGUg aXQgY2hvc2UgYW5kIGVkaXQgdGhlIGRlc2NyaXB0aW9uIGZpZWxkIHRvIHJlYWQ6PC9wPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+bG9vcD1mYWxzZTsKd2lk dGg9NDUwOwpjb2RlYmFzZT1odHRwOi8vbXlncmVhdHpvby5jb20vOwppZD0mcXVvdDt6b29i amVjdCZxdW90OzsKc3RhbmRieT0mcXVvdDtsb2FkaW5nLi4uJnF1b3Q7OwpiZ2NvbG9yPSMw MDY4MDA7CjwvY29kZT48L3ByZT4KCgk8cD5UaGVuIHlvdSB3b3VsZCBnZXQgYW4gb2JqZWN0 IHRhZyB0aGF0IHJlc2VtYmxlZCB0aGlzOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29k ZSBjbGFzcz0iYmxvY2siPiZsdDtvYmplY3QgZGF0YT0mcXVvdDtodHRwOi8vbXlncmVhdHpv by5jb20vZmlsZV9kb3dubG9hZC8yJnF1b3Q7CiAgICAgICB0eXBlPSZxdW90O2FwcGxpY2F0 aW9uL3gtc2hvY2t3YXZlLWZsYXNoJnF1b3Q7CiAgICAgICB3aWR0aD0mcXVvdDs0NTAmcXVv dDsgaGVpZ2h0PSZxdW90Ozc1JnF1b3Q7IGlkPSZxdW90O3pvb2JqZWN0JnF1b3Q7Jmd0Owom bHQ7cGFyYW0gbmFtZT0mcXVvdDttb3ZpZSZxdW90OwogICAgIHZhbHVlPSZxdW90O2h0dHA6 Ly9teWdyZWF0em9vLmNvbS9maWxlX2Rvd25sb2FkLzImcXVvdDsgLyZndDs7CiZsdDtwYXJh bSBuYW1lPSZxdW90O2xvb3AmcXVvdDsgdmFsdWU9JnF1b3Q7ZmFsc2UmcXVvdDsgLyZhbXA7 Z3Q7CiZsdDtwYXJhbSBuYW1lPSZxdW90O2NvZGViYXNlJnF1b3Q7IHZhbHVlPSZxdW90O2h0 dHA6Ly9teWdyZWF0em9vLmNvbS8mcXVvdDsgLyZndDsKJmx0O3BhcmFtIG5hbWU9JnF1b3Q7 c3RhbmRieSZxdW90OyB2YWx1ZT0mcXVvdDtsb2FkaW5nLi4uJnF1b3Q7IC8mZ3Q7CiZsdDtw YXJhbSBuYW1lPSZxdW90O2JnY29sb3ImcXVvdDsgdmFsdWU9JnF1b3Q7IzAwNjgwMCZxdW90 OyAvJmd0OwombHQ7L29iamVjdCZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkhvcGVmdWxseSB5 b3UgY2FuIHNlZSB0aGF0IGl0JiM4MjE3O3MgcXVpdGUgZmxleGlibGUgYW5kIHNob3VsZCBh bGxvdyB5b3UgdG8gdHdlYWsgYW55IGNvbnRlbnQgdG8gcGxheSBpbiBtb3N0IGJyb3dzZXJz LjwvcD4KCgk8aDMgaWQ9ImZlZzMiPkV4YW1wbGUgMzwvaDM+CgoJPHA+VXNpbmcgdGhlIHNh bWUgb3B0aW9ucyBhcyBpbiA8YSBocmVmPSIjZmVnMSI+RXhhbXBsZSAxPC9hPiwgYnV0IGFk ZGluZyBvbmUgb3B0aW9uIDxjb2RlPm52X2RlbGltPSZxdW90Ozo6JnF1b3Q7PC9jb2RlPiBt ZWFucyB0aGF0IGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZCB5b3Ugd291bGQgaGF2ZSB0byBz cGVjaWZ5IHRoZSBuYW1lLXZhbHVlIHBhaXJzIHdpdGggYSBkb3VibGUgY29sb24gYmV0d2Vl biB0aGVtLCBpLmUuPC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9j ayI+bG9vcDo6ZmFsc2U7CndpZHRoOjomcXVvdDs0NTAmcXVvdDs7CmNvZGViYXNlOjpodHRw Oi8vbXlncmVhdHpvby5jb20vOwppZDo6em9vYmplY3Q7CnN0YW5kYnk6OiZxdW90O2xvYWRp bmcuLi4mcXVvdDs7CkZsYXNoVmFyczo6JnF1b3Q7bXlWYXI9aHR0cDovL215Z3JlYXR6b28u Y29tL2xpb25zJnF1b3Q7OwpiZ2NvbG9yOjojMDA2ODAwOwo8L2NvZGU+PC9wcmU+CgoJPHA+ Tm90ZSB0aGUgYWRkaXRpb24gb2YgRmxhc2hWYXJzLiBJZiB5b3Ugd2lzaCB0byBzZW5kIEZs YXNoVmFycyB0byB5b3VyIGFwcGxpY2F0aW9uLCB0aGV5IGhhdmUgdG8gYmUgZGVsaW1pdGVk IHdpdGggYW4gPGNvZGU+PTwvY29kZT4gc28geW91IG11c3QgY2hhbmdlIDxjb2RlPm52X2Rl bGltPC9jb2RlPiB0byBzb21ldGhpbmcgZWxzZS4gQW55IG90aGVyIGNoYXJhY3RlcihzKSB3 aWxsIGRvLCBidXQgdXNpbmcgYSBzaW5nbGUgY29sb24gd291bGQgY2F1c2UgZ3JpZWYgYmVj YXVzZSB0aGF0IGNoYXJhY3RlciBpcyB1c2VkIGluIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8 L3NwYW4+cy48L3A+CgoJPHA+SW5jaWRlbnRhbGx5LCBwYXNzaW5nIGEgRmxhc2hWYXIgaW4g dGhpcyBtYW5uZXIgbWF5IGhlbHAgbWFrZSB5b3VyIGJhbm5lciBjbGlja2FibGUgd2l0aG91 dCByZXNvcnRpbmcgdG8gdXNpbmcgPGNvZGU+d21vZGU9dHJhbnNwYXJlbnQ7PC9jb2RlPiBi ZWNhdXNlIHlvdSBjYW4gc2ltcGx5IHBsYWNlIGEgYnV0dG9uIGluIHlvdXIgbW92aWUgYW5k IHBhc3MgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGluIGZyb20gdGhlIGRl c2NyaXB0aW9uIGZpZWxkIHZpYSBhIEZsYXNoVmFyIGluc3RlYWQgb2YgdXNpbmcgPGNvZGU+ bGlua191cmw8L2NvZGU+LjwvcD4KCgk8aDMgaWQ9ImZlZzQiPkV4YW1wbGUgNDwvaDM+Cgo8 cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9yYW5k b21fYmFubmVyIG1vZGU9JnF1b3Q7ZmlsZSZxdW90OyBjYXRlZ29yeT0mcXVvdDthbmltYWxz JnF1b3Q7CiAgICAgbWF0Y2hfdGV4dD0mcXVvdDtjaGVldGFoJnF1b3Q7IHN1YmNhdHM9JnF1 b3Q7YWxsJnF1b3Q7IGxpbmtfaW49JnF1b3Q7ZGVzY3JpcHRpb24mcXVvdDsKICAgICBjbGFz cz0mcXVvdDtmbG9iamVjdHMmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPklmIG9u ZSBvZiB0aGUgcm93cyBpbiB0aGUgZGVzY3JpcHRpb24gZmllbGQgb2YgdGhlIDxjb2RlPmNo ZWV0YWhfY2hhc2luZ19kZWVyLndtdjwvY29kZT4gZmlsZSBpcyA8Y29kZT51cmxfbGluaz0v YW5pbWFscy9jaGVldGFoLWNoYXNpbmctZGVlcjwvY29kZT4gdGhlbiBjbGlja2luZyBvbiB0 aGUgZW1iZWRkZWQgbW92aWUgd2lsbCB0YWtlIHRoZSB2aXNpdG9yIHRvIHRoYXQgYXJ0aWNs ZS4gSW4gYWRkaXRpb24gdG8gdGhlIHVzdWFsIGF0dHJpYnV0ZXMsIHRoaXMgYW5kIGFsbCBv YmplY3RzIGRpc3BsYXllZCBieSB0aGUgcGx1Z2luIHdpbGwgdGFrZSBvbiBhIDxjb2RlPmNs YXNzPSZxdW90O2Zsb2JqZWN0cyZxdW90OzwvY29kZT4gYXR0cmlidXRlLiBUaGlzIGNhbiBi ZSBvdmVycmlkZGVuIG9uIGEgZmlsZS1ieS1maWxlIGJhc2lzIGJ5IGFkZGluZyA8Y29kZT5j bGFzcz0mcXVvdDthbm90aGVyQ2xhc3NOYW1lJnF1b3Q7OzwvY29kZT4gIGFzIGFuIGVudHJ5 IGluIHRoZSA8Y29kZT5kZXNjcmlwdGlvbjwvY29kZT4gZmllbGQuPC9wPgoKCTxwPk5vdGUg dGhhdCBpZiB5b3VyIGNob3NlbiBtZWRpYSBwbHVnaW4gY2FwdHVyZXMgY2xpY2sgZXZlbnRz IGJlZm9yZSB0aGV5IGFyZSBwYXNzZWQgdG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5ET008 L3NwYW4+LCB0aGUgbGluayB3aWxsIG5vdCBiZSBob25vdXJlZC4gRm9yIEZsYXNoLCB5b3Ug Y2FuIGJ5cGFzcyB0aGlzIGluIG1vc3QgYnJvd3NlcnMgKExpbnV4IGlzIGN1cnJlbnRseSBh biBleGNlcHRpb24pIGJ5IHBhc3NpbmcgPGNvZGU+d21vZGU9dHJhbnNwYXJlbnQ7PC9jb2Rl PiBvciB1c2luZyBhIEZsYXNoVmFyIGFzIGluIDxhIGhyZWY9IiNmZWczIj5FeGFtcGxlIDM8 L2E+PC9wPgoKCTxoMyBpZD0iZmVnNSI+RXhhbXBsZSA1PC9oMz4KCjxwcmUgY2xhc3M9ImJs b2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3JhbmRvbV9iYW5uZXIgbW9k ZT0mcXVvdDtmaWxlJnF1b3Q7IGNhdGVnb3J5PSZxdW90O2FuaW1hbHMmcXVvdDsKICAgICBh dm9pZF90ZXh0PSZxdW90Oz9rZXl3b3JkcyZxdW90OyBjb21wYXJlX3RvPSZxdW90O2ZpbGVu YW1lLCBkZXNjcmlwdGlvbiZxdW90OwogICAgIHN1YmNhdHM9JnF1b3Q7MiZxdW90OyBudl9k ZWxpbT0mcXVvdDs6OiZxdW90OwogICAgIGdsb2JhbF9wYXJhbXM9JnF1b3Q7cGxheWVydmVy c2lvbjo6OTt3aWR0aDo6NzU7aGVpZ2h0OjUwMDsmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJl PgoKCTxwPkluIHRoZSBGaWxlcyB0YWIsIGlmIHlvdSBzZWxlY3QgdGhlIEZsYXNoIGZpbGUg dGhlIHBsdWdpbiBtaWdodCBjaG9vc2UgYW5kIGVkaXQgdGhlIGRlc2NyaXB0aW9uIGZpZWxk IHRvIHJlYWQ6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+ bWltZV90eXBlOjpzd287CnVpZDo6c29iOwpxdWFsaXR5OjpoaWdoOwp3bW9kZTo6dHJhbnNw YXJlbnQ7CmVsZW1lbnRpZDo6bXlGbGFzaENvbnRlbnQ7CkZsYXNoVmFyczo6bGlua3k9aHR0 cDovL215Z3JlYXR6b28uY29tL3RpZ2VycyZhbXA7YW1wO3BpYz10aWdlci5qcGc7CndpZHRo OjoyMDA7CjwvY29kZT48L3ByZT4KCgk8cD5UaGVuIHlvdSBtaWdodCBnZXQgb3V0cHV0IHRo YXQgcmVzZW1ibGVkIHRoaXM6PC9wPgoKCTxwPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny aXB0IiBkZWZlcj0iZGVmZXIiPgogdmFyIHNvYiA9IG5ldyA8c3BhbiBjbGFzcz0iY2FwcyI+ U1dGTzwvc3Bhbj5iamVjdCgmIzgyMjA7aHR0cDovL215Z3JlYXR6b28uY29tL2ZpbGVfZG93 bmxvYWQvMiYjODIyMTssCiAgICAgICAmIzgyMjA7aWQyMTg5NTc0NiYjODIyMTssICYjODIy MDsyMDAmIzgyMjE7LCAmIzgyMjA7NTAwJiM4MjIxOywgJiM4MjIwOzkmIzgyMjE7LCAmIzgy MjA7I2ZmZmZmZiYjODIyMTspOwogc29iLmFkZFBhcmFtKCYjODIyMDtxdWFsaXR5JiM4MjIx OywgJiM4MjIwO2hpZ2gmIzgyMjE7KTsKIHNvYi5hZGRQYXJhbSgmIzgyMjA7d21vZGUmIzgy MjE7LCAmIzgyMjA7dHJhbnNwYXJlbnQmIzgyMjE7KTsKIHNvYi5hZGRWYXJpYWJsZSgmIzgy MjA7bGlua3kmIzgyMjE7LCAmIzgyMjA7aHR0cDovL215Z3JlYXR6b28uY29tL3RpZ2VycyYj ODIyMTspOwogc29iLmFkZFZhcmlhYmxlKCYjODIyMDtwaWMmIzgyMjE7LCAmIzgyMjA7dGln ZXIuanBnJiM4MjIxOyk7CiBzb2Iud3JpdGUoJiM4MjIwO215Rmxhc2hDb250ZW50JiM4MjIx Oyk7PGJyIC8+Cjwvc2NyaXB0PjwvcD4KCgk8cD5Ob3RlIHRoZSAmIzgyMTY7ZGVmZXImIzgy MTc7IG9wdGlvbi4gVGhpcyBpcyBhbiBhdHRlbXB0IHRvIHByZXZlbnQgSUUgZnJvbSBjcmFz aGluZyAod2hpY2ggaXQgc29tZXRpbWVzIGRvZXMpIHdpdGggYW4gJiM4MjIwO29wZXJhdGlv biBhYm9ydGVkJiM4MjIxOyBkaWFsb2cuPC9wPgoKCTxoMiBpZD0iY2hhbmdlbG9nIj5DaGFu Z2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+djAuMSAgSW5pdGlhbCBwdWJsaWMgcmVsZWFzZTwv bGk+CgkJPGxpPnYwLjExIEFkZGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5QRlg8L3NwYW4+IHRv IHF1ZXJ5ICh0aGFua3MgbWVyY3VyeSk8L2xpPgoJCTxsaT52MC4xMiBGaXhlZCBoZWxwIHRv IGluY2x1ZGUgdHJhaWxpbmcgc2xhc2hlcyAodGhhbmtzIHZpdHRvcmlvKTwvbGk+CgkJPGxp PnYwLjEzIFVucmVsZWFzZWQuIEFkZGVkIGxvb2tfaW49Y2F0ZWdvcnkgYW5kIHJlZmVyZXI8 L2xpPgoJCTxsaT52MC4xNCBBZGRlZCBtYXRjaF90ZXh0IGFuZCB1c2VfYWx0ICh0aGFua3Mg bHVrZXBlcm1zbik8L2xpPgoJCTxsaT52MC4xNSBBZGRlZCBhbHdheXNfZGlzcGxheSBhbmQg bGltaXQgKHRoYW5rcyBsdWtlcGVybXNuKTwvbGk+CgkJPGxpPnYwLjE1YSBCdWdmaXggZm9y IGxpbmtjYXB0aW9uICh0aGFua3MgbWVyY3VyeSk8L2xpPgoJCTxsaT52MC4xNiBUaWdodGVu ZWQgaW1hZ2UoKSBwYXJhbXMgZm9yIHR4cCB2NC4wLjQgY29tcGxpYW5jZTwvbGk+CgkJPGxp PnYwLjE3IEFkZGVkIHRodW1iLCBsaW5rcHJlZml4IGFuZCBsaW5rYWx0IG9wdGlvbnM8L2xp PgoJCTxsaT52MC4xN2EgYmlkIG9wdGlvbiBub3cgd29ya3Mgd2l0aCBleGlzdGluZyB1cmwg cGFyYW1zICh0aGFua3MgUGFwdWFzcyk8L2xpPgoJCTxsaT52MC4xOCBBZGRlZCBpbWdjbGFz cyBvcHRpb24gKHRoYW5rcyBEaWdpdGFsUmVhbG0pPC9saT4KCQk8bGk+djAuMiAgTWFqb3Ig b3ZlcmhhdWwuIEFkZGVkIHN1YmNhdGVnb3J5IHN1cHBvcnQgKHRoYW5rcyBsdWtlcGVybXNu IGFuZCBzYW50aGVvKS4gVXNlcyBzbWRfbGliLiBFbmhhbmNlZCBtYXRjaF90ZXh0L2F2b2lk X3RleHQgc28gbG9va19pbiBpcyBubyBsb25nZXIgbmVlZGVkOyBkcm9wcGVkIHVzZV9hbHQg YW5kIGFkZGVkIGNvbXBhcmVfdG87IHJlcGxhY2VkIGxpbmtjYXB0aW9uL2xpbmthbHQgd2l0 aCBsaW5rX2luOyBhZGRlZCBpZF9wcmVmaXg7IGxpbmtwcmVmaXggaXMgbm93IGxpbmtfcHJl Zml4PC9saT4KCQk8bGk+djAuMjEgQWRkZWQgPGFjcm9ueW0gdGl0bGU9Ik11bHRpLUxpbmd1 YWwgUGFjayI+PHNwYW4gY2xhc3M9ImNhcHMiPk1MUDwvc3Bhbj48L2Fjcm9ueW0+IHN1cHBv cnQ8L2xpPgoJCTxsaT52MC4yMiBBZGRlZCByYXdfdXJsIG9wdGlvbjwvbGk+CgkJPGxpPnYw LjIzIEFnYWluc3QgYmV0dGVyIGp1ZGdlbWVudCwgYWRkZWQgdGFyZ2V0IG9wdGlvbiAodGhh bmtzIGpzdHViYnMsIGNkdGF2aWppdCk8L2xpPgoJCTxsaT52MC4zICBBZGRlZCBzdXBwb3J0 IGZvciBmaWxlcyBhcyB3ZWxsIGFzIGltYWdlcyAmIzgyMTE7IGZpbmFsbHksIHZpZGVvL3N3 ZiBiYW5uZXJzIGFyZSBhIHJlYWxpdHkhPC9saT4KCQk8bGk+djAuM2EgRml4ZWQ6IGlmIGNh dGVnb3J5PSYjODIyMTs/ZmllbGQmIzgyMjE7IGlzIGVtcHR5L3JldHVybnMgbm8gcmVzdWx0 cywgcGx1Z2luIHdpbGwgbm8gbG9uZ2VyIGRpc3BsYXkgYSByYW5kb20gaW1hZ2UgZnJvbSB0 aGUgZnVsbCBwb29sPC9saT4KCQk8bGk+djAuMzEgRXh0ZW5kZWQgYWx3YXlzX2Rpc3BsYXku IEFkZGVkIG52X2RlbGltIHRvIHNwZWNpZnkgbmFtZT12YWx1ZSBkZWxpbWl0ZXIgaW4gZmls ZSBtb2RlIHBhcmFtcy4gRml4ZWQ6IGRlZmluZSgpIHdhcm5pbmc8L2xpPgoJCTxsaT52MC4z MiBBZGRlZCBub19wbHVnX3RleHQgYW5kIGdsb2JhbF9wYXJhbXM8L2xpPgoJCTxsaT52MC4z MyBVc2VzIHNtZF9saWIgdjAuMy4gQWRkZWQgc3dmT2JqZWN0IHN1cHBvcnQuIENhbiBub3cg b3ZlcnJpZGUgbWltZSB0eXBlLjwvbGk+CgkJPGxpPnYwLjM0IEFkZGVkIHN0YXRpYyBpbWFn ZSBzdXBwb3J0IHRvIGZpbGVzIG1vZGUoISk8L2xpPgoJCTxsaT52MC40ICBSZWZhY3RvcmVk IGNvZGUgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgbmV3IHNtZF9saWIgZnVuY3Rpb25hbGl0eSAo c3ViY2F0cywgY2F0ZWdvcnkgYW5kIG1hdGNoaW5nKSA7IGFkZGVkIGlkLCBjaGFuZ2VkIGlt Z2NsYXNzIHRvIGNsYXNzIDsgYWRkZWQgZGlzcGxheV91cmwgKHRoYW5rcyBBbmRyZXcgQmxl dmlucykgOyBjYW4gbm93IGxpbmtfaW4gZmlsZSBuYW1lIDsgZml4ZWQgc3dmb2JqZWN0IGJ1 ZyBpbiBmaWxlIG1vZGUgOyByZW1vdmVkIGlkX3ByZWZpeDwvbGk+CgkJPGxpPnYwLjQxIEZp eGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+IHN0cmluZyBidWc8L2xpPgoJPC91 bD4KCgk8aDIgaWQ9ImNyZWRpdHMiPkNyZWRpdHM8L2gyPgoKCTxwPlRoaXMgcGx1Z2luIHdh cyBvcmlnaW5hbGx5IGJhc2VkIG9uIGRydV9yYW5kb21faW1hZ2UgYW5kIHBsYWdpYXJpc2Vk IGlkZWFzIGZyb20gUm9iIFNhYmxlJiM4MjE3O3MgcnNzX3RodW1icG9wIGFuZCB2YXJpb3Vz IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+ZXJzIGluIHRoZSBjb21tdW5pdHkgd2hv IGhhdmUgc3VnZ2VzdGVkIGZlYXR1cmVzIGFuZCBpbXByb3ZlbWVudHMuIE1hbnkgdGhhbmtz IHRvIGFsbCB3aG8gaGF2ZSBoZWxwZWQgY3JhZnQgdGhpcyBwbHVnaW4gYW5kIG9mIGNvdXJz ZSBUZWFtIFRleHRQYXR0ZXJuIGZvciB0aGUgY29vbGVzdCA8c3BhbiBjbGFzcz0iY2FwcyI+ Q01TPC9zcGFuPiBvbiB0aGUgcGxhbmV0LjwvcD4KCgk8cD48L2Rpdj48L3A+CjwhLS0gLS0t IEJFR0lOIFBMVUdJTiBDU1MgLS0tIC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojc21k X2hlbHAgeyBsaW5lLWhlaWdodDoxLjQ1IDt9CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWln aHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9z cGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2Nr IHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3Jv dW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIw cHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgYTpsaW5rLCAjc21kX2hlbHAgYTp2aXNp dGVkIHsgY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRv bTogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBhOmhv dmVyLCAjc21kX2hlbHAgYTphY3RpdmUgeyBjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9u OiBub25lOyBib3JkZXItYm90dG9tOiAycHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206 MXB4O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwg c2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxw IGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAw OyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRf aGVscCBoMyB7IGNvbG9yOiAjNjkzOyBmb250OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2Vy aWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zv cm06IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CiNzbWRfaGVscCBo NCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6 IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQoj c21kX2hlbHAgLmF0dC1uYW1lIHsgZm9udC13ZWlnaHQ6Ym9sZDsgfQojc21kX2hlbHAgLm1h bmQgeyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IH0KI3NtZF9o ZWxwIHRhYmxlIHt3aWR0aDo5MCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRv bToxZW07fQojc21kX2hlbHAgdGQsICNzbWRfaGVscCB0aCB7Ym9yZGVyOjFweCBzb2xpZCAj OTk5OyBwYWRkaW5nOi41ZW0gMDt9CiNzbWRfaGVscCB1bCB7IGxpc3Qtc3R5bGUtdHlwZTpz cXVhcmU7IH0KI3NtZF9oZWxwIGxpIHsgbWFyZ2luLWxlZnQ6MzVweDsgfQojc21kX2hlbHAg LmJyZWFrIHsgbWFyZ2luLXRvcDo1cHg7IH0KPC9zdHlsZT4KPCEtLSAtLS0gRU5EIFBMVUdJ TiBDU1MgLS0tIC0tPgoiO3M6MzoibWQ1IjtzOjMyOiIxM2ZkN2JiMDIwZWVjZDBjOGU3M2Rj YmNiNWUzMWNmZiI7fQ==