woocommerce – Include product variation in title of search results?
-
In my sources and basics I have included the product_variation so that product variations turn up in the results. (click search icon and try search term ‘vertimax’ on the dev site)
However the titles in the results are all the same, making it look like duplicate results are appearing.
Is there a way to include product variations within the results title to follow this format
%product_title% – %product_variation%
Kind regards
- This topic was modified 5 years, 4 months ago by wurwaldesign.
The page I need help with: [log in to see the link]
-
debug data
YToyOntzOjExOiJhc2xfb3B0aW9ucyI7YToxNTU6e3M6NToidGhlbWUiO3M6OToidW5kZXJsaW5lIjtzOjIwOiJvdmVycmlkZV9zZWFyY2hfZm9ybSI7czoxOiIwIjtzOjI0OiJvdmVycmlkZV93b29fc2VhcmNoX2Zvcm0iO3M6MToiMCI7czoxMzoia2V5d29yZF9sb2dpYyI7czozOiJhbmQiO3M6MjM6InRyaWdnZXJfb25fZmFjZXRfY2hhbmdlIjtzOjE6IjEiO3M6MTc6InJlZGlyZWN0X2NsaWNrX3RvIjtzOjc6Im5vdGhpbmciO3M6MTc6InJlZGlyZWN0X2VudGVyX3RvIjtzOjE2OiJ3b29fcmVzdWx0c19wYWdlIjtzOjIxOiJjbGlja19hY3Rpb25fbG9jYXRpb24iO3M6NDoic2FtZSI7czoyMjoicmV0dXJuX2FjdGlvbl9sb2NhdGlvbiI7czo0OiJzYW1lIjtzOjE5OiJjdXN0b21fcmVkaXJlY3RfdXJsIjtzOjExOiI/cz17cGhyYXNlfSI7czoxMzoidHJpZ2dlcm9udHlwZSI7czoxOiIxIjtzOjExOiJjdXN0b210eXBlcyI7czo2ODoiX2RlY29kZV9XeUp3Y205a2RXTjBJaXdpY0hKdlpIVmpkRjkyWVhKcFlYUnBiMjRpTENKallYTmxjM1IxWkdsbGN5SmQiO3M6MTM6InNlYXJjaGludGl0bGUiO3M6MToiMSI7czoxNToic2VhcmNoaW5jb250ZW50IjtzOjE6IjEiO3M6MTU6InNlYXJjaGluZXhjZXJwdCI7czoxOiIxIjtzOjIwOiJzZWFyY2hfaW5fcGVybWFsaW5rcyI7czoxOiIwIjtzOjEzOiJzZWFyY2hfaW5faWRzIjtzOjE6IjAiO3M6MTM6InNlYXJjaF9hbGxfY2YiO3M6MToiMCI7czoxMjoiY3VzdG9tZmllbGRzIjtzOjQ6Il9za3UiO3M6MTE6InBvc3Rfc3RhdHVzIjtzOjc6InB1Ymxpc2giO3M6MjQ6Im92ZXJyaWRlX2RlZmF1bHRfcmVzdWx0cyI7czoxOiIwIjtzOjE1OiJvdmVycmlkZV9tZXRob2QiO3M6MzoiZ2V0IjtzOjk6ImV4YWN0b25seSI7czoxOiIwIjtzOjIwOiJleGFjdF9tYXRjaF9sb2NhdGlvbiI7czo4OiJhbnl3aGVyZSI7czoxMzoic2VhcmNoaW50ZXJtcyI7czoxOiIwIjtzOjk6ImNoYXJjb3VudCI7czoxOiIwIjtzOjEwOiJtYXhyZXN1bHRzIjtzOjI6IjEwIjtzOjEwOiJpdGVtc2NvdW50IjtzOjE6IjQiO3M6MTY6InJlc3VsdGl0ZW1oZWlnaHQiO3M6NDoiNzBweCI7czoxNToib3JkZXJieV9wcmltYXJ5IjtzOjE0OiJyZWxldmFuY2UgREVTQyI7czoxNzoib3JkZXJieV9zZWNvbmRhcnkiO3M6OToiZGF0ZSBERVNDIjtzOjExOiJzaG93X2ltYWdlcyI7czoxOiIxIjtzOjE4OiJpbWFnZV90cmFuc3BhcmVuY3kiO2k6MTtzOjE0OiJpbWFnZV9iZ19jb2xvciI7czo3OiIjRkZGRkZGIjtzOjExOiJpbWFnZV93aWR0aCI7czoyOiI3MCI7czoxMjoiaW1hZ2VfaGVpZ2h0IjtzOjI6IjcwIjtzOjE5OiJpbWFnZV9jcm9wX2xvY2F0aW9uIjtzOjE6ImMiO3M6Mjc6ImltYWdlX2Nyb3BfbG9jYXRpb25fc2VsZWN0cyI7YTo5OntpOjA7YToyOntzOjY6Im9wdGlvbiI7czoxMzoiSW4gdGhlIGNlbnRlciI7czo1OiJ2YWx1ZSI7czoxOiJjIjt9aToxO2E6Mjp7czo2OiJvcHRpb24iO3M6OToiQWxpZ24gdG9wIjtzOjU6InZhbHVlIjtzOjE6InQiO31pOjI7YToyOntzOjY6Im9wdGlvbiI7czoxNToiQWxpZ24gdG9wIHJpZ2h0IjtzOjU6InZhbHVlIjtzOjI6InRyIjt9aTozO2E6Mjp7czo2OiJvcHRpb24iO3M6MTQ6IkFsaWduIHRvcCBsZWZ0IjtzOjU6InZhbHVlIjtzOjI6InRsIjt9aTo0O2E6Mjp7czo2OiJvcHRpb24iO3M6MTI6IkFsaWduIGJvdHRvbSI7czo1OiJ2YWx1ZSI7czoxOiJiIjt9aTo1O2E6Mjp7czo2OiJvcHRpb24iO3M6MTg6IkFsaWduIGJvdHRvbSByaWdodCI7czo1OiJ2YWx1ZSI7czoyOiJiciI7fWk6NjthOjI6e3M6Njoib3B0aW9uIjtzOjE3OiJBbGlnbiBib3R0b20gbGVmdCI7czo1OiJ2YWx1ZSI7czoyOiJibCI7fWk6NzthOjI6e3M6Njoib3B0aW9uIjtzOjEwOiJBbGlnbiBsZWZ0IjtzOjU6InZhbHVlIjtzOjE6ImwiO31pOjg7YToyOntzOjY6Im9wdGlvbiI7czoxMToiQWxpZ24gcmlnaHQiO3M6NToidmFsdWUiO3M6MToiciI7fX1zOjEzOiJpbWFnZV9zb3VyY2VzIjthOjc6e2k6MDthOjI6e3M6Njoib3B0aW9uIjtzOjE0OiJGZWF0dXJlZCBpbWFnZSI7czo1OiJ2YWx1ZSI7czo4OiJmZWF0dXJlZCI7fWk6MTthOjI6e3M6Njoib3B0aW9uIjtzOjEyOiJQb3N0IENvbnRlbnQiO3M6NToidmFsdWUiO3M6NzoiY29udGVudCI7fWk6MjthOjI6e3M6Njoib3B0aW9uIjtzOjEyOiJQb3N0IEV4Y2VycHQiO3M6NToidmFsdWUiO3M6NzoiZXhjZXJwdCI7fWk6MzthOjI6e3M6Njoib3B0aW9uIjtzOjEyOiJDdXN0b20gZmllbGQiO3M6NToidmFsdWUiO3M6NjoiY3VzdG9tIjt9aTo0O2E6Mjp7czo2OiJvcHRpb24iO3M6MTU6IlBhZ2UgU2NyZWVuc2hvdCI7czo1OiJ2YWx1ZSI7czoxMDoic2NyZWVuc2hvdCI7fWk6NTthOjI6e3M6Njoib3B0aW9uIjtzOjEzOiJEZWZhdWx0IGltYWdlIjtzOjU6InZhbHVlIjtzOjc6ImRlZmF1bHQiO31pOjY7YToyOntzOjY6Im9wdGlvbiI7czo4OiJEaXNhYmxlZCI7czo1OiJ2YWx1ZSI7czo4OiJkaXNhYmxlZCI7fX1zOjEzOiJpbWFnZV9zb3VyY2UxIjtzOjg6ImZlYXR1cmVkIjtzOjEzOiJpbWFnZV9zb3VyY2UyIjtzOjc6ImNvbnRlbnQiO3M6MTM6ImltYWdlX3NvdXJjZTMiO3M6NzoiZXhjZXJwdCI7czoxMzoiaW1hZ2Vfc291cmNlNCI7czo2OiJjdXN0b20iO3M6MTM6ImltYWdlX3NvdXJjZTUiO3M6NzoiZGVmYXVsdCI7czoxMzoiaW1hZ2VfZGVmYXVsdCI7czo4ODoiaHR0cDovLzg0LjQ1LjcuOTQ6ODg4OC9wZXJmb3JtQmV0dGVyL3dwLWNvbnRlbnQvcGx1Z2lucy9hamF4LXNlYXJjaC1saXRlL2ltZy9kZWZhdWx0LmpwZyI7czoyMToiaW1hZ2Vfc291cmNlX2ZlYXR1cmVkIjtzOjg6Im9yaWdpbmFsIjtzOjE4OiJpbWFnZV9jdXN0b21fZmllbGQiO3M6MDoiIjtzOjEyOiJ1c2VfdGltdGh1bWIiO2k6MTtzOjI5OiJzaG93X2Zyb250ZW5kX3NlYXJjaF9zZXR0aW5ncyI7czoxOiIwIjtzOjE2OiJzaG93ZXhhY3RtYXRjaGVzIjtzOjE6IjEiO3M6MTc6InNob3dzZWFyY2hpbnBvc3RzIjtzOjE6IjEiO3M6MTc6InNob3dzZWFyY2hpbnBhZ2VzIjtzOjE6IjEiO3M6MTc6InNob3dzZWFyY2hpbnRpdGxlIjtzOjE6IjEiO3M6MTk6InNob3dzZWFyY2hpbmNvbnRlbnQiO3M6MToiMSI7czoxNToic2hvd2N1c3RvbXR5cGVzIjtzOjA6IiI7czoyMDoic2hvd3NlYXJjaGluY29tbWVudHMiO2k6MTtzOjE5OiJzaG93c2VhcmNoaW5leGNlcnB0IjtpOjE7czoxOToic2hvd3NlYXJjaGluYnB1c2VycyI7aTowO3M6MjA6InNob3dzZWFyY2hpbmJwZ3JvdXBzIjtpOjA7czoyMDoic2hvd3NlYXJjaGluYnBmb3J1bXMiO2k6MDtzOjE2OiJleGFjdG1hdGNoZXN0ZXh0IjtzOjE4OiJFeGFjdCBtYXRjaGVzIG9ubHkiO3M6MTc6InNlYXJjaGlucG9zdHN0ZXh0IjtzOjE1OiJTZWFyY2ggaW4gcG9zdHMiO3M6MTc6InNlYXJjaGlucGFnZXN0ZXh0IjtzOjE1OiJTZWFyY2ggaW4gcGFnZXMiO3M6MTc6InNlYXJjaGludGl0bGV0ZXh0IjtzOjE1OiJTZWFyY2ggaW4gdGl0bGUiO3M6MTk6InNlYXJjaGluY29udGVudHRleHQiO3M6MTc6IlNlYXJjaCBpbiBjb250ZW50IjtzOjIwOiJzZWFyY2hpbmNvbW1lbnRzdGV4dCI7czoxODoiU2VhcmNoIGluIGNvbW1lbnRzIjtzOjE5OiJzZWFyY2hpbmV4Y2VycHR0ZXh0IjtzOjE3OiJTZWFyY2ggaW4gZXhjZXJwdCI7czoxOToic2VhcmNoaW5icHVzZXJzdGV4dCI7czoxNToiU2VhcmNoIGluIHVzZXJzIjtzOjIwOiJzZWFyY2hpbmJwZ3JvdXBzdGV4dCI7czoxNjoiU2VhcmNoIGluIGdyb3VwcyI7czoyMDoic2VhcmNoaW5icGZvcnVtc3RleHQiO3M6MTY6IlNlYXJjaCBpbiBmb3J1bXMiO3M6MjI6InNob3dzZWFyY2hpbmNhdGVnb3JpZXMiO3M6MToiMCI7czoxNzoic2hvd3VuY2F0ZWdvcmlzZWQiO3M6MToiMCI7czoyMDoiZXhzZWFyY2hpbmNhdGVnb3JpZXMiO3M6MDoiIjtzOjI2OiJleHNlYXJjaGluY2F0ZWdvcmllc2hlaWdodCI7aToyMDA7czoyMjoic2hvd3NlYXJjaGludGF4b25vbWllcyI7aToxO3M6OToic2hvd3Rlcm1zIjtzOjA6IiI7czoyMzoic2hvd3NlcGFyYXRlZmlsdGVyYm94ZXMiO2k6MTtzOjI0OiJleHNlYXJjaGludGF4b25vbWllc3RleHQiO3M6OToiRmlsdGVyIGJ5IjtzOjI0OiJleHNlYXJjaGluY2F0ZWdvcmllc3RleHQiO3M6MjA6IkZpbHRlciBieSBDYXRlZ29yaWVzIjtzOjk6ImJveF93aWR0aCI7czo0OiIxMDAlIjtzOjEwOiJib3hfbWFyZ2luIjtzOjIzOiJ8fDIwcHh8fDBweHx8MHB4fHwwcHh8fCI7czo4OiJib3hfZm9udCI7czo5OiJPcGVuIFNhbnMiO3M6MTE6Im92ZXJyaWRlX2JnIjtzOjE6IjAiO3M6MTc6Im92ZXJyaWRlX2JnX2NvbG9yIjtzOjIyOiJyZ2JhKDI1NSwgMjU1LCAyNTUsIDEpIjtzOjEzOiJvdmVycmlkZV9pY29uIjtzOjE6IjAiO3M6MjI6Im92ZXJyaWRlX2ljb25fYmdfY29sb3IiO3M6MjI6InJnYmEoMjU1LCAyNTUsIDI1NSwgMSkiO3M6MTk6Im92ZXJyaWRlX2ljb25fY29sb3IiO3M6MTg6InJnYigyNTUsIDI1NSwgMjU1KSI7czoxNToib3ZlcnJpZGVfYm9yZGVyIjtzOjE6IjEiO3M6MjE6Im92ZXJyaWRlX2JvcmRlcl9zdHlsZSI7czo2NjoiYm9yZGVyOjFweCBzb2xpZCByZ2IoMjE2LCAyMTYsIDIxNik7Ym9yZGVyLXJhZGl1czoxcHggMXB4IDFweCAxcHg7IjtzOjE1OiJyZXN1bHRzdHlwZV9kZWYiO2E6NDp7aTowO2E6Mjp7czo2OiJvcHRpb24iO3M6MTY6IlZlcnRpY2FsIFJlc3VsdHMiO3M6NToidmFsdWUiO3M6ODoidmVydGljYWwiO31pOjE7YToyOntzOjY6Im9wdGlvbiI7czoxODoiSG9yaXpvbnRhbCBSZXN1bHRzIjtzOjU6InZhbHVlIjtzOjEwOiJob3Jpem9udGFsIjt9aToyO2E6Mjp7czo2OiJvcHRpb24iO3M6MTY6Iklzb3RvcGljIFJlc3VsdHMiO3M6NToidmFsdWUiO3M6ODoiaXNvdG9waWMiO31pOjM7YToyOntzOjY6Im9wdGlvbiI7czoyMjoiUG9sYXJvaWQgc3R5bGUgUmVzdWx0cyI7czo1OiJ2YWx1ZSI7czo4OiJwb2xhcm9pZCI7fX1zOjExOiJyZXN1bHRzdHlwZSI7czo4OiJ2ZXJ0aWNhbCI7czoxOToicmVzdWx0c3Bvc2l0aW9uX2RlZiI7YToyOntpOjA7YToyOntzOjY6Im9wdGlvbiI7czoyMDoiSG92ZXIgLSBvdmVyIGNvbnRlbnQiO3M6NToidmFsdWUiO3M6NToiaG92ZXIiO31pOjE7YToyOntzOjY6Im9wdGlvbiI7czoyMjoiQmxvY2sgLSBwdXNoZXMgY29udGVudCI7czo1OiJ2YWx1ZSI7czo1OiJibG9jayI7fX1zOjE1OiJyZXN1bHRzcG9zaXRpb24iO3M6NToiaG92ZXIiO3M6MTY6InJlc3VsdHNtYXJnaW50b3AiO3M6NDoiMTJweCI7czoxNjoidl9yZXNfbWF4X2hlaWdodCI7czo0OiJub25lIjtzOjE3OiJkZWZhdWx0c2VhcmNodGV4dCI7czozMDoiU2VhcmNoIFByb2R1Y3RzICYgQ2FzZSBzdHVkaWVzIjtzOjE1OiJzaG93bW9yZXJlc3VsdHMiO3M6MToiMCI7czoxOToic2hvd21vcmVyZXN1bHRzdGV4dCI7czoxNToiTW9yZSByZXN1bHRzLi4uIjtzOjE5OiJyZXN1bHRzX2NsaWNrX2JsYW5rIjtzOjE6IjAiO3M6MTc6InNjcm9sbF90b19yZXN1bHRzIjtzOjE6IjAiO3M6MTk6InJlc3VsdGFyZWFjbGlja2FibGUiO3M6MToiMSI7czoyMzoiY2xvc2Vfb25fZG9jdW1lbnRfY2xpY2siO3M6MToiMSI7czoxNToic2hvd19jbG9zZV9pY29uIjtzOjE6IjEiO3M6MTA6InNob3dhdXRob3IiO3M6MToiMCI7czo4OiJzaG93ZGF0ZSI7czoxOiIwIjtzOjE1OiJzaG93ZGVzY3JpcHRpb24iO3M6MToiMSI7czoxNzoiZGVzY3JpcHRpb25sZW5ndGgiO3M6MzoiMTAwIjtzOjE5OiJkZXNjcmlwdGlvbl9jb250ZXh0IjtzOjE6IjAiO3M6MTM6Im5vcmVzdWx0c3RleHQiO3M6MTE6Ik5vIHJlc3VsdHMhIjtzOjE0OiJkaWR5b3VtZWFudGV4dCI7czoxMzoiRGlkIHlvdSBtZWFuOiI7czoxMjoia3dfaGlnaGxpZ2h0IjtzOjE6IjAiO3M6MjQ6Imt3X2hpZ2hsaWdodF93aG9sZV93b3JkcyI7czoxOiIxIjtzOjE1OiJoaWdobGlnaHRfY29sb3IiO3M6MjA6InJnYmEoMjE3LCA0OSwgNDMsIDEpIjtzOjE4OiJoaWdobGlnaHRfYmdfY29sb3IiO3M6MjI6InJnYmEoMjM4LCAyMzgsIDIzOCwgMSkiO3M6MTA6ImN1c3RvbV9jc3MiO3M6MDoiIjtzOjEyOiJhdXRvY29tcGxldGUiO3M6MToiMCI7czoxNDoia3dfc3VnZ2VzdGlvbnMiO3M6MToiMCI7czo5OiJrd19sZW5ndGgiO3M6MjoiNjAiO3M6ODoia3dfY291bnQiO3M6MjoiMTAiO3M6MTQ6Imt3X2dvb2dsZV9sYW5nIjtzOjI6ImVuIjtzOjEzOiJrd19leGNlcHRpb25zIjtzOjA6IiI7czoxMjoic2hvcnRjb2RlX29wIjtzOjY6InJlbW92ZSI7czoxNjoic3RyaXB0YWdzZXhjbHVkZSI7czowOiIiO3M6MTI6InJ1bnNob3J0Y29kZSI7aToxO3M6MTQ6InN0cmlwc2hvcnRjb2RlIjtpOjA7czoxOToicGFnZXN3aXRoY2F0ZWdvcmllcyI7aTowO3M6MTA6InRpdGxlZmllbGQiO3M6MToiMCI7czoxMzoidGl0bGVmaWVsZF9jZiI7czozOiJ3b28iO3M6MTY6ImRlc2NyaXB0aW9uZmllbGQiO3M6MToiMCI7czoxOToiZGVzY3JpcHRpb25maWVsZF9jZiI7czoyMjoiX3ZhcmlhdGlvbl9kZXNjcmlwdGlvbiI7czoyMjoid29vX2V4Y2x1ZGVfb3V0b2ZzdG9jayI7czoxOiIxIjtzOjE4OiJleGNsdWRlX3dvb19oaWRkZW4iO3M6MToiMSI7czoxNzoiZXhjbHVkZWNhdGVnb3JpZXMiO3M6MDoiIjtzOjEyOiJleGNsdWRlcG9zdHMiO3M6MDoiIjtzOjE4OiJ3cG1sX2NvbXBhdGliaWxpdHkiO3M6MToiMSI7czoyMjoicG9seWxhbmdfY29tcGF0aWJpbGl0eSI7czoxOiIxIjtzOjIxOiJjbGFzc25hbWUtY3VzdG9tdHlwZXMiO3M6MjM6IndwZHJlYW1zQ3VzdG9tUG9zdFR5cGVzIjtzOjg6IndkY2ZzXzEwIjtzOjA6IiI7czoyMjoiY2xhc3NuYW1lLWN1c3RvbWZpZWxkcyI7czoyMDoid3BkcmVhbXNDdXN0b21GaWVsZHMiO3M6MTA6ImFzbF9zdWJtaXQiO3M6MToiMSI7czoxMDoic3VibWl0X2FzbCI7czoxMzoiU2F2ZSBvcHRpb25zISI7czoyNToiY2xhc3NuYW1lLXNob3djdXN0b210eXBlcyI7czozMToid3BkcmVhbXNDdXN0b21Qb3N0VHlwZXNFZGl0YWJsZSI7czozMDoiY2xhc3NuYW1lLWV4c2VhcmNoaW5jYXRlZ29yaWVzIjtzOjE4OiJ3cGRyZWFtc0NhdGVnb3JpZXMiO3M6NzoidG9wbGVmdCI7czo0OiIyMHB4IjtzOjExOiJib3R0b21yaWdodCI7czozOiIwcHgiO3M6ODoidG9wcmlnaHQiO3M6MzoiMHB4IjtzOjEwOiJib3R0b21sZWZ0IjtzOjM6IjBweCI7czoxMjoiX2NvbG9ycGlja2VyIjtzOjE4OiJyZ2IoMjE2LCAyMTYsIDIxNikiO3M6Mjc6ImNsYXNzbmFtZS1leGNsdWRlY2F0ZWdvcmllcyI7czoxODoid3BkcmVhbXNDYXRlZ29yaWVzIjtzOjEwOiJzZXR0X3RhYmlkIjtzOjE6IjciO3M6MjA6InNlbGVjdGVkLWN1c3RvbXR5cGVzIjthOjM6e2k6MDtzOjc6InByb2R1Y3QiO2k6MTtzOjE3OiJwcm9kdWN0X3ZhcmlhdGlvbiI7aToyO3M6MTE6ImNhc2VzdHVkaWVzIjt9czoyMToic2VsZWN0ZWQtY3VzdG9tZmllbGRzIjthOjE6e2k6MDtzOjQ6Il9za3UiO31zOjI0OiJzZWxlY3RlZC1zaG93Y3VzdG9tdHlwZXMiO047czoyOToic2VsZWN0ZWQtZXhzZWFyY2hpbmNhdGVnb3JpZXMiO047czoyNjoic2VsZWN0ZWQtZXhjbHVkZWNhdGVnb3JpZXMiO047fXM6NzoicXVlcmllcyI7YTo1OntpOjA7YTo0OntzOjY6InBocmFzZSI7czo3OiJ2ZXJpbWF4IjtzOjc6Im9wdGlvbnMiO2E6MTc6e3M6MTU6InF0cmFuc2xhdGVfbGFuZyI7czoxOiIwIjtzOjExOiJzZXRfaW50aXRsZSI7YjoxO3M6MTM6InNldF9pbmNvbnRlbnQiO2I6MTtzOjEzOiJzZXRfaW5leGNlcnB0IjtiOjE7czo5OiJjdXN0b21zZXQiO2E6Mzp7aTowO3M6NzoicHJvZHVjdCI7aToxO3M6MTc6InByb2R1Y3RfdmFyaWF0aW9uIjtpOjI7czoxMToiY2FzZXN0dWRpZXMiO31zOjEzOiJzZXRfZXhhY3Rvbmx5IjtiOjA7czoxNDoic2V0X2luY29tbWVudHMiO2I6MDtzOjExOiJzZXRfaW5wb3N0cyI7YjowO3M6MTE6InNldF9pbnBhZ2VzIjtiOjA7czoxMzoic2VhcmNoaW50ZXJtcyI7YjowO3M6MTM6InNldF9pbmJwdXNlcnMiO2I6MDtzOjE0OiJzZXRfaW5icGdyb3VwcyI7YjowO3M6MTQ6InNldF9pbmJwZm9ydW1zIjtiOjA7czoxMDoibWF4cmVzdWx0cyI7czoyOiIxMCI7czo4OiJkb19ncm91cCI7YjoxO3M6MTE6ImNhdGVnb3J5c2V0IjthOjA6e31zOjc6InRlcm1zZXQiO2E6MDp7fX1zOjU6InF1ZXJ5IjtzOjQ0NjE6Ig0KICAgIAlTRUxFQ1QNCgkJCQ0KCQkJd3BfcG9zdHMucG9zdF90aXRsZSBhcyB0aXRsZSwNCgkJCXdwX3Bvc3RzLklEIGFzIGlkLA0KCQkJd3BfcG9zdHMucG9zdF9kYXRlIGFzIGRhdGUsDQoJCQl3cF9wb3N0cy5wb3N0X2NvbnRlbnQgYXMgY29udGVudCwNCgkJCXdwX3Bvc3RzLnBvc3RfZXhjZXJwdCBhcyBleGNlcnB0LA0KCQkJJ3BhZ2Vwb3N0JyBhcyBjb250ZW50X3R5cGUsDQoJCQkoU0VMRUNUDQoJCQkJd3BfdXNlcnMuZGlzcGxheV9uYW1lIGFzIGF1dGhvcg0KCQkJCUZST00gd3BfdXNlcnMNCgkJCQlXSEVSRSB3cF91c2Vycy5JRCA9IHdwX3Bvc3RzLnBvc3RfYXV0aG9yDQoJCQkpIGFzIGF1dGhvciwNCgkJCScnIGFzIHR0aWQsDQoJCQl3cF9wb3N0cy5wb3N0X3R5cGUgYXMgcG9zdF90eXBlLA0KCQkJKChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfdGl0bGUgTElLRSAndmVyaW1heCUnKQ0KICAgICAgICAgICAgICAgICAgICAgdGhlbiAyMCBlbHNlIDAgZW5kKSArIChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfdGl0bGUgTElLRSAnJXZlcmltYXglJykNCiAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfdGl0bGUgTElLRSAnJXZlcmltYXglJykNCiAgICAgICAgICAgICAgICAgICAgICAgdGhlbiAxMCBlbHNlIDAgZW5kKSArIChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAod3BfcG9zdHMucG9zdF9jb250ZW50IExJS0UgJyV2ZXJpbWF4JScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICh3cF9wb3N0cy5wb3N0X2NvbnRlbnQgTElLRSAnJXZlcmltYXglJykNCiAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfZXhjZXJwdCBMSUtFICcldmVyaW1heCUnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIDEwIGVsc2UgMCBlbmQpICsgKGNhc2Ugd2hlbg0KICAgICAgICAgICAgICAgICAgICAod3BfcG9zdHMucG9zdF9leGNlcnB0IExJS0UgJyV2ZXJpbWF4JScpDQogICAgICAgICAgICAgICAgICAgICB0aGVuIDEwIGVsc2UgMCBlbmQpKSBhcyByZWxldmFuY2UNCiAgICAJRlJPTSB3cF9wb3N0cw0KCQkJTEVGVCBKT0lOIHdwX3Bvc3RtZXRhIE9OIHdwX3Bvc3RtZXRhLnBvc3RfaWQgPSB3cF9wb3N0cy5JRA0KCQkJDQoJCQkNCiAgICAJV0hFUkUNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgKCgNCiAgICAgICAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cF9wb3N0cy5wb3N0X3R5cGUgPSAncHJvZHVjdF92YXJpYXRpb24nIEFORCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWElTVFMoU0VMRUNUIDEgRlJPTSB3cF9wb3N0cyBwYXIgV0hFUkUgcGFyLklEID0gd3BfcG9zdHMucG9zdF9wYXJlbnQgQU5EIHBhci5wb3N0X3N0YXR1cyBJTigncHVibGlzaCcpICkgDQogICAgICAgICAgICAgICAgICAgICAgICApICBPUiB3cF9wb3N0cy5wb3N0X3R5cGUgSU4gKCdwcm9kdWN0JywgJ2Nhc2VzdHVkaWVzJykNCiAgICAgICAgICAgICAgICAgICAgKSkNCiAgICAgICAgICAgICAgICAgQU5EICgNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgTk9UIEVYSVNUUyAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VMRUNUICoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIHdwX3Rlcm1fcmVsYXRpb25zaGlwcyBhcyB4dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOTkVSIEpPSU4gd3BfdGVybV90YXhvbm9teSBhcyB0dCBPTiAoIHh0LnRlcm1fdGF4b25vbXlfaWQgPSB0dC50ZXJtX3RheG9ub215X2lkIEFORCB0dC50YXhvbm9teSA9ICdwcm9kdWN0X3Zpc2liaWxpdHknKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHh0Lm9iamVjdF9pZCA9IHdwX3Bvc3RzLklEDQogICAgICAgICAgICAgICAgICAgICAgICApIE9SIA0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIHdwX3Bvc3RzLklEIElOICgNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBESVNUSU5DVCh0ci5vYmplY3RfaWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSB3cF90ZXJtX3JlbGF0aW9uc2hpcHMgQVMgdHINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRUZUIEpPSU4gd3BfdGVybV90YXhvbm9teSBhcyB0dCBPTiAodHIudGVybV90YXhvbm9teV9pZCA9IHR0LnRlcm1fdGF4b25vbXlfaWQgQU5EIHR0LnRheG9ub215ID0gJ3Byb2R1Y3RfdmlzaWJpbGl0eScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dC50ZXJtX2lkIE5PVCBJTiAoMjMzKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5EIHRyLm9iamVjdF9pZCBOT1QgSU4gKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBESVNUSU5DVCh0cnMub2JqZWN0X2lkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gd3BfdGVybV9yZWxhdGlvbnNoaXBzIEFTIHRycw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiB3cF90ZXJtX3RheG9ub215IGFzIHR0cyBPTiAodHJzLnRlcm1fdGF4b25vbXlfaWQgPSB0dHMudGVybV90YXhvbm9teV9pZCBBTkQgdHRzLnRheG9ub215ID0gJ3Byb2R1Y3RfdmlzaWJpbGl0eScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgdHRzLnRlcm1faWQgSU4gKDIzMykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgQU5EICggDQogICAgICAgICAgICAgICAgKA0KICAgICAgICAgICAgICAgICAgKA0KICAgICAgICAgICAgICAgICAgICBTRUxFQ1QgSUYoKG1ldGFfa2V5IElTIE5VTEwgT1IgbWV0YV92YWx1ZSA9ICcnKSwgLTEsIENPVU5UKG1ldGFfaWQpKQ0KICAgICAgICAgICAgICAgICAgICBGUk9NIHdwX3Bvc3RtZXRhDQogICAgICAgICAgICAgICAgICAgIFdIRVJFIHdwX3Bvc3RtZXRhLnBvc3RfaWQgPSB3cF9wb3N0cy5JRCBBTkQgd3BfcG9zdG1ldGEubWV0YV9rZXk9J19zdG9ja19zdGF0dXMnDQogICAgICAgICAgICAgICAgICAgIExJTUlUIDENCiAgICAgICAgICAgICAgICAgICkgPSAtMQ0KICAgICAgICAgICAgICAgICBPUg0KICAgICAgICAgICAgICAgICAgKA0KICAgICAgICAgICAgICAgICAgICBTRUxFQ1QgQ09VTlQobWV0YV9pZCkgYXMgbXRjDQogICAgICAgICAgICAgICAgICAgIEZST00gd3BfcG9zdG1ldGENCiAgICAgICAgICAgICAgICAgICAgV0hFUkUgd3BfcG9zdG1ldGEucG9zdF9pZCA9IHdwX3Bvc3RzLklEIEFORCB3cF9wb3N0bWV0YS5tZXRhX2tleT0nX3N0b2NrX3N0YXR1cycgQU5EICh3cF9wb3N0bWV0YS5tZXRhX3ZhbHVlIExJS0UgJ2luc3RvY2snKQ0KICAgICAgICAgICAgICAgICAgICBHUk9VUCBCWSBtZXRhX2lkDQogICAgICAgICAgICAgICAgICAgIE9SREVSIEJZIG10Yw0KICAgICAgICAgICAgICAgICAgICBMSU1JVCAxDQogICAgICAgICAgICAgICAgICApID49IDENCiAgICAgICAgICAgICAgICApICkNCiAgICAgICAgICAgIEFORCAoIHdwX3Bvc3RzLnBvc3Rfc3RhdHVzIElOICgncHVibGlzaCcpICkNCiAgICAgICAgICAgIEFORCAoMSkNCiAgICAgICAgICAgIEFORCAoICgoIHdwX3Bvc3RzLnBvc3RfdGl0bGUgTElLRSAnJXZlcmltYXglJyApIE9SICggd3BfcG9zdHMucG9zdF9jb250ZW50IExJS0UgJyV2ZXJpbWF4JScgKSBPUiAoIHdwX3Bvc3RzLnBvc3RfZXhjZXJwdCBMSUtFICcldmVyaW1heCUnICkgT1IgKCB3cF9wb3N0bWV0YS5tZXRhX2tleT0nX3NrdScgQU5EICB3cF9wb3N0bWV0YS5tZXRhX3ZhbHVlIExJS0UgJyV2ZXJpbWF4JScgKSkgKQ0KICAgICAgICAgICAgDQogICAgICAgICAgICBBTkQgKCAoMSkgKQ0KICAgICAgICAgICAgDQogICAgICAgICAgICANCiAgICAgICAgR1JPVVAgQlkNCiAgICAgICAgICAJIHdwX3Bvc3RzLklEDQogICAgICAgIE9SREVSIEJZDQogICAgICAgIAkgcmVsZXZhbmNlIERFU0MsIGRhdGUgREVTQywgaWQgREVTQw0KICAgICAgICBMSU1JVCAxMCI7czo3OiJyZXN1bHRzIjtpOjA7fWk6MTthOjQ6e3M6NjoicGhyYXNlIjtzOjg6InZlcnRpbWF4IjtzOjc6Im9wdGlvbnMiO2E6MTc6e3M6MTU6InF0cmFuc2xhdGVfbGFuZyI7czoxOiIwIjtzOjExOiJzZXRfaW50aXRsZSI7YjoxO3M6MTM6InNldF9pbmNvbnRlbnQiO2I6MTtzOjEzOiJzZXRfaW5leGNlcnB0IjtiOjE7czo5OiJjdXN0b21zZXQiO2E6Mzp7aTowO3M6NzoicHJvZHVjdCI7aToxO3M6MTc6InByb2R1Y3RfdmFyaWF0aW9uIjtpOjI7czoxMToiY2FzZXN0dWRpZXMiO31zOjEzOiJzZXRfZXhhY3Rvbmx5IjtiOjA7czoxNDoic2V0X2luY29tbWVudHMiO2I6MDtzOjExOiJzZXRfaW5wb3N0cyI7YjowO3M6MTE6InNldF9pbnBhZ2VzIjtiOjA7czoxMzoic2VhcmNoaW50ZXJtcyI7YjowO3M6MTM6InNldF9pbmJwdXNlcnMiO2I6MDtzOjE0OiJzZXRfaW5icGdyb3VwcyI7YjowO3M6MTQ6InNldF9pbmJwZm9ydW1zIjtiOjA7czoxMDoibWF4cmVzdWx0cyI7czoyOiIxMCI7czo4OiJkb19ncm91cCI7YjoxO3M6MTE6ImNhdGVnb3J5c2V0IjthOjA6e31zOjc6InRlcm1zZXQiO2E6MDp7fX1zOjU6InF1ZXJ5IjtzOjQ0NzI6Ig0KICAgIAlTRUxFQ1QNCgkJCQ0KCQkJd3BfcG9zdHMucG9zdF90aXRsZSBhcyB0aXRsZSwNCgkJCXdwX3Bvc3RzLklEIGFzIGlkLA0KCQkJd3BfcG9zdHMucG9zdF9kYXRlIGFzIGRhdGUsDQoJCQl3cF9wb3N0cy5wb3N0X2NvbnRlbnQgYXMgY29udGVudCwNCgkJCXdwX3Bvc3RzLnBvc3RfZXhjZXJwdCBhcyBleGNlcnB0LA0KCQkJJ3BhZ2Vwb3N0JyBhcyBjb250ZW50X3R5cGUsDQoJCQkoU0VMRUNUDQoJCQkJd3BfdXNlcnMuZGlzcGxheV9uYW1lIGFzIGF1dGhvcg0KCQkJCUZST00gd3BfdXNlcnMNCgkJCQlXSEVSRSB3cF91c2Vycy5JRCA9IHdwX3Bvc3RzLnBvc3RfYXV0aG9yDQoJCQkpIGFzIGF1dGhvciwNCgkJCScnIGFzIHR0aWQsDQoJCQl3cF9wb3N0cy5wb3N0X3R5cGUgYXMgcG9zdF90eXBlLA0KCQkJKChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfdGl0bGUgTElLRSAndmVydGltYXglJykNCiAgICAgICAgICAgICAgICAgICAgIHRoZW4gMjAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICh3cF9wb3N0cy5wb3N0X3RpdGxlIExJS0UgJyV2ZXJ0aW1heCUnKQ0KICAgICAgICAgICAgICAgICAgICAgdGhlbiAxMCBlbHNlIDAgZW5kKSArIChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgICAod3BfcG9zdHMucG9zdF90aXRsZSBMSUtFICcldmVydGltYXglJykNCiAgICAgICAgICAgICAgICAgICAgICAgdGhlbiAxMCBlbHNlIDAgZW5kKSArIChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAod3BfcG9zdHMucG9zdF9jb250ZW50IExJS0UgJyV2ZXJ0aW1heCUnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIDEwIGVsc2UgMCBlbmQpICsgKGNhc2Ugd2hlbg0KICAgICAgICAgICAgICAgICAgICAod3BfcG9zdHMucG9zdF9jb250ZW50IExJS0UgJyV2ZXJ0aW1heCUnKQ0KICAgICAgICAgICAgICAgICAgICAgdGhlbiAxMCBlbHNlIDAgZW5kKSArIChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAod3BfcG9zdHMucG9zdF9leGNlcnB0IExJS0UgJyV2ZXJ0aW1heCUnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIDEwIGVsc2UgMCBlbmQpICsgKGNhc2Ugd2hlbg0KICAgICAgICAgICAgICAgICAgICAod3BfcG9zdHMucG9zdF9leGNlcnB0IExJS0UgJyV2ZXJ0aW1heCUnKQ0KICAgICAgICAgICAgICAgICAgICAgdGhlbiAxMCBlbHNlIDAgZW5kKSkgYXMgcmVsZXZhbmNlDQogICAgCUZST00gd3BfcG9zdHMNCgkJCUxFRlQgSk9JTiB3cF9wb3N0bWV0YSBPTiB3cF9wb3N0bWV0YS5wb3N0X2lkID0gd3BfcG9zdHMuSUQNCgkJCQ0KCQkJDQogICAgCVdIRVJFDQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICgoDQogICAgICAgICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgd3BfcG9zdHMucG9zdF90eXBlID0gJ3Byb2R1Y3RfdmFyaWF0aW9uJyBBTkQgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhJU1RTKFNFTEVDVCAxIEZST00gd3BfcG9zdHMgcGFyIFdIRVJFIHBhci5JRCA9IHdwX3Bvc3RzLnBvc3RfcGFyZW50IEFORCBwYXIucG9zdF9zdGF0dXMgSU4oJ3B1Ymxpc2gnKSApIA0KICAgICAgICAgICAgICAgICAgICAgICAgKSAgT1Igd3BfcG9zdHMucG9zdF90eXBlIElOICgncHJvZHVjdCcsICdjYXNlc3R1ZGllcycpDQogICAgICAgICAgICAgICAgICAgICkpDQogICAgICAgICAgICAgICAgIEFORCAoDQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIE5PVCBFWElTVFMgKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCAqDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSB3cF90ZXJtX3JlbGF0aW9uc2hpcHMgYXMgeHQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTk5FUiBKT0lOIHdwX3Rlcm1fdGF4b25vbXkgYXMgdHQgT04gKCB4dC50ZXJtX3RheG9ub215X2lkID0gdHQudGVybV90YXhvbm9teV9pZCBBTkQgdHQudGF4b25vbXkgPSAncHJvZHVjdF92aXNpYmlsaXR5JykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4dC5vYmplY3RfaWQgPSB3cF9wb3N0cy5JRA0KICAgICAgICAgICAgICAgICAgICAgICAgKSBPUiANCiAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICB3cF9wb3N0cy5JRCBJTiAoDQogICAgICAgICAgICAgICAgICAgICAgICBTRUxFQ1QgRElTVElOQ1QodHIub2JqZWN0X2lkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gd3BfdGVybV9yZWxhdGlvbnNoaXBzIEFTIHRyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVGVCBKT0lOIHdwX3Rlcm1fdGF4b25vbXkgYXMgdHQgT04gKHRyLnRlcm1fdGF4b25vbXlfaWQgPSB0dC50ZXJtX3RheG9ub215X2lkIEFORCB0dC50YXhvbm9teSA9ICdwcm9kdWN0X3Zpc2liaWxpdHknKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHQudGVybV9pZCBOT1QgSU4gKDIzMykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFORCB0ci5vYmplY3RfaWQgTk9UIElOICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUxFQ1QgRElTVElOQ1QodHJzLm9iamVjdF9pZCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIHdwX3Rlcm1fcmVsYXRpb25zaGlwcyBBUyB0cnMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRUZUIEpPSU4gd3BfdGVybV90YXhvbm9teSBhcyB0dHMgT04gKHRycy50ZXJtX3RheG9ub215X2lkID0gdHRzLnRlcm1fdGF4b25vbXlfaWQgQU5EIHR0cy50YXhvbm9teSA9ICdwcm9kdWN0X3Zpc2liaWxpdHknKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHR0cy50ZXJtX2lkIElOICgyMzMpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgIEFORCAoIA0KICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgU0VMRUNUIElGKChtZXRhX2tleSBJUyBOVUxMIE9SIG1ldGFfdmFsdWUgPSAnJyksIC0xLCBDT1VOVChtZXRhX2lkKSkNCiAgICAgICAgICAgICAgICAgICAgRlJPTSB3cF9wb3N0bWV0YQ0KICAgICAgICAgICAgICAgICAgICBXSEVSRSB3cF9wb3N0bWV0YS5wb3N0X2lkID0gd3BfcG9zdHMuSUQgQU5EIHdwX3Bvc3RtZXRhLm1ldGFfa2V5PSdfc3RvY2tfc3RhdHVzJw0KICAgICAgICAgICAgICAgICAgICBMSU1JVCAxDQogICAgICAgICAgICAgICAgICApID0gLTENCiAgICAgICAgICAgICAgICAgT1INCiAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgU0VMRUNUIENPVU5UKG1ldGFfaWQpIGFzIG10Yw0KICAgICAgICAgICAgICAgICAgICBGUk9NIHdwX3Bvc3RtZXRhDQogICAgICAgICAgICAgICAgICAgIFdIRVJFIHdwX3Bvc3RtZXRhLnBvc3RfaWQgPSB3cF9wb3N0cy5JRCBBTkQgd3BfcG9zdG1ldGEubWV0YV9rZXk9J19zdG9ja19zdGF0dXMnIEFORCAod3BfcG9zdG1ldGEubWV0YV92YWx1ZSBMSUtFICdpbnN0b2NrJykNCiAgICAgICAgICAgICAgICAgICAgR1JPVVAgQlkgbWV0YV9pZA0KICAgICAgICAgICAgICAgICAgICBPUkRFUiBCWSBtdGMNCiAgICAgICAgICAgICAgICAgICAgTElNSVQgMQ0KICAgICAgICAgICAgICAgICAgKSA+PSAxDQogICAgICAgICAgICAgICAgKSApDQogICAgICAgICAgICBBTkQgKCB3cF9wb3N0cy5wb3N0X3N0YXR1cyBJTiAoJ3B1Ymxpc2gnKSApDQogICAgICAgICAgICBBTkQgKDEpDQogICAgICAgICAgICBBTkQgKCAoKCB3cF9wb3N0cy5wb3N0X3RpdGxlIExJS0UgJyV2ZXJ0aW1heCUnICkgT1IgKCB3cF9wb3N0cy5wb3N0X2NvbnRlbnQgTElLRSAnJXZlcnRpbWF4JScgKSBPUiAoIHdwX3Bvc3RzLnBvc3RfZXhjZXJwdCBMSUtFICcldmVydGltYXglJyApIE9SICggd3BfcG9zdG1ldGEubWV0YV9rZXk9J19za3UnIEFORCAgd3BfcG9zdG1ldGEubWV0YV92YWx1ZSBMSUtFICcldmVydGltYXglJyApKSApDQogICAgICAgICAgICANCiAgICAgICAgICAgIEFORCAoICgxKSApDQogICAgICAgICAgICANCiAgICAgICAgICAgIA0KICAgICAgICBHUk9VUCBCWQ0KICAgICAgICAgIAkgd3BfcG9zdHMuSUQNCiAgICAgICAgT1JERVIgQlkNCiAgICAgICAgCSByZWxldmFuY2UgREVTQywgZGF0ZSBERVNDLCBpZCBERVNDDQogICAgICAgIExJTUlUIDEwIjtzOjc6InJlc3VsdHMiO2k6OTt9aToyO2E6NDp7czo2OiJwaHJhc2UiO3M6ODoidmVydGltYXgiO3M6Nzoib3B0aW9ucyI7YToxNzp7czoxNToicXRyYW5zbGF0ZV9sYW5nIjtzOjE6IjAiO3M6MTE6InNldF9pbnRpdGxlIjtiOjE7czoxMzoic2V0X2luY29udGVudCI7YjoxO3M6MTM6InNldF9pbmV4Y2VycHQiO2I6MTtzOjk6ImN1c3RvbXNldCI7YTozOntpOjA7czo3OiJwcm9kdWN0IjtpOjE7czoxNzoicHJvZHVjdF92YXJpYXRpb24iO2k6MjtzOjExOiJjYXNlc3R1ZGllcyI7fXM6MTM6InNldF9leGFjdG9ubHkiO2I6MDtzOjE0OiJzZXRfaW5jb21tZW50cyI7YjowO3M6MTE6InNldF9pbnBvc3RzIjtiOjA7czoxMToic2V0X2lucGFnZXMiO2I6MDtzOjEzOiJzZWFyY2hpbnRlcm1zIjtiOjA7czoxMzoic2V0X2luYnB1c2VycyI7YjowO3M6MTQ6InNldF9pbmJwZ3JvdXBzIjtiOjA7czoxNDoic2V0X2luYnBmb3J1bXMiO2I6MDtzOjEwOiJtYXhyZXN1bHRzIjtzOjI6IjEwIjtzOjg6ImRvX2dyb3VwIjtiOjE7czoxMToiY2F0ZWdvcnlzZXQiO2E6MDp7fXM6NzoidGVybXNldCI7YTowOnt9fXM6NToicXVlcnkiO3M6NDQ3MjoiDQogICAgCVNFTEVDVA0KCQkJDQoJCQl3cF9wb3N0cy5wb3N0X3RpdGxlIGFzIHRpdGxlLA0KCQkJd3BfcG9zdHMuSUQgYXMgaWQsDQoJCQl3cF9wb3N0cy5wb3N0X2RhdGUgYXMgZGF0ZSwNCgkJCXdwX3Bvc3RzLnBvc3RfY29udGVudCBhcyBjb250ZW50LA0KCQkJd3BfcG9zdHMucG9zdF9leGNlcnB0IGFzIGV4Y2VycHQsDQoJCQkncGFnZXBvc3QnIGFzIGNvbnRlbnRfdHlwZSwNCgkJCShTRUxFQ1QNCgkJCQl3cF91c2Vycy5kaXNwbGF5X25hbWUgYXMgYXV0aG9yDQoJCQkJRlJPTSB3cF91c2Vycw0KCQkJCVdIRVJFIHdwX3VzZXJzLklEID0gd3BfcG9zdHMucG9zdF9hdXRob3INCgkJCSkgYXMgYXV0aG9yLA0KCQkJJycgYXMgdHRpZCwNCgkJCXdwX3Bvc3RzLnBvc3RfdHlwZSBhcyBwb3N0X3R5cGUsDQoJCQkoKGNhc2Ugd2hlbg0KICAgICAgICAgICAgICAgICAgICAod3BfcG9zdHMucG9zdF90aXRsZSBMSUtFICd2ZXJ0aW1heCUnKQ0KICAgICAgICAgICAgICAgICAgICAgdGhlbiAyMCBlbHNlIDAgZW5kKSArIChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfdGl0bGUgTElLRSAnJXZlcnRpbWF4JScpDQogICAgICAgICAgICAgICAgICAgICB0aGVuIDEwIGVsc2UgMCBlbmQpICsgKGNhc2Ugd2hlbg0KICAgICAgICAgICAgICAgICAgICAgICh3cF9wb3N0cy5wb3N0X3RpdGxlIExJS0UgJyV2ZXJ0aW1heCUnKQ0KICAgICAgICAgICAgICAgICAgICAgICB0aGVuIDEwIGVsc2UgMCBlbmQpICsgKGNhc2Ugd2hlbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3cF9wb3N0cy5wb3N0X2NvbnRlbnQgTElLRSAnJXZlcnRpbWF4JScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICh3cF9wb3N0cy5wb3N0X2NvbnRlbnQgTElLRSAnJXZlcnRpbWF4JScpDQogICAgICAgICAgICAgICAgICAgICB0aGVuIDEwIGVsc2UgMCBlbmQpICsgKGNhc2Ugd2hlbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3cF9wb3N0cy5wb3N0X2V4Y2VycHQgTElLRSAnJXZlcnRpbWF4JScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICh3cF9wb3N0cy5wb3N0X2V4Y2VycHQgTElLRSAnJXZlcnRpbWF4JScpDQogICAgICAgICAgICAgICAgICAgICB0aGVuIDEwIGVsc2UgMCBlbmQpKSBhcyByZWxldmFuY2UNCiAgICAJRlJPTSB3cF9wb3N0cw0KCQkJTEVGVCBKT0lOIHdwX3Bvc3RtZXRhIE9OIHdwX3Bvc3RtZXRhLnBvc3RfaWQgPSB3cF9wb3N0cy5JRA0KCQkJDQoJCQkNCiAgICAJV0hFUkUNCiAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgKCgNCiAgICAgICAgICAgICAgICAgICAgICAgICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cF9wb3N0cy5wb3N0X3R5cGUgPSAncHJvZHVjdF92YXJpYXRpb24nIEFORCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWElTVFMoU0VMRUNUIDEgRlJPTSB3cF9wb3N0cyBwYXIgV0hFUkUgcGFyLklEID0gd3BfcG9zdHMucG9zdF9wYXJlbnQgQU5EIHBhci5wb3N0X3N0YXR1cyBJTigncHVibGlzaCcpICkgDQogICAgICAgICAgICAgICAgICAgICAgICApICBPUiB3cF9wb3N0cy5wb3N0X3R5cGUgSU4gKCdwcm9kdWN0JywgJ2Nhc2VzdHVkaWVzJykNCiAgICAgICAgICAgICAgICAgICAgKSkNCiAgICAgICAgICAgICAgICAgQU5EICgNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgTk9UIEVYSVNUUyAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VMRUNUICoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIHdwX3Rlcm1fcmVsYXRpb25zaGlwcyBhcyB4dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOTkVSIEpPSU4gd3BfdGVybV90YXhvbm9teSBhcyB0dCBPTiAoIHh0LnRlcm1fdGF4b25vbXlfaWQgPSB0dC50ZXJtX3RheG9ub215X2lkIEFORCB0dC50YXhvbm9teSA9ICdwcm9kdWN0X3Zpc2liaWxpdHknKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHh0Lm9iamVjdF9pZCA9IHdwX3Bvc3RzLklEDQogICAgICAgICAgICAgICAgICAgICAgICApIE9SIA0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIHdwX3Bvc3RzLklEIElOICgNCiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBESVNUSU5DVCh0ci5vYmplY3RfaWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSB3cF90ZXJtX3JlbGF0aW9uc2hpcHMgQVMgdHINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMRUZUIEpPSU4gd3BfdGVybV90YXhvbm9teSBhcyB0dCBPTiAodHIudGVybV90YXhvbm9teV9pZCA9IHR0LnRlcm1fdGF4b25vbXlfaWQgQU5EIHR0LnRheG9ub215ID0gJ3Byb2R1Y3RfdmlzaWJpbGl0eScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dC50ZXJtX2lkIE5PVCBJTiAoMjMzKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5EIHRyLm9iamVjdF9pZCBOT1QgSU4gKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBESVNUSU5DVCh0cnMub2JqZWN0X2lkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gd3BfdGVybV9yZWxhdGlvbnNoaXBzIEFTIHRycw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiB3cF90ZXJtX3RheG9ub215IGFzIHR0cyBPTiAodHJzLnRlcm1fdGF4b25vbXlfaWQgPSB0dHMudGVybV90YXhvbm9teV9pZCBBTkQgdHRzLnRheG9ub215ID0gJ3Byb2R1Y3RfdmlzaWJpbGl0eScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgdHRzLnRlcm1faWQgSU4gKDIzMykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgQU5EICggDQogICAgICAgICAgICAgICAgKA0KICAgICAgICAgICAgICAgICAgKA0KICAgICAgICAgICAgICAgICAgICBTRUxFQ1QgSUYoKG1ldGFfa2V5IElTIE5VTEwgT1IgbWV0YV92YWx1ZSA9ICcnKSwgLTEsIENPVU5UKG1ldGFfaWQpKQ0KICAgICAgICAgICAgICAgICAgICBGUk9NIHdwX3Bvc3RtZXRhDQogICAgICAgICAgICAgICAgICAgIFdIRVJFIHdwX3Bvc3RtZXRhLnBvc3RfaWQgPSB3cF9wb3N0cy5JRCBBTkQgd3BfcG9zdG1ldGEubWV0YV9rZXk9J19zdG9ja19zdGF0dXMnDQogICAgICAgICAgICAgICAgICAgIExJTUlUIDENCiAgICAgICAgICAgICAgICAgICkgPSAtMQ0KICAgICAgICAgICAgICAgICBPUg0KICAgICAgICAgICAgICAgICAgKA0KICAgICAgICAgICAgICAgICAgICBTRUxFQ1QgQ09VTlQobWV0YV9pZCkgYXMgbXRjDQogICAgICAgICAgICAgICAgICAgIEZST00gd3BfcG9zdG1ldGENCiAgICAgICAgICAgICAgICAgICAgV0hFUkUgd3BfcG9zdG1ldGEucG9zdF9pZCA9IHdwX3Bvc3RzLklEIEFORCB3cF9wb3N0bWV0YS5tZXRhX2tleT0nX3N0b2NrX3N0YXR1cycgQU5EICh3cF9wb3N0bWV0YS5tZXRhX3ZhbHVlIExJS0UgJ2luc3RvY2snKQ0KICAgICAgICAgICAgICAgICAgICBHUk9VUCBCWSBtZXRhX2lkDQogICAgICAgICAgICAgICAgICAgIE9SREVSIEJZIG10Yw0KICAgICAgICAgICAgICAgICAgICBMSU1JVCAxDQogICAgICAgICAgICAgICAgICApID49IDENCiAgICAgICAgICAgICAgICApICkNCiAgICAgICAgICAgIEFORCAoIHdwX3Bvc3RzLnBvc3Rfc3RhdHVzIElOICgncHVibGlzaCcpICkNCiAgICAgICAgICAgIEFORCAoMSkNCiAgICAgICAgICAgIEFORCAoICgoIHdwX3Bvc3RzLnBvc3RfdGl0bGUgTElLRSAnJXZlcnRpbWF4JScgKSBPUiAoIHdwX3Bvc3RzLnBvc3RfY29udGVudCBMSUtFICcldmVydGltYXglJyApIE9SICggd3BfcG9zdHMucG9zdF9leGNlcnB0IExJS0UgJyV2ZXJ0aW1heCUnICkgT1IgKCB3cF9wb3N0bWV0YS5tZXRhX2tleT0nX3NrdScgQU5EICB3cF9wb3N0bWV0YS5tZXRhX3ZhbHVlIExJS0UgJyV2ZXJ0aW1heCUnICkpICkNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgQU5EICggKDEpICkNCiAgICAgICAgICAgIA0KICAgICAgICAgICAgDQogICAgICAgIEdST1VQIEJZDQogICAgICAgICAgCSB3cF9wb3N0cy5JRA0KICAgICAgICBPUkRFUiBCWQ0KICAgICAgICAJIHJlbGV2YW5jZSBERVNDLCBkYXRlIERFU0MsIGlkIERFU0MNCiAgICAgICAgTElNSVQgMTAiO3M6NzoicmVzdWx0cyI7aTo5O31pOjM7YTo0OntzOjY6InBocmFzZSI7czoyOiJ2ZSI7czo3OiJvcHRpb25zIjthOjE3OntzOjE1OiJxdHJhbnNsYXRlX2xhbmciO3M6MToiMCI7czoxMToic2V0X2ludGl0bGUiO2I6MTtzOjEzOiJzZXRfaW5jb250ZW50IjtiOjE7czoxMzoic2V0X2luZXhjZXJwdCI7YjoxO3M6OToiY3VzdG9tc2V0IjthOjM6e2k6MDtzOjc6InByb2R1Y3QiO2k6MTtzOjE3OiJwcm9kdWN0X3ZhcmlhdGlvbiI7aToyO3M6MTE6ImNhc2VzdHVkaWVzIjt9czoxMzoic2V0X2V4YWN0b25seSI7YjowO3M6MTQ6InNldF9pbmNvbW1lbnRzIjtiOjA7czoxMToic2V0X2lucG9zdHMiO2I6MDtzOjExOiJzZXRfaW5wYWdlcyI7YjowO3M6MTM6InNlYXJjaGludGVybXMiO2I6MDtzOjEzOiJzZXRfaW5icHVzZXJzIjtiOjA7czoxNDoic2V0X2luYnBncm91cHMiO2I6MDtzOjE0OiJzZXRfaW5icGZvcnVtcyI7YjowO3M6MTA6Im1heHJlc3VsdHMiO3M6MjoiMTAiO3M6ODoiZG9fZ3JvdXAiO2I6MTtzOjExOiJjYXRlZ29yeXNldCI7YTowOnt9czo3OiJ0ZXJtc2V0IjthOjA6e319czo1OiJxdWVyeSI7czo0NDA2OiINCiAgICAJU0VMRUNUDQoJCQkNCgkJCXdwX3Bvc3RzLnBvc3RfdGl0bGUgYXMgdGl0bGUsDQoJCQl3cF9wb3N0cy5JRCBhcyBpZCwNCgkJCXdwX3Bvc3RzLnBvc3RfZGF0ZSBhcyBkYXRlLA0KCQkJd3BfcG9zdHMucG9zdF9jb250ZW50IGFzIGNvbnRlbnQsDQoJCQl3cF9wb3N0cy5wb3N0X2V4Y2VycHQgYXMgZXhjZXJwdCwNCgkJCSdwYWdlcG9zdCcgYXMgY29udGVudF90eXBlLA0KCQkJKFNFTEVDVA0KCQkJCXdwX3VzZXJzLmRpc3BsYXlfbmFtZSBhcyBhdXRob3INCgkJCQlGUk9NIHdwX3VzZXJzDQoJCQkJV0hFUkUgd3BfdXNlcnMuSUQgPSB3cF9wb3N0cy5wb3N0X2F1dGhvcg0KCQkJKSBhcyBhdXRob3IsDQoJCQknJyBhcyB0dGlkLA0KCQkJd3BfcG9zdHMucG9zdF90eXBlIGFzIHBvc3RfdHlwZSwNCgkJCSgoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICh3cF9wb3N0cy5wb3N0X3RpdGxlIExJS0UgJ3ZlJScpDQogICAgICAgICAgICAgICAgICAgICB0aGVuIDIwIGVsc2UgMCBlbmQpICsgKGNhc2Ugd2hlbg0KICAgICAgICAgICAgICAgICAgICAod3BfcG9zdHMucG9zdF90aXRsZSBMSUtFICcldmUlJykNCiAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfdGl0bGUgTElLRSAnJXZlJScpDQogICAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfY29udGVudCBMSUtFICcldmUlJykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiAxMCBlbHNlIDAgZW5kKSArIChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfY29udGVudCBMSUtFICcldmUlJykNCiAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfZXhjZXJwdCBMSUtFICcldmUlJykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiAxMCBlbHNlIDAgZW5kKSArIChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfZXhjZXJwdCBMSUtFICcldmUlJykNCiAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkpIGFzIHJlbGV2YW5jZQ0KICAgIAlGUk9NIHdwX3Bvc3RzDQoJCQlMRUZUIEpPSU4gd3BfcG9zdG1ldGEgT04gd3BfcG9zdG1ldGEucG9zdF9pZCA9IHdwX3Bvc3RzLklEDQoJCQkNCgkJCQ0KICAgIAlXSEVSRQ0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAoKA0KICAgICAgICAgICAgICAgICAgICAgICAgKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdwX3Bvc3RzLnBvc3RfdHlwZSA9ICdwcm9kdWN0X3ZhcmlhdGlvbicgQU5EIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYSVNUUyhTRUxFQ1QgMSBGUk9NIHdwX3Bvc3RzIHBhciBXSEVSRSBwYXIuSUQgPSB3cF9wb3N0cy5wb3N0X3BhcmVudCBBTkQgcGFyLnBvc3Rfc3RhdHVzIElOKCdwdWJsaXNoJykgKSANCiAgICAgICAgICAgICAgICAgICAgICAgICkgIE9SIHdwX3Bvc3RzLnBvc3RfdHlwZSBJTiAoJ3Byb2R1Y3QnLCAnY2FzZXN0dWRpZXMnKQ0KICAgICAgICAgICAgICAgICAgICApKQ0KICAgICAgICAgICAgICAgICBBTkQgKA0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBOT1QgRVhJU1RTICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUxFQ1QgKg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gd3BfdGVybV9yZWxhdGlvbnNoaXBzIGFzIHh0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ORVIgSk9JTiB3cF90ZXJtX3RheG9ub215IGFzIHR0IE9OICggeHQudGVybV90YXhvbm9teV9pZCA9IHR0LnRlcm1fdGF4b25vbXlfaWQgQU5EIHR0LnRheG9ub215ID0gJ3Byb2R1Y3RfdmlzaWJpbGl0eScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHQub2JqZWN0X2lkID0gd3BfcG9zdHMuSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICkgT1IgDQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgd3BfcG9zdHMuSUQgSU4gKA0KICAgICAgICAgICAgICAgICAgICAgICAgU0VMRUNUIERJU1RJTkNUKHRyLm9iamVjdF9pZCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIHdwX3Rlcm1fcmVsYXRpb25zaGlwcyBBUyB0cg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiB3cF90ZXJtX3RheG9ub215IGFzIHR0IE9OICh0ci50ZXJtX3RheG9ub215X2lkID0gdHQudGVybV90YXhvbm9teV9pZCBBTkQgdHQudGF4b25vbXkgPSAncHJvZHVjdF92aXNpYmlsaXR5JykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR0LnRlcm1faWQgTk9UIElOICgyMzMpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTkQgdHIub2JqZWN0X2lkIE5PVCBJTiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VMRUNUIERJU1RJTkNUKHRycy5vYmplY3RfaWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSB3cF90ZXJtX3JlbGF0aW9uc2hpcHMgQVMgdHJzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVGVCBKT0lOIHdwX3Rlcm1fdGF4b25vbXkgYXMgdHRzIE9OICh0cnMudGVybV90YXhvbm9teV9pZCA9IHR0cy50ZXJtX3RheG9ub215X2lkIEFORCB0dHMudGF4b25vbXkgPSAncHJvZHVjdF92aXNpYmlsaXR5JykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSB0dHMudGVybV9pZCBJTiAoMjMzKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICBBTkQgKCANCiAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgIFNFTEVDVCBJRigobWV0YV9rZXkgSVMgTlVMTCBPUiBtZXRhX3ZhbHVlID0gJycpLCAtMSwgQ09VTlQobWV0YV9pZCkpDQogICAgICAgICAgICAgICAgICAgIEZST00gd3BfcG9zdG1ldGENCiAgICAgICAgICAgICAgICAgICAgV0hFUkUgd3BfcG9zdG1ldGEucG9zdF9pZCA9IHdwX3Bvc3RzLklEIEFORCB3cF9wb3N0bWV0YS5tZXRhX2tleT0nX3N0b2NrX3N0YXR1cycNCiAgICAgICAgICAgICAgICAgICAgTElNSVQgMQ0KICAgICAgICAgICAgICAgICAgKSA9IC0xDQogICAgICAgICAgICAgICAgIE9SDQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgIFNFTEVDVCBDT1VOVChtZXRhX2lkKSBhcyBtdGMNCiAgICAgICAgICAgICAgICAgICAgRlJPTSB3cF9wb3N0bWV0YQ0KICAgICAgICAgICAgICAgICAgICBXSEVSRSB3cF9wb3N0bWV0YS5wb3N0X2lkID0gd3BfcG9zdHMuSUQgQU5EIHdwX3Bvc3RtZXRhLm1ldGFfa2V5PSdfc3RvY2tfc3RhdHVzJyBBTkQgKHdwX3Bvc3RtZXRhLm1ldGFfdmFsdWUgTElLRSAnaW5zdG9jaycpDQogICAgICAgICAgICAgICAgICAgIEdST1VQIEJZIG1ldGFfaWQNCiAgICAgICAgICAgICAgICAgICAgT1JERVIgQlkgbXRjDQogICAgICAgICAgICAgICAgICAgIExJTUlUIDENCiAgICAgICAgICAgICAgICAgICkgPj0gMQ0KICAgICAgICAgICAgICAgICkgKQ0KICAgICAgICAgICAgQU5EICggd3BfcG9zdHMucG9zdF9zdGF0dXMgSU4gKCdwdWJsaXNoJykgKQ0KICAgICAgICAgICAgQU5EICgxKQ0KICAgICAgICAgICAgQU5EICggKCggd3BfcG9zdHMucG9zdF90aXRsZSBMSUtFICcldmUlJyApIE9SICggd3BfcG9zdHMucG9zdF9jb250ZW50IExJS0UgJyV2ZSUnICkgT1IgKCB3cF9wb3N0cy5wb3N0X2V4Y2VycHQgTElLRSAnJXZlJScgKSBPUiAoIHdwX3Bvc3RtZXRhLm1ldGFfa2V5PSdfc2t1JyBBTkQgIHdwX3Bvc3RtZXRhLm1ldGFfdmFsdWUgTElLRSAnJXZlJScgKSkgKQ0KICAgICAgICAgICAgDQogICAgICAgICAgICBBTkQgKCAoMSkgKQ0KICAgICAgICAgICAgDQogICAgICAgICAgICANCiAgICAgICAgR1JPVVAgQlkNCiAgICAgICAgICAJIHdwX3Bvc3RzLklEDQogICAgICAgIE9SREVSIEJZDQogICAgICAgIAkgcmVsZXZhbmNlIERFU0MsIGRhdGUgREVTQywgaWQgREVTQw0KICAgICAgICBMSU1JVCAxMCI7czo3OiJyZXN1bHRzIjtpOjEwO31pOjQ7YTo0OntzOjY6InBocmFzZSI7czo4OiJ2ZXJ0aW1heCI7czo3OiJvcHRpb25zIjthOjE3OntzOjE1OiJxdHJhbnNsYXRlX2xhbmciO3M6MToiMCI7czoxMToic2V0X2ludGl0bGUiO2I6MTtzOjEzOiJzZXRfaW5jb250ZW50IjtiOjE7czoxMzoic2V0X2luZXhjZXJwdCI7YjoxO3M6OToiY3VzdG9tc2V0IjthOjM6e2k6MDtzOjc6InByb2R1Y3QiO2k6MTtzOjE3OiJwcm9kdWN0X3ZhcmlhdGlvbiI7aToyO3M6MTE6ImNhc2VzdHVkaWVzIjt9czoxMzoic2V0X2V4YWN0b25seSI7YjowO3M6MTQ6InNldF9pbmNvbW1lbnRzIjtiOjA7czoxMToic2V0X2lucG9zdHMiO2I6MDtzOjExOiJzZXRfaW5wYWdlcyI7YjowO3M6MTM6InNlYXJjaGludGVybXMiO2I6MDtzOjEzOiJzZXRfaW5icHVzZXJzIjtiOjA7czoxNDoic2V0X2luYnBncm91cHMiO2I6MDtzOjE0OiJzZXRfaW5icGZvcnVtcyI7YjowO3M6MTA6Im1heHJlc3VsdHMiO3M6MjoiMTAiO3M6ODoiZG9fZ3JvdXAiO2I6MTtzOjExOiJjYXRlZ29yeXNldCI7YTowOnt9czo3OiJ0ZXJtc2V0IjthOjA6e319czo1OiJxdWVyeSI7czo0NDcyOiINCiAgICAJU0VMRUNUDQoJCQkNCgkJCXdwX3Bvc3RzLnBvc3RfdGl0bGUgYXMgdGl0bGUsDQoJCQl3cF9wb3N0cy5JRCBhcyBpZCwNCgkJCXdwX3Bvc3RzLnBvc3RfZGF0ZSBhcyBkYXRlLA0KCQkJd3BfcG9zdHMucG9zdF9jb250ZW50IGFzIGNvbnRlbnQsDQoJCQl3cF9wb3N0cy5wb3N0X2V4Y2VycHQgYXMgZXhjZXJwdCwNCgkJCSdwYWdlcG9zdCcgYXMgY29udGVudF90eXBlLA0KCQkJKFNFTEVDVA0KCQkJCXdwX3VzZXJzLmRpc3BsYXlfbmFtZSBhcyBhdXRob3INCgkJCQlGUk9NIHdwX3VzZXJzDQoJCQkJV0hFUkUgd3BfdXNlcnMuSUQgPSB3cF9wb3N0cy5wb3N0X2F1dGhvcg0KCQkJKSBhcyBhdXRob3IsDQoJCQknJyBhcyB0dGlkLA0KCQkJd3BfcG9zdHMucG9zdF90eXBlIGFzIHBvc3RfdHlwZSwNCgkJCSgoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICh3cF9wb3N0cy5wb3N0X3RpdGxlIExJS0UgJ3ZlcnRpbWF4JScpDQogICAgICAgICAgICAgICAgICAgICB0aGVuIDIwIGVsc2UgMCBlbmQpICsgKGNhc2Ugd2hlbg0KICAgICAgICAgICAgICAgICAgICAod3BfcG9zdHMucG9zdF90aXRsZSBMSUtFICcldmVydGltYXglJykNCiAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfdGl0bGUgTElLRSAnJXZlcnRpbWF4JScpDQogICAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfY29udGVudCBMSUtFICcldmVydGltYXglJykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiAxMCBlbHNlIDAgZW5kKSArIChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfY29udGVudCBMSUtFICcldmVydGltYXglJykNCiAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkgKyAoY2FzZSB3aGVuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfZXhjZXJwdCBMSUtFICcldmVydGltYXglJykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiAxMCBlbHNlIDAgZW5kKSArIChjYXNlIHdoZW4NCiAgICAgICAgICAgICAgICAgICAgKHdwX3Bvc3RzLnBvc3RfZXhjZXJwdCBMSUtFICcldmVydGltYXglJykNCiAgICAgICAgICAgICAgICAgICAgIHRoZW4gMTAgZWxzZSAwIGVuZCkpIGFzIHJlbGV2YW5jZQ0KICAgIAlGUk9NIHdwX3Bvc3RzDQoJCQlMRUZUIEpPSU4gd3BfcG9zdG1ldGEgT04gd3BfcG9zdG1ldGEucG9zdF9pZCA9IHdwX3Bvc3RzLklEDQoJCQkNCgkJCQ0KICAgIAlXSEVSRQ0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAoKA0KICAgICAgICAgICAgICAgICAgICAgICAgKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdwX3Bvc3RzLnBvc3RfdHlwZSA9ICdwcm9kdWN0X3ZhcmlhdGlvbicgQU5EIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYSVNUUyhTRUxFQ1QgMSBGUk9NIHdwX3Bvc3RzIHBhciBXSEVSRSBwYXIuSUQgPSB3cF9wb3N0cy5wb3N0X3BhcmVudCBBTkQgcGFyLnBvc3Rfc3RhdHVzIElOKCdwdWJsaXNoJykgKSANCiAgICAgICAgICAgICAgICAgICAgICAgICkgIE9SIHdwX3Bvc3RzLnBvc3RfdHlwZSBJTiAoJ3Byb2R1Y3QnLCAnY2FzZXN0dWRpZXMnKQ0KICAgICAgICAgICAgICAgICAgICApKQ0KICAgICAgICAgICAgICAgICBBTkQgKA0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICBOT1QgRVhJU1RTICgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUxFQ1QgKg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gd3BfdGVybV9yZWxhdGlvbnNoaXBzIGFzIHh0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5ORVIgSk9JTiB3cF90ZXJtX3RheG9ub215IGFzIHR0IE9OICggeHQudGVybV90YXhvbm9teV9pZCA9IHR0LnRlcm1fdGF4b25vbXlfaWQgQU5EIHR0LnRheG9ub215ID0gJ3Byb2R1Y3RfdmlzaWJpbGl0eScpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeHQub2JqZWN0X2lkID0gd3BfcG9zdHMuSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICkgT1IgDQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgd3BfcG9zdHMuSUQgSU4gKA0KICAgICAgICAgICAgICAgICAgICAgICAgU0VMRUNUIERJU1RJTkNUKHRyLm9iamVjdF9pZCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIHdwX3Rlcm1fcmVsYXRpb25zaGlwcyBBUyB0cg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFRlQgSk9JTiB3cF90ZXJtX3RheG9ub215IGFzIHR0IE9OICh0ci50ZXJtX3RheG9ub215X2lkID0gdHQudGVybV90YXhvbm9teV9pZCBBTkQgdHQudGF4b25vbXkgPSAncHJvZHVjdF92aXNpYmlsaXR5JykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR0LnRlcm1faWQgTk9UIElOICgyMzMpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTkQgdHIub2JqZWN0X2lkIE5PVCBJTiAoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VMRUNUIERJU1RJTkNUKHRycy5vYmplY3RfaWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSB3cF90ZXJtX3JlbGF0aW9uc2hpcHMgQVMgdHJzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTEVGVCBKT0lOIHdwX3Rlcm1fdGF4b25vbXkgYXMgdHRzIE9OICh0cnMudGVybV90YXhvbm9teV9pZCA9IHR0cy50ZXJtX3RheG9ub215X2lkIEFORCB0dHMudGF4b25vbXkgPSAncHJvZHVjdF92aXNpYmlsaXR5JykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSB0dHMudGVybV9pZCBJTiAoMjMzKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICBBTkQgKCANCiAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgIFNFTEVDVCBJRigobWV0YV9rZXkgSVMgTlVMTCBPUiBtZXRhX3ZhbHVlID0gJycpLCAtMSwgQ09VTlQobWV0YV9pZCkpDQogICAgICAgICAgICAgICAgICAgIEZST00gd3BfcG9zdG1ldGENCiAgICAgICAgICAgICAgICAgICAgV0hFUkUgd3BfcG9zdG1ldGEucG9zdF9pZCA9IHdwX3Bvc3RzLklEIEFORCB3cF9wb3N0bWV0YS5tZXRhX2tleT0nX3N0b2NrX3N0YXR1cycNCiAgICAgICAgICAgICAgICAgICAgTElNSVQgMQ0KICAgICAgICAgICAgICAgICAgKSA9IC0xDQogICAgICAgICAgICAgICAgIE9SDQogICAgICAgICAgICAgICAgICAoDQogICAgICAgICAgICAgICAgICAgIFNFTEVDVCBDT1VOVChtZXRhX2lkKSBhcyBtdGMNCiAgICAgICAgICAgICAgICAgICAgRlJPTSB3cF9wb3N0bWV0YQ0KICAgICAgICAgICAgICAgICAgICBXSEVSRSB3cF9wb3N0bWV0YS5wb3N0X2lkID0gd3BfcG9zdHMuSUQgQU5EIHdwX3Bvc3RtZXRhLm1ldGFfa2V5PSdfc3RvY2tfc3RhdHVzJyBBTkQgKHdwX3Bvc3RtZXRhLm1ldGFfdmFsdWUgTElLRSAnaW5zdG9jaycpDQogICAgICAgICAgICAgICAgICAgIEdST1VQIEJZIG1ldGFfaWQNCiAgICAgICAgICAgICAgICAgICAgT1JERVIgQlkgbXRjDQogICAgICAgICAgICAgICAgICAgIExJTUlUIDENCiAgICAgICAgICAgICAgICAgICkgPj0gMQ0KICAgICAgICAgICAgICAgICkgKQ0KICAgICAgICAgICAgQU5EICggd3BfcG9zdHMucG9zdF9zdGF0dXMgSU4gKCdwdWJsaXNoJykgKQ0KICAgICAgICAgICAgQU5EICgxKQ0KICAgICAgICAgICAgQU5EICggKCggd3BfcG9zdHMucG9zdF90aXRsZSBMSUtFICcldmVydGltYXglJyApIE9SICggd3BfcG9zdHMucG9zdF9jb250ZW50IExJS0UgJyV2ZXJ0aW1heCUnICkgT1IgKCB3cF9wb3N0cy5wb3N0X2V4Y2VycHQgTElLRSAnJXZlcnRpbWF4JScgKSBPUiAoIHdwX3Bvc3RtZXRhLm1ldGFfa2V5PSdfc2t1JyBBTkQgIHdwX3Bvc3RtZXRhLm1ldGFfdmFsdWUgTElLRSAnJXZlcnRpbWF4JScgKSkgKQ0KICAgICAgICAgICAgDQogICAgICAgICAgICBBTkQgKCAoMSkgKQ0KICAgICAgICAgICAgDQogICAgICAgICAgICANCiAgICAgICAgR1JPVVAgQlkNCiAgICAgICAgICAJIHdwX3Bvc3RzLklEDQogICAgICAgIE9SREVSIEJZDQogICAgICAgIAkgcmVsZXZhbmNlIERFU0MsIGRhdGUgREVTQywgaWQgREVTQw0KICAgICAgICBMSU1JVCAxMCI7czo3OiJyZXN1bHRzIjtpOjk7fX19
- The topic ‘woocommerce – Include product variation in title of search results?’ is closed to new replies.