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bQB0AwBkBwCCAgBuDAB0BAB8BACDAQB9BQB8BQBqBQB8AAB8AQB8AgCDAwBTKAkAAABztgEAAE9wZW4gb3IgY3JlYXRlIGRhdGFiYXNlIGF0IHBhdGggZ2l2ZW4gYnkgKmZpbGUqLgoKICAgIE9wdGlvbmFsIGFyZ3VtZW50ICpmbGFnKiBjYW4gYmUgJ3InIChkZWZhdWx0KSBmb3IgcmVhZC1vbmx5IGFjY2VzcywgJ3cnCiAgICBmb3IgcmVhZC13cml0ZSBhY2Nlc3Mgb2YgYW4gZXhpc3RpbmcgZGF0YWJhc2UsICdjJyBmb3IgcmVhZC13cml0ZSBhY2Nlc3MKICAgIHRvIGEgbmV3IG9yIGV4aXN0aW5nIGRhdGFiYXNlLCBhbmQgJ24nIGZvciByZWFkLXdyaXRlIGFjY2VzcyB0byBhIG5ldwogICAgZGF0YWJhc2UuCgogICAgTm90ZTogJ3InIGFuZCAndycgZmFpbCBpZiB0aGUgZGF0YWJhc2UgZG9lc24ndCBleGlzdDsgJ2MnIGNyZWF0ZXMgaXQKICAgIG9ubHkgaWYgaXQgZG9lc24ndCBleGlzdDsgYW5kICduJyBhbHdheXMgY3JlYXRlcyBhIG5ldyBkYXRhYmFzZS4KICAgIGn/////KAEAAAB0BwAAAHdoaWNoZGJ0AQAAAGN0AQAAAG5zIwAAAG5lZWQgJ2MnIG9yICduJyBmbGFnIHRvIG9wZW4gbmV3IGRidAAAAABzHwAAAGRiIHR5cGUgY291bGQgbm90IGJlIGRldGVybWluZWROKAYAAABSCAAAAHQEAAAATm9uZXQLAAAAX2RlZmF1bHRtb2RSAAAAAHQKAAAAX19pbXBvcnRfX3QEAAAAb3BlbigGAAAAdAQAAABmaWxldAQAAABmbGFndAQAAABtb2RlUggAAAB0BgAAAHJlc3VsdHQDAAAAbW9kKAAAAAAoAAAAAHNOAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvYW55ZGJtLnB5Ug8AAAA5AAAAcxQAAAAADRABDAEMAhgDCQIMAQwCDAIMAU4oDgAAAHQHAAAAX19kb2NfX3QJAAAARXhjZXB0aW9uUgAAAAB0BgAAAF9uYW1lc3QHAAAAX2Vycm9yc1IMAAAAUg0AAAB0BQAAAF9uYW1lUg4AAAB0BAAAAF9tb2R0CwAAAEltcG9ydEVycm9ydAYAAABhcHBlbmR0BQAAAHR1cGxlUg8AAAAoAAAAACgAAAAAKAAAAABzTgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L2FueWRibS5weXQIAAAAPG1vZHVsZT4iAAAAcyAAAAAGAhYDEgEJAQYCDQEDARABDQEHAQYBCQEUAgYBEAIMAg==