# Name: smd_lately v0.21 # Type: Client side plugin # Show recently viewed/popular articles # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEwOiJzbWRfbGF0ZWx5IjtzOjY6ImF1dGhvciI7czoxMToi U3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjIxIjtzOjExOiJkZXNjcmlwdGlvbiI7czoz NzoiU2hvdyByZWNlbnRseSB2aWV3ZWQvcG9wdWxhciBhcnRpY2xlcyI7czo0OiJjb2RlIjtz OjkxMjM6ImZ1bmN0aW9uIHNtZF9sYXRlbHkoJGF0dHMsICR0aGluZz1OVUxMKSB7DQoJZ2xv YmFsICRwcmVmcywgJHRoaXNhcnRpY2xlLCAkcGVybWxpbmtfbW9kZTsNCg0KCS8vIENoZWNr IGxvZ2dpbmcgaXMgb24NCglpZiAoICRwcmVmc1snbG9nZ2luZyddICE9ICdhbGwnKSB7DQoJ CXRyaWdnZXJfZXJyb3Ioc21kX3J2X2dUeHQoJ2xvZ2dpbmdfZW5hYmxlZCcpLCBFX1VTRVJf Tk9USUNFKTsNCgkJcmV0dXJuOw0KCX0NCg0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSdi eScgPT4gJ1NNRF9DVVJSRU5UJywgLy8gRGVmYXVsdCBpcyB0aGUgSVAgYWRkcmVzcyBvZiB0 aGUgY3VycmVudCB2aXNpdG9yLiBDYW4gYmUgZW1wdHkgZm9yICdhbGwnIHZpc2l0b3JzDQoJ CSdzZWN0aW9uJyA9PiAnJywNCgkJJ3N0YXR1cycgPT4gJycsDQoJCSd0aW1lJyA9PiAncGFz dCcsDQoJCSdpbmNsdWRlJyA9PiAnJywNCgkJJ2V4Y2x1ZGUnID0+ICcnLA0KCQknd2l0aGlu JyA9PiAnJywNCgkJJ2Zyb20nID0+ICcnLA0KCQkndG8nID0+ICcnLA0KCQknc2hvd19jdXJy ZW50JyA9PiAwLA0KCQknZm9ybScgPT4gJycsDQoJCSdsaW1pdCcgPT4gMTAsDQoJCSdzb3J0 JyA9PiAndGltZSBkZXNjJywNCgkJJ3dyYXB0YWcnID0+ICcnLA0KCQknYnJlYWsnID0+ICdi cicsDQoJCSdjbGFzcycgPT4gJ19fRlVOQ1RJT05fXycsDQoJCSdsYWJlbCcgPT4gJycsDQoJ CSdsYWJlbHRhZycgPT4gJycsDQoJCSdkZWxpbScgPT4gJywnLA0KCQkncGFyYW1fZGVsaW0n ID0+ICc6JywNCgkJJ3NpbGVudCcgPT4gMCwNCgkJJ2RlYnVnJyA9PiAwLA0KCSksICRhdHRz KSk7DQoNCgkvLyBTYW5pdGl6ZSBzb3J0IG9wdGlvbnMNCgkkc29ydEJpdHMgPSBkb19saXN0 KCRzb3J0LCAiICIpOw0KCSRzb3J0Qml0c1swXSA9IChlbXB0eSgkc29ydEJpdHNbMF0pKSA/ ICd0aW1lJyA6ICRzb3J0Qml0c1swXTsNCglpZiAoIWlzc2V0KCRzb3J0Qml0c1sxXSkgfHwg IWluX2FycmF5KCRzb3J0Qml0c1sxXSwgYXJyYXkoJ2Rlc2MnLCAnYXNjJykpKSB7DQoJCSRz b3J0Qml0c1sxXSA9ICdkZXNjJzsNCgkJJHNvcnQgPSBqb2luKCIgIiwgJHNvcnRCaXRzKTsN Cgl9DQoNCgkvLyBJUCBhZGRyZXNzIGNsYXVzZQ0KCSRpcCA9ICcnOw0KCWlmICgkYnkgPT0g J1NNRF9DVVJSRU5UJykgew0KCQlpZiAoZnVuY3Rpb25fZXhpc3RzKCdyZW1vdGVfYWRkcicp KSB7DQoJCQkkaXAgPSByZW1vdGVfYWRkcigpOw0KCQl9IGVsc2Ugew0KCQkJJGlwID0gc2Vy dmVyU2V0KCdSRU1PVEVfQUREUicpOw0KCQkJaWYgKCgkaXAgPT0gJzEyNy4wLjAuMScgfHwg JGlwID09IHNlcnZlclNldCgnU0VSVkVSX0FERFInKSkgJiYgc2VydmVyU2V0KCdIVFRQX1hf Rk9SV0FSREVEX0ZPUicpKSB7DQoJCQkJJGlwcyA9IGV4cGxvZGUoJywgJywgc2VydmVyU2V0 KCdIVFRQX1hfRk9SV0FSREVEX0ZPUicpKTsNCgkJCQkkaXAgPSAkaXBzWzBdOw0KCQkJfQ0K CQl9DQoJCWlmICgkaXApIHsNCgkJCSRpcCA9ICIgQU5EIGlwPSciLmRvU2xhc2goJGlwKS4i JyI7DQoJCX0NCgl9IGVsc2UgaWYgKCRieSA9PSAnU01EX0FMTCcpIHsNCgkJJGJ5ID0gJyc7 DQoJfQ0KDQoJLy8gTWFrZSBzdXJlIHdlIGRvbid0IGluY2x1ZGUgdGhlIGN1cnJlbnQgYXJ0 aWNsZQ0KCS8vIE5vdGUgdGhlIHJlZ2V4cCBpcyBhbmNob3JlZCB0byB0aGUgZW5kIHdpdGgg YSAkDQoJJHRoaXNpY2xlID0gJyc7DQoJaWYgKGlzc2V0KCR0aGlzYXJ0aWNsZSkpIHsNCgkJ aWYgKCEkc2hvd19jdXJyZW50KSB7DQoJCQkkdXJsdGl0bGUgPSAkdGhpc2FydGljbGVbJ3Vy bF90aXRsZSddOw0KCQkJJHRoaXNpY2xlID0gKCR1cmx0aXRsZSkgPyAiIEFORCBwYWdlIE5P VCBMSUtFICclJHVybHRpdGxlJyIgOiAnJzsNCgkJfQ0KCX0NCg0KCS8vIEZpbHRlciBvdXQg YXJ0aWNsZV9saXN0IHBhZ2VzIGFuZCBvdGhlciAodW4pZGVzaXJhYmxlcw0KCSRydWxlcyA9 IGFycmF5KA0KCQkicGFnZSBOT1QgTElLRSAnLyciLCAvLyBHb29kYnllIGZyb250IHBhZ2UN CgkJInBhZ2UgTk9UIExJS0UgJyVxPSUnIiwgLy8gR29vZGJ5ZSBzZWFyY2hlcw0KCQkicGFn ZSBOT1QgTElLRSAnJWM9JSciLCAvLyBHb29kYnllIGNhdCBsaXN0cw0KCQkicGFnZSBOT1Qg TElLRSAnJXBnPSUnIiwgLy8gR29vZGJ5ZSBtdWx0aS1wYWdlIGxpc3RzDQoJCSJwYWdlIE5P VCBMSUtFICclY2F0ZWdvcnk9JSciLA0KCQkicGFnZSBOT1QgTElLRSAnL2NhdGVnb3J5LyUn IiwNCgkJInBhZ2UgTk9UIExJS0UgJyVhdXRob3I9JSciLA0KCQkicGFnZSBOT1QgTElLRSAn L2F1dGhvci8lJyIsDQoJKTsNCg0KCWlmICgkc2VjdGlvbikgew0KCQkkc2VjdGlvbiA9IGRv X2xpc3QoJHNlY3Rpb24sICRkZWxpbSk7DQoJCSRzdWJydWxlID0gYXJyYXkoKTsNCgkJZm9y ZWFjaCAoJHNlY3Rpb24gYXMgJHNlYykgew0KCQkJaWYgKCRwZXJtbGlua19tb2RlID09ICdt ZXNzeScpIHsNCgkJCQkkc3VicnVsZVtdID0gInBhZ2UgTElLRSAnJXM9JHNlYyUnIjsNCgkJ CX0gZWxzZSB7DQoJCQkJJHN1YnJ1bGVbXSA9ICJwYWdlIExJS0UgJy8kc2VjJScgQU5EIHBh Z2UgTk9UIFJFR0VYUCAnXi8kc2VjLz8kJyI7DQoJCQl9DQoJCX0NCgkJJHN1YnJ1bGUgPSAn KCcgLiBqb2luKCcgT1IgJywgJHN1YnJ1bGUpIC4gJyknOw0KCQkkcnVsZXNbXSA9ICRzdWJy dWxlOw0KCX0gZWxzZSB7DQoJCS8vIEV4Y2x1ZGUgYW55IHJvd3MgdGhhdCBqdXN0IGNvbnRh aW4gdGhlIHNlY3Rpb24gKGkuZS4gYXJ0aWNsZSBsaXN0IHBhZ2VzKQ0KCQkkYWxsU2VjcyA9 IHNhZmVfY29sdW1uKCduYW1lJywgJ3R4cF9zZWN0aW9uJywgIjE9MSIsICRkZWJ1Zyk7DQoJ CSRydWxlc1tdID0gInBhZ2UgTk9UIFJFR0VYUCAnXi8oIiAuIGpvaW4oInwiLCAkYWxsU2Vj cykgLiAiKS8/JCciOw0KCX0NCg0KCS8vIFByb2Nlc3MgYW55IG1hbnVhbCBpbmNsdWRlcw0K CWlmICgkaW5jbHVkZSkgew0KCQkkaW5jbHVkZSA9IGRvX2xpc3QoJGluY2x1ZGUsICRkZWxp bSk7DQoJCSRzdWJydWxlcyA9IGFycmF5KCk7DQoJCWZvcmVhY2ggKCRpbmNsdWRlIGFzICRp bmMpIHsNCgkJCSRyZWdleCA9ICRsaWtlID0gZmFsc2U7DQoJCQkkY29sdW1uID0gJ2lwJzsN CgkJCSRwYXJ0cyA9IGRvX2xpc3QoJGluYywgJHBhcmFtX2RlbGltKTsNCgkJCSRtYXRjaCA9 IGFycmF5X3BvcCgkcGFydHMpOw0KCQkJZm9yZWFjaCAoJHBhcnRzIGFzICRwYXJ0KSB7DQoJ CQkJc3dpdGNoICgkcGFydCkgew0KCQkJCQljYXNlICJpcCI6DQoJCQkJCWNhc2UgImhvc3Qi Og0KCQkJCQljYXNlICJwYWdlIjoNCgkJCQkJY2FzZSAicmVmZXIiOg0KCQkJCQkJJGNvbHVt biA9ICRwYXJ0Ow0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgImxpa2UiOg0KCQkJCQkJJGxp a2UgPSB0cnVlOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgInJlZ2V4IjoNCgkJCQkJCSRy ZWdleCA9IHRydWU7DQoJCQkJCQlicmVhazsNCgkJCQl9DQoJCQl9DQoJCQkkc3VicnVsZXNb XSA9ICRyZWdleCA/ICIkY29sdW1uIFJFR0VYUCAnIi5kb1NsYXNoKHByZWdfcXVvdGUoJG1h dGNoKSkuIiciIDogKCgkbGlrZSkgPyAiJGNvbHVtbiBMSUtFICclIi5kb1NsYXNoKCRtYXRj aCkuIiUnIiA6ICIkY29sdW1uID0gJyIuZG9TbGFzaCgkbWF0Y2gpLiInIik7DQoJCX0NCgkJ JHJ1bGVzW10gPSAnKCcuam9pbignIE9SICcsICRzdWJydWxlcykuJyknOw0KCX0NCg0KCS8v IFByb2Nlc3MgYW55IG1hbnVhbCBleGNsdWRlcw0KCWlmICgkZXhjbHVkZSkgew0KCQkkZXhj bHVkZSA9IGRvX2xpc3QoJGV4Y2x1ZGUsICRkZWxpbSk7DQoJCWZvcmVhY2ggKCRleGNsdWRl IGFzICRleGMpIHsNCgkJCSRyZWdleCA9ICRsaWtlID0gZmFsc2U7DQoJCQkkY29sdW1uID0g J2lwJzsNCgkJCSRwYXJ0cyA9IGRvX2xpc3QoJGV4YywgJHBhcmFtX2RlbGltKTsNCgkJCSRt YXRjaCA9IGFycmF5X3BvcCgkcGFydHMpOw0KCQkJZm9yZWFjaCAoJHBhcnRzIGFzICRwYXJ0 KSB7DQoJCQkJc3dpdGNoICgkcGFydCkgew0KCQkJCQljYXNlICJpcCI6DQoJCQkJCWNhc2Ug Imhvc3QiOg0KCQkJCQljYXNlICJwYWdlIjoNCgkJCQkJY2FzZSAicmVmZXIiOg0KCQkJCQkJ JGNvbHVtbiA9ICRwYXJ0Ow0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgImxpa2UiOg0KCQkJ CQkJJGxpa2UgPSB0cnVlOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgInJlZ2V4IjoNCgkJ CQkJCSRyZWdleCA9IHRydWU7DQoJCQkJCQlicmVhazsNCgkJCQl9DQoJCQl9DQoJCQkkcnVs ZXNbXSA9ICRyZWdleCA/ICIkY29sdW1uIE5PVCBSRUdFWFAgJyIuZG9TbGFzaChwcmVnX3F1 b3RlKCRtYXRjaCkpLiInIiA6ICgoJGxpa2UpID8gIiRjb2x1bW4gTk9UIExJS0UgJyUiLmRv U2xhc2goJG1hdGNoKS4iJSciIDogIiRjb2x1bW4gIT0gJyIuZG9TbGFzaCgkbWF0Y2gpLiIn Iik7DQoJCX0NCgl9DQoNCgkvLyBGaWx0ZXIgYnkgdGltZSBmcmFtZQ0KCSRmcm9tc3RhbXAg PSAkdG9zdGFtcCA9ICRkaWZmc3RhbXAgPSAwOw0KCSR0aGlzbW9udGggPSBkYXRlKCdGJywg bWt0aW1lKDAsMCwwLHN0cmZ0aW1lKCclbScpLDEpKTsNCgkkdGhpc3llYXIgPSBzdHJmdGlt ZSgnJVknKTsNCglpZiAoJGZyb20pIHsNCgkJJGZyb20gPSBzdHJfcmVwbGFjZSgiP21vbnRo IiwgJHRoaXNtb250aCwgJGZyb20pOw0KCQkkZnJvbSA9IHN0cl9yZXBsYWNlKCI/eWVhciIs ICR0aGlzeWVhciwgJGZyb20pOw0KCQkkZnJvbXN0YW1wID0gc3RydG90aW1lKCRmcm9tKTsN CgkJaWYgKCRmcm9tc3RhbXApIHsNCgkJCSRydWxlc1tdID0gIlVOSVhfVElNRVNUQU1QKHRp bWUpID4gJGZyb21zdGFtcCI7DQoJCX0gZWxzZSB7DQoJCQlpZiAoISRzaWxlbnQpIHsNCgkJ CQl0cmlnZ2VyX2Vycm9yKHNtZF9ydl9nVHh0KCdpbnZhbGlkX3RzJywgYXJyYXkoInt3aGVy ZX0iID0+ICdmcm9tJykpLCBFX1VTRVJfTk9USUNFKTsNCgkJCX0NCgkJfQ0KCX0NCglpZiAo JHRvKSB7DQoJCSR0byA9IHN0cl9yZXBsYWNlKCI/bW9udGgiLCAkdGhpc21vbnRoLCAkdG8p Ow0KCQkkdG8gPSBzdHJfcmVwbGFjZSgiP3llYXIiLCAkdGhpc3llYXIsICR0byk7DQoJCSR0 b3N0YW1wID0gc3RydG90aW1lKCR0byk7DQoJCWlmICgkdG9zdGFtcCkgew0KCQkJJHJ1bGVz W10gPSAiVU5JWF9USU1FU1RBTVAodGltZSkgPCAkdG9zdGFtcCI7DQoJCX0gZWxzZSB7DQoJ CQlpZiAoISRzaWxlbnQpIHsNCgkJCQl0cmlnZ2VyX2Vycm9yKHNtZF9ydl9nVHh0KCdpbnZh bGlkX3RzJywgYXJyYXkoInt3aGVyZX0iID0+ICd0bycpKSwgRV9VU0VSX05PVElDRSk7DQoJ CQl9DQoJCX0NCgl9DQoJaWYgKCR3aXRoaW4pIHsNCgkJaWYgKCR0b3N0YW1wKSB7DQoJCQkk cmVmc3RhbXAgPSAkdG9zdGFtcDsNCgkJCSRyZWZkaXIgPSAnLSc7DQoJCX0gZWxzZSBpZiAo JGZyb21zdGFtcCkgew0KCQkJJHJlZnN0YW1wID0gJGZyb21zdGFtcDsNCgkJCSRyZWZkaXIg PSAnKyc7DQoJCX0gZWxzZSB7DQoJCQkkcmVmc3RhbXAgPSB0aW1lKCk7DQoJCQkkcmVmZGly ID0gJy0nOw0KCQl9DQoNCgkJJGRpZmZzdGFtcCA9IHN0cnRvdGltZSgkcmVmZGlyLiR3aXRo aW4sICRyZWZzdGFtcCk7DQoJCWlmICgkZGlmZnN0YW1wKSB7DQoJCQkkcnVsZXNbXSA9ICJV TklYX1RJTUVTVEFNUCh0aW1lKSAiLigoJHJlZmRpciA9PSAnLScpID8gJz4gJyA6ICc8ICcg KS4kZGlmZnN0YW1wOw0KCQl9IGVsc2Ugew0KCQkJaWYgKCEkc2lsZW50KSB7DQoJCQkJdHJp Z2dlcl9lcnJvcihzbWRfcnZfZ1R4dCgnaW52YWxpZF90cycsIGFycmF5KCJ7d2hlcmV9IiA9 PiAnd2l0aGluJykpLCBFX1VTRVJfTk9USUNFKTsNCgkJCX0NCgkJfQ0KCX0NCg0KCWlmICgk ZGVidWcpIHsNCgkJZWNobyAiKysgc21kX2xhdGVseSBSVUxFUyArKyI7DQoJCWRtcCgkcnVs ZXMpOw0KCQlpZiAoJGZyb20gfHwgJHRvIHx8ICR3aXRoaW4pIHsNCgkJCWVjaG8gIisrIFRJ TUUgV0lORE9XICsrIjsNCgkJCWlmICgkZnJvbSkgew0KCQkJCWRtcCgiRlJPTTogIiAuIGRh dGUoJ1ktTS1kIEg6aTpzJywgJGZyb21zdGFtcCkpOw0KCQkJfQ0KCQkJaWYgKCR3aXRoaW4p IHsNCgkJCQlkbXAoIldJVEhJTjogIiAuIGRhdGUoJ1ktTS1kIEg6aTpzJywgJGRpZmZzdGFt cCksICR3aXRoaW4gLiAoKCRyZWZkaXIgPT0gJy0nKSA/ICIgQkVGT1JFIFRPIERBVEUiIDog IiBBRlRFUiBGUk9NIERBVEUiKSk7DQoJCQl9DQoJCQlpZiAoJHRvKSB7DQoJCQkJZG1wKCJU TzogIi4gZGF0ZSgnWS1NLWQgSDppOnMnLCAkdG9zdGFtcCkpOw0KCQkJfSBlbHNlIHsNCgkJ CQlkbXAoIlRPOiAiLiBkYXRlKCdZLU0tZCBIOmk6cycsIHRpbWUoKSkpOw0KCQkJfQ0KCQl9 DQoJfQ0KDQoJJHJ1bGVzID0gJyBBTkQgJyAuIGpvaW4oJyBBTkQgJywgJHJ1bGVzKTsNCg0K CSRxdWVyeSA9ICdTRUxFQ1QgY291bnQocGFnZSkgYXMgcG9wdWxhcml0eSwgcGFnZSwgTUFY KHRpbWUpIGFzIHRpbWUgRlJPTSAnLlBGWC4ndHhwX2xvZyBXSEVSRSAxPTEnLiRpcC4kdGhp c2ljbGUuJHJ1bGVzLicgQU5EIHN0YXR1cyA9IDIwMCBHUk9VUCBCWSBwYWdlIE9SREVSIEJZ ICcuJHNvcnQ7DQoJJHJzID0gZ2V0Um93cygkcXVlcnksICRkZWJ1Zyk7DQoNCglpZiAoJGRl YnVnID4gMSkgew0KCQlkbXAoJHJzKTsNCgl9DQoNCgkvLyBTZXQgdXAgY291bnRlcnMgYW5k IGNyZWF0ZSBxdWVyeSBwYXJhbXMNCgkkY291bnQgPSAwOw0KCSRvdXQgPSBhcnJheSgpOw0K DQoJaWYgKCRzdGF0dXMpIHsNCgkJJHN0YXR1cyA9IGRvX2xpc3QoJHN0YXR1cywgJGRlbGlt KTsNCgkJJHN0YXRpID0gYXJyYXkoKTsNCgkJZm9yZWFjaCAoJHN0YXR1cyBhcyAkc3RhdCkg ew0KCQkJaWYgKGVtcHR5KCRzdGF0KSkgew0KCQkJCWNvbnRpbnVlOw0KCQkJfSBlbHNlIGlm IChpc19udW1lcmljKCRzdGF0KSkgew0KCQkJCSRzdGF0aVtdID0gJHN0YXQ7DQoJCQl9IGVs c2Ugew0KCQkJCSRzdGF0aVtdID0gZ2V0U3RhdHVzTnVtKCRzdGF0KTsNCgkJCX0NCgkJfQ0K CQkkc3RhdHVzID0gIiBBTkQgU3RhdHVzIElOICgiLmpvaW4oJywnLCAkc3RhdGkpLiIpIjsN Cgl9DQoNCglzd2l0Y2goJHRpbWUpIHsNCgkJY2FzZSAiIjoNCgkJY2FzZSAiYW55IiA6ICR0 aW1lID0gIiI7IGJyZWFrOw0KCQljYXNlICJmdXR1cmUiIDogJHRpbWUgPSAiIEFORCBQb3N0 ZWQgPiBDVVJEQVRFKCkiOyBicmVhazsNCgkJZGVmYXVsdCA6ICR0aW1lID0gIiBBTkQgUG9z dGVkIDwgQ1VSREFURSgpIjsgYnJlYWs7DQoJfQ0KDQoJLy8gTG9vcCB1bnRpbCBsaW1pdCBy ZWFjaGVkDQoJaWYgKCRycykgew0KCQlmb3JlYWNoICgkcnMgYXMgJHJvdykgew0KCQkJaWYg KCRsaW1pdCA+IDAgJiYgaXNfbnVtZXJpYygkbGltaXQpICYmICRjb3VudCA9PSAkbGltaXQp IGJyZWFrOw0KCQkJJHVybHBhcnRzID0gZXhwbG9kZSgnLycsICRyb3dbJ3BhZ2UnXSk7DQoJ CQkkZGFydGljbGUgPSBzYWZlX3JvdygnKiwgdW5peF90aW1lc3RhbXAoUG9zdGVkKSBhcyB1 UG9zdGVkLCB1bml4X3RpbWVzdGFtcChFeHBpcmVzKSBhcyB1RXhwaXJlcywgdW5peF90aW1l c3RhbXAoTGFzdE1vZCkgYXMgdUxhc3RNb2QnLCAndGV4dHBhdHRlcm4nLCAidXJsX3RpdGxl PSciLiR1cmxwYXJ0c1tjb3VudCgkdXJscGFydHMpLTFdLiInIi4kc3RhdHVzLiR0aW1lLCAk ZGVidWcpOw0KCQkJaWYgKCRkZWJ1ZyA+IDIpIHsNCgkJCQlkbXAoJGRhcnRpY2xlKTsNCgkJ CX0NCgkJCWlmICgkZGFydGljbGUpIHsNCgkJCQkkdGhlVGltZSA9IHN0cnRvdGltZSgkcm93 Wyd0aW1lJ10pOw0KCQkJCSRyZXBsYWNlbWVudHMgPSBhcnJheSgNCgkJCQkJIntzbWRfbGF0 ZWx5X2NvdW50fSIgPT4gJHJvd1sncG9wdWxhcml0eSddLA0KCQkJCQkie3NtZF9sYXRlbHlf ZnVsbGRhdGV9IiA9PiAkcm93Wyd0aW1lJ10sDQoJCQkJCSJ7c21kX2xhdGVseV9kYXRlfSIg PT4gc3RyZnRpbWUoIiVGIiwgJHRoZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRlbHlfZGF0ZV95 ZWFyfSIgPT4gc3RyZnRpbWUoIiVZIiwgJHRoZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRlbHlf ZGF0ZV9tb250aH0iID0+IHN0cmZ0aW1lKCIlbSIsICR0aGVUaW1lKSwNCgkJCQkJIntzbWRf bGF0ZWx5X2RhdGVfbW9udGhuYW1lfSIgPT4gc3RyZnRpbWUoIiVCIiwgJHRoZVRpbWUpLA0K CQkJCQkie3NtZF9sYXRlbHlfZGF0ZV9kYXl9IiA9PiBzdHJmdGltZSgiJWQiLCAkdGhlVGlt ZSksDQoJCQkJCSJ7c21kX2xhdGVseV9kYXRlX2RheW5hbWV9IiA9PiBzdHJmdGltZSgiJUEi LCAkdGhlVGltZSksDQoJCQkJCSJ7c21kX2xhdGVseV90aW1lfSIgPT4gc3RyZnRpbWUoIiVU IiwgJHRoZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRlbHlfdGltZV9ob3VyfSIgPT4gc3RyZnRp bWUoIiVIIiwgJHRoZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRlbHlfdGltZV9taW51dGV9IiA9 PiBzdHJmdGltZSgiJU0iLCAkdGhlVGltZSksDQoJCQkJCSJ7c21kX2xhdGVseV90aW1lX3Nl Y29uZH0iID0+IHN0cmZ0aW1lKCIlUyIsICR0aGVUaW1lKSwNCgkJCQkpOw0KCQkJCWFydGlj bGVfcHVzaCgpOw0KCQkJCXBvcHVsYXRlQXJ0aWNsZURhdGEoJGRhcnRpY2xlKTsNCgkJCQkk b3V0W10gPSAoJHRoaW5nKSA/IHBhcnNlKHN0cnRyKCR0aGluZywgJHJlcGxhY2VtZW50cykp IDogKCgkZm9ybSkgPyBwYXJzZV9mb3JtKHN0cnRyKCRmb3JtLCAkcmVwbGFjZW1lbnRzKSkg OiBocmVmKCRkYXJ0aWNsZVsnVGl0bGUnXSwgcGVybWxpbmt1cmwoJGRhcnRpY2xlKSkpOw0K CQkJCWFydGljbGVfcG9wKCk7DQoJCQkJJGNvdW50Kys7DQoJCQl9DQoJCX0NCgl9DQoJcmV0 dXJuICgkb3V0KSA/IGRvTGFiZWwoJGxhYmVsLCAkbGFiZWx0YWcpLmRvV3JhcCgkb3V0LCAk d3JhcHRhZywgJGJyZWFrLCAkY2xhc3MpIDogJyc7DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KLy8gUGx1Z2luLXNwZWNpZmljIHJlcGxhY2VtZW50IHN0cmluZ3MgLSBs b2NhbGlzZSBhcyByZXF1aXJlZA0KZnVuY3Rpb24gc21kX3J2X2dUeHQoJHdoYXQsICRhdHRz ID0gYXJyYXkoKSkgew0KCSRsYW5nID0gYXJyYXkoDQoJCSdpbnZhbGlkX3RzJyA9PiAnSW52 YWxpZCBkYXRlL3RpbWUgaW5mbyBpbiAie3doZXJlfSIgYXR0cmlidXRlLicsDQoJCSdsb2dn aW5nX2VuYWJsZWQnID0+ICdMb2dnaW5nIG11c3QgYmUgc2V0IHRvICJBbGwgaGl0cyIgaW4g QmFzaWMgUGVmcy4nLA0KCSk7DQoJcmV0dXJuIHN0cnRyKCRsYW5nWyR3aGF0XSwgJGF0dHMp Ow0KfSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToiNSI7czo1OiJmbGFn cyI7czoxOiIwIjtzOjQ6ImhlbHAiO3M6MTQ4ODU6IjxkaXYgaWQ9InNtZF9oZWxwIj4KCgk8 aDE+c21kX2xhdGVseTwvaDE+CgoJPHA+TGlzdCB0aGUgbW9zdCByZWNlbnQgYXJ0aWNsZXMg dmlld2VkIGJ5IHRoZSBjdXJyZW50IHZpc2l0b3Igb3IsIGFsdGVybmF0aXZlbHksIGFsbCB2 aXNpdG9ycy4gQ2FuIGFsc28gb3JkZXIgYnkgcG9wdWxhcml0eSAobW9zdCB2aWV3ZWQpLjwv cD4KCgk8aDIgaWQ9ImZlYXR1cmVzIj5GZWF0dXJlczwvaDI+CgoJPHVsPgoJCTxsaT5MaXN0 IHJlY2VudGx5IHZpZXdlZCBhcnRpY2xlczogdXNlZnVsIG9uIHByb2R1Y3QgcGFnZXMgb3Ig aW4gc2hvcHBpbmcgY2FydDwvbGk+CgkJPGxpPlNob3cgYSBsaXN0IG9mIHRoZSBtb3N0IHBv cHVsYXIgYXJ0aWNsZXM8L2xpPgoJCTxsaT5MaW1pdCBlaXRoZXIgbGlzdCBieSBzZWN0aW9u IG9yIGFyYml0cmFyeSB2YWx1ZSAoaXAsIGhvc3QsIHBhZ2UsIHJlZmVyZXIpIGlmIHlvdSB3 aXNoPC9saT4KCQk8bGk+VXNlcyB0aGUgdmlzaXRvciBsb2dzPC9saT4KCQk8bGk+QXV0b21h dGljYWxseSBmaWx0ZXJzIG91dCBhcnRpY2xlIGxpc3QgcGFnZXMsIGNhdGVnb3J5LCBhdXRo b3Igb3Igc2VhcmNoIHZpc2l0czwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iYXV0aG9yIj5BdXRo b3IgLyBjcmVkaXRzPC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20v Y29udGFjdCI+U3RlZiBEYXdzb248L2E+LjwvcD4KCgk8aDIgaWQ9Imluc3RhbGwiPkluc3Rh bGxhdGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cCBjbGFzcz0icmVxdWlyZWQiPlJl cXVpcmVzIExvZ2dpbmcgdG8gYmUgc2V0IHRvIDxlbT5BbGwgaGl0czwvZW0+ICh3aWxsIGlz c3VlIGEgd2FybmluZyBvZiBub3QpPC9wPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJv bSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzExMTAv c21kX2xhdGVseSI+dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhlIDxhIGhyZWY9Imh0dHA6 Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4sIHBhc3RlIHRoZSBjb2Rl IGludG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IEFkbWluIC0mZ3Q7IFBs dWdpbnMgcGFuZSwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uIFZpc2l0IHRoZSA8 YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9 MzEzNDEiPmZvcnVtIHRocmVhZDwvYT4gZm9yIG1vcmUgaW5mbyBvciB0byByZXBvcnQgb24g dGhlIHN1Y2Nlc3Mgb3Igb3RoZXJ3aXNlIG9mIHRoZSBwbHVnaW4uPC9wPgoKCTxwPlRvIHVu aW5zdGFsbCwgc2ltcGx5IGRlbGV0ZSBmcm9tIHRoZSBBZG1pbiAtJmd0OyBQbHVnaW5zIHBh Z2UuPC9wPgoKCTxoMiBpZD0ibnAiPjxjb2RlPiZsdDt0eHA6c21kX2xhdGVseSZndDs8L2Nv ZGU+PC9oMj4KCgk8cD5QbGFjZSB0aGlzIHRhZyBhbnl3aGVyZSB5b3Ugd2lzaCB0byBkaXNw bGF5IGEgbGlzdCBvZiByZWNlbnRseSB2aWV3ZWQgYXJ0aWNsZXMuIFRoZSB0YWcgbWF5IGJl IHVzZWQgYXMgYSBzaW5nbGUgdGFnICh3aXRoIGFuIG9wdGlvbmFsIGZvcm0pIG9yIGFzIGEg Y29udGFpbmVyLiBJbnNpZGUgdGhlIGZvcm0vY29udGFpbmVyIHlvdSBjYW4gdXNlIGFueSBz dGFuZGFyZCBhcnRpY2xlIHRhZ3MgJiM4MjEyOyA8Y29kZT4mbHQ7dHhwOnRpdGxlIC8mZ3Q7 PC9jb2RlPiwgPGNvZGU+Jmx0O3R4cDpleGNlcnB0IC8mZ3Q7PC9jb2RlPiwgPGNvZGU+Jmx0 O3R4cDpwb3N0ZWQgLyZndDs8L2NvZGU+LCBldGMgJiM4MjEyOyB0byBmb3JtYXQgdGhlIGxp c3QgaG93ZXZlciB5b3UgbGlrZS4gV2l0aG91dCBlaXRoZXIgYSBmb3JtIG9yIGEgY29udGFp bmVyLCB0aGUgcGx1Z2luIGRpc3BsYXlzIGEgaHlwZXJsaW5rZWQgdGl0bGUgdG8gdGhlIGFy dGljbGUuPC9wPgoKCTxwPlRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBjYW4gYmUgdXNlZCB0 byBtb2RpZnkgdGhlIHBsdWdpbiYjODIxNztzIG91dHB1dDo8L3A+CgoJPGgzIGNsYXNzPSJh dHRzIj5BdHRyaWJ1dGVzPC9oMz4KCgk8aDQ+TG9nIGZpbHRlcmluZyBhbmQgc29ydCBvcmRl ciBhdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5ieTwv c3Bhbj4gOiB1c2UgPGNvZGU+Ynk9JnF1b3Q7JnF1b3Q7PC9jb2RlPiBvciA8Y29kZT5ieT0m cXVvdDtTTURfQUxMJnF1b3Q7PC9jb2RlPiB0byB2aWV3IHRoZSBtb3N0IHJlY2VudCBhcnRp Y2xlcyBieSBhbGwgc2l0ZSB2aXNpdG9ycy4gQnkgZGVmYXVsdCAoaS5lLiBpZiB0aGUgYXR0 cmlidXRlIGlzIG9taXR0ZWQpIHRoZSBwbHVnaW4gb25seSBzaG93cyB0aGUgcmVjZW50IGFy dGljbGVzIHZpZXdlZCBieSB0aGUgY3VycmVudCB2aXNpdG9yPC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPnNlY3Rpb248L3NwYW4+IDogY2hvb3NlIHRvIHNob3cgYXJ0aWNsZXMg b25seSBmcm9tIHRoaXMgbGlzdCBvZiBzZWN0aW9ucy4gRGVmYXVsdDogdW5zZXQgKGkuZS4g ZnJvbSBhbGwgc2VjdGlvbnMpLiA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPk5vdGUgdGhhdCB5 b3UgbXVzdCBiZSB1c2luZyBlaXRoZXIgbWVzc3kgbW9kZSBvciBhIHBlcm1saW5rIG1vZGUg d2l0aCA8Y29kZT4vc2VjdGlvbjwvY29kZT4gaW4gaXQgdG8gZmlsdGVyIGJ5IHNlY3Rpb248 L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNob3dfY3VycmVudDwvc3Bh bj4gOiBEaXNwbGF5IHRoZSBhcnRpY2xlIGJlaW5nIHZpZXdlZCBpbiB0aGUgbGlzdDogMT1Z ZXM7IDA9Tm8uIElnbm9yZWQgaWYgaW4gYW4gYXJ0aWNsZV9saXN0IHBhZ2UuIERlZmF1bHQ6 IDA8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+aW5jbHVkZTwvc3Bhbj4gOiBlbnN1 cmUgdGhhdCBsb2cgZmlsZSBlbnRyaWVzIHRoYXQgbWF0Y2ggdGhpcyBzZXQgb2YgY3JpdGVy aWEgYXJlIGluY2x1ZGVkIGluIHRoZSBsaXN0LiBUaGlzIGF0dHJpYnV0ZSB0YWtlcyB1cCB0 byAzIHBhcmFtZXRlcnMsIHNlcGFyYXRlZCBieSA8Y29kZT5wYXJhbV9kZWxpbTwvY29kZT4g KGRlZmF1bHQgaXMgdGhlIGNvbG9uKS4KCTx1bD4KCQk8bGk+Rmlyc3QgaXMgdGhlIG5hbWUg b2YgYSBmaWVsZCB0byBtYXRjaCBhZ2FpbnN0LiBDaG9vc2UgZnJvbSA8Y29kZT5pcDwvY29k ZT4gKHRoZSBkZWZhdWx0KSwgPGNvZGU+aG9zdDwvY29kZT4sIDxjb2RlPnBhZ2U8L2NvZGU+ IG9yIDxjb2RlPnJlZmVyPC9jb2RlPjwvbGk+CgkJPGxpPlNlY29uZCBpcyBhbiBvcHRpb25h bCBwYXJhbWV0ZXIgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgbWF0Y2ggaXMgYSByZWd1bGFy IGV4cHJlc3Npb24sIHdpbGQgb3IgYW4gZXhhY3QgbWF0Y2guIFVzZSA8Y29kZT5yZWdleDwv Y29kZT4gaWYgeW91IHdpc2ggdGhpcyBtYXRjaCB0byBiZSBjb25zaWRlcmVkIGFzIGEgcmVn dWxhciBleHByZXNzaW9uLCBzcGVjaWZ5IDxjb2RlPmxpa2U8L2NvZGU+IGlmIHlvdSB3YW50 IHRvIGNoZWNrIGlmIHRoZSB0ZXh0IGlzIGEgc2ltcGxlICYjODIxNjt3aWxkJiM4MjE3OyBt YXRjaCAoaXQmIzgyMTc7cyBzaW1pbGFyIHRvLCBidXQgcXVpY2tlciB0aGFuLCBhIHJlZ2V4 KSwgb3Igb21pdCB0aGUgcGFyYW1ldGVyIGVudGlyZWx5IGlmIHlvdSB3YW50IGFuICYjODIx NjtleGFjdCBtYXRjaCYjODIxNzsgdG8gYmUgY29uc2lkZXJlZDwvbGk+CgkJPGxpPkZpbmFs bHksIHNwZWNpZnkgdGhlIHRleHQgeW91IHdhbnQgdG8gbWF0Y2ggd2l0aCB0aGF0IGZpZWxk LiBGb3IgZXhhbXBsZSwgPGNvZGU+aW5jbHVkZT0mcXVvdDtob3N0Omxpa2U6d3d3LmRvbWFp bi5jb20mcXVvdDs8L2NvZGU+IHdvdWxkIG9ubHkgaW5jbHVkZSByZXN1bHRzIHRoYXQgaGFk IDxjb2RlPnd3dy5kb21haW4uY29tPC9jb2RlPiBzb21ld2hlcmUgaW4gdGhlaXIgaG9zdCBu YW1lLiBVc2luZyA8Y29kZT5pbmNsdWRlPSZxdW90OzE5Mi4xNjguMi4yMDAmcXVvdDs8L2Nv ZGU+IHdvdWxkIHNob3cgcGFnZXMgZnJvbSBhbnkgaW50ZXJuYWwgbWVkZGxpbmcgeW91IG1h eSBoYXZlIGRvbmUgb24geW91ciBsb2NhbCA8c3BhbiBjbGFzcz0iY2FwcyI+WEFNUFA8L3Nw YW4+IHNlcnZlci4gTm90ZSB0aGF0IGlmIHlvdSBvbWl0IHBhcmFtZXRlcnMgMSBhbmQgMiwg dGhlIHBsdWdpbiB1c2VzIHRoZSBkZWZhdWx0czwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG5tIj5leGNsdWRlPC9zcGFuPiA6IGVuc3VyZSB0aGF0IGxvZyBmaWxl IGVudHJpZXMgdGhhdCBtYXRjaCB0aGlzIHNldCBvZiBjcml0ZXJpYSBhcmUgPHN0cm9uZz5u b3Q8L3N0cm9uZz4gaW5jbHVkZWQgaW4gdGhlIGxpc3QuIFVzZSB0aGlzIGluIHRoZSBzYW1l IG1hbm5lciBhcyA8Y29kZT5pbmNsdWRlPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdG5tIj5mcm9tPC9zcGFuPiA6IGRhdGUgLyB0aW1lIHN0YW1wICh3cml0dGVuIGluIEVu Z2xpc2gpIG9mIHRoZSA8ZW0+ZWFybGllc3Q8L2VtPiBkYXRlIHRvIGNvbnNpZGVyIGluIHRo ZSBsb2dzLiBZb3UgbWF5IHNwZWNpZnkgPGNvZGU+P21vbnRoPC9jb2RlPiBhbmQvb3IgPGNv ZGU+P3llYXI8L2NvZGU+IHRvIGhhdmUgdGhlIHBsdWdpbiByZXBsYWNlIGl0IHdpdGggdGhl IGN1cnJlbnQgbW9udGgveWVhci4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSI+dG88L3NwYW4+IDogZGF0ZSAvIHRpbWUgc3RhbXAgKHdyaXR0ZW4gaW4g RW5nbGlzaCkgb2YgdGhlIDxlbT5tb3N0IHJlY2VudDwvZW0+IGRhdGUgdG8gY29uc2lkZXIg aW4gdGhlIGxvZ3MuIFlvdSBtYXkgc3BlY2lmeSA8Y29kZT4/bW9udGg8L2NvZGU+IGFuZC9v ciA8Y29kZT4/eWVhcjwvY29kZT4gdG8gaGF2ZSB0aGUgcGx1Z2luIHJlcGxhY2UgaXQgd2l0 aCB0aGUgY3VycmVudCBtb250aC95ZWFyLiBEZWZhdWx0OiBjdXJyZW50IHRpbWU8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+d2l0aGluPC9zcGFuPiA6IGRhdGUgb2Zmc2V0ICh3 cml0dGVuIGluIEVuZ2xpc2gpIHdoaWNoIHNwZWNpZmllcyBhIHRpbWUgd2luZG93IGluIHdo aWNoIHlvdSBhcmUgaW50ZXJlc3RlZC4gRm9yIGV4YW1wbGUgPGNvZGU+d2l0aGluPSZxdW90 OzM2IGhvdXJzJnF1b3Q7PC9jb2RlPiB3b3VsZCBzaG93IHJlc3VsdHMgZnJvbSB0aGUgbGFz dCAzNiBob3Vycy4gSWYgeW91IHNwZWNpZnkgYSA8Y29kZT50bzwvY29kZT4gZGF0ZSwgdGhl IHZhbHVlIG9mIDxjb2RlPndpdGhpbjwvY29kZT4gaXMgc3VidHJhY3RlZCBmcm9tIGl0LiBJ ZiB5b3Ugc3BlY2lmeSBhIDxjb2RlPmZyb208L2NvZGU+IGRhdGUsIHRoZSB2YWx1ZSBvZiA8 Y29kZT53aXRoaW48L2NvZGU+IGlzIDxlbT5hZGRlZDwvZW0+IHRvIGl0LiBJZiB5b3Ugc3Bl Y2lmeSBib3RoIDxjb2RlPmZyb208L2NvZGU+IGFuZCA8Y29kZT50bzwvY29kZT4sIHRoZSBv ZmZzZXQgaXMgY2FsY3VsYXRlZCByZWxhdGl2ZSB0byB0aGUgPGNvZGU+dG88L2NvZGU+IGF0 dHJpYnV0ZS4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJPC91bD4KCgk8dWw+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5zb3J0PC9zcGFuPiA6IG9yZGVyIHRoZSBsaXN0IGJ5IGVpdGhlciA8 Y29kZT50aW1lPC9jb2RlPiwgb3IgPGNvZGU+cG9wdWxhcml0eTwvY29kZT4uIEFkZCA8Y29k ZT5hc2M8L2NvZGU+IG9yIDxjb2RlPmRlc2M8L2NvZGU+IHRvIGNob29zZSBhc2NlbmRpbmcg b3IgZGVzY2VuZGluZyBzb3J0IG9yZGVyLiBEZWZhdWx0OiA8Y29kZT50aW1lIGRlc2M8L2Nv ZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxpbWl0PC9zcGFuPiA6IHNob3cg dGhpcyBtYW55IGl0ZW1zIGluIHRoZSBsaXN0LiAwID0gdW5saW1pdGVkLiBEZWZhdWx0OiAx MDwvbGk+Cgk8L3VsPgoKCTxoND5BcnRpY2xlIGZpbHRlciBhdHRyaWJ1dGVzPC9oND4KCgk8 dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5zdGF0dXM8L3NwYW4+IDogT25seSBhcnRp Y2xlcyB3aXRoIG9uZSBvZiB0aGVzZSBsaXN0ZWQgc3RhdHVzIHZhbHVlcyBhcmUgZGlzcGxh eWVkIGluIHRoZSBsaXN0LiBEZWZhdWx0OiA0ICg8Y29kZT5saXZlPC9jb2RlPik8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dGltZTwvc3Bhbj4gOiBJZiBhbiBhcnRpY2xlIGlu IHRoZSBsb2cgaGFzIGl0cyBwb3N0ZWQgdGltZXN0YW1wIGluIHRoZSB0aW1lIHBlcmlvZCBp bmRpY2F0ZWQgaW4gdGhpcyBhdHRyaWJ1dGUsIGl0IHdpbGwgYmUgZGlzcGxheWVkLiBDaG9v c2UgZnJvbSA8Y29kZT5hbnk8L2NvZGU+LCA8Y29kZT5mdXR1cmU8L2NvZGU+IG9yIDxjb2Rl PnBhc3Q8L2NvZGU+ICh0aGUgZGVmYXVsdCkuIExlYXZpbmcgdGhpcyBhdCBpdHMgZGVmYXVs dCBwcmV2ZW50cyBhbnkgZnV0dXJlLWRhdGVkIGFydGljbGVzIHRoYXQgeW91IG1heSBiZSBw cmV2aWV3aW5nIGZyb20gc2hvd2luZyB1cCBpbiB0aGUgbGlzdDwvbGk+Cgk8L3VsPgoKCTxo ND5EaXNwbGF5IGF0dHJpYnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPndyYXB0YWc8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnLCB3aXRob3V0IGl0cyBicmFj a2V0cywgdG8gd3JhcCB0aGUgbGlzdCB3aXRoLiBEZWZhdWx0OiB1bnNldDwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj5jbGFzczwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9ImNh cHMiPkNTUzwvc3Bhbj4gY2xhc3MgbmFtZSB0byBhcHBseSB0byB0aGUgd3JhcHRhZy4gRGVm YXVsdDogPGNvZGU+c21kX2xhdGVseTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+YnJlYWs8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnLCB3aXRob3V0IGl0cyBicmFj a2V0cywgdG8gd3JhcCBlYWNoIGl0ZW0gd2l0aC4gRGVmYXVsdDogPGNvZGU+YnI8L2NvZGU+ PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxhYmVsPC9zcGFuPiA6IHRoZSBsYWJl bCB0ZXh0IHRvIGFkZCB0byB0aGUgdG9wIG9mIHRoZSBsaXN0LiBEZWZhdWx0OiB1bnNldDwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5sYWJlbHRhZzwvc3Bhbj4gOiB0aGUgKFgp SFRNTCB0YWcsIHdpdGhvdXQgaXRzIGJyYWNrZXRzLCB0byB3cmFwIHRoZSBsYWJlbCB3aXRo LiBEZWZhdWx0OiB1bnNldDwvbGk+Cgk8L3VsPgoKCTxoND5QbHVnaW4gY29uZmlndXJhdGlv biBhdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5mb3Jt PC9zcGFuPiA6IGlmIHlvdSBwcmVmZXIgdG8gdXNlIGEgZm9ybSBpbnN0ZWFkIG9mIHRoZSBj b250YWluZXIgdG8gaG9sZCB5b3VyIG1hcmt1cCBhbmQgdGFncywgc3BlY2lmeSBpdCBoZXJl LiBEZWZhdWx0OiB1bnNldDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kZWxpbTwv c3Bhbj4gOiB0aGUgZGVsaW1pdGVyIHRvIHVzZSBiZXR3ZWVuIGl0ZW1zIGluIGF0dHJpYnV0 ZSBsaXN0cyAoPGNvZGU+c2VjdGlvbjwvY29kZT4sIDxjb2RlPmluY2x1ZGU8L2NvZGU+LCA8 Y29kZT5leGNsdWRlPC9jb2RlPiwgPGNvZGU+c3RhdHVzPC9jb2RlPikuIERlZmF1bHQ6IGNv bW1hPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnBhcmFtX2RlbGltPC9zcGFuPiA6 IHRoZSBkZWxpbWl0ZXIgdG8gdXNlIGJldHdlZW4gcGFyYW1ldGVycyBpbnNpZGUgYW4gYXR0 cmlidXRlICg8Y29kZT5pbmNsdWRlPC9jb2RlPiwgPGNvZGU+ZXhjbHVkZTwvY29kZT4pLiBE ZWZhdWx0OiBjb2xvbjwvbGk+Cgk8L3VsPgoKCTxoMyBjbGFzcz0iYXR0cyI+UmVwbGFjZW1l bnQgdmFyaWFibGVzPC9oMz4KCgk8cD5JbiBhZGRpdGlvbiB0byByZWd1bGFyIDxzcGFuIGNs YXNzPSJjYXBzIj5UWFA8L3NwYW4+IGFydGljbGUgdGFncywgeW91IG1heSBlbXBsb3kgYW55 IG9mIHRoZSBmb2xsb3dpbmcgY29kZXMgaW4geW91ciBmb3JtL2NvbnRhaW5lciB0byBkaXNw bGF5IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlOjwvcD4KCgk8dWw+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG5tIj57c21kX2xhdGVseV9jb3VudH08L3NwYW4+IDogdGhlIG51bWJlciBvZiB0 aW1lcyB0aGUgYXJ0aWNsZSBoYXMgYmVlbiBhY2Nlc3NlZDwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG5tIj57c21kX2xhdGVseV9mdWxsZGF0ZX08L3NwYW4+IDogdGhlIGFydGljbGUm IzgyMTc7cyBsYXN0IGFjY2VzcyBkYXRlIHN0YW1wPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPntzbWRfbGF0ZWx5X2RhdGV9PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3O3Mg bGFzdCBhY2Nlc3MgZGF0ZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xh dGVseV9kYXRlX3llYXJ9PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3O3MgbGFzdCBhY2Nl c3MgeWVhcjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xhdGVseV9kYXRl X21vbnRofTwvc3Bhbj4gOiB0aGUgYXJ0aWNsZSYjODIxNztzIGxhc3QgYWNjZXNzIG1vbnRo IChudW1iZXIpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRfbGF0ZWx5X2Rh dGVfbW9udGhuYW1lfTwvc3Bhbj4gOiB0aGUgYXJ0aWNsZSYjODIxNztzIGxhc3QgYWNjZXNz IG1vbnRoIChmdWxsIG5hbWUpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRf bGF0ZWx5X2RhdGVfZGF5fTwvc3Bhbj4gOiB0aGUgYXJ0aWNsZSYjODIxNztzIGxhc3QgYWNj ZXNzIGRheSAobnVtYmVyKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xh dGVseV9kYXRlX2RheW5hbWV9PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3O3MgbGFzdCBh Y2Nlc3MgZGF5IChmdWxsIG5hbWUpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntz bWRfbGF0ZWx5X3RpbWV9PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3O3MgbGFzdCBhY2Nl c3MgdGltZSBzdGFtcDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xhdGVs eV90aW1lX2hvdXJ9PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3O3MgbGFzdCBhY2Nlc3Mg aG91cjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xhdGVseV90aW1lX21p bnV0ZX08L3NwYW4+IDogdGhlIGFydGljbGUmIzgyMTc7cyBsYXN0IGFjY2VzcyBtaW51dGU8 L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlfdGltZV9zZWNvbmR9 PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3O3MgbGFzdCBhY2Nlc3Mgc2Vjb25kPC9saT4K CTwvdWw+CgoJPGgzIGlkPSJjYXZlYXRzIj5DYXZlYXRzPC9oMz4KCgk8cD5TaW5jZSB0aGUg cGx1Z2luIHVzZXMgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGxvZ3MgeW91 IG5lZWQgdG8gbWFrZSBzdXJlIHRoZXkgYXJlIGJlaW5nIHVzZWQgKEFkbWluLSZndDtCYXNp YyBQcmVmcykuIEl0IGFsc28gbWVhbnMgdGhhdCBhbnkgdmlzaXRvcnMgdXNpbmcgYW4gYW5v bnltaXNpbmcgcHJveHkgd2lsbCBnZXQgc3B1cmlvdXMgKG9yIG5vKSByZXN1bHRzLiBUaGVp ciBsb3NzLjwvcD4KCgk8aDIgY2xhc3M9ImV4YW1wbGVzIj5FeGFtcGxlczwvaDI+CgoJPGgz IGlkPSJlZzEiPkV4YW1wbGUgMTogcmVjZW50IGFydGljbGUgbGlzdCBmb3IgY3VycmVudCB2 aXNpdG9yPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZs dDt0eHA6c21kX2xhdGVseSAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJlZzIiPkV4 YW1wbGUgMjogcmVjZW50IGFydGljbGVzIGZvciBhbGwgdmlzaXRvcnM8L2gzPgoKPHByZSBj bGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfbGF0ZWx5IGJ5 PSZxdW90OyZxdW90OyBzZWN0aW9uPSZxdW90O2FyY2hpdmUsIGFib3V0JnF1b3Q7IC8mZ3Q7 CjwvY29kZT48L3ByZT4KCgk8cD5Pbmx5IHNob3dzIHRoZSBhcnRpY2xlcyB2aWV3ZWQgZnJv bSB0aGUgJiM4MjE2O2FyY2hpdmUmIzgyMTc7IGFuZCAmIzgyMTY7YWJvdXQmIzgyMTc7IHNl Y3Rpb25zLjwvcD4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAzOiBtb3N0IHBvcHVsYXIgYXJ0 aWNsZXMgYWNyb3NzIHRoZSBzaXRlPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBj bGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2xhdGVseSBieT0mcXVvdDsmcXVvdDsgc29ydD0m cXVvdDtwb3B1bGFyaXR5JnF1b3Q7ICAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+V2l0aG91 dCB1c2luZyB0aGUgPGNvZGU+Ynk8L2NvZGU+IGF0dHJpYnV0ZSwgdGhpcyB3b3VsZCBnaXZl IHRoZSBtb3N0IHBvcHVsYXIgYXJ0aWNsZXMgZm9yIHRoZSBjdXJyZW50IHZpc2l0b3IgJiM4 MjEyOyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudCE8L3A+CgoJPGgzIGlkPSJlZzQiPkV4 YW1wbGUgNDogdGFnIGFzIGEgY29udGFpbmVyPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48 Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2xhdGVseSBieT0mcXVvdDsmcXVvdDsK ICAgICB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGJyZWFrPSZxdW90O2xpJnF1b3Q7IGxpbWl0 PSZxdW90OzYmcXVvdDsmZ3Q7CiAgICZsdDt0eHA6cGVybWxpbmsmZ3Q7Jmx0O3R4cDp0aXRs ZSAvJmd0OyZsdDsvdHhwOnBlcm1saW5rJmd0OyBbe3NtZF9sYXRlbHlfY291bnR9XSZsdDti ciAvJmd0OwogICAmbHQ7dHhwOnBvc3RlZCAvJmd0OyBieSAmbHQ7dHhwOmF1dGhvciAvJmd0 OwombHQ7L3R4cDpzbWRfbGF0ZWx5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+U2hvd3MgdGhl IDYgbW9zdCByZWNlbnQgYXJ0aWNsZXMgYWNjZXNzZWQgYnkgYW55IHNpdGUgdmlzaXRvci4g VGhlIHVub3JkZXJlZCBsaXN0IG91dHB1dCBjb250YWlucyBhIHBlcm1saW5rZWQgdGl0bGUs IHRoZSBkYXRlIHRoZSBhcnRpY2xlIHdhcyBwb3N0ZWQgYW5kIHRoZSBhcnRpY2xlJiM4MjE3 O3MgYXV0aG9yLjwvcD4KCgk8aDMgaWQ9ImVnNSI+RXhhbXBsZSA1OiBmaWx0ZXJpbmcgYnkg aG9zdDwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7 dHhwOnNtZF9sYXRlbHkgYnk9JnF1b3Q7JnF1b3Q7CiAgICAgd3JhcHRhZz0mcXVvdDt1bCZx dW90OyBicmVhaz0mcXVvdDtsaSZxdW90OyBsaW1pdD0mcXVvdDs2JnF1b3Q7CiAgICAgZXhj bHVkZT0mcXVvdDtob3N0OmlkMzQ1Ni1idC5jdXN0cmVmLmNvbSwgcmVmZXI6JnF1b3Q7Jmd0 OwogICAmbHQ7dHhwOnBlcm1saW5rJmd0OyZsdDt0eHA6dGl0bGUgLyZndDsmbHQ7L3R4cDpw ZXJtbGluayZndDsgW3tzbWRfbGF0ZWx5X2NvdW50fV0mbHQ7YnIgLyZndDsKJmx0Oy90eHA6 c21kX2xhdGVseSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlNob3dzIG9ubHkgcmVjb3JkcyB0 aGF0IGhhdmUgc29tZSByZWZlcmVyIGluZm9ybWF0aW9uIChpLmUuIHdlIGFyZSBleGNsdWRp bmcgZW50cmllcyB3aGVyZSByZWZlciA9IGVtcHR5KSBhbmQgdGhvc2UgdGhhdCBoYXZlIDxz cGFuIGNsYXNzPSJjYXBzIj5OT1Q8L3NwYW4+IGJlZW4gYWNjZXNzZWQgdmlhIHRoZSB1bmlx dWUgaG9zdG5hbWUgZ2l2ZW4gdG8geW91IGJ5IHlvdXIgPHNwYW4gY2xhc3M9ImNhcHMiPklT UDwvc3Bhbj4gJiM4MjEyOyBhc3N1bWluZyA8Y29kZT5pZDM0NTYtYnQuY3VzdHJlZi5jb208 L2NvZGU+IHNob3dzIHVwIGluIHRoZSAmIzgyMTY7aG9zdCYjODIxNzsgY29sdW1uIHdoZW5l dmVyIHlvdSBhY2Nlc3MgYSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBhcnRpY2xl LjwvcD4KCgk8cD5JZiB5b3UgYWRqdXN0ZWQgdGhlIGV4Y2x1ZGUgYXR0cmlidXRlIHRvIHJl YWQgPGNvZGU+ZXhjbHVkZT0mcXVvdDtob3N0Omxpa2U6YnQuY3VzdHJlZiZxdW90OzwvY29k ZT4gdGhlbiBhbnkgbG9nIGVudHJpZXMgd2l0aCA8Y29kZT5idC5jdXN0cmVmPC9jb2RlPiBp biB0aGVtIHdvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gY29uc2lkZXJhdGlvbi48L3A+CgoJPGgz IGlkPSJlZzYiPkV4YW1wbGUgNjogZmlsdGVyaW5nIGJ5IHRpbWUgcmFuZ2U8L2gzPgoKPHBy ZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfbGF0ZWx5 IGJ5PSZxdW90OyZxdW90OwogICAgIHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgYnJlYWs9JnF1 b3Q7bGkmcXVvdDsKICAgICBmcm9tPSZxdW90Oz95ZWFyLT9tb250aC0wMSZxdW90OyZndDsK ICAgJmx0O3R4cDpwZXJtbGluayZndDsmbHQ7dHhwOnRpdGxlIC8mZ3Q7Jmx0Oy90eHA6cGVy bWxpbmsmZ3Q7IFt7c21kX2xhdGVseV9jb3VudH1dJmx0O2JyIC8mZ3Q7CiZsdDsvdHhwOnNt ZF9sYXRlbHkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5TaG93cyBvbmx5IHRoZSBoaXRzIGdl bmVyYXRlZCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIGN1cnJlbnQgbW9udGggdW50aWwg bm93LiBUaGUgcmVjZW50IGxpc3Qgd2lsbCB0aHVzICYjODIxNjtyZXNldCYjODIxNzsgb24g dGhlIDFzdCBvZiBldmVyeSBtb250aC48L3A+CgoJPHA+SWYgeW91IHJlbW92ZWQgdGhlIDxj b2RlPmZyb208L2NvZGU+IGF0dHJpYnV0ZSBhbmQgdXNlZCA8Y29kZT53aXRoaW49JnF1b3Q7 MzAgZGF5cyZxdW90OzwvY29kZT4geW91IHdvdWxkIGluc3RlYWQgc2VlIGEgJiM4MjE2O3Jv bGxpbmcmIzgyMTc7IHRvdGFsIG9mIHRoZSBoaXRzIGluIHRoZSBwcmV2aW91cyAzMCBkYXlz ICh5b3UgY291bGQgYWxzbyB1c2UgPGNvZGU+d2l0aGluPSZxdW90OzEgbW9udGgmcXVvdDs8 L2NvZGU+IHRvIGdldCByb3VnaGx5IHRoZSBzYW1lIHJlc3VsdCkuPC9wPgoKCTxoMyBpZD0i Y2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gzPgoKCTxwPjIzIEp1bCAwOSB8IDAuMSB8IEluaXRp YWwgcmVsZWFzZTxiciAvPgoyNCBKdWwgMDkgfCAwLjExIHwgTWFkZSBiYWNrd2FyZHMgY29t cGF0aWJsZSB3aXRoIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IDQuMC44PGJyIC8+ CjEwIEF1ZyAwOSB8IDAuMTIgfCBOZXZlciBhc3N1bWUgd2hhdCByZW1haW5zIGluIHRoZSBm aWx0ZXJlZCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBpcyBhY3R1YWxseSBhbiBh cnRpY2xlPGJyIC8+CjExIFNlcCAwOSB8IDAuMTMgfCBBZGRlZCByZXBsYWNlbWVudCB2YXJz PGJyIC8+CjE5IEZlYiAxMCB8IDAuMiB8IEFkZGVkIDxjb2RlPnN0YXR1czwvY29kZT4sIDxj b2RlPnRpbWU8L2NvZGU+LCA8Y29kZT5pbmNsdWRlPC9jb2RlPiwgPGNvZGU+ZXhjbHVkZTwv Y29kZT4sIDxjb2RlPmRlbGltPC9jb2RlPiwgYW5kIDxjb2RlPnBhcmFtX2RlbGltPC9jb2Rl PiA7IGFydGljbGUgbGlzdCBub3cgZmlsdGVyZWQgYnkgPGNvZGU+dGltZT0mcXVvdDtwYXN0 JnF1b3Q7PC9jb2RlPiBhbmQgPGNvZGU+c3RhdHVzPSZxdW90OzQmcXVvdDs8L2NvZGU+IGJ5 IGRlZmF1bHQ8YnIgLz4KMTAgTWF5IDEwIHwgMC4yMSB8IEFkZGVkIDxjb2RlPmZyb208L2Nv ZGU+LCA8Y29kZT50bzwvY29kZT4gYW5kIDxjb2RlPndpdGhpbjwvY29kZT4gKHRoYW5rcyB0 aGVfZ2hvc3QpIDsgYWRkZWQgPGNvZGU+bGlrZTwvY29kZT4gbWF0Y2hpbmcgOyByZW1vdmVk IHNvbWUgcG93ZXItaHVuZ3J5IDxzcGFuIGNsYXNzPSJjYXBzIj5SRUdFWFA8L3NwYW4+IG9w ZXJhdG9ycyBpbiBmYXZvdXIgb2YgPHNwYW4gY2xhc3M9ImNhcHMiPkxJS0U8L3NwYW4+IHRv IGltcHJvdmUgcGVyZm9ybWFuY2U8L3A+Cgo8L2Rpdj4KPCEtLSAqKiogQkVHSU4gUExVR0lO IENTUyAqKiogLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiNzbWRfaGVscCB7IGxpbmUt aGVpZ2h0OjEuNSA7fQojc21kX2hlbHAgY29kZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQ6 IDEwNSUvMTMwJSAiQ291cmllciBOZXciLCBjb3VyaWVyLCBtb25vc3BhY2U7IGJhY2tncm91 bmQtY29sb3I6ICNGRkZGQ0M7fQojc21kX2hlbHAgY29kZS5ibG9jayB7IGZvbnQtd2VpZ2h0 Om5vcm1hbDsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgYmFja2dyb3VuZC1jb2xvcjogI2Yw ZTY4YzsgZGlzcGxheTpibG9jazsgbWFyZ2luOjEwcHggMTBweCAyMHB4OyBwYWRkaW5nOjEw cHg7IH0KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwg c2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxw IGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAw OyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRf aGVscCBoMyB7IGNvbG9yOiAjMjc1Njg1OyBmb250OiBib2xkIDEycHggQXJpYWwsIHNhbnMt c2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDA7dGV4dC10cmFu c2Zvcm06IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CiNzbWRfaGVs cCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNp bmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsg fQojc21kX2hlbHAgLmF0bm0geyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojMzNkOyB9CiNz bWRfaGVscCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5 OTsgfQojc21kX2hlbHAgdGFibGUge3dpZHRoOjkwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBh ZGRpbmctYm90dG9tOjFlbTt9CiNzbWRfaGVscCB0ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6 MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6LjVlbSAwO30KI3NtZF9oZWxwIHVsIHsgbGlzdC1z dHlsZS10eXBlOnNxdWFyZTsgfQojc21kX2hlbHAgLnJlcXVpcmVkIHtjb2xvcjpyZWQ7fQoj c21kX2hlbHAgbGkgeyBtYXJnaW46NXB4IDIwcHggNXB4IDMwcHg7IH0KI3NtZF9oZWxwIC5i cmVhayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+CjwhLS0gKioqIEVORCBQTFVHSU4g Q1NTICoqKiAtLT4KIjtzOjM6Im1kNSI7czozMjoiMGE1MmFjOGY2OGFjOTczYzQxNTE5NDlk NDQ5NWZiZjciO30=