gg. toast( 'FreeFire Script v2.9 by SmartCheat' )
print ( 'FreeFire Script By SmartCheat' )
--Game guardian detection
if gg. isVisible( true ) then
gg. setVisible( false )
end
:: start::
menu = gg. choice( { '1.Remove AntiHack' , '2.HackMenu' , '3.SecondaryMenu' , '4.ThirdMenu' , '5.FourthMenu' } , nil , 'SelectHack' )
if menu == 1 then goto bps end
if menu == 2 then goto SmartCheater end
if menu == 3 then goto SecondaryMenu end
if menu == 4 then goto ThirdMenu end
if menu == 5 then goto FourthMenu end
if menu == nil then gg. alert( 'Happy Cheating' ) end goto creator
:: SmartCheater::
menu = gg. choice( { '1.Giant Body' , '2.Giant Only On Car[Activate On Plane]' , '3.Suicide' , '4.Antenna Female ' , '5.Antenna Male' , '6.God Mode[Activate In Game]' , '7.No Fall' , '8.Underground' , '9.The Flash Of Crocodile [Activate in Lobby]' , '10.Eagle Eye' , '11.WallHack (Nivek)' } , last, 'List of HackMenu' )
if menu == 1 then goto GiantBody end
if menu == 2 then goto BC end
if menu == 3 then goto InstantDeath end
if menu == 4 then goto Antenna end
if menu == 5 then goto antenna2 end
if menu == 6 then goto god end
if menu == 7 then goto on end
if menu == 8 then goto Underground end
if menu == 9 then goto fc end
if menu == 10 then goto FLY end
if menu == 11 then goto WallHack end
if menu == nil then gg. alert( 'Happy Cheating' ) end goto start
print ( 'CancelScript' )
:: SecondaryMenu::
menu = gg. choice( { '1.BLUE MAP' , '2.GOLDEN MAP' , '3.GREEN MAP' , '4.PURPLE MAP' , '5.RED MAP' , '6.LIGHT BLUE MAP' , '7.YELLOW MAP' } , nil , 'WEAPONS, MAP [SET OF COLORS]' )
if menu == 1 then goto BlueMap end
if menu == 2 then goto GoldenMap end
if menu == 3 then goto GreenMap end
if menu == 4 then goto PurpleMap end
if menu == 5 then goto RedMap end
if menu == 6 then goto LightBlueMap end
if menu == 7 then goto YellowMap end
if menu == nil then gg. alert( 'Thanks To Nivek' ) end goto start
print ( 'CancelScript' )
:: BlueMap::
gg. searchNumber( '0.69999998808F;0.61197602749;0.58263474703' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '0.69999998808' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '999' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack BLUE MAP Done' )
goto SecondaryMenu
:: GoldenMap::
gg. searchNumber( '0.69999998808F;0.61197602749;0.58263474703' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '0.69999998808' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '-999' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack GOLDEN MAP Done' )
goto SecondaryMenu
:: GreenMap::
gg. searchNumber( '0.61197602749;0.58263474703;0.69999998808' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '0.61197602749' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '999' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack GREEN MAP Done' )
goto SecondaryMenu
:: PurpleMap::
gg. searchNumber( '0.61197602749;0.58263474703;0.69999998808' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '-999' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack PURPLE MAP Done' )
goto SecondaryMenu
:: RedMap::
gg. searchNumber( '0.58263474703;0.61197602749;0.69999998808' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '0.58263474703' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '999' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack RED MAP Done' )
goto SecondaryMenu
:: LightBlueMap::
gg. searchNumber( '0.58263474703;0.61197602749;0.69999998808' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '0.58263474703' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '-999' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack LIGHT BLUE MAP Done' )
goto SecondaryMenu
:: YellowMap::
gg. searchNumber( '0.58263474703;0.61197602749' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '0.58263474703;0.61197602749' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '99' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack YELLOW MAP Done' )
goto SecondaryMenu
:: ThirdMenu::
menu = gg. choice( { '1.STRONG BROWN' , '2.WHITE YELLOW' , '3.STRONG YELLOW' , '4.LIGHT BROWN' , '5.WHITE SKIN' , '6.BLACK SKIN' } , nil , 'CHANGE SKIN COLOR [SET OF COLORS]' )
if menu == 1 then goto StrongBrown end
if menu == 2 then goto WhiteYellow end
if menu == 3 then goto StrongYellow end
if menu == 4 then goto LightBrown end
if menu == 5 then goto White end
if menu == 6 then goto Black end
if menu == nil then gg. alert( 'Thanks To Nivek' ) end goto start
print ( 'CancelScript' )
:: StrongBrown::
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '0' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack BODY STRONG BROWN Done' )
goto ThirdMenu
:: WhiteYellow::
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '9' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack BODY WHITE YELLOW Done' )
goto ThirdMenu
:: StrongYellow::
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '9' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack BODY STRONG WHITE Done' )
goto ThirdMenu
:: LightBrown::
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '1' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack BODY LIGHT BROWN Done' )
goto ThirdMenu
:: White::
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '99' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack BODY WHITE Done' )
goto ThirdMenu
:: Black::
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '-9' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack BODY BLACK Done' )
goto ThirdMenu
:: FourthMenu::
menu = gg. choice( { '1.BLACK BODIES' } , nil , 'CHANGE SKIN COLOR [SET OF COLORS]' )
if menu == 1 then goto BlackBodies end
if menu == nil then gg. alert( 'Thanks To Nivek' ) end goto start
print ( 'CancelScript' )
:: BlackBodies::
gg. searchNumber( '1;3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '1' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 5500 )
gg. editAll( '3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Hack BLACK BODIES Done' )
goto FourthMenu
:: bps::
menu = gg. choice( { '1.Resolve Freezing And Error {106}' } , nil , 'SELECT THIS WHEN APPEAR THE "GARENA" LOGO' )
if menu == 1 then goto Solution106 end
if menu == nil then gg. alert( 'Happy Cheating' ) end goto start
print ( 'CancelScript' )
:: Solution106::
gg. searchNumber( '0' , gg. TYPE_AUTO, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. alert( 'Error of Freezing And Error {106} Resolved.' )
gg. clearResults( )
goto bps
:: WallHack::
gg. searchNumber( '-5.9029581e21;-2.0291021e20;-2.0291021e20;1.0e-6' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '1.0e-6' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '-1' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'WALL HACK On' )
goto SmartCheater
:: BC::
gg. clearResults( )
gg. searchNumber( '1;5' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '5' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 500 )
print ( 'Replaced: ' , gg. editAll( '-5' ,
gg. TYPE_FLOAT) )
gg. toast( 'Giant Only On Car Enable' )
goto SmartCheater
:: fc::
gg. searchNumber( '0.8' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 ) gg. searchNumber( '0.8' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 ) gg. getResults( 5000 ) gg. editAll( '4.3' , gg. TYPE_FLOAT) gg. clearResults( 5000 ) gg. toast( 'The Flash of Crocodile On' ) goto SmartCheater
:: FLY::
Cmenu =
gg. choice( { 'Disable' , 'Enable' } , Lastt, 'Happy Cheating' )
if Cmenu == 1 then goto disfly end
if Cmenu == 2 then goto enafly end
if Cmenu == Last then end goto SmartCheater
:: enafly::
gg. clearResults( )
gg. searchNumber( '1.1' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 1000 )
gg. editAll( '40' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. toast( 'Fly Enabled' )
goto SmartCheater
:: disfly::
gg. clearResults( )
gg. searchNumber( '1,068,205,343' , gg. TYPE_DWORD, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 1000 )
gg. editAll( '1,111,205,343' , gg. TYPE_DWORD, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. toast( 'Fly Disabled' )
goto SmartCheater
:: Underground::
gg. searchNumber( '4.3967567e-38;0.05000000075' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '0.05000000075' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '2.3' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. clearResults( )
gg. toast( 'Underground Enabled' )
goto SmartCheater
:: bypass::
gg. clearResults( )
gg. searchNumber( '0' , gg. TYPE_AUTO, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '0' , gg. TYPE_AUTO, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. toast( 'Bypass Succes' )
goto SmartCheater
:: GiantBody::
gg. clearResults( )
gg. searchNumber( '1;.05;.5' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '1' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '0' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. toast( 'GiantBody On' )
goto SmartCheater
:: InstantDeath::
gg. clearResults( )
gg. searchNumber( '.08' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. searchNumber( '.08' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 10000 )
gg. editAll( '99' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. toast( 'Suicide On' )
goto SmartCheater
:: Antenna::
gg. searchNumber( '0.65' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 , - 1 )
gg. getResults( 3000 )
print ( 'Replaced: ' , gg. editAll( '20' , gg. TYPE_FLOAT) ) gg. toast( 'Antenna Female Aktif' )
goto SmartCheater
:: antenna2::
gg. searchNumber( '0.60' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 ,- 1 )
gg. getResults( 3000 ) print ( 'Replaced: ' , gg. editAll( '20' , gg. TYPE_FLOAT) )
gg. toast( 'Antenna Male Aktif' )
goto SmartCheater
:: god::
gg. searchNumber( '0.15' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 ,- 1 )
gg. getResults( 3000 ) print ( 'Replaced: ' , gg. editAll( '500' , gg. TYPE_FLOAT) )
gg. toast( 'GodMode On' )
goto SmartCheater
:: on::
gg. searchNumber( '-0.1' , gg. TYPE_FLOAT, false , gg. SIGN_EQUAL, 0 ,- 1 )
gg. getResults( 71 ) print ( 'Replaced: ' , gg. editAll( '-99' , gg. TYPE_FLOAT) )
gg. toast( 'No Fall On' )
goto SmartCheater
:: creator::
print ( 'Subscribe t.me/HighGamerz' )
gg. toast( 'Script by SmartCheat' )
print ( 'Credit : SmartCheat' )
os.exit ( )
Z2cudG9hc3QoJ0ZyZWVGaXJlIFNjcmlwdCB2Mi45IGJ5IFNtYXJ0Q2hlYXQnKQpwcmludCgnRnJlZUZpcmUgU2NyaXB0IEJ5IFNtYXJ0Q2hlYXQnKSAKCi0tR2FtZSBndWFyZGlhbiBkZXRlY3Rpb24KaWYgZ2cuaXNWaXNpYmxlKHRydWUpIHRoZW4gCiAgIGdnLnNldFZpc2libGUoZmFsc2UpIAogICBlbmQgCgo6OnN0YXJ0OjoKbWVudSA9IGdnLmNob2ljZSh7JzEuUmVtb3ZlIEFudGlIYWNrJywnMi5IYWNrTWVudScsJzMuU2Vjb25kYXJ5TWVudScsJzQuVGhpcmRNZW51JywnNS5Gb3VydGhNZW51J30sbmlsLCdTZWxlY3RIYWNrJykKaWYgbWVudSA9PSAxIHRoZW4gZ290byBicHMgZW5kCmlmIG1lbnUgPT0gMiB0aGVuIGdvdG8gU21hcnRDaGVhdGVyIGVuZAppZiBtZW51ID09IDMgdGhlbiBnb3RvIFNlY29uZGFyeU1lbnUgZW5kCmlmIG1lbnUgPT0gNCB0aGVuIGdvdG8gVGhpcmRNZW51IGVuZAppZiBtZW51ID09IDUgdGhlbiBnb3RvIEZvdXJ0aE1lbnUgZW5kCmlmIG1lbnUgPT0gbmlsIHRoZW4gZ2cuYWxlcnQoJ0hhcHB5IENoZWF0aW5nJykgZW5kIGdvdG8gY3JlYXRvcgoKOjpTbWFydENoZWF0ZXI6OgptZW51ID0gZ2cuY2hvaWNlKHsnMS5HaWFudCBCb2R5JywnMi5HaWFudCBPbmx5IE9uIENhcltBY3RpdmF0ZSBPbiBQbGFuZV0nLCczLlN1aWNpZGUnLCc0LkFudGVubmEgRmVtYWxlICcsJzUuQW50ZW5uYSBNYWxlJywnNi5Hb2QgTW9kZVtBY3RpdmF0ZSBJbiBHYW1lXScsJzcuTm8gRmFsbCcsJzguVW5kZXJncm91bmQnLCc5LlRoZSBGbGFzaCBPZiBDcm9jb2RpbGUgW0FjdGl2YXRlIGluIExvYmJ5XScsJzEwLkVhZ2xlIEV5ZScsJzExLldhbGxIYWNrIChOaXZlayknfSxsYXN0LCdMaXN0IG9mIEhhY2tNZW51JykKaWYgbWVudSA9PSAxIHRoZW4gZ290byBHaWFudEJvZHkgZW5kCmlmIG1lbnUgPT0gMiB0aGVuIGdvdG8gQkMgZW5kCmlmIG1lbnUgPT0gMyB0aGVuIGdvdG8gSW5zdGFudERlYXRoIGVuZAppZiBtZW51ID09IDQgdGhlbiBnb3RvIEFudGVubmEgZW5kCmlmIG1lbnUgPT0gNSB0aGVuIGdvdG8gYW50ZW5uYTIgZW5kCmlmIG1lbnUgPT0gNiB0aGVuIGdvdG8gZ29kIGVuZAppZiBtZW51ID09IDcgdGhlbiBnb3RvIG9uIGVuZAppZiBtZW51ID09IDggdGhlbiBnb3RvIFVuZGVyZ3JvdW5kIGVuZAppZiBtZW51ID09IDkgdGhlbiBnb3RvIGZjIGVuZAppZiBtZW51ID09IDEwIHRoZW4gZ290byBGTFkgZW5kCmlmIG1lbnUgPT0gMTEgdGhlbiBnb3RvIFdhbGxIYWNrIGVuZAppZiBtZW51ID09IG5pbCB0aGVuIGdnLmFsZXJ0KCdIYXBweSBDaGVhdGluZycpIGVuZCBnb3RvIHN0YXJ0CgpwcmludCgnQ2FuY2VsU2NyaXB0JykKCjo6U2Vjb25kYXJ5TWVudTo6Cm1lbnUgPSBnZy5jaG9pY2UoeycxLkJMVUUgTUFQJywnMi5HT0xERU4gTUFQJywnMy5HUkVFTiBNQVAnLCc0LlBVUlBMRSBNQVAnLCc1LlJFRCBNQVAnLCc2LkxJR0hUIEJMVUUgTUFQJywnNy5ZRUxMT1cgTUFQJ30sbmlsLCdXRUFQT05TLCBNQVAgW1NFVCBPRiBDT0xPUlNdJykKaWYgbWVudSA9PSAxIHRoZW4gZ290byBCbHVlTWFwIGVuZAppZiBtZW51ID09IDIgdGhlbiBnb3RvIEdvbGRlbk1hcCBlbmQKaWYgbWVudSA9PSAzIHRoZW4gZ290byBHcmVlbk1hcCBlbmQKaWYgbWVudSA9PSA0IHRoZW4gZ290byBQdXJwbGVNYXAgZW5kCmlmIG1lbnUgPT0gNSB0aGVuIGdvdG8gUmVkTWFwIGVuZAppZiBtZW51ID09IDYgdGhlbiBnb3RvIExpZ2h0Qmx1ZU1hcCBlbmQKaWYgbWVudSA9PSA3IHRoZW4gZ290byBZZWxsb3dNYXAgZW5kCmlmIG1lbnUgPT0gbmlsIHRoZW4gZ2cuYWxlcnQoJ1RoYW5rcyBUbyBOaXZlaycpZW5kIGdvdG8gc3RhcnQKCnByaW50KCdDYW5jZWxTY3JpcHQnKQoKOjpCbHVlTWFwOjoKZ2cuc2VhcmNoTnVtYmVyKCcwLjY5OTk5OTk4ODA4RjswLjYxMTk3NjAyNzQ5OzAuNTgyNjM0NzQ3MDMnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLnNlYXJjaE51bWJlcignMC42OTk5OTk5ODgwOCcsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuZ2V0UmVzdWx0cygxMDAwMCkKZ2cuZWRpdEFsbCgnOTk5JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5jbGVhclJlc3VsdHMoKQpnZy50b2FzdCgnSGFjayBCTFVFIE1BUCBEb25lJykKZ290byBTZWNvbmRhcnlNZW51Cgo6OkdvbGRlbk1hcDo6CmdnLnNlYXJjaE51bWJlcignMC42OTk5OTk5ODgwOEY7MC42MTE5NzYwMjc0OTswLjU4MjYzNDc0NzAzJywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5zZWFyY2hOdW1iZXIoJzAuNjk5OTk5OTg4MDgnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmdldFJlc3VsdHMoMTAwMDApCmdnLmVkaXRBbGwoJy05OTknLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmNsZWFyUmVzdWx0cygpCmdnLnRvYXN0KCdIYWNrIEdPTERFTiBNQVAgRG9uZScpCmdvdG8gU2Vjb25kYXJ5TWVudQoKOjpHcmVlbk1hcDo6CmdnLnNlYXJjaE51bWJlcignMC42MTE5NzYwMjc0OTswLjU4MjYzNDc0NzAzOzAuNjk5OTk5OTg4MDgnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLnNlYXJjaE51bWJlcignMC42MTE5NzYwMjc0OScsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuZ2V0UmVzdWx0cygxMDAwMCkKZ2cuZWRpdEFsbCgnOTk5JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5jbGVhclJlc3VsdHMoKQpnZy50b2FzdCgnSGFjayBHUkVFTiBNQVAgRG9uZScpCmdvdG8gU2Vjb25kYXJ5TWVudQoKOjpQdXJwbGVNYXA6OgpnZy5zZWFyY2hOdW1iZXIoJzAuNjExOTc2MDI3NDk7MC41ODI2MzQ3NDcwMzswLjY5OTk5OTk4ODA4JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5nZXRSZXN1bHRzKDEwMDAwKQpnZy5lZGl0QWxsKCctOTk5JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5jbGVhclJlc3VsdHMoKQpnZy50b2FzdCgnSGFjayBQVVJQTEUgTUFQIERvbmUnKQpnb3RvIFNlY29uZGFyeU1lbnUKCjo6UmVkTWFwOjoKZ2cuc2VhcmNoTnVtYmVyKCcwLjU4MjYzNDc0NzAzOzAuNjExOTc2MDI3NDk7MC42OTk5OTk5ODgwOCcsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuc2VhcmNoTnVtYmVyKCcwLjU4MjYzNDc0NzAzJywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5nZXRSZXN1bHRzKDEwMDAwKQpnZy5lZGl0QWxsKCc5OTknLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmNsZWFyUmVzdWx0cygpCmdnLnRvYXN0KCdIYWNrIFJFRCBNQVAgRG9uZScpCmdvdG8gU2Vjb25kYXJ5TWVudQoKOjpMaWdodEJsdWVNYXA6OgpnZy5zZWFyY2hOdW1iZXIoJzAuNTgyNjM0NzQ3MDM7MC42MTE5NzYwMjc0OTswLjY5OTk5OTk4ODA4JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5zZWFyY2hOdW1iZXIoJzAuNTgyNjM0NzQ3MDMnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmdldFJlc3VsdHMoMTAwMDApCmdnLmVkaXRBbGwoJy05OTknLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmNsZWFyUmVzdWx0cygpCmdnLnRvYXN0KCdIYWNrIExJR0hUIEJMVUUgTUFQIERvbmUnKQpnb3RvIFNlY29uZGFyeU1lbnUKCjo6WWVsbG93TWFwOjoKZ2cuc2VhcmNoTnVtYmVyKCcwLjU4MjYzNDc0NzAzOzAuNjExOTc2MDI3NDknLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLnNlYXJjaE51bWJlcignMC41ODI2MzQ3NDcwMzswLjYxMTk3NjAyNzQ5JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5nZXRSZXN1bHRzKDEwMDAwKQpnZy5lZGl0QWxsKCc5OScsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuY2xlYXJSZXN1bHRzKCkKZ2cudG9hc3QoJ0hhY2sgWUVMTE9XIE1BUCBEb25lJykKZ290byBTZWNvbmRhcnlNZW51Cgo6OlRoaXJkTWVudTo6Cm1lbnUgPSBnZy5jaG9pY2UoeycxLlNUUk9ORyBCUk9XTicsJzIuV0hJVEUgWUVMTE9XJywnMy5TVFJPTkcgWUVMTE9XJywnNC5MSUdIVCBCUk9XTicsJzUuV0hJVEUgU0tJTicsJzYuQkxBQ0sgU0tJTid9LG5pbCwnQ0hBTkdFIFNLSU4gQ09MT1IgW1NFVCBPRiBDT0xPUlNdJykKaWYgbWVudSA9PSAxIHRoZW4gZ290byBTdHJvbmdCcm93biBlbmQKaWYgbWVudSA9PSAyIHRoZW4gZ290byBXaGl0ZVllbGxvdyBlbmQKaWYgbWVudSA9PSAzIHRoZW4gZ290byBTdHJvbmdZZWxsb3cgZW5kCmlmIG1lbnUgPT0gNCB0aGVuIGdvdG8gTGlnaHRCcm93biBlbmQKaWYgbWVudSA9PSA1IHRoZW4gZ290byBXaGl0ZSBlbmQKaWYgbWVudSA9PSA2IHRoZW4gZ290byBCbGFjayBlbmQKaWYgbWVudSA9PSBuaWwgdGhlbiBnZy5hbGVydCgnVGhhbmtzIFRvIE5pdmVrJyllbmQgZ290byBzdGFydAoKcHJpbnQoJ0NhbmNlbFNjcmlwdCcpCgo6OlN0cm9uZ0Jyb3duOjoKZ2cuc2VhcmNoTnVtYmVyKCczJywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5zZWFyY2hOdW1iZXIoJzMnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmdldFJlc3VsdHMoMTAwMDApCmdnLmVkaXRBbGwoJzAnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmNsZWFyUmVzdWx0cygpCmdnLnRvYXN0KCdIYWNrIEJPRFkgU1RST05HIEJST1dOIERvbmUnKQpnb3RvIFRoaXJkTWVudQoKOjpXaGl0ZVllbGxvdzo6CmdnLnNlYXJjaE51bWJlcignMycsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuc2VhcmNoTnVtYmVyKCczJywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5nZXRSZXN1bHRzKDEwMDAwKQpnZy5lZGl0QWxsKCc5JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5jbGVhclJlc3VsdHMoKQpnZy50b2FzdCgnSGFjayBCT0RZIFdISVRFIFlFTExPVyBEb25lJykKZ290byBUaGlyZE1lbnUgCgo6OlN0cm9uZ1llbGxvdzo6CmdnLnNlYXJjaE51bWJlcignMycsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuc2VhcmNoTnVtYmVyKCczJywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5nZXRSZXN1bHRzKDEwMDAwKQpnZy5lZGl0QWxsKCc5JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5jbGVhclJlc3VsdHMoKQpnZy50b2FzdCgnSGFjayBCT0RZIFNUUk9ORyBXSElURSBEb25lJykKZ290byBUaGlyZE1lbnUgCgo6OkxpZ2h0QnJvd246OgpnZy5zZWFyY2hOdW1iZXIoJzMnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLnNlYXJjaE51bWJlcignMycsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuZ2V0UmVzdWx0cygxMDAwMCkKZ2cuZWRpdEFsbCgnMScsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuY2xlYXJSZXN1bHRzKCkKZ2cudG9hc3QoJ0hhY2sgQk9EWSBMSUdIVCBCUk9XTiBEb25lJykKZ290byBUaGlyZE1lbnUKCjo6V2hpdGU6OgpnZy5zZWFyY2hOdW1iZXIoJzMnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLnNlYXJjaE51bWJlcignMycsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuZ2V0UmVzdWx0cygxMDAwMCkKZ2cuZWRpdEFsbCgnOTknLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmNsZWFyUmVzdWx0cygpCmdnLnRvYXN0KCdIYWNrIEJPRFkgV0hJVEUgRG9uZScpCmdvdG8gVGhpcmRNZW51Cgo6OkJsYWNrOjoKZ2cuc2VhcmNoTnVtYmVyKCczJywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5zZWFyY2hOdW1iZXIoJzMnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmdldFJlc3VsdHMoMTAwMDApCmdnLmVkaXRBbGwoJy05JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5jbGVhclJlc3VsdHMoKQpnZy50b2FzdCgnSGFjayBCT0RZIEJMQUNLIERvbmUnKQpnb3RvIFRoaXJkTWVudQoKOjpGb3VydGhNZW51OjoKbWVudSA9IGdnLmNob2ljZSh7JzEuQkxBQ0sgQk9ESUVTJ30sbmlsLCdDSEFOR0UgU0tJTiBDT0xPUiBbU0VUIE9GIENPTE9SU10nKQppZiBtZW51ID09IDEgdGhlbiBnb3RvIEJsYWNrQm9kaWVzIGVuZAppZiBtZW51ID09IG5pbCB0aGVuIGdnLmFsZXJ0KCdUaGFua3MgVG8gTml2ZWsnKWVuZCBnb3RvIHN0YXJ0CgpwcmludCgnQ2FuY2VsU2NyaXB0JykKCjo6QmxhY2tCb2RpZXM6OgpnZy5zZWFyY2hOdW1iZXIoJzE7MycsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuc2VhcmNoTnVtYmVyKCcxJywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5nZXRSZXN1bHRzKDU1MDApCmdnLmVkaXRBbGwoJzMnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmNsZWFyUmVzdWx0cygpCmdnLnRvYXN0KCdIYWNrIEJMQUNLIEJPRElFUyBEb25lJykKZ290byBGb3VydGhNZW51IAoKCjo6YnBzOjoKbWVudSA9IGdnLmNob2ljZSh7JzEuUmVzb2x2ZSBGcmVlemluZyBBbmQgRXJyb3IgezEwNn0nfSxuaWwsJ1NFTEVDVCBUSElTIFdIRU4gQVBQRUFSIFRIRSAiR0FSRU5BIiBMT0dPJykKaWYgbWVudSA9PSAxIHRoZW4gZ290byBTb2x1dGlvbjEwNiBlbmQKaWYgbWVudSA9PSBuaWwgdGhlbiBnZy5hbGVydCgnSGFwcHkgQ2hlYXRpbmcnKWVuZCBnb3RvIHN0YXJ0CgpwcmludCgnQ2FuY2VsU2NyaXB0JykKCjo6U29sdXRpb24xMDY6OgpnZy5zZWFyY2hOdW1iZXIoJzAnLCBnZy5UWVBFX0FVVE8sIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuYWxlcnQoJ0Vycm9yIG9mIEZyZWV6aW5nIEFuZCBFcnJvciB7MTA2fSBSZXNvbHZlZC4nKQpnZy5jbGVhclJlc3VsdHMoKQpnb3RvIGJwcwoKOjpXYWxsSGFjazo6CmdnLnNlYXJjaE51bWJlcignLTUuOTAyOTU4MWUyMTstMi4wMjkxMDIxZTIwOy0yLjAyOTEwMjFlMjA7MS4wZS02JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5zZWFyY2hOdW1iZXIoJzEuMGUtNicsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuZ2V0UmVzdWx0cygxMDAwMCkKZ2cuZWRpdEFsbCgnLTEnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmNsZWFyUmVzdWx0cygpCmdnLnRvYXN0KCdXQUxMIEhBQ0sgT24nKQpnb3RvIFNtYXJ0Q2hlYXRlcgoKCjo6QkM6OgpnZy5jbGVhclJlc3VsdHMoKQpnZy5zZWFyY2hOdW1iZXIoJzE7NScsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuc2VhcmNoTnVtYmVyKCc1JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5nZXRSZXN1bHRzKDUwMCkKcHJpbnQoJ1JlcGxhY2VkOiAnLGdnLmVkaXRBbGwoJy01JywKZ2cuVFlQRV9GTE9BVCkpCmdnLnRvYXN0KCdHaWFudCBPbmx5IE9uIENhciBFbmFibGUnKQpnb3RvIFNtYXJ0Q2hlYXRlcgoKOjpmYzo6CmdnLnNlYXJjaE51bWJlcignMC44JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKSBnZy5zZWFyY2hOdW1iZXIoJzAuOCcsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkgZ2cuZ2V0UmVzdWx0cyg1MDAwKSBnZy5lZGl0QWxsKCc0LjMnLCBnZy5UWVBFX0ZMT0FUKSBnZy5jbGVhclJlc3VsdHMoNTAwMClnZy50b2FzdCgnVGhlIEZsYXNoIG9mIENyb2NvZGlsZSBPbicpZ290byBTbWFydENoZWF0ZXIKCjo6RkxZOjoKQ21lbnUgPQpnZy5jaG9pY2UoeydEaXNhYmxlJywnRW5hYmxlJ30sTGFzdHQsJ0hhcHB5IENoZWF0aW5nJykgCmlmIENtZW51ID09IDEgdGhlbiBnb3RvIGRpc2ZseSBlbmQKaWYgQ21lbnUgPT0gMiB0aGVuIGdvdG8gZW5hZmx5IGVuZAppZiBDbWVudSA9PSBMYXN0IHRoZW4gIGVuZCBnb3RvIFNtYXJ0Q2hlYXRlcgoKOjplbmFmbHk6OgpnZy5jbGVhclJlc3VsdHMoKQpnZy5zZWFyY2hOdW1iZXIoJzEuMScsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuZ2V0UmVzdWx0cygxMDAwKQpnZy5lZGl0QWxsKCc0MCcsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cudG9hc3QoJ0ZseSBFbmFibGVkJykKZ290byBTbWFydENoZWF0ZXIKCjo6ZGlzZmx5OjoKZ2cuY2xlYXJSZXN1bHRzKCkKZ2cuc2VhcmNoTnVtYmVyKCcxLDA2OCwyMDUsMzQzJywgZ2cuVFlQRV9EV09SRCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5nZXRSZXN1bHRzKDEwMDApCmdnLmVkaXRBbGwoJzEsMTExLDIwNSwzNDMnLCBnZy5UWVBFX0RXT1JELCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLnRvYXN0KCdGbHkgRGlzYWJsZWQnKQpnb3RvIFNtYXJ0Q2hlYXRlcgoKOjpVbmRlcmdyb3VuZDo6CmdnLnNlYXJjaE51bWJlcignNC4zOTY3NTY3ZS0zODswLjA1MDAwMDAwMDc1JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5zZWFyY2hOdW1iZXIoJzAuMDUwMDAwMDAwNzUnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLmdldFJlc3VsdHMoMTAwMDApCmdnLmVkaXRBbGwoJzIuMycsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuY2xlYXJSZXN1bHRzKCkKZ2cudG9hc3QoJ1VuZGVyZ3JvdW5kIEVuYWJsZWQnKQpnb3RvIFNtYXJ0Q2hlYXRlcgoKOjpieXBhc3M6OgpnZy5jbGVhclJlc3VsdHMoKQpnZy5zZWFyY2hOdW1iZXIoJzAnLCBnZy5UWVBFX0FVVE8sIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuZ2V0UmVzdWx0cygxMDAwMCkKZ2cuZWRpdEFsbCgnMCcsIGdnLlRZUEVfQVVUTywgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy50b2FzdCgnQnlwYXNzIFN1Y2NlcycpCmdvdG8gU21hcnRDaGVhdGVyCgo6OkdpYW50Qm9keTo6CmdnLmNsZWFyUmVzdWx0cygpCmdnLnNlYXJjaE51bWJlcignMTsuMDU7LjUnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLnNlYXJjaE51bWJlcignMScsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuZ2V0UmVzdWx0cygxMDAwMCkKZ2cuZWRpdEFsbCgnMCcsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cudG9hc3QoJ0dpYW50Qm9keSBPbicpCmdvdG8gU21hcnRDaGVhdGVyCgo6Okluc3RhbnREZWF0aDo6CmdnLmNsZWFyUmVzdWx0cygpCmdnLnNlYXJjaE51bWJlcignLjA4JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsIC0xKQpnZy5zZWFyY2hOdW1iZXIoJy4wOCcsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuZ2V0UmVzdWx0cygxMDAwMCkKZ2cuZWRpdEFsbCgnOTknLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwgLTEpCmdnLnRvYXN0KCdTdWljaWRlIE9uJykKZ290byBTbWFydENoZWF0ZXIKCjo6QW50ZW5uYTo6CmdnLnNlYXJjaE51bWJlcignMC42NScsIGdnLlRZUEVfRkxPQVQsIGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLCAtMSkKZ2cuZ2V0UmVzdWx0cygzMDAwKQpwcmludCgnUmVwbGFjZWQ6ICcsZ2cuZWRpdEFsbCgnMjAnLCBnZy5UWVBFX0ZMT0FUKSlnZy50b2FzdCgnQW50ZW5uYSBGZW1hbGUgQWt0aWYnKQpnb3RvIFNtYXJ0Q2hlYXRlcgoKCjo6YW50ZW5uYTI6OgpnZy5zZWFyY2hOdW1iZXIoJzAuNjAnLCBnZy5UWVBFX0ZMT0FULCBmYWxzZSwgZ2cuU0lHTl9FUVVBTCwgMCwtMSkKZ2cuZ2V0UmVzdWx0cygzMDAwKXByaW50KCdSZXBsYWNlZDogJyxnZy5lZGl0QWxsKCcyMCcsIGdnLlRZUEVfRkxPQVQpKQpnZy50b2FzdCgnQW50ZW5uYSBNYWxlIEFrdGlmJykKZ290byBTbWFydENoZWF0ZXIKCjo6Z29kOjoKZ2cuc2VhcmNoTnVtYmVyKCcwLjE1JywgZ2cuVFlQRV9GTE9BVCwgZmFsc2UsIGdnLlNJR05fRVFVQUwsIDAsLTEpCmdnLmdldFJlc3VsdHMoMzAwMClwcmludCgnUmVwbGFjZWQ6ICcsZ2cuZWRpdEFsbCgnNTAwJywgZ2cuVFlQRV9GTE9BVCkpCmdnLnRvYXN0KCdHb2RNb2RlIE9uJykKZ290byBTbWFydENoZWF0ZXIKCjo6b246OgpnZy5zZWFyY2hOdW1iZXIoJy0wLjEnLCBnZy5UWVBFX0ZMT0FULGZhbHNlLCBnZy5TSUdOX0VRVUFMLCAwLC0xKQpnZy5nZXRSZXN1bHRzKDcxKXByaW50KCdSZXBsYWNlZDogJyxnZy5lZGl0QWxsKCctOTknLCBnZy5UWVBFX0ZMT0FUKSkKZ2cudG9hc3QoJ05vIEZhbGwgT24nKQpnb3RvIFNtYXJ0Q2hlYXRlcgoKOjpjcmVhdG9yOjoKcHJpbnQoJ1N1YnNjcmliZSB0Lm1lL0hpZ2hHYW1lcnonKQpnZy50b2FzdCgnU2NyaXB0IGJ5IFNtYXJ0Q2hlYXQnKQpwcmludCgnQ3JlZGl0IDogU21hcnRDaGVhdCcpCm9zLmV4aXQoKQo=