# Name: smd_pagicle v0.2 # Type: Client side plugin # Automatic client-side pagination of articles using jQuery # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjExOiJzbWRfcGFnaWNsZSI7czo2OiJhdXRob3IiO3M6MTE6 IlN0ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nv bi5jb20vIjtzOjc6InZlcnNpb24iO3M6MzoiMC4yIjtzOjExOiJkZXNjcmlwdGlvbiI7czo1 NzoiQXV0b21hdGljIGNsaWVudC1zaWRlIHBhZ2luYXRpb24gb2YgYXJ0aWNsZXMgdXNpbmcg alF1ZXJ5IjtzOjQ6ImNvZGUiO3M6NzA4ODoiZnVuY3Rpb24gc21kX3BhZ2ljbGUoJGF0dHMs ICR0aGluZz0nJykgew0KCS8vIFBsdWdpbiBvcHRpb25zDQoJZXh0cmFjdChsQXR0cyhhcnJh eSgNCgkJJ2NvbnRhaW5lcicgPT4gJyNjb250ZW50JywNCgkJJ3NwbGl0YXQnID0+ICcnLA0K CQknc3BsaXR3cmFwdGFnJyA9PiAnaDInLA0KCQknaGVhZGVyJyA9PiAnaDEnLA0KCQknZm9v dGVyJyA9PiAnJywNCgkJJ2RlbGV0ZScgPT4gJ1NNRF9BVVRPJywNCgkJJ2ZvY3VzJyA9PiAn Ym9keTo0MDAnLA0KCQknYW5pbWF0ZScgPT4gJ29wYWNpdHk6c2hvdycsDQoJCSdhZGRuYXZ0 bycgPT4gJyNzbWRfcGFnbmF2JywNCgkJJ25hdmNsYXNzJyA9PiAnc21kX3BhZ2VzJywNCgkJ J25hdmFjdGl2ZScgPT4gJ3NtZF9jdXJycGFnZScsDQoJCSduYXZkaXNhYmxlZCcgPT4gJ3Nt ZF9kaXNhYmxlZCcsDQoJCSduYXZkaXNwbGF5JyA9PiAnZiBwICMgbiBsIGEnLA0KCQknbmF2 dGV4dCcgPT4gJycsDQoJKSwgJGF0dHMpKTsNCg0KCS8vIFNhbml0aXplIHRoZSBvcHRpb25z IHNvIHdlIGNhbiBndWFyYW50ZWUgdGhhdCBqUXVlcnkgYXQgbGVhc3QgaGFzIF9zb21ldGhp bmdfIHRvIHN3aW5nIG9mZg0KCS8vIFRoaXMgcGFydCBzaW1wbHkgcmVhZmZpcm1zIHRoZSBk ZWZhdWx0cyBhYm92ZQ0KCWlmICgkc3BsaXR3cmFwdGFnICYmICRzcGxpdGF0ID09ICIiKSB7 DQoJCSRzcGxpdGF0ID0gIi4qIjsNCgl9DQoNCgkkbmF2cmVwcyA9IGFycmF5KCdmJyA9PiAn JmxhcXVvOycsICdwJyA9PiAnPCcsICduJyA9PiAnPicsICdsJyA9PiAnJnJhcXVvOycsICdh JyA9PiAnQWxsJyk7DQoJJGFuaW1hdGUgPSAoJGFuaW1hdGUpID8gJGFuaW1hdGUgOiAnb3Bh Y2l0eTpzaG93JzsNCgkkZGVsZXRlID0gKCRkZWxldGUpID8gJGRlbGV0ZSA6ICdTTURfQVVU Tyc7DQoJJGFkZG5hdnRvID0gKCRhZGRuYXZ0bykgPyAkYWRkbmF2dG8gOiAnI3NtZF9wYWdu YXYnOw0KCSRuYXZjbGFzcyA9ICgkbmF2Y2xhc3MpID8gJG5hdmNsYXNzIDogJ3NtZF9wYWdl cyc7DQoJJG5hdmFjdGl2ZSA9ICgkbmF2YWN0aXZlKSA/ICRuYXZhY3RpdmUgOiAnc21kX2N1 cnJwYWdlJzsNCgkkbmF2ZGlzYWJsZWQgPSAoJG5hdmRpc2FibGVkKSA/ICRuYXZkaXNhYmxl ZCA6ICdzbWRfZGlzYWJsZWQnOw0KCSRuYXZ0ZXh0ID0gZG9fbGlzdCgkbmF2dGV4dCk7DQoJ Zm9yZWFjaCAoJG5hdnRleHQgYXMgJG5hdml0KSB7DQoJCSRuYXZpdCA9IGV4cGxvZGUoIjoi LCAkbmF2aXQpOw0KCQlpZihhcnJheV9rZXlfZXhpc3RzKCRuYXZpdFswXSwgJG5hdnJlcHMp ICYmIGlzc2V0KCRuYXZpdFsxXSkpIHsNCgkJCSRuYXZyZXBzWyRuYXZpdFswXV0gPSAkbmF2 aXRbMV07DQoJCX0NCgl9DQoNCgkvLyBSZW1vdmUgc3BhY2VzIGJldHdlZW4gaXRlbXMgaW4g YWRkbmF2dG8gYW5kIG1ha2UgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdA0KCSRhZGRuYXZ0byA9 IGltcGxvZGUoIiwiLCBkb19saXN0KCRhZGRuYXZ0bykpOw0KDQoJLy8gT3B0aW9uYWwgaXRl bXMNCgkkdGhlY2xhc3MgPSAoJG5hdmNsYXNzKSA/ICcgY2xhc3M9IicuJG5hdmNsYXNzLici JyA6ICcgY2xhc3M9InNtZF9wYWdlcyInOw0KCSR0aGVhY3RpdmUgPSAoJG5hdmNsYXNzICYm ICRuYXZhY3RpdmUpID8gJyBjbGFzcz0iJy4kbmF2Y2xhc3MuJyAnLiRuYXZhY3RpdmUuJyIn IDogKCgkbmF2YWN0aXZlKSA/ICcgY2xhc3M9IicuJG5hdmFjdGl2ZS4nIicgOiAnJyk7DQoJ JHN3cmFwX2JlZyA9ICgkc3BsaXR3cmFwdGFnKSA/ICc8Jy4kc3BsaXR3cmFwdGFnLic+JyA6 ICcnOw0KCSRzd3JhcF9lbmQgPSAoJHNwbGl0d3JhcHRhZykgPyAnPC8nLiRzcGxpdHdyYXB0 YWcuJz4nIDogJyc7DQoNCgkvLyBBdXRvbWF0aWMgZGVmYXVsdA0KCWlmICgkZGVsZXRlID09 ICJTTURfQVVUTyIpIHsNCgkJJGRlbGV0ZSA9ICgkc3BsaXR3cmFwdGFnKSA/IDAgOiAxOw0K CX0NCg0KCS8vIHNwbGl0IHRoZSBuYXZkaXNwbGF5IGludG8gaXRzIGNoYXJhY3RlcnMgZm9y IG1ha2luZyBhIGpzIGFycmF5DQoJJG5hdml0ZW1zID0gaW1wbG9kZSgiLCIsIGRvQXJyYXko cHJlZ19zcGxpdCgnLy8nLCAkbmF2ZGlzcGxheSwgLTEsIFBSRUdfU1BMSVRfTk9fRU1QVFkp LCAnZG9RdW90ZScpKTsNCg0KCS8vIEhhbmRsZSB0aGUgZm9jdXMgZWxlbWVudA0KCSRqZm9j dXMgPSAnJzsNCglpZiAoJGZvY3VzKSB7DQoJCSRmb2N1c0l0ZW1zID0gZG9fbGlzdCgkZm9j dXMsICc6Jyk7DQoJCSRqZm9jdXMgPSAoaXNzZXQoJGZvY3VzSXRlbXNbMF0pKSA/ICRmb2N1 c0l0ZW1zWzBdIDogJ2JvZHknOw0KCQkkamZvY3VzdGltZSA9IChpc3NldCgkZm9jdXNJdGVt c1sxXSkpID8gJGZvY3VzSXRlbXNbMV0gOiAnNDAwJzsNCgkJaWYgKCRqZm9jdXMpIHsNCgkJ CSRqZm9jdXMgPSAndmFyIHBvcyA9IGpRdWVyeSgiJyAuJGpmb2N1cy4gJyIpLm9mZnNldCgp Oyc7DQoJCQkkamZvY3VzIC49ICdqUXVlcnkoImh0bWwiKS5hbmltYXRlKHsgc2Nyb2xsVG9w OiBwb3MudG9wICsgInB4IiB9LCB7IGR1cmF0aW9uOiAnIC4oKCRqZm9jdXN0aW1lKSA/ICRq Zm9jdXN0aW1lIDogNDAwKS4nIH0pOyc7DQoJCX0NCgl9DQoNCgkvLyBIYW5kbGUgdGhlIGFu aW1hdGlvbiBlbGVtZW50DQoJJGphbmltYXRlID0gZG9fbGlzdCgkYW5pbWF0ZSk7DQoJJGVs ZW0gPSBhcnJheSgpOw0KCWZvcmVhY2ggKCRqYW5pbWF0ZSBhcyAkYW5pbW9wdCkgew0KCQlp ZiAodHJpbSgkYW5pbW9wdCkgPT0gJycpIGNvbnRpbnVlOw0KCQlsaXN0KCRqb2JqLCAkanZh bCkgPSBkb19saXN0KCRhbmltb3B0LCAiOiIpOw0KCQkkZWxlbVtdID0gZG9BcnJheSgkam9i aiwgJ2RvUXVvdGUnKS4gJzonLiBkb0FycmF5KCRqdmFsLCAnZG9RdW90ZScpOw0KCX0NCgkk amFuaW1hdGUgPSAoJGVsZW0pID8gInsiIC4gaW1wbG9kZSgiLCIsICRlbGVtKSAuICJ9IiA6 ICcnOw0KDQoJLy8gU2luY2UgdGhlIHJlZ2V4ICdjYXB0dXJlcycgdGhlIGRlbGltaXRlciwg dGhlIG1hdGNoZXMgYWx0ZXJuYXRlIGJldHdlZW4NCgkvLyBhIGJsb2NrIG9mIGNvbnRlbnQg KGV2ZW5zKSBhbmQgdGhlIGRlbGltaXRlciBpdHNlbGYgKG9kZHMpDQokb3V0ID0gPDw8RU9K Uw0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KIC8vPCFbQ0RBVEFbDQp2YXIg c21kX3BhZ19udW0gPSAxOw0KdmFyIHNtZF9wYWdfbWF4ID0gMTsNCnZhciBzbWRfcGFnZXMg PSBuZXcgQXJyYXkoKTsNCnZhciBzbWRfcGFnX2hkciA9ICcnOw0KdmFyIHNtZF9wYWdfZnRy ID0gJyc7DQoNCmZ1bmN0aW9uIHNtZF9wYWdpY2xlKCkgew0KCXZhciBwYWdlZCA9ICcnOw0K CXZhciBuYXYgPSAnJzsNCgl2YXIgaWR4ID0gMDsNCgl2YXIgY3RyID0gMTsNCgl2YXIgbmF2 aXRlbXMgPSBbeyRuYXZpdGVtc31dOw0KDQoJaWYgKCd7JGhlYWRlcn0nICE9ICcnKSB7DQoJ CXNtZF9wYWdfaGRyID0galF1ZXJ5KCJ7JGhlYWRlcn0iKTsNCgl9DQoJaWYgKCd7JGZvb3Rl cn0nICE9ICcnKSB7DQoJCXNtZF9wYWdfZnRyID0galF1ZXJ5KCJ7JGZvb3Rlcn0iKTsNCgl9 DQoNCgkvLyBTdGFzaCB0aGUgZnVsbCBwYWdlDQoJc21kX3BhZ2VzWzBdID0galF1ZXJ5KCJ7 JGNvbnRhaW5lcn0iKS5odG1sKCk7DQoNCgl2YXIgcmVnID0gbmV3IFJlZ0V4cCgiKHskc3dy YXBfYmVnfXskc3BsaXRhdH17JHN3cmFwX2VuZH0pIik7DQoJalF1ZXJ5KCJ7JGNvbnRhaW5l cn0iKS5lYWNoKGZ1bmN0aW9uKGNvbnRlbnQpIHsNCgkJc21kX3BhZ2VwYXJ0cyA9IGpRdWVy eSh0aGlzKS5odG1sKCkuc3BsaXQocmVnKTsNCgkJdmFyIGNhcHR1cmUgPSAnJzsNCgkJalF1 ZXJ5KHNtZF9wYWdlcGFydHMpLmVhY2goZnVuY3Rpb24ocGFydCkgew0KCQkJaWYgKGlkeCUy ID09IDEgJiYgeyRkZWxldGV9PT0wKSB7IC8vIEZvciBvZGQgcGFydHMgdGhhdCBhcmUgbm90 IHRvIGJlIHJlbW92ZWQNCgkJCQljYXB0dXJlID0gdGhpczsNCgkJCX0NCgkJCWlmIChpZHgl MiA9PSAwKSB7DQoJCQkJLy8gU3RvcmUgdGhlIGluZGl2aWR1YWwgcGFnZXMNCgkJCQlzbWRf cGFnZXNbY3RyXSA9IGNhcHR1cmUgKyB0aGlzOw0KCQkJCWN0cisrOw0KCQkJfQ0KCQkJaWR4 Kys7DQoJCX0pOw0KCX0pOw0KDQoJc21kX3BhZ19tYXggPSBjdHItMTsNCg0KCS8vIEFkZCB0 aGUgcGFnaW5nIG9wdGlvbnMgaWYgcmVxdWlyZWQNCglpZiAoc21kX3BhZ19tYXg+MSkgew0K CQlqUXVlcnkuZWFjaChuYXZpdGVtcywgZnVuY3Rpb24oKSB7DQoJCQlzd2l0Y2godGhpcy50 b1N0cmluZygpKSB7DQoJCQkJY2FzZSAnYSc6DQoJCQkJCW5hdiArPSAnPGEgaWQ9InNtZF9h bGwiIGhyZWY9IiMieyR0aGVjbGFzc30gb25jbGljaz0ic21kX3BhZ19zaG93KFwnYWxsXCcp O3JldHVybihmYWxzZSk7Ij57JG5hdnJlcHNbJ2EnXX08L2E+JzsNCgkJCQkJYnJlYWs7DQoJ CQkJY2FzZSAnZic6DQoJCQkJCW5hdiArPSAnPGEgaWQ9InNtZF9mc3QiIGhyZWY9IiMieyR0 aGVjbGFzc30gb25jbGljaz0ic21kX3BhZ19zaG93KFwnMVwnKTtyZXR1cm4oZmFsc2UpOyI+ eyRuYXZyZXBzWydmJ119PC9hPic7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2wnOg0KCQkJ CQluYXYgKz0gJzxhIGlkPSJzbWRfbHN0IiBocmVmPSIjInskdGhlY2xhc3N9IG9uY2xpY2s9 InNtZF9wYWdfc2hvdyhcJycgK3NtZF9wYWdfbWF4KyAnXCcpO3JldHVybihmYWxzZSk7Ij57 JG5hdnJlcHNbJ2wnXX08L2E+JzsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAncCc6DQoJCQkJ CW5hdiArPSAnPGEgaWQ9InNtZF9wcnYiIGhyZWY9IiMieyR0aGVjbGFzc30gb25jbGljaz0i c21kX3BhZ19zaG93KFwnLTFcJyk7cmV0dXJuKGZhbHNlKTsiPnskbmF2cmVwc1sncCddfTwv YT4nOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICduJzoNCgkJCQkJbmF2ICs9ICc8YSBpZD0i c21kX254dCIgaHJlZj0iIyJ7JHRoZWNsYXNzfSBvbmNsaWNrPSJzbWRfcGFnX3Nob3coXCcr MVwnKTtyZXR1cm4oZmFsc2UpOyI+eyRuYXZyZXBzWyduJ119PC9hPic7DQoJCQkJCWJyZWFr Ow0KCQkJCWNhc2UgJyMnOg0KCQkJCQlmb3IgKGpkeCA9IDE7IGpkeCA8IGN0cjsgamR4Kysp IHsNCgkJCQkJCW5hdiArPSAnIDxhIGhyZWY9IiMiJyArKChzbWRfcGFnX251bT09amR4KSA/ ICd7JHRoZWFjdGl2ZX0nIDogJ3skdGhlY2xhc3N9JykrICciIG9uY2xpY2s9InNtZF9wYWdf c2hvdyhcJycgK2pkeCsgJ1wnKTtyZXR1cm4oZmFsc2UpOyI+JyAramR4KyAnPC9hPic7DQoJ CQkJCX0NCgkJCQkJYnJlYWs7DQoJCQkJZGVmYXVsdDoNCgkJCQkJbmF2ICs9ICcgJzsNCgkJ CQkJYnJlYWs7DQoJCQl9DQoJCX0pOw0KCQlqUXVlcnkoInskYWRkbmF2dG99IikuZWFjaChm dW5jdGlvbigpIHsNCgkJCWpRdWVyeSh0aGlzKS5hcHBlbmQobmF2KTsNCgkJfSk7DQoJfQ0K fQ0KDQovLyBEaXNwbGF5IGEgcGFydGljdWFsciBwYWdlDQpmdW5jdGlvbiBzbWRfcGFnX3No b3coZGlyKSB7DQoJaWYgKGRpcj09ImFsbCIpIHsNCgkJalF1ZXJ5KCJhLnskbmF2Y2xhc3N9 IikucmVwbGFjZVdpdGgoJycpOw0KCQlzbWRfcGFnX251bSA9IDA7DQoJfSBlbHNlIHsNCgkJ cmUgPSAvKFwrfFwtKT8oXGQrKS87DQoJCW1hdGNoZXMgPSByZS5leGVjKGRpcik7DQoJCWlm IChtYXRjaGVzWzFdID09ICIrIiAmJiBzbWRfcGFnX251bSA8IHNtZF9wYWdfbWF4KSB7DQoJ CQlzbWRfcGFnX251bSsrOw0KCQl9DQoJCWlmIChtYXRjaGVzWzFdID09ICItIiAmJiBzbWRf cGFnX251bSA+IDEpIHsNCgkJCXNtZF9wYWdfbnVtLS07DQoJCX0NCgkJaWYgKG1hdGNoZXNb MV0gPT0gbnVsbCkgew0KCQkJc21kX3BhZ19udW0gPSBtYXRjaGVzWzJdOw0KCQl9DQoJfQ0K DQoJLy8gU2hvdyB0aGUgcGFnZQ0KCWpRdWVyeSgieyRjb250YWluZXJ9IikuaGlkZSgpOw0K CWpRdWVyeSgieyRjb250YWluZXJ9IikuZW1wdHkoKTsNCglpZiAoc21kX3BhZ19oZHIgJiYg KHNtZF9wYWdfbnVtID4gMSkpIHsNCgkJalF1ZXJ5KCJ7JGNvbnRhaW5lcn0iKS5wcmVwZW5k KHNtZF9wYWdfaGRyKTsNCgl9DQoJalF1ZXJ5KCJ7JGNvbnRhaW5lcn0iKS5hcHBlbmQoc21k X3BhZ2VzW3NtZF9wYWdfbnVtXSk7DQoJaWYgKHNtZF9wYWdfZnRyICYmIChzbWRfcGFnX251 bSA8IHNtZF9wYWdfbWF4LTEpKSB7DQoJCWpRdWVyeSgieyRjb250YWluZXJ9IikuYXBwZW5k KHNtZF9wYWdfZnRyKTsNCgl9DQoJaWYgKCJ7JGphbmltYXRlfSIgIT0gIiIpIHsNCgkJalF1 ZXJ5KCJ7JGNvbnRhaW5lcn0iKS5hbmltYXRlKHskamFuaW1hdGV9KTsNCgl9DQoNCglpZiAo c21kX3BhZ19udW09PTEpIHsNCgkJalF1ZXJ5KCIjc21kX2ZzdCIpLmFkZENsYXNzKCJ7JG5h dmRpc2FibGVkfSIpOw0KCQlqUXVlcnkoIiNzbWRfcHJ2IikuYWRkQ2xhc3MoInskbmF2ZGlz YWJsZWR9Iik7DQoJfSBlbHNlIHsNCgkJalF1ZXJ5KCIjc21kX2ZzdCIpLnJlbW92ZUNsYXNz KCJ7JG5hdmRpc2FibGVkfSIpOw0KCQlqUXVlcnkoIiNzbWRfcHJ2IikucmVtb3ZlQ2xhc3Mo InskbmF2ZGlzYWJsZWR9Iik7DQoJfQ0KCWlmIChzbWRfcGFnX251bT09c21kX3BhZ19tYXgp IHsNCgkJalF1ZXJ5KCIjc21kX2xzdCIpLmFkZENsYXNzKCJ7JG5hdmRpc2FibGVkfSIpOw0K CQlqUXVlcnkoIiNzbWRfbnh0IikuYWRkQ2xhc3MoInskbmF2ZGlzYWJsZWR9Iik7DQoJfSBl bHNlIHsNCgkJalF1ZXJ5KCIjc21kX2xzdCIpLnJlbW92ZUNsYXNzKCJ7JG5hdmRpc2FibGVk fSIpOw0KCQlqUXVlcnkoIiNzbWRfbnh0IikucmVtb3ZlQ2xhc3MoInskbmF2ZGlzYWJsZWR9 Iik7DQoJfQ0KDQoJLy8gU2V0IHRoZSBjdXJyZW50IGNsYXNzDQoJalF1ZXJ5KCJhLnskbmF2 Y2xhc3N9IikuZWFjaChmdW5jdGlvbigpIHsNCgkJalF1ZXJ5KHRoaXMpLnJlbW92ZUNsYXNz KCJ7JG5hdmFjdGl2ZX0iKTsNCgkJaWYgKGpRdWVyeSh0aGlzKS50ZXh0KCkgPT0gc21kX3Bh Z19udW0pIHsNCgkJCWpRdWVyeSh0aGlzKS5hZGRDbGFzcygieyRuYXZhY3RpdmV9Iik7DQoJ CX0NCgl9KTsNCg0KCS8vIEFuZCBzY3JvbGwgdG8gdGhlIHRvcA0KCXskamZvY3VzfQ0KCXJl dHVybiBmYWxzZTsNCn0NCg0KalF1ZXJ5KGZ1bmN0aW9uKCkgew0KCXNtZF9wYWdpY2xlKCk7 DQoJaWYgKHNtZF9wYWdfbWF4PjEpIHsNCgkJc21kX3BhZ19zaG93KDEpDQoJfQ0KfSk7DQog Ly9dXT4NCjwvc2NyaXB0Pg0KRU9KUzsNCglyZXR1cm4gJG91dDsNCn0iO3M6NDoidHlwZSI7 czoxOiIwIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6NToiZmxhZ3MiO3M6MToiMCI7czo0OiJo ZWxwIjtzOjEyMDA2OiI8ZGl2IGlkPSJzbWRfaGVscCI+CgoJPGgxPnNtZF9wYWdpY2xlPC9o MT4KCgk8cD5BdXRvbWF0aWNhbGx5IHNwbGl0IGxvbmcgYXJ0aWNsZXMgaW50byBiaXRlLXNp emUgaHVua3Mgd2hpY2ggdmlzaXRvcnMgY2FuIG5hdmlnYXRlIGJldHdlZW4gdXNpbmcgdGhl IGhhbmR5IHBhZ2VyLiBUaGUgd2hvbGUgYXJ0aWNsZSBpcyBsb2FkZWQgaW4gb25lIGdvOyB0 aGUgdmFyaW91cyBwYWdlcyBhcmUgc2ltcGx5IHN3aXRjaGVkIGludG8gdmlldyB2aWEgalF1 ZXJ5LjwvcD4KCgk8aDIgaWQ9ImZlYXR1cmVzIj5GZWF0dXJlczwvaDI+CgoJPHVsPgoJCTxs aT5DaG9vc2Ugd2hlcmUgeW91IHNwbGl0IHRoZSBwYWdlOyBlaXRoZXIgdmlhIHNvbWUgZml4 ZWQgY29kZSB5b3VyIGF1dGhvcnMgY2FuIGVudGVyIGF0IGNob3NlbiBicmVhayBwb2ludHMs IG9yIGF0IHBhcnRpY3VsYXIgZWxlbWVudHMgb24gdGhlIHBhZ2UgKGUuZy4gYXQgZWFjaCA8 Y29kZT4mbHQ7aDImZ3Q7PC9jb2RlPik8L2xpPgoJCTxsaT5DaG9vc2UgdGhlIGpRdWVyeSBh bmltYXRpb24gZWZmZWN0IHlvdSB3aXNoIHRvIGFwcGx5IGJldHdlZW4gcGFnZXM8L2xpPgoJ CTxsaT5BdXRvLWZvY3VzIChzY3JvbGwpIGJhY2sgdG8gdGhlIHRvcCBvZiB0aGUgZG9jdW1l bnQgYXQgdGhlIHN0YXJ0IG9mIGVhY2ggdmlydHVhbCBwYWdlPC9saT4KCQk8bGk+TWFrZSBo ZWFkZXIgYW5kIGZvb3RlciBlbGVtZW50cyAod2hpY2ggYXJlIHVzdWFsbHkgb25seSBzaG93 biBvbiB0aGUgdG9wL2JvdHRvbSBvZiB0aGUgYXJ0aWNsZSwgcmVzcGVjdGl2ZWx5KSBhcHBl YXIgb24gZXZlcnkgdmlydHVhbCBwYWdlPC9saT4KCTwvdWw+CgoJPGgyIGlkPSJhdXRob3Ii PkF1dGhvciAvIGNyZWRpdHM8L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS9jb250YWN0Ij5TdGVmIERhd3NvbjwvYT4uPC9wPgoKCTxoMiBpZD0iaW5zdGFsbCI+ SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2gyPgoKCTxwPkRvd25sb2FkIHRoZSBw bHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVn aW5zLzExMDEvc21kX3BhZ2ljbGUiPnRleHRwYXR0ZXJuLm9yZzwvYT4sIG9yIHRoZSA8YSBo cmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+LCBwYXN0 ZSB0aGUgY29kZSBpbnRvIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBBZG1p biAtJmd0OyBQbHVnaW5zIHBhbmUsIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgcGx1Z2luLiBW aXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9w aWMucGhwP2lkPTMxMDg0Ij5mb3J1bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8g cmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4K Cgk8cD5UbyB1bmluc3RhbGwsIHNpbXBseSBkZWxldGUgZnJvbSB0aGUgQWRtaW4gLSZndDsg UGx1Z2lucyBwYWdlLjwvcD4KCgk8aDIgaWQ9InVzYWdlIj5Vc2FnZTwvaDI+CgoJPHA+U29t ZXdoZXJlIG9uIGFuIGluZGl2aWR1YWwgYXJ0aWNsZSBQYWdlIHB1dCBhIGNhbGwgdG8gPGNv ZGU+Jmx0O3R4cDpzbWRfcGFnaWNsZSAvJmd0OzwvY29kZT4uIENvbmZpZ3VyZSB0aGUgcGx1 Z2luIHVzaW5nIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczsgaXRlbXMgd2l0aCBhIGJvcmRl ciByb3VuZCB0aGVtIGFyZSBtYW5kYXRvcnksIGFsdGhvdWdoIHRoZSBkZWZhdWx0cyB1c3Vh bGx5IHN1ZmZpY2U6PC9wPgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0gbWFuZCI+ Y29udGFpbmVyPC9zcGFuPiA6IElEIG9mIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+RE9NPC9z cGFuPiB3cmFwcGVyIGVsZW1lbnQgdGhhdCBob2xkcyB5b3VyIGFydGljbGUgY29udGVudC4g RGVmYXVsdDogPGNvZGU+I2NvbnRlbnQ8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPnNwbGl0YXQ8L3NwYW4+IDogd2hhdCB5b3Ugd291bGQgbGlrZSB0byBzZWFyY2gg Zm9yIGluIHlvdXIgYXJ0aWNsZS4gRWFjaCB0aW1lIHRoZSBwbHVnaW4gZmluZHMgb25lIG9m IHRoZXNlIGl0ZW1zLCBhIG5ldyBwYWdlIHdpbGwgYmVnaW4uIEl0IGNhbiBlaXRoZXIgYmUg c29tZSB0ZXh0IHRoYXQgeW91IGVtYmVkIHdpdGhpbiB5b3VyIGFydGljbGUgYm9keSAoZS5n LiA8Y29kZT57UGFnZUhlcmV9PC9jb2RlPikgb3Igc29tZSBvdGhlciBjb250ZW50IHRoYXQg bWlnaHQgYXBwZWFyIGluc2lkZSBhbiA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4g dGFnIHBhaXIuIE5vdGUgdGhhdCBpZiB0aGlzIGlzIHVzZWQgaW4gdGFuZGVtIHdpdGggPGNv ZGU+c3BsaXR3cmFwdGFnPC9jb2RlPiB0aGVuIHlvdSBzaG91bGQgZWl0aGVyIHNwZWNpZnkg dGhlIGVudGlyZSBjb250ZW50IGluc2lkZSB0aGUgdGFnIE9SIHVzZSByZWd1bGFyIGV4cHJl c3Npb24gbm90YXRpb24gdG8gbWF0Y2ggcGFydCBvZiBpdC4gU2VlIGV4YW1wbGVzIDxhIGhy ZWY9IiNlZzMiPjM8L2E+IGFuZCA8YSBocmVmPSIjZWc0Ij40PC9hPiBmb3IgbW9yZS4gRGVm YXVsdDogdW5zZXQ8c3VwIGNsYXNzPSJmb290bm90ZSI+PGEgaHJlZj0iI2ZuODU1MDM5NDY5 NGE0MzNmN2U4N2M0ZSI+MTwvYT48L3N1cD48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+c3BsaXR3cmFwdGFnPC9zcGFuPiA6IGFuIChYKUhUTUwgdGFnIHdpdGhvdXQgYnJhY2tl dHMgdG8gc2VhcmNoIGZvci4gQ2FuIHdvcmsgdG9nZXRoZXIgd2l0aCA8Y29kZT5zcGxpdGF0 PC9jb2RlPiBvciBvbiBpdHMgb3duIHRvIHNlYXJjaCBmb3IgYW55IHBhcnRpY3VsYXIgc2V0 IG9mIGVsZW1lbnRzIGluc2lkZSB5b3VyIDxjb2RlPmNvbnRhaW5lcjwvY29kZT4uIERlZmF1 bHQ6IDxjb2RlPmgyPC9jb2RlPjxzdXAgY2xhc3M9ImZvb3Rub3RlIj48YSBocmVmPSIjZm44 NTUwMzk0Njk0YTQzM2Y3ZTg3YzRlIj4xPC9hPjwvc3VwPjwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG5tIj5kZWxldGU8L3NwYW4+IDogd2hldGhlciB5b3Ugd2lzaCB0byByZW1vdmUg dGhlIGVsZW1lbnQgYXQgd2hpY2ggeW91IGNob3NlIHRvIDxjb2RlPnNwbGl0YXQ8L2NvZGU+ IC8gPGNvZGU+c3BsaXR3cmFwdGFnPC9jb2RlPi4gVGhlIGRlZmF1bHQgaXMgYXV0b21hdGlj OiBmb3IgPGNvZGU+c3BsaXRhdDwvY29kZT4gKHVzZWQgb24gaXRzIG93bikgaXQgaXMgc2V0 IHRvIDEsIGFuZCBmb3IgPGNvZGU+c3BsaXR3cmFwdGFnPC9jb2RlPiBpdCBpcyBzZXQgdG8g MCB0byBwcmVzZXJ2ZSB0aGUgdGFnIGFuZCBpdHMgY29udGVudHM8L2xpPgoJCTxsaT48c3Bh biBjbGFzcz0iYXRubSI+aGVhZGVyPC9zcGFuPiA6IGEgcmVmZXJlbmNlIHRvIHRoZSA8c3Bh biBjbGFzcz0iY2FwcyI+RE9NPC9zcGFuPiBlbGVtZW50IHRoYXQgY29udGFpbnMgeW91ciBh cnRpY2xlIHRpdGxlLiBUaGlzIGlzIHNvIGl0IGNhbiBiZSByZXBlYXRlZCBhdCB0aGUgdG9w IG9mIGVhY2ggdmlydHVhbCBwYWdlLiBEZWZhdWx0OiA8Y29kZT5oMTwvY29kZT48L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Zm9vdGVyPC9zcGFuPiA6IGEgcmVmZXJlbmNlIHRv IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+RE9NPC9zcGFuPiBlbGVtZW50IHRoYXQgY29udGFp bnMgeW91ciBhcnRpY2xlIGZvb3Rlci4gTm9ybWFsbHkgdGhpcyB3b3VsZCBjb250YWluIHRo ZSBhcnRpY2xlIGNvbW1lbnRzLCBvciBzb21lIHJlbGF0ZWQgYXJ0aWNsZXMgdGhhdCB3b3Vs ZCBvbmx5IGJlIGRpc3BsYXllZCBhdCB0aGUgdmVyeSBlbmQgb2YgdGhlIGFydGljbGUuIElm IHlvdSB3aXNoIHRvIGNvcHkgdGhlIGZvb3RlciBjb250ZW50IGludG8gdGhlIGJvdHRvbSBv ZiBldmVyeSB2aXJ0dWFsIHBhZ2UsIHNwZWNpZnkgaXRzIDxzcGFuIGNsYXNzPSJjYXBzIj5E T008L3NwYW4+IHJlZmVyZW5jZSBoZXJlLiBEZWZhdWx0OiB1bnNldDwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG5tIj5hbmltYXRlPC9zcGFuPiA6IGxpc3Qgb2YgalF1ZXJ5IG5hbWU6 dmFsdWUgcGFpcnMgdG8gcGFzcyB0byB0aGUgPGEgaHJlZj0iaHR0cDovL2RvY3MuanF1ZXJ5 LmNvbS9FZmZlY3RzL2FuaW1hdGUiPmFuaW1hdGUoKTwvYT4gZnVuY3Rpb24uIEVhY2ggdGlt ZSB5b3UgY2xpY2sgYSBwYWdlIG51bWJlciwgdGhpcyBhbmltYXRpb24gZWZmZWN0IGlzIHBs YXllZC4gRGVmYXVsdDogPGNvZGU+b3BhY2l0eTpzaG93PC9jb2RlPjxzdXAgY2xhc3M9ImZv b3Rub3RlIj48YSBocmVmPSIjZm4xMjE0OTcxMzMwNGE0MzNmN2U4ODQxZSI+MjwvYT48L3N1 cD48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Zm9jdXM8L3NwYW4+IDogYSA8c3Bh biBjbGFzcz0iY2FwcyI+RE9NPC9zcGFuPiBlbGVtZW50IHJlZmVyZW5jZSB0byBzY3JvbGwg YmFjayB0bywgd2hlbmV2ZXIgYSBwYWdlIG51bWJlciBpcyBjbGlja2VkIGZyb20gdGhlIG5h di4gQ2FuIHRha2UgYW4gb3B0aW9uYWwgc2Nyb2xsIHNwZWVkIGluIG1pbGxpc2Vjb25kcyBi eSBzcGVjaWZ5aW5nIHRoZSBzcGVlZCB2YWx1ZSBhZnRlciBhIGNvbG9uLiBEZWZhdWx0OiA8 Y29kZT5ib2R5OjQwMDwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+YWRk bmF2dG88L3NwYW4+IDogPHNwYW4gY2xhc3M9ImNhcHMiPkRPTTwvc3Bhbj4gZWxlbWVudCB0 byB3aGljaCB0byBhZGQgdGhlIHBhZ2UgbnVtYmVycyBuYXZpZ2F0aW9uIHdpZGdldC4gVGhl IGVsZW1lbnQgeW91IG5hbWUgaGVyZSAmIzgyMTI7IGl0IG1heSBiZSBhIHNpbmdsZSBlbGVt ZW50IElEIG9yIGEgY2xhc3Mgc28geW91IGNhbiBhZGQgdGhlIHdpZGdldCB0byBtb3JlIHRo YW4gb25lIGVsZW1lbnQgJiM4MjEyOyBtdXN0IGFscmVhZHkgYmUgaW5jbHVkZWQgb24geW91 ciBwYWdlLiBEZWZhdWx0OiA8Y29kZT4jc21kX3BhZ25hdjwvY29kZT48c3VwIGNsYXNzPSJm b290bm90ZSI+PGEgaHJlZj0iI2ZuMTIxNDk3MTMzMDRhNDMzZjdlODg0MWUiPjI8L2E+PC9z dXA+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPm5hdmNsYXNzPC9zcGFuPiA6IGNs YXNzIHRvIGFwcGx5IHRvIHRoZSBuYXZpZ2F0aW9uIGNvbnRhaW5lci4gRGVmYXVsdDogPGNv ZGU+c21kX3BhZ2VzPC9jb2RlPjxzdXAgY2xhc3M9ImZvb3Rub3RlIj48YSBocmVmPSIjZm4x MjE0OTcxMzMwNGE0MzNmN2U4ODQxZSI+MjwvYT48L3N1cD48L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSI+bmF2YWN0aXZlPC9zcGFuPiA6IGNsYXNzIHRvIGluZGljYXRlIHRoZSBj dXJyZW50bHkgc2VsZWN0ZWQgcGFnZS4gRGVmYXVsdDogPGNvZGU+c21kX2N1cnJwYWdlPC9j b2RlPjxzdXAgY2xhc3M9ImZvb3Rub3RlIj48YSBocmVmPSIjZm4xMjE0OTcxMzMwNGE0MzNm N2U4ODQxZSI+MjwvYT48L3N1cD48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+bmF2 ZGlzYWJsZWQ8L3NwYW4+IDogZHVyaW5nIHRoZSBjb3Vyc2Ugb2YgbmF2aWdhdGluZyBwYWdl cywgdGhlIG5leHQvcHJldiBsaW5rcyBhcmUgc29tZXRpbWVzIG5vdCByZXF1aXJlZC4gU2lu Y2UgaXQgaXMgbm90IHBvc3NpYmUgaW4gPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+ IHRvICYjODIxNjtkaXNhYmxlJiM4MjE3OyBhbiBhbmNob3IsIHRoaXMgY2xhc3MgaXMgYXBw bGllZCB0byB0aGUgYXJyb3dzIHNvIHlvdSBtYXkgY2hvb3NlIHRvIHN0eWxlIHRoZW0gZGlm ZmVyZW50bHkuIERlZmF1bHQ6IDxjb2RlPnNtZF9kaXNhYmxlZDwvY29kZT48c3VwIGNsYXNz PSJmb290bm90ZSI+PGEgaHJlZj0iI2ZuMTIxNDk3MTMzMDRhNDMzZjdlODg0MWUiPjI8L2E+ PC9zdXA+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPm5hdmRpc3BsYXk8L3NwYW4+ IDogd2hpY2ggbmF2aWdhdGlvbiBlbGVtZW50cyB0byBzaG93LiBEZWZhdWx0OiA8Y29kZT5m IHAgIyBuIGwgYTwvY29kZT4gQ2hvb3NlIGZyb206Cgk8dWw+CgkJPGxpPjxzdHJvbmc+Zjwv c3Ryb25nPjogZmlyc3QgcGFnZSAoPGNvZGU+JmFtcDtsYXF1bzs8L2NvZGU+KTwvbGk+CgkJ PGxpPjxzdHJvbmc+cDwvc3Ryb25nPjogcHJldmlvdXMgcGFnZSAoPGNvZGU+JmFtcDtsdDs8 L2NvZGU+KTwvbGk+CgkJPGxpPjxzdHJvbmc+Izwvc3Ryb25nPjogdGhlIHBhZ2UgbnVtYmVy czwvbGk+CgkJPGxpPjxzdHJvbmc+bjwvc3Ryb25nPjogbmV4dCBwYWdlICg8Y29kZT4mYW1w O2d0OzwvY29kZT4pPC9saT4KCQk8bGk+PHN0cm9uZz5sPC9zdHJvbmc+OiBsYXN0IHBhZ2Ug KDxjb2RlPiZhbXA7cmFxdW87PC9jb2RlPik8L2xpPgoJCTxsaT48c3Ryb25nPmE8L3N0cm9u Zz46IHNob3cgZW50aXJlIGRvY3VtZW50LCBpLmUuIHR1cm4gb2ZmIHBhZ2luZyAoPGNvZGU+ QWxsPC9jb2RlPik8L2xpPgoJPC91bD48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ bmF2dGV4dDwvc3Bhbj4gOiBsaXN0IG9mIHRleHQgdmFsdWVzIHRvIHVzZSBmb3IgZWFjaCBv ZiB0aGUgY2hvc2VuIGl0ZW1zIGluIDxjb2RlPm5hdmRpc3BsYXk8L2NvZGU+LiBTcGVjaWZ5 IHRoZSBpdGVtIGNvZGUgKGYsIHAsIG4sIGwgb3IgYSkgZm9sbG93ZWQgYnkgYSBjb2xvbiBh bmQgdGhlbiB0aGUgdGV4dCB5b3Ugd2FudCB0byBhcHBlYXIgaW4gdGhlIG5hdiwgZS5nLiA8 Y29kZT5uYXZ0ZXh0PSZxdW90O2Y6Rmlyc3QsIGw6TGFzdCZxdW90OzwvY29kZT4uIEFueSBp dGVtcyB5b3UgZG8gbm90IHNwZWNpZnkgd2lsbCB1c2UgdGhlIGRlZmF1bHRzIGFzIGxpc3Rl ZCBhYm92ZTwvbGk+Cgk8L3VsPgoKCTxwIGlkPSJmbjg1NTAzOTQ2OTRhNDMzZjdlODdjNGUi IGNsYXNzPSJmb290bm90ZSI+PHN1cD4xPC9zdXA+IGF0IGxlYXN0IG9uZSBvZiBlaXRoZXIg PGNvZGU+c3BsaXQ8L2NvZGU+IG9yIDxjb2RlPnNwbGl0d3JhcHRhZzwvY29kZT4gYXJlIHJl cXVpcmVkLjwvcD4KCgk8cCBpZD0iZm4xMjE0OTcxMzMwNGE0MzNmN2U4ODQxZSIgY2xhc3M9 ImZvb3Rub3RlIj48c3VwPjI8L3N1cD4gaWYgYW55IG9mIHRoZXNlIGF0dHJpYnV0ZXMgYXJl IHVuc2V0ICg8Y29kZT49JnF1b3Q7JnF1b3Q7PC9jb2RlPikgaW4gdGhlIHRhZywgdGhleSB3 aWxsIGJlIHJlc2V0IHRvIHRoZWlyIGRlZmF1bHRzIGFnYWluLjwvcD4KCgk8aDIgaWQ9ImV4 YW1wbGVzIj5FeGFtcGxlczwvaDI+CgoJPGgzIGlkPSJlZzEiPkV4YW1wbGUgMTwvaDM+Cgo8 cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7ZGl2IGlkPSZxdW90 O3NtZF9wYWduYXYmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDt0eHA6c21kX3BhZ2ljbGUg Y29udGFpbmVyPSZxdW90OyNwYWdlbWFpbiZxdW90OwogICAgIGZvb3Rlcj0mcXVvdDsjbmF2 bG9jYWwmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoaXMgZXhhbXBsZSB3aWxs OjwvcD4KCgk8dWw+CgkJPGxpPnNwbGl0IHRoZSBkb2N1bWVudCBhdCA8Y29kZT4mbHQ7aDIm Z3Q7PC9jb2RlPiB0YWdzIGluc2lkZSB0aGUgPGNvZGU+cGFnZW1haW48L2NvZGU+IGNvbnRh aW5lciBkaXY8L2xpPgoJCTxsaT5hZGQgdGhlIHBhZ2UgbmF2aWdhdGlvbiB0byB0aGUgPGNv ZGU+c21kX3BhZ25hdjwvY29kZT4gZGl2PC9saT4KCQk8bGk+Y29weSB0aGUgPGNvZGU+I25h dmxvY2FsPC9jb2RlPiBlbGVtZW50IHRvIHRoZSBib3R0b20gb2YgZWFjaCBwYWdlPC9saT4K CTwvdWw+CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUgMjwvaDM+Cgo8cHJlIGNsYXNzPSJibG9j ayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7ZGl2IGNsYXNzPSZxdW90O3NtZF9wYWdpbmF0 aW9uJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwombHQ7dHhwOmFydGljbGUgLyZndDsKJmx0O2Rp diBjbGFzcz0mcXVvdDtzbWRfcGFnaW5hdGlvbiZxdW90OyZndDsmbHQ7L2RpdiZndDsKJmx0 O3R4cDpzbWRfcGFnaWNsZSBjb250YWluZXI9JnF1b3Q7I3BhZ2VtYWluJnF1b3Q7CiAgICAg c3BsaXRhdD0mcXVvdDt7bmV3cGFnZX0mcXVvdDsgc3BsaXR3cmFwdGFnPSZxdW90OyZxdW90 OwogICAgIGFkZG5hdnRvPSZxdW90Oy5zbWRfcGFnaW5hdGlvbiZxdW90OyAvJmd0Owo8L2Nv ZGU+PC9wcmU+CgoJPHA+VGhpcyBleGFtcGxlOjwvcD4KCgk8dWw+CgkJPGxpPnN0YXJ0cyBh IG5ldyBwYWdlIGV2ZXJ5IHRpbWUgdGhlIGJvZHkgaGFzIHRoZSBwaHJhc2UgPGNvZGU+e25l d3BhZ2V9PC9jb2RlPiBpbiBpdDwvbGk+CgkJPGxpPmFkZHMgdGhlIG5hdiBhYm92ZSBhbmQg YmVsb3cgdGhlIGFydGljbGUgYnkgdXNpbmcgYSBjbGFzcyBuYW1lIChub3RlIHRoZSA8Y29k ZT4uPC9jb2RlPiBpbiA8Y29kZT4uc21kX3BhZ2luYXRpb248L2NvZGU+IHRvIGluZGljYXRl IGl0IGlzIGEgY2xhc3Mgbm90IGFuIElEIHdlIGFyZSByZWZlcnJpbmcgdG8pPC9saT4KCTwv dWw+CgoJPHA+QWxzbyBub3RlIHRoYXQgPGNvZGU+c3BsaXR3cmFwdGFnPC9jb2RlPiBoYXMg YmVlbiB1bnNldC48L3A+CgoJPGgzIGlkPSJlZzMiPkV4YW1wbGUgMzwvaDM+Cgo8cHJlIGNs YXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7ZGl2IGlkPSZxdW90O3NtZF9w YWduYXYmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDt0eHA6c21kX3BhZ2ljbGUgY29udGFp bmVyPSZxdW90OyN3cmFwcGVyJnF1b3Q7CiAgICAgc3BsaXRhdD0mcXVvdDtDb21tZW50YXJ5 JnF1b3Q7IHNwbGl0d3JhcHRhZz0mcXVvdDtoMyZxdW90OwogICAgIGZvY3VzPSZxdW90O2gx OjEwMDAmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoaXMgZXhhbXBsZSB3aWxs OjwvcD4KCgk8dWw+CgkJPGxpPk9ubHkgc3BsaXQgdGhlIGRvY3VtZW50IHdoZXJldmVyIGl0 IGZpbmRzIDxjb2RlPiZsdDtoMyZndDtDb21tZW50YXJ5Jmx0Oy9oMyZndDs8L2NvZGU+IGlu c2lkZSB0aGUgPGNvZGU+d3JhcHBlcjwvY29kZT4gZGl2PC9saT4KCQk8bGk+U2Nyb2xsIHVw IHRvIHRoZSA8Y29kZT4mbHQ7aDEmZ3Q7PC9jb2RlPiB0YWcgYW5kIHRha2Ugb25lIHNlY29u ZCAoMTAwMCBtaWxsaXNlY29uZHMpIHRvIGRvIHNvIGVhY2ggdGltZSBhIHBhZ2UgbnVtYmVy IGlzIGNsaWNrZWQ8L2xpPgoJPC91bD4KCgk8aDMgaWQ9ImVnNCI+RXhhbXBsZSA0PC9oMz4K CjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDtkaXYgaWQ9JnF1 b3Q7c21kX3BhZ25hdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKJmx0O3R4cDpzbWRfcGFnaWNs ZSBjb250YWluZXI9JnF1b3Q7I3dyYXBwZXImcXVvdDsKICAgICBzcGxpdGF0PSZxdW90Oy4q cmVkLiomcXVvdDsgc3BsaXR3cmFwdGFnPSZxdW90O2gzJnF1b3Q7IC8mZ3Q7CjwvY29kZT48 L3ByZT4KCgk8cD5UaGlzIGV4YW1wbGUgd2lsbCBzcGxpdCB0aGUgZG9jdW1lbnQgd2hlcmV2 ZXIgaXQgZmluZHMgYW4gPGNvZGU+Jmx0O2gzJmd0OzwvY29kZT4gdGFnIHRoYXQgaGFzIHRo ZSBjaGFyYWN0ZXJzIDxjb2RlPnJlZDwvY29kZT4gaW5zaWRlIHRoZW0uIFRoZSA8Y29kZT4u KjwvY29kZT4gaXMgYSA8YSBocmVmPSJodHRwOi8vd3d3LnJlZ3VsYXItZXhwcmVzc2lvbnMu aW5mby8iPnJlZ3VsYXIgZXhwcmVzc2lvbjwvYT4gd2lsZGNhcmQgdGhhdCBtYXRjaGVzIGFu eSBjaGFyYWN0ZXJzIGJlZm9yZSBhbmQgYWZ0ZXIgJiM4MjE2O3JlZCYjODIxNzsuPC9wPgoK CTxwPkZvciBleGFtcGxlLCA8Y29kZT4mbHQ7aDMmZ3Q7QmxpbmtlcmVkIHZpc2lvbiZsdDsv aDMmZ3Q7PC9jb2RlPiBhbmQgPGNvZGU+Jmx0O2gzJmd0O0RyZWRlcmljayBUYXR1bSZsdDsv aDMmZ3Q7PC9jb2RlPiB3aWxsIG1hdGNoLCBidXQgPGNvZGU+Jmx0O2gzJmd0O0hlcmUgZG9n Z3kmbHQ7L2gzJmd0OzwvY29kZT4gd2lsbCBub3QuPC9wPgoKCTxoMyBpZD0iZWc1Ij5FeGFt cGxlIDU8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0 O2RpdiBpZD0mcXVvdDtzbWRfcGFnbmF2JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwombHQ7dHhw OnNtZF9wYWdpY2xlIGNvbnRhaW5lcj0mcXVvdDsjd3JhcHBlciZxdW90OwogICAgIG5hdnRl eHQ9JnF1b3Q7JnF1b3Q7ZjojI2ZpcnN0IyMsIGw6IyNsYXN0IyMgLyZndDsKPC9jb2RlPjwv cHJlPgoKCTxwPlRoaXMgZXhhbXBsZTo8L3A+CgoJPHVsPgoJCTxsaT5TcGxpdHMgdGhlIGFy dGljbGUgYXQgPGNvZGU+Jmx0O2gyJmd0OzwvY29kZT4gdGFnczwvbGk+CgkJPGxpPkFkZHMg dGhlIG5hdmlnYXRpb24gdG8gdGhlIDxjb2RlPnNtZF9wYWduYXY8L2NvZGU+IGRpdjwvbGk+ CgkJPGxpPlVzZXMgPHNwYW4gY2xhc3M9ImNhcHMiPk1MUDwvc3Bhbj4gc25pcHBldHMgdG8g cmVuZGVyIGxhbmd1YWdlLWRlcGVuZGVudCBlbnRyaWVzIGZvciB0aGUgJiM4MjE2O2YmIzgy MTc7IGFuZCAmIzgyMTY7bCYjODIxNzsgbmF2IGl0ZW1zPC9saT4KCTwvdWw+CgoJPGgzIGlk PSJjaGFuZ2VzIj5DaGFuZ2Vsb2c8L2gzPgoKCTx1bD4KCQk8bGk+MjMgSnVuIDA5IHwgMC4x IHwgSW5pdGlhbCByZWxlYXNlPC9saT4KCQk8bGk+MjQgSnVuIDA5IHwgMC4yIHwgUmVmYWN0 b3JlZCBjb2RlIGFuZCByZW1vdmVkIG1vc3Qgb2YgdGhlIDxjb2RlPndyYXA8L2NvZGU+IGF0 dHJpYnV0ZXMgOyBmaXhlZCB2YWxpZGF0aW9uIGlzc3VlcyBhbmQgdmlzaWJpbGl0eSBvZiBw YWdlciBpbiBub24tcGFnZWQgYXJ0aWNsZXMsIGFkZGVkICYjODIxNjthbGwmIzgyMTc7IGFu ZCBhbGxvd2VkIDxzcGFuIGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+IHNuaXBwZXQgcmVwbGFj ZW1lbnQgKGFsbCB0aGFua3MgdWx0cmFtZWdhKTwvbGk+Cgk8L3VsPgoKPC9kaXY+CjwhLS0g KioqIEJFR0lOIFBMVUdJTiBDU1MgKioqIC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoj c21kX2hlbHAgeyBsaW5lLWhlaWdodDoxLjUgO30KI3NtZF9oZWxwIGNvZGUgeyBmb250LXdl aWdodDpib2xkOyBmb250OiAxMDUlLzEzMCUgIkNvdXJpZXIgTmV3IiwgY291cmllciwgbW9u b3NwYWNlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO30KI3NtZF9oZWxwIGNvZGUuYmxv Y2sgeyBmb250LXdlaWdodDpub3JtYWw7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IGJhY2tn cm91bmQtY29sb3I6ICNmMGU2OGM7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjoxMHB4IDEwcHgg MjBweDsgcGFkZGluZzoxMHB4OyB9CiNzbWRfaGVscCBoMSB7IGNvbG9yOiAjMzY5OyBmb250 OiAyMHB4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IG1hcmdpbjogMDsgdGV4dC1hbGlnbjogY2Vu dGVyOyB9CiNzbWRfaGVscCBoMiB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsg cGFkZGluZzoxMHB4IDAgMDsgY29sb3I6ICMzNjk7IGZvbnQ6IDE3cHggR2VvcmdpYSwgc2Fu cy1zZXJpZjsgfQojc21kX2hlbHAgaDMgeyBjb2xvcjogIzI3NTY4NTsgZm9udDogYm9sZCAx MnB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEw cHggMCAwO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHRleHQtZGVjb3JhdGlvbjp1bmRl cmxpbmU7fQojc21kX2hlbHAgaDQgeyBmb250OiBib2xkIDExcHggQXJpYWwsIHNhbnMtc2Vy aWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDAgO3RleHQtdHJhbnNm b3JtOiB1cHBlcmNhc2U7IH0KI3NtZF9oZWxwIC5hdG5tIHsgZm9udC13ZWlnaHQ6Ym9sZDsg Y29sb3I6IzMzZDsgfQojc21kX2hlbHAgLm1hbmQgeyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRl cjoxcHggZG90dGVkICM5OTk7IH0KI3NtZF9oZWxwIHRhYmxlIHt3aWR0aDo5MCU7IHRleHQt YWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbToxZW07fQojc21kX2hlbHAgdGQsICNzbWRf aGVscCB0aCB7Ym9yZGVyOjFweCBzb2xpZCAjOTk5OyBwYWRkaW5nOi41ZW0gMDt9CiNzbWRf aGVscCB1bCB7IGxpc3Qtc3R5bGUtdHlwZTpzcXVhcmU7IH0KI3NtZF9oZWxwIC5yZXF1aXJl ZCB7Y29sb3I6cmVkO30KI3NtZF9oZWxwIGxpIHsgbWFyZ2luOjVweCAyMHB4IDVweCAzMHB4 OyB9CiNzbWRfaGVscCAuYnJlYWsgeyBtYXJnaW4tdG9wOjVweDsgfQo8L3MKPC9zdHlsZT4K PCEtLSAqKiogRU5EIFBMVUdJTiBDU1MgKioqIC0tPgoiO3M6MzoibWQ1IjtzOjMyOiIzYTRi MzQzNmFjYmI2MjMxNjNhOGEyMjMyODVjOTBhYiI7fQ==