# Name: smd_random_banner v0.4 # 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/ # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YTo5OntzOjQ6Im5hbWUiO3M6MTc6InNtZF9yYW5kb21fYmFubmVyIjtzOjY6ImF1dGhvciI7 czoxMToiU3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVm ZGF3c29uLmNvbS8iO3M6NzoidmVyc2lvbiI7czozOiIwLjQiO3M6MTE6ImRlc2NyaXB0aW9u IjtzOjg2OiJSYW5kb20gaW1hZ2Ugb3IgZmlsZSBjaG9zZW4gYnkgY2F0ZWdvcnkvdGV4dC9h cnRpY2xlIGZpZWxkLiBVc2UgZm9yIGFkdmVydGlzaW5nIG9yIGZ1biI7czo0OiJjb2RlIjtz OjE1NjM0OiJmdW5jdGlvbiBzbWRfcmFuZG9tX2Jhbm5lcigkYXR0cykgew0KCWdsb2JhbCAk aW1nX2RpciwgJGZpbGVfYmFzZV9wYXRoLCAkc21kX3JiYW5MYW5nOw0KCXJlcXVpcmVfcGx1 Z2luKCdzbWRfbGliJyk7DQoNCgkvLyBNTFAgc3VwcG9ydA0KCSRzbWRfcmJhbl9zdHIgPSBh cnJheSgNCgkJJ3dpZHRoJyA9PiAnMzAwJywNCgkJJ2hlaWdodCcgPT4gJzc1JywNCgkJJ25v X3BsdWdfdGV4dCcgPT4gJycsDQoJKTsNCgkkc21kX3JiYW5MYW5nID0gbmV3IHNtZF9NTFAo J3NtZF9yYW5kb21fYmFubmVyJywgJ3NtZF9yYmFuJywgJHNtZF9yYmFuX3N0cik7DQoNCglp ZiAoIWRlZmluZWQoJ1NNRF9ETE1fVFInKSkgew0KCQlkZWZpbmUoJ1NNRF9ETE1fVFInLCAn QEAnKTsNCgl9DQoJaWYgKCFkZWZpbmVkKCdTTURfRExNX1JFQycpKSB7DQoJCWRlZmluZSgn U01EX0RMTV9SRUMnLCAnfCcpOw0KCX0NCg0KCS8vIGFsbG93YWJsZSBvcHRpb25zIChkZWZh dWx0IGxpc3RlZCBmaXJzdCkNCgkkYWxsTW9kZSA9IGFycmF5KCJpbWFnZSIsImZpbGUiKTsN CgkkYWxsQ29tcGFyZSA9IGFycmF5KCJpbWFnZTpuYW1lIiwiaW1hZ2U6aWQiLCJpbWFnZTph bHQiLCJpbWFnZTpjYXB0aW9uIiwiaW1hZ2U6Y2F0ZWdvcnkiLCJmaWxlOmZpbGVuYW1lIiwi ZmlsZTppZCIsImZpbGU6Y2F0ZWdvcnkiLCJmaWxlOmRlc2NyaXB0aW9uIiwiZmlsZTpzdGF0 dXMiLCJmaWxlOnNpemUiKTsNCgkkYWxsTGlua0luID0gYXJyYXkoIiIsImltYWdlOmNhcHRp b24iLCJpbWFnZTphbHQiLCJpbWFnZTpuYW1lIiwiZmlsZTpkZXNjcmlwdGlvbiIpOw0KDQoJ Ly8gbG9va3VwIHRhYmxlcw0KCSRodG1sT2JqRml4ZWQgPSBhcnJheSgiaWQiLCJkYXRhIiwi aGVpZ2h0IiwidHlwZSIsIndpZHRoIiwicGxheWVydmVyc2lvbiIsImJhY2tjb2xvciIsImVs ZW1lbnRpZCIsInVpZCIpOw0KCSRodG1sT2JqUGFyYW0gPSBhcnJheSgiY2xhc3MiLCJ0aXRs ZSIsInN0eWxlIiwiZGlyIiwibGFuZyIsInhtbDpsYW5nIiwiYWxpZ24iLCJhcmNoaXZlIiwi Ym9yZGVyIiwiY2xhc3NpZCIsImNvZGViYXNlIiwiY29kZXR5cGUiLCJkZWNsYXJlIiwiaHNw YWNlIiwibmFtZSIsInN0YW5kYnkiLCJ1c2VtYXAiLCJ2c3BhY2UiKTsNCgkkb2JqTWltZVR5 cGUgPSBhcnJheSgiYXZpIiA9PiBhcnJheSgidmlkZW8vYXZpIiwgIlZpZGVvIiksDQoJCQkJ CQkJCSJmbGF8ZmxhYyIgPT4gYXJyYXkoImF1ZGlvL2ZsYWMiLCAiQXVkaW8iKSwNCgkJCQkJ CQkJImZsdnxzd2YiID0+IGFycmF5KCJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIs ICJGbGFzaCIpLA0KCQkJCQkJCQkiZ2lmIiA9PiBhcnJheSgiaW1hZ2UvZ2lmIiwgIkltYWdl IiksDQoJCQkJCQkJCSJqYXZhIiA9PiBhcnJheSgiYXBwbGljYXRpb24veC1qYXZhLWFwcGxl dCIsICJBcHAiKSwNCgkJCQkJCQkJImpwZyIgPT4gYXJyYXkoImltYWdlL2pwZWciLCAiSW1h Z2UiKSwNCgkJCQkJCQkJIm1pZCIgPT4gYXJyYXkoImF1ZGlvL3gtbWlkaSIsICJBdWRpbyIp LA0KCQkJCQkJCQkibW92IiA9PiBhcnJheSgidmlkZW8vcXVpY2t0aW1lIiwgIlZpZGVvIiks DQoJCQkJCQkJCSJtcGd8bXBlZ3xtcDQiID0+IGFycmF5KCJ2aWRlby9tcGVnIiwgIlZpZGVv IiksDQoJCQkJCQkJCSJtcDJ8bXAzfG00YSIgPT4gYXJyYXkoImF1ZGlvL21wZWciLCAiQXVk aW8iKSwNCgkJCQkJCQkJIm9ndnxvZ2F8b2d4fG9nZyIgPT4gYXJyYXkoImFwcGxpY2F0aW9u L29nZyIsICJBdWRpbyIpLA0KCQkJCQkJCQkib2ZyIiA9PiBhcnJheSgiYXBwbGljYXRpb24v eC1vZnIiLCAiQXVkaW8iKSwNCgkJCQkJCQkJInBuZyIgPT4gYXJyYXkoImltYWdlL3BuZyIs ICJJbWFnZSIpLA0KCQkJCQkJCQkicmF8cm0iID0+IGFycmF5KCJhdWRpby94LXBuLXJlYWx2 aWRlbyIsICJWaWRlbyIpLA0KCQkJCQkJCQkic3dvIiA9PiBhcnJheSgidGV4dC9qYXZhc2Ny aXB0IiwgIlNXRk9iamVjdCIpLA0KCQkJCQkJCQkidGlmfHRpZmYiID0+IGFycmF5KCJpbWFn ZS90aWZmIiwgIkltYWdlIiksDQoJCQkJCQkJCSJ3YXYiID0+IGFycmF5KCJhdWRpby94LXdh diIsICJBdWRpbyIpLA0KCQkJCQkJCQkid212fHdtYXxhc2YiID0+IGFycmF5KCJ2aWRlby94 LW1zLXdtdiIsICJBdWRpbyIpLA0KCQkJCQkJCQkpOw0KCSRvYmpUZW1wbGF0ZUZpeGVkID0g J3R5cGU9IkBAdHlwZSIgZGF0YT0iQEBkYXRhIiB3aWR0aD0iQEB3aWR0aCIgaGVpZ2h0PSJA QGhlaWdodCIgQEBvdGhlcnMgJzsNCgkkb2JqVGVtcGxhdGUgPSBhcnJheSgNCgkJIkZsYXNo IiA9PiBhcnJheSgnPG9iamVjdCAnIC4kb2JqVGVtcGxhdGVGaXhlZC4gJ2lkPSJAQGlkIj48 cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVlPSJAQGRhdGEiIC8+JywgJzwvb2JqZWN0PicpLA0K CQkiU1dGT2JqZWN0IiA9PiBhcnJheSgnPHNjcmlwdCB0eXBlPSJAQHR5cGUiIGRlZmVyPSJk ZWZlciI+Jy5uLid2YXIgQEB1aWQgPSBuZXcgU1dGT2JqZWN0KCJAQGRhdGEiLCAiQEBpZCIs ICJAQHdpZHRoIiwgIkBAaGVpZ2h0IiwgIkBAcGxheWVydmVyc2lvbiIsICJAQGJhY2tjb2xv ciIpOycubiwgJ0BAdWlkLndyaXRlKCJAQGVsZW1lbnRpZCIpOycubi4nPC9zY3JpcHQ+Jy5u KSwNCgkJIkF1ZGlvIiA9PiBhcnJheSgnPG9iamVjdCAnIC4kb2JqVGVtcGxhdGVGaXhlZC4g Jz48cGFyYW0gbmFtZT0ic3JjIiB2YWx1ZT0iQEBkYXRhIiAvPicsICc8L29iamVjdD4nKSwN CgkJIlZpZGVvIiA9PiBhcnJheSgnPG9iamVjdCAnIC4kb2JqVGVtcGxhdGVGaXhlZC4gJz4n LCAnPC9vYmplY3Q+JyksDQoJCSJJbWFnZSIgPT4gYXJyYXkoJzxpbWcgc3JjPSJAQGRhdGEi IHdpZHRoPSJAQHdpZHRoIiBoZWlnaHQ9IkBAaGVpZ2h0IiBAQG90aGVycyAvPicsICcnKSwN CgkJKTsNCg0KCS8vIExvZyB3aGV0aGVyIGFueSBhdHRlbXB0IGhhcyBiZWVuIG1hZGUgdG8g dXNlIGNhdGVnb3J5L2lkIEJFRk9SRSBsQXR0cygpLCB3aGljaCBhc3NpZ25zIHRoZW0gcmVn YXJkbGVzcw0KCSRhdHRlbXB0TWF0Y2ggPSAoaXNzZXQoJGF0dHNbJ2NhdGVnb3J5J10pIHx8 IGlzc2V0KCRhdHRzWydpZCddKSkgPyB0cnVlIDogZmFsc2U7DQoNCgkvLyBQbHVnaW4gb3B0 aW9ucw0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSdtb2RlJyA9PiAnaW1hZ2UnLA0KCQkn Y2F0ZWdvcnknID0+ICcnLA0KCQknaWQnID0+ICcnLA0KCQknc3ViY2F0cycgPT4gJzAnLA0K CQknbWF0Y2hfdGV4dCcgPT4gJycsDQoJCSdhdm9pZF90ZXh0JyA9PiAnJywNCgkJJ2NvbXBh cmVfdG8nID0+ICduYW1lJywNCgkJJ2xpbWl0JyA9PiAnMScsDQoJCSdhbHdheXNfZGlzcGxh eScgPT4gJzAnLA0KCQkndGh1bWInID0+ICcwJywNCgkJJ2xpbmtfaW4nID0+ICcnLA0KCQkn bGlua19wcmVmaXgnID0+ICcnLA0KCQknZGlzcGxheV91cmwnID0+ICcxJywNCgkJJ3JlZmVy ZXInID0+ICdiaWQnLA0KCQkncmF3X3VybCcgPT4gJzAnLA0KCQkndGFyZ2V0JyA9PiAnJywN CgkJJ2NvdW50X2Rvd25sb2FkcycgPT4gJzEnLA0KCQknZmlsZXNfZGlyJyA9PiAnZmlsZXMn LA0KCQknZGVsaW0nID0+ICcsJywNCgkJJ252X2RlbGltJyA9PiAnPScsDQoJCSdub19wbHVn X3RleHQnID0+ICcnLA0KCQknZ2xvYmFsX3BhcmFtcycgPT4gJycsDQoJCSdpbWdjbGFzcycg PT4gJycsIC8vIERFUFJFQ0FURUQNCgkJJ2NsYXNzJyA9PiAnJywNCgkJJ2RlYnVnJyA9PiAn MCcsDQoJKSwgJGF0dHMpKTsNCg0KCS8vIFZhbGlkYXRlIG1vZGUgLyBsaW5rX2luIC8gdGFy Z2V0IC8gY2xhc3MNCgkkbW9kZSA9IChpbl9hcnJheSgkbW9kZSwkYWxsTW9kZSkpID8gJG1v ZGUgOiAkYWxsTW9kZVswXTsNCgkkbGlua19pbiA9ICgkbGlua19pbiAmJiBpbl9hcnJheSgk bW9kZS4nOicuJGxpbmtfaW4sJGFsbExpbmtJbikpID8gJGxpbmtfaW4gOiAkYWxsTGlua0lu WzBdOw0KCSR0YXJnZXQgPSAoJHRhcmdldCkgPyAnIHRhcmdldD0iJyAuJHRhcmdldC4gJyIn IDogJyc7DQoJJGNsYXNzID0gKCEkY2xhc3MgJiYgJGltZ2NsYXNzKSA/ICRpbWdjbGFzcyA6 ICRjbGFzczsNCg0KCS8vIFZhbGlkYXRlIGNvbXBhcmVfdG8NCgkkY29tcGFyZVRvT3B0cyA9 IGFycmF5KCk7DQoJaWYgKGlzc2V0KCRjb21wYXJlX3RvKSkgew0KCQkkY3RMaXN0ID0gZG9f bGlzdCgkY29tcGFyZV90byk7DQoJCSRjdENvdW50ID0gY291bnQoJGN0TGlzdCk7DQoJCWZv ciAoJGlkeCA9IDA7ICRpZHggPCAkY3RDb3VudDsgJGlkeCsrKSB7DQoJCQlpZihpbl9hcnJh eSgkbW9kZS4nOicuJGN0TGlzdFskaWR4XSwkYWxsQ29tcGFyZSkpIHsNCgkJCQkkY29tcGFy ZVRvT3B0c1tdID0gJGN0TGlzdFskaWR4XTsNCgkJCX0NCgkJfQ0KCX0NCglpZihjb3VudCgk Y29tcGFyZVRvT3B0cykgPD0gMCkgew0KCQkvLyBGaW5kIHRoZSBmaXJzdCBlbnRyeSBtYXRj aGluZyAkbW9kZSBhbmQgdXNlIHRoYXQNCgkJZm9yZWFjaCAoJGFsbENvbXBhcmUgYXMgJGNt cCkgew0KCQkJaWYgKHN0cnBvcygkY21wLCAkbW9kZS4nOicpID09PSAwKSB7DQoJCQkJJGNv bXBhcmVUb09wdHNbXSA9IHN1YnN0cigkY21wLHN0cmxlbigkbW9kZSkrMSk7DQoJCQkJYnJl YWs7DQoJCQl9DQoJCX0NCgl9DQoNCgkvLyBJZiBub19wbHVnX3RleHQgaXMgYSBmb3JtLCBo YW5kbGUgYWNjb3JkaW5nbHkNCgkkbm9wbHVnID0gZG9fbGlzdCgkbm9fcGx1Z190ZXh0LCAn OicpOw0KCWlmIChjb3VudCgkbm9wbHVnKSA+IDAgJiYgJG5vcGx1Z1swXSA9PSAndHhwZm9y bScpIHsNCgkJJG5vX3BsdWdfdGV4dCA9IHBhcnNlX2Zvcm0oJG5vcGx1Z1sxXSk7DQoJfQ0K DQoJLy8gaW5pdCB2YXJpYWJsZXMNCgkkY2xhdXNlID0gJzE9MSc7DQoJJGNsYXVzZUNhdCA9 ICRjbGF1c2U7DQoJJGNsYXVzZU9SID0gYXJyYXkoKTsNCg0KCSRmaWVsZHMgPSAoJG1vZGU9 PSdpbWFnZScpID8gJ2lkLCBuYW1lLCBleHQsIGNhcHRpb24sIGFsdCcgOiAnaWQsIGZpbGVu YW1lLCBkZXNjcmlwdGlvbiwgc3RhdHVzLCBzaXplJzsNCgkkZGJUYWJsZSA9ICgkbW9kZT09 J2ltYWdlJykgPyAndHhwX2ltYWdlJyA6ICd0eHBfZmlsZSc7DQoJJHN1YmluZm8gPSAoJHN1 YmNhdHMpID8gJG1vZGUuJzonLiRzdWJjYXRzIDogJyc7DQoNCgkvLyBFeHRyYWN0IGFsbCB0 aGUgZml4ZWQsID8gYW5kICEgc3RyaW5ncyBmcm9tIGNhdGVnb3J5LCBJRCwgbWF0Y2ggYW5k IGF2b2lkIHRleHRzDQoJbGlzdCgkaWRpbmMsICRpZGV4YykgPSBzbWRfZG9MaXN0KCRpZCwg dHJ1ZSwgJycsIHRydWUsICRkZWxpbSk7DQoJbGlzdCgkY2F0aW5jLCAkY2F0ZXhjKSA9IHNt ZF9kb0xpc3QoJGNhdGVnb3J5LCBmYWxzZSwgJHN1YmluZm8sIHRydWUsICRkZWxpbSk7DQoJ bGlzdCgkbWF0Y2hBcnJheSwgJG1hdGNoZXhjKSA9IHNtZF9kb0xpc3QoJG1hdGNoX3RleHQs IGZhbHNlLCAnJywgZmFsc2UsICRkZWxpbSk7DQoJbGlzdCgkYXZvaWRBcnJheSwgJGF2b2lk ZXhjKSA9IHNtZF9kb0xpc3QoJGF2b2lkX3RleHQsIGZhbHNlLCAnJywgZmFsc2UsICRkZWxp bSk7DQoNCgkvLyBDb21iaW5lIGxpc3RzIGlmIGFwcGxpY2FibGUgKHNpbmNlIGF2b2lkX3Rl eHQ9IiFzcXVpZCIgaXMgYSBkb3VibGUgbmVnYXRpdmUgYW5kIG1lYW5zIG1hdGNoX3RleHQ9 InNxdWlkIikNCgkkbWF0Y2hBcnJheSA9IGFycmF5X21lcmdlKCRtYXRjaEFycmF5LCAkYXZv aWRleGMpOw0KCSRhdm9pZEFycmF5ID0gYXJyYXlfbWVyZ2UoJGF2b2lkQXJyYXksICRtYXRj aGV4Yyk7DQoNCgkvLyBTdXJyb3VuZCBlYWNoIGVudHJ5IGluIHRoZSBJRC9jYXQgbGlzdHMg d2l0aCBxdW90ZXMgYW5kIG1ha2UgYW4gU1FMICJpbiIgbGlzdA0KCWlmICgkaWRpbmMpIHsN CgkJJGNsYXVzZU9SW10gPSAkZGJUYWJsZS4nLmlkIElOICgnLmltcGxvZGUoIiwiLCAkaWRp bmMpLicpJzsNCgl9DQoJaWYgKCRjYXRpbmMpIHsNCgkJJGNsYXVzZU9SW10gPSAkZGJUYWJs ZS4nLmNhdGVnb3J5IElOICgnLmltcGxvZGUoIiwiLCAkY2F0aW5jKS4nKSc7DQoJfQ0KCWlm ICghZW1wdHkoJGNsYXVzZU9SKSkgew0KCQkkY2xhdXNlQ2F0IC49ICcgQU5EICgnLmltcGxv ZGUoIiBPUiAiLCAkY2xhdXNlT1IpLicpICc7DQoJfQ0KDQoJJGNsYXVzZUNhdCAuPSAoJGNh dGV4YykgPyAnIEFORCAnLiRkYlRhYmxlLicuY2F0ZWdvcnkgTk9UIElOICgnLmltcGxvZGUo IiwiLCAkY2F0ZXhjKS4nKScgOiAnJzsNCgkkY2xhdXNlQ2F0IC49ICgkaWRleGMpID8gJyBB TkQgJy4kZGJUYWJsZS4nLmlkIE5PVCBJTiAoJy5pbXBsb2RlKCIsIiwgJGlkZXhjKS4nKScg OiAnJzsNCg0KCS8vIElmIGEgY2F0ZWdvcnkvaWQgb3B0aW9uIHdhcyBjaG9zZW4gYW5kIHRo ZXkgbWF0Y2hlZCBub3RoaW5nLCB1c2UgYSBib2d1cyBjYXRlZ29yeSB0aGF0IHNob3VsZCBu b3QgZXhpc3QuDQoJLy8gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHBsdWdpbiBkb2VzIHRoZSBl eHBlY3RlZCB0aGluZyBvZiBtYXRjaGluZyBub3RoaW5nIGluIHRoZSBldmVudCBpdCBmaW5k cyBub3RoaW5nLg0KCWlmICgkY2xhdXNlQ2F0ID09ICcxPTEnICYmICRhdHRlbXB0TWF0Y2gp IHsNCiAgCQkkY2xhdXNlID0gJGRiVGFibGUuJy5jYXRlZ29yeSA9ICJzbWRfJyAubXRfcmFu ZCgpLiAnIic7DQoJfSBlbHNlIHsNCgkJJGNsYXVzZSA9ICRjbGF1c2VDYXQ7DQoJfQ0KDQoJ Ly8gTm93IGZhY3RvciBpbiBhbnkgbWF0Y2gvYXZvaWQgdGV4dCwgY29tcGFyaW5nIGV2ZXJ5 dGhpbmcgd2l0aCB3aGF0ZXZlciBpcyBpbiBjb21wYXJlX3RvDQoJJGNsYXVzZUFORCA9IGFy cmF5KCk7DQoJJGNsYXVzZU1BVENIID0gYXJyYXkoKTsNCgkkY2xhdXNlQVZPSUQgPSBhcnJh eSgpOw0KDQoJZm9yZWFjaCAoJGNvbXBhcmVUb09wdHMgYXMgJGNvbXApIHsNCgkJZm9yICgk aWR4ID0gMDsgJGlkeCA8IGNvdW50KCRtYXRjaEFycmF5KTsgJGlkeCsrKSB7DQoJCQkkY2xh dXNlTUFUQ0hbXSA9ICRkYlRhYmxlLicuJy4kY29tcCAuICIgTElLRSAnJSIgLiRtYXRjaEFy cmF5WyRpZHhdLiAiJSciOw0KCQl9DQoJCWZvciAoJGlkeCA9IDA7ICRpZHggPCBjb3VudCgk YXZvaWRBcnJheSk7ICRpZHgrKykgew0KCQkJJGNsYXVzZUFWT0lEW10gPSAkZGJUYWJsZS4n LicuJGNvbXAgLiAiIExJS0UgJyUiIC4kYXZvaWRBcnJheVskaWR4XS4gIiUnIjsNCgkJfQ0K CX0NCg0KCWlmIChjb3VudCgkY2xhdXNlTUFUQ0gpID4gMCkgew0KCQkkY2xhdXNlQU5EW10g PSAnKCcgLmltcGxvZGUoJyBPUiAnLCRjbGF1c2VNQVRDSCkuICcpJzsNCgl9DQoJaWYgKGNv dW50KCRjbGF1c2VBVk9JRCkgPiAwKSB7DQoJCSRjbGF1c2VBTkRbXSA9ICdOT1QgKCcgLmlt cGxvZGUoJyBPUiAnLCRjbGF1c2VBVk9JRCkuICcpJzsNCgl9DQoJaWYgKGNvdW50KCRjbGF1 c2VBTkQpID4gMCkgew0KCQkkY2xhdXNlIC49ICcgQU5EICcgLiBpbXBsb2RlKCcgQU5EICcs ICRjbGF1c2VBTkQpOw0KCX0NCg0KCS8vIE5lZWQgdG8ga2VlcCBjbGF1c2UsIGNsYXVzZUNh dCBhbmQgY2xhdXNlU29ydCBzZXBhcmF0ZSBmb3IgYWx3YXlzX2Rpc3BsYXkNCgkkY2xhdXNl U29ydCA9ICIgT1JERVIgQlkgUkFORCgpIExJTUlUICRsaW1pdCI7DQoJJGNsYXVzZSAuPSAk Y2xhdXNlU29ydDsNCg0KCWlmICgkZGVidWcgPiAxKSB7DQoJCWVjaG8gIisrIElOQ0xVREVE L0VYQ0xVREVEIElEcyArKyI7DQoJCWRtcCgkaWRpbmMpOw0KCQlkbXAoJGlkZXhjKTsNCgkJ ZWNobyAiKysgSU5DTFVERUQvRVhDTFVERUQgQ2F0ZWdvcmllcyArKyI7DQoJCWRtcCgkY2F0 aW5jKTsNCgkJZG1wKCRjYXRleGMpOw0KCQllY2hvICIrKyBJTkNMVURFRC9FWENMVURFRCBN YXRjaGVzICsrIjsNCgkJZG1wKCRtYXRjaEFycmF5KTsNCgkJZG1wKCRhdm9pZEFycmF5KTsN CgkJZG1wKCRjbGF1c2VBTkQpOw0KCX0NCg0KCWlmICgkZGVidWcgPiAwKSB7DQoJCWVjaG8g IisrIFdIRVJFIENMQVVTRVMgKysiOw0KCQlkbXAoJGNsYXVzZUNhdCk7DQoJCWRtcCgkY2xh dXNlKTsNCgl9DQoNCgkvLyBQdWxsIG91dCB0aGUgcmVxdWVzdGVkIG9iamVjdHMsIGhvbm91 cmluZyB0aGUgYWx3YXlzX2Rpc3BsYXkgbGV2ZWwgaWYgbm90aGluZydzIHJldHVybmVkDQoJ JHJzID0gc2FmZV9yb3dzKCRmaWVsZHMsICRkYlRhYmxlLCAkY2xhdXNlKTsNCglpZiAoISRy cykgew0KCQlpZiAoJGFsd2F5c19kaXNwbGF5ID4gMCkgew0KCQkJJHJzID0gc2FmZV9yb3dz KCRmaWVsZHMsICRkYlRhYmxlLCAkY2xhdXNlQ2F0IC4gJGNsYXVzZVNvcnQpOw0KCQkJaWYg KCEkcnMpIHsNCgkJCQlpZiAoJGFsd2F5c19kaXNwbGF5ID4gMSkgew0KCQkJCQkkcnMgPSBz YWZlX3Jvd3MoJGZpZWxkcywgJGRiVGFibGUsICIxPTEiLiRjbGF1c2VTb3J0KTsNCgkJCQl9 DQoJCQl9DQoJCX0NCgl9DQoNCglpZiAoJGRlYnVnID4gMikgew0KCQllY2hvICIrKyBSRUNP UkQgU0VUICsrIjsNCgkJZG1wKCRycyk7DQoJfQ0KDQoJLy8gRGlzcGxheSB0aGVtDQoJJG91 dFN0ciA9ICcnOw0KCWlmKCRycykgew0KCQlmb3JlYWNoKCRycyBhcyAkcm93KSB7DQoJCQkk b2JqT3V0ID0gJyc7DQoJCQkkbGlua3VybCA9ICcnOw0KCQkJJGxpbmtOYW1lID0gJyc7DQoJ CQkkc2V0TWltZVR5cGUgPSAnJzsNCgkJCSR0cmltT3B0cyA9ICIgXHgyMlx0XG5cclwwXHgw QiI7DQoJCQkkb2JqUGFyYW1zID0gYXJyYXkoKTsNCgkJCSR0aGVQYXJhbXMgPSBhcnJheSgp Ow0KCQkJJGZsYXNoVmFycyA9IGFycmF5KCk7DQoJCQkkdGVtcGxhdGVPcHRpb25zID0gYXJy YXkoKTsNCg0KCQkJLy8gRXh0cmFjdCBwYXJhbWV0ZXJzDQoJCQlzd2l0Y2ggKCRtb2RlKSB7 DQoJCQkJY2FzZSAiaW1hZ2UiOg0KCQkJCQkkbGlua05hbWUgPSAoJGxpbmtfaW4pID8gdHJp bSgkcm93WyRsaW5rX2luXSkgOiAnJzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAiZmlsZSI6 DQoJCQkJCSR0aGVEZXNjID0gZG9fbGlzdCgkZ2xvYmFsX3BhcmFtcy4kcm93WyRsaW5rX2lu XSwgIjsiKTsNCg0KCQkJCQlpZiAoJGRlYnVnID4gMikgew0KCQkJCQkJZWNobyAiKysgREVT Q1JJUFRJT04gRklFTEQgQ09OVEVOVFMgKysiOw0KCQkJCQkJZG1wKCR0aGVEZXNjKTsNCgkJ CQkJfQ0KDQoJCQkJCWZvcmVhY2ggKCR0aGVEZXNjIGFzICRwYXJhbXMpIHsNCgkJCQkJCSRw YXJhbXMgPSB0cmltKCRwYXJhbXMpOw0KCQkJCQkJaWYgKCRwYXJhbXMgIT0gIiIpIHsNCgkJ CQkJCQkkdGhlc2VQYXJhbXMgPSBkb19saXN0KCRwYXJhbXMsICRudl9kZWxpbSk7DQoJCQkJ CQkJJHBhcmFtTmFtZSA9IHN0cnRvbG93ZXIoJHRoZXNlUGFyYW1zWzBdKTsNCgkJCQkJCQkk cGFyYW1WYWwgPSB0cmltKCR0aGVzZVBhcmFtc1sxXSwkdHJpbU9wdHMpOw0KCQkJCQkJCWlm ICgkcGFyYW1OYW1lID09ICJsaW5rX3VybCIgJiYgJGxpbmtfaW4pIHsNCgkJCQkJCQkJJGxp bmtOYW1lID0gJHBhcmFtVmFsOw0KCQkJCQkJCX0gZWxzZSBpZiAoJHBhcmFtTmFtZSA9PSAi bWltZV90eXBlIikgew0KCQkJCQkJCQkkc2V0TWltZVR5cGUgPSAkcGFyYW1WYWw7DQoJCQkJ CQkJfSBlbHNlIGlmICgkcGFyYW1OYW1lID09ICJmbGFzaHZhcnMiKSB7DQoJCQkJCQkJCSR0 aGVQYXJhbXNbJHBhcmFtTmFtZV0gPSAkcGFyYW1WYWw7DQoJCQkJCQkJCSR2YXJzdHIgPSBk b19saXN0KCRwYXJhbVZhbCwgIiYiKTsNCgkJCQkJCQkJZm9yZWFjaCAoJHZhcnN0ciBhcyAk dmFyKSB7DQoJCQkJCQkJCQkkbnZQYWlyID0gZG9fbGlzdCgkdmFyLCAiPSIpOw0KCQkJCQkJ CQkJJGZsYXNoVmFyc1skbnZQYWlyWzBdXSA9ICRudlBhaXJbMV07DQoJCQkJCQkJCX0NCgkJ CQkJCQl9IGVsc2UgaWYgKGluX2FycmF5KCRwYXJhbU5hbWUsJGh0bWxPYmpGaXhlZCkpIHsN CgkJCQkJCQkJJG9ialBhcmFtc1tTTURfRExNX1RSLiRwYXJhbU5hbWVdID0gJHBhcmFtVmFs Ow0KCQkJCQkJCX0gZWxzZSBpZiAoaW5fYXJyYXkoJHBhcmFtTmFtZSwkaHRtbE9ialBhcmFt KSkgew0KCQkJCQkJCQkkb2JqUGFyYW1zW1NNRF9ETE1fVFIuJHBhcmFtTmFtZV0gPSAkcGFy YW1WYWw7DQoJCQkJCQkJCSR0ZW1wbGF0ZU9wdGlvbnNbJHBhcmFtTmFtZV0gPSAkcGFyYW1O YW1lLiAnPSInIC5TTURfRExNX1RSLiRwYXJhbU5hbWUuICciJzsNCgkJCQkJCQl9IGVsc2Ug ew0KCQkJCQkJCQkkdGhlUGFyYW1zWyRwYXJhbU5hbWVdID0gJHBhcmFtVmFsOw0KCQkJCQkJ CX0NCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCQlicmVhazsNCgkJCX0NCg0KCQkJLy8gSGFuZGxl IGxpbmtzDQoJCQkkdXJscGZ4ID0gImh0dHA6Ly8iOw0KCQkJaWYgKHN0cmxlbigkbGlua05h bWUpID4gMCkgew0KCQkJCWlmIChzdHJuY21wKCRsaW5rTmFtZSwgJHVybHBmeCwgc3RybGVu KCR1cmxwZngpKSA9PSAwKSB7DQoJCQkJCSRsaW5rdXJsID0gJGxpbmtOYW1lOw0KCQkJCX0g ZWxzZSBpZiAoc3Vic3RyKCRsaW5rTmFtZSwgMCwgMSkgPT0gJy8nICYmICRsaW5rX3ByZWZp eCA9PSAnJykgew0KCQkJCQkkbGlua3VybCA9IHNpdGVfdXJsKGFycmF5KCkpIC4gc3Vic3Ry KCRsaW5rTmFtZSwxKTsNCgkJCQl9IGVsc2UgaWYgKHN1YnN0cigkbGlua19wcmVmaXgsMCwx KSA9PSAnLycpIHsNCgkJCQkJJGxpbmt1cmwgPSBzaXRlX3VybChhcnJheSgpKSAuIHN1YnN0 cigkbGlua19wcmVmaXgsMSkgLiAkbGlua05hbWU7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJGxp bmt1cmwgPSAkbGlua19wcmVmaXggLiAkbGlua05hbWU7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlp ZiAoJGRlYnVnID4gMCkgew0KCQkJCWVjaG8gIisrIERFU1RJTkFUSU9OIExJTksgKysiOw0K CQkJCWRtcCgkbGlua3VybCk7DQoJCQl9DQoNCgkJCS8vIFRocm93IG9iamVjdCBvdXQgdG8g dGhlIHBhZ2UNCgkJCWlmICgkcmF3X3VybCkgew0KCQkJCXN3aXRjaCAoJG1vZGUpIHsNCgkJ CQkJY2FzZSAiaW1hZ2UiOg0KCQkJCQkJJG91dFN0ciA9IGh1LiRpbWdfZGlyIC4gRFMgLiRy b3dbJ2lkJ10gLiAoKCR0aHVtYikgPyAndCcgOiAnJykgLiAkcm93WydleHQnXTsNCgkJCQkJ CWJyZWFrOw0KCQkJCQljYXNlICJmaWxlIjoNCgkJCQkJCSRvdXRTdHIgPSAoJGNvdW50X2Rv d25sb2FkcykgPyBodS5nVHh0KCdmaWxlX2Rvd25sb2FkJykuIERTIC4kcm93WydpZCddIDog aHUuJGZpbGVzX2Rpci4gRFMgLiRyb3dbJ2ZpbGVuYW1lJ107DQoJCQkJCQlicmVhazsNCgkJ CQl9DQoJCQl9IGVsc2Ugew0KCQkJCXN3aXRjaCgkbW9kZSkgew0KCQkJCQljYXNlICJpbWFn ZSI6DQoJCQkJCQkkaW1nT3B0aW9ucyA9IGFycmF5KCJpZCIgPT4gJHJvd1snaWQnXSk7DQoJ CQkJCQlpZiAoJGNsYXNzICE9ICcnKSB7DQoJCQkJCQkJJGltZ09wdGlvbnNbImNsYXNzIl0g PSAkY2xhc3M7DQoJCQkJCQl9DQoJCQkJCQkkb2JqT3V0ID0gKCgkdGh1bWIpID8gdGh1bWJu YWlsKCRpbWdPcHRpb25zKSA6IGltYWdlKCRpbWdPcHRpb25zKSk7DQoNCgkJCQkJCS8vIFNp bmNlIHRoZSBhbHQvY2FwdGlvbiBtYXkgaGF2ZSBiZWVuIGhpamFja2VkIGZvciBsaW5rX2lu LCB1c2UgdGhlIG90aGVyIHZhbHVlIGlmIGluc3RydWN0ZWQNCgkJCQkJCWlmICghJGRpc3Bs YXlfdXJsKSB7DQoJCQkJCQkJc3dpdGNoICgkbGlua19pbikgew0KCQkJCQkJCQljYXNlICJh bHQiOg0KCQkJCQkJCQkJJG9iak91dCA9IHN0cl9yZXBsYWNlKCdhbHQ9IicuJHJvd1snYWx0 J10uJyInLCAnYWx0PSInLiRyb3dbJ2NhcHRpb24nXS4nIicsICRvYmpPdXQpOw0KCQkJCQkJ CQkJYnJlYWs7DQoJCQkJCQkJCWNhc2UgImNhcHRpb24iOg0KCQkJCQkJCQkJJG9iak91dCA9 IHN0cl9yZXBsYWNlKCd0aXRsZT0iJy4kcm93WydjYXB0aW9uJ10uJyInLCAndGl0bGU9Iicu JHJvd1snYWx0J10uJyInLCAkb2JqT3V0KTsNCgkJCQkJCQkJCWJyZWFrOw0KCQkJCQkJCX0N CgkJCQkJCX0NCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICJmaWxlIjoNCgkJCQkJCSR0ZW1w bGF0ZVN0YXJ0ID0gJyc7DQoJCQkJCQkkdGVtcGxhdGVFbmQgPSAnJzsNCgkJCQkJCSRmaWxl UGF0aCA9IGJ1aWxkX2ZpbGVfcGF0aCgkZmlsZV9iYXNlX3BhdGgsICRyb3dbJ2ZpbGVuYW1l J10pOw0KCQkJCQkJJGZpbGVETCA9ICgkY291bnRfZG93bmxvYWRzKSA/IGh1LmdUeHQoJ2Zp bGVfZG93bmxvYWQnKSAuRFMuICRyb3dbJ2lkJ10gOiBodS4kZmlsZXNfZGlyIC5EUy4gJHJv d1snZmlsZW5hbWUnXTsNCgkJCQkJCWlmIChmaWxlX2V4aXN0cygkZmlsZVBhdGgpKSB7DQoJ CQkJCQkJLy8gR2V0IHRoZSBmaWxlIGV4dGVuc2lvbiBhbmQgbG9vayBpdCB1cCBpbiB0aGUg dGFibGUNCgkJCQkJCQkkcGF0aEJpdCA9IHBhdGhpbmZvKCRmaWxlUGF0aCk7DQoJCQkJCQkJ JHBhdGhFeHQgPSAoJHNldE1pbWVUeXBlKSA/ICRzZXRNaW1lVHlwZSA6ICRwYXRoQml0Wydl eHRlbnNpb24nXTsNCgkJCQkJCQlmb3JlYWNoICgkb2JqTWltZVR5cGUgYXMgJGV4dHMgPT4g JHR5cGVzICkgew0KCQkJCQkJCQkkZXh0TGlzdCA9IGV4cGxvZGUoU01EX0RMTV9SRUMsJGV4 dHMpOw0KCQkJCQkJCQkvLyBTZXQgc29tZSBzZW5zaWJsZSBkZWZhdWx0cyBpZiB0aGUgbWFu ZGF0b3J5IG9wdGlvbnMgYXJlIG5vdCBzdXBwbGllZA0KCQkJCQkJCQlpZiAoaW5fYXJyYXko JHBhdGhFeHQsICRleHRMaXN0KSkgew0KCQkJCQkJCQkJaWYgKCFhcnJheV9rZXlfZXhpc3Rz KFNNRF9ETE1fVFIuInR5cGUiLCAkb2JqUGFyYW1zKSkgew0KCQkJCQkJCQkJCSRvYmpQYXJh bXNbU01EX0RMTV9UUi4idHlwZSJdID0gJHR5cGVzWzBdOw0KCQkJCQkJCQkJfQ0KCQkJCQkJ CQkJaWYgKCFhcnJheV9rZXlfZXhpc3RzKFNNRF9ETE1fVFIuImRhdGEiLCAkb2JqUGFyYW1z KSkgew0KCQkJCQkJCQkJCSRvYmpQYXJhbXNbU01EX0RMTV9UUi4iZGF0YSJdID0gJGZpbGVE TDsNCgkJCQkJCQkJCX0NCgkJCQkJCQkJCWlmICghYXJyYXlfa2V5X2V4aXN0cyhTTURfRExN X1RSLiJpZCIsICRvYmpQYXJhbXMpKSB7DQoJCQkJCQkJCQkJJG9ialBhcmFtc1tTTURfRExN X1RSLiJpZCJdID0gImlkIi5tdF9yYW5kKCk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQlpZiAo IWFycmF5X2tleV9leGlzdHMoU01EX0RMTV9UUi4id2lkdGgiLCAkb2JqUGFyYW1zKSkgew0K CQkJCQkJCQkJCSRvYmpQYXJhbXNbU01EX0RMTV9UUi4id2lkdGgiXSA9ICRzbWRfcmJhbkxh bmctPmdUeHQoJ3dpZHRoJyk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQlpZiAoIWFycmF5X2tl eV9leGlzdHMoU01EX0RMTV9UUi4iaGVpZ2h0IiwgJG9ialBhcmFtcykpIHsNCgkJCQkJCQkJ CQkkb2JqUGFyYW1zW1NNRF9ETE1fVFIuImhlaWdodCJdID0gJHNtZF9yYmFuTGFuZy0+Z1R4 dCgnaGVpZ2h0Jyk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQlpZiAoIWFycmF5X2tleV9leGlz dHMoU01EX0RMTV9UUi4icGxheWVydmVyc2lvbiIsICRvYmpQYXJhbXMpKSB7DQoJCQkJCQkJ CQkJJG9ialBhcmFtc1tTTURfRExNX1RSLiJwbGF5ZXJ2ZXJzaW9uIl0gPSAiOCI7DQoJCQkJ CQkJCQl9DQoJCQkJCQkJCQlpZiAoIWFycmF5X2tleV9leGlzdHMoU01EX0RMTV9UUi4iYmFj a2NvbG9yIiwgJG9ialBhcmFtcykpIHsNCgkJCQkJCQkJCQkkb2JqUGFyYW1zW1NNRF9ETE1f VFIuImJhY2tjb2xvciJdID0gJyNmZmZmZmYnOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJaWYg KCFhcnJheV9rZXlfZXhpc3RzKFNNRF9ETE1fVFIuImVsZW1lbnRpZCIsICRvYmpQYXJhbXMp KSB7DQoJCQkJCQkJCQkJJG9ialBhcmFtc1tTTURfRExNX1RSLiJlbGVtZW50aWQiXSA9ICJm bGFzaGNvbnRlbnRfIi5tdF9yYW5kKCk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQlpZiAoIWFy cmF5X2tleV9leGlzdHMoU01EX0RMTV9UUi4idWlkIiwgJG9ialBhcmFtcykpIHsNCgkJCQkJ CQkJCQkkb2JqUGFyYW1zW1NNRF9ETE1fVFIuInVpZCJdID0gInNtZF8iLm10X3JhbmQoKTsN CgkJCQkJCQkJCX0NCgkJCQkJCQkJCSR1aWQgPSAkb2JqUGFyYW1zW1NNRF9ETE1fVFIuInVp ZCJdOw0KCQkJCQkJCQkJaWYgKCRjbGFzcyAhPSAnJyAmJiAhYXJyYXlfa2V5X2V4aXN0cyhT TURfRExNX1RSLiJjbGFzcyIsICRvYmpQYXJhbXMpKSB7DQoJCQkJCQkJCQkJJG9ialBhcmFt c1tTTURfRExNX1RSLiJjbGFzcyJdID0gJGNsYXNzOw0KCQkJCQkJCQkJCSR0ZW1wbGF0ZU9w dGlvbnNbXSA9ICdjbGFzcz0iJyAuU01EX0RMTV9UUi4gJ2NsYXNzIic7DQoJCQkJCQkJCQl9 DQoJCQkJCQkJCQkkdGVtcGxhdGVTdGFydCA9ICRvYmpUZW1wbGF0ZVskdHlwZXNbMV1dWzBd Ow0KCQkJCQkJCQkJJHRlbXBsYXRlRW5kID0gJG9ialRlbXBsYXRlWyR0eXBlc1sxXV1bMV07 DQoJCQkJCQkJCQkkdGVtcGxhdGVTdGFydCA9IHN0cl9yZXBsYWNlKFNNRF9ETE1fVFIuIm90 aGVycyIsIGltcGxvZGUoIiAiLCAkdGVtcGxhdGVPcHRpb25zKSwgJHRlbXBsYXRlU3RhcnQp Ow0KCQkJCQkJCQkJJHRlbXBsYXRlRW5kID0gc3RyX3JlcGxhY2UoU01EX0RMTV9UUi4ib3Ro ZXJzIiwgaW1wbG9kZSgiICIsICR0ZW1wbGF0ZU9wdGlvbnMpLCAkdGVtcGxhdGVFbmQpOw0K CQkJCQkJCQl9DQoJCQkJCQkJfQ0KCQkJCQkJCSRvYmpPdXQgLj0gc3RydHIoJHRlbXBsYXRl U3RhcnQsICRvYmpQYXJhbXMpOw0KDQoJCQkJCQkJaWYgKCRkZWJ1ZyA+IDEpIHsNCgkJCQkJ CQkJZWNobyAiKysgTUlNRSBJTkZPICsrIjsNCgkJCQkJCQkJZG1wKCRwYXRoRXh0KTsNCgkJ CQkJCQkJZWNobyAiKysgT0JKRUNUIElORk8gKysiOw0KCQkJCQkJCQlkbXAoJG9ialBhcmFt cyk7DQoJCQkJCQkJCWRtcCgkdGhlUGFyYW1zKTsNCgkJCQkJCQkJZG1wKCRmbGFzaFZhcnMp Ow0KCQkJCQkJCX0NCg0KCQkJCQkJCWlmICgkc2V0TWltZVR5cGUgPT0gInN3byIpIHsNCgkJ CQkJCQkJZm9yZWFjaCAoJHRoZVBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkgew0KCQkJCQkJ CQkJaWYgKCRrZXkgIT0gImZsYXNodmFycyIpIHsNCgkJCQkJCQkJCQkkb2JqT3V0IC49ICR1 aWQuJy5hZGRQYXJhbSgiJy4ka2V5LiciLCAiJy4kdmFsdWUuJyIpOycubjsNCgkJCQkJCQkJ CX0NCgkJCQkJCQkJfQ0KCQkJCQkJCQlmb3JlYWNoICgkZmxhc2hWYXJzIGFzICRuYW1lID0+ ICR2YWwpIHsNCgkJCQkJCQkJCSRvYmpPdXQgLj0gJHVpZC4nLmFkZFZhcmlhYmxlKCInLiRu YW1lLiciLCAiJy4kdmFsLiciKTsnLm47DQoJCQkJCQkJCX0NCgkJCQkJCQl9IGVsc2Ugew0K CQkJCQkJCQlmb3JlYWNoICgkdGhlUGFyYW1zIGFzICRrZXkgPT4gJHZhbHVlKSB7DQoJCQkJ CQkJCQkkb2JqT3V0IC49ICc8cGFyYW0gbmFtZT0iJy4ka2V5LiciIHZhbHVlPSInLiR2YWx1 ZS4nIiAvPic7DQoJCQkJCQkJCX0NCgkJCQkJCQl9DQoJCQkJCQkJJG9iak91dCAuPSAoKCRz ZXRNaW1lVHlwZT09InN3byIpID8gJycgOiAkbm9fcGx1Z190ZXh0KSAuIHN0cnRyKCR0ZW1w bGF0ZUVuZCwgJG9ialBhcmFtcykubjsNCgkJCQkJCX0NCgkJCQkJCWJyZWFrOw0KCQkJCX0N Cg0KCQkJCS8vIFN1cnJvdW5kIHdpdGggbGluayAvIHJlZmVyZXIgaWYgbmVjZXNzYXJ5DQoJ CQkJaWYgKCgkbGlua19pbiAhPSAiIikgJiYgKHN0cmxlbigkbGlua3VybCkgPiAwKSkgew0K CQkJCQlpZiAoJHJlZmVyZXIgIT0gIiIpIHsNCgkJCQkJCSRyZWZlcnR4dCA9IHNtZF9hZGRR U1ZhcigkbGlua3VybCwgJHJlZmVyZXIsICRyb3dbJ2lkJ10pOw0KCQkJCQl9IGVsc2Ugew0K CQkJCQkJJHJlZmVydHh0ID0gJGxpbmt1cmw7DQoJCQkJCX0NCgkJCQkJJG91dFN0ciAuPSAn PGEgaHJlZj0iJyAuJHJlZmVydHh0LiAnIicgLiR0YXJnZXQuICc+JyAuICRvYmpPdXQuICc8 L2E+JzsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkb3V0U3RyIC49ICRvYmpPdXQ7DQoJCQkJfQ0K CQkJfQ0KCQl9DQoJfQ0KDQoJcmV0dXJuICRvdXRTdHI7DQp9IjtzOjQ6InR5cGUiO3M6MToi MCI7czo0OiJoZWxwIjtzOjUwODIwOiIJPHA+PGRpdiBpZD0ic21kX2hlbHAiPjwvcD4KCgk8 aDEgaWQ9InRvcCI+c21kX3JhbmRvbV9iYW5uZXI8L2gxPgoKCTxoMiBpZD0iY29udGVudHMi PkNvbnRlbnRzPC9oMj4KCgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNmZWF0dXJlcyI+RmVhdHVy ZXM8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2F1dGhvciI+QXV0aG9yPC9hPjwvbGk+CgkJ PGxpPjxhIGhyZWY9IiNpbnN0YWxsIj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxhdGlvbjwv YT48L2xpPgoJCTxsaT48YSBocmVmPSIjdXNhZ2UiPlRhZyB1c2FnZTwvYT4KCTx1bD4KCQk8 bGk+PGEgaHJlZj0iI2ltZ21vZGUiPkltYWdlIG1vZGU8L2E+Cgk8dWw+CgkJPGxpPjxhIGhy ZWY9IiNpbWdhdHRzIj5BdHRyaWJ1dGVzPC9hPjwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxh IGhyZWY9IiNmaWxlbW9kZSI+RmlsZSBtb2RlPC9hPgoJPHVsPgoJCTxsaT48YSBocmVmPSIj bWltZXR5cGVzIj5NaW1lIHR5cGVzPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNmaWxlYXR0 cyI+QXR0cmlidXRlczwvYT48L2xpPgoJPC91bD48L2xpPgoJCTxsaT48YSBocmVmPSIjZmll bGRzIj5BcnRpY2xlIGZpZWxkIGNvZGVzPC9hPjwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxh IGhyZWY9IiNleGFtcGxlcyI+RXhhbXBsZXM8L2E+Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNp bWVnIj5JbWFnZSBtb2RlPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNmbWVnIj5GaWxlIG1v ZGU8L2E+PC9saT4KCTwvdWw+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2NoYW5nZWxvZyI+Q2hh bmdlbG9nPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNjcmVkaXRzIj5DcmVkaXRzPC9hPjwv bGk+Cgk8L3VsPgoKCTxoMiBpZD0iZmVhdHVyZXMiPkZlYXR1cmVzPC9oMj4KCgk8dWw+CgkJ PGxpPlJhbmRvbWx5IGRpc3BsYXkgb25lIG9yIG1vcmUgYmFubmVycyBvbiBhIHBhZ2UgZm9y IGNvc21ldGljIG9yIGFkdmVydGlzaW5nIHB1cnBvc2VzPC9saT4KCQk8bGk+UmVkdWNlIHRo ZSBwb29sIG9mIHBvdGVudGlhbCBiYW5uZXJzIGJhc2VkIG9uIGNhdGVnb3J5L2lkIG9yIHNv bWUgdGV4dCB0aGF0IG1hdGNoZXMgc29tZXRoaW5nIGluIHRoZSBjdXJyZW50IGFydGljbGU8 L2xpPgoJCTxsaT5TdWJjYXRlZ29yeSBzdXBwb3J0PC9saT4KCQk8bGk+QmFubmVycyBjYW4g YmUgaW1hZ2VzIG9yIGZpbGVzIHRvIGRpc3BsYXkgc3RhdGljIG9yIG1vdmluZyBjb250ZW50 IChpbmNsdWRlcyA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3Avc3dmb2JqZWN0 LyI+c3dmb2JqZWN0PC9hPiBzdXBwb3J0KTwvbGk+CgkJPGxpPk9wdGlvbmFsbHkgbGluayBi YW5uZXJzIHRvIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+cyBhbmQgKGtpbmQgb2Yp IHRyYWNrIHdoaWNoIGJhbm5lcnMgcmVjZWl2ZWQgbW9zdCBjbGlja3MgdmlhIDxzcGFuIGNs YXNzPSJjYXBzIj5UWFA8L3NwYW4+JiM4MjE3O3MgbG9nczwvbGk+Cgk8L3VsPgoKCTxoMiBp ZD0iYXV0aG9yIj5BdXRob3I8L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS9jb21tZW50Rm9ybSI+U3RlZiBEYXdzb248L2E+LiBGb3Igb3RoZXIgc29mdHdhcmUg YnkgbWUsIG9yIHRvIG1ha2UgYSBkb25hdGlvbiwgc2VlIHRoZSA8YSBocmVmPSJodHRwOi8v c3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+LjwvcD4KCgk8aDIgaWQ9Imlu c3RhbGwiPkluc3RhbGxhdGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cCBjbGFzcz0i cmVxdWlyZWQiPlJlcXVpcmVzIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9kb3du bG9hZHMvc21kX2xpYl92MC4zMi50eHQiPnNtZF9saWIgdjAuMzI8L2E+IHRvIGJlIGluc3Rh bGxlZCBhbmQgYWN0aXZhdGVkLjwvcD4KCgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20g ZWl0aGVyIDxhIGhyZWY9Imh0dHA6Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy82MTEvc21k X3JhbmRvbV9iYW5uZXIiPnRleHRwYXR0ZXJuLm9yZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJo dHRwOi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUg Y29kZSBpbnRvIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0 OyBQbHVnaW5zIHBhbmUsIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0 aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhw P2lkPTE2NDQ4Ij5mb3J1bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0 IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5U byByZW1vdmUgdGhlIHBsdWdpbiwgc2ltcGx5IGRlbGV0ZSBpdCBmcm9tIHRoZSBBZG1pbi0m Z3Q7UGx1Z2lucyB0YWIuIElmIHlvdSBhcmUgbm8gbG9uZ2VyIHVzaW5nIHNtZF9saWIgd2l0 aCBhbnkgb3RoZXIgcGx1Z2lucywgdGhpcyBjYW4gYWxzbyBiZSByZW1vdmVkLjwvcD4KCgk8 aDIgaWQ9InVzYWdlIj5Vc2FnZTwvaDI+CgoJPHA+SWYgeW91IHdhbnQgdG8gZWl0aGVyIGRp c3BsYXkgJiM4MjE2O2ludGVsbGlnZW50JiM4MjE3OyBiYW5uZXJzIG9uIHlvdXIgcGFnZSB0 aGF0IHNvbWVob3cgcmVsYXRlIHRvIHRoZSBjdXJyZW50bHktdmlld2VkIGNvbnRlbnQ7IG9y IHBlcmhhcHMgZGlzcGxheSBzb21lIGJhbm5lcnMgdGhhdCBhZHZlcnRpc2UgPGVtPm90aGVy PC9lbT4gcGFydHMgb2YgeW91ciBzaXRlIChlLmcuICYjODIyMDtXaGlsZSB5b3UgYXJlIGhl cmUsIGhvdyBhYm91dCYjODIzMDsmIzgyMjE7KSB0aGVuIHRoaXMgcGx1Z2luIHdpbGwgaGVs cCB5b3UgYWNoaWV2ZSB0aGF0LiBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIHNpbXBseSBzcHJ1 Y2UgdXAgYSBwYWdlIGFuZCBzaG93IGEgcmFuZG9tIGltYWdlIG9yIHR3byBlYWNoIHRpbWUu PC9wPgoKCTxwPlRoZSBwbHVnaW4gY2FuIGZ1bmN0aW9uIGluIHR3byBkaXN0aW5jdCBtb2Rl czsgPGEgaHJlZj0iI2ltZ21vZGUiPmltYWdlPC9hPiBvciA8YSBocmVmPSIjZmlsZW1vZGUi PmZpbGU8L2E+LjwvcD4KCgk8aDIgaWQ9ImltZ21vZGUiPkltYWdlIG1vZGU8L2gyPgoKCTxw PkluIGl0cyBiYXNlIGZvcm0sIHRoaXMgbW9kZSBmdW5jdGlvbnMgZXhhY3RseSBhcyBkcnVf cmFuZG9tX2ltYWdlLCBpLmUuIGl0IHBpY2tzIG9uZSByYW5kb20gaW1hZ2UgZnJvbSB0aGUg ZW50aXJlIGRhdGFiYXNlIG9mIGltYWdlcyBhbmQgZGlzcGxheXMgaXQuIEJ1dCBpdCBjYW4g ZG8gYSB3aG9sZSBsb3QgbW9yZS4gRWFjaCBvcHRpb24gd2hpdHRsZXMgdGhlIGltYWdlcyBk b3duIGZ1cnRoZXIsIGJhc2VkIG9uIHZhcmlvdXMgY3JpdGVyaWEsIHVudGlsIHlvdSBhcmUg bGVmdCB3aXRoIGEgcG90ZW50aWFsIHBvb2wgb2YgaW1hZ2VzLCBmcm9tIHdoaWNoIHRoZSBw bHVnaW4gdGhlbiByYW5kb21seSBjaG9vc2VzIG9uZSBvciBtb3JlIHBpY3R1cmVzLjwvcD4K Cgk8aDIgaWQ9ImltZ2F0dHMiPkltYWdlIG1vZGUgYXR0cmlidXRlczwvaDI+Cgo8cD5Td2l0 Y2hlcyB0aGUgcGx1Z2luIGJldHdlZW4gdGhpcyBkZWZhdWx0IDxhIGhyZWY9IiNpbWdtb2Rl Ij5pbWFnZSBtb2RlPC9hPiAocHVsbGluZyBwaWN0dXJlcyBmcm9tIHRoZSBpbWFnZSBkYXRh YmFzZSkgb3IgPGEgaHJlZj0iI2ZpbGVtb2RlIj5maWxlIG1vZGU8L2E+IChmcm9tIHVwbG9h ZGVkIGZpbGVzKS48L3A+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm1v ZGU8L3NwYW4+IDogc3dpdGNoZXMgdGhlIHBsdWdpbiBiZXR3ZWVuIHRoaXMgZGVmYXVsdCA8 Y29kZT5tb2RlPSZxdW90O2ltYWdlJnF1b3Q7PC9jb2RlPiBmb3IgcHVsbGluZyBiYW5uZXJz IGZyb20gPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4mIzgyMTc7cyBJbWFnZXMgcGFn ZSwgb3IgPGNvZGU+bW9kZT0mcXVvdDtmaWxlJnF1b3Q7PC9jb2RlPiB0byBjaG9vc2UgYmFu bmVycyBmcm9tIGZpbGVzIHVwbG9hZGVkIHRvIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3Nw YW4+IEZpbGVzIHBhZ2UuPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5jYXRl Z29yeTwvc3Bhbj4gOiBhIGxpc3Qgb2YgaW1hZ2UgY2F0ZWdvcmllcy4gQnkgZGVmYXVsdCB0 aGUgbGlzdCBzaG91bGQgYmUgY29tbWEtc2VwYXJhdGVkIGJ1dCB0aGlzIGNhbiBiZSBjaGFu Z2VkIHdpdGggdGhlIDxjb2RlPmRlbGltPC9jb2RlPiBvcHRpb24uIFRoaXMgYXR0cmlidXRl IG1heSB0YWtlIGFueSBvZiB0aGUgc3BlY2lhbCA8YSBocmVmPSIjZmllbGRzIj5maWVsZCBj b2RlczwvYT4gYnkgZ2l2aW5nIGl0cyBuYW1lIGFmdGVyIGEgPGNvZGU+PzwvY29kZT4gKHRv IGluY2x1ZGUgdGhhdCBmaWVsZCkgb3IgPGNvZGU+ITwvY29kZT4gKHRvIGV4Y2x1ZGUgdGhh dCBmaWVsZCk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmlkPC9zcGFuPiA6 IGEgbGlzdCBvZiBpbWFnZSBJRHMuIFRha2VzIGV4YWN0bHkgdGhlIHNhbWUgc3ludGF4IGFz IHRoZSA8Y29kZT5jYXRlZ29yeTwvY29kZT4gYXR0cmlidXRlLiBDYW4gYmUgdXNlZCBpbiBj b21iaW5hdGlvbiB3aXRoIGNhdGVnb3J5IHRvIHByb2R1Y2UgYSBmdWxsIHNldCBvZiBpbWFn ZXMgdG8gY2hvb3NlIGZyb20uIFlvdSBtYXkgYWxzbyBzcGVjaWZ5IHJhbmdlcyBvZiBpbWFn ZSBJRHMsIGUuZy4gPGNvZGU+aWQ9JnF1b3Q7MTAtMTUsIDQyJnF1b3Q7PC9jb2RlPiB3b3Vs ZCBtYWtlIGltYWdlcyB3aXRoIElEcyAxMCB0aHJvdWdoIDE1IGFuZCBJRCA0MiBhdmFpbGFi bGU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnN1YmNhdHM8L3NwYW4+IDog aG93IGZhciAmIzgyMTY7ZG93biYjODIxNzsgdG8gdHJhdmVyc2UgaW1hZ2Ugc3ViLWNhdGVn b3JpZXMuIFRha2VzIGFuIGludGVnZXIgdmFsdWUgb3IgJiM4MjE2O2FsbCYjODIxNzsuIDAg KHRoZSBkZWZhdWx0KSBtZWFucyBubyBjaGlsZCBjYXRlZ29yaWVzOyAxIHVzZXMgdGhlIG1h aW4gY2F0ZWdvcmllcyBhbmQgdGhlIGZpcnN0IGxldmVsIG9mIGNoaWxkcmVuOyAyIHVzZXMg dGhlIG1haW4gY2F0ZWdvcmllcyBhbmQgdXAgdG8gdHdvIGNoaWxkIHN1Yi1jYXRlZ29yaWVz OyBhbmQgc28gb248L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm1hdGNoX3Rl eHQ8L3NwYW4+IDogYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0ZXh0IHN0cmluZ3MgdG8g bG9vayBmb3IgaW4gdGhlIGltYWdlIGRldGFpbHMuIEFzIHdpdGggdGhlIDxjb2RlPmNhdGVn b3J5PC9jb2RlPiBhbmQgPGNvZGU+aWQ8L2NvZGU+IGF0dHJpYnV0ZXMsIHlvdSBjYW4gc3Bl Y2lmeSA8YSBocmVmPSIjZmllbGRzIj5maWVsZCBjb2RlczwvYT4gdG8gbWF0Y2ggYWdhaW5z dCBzb21ldGhpbmcgaW4gdGhlIGN1cnJlbnQgYXJ0aWNsZTwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdHQtbmFtZSI+YXZvaWRfdGV4dDwvc3Bhbj4gOiB0aGUgb3Bwb3NpdGUgb2YgbWF0 Y2hfdGV4dDsgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0ZXh0IHN0cmluZ3MgdGhhdCBt dXN0IDxzdHJvbmc+bm90PC9zdHJvbmc+IGFwcGVhciBpbiB0aGUgaW1hZ2UgZGV0YWlscy4g WW91IGNhbiBhbHNvIHNwZWNpZnkgPGEgaHJlZj0iI2ZpZWxkcyI+ZmllbGQgY29kZXM8L2E+ IHRvIG1hdGNoIGFnYWluc3Qgc29tZXRoaW5nIGluIHRoZSBjdXJyZW50IGFydGljbGUuIE5v dGUgdGhhdCBhbnkgaW1hZ2VzIG1hdGNoaW5nIHN0dWZmIGluIHRoZSAmIzgyMTY7cG9zaXRp dmUmIzgyMTc7IDxjb2RlPm1hdGNoX3RleHQ8L2NvZGU+IGxpc3Qgd2lsbCBiZSBjaG9zZW4g Zmlyc3QsIGJlZm9yZSBzb21lIG9mIHRoZW0gYXJlIHRoZW4gZXhjbHVkZWQgZnJvbSB0aGUg bGlzdCBpbiA8Y29kZT5hdm9pZF90ZXh0PC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdHQtbmFtZSI+Y29tcGFyZV90bzwvc3Bhbj4gOiBhbGwgdGhpcyB0YWxrIG9mIGNvbXBh cmluZyB3b3JkcyB0byBpbWFnZXMgaXMgZmluZSwgYnV0IHdoYXQgZXhhY3RseSBpcyBpdCBj b21wYXJpbmcgdG8/IFRoaXMgaXMgd2hlcmUgeW91IGRlY2xhcmUgd2hlcmUgdGhlIHBsdWdp biBsb29rcy4gQnkgZGVmYXVsdCBpdCB1c2VzIGp1c3QgdGhlIGltYWdlIGZpbGUgbmFtZSwg YnV0IGl0IGNhbiBiZSBleHRlbmRlZCB0byBlbmNvbXBhc3MgYW55IG9mIHRoZSBmb2xsb3dp bmc6Cgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bmFtZTwvc3Bhbj4gOiBs b29rIGF0IHRoZSBmaWxlbmFtZSBvZiB0aGUgaW1hZ2UgYW5kIGlmIGl0IGNvbnRhaW5zIGFu eSBvZiB0aGUgd29yZHMgaW4gPGNvZGU+bWF0Y2hfdGV4dDwvY29kZT4gdGhlbiBhZGQgaXQg dG8gdGhlIHBvb2wuIENvbnZlcnNlbHksIGlmIGl0IGNvbnRhaW5zIGFueSBvZiB0aGUgd29y ZHMgaW4gPGNvZGU+YXZvaWRfdGV4dDwvY29kZT4gdGhlbiBpZ25vcmUgdGhlIGltYWdlPC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5pZDwvc3Bhbj4gOiBsb29rIGF0IHRo ZSBpZCBvZiB0aGUgaW1hZ2UgYW5kIGluY2x1ZGUvZXhjbHVkZSBpdCBiYXNlZCBvbiB0aGUg bnVtYmVycyBnaXZlbiBpbiA8Y29kZT5tYXRjaF90ZXh0PC9jb2RlPiAvIDxjb2RlPmF2b2lk X3RleHQ8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5jYXB0aW9u PC9zcGFuPiA6IGlmIHRoZSBjYXB0aW9uIGNvbnRhaW5zIHdvcmRzIGZvdW5kIGluIDxjb2Rl Pm1hdGNoX3RleHQ8L2NvZGU+IGFuZCB3b3JkcyBub3QgZm91bmQgaW4gPGNvZGU+YXZvaWRf dGV4dDwvY29kZT4sIGluY2x1ZGUvZXhjbHVkZSB0aGlzIGltYWdlIGZyb20gdGhlIHBvb2w8 L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmFsdDwvc3Bhbj4gOiBpZiB0aGUg YWx0IHRleHQgY29udGFpbnMgb3IgZG9lcyBub3QgY29udGFpbiB0aGUgc3BlY2lmaWVkIHdv cmRzLCBpbmNsdWRlL2V4Y2x1ZGUgdGhpcyBpbWFnZSBmcm9tIHRoZTwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+Y2F0ZWdvcnk8L3NwYW4+IDogYWx0aG91Z2ggbm90IHJl YWxseSBvZiBtdWNoIHVzZSAodGhlIDxjb2RlPmNhdGVnb3J5PC9jb2RlPiBhdHRyaWJ1dGUg Y2FuIGJlIHVzZWQgaW5zdGVhZCksIHlvdSBtYXkgc3BlY2lmeSB0aGUgY2F0ZWdvcnkgYXMg YSBwbGFjZSB0byBsb29rIGZvciBwYXJ0aWN1bGFyIHdvcmRzPC9saT4KCTwvdWw+PC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5saW1pdDwvc3Bhbj4gOiB0aGUgbnVtYmVy IG9mIGJhbm5lcnMgdG8gc2hvdyBwZXIgcGFnZS4gRGVmYXVsdDogMS4gTm90ZSB0aGF0IGlm IHRoZSBwb29sIGNvbnRhaW5zIGZld2VyIGl0ZW1zIHRoYW4gdGhlIG51bWJlciBzcGVjaWZp ZWQgaGVyZSwgdGhlIHBsdWdpbiBjYW4gb25seSBkaXNwbGF5IHRoZSBtYXhpbXVtIG51bWJl ciBpdCBoYXMgZm91bmQgdGhhdCBtYXRjaCB5b3VyIGNyaXRlcmlhPC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0dC1uYW1lIj5hbHdheXNfZGlzcGxheTwvc3Bhbj4gOiBpZiBubyBtYXRj aGluZyBpbWFnZXMgYXJlIGZvdW5kIHRoZSBwbHVnaW4gdXN1YWxseSByZXR1cm5zIG5vdGhp bmcuIFNldHRpbmcgPGNvZGU+YWx3YXlzX2Rpc3BsYXk9JnF1b3Q7MSZxdW90OzwvY29kZT4g Zm9yY2VzIGl0IHRvIHRyeSBhZ2FpbiB3aXRob3V0IGFueSA8Y29kZT5tYXRjaF90ZXh0PC9j b2RlPiBvciA8Y29kZT5hdm9pZF90ZXh0PC9jb2RlPiAoaS5lLiBqdXN0IGFueSA8Y29kZT5j YXRlZ29yeTwvY29kZT4gLyA8Y29kZT5pZDwvY29kZT4geW91IHNwZWNpZmllZCkuIElmIHlv dSByZWFsbHksIHJlYWxseSB3YW50IGFuIGltYWdlIHJlZ2FyZGxlc3MsIHVzZSA8Y29kZT5h bHdheXNfZGlzcGxheT0mcXVvdDsyJnF1b3Q7PC9jb2RlPiB0byBwdWxsIGFuIGltYWdlIGZy b20gdGhlIGVudGlyZSBkYXRhYmFzZS4gRGVmYXVsdDogMCAoaS5lLiBvZmYpPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50aHVtYjwvc3Bhbj4gOiBzZXQgdGhpcyB0byA8 Y29kZT4xPC9jb2RlPiB0byBkaXNwbGF5IHRodW1ibmFpbHMgaW5zdGVhZCBvZiBmdWxsIHNp emUgaW1hZ2VzLiBEZWZhdWx0OiAwIChvciBvbWl0dGVkKTwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdHQtbmFtZSI+bGlua19pbjwvc3Bhbj4gOiBtYWtlcyB0aGUgYmFubmVyIGltYWdl IGNsaWNrYWJsZS4gSW4gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgPHNwYW4gY2xh c3M9ImNhcHMiPlRYUDwvc3Bhbj4gd2UgYXJlIGxpbWl0ZWQgdG8gcHV0dGluZyBhIDxzcGFu IGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGxpbmsgZWl0aGVyIGluIHRoZSBhbHQsIGNhcHRp b24gb3IgbmFtZSBmaWVsZHMuIFNpbXBseSB1c2UgdGhpcyBhdHRyaWJ1dGUgdG8gc3BlY2lm eSB3aGljaCBwYXJ0IG9mIHRoZSBpbWFnZSBkZXRhaWxzIGNvbnRhaW4gdGhlIGRlc3RpbmF0 aW9uIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+LiBJdCBjYW4gYmUgZWl0aGVyIDxj b2RlPmFsdDwvY29kZT4sIDxjb2RlPmNhcHRpb248L2NvZGU+IG9yIDxjb2RlPm5hbWU8L2Nv ZGU+LiBEZWZhdWx0OiBvbWl0dGVkIChubyBsaW5rKTxkaXYgY2xhc3M9ImJyZWFrIj5JZiB0 aGUgbGluayBpcyBhIGZ1bGwgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gc3RhcnRp bmcgd2l0aCA8Y29kZT5odHRwOi8vPC9jb2RlPiBpdCB3aWxsIGJlIHVzZWQgdmVyYmF0aW0g Zm9yIHRoZSBpbWFnZSBsaW5rLiBJZiBpdCBzdGFydHMgd2l0aCBhIDxjb2RlPi88L2NvZGU+ IGl0IHdpbGwgYmUgaHVuZyBvZmYgdGhlIHJvb3Qgc2l0ZV91cmwgZGlyZWN0bHkuIElmIGl0 IHN0YXJ0cyB3aXRoIGFueXRoaW5nIGVsc2UgaXQgaXMgYXNzdW1lZCBhICYjODIxNjtyZWxh dGl2ZSYjODIxNzsgKG9yICYjODIxNjtsb2NhbCYjODIxNzspIGxpbmsgYW5kIGluaGVyaXRz IHRoZSBjdXJyZW50IHNlY3Rpb24uPC9kaXY+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 dC1uYW1lIj5saW5rX3ByZWZpeDwvc3Bhbj4gOiBhIHN0cmluZyB0byBwcmVwZW5kIHRvIGV2 ZXJ5IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHdoZW4gdXNpbmcgPGNvZGU+bGlu a19pbjwvY29kZT4uIFVzZWZ1bCBpZiB5b3UgcmVvcmdhbmlzZSB5b3VyIHNpdGU6IHVzZSB0 aGlzIGluc3RlYWQgb2YgdmlzaXRpbmcgZWFjaCBpbWFnZSBhbmQgYWx0ZXJpbmcgdGhlIG5h bWUvY2FwdGlvbi9hbHQgdGV4dC4gRGVmYXVsdDogb21pdHRlZCAobm8gdGV4dCkuIEFzIHdp dGggPGNvZGU+bGlua19pbjwvY29kZT4sIGlmIHRoaXMgYXR0cmlidXRlIGJlZ2lucyB3aXRo IDxjb2RlPmh0dHA6Ly88L2NvZGU+IGl0IGlzIGFzc3VtZWQgYSBmdWxsIDxzcGFuIGNsYXNz PSJjYXBzIj5VUkw8L3NwYW4+IHRvIGFub3RoZXIgc2l0ZTsgaWYgaXQgYmVnaW5zIHdpdGgg PGNvZGU+LzwvY29kZT4gaXQgaXMgYSByb290IGxpbms7IGFueXRoaW5nIGVsc2UgaXMgYXNz dW1lZCByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBzZWN0aW9uLiBOb3RlIHRoYXQgaWYgeW91 IHVzZSBhbiA8Y29kZT5odHRwOi8vPC9jb2RlPiBmdWxsIDxzcGFuIGNsYXNzPSJjYXBzIj5V Ukw8L3NwYW4+IGluIHRoZSBpbWFnZSBpdHNlbGYsIGFueSA8Y29kZT5saW5rX3ByZWZpeDwv Y29kZT4gd2lsbCBiZSBpZ25vcmVkPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1l Ij5kaXNwbGF5X3VybDwvc3Bhbj4gOiBzaW5jZSB0aGlzIHBsdWdpbiBjYW4gaGlqYWNrIHRo ZSBjYXB0aW9uL2FsdCB0ZXh0IGZvciBhIGRlc3RpbmF0aW9uIDxzcGFuIGNsYXNzPSJjYXBz Ij5VUkw8L3NwYW4+LCB5b3UgbWF5IHdpc2ggdG8gbm90IHNob3cgdGhpcyB0byB2aXNpdG9y cyAoYXMgdGhlIGRlZmF1bHQgdG9vbHRpcCBwb3B1cCB0aXRsZSkgb3Igc2NyZWVuIHJlYWRl cnMvc2VhcmNoIGVuZ2luZSBjcmF3bGVycyAodGhlIGFsdCB0ZXh0KS4gVXNpbmcgPGNvZGU+ ZGlzcGxheV91cmw9JnF1b3Q7MCZxdW90OzwvY29kZT4gd2lsbCBzaW1wbHkgdXNlIHRoZSBk ZXRhaWxzIGZyb20gd2hpY2hldmVyIGVsZW1lbnQgeW91IGFyZSA8ZW0+bm90PC9lbT4gdXNp bmcgZm9yIDxjb2RlPmxpbmtfaW48L2NvZGU+LiBGb3IgZXhhbXBsZSwgaWYgeW91ciBhbHQg dGV4dCBpcyAmIzgyMjA7U3B1ZCBndW4mIzgyMjE7IGFuZCB5b3VyIGNhcHRpb24gaXMgJiM4 MjIwO2h0dHA6Ly9zcHVkZ3Vucy5jb20vJiM4MjIxOywgc2V0dGluZyBkaXNwbGF5X3VybCB0 byAwIHdpbGwgbWFrZSBib3RoIGFsdCBhbmQgdGl0bGUgYXR0cmlidXRlcyAmIzgyMjA7U3B1 ZCBndW4mIzgyMjE7LiBEZWZhdWx0OiA8Y29kZT4xPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdHQtbmFtZSI+cmVmZXJlcjwvc3Bhbj4gOiBbc2ljIV0gd2hlbiA8Y29kZT5s aW5rX2luPC9jb2RlPiBpcyB1c2VkLCBlYWNoIGNsaWNrYWJsZSBpbWFnZSBoYXMgPGNvZGU+ P2JpZD1pbWFnZUlEPC9jb2RlPiBhZGRlZCB0byBpdCwgc28gY2xpY2tzIGNhbiBiZSB0cmFj a2VkIGluIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBhZG1pbiBsb2dzIHRv IHNlZSB3aGljaCBhcmUgdGhlIG1vc3QgZWZmZWN0aXZlIGFkcy4gQ2hhbmdlIHRoZSA8Y29k ZT5iaWQ8L2NvZGU+IHRleHQgaGVyZSB0byBzb21ldGhpbmcgb2YgeW91ciBjaG9vc2luZywg b3IgdXNlIDxjb2RlPnJlZmVyZXI9JnF1b3Q7JnF1b3Q7PC9jb2RlPiB0byBkaXNhYmxlIHRy YWNraW5nLiBEZWZhdWx0OiA8Y29kZT5iaWQ8L2NvZGU+LiBOb3RlIHRoYXQgdGhlIGF0dHJp YnV0ZSBpcyBtaXMtc3BlbGxlZCBleGFjdGx5IHRoZSBzYW1lIHdheSBhcyB0aGUgPHNwYW4g Y2xhc3M9ImNhcHMiPkhUVFA8L3NwYW4+IHNwZWMgd2FzIGFsbCB0aG9zZSB5ZWFycyBhZ28g Oi1wPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5yYXdfdXJsPC9zcGFuPiA6 IGluc3RlYWQgb2YgbGlua2luZyBhbmQgbWFraW5nIGEgZnVsbCBpbWFnZSB0YWcsIHVzaW5n IHRoaXMgb3B0aW9uIGp1c3Qgb3V0cHV0cyB0aGUgYmFubmVyIDxzcGFuIGNsYXNzPSJjYXBz Ij5VUkw8L3NwYW4+IGRpcmVjdGx5IHRvIHRoZSBwYWdlLiBUaGlzIGNhbiBiZSB1c2VkIGlu IDxjb2RlPiZsdDtzdHlsZSZndDs8L2NvZGU+IGRlY2xhcmF0aW9ucyB0bywgZm9yIGV4YW1w bGUsIHNldCBhIHJhbmRvbSA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBvYmplY3Qg YmFja2dyb3VuZC4gRGVmYXVsdDogb2ZmPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1u YW1lIj50YXJnZXQ8L3NwYW4+IDogc3BlY2lmaWVzIHRoZSBhbmNob3IgdGFyZ2V0IHdpbmRv dyAoZS5nLiAmIzgyMjA7PGVtPmJsYW5rJiM4MjIxOykgd2hpY2ggd2lsbCBjYXVzZSBhIHBv cHVwIGVmZmVjdCB3aGVuIGEgbGlua2VkIGJhbm5lciBpcyBjbGlja2VkLiBfTkI6IGlmIHVz aW5nIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+WEhUTUw8L3NwYW4+IDEuMSA8c3BhbiBjbGFz cz0iY2FwcyI+RE9DVFlQRTwvc3Bhbj4gd2l0aCB0aGlzIG9wdGlvbiwgeW91ciBwYWdlIHdp bGwgbm90IHZhbGlkYXRlIHNpbmNlIHRhcmdldCBpcyBkZXByZWNhdGVkIGJ5IHRoZSBXM0M8 L2VtPi4gRGVmYXVsdDogbm90IHNldCAobGlua3Mgb3BlbiBpbiBzYW1lIHdpbmRvdyk8L2xp PgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmNsYXNzPC9zcGFuPiA6IDxzcGFuIGNs YXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGZvciBlYWNoIGJhbm5lciBpbWFnZSBkaXNw bGF5ZWQuIERlZmF1bHQ6IGVtcHR5IChpLmUuIG5vIGNsYXNzKS4gPGVtPk5vdGUgdGhhdCB0 aGlzIGF0dHJpYnV0ZSB3YXMgZm9ybWVybHkgY2FsbGVkIGltZ2NsYXNzPC9lbT48L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmRlbGltPC9zcGFuPiA6IGlmIHlvdSBwcmVm ZXIgdG8gc2V0IHRoZSBkZWxpbWl0ZXIgdG8gc29tZXRoaW5nIG90aGVyIHRoYW4gYSBjb21t YSB3aGVuIHNwZWNpZnlpbmcgZmllbGRzLCB1c2UgdGhpcyBhdHRyaWJ1dGUuIFZlcnkgdXNl ZnVsIGlmIHVzaW5nIHRoZSBnbHpfY3VzdG9tX2ZpZWxkcyBwbHVnaW47IHlvdSBjYW4gc2V0 IHRoaXMgdG8gPGNvZGU+ZGVsaW09JnF1b3Q7fCZxdW90OzwvY29kZT4gdG8gdXNlIHNlbGVj dCBvciByYWRpbyBidXR0b25zIGluIGN1c3RvbSBmaWVsZHM8L2xpPgoJPC91bD4KCgk8aDIg aWQ9ImZpbGVtb2RlIj5GaWxlIG1vZGU8L2gyPgoKCTxwPlNpbWlsYXIgaW4gbWFueSByZXNw ZWN0cyB0byB0aGUgPGEgaHJlZj0iI2ltZ21vZGUiPmltYWdlIG1vZGU8L2E+IHRoZSBwbHVn aW4gY2FuIGNob29zZSByYW5kb20gZmlsZXMgZnJvbSB0aG9zZSB1cGxvYWRlZCB0byB0aGUg RmlsZXMgdGFiIGluIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBpbnRlcmZh Y2UuIFRoaXMgZ2l2ZXMgeW91IHRoZSBvcHRpb24gb2YgdXNpbmcgYSByYW5kb21seSBzZWxl Y3RlZCBwaWVjZSBvZiBGbGFzaCBvciBhIHZpZGVvIGZpbGUgaWYgeW91IHdhbnQuIEluIHRo ZW9yeSwgaWYgdGhlcmUmIzgyMTc7cyBhIGJyb3dzZXIgcGx1Z2luIGF2YWlsYWJsZSBmb3Ig aXQsIHlvdSBjYW4gcGxheSBpdCAoYnV0IG5vdGUgdGhlIGNhdmVhdHMgbGF0ZXI6IHN1cHBv cnQgZm9yIGV2ZXJ5dGhpbmcgaXNuJiM4MjE3O3QgYnVpbHQgaW4gbmF0aXZlbHkpLjwvcD4K Cgk8cD5BcyB3aXRoIHRoZSBpbWFnZSBtb2RlLCBtb3N0IG9mIHRoZSBvcHRpb25zIHdvcmsg dG8gd2hpdHRsZSBkb3duIHRoZSBjaG9pY2VzIHRvIGEgcG9vbCBvZiBmaWxlcyB0aGF0IG1h dGNoIHlvdXIgc3BlY2lmaWMgY3JpdGVyaWEuIFRoZSBwbHVnaW4gdGhlbiByYW5kb21seSBj aG9vc2VzIG9uZSAob3IgbW9yZSkgb2YgdGhvc2UgYW5kIHJlbmRlcnMgaXQgYXMgYmVzdCBp dCBjYW4uPC9wPgoKCTxwPlRoZXJlIGlzIG9uZSBjcnVjaWFsIGRpZmZlcmVuY2UgaW4gdGhp cyBtb2RlOiBzaW5jZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBpcyBsaW1pdGVk IHRvIG9uZSBmaWVsZCBvZiBjdXN0b21pc2FibGUgY29udGVudCB3aXRoIEZpbGVzIGFuZCB0 aGVyZSBhcmUgYSBsb3Qgb2YgcG90ZW50aWFsIGlkaW9zeW5jcmFjaWVzIGluIGVtYmVkZGlu ZyBwbGF5YWJsZSBjb250ZW50LCBvbmx5IHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgaXMgc3Bl Y2lmaWVkIGFzIHBsdWdpbiBvcHRpb25zLiBDdXN0b21pc2F0aW9uIGFib3ZlIGFuZCBiZXlv bmQgdGhhdCBnb2VzIGluIHRoZSA8Y29kZT5kZXNjcmlwdGlvbjwvY29kZT4gZmllbGQgYXMg YSBjYXRjaC1hbGwgZm9yIG1hbnkgZXh0cmEgb3B0aW9ucy48L3A+CgoJPHA+VW5mb3J0dW5h dGVseSwgdXNpbmcgb25lIGZpZWxkIGZvciBtYW55IHB1cnBvc2VzIGltcGxpZXMgc3RpY2tp bmcgdG8gc29tZSBjb252ZW50aW9ucy4gVG8gdGhpcyBlbmQsIHdoZW4gc3BlY2lmeWluZyBv cHRpb25zIGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZCwgdXNlIHRoZSBmb2xsb3dpbmcgZm9y bWF0OjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPm9wdGlv bk5hbWUxPW9wdGlvblZhbHVlMTsKb3B0aW9uTmFtZTI9b3B0aW9uVmFsdWUyOwouLi4KPC9j b2RlPjwvcHJlPgoKCTxwPk5vIHF1b3RlcyBhcmUgbmVjZXNzYXJ5IGFyb3VuZCB0aGUgb3B0 aW9uIHZhbHVlcyBhcyB0aGUgcGx1Z2luIHdpbGwgcHV0IHRoZW0gaW4gZm9yIHlvdSwgdGhv dWdoIGl0IGRvZXMgbm8gaGFybSB0byBpbmNsdWRlIHRoZW0uIEFuZCBhbHRob3VnaCBzcGFj ZXMgYW5kIG5ld2xpbmVzIGFyZSBhbHNvIG9wdGlvbmFsLCBpdCYjODIxNztsbCBoZWxwIGtl ZXAgeW91ciBzYW5pdHkgaWYgeW91IGRvIHRoaW5ncyB0aGlzIHdheSEgSnVzdCBub3RlIHRo YXQgZXZlcnkgPGNvZGU+b3B0aW9uPXZhbHVlPC9jb2RlPiBwYWlyIGVuZHMgd2l0aCBhIHNl bWljb2xvbiAoPGNvZGU+OzwvY29kZT4pLiBJdCBpcyBwcm9iYWJseSBiZXN0IHRvIHNldCBh c2lkZSBhIHNwZWNpZmljIGNhdGVnb3J5L3N1Yi1jYXRlZ29yeSBmaWxlIHRyZWUgZm9yIHlv dXIgYmFubmVycyBzaW5jZSB3ZSBhcmUgZ29pbmcgdG8gYmUgaGlqYWNraW5nIHRoZSBkZXNj cmlwdGlvbiBmaWVsZCBmb3IgcHVycG9zZXMgb3RoZXIgdGhhbiBpdCB3YXMgaW50ZW5kZWQu PC9wPgoKCTxoMiBpZD0ibWltZXR5cGVzIj48c3BhbiBjbGFzcz0iY2FwcyI+TUlNRTwvc3Bh bj4gdHlwZXM8L2gyPgoKCTxwPjxzcGFuIGNsYXNzPSJjYXBzIj5NSU1FPC9zcGFuPiB0eXBl cyBydWxlIGluIEZpbGVzIG1vZGUuIFVuZm9ydHVuYXRlbHksIHRoZSB0b29scyBicm93c2Vy cyBhbmQgc2VydmVycyBlbXBsb3kgdG8gYWNjdXJhdGVseSBkZXRlcm1pbmUgd2hpY2ggZmls ZSBpcyBvZiB3aGF0IHR5cGUgYXJlIG9mdGVuIGV4dGVuc2lvbnMgYW5kIGNhbm5vdCBiZSBn dWFyYW50ZWVkIHRvIGJlIGluc3RhbGxlZCBvbiBldmVyeSBzZXJ2ZXIuIFNvIHdlIGhhdmUg dG8gdXNlIHRoZSBuZXh0IGJlc3QgdGhpbmc6IHRoZSBmaWxlIGV4dGVuc2lvbi4gWWVzIGl0 IGNhbiBiZSBtaXNsZWFkaW5nLCBidXQgd2UmIzgyMTc7cmUgc3R1Y2sgd2l0aCBpdC48L3A+ CgoJPHA+T25jZSBhIGZpbGUgaGFzIGJlZW4gc2VsZWN0ZWQgYmFzZWQgb24geW91ciBjaG9z ZW4gYXR0cmlidXRlcywgdGhlIHBsdWdpbiBsb29rcyBhdCBpdHMgZmlsZSBleHRlbnNpb24u IEJhc2VkIG9uIHRoYXQgaXQgdXNlcyBhIGxvb2t1cCB0YWJsZSB0byBkZXRlcm1pbmUgdGhl IGNvcnJlY3QgPHNwYW4gY2xhc3M9ImNhcHMiPk1JTUU8L3NwYW4+IHR5cGUgYW5kIHRlbXBs YXRlLiBUaGUgPHNwYW4gY2xhc3M9ImNhcHMiPk1JTUU8L3NwYW4+IHR5cGUgaXMgb3ZlcnJp ZGFibGUgb24gYSBwZXItZmlsZSBiYXNpcyBidXQgdGhlIHRlbXBsYXRlcyBhcmUgYWxsIGhh cmQtY29kZWQgZm9yIG5vdy4gSSYjODIxNzttIGhvcGluZyB0byBvbmUgZGF5IGFsbG93IHRo ZW0gdG8gYmUgZXh0ZW5kZWQvbW9kaWZpZWQgdmlhIHBsdWdpbiBvcHRpb25zLCBidXQgaXQm IzgyMTc7cyBhIHdheSBvZmYgeWV0LjwvcD4KCgk8cD5Gb3Igbm93LCB0aGUgbW9zdCBjb21t b24gdGhpbmdzIGxpa2UgRmxhc2ggZmlsZXMsIDxzcGFuIGNsYXNzPSJjYXBzIj5BVkk8L3Nw YW4+L01PVi9NUEcvV01WIG1vdmllcyBhbmQgZXZlbiBzb21lIGF1ZGlvIGZvcm1hdHMgbGlr ZSA8c3BhbiBjbGFzcz0iY2FwcyI+V0FWPC9zcGFuPi9PR0cvT1BUSU1GUk9HL0ZMQUMgYXJl IHN1cHBvcnRlZCAoYXVkaW8gYmFubmVycyBhbnlvbmU/ISkgQW5kIHRoZSBnb29kIG5ld3Mg aXMgaXQgc2hvdWxkIGJlIGZhaXJseSBhdXRvbWF0aWMgKGlmIGl0IGlzbiYjODIxNzt0LCBw bGVhc2UgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2NvbW1lbnRGb3JtIj5nZXQg aW4gdG91Y2g8L2E+IGFuZCBzdWdnZXN0IGJldHRlciB0ZW1wbGF0ZXMgZm9yIHRoZSBuZXh0 IHJldmlzaW9uKS48L3A+CgoJPHA+VGhlIGtleSB0byBpdCBpcyBvdmVycmlkaW5nIHRoZSBk ZWZhdWx0IG9wdGlvbnMuIFRoZSA8YSBocmVmPSJodHRwOi8vd3d3Lnczc2Nob29scy5jb20v dGFncy90YWdfb2JqZWN0LmFzcCI+PHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IG9i amVjdCB0YWc8L2E+IGNvbnRhaW5zIGEgaG9zdCBvZiBhdHRyaWJ1dGVzLCBhbGwgb2Ygd2hp Y2ggeW91IGNhbiBvdmVycmlkZSBieSBzcGVjaWZ5aW5nIHRoZW0gYXMgPGNvZGU+b3B0aW9u PXZhbHVlPC9jb2RlPiBwYWlycyBpbiB0aGUgZGVzY3JpcHRpb24gZmllbGQgb2YgdGhhdCBw YXJ0aWN1bGFyIGZpbGUuIEFueSBhdHRyaWJ1dGVzIHRoYXQgbWF0Y2ggdGhlIG5hbWVzIGlu IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gc3BlYyBjYW4gYmUgdXNlZC4g VGhlc2UgYXJlIHRoZSBjb3JlIG9uZXMgdGhhdCB0aGUgcGx1Z2luIHdpbGwgc2VsZWN0IGZv ciB5b3UgaWYgeW91IGRvIG5vdCBzcGVjaWZ5IHlvdXIgb3duIGluIHRoZSA8Y29kZT5kZXNj cmlwdGlvbjwvY29kZT4gZmllbGQgb3IgdGhlIDxjb2RlPmdsb2JhbF9wYXJhbXM8L2NvZGU+ IGF0dHJpYnV0ZTo8L3A+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmRh dGE8L3NwYW4+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHRvIHRoZSBm aWxlIGl0c2VsZi4gVGFrZXMgdGhlIGZpbGUmIzgyMTc7cyA8c3BhbiBjbGFzcz0iY2FwcyI+ VVJMPC9zcGFuPiBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBkYXRh YmFzZSBieSBkZWZhdWx0LCBvciBpdCBtYXkgYmUgb3ZlcnJpZGRlbiBieSB5b3U8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnR5cGU8L3NwYW4+IDogdGhlIDxzcGFuIGNs YXNzPSJjYXBzIj5NSU1FPC9zcGFuPiB0eXBlIG9mIHRoZSBmaWxlLCBkZXRlcm1pbmVkIGZy b20gdGhlIGludGVybmFsIGxvb2t1cCB0YWJsZS4gSWYgaXQgY2hvb3NlcyB3cm9uZ2x5IG9y IHlvdSB3YW50IGEgZmFuY2lmdWwgdHlwZSBub3QgaW5jbHVkZWQsIG92ZXJyaWRlIGl0PC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj53aWR0aDwvc3Bhbj4gOiB0aGUgaG9y aXpvbnRhbCBzY3JlZW4gcmVhbCBlc3RhdGUgdGhhdCB0aGUgb2JqZWN0IHdpbGwgb2NjdXB5 LiBCeSBkZWZhdWx0IGl0IHRha2VzIHRoZSB2YWx1ZXMgb24gYSBwZXItbGFuZ3VhZ2UgYmFz aXMgKGlmIDxzcGFuIGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+IGlzIGluc3RhbGxlZCkgYmVj YXVzZSBjb250ZW50IG9mdGVuIHZhcmllcyBmcm9tIGNvdW50cnkgdG8gY291bnRyeS4gV2l0 aG91dCA8c3BhbiBjbGFzcz0iY2FwcyI+TUxQPC9zcGFuPiBpdCYjODIxNztzIDMwMHB4IHNv IHlvdSBwcm9iYWJseSBzaG91bGQgb3ZlcnJpZGUgdGhpczwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdHQtbmFtZSI+aGVpZ2h0PC9zcGFuPiA6IHRoZSB2ZXJ0aWNhbCBzY3JlZW4gcmVh bCBlc3RhdGUgdGhlIG9iamVjdCB0YWtlcyB1cC4gPHNwYW4gY2xhc3M9ImNhcHMiPk1MUDwv c3Bhbj4tYXdhcmUsIGFzIGFib3ZlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1l Ij5pZDwvc3Bhbj4gOiB0aGUgdW5pcXVlIElEIGZvciB0aGUgb2JqZWN0LiBJZiBub3Qgb3Zl cnJpZGVuLCB0aGUgZGVmYXVsdCBpcyAmIzgyMjA7aWQmIzgyMjE7IHBsdXMgYSByYW5kb20g bnVtYmVyPC9saT4KCTwvdWw+CgoJPGgyIGlkPSJzd2ZvYmplY3QiPk92ZXJyaWRpbmcgPHNw YW4gY2xhc3M9ImNhcHMiPk1JTUU8L3NwYW4+IHR5cGVzIC8gc3dmb2JqZWN0PC9oMj4KCgk8 cD5JZiB5b3Ugd2lzaCB0byBvdmVycmlkZSB0aGUgYXV0by1kZXRlY3RlZCBtaW1lIHR5cGUg Zm9yIGFueSByZWFzb24sIHNwZWNpZnkgPGNvZGU+bWltZV90eXBlPVVzZVRoaXNGaWxlRXh0 ZW5zaW9uSW5zdGVhZDwvY29kZT4gKGUuZy4gPGNvZGU+bWltZV90eXBlPSZxdW90O2F2aSZx dW90OzwvY29kZT4pLiBUaGF0IHdpbGwgdGhlbiB1c2UgdGhlIHRlbXBsYXRlIGZvciBhbiBh dmkgZmlsZSByZWdhcmRsZXNzIG9mIHRoZSBmaWxlJiM4MjE3O3MgcmVhbCBleHRlbnNpb24u PC9wPgoKCTxwPlNvbWUgcGVvcGxlIHByZWZlciB0byBlbWJlZCBtb3ZpZXMgdXNpbmcgdGhl IDNyZCBwYXJ0eSBsaWJyYXJ5IHN3Zm9iamVjdC4gUmFuZG9tX2Jhbm5lciBzdXBwb3J0cyB0 aGlzIGxpYnJhcnkgYnV0IGl0IDxlbT5kb2VzIG5vdDwvZW0+IGxvYWQgdGhlIGxpYnJhcnkg Zm9yIHlvdTogaW5jb3Jwb3JhdGUgaXQgb250byB5b3VyIHBhZ2UgcHJpb3IgdG8gY2FsbGlu ZyBzbWRfcmFuZG9tX2Jhbm5lci48L3A+CgoJPHA+T3ZlcnJpZGluZyB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPk1JTUU8L3NwYW4+IHR5cGUgaXMgY3VycmVudGx5IGhvdyBzd2ZvYmplY3Qg bW9kZSB3b3JrczogaXQmIzgyMTc7cyBhIGhhY2sgYmVjYXVzZSB0aGUgcGx1Z2luIGNhbm5v dCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gYSA8Y29kZT4uc3dmPC9jb2RlPiB5b3Ugd2FudCB0 byBlbWJlZCB3aXRoIHRoZSBvYmplY3QgdGFnIGFuZCBvbmUgeW91IHdhbnQgdG8gZW1iZWQg dXNpbmcgc3dmb2JqZWN0LiBJbiB0aGlzIGNhc2UsIHNwZWNpZnkgdGhlIHNwZWNpYWwgYXR0 cmlidXRlIDxjb2RlPm1pbWVfdHlwZT0mcXVvdDtzd28mcXVvdDs8L2NvZGU+LCBlaXRoZXIg aW4gdGhlIGRlc2NyaXB0aW9uIGZpZWxkIG9mIHRoZSByZWxldmFudCBmaWxlIG9yIGFzIGEg PGNvZGU+Z2xvYmFsX3BhcmFtPC9jb2RlPi48L3A+CgoJPHA+V2hlbiB1c2luZyBzd2ZvYmpl Y3QgdGhlcmUgYXJlIGEgZmV3IG1vcmUgb3B0aW9ucyB5b3UgY2FuIHNwZWNpZnk6PC9wPgoK CTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5wbGF5ZXJ2ZXJzaW9uPC9zcGFu PiA6IHRoZSBtaW5pbXVtIHZlcnNpb24gb2YgZmxhc2ggcGxheWVyIHlvdSByZXF1aXJlIHVz ZXJzIHRvIGhhdmUgYmVmb3JlIHRoZXkgY2FuIHNlZSB0aGUgY29udGVudC4gRGVmYXVsdCBp cyA4PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5iYWNrY29sb3I8L3NwYW4+ IDogYSBoZXggc3RyaW5nIGxpa2UgPGNvZGU+IzAwNzQxMjwvY29kZT4gdG8gc2V0IHRoZSBj b2xvciBvZiB0aGUgYmFja2dyb3VuZCBvZiB0aGUgc3dmb2JqZWN0LiBOb3RlIGl0JiM4MjE3 O3MgY2FsbGVkIDxjb2RlPmJhY2tjb2xvcjwvY29kZT4gdG8gZGlzdGluZ3Vpc2ggaXQgZnJv bSB0aGUgb2JqZWN0IHRhZyYjODIxNztzIDxjb2RlPmJnY29sb3I8L2NvZGU+LiBEZWZhdWx0 IGlzIHdoaXRlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5lbGVtZW50aWQ8 L3NwYW4+IDogdGhlIHVuaXF1ZSBpZGVudGlmaWVyIHdoaWNoIHRoZSBtb3ZpZSByZXBsYWNl cy4gVGhpcyBpcyBub3JtYWxseSBhbiBlbXB0eSBkaXYgd2l0aCBhbiBpZCBvZiA8Y29kZT5m bGFzaGNvbnRlbnQ8L2NvZGU+IGJ1dCBzaW5jZSB0aGlzIHBsdWdpbiBjYW4gb3V0cHV0IG1v cmUgdGhhbiBvbmUgYmFubmVyIG9uIHRoZSBwYWdlLCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIg aXMgdG8gYWRkIGEgcmFuZG9tIG51bWJlciBvbiB0aGUgZW5kIG9mIGl0PC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj51aWQ8L3NwYW4+IDogdGhlIGphdmFzY3JpcHQgaWRl bnRpZmllciB0aGF0IGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlIDxzcGFuIGNsYXNzPSJjYXBz Ij5TV0ZPPC9zcGFuPmJqZWN0IGluc3RhbmNlLiBJbiBhbGwgdGhlIGV4YW1wbGVzIG9uIHRo ZSBzd2ZvYmplY3Qgd2ViIHNpdGUgdGhpcyBpcyA8Y29kZT5zbzwvY29kZT4gYnV0IGFnYWlu LCBzaW5jZSB0aGUgcGx1Z2luIGNhbiBvdXRwdXQgbW9yZSB0aGFuIG9uZSBiYW5uZXIsIHRo ZSBkZWZhdWx0IGJlaGF2aW91ciBhZGRzIGEgcmFuZG9tIG51bWJlciBvbiB0aGUgZW5kIG9m IGl0PC9saT4KCTwvdWw+CgoJPHA+SW4gYm90aCBzdGFuZGFyZCBvYmplY3QgYW5kIHN3Zm9i amVjdCBtb2RlcywgdGhlIG90aGVyIG9wdGlvbnMgYXJlIHRvbyBudW1lcm91cyB0byBsaXN0 LCBidXQgVzNTY2hvb2xzLCBBZG9iZSBvciBHb29nbGUgd2lsbCBoZWxwIHlvdSBmaW5kIHRo ZW0gaWYgeW91IG5lZWQgdGhlbS48L3A+CgoJPHA+QW55IDxjb2RlPm9wdGlvbj12YWx1ZTwv Y29kZT4gcGFpciBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPmRlc2NyaXB0aW9uPC9jb2RlPiBm aWVsZCB0aGF0IGlzIDxlbT5ub3Q8L2VtPiBwYXJ0IG9mIHRoZSBjb3JlIHNwZWMgaXMgYXNz dW1lZCB0byBiZSBhIDxjb2RlPiZsdDtwYXJhbSZndDs8L2NvZGU+IHdpdGhpbiB0aGUgb2Jq ZWN0IGl0c2VsZi4gVXNlIHRoaXMgZmFjaWxpdHkgdG8gc3BlY2lmeSBhbnkgZXh0cmEgb3B0 aW9ucyB5b3VyIGNob3NlbiBmaWxlIHR5cGUgcmVxdWlyZXMgdG8gb3BlcmF0ZSBjb3JyZWN0 bHkuIElmIHlvdSBuZWVkIHRvIHVzZSBhIGRlbGltaXRlciBvdGhlciB0aGFuIDxjb2RlPj08 L2NvZGU+IGJldHdlZW4gbmFtZS12YWx1ZSBwYWlycywgdXNlIHRoZSBudl9kZWxpbSBhdHRy aWJ1dGUuPC9wPgoKCTxwPldoZW4gdXNpbmcgc3dmb2JqZWN0IG1vZGUsIHN0YW5kYXJkIHBh cmFtZXRlcnMgYW5kIEZsYXNoVmFycyBhcmUgZGlmZmVyZW50aWF0ZWQgYW5kIHBhc3NlZCB0 byB5b3VyIGFwcGxpY2F0aW9uIHVzaW5nIDxjb2RlPmFkZFBhcmFtKCk8L2NvZGU+IGFuZCA8 Y29kZT5hZGRWYXJpYWJsZSgpPC9jb2RlPiByZXNwZWN0aXZlbHkuIE5vdGUgdGhhdCA8Y29k ZT5leHByZXNzaW5zdGFsbDwvY29kZT4gaXMgY3VycmVudGx5IDxlbT5ub3Q8L2VtPiBzdXBw b3J0ZWQuPC9wPgoKCTxoMiBpZD0iZmlsZWF0dHMiPkZpbGUgbW9kZSBhdHRyaWJ1dGVzPC9o Mj4KCgk8cD5UaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgd29yayBpbiBleGFjdGx5IHRoZSBz YW1lIHdheSBhcyB0aGV5IGRvIGluIDxhIGhyZWY9IiNpbWdtb2RlIj5pbWFnZSBtb2RlPC9h PiB3aXRoIHRoZSBleGNlcHRpb24gdGhhdCBldmVyeXdoZXJlIGl0IG1lbnRpb25zICYjODIx NjtpbWFnZSYjODIxNzsgeW91IGNhbiBzdWJzdGl0dXRlICYjODIxNjtmaWxlJiM4MjE3Ozo8 L3A+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm1vZGU8L3NwYW4+PC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5jYXRlZ29yeTwvc3Bhbj48L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmlkPC9zcGFuPjwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdHQtbmFtZSI+c3ViY2F0czwvc3Bhbj48L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXR0LW5hbWUiPm1hdGNoX3RleHQ8L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0dC1uYW1lIj5hdm9pZF90ZXh0PC9zcGFuPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHQtbmFtZSI+bGltaXQ8L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1l Ij5hbHdheXNfZGlzcGxheTwvc3Bhbj48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5h bWUiPmxpbmtfcHJlZml4PC9zcGFuPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFt ZSI+cmVmZXJlcjwvc3Bhbj48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnJh d191cmw8L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50YXJnZXQ8 L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5kZWxpbTwvc3Bhbj48 L2xpPgoJPC91bD4KCgk8cD5UaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIGlnbm9yZWQgaW4g RmlsZSBtb2RlOjwvcD4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+dGh1 bWI8L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5kaXNwbGF5X3Vy bDwvc3Bhbj48L2xpPgoJPC91bD4KCgk8cD5BbmQgdGhlc2Ugb3B0aW9ucyB3b3JrIGRpZmZl cmVudGx5LCBvciBhcmUgc3BlY2lmaWMgdG8gdGhpcyBtb2RlOjwvcD4KCgk8dWw+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+Y29tcGFyZV90bzwvc3Bhbj4gOiBkZWNsYXJlIHdo aWNoIGZpZWxkcyBvZiB0aGUgZmlsZSB0aGUgcGx1Z2luIGxvb2tzIHdoZW4gbWF0Y2hpbmcg b3IgYXZvaWRpbmcgdGV4dC4gQnkgZGVmYXVsdCBpdCB1c2VzIGp1c3QgdGhlIGZpbGUgbmFt ZSwgYnV0IGl0IGNhbiBiZSBleHRlbmRlZCB0byBlbmNvbXBhc3MgYW55IG9mIHRoZSBmb2xs b3dpbmc6Cgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ZmlsZW5hbWU8L3Nw YW4+IDogbG9vayBhdCB0aGUgZmlsZW5hbWUgb2YgdGhlIGZpbGUgYW5kIGlmIGl0IGNvbnRh aW5zIGFueSBvZiB0aGUgd29yZHMgaW4gPGNvZGU+bWF0Y2hfdGV4dDwvY29kZT4gdGhlbiBh ZGQgaXQgdG8gdGhlIHBvb2wuIENvbnZlcnNlbHksIGlmIGl0IGNvbnRhaW5zIGFueSBvZiB0 aGUgd29yZHMgaW4gPGNvZGU+YXZvaWRfdGV4dDwvY29kZT4gdGhlbiBpZ25vcmUgdGhlIGZp bGU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmlkPC9zcGFuPiA6IGxvb2sg YXQgdGhlIGlkIG9mIHRoZSBmaWxlIGFuZCBpbmNsdWRlL2V4Y2x1ZGUgaXQgYmFzZWQgb24g dGhlIG51bWJlcnMgZ2l2ZW4gaW4gPGNvZGU+bWF0Y2hfdGV4dDwvY29kZT4gLyA8Y29kZT5h dm9pZF90ZXh0PC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ZGVz Y3JpcHRpb248L3NwYW4+IDogbG9vayBhdCB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGZpbGUg YW5kIGluY2x1ZGUvZXhjbHVkZSBpdCBiYXNlZCBvbiB0aGUgd29yZHMgaW4gPGNvZGU+bWF0 Y2hfdGV4dDwvY29kZT4gLyA8Y29kZT5hdm9pZF90ZXh0PC9jb2RlPjwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+c3RhdHVzPC9zcGFuPiA6IGlmIHRoZSBudW1lcmljIGRp c3BsYXkgc3RhdHVzIG9mIHRoZSBmaWxlIG1hdGNoZXMgKGZvciA8Y29kZT5tYXRjaF90ZXh0 PC9jb2RlPikgb3IgZG9lcyBub3QgbWF0Y2ggKGZvciA8Y29kZT5hdm9pZF90ZXh0PC9jb2Rl PikgYW55IGdpdmVuIG51bWJlcnMsIGluY2x1ZGUvZXhjbHVkZSB0aGlzIGZpbGUgZnJvbSB0 aGUgcG9vbDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+c2l6ZTwvc3Bhbj4g OiAob2YgbGltaXRlZCB1c2UpIGlmIHRoZSBmaWxlIGlzIG9mIGEgcGFydGljdWxhciBzaXpl IChmb3IgbWF0Y2hfdGV4dCkgb3Igbm90IG9mIGEgcGFydGljdWxhciBzaXplIChmb3IgYXZv aWRfdGV4dCksIGluY2x1ZGUvZXhjbHVkZSB0aGlzIGZpbGUgZnJvbSB0aGUgcG9vbDwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+Y2F0ZWdvcnk8L3NwYW4+IDogYXMgd2l0 aCBpbWFnZSBtb2RlLCB0aGlzIG1heSBub3QgYmUgb2YgbXVjaCB1c2UgKHRoZSA8Y29kZT5j YXRlZ29yeTwvY29kZT4gYXR0cmlidXRlIGNhbiBiZSB1c2VkIGluc3RlYWQpLCBidXQgeW91 IG1heSBzcGVjaWZ5IHRoZSBjYXRlZ29yeSBhcyBhIHBsYWNlIHRvIGxvb2sgZm9yIHBhcnRp Y3VsYXIgd29yZHM8L2xpPgoJPC91bD48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5h bWUiPmxpbmtfaW48L3NwYW4+IDogbWFrZXMgdGhlIGJhbm5lciBmaWxlIGNsaWNrYWJsZSBi eSBzcGVjaWZ5aW5nIHdoaWNoIGZpZWxkIG9mIHRoZSBmaWxlIHRoZSA8c3BhbiBjbGFzcz0i Y2FwcyI+VVJMPC9zcGFuPiBpcyBzdG9yZWQuIFRoaXMgY2FuIGN1cnJlbnRseSBvbmx5IGJl IDxjb2RlPmRlc2NyaXB0aW9uPC9jb2RlPi4gRGVmYXVsdDogb21pdHRlZCAobm8gbGluayku IFRoZSBkZXN0aW5hdGlvbiA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBpbiB0aGUg ZGVzY3JpcHRpb24gZmllbGQgb2YgdGhlIGZpbGUgaXMgYSBuYW1lPXZhbHVlIHBhaXIgbGlr ZSB0aGlzOiA8Y29kZT5saW5rX3VybD1odHRwOi8vbXkuZG9tYWluLmNvbS9wbGFjZS90by92 aXNpdDwvY29kZT48ZGl2IGNsYXNzPSJicmVhayI+QSBmdWxsIDxzcGFuIGNsYXNzPSJjYXBz Ij5VUkw8L3NwYW4+IGJlZ2lubmluZyA8Y29kZT5odHRwOi8vPC9jb2RlPiB3aWxsIGJlIHVz ZWQgdmVyYmF0aW0sIGFueXRoaW5nIGJlZ2lubmluZyB3aXRoIGEgPGNvZGU+LzwvY29kZT4g d2lsbCBhc3N1bWUgdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHNpdGUgcm9vdCBhbmQgZXZlcnl0 aGluZyBlbHNlIHdpbGwgYmUgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgc2VjdGlvbi9hcnRp Y2xlLiBOb3RlIHRoYXQgZGVwZW5kaW5nIG9uIHRoZSBwbHVnaW4gbW9kZSwgdGhlIGxpbmsg bWF5IG5vdCBiZSBob25vdXJlZCBiZWNhdXNlIHRoZSBjaG9zZW4gYnJvd3NlciBwbHVnaW4g KGUuZy4gc2hvY2t3YXZlIGZsYXNoKSBtYXkgY2FwdHVyZSBtb3VzZSBjbGlja3MuIEluIGZs YXNoLCB0aGlzIGNhbiBiZSBjaXJjdW12ZW50ZWQgKGN1cnJlbnRseSBvbiBwbGF0Zm9ybXMg ZXhjZXB0IExpbnV4KSBieSBzcGVjaWZ5aW5nIHRoZSBwYXJhbSA8Y29kZT53bW9kZT10cmFu c3BhcmVudDs8L2NvZGU+IDwvZGl2PjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFt ZSI+bnZfZGVsaW08L3NwYW4+IDogd2hlbiBzcGVjaWZ5aW5nIG5hbWUtdmFsdWUgcGFpcnMg aW4gdGhlIGRlc2NyaXB0aW9uIGZpZWxkLCB5b3UgbWF5IGJlIGZhY2VkIHdpdGggdGhlIHBy b2JsZW0gdGhhdCB5b3Ugd2FudCB0byB1c2UgdGhlIDxjb2RlPj08L2NvZGU+IHNpZ24gZWxz ZXdoZXJlOyB0aGlzIGlzIG1vc3Qgbm90YWJsZSB3aGVuIHVzaW5nIEZsYXNoVmFycyBiZWNh dXNlIHRoZXkgcmVxdWlyZSA8Y29kZT5uYW1lPXZhbHVlPC9jb2RlPiB0byBiZSB1c2VkLiBU aGUgbGluZTogPGNvZGU+Rmxhc2hWYXJzPSZxdW90O215VmFyPUppbSZxdW90Ozs8L2NvZGU+ IHdpbGwgY2F1c2UgdGhlIHBsdWdpbiBwcm9ibGVtcyBiZWNhdXNlIGl0IHdpbGwgc3BsaXQg dGhlIGxpbmUgdXAgaW50byAzIHBhcnRzLCBpbnN0ZWFkIG9mIHRoZSB0d28geW91IHJlcXVp cmUuIDxkaXYgY2xhc3M9ImJyZWFrIj5UbyBhdm9pZCB0aGlzLCB5b3UgbWF5IHNwZWNpZnkg PGNvZGU+bnZfZGVsaW08L2NvZGU+IGFuZCBzZXQgdGhlIGZpcnN0IGRlbGltaXRlciB0byBh bnl0aGluZyBlbHNlIHlvdSBsaWtlLiBJdCBjb3VsZCBiZSBhIHNpbmdsZSBjaGFyYWN0ZXIs IGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycywgYSB3b3JkLCBhbnl0aGluZyBhcyBsb25nIGFz IGl0JiM4MjE3O3MgdW5pcXVlLiBOb3JtYWxseSA8Y29kZT5udl9kZWxpbT0mcXVvdDs6OiZx dW90OzwvY29kZT4gd29ya3Mgd2VsbCBzbyB5b3VyIHZhcmlhYmxlcyBpbiB0aGUgZGVzY3Jp cHRpb24gZmllbGQgYmVjb21lOiA8Y29kZT5GbGFzaFZhcnM6Om15VmFyPUppbTs8L2NvZGU+ IDwvZGl2PjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bm9fcGx1Z190ZXh0 PC9zcGFuPiA6IGlmIGEgYnJvd3NlciBwbHVnaW4gaXMgbm90IGF2YWlsYWJsZSB0byBhIHVz ZXIsIHRoaXMgdGV4dCB3aWxsIGJlIGRpc3BsYXllZCBpbnN0ZWFkLiBJdCBjb3VsZCBkaXJl Y3QgdGhlbSB0byBhIHNpdGUgZnJvbSB3aGljaCB0byBkb3dubG9hZCB0aGUgcGx1Z2luLiBZ b3UgY2FuIGVpdGhlciBwdXQgcGxhaW4gdGV4dC9odG1sIGluIGhlcmUgb3Igc3BlY2lmeSBh IHRleHRwYXR0ZXJuIGZvcm0gYnkgdXNpbmcgPGNvZGU+bm9fcGx1Z190ZXh0PSZxdW90O3R4 cGZvcm06bmFtZV9vZl9mb3JtJnF1b3Q7PC9jb2RlPi4gVGhpcyBzYXZlcyB5b3UgaGF2aW5n IHRvIHVzZSB0aGUgYXN5X3dvbmRlcnRhZyBwbHVnaW4gdG8gZW5hYmxlIHRhZ3MtaW4tdGFn cyBmdW5jdGlvbmFsaXR5PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5nbG9i YWxfcGFyYW1zPC9zcGFuPiA6IHNwZWNpZnkgYW55IGdsb2JhbCBuYW1lLXZhbHVlIHBhaXJz IGluIHRoaXMgb3B0aW9uIHRoYXQgeW91IHNpaCB0byBhcHBseSB0byBhbGwgYmFubmVycy4g VmVyeSB1c2VmdWwgZm9yIHRoaW5ncyBsaWtlIDxjb2RlPmNvZGViYXNlPC9jb2RlPiBvciBz cGVjaWZ5aW5nIGEgZ2xvYmFsIHdpZHRoIGFuZCBoZWlnaHQuIFRoZSB2YWx1ZXMgYXJlIG92 ZXJyaWRhYmxlIG9uIGEgZmlsZSBieSBmaWxlIGJhc2lzIHVzaW5nIHZhbHVlcyBpbiB0aGUg ZGVzY3JpcHRpb24gZmllbGQgYXMgdXN1YWwuIFRoZSBwYXJhbWV0ZXJzIHdvcmsgZm9yIGJv dGggdGhlIHN0YW5kYXJkIG9iamVjdCB0YWcgYW5kIHRoZSBzd2ZvYmplY3QgamF2YXNjcmlw dC4gTm90ZSB0aGF0IHlvdSBzcGVjaWZ5IHBhcmFtZXRlcnMgaW4gZXhhY3RseSB0aGUgc2Ft ZSB3YXkgYXMgeW91IGRvIGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZCAmIzgyMTI7IGVhY2gg c2VwYXJhdGVkIGJ5IHNlbWljb2xvbnMgJiM4MjEyOyBhbmQgdGhhdCB0aGUgPGNvZGU+bnZf ZGVsaW08L2NvZGU+IGF0dHJpYnV0ZSBnb3Zlcm5zIHdoaWNoIGRlbGltaXRlciB3aWxsIGJl IHVzZWQuIDxlbT48c3BhbiBjbGFzcz0iY2FwcyI+SU1QT1JUQU5UPC9zcGFuPjwvZW0+IDog dGhlIGxhc3QgdmFsdWUgaW4gdGhlIGxpc3QgbXVzdCBhbHNvIGJlIHRlcm1pbmF0ZWQgd2l0 aCBhIHNlbWljb2xvbjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+Y291bnRf ZG93bmxvYWRzPC9zcGFuPiA6IGJ5IGRlZmF1bHQgKDxjb2RlPmNvdW50X2Rvd25sb2Fkcz0m cXVvdDsxJnF1b3Q7PC9jb2RlPikgZXZlcnkgdGltZSBhIGJhbm5lciBmaWxlIGlzIHNlcnZl ZCwgdGhlIGFzc29jaWF0ZWQgY291bnRlciBmb3IgdGhhdCBmaWxlIGlzIGluY3JlbWVudGVk LiBUaGlzIG1heSBvciBtYXkgbm90IGJlIGRlc2lyYWJsZSBzbyBpdCBjYW4gYmUgdHVybmVk IG9mZiBoZXJlLiBUaGUgcmVhc29uIGl0IGlzIGFuIG9wdGlvbiBpcyBiZWNhdXNlIGl0IGNh biBpbiBzb21lIGNpcmN1bXN0YW5jZXMgbGVhZCB0byBtaXNsZWFkaW5nIHJlc3VsdHMuIEZv ciBleGFtcGxlLCBhIGNlcnRhaW4gYnJvd3NlciB0aGF0IHNoYWxsIHJlbWFpbiBuYW1lbGVz cyByZXF1aXJlcyBhbiA8b2JqZWN0PiB0YWcgdG8gbm90IG9ubHkgaGF2ZSBhIDxjb2RlPmRh dGE8L2NvZGU+IHBhcmFtZXRlciBidXQgYWxzbyBhIDxjb2RlPm1vdmllPC9jb2RlPiBwYXJh bWV0ZXIgd2hlbiBzZXJ2aW5nIEZsYXNoIGNvbnRlbnQuIFdpdGggb25seSBvbmUgb2YgdGhl c2Ugc3BlY2lmaWVkLCB0aGUgZmlsZSB3aWxsIG5vdCBwbGF5OyB5ZXQgd2l0aCBib3RoIHRo ZSBmaWxlIGlzIGRvd25sb2FkZWQgPGVtPnR3aWNlPC9lbT4gYW5kIHRoZSBkb3dubG9hZCBj b3VudGVyIGdvZXMgdXAgYnkgdHdvLiBTbyB0aGUgbnVtYmVyIG9mIHZpc2l0b3JzIHlvdSBo YXZlIHVzaW5nIHRoaXMgYnJvd3NlciBtYXkgc2tldyB5b3VyIGRvd25sb2FkIHN0YXRzLiBJ ZiB5b3VyIGJvc3MgbGlrZXMgdG8gcmVseSBvbiBzdWNoIHZhbHVlcyBpdCBtaWdodCBiZSBi ZXN0IHRvIHR1cm4gdGhlIG9wdGlvbiBvZmYgYW5kIGtlZXAgcXVpZXQhIFdoZW4gdXNpbmcg PGNvZGU+Y291bnRfZG93bmxvYWRzPSZxdW90OzAmcXVvdDs8L2NvZGU+LCB5b3UgbWF5IHJl cXVpcmUgdXNlIG9mIHRoZSA8Y29kZT5maWxlc19kaXI8L2NvZGU+IGF0dHJpYnV0ZSBpZiB5 b3UgaGF2ZSBjaGFuZ2VkIHlvdXIgZGVmYXVsdCB0ZXh0cGF0dGVybiBkaXJlY3Rvcnkgc3Ry dWN0dXJlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5maWxlc19kaXI8L3Nw YW4+IDogd2hlbiB0aGUgPGNvZGU+Y291bnRfZG93bmxvYWRzPC9jb2RlPiBhdHRyaWJ1dGUg aXMgdHVybmVkIG9mZiwgZmlsZXMgYXJlIHNlcnZlZCBieSBkaXJlY3RseSBhY2Nlc3Npbmcg dGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IG9mIHRoZSA8Y29kZT5maWxlczwv Y29kZT4gZGlyZWN0b3J5LiBUaGlzIGlzIHVzdWFsbHkgPGVtPmh0dHA6Ly95b3VyZG9tYWlu LmNvbS9maWxlczwvZW0+LiBJZiB5b3UgaGF2ZSBjaGFuZ2VkIHlvdXIgZGlyZWN0b3J5IHN0 cnVjdHVyZSBhbmQgdGhlIGZpbGVzIGRpcmVjdG9yeSBpcyBzb21ld2hlcmUgZWxzZSBvciBj YWxsZWQgc29tZXRoaW5nIGVsc2UsIHNwZWNpZnkgaXQgd2l0aCB0aGlzIGF0dHJpYnV0ZS4g VGhlIGRlZmF1bHQgaXMgPGNvZGU+ZmlsZXM8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0dC1uYW1lIj5jbGFzczwvc3Bhbj4gOiBhcHBseSBhbiBvdmVyYWxsIDxzcGFuIGNs YXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIHRvIGVhY2ggYmFubmVyIGZpbGUmIzgyMTc7 cyA8Y29kZT4mbHQ7b2JqZWN0Jmd0OzwvY29kZT4gdGFnLiBEZWZhdWx0OiBlbXB0eSAoaS5l LiBubyBjbGFzcykuIENhbiBiZSBvdmVycmlkZGVuIG9uIGEgZmlsZS1ieS1maWxlIGJhc2lz IGJ5IHNwZWNpZnlpbmcgdGhlIHZhbHVlIDxjb2RlPmNsYXNzPW15Q2xhc3NOYW1lOzwvY29k ZT4gaW4gdGhlIGRlc2NyaXB0aW9uIGZpZWxkIG9mIGFueSBmaWxlLjwvbGk+Cgk8L3VsPgoK CTxoMyBpZD0iZmllbGRzIj5BcnRpY2xlIGZpZWxkIGNvZGVzPC9oMz4KCgk8cD5Vc2UgdGhl c2UgY29kZXMgdG8gZ3JhYiBpdGVtcyBmcm9tIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIGFy dGljbGUgYW5kIGluamVjdCB0aGVtIGludG8gdGFnIGF0dHJpYnV0ZXMuIFdoZW4gdXNpbmcg ZmllbGQgY29kZXMsIHRoZSB0YWdzIGNhbiBiZSBjb21iaW5lZCB3aXRoIGZpeGVkIHRleHQg KGUuZy4gPGNvZGU+Y2F0ZWdvcnk9JnF1b3Q7bXljYXQtP2FydGljbGVfaW1hZ2VfP3MmcXVv dDs8L2NvZGU+IG1pZ2h0IGNob29zZSBpbWFnZXMgZnJvbSB0aGUgY2F0ZWdvcnkgJiM4MjIw O215Y2F0LTEyX2xpb24mIzgyMjE7IGlmIHRoZSBjdXJyZW50IGFydGljbGUgd2FzIGluIHNl Y3Rpb24gJiM4MjE2O2xpb24mIzgyMTc7IGFuZCBoYWQgYW4gYXJ0aWNsZSBpbWFnZSBvZiAm IzgyMTY7MTImIzgyMTc7KS4gTm90ZSB0aGF0IGFueSBhcnRpY2xlIG9yIGN1c3RvbSBmaWVs ZHMgJiM4MjEyOyBpbmNsdWRpbmcgdGhvc2UgdXRpbGlzaW5nIGdsel9jdXN0b21fZmllbGRz ICYjODIxMjsgbWF5IGNvbnRhaW4gbGlzdHMgb2YgaXRlbXMuPC9wPgoKCTx1bD4KCQk8bGk+ PGNvZGU+P2M8L2NvZGU+IDogdXNlIHRoZSBjdXJyZW50IGdsb2JhbCAoYXJ0aWNsZSkgY2F0 ZWdvcnk8L2xpPgoJCTxsaT48Y29kZT4hYzwvY29kZT4gOiB1c2VzIGV2ZXJ5dGhpbmcgZXhj ZXB0IHRoZSBjdXJyZW50IGdsb2JhbCBjYXRlZ29yeTwvbGk+CgkJPGxpPjxjb2RlPj9zPC9j b2RlPiA6IHVzZSB0aGUgY3VycmVudCA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBz ZWN0aW9uPC9saT4KCQk8bGk+PGNvZGU+IXM8L2NvZGU+IDogdXNlcyBldmVyeXRoaW5nIGV4 Y2VwdCB0aGUgY3VycmVudCBzZWN0aW9uPC9saT4KCQk8bGk+PGNvZGU+P3Q8L2NvZGU+IDog dXNlIHRoZSBjdXJyZW50IGFydGljbGUmIzgyMTc7cyB1cmwtdGl0bGU8L2xpPgoJCTxsaT48 Y29kZT4hdDwvY29kZT4gOiB1c2VzIGFsbCB1cmwtdGl0bGVzIGV4Y2VwdCB0aGUgY3VycmVu dCBhcnRpY2xlIChwcm9iYWJseSBub3QgbXVjaCB1c2UhKTwvbGk+CgkJPGxpPjxjb2RlPj9p ZDwvY29kZT4gOiB1c2UgdGhlIGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIElEIGFzIHRoZSBu YW1lIG9mIGFuIGltYWdlIGNhdGVnb3J5LiBVc2VmdWwgdG8gbWFrZSBhIHBlci1hcnRpY2xl IGltYWdlIGdhbGxlcnkgKGUuZy4gPGNvZGU+Y2F0ZWdvcnk9JnF1b3Q7YXJ0aWNsZS0/aWQm cXVvdDs8L2NvZGU+KTwvbGk+CgkJPGxpPjxjb2RlPiFpZDwvY29kZT4gOiB1c2VzIGFsbCBp bWFnZSBJRHMgZXhjZXB0IHRoZSBjdXJyZW50IGFydGljbGU8L2xpPgoJCTxsaT48Y29kZT4/ ZmllbGRuYW1lPC9jb2RlPiA6IGxvb2tzIGluIHRoZSBnaXZlbiBmaWVsZG5hbWUgb2YgdGhl IGN1cnJlbnQgYXJ0aWNsZS4gRGVzaWduZWQgcHJpbWFyaWx5IGZvciB1c2Ugd2l0aCBjdXN0 b20gZmllbGRzIChlLmcuIDxjb2RlPmlkPSZxdW90Oz9jdXN0b20xJnF1b3Q7PC9jb2RlPiks IGl0IGNhbiBhbHNvIGJlIGFueSBvdGhlciBmaWVsZCBmcm9tIHlvdXIgYXJ0aWNsZS4gQ29t bW9uIGZpZWxkcyBhcmUgPGNvZGU+P2V4Y2VycHQ8L2NvZGU+IEA/Y2F0ZWdvcnkxQCA8Y29k ZT4/a2V5d29yZHM8L2NvZGU+IEA/YXJ0aWNsZV9pbWFnZUAgb3IgPGNvZGU+P2F1dGhvcmlk PC9jb2RlPi48L2xpPgoJPC91bD4KCgk8cD5UbyBuZWdhdGUgYW55IGNhdGVnb3J5IHNlbGVj dGlvbiwgdXNlIDxjb2RlPiFjYXRlZ29yeTwvY29kZT4gb3IgPGNvZGU+IWZpZWxkX25hbWU8 L2NvZGU+LiBJZiB5b3UgbGlzdCBzcGVjaWZpYyBpbWFnZSBjYXRlZ29yaWVzIChlLmcuIDxj b2RlPmNhdGVnb3J5PSZxdW90OyFsYW5kc2NhcGUsICFiaXJkcyZxdW90OzwvY29kZT4pIHRo b3NlIGNhdGVnb3JpZXMgd2lsbCBiZSBleGNsdWRlZC4gSWYgeW91IHNwZWNpZnkgYSBmaWVs ZCBuYW1lIHN1Y2ggYXMgPGNvZGU+IWtleXdvcmRzPC9jb2RlPiwgdGhlIGNvbnRlbnRzIG9m IHRoYXQgZmllbGQgd2lsbCBiZSByZWFkIGFuZCB0aGUgbGlzdCBvZiBpbWFnZSBjYXRlZ29y aWVzIGZvdW5kIHRoZXJlIHdpbGwgYmUgZXhjbHVkZWQuPC9wPgoKCTxwPk5vdGUgdGhhdCBp ZiB5b3Ugc3BlY2lmeSBhIGZpZWxkIG5hbWUgYW5kIHRoYXQgZmllbGQgaW4gdGhlIGFydGlj bGUgaXMgZW1wdHksIHRoZSBuYW1lIHdpbGwgYmUgdHJlYXRlZCBhcyBpZiBpdCB3YXMgYW4g YWN0dWFsIGltYWdlIGNhdGVnb3J5LiBTbyBpZiB5b3Ugc3BlY2lmaWVkIDxjb2RlPmNhdGVn b3J5PSZxdW90Oz9rZXl3b3JkcyZxdW90OzwvY29kZT4gYW5kIHRoZSAmIzgyMTY7a2V5d29y ZHMmIzgyMTc7IGZpZWxkIGluIHRoZSBjdXJyZW50IGFydGljbGUgd2FzIGVtcHR5LCBpdCB3 b3VsZCBsb29rIGZvciBhbiBpbWFnZSBjYXRlZ29yeSBuYW1lZCAmIzgyMjA7a2V5d29yZHMm IzgyMjE7LjwvcD4KCgk8cD5BbHNvIG5vdGUgdGhhdCwgcmVnYXJkbGVzcyBvZiB0aGUgb3Jk ZXIgeW91IGxpc3QgdGhlbSwgYWxsICYjODIxNjtwb3NpdGl2ZXMmIzgyMTc7IHdpbGwgYmUg cHJvY2Vzc2VkIGZpcnN0LCB0aGVuIGFueSBleGNsdXNpb25zIGFwcGxpZWQuPC9wPgoKCTxo MiBpZD0iZXhhbXBsZXMiPkV4YW1wbGVzPC9oMj4KCgk8cD5UbyBoaWdobGlnaHQgdGhlIGZl YXR1cmVzLCB3ZSBhcmUgZ29pbmcgdG8gdXNlIGFuIGV4YW1wbGUgb2YgYSB6b28gd2ViIHNp dGUuIE9uIHRoaXMgc2l0ZSB5b3UgaGF2ZSB0aHJlZSBzZWN0aW9uczogJiM4MjIwO2Fib3V0 JiM4MjIxOywgJiM4MjIwO2FuaW1hbHMmIzgyMjE7IGFuZCAmIzgyMjA7dG91cnMmIzgyMjE7 LiBZb3UgaGF2ZSBpbWFnZXMgb2YgdmFyaW91cyBhbmltYWxzIHVuZGVyIGFuIGltYWdlIGNh dGVnb3J5IGNhbGxlZCAmIzgyMjA7YW5pbWFscyYjODIyMTsuIEJlbG93IHRoYXQgdGhleSBh cmUgc2VwYXJhdGVkIGludG8gJiM4MjIwO21hbW1hbHMmIzgyMjE7LCAmIzgyMjA7cmVwdGls ZXMmIzgyMjE7LCBhbmQgJiM4MjIwO2JpcmRzJiM4MjIxOy4gWW91ciBhbHQgdGV4dCBob2xk cyBzdWl0YWJsZSBhbHRlcm5hdGUgZGVzY3JpcHRpb25zIG9mIHRoZSBhbmltYWxzIGFuZCB0 aGUgY2FwdGlvbiB0ZXh0IGlzIGEgdXJsIHRvIGFuIGFydGljbGUgYWJvdXQgZWFjaCBhbmlt YWwuIFlvdSBhbHNvIGhhdmUgb3RoZXIgaW1hZ2UgY2F0ZWdvcmllcyBmb3IgdGhlIHJlc3Qg b2YgeW91ciBzaXRlLjwvcD4KCgk8aDIgaWQ9ImltZWciPkltYWdlIG1vZGUgZXhhbXBsZXM8 L2gyPgoKCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX2Jhbm5lciBjYXRlZ29y eT0mcXVvdDthbmltYWxzJnF1b3Q7IGxpbWl0PSZxdW90OzQmcXVvdDsKICAgICBzdWJjYXRz PSZxdW90O2FsbCZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhhdCB3b3VsZCBw dWxsIG91dCBmb3VyIHBpY3R1cmVzIG9mIGFueSBhbmltYWwgdG8gc2hvdyBvbiB5b3VyIGZy b250IHBhZ2U7IG1heWJlIGFycmFuZ2VkIGludG8gYSBuZWF0IHNxdWFyZSE8L3A+CgoJPGgz IGlkPSJlZzIiPkV4YW1wbGUgMjwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xh c3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9yYW5kb21fYmFubmVyIGNhdGVnb3J5PSZxdW90O21h bW1hbHMsIHJlcHRpbGVzJnF1b3Q7CiAgICAgbGlua19pbj0mcXVvdDtjYXB0aW9uJnF1b3Q7 IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Xb3VsZCBkaXNwbGF5IGEgcmFuZG9tIHBpY3R1 cmUgZnJvbSBlaXRoZXIgdGhlIG1hbW1hbHMgb3IgcmVwdGlsZXMgY2F0ZWdvcmllcy4gVGhl IGltYWdlIHdvdWxkIGJlIGNsaWNrYWJsZSBhbmQgdGhlIGxpbmsgd291bGQgdGFrZSB5b3Ug dG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGdpdmVuIGluIHRoZSBjYXB0 aW9uIGZpZWxkIG9mIHRoYXQgaW1hZ2UuIElmIHRoZSBjYXB0aW9uIGZpZWxkIGhhcHBlbmVk IHRvIGJlIGVtcHR5LCB0aGUgbGluayB3b3VsZCBiZSBzdXByZXNzZWQuPC9wPgoKCTxoMyBp ZD0iZWczIj5FeGFtcGxlIDM8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNz PSJibG9jayI+Jmx0O3N0eWxlIHR5cGU9JnF1b3Q7dGV4dC9jc3MmcXVvdDsmZ3Q7OwojbXlE aXYgewogIGJhY2tncm91bmQ6IHVybCgmbHQ7dHhwOnNtZF9yYW5kb21fYmFubmVyIGNhdGVn b3J5PSZxdW90O2FuaW1hbHMmcXVvdDsKICAgICBzdWJjYXRzPSZxdW90OzEmcXVvdDsgcmF3 X3VybD0mcXVvdDsxJnF1b3Q7IC8mZ3Q7KSBuby1yZXBlYXQgdG9wOwp9CiZsdDsvc3R5bGUm Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGlzIGtpbmQgb2Ygc3ludGF4IGNhbiBiZSB1c2Vk IGlmIHlvdSBvbmx5IHdhbnRlZCB0aGUgYmFja2dyb3VuZCBvZiBhIHNwZWNpZmljIGRpdiB0 YWcgdG8gaG9sZCB5b3VyIHJhbmRvbSBpbWFnZS48L3A+CgoJPGgzIGlkPSJlZzQiPkV4YW1w bGUgNDwvaDM+CgoJPHA+SWYgeW91IGFycmFuZ2VkIHlvdXIgc2l0ZSBzbyB0aGF0IHlvdSBo YWQgYXJ0aWNsZSBjYXRlZ29yaWVzIHN1Y2ggYXMgJiM4MjIwO21hbW1hbHMmIzgyMjE7IGFu ZCAmIzgyMjA7cmVwdGlsZXMmIzgyMjE7IChtaXJyb3JpbmcgeW91ciBpbWFnZSBjYXRlZ29y aWVzKSwgeW91IGNvdWxkIGRvIHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX2Jhbm5lciBjYXRlZ29yeT0mcXVv dDs/YyZxdW90OwogICAgIGxpbmtfaW49JnF1b3Q7Y2FwdGlvbiZxdW90OyAvJmd0Owo8L2Nv ZGU+PC9wcmU+CgoJPHA+VGhlIDxjb2RlPj88L2NvZGU+IHRlbGxzIHRoZSBwbHVnaW4geW91 IGRvbiYjODIxNzt0IGtub3cgd2hhdCB0aGUgKGltYWdlKSBjYXRlZ29yeSBpcyBnb2luZyB0 byBiZSB3aGVuIHlvdSBjb2RlIHRoZSBmb3JtLCBidXQgeW91IHdhbnQgaXQgdG8gYmUgcmVh ZCBmcm9tIHRoZSBjdXJyZW50IGFydGljbGUgdGhhdCBhIHZpc2l0b3IgaXMgdmlld2luZy4g U2luY2Ugb3VyIGFydGljbGUgY2F0ZWdvcmllcyBtaW1pYyBvdXIgaW1hZ2UgY2F0ZWdvcmll cyBpbiB0aGlzIGNhc2UsIDxjb2RlPj9jPC9jb2RlPiBtZWFucyAmIzgyMjA7cmVhZCB0aGUg YXJ0aWNsZSBjYXRlZ29yeSBhbmQgdXNlIHRoYXQgYXMgdGhlIGltYWdlIGNhdGVnb3J5JiM4 MjIxOy48L3A+CgoJPHA+U28gaWYgeW91ciB2aXNpdG9yIHdhcyB2aWV3aW5nIGEgcGFnZSBh Ym91dCBhIHJlcHRpbGUsIHRoZSByYW5kb20gaW1hZ2UgZGlzcGxheWVkIG9uIHRoZSBwYWdl IHdvdWxkIGJlIG9mIGFub3RoZXIgcmVwdGlsZSAocG9zc2libHkgdGhlIHNhbWUgb25lKS4g VGhlcmUgYXJlIDxhIGhyZWY9IiNmaWVsZHMiPm1hbnkgb3RoZXIgb3B0aW9uczwvYT4uPC9w PgoKCTxoMyBpZD0iZWc1Ij5FeGFtcGxlIDU8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxj b2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX2Jhbm5lciBjYXRlZ29yeT0m cXVvdDthbmltYWxzLCAhYyZxdW90OwogICAgIHN1YmNhdHM9JnF1b3Q7MSZxdW90OyBsaW5r X2luPSZxdW90O2NhcHRpb24mcXVvdDsgZGlzcGxheV91cmw9JnF1b3Q7MCZxdW90OyAvJmd0 Owo8L2NvZGU+PC9wcmU+CgoJPHA+U2xpZ2h0bHkgbW9yZSB1c2VmdWwsIHRoaXMgb25lLiBJ dCB0ZWxscyB0aGUgcGx1Z2luIHRvIHNlbGVjdCBhbnkgYW5pbWFsIGltYWdlIGZyb20gdGhl IHRvcCBsZXZlbCBhbmQgZmlyc3Qgc3ViLWNhdGVnb3J5IGxldmVsIGJ1dCA8ZW0+bm90PC9l bT4gb25lIGZyb20gdGhlIGN1cnJlbnQgY2F0ZWdvcnkgdGhhdCBpcyBiZWluZyB2aWV3ZWQu IFNvIGl0JiM4MjE3O2xsIGVmZmVjdGl2ZWx5ICYjODIxNjthZHZlcnRpc2UmIzgyMTc7IG90 aGVyIGNhdGVnb3JpZXMgZm9yIHlvdS4gVGhlIDxjb2RlPmRpc3BsYXlfdXJsPC9jb2RlPiBp cyB0dXJuZWQgb2ZmIHRoaXMgdGltZSBzbyB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwv c3Bhbj4gaW4gdGhlIGNhcHRpb24gZmllbGQgZG9lcyBub3QgYXBwZWFyIGFzIHRoZSA8Y29k ZT50aXRsZTwvY29kZT4gYXR0cmlidXRlIHRvIHRoZSBpbWFnZTsgdGhlIGFsdCB0ZXh0IGlz IHVzZWQgaW5zdGVhZC48L3A+CgoJPGgzIGlkPSJlZzYiPkV4YW1wbGUgNjwvaDM+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9yYW5kb21f YmFubmVyIGNhdGVnb3J5PSZxdW90O3JlcHRpbGVzLCA/Y3VzdG9tMSZxdW90OwogICAgIGlk PSZxdW90OzQtOCwgMTImcXVvdDsgbGlua19pbj0mcXVvdDtjYXB0aW9uJnF1b3Q7IHN1YmNh dHM9JnF1b3Q7YWxsJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5HaXZlcyB5b3Ug YSByYW5kb20gaW1hZ2UgY2hvc2VuIGZyb20gdGhlICYjODIxNjtyZXB0aWxlcyYjODIxNzsg aW1hZ2UgY2F0ZWdvcnksIGltYWdlcyA0LCA1LCA2LCA3LCA4IG9yIDEyIGFuZCBhbHNvIGFu eSBjYXRlZ29yaWVzIGxpc3RlZCBpbiBjdXN0b20xIG9mIHRoZSBjdXJyZW50bHkgdmlld2Vk IGFydGljbGUuIElmIHlvdSBwdXQgJiM4MjIwO21hbW1hbHMsIGJpcmRzLCBwZW5ndWlucyYj ODIyMTsgaW4gY3VzdG9tXzEgd2hlbiB5b3Ugd3JvdGUgdGhlIGFydGljbGUgeW91IHdvdWxk IGdldCBhbiBpbWFnZSBjaG9zZW4gZnJvbSB0aG9zZSBpbWFnZSBJRHMgcGx1cyBhbGwgZm91 ciBjYXRlZ29yaWVzIChhbmQgdGhlaXIgc3ViLWNhdGVnb3JpZXMgaW4gdGhpcyBjYXNlKS4g SW5jaWRlbnRhbGx5LCB0aGlzIHNvcnQgb2YgaWRlYSBjb3VsZCBiZSB1c2VkIHdpdGggPGNv ZGU+Y2F0ZWdvcnk9JnF1b3Q7P2tleXdvcmRzJnF1b3Q7PC9jb2RlPiB0byBnZXQgYSBsaXN0 IG9mICYjODIyMDtyZWxhdGVkIGltYWdlIGNhdGVnb3JpZXMmIzgyMjE7JiM4MjMwOzwvcD4K Cgk8cD5Ob3RlIHlvdSBjYW4gc2ltcGx5IG5lZ2F0ZSB0aGUgY2hvaWNlIGxpa2UgdGhpczo8 L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNt ZF9yYW5kb21fYmFubmVyIGNhdGVnb3J5PSZxdW90O2FuaW1hbHMsICFjdXN0b20xJnF1b3Q7 CiAgICAgbGlua19pbj0mcXVvdDtjYXB0aW9uJnF1b3Q7IHN1YmNhdHM9JnF1b3Q7YWxsJnF1 b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5TbyB0aGF0IHdvdWxkIGNob29zZSBhbiBp bWFnZSBmcm9tIGFueSBvZiB0aGUgYW5pbWFscyBleGNlcHQgb25lcyB0aGF0IHdlcmUgaW4g YW55IGNhdGVnb3JpZXMgbGlzdGVkIGluIGN1c3RvbTEuIFlvdSBjYW4gbmVnYXRlIGltYWdl IElEcyBhbmQgcmFuZ2VzIGFzIHdlbGwgKGUuZy4gPGNvZGU+aWQ9JnF1b3Q7MTQtMjAsIDI0 LCAhMTksIDUsICExMC0xNiZxdW90OzwvY29kZT4gd291bGQgZ2l2ZSBhbiBpbWFnZSBwb29s IG9mIDUsIDE3LCAxOCwgMjAsIDI0KS48L3A+CgoJPGgzIGlkPSJlZzciPkV4YW1wbGUgNzwv aDM+CgoJPHA+Q2F0ZWdvcmllcyBvbiB0aGVpciBvd24gb25seSB0ZWxsIGhhbGYgdGhlIHN0 b3J5LiBUaGVyZSBhcmUgdGltZXMgeW91IG1pZ2h0IHdhbnQgdG8gaW5jbHVkZSBvciBleGNs dWRlIHNwZWNpZmljIHBpZWNlcyBvZiB0ZXh0IGZvdW5kIGluIHlvdXIgaW1hZ2VzLiBUaGUg dGV4dCBjb3VsZCBiZSBpbiB0aGUgZmlsZW5hbWUsIHRoZSBpZCwgdGhlIGNhcHRpb24sIHRo ZSBhbHQgdGV4dCwgb3IgdGhlIGNhdGVnb3J5IG5hbWUuPC9wPgoKCTxwPkltYWdpbmUgeW91 ciB2aXNpdG9yIGNsaWNrZWQgYSBwaWN0dXJlIG9mIGEgY3JvY29kaWxlIGFuZCB0aGV5IGFy ZSB2aWV3aW5nIHRoZSBncmlzbHkgZGV0YWlscyBvbiBhbiBhcnRpY2xlIHBhZ2UuIFlvdSBt aWdodCB3YW50IHRvIHB1dCAmIzgyMjA7SWYgeW91IGxpa2VkIHRoaXMsIGZpbmQgb3V0IGFi b3V0IHRoZXNlIGFuaW1hbHMgdG9vOiYjODIyMTsgYW5kIHNob3cgYSBmZXcgcmFuZG9tIGlt YWdlcyB0aGF0IGFsbG93IHRoZW0gdG8gc2VlIHN0dWZmIGFib3V0IG90aGVyIGFuaW1hbHMu IE9idmlvdXNseSwgd2UgZG9uJiM4MjE3O3Qgd2FudCBhIHBpY3R1cmUgb2YgYSBjcm9jb2Rp bGUgdG8gc2hvdyB1cC4gQW5kIG1heWJlIHdlIGRvbiYjODIxNzt0IHdhbnQgdG8gc2hvdyBh bGxpZ2F0b3JzIGVpdGhlciBiZWNhdXNlIHRoZXkmIzgyMTc7cmUgcXVpdGUgc2ltaWxhciAo c29ycnkgYW55IHJlcHRpbGUtbG92ZXJzIHdobyBtYXkgZGlzYWdyZWUhKTwvcD4KCgk8cD5T byB3ZSBjYW4gZG8gdGhpczo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj4mbHQ7dHhwOnNtZF9yYW5kb21fYmFubmVyIGNhdGVnb3J5PSZxdW90O2FuaW1h bHMmcXVvdDsgc3ViY2F0cz0mcXVvdDthbGwmcXVvdDsKICAgICBsaW5rX2luPSZxdW90O2Nh cHRpb24mcXVvdDsgYXZvaWRfdGV4dD0mcXVvdDtjcm9jLCBjcm9jb2RpbGUsIGFsbGlnYXRv ciZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhhdCB3b3VsZCBjaG9vc2UgYW55 IHBpY3R1cmUgZnJvbSB0aGUgYW5pbWFscyBjYXRlZ29yeSAoYW5kIGFsbCBpdHMgc3ViLWNh dGVnb3JpZXMpIGFzIGxvbmcgYXMgdGhlIG5hbWUgb2YgdGhlIGltYWdlIDxlbT5kaWRuJiM4 MjE3O3Q8L2VtPiBjb250YWluICYjODIxNjtjcm9jJiM4MjE3OyBvciAmIzgyMTY7Y3JvY29k aWxlJiM4MjE3OyBvciAmIzgyMTY7YWxsaWdhdG9yJiM4MjE3Oy48L3A+CgoJPGgzIGlkPSJl ZzgiPkV4YW1wbGUgODwvaDM+CgoJPHA+SWYgeW91ciBmaWxlbmFtZXMgd2VyZSBhIGxpdHRs ZSB1bnN0cnVjdHVyZWQsIG1heWJlIHlvdSYjODIxNztkIHdhbnQgdG8gY2hlY2sgYm90aCB0 aGUgYWx0IHRleHQgYW5kIGNhcHRpb24gdGV4dCBmb3IgYSBtYXRjaCBhcyB3ZWxsIGFzIHRo ZSBmaWxlbmFtZS4gVXNlIDxjb2RlPmNvbXBhcmVfdG88L2NvZGU+IGZvciB0aGlzOjwvcD4K CjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3Jh bmRvbV9iYW5uZXIgY2F0ZWdvcnk9JnF1b3Q7YW5pbWFscyZxdW90OyBzdWJjYXRzPSZxdW90 O2FsbCZxdW90OwogICAgIGxpbmtfaW49JnF1b3Q7Y2FwdGlvbiZxdW90OyBhdm9pZF90ZXh0 PSZxdW90O2Nyb2MsIGNyb2NvZGlsZSwgYWxsaWdhdG9yJnF1b3Q7CiAgICAgY29tcGFyZV90 bz0mcXVvdDtuYW1lLCBhbHQsIGNhcHRpb24mcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoK CTxoMyBpZD0iZWc5Ij5FeGFtcGxlIDk8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX2Jhbm5lciBjYXRlZ29yeT0mcXVv dDthbmltYWxzJnF1b3Q7IHN1YmNhdHM9JnF1b3Q7YWxsJnF1b3Q7CiAgICAgYXZvaWRfdGV4 dD0mcXVvdDs/cywgP2MmcXVvdDsgY29tcGFyZV90bz0mcXVvdDtuYW1lLCBhbHQsIGNhcHRp b24sIGNhdGVnb3J5JnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5PbiBhbiBhcnRp Y2xlIHBhZ2UsIGhhcmQtY29kaW5nIGxpc3RzIG9mIHRoaW5ncyB0byBpbmNsdWRlL2V4Y2x1 ZGUgaXMgYWNjZXB0YWJsZS4gQnV0IGlmIHlvdSYjODIxNztyZSB1c2luZyBhIGZvcm0geW91 IGRvbiYjODIxNzt0IHdhbnQgdG8gZG8gdGhhdCwgc28ganVzdCBsaWtlIHRoZSA8Y29kZT5j YXRlZ29yeTwvY29kZT4gb3B0aW9uIHlvdSBjYW4gdXNlIDxjb2RlPj88L2NvZGU+IHBsYWNl aG9sZGVycyB0aGF0IHdpbGwgcmVhZCBzdHVmZiBmcm9tIHRoZSBjdXJyZW50IGFydGljbGUu IFRoaXMgZXhhbXBsZSB3aWxsIHBpY2sgYW55IHJhbmRvbSBhbmltYWwgZXhjZXB0IG9uZXMg ZnJvbSB0aGUgY3VycmVudCBzZWN0aW9uIG9yIGdsb2JhbCBjYXRlZ29yeS4gTm90ZSB0aGF0 LCB0byBiZSBvbiB0aGUgc2FmZSBzaWRlLCBpdCBjaGVja3MgaW4gZm91ciBsb2NhdGlvbnMg dG8gaGVscCBlbnN1cmUgaXQgd29uJiM4MjE3O3QgZmluZCBhbnl0aGluZyByZWxhdGVkIHRv IHRoZSBjdXJyZW50IGNhdGVnb3J5LjwvcD4KCgk8aDIgaWQ9ImZtZWciPkZpbGUgbW9kZSBl eGFtcGxlczwvaDI+CgoJPHA+VG8gaGlnaGxpZ2h0IHRoZSBmZWF0dXJlcywgd2UgYXJlIGdv aW5nIHRvIHVzZSB0aGUgc2FtZSB6b28gd2ViIHNpdGUgYXMgaW4gdGhlIDxhIGhyZWY9IiNp bWVnIj5JbWFnZSBtb2RlIGV4YW1wbGVzPC9hPi4gQnV0IHRoaXMgdGltZSwgYXNzdW1lIHlv dSBoYXZlIHVwbG9hZGVkIGEgZmV3IFNob2Nrd2F2ZSBGbGFzaCBkb2N1bWVudHMgYWJvdXQg dmFyaW91cyBhbmltYWxzIGFuZCBhIGNvdXBsZSBvZiBzaG9ydCBtb3ZpZXMgYWJvdXQgY2hl ZXRhaHMgdW5kZXIgYSBmaWxlIGNhdGVnb3J5IGNhbGxlZCAmIzgyMjA7YW5pbWFscyYjODIy MTsuIFRoZSBtb3ZpZXMgYXJlIHN1Yi1jYXRlZ29yaXNlZCBhcyBiZWZvcmUuIFRoZSA8Y29k ZT5kZXNjcmlwdGlvbjwvY29kZT4gZmllbGQgb2YgZWFjaCBmaWxlIGhvbGRzIGEgdXJsIHRv IGFuIGFydGljbGUgYWJvdXQgZWFjaCBhbmltYWwgdXNpbmcgPGNvZGU+bGlua191cmw9L2Fu aW1hbHMvYW5pbWFsTmFtZTs8L2NvZGU+PC9wPgoKCTxwPllvdSBjYW4gZG8gYWxsIHRoZSBz YW1lIHRoaW5ncyBhcyBpbiBpbWFnZSBtb2RlIHRvIGNob29zZSB3aGljaCBmaWxlcyBtYXRj aCB3aGF0IHRleHQvY2F0ZWdvcmllcyBzbyB3ZSYjODIxNztsbCBub3QgY292ZXIgdGhhdCBo ZXJlLiBPbmx5IHRoZSBuZXcgb3B0aW9ucyBhcmUgY292ZXJlZCBvciB3aGVyZSBhbiBvcHRp b24gZGlmZmVycyBzaWduaWZpY2FudGx5LjwvcD4KCgk8aDMgaWQ9ImZlZzEiPkV4YW1wbGUg MTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhw OnNtZF9yYW5kb21fYmFubmVyIG1vZGU9JnF1b3Q7ZmlsZSZxdW90OyBjYXRlZ29yeT0mcXVv dDthbmltYWxzJnF1b3Q7CiAgICAgYXZvaWRfdGV4dD0mcXVvdDs/a2V5d29yZHMmcXVvdDsg Y29tcGFyZV90bz0mcXVvdDtmaWxlbmFtZSwgZGVzY3JpcHRpb24mcXVvdDsKICAgICBzdWJj YXRzPSZxdW90O2FsbCZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+RmFpcmx5IHN0 cmFpZ2h0Zm9yd2FyZC4gUGlja3MgYW55IGZpbGUgaW4gdGhlIGNhdGVnb3J5IGNhbGxlZCAm IzgyMTY7YW5pbWFscyYjODIxNzsgdGhhdCBkb2VzIG5vdCBjb250YWluIGFueSBvZiB0aGUg Y3VycmVudCBhcnRpY2xlJiM4MjE3O3Mga2V5d29yZHMgaW4gaXRzIGZpbGVuYW1lIG9yIGRl c2NyaXB0aW9uIGZpZWxkcy48L3A+CgoJPHA+QXNzdW1pbmcgaXQgc2VsZWN0cyBhIHNob2Nr d2F2ZSBmbGFzaCBmaWxlLCB0aGUgdGFnIGl0IG91dHB1dHMgbWlnaHQgYmU6PC9wPgoKPHBy ZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O29iamVjdCBkYXRhPSZx dW90O2h0dHA6Ly9teWdyZWF0em9vLmNvbS9maWxlX2Rvd25sb2FkLzImcXVvdDsKICAgICAg IHR5cGU9JnF1b3Q7YXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gmcXVvdDsKICAgICAg IHdpZHRoPSZxdW90OzMwMCZxdW90OyBoZWlnaHQ9JnF1b3Q7NzUmcXVvdDsgaWQ9JnF1b3Q7 aWQ3NDY1ODkzJnF1b3Q7Jmd0OwombHQ7cGFyYW0gbmFtZT0mcXVvdDttb3ZpZSZxdW90Owog ICAgIHZhbHVlPSZxdW90O2h0dHA6Ly9teWdyZWF0em9vLmNvbS9maWxlX2Rvd25sb2FkLzIm cXVvdDsgLyZndDsKJmx0Oy9vYmplY3QmZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImZl ZzIiPkV4YW1wbGUgMjwvaDM+CgoJPHA+VXNpbmcgdGhlIHNhbWUgb3B0aW9ucyBhcyBpbiA8 YSBocmVmPSIjZmVnMSI+RXhhbXBsZSAxPC9hPiwgaWYgeW91IGdvIHRvIHRoZSBGaWxlcyB0 YWIsIHNlbGVjdCB0aGUgRmxhc2ggZmlsZSBpdCBjaG9zZSBhbmQgZWRpdCB0aGUgZGVzY3Jp cHRpb24gZmllbGQgdG8gcmVhZDo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xh c3M9ImJsb2NrIj5sb29wPWZhbHNlOwp3aWR0aD00NTA7CmNvZGViYXNlPWh0dHA6Ly9teWdy ZWF0em9vLmNvbS87CmlkPSZxdW90O3pvb2JqZWN0JnF1b3Q7OwpzdGFuZGJ5PSZxdW90O2xv YWRpbmcuLi4mcXVvdDs7CmJnY29sb3I9IzAwNjgwMDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRo ZW4geW91IHdvdWxkIGdldCBhbiBvYmplY3QgdGFnIHRoYXQgcmVzZW1ibGVkIHRoaXM6PC9w PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O29iamVjdCBk YXRhPSZxdW90O2h0dHA6Ly9teWdyZWF0em9vLmNvbS9maWxlX2Rvd25sb2FkLzImcXVvdDsK ICAgICAgIHR5cGU9JnF1b3Q7YXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gmcXVvdDsK ICAgICAgIHdpZHRoPSZxdW90OzQ1MCZxdW90OyBoZWlnaHQ9JnF1b3Q7NzUmcXVvdDsgaWQ9 JnF1b3Q7em9vYmplY3QmcXVvdDsmZ3Q7CiZsdDtwYXJhbSBuYW1lPSZxdW90O21vdmllJnF1 b3Q7CiAgICAgdmFsdWU9JnF1b3Q7aHR0cDovL215Z3JlYXR6b28uY29tL2ZpbGVfZG93bmxv YWQvMiZxdW90OyAvJmd0OzsKJmx0O3BhcmFtIG5hbWU9JnF1b3Q7bG9vcCZxdW90OyB2YWx1 ZT0mcXVvdDtmYWxzZSZxdW90OyAvJmFtcDtndDsKJmx0O3BhcmFtIG5hbWU9JnF1b3Q7Y29k ZWJhc2UmcXVvdDsgdmFsdWU9JnF1b3Q7aHR0cDovL215Z3JlYXR6b28uY29tLyZxdW90OyAv Jmd0OwombHQ7cGFyYW0gbmFtZT0mcXVvdDtzdGFuZGJ5JnF1b3Q7IHZhbHVlPSZxdW90O2xv YWRpbmcuLi4mcXVvdDsgLyZndDsKJmx0O3BhcmFtIG5hbWU9JnF1b3Q7Ymdjb2xvciZxdW90 OyB2YWx1ZT0mcXVvdDsjMDA2ODAwJnF1b3Q7IC8mZ3Q7CiZsdDsvb2JqZWN0Jmd0Owo8L2Nv ZGU+PC9wcmU+CgoJPHA+SG9wZWZ1bGx5IHlvdSBjYW4gc2VlIHRoYXQgaXQmIzgyMTc7cyBx dWl0ZSBmbGV4aWJsZSBhbmQgc2hvdWxkIGFsbG93IHlvdSB0byB0d2VhayBhbnkgY29udGVu dCB0byBwbGF5IGluIG1vc3QgYnJvd3NlcnMuPC9wPgoKCTxoMyBpZD0iZmVnMyI+RXhhbXBs ZSAzPC9oMz4KCgk8cD5Vc2luZyB0aGUgc2FtZSBvcHRpb25zIGFzIGluIDxhIGhyZWY9IiNm ZWcxIj5FeGFtcGxlIDE8L2E+LCBidXQgYWRkaW5nIG9uZSBvcHRpb24gPGNvZGU+bnZfZGVs aW09JnF1b3Q7OjomcXVvdDs8L2NvZGU+IG1lYW5zIHRoYXQgaW4gdGhlIGRlc2NyaXB0aW9u IGZpZWxkIHlvdSB3b3VsZCBoYXZlIHRvIHNwZWNpZnkgdGhlIG5hbWUtdmFsdWUgcGFpcnMg d2l0aCBhIGRvdWJsZSBjb2xvbiBiZXR3ZWVuIHRoZW0sIGkuZS48L3A+Cgo8cHJlIGNsYXNz PSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj5sb29wOjpmYWxzZTsKd2lkdGg6OiZxdW90 OzQ1MCZxdW90OzsKY29kZWJhc2U6Omh0dHA6Ly9teWdyZWF0em9vLmNvbS87CmlkOjp6b29i amVjdDsKc3RhbmRieTo6JnF1b3Q7bG9hZGluZy4uLiZxdW90OzsKRmxhc2hWYXJzOjomcXVv dDtteVZhcj1odHRwOi8vbXlncmVhdHpvby5jb20vbGlvbnMmcXVvdDs7CmJnY29sb3I6OiMw MDY4MDA7CjwvY29kZT48L3ByZT4KCgk8cD5Ob3RlIHRoZSBhZGRpdGlvbiBvZiBGbGFzaFZh cnMuIElmIHlvdSB3aXNoIHRvIHNlbmQgRmxhc2hWYXJzIHRvIHlvdXIgYXBwbGljYXRpb24s IHRoZXkgaGF2ZSB0byBiZSBkZWxpbWl0ZWQgd2l0aCBhbiA8Y29kZT49PC9jb2RlPiBzbyB5 b3UgbXVzdCBjaGFuZ2UgPGNvZGU+bnZfZGVsaW08L2NvZGU+IHRvIHNvbWV0aGluZyBlbHNl LiBBbnkgb3RoZXIgY2hhcmFjdGVyKHMpIHdpbGwgZG8sIGJ1dCB1c2luZyBhIHNpbmdsZSBj b2xvbiB3b3VsZCBjYXVzZSBncmllZiBiZWNhdXNlIHRoYXQgY2hhcmFjdGVyIGlzIHVzZWQg aW4gPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj5zLjwvcD4KCgk8cD5JbmNpZGVudGFs bHksIHBhc3NpbmcgYSBGbGFzaFZhciBpbiB0aGlzIG1hbm5lciBtYXkgaGVscCBtYWtlIHlv dXIgYmFubmVyIGNsaWNrYWJsZSB3aXRob3V0IHJlc29ydGluZyB0byB1c2luZyA8Y29kZT53 bW9kZT10cmFuc3BhcmVudDs8L2NvZGU+IGJlY2F1c2UgeW91IGNhbiBzaW1wbHkgcGxhY2Ug YSBidXR0b24gaW4geW91ciBtb3ZpZSBhbmQgcGFzcyB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi PlVSTDwvc3Bhbj4gaW4gZnJvbSB0aGUgZGVzY3JpcHRpb24gZmllbGQgdmlhIGEgRmxhc2hW YXIgaW5zdGVhZCBvZiB1c2luZyA8Y29kZT5saW5rX3VybDwvY29kZT4uPC9wPgoKCTxoMyBp ZD0iZmVnNCI+RXhhbXBsZSA0PC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFz cz0iYmxvY2siPiZsdDt0eHA6c21kX3JhbmRvbV9iYW5uZXIgbW9kZT0mcXVvdDtmaWxlJnF1 b3Q7IGNhdGVnb3J5PSZxdW90O2FuaW1hbHMmcXVvdDsKICAgICBtYXRjaF90ZXh0PSZxdW90 O2NoZWV0YWgmcXVvdDsgc3ViY2F0cz0mcXVvdDthbGwmcXVvdDsgbGlua19pbj0mcXVvdDtk ZXNjcmlwdGlvbiZxdW90OwogICAgIGNsYXNzPSZxdW90O2Zsb2JqZWN0cyZxdW90OyAvJmd0 Owo8L2NvZGU+PC9wcmU+CgoJPHA+SWYgb25lIG9mIHRoZSByb3dzIGluIHRoZSBkZXNjcmlw dGlvbiBmaWVsZCBvZiB0aGUgPGNvZGU+Y2hlZXRhaF9jaGFzaW5nX2RlZXIud212PC9jb2Rl PiBmaWxlIGlzIDxjb2RlPnVybF9saW5rPS9hbmltYWxzL2NoZWV0YWgtY2hhc2luZy1kZWVy PC9jb2RlPiB0aGVuIGNsaWNraW5nIG9uIHRoZSBlbWJlZGRlZCBtb3ZpZSB3aWxsIHRha2Ug dGhlIHZpc2l0b3IgdG8gdGhhdCBhcnRpY2xlLiBJbiBhZGRpdGlvbiB0byB0aGUgdXN1YWwg YXR0cmlidXRlcywgdGhpcyBhbmQgYWxsIG9iamVjdHMgZGlzcGxheWVkIGJ5IHRoZSBwbHVn aW4gd2lsbCB0YWtlIG9uIGEgPGNvZGU+Y2xhc3M9JnF1b3Q7ZmxvYmplY3RzJnF1b3Q7PC9j b2RlPiBhdHRyaWJ1dGUuIFRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gb24gYSBmaWxlLWJ5LWZp bGUgYmFzaXMgYnkgYWRkaW5nIDxjb2RlPmNsYXNzPSZxdW90O2Fub3RoZXJDbGFzc05hbWUm cXVvdDs7PC9jb2RlPiAgYXMgYW4gZW50cnkgaW4gdGhlIDxjb2RlPmRlc2NyaXB0aW9uPC9j b2RlPiBmaWVsZC48L3A+CgoJPHA+Tm90ZSB0aGF0IGlmIHlvdXIgY2hvc2VuIG1lZGlhIHBs dWdpbiBjYXB0dXJlcyBjbGljayBldmVudHMgYmVmb3JlIHRoZXkgYXJlIHBhc3NlZCB0byB0 aGUgPHNwYW4gY2xhc3M9ImNhcHMiPkRPTTwvc3Bhbj4sIHRoZSBsaW5rIHdpbGwgbm90IGJl IGhvbm91cmVkLiBGb3IgRmxhc2gsIHlvdSBjYW4gYnlwYXNzIHRoaXMgaW4gbW9zdCBicm93 c2VycyAoTGludXggaXMgY3VycmVudGx5IGFuIGV4Y2VwdGlvbikgYnkgcGFzc2luZyA8Y29k ZT53bW9kZT10cmFuc3BhcmVudDs8L2NvZGU+IG9yIHVzaW5nIGEgRmxhc2hWYXIgYXMgaW4g PGEgaHJlZj0iI2ZlZzMiPkV4YW1wbGUgMzwvYT48L3A+CgoJPGgzIGlkPSJmZWc1Ij5FeGFt cGxlIDU8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0 O3R4cDpzbWRfcmFuZG9tX2Jhbm5lciBtb2RlPSZxdW90O2ZpbGUmcXVvdDsgY2F0ZWdvcnk9 JnF1b3Q7YW5pbWFscyZxdW90OwogICAgIGF2b2lkX3RleHQ9JnF1b3Q7P2tleXdvcmRzJnF1 b3Q7IGNvbXBhcmVfdG89JnF1b3Q7ZmlsZW5hbWUsIGRlc2NyaXB0aW9uJnF1b3Q7CiAgICAg c3ViY2F0cz0mcXVvdDsyJnF1b3Q7IG52X2RlbGltPSZxdW90Ozo6JnF1b3Q7CiAgICAgZ2xv YmFsX3BhcmFtcz0mcXVvdDtwbGF5ZXJ2ZXJzaW9uOjo5O3dpZHRoOjo3NTtoZWlnaHQ6NTAw OyZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+SW4gdGhlIEZpbGVzIHRhYiwgaWYg eW91IHNlbGVjdCB0aGUgRmxhc2ggZmlsZSB0aGUgcGx1Z2luIG1pZ2h0IGNob29zZSBhbmQg ZWRpdCB0aGUgZGVzY3JpcHRpb24gZmllbGQgdG8gcmVhZDo8L3A+Cgo8cHJlIGNsYXNzPSJi bG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj5taW1lX3R5cGU6OnN3bzsKdWlkOjpzb2I7CnF1 YWxpdHk6OmhpZ2g7Cndtb2RlOjp0cmFuc3BhcmVudDsKZWxlbWVudGlkOjpteUZsYXNoQ29u dGVudDsKRmxhc2hWYXJzOjpsaW5reT1odHRwOi8vbXlncmVhdHpvby5jb20vdGlnZXJzJmFt cDthbXA7cGljPXRpZ2VyLmpwZzsKd2lkdGg6OjIwMDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRo ZW4geW91IG1pZ2h0IGdldCBvdXRwdXQgdGhhdCByZXNlbWJsZWQgdGhpczo8L3A+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7c2NyaXB0IHR5cGU9JnF1 b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7IGRlZmVyPSZxdW90O2RlZmVyJnF1b3Q7Jmd0Owog dmFyIHNvYiA9IG5ldyBTV0ZPYmplY3QoJnF1b3Q7aHR0cDovL215Z3JlYXR6b28uY29tL2Zp bGVfZG93bmxvYWQvMiZxdW90OywKICAgICAgICZxdW90O2lkMjE4OTU3NDYmcXVvdDssICZx dW90OzIwMCZxdW90OywgJnF1b3Q7NTAwJnF1b3Q7LCAmcXVvdDs5JnF1b3Q7LCAmcXVvdDsj ZmZmZmZmJnF1b3Q7KTsKIHNvYi5hZGRQYXJhbSgmcXVvdDtxdWFsaXR5JnF1b3Q7LCAmcXVv dDtoaWdoJnF1b3Q7KTsKIHNvYi5hZGRQYXJhbSgmcXVvdDt3bW9kZSZxdW90OywgJnF1b3Q7 dHJhbnNwYXJlbnQmcXVvdDspOwogc29iLmFkZFZhcmlhYmxlKCZxdW90O2xpbmt5JnF1b3Q7 LCAmcXVvdDtodHRwOi8vbXlncmVhdHpvby5jb20vdGlnZXJzJnF1b3Q7KTsKIHNvYi5hZGRW YXJpYWJsZSgmcXVvdDtwaWMmcXVvdDssICZxdW90O3RpZ2VyLmpwZyZxdW90Oyk7CiBzb2Iu d3JpdGUoJnF1b3Q7bXlGbGFzaENvbnRlbnQmcXVvdDspOwombHQ7L3NjcmlwdCZndDsKPC9j b2RlPjwvcHJlPgoKCTxwPk5vdGUgdGhlICYjODIxNjtkZWZlciYjODIxNzsgb3B0aW9uLiBU aGlzIGlzIGFuIGF0dGVtcHQgdG8gcHJldmVudCBJRSBmcm9tIGNyYXNoaW5nICh3aGljaCBp dCBzb21ldGltZXMgZG9lcykgd2l0aCBhbiAmIzgyMjA7b3BlcmF0aW9uIGFib3J0ZWQmIzgy MjE7IGRpYWxvZy48L3A+CgoJPGgyIGlkPSJjaGFuZ2Vsb2ciPkNoYW5nZWxvZzwvaDI+CgoJ PHVsPgoJCTxsaT4xNiBNYXkgMDYgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20v ZG93bmxvYWRzL3NtZF9yYW5kb21fYmFubmVyX3YwLjEudHh0Ij4wLjE8L2E+IHwgSW5pdGlh bCBwdWJsaWMgcmVsZWFzZTwvbGk+CgkJPGxpPjI0IE1heSAwNiB8IDxhIGhyZWY9Imh0dHA6 Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX3JhbmRvbV9iYW5uZXJfdjAuMTEudHh0 Ij4wLjExPC9hPiB8IEFkZGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5QRlg8L3NwYW4+IHRvIHF1 ZXJ5ICh0aGFua3MgbWVyY3VyeSk8L2xpPgoJCTxsaT4wOCBTZXAgMDYgfCA8YSBocmVmPSJo dHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9yYW5kb21fYmFubmVyX3YwLjEy LnR4dCI+MC4xMjwvYT4gfCBGaXhlZCBoZWxwIHRvIGluY2x1ZGUgdHJhaWxpbmcgc2xhc2hl cyAodGhhbmtzIHZpdHRvcmlvKTwvbGk+CgkJPGxpPjE1IFNlcCAwNiB8IDAuMTMgfCBVbnJl bGVhc2VkLiBBZGRlZCBsb29rX2luPWNhdGVnb3J5IGFuZCByZWZlcmVyPC9saT4KCQk8bGk+ MTkgU2VwIDA2IHwgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9z bWRfcmFuZG9tX2Jhbm5lcl92MC4xNC50eHQiPjAuMTQ8L2E+IHwgQWRkZWQgbWF0Y2hfdGV4 dCBhbmQgdXNlX2FsdCAodGhhbmtzIGx1a2VwZXJtc24pPC9saT4KCQk8bGk+MjkgU2VwIDA2 IHwgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfcmFuZG9t X2Jhbm5lcl92MC4xNS50eHQiPjAuMTU8L2E+IHwgQWRkZWQgYWx3YXlzX2Rpc3BsYXkgYW5k IGxpbWl0ICh0aGFua3MgbHVrZXBlcm1zbik8L2xpPgoJCTxsaT4yMSBPY3QgMDYgfCA8YSBo cmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9yYW5kb21fYmFubmVy X3YwLjE1YS50eHQiPjAuMTVhPC9hPiB8IEJ1Z2ZpeCBmb3IgbGlua2NhcHRpb24gKHRoYW5r cyBtZXJjdXJ5KTwvbGk+CgkJPGxpPjIyIE9jdCAwNiB8IDxhIGhyZWY9Imh0dHA6Ly9zdGVm ZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX3JhbmRvbV9iYW5uZXJfdjAuMTYudHh0Ij4wLjE2 PC9hPiB8IFRpZ2h0ZW5lZCBpbWFnZSgpIHBhcmFtcyBmb3IgdHhwIHY0LjAuNCBjb21wbGlh bmNlPC9saT4KCQk8bGk+MDkgSmFuIDA3IHwgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24u Y29tL2Rvd25sb2Fkcy9zbWRfcmFuZG9tX2Jhbm5lcl92MC4xNy50eHQiPjAuMTc8L2E+IHwg QWRkZWQgdGh1bWIsIGxpbmtwcmVmaXggYW5kIGxpbmthbHQgb3B0aW9uczwvbGk+CgkJPGxp PjA1IEZlYiAwNyB8IDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMv c21kX3JhbmRvbV9iYW5uZXJfdjAuMTdhLnR4dCI+MC4xN2E8L2E+IHwgYmlkIG9wdGlvbiBu b3cgd29ya3Mgd2l0aCBleGlzdGluZyB1cmwgcGFyYW1zICh0aGFua3MgUGFwdWFzcyk8L2xp PgoJCTxsaT4xMSBGZWIgMDcgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93 bmxvYWRzL3NtZF9yYW5kb21fYmFubmVyX3YwLjE4LnR4dCI+MC4xODwvYT4gfCBBZGRlZCBp bWdjbGFzcyBvcHRpb24gKHRoYW5rcyBEaWdpdGFsUmVhbG0pPC9saT4KCQk8bGk+MjUgRmVi IDA3IHwgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfcmFu ZG9tX2Jhbm5lcl92MC4yLnR4dCI+MC4yPC9hPiB8IE1ham9yIG92ZXJoYXVsLiBBZGRlZCBz dWJjYXRlZ29yeSBzdXBwb3J0ICh0aGFua3MgbHVrZXBlcm1zbiBhbmQgc2FudGhlbykuIFVz ZXMgc21kX2xpYi4gRW5oYW5jZWQgbWF0Y2hfdGV4dC9hdm9pZF90ZXh0IHNvIGxvb2tfaW4g aXMgbm8gbG9uZ2VyIG5lZWRlZDsgZHJvcHBlZCB1c2VfYWx0IGFuZCBhZGRlZCBjb21wYXJl X3RvOyByZXBsYWNlZCBsaW5rY2FwdGlvbi9saW5rYWx0IHdpdGggbGlua19pbjsgYWRkZWQg aWRfcHJlZml4OyBsaW5rcHJlZml4IGlzIG5vdyBsaW5rX3ByZWZpeDwvbGk+CgkJPGxpPjA0 IE1hciAwNyB8IDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMvc21k X3JhbmRvbV9iYW5uZXJfdjAuMjEudHh0Ij4wLjIxPC9hPiB8IEFkZGVkIDxhY3JvbnltIHRp dGxlPSJNdWx0aS1MaW5ndWFsIFBhY2siPjxzcGFuIGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+ PC9hY3JvbnltPiBzdXBwb3J0PC9saT4KCQk8bGk+MTggTWFyIDA3IHwgPGEgaHJlZj0iaHR0 cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfcmFuZG9tX2Jhbm5lcl92MC4yMi50 eHQiPjAuMjI8L2E+IHwgQWRkZWQgcmF3X3VybCBvcHRpb248L2xpPgoJCTxsaT4yMSBKdWwg MDcgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9yYW5k b21fYmFubmVyX3YwLjIzLnR4dCI+MC4yMzwvYT4gfCBBZ2FpbnN0IGJldHRlciBqdWRnZW1l bnQsIGFkZGVkIHRhcmdldCBvcHRpb24gKHRoYW5rcyBqc3R1YmJzLCBjZHRhdmlqaXQpPC9s aT4KCQk8bGk+MTEgU2VwIDA3IHwgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rv d25sb2Fkcy9zbWRfcmFuZG9tX2Jhbm5lcl92MC4zLnR4dCI+MC4zPC9hPiB8IEFkZGVkIHN1 cHBvcnQgZm9yIGZpbGVzIGFzIHdlbGwgYXMgaW1hZ2VzICYjODIxMTsgZmluYWxseSwgdmlk ZW8vc3dmIGJhbm5lcnMgYXJlIGEgcmVhbGl0eSE8L2xpPgoJCTxsaT4xMSBTZXAgMDcgfCA8 YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9yYW5kb21fYmFu bmVyX3YwLjNhLnR4dCI+MC4zYTwvYT4gfCBGaXhlZDogaWYgY2F0ZWdvcnk9JiM4MjIxOz9m aWVsZCYjODIyMTsgaXMgZW1wdHkvcmV0dXJucyBubyByZXN1bHRzLCBwbHVnaW4gd2lsbCBu byBsb25nZXIgZGlzcGxheSBhIHJhbmRvbSBpbWFnZSBmcm9tIHRoZSBmdWxsIHBvb2w8L2xp PgoJCTxsaT4xMCBPY3QgMDcgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93 bmxvYWRzL3NtZF9yYW5kb21fYmFubmVyX3YwLjMxLnR4dCI+MC4zMTwvYT4gfCBFeHRlbmRl ZCBhbHdheXNfZGlzcGxheS4gQWRkZWQgbnZfZGVsaW0gdG8gc3BlY2lmeSBuYW1lPXZhbHVl IGRlbGltaXRlciBpbiBmaWxlIG1vZGUgcGFyYW1zLiBGaXhlZDogZGVmaW5lKCkgd2Fybmlu ZzwvbGk+CgkJPGxpPjE1IE9jdCAwNyB8IDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNv bS9kb3dubG9hZHMvc21kX3JhbmRvbV9iYW5uZXJfdjAuMzIudHh0Ij4wLjMyPC9hPiB8IEFk ZGVkIG5vX3BsdWdfdGV4dCBhbmQgZ2xvYmFsX3BhcmFtczwvbGk+CgkJPGxpPjA3IE5vdiAw NyB8IDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX3JhbmRv bV9iYW5uZXJfdjAuMzMudHh0Ij4wLjMzPC9hPiB8IFVzZXMgc21kX2xpYiB2MC4zLiBBZGRl ZCBzd2ZPYmplY3Qgc3VwcG9ydC4gQ2FuIG5vdyBvdmVycmlkZSBtaW1lIHR5cGU8L2xpPgoJ CTxsaT4zMCBEZWMgMDcgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxv YWRzL3NtZF9yYW5kb21fYmFubmVyX3YwLjM0LnR4dCI+MC4zNDwvYT4gWyA8YSBocmVmPSJo dHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9yYW5kb21fYmFubmVyX3YwLjM0 X3ppcC50eHQiPmNvbXByZXNzZWQ8L2E+IF0gfCBBZGRlZCBzdGF0aWMgaW1hZ2Ugc3VwcG9y dCB0byBmaWxlcyBtb2RlKCEpPC9saT4KCQk8bGk+MTQgQXByIDA4IHwgPGEgaHJlZj0iaHR0 cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfcmFuZG9tX2Jhbm5lcl92MC40LnR4 dCI+MC40PC9hPiBbIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMv c21kX3JhbmRvbV9iYW5uZXJfdjAuNF96aXAudHh0Ij5jb21wcmVzc2VkPC9hPiBdIHwgUmVm YWN0b3JlZCBjb2RlIHRvIHRha2UgYWR2YW50YWdlIG9mIG5ldyBzbWRfbGliIGZ1bmN0aW9u YWxpdHkgKHN1YmNhdHMsIGNhdGVnb3J5IGFuZCBtYXRjaGluZykgOyBhZGRlZCBpZCBhbmQg Y29tcGFyZV90bzppZCA7IGNoYW5nZWQgaW1nY2xhc3MgdG8gY2xhc3MgOyBjaGFuZ2VkIHN1 YmNhdHMgdG8gdXNlIGxldmVscyA7IGFkZGVkIGRpc3BsYXlfdXJsICh0aGFua3MgQW5kcmV3 IEJsZXZpbnMpIDsgY2FuIG5vdyB1c2UgaW1hZ2UgbmFtZSBhcyBsaW5rX2luIDsgZml4ZWQg c3dmb2JqZWN0IC8gRmxhc2h2YXJzIGJ1Z3MgaW4gZmlsZSBtb2RlIDsgcmVtb3ZlZCBpZF9w cmVmaXg8L2xpPgoJPC91bD4KCgk8aDIgaWQ9ImNyZWRpdHMiPkNyZWRpdHM8L2gyPgoKCTxw PlRoaXMgcGx1Z2luIHdhcyBvcmlnaW5hbGx5IGJhc2VkIG9uIGRydV9yYW5kb21faW1hZ2Ug YW5kIHBsYWdpYXJpc2VkIGlkZWFzIGZyb20gUm9iIFNhYmxlJiM4MjE3O3MgcnNzX3RodW1i cG9wIGFuZCB2YXJpb3VzIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+ZXJzIGluIHRo ZSBjb21tdW5pdHkgd2hvIGhhdmUgc3VnZ2VzdGVkIGZlYXR1cmVzIGFuZCBpbXByb3ZlbWVu dHMuIE1hbnkgdGhhbmtzIHRvIGFsbCB3aG8gaGF2ZSBoZWxwZWQgY3JhZnQgdGhpcyBwbHVn aW4gYW5kIG9mIGNvdXJzZSBUZWFtIFRleHRQYXR0ZXJuIGZvciB0aGUgY29vbGVzdCA8c3Bh biBjbGFzcz0iY2FwcyI+Q01TPC9zcGFuPiBvbiB0aGUgcGxhbmV0LjwvcD4KCgk8cD48L2Rp dj48L3A+CjwhLS0gLS0tIEJFR0lOIFBMVUdJTiBDU1MgLS0tIC0tPgo8c3R5bGUgdHlwZT0i dGV4dC9jc3MiPgojc21kX2hlbHAgeyBsaW5lLWhlaWdodDoxLjQ1IDt9CiNzbWRfaGVscCBj b2RlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIs IGNvdXJpZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRf aGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRl ZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJn aW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgYTpsaW5rLCAj c21kX2hlbHAgYTp2aXNpdGVkIHsgY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogbm9u ZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9 CiNzbWRfaGVscCBhOmhvdmVyLCAjc21kX2hlbHAgYTphY3RpdmUgeyBjb2xvcjogYmx1ZTsg dGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAycHggc29saWQgYmx1ZTsg cGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6 IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50 ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBw YWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5z LXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjNjkzOyBmb250OiBib2xkIDEycHgg QXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAw IDA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGlu ZTt9CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsg bGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06 IHVwcGVyY2FzZTsgfQojc21kX2hlbHAgLmF0dC1uYW1lIHsgZm9udC13ZWlnaHQ6Ym9sZDsg fQojc21kX2hlbHAgLm1hbmQgeyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRlcjoxcHggZG90dGVk ICM5OTk7IH0KI3NtZF9oZWxwIHRhYmxlIHt3aWR0aDo5MCU7IHRleHQtYWxpZ246Y2VudGVy OyBwYWRkaW5nLWJvdHRvbToxZW07fQojc21kX2hlbHAgdGQsICNzbWRfaGVscCB0aCB7Ym9y ZGVyOjFweCBzb2xpZCAjOTk5OyBwYWRkaW5nOi41ZW0gMDt9CiNzbWRfaGVscCB1bCB7IGxp c3Qtc3R5bGUtdHlwZTpzcXVhcmU7IH0KI3NtZF9oZWxwIGxpIHsgbWFyZ2luLWxlZnQ6MzVw eDsgfQojc21kX2hlbHAgLmJyZWFrIHsgbWFyZ2luLXRvcDo1cHg7IH0KPC9zdHlsZT4KPCEt LSAtLS0gRU5EIFBMVUdJTiBDU1MgLS0tIC0tPgoiO3M6MzoibWQ1IjtzOjMyOiI3ZTU2N2Q2 MDVhNTg1MDRhNDQ4YWEwZjNkMjU3YzZkYyI7fQ==