# Name: smd_xml v0.21 # Type: Client side plugin # Extract any XML/feed info and reformat it # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjc6InNtZF94bWwiO3M6NjoiYXV0aG9yIjtzOjExOiJTdGVm IERhd3NvbiI7czoxMDoiYXV0aG9yX3VyaSI7czoyMjoiaHR0cDovL3N0ZWZkYXdzb24uY29t LyI7czo3OiJ2ZXJzaW9uIjtzOjQ6IjAuMjEiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjQxOiJF eHRyYWN0IGFueSBYTUwvZmVlZCBpbmZvIGFuZCByZWZvcm1hdCBpdCI7czo0OiJjb2RlIjtz OjE2MTIyOiJmdW5jdGlvbiBzbWRfeG1sKCRhdHRzLCAkdGhpbmc9TlVMTCkgew0KCWdsb2Jh bCAkcHJldGV4dCwgJHRoaXNwYWdlLCAkc21kX3htbF9wZ2luZm87DQoNCglleHRyYWN0KGxB dHRzKGFycmF5KA0KCQknZGF0YScgPT4gJycsDQoJCSdyZWNvcmQnID0+ICcnLA0KCQknZmll bGRzJyA9PiAnJywNCgkJJ3NraXAnID0+ICcnLA0KCQkndXBwZXJjYXNlJyA9PiAnMCcsDQoJ CSdjb252ZXJ0JyA9PiAnJywgLy8gc2VhcmNoOnJlcGxhY2UsIHNlYXJjaDpyZXBsYWNlLCAu Li4NCgkJJ3RhcmdldF9lbmMnID0+ICdVVEYtOCcsDQoJCSdkZWZhdWx0cycgPT4gJycsDQoJ CSdzZXRfZW1wdHknID0+ICcwJywNCgkJJ2Zvcm0nID0+ICcnLA0KCQknbGltaXQnID0+IDAs DQoJCSdvZmZzZXQnID0+IDAsDQoJCSdsaW5raWZ5JyA9PiAnJywNCgkJJ3BhZ2Vmb3JtJyA9 PiAnJywNCgkJJ3BhZ2V2YXInID0+ICdwZycsDQoJCSdwYWdlcG9zJyA9PiAnYmVsb3cnLA0K CQknd3JhcHRhZycgPT4gJycsDQoJCSdicmVhaycgPT4gJycsDQoJCSdjbGFzcycgPT4gJycs DQoJCSdkZWxpbScgPT4gJywnLA0KCQkncGFyYW1fZGVsaW0nID0+ICc6JywNCgkJJ2NvbmNh dF9kZWxpbScgPT4gJyAnLA0KCQknY29uY2F0JyA9PiAnMScsDQoJCSdjYWNoZV90aW1lJyA9 PiAnMCcsIC8vIGluIHNlY29uZHMNCgkJJ2hhc2hzaXplJyA9PiAnNjo1JywNCgkJJ3RyYW5z cG9ydCcgPT4gJycsDQoJCSdkZWJ1ZycgPT4gJzAnLA0KCSksICRhdHRzKSk7DQoNCgkkc3Jj ID0gJyc7DQoJJHRoaW5nID0gKGVtcHR5KCRmb3JtKSkgPyAkdGhpbmcgOiBmZXRjaF9mb3Jt KCRmb3JtKTsNCg0KCWlmIChlbXB0eSgkZGF0YSkpIHsNCgkJdHJpZ2dlcl9lcnJvcigic21k X3htbCByZXF1aXJlcyBhIGRhdGEgc291cmNlIik7DQoJfQ0KCWlmIChlbXB0eSgkcmVjb3Jk KSkgew0KCQl0cmlnZ2VyX2Vycm9yKCJzbWRfeG1sIHJlcXVpcmVzIGEgcmVjb3JkIG5hbWUg d2l0aGluIHlvdXIgZGF0YSBzdHJlYW0iKTsNCgl9DQoJaWYgKGVtcHR5KCRmaWVsZHMpKSB7 DQoJCXRyaWdnZXJfZXJyb3IoInNtZF94bWwgcmVxdWlyZXMgYSBsaXN0IG9mIGZpZWxkcyB0 byBleHRyYWN0IGZyb20gd2l0aGluIHlvdXIgcmVjb3JkcyIpOw0KCX0NCg0KCSRwYWdlYml0 ID0gJHJvd2luZm8gPSBhcnJheSgpOw0KCWlmICgkcGFnZWZvcm0pIHsNCgkJJHBhZ2VQb3NB bGxvd2VkID0gYXJyYXkoImJlbG93IiwgImFib3ZlIik7DQoJCSRwYWdlZm9ybSA9IGZldGNo X2Zvcm0oJHBhZ2Vmb3JtKTsNCgkJJHBhZ2Vwb3MgPSBzdHJfcmVwbGFjZSgnc21kXycsICcn LCAkcGFnZXBvcyk7IC8vIEZvciBjb252ZW5pZW5jZQ0KCQkkcGFnZXBvcyA9IGRvX2xpc3Qo JHBhZ2Vwb3MsICRkZWxpbSk7DQoJCWZvcmVhY2ggKCRwYWdlcG9zIGFzICRwYWdlaXRlbSkg ew0KCQkJJHBhZ2ViaXRbXSA9IChpbl9hcnJheSgkcGFnZWl0ZW0sICRwYWdlUG9zQWxsb3dl ZCkpID8gJHBhZ2VpdGVtIDogJHBhZ2VQb3NBbGxvd2VkWzBdOw0KCQl9DQoJfQ0KDQoJJHRh cmdldF9lbmMgPSAoaW5fYXJyYXkoJHRhcmdldF9lbmMsIGFycmF5KCdJU08tODg1OS0xJywg J1VTLUFTQ0lJJywgJ1VURi04JykpKSA/ICR0YXJnZXRfZW5jIDogJ1VURi04JzsNCg0KCS8v IE1ha2UgYSB1bmlxdWUgaGFzaCB2YWx1ZSBmb3IgdGhpcyBpbnN0YW5jZSBzbyB0aGUgWE1M IGRvY3VtZW50IGNhbiBiZSBjYWNoZWQgaW4gdHhwX3ByZWZzDQoJJHVuaXEgPSAnJzsNCgkk bWQ1ID0gbWQ1KCRkYXRhLiRyZWNvcmQuJGZpZWxkcyk7DQoJbGlzdCgkaGFzaExlbiwgJGhh c2hTa2lwKSA9IGV4cGxvZGUoJzonLCAkaGFzaHNpemUpOw0KCWZvciAoJGlkeCA9IDAsICRj bnQgPSAwOyAkY250IDwgJGhhc2hMZW47ICRjbnQrKywgJGlkeCA9ICgoJGlkeCskaGFzaFNr aXApICUgc3RybGVuKCRtZDUpKSkgew0KCQkkdW5pcSAuPSAkbWQ1WyRpZHhdOw0KCX0NCg0K CSR2YXJfbGFzdG1vZCA9ICdzbWRfeG1sX2xtb2RfJy4kdW5pcTsNCgkkdmFyX2RhdGEgPSAn c21kX3htbF9kYXRhXycuJHVuaXE7DQoJJGxhc3Rtb2QgPSBnZXRfcHJlZigkdmFyX2xhc3Rt b2QsIDApOw0KCSRyZWFkX2NhY2hlID0gKCgkY2FjaGVfdGltZSA+IDApICYmICgodGltZSgp IC0gJGxhc3Rtb2QpIDwgJGNhY2hlX3RpbWUpKSA/IHRydWUgOiBmYWxzZTsNCgkkcmVhZF9j YWNoZSA9IGdwcygnZm9yY2VfcmVhZCcpID8gZmFsc2UgOiAkcmVhZF9jYWNoZTsgLy8gT3Zl cnJpZGUgY2FjaGVfdGltZQ0KCSRjcnVzaCA9IGZ1bmN0aW9uX2V4aXN0cygnZ3pjb21wcmVz cycpICYmIGZ1bmN0aW9uX2V4aXN0cygnZ3p1bmNvbXByZXNzJyk7DQoJJHBhZ2V2YXIgPSAo JHBhZ2V2YXIgPT0gJ1NNRF9YTUxfVU5JUVVFX0lEJykgPyAkdW5pcSA6ICRwYWdldmFyOw0K DQoJLy8gQ2FjaGVkIGRvY3VtZW50IGlzIGd6aXBwZWQgYW5kIHRoZW4gKHl1ayEpIGJhc2U2 NCdkIGlmIHpsaWIgaXMgY29tcGlsZWQgaW4uDQoJLy8gV291bGQgcHJlZmVyIHRvIHN0b3Jl IGJpbmFyeSBkYXRhIGRpcmVjdGx5IGJ1dCB0cnlpbmcgdG8gaW5zZXJ0IGl0IGludG8gYSB0 eHBfcHJlZnMNCgkvLyB0ZXh0IGZpZWxkIGFsd2F5cyBnYXZlIHByb2JsZW1zIG9uIGluc2Vy dGlvbiBhbmQvb3IgcmV0cmlldmFsDQoJaWYgKCRyZWFkX2NhY2hlKSB7DQoJCWlmICgkZGVi dWcgPiAxKSB7DQoJCQlkbXAgKCcrKyBSRUFESU5HIENBQ0hFICcuJHZhcl9kYXRhLicgKysn KTsNCgkJfQ0KCQkkc3JjID0gJGNydXNoID8gZ3p1bmNvbXByZXNzKGJhc2U2NF9kZWNvZGUo Z2V0X3ByZWYoJHZhcl9kYXRhKSkpIDogZ2V0X3ByZWYoJHZhcl9kYXRhKTsNCgl9IGVsc2Ug ew0KCQlpZiAoKHN0cnBvcygkZGF0YSwgJ2h0dHA6JykgPT09IDApIHx8IChzdHJwb3MoJGRh dGEsICdodHRwczonKSA9PT0gMCkpIHsNCgkJCS8vIFRoZSBkYXRhIGlzIHRvIGJlIGZldGNo ZWQgZnJvbSBhIFVSTA0KCQkJaWYgKCEkdHJhbnNwb3J0KSB7DQoJCQkJaWYoIGlzX2NhbGxh YmxlKCdmc29ja29wZW4nKSApDQoJCQkJCSR0cmFuc3BvcnQgPSAnZnNvY2snOw0KCQkJCWVs c2VpZiggaXNfY2FsbGFibGUoJ2N1cmxfaW5pdCcpICkgew0KCQkJCQkkdHJhbnNwb3J0ID0g J2N1cmwnOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSR0cmFuc3BvcnQgPSAnJzsNCgkJCQl9DQoJ CQl9DQoNCgkJCXN3aXRjaCAoJHRyYW5zcG9ydCkgew0KCQkJCWNhc2UgJ2N1cmwnOg0KCQkJ CQkkYyA9IGN1cmxfaW5pdCgpOw0KCQkJCQljdXJsX3NldG9wdCgkYywgQ1VSTE9QVF9VUkws ICRkYXRhKTsNCgkJCQkJY3VybF9zZXRvcHQoJGMsIENVUkxPUFRfUkVGRVJFUiwgaHUpOw0K CQkJCQljdXJsX3NldG9wdCgkYywgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7DQoJ CQkJCWN1cmxfc2V0b3B0KCRjLCBDVVJMT1BUX1ZFUkJPU0UsIGZhbHNlKTsNCgkJCQkJY3Vy bF9zZXRvcHQoJGMsIENVUkxPUFRfVElNRU9VVCwgMTApOw0KCQkJCQkkc3JjID0gY3VybF9l eGVjKCRjKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnZnNvY2snOg0KCQkJCQkkdXJsID0g cGFyc2VfdXJsKCRkYXRhKTsNCgkJCQkJc3dpdGNoICgkdXJsWydzY2hlbWUnXSkgew0KCQkJ CQkJY2FzZSAnaHR0cHMnOg0KCQkJCQkJCSR1cmxbJ3NjaGVtZSddID0gJ3NzbDovLyc7DQoJ CQkJCQkJJHVybFsncG9ydCddID0gNDQzOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJY2FzZSAn aHR0cCc6DQoJCQkJCQlkZWZhdWx0Og0KCQkJCQkJCSR1cmxbJ3NjaGVtZSddID0gJyc7DQoJ CQkJCQkJJHVybFsncG9ydCddID0gODA7DQoJCQkJCX0NCgkJCQkJJGZwID0gZnNvY2tvcGVu ICgkdXJsWydzY2hlbWUnXSAuICR1cmxbJ2hvc3QnXSwgJHVybFsncG9ydCddLCAkZXJybm8s ICRlcnJzdHIsIDEwKTsNCg0KCQkJCQkkcXJ5ID0gJ0dFVCAnLiR1cmxbJ3BhdGgnXTsNCgkJ CQkJJHFyeSAuPSAiIEhUVFAvMS4wXHJcbiI7DQoJCQkJCSRxcnkgLj0gIkhvc3Q6ICIuJHVy bFsnaG9zdCddLiJcclxuIjsNCgkJCQkJJHFyeSAuPSAiVXNlci1BZ2VudDogTW96aWxsYS81 LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBlbi1HQjsgcnY6MS45LjEuNikgR2Vj a28vMjAwOTEyMDEgRmlyZWZveC8zLjUuNlxyXG5cclxuIjsgLy8gKnNocnVnKg0KDQoJCQkJ CWZwdXRzKCRmcCwgJHFyeSk7DQoJCQkJCXN0cmVhbV9zZXRfdGltZW91dCgkZnAsIDEwKTsN CgkJCQkJJGluZm8gPSBzdHJlYW1fZ2V0X21ldGFfZGF0YSgkZnApOw0KDQoJCQkJCSRoZHJz ID0gdHJ1ZTsNCgkJCQkJd2hpbGUgKCghZmVvZigkZnApKSAmJiAoISRpbmZvWyd0aW1lZF9v dXQnXSkpIHsNCgkJCQkJCSRsaW5lID0gZmdldHMoJGZwLCA4MTkyKTsNCgkJCQkJCSRsaW5l ID0gcHJlZ19yZXBsYWNlKCJbXHJcbl0iLCAiIiwgJGxpbmUpOw0KCQkJCQkJaWYgKCRoZHJz ID09IGZhbHNlKSB7DQoJCQkJCQkJJHNyYyAuPSAkbGluZS4iXG4iOw0KCQkJCQkJfQ0KCQkJ CQkJaWYgKHN0cmxlbigkbGluZSkgPT0gMCkgJGhkcnMgPSBmYWxzZTsNCgkJCQkJfQ0KCQkJ CQlpZiAoJGluZm9bJ3RpbWVkX291dCddKSB7DQoJCQkJCQkkc3JjID0gJyc7DQoJCQkJCX0N CgkJCQkJZmNsb3NlKCRmcCk7DQoJCQkJCWJyZWFrOw0KCQkJCWRlZmF1bHQ6DQoJCQkJCSRz cmMgPSAnJzsNCgkJCX0NCgkJfSBlbHNlICB7DQoJCQkvLyBBc3N1bWUgZGF0YSBpcyBwcmVz ZW50ZWQgaW4gcmF3IFhNTA0KCQkJJHNyYyA9ICRkYXRhOw0KCQl9DQoJfQ0KDQoJLy8gU3Rv cmUgdGhlIGN1cnJlbnQgZG9jdW1lbnQgaW4gdGhlIGNhY2hlIGFuZCBkYXRlc3RhbXAgaXQN CglpZiAoJGNhY2hlX3RpbWUgPiAwICYmICEkcmVhZF9jYWNoZSkgew0KCQlpZiAoJGRlYnVn ID4gMSkgew0KCQkJZG1wKCcrKyBEQVRBIENBQ0hFRCB0byAnLiR2YXJfZGF0YS4nICsrJyk7 DQoJCX0NCgkJJHNyY2luZm8gPSAkY3J1c2ggPyBiYXNlNjRfZW5jb2RlKGd6Y29tcHJlc3Mo JHNyYykpIDogZG9TbGFzaCgkc3JjKTsNCgkJc2V0X3ByZWYoJHZhcl9sYXN0bW9kLCB0aW1l KCksICdzbWRfeG1sJywgUFJFRl9ISURERU4sICd0ZXh0X2lucHV0Jyk7DQoJCXNldF9wcmVm KCR2YXJfZGF0YSwgJHNyY2luZm8sICdzbWRfeG1sJywgUFJFRl9ISURERU4sICd0ZXh0X2lu cHV0Jyk7DQoJfQ0KDQoJLy8gTWFrZSB1cCBhIHJlcGxhY2VtZW50IGFycmF5IGZvciBkZWNv ZGVkIGVudGl0aWVzLi4uDQoJJGNvbnZlcnNpb25zID0gYXJyYXkoKTsNCgkkY29udmVydCA9 IGRvX2xpc3QoJGNvbnZlcnQsICRkZWxpbSk7DQoJZm9yZWFjaCAoJGNvbnZlcnQgYXMgJHBh aXIpIHsNCgkJaWYgKGVtcHR5KCRwYWlyKSkgY29udGludWU7DQoNCgkJJHBhaXIgPSBkb19s aXN0KCRwYWlyLCAkcGFyYW1fZGVsaW0pOw0KCQkkY29udmVyc2lvbnNbJHBhaXJbMF1dID0g JHBhaXJbMV07DQoJfQ0KDQoJaWYgKCRkZWJ1ZyA+IDEpIHsNCgkJZWNobyAiKysgQ09OVkVS U0lPTlMgKysiOw0KCQlkbXAoJGNvbnZlcnNpb25zKTsNCgl9DQoNCgkvLyAuLi4gYW5kIHJl cGxhY2UgdGhlbQ0KCSRzcmMgPSBzdHJ0cigkc3JjLCAkY29udmVyc2lvbnMpOw0KDQoJaWYg KCRkZWJ1ZyA+IDIpIHsNCgkJZWNobyAiKysgRklMVEVSRUQgU09VUkNFIERBVEEgKysiOw0K CQlkbXAoJHNyYyk7DQoJfQ0KDQoJLy8gU2V0IHVwIGFueSBkZWZhdWx0cw0KCSRkZWZhdWx0 cyA9IGRvX2xpc3QoJGRlZmF1bHRzLCAkZGVsaW0pOw0KCSRkZmx0cyA9IGFycmF5KCk7DQoJ Zm9yZWFjaCAoJGRlZmF1bHRzIGFzICRkZmx0KSB7DQoJCWlmICgkZGZsdCA9PSAnJykgY29u dGludWU7DQoJCSRwYXJ0cyA9IGV4cGxvZGUoJHBhcmFtX2RlbGltLCAkZGZsdCk7DQoJCSRk Zmx0c1skcGFydHNbMF1dID0gJHBhcnRzWzFdOw0KCX0NCgkkZGVmYXVsdHMgPSAkZGZsdHM7 DQoNCglpZiAoJGRlYnVnID4gMSkgew0KCQllY2hvICIrKyBERUZBVUxUUyArKyI7DQoJCWRt cCgkZGVmYXVsdHMpOw0KCX0NCg0KCWlmICghZW1wdHkoJHNyYykpIHsNCgkJLy8gUGFnaW5n IGluZm9ybWF0aW9uDQoJCSRyb3dpbmZvWydudW1yZWNzJ10gPSBzdWJzdHJfY291bnQoJHNy YywgJzwnLiRyZWNvcmQuJz4nKTsNCgkJJHJvd2luZm9bJ3BhZ2Vfcm93Y250J10gPSAwOw0K CQkkcm93aW5mb1snbGltaXQnXSA9ICgkbGltaXQgPCAkcm93aW5mb1snbnVtcmVjcyddKSA/ ICRsaW1pdCA6IDA7DQoJCWlmICgkb2Zmc2V0ID49IDApIHsNCgkJCWlmICgkb2Zmc2V0IDwg JHJvd2luZm9bJ251bXJlY3MnXSkgew0KCQkJCSRyb3dpbmZvWydvZmZzZXQnXSA9ICRvZmZz ZXQ7DQoJCQl9IGVsc2Ugew0KCQkJCSRyb3dpbmZvWydvZmZzZXQnXSA9ICRyb3dpbmZvWydu dW1yZWNzJ107DQoJCQkJJHJvd2luZm9bJ2xpbWl0J10gPSAwOw0KCQkJfQ0KCQl9IGVsc2Ug ew0KCQkJJG5lZ29mZiA9ICRyb3dpbmZvWydudW1yZWNzJ10gKyAkb2Zmc2V0Ow0KCQkJaWYg KCRuZWdvZmYgPiAwKSB7DQoJCQkJJHJvd2luZm9bJ29mZnNldCddID0gJG5lZ29mZjsNCgkJ CX0gZWxzZSB7DQoJCQkJJHJvd2luZm9bJ29mZnNldCddID0gMDsNCgkJCQkkcm93aW5mb1sn bGltaXQnXSA9ICRyb3dpbmZvWydudW1yZWNzJ107DQoJCQl9DQoJCX0NCg0KCQkvLyBSZS1h c3NpZ24gdGhlIGF0dHMgaW4gY2FzZSB0aGV5J3ZlIGJlZW4gY2hhbmdlZCBieSByZWFjaGlu ZyB0aGUgYm91bmRzIG9mIHRoZSBkb2N1bWVudA0KCQkkb2Zmc2V0ID0gJHJvd2luZm9bJ29m ZnNldCddOw0KCQkkbGltaXQgPSAkcm93aW5mb1snbGltaXQnXTsNCg0KCQlpZiAoJGxpbWl0 ID4gMCkgew0KCQkJJGtlZXBzYWZlID0gJHRoaXNwYWdlOw0KCQkJJHJvd2luZm9bJ3RvdGFs J10gPSAkcm93aW5mb1snbnVtcmVjcyddIC0gJG9mZnNldDsNCgkJCSRyb3dpbmZvWydudW1Q YWdlcyddID0gY2VpbCgkcm93aW5mb1sndG90YWwnXSAvICRsaW1pdCk7DQoJCQkkcm93aW5m b1sncGcnXSA9ICghZ3BzKCRwYWdldmFyKSkgPyAxIDogZ3BzKCRwYWdldmFyKTsNCgkJCSRy b3dpbmZvWydwZ29mZnNldCddID0gJG9mZnNldCArICgoJHJvd2luZm9bJ3BnJ10gLSAxKSAq ICRsaW1pdCk7DQoJCQkkcm93aW5mb1sncHJldnBnJ10gPSAoKCRyb3dpbmZvWydwZyddLTEp ID4gMCkgPyAkcm93aW5mb1sncGcnXS0xIDogJyc7DQoJCQkkcm93aW5mb1snbmV4dHBnJ10g PSAoKCRyb3dpbmZvWydwZyddKzEpIDw9ICRyb3dpbmZvWydudW1QYWdlcyddKSA/ICRyb3dp bmZvWydwZyddKzEgOiAnJzsNCgkJCSRyb3dpbmZvWydwYWdlcm93cyddID0gKCRyb3dpbmZv WydwZyddID09ICRyb3dpbmZvWydudW1QYWdlcyddKSA/ICRyb3dpbmZvWyd0b3RhbCddLSgk bGltaXQgKiAoJHJvd2luZm9bJ251bVBhZ2VzJ10tMSkpIDogJGxpbWl0Ow0KCQkJJHJvd2lu Zm9bJ3VuaXF1ZV9pZCddID0gJHVuaXE7DQoNCgkJCS8vIHNlbmQgcGFnaW5nIGluZm8gdG8g dHhwOm5ld2VyIGFuZCB0eHA6b2xkZXINCgkJCSRwYWdlb3V0WydwZyddID0gJHJvd2luZm9b J3BnJ107DQoJCQkkcGFnZW91dFsnbnVtUGFnZXMnXSA9ICRyb3dpbmZvWydudW1QYWdlcydd Ow0KCQkJJHBhZ2VvdXRbJ3MnXSA9ICRwcmV0ZXh0WydzJ107DQoJCQkkcGFnZW91dFsnYydd ID0gJHByZXRleHRbJ2MnXTsNCgkJCSRwYWdlb3V0WydncmFuZF90b3RhbCddID0gJHJvd2lu Zm9bJ251bXJlY3MnXTsNCgkJCSRwYWdlb3V0Wyd0b3RhbCddID0gJHJvd2luZm9bJ3RvdGFs J107DQoJCQkkdGhpc3BhZ2UgPSAkcGFnZW91dDsNCgkJfSBlbHNlIHsNCgkJCSRyb3dpbmZv WydwZ29mZnNldCddID0gJG9mZnNldDsNCgkJfQ0KDQoJCSRyb3dpbmZvWydydW5uaW5nX3Jv d2NudCddID0gJHJvd2luZm9bJ3Bnb2Zmc2V0J10tJG9mZnNldDsNCgkJJHJvd2luZm9bJ2Zp cnN0X3JlYyddID0gJHJvd2luZm9bJ3J1bm5pbmdfcm93Y250J10gKyAxOw0KCQkkcm93aW5m b1snbGFzdF9yZWMnXSA9ICgkbGltaXQgPiAwKSA/ICRyb3dpbmZvWydmaXJzdF9yZWMnXSAr ICRyb3dpbmZvWydwYWdlcm93cyddIC0gMSA6ICRyb3dpbmZvWydudW1yZWNzJ107DQoJCWlm ICgkbGltaXQgPiAwKSB7DQoJCQkkcm93aW5mb1sncHJldl9yb3dzJ10gPSAoKCRyb3dpbmZv WydwcmV2cGcnXSkgPyAkbGltaXQgOiAwKTsNCgkJCSRyb3dpbmZvWyduZXh0X3Jvd3MnXSA9 ICgoJHJvd2luZm9bJ25leHRwZyddKSA/ICgoJHJvd2luZm9bJ2xhc3RfcmVjJ10rJGxpbWl0 KzEpID4gJHJvd2luZm9bJ3RvdGFsJ10gPyAkcm93aW5mb1sndG90YWwnXS0kcm93aW5mb1sn bGFzdF9yZWMnXSA6ICRsaW1pdCkgOiAwKTsNCgkJfQ0KDQoJCWlmICgkZGVidWcgPiAwKSB7 DQoJCQllY2hvICcrKyBQQUdJTkcgSU5GTyArKyc7DQoJCQlkbXAoJHJvd2luZm8pOw0KCQl9 DQoNCgkJLy8gRG8gdGhlIGRpcnR5IFhNTCBkZWVkDQoJCSRyZWYgPSBuZXcgc21kX3htbF9w YXJzZXIoJHNyYywgJGZpZWxkcywgJHJlY29yZCwgJHNraXAsICR1cHBlcmNhc2UsICR0YXJn ZXRfZW5jLCAkbGlua2lmeSwgJGRlZmF1bHRzLCAkc2V0X2VtcHR5LCAkdGhpbmcsICRkZWxp bSwgJHBhcmFtX2RlbGltLCAkY29uY2F0LCAkY29uY2F0X2RlbGltLCAkcm93aW5mbywgJGRl YnVnKTsNCgkJJHJlc3VsdCA9ICRyZWYtPmdldFJlc3VsdHMoKTsNCg0KCQkvLyBDcmVhdGUg dGhlIHBhZ2UgZm9ybQ0KCQkkcGFnZWJsb2NrID0gJyc7DQoJCSRmaW5hbG91dCA9ICRyZXBh Z2VtZW50cyA9IGFycmF5KCk7DQoNCgkJaWYgKCRyb3dpbmZvWydsaW1pdCddID4gMCkgew0K CQkJJHJlcGFnZW1lbnRzWyd7c21kX3htbF90b3RhbHJlY3N9J10gPSAkcm93aW5mb1sndG90 YWwnXTsNCgkJCSRyZXBhZ2VtZW50c1sne3NtZF94bWxfcGFnZXJlY3N9J10gPSAkcm93aW5m b1sncGFnZXJvd3MnXTsNCgkJCSRyZXBhZ2VtZW50c1sne3NtZF94bWxfcGFnZXN9J10gPSAk cm93aW5mb1snbnVtUGFnZXMnXTsNCgkJCSRyZXBhZ2VtZW50c1sne3NtZF94bWxfcHJldnBh Z2V9J10gPSAkcm93aW5mb1sncHJldnBnJ107DQoJCQkkcmVwYWdlbWVudHNbJ3tzbWRfeG1s X3RoaXNwYWdlfSddID0gJHJvd2luZm9bJ3BnJ107DQoJCQkkcmVwYWdlbWVudHNbJ3tzbWRf eG1sX25leHRwYWdlfSddID0gJHJvd2luZm9bJ25leHRwZyddOw0KCQkJJHJlcGFnZW1lbnRz Wyd7c21kX3htbF9yZWNfc3RhcnR9J10gPSAkcm93aW5mb1snZmlyc3RfcmVjJ107DQoJCQkk cmVwYWdlbWVudHNbJ3tzbWRfeG1sX3JlY19lbmR9J10gPSAkcm93aW5mb1snbGFzdF9yZWMn XTsNCgkJCSRyZXBhZ2VtZW50c1sne3NtZF94bWxfcmVjc19wcmV2fSddID0gJHJvd2luZm9b J3ByZXZfcm93cyddOw0KCQkJJHJlcGFnZW1lbnRzWyd7c21kX3htbF9yZWNzX25leHR9J10g PSAkcm93aW5mb1snbmV4dF9yb3dzJ107DQoJCQkkcmVwYWdlbWVudHNbJ3tzbWRfeG1sX3Vu aXF1ZV9pZH0nXSA9ICRyb3dpbmZvWyd1bmlxdWVfaWQnXTsNCgkJCSRzbWRfeG1sX3BnaW5m byA9ICRyZXBhZ2VtZW50czsNCgkJCSRwYWdlYmxvY2sgPSBwYXJzZShzdHJ0cigkcGFnZWZv cm0sICRyZXBhZ2VtZW50cykpOw0KCQl9DQoNCgkJLy8gTWFrZSB1cCB0aGUgZmluYWwgb3V0 cHV0DQoJCWlmIChpbl9hcnJheSgiYWJvdmUiLCAkcGFnZWJpdCkpIHsNCgkJCSRmaW5hbG91 dFtdID0gJHBhZ2VibG9jazsNCgkJfQ0KCQkkZmluYWxvdXRbXSA9IGRvV3JhcCgkcmVzdWx0 LCAkd3JhcHRhZywgJGJyZWFrLCAkY2xhc3MpOw0KCQlpZiAoaW5fYXJyYXkoImJlbG93Iiwg JHBhZ2ViaXQpKSB7DQoJCQkkZmluYWxvdXRbXSA9ICRwYWdlYmxvY2s7DQoJCX0NCg0KCQkv LyBSZXN0b3JlIHRoZSBwYWdpbmcgb3V0c2lkZSB0aGUgcGx1Z2luIGNvbnRhaW5lcg0KCQlp ZiAoJGxpbWl0ID4gMCkgew0KCQkJJHRoaXNwYWdlID0gJGtlZXBzYWZlOw0KCQl9DQoNCgkJ cmV0dXJuIGpvaW4oJycsICRmaW5hbG91dCk7DQoJfSBlbHNlIHsNCgkJcmV0dXJuICcnOw0K CX0NCn0NCg0KY2xhc3Mgc21kX3htbF9wYXJzZXIgew0KCXByaXZhdGUgJGRhdGE7DQoJcHJp dmF0ZSAkZmllbGRzOw0KCXByaXZhdGUgJHJlYzsNCglwcml2YXRlICRza2lwOw0KCXByaXZh dGUgJGNmOw0KCXByaXZhdGUgJG91dGVuYzsNCglwcml2YXRlICRsaW5raWZ5Ow0KCXByaXZh dGUgJGRlZmF1bHRzOw0KCXByaXZhdGUgJHNldF9lbXB0eTsNCg0KCXByaXZhdGUgJGludGFn Ow0KCXByaXZhdGUgJGluZGF0YTsNCglwcml2YXRlICRza2lwdGFnOw0KCXByaXZhdGUgJHht bHRhZzsNCglwcml2YXRlICR4bWxhdHRzOw0KCXByaXZhdGUgJHhtbGRhdGE7DQoJcHJpdmF0 ZSAkdGhpbmc7DQoJcHJpdmF0ZSAkb3V0Ow0KCXByaXZhdGUgJHBkZWxpbTsNCglwcml2YXRl ICRjZGVsaW07DQoJcHJpdmF0ZSAkY29uY2F0Ow0KCXByaXZhdGUgJHJvd2luZm87DQoJcHJp dmF0ZSAkc2hvd19yZWNvcmQ7DQoJcHJpdmF0ZSAkZGVidWc7DQoNCgkvKioNCgkqIGNvbnN0 cnVjdG9yDQoJKi8NCglmdW5jdGlvbiBzbWRfeG1sX3BhcnNlcigkZGF0YSwgJGZpZWxkcywg JHJlYywgJHNraXAsICRjZiwgJG91dGVuYywgJGxpbmtpZnksICRkZWZhdWx0cywgJHNldF9l bXB0eSwgJHRoaW5nLCAkZGVsaW0sICRwZGVsaW0sICRjb25jYXQsICRjZGVsaW0sICRyaW5m bywgJGRlYnVnPTApIHsNCgkJJHRoaXMtPmRhdGEgPSAkZGF0YTsNCgkJJHRoaXMtPmZpZWxk cyA9IGRvX2xpc3QoJGZpZWxkcywgJGRlbGltKTsNCgkJJHRoaXMtPnNraXAgPSBkb19saXN0 KCRza2lwLCAkZGVsaW0pOw0KCQkkdGhpcy0+cmVjID0gJHJlYzsNCgkJJHRoaXMtPmNmID0g JGNmOyAvLyBDYXNlIGZvbGRpbmcNCgkJJHRoaXMtPm91dGVuYyA9ICRvdXRlbmM7IC8vIFRh cmdldCBlbmNvZGluZw0KCQkkdGhpcy0+bGlua2lmeSA9IGRvX2xpc3QoJGxpbmtpZnksICRk ZWxpbSk7DQoJCSR0aGlzLT5kZWZhdWx0cyA9ICRkZWZhdWx0czsNCgkJJHRoaXMtPnNldF9l bXB0eSA9ICRzZXRfZW1wdHk7DQoJCSR0aGlzLT50aGluZyA9ICR0aGluZzsNCgkJJHRoaXMt PnBkZWxpbSA9ICRwZGVsaW07DQoJCSR0aGlzLT5jZGVsaW0gPSAkY2RlbGltOw0KCQkkdGhp cy0+Y29uY2F0ID0gJGNvbmNhdDsNCgkJJHRoaXMtPnJvd2luZm8gPSAkcmluZm87DQoJCSR0 aGlzLT5kZWJ1ZyA9ICRkZWJ1ZzsNCg0KCQkkdGhpcy0+aW50YWcgPSBmYWxzZTsNCgkJJHRo aXMtPmV4aXN0cyA9IGZhbHNlOw0KCQkkdGhpcy0+c2tpcHRhZyA9ICcnOw0KCQkkdGhpcy0+ eG1sdGFnID0gJyc7DQoJCSR0aGlzLT54bWx0YXR0cyA9ICcnOw0KCQkkdGhpcy0+eG1sZGF0 YSA9IGFycmF5KCk7DQoJCSR0aGlzLT5vdXQgPSBhcnJheSgpOw0KDQoJCSR0aGlzLT5wYXJz ZSgpOw0KCX0NCg0KCXB1YmxpYyBmdW5jdGlvbiBnZXRSZXN1bHRzKCkgew0KCQlpZiAoJHRo aXMtPm91dCkgew0KCQkJcmV0dXJuICR0aGlzLT5vdXQ7DQoJCX0gZWxzZSB7DQoJCQlyZXR1 cm4gJyc7DQoJCX0NCgl9DQoNCglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlKCkgew0KCQkkdGhp cy0+ZGF0YSA9IHByZWdfcmVwbGFjZSgiLz4iLiJbWzpzcGFjZTpdXSsiLiI8L2kiLCAiPjwi LCAkdGhpcy0+ZGF0YSk7IC8vIEtpbGwgd2hpdGVzcGFjZSBpbiBkYXRhDQoJCSR4bWxwYXJz ZXIgPSB4bWxfcGFyc2VyX2NyZWF0ZSgpOw0KCQl4bWxfc2V0X29iamVjdCgkeG1scGFyc2Vy LCAkdGhpcyk7DQoJCXhtbF9wYXJzZXJfc2V0X29wdGlvbigkeG1scGFyc2VyLCBYTUxfT1BU SU9OX0NBU0VfRk9MRElORywgJHRoaXMtPmNmKTsNCgkJeG1sX3BhcnNlcl9zZXRfb3B0aW9u KCR4bWxwYXJzZXIsIFhNTF9PUFRJT05fVEFSR0VUX0VOQ09ESU5HLCAkdGhpcy0+b3V0ZW5j KTsNCgkJeG1sX3NldF9lbGVtZW50X2hhbmRsZXIoJHhtbHBhcnNlciwgInNtZF94bWxfc3Rh cnRfdGFnIiwgInNtZF94bWxfZW5kX3RhZyIpOw0KCQl4bWxfc2V0X2NoYXJhY3Rlcl9kYXRh X2hhbmRsZXIoJHhtbHBhcnNlciwgInNtZF94bWxfdGFnX2NvbnRlbnRzIik7DQoJCXhtbF9w YXJzZSgkeG1scGFyc2VyLCAkdGhpcy0+ZGF0YSk7DQoJCXhtbF9wYXJzZXJfZnJlZSgkeG1s cGFyc2VyKTsNCgl9DQoNCglwcml2YXRlIGZ1bmN0aW9uIHNtZF94bWxfc3RhcnRfdGFnKCRw YXJzZXIsICRuYW1lLCAkYXR0cmlicykgew0KCQkkcGd2YWwgPSAkdGhpcy0+cm93aW5mb1sn cGdvZmZzZXQnXSAtIDE7DQoJCSRsaW0gPSAkdGhpcy0+cm93aW5mb1snbGltaXQnXSA+IDA7 DQoJCSR0aGlzLT5zaG93X3JlY29yZCA9ICRsaW0gPyAoKCR0aGlzLT5yb3dpbmZvWydwYWdl X3Jvd2NudCddID4gJHBndmFsKSAmJiAoJHRoaXMtPnJvd2luZm9bJ3BhZ2Vfcm93Y250J10g PD0gJHBndmFsICsgJHRoaXMtPnJvd2luZm9bJ3BhZ2Vyb3dzJ10pKSA6ICR0aGlzLT5yb3dp bmZvWydwYWdlX3Jvd2NudCddID4gJHBndmFsOw0KDQoJCWlmICgkbmFtZSA9PSAkdGhpcy0+ cmVjICYmICR0aGlzLT5zaG93X3JlY29yZCkgew0KCQkJJHRoaXMtPmludGFnID0gdHJ1ZTsN CgkJfQ0KCQlpZiAoJHRoaXMtPmludGFnKSB7DQoJCQlpZiAoaW5fYXJyYXkoJG5hbWUsICR0 aGlzLT5za2lwKSkgew0KCQkJCSR0aGlzLT54bWx0YWcgPSAnJzsNCgkJCQkkdGhpcy0+eG1s YXR0cyA9IGFycmF5KCk7DQoJCQkJJHRoaXMtPnNraXB0YWcgPSAkbmFtZTsNCgkJCX0gZWxz ZSB7DQoJCQkJJHRoaXMtPnhtbHRhZyA9ICRuYW1lOw0KCQkJCSR0aGlzLT54bWxhdHRzID0g JGF0dHJpYnM7DQoJCQkJaWYgKCR0aGlzLT5jb25jYXQgJiYgaXNzZXQoJHRoaXMtPnhtbGRh dGFbJ3snLiR0aGlzLT54bWx0YWcuJ30nXSkpIHsNCgkJCQkJJHRoaXMtPmV4aXN0cyA9IHRy dWU7DQogICAgICAgIAkgfSBlbHNlIHsNCgkJCQkJJHRoaXMtPmV4aXN0cyA9IGZhbHNlOw0K CQkJCX0NCgkJCX0NCgkJfQ0KCQkkdGhpcy0+aW5kYXRhID0gZmFsc2U7DQoJfQ0KDQoJcHJp dmF0ZSBmdW5jdGlvbiBzbWRfeG1sX2VuZF90YWcoJHBhcnNlciwgJG5hbWUpIHsNCgkJaWYg KCRuYW1lID09ICR0aGlzLT5yZWMgJiYgJG5hbWUgIT0gJHRoaXMtPnNraXB0YWcpIHsNCgkJ CSR0aGlzLT5pbnRhZyA9IGZhbHNlOw0KCQkJJGxpbSA9ICgkdGhpcy0+cm93aW5mb1snbGlt aXQnXSA+IDApID8gdHJ1ZSA6IGZhbHNlOw0KDQoJCQkvLyBBcHBlbmQgcm93IGNvdW50ZXIg aW5mb3JtYXRpb24NCgkJCSR0aGlzLT54bWxkYXRhWyd7c21kX3htbF90b3RhbHJlY3N9J10g PSAkbGltID8gJHRoaXMtPnJvd2luZm9bJ3RvdGFsJ10gOiAkdGhpcy0+cm93aW5mb1snbnVt cmVjcyddIC0gJHRoaXMtPnJvd2luZm9bJ3Bnb2Zmc2V0J107DQoJCQkkdGhpcy0+eG1sZGF0 YVsne3NtZF94bWxfcGFnZXJlY3N9J10gPSAkbGltID8gJHRoaXMtPnJvd2luZm9bJ3BhZ2Vy b3dzJ10gOiAkdGhpcy0+eG1sZGF0YVsne3NtZF94bWxfdG90YWxyZWNzfSddOw0KCQkJJHRo aXMtPnhtbGRhdGFbJ3tzbWRfeG1sX3BhZ2VzfSddID0gJGxpbSA/ICR0aGlzLT5yb3dpbmZv WydudW1QYWdlcyddIDogMTsNCgkJCSR0aGlzLT54bWxkYXRhWyd7c21kX3htbF90aGlzcGFn ZX0nXSA9ICRsaW0gPyAkdGhpcy0+cm93aW5mb1sncGcnXSA6IDE7DQoJCQkkdGhpcy0+eG1s ZGF0YVsne3NtZF94bWxfdGhpc2luZGV4fSddID0gJHRoaXMtPnJvd2luZm9bJ3BhZ2Vfcm93 Y250J10gLSAkdGhpcy0+cm93aW5mb1snb2Zmc2V0J107DQoJCQkkdGhpcy0+eG1sZGF0YVsn e3NtZF94bWxfdGhpc3JlY30nXSA9ICR0aGlzLT5yb3dpbmZvWydwYWdlX3Jvd2NudCddIC0g JHRoaXMtPnJvd2luZm9bJ29mZnNldCddICsgMTsNCgkJCSR0aGlzLT54bWxkYXRhWyd7c21k X3htbF9ydW5pbmRleH0nXSA9ICR0aGlzLT5yb3dpbmZvWydydW5uaW5nX3Jvd2NudCddOw0K CQkJJHRoaXMtPnhtbGRhdGFbJ3tzbWRfeG1sX3J1bnJlY30nXSA9ICR0aGlzLT5yb3dpbmZv WydydW5uaW5nX3Jvd2NudCddICsgMTsNCg0KCQkJaWYgKCR0aGlzLT5kZWZhdWx0cykgew0K CQkJCWZvcmVhY2ggKCR0aGlzLT5maWVsZHMgYXMgJGZpZWxkKSB7DQoJCQkJCWlmICghaXNz ZXQoJHRoaXMtPnhtbGRhdGFbJ3snLiRmaWVsZC4nfSddKSkgew0KCQkJCQkJaWYgKGFycmF5 X2tleV9leGlzdHMoJGZpZWxkLCAkdGhpcy0+ZGVmYXVsdHMpKSB7DQoJCQkJCQkJJHRoaXMt PnhtbGRhdGFbJ3snLiRmaWVsZC4nfSddID0gJHRoaXMtPmRlZmF1bHRzWyRmaWVsZF07DQoJ CQkJCQl9IGVsc2UgaWYgKCR0aGlzLT5zZXRfZW1wdHkpIHsNCgkJCQkJCQkkdGhpcy0+eG1s ZGF0YVsneycuJGZpZWxkLid9J10gPSAnJzsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJ CX0NCg0KCQkJaWYgKCR0aGlzLT5kZWJ1ZyA+IDApIHsNCgkJCQllY2hvICIrKyBSRVBMQUNF TUVOVFMgKysiOw0KCQkJCWRtcCgkdGhpcy0+eG1sZGF0YSk7DQoJCQl9DQoNCgkJCWlmICgk dGhpcy0+c2hvd19yZWNvcmQpIHsNCgkJCQkkdGhpcy0+b3V0W10gPSBwYXJzZShzdHJ0cigk dGhpcy0+dGhpbmcsICR0aGlzLT54bWxkYXRhKSk7DQoJCQl9DQoNCgkJCS8vIFByZXBhcmUg Zm9yIG5leHQgaXRlcmF0aW9uDQoJCQkkdGhpcy0+cm93aW5mb1sncnVubmluZ19yb3djbnQn XSA9ICR0aGlzLT5yb3dpbmZvWydydW5uaW5nX3Jvd2NudCddKzE7DQoJCQkkdGhpcy0+cm93 aW5mb1sncGFnZV9yb3djbnQnXSA9ICR0aGlzLT5yb3dpbmZvWydwYWdlX3Jvd2NudCddKzE7 DQoJCQkkdGhpcy0+eG1sZGF0YSA9IGFycmF5KCk7DQoJCQkkdGhpcy0+aW5kYXRhID0gZmFs c2U7DQoJCX0NCgkJaWYgKCRuYW1lID09ICR0aGlzLT5za2lwdGFnKSB7DQoJCQkkdGhpcy0+ c2tpcHRhZyA9ICcnOw0KCQl9DQoJfQ0KDQoJcHJpdmF0ZSBmdW5jdGlvbiBzbWRfeG1sX3Rh Z19jb250ZW50cygkcGFyc2VyLCAkZGF0YSkgew0KCQlpZiAoJHRoaXMtPmludGFnICYmICEk dGhpcy0+c2tpcHRhZykgew0KCQkJaWYgKCR0aGlzLT5kZWJ1ZyA+IDEpIHsNCgkJCQlkbXAo JHRoaXMtPnhtbHRhZyAuICIgOiAiLiAkZGF0YSk7DQoJCQl9DQoNCgkJCWlmIChpbl9hcnJh eSgkdGhpcy0+eG1sdGFnLCAkdGhpcy0+ZmllbGRzKSkgew0KCQkJCWlmIChpbl9hcnJheSgk dGhpcy0+eG1sdGFnLCAkdGhpcy0+bGlua2lmeSkpIHsNCgkJCQkJJGRhdGEgPSBwcmVnX3Jl cGxhY2UoJ0AoaHR0cHM/Oi8vKFstXHdcLl0rKSsoOlxkKyk/KC8oW1x3L19cLl0qKFw/XFMr KT8pPyk/KUAnLCAnPGEgaHJlZj0iJDEiPiQxPC9hPicsICRkYXRhKTsNCgkJCQl9DQoJCQkJ aWYgKCR0aGlzLT5pbmRhdGEpIHsNCgkJCQkJaWYgKCR0aGlzLT5leGlzdHMpIHsNCgkJCQkJ CSR0aGlzLT54bWxkYXRhWyd7Jy4kdGhpcy0+eG1sdGFnLid9J10gLj0gJHRoaXMtPmNkZWxp bS4kZGF0YTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCSR0aGlzLT54bWxkYXRhWyd7Jy4kdGhp cy0+eG1sdGFnLid9J10gLj0gJGRhdGE7DQoJCQkJCX0NCgkJCQl9IGVsc2Ugew0KCQkJCQlp ZiAoJHRoaXMtPmV4aXN0cykgew0KCQkJCQkJJHRoaXMtPnhtbGRhdGFbJ3snLiR0aGlzLT54 bWx0YWcuJ30nXSAuPSAkdGhpcy0+Y2RlbGltLiRkYXRhOw0KCQkJCQl9IGVsc2Ugew0KCQkJ CQkJJHRoaXMtPnhtbGRhdGFbJ3snLiR0aGlzLT54bWx0YWcuJ30nXSA9ICRkYXRhOw0KCQkJ CQl9DQoJCQkJfQ0KCQkJCWlmICgkdGhpcy0+eG1sYXR0cykgew0KCQkJCQlmb3JlYWNoICgk dGhpcy0+eG1sYXR0cyBhcyAkeGtleSA9PiAkeHZhbCkgew0KCQkJCQkJJHRoaXMtPnhtbGRh dGFbJ3snLiR0aGlzLT54bWx0YWcuJHRoaXMtPnBkZWxpbS4keGtleS4nfSddID0gJHh2YWw7 DQoJCQkJCX0NCgkJCQl9DQoJCQkJJHRoaXMtPmluZGF0YSA9IHRydWU7DQoJCQl9DQoJCX0N Cgl9DQp9DQoNCi8vIENvbnZlbmllbmNlIGZ1bmN0aW9ucyB0byBjaGVjayBpZiB0aGVyZSdz IGEgcHJldi9uZXh0IHBhZ2UgZGVmaW5lZC4gQ291bGQgYWxzbyB1c2Ugc21kX2lmDQpmdW5j dGlvbiBzbWRfeG1sX2lmX3ByZXYoJGF0dHMsICR0aGluZykgew0KCWdsb2JhbCAkc21kX3ht bF9wZ2luZm87DQoNCgkkcmVzID0gJHNtZF94bWxfcGdpbmZvICYmICRzbWRfeG1sX3BnaW5m b1sne3NtZF94bWxfcHJldnBhZ2V9J10gIT0gJyc7DQoJcmV0dXJuIHBhcnNlKEV2YWxFbHNl KHN0cnRyKCR0aGluZywgJHNtZF94bWxfcGdpbmZvKSwgJHJlcykpOw0KfQ0KZnVuY3Rpb24g c21kX3htbF9pZl9uZXh0KCRhdHRzLCAkdGhpbmcpIHsNCglnbG9iYWwgJHNtZF94bWxfcGdp bmZvOw0KDQoJJHJlcyA9ICRzbWRfeG1sX3BnaW5mbyAmJiAkc21kX3htbF9wZ2luZm9bJ3tz bWRfeG1sX25leHRwYWdlfSddICE9ICcnOw0KCXJldHVybiBwYXJzZShFdmFsRWxzZShzdHJ0 cigkdGhpbmcsICRzbWRfeG1sX3BnaW5mbyksICRyZXMpKTsNCn0iO3M6NDoidHlwZSI7czox OiIwIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6NToiZmxhZ3MiO3M6MToiMCI7czo0OiJoZWxw IjtzOjIzNDMyOiI8ZGl2IGlkPSJzbWRfaGVscCI+CgoJPGgxPnNtZF94bWw8L2gxPgoKCTxw PllhbmsgYml0cyBvdXQgb2YgYW55IGh1bmsgb2YgPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwv c3Bhbj4gYW5kIHJlZm9ybWF0IGl0IHRvIHlvdXIgb3duIG5lZWRzLiBHcmVhdCBmb3IgcHVs bGluZyBmZWVkIGluZm8gaW50byB5b3VyIFRleHRwYXR0ZXJuIHNpdGUsIGZvciBleGFtcGxl IGZyb20gZGVsaWNpb3VzLmNvbS48L3A+CgoJPGgyPkZlYXR1cmVzPC9oMj4KCgk8dWw+CgkJ PGxpPlNwZWNpZnkgeW91ciA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBkYXRhIGZy b20gYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+ICYjODIxMjsgaW50ZXJuYWwg b3IgZXh0ZXJuYWwgdG8gPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj48L2xpPgoJCTxs aT5TZWxlY3RpdmVseSBleHRyYWN0IGFueSBpdGVtcyBpbiB5b3VyIHJlY29yZCBzZXQ8L2xp PgoJCTxsaT5Vc2UgYSBGb3JtIG9yIHRoZSBwbHVnaW4gY29udGFpbmVyIHRvIG91dHB1dCBk YXRhIHlvdSBoYXZlIGV4dHJhY3RlZDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJjYXBzIj5Y TUw8L3NwYW4+IHRhZyBhdHRyaWJ1dGVzIGFyZSBhdmFpbGFibGUgYXMgd2VsbDwvbGk+CgkJ PGxpPlN1cHBvcnRzIHBhZ2luYXRpb24gb2YgcmVzdWx0cyB3aXRoIGxpbWl0L29mZnNldDwv bGk+Cgk8L3VsPgoKCTxoMiBpZD0iYXV0aG9yIj5BdXRob3I8L2gyPgoKCTxwPjxhIGhyZWY9 Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9jb250YWN0Ij5TdGVmIERhd3NvbjwvYT4uIEZvciBv dGhlciBzb2Z0d2FyZSBieSBtZSwgb3IgdG8gbWFrZSBhIGRvbmF0aW9uLCBzZWUgdGhlIDxh IGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4uPC9w PgoKCTxoMiBpZD0iaW5zdGFsbCI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2gy PgoKCTxwIGNsYXNzPSJyZXF1aXJlZCI+UmVxdWlyZXMgPHNwYW4gY2xhc3M9ImNhcHMiPlBI UDwvc3Bhbj4gNSs8L3A+CgoJPHA+RG93bmxvYWQgdGhlIHBsdWdpbiBmcm9tIGVpdGhlciA8 YSBocmVmPSJodHRwOi8vdGV4dHBhdHRlcm4ub3JnL3BsdWdpbnMvMTEzOC9zbWRfeG1sIj50 ZXh0cGF0dGVybi5vcmc8L2E+LCBvciB0aGUgc29mdHdhcmUgcGFnZSBhYm92ZSwgcGFzdGUg dGhlIGNvZGUgaW50byB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gQWRtaW4g LSZndDsgUGx1Z2lucyBwYW5lLCBpbnN0YWxsIGFuZCBlbmFibGUgdGhlIHBsdWdpbi4gVmlz aXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGlj LnBocD9pZD0zMjcxOCI+Zm9ydW0gdGhyZWFkPC9hPiBmb3IgbW9yZSBpbmZvIG9yIHRvIHJl cG9ydCBvbiB0aGUgc3VjY2VzcyBvciBvdGhlcndpc2Ugb2YgdGhlIHBsdWdpbi48L3A+CgoJ PHA+VG8gcmVtb3ZlIHRoZSBwbHVnaW4sIHNpbXBseSBkZWxldGUgaXQgZnJvbSB0aGUgQWRt aW4tJmd0O1BsdWdpbnMgdGFiLjwvcD4KCgk8aDI+VXNhZ2U6IHNtZF94bWw8L2gyPgoKCTxw PlBsYWNlIGEgPGNvZGU+Jmx0O3R4cDpzbWRfeG1sJmd0OzwvY29kZT4gdGFnIHdoZXJlIHlv dSB3aXNoIHRvIHByb2Nlc3MgPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gZGF0YSAm IzgyMTI7IHRoaXMgY291bGQgYmUgZnJvbSBhIGZlZWQuIFNpbmNlIHRoaXMgcGx1Z2luIGlz IGJlc3QgZXhwbGFpbmVkIGJ5IGV4YW1wbGUsIGFzc3VtZSB0aGUgZm9sbG93aW5nIDxzcGFu IGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRvY3VtZW50IGlzIHByZXNlbnRlZCB0byB0aGUg cGx1Z2luOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZs dDtlbXBsb3llZXMmZ3Q7CiAgICZsdDtlbXBsb3llZSZndDsKICAgICAgJmx0O25hbWUgaWQ9 JnF1b3Q7d2lsZV9lX2NveW90ZSZxdW90OyZndDtXaWxlIEUuIENveW90ZSZsdDsvbmFtZSZn dDsKICAgICAgJmx0O2pvYl90aXRsZSZndDtTY2hlbWVyJmx0Oy9qb2JfdGl0bGUmZ3Q7CiAg ICAgICZsdDtkZXB0Jmd0O0FDTUUgY29ycCZsdDsvZGVwdCZndDsKICAgICAgJmx0O3F1YWxp dHkmZ3Q7Q3VubmluZyZsdDsvcXVhbGl0eSZndDsKICAgICAgJmx0O3F1YWxpdHkmZ3Q7RGV2 aW91c25lc3MmbHQ7L3F1YWxpdHkmZ3Q7CiAgICAgICZsdDtxdWFsaXR5Jmd0O1BlcnNpc3Rl bmNlJmx0Oy9xdWFsaXR5Jmd0OwogICAmbHQ7L2VtcGxveWVlJmd0OwogICAmbHQ7ZW1wbG95 ZWUmZ3Q7CiAgICAgICZsdDtuYW1lIGlkPSZxdW90O3JvYWRfcnVubmVyJnF1b3Q7Jmd0O1Jv YWQgUnVubmVyJmx0Oy9uYW1lJmd0OwogICAgICAmbHQ7am9iX3RpdGxlJmd0O1NlZWQgZXhw ZXJ0Jmx0Oy9qb2JfdGl0bGUmZ3Q7CiAgICAgICZsdDtkZXB0Jmd0O0V2YXNpb24mbHQ7L2Rl cHQmZ3Q7CiAgICAgICZsdDtxdWFsaXR5Jmd0O1NwZWVkJmx0Oy9xdWFsaXR5Jmd0OwogICAg ICAmbHQ7cXVhbGl0eSZndDtNZWVwIG1lZXAmbHQ7L3F1YWxpdHkmZ3Q7CiAgICZsdDsvZW1w bG95ZWUmZ3Q7CiZsdDsvZW1wbG95ZWVzJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzPkF0dHJp YnV0ZXM6IDxjb2RlPnNtZF94bWw8L2NvZGU+PC9oMz4KCgk8cD5Vc2UgdGhlIGZvbGxvd2lu ZyBhdHRyaWJ1dGVzIHRvIGNvbmZpZ3VyZSB0aGUgc21kX3htbCBwbHVnaW4gKHNoYWRlZCBh dHRyaWJ1dGVzIGFyZSBtYW5kYXRvcnkpIDo8L3A+CgoJPGg0PkRhdGEgaW1wb3J0PC9oND4K Cgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIG1hbmQiPmRhdGE8L3NwYW4+IDogdGhl IDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRhdGEgc291cmNlLiBNb3N0IG9mIHRo ZSB0aW1lIHRoaXMgd2lsbCBiZSBhIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+LCB0 aG91Z2ggeW91IGNvdWxkIGhhcmQtY29kZSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwv c3Bhbj4gZGF0YSBvdCB1c2UgYW5vdGhlciA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFu PiB0YWcgaGVyZSAoZS5nLiA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPik8 L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSBtYW5kIj5yZWNvcmQ8L3NwYW4+IDogdGhl IG5hbWUgb2YgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IHRhZyB0aGF0IHN1 cnJvdW5kcyBlYWNoIHJlY29yZCBvZiBkYXRhIGluIHlvdXIgZmVlZC4gVGh1cyB5b3Ugd291 bGQgbmVlZCA8Y29kZT5yZWNvcmQ9JnF1b3Q7ZW1wbG95ZWUmcXVvdDs8L2NvZGU+IGluIHRo ZSBhYm92ZSBkb2N1bWVudDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIG1hbmQiPmZp ZWxkczwvc3Bhbj4gOiBsaXN0IG9mIDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGZp ZWxkcyB5b3Ugd2FudCB0byBleHRyYWN0IGZyb20gZWFjaCByZWNvcmQuIEZvciBleGFtcGxl LCA8Y29kZT5maWVsZHM9JnF1b3Q7bmFtZSwgZGVwdCZxdW90OzwvY29kZT4uIEVhY2ggdGFn IHlvdSBzcGVjaWZ5IGhlcmUgd2lsbCAgY3JlYXRlIGEgc2ltaWxhcmx5LW5hbWVkIDxhIGhy ZWY9IiNyZXBzIj5yZXBsYWNlbWVudCB0YWc8L2E+IHRoYXQgeW91IG1heSB1c2UgaW4geW91 ciBmb3JtL2NvbnRhaW5lciB0byBkaXNwbGF5IHRoZSByZWxldmFudCBwaWVjZSBvZiBkYXRh LiBJbiB0aGlzIGNhc2UsIDxjb2RlPntuYW1lfTwvY29kZT4gYW5kIDxjb2RlPntkZXB0fTwv Y29kZT4gd291bGQgYmUgYXZhaWxhYmxlIGluIHlvdXIgb3V0cHV0PC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0bm0iPnNraXA8L3NwYW4+IDogbGlzdCBvZiA8c3BhbiBjbGFzcz0iY2Fw cyI+WE1MPC9zcGFuPiBmaWVsZHMgeW91IHdhbnQgdG8gc2tpcCBvdmVyIGluIGVhY2ggcmVj b3JkLiBVc2VmdWwgaWYgYSBmaWVsZCB5b3Ugd2lzaCB0byBleHRyYWN0IGlzIHVzZWQgaW4g dHdvIHBsYWNlcyBpbiB0aGUgc2FtZSByZWNvcmQuIFNlZSA8YSBocmVmPSIjZWcyIj5leGFt cGxlIDI8L2E+IGZvciBhIHByYWN0aWNhbCBhcHBsaWNhdGlvbjwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5kZWZhdWx0czwvc3Bhbj4gOiBsaXN0IG9mIGRlZmF1bHQgdmFsdWVz IHlvdSB3aXNoIHRvIHNldCBpZiBhbnkgPGNvZGU+ZmllbGRzPC9jb2RlPiBhcmUgbm90IHNl dCBpbiB5b3VyIGRvY3VtZW50LiBTcGVjaWZ5IGRlZmF1bHRzIGluIHBhaXJzIG9mIGVudHJp ZXMgbGlrZSB0aGlzOiA8Y29kZT5kZWZhdWx0cz0mcXVvdDtmaWVsZDpkZWZhdWx0LCBmaWVs ZDpkZWZhdWx0LCAuLi4mcXVvdDs8L2NvZGU+LiBUaGUgY29sb24gY2FuIGJlIGFsdGVyZWQg YnkgPGNvZGU+cGFyYW1fZGVsaW08L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPnNldF9lbXB0eTwvc3Bhbj4gOiBhbnkgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgaW4g eW91ciBkb2N1bWVudCB3aWxsIG5vcm1hbGx5IG1lYW4gdGhhdCB5b3UmIzgyMTc7bGwgc2Vl IHRoZSByYXcgPGNvZGU+e3JlcGxhY2VtZW50IHRhZ308L2NvZGU+IGluIHlvdXIgb3V0cHV0 LiBVc2UgPGNvZGU+c2V0X2VtcHR5PSZxdW90OzEmcXVvdDs8L2NvZGU+IHRvIGVuc3VyZSB0 aGF0IGFsbCBlbXB0eSBub2RlcyBhcmUgc2V0IHRvIGFuIGVtcHR5IHZhbHVlLiBBbnkgPGNv ZGU+ZGVmYXVsdHM8L2NvZGU+IHlvdSBzcGVjaWZ5IHdpbGwgdGFrZSBwcmVjZWRlbmNlIG92 ZXIgZW1wdGllczwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jYWNoZV90aW1lPC9z cGFuPiA6IGlmIHNldCwgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRvY3Vt ZW50IGlzIGNhY2hlZCBpbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gcHJl ZnMuIFN1YnNlcXVlbnQgY2FsbHMgdG8gc21kX3htbCAoZS5nLiByZWZyZXNoaW5nIHRoZSBw YWdlKSB3aWxsIHJlYWQgdGhlIGNhY2hlZCBpbmZvcm1hdGlvbiBpbnN0ZWFkIG9mIGhpdHRp bmcgdGhlIDxjb2RlPmRhdGE8L2NvZGU+IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+ LCB0aHVzIGN1dHRpbmcgZG93biBvbiBuZXR3b3JrIHRyYWZmaWMuIEFmdGVyIDxjb2RlPmNh Y2hlX3RpbWU8L2NvZGU+ICYjODIxMjsgc3BlY2lmaWVkIGluIHNlY29uZHMgJiM4MjEyOyBo YXMgZWxhcHNlZCwgdGhlIG5leHQgcGFnZSByZWZyZXNoIHdpbGwgY2F1c2UgdGhlIGRvY3Vt ZW50IHRvIGJlIGZldGNoZWQgZnJvbSB0aGUgPGNvZGU+ZGF0YTwvY29kZT4gPHNwYW4gY2xh c3M9ImNhcHMiPlVSTDwvc3Bhbj4gYWdhaW4uIFlvdSBtYXksIGhvd2V2ZXIsIGZvcmNlIGEg cmVmcmVzaCBmcm9tIHRoZSBkYXRhIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGF0 IGFueSB0aW1lIGJ5IGFkZGluZyA8Y29kZT4mYW1wO2ZvcmNlX3JlYWQ9MTwvY29kZT4gdG8g dGhlIGJyb3dzZXIgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gKHlvdSBjYW4gdXNl IHNtZF9wcmVmYWxpemVyIGFuZCBzZWFyY2ggZm9yICYjODIxNjtzbWRfeG1sJiM4MjE3OyB0 byBmaW5kIHRoZSBjYWNoZWQgZG9jdW1lbnRzICYjODIxMjsgZWFjaCBpcyByZWZlcmVuY2Vk IGJ5IGl0cyB1bmlxdWUgSUQpPC9saT4KCTwvdWw+CgoJPGg0Pk1hbmlwdWxhdGlvbjwvaDQ+ CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dXBwZXJjYXNlPC9zcGFuPiA6IHNl dCB0byAxIHRvIGZvcmNlIGFsbCA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiB0YWcg bmFtZXMgdG8gYmUgaW4gdXBwZXIgY2FzZSwgdGh1cyB5b3Ugd291bGQgaGF2ZSB0byBzcGVj aWZ5IDxjb2RlPmZpZWxkcz0mcXVvdDtOQU1FLCBERVBUJnF1b3Q7PC9jb2RlPiBpbiBvcmRl ciB0byBzdWNjZXNzZnVsbHkgZXh0cmFjdCB0aG9zZSBmaWVsZHM8L2xpPgoJCTxsaT48c3Bh biBjbGFzcz0iYXRubSI+dGFyZ2V0X2VuYzwvc3Bhbj4gOiBjaGFyYWN0ZXIgZW5jb2Rpbmcg dG8gYXBwbHkgdG8gdGhlIHBhcnNlZCA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBk YXRhLiBDaG9vc2UgZnJvbSA8Y29kZT5JU08tODg1OS0xPC9jb2RlPiwgPGNvZGU+VVMtQVND SUk8L2NvZGU+LCBvciA8Y29kZT5VVEYtODwvY29kZT4uIERlZmF1bHQ6IDxjb2RlPlVURi04 PC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jb25jYXQ8L3NwYW4+IDog YW55IGR1cGxpY2F0ZSB0YWdzIGluIHRoZSBzdHJlYW0gYXJlIHVzdWFsbHkgY29uY2F0ZW5h dGVkIHRvZ2V0aGVyLiBJZiB5b3Ugd2lzaCB0byB0dXJuIHRoaXMgZmVhdHVyZSBvZmYgc28g dGhhdCBvbmx5IHRoZSBsYXN0IHRhZyYjODIxNztzIGNvbnRlbnRzIHJlbWFpbnMsIHNldCA8 Y29kZT5jb25jYXQ9JnF1b3Q7MCZxdW90OzwvY29kZT4uIERlZmF1bHQ6IDE8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+Y29udmVydDwvc3Bhbj4gOiBpZiB5b3VyIGRhdGEgc3Ry ZWFtIGNvbnRhaW5zIGRhdGEgeW91IGRvbiYjODIxNzt0IHdhbnQgb3IgZGF0YSB0aGF0IHlv dSB3aXNoIHRvIHRyYW5zbGF0ZSAoZm9yIGV4YW1wbGUsIGNoYXJhY3RlciBlbnRpdGllcykg eW91IGNhbiBsaXN0IHRoZW0gaGVyZS4gSXRlbXMgYXJlIHNwZWNpZmllZCBpbiBwYWlycyBz ZXBhcmF0ZWQgYnkgPGNvZGU+cGFyYW1fZGVsaW08L2NvZGU+OyB0aGUgZmlyc3QgaXMgdGhl IGl0ZW0gdG8gc2VhcmNoIGZvciBhbmQgdGhlIHNlY29uZCBpcyBpdHMgcmVwbGFjZW1lbnQu IEZvciBleGFtcGxlOiA8Y29kZT5jb252ZXJ0PSZxdW90OyZhbXA7YW1wOyMwMzk6JiMzOTsm cXVvdDs8L2NvZGU+IHdvdWxkIHJlcGxhY2UgYWxsIG9jY3VycmVuY2VzIG9mIDxjb2RlPiZh bXA7YW1wOyMwMzk8L2NvZGU+IHdpdGggYW4gYXBvc3Ryb3BoZSBjaGFyYWN0ZXIuIE5vdGUg dGhhdCB0aGUgcmVwbGFjZW1lbnRzIGFyZSBwZXJmb3JtZWQgb24gdGhlIHJhdyBzdHJlYW0g PGVtPmJlZm9yZTwvZW0+IGl0IGlzIHBhcnNlZCBhbmQgPGVtPmFmdGVyPC9lbT4gaXQgaXMg Y2FjaGVkLiBBbHNvIHRha2UgY2FyZSB3aGVuIGRlY29kaW5nIGRvdWJsZSBxdW90ZXM7IHRo aXMgaXMgdGhlIGNvcnJlY3QgbWV0aG9kOiA8Y29kZT5jb252ZXJ0PSZxdW90OyZhbXA7YW1w O3F1b3Q7OiZxdW90OyZxdW90OyZxdW90OzwvY29kZT4gKG5vdGUgdGhlIGRvdWJsZSBxdW90 ZSBpcyBlc2NhcGVkIGJ5IHB1dHRpbmcgPGVtPnR3bzwvZW0+IGRvdWJsZSBxdW90ZSBjaGFy YWN0ZXJzIGluKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5saW5raWZ5PC9zcGFu PiA6IGxpc3Qgb2YgPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gdGFnIG5hbWVzIHRo YXQgbWF5IGNvbnRhaW4gaHlwZXJsaW5rcy4gQW55IGxpbmsgaW4gdGhlIGdpdmVuIGZpZWxk cyB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBodG1sIGFuY2hvciBoeXBlcmxpbms8L2xpPgoJ PC91bD4KCgk8aDQ+Rm9ybXMgYW5kIHBhZ2luZzwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSI+Zm9ybTwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwv c3Bhbj4gRm9ybSB3aXRoIHdoaWNoIHRvIHBhcnNlIGVhY2ggcmVjb3JkLiBZb3UgbWF5IHVz ZSB0aGUgcGx1Z2luIGFzIGEgY29udGFpbmVyIGluc3RlYWQgaWYgeW91IHByZWZlcjwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5wYWdlZm9ybTwvc3Bhbj4gOiBvcHRpb25hbCA8 c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBmb3JtIHVzZWQgdG8gc3BlY2lmeSB0aGUg bGF5b3V0IG9mIGFueSBwYWdpbmcgbmF2aWdhdGlvbiBhbmQgc3RhdGlzdGljcyBzdWNoIGFz IHBhZ2UgbnVtYmVyLCBxdWFudGl0eSBvZiByZWNvcmRzIHBlciBwYWdlLCB0b3RhbCBudW1i ZXIgb2YgcmVjb3JkcywgZXRjLiBTZWUgPGEgaHJlZj0iI3BncmVwcyI+cGFnaW5nIHJlcGxh Y2VtZW50IHRhZ3M8L2E+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnBhZ2Vwb3M8 L3NwYW4+IDogdGhlIHBvc2l0aW9uIG9mIHRoZSBwYWdpbmcgaW5mb3JtYXRpb24uIE9wdGlv bnMgYXJlIDxjb2RlPmJlbG93PC9jb2RlPiAodGhlIGRlZmF1bHQpLCA8Y29kZT5hYm92ZTwv Y29kZT4sIG9yIGJvdGggb2YgdGhlbSBzZXBhcmF0ZWQgYnkgPGNvZGU+ZGVsaW08L2NvZGU+ PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxpbWl0PC9zcGFuPiA6IHNob3cgdGhp cyBtYW55IHJlc3VsdHMgcGVyIHBhZ2UuIFNldHRpbmcgYSA8Y29kZT5saW1pdDwvY29kZT4g c21hbGxlciB0aGFuIHRoZSB0b3RhbCBudW1iZXIgcmVjb3JkcyBzd2l0Y2hlcyBwYWdpbmcg b24gYXV0b21hdGljYWxseSBzbyB5b3UgY2FuIHVzZSB0aGUgPGNvZGU+Jmx0O3R4cDpvbGRl ciAvJmd0OzwvY29kZT4gYW5kIDxjb2RlPiZsdDt0eHA6bmV3ZXIgLyZndDs8L2NvZGU+IHRh Z3MgaW5zaWRlIHlvdXIgPGNvZGU+cGFnZWZvcm08L2NvZGU+IHRvIHN0ZXAgdGhyb3VnaCBl YWNoIHBhZ2Ugb2YgcmVzdWx0cy4gWW91IG1heSBhbHNvIGNvbnN0cnVjdCB5b3VyIG93biBw YWdpbmcgKHNlZSA8YSBocmVmPSIjZWczIj5leGFtcGxlIDM8L2E+KTwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG5tIj5vZmZzZXQ8L3NwYW4+IDogc2tpcCB0aGlzIG1hbnkgcm93cyBi ZWZvcmUgb3V0cHV0dGluZyB0aGUgcmVzdWx0cy4gSWYgeW91IHNwZWNpZnkgYSBuZWdhdGl2 ZSA8Y29kZT5vZmZzZXQ8L2NvZGU+IHlvdSBzdGFydCB0aGF0IG1hbnkgcmVjb3JkcyBmcm9t IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PnBhZ2V2YXI8L3NwYW4+IDogaWYgeW91IGFyZSBwdXR0aW5nIHNtZF94bWwgb24gdGhlIHNh bWUgcGFnZSBhcyBhIHN0YW5kYXJkIGFydGljbGUgbGlzdCwgdGhlIGJ1aWx0LWluIG5ld2Vy IGFuZCBvbGRlciB0YWdzIHdpbGwgY2xhc2ggd2l0aCB0aG9zZSBvZiBzbWRfeG1sOyBjbGlj a2luZyBuZXh0L3ByZXYgd2lsbCBzdGVwIHRocm91Z2ggYm90aCB5b3VyIHJlc3VsdCBzZXQg YW5kIHlvdXIgYXJ0aWNsZSBsaXN0LiBTcGVjaWZ5IGEgZGlmZmVyZW50IHZhcmlhYmxlIG5h bWUgaGVyZSBzbyB0aGUgdHdvIGxpc3RzIGNhbiBiZSBuYXZpZ2F0ZWQgaW5kZXBlbmRlbnRs eSwgZS5nLiA8Y29kZT5wYWdldmFyPSZxdW90O3hwYWdlJnF1b3Q7PC9jb2RlPi4gTm90ZSB0 aGF0IGlmIHlvdSBjaGFuZ2UgdGhpcywgeW91IHdpbGwgaGF2ZSB0byBnZW5lcmF0ZSB5b3Vy IG93biBjdXN0b20gbmV3ZXIvb2xkZXIgbGlua3MgKHNlZSA8YSBocmVmPSIjZWc0Ij5leGFt cGxlIDQ8L2E+KSBhbmQgdGhlIDxhIGhyZWY9IiNzbWRfeGlmIj5jb25kaXRpb25hbCB0YWdz PC9hPi4gVGhlcmUgaXMgYWxzbyBhIHNwZWNpYWwgdmFsdWUgPGNvZGU+U01EX1hNTF9VTklR VUVfSUQ8L2NvZGU+IHdoaWNoIGFzc2lnbnMgdGhlIHRhZ3MmIzgyMTc7IHVuaXF1ZSBJRCBh cyB0aGUgcGFnaW5nIHZhcmlhYmxlLiBTZWUgPGEgaHJlZj0iI2VnNSI+ZXhhbXBsZSA1PC9h PiBmb3IgbW9yZS4gRGVmYXVsdDogPGNvZGU+cGc8L2NvZGU+PC9saT4KCTwvdWw+CgoJPGg0 PlRhZy9jbGFzcy9mb3JtYXR0aW5nIGF0dHJpYnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0bm0iPndyYXB0YWc8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnLCB3aXRo b3V0IGJyYWNrZXRzLCB0byBzdXJyb3VuZCBlYWNoIHJlY29yZCB5b3Ugb3V0cHV0PC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmJyZWFrPC9zcGFuPiA6IHRoZSAoWClIVE1MIHRh Zywgd2l0aG91dCBicmFja2V0cywgdG8gc3Vycm91bmQgZWFjaCBmaWVsZCB5b3Ugb3V0cHV0 PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNzPC9zcGFuPiA6IHRoZSA8c3Bh biBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBuYW1lIHRvIGFwcGx5IHRvIHRoZSA8 Y29kZT53cmFwdGFnPC9jb2RlPjwvbGk+Cgk8L3VsPgoKCTxoND5QbHVnaW4gY3VzdG9taXNh dGlvbjwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ZGVsaW08L3NwYW4+ IDogdGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2VlbiBpdGVtcyBpbiB0aGUgcGx1Z2luIGF0 dHJpYnV0ZXMuIERlZmF1bHQ6IGNvbW1hPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PnBhcmFtX2RlbGltPC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8gdXNlIGJldHdlZW4gaXRl bXMgaW4gPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gZGF0YSBhdHRyaWJ1dGVzLiBE ZWZhdWx0OiBjb2xvbjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jb25jYXRfZGVs aW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2VlbiBpZGVudGljYWxseS1u YW1lZCB0YWdzIGluIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBkYXRhIHN0 cmVhbS4gRGVmYXVsdDogc3BhY2U8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dHJh bnNwb3J0PC9zcGFuPiA6IChzaG91bGQgbm90IGJlIG5lZWRlZCkuIElmIHlvdSB3b3VsZCBs aWtlIHRvIGZvcmNlIHRoZSBwbHVnaW4gdG8gdXNlIGEgcGFydGljdWxhciA8c3BhbiBjbGFz cz0iY2FwcyI+SFRUUDwvc3Bhbj4gdHJhbnNwb3J0IG1lY2hhbmlzbSB0byBmZXRjaCB5b3Vy IDxjb2RlPmRhdGE8L2NvZGU+IHlvdSBjYW4gc3BlY2lmeSBpdCBoZXJlLiBDaG9vc2UgZnJv bSA8Y29kZT5mc29jazwvY29kZT4gb3IgPGNvZGU+Y3VybDwvY29kZT4uIERlZmF1bHQ6IDxj b2RlPmZzb2NrPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5oYXNoc2l6 ZTwvc3Bhbj4gOiAoc2hvdWxkIG5vdCBiZSBuZWVkZWQpLiBXaGVuIHNwZWNpZnlpbmcgYSA8 Y29kZT5jYWNoZV90aW1lPC9jb2RlPiB0aGUgcGx1Z2luIGFzc2lnbnMgYSAzMi1jaGFyYWN0 ZXIsIHVuaXF1ZSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgc21kX3htbCBiYXNlZCBvbiB5 b3VyIGltcG9ydCBhdHRyaWJ1dGVzLiA8Y29kZT5oYXNoc2l6ZTwvY29kZT4gZ292ZXJucyB0 aGUgbWVjaGFuaXNtIGZvciBtYWtpbmcgdGhpcyBsb25nIHJlZmVyZW5jZSBzaG9ydGVyLiBJ dCBjb21wcmlzZXMgdHdvIG51bWJlcnMgc2VwYXJhdGVkIGJ5IGEgY29sb247IHRoZSBmaXJz dCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSB1bmlxZSBJRCwgdGhlIHNlY29uZCBpcyBob3cgbWFu eSBjaGFyYWN0ZXJzIHRvIHNraXAgcGFzdCBlYWNoIHRpbWUgYSBjaGFyYWN0ZXIgaXMgY2hv c2VuLiBGb3IgZXhhbXBsZSwgaWYgdGhlIHVuaXF1ZV9yZWZlcmVuY2Ugd2FzIDxjb2RlPjBj ZjI4NTg3OWJmOWQ2YjgxMjUzOWViNzQ4ZmJjOGY2PC9jb2RlPiB0aGVuIDxjb2RlPmhhc2hz aXplPSZxdW90OzY6NSZxdW90OzwvY29kZT4gd291bGQgbWFrZSBhIDYtY2hhcmFjdGVyIHVu aXF1ZSBJRCB1c2luZyBldmVyeSA1dGggY2hhcmFjdGVyOyBpbiBvdGhlciB3b3JkcyA8Y29k ZT4wNWY4OTg8L2NvZGU+LiBJZiBhdCBhbnkgdGltZSwgeW91ICYjODIyMDtmYWxsIG9mZiYj ODIyMTsgdGhlIGVuZCBvZiB0aGUgbG9uZyBzdHJpbmcsIHRoZSBwbHVnaW4gd3JhcHMgYmFj ayB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzdHJpbmcgYW5kIGNvbnRpbnVlcyBjb3VudGlu Zy4gRGVmYXVsdDogPGNvZGU+Njo1PC9jb2RlPjwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0icmVw cyI+UmVwbGFjZW1lbnQgdGFnczwvaDM+CgoJPHA+RWFjaCA8c3BhbiBjbGFzcz0iY2FwcyI+ WE1MPC9zcGFuPiBmaWVsZCB5b3UgZXh0cmFjdCBmcm9tIHlvdXIgZGF0YSBzdHJlYW0gaGFz IGFuIGVxdWl2YWxlbnRseS1uYW1lZCByZXBsYWNlbWVudCB0YWcgYXZhaWxhYmxlIHNvIHlv dSBtYXkgdXNlIGl0IGFueXdoZXJlIHlvdSBsaWtlIGluIHlvdXIgRm9ybS9jb250YWluZXIu IFNvLCBpZiB5b3UgY2hvc2UgdG8gZXh0cmFjdCA8Y29kZT5maWVsZHM9JnF1b3Q7bmFtZSwg am9iX3RpdGxlLCBxdWFsaXR5JnF1b3Q7PC9jb2RlPiB5b3Ugd291bGQgaGF2ZSB0aGUgZm9s bG93aW5nIHJlcGxhY2VtZW50IHRhZ3MgYXZhaWxhYmxlIGR1cmluZyB0aGUgZmlyc3QgcmVj b3JkOjwvcD4KCgk8dWw+CgkJPGxpPjxjb2RlPntuYW1lfTwvY29kZT4gOiBXaWxlIEUuIENv eW90ZTwvbGk+CgkJPGxpPjxjb2RlPntuYW1lOmlkfTwvY29kZT4gOiB3aWxlX2VfY295b3Rl PC9saT4KCQk8bGk+PGNvZGU+e2pvYl90aXRsZX08L2NvZGU+IDogU2NoZW1lcjwvbGk+CgkJ PGxpPjxjb2RlPntxdWFsaXR5fTwvY29kZT4gOiBDdW5uaW5nIERldmlvdXNuZXNzIFBlcnNp c3RlbmNlPC9saT4KCTwvdWw+CgoJPHA+QW5kIGR1cmluZyB0aGUgc2Vjb25kIHJlY29yZCwg dGhlIHNhbWUgcmVwbGFjZW1lbnQgdGFnIG5hbWVzIHdvdWxkIHJlZmVyIHRvIHRoZSBmb2xs b3dpbmcgaXRlbXM6PC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+e25hbWV9PC9jb2RlPiA6IFJv YWQgUnVubmVyPC9saT4KCQk8bGk+PGNvZGU+e25hbWU6aWR9PC9jb2RlPiA6IHJvYWRfcnVu bmVyPC9saT4KCQk8bGk+PGNvZGU+e2pvYl90aXRsZX08L2NvZGU+IDogU2VlZCBleHBlcnQ8 L2xpPgoJCTxsaT48Y29kZT57cXVhbGl0eX08L2NvZGU+IDogU3BlZWQgTWVlcCBtZWVwPC9s aT4KCTwvdWw+CgoJPHA+Tm90ZSB0aGF0IHRoZSBhdHRyaWJ1dGUgY2FsbGVkIDxjb2RlPmlk PC9jb2RlPiB0aGF0IGlzIHBhcnQgb2YgdGhlIDxjb2RlPiZsdDtuYW1lJmd0OzwvY29kZT4g PHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gdGFnIGhhcyBiZWVuIGV4dHJhY3RlZCBh bmQgaXMgbWFkZSBhdmFpbGFibGUgYXV0b21hdGljYWxseS4gQnkgZGVmYXVsdCwgdGhlIG5h bWVzIG9mIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQgYXMgPGNvZGU+e3RhZzphdHRyaWJ1dGV9 PC9jb2RlPi4gVGhlIGNvbG9uIGNhbiBiZSBhbHRlcmVkIHVzaW5nIDxjb2RlPnBhcmFtX2Rl bGltPC9jb2RlPjsgdGhpcyBpcyBzb21ldGltZXMgbmVjZXNzYXJ5IGlmIHRoZSB0YWcgbmFt ZSBpdHNlbGYgY29udGFpbnMgYSBjb2xvbiAoZGVsaWNpb3VzLmNvbSBkb2VzIHRoaXMpLjwv cD4KCgk8cD5UaGUgPGNvZGU+e3F1YWxpdHl9PC9jb2RlPiB0YWcgYXBwZWFycyBtb3JlIHRo YW4gb25jZSBpbiB0aGUgZXhhbXBsZSBkb2N1bWVudCBhYm92ZS4gWW91IGNhbiBpbmZsdWVu Y2UgaXRzIG91dHB1dCB1c2luZyB0aGUgPGNvZGU+Y29uY2F0PC9jb2RlPiBhbmQgPGNvZGU+ Y29uY2F0X2RlbGltPC9jb2RlPiBhdHRyaWJ1dGVzLCBlLmcuIHVzaW5nIDxjb2RlPmNvbmNh dF9kZWxpbT0mcXVvdDt8JnF1b3Q7PC9jb2RlPiB3b3VsZCByZW5kZXIgdGhlIGZvbGxvd2lu ZyByZXBsYWNlbWVudCB2YXJpYWJsZSBvbiB0aGUgZmlyc3QgcmVjb3JkOjwvcD4KCgk8dWw+ CgkJPGxpPjxjb2RlPntxdWFsaXR5fTwvY29kZT4gOiBDdW5uaW5nfERldmlvdXNuZXNzfFBl cnNpc3RlbmNlPC9saT4KCTwvdWw+CgoJPHA+d2hpbGUgPGNvZGU+Y29uY2F0PSZxdW90OzAm cXVvdDs8L2NvZGU+IHdvdWxkIHJlbmRlciB0aGlzOjwvcD4KCgk8dWw+CgkJPGxpPjxjb2Rl PntxdWFsaXR5fTwvY29kZT4gOiBQZXJzaXN0ZW5jZTwvbGk+Cgk8L3VsPgoKCTxwPlRoZXJl IGFyZSBhbHNvIHNvbWUgc3BlY2lhbCBzdGF0aXN0aWNhbCB0YWdzIGF2YWlsYWJsZSBpbiBl YWNoIHJlY29yZDo8L3A+CgoJPHVsPgoJCTxsaT48Y29kZT57c21kX3htbF90b3RhbHJlY3N9 PC9jb2RlPiA6IHRoZSB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcyBmb3VuZCBpbiB5b3VyIDxz cGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRvY3VtZW50PC9saT4KCQk8bGk+PGNvZGU+ e3NtZF94bWxfcGFnZXJlY3N9PC9jb2RlPiA6IHRoZSBudW1iZXIgb2YgcmVjb3JkcyBvbiB0 aGlzIHBhZ2UgKGlmIG5vdCB1c2luZyBwYWdpbmcsIHRoaXMgaXMgdGhlIHNhbWUgYXMgYWJv dmUpPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfcGFnZXN9PC9jb2RlPiA6IHRoZSBudW1i ZXIgb2YgYXZhaWxhYmxlIHBhZ2VzPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfdGhpc3Bh Z2V9PC9jb2RlPiA6IHRoZSBwYWdlIG51bWJlciBvZiB0aGUgY3VycmVudGx5IHZpc2libGUg cGFnZTwvbGk+CgkJPGxpPjxjb2RlPntzbWRfeG1sX3RoaXNyZWN9PC9jb2RlPiA6IHRoZSBy ZWNvcmQgbnVtYmVyLCBzdGFydGluZyBhdCAxPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxf dGhpc2luZGV4fTwvY29kZT4gOiB0aGUgcmVjb3JkIG51bWJlciwgc3RhcnRpbmcgYXQgMDwv bGk+CgkJPGxpPjxjb2RlPntzbWRfeG1sX3J1bnJlY308L2NvZGU+IDogdGhlIHJlY29yZCBu dW1iZXIsIHN0YXJ0aW5nIGF0IDEgYW5kIGluY2x1ZGluZyBhbnkgb2Zmc2V0PC9saT4KCQk8 bGk+PGNvZGU+e3NtZF94bWxfcnVuaW5kZXh9PC9jb2RlPiA6IHRoZSByZWNvcmQgbnVtYmVy LCBzdGFydGluZyBhdCAwIGFuZCBpbmNsdWRpbmcgYW55IG9mZnNldDwvbGk+Cgk8L3VsPgoK CTxoMyBpZD0icGdyZXBzIj5QYWdpbmcgcmVwbGFjZW1lbnQgdGFnczwvaDM+CgoJPHA+SW4g eW91ciA8Y29kZT5wYWdlZm9ybTwvY29kZT4geW91IGNhbiBlbXBsb3kgYW55IG9mIHRoZSBm b2xsb3dpbmcgcmVwbGFjZW1lbnQgdGFncyB0byBidWlsZCB1cCBhIG5hdmlnYXRpb24gc3lz dGVtIGZvciBzdGVwcGluZyB0aHJvdWdoIHlvdXIgPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwv c3Bhbj4gZG9jdW1lbnQ6PC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+e3NtZF94bWxfdG90YWxy ZWNzfTwvY29kZT4gOiB0aGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgZm91bmQgaW4geW91 ciA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBkb2N1bWVudDwvbGk+CgkJPGxpPjxj b2RlPntzbWRfeG1sX3BhZ2VyZWNzfTwvY29kZT4gOiB0aGUgbnVtYmVyIG9mIHJlY29yZHMg b24gdGhpcyBwYWdlPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfcGFnZXN9PC9jb2RlPiA6 IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIHBhZ2VzPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94 bWxfcHJldnBhZ2V9PC9jb2RlPiA6IHRoZSBwYWdlIG51bWJlciBvZiB0aGUgcHJldmlvdXMg cGFnZSAmIzgyMTI7IGVtcHR5IGlmIG9uIGZpcnN0IHBhZ2U8L2xpPgoJCTxsaT48Y29kZT57 c21kX3htbF90aGlzcGFnZX08L2NvZGU+IDogdGhlIHBhZ2UgbnVtYmVyIG9mIHRoZSBjdXJy ZW50IHBhZ2U8L2xpPgoJCTxsaT48Y29kZT57c21kX3htbF9uZXh0cGFnZX08L2NvZGU+IDog dGhlIHBhZ2UgbnVtYmVyIG9mIHRoZSBuZXh0IHBhZ2UgJiM4MjEyOyBlbXB0eSBpZiBvbiBs YXN0IHBhZ2U8L2xpPgoJCTxsaT48Y29kZT57c21kX3htbF9yZWNfc3RhcnR9PC9jb2RlPiA6 IHRoZSByZWNvcmQgbnVtYmVyIG9mIHRoZSBmaXJzdCByZWNvcmQgb24gdGhpcyBwYWdlIChj b3VudGVkIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSByZWNvcmQgc2V0KTwvbGk+CgkJPGxpPjxj b2RlPntzbWRfeG1sX3JlY19lbmR9PC9jb2RlPiA6IHRoZSByZWNvcmQgbnVtYmVyIG9mIHRo ZSBsYXN0IHJlY29yZCBvbiB0aGlzIHBhZ2UgKGNvdW50ZWQgZnJvbSB0aGUgc3RhcnQgb2Yg dGhlIHJlY29yZCBzZXQpPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfcmVjc19wcmV2fTwv Y29kZT4gOiB0aGUgbnVtYmVyIG9mIHJlY29yZHMgb24gdGhlIHByZXZpb3VzIHBhZ2U8L2xp PgoJCTxsaT48Y29kZT57c21kX3htbF9yZWNzX25leHR9PC9jb2RlPiA6IHRoZSBudW1iZXIg b2YgcmVjb3JkcyBvbiB0aGUgbmV4dCBwYWdlPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxf dW5pcXVlX2lkfTwvY29kZT4gOiB0aGUgdW5pcXVlIHJlZmVyZW5jZSBudW1iZXIgYXNzaWdu ZWQgdG8gdGhpcyBzbWRfeG1sIHRhZyAoc2VlIDxhIGhyZWY9IiNlZzUiPmV4YW1wbGUgNTwv YT4gZm9yIHVzYWdlIG9mIHRoaXMpPC9saT4KCTwvdWw+CgoJPGgyIGlkPSJzbWRfeGlmIj5V c2FnZTogPGNvZGU+Jmx0O3R4cDpzbWRfeG1sX2lmX3ByZXYmZ3Q7IC8gJmx0O3R4cDpzbWRf eG1sX2lmX25leHQmZ3Q7PC9jb2RlPjwvaDI+CgoJPHA+VXNlIHRoZXNlIGNvbnRhaW5lciB0 YWdzIHRvIGRldGVybWluZSBpZiB0aGVyZSBpcyBhIG5leHQgb3IgcHJldmlvdXMgcGFnZSBh bmQgdGFrZSBhY3Rpb24gaWYgc28uIENhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIDxjb2RlPnBh Z2Vmb3JtPC9jb2RlPiwgdGh1cyBhbGwgPGEgaHJlZj0iI3BncmVwcyI+cGFnaW5nIHJlcGxh Y2VtZW50IHZhcmlhYmxlczwvYT4gYXJlIGF2YWlsYWJsZSBpbnNpZGUgdGhlc2UgdGFncy48 L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNt ZF94bWxfaWZfcHJldiZndDtQcmV2aW91cyBwYWdlJmx0Oy90eHA6c21kX3htbF9pZl9wcmV2 Jmd0OwombHQ7dHhwOnNtZF94bWxfaWZfbmV4dCZndDtOZXh0IHBhZ2UmbHQ7L3R4cDpzbWRf eG1sX2lmX25leHQmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGUgdGFncyBzdXBwcnQgPGNv ZGU+Jmx0O3R4cDplbHNlIC8mZ3Q7PC9jb2RlPlNlZSA8YSBocmVmPSIjZWc1Ij5leGFtcGxl IDU8L2E+IGZvciBtb3JlLjwvcD4KCgk8aDI+RXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0iZWcx Ij5FeGFtcGxlIDE6IGRlbGljaW91cyBsaW5rczwvaDM+CgoJPHA+U3dhcCA8Y29kZT5yb2Fk cnVubmVyPC9jb2RlPiBpbiB0aGlzIGNvZGUgd2l0aCB5b3VyIGRlbGljaW91cyB1c2VybmFt ZSB0byBnZXQgeW91ciBvd24gZmVlZDo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUg Y2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF94bWwgZGF0YT0mcXVvdDtodHRwOi8vZmVlZHMu ZGVsaWNpb3VzLmNvbS92Mi9yc3Mvcm9hZHJ1bm5lciZxdW90OwogICAgIHJlY29yZD0mcXVv dDtpdGVtJnF1b3Q7IGZpZWxkcz0mcXVvdDt0aXRsZSwgbGluaywgcHViRGF0ZSwgZGVzY3Jp cHRpb24mcXVvdDsKICAgICB3cmFwdGFnPSZxdW90O2RsJnF1b3Q7Jmd0OwogICAmbHQ7ZHQm Z3Q7Jmx0O2EgaHJlZj0mcXVvdDt7bGlua30mcXVvdDsmZ3Q7e3RpdGxlfSZsdDsvYSZndDsm bHQ7L2R0Jmd0OwogICAmbHQ7ZGQmZ3Q7UG9zdGVkOiB7cHViRGF0ZX0mbHQ7YnIgLyZndDt7 ZGVzY3JpcHRpb259Jmx0Oy9kZCZndDsKJmx0Oy90eHA6c21kX3htbCZndDsKPC9jb2RlPjwv cHJlPgoKCTxoMyBpZD0iZWcyIj5FeGFtcGxlIDI6IHR3aXR0ZXIgZmVlZDwvaDM+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF94bWwKICAg ICBkYXRhPSZxdW90O2h0dHA6Ly90d2l0dGVyLmNvbS9zdGF0dXNlcy91c2VyX3RpbWVsaW5l L3RleHRwYXR0ZXJuLnhtbCZxdW90OwogICAgIHJlY29yZD0mcXVvdDtzdGF0dXMmcXVvdDsg ZmllbGRzPSZxdW90O2lkLCB0ZXh0LCBjcmVhdGVkX2F0JnF1b3Q7IHNraXA9JnF1b3Q7dXNl ciZxdW90OwogICAgIHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgbGlua2lmeT0mcXVvdDt0ZXh0 JnF1b3Q7Jmd0OwogICAmbHQ7bGkmZ3Q7CiAgICAgICZsdDthIGhyZWY9JnF1b3Q7aHR0cDov L3R3aXR0ZXIuY29tL3RleHRwYXR0ZXJuL3N0YXR1c2VzL3tpZH0mcXVvdDsmZ3Q7CiAgICAg ICAgIHtjcmVhdGVkX2F0fQogICAgICAmbHQ7L2EmZ3Q7CiAgICAgICZsdDticiAvJmd0O3t0 ZXh0fQogICAmbHQ7L2xpJmd0OwombHQ7L3R4cDpzbWRfeG1sJmd0Owo8L2NvZGU+PC9wcmU+ CgoJPHA+Tm90aWNlIHRoYXQgd2UgPGNvZGU+c2tpcDwvY29kZT4gdGhlIHdob2xlIDxlbT51 c2VyPC9lbT4gYmxvY2sgaW4gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRh dGEgc3RyZWFtLiBUaGlzIGlzIGZvciB0d28gcmVhc29uczo8L3A+CgoJPG9sPgoJCTxsaT5p dCBpcyByZWR1bmRhbnQgaW5mb3JtYXRpb24gdGhhdCBhcHBlYXJzIGluIGV2ZXJ5IHJlY29y ZCAmIzgyMTI7IHdlIGFscmVhZHkga25vdyB0byB3aGljaCB1c2VyIHRoZSBmZWVkIGJlbG9u Z3MgYmVjYXVzZSB0aGV5ciYjODIxNztlIGFsbCBmcm9tIHRoZSBzYW1lIHVzZXI8L2xpPgoJ CTxsaT48ZW0+Y3JlYXRlZF9hdDwvZW0+IGlzIHVzZWQgaW5zaWRlIHRoZSB1c2VyIGJsb2Nr IGFzIHdlbGwgYXMgaW4gdGhlIG91dGVyIHN0YXR1cyBibG9jayBzbyB3ZSBnZXQgdHdvIGRh dGVzdGFtcHMsIHdoaWNoIGlzIG5vdCB3aGF0IHdlIHdhbnQgKGlmIHdlIHNpbXBseSB1c2Vk IDxjb2RlPmNvbmNhdD0mcXVvdDswJnF1b3Q7PC9jb2RlPiB0byBvbmx5IGdyYWIgb25lIG9m IHRoZSBjcmVhdGVkX2F0IGVudHJpZXMsIHRoZSBsYXN0IG9uZSB3b3VsZCBwcmV2YWlsICYj ODIxMjsgdGhlIG9uZSBmcm9tIHRoZSB1c2VyIGJsb2NrKTwvbGk+Cgk8L29sPgoKCTxoMyBp ZD0iZWczIj5FeGFtcGxlIDM6IGxpbWl0IGFuZCBwYWdpbmc8L2gzPgoKCTxwPlZpZXdpbmcg dGhlIEkgTG92ZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBmZWVkIDMgcmVjb3Jk cyBhdCBhIHRpbWUuIE5vdGUgdGhhdCBzaW5jZSB0aGUgc2l0ZSBpcyBub3QgdXBkYXRlZCBm cmVxdWVudGx5LCB0aGUgY2FjaGVfdGltZSBvZiA4NjQwMCBzZWNvbmRzICgxIGRheSkgaXMg YW1wbGUgdG8gYXZvaWQgaGFtbWVyaW5nIHRoZSBuZXR3b3JrOjwvcD4KCjxwcmUgY2xhc3M9 ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3htbAogICAgIGRhdGE9 JnF1b3Q7aHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL3dlbG92ZXR4cCZxdW90OwogICAg IHJlY29yZD0mcXVvdDtpdGVtJnF1b3Q7IGZpZWxkcz0mcXVvdDt0aXRsZSxkZXNjcmlwdGlv biwgbGluaywgcHViRGF0ZSZxdW90OwogICAgIHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgbGlt aXQ9JnF1b3Q7MyZxdW90OyBwYWdlZm9ybT0mcXVvdDtwYWdlciZxdW90OwogICAgIGNhY2hl X3RpbWU9JnF1b3Q7ODY0MDAmcXVvdDsmZ3Q7CiAgICZsdDtsaSZndDsKICAgICAgJmx0O2Eg aHJlZj0mcXVvdDt7bGlua30mcXVvdDsmZ3Q7CiAgICAgICAgIHt0aXRsZX0KICAgICAgJmx0 Oy9hJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3B1Ymxpc2hlZCZxdW90OyZndDt7cHViRGF0 ZX0mbHQ7L3NwYW4mZ3Q7CiAgICAgICZsdDticiAvJmd0O3tkZXNjcmlwdGlvbn0KICAgJmx0 Oy9saSZndDsKJmx0Oy90eHA6c21kX3htbCZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkFuZCBp biBmb3JtIDxjb2RlPnBhZ2VyPC9jb2RlPjo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj5QYWdlIHtzbWRfeG1sX3RoaXNwYWdlfSBvZiB7c21kX3htbF9w YWdlc30KJmx0O3R4cDpuZXdlciZndDtQcmV2aW91cyBwYWdlJmx0Oy90eHA6bmV3ZXImZ3Q7 CiZsdDt0eHA6b2xkZXImZ3Q7TmV4dCBwYWdlJmx0Oy90eHA6b2xkZXImZ3Q7CjwvY29kZT48 L3ByZT4KCgk8cD5JZiB5b3Ugd2FudGVkIHRvIHZpZXcgdGhlIGxhc3QgdGhyZWUgZW50cmll cyBpbiB0aGUgZmVlZCBpbnN0ZWFkIG9mIHRoZSBmaXJzdCB0aHJlZSwgeW91IGNvdWxkIHNl dCA8Y29kZT5vZmZzZXQ9JnF1b3Q7LTMmcXVvdDs8L2NvZGU+LjwvcD4KCgk8aDMgaWQ9ImVn NCI+RXhhbXBsZSA0OiB1c2luZyA8Y29kZT5wYWdldmFyPC9jb2RlPjwvaDM+CgoJPHA+QWRk aW5nIDxjb2RlPnBhZ2V2YXI9JnF1b3Q7eG1scGcmcXVvdDs8L2NvZGU+IHRvIGV4YW1wbGUg MyBhbGxvd3MgcGFnaW5nIGluZGVwZW5kZW50bHkgb2YgdHhwOm9sZGVyIGFuZCB0eHA6bmV3 ZXIgdGFncy4gWW91IHRoZW4gbmVlZCB0byBidWlsZCB5b3VyIG93biBsaW5rcyBpbiB5b3Vy IDxjb2RlPnBhZ2VyPC9jb2RlPiBmb3JtLCBsaWtlIHRoaXM6PC9wPgoKPHByZSBjbGFzcz0i YmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+UGFnZSB7c21kX3htbF90aGlzcGFnZX0gb2Yg e3NtZF94bWxfcGFnZXN9IHwKICAgU2hvd2luZyByZWNvcmRzIHtzbWRfeG1sX3JlY19zdGFy dH0gdG8ge3NtZF94bWxfcmVjX2VuZH0KICAgb2Yge3NtZF94bWxfdG90YWxyZWNzfSB8CiAg Jmx0O2EgaHJlZj0mcXVvdDs/eG1scGc9e3NtZF94bWxfcHJldnBhZ2V9JnF1b3Q7Jmd0O1By ZXZpb3VzIHtzbWRfeG1sX3JlY3NfcHJldn0mbHQ7L2EmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVv dDs/eG1scGc9e3NtZF94bWxfbmV4dHBhZ2V9JnF1b3Q7Jmd0O05leHQge3NtZF94bWxfcmVj c19uZXh0fSZsdDsvYSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoYXQgY3JlYXRlcyBsaW5r cyB0byBuZXh0IGFuZCBwcmV2aW91cyByZWNvcmQgc2V0cyB1c2luZyB0aGUgYXNzaWduZWQg PGNvZGU+cGFnZXZhcjwvY29kZT4gYXMgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3Nw YW4+IHBhcmFtZXRlci48L3A+CgoJPGgzIGlkPSJlZzUiPkV4YW1wbGUgNTogY29uZGl0aW9u YWwgbmF2aWdhdGlvbiBhbmQgdGhlIHVuaXF1ZSBJRDwvaDM+CgoJPHA+QWdhaW4gdXNpbmcg ZXhhbXBsZSAzLCBpZiB5b3UgdXNlZCA8Y29kZT5wYWdldmFyPSZxdW90O1NNRF9YTUxfVU5J UVVFX0lEJnF1b3Q7PC9jb2RlPiB0aGUgcGFnZXZhciB3b3VsZCBiZSBhc3NpZ25lZCB0aGUg dmFsdWUgPGNvZGU+ZjI5MGI4PC9jb2RlPi4gSW4gdGhpcyBjYXNlIHdlIGNvdWxkIHVzZSBp dCBsaWtlIHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9j ayI+UGFnZSB7c21kX3htbF90aGlzcGFnZX0gb2Yge3NtZF94bWxfcGFnZXN9IHwKICAgU2hv d2luZyByZWNvcmRzIHtzbWRfeG1sX3JlY19zdGFydH0gdG8ge3NtZF94bWxfcmVjX2VuZH0K ICAgb2Yge3NtZF94bWxfdG90YWxyZWNzfSB8CiZsdDt0eHA6c21kX3htbF9pZl9wcmV2Jmd0 OwogICZsdDthIGhyZWY9JnF1b3Q7P3tzbWRfeG1sX3VuaXF1ZV9pZH09e3NtZF94bWxfcHJl dnBhZ2V9JnF1b3Q7Jmd0O1ByZXZpb3VzIHtzbWRfeG1sX3JlY3NfcHJldn0mbHQ7L2EmZ3Q7 CiZsdDsvdHhwOnNtZF94bWxfaWZfcHJldiZndDsKJmx0O3R4cDpzbWRfeG1sX2lmX25leHQm Z3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDs/e3NtZF94bWxfdW5pcXVlX2lkfT17c21kX3htbF9u ZXh0cGFnZX0mcXVvdDsmZ3Q7TmV4dCB7c21kX3htbF9yZWNzX25leHR9Jmx0Oy9hJmd0Owom bHQ7L3R4cDpzbWRfeG1sX2lmX25leHQmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Ob3RlIHRo YXQgd2UgYXJlIHVzaW5nIHRoZSBjb25kaXRpb25hbCB0YWdzIHRvIG9ubHkgZGlzcGxheSB0 aGUgbmV4dCBhbmQgcHJldmlvdXMgbGlua3MgaWYgdGhlIG5leHQvcHJldiBwYWdlIGV4aXN0 cyBhbmQgYWxzbyB0aGF0IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5r IGlzIGdlbmVyYXRlZCB1c2luZyA8Y29kZT57c21kX3htbF91bmlxdWVfaWR9PC9jb2RlPi4g WW91IGNvdWxkIGNvbmNlaXZhYmx5IHVzZSB0aGlzIHNhbWUgcGFnZWZvcm0gb24gbW9yZSB0 aGFuIG9uZSA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBmZWVkIG9uIHRoZSBzYW1l IHBhZ2UgYW5kIG5hdmlnYXRlIHRoZSB0d28gZmVlZHMgaW5kcGVuZWRlbnRseSwgdGhvdWdo IHlvdSB3b3VsZCBoYXZlIHRvIHdvcmsgb3V0IGEgY2xldmVyIHdheSBvZiBhbWFsZ2FtYXRp bmcgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcnMgKHBlcmhhcHMgdXNp bmcgdGhlIGFkaV9ncHMgcGx1Z2luKS48L3A+CgoJPGgyIGNsYXNzPSJjaGFuZ2Vsb2ciPkNo YW5nZWxvZzwvaDI+CgoJPHVsPgoJCTxsaT4wMiBKYW4gMTAgfCAwLjEgfCBJbml0aWFsIHJl bGVhc2U8L2xpPgoJCTxsaT4wMyBKYW4gMTAgfCAwLjIgfCBBZGRlZCBjYWNoZSBzdXBwb3J0 ICh0aGFua3MgdmFyaWFhcykgOyBhZGRlZCA8Y29kZT5saW1pdDwvY29kZT4sIDxjb2RlPm9m ZnNldDwvY29kZT4gYW5kIHBhZ2luZyBmZWF0dXJlcyA7IGFkZGVkIDxjb2RlPmxpbmtpZnk8 L2NvZGU+ICh0aGFua3MgSmFybyk8L2xpPgoJCTxsaT4wNSBKYW4gMTAgfCAwLjIxIHwgU3Vw cG9ydHMgaHR0cHM6Ly8gZmVlZHMgKHRoYW5rcyBwaG90b25vbWFkKSA7IGFkZGVkIDxjb2Rl PnRyYW5zcG9ydDwvY29kZT4sIDxjb2RlPmRlZmF1bHRzPC9jb2RlPiBhbmQgPGNvZGU+c2V0 X2VtcHR5PC9jb2RlPiBhdHRyaWJ1dGVzPC9saT4KCTwvdWw+Cgo8L2Rpdj4KPCEtLSAqKiog QkVHSU4gUExVR0lOIENTUyAqKiogLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiNzbWRf aGVscCB7IGxpbmUtaGVpZ2h0OjEuNSA7fQojc21kX2hlbHAgY29kZSB7IGZvbnQtd2VpZ2h0 OmJvbGQ7IGZvbnQ6IDEwNSUvMTMwJSAiQ291cmllciBOZXciLCBjb3VyaWVyLCBtb25vc3Bh Y2U7IGJhY2tncm91bmQtY29sb3I6ICNGRkZGQ0M7fQojc21kX2hlbHAgY29kZS5ibG9jayB7 IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgYmFja2dyb3Vu ZC1jb2xvcjogI2YwZTY4YzsgZGlzcGxheTpibG9jazsgbWFyZ2luOjEwcHggMTBweCAyMHB4 OyBwYWRkaW5nOjEwcHg7IH0KI3NtZF9oZWxwIGE6bGluaywgI3NtZF9oZWxwIGE6dmlzaXRl ZCB7IGNvbG9yOiAjMDBjOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206 IDFweCBzb2xpZCBibHVlOyBwYWRkaW5nLWJvdHRvbToxcHg7fQojc21kX2hlbHAgYTpob3Zl ciwgI3NtZF9oZWxwIGE6YWN0aXZlIHsgY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjog bm9uZTsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFw eDt9CiNzbWRfaGVscCBoMSB7IGNvbG9yOiAjMzY5OyBmb250OiAyMHB4IEdlb3JnaWEsIHNh bnMtc2VyaWY7IG1hcmdpbjogMDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiNzbWRfaGVscCBo MiB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsgcGFkZGluZzoxMHB4IDAgMDsg Y29sb3I6ICMzNjk7IGZvbnQ6IDE3cHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgfQojc21kX2hl bHAgaDMgeyBjb2xvcjogIzA3OTsgZm9udDogYm9sZCAxMnB4IEFyaWFsLCBzYW5zLXNlcmlm OyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwO3RleHQtdHJhbnNmb3Jt OiB1cHBlcmNhc2U7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQojc21kX2hlbHAgaDQg eyBmb250OiBib2xkIDExcHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAx cHg7IG1hcmdpbjogMTBweCAwIDAgO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH0KI3Nt ZF9oZWxwIC5hdG5tIHsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzMzZDsgfQojc21kX2hl bHAgLm1hbmQgeyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IH0K I3NtZF9oZWxwIHRhYmxlIHt3aWR0aDo5MCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5n LWJvdHRvbToxZW07fQojc21kX2hlbHAgdGQsICNzbWRfaGVscCB0aCB7Ym9yZGVyOjFweCBz b2xpZCAjOTk5OyBwYWRkaW5nOi41ZW0gMDt9CiNzbWRfaGVscCB1bCB7IGxpc3Qtc3R5bGUt dHlwZTpzcXVhcmU7IH0KI3NtZF9oZWxwIC5yZXF1aXJlZCB7Y29sb3I6cmVkO30KI3NtZF9o ZWxwIGxpIHsgbWFyZ2luOjVweCAyMHB4IDVweCAzMHB4OyB9CiNzbWRfaGVscCAuYnJlYWsg eyBtYXJnaW4tdG9wOjVweDsgfQo8L3N0eWxlPgo8IS0tICoqKiBFTkQgUExVR0lOIENTUyAq KiogLS0+CiI7czozOiJtZDUiO3M6MzI6IjZjODk2M2Q5MzA2YWI3YzBkOWYyY2VmZTBiNTU4 OTkxIjt9