Benvenuto a

Scuderia Graziani

Sydney’s Luxury & Exotic Car Dealership

Scuderia Graziani is a dedicated team of experts, committed to offering the very best selection of European Prestige and Sports Cars. We are privileged to have a large database of car enthusiasts and collectors with whom we have established a harmonious working relationship, based on trust and respect.

​We shall continue to strive to always match our customers with the very best cars that have ever been made – from classics of yesteryears to today’s collectables, or a daily driver and anything in between – we are specially placed to offer you the best of all. All at a competitive value.

Home-version2 - 1

Scuderia Graziani is the Supercar Gallery where coffee is always fresh and familiar faces abound; a place where motoring dreams do come true.

– Tony Graziani

Home-version2 - 2

Our latest
ARRIVALS

We offer a wide range of
Prestige services

Home-version2 - 4

Consign

If you are looking at selling your car, consigning is one of the best methods. We will work with you to get the ideal result whenever selling your prestige car.

Home-version2 - 5

Sell

If you would like to sell your quality pre-loved motorcars or If you wish to find your perfect Luxury or Sports Car, simply let us do the work for you.

Home-version2 - 6

Source

You are at the stage of buying your first or next motor vehicle. Talk with the team at Scuderia Graziani to discuss options of financing and insurance

Home-version2 - 7

Venue Hire

Scuderia Graziani is a unique showroom is an event space that will undoubtedly set you apart from the status quo.

Home-version2 - 12 SCUDERIAGRAZIANI

Follow us @scuderiagraziani

#ScuderiaGraziani

JOIN THE SCUDERIA GRAZIANI COMMUNITY
DREAM CARS, NEW ARRIVALS, LATEST EVENTS!
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnZhciBnZm9ybTtnZm9ybXx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdmb3JtX21haW5fc2NyaXB0c19sb2FkZWQiLGZ1bmN0aW9uKCl7Z2Zvcm0uc2NyaXB0c0xvYWRlZD0hMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdmb3JtL3RoZW1lL3NjcmlwdHNfbG9hZGVkIixmdW5jdGlvbigpe2dmb3JtLnRoZW1lU2NyaXB0c0xvYWRlZD0hMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2dmb3JtLmRvbUxvYWRlZD0hMH0pLGdmb3JtPXtkb21Mb2FkZWQ6ITEsc2NyaXB0c0xvYWRlZDohMSx0aGVtZVNjcmlwdHNMb2FkZWQ6ITEsaXNGb3JtRWRpdG9yOigpPT4iZnVuY3Rpb24iPT10eXBlb2YgSW5pdGlhbGl6ZUVkaXRvcixjYWxsSWZMb2FkZWQ6ZnVuY3Rpb24obyl7cmV0dXJuISghZ2Zvcm0uZG9tTG9hZGVkfHwhZ2Zvcm0uc2NyaXB0c0xvYWRlZHx8IWdmb3JtLnRoZW1lU2NyaXB0c0xvYWRlZCYmIWdmb3JtLmlzRm9ybUVkaXRvcigpfHwoZ2Zvcm0uaXNGb3JtRWRpdG9yKCkmJmNvbnNvbGUud2FybigiVGhlIHVzZSBvZiBnZm9ybS5pbml0aWFsaXplT25Mb2FkZWQoKSBpcyBkZXByZWNhdGVkIGluIHRoZSBmb3JtIGVkaXRvciBjb250ZXh0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gR3Jhdml0eSBGb3JtcyAzLjEuIiksbygpLDApKX0saW5pdGlhbGl6ZU9uTG9hZGVkOmZ1bmN0aW9uKG8pe2dmb3JtLmNhbGxJZkxvYWRlZChvKXx8KGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdmb3JtX21haW5fc2NyaXB0c19sb2FkZWQiLCgpPT57Z2Zvcm0uc2NyaXB0c0xvYWRlZD0hMCxnZm9ybS5jYWxsSWZMb2FkZWQobyl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJnZm9ybS90aGVtZS9zY3JpcHRzX2xvYWRlZCIsKCk9PntnZm9ybS50aGVtZVNjcmlwdHNMb2FkZWQ9ITAsZ2Zvcm0uY2FsbElmTG9hZGVkKG8pfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCgpPT57Z2Zvcm0uZG9tTG9hZGVkPSEwLGdmb3JtLmNhbGxJZkxvYWRlZChvKX0pKX0saG9va3M6e2FjdGlvbjp7fSxmaWx0ZXI6e319LGFkZEFjdGlvbjpmdW5jdGlvbihvLHIsZSx0KXtnZm9ybS5hZGRIb29rKCJhY3Rpb24iLG8scixlLHQpfSxhZGRGaWx0ZXI6ZnVuY3Rpb24obyxyLGUsdCl7Z2Zvcm0uYWRkSG9vaygiZmlsdGVyIixvLHIsZSx0KX0sZG9BY3Rpb246ZnVuY3Rpb24obyl7Z2Zvcm0uZG9Ib29rKCJhY3Rpb24iLG8sYXJndW1lbnRzKX0sYXBwbHlGaWx0ZXJzOmZ1bmN0aW9uKG8pe3JldHVybiBnZm9ybS5kb0hvb2soImZpbHRlciIsbyxhcmd1bWVudHMpfSxyZW1vdmVBY3Rpb246ZnVuY3Rpb24obyxyKXtnZm9ybS5yZW1vdmVIb29rKCJhY3Rpb24iLG8scil9LHJlbW92ZUZpbHRlcjpmdW5jdGlvbihvLHIsZSl7Z2Zvcm0ucmVtb3ZlSG9vaygiZmlsdGVyIixvLHIsZSl9LGFkZEhvb2s6ZnVuY3Rpb24obyxyLGUsdCxuKXtudWxsPT1nZm9ybS5ob29rc1tvXVtyXSYmKGdmb3JtLmhvb2tzW29dW3JdPVtdKTt2YXIgZD1nZm9ybS5ob29rc1tvXVtyXTtudWxsPT1uJiYobj1yKyJfIitkLmxlbmd0aCksZ2Zvcm0uaG9va3Nbb11bcl0ucHVzaCh7dGFnOm4sY2FsbGFibGU6ZSxwcmlvcml0eTp0PW51bGw9PXQ/MTA6dH0pfSxkb0hvb2s6ZnVuY3Rpb24ocixvLGUpe3ZhciB0O2lmKGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwxKSxudWxsIT1nZm9ybS5ob29rc1tyXVtvXSYmKChvPWdmb3JtLmhvb2tzW3JdW29dKS5zb3J0KGZ1bmN0aW9uKG8scil7cmV0dXJuIG8ucHJpb3JpdHktci5wcmlvcml0eX0pLG8uZm9yRWFjaChmdW5jdGlvbihvKXsiZnVuY3Rpb24iIT10eXBlb2YodD1vLmNhbGxhYmxlKSYmKHQ9d2luZG93W3RdKSwiYWN0aW9uIj09cj90LmFwcGx5KG51bGwsZSk6ZVswXT10LmFwcGx5KG51bGwsZSl9KSksImZpbHRlciI9PXIpcmV0dXJuIGVbMF19LHJlbW92ZUhvb2s6ZnVuY3Rpb24obyxyLHQsbil7dmFyIGU7bnVsbCE9Z2Zvcm0uaG9va3Nbb11bcl0mJihlPShlPWdmb3JtLmhvb2tzW29dW3JdKS5maWx0ZXIoZnVuY3Rpb24obyxyLGUpe3JldHVybiEhKG51bGwhPW4mJm4hPW8udGFnfHxudWxsIT10JiZ0IT1vLnByaW9yaXR5KX0pLGdmb3JtLmhvb2tzW29dW3JdPWUpfX0pOzwvc2NyaXB0PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2ZfYnJvd3Nlcl91bmtub3duIGdmb3JtX3dyYXBwZXIgZ3Jhdml0eS10aGVtZSBnZm9ybS10aGVtZS0tbm8tZnJhbWV3b3JrIGpvaW4tY29tbXVuaXR5X3dyYXBwZXInIGRhdGEtZm9ybS10aGVtZT0nZ3Jhdml0eS10aGVtZScgZGF0YS1mb3JtLWluZGV4PScwJyBpZD0nZ2Zvcm1fd3JhcHBlcl82JyA+PGRpdiBpZD0nZ2ZfNicgY2xhc3M9J2dmb3JtX2FuY2hvcicgdGFiaW5kZXg9Jy0xJz48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1faGVhZGluZyc+CgkJCQkJCQk8cCBjbGFzcz0nZ2Zvcm1fcmVxdWlyZWRfbGVnZW5kJz48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pjxmb3JtIG1ldGhvZD0ncG9zdCcgZW5jdHlwZT0nbXVsdGlwYXJ0L2Zvcm0tZGF0YScgdGFyZ2V0PSdnZm9ybV9hamF4X2ZyYW1lXzYnIGlkPSdnZm9ybV82JyBjbGFzcz0nam9pbi1jb21tdW5pdHknIGFjdGlvbj0nLyNnZl82JyBkYXRhLWZvcm1pZD0nNicgbm92YWxpZGF0ZT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm0tYm9keSBnZm9ybV9ib2R5Jz48ZGl2IGlkPSdnZm9ybV9maWVsZHNfNicgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyB2YWxpZGF0aW9uX2JlbG93Jz48ZGl2IGlkPSJmaWVsZF82XzEiIGNsYXNzPSJnZmllbGQgZ2ZpZWxkLS10eXBlLXRleHQgZ2ZpZWxkLS1pbnB1dC10eXBlLXRleHQgZ2ZpZWxkLS13aWR0aC10aGlyZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZ2ZpZWxkLS1uby1kZXNjcmlwdGlvbiBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBoaWRkZW5fbGFiZWwgZmllbGRfdmFsaWRhdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIiAgZGF0YS1qcy1yZWxvYWQ9ImZpZWxkXzZfMSIgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsIGdmb3JtLWZpZWxkLWxhYmVsJyBmb3I9J2lucHV0XzZfMSc+Rmlyc3QgTmFtZTxzcGFuIGNsYXNzPSJnZmllbGRfcmVxdWlyZWQiPjxzcGFuIGNsYXNzPSJnZmllbGRfcmVxdWlyZWQgZ2ZpZWxkX3JlcXVpcmVkX2FzdGVyaXNrIj4qPC9zcGFuPjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl90ZXh0Jz48aW5wdXQgbmFtZT0naW5wdXRfMScgaWQ9J2lucHV0XzZfMScgdHlwZT0ndGV4dCcgdmFsdWU9JycgY2xhc3M9J2xhcmdlJyAgICBwbGFjZWhvbGRlcj0nRmlyc3QgTmFtZScgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgYXJpYS1pbnZhbGlkPSJmYWxzZSIgICAvPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImZpZWxkXzZfMiIgY2xhc3M9ImdmaWVsZCBnZmllbGQtLXR5cGUtdGV4dCBnZmllbGQtLWlucHV0LXR5cGUtdGV4dCBnZmllbGQtLXdpZHRoLXRoaXJkIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBnZmllbGQtLW5vLWRlc2NyaXB0aW9uIGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGhpZGRlbl9sYWJlbCBmaWVsZF92YWxpZGF0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUiICBkYXRhLWpzLXJlbG9hZD0iZmllbGRfNl8yIiA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwnIGZvcj0naW5wdXRfNl8yJz5MYXN0IE5hbWU8c3BhbiBjbGFzcz0iZ2ZpZWxkX3JlcXVpcmVkIj48c3BhbiBjbGFzcz0iZ2ZpZWxkX3JlcXVpcmVkIGdmaWVsZF9yZXF1aXJlZF9hc3RlcmlzayI+Kjwvc3Bhbj48L3NwYW4+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfdGV4dCc+PGlucHV0IG5hbWU9J2lucHV0XzInIGlkPSdpbnB1dF82XzInIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdsYXJnZScgICAgcGxhY2Vob2xkZXI9J0xhc3QgTmFtZScgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgYXJpYS1pbnZhbGlkPSJmYWxzZSIgICAvPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImZpZWxkXzZfNCIgY2xhc3M9ImdmaWVsZCBnZmllbGQtLXR5cGUtZW1haWwgZ2ZpZWxkLS1pbnB1dC10eXBlLWVtYWlsIGdmaWVsZC0td2lkdGgtdGhpcmQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGdmaWVsZC0tbm8tZGVzY3JpcHRpb24gZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgaGlkZGVuX2xhYmVsIGZpZWxkX3ZhbGlkYXRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZSIgIGRhdGEtanMtcmVsb2FkPSJmaWVsZF82XzQiID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCBnZm9ybS1maWVsZC1sYWJlbCcgZm9yPSdpbnB1dF82XzQnPkVtYWlsPHNwYW4gY2xhc3M9ImdmaWVsZF9yZXF1aXJlZCI+PHNwYW4gY2xhc3M9ImdmaWVsZF9yZXF1aXJlZCBnZmllbGRfcmVxdWlyZWRfYXN0ZXJpc2siPio8L3NwYW4+PC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX2VtYWlsJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSdpbnB1dF80JyBpZD0naW5wdXRfNl80JyB0eXBlPSdlbWFpbCcgdmFsdWU9JycgY2xhc3M9J2xhcmdlJyAgIHBsYWNlaG9sZGVyPSdFbWFpbCcgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgYXJpYS1pbnZhbGlkPSJmYWxzZSIgIC8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvZGl2PjxkaXYgaWQ9ImZpZWxkXzZfNSIgY2xhc3M9ImdmaWVsZCBnZmllbGQtLXR5cGUtc2VsZWN0IGdmaWVsZC0taW5wdXQtdHlwZS1zZWxlY3QgZ2ZpZWxkLS13aWR0aC10d28tdGhpcmRzIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBnZmllbGQtLW5vLWRlc2NyaXB0aW9uIGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGhpZGRlbl9sYWJlbCBmaWVsZF92YWxpZGF0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUiICBkYXRhLWpzLXJlbG9hZD0iZmllbGRfNl81IiA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwgZ2Zvcm0tZmllbGQtbGFiZWwnIGZvcj0naW5wdXRfNl81Jz5XaGF0IGludGVyZXN0cyB5b3U/PHNwYW4gY2xhc3M9ImdmaWVsZF9yZXF1aXJlZCI+PHNwYW4gY2xhc3M9ImdmaWVsZF9yZXF1aXJlZCBnZmllbGRfcmVxdWlyZWRfYXN0ZXJpc2siPio8L3NwYW4+PC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3NlbGVjdCc+PHNlbGVjdCBuYW1lPSdpbnB1dF81JyBpZD0naW5wdXRfNl81JyBjbGFzcz0nbGFyZ2UgZ2ZpZWxkX3NlbGVjdCcgICAgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgYXJpYS1pbnZhbGlkPSJmYWxzZSIgPjxvcHRpb24gdmFsdWU9Jycgc2VsZWN0ZWQ9J3NlbGVjdGVkJyBjbGFzcz0nZ2ZfcGxhY2Vob2xkZXInPldoYXQgaW50ZXJlc3RzIHlvdT88L29wdGlvbj48b3B0aW9uIHZhbHVlPSdDYXJzOiBMYXRlc3QgQXJyaXZhbHMgJmFtcDsgU3RvY2snID5DYXJzOiBMYXRlc3QgQXJyaXZhbHMgJmFtcDsgU3RvY2s8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdOZXdzOiBTRyBOZXdzJyA+TmV3czogU0cgTmV3czwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0xpZmVzdHlsZScgPkxpZmVzdHlsZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0FsbCBvZiB0aGUgYWJvdmUnID5BbGwgb2YgdGhlIGFib3ZlPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PC9kaXY+PGRpdiBpZD0iZmllbGRfNl82IiBjbGFzcz0iZ2ZpZWxkIGdmaWVsZC0tdHlwZS1oaWRkZW4gZ2ZpZWxkLS1pbnB1dC10eXBlLWhpZGRlbiBnZmllbGQtLXdpZHRoLWZ1bGwgZ2Zvcm1faGlkZGVuIGZpZWxkX3N1YmxhYmVsX2JlbG93IGdmaWVsZC0tbm8tZGVzY3JpcHRpb24gZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZmllbGRfdmFsaWRhdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIiAgZGF0YS1qcy1yZWxvYWQ9ImZpZWxkXzZfNiIgPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl90ZXh0Jz48aW5wdXQgbmFtZT0naW5wdXRfNicgaWQ9J2lucHV0XzZfNicgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyAgYXJpYS1pbnZhbGlkPSJmYWxzZSIgdmFsdWU9J0hvbWUtdmVyc2lvbjInIC8+PC9kaXY+PC9kaXY+PGRpdiBpZD0iZmllbGRfNl83IiBjbGFzcz0iZ2ZpZWxkIGdmaWVsZC0tdHlwZS1oaWRkZW4gZ2ZpZWxkLS1pbnB1dC10eXBlLWhpZGRlbiBnZmllbGQtLXdpZHRoLWZ1bGwgZ2Zvcm1faGlkZGVuIGZpZWxkX3N1YmxhYmVsX2JlbG93IGdmaWVsZC0tbm8tZGVzY3JpcHRpb24gZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZmllbGRfdmFsaWRhdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlIiAgZGF0YS1qcy1yZWxvYWQ9ImZpZWxkXzZfNyIgPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl90ZXh0Jz48aW5wdXQgbmFtZT0naW5wdXRfNycgaWQ9J2lucHV0XzZfNycgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyAgYXJpYS1pbnZhbGlkPSJmYWxzZSIgdmFsdWU9J2h0dHBzOi8vd3d3LnNjdWRlcmlhZ3JhemlhbmkuY29tLycgLz48L2Rpdj48L2Rpdj48ZGl2IGlkPSJmaWVsZF82XzgiIGNsYXNzPSJnZmllbGQgZ2ZpZWxkLS10eXBlLWhvbmV5cG90IGdmb3JtX3ZhbGlkYXRpb25fY29udGFpbmVyIGZpZWxkX3N1YmxhYmVsX2JlbG93IGdmaWVsZC0taGFzLWRlc2NyaXB0aW9uIGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGZpZWxkX3ZhbGlkYXRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZSIgIGRhdGEtanMtcmVsb2FkPSJmaWVsZF82XzgiID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCBnZm9ybS1maWVsZC1sYWJlbCcgZm9yPSdpbnB1dF82XzgnPkNvbW1lbnRzPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfOCcgaWQ9J2lucHV0XzZfOCcgdHlwZT0ndGV4dCcgdmFsdWU9JycgYXV0b2NvbXBsZXRlPSduZXctcGFzc3dvcmQnLz48L2Rpdj48ZGl2IGNsYXNzPSdnZmllbGRfZGVzY3JpcHRpb24nIGlkPSdnZmllbGRfZGVzY3JpcHRpb25fNl84Jz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm0tZm9vdGVyIGdmb3JtX2Zvb3RlciB0b3BfbGFiZWwnPiA8YnV0dG9uIGNsYXNzPSdidXR0b24nIHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fNic+U3Vic2NyaWJlPC9idXR0b24+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2FqYXgnIHZhbHVlPSdmb3JtX2lkPTYmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0wJmFtcDt0aGVtZT1ncmF2aXR5LXRoZW1lJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXNzaW9uX21ldGhvZCcgZGF0YS1qcz0nZ2Zvcm1fc3VibWlzc2lvbl9tZXRob2RfNicgdmFsdWU9J2lmcmFtZScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0naXNfc3VibWl0XzYnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc2JyAvPgogICAgICAgICAgICAKICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdW5pcXVlX2lkJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdzdGF0ZV82JyB2YWx1ZT0nV3lKYlhTSXNJakl4TkRVMVltVTVOakF3WTJSbU9EUmtORGxqWkdFNFkyRmpZalUzTlRoaklsMD0nIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGF1dG9jb21wbGV0ZT0nb2ZmJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNicgaWQ9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl82JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgYXV0b2NvbXBsZXRlPSdvZmYnIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl82JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzYnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9maWVsZF92YWx1ZXMnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoJCSAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSdkaXNwbGF5Om5vbmU7d2lkdGg6MHB4O2hlaWdodDowcHg7JyBzcmM9J2Fib3V0OmJsYW5rJyBuYW1lPSdnZm9ybV9hamF4X2ZyYW1lXzYnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzYnIHRpdGxlPSdUaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFqYXggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLic+PC9pZnJhbWU+CgkJICAgICAgICAgICAgICAgIDxzY3JpcHQ+Cmdmb3JtLmluaXRpYWxpemVPbkxvYWRlZCggZnVuY3Rpb24oKSB7Z2Zvcm1Jbml0U3Bpbm5lciggNiwgJ2h0dHBzOi8vd3d3LnNjdWRlcmlhZ3JhemlhbmkuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuc3ZnJywgdHJ1ZSApO2pRdWVyeSgnI2dmb3JtX2FqYXhfZnJhbWVfNicpLm9uKCdsb2FkJyxmdW5jdGlvbigpe3ZhciBjb250ZW50cyA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyonKS5odG1sKCk7dmFyIGlzX3Bvc3RiYWNrID0gY29udGVudHMuaW5kZXhPZignR0ZfQUpBWF9QT1NUQkFDSycpID49IDA7aWYoIWlzX3Bvc3RiYWNrKXtyZXR1cm47fXZhciBmb3JtX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fd3JhcHBlcl82Jyk7dmFyIGlzX2NvbmZpcm1hdGlvbiA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV9jb25maXJtYXRpb25fd3JhcHBlcl82JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247dmFyIG10ID0gcGFyc2VJbnQoalF1ZXJ5KCdodG1sJykuY3NzKCdtYXJnaW4tdG9wJyksIDEwKSArIHBhcnNlSW50KGpRdWVyeSgnYm9keScpLmNzcygnbWFyZ2luLXRvcCcpLCAxMCkgKyAxMDA7aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl82JykuaHRtbChmb3JtX2NvbnRlbnQuaHRtbCgpKTtpZihmb3JtX2NvbnRlbnQuaGFzQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl82JykuYWRkQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9IGVsc2Uge2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNicpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNicpLm9mZnNldCgpLnRvcCAtIG10KTsgfSwgNTAgKTtpZih3aW5kb3dbJ2dmb3JtSW5pdERhdGVwaWNrZXInXSkge2dmb3JtSW5pdERhdGVwaWNrZXIoKTt9aWYod2luZG93WydnZm9ybUluaXRQcmljZUZpZWxkcyddKSB7Z2Zvcm1Jbml0UHJpY2VGaWVsZHMoKTt9dmFyIGN1cnJlbnRfcGFnZSA9IGpRdWVyeSgnI2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl82JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNiwgJ2h0dHBzOi8vd3d3LnNjdWRlcmlhZ3JhemlhbmkuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuc3ZnJywgdHJ1ZSApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbNiwgY3VycmVudF9wYWdlXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzYnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31qUXVlcnkoJyNnZm9ybV93cmFwcGVyXzYnKS5yZXBsYWNlV2l0aChjb25maXJtYXRpb25fY29udGVudCk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2ZfNicpLm9mZnNldCgpLnRvcCAtIG10KTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbNl0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ182J10gPSBmYWxzZTt3cC5hMTF5LnNwZWFrKGpRdWVyeSgnI2dmb3JtX2NvbmZpcm1hdGlvbl9tZXNzYWdlXzYnKS50ZXh0KCkpO31lbHNle2pRdWVyeSgnI2dmb3JtXzYnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCJnZm9ybV9wcmVfcG9zdF9yZW5kZXIiLCBbeyBmb3JtSWQ6ICI2IiwgY3VycmVudFBhZ2U6ICJjdXJyZW50X3BhZ2UiLCBhYm9ydDogZnVuY3Rpb24oKSB7IHRoaXMucHJldmVudERlZmF1bHQoKTsgfSB9XSk7ICAgICAgICAgICAgICAgIGlmIChldmVudCAmJiBldmVudC5kZWZhdWx0UHJldmVudGVkKSB7ICAgICAgICAgICAgICAgIHJldHVybjsgICAgICAgICB9ICAgICAgICBjb25zdCBnZm9ybVdyYXBwZXJEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggImdmb3JtX3dyYXBwZXJfNiIgKTsgICAgICAgIGlmICggZ2Zvcm1XcmFwcGVyRGl2ICkgeyAgICAgICAgICAgIGNvbnN0IHZpc2liaWxpdHlTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggInNwYW4iICk7ICAgICAgICAgICAgdmlzaWJpbGl0eVNwYW4uaWQgPSAiZ2Zvcm1fdmlzaWJpbGl0eV90ZXN0XzYiOyAgICAgICAgICAgIGdmb3JtV3JhcHBlckRpdi5pbnNlcnRBZGphY2VudEVsZW1lbnQoICJhZnRlcmVuZCIsIHZpc2liaWxpdHlTcGFuICk7ICAgICAgICB9ICAgICAgICBjb25zdCB2aXNpYmlsaXR5VGVzdERpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAiZ2Zvcm1fdmlzaWJpbGl0eV90ZXN0XzYiICk7ICAgICAgICBsZXQgcG9zdFJlbmRlckZpcmVkID0gZmFsc2U7ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRyaWdnZXJQb3N0UmVuZGVyKCkgeyAgICAgICAgICAgIGlmICggcG9zdFJlbmRlckZpcmVkICkgeyAgICAgICAgICAgICAgICByZXR1cm47ICAgICAgICAgICAgfSAgICAgICAgICAgIHBvc3RSZW5kZXJGaXJlZCA9IHRydWU7ICAgICAgICAgICAgalF1ZXJ5KCBkb2N1bWVudCApLnRyaWdnZXIoICdnZm9ybV9wb3N0X3JlbmRlcicsIFs2LCBjdXJyZW50X3BhZ2VdICk7ICAgICAgICAgICAgZ2Zvcm0udXRpbHMudHJpZ2dlciggeyBldmVudDogJ2dmb3JtL3Bvc3RSZW5kZXInLCBuYXRpdmU6IGZhbHNlLCBkYXRhOiB7IGZvcm1JZDogNiwgY3VycmVudFBhZ2U6IGN1cnJlbnRfcGFnZSB9IH0gKTsgICAgICAgICAgICBnZm9ybS51dGlscy50cmlnZ2VyKCB7IGV2ZW50OiAnZ2Zvcm0vcG9zdF9yZW5kZXInLCBuYXRpdmU6IGZhbHNlLCBkYXRhOiB7IGZvcm1JZDogNiwgY3VycmVudFBhZ2U6IGN1cnJlbnRfcGFnZSB9IH0gKTsgICAgICAgICAgICBpZiAoIHZpc2liaWxpdHlUZXN0RGl2ICkgeyAgICAgICAgICAgICAgICB2aXNpYmlsaXR5VGVzdERpdi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCB2aXNpYmlsaXR5VGVzdERpdiApOyAgICAgICAgICAgIH0gICAgICAgIH0gICAgICAgIGZ1bmN0aW9uIGRlYm91bmNlKCBmdW5jLCB3YWl0LCBpbW1lZGlhdGUgKSB7ICAgICAgICAgICAgdmFyIHRpbWVvdXQ7ICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgeyAgICAgICAgICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7ICAgICAgICAgICAgICAgIHZhciBsYXRlciA9IGZ1bmN0aW9uKCkgeyAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IG51bGw7ICAgICAgICAgICAgICAgICAgICBpZiAoICFpbW1lZGlhdGUgKSBmdW5jLmFwcGx5KCBjb250ZXh0LCBhcmdzICk7ICAgICAgICAgICAgICAgIH07ICAgICAgICAgICAgICAgIHZhciBjYWxsTm93ID0gaW1tZWRpYXRlICYmICF0aW1lb3V0OyAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoIHRpbWVvdXQgKTsgICAgICAgICAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoIGxhdGVyLCB3YWl0ICk7ICAgICAgICAgICAgICAgIGlmICggY2FsbE5vdyApIGZ1bmMuYXBwbHkoIGNvbnRleHQsIGFyZ3MgKTsgICAgICAgICAgICB9OyAgICAgICAgfSAgICAgICAgY29uc3QgZGVib3VuY2VkVHJpZ2dlclBvc3RSZW5kZXIgPSBkZWJvdW5jZSggZnVuY3Rpb24oKSB7ICAgICAgICAgICAgdHJpZ2dlclBvc3RSZW5kZXIoKTsgICAgICAgIH0sIDIwMCApOyAgICAgICAgaWYgKCB2aXNpYmlsaXR5VGVzdERpdiAmJiB2aXNpYmlsaXR5VGVzdERpdi5vZmZzZXRQYXJlbnQgPT09IG51bGwgKSB7ICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlciggKCBtdXRhdGlvbnMgKSA9PiB7ICAgICAgICAgICAgICAgIG11dGF0aW9ucy5mb3JFYWNoKCAoIG11dGF0aW9uICkgPT4geyAgICAgICAgICAgICAgICAgICAgaWYgKCBtdXRhdGlvbi50eXBlID09PSAnYXR0cmlidXRlcycgJiYgdmlzaWJpbGl0eVRlc3REaXYub2Zmc2V0UGFyZW50ICE9PSBudWxsICkgeyAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlZFRyaWdnZXJQb3N0UmVuZGVyKCk7ICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpOyAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICB9KTsgICAgICAgICAgICB9KTsgICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKCBkb2N1bWVudC5ib2R5LCB7ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsICAgICAgICAgICAgICAgIGNoaWxkTGlzdDogZmFsc2UsICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWUsICAgICAgICAgICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWyAnc3R5bGUnLCAnY2xhc3MnIF0sICAgICAgICAgICAgfSk7ICAgICAgICB9IGVsc2UgeyAgICAgICAgICAgIHRyaWdnZXJQb3N0UmVuZGVyKCk7ICAgICAgICB9ICAgIH0gKTt9ICk7Cjwvc2NyaXB0Pgo=