Vivre à Laval

L’effervescence de la ville combinée à une vie de quartier pétillante

Avec sa population d’environ 450 000 habitants, Laval se classe au troisième rang des villes les plus peuplées de la province. Malgré son caractère urbain, elle comporte une grande proportion de terres agricoles et d’espaces verts. Sa proximité avec la métropole, sa croissance économique soutenue, son réseau de transport collectif développé, ses grands axes routiers et ses quartiers résidentiels paisibles constituent des atouts considérables quand vient le temps de choisir un lieu de résidence. Découvrez ce que Laval a à offrir!

NATURE

En plus de ses quelque 200 parcs de quartier et de ses parcs canins, le territoire de Laval comprend quatre grands parcs : le Centre de la nature, dans le secteur Duvernay et Saint-Vincent-de-Paul, qui propose une foule d’activités, une fermette, des jardins et une serre tropicale; la berge aux Quatre-Vents, à Laval-Ouest, où l’on trouve une jolie plage pour pique-niquer et admirer le paysage riverain; la berge des Baigneurs, à Sainte-Rose, qui présente plusieurs sentiers piétonniers et modules d’exercices; et le parc Bernard-Landry, à Laval-des-Rapides, avec son parcours de disque golf et son joli sentier.

Sinon, l’organisme sans but lucratif CANOPÉE veille à la conservation et à la valorisation de huit bois et boisés à Laval, dont l’un des plus connus est le bois de l’Équerre, accessible par le rang du même nom. Ce dernier offre près de 13 km de sentiers de randonnée, et on peut y observer de nombreuses espèces d’oiseaux, de mammifères et d’amphibiens. Autre destination incontournable pour se retrouver en nature : le parc de la Rivière-des-Mille-Îles, un refuge faunique unique où l’on peut pratiquer le kayak.

LOISIRS

Les installations de sports et loisirs ne manquent pas, à Laval! Les amateurs de vélo se réjouiront du projet d’expansion de son réseau de pistes cyclables, qui devrait totaliser 450 km d’ici 2031, ainsi que des 6 stations de vélos BIXI, accessibles en tout temps. Sinon, la Place Bell ainsi qu’une dizaine d’arénas de quartier proposent du patinage libre pour toute la famille.

Parmi les autres sports qu’on peut pratiquer à Laval, il y a bien sûr la natation, car Laval compte une vingtaine de piscines extérieures ainsi que six piscines intérieures, en plus de nombreux jeux d’eau. Les terrains de tennis extérieurs, les pistes d’athlétisme, les parcs de planches à roulettes, les installations de Trekfit, ainsi que les terrains de baseball, de pétanque, de basketball, de soccer et même de tir à l’arc vous offrent de multiples occasions de bouger et de vous mettre en forme.

Culture

Accordant une grande place à l’art sous toutes ses formes, Laval comporte deux importants pôles de diffusion de spectacles, soit la Place Bell et la Maison des arts de Laval, ainsi que cinq musées, c’est-à-dire le Centre d’interprétation de l’eau, le Cosmodôme, le musée Armand-Frappier, le parc de la Rivière-des-Mille-Îles et la salle Alfred-Pellan. On y trouve aussi d’autres salles de moindre envergure, dont le théâtre Marcellin-Champagnat, de sorte que le calendrier de spectacles est extrêmement varié.

Laval possède aussi des lieux d’exposition aux quatre coins de la ville pour amener l’art dans les différents quartiers. De plus, neuf bibliothèques permettent de bien desservir toute la population lavalloise, en proposant une vaste gamme de documents et d’activités pour toute la famille.

Et ce n’est pas tout! Laval recèle plusieurs trésors patrimoniaux, que l’on peut découvrir par l’intermédiaire des Virées patrimoniales. La Ville propose aussi plusieurs événements culturels tout au long de l’année, comme le Festival Diapason, qui fait place à la relève, et les Petits bonheurs Laval, des spectacles destinés aux petits de 6 ans et moins.

Nos projets à Laval

PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnZhciBnZm9ybTtnZm9ybXx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdmb3JtX21haW5fc2NyaXB0c19sb2FkZWQiLGZ1bmN0aW9uKCl7Z2Zvcm0uc2NyaXB0c0xvYWRlZD0hMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdmb3JtL3RoZW1lL3NjcmlwdHNfbG9hZGVkIixmdW5jdGlvbigpe2dmb3JtLnRoZW1lU2NyaXB0c0xvYWRlZD0hMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2dmb3JtLmRvbUxvYWRlZD0hMH0pLGdmb3JtPXtkb21Mb2FkZWQ6ITEsc2NyaXB0c0xvYWRlZDohMSx0aGVtZVNjcmlwdHNMb2FkZWQ6ITEsaXNGb3JtRWRpdG9yOigpPT4iZnVuY3Rpb24iPT10eXBlb2YgSW5pdGlhbGl6ZUVkaXRvcixjYWxsSWZMb2FkZWQ6ZnVuY3Rpb24obyl7cmV0dXJuISghZ2Zvcm0uZG9tTG9hZGVkfHwhZ2Zvcm0uc2NyaXB0c0xvYWRlZHx8IWdmb3JtLnRoZW1lU2NyaXB0c0xvYWRlZCYmIWdmb3JtLmlzRm9ybUVkaXRvcigpfHwoZ2Zvcm0uaXNGb3JtRWRpdG9yKCkmJmNvbnNvbGUud2FybigiVGhlIHVzZSBvZiBnZm9ybS5pbml0aWFsaXplT25Mb2FkZWQoKSBpcyBkZXByZWNhdGVkIGluIHRoZSBmb3JtIGVkaXRvciBjb250ZXh0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gR3Jhdml0eSBGb3JtcyAzLjEuIiksbygpLDApKX0saW5pdGlhbGl6ZU9uTG9hZGVkOmZ1bmN0aW9uKG8pe2dmb3JtLmNhbGxJZkxvYWRlZChvKXx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdmb3JtX21haW5fc2NyaXB0c19sb2FkZWQiLCgpPT57Z2Zvcm0uc2NyaXB0c0xvYWRlZD0hMCxnZm9ybS5jYWxsSWZMb2FkZWQobyl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJnZm9ybS90aGVtZS9zY3JpcHRzX2xvYWRlZCIsKCk9PntnZm9ybS50aGVtZVNjcmlwdHNMb2FkZWQ9ITAsZ2Zvcm0uY2FsbElmTG9hZGVkKG8pfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCgpPT57Z2Zvcm0uZG9tTG9hZGVkPSEwLGdmb3JtLmNhbGxJZkxvYWRlZChvKX0pKX0saG9va3M6e2FjdGlvbjp7fSxmaWx0ZXI6e319LGFkZEFjdGlvbjpmdW5jdGlvbihvLHIsZSx0KXtnZm9ybS5hZGRIb29rKCJhY3Rpb24iLG8scixlLHQpfSxhZGRGaWx0ZXI6ZnVuY3Rpb24obyxyLGUsdCl7Z2Zvcm0uYWRkSG9vaygiZmlsdGVyIixvLHIsZSx0KX0sZG9BY3Rpb246ZnVuY3Rpb24obyl7Z2Zvcm0uZG9Ib29rKCJhY3Rpb24iLG8sYXJndW1lbnRzKX0sYXBwbHlGaWx0ZXJzOmZ1bmN0aW9uKG8pe3JldHVybiBnZm9ybS5kb0hvb2soImZpbHRlciIsbyxhcmd1bWVudHMpfSxyZW1vdmVBY3Rpb246ZnVuY3Rpb24obyxyKXtnZm9ybS5yZW1vdmVIb29rKCJhY3Rpb24iLG8scil9LHJlbW92ZUZpbHRlcjpmdW5jdGlvbihvLHIsZSl7Z2Zvcm0ucmVtb3ZlSG9vaygiZmlsdGVyIixvLHIsZSl9LGFkZEhvb2s6ZnVuY3Rpb24obyxyLGUsdCxuKXtudWxsPT1nZm9ybS5ob29rc1tvXVtyXSYmKGdmb3JtLmhvb2tzW29dW3JdPVtdKTt2YXIgZD1nZm9ybS5ob29rc1tvXVtyXTtudWxsPT1uJiYobj1yKyJfIitkLmxlbmd0aCksZ2Zvcm0uaG9va3Nbb11bcl0ucHVzaCh7dGFnOm4sY2FsbGFibGU6ZSxwcmlvcml0eTp0PW51bGw9PXQ/MTA6dH0pfSxkb0hvb2s6ZnVuY3Rpb24ocixvLGUpe3ZhciB0O2lmKGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwxKSxudWxsIT1nZm9ybS5ob29rc1tyXVtvXSYmKChvPWdmb3JtLmhvb2tzW3JdW29dKS5zb3J0KGZ1bmN0aW9uKG8scil7cmV0dXJuIG8ucHJpb3JpdHktci5wcmlvcml0eX0pLG8uZm9yRWFjaChmdW5jdGlvbihvKXsiZnVuY3Rpb24iIT10eXBlb2YodD1vLmNhbGxhYmxlKSYmKHQ9d2luZG93W3RdKSwiYWN0aW9uIj09cj90LmFwcGx5KG51bGwsZSk6ZVswXT10LmFwcGx5KG51bGwsZSl9KSksImZpbHRlciI9PXIpcmV0dXJuIGVbMF19LHJlbW92ZUhvb2s6ZnVuY3Rpb24obyxyLHQsbil7dmFyIGU7bnVsbCE9Z2Zvcm0uaG9va3Nbb11bcl0mJihlPShlPWdmb3JtLmhvb2tzW29dW3JdKS5maWx0ZXIoZnVuY3Rpb24obyxyLGUpe3JldHVybiEhKG51bGwhPW4mJm4hPW8udGFnfHxudWxsIT10JiZ0IT1vLnByaW9yaXR5KX0pLGdmb3JtLmhvb2tzW29dW3JdPWUpfX0pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2ZfYnJvd3Nlcl9jaHJvbWUgZ2Zvcm1fd3JhcHBlciBnZm9ybV9sZWdhY3lfbWFya3VwX3dyYXBwZXIgZ2Zvcm0tdGhlbWUtLW5vLWZyYW1ld29yaycgZGF0YS1mb3JtLXRoZW1lPSdsZWdhY3knIGRhdGEtZm9ybS1pbmRleD0nMCcgaWQ9J2dmb3JtX3dyYXBwZXJfMjknIHN0eWxlPSdkaXNwbGF5Om5vbmUnPjxkaXYgaWQ9J2dmXzI5JyBjbGFzcz0nZ2Zvcm1fYW5jaG9yJyB0YWJpbmRleD0nLTEnPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9oZWFkaW5nJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0iZ2Zvcm1fdGl0bGUiPkd1aWRlIGRlIGwnYWNoZXRldXI8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9J2dmb3JtX2Rlc2NyaXB0aW9uJz48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pjxmb3JtIG1ldGhvZD0ncG9zdCcgZW5jdHlwZT0nbXVsdGlwYXJ0L2Zvcm0tZGF0YScgdGFyZ2V0PSdnZm9ybV9hamF4X2ZyYW1lXzI5JyBpZD0nZ2Zvcm1fMjknICBhY3Rpb249Jy92aXZyZS1hLWxhdmFsLyNnZl8yOScgZGF0YS1mb3JtaWQ9JzI5JyBub3ZhbGlkYXRlPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybS1ib2R5IGdmb3JtX2JvZHknPjx1bCBpZD0nZ2Zvcm1fZmllbGRzXzI5JyBjbGFzcz0nZ2Zvcm1fZmllbGRzIHRvcF9sYWJlbCBmb3JtX3N1YmxhYmVsX2JlbG93IGRlc2NyaXB0aW9uX2JlbG93IHZhbGlkYXRpb25fYmVsb3cnPjxsaSBpZD0iZmllbGRfMjlfMSIgY2xhc3M9ImdmaWVsZCBnZmllbGQtLXR5cGUtZW1haWwgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGdmaWVsZC0tbm8tZGVzY3JpcHRpb24gZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZmllbGRfdmFsaWRhdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIiAgZGF0YS1qcy1yZWxvYWQ9ImZpZWxkXzI5XzEiID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCBnZm9ybS1maWVsZC1sYWJlbCcgZm9yPSdpbnB1dF8yOV8xJz5Wb3RyZSBjb3VycmllbDxzcGFuIGNsYXNzPSJnZmllbGRfcmVxdWlyZWQiPjxzcGFuIGNsYXNzPSJnZmllbGRfcmVxdWlyZWQgZ2ZpZWxkX3JlcXVpcmVkX2FzdGVyaXNrIj4qPC9zcGFuPjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9lbWFpbCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0naW5wdXRfMScgaWQ9J2lucHV0XzI5XzEnIHR5cGU9J2VtYWlsJyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgICBhcmlhLXJlcXVpcmVkPSJ0cnVlIiBhcmlhLWludmFsaWQ9ImZhbHNlIiAgLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC9saT48bGkgaWQ9ImZpZWxkXzI5XzIiIGNsYXNzPSJnZmllbGQgZ2ZpZWxkLS10eXBlLWNoZWNrYm94IGdmaWVsZC0tdHlwZS1jaG9pY2UgZ2ZfbGlzdF8yY29sIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBnZmllbGQtLW5vLWRlc2NyaXB0aW9uIGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGZpZWxkX3ZhbGlkYXRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZSIgIGRhdGEtanMtcmVsb2FkPSJmaWVsZF8yOV8yIiA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwgZ2ZpZWxkX2xhYmVsX2JlZm9yZV9jb21wbGV4JyA+VHlwZSBkZSB2b3RyZSBwcm9jaGFpbmUgaGFiaXRhdGlvbjxzcGFuIGNsYXNzPSJnZmllbGRfcmVxdWlyZWQiPjxzcGFuIGNsYXNzPSJnZmllbGRfcmVxdWlyZWQgZ2ZpZWxkX3JlcXVpcmVkX2FzdGVyaXNrIj4qPC9zcGFuPjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9jaGVja2JveCc+PHVsIGNsYXNzPSdnZmllbGRfY2hlY2tib3gnIGlkPSdpbnB1dF8yOV8yJz48bGkgY2xhc3M9J2djaG9pY2UgZ2Nob2ljZV8yOV8yXzEnPgoJCQkJCQkJCTxpbnB1dCBjbGFzcz0nZ2ZpZWxkLWNob2ljZS1pbnB1dCcgbmFtZT0naW5wdXRfMi4xJyB0eXBlPSdjaGVja2JveCcgIHZhbHVlPSdNYWlzb24gc2VtaS1kw6l0YWNow6llJyAgaWQ9J2Nob2ljZV8yOV8yXzEnICAgLz4KCQkJCQkJCQk8bGFiZWwgZm9yPSdjaG9pY2VfMjlfMl8xJyBpZD0nbGFiZWxfMjlfMl8xJyBjbGFzcz0nZ2Zvcm0tZmllbGQtbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5lJz5NYWlzb24gc2VtaS1kw6l0YWNow6llPC9sYWJlbD4KCQkJCQkJCTwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlIGdjaG9pY2VfMjlfMl8yJz4KCQkJCQkJCQk8aW5wdXQgY2xhc3M9J2dmaWVsZC1jaG9pY2UtaW5wdXQnIG5hbWU9J2lucHV0XzIuMicgdHlwZT0nY2hlY2tib3gnICB2YWx1ZT0nTWFpc29uIHVuaWZhbWlsaWFsZScgIGlkPSdjaG9pY2VfMjlfMl8yJyAgIC8+CgkJCQkJCQkJPGxhYmVsIGZvcj0nY2hvaWNlXzI5XzJfMicgaWQ9J2xhYmVsXzI5XzJfMicgY2xhc3M9J2dmb3JtLWZpZWxkLWxhYmVsIGdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZSc+TWFpc29uIHVuaWZhbWlsaWFsZTwvbGFiZWw+CgkJCQkJCQk8L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzJfMyc+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF8yLjMnIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J01haXNvbiBkZSB2aWxsZScgIGlkPSdjaG9pY2VfMjlfMl8zJyAgIC8+CgkJCQkJCQkJPGxhYmVsIGZvcj0nY2hvaWNlXzI5XzJfMycgaWQ9J2xhYmVsXzI5XzJfMycgY2xhc3M9J2dmb3JtLWZpZWxkLWxhYmVsIGdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZSc+TWFpc29uIGRlIHZpbGxlPC9sYWJlbD4KCQkJCQkJCTwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlIGdjaG9pY2VfMjlfMl80Jz4KCQkJCQkJCQk8aW5wdXQgY2xhc3M9J2dmaWVsZC1jaG9pY2UtaW5wdXQnIG5hbWU9J2lucHV0XzIuNCcgdHlwZT0nY2hlY2tib3gnICB2YWx1ZT0nQ29uZG9zIMOgIHZlbmRyZScgIGlkPSdjaG9pY2VfMjlfMl80JyAgIC8+CgkJCQkJCQkJPGxhYmVsIGZvcj0nY2hvaWNlXzI5XzJfNCcgaWQ9J2xhYmVsXzI5XzJfNCcgY2xhc3M9J2dmb3JtLWZpZWxkLWxhYmVsIGdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZSc+Q29uZG9zIMOgIHZlbmRyZTwvbGFiZWw+CgkJCQkJCQk8L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzJfNSc+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF8yLjUnIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J0NvbmRvIGxvY2F0aWYnICBpZD0nY2hvaWNlXzI5XzJfNScgICAvPgoJCQkJCQkJCTxsYWJlbCBmb3I9J2Nob2ljZV8yOV8yXzUnIGlkPSdsYWJlbF8yOV8yXzUnIGNsYXNzPSdnZm9ybS1maWVsZC1sYWJlbCBnZm9ybS1maWVsZC1sYWJlbC0tdHlwZS1pbmxpbmUnPkNvbmRvIGxvY2F0aWY8L2xhYmVsPgoJCQkJCQkJPC9saT48L3VsPjwvZGl2PjwvbGk+PGxpIGlkPSJmaWVsZF8yOV80IiBjbGFzcz0iZ2ZpZWxkIGdmaWVsZC0tdHlwZS1jaGVja2JveCBnZmllbGQtLXR5cGUtY2hvaWNlIGdmX2xpc3RfMmNvbCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZ2ZpZWxkLS1uby1kZXNjcmlwdGlvbiBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBmaWVsZF92YWxpZGF0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUiICBkYXRhLWpzLXJlbG9hZD0iZmllbGRfMjlfNCIgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsIGdmb3JtLWZpZWxkLWxhYmVsIGdmaWVsZF9sYWJlbF9iZWZvcmVfY29tcGxleCcgPlZpbGxlIGVudmlzYWfDqWVzIHBvdXIgY2UgcHJvamV0IGTigJloYWJpdGF0aW9uPHNwYW4gY2xhc3M9ImdmaWVsZF9yZXF1aXJlZCI+PHNwYW4gY2xhc3M9ImdmaWVsZF9yZXF1aXJlZCBnZmllbGRfcmVxdWlyZWRfYXN0ZXJpc2siPio8L3NwYW4+PC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX2NoZWNrYm94Jz48dWwgY2xhc3M9J2dmaWVsZF9jaGVja2JveCcgaWQ9J2lucHV0XzI5XzQnPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzRfMSc+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF80LjEnIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J01pcmFiZWwnICBpZD0nY2hvaWNlXzI5XzRfMScgICAvPgoJCQkJCQkJCTxsYWJlbCBmb3I9J2Nob2ljZV8yOV80XzEnIGlkPSdsYWJlbF8yOV80XzEnIGNsYXNzPSdnZm9ybS1maWVsZC1sYWJlbCBnZm9ybS1maWVsZC1sYWJlbC0tdHlwZS1pbmxpbmUnPk1pcmFiZWw8L2xhYmVsPgoJCQkJCQkJPC9saT48bGkgY2xhc3M9J2djaG9pY2UgZ2Nob2ljZV8yOV80XzInPgoJCQkJCQkJCTxpbnB1dCBjbGFzcz0nZ2ZpZWxkLWNob2ljZS1pbnB1dCcgbmFtZT0naW5wdXRfNC4yJyB0eXBlPSdjaGVja2JveCcgIHZhbHVlPSdTdGUtVGjDqXLDqHNlJyAgaWQ9J2Nob2ljZV8yOV80XzInICAgLz4KCQkJCQkJCQk8bGFiZWwgZm9yPSdjaG9pY2VfMjlfNF8yJyBpZD0nbGFiZWxfMjlfNF8yJyBjbGFzcz0nZ2Zvcm0tZmllbGQtbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5lJz5TdGUtVGjDqXLDqHNlPC9sYWJlbD4KCQkJCQkJCTwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlIGdjaG9pY2VfMjlfNF8zJz4KCQkJCQkJCQk8aW5wdXQgY2xhc3M9J2dmaWVsZC1jaG9pY2UtaW5wdXQnIG5hbWU9J2lucHV0XzQuMycgdHlwZT0nY2hlY2tib3gnICB2YWx1ZT0nQm9pc2JyaWFuZCcgIGlkPSdjaG9pY2VfMjlfNF8zJyAgIC8+CgkJCQkJCQkJPGxhYmVsIGZvcj0nY2hvaWNlXzI5XzRfMycgaWQ9J2xhYmVsXzI5XzRfMycgY2xhc3M9J2dmb3JtLWZpZWxkLWxhYmVsIGdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZSc+Qm9pc2JyaWFuZDwvbGFiZWw+CgkJCQkJCQk8L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzRfNCc+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF80LjQnIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J0JsYWludmlsbGUnICBpZD0nY2hvaWNlXzI5XzRfNCcgICAvPgoJCQkJCQkJCTxsYWJlbCBmb3I9J2Nob2ljZV8yOV80XzQnIGlkPSdsYWJlbF8yOV80XzQnIGNsYXNzPSdnZm9ybS1maWVsZC1sYWJlbCBnZm9ybS1maWVsZC1sYWJlbC0tdHlwZS1pbmxpbmUnPkJsYWludmlsbGU8L2xhYmVsPgoJCQkJCQkJPC9saT48bGkgY2xhc3M9J2djaG9pY2UgZ2Nob2ljZV8yOV80XzUnPgoJCQkJCQkJCTxpbnB1dCBjbGFzcz0nZ2ZpZWxkLWNob2ljZS1pbnB1dCcgbmFtZT0naW5wdXRfNC41JyB0eXBlPSdjaGVja2JveCcgIHZhbHVlPSdNYXNjb3VjaGUnICBpZD0nY2hvaWNlXzI5XzRfNScgICAvPgoJCQkJCQkJCTxsYWJlbCBmb3I9J2Nob2ljZV8yOV80XzUnIGlkPSdsYWJlbF8yOV80XzUnIGNsYXNzPSdnZm9ybS1maWVsZC1sYWJlbCBnZm9ybS1maWVsZC1sYWJlbC0tdHlwZS1pbmxpbmUnPk1hc2NvdWNoZTwvbGFiZWw+CgkJCQkJCQk8L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzRfNic+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF80LjYnIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J0xhdmFsJyAgaWQ9J2Nob2ljZV8yOV80XzYnICAgLz4KCQkJCQkJCQk8bGFiZWwgZm9yPSdjaG9pY2VfMjlfNF82JyBpZD0nbGFiZWxfMjlfNF82JyBjbGFzcz0nZ2Zvcm0tZmllbGQtbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5lJz5MYXZhbDwvbGFiZWw+CgkJCQkJCQk8L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzRfNyc+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF80LjcnIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J01vbnRyw6lhbCcgIGlkPSdjaG9pY2VfMjlfNF83JyAgIC8+CgkJCQkJCQkJPGxhYmVsIGZvcj0nY2hvaWNlXzI5XzRfNycgaWQ9J2xhYmVsXzI5XzRfNycgY2xhc3M9J2dmb3JtLWZpZWxkLWxhYmVsIGdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZSc+TW9udHLDqWFsPC9sYWJlbD4KCQkJCQkJCTwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlIGdjaG9pY2VfMjlfNF84Jz4KCQkJCQkJCQk8aW5wdXQgY2xhc3M9J2dmaWVsZC1jaG9pY2UtaW5wdXQnIG5hbWU9J2lucHV0XzQuOCcgdHlwZT0nY2hlY2tib3gnICB2YWx1ZT0nVGVycmVib25uZScgIGlkPSdjaG9pY2VfMjlfNF84JyAgIC8+CgkJCQkJCQkJPGxhYmVsIGZvcj0nY2hvaWNlXzI5XzRfOCcgaWQ9J2xhYmVsXzI5XzRfOCcgY2xhc3M9J2dmb3JtLWZpZWxkLWxhYmVsIGdmb3JtLWZpZWxkLWxhYmVsLS10eXBlLWlubGluZSc+VGVycmVib25uZTwvbGFiZWw+CgkJCQkJCQk8L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZSBnY2hvaWNlXzI5XzRfOSc+CgkJCQkJCQkJPGlucHV0IGNsYXNzPSdnZmllbGQtY2hvaWNlLWlucHV0JyBuYW1lPSdpbnB1dF80LjknIHR5cGU9J2NoZWNrYm94JyAgdmFsdWU9J0F1dHJlKHMpJyAgaWQ9J2Nob2ljZV8yOV80XzknICAgLz4KCQkJCQkJCQk8bGFiZWwgZm9yPSdjaG9pY2VfMjlfNF85JyBpZD0nbGFiZWxfMjlfNF85JyBjbGFzcz0nZ2Zvcm0tZmllbGQtbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwtLXR5cGUtaW5saW5lJz5BdXRyZShzKTwvbGFiZWw+CgkJCQkJCQk8L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9ImZpZWxkXzI5XzMiIGNsYXNzPSJnZmllbGQgZ2ZpZWxkLS10eXBlLXRleHQgZmllbGRfc3VibGFiZWxfYmVsb3cgZ2ZpZWxkLS1uby1kZXNjcmlwdGlvbiBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBmaWVsZF92YWxpZGF0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUiICBkYXRhLWpzLXJlbG9hZD0iZmllbGRfMjlfMyIgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsIGdmb3JtLWZpZWxkLWxhYmVsJyBmb3I9J2lucHV0XzI5XzMnPkF1dHJlczwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3RleHQnPjxpbnB1dCBuYW1lPSdpbnB1dF8zJyBpZD0naW5wdXRfMjlfMycgdHlwZT0ndGV4dCcgdmFsdWU9JycgY2xhc3M9J21lZGl1bScgICAgICBhcmlhLWludmFsaWQ9ImZhbHNlIiAgIC8+PC9kaXY+PC9saT48L3VsPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9J2dmb3JtLWZvb3RlciBnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fMjknIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyBvbmNsaWNrPSdnZm9ybS5zdWJtaXNzaW9uLmhhbmRsZUJ1dHRvbkNsaWNrKHRoaXMpJyB2YWx1ZT0nRW52b3llei1tb2kgbW9uIGd1aWRlIGdyYXR1aXRlbWVudCcgIC8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2FqYXgnIHZhbHVlPSdmb3JtX2lkPTI5JmFtcDt0aXRsZT0xJmFtcDtkZXNjcmlwdGlvbj0xJmFtcDt0YWJpbmRleD0wJmFtcDt0aGVtZT1sZWdhY3knIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3N1Ym1pc3Npb25fbWV0aG9kJyBkYXRhLWpzPSdnZm9ybV9zdWJtaXNzaW9uX21ldGhvZF8yOScgdmFsdWU9J2lmcmFtZScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0naXNfc3VibWl0XzI5JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc3VibWl0JyB2YWx1ZT0nMjknIC8+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV91bmlxdWVfaWQnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J3N0YXRlXzI5JyB2YWx1ZT0nV3lKYlhTSXNJakk0TVRSa1ltWTROR0pqWWpWbE9UVmtOR1F6TmpjNVltRTNNRGcyTlRZMklsMD0nIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGF1dG9jb21wbGV0ZT0nb2ZmJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfMjknIGlkPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfMjknIHZhbHVlPScwJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBhdXRvY29tcGxldGU9J29mZicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzI5JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzI5JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCQkgICAgICAgICAgICAgICAgPGlmcmFtZSBzdHlsZT0nZGlzcGxheTpub25lO3dpZHRoOjBweDtoZWlnaHQ6MHB4Oycgc3JjPSdhYm91dDpibGFuaycgbmFtZT0nZ2Zvcm1fYWpheF9mcmFtZV8yOScgaWQ9J2dmb3JtX2FqYXhfZnJhbWVfMjknIHRpdGxlPSdDZXR0ZSBpZnJhbWUgY29udGllbnQgbGEgbG9naXF1ZSBuw6ljZXNzYWlyZSBwb3VyIG1hbmlwdWxlciBHcmF2aXR5IEZvcm1zIGF2ZWMgQWpheC4nPjwvaWZyYW1lPgoJCSAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8qIDwhW0NEQVRBWyAqLwogZ2Zvcm0uaW5pdGlhbGl6ZU9uTG9hZGVkKCBmdW5jdGlvbigpIHtnZm9ybUluaXRTcGlubmVyKCAyOSwgJ2h0dHBzOi8vZ3JvdXBlbWF0aGlldS5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5zdmcnLCB0cnVlICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV8yOScpLm9uKCdsb2FkJyxmdW5jdGlvbigpe3ZhciBjb250ZW50cyA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyonKS5odG1sKCk7dmFyIGlzX3Bvc3RiYWNrID0gY29udGVudHMuaW5kZXhPZignR0ZfQUpBWF9QT1NUQkFDSycpID49IDA7aWYoIWlzX3Bvc3RiYWNrKXtyZXR1cm47fXZhciBmb3JtX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fd3JhcHBlcl8yOScpO3ZhciBpc19jb25maXJtYXRpb24gPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXJfMjknKS5sZW5ndGggPiAwO3ZhciBpc19yZWRpcmVjdCA9IGNvbnRlbnRzLmluZGV4T2YoJ2dmb3JtUmVkaXJlY3QoKXsnKSA+PSAwO3ZhciBpc19mb3JtID0gZm9ybV9jb250ZW50Lmxlbmd0aCA+IDAgJiYgISBpc19yZWRpcmVjdCAmJiAhIGlzX2NvbmZpcm1hdGlvbjt2YXIgbXQgPSBwYXJzZUludChqUXVlcnkoJ2h0bWwnKS5jc3MoJ21hcmdpbi10b3AnKSwgMTApICsgcGFyc2VJbnQoalF1ZXJ5KCdib2R5JykuY3NzKCdtYXJnaW4tdG9wJyksIDEwKSArIDEwMDtpZihpc19mb3JtKXtmb3JtX2NvbnRlbnQuZmluZCgnZm9ybScpLmNzcygnb3BhY2l0eScsIDApO2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjknKS5odG1sKGZvcm1fY29udGVudC5odG1sKCkpO2lmKGZvcm1fY29udGVudC5oYXNDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzI5JykuYWRkQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9IGVsc2Uge2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjknKS5yZW1vdmVDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO31zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsgLyogZGVsYXkgdGhlIHNjcm9sbCBieSA1MCBtaWxsaXNlY29uZHMgdG8gZml4IGEgYnVnIGluIGNocm9tZSAqLyBqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzI5Jykub2Zmc2V0KCkudG9wIC0gbXQpOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzI5JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggMjksICdodHRwczovL2dyb3VwZW1hdGhpZXUuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuc3ZnJywgdHJ1ZSApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbMjksIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ18yOSddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcuR0ZfQUpBWF9QT1NUQkFDSycpLmh0bWwoKTtpZighY29uZmlybWF0aW9uX2NvbnRlbnQpe2NvbmZpcm1hdGlvbl9jb250ZW50ID0gY29udGVudHM7fWpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfMjknKS5yZXBsYWNlV2l0aChjb25maXJtYXRpb25fY29udGVudCk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2ZfMjknKS5vZmZzZXQoKS50b3AgLSBtdCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzI5XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzI5J10gPSBmYWxzZTt3cC5hMTF5LnNwZWFrKGpRdWVyeSgnI2dmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzI5JykudGV4dCgpKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV8yOScpLmFwcGVuZChjb250ZW50cyk7aWYod2luZG93WydnZm9ybVJlZGlyZWN0J10pIHtnZm9ybVJlZGlyZWN0KCk7fX1qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoImdmb3JtX3ByZV9wb3N0X3JlbmRlciIsIFt7IGZvcm1JZDogIjI5IiwgY3VycmVudFBhZ2U6ICJjdXJyZW50X3BhZ2UiLCBhYm9ydDogZnVuY3Rpb24oKSB7IHRoaXMucHJldmVudERlZmF1bHQoKTsgfSB9XSk7ICAgICAgICAgICAgICAgIGlmIChldmVudCAmJiBldmVudC5kZWZhdWx0UHJldmVudGVkKSB7ICAgICAgICAgICAgICAgIHJldHVybjsgICAgICAgICB9ICAgICAgICBjb25zdCBnZm9ybVdyYXBwZXJEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggImdmb3JtX3dyYXBwZXJfMjkiICk7ICAgICAgICBpZiAoIGdmb3JtV3JhcHBlckRpdiApIHsgICAgICAgICAgICBjb25zdCB2aXNpYmlsaXR5U3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJzcGFuIiApOyAgICAgICAgICAgIHZpc2liaWxpdHlTcGFuLmlkID0gImdmb3JtX3Zpc2liaWxpdHlfdGVzdF8yOSI7ICAgICAgICAgICAgZ2Zvcm1XcmFwcGVyRGl2Lmluc2VydEFkamFjZW50RWxlbWVudCggImFmdGVyZW5kIiwgdmlzaWJpbGl0eVNwYW4gKTsgICAgICAgIH0gICAgICAgIGNvbnN0IHZpc2liaWxpdHlUZXN0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoICJnZm9ybV92aXNpYmlsaXR5X3Rlc3RfMjkiICk7ICAgICAgICBsZXQgcG9zdFJlbmRlckZpcmVkID0gZmFsc2U7ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRyaWdnZXJQb3N0UmVuZGVyKCkgeyAgICAgICAgICAgIGlmICggcG9zdFJlbmRlckZpcmVkICkgeyAgICAgICAgICAgICAgICByZXR1cm47ICAgICAgICAgICAgfSAgICAgICAgICAgIHBvc3RSZW5kZXJGaXJlZCA9IHRydWU7ICAgICAgICAgICAgalF1ZXJ5KCBkb2N1bWVudCApLnRyaWdnZXIoICdnZm9ybV9wb3N0X3JlbmRlcicsIFsyOSwgY3VycmVudF9wYWdlXSApOyAgICAgICAgICAgIGdmb3JtLnV0aWxzLnRyaWdnZXIoIHsgZXZlbnQ6ICdnZm9ybS9wb3N0UmVuZGVyJywgbmF0aXZlOiBmYWxzZSwgZGF0YTogeyBmb3JtSWQ6IDI5LCBjdXJyZW50UGFnZTogY3VycmVudF9wYWdlIH0gfSApOyAgICAgICAgICAgIGdmb3JtLnV0aWxzLnRyaWdnZXIoIHsgZXZlbnQ6ICdnZm9ybS9wb3N0X3JlbmRlcicsIG5hdGl2ZTogZmFsc2UsIGRhdGE6IHsgZm9ybUlkOiAyOSwgY3VycmVudFBhZ2U6IGN1cnJlbnRfcGFnZSB9IH0gKTsgICAgICAgICAgICBpZiAoIHZpc2liaWxpdHlUZXN0RGl2ICkgeyAgICAgICAgICAgICAgICB2aXNpYmlsaXR5VGVzdERpdi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCB2aXNpYmlsaXR5VGVzdERpdiApOyAgICAgICAgICAgIH0gICAgICAgIH0gICAgICAgIGZ1bmN0aW9uIGRlYm91bmNlKCBmdW5jLCB3YWl0LCBpbW1lZGlhdGUgKSB7ICAgICAgICAgICAgdmFyIHRpbWVvdXQ7ICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeyAgICAgICAgICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7ICAgICAgICAgICAgICAgIHZhciBsYXRlciA9IGZ1bmN0aW9uKCkgeyAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IG51bGw7ICAgICAgICAgICAgICAgICAgICBpZiAoICFpbW1lZGlhdGUgKSBmdW5jLmFwcGx5KCBjb250ZXh0LCBhcmdzICk7ICAgICAgICAgICAgICAgIH07ICAgICAgICAgICAgICAgIHZhciBjYWxsTm93ID0gaW1tZWRpYXRlICYmICF0aW1lb3V0OyAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoIHRpbWVvdXQgKTsgICAgICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoIGxhdGVyLCB3YWl0ICk7ICAgICAgICAgICAgICAgIGlmICggY2FsbE5vdyApIGZ1bmMuYXBwbHkoIGNvbnRleHQsIGFyZ3MgKTsgICAgICAgICAgICB9OyAgICAgICAgfSAgICAgICAgY29uc3QgZGVib3VuY2VkVHJpZ2dlclBvc3RSZW5kZXIgPSBkZWJvdW5jZSggZnVuY3Rpb24oKSB7ICAgICAgICAgICAgdHJpZ2dlclBvc3RSZW5kZXIoKTsgICAgICAgIH0sIDIwMCApOyAgICAgICAgaWYgKCB2aXNpYmlsaXR5VGVzdERpdiAmJiB2aXNpYmlsaXR5VGVzdERpdi5vZmZzZXRQYXJlbnQgPT09IG51bGwgKSB7ICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlciggKCBtdXRhdGlvbnMgKSA9PiB7ICAgICAgICAgICAgICAgIG11dGF0aW9ucy5mb3JFYWNoKCAoIG11dGF0aW9uICkgPT4geyAgICAgICAgICAgICAgICAgICAgaWYgKCBtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycgJiYgdmlzaWJpbGl0eVRlc3REaXYub2Zmc2V0UGFyZW50ICE9PSBudWxsICkgeyAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlZFRyaWdnZXJQb3N0UmVuZGVyKCk7ICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpOyAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICB9KTsgICAgICAgICAgICB9KTsgICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKCBkb2N1bWVudC5ib2R5LCB7ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsICAgICAgICAgICAgICAgIGNoaWxkTGlzdDogZmFsc2UsICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWUsICAgICAgICAgICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWyAnc3R5bGUnLCAnY2xhc3MnIF0sICAgICAgICAgICAgfSk7ICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgIHRyaWdnZXJQb3N0UmVuZGVyKCk7ICAgICAgICB9ICAgIH0gKTt9ICk7IAovKiBdXT4gKi8KPC9zY3JpcHQ+Cg==
Téléchargez votre guide de l'acheteur gratuitement!