Mw0NCgdae2PAGQAA4wAAAAAAAAAAAAAAAAcAAABAAAAAc7YAAABkAFoAZAFkAmwBWgFkAWQCbAJaAmQBZAJsA1oDZAFkAmwEWgRkAWQCbAVaBWQBZAJsBloGZAFkA2wHbQhaCAEAZAFkBGwJbQpaCgEAZAVkBmQHZAhkCWQKZAtnB1oLRwBkDGQJhABkCWUIgwNaDGQNZAiEAFoNZQ1kAmYCZA5kBYQBWg5lDWYBZA9kC4QBWg9lDWYBZBBkBoQBWhBlDWYBZBFkB4QBWhFlD2UQZRFmA1oSZAJTACkSei9VdGlsaXRpZXMgZm9yIGV4dHJhY3RpbmcgY29tbW9uIGFyY2hpdmUgZm9ybWF0c+kAAAAATikB2g5EaXN0dXRpbHNFcnJvcikB2hBlbnN1cmVfZGlyZWN0b3J52g51bnBhY2tfYXJjaGl2ZdoOdW5wYWNrX3ppcGZpbGXaDnVucGFja190YXJmaWxl2g5kZWZhdWx0X2ZpbHRlctoSVW5yZWNvZ25pemVkRm9ybWF02hJleHRyYWN0aW9uX2RyaXZlcnPaEHVucGFja19kaXJlY3RvcnljAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZAFaA2QCUwApA3IIAAAAeiNDb3VsZG4ndCByZWNvZ25pemUgdGhlIGFyY2hpdmUgdHlwZU4pBNoIX19uYW1lX1/aCl9fbW9kdWxlX1/aDF9fcXVhbG5hbWVfX9oHX19kb2NfX6kAcg8AAAByDwAAAPo9L3RtcC9waXAtYnVpbGQtemhvMTgyOGwvc2V0dXB0b29scy9zZXR1cHRvb2xzL2FyY2hpdmVfdXRpbC5weXIIAAAAEwAAAHMCAAAACAFjAgAAAAAAAAACAAAAAQAAAEMAAABzBAAAAHwBUwApAXpAVGhlIGRlZmF1bHQgcHJvZ3Jlc3MvZmlsdGVyIGNhbGxiYWNrOyByZXR1cm5zIFRydWUgZm9yIGFsbCBmaWxlc3IPAAAAKQLaA3NyY9oDZHN0cg8AAAByDwAAAHIQAAAAcgcAAAAXAAAAcwIAAAAAAmMEAAAAAAAAAAUAAAAMAAAAQwAAAHNOAAAAeEh8A3AIdABEAF0wfQR5EHwEfAB8AXwCgwMBAFcAbhYEAHQBawpyNAEAAQABAHcKWQBxClgAZAFTAHEKVwB0AWQCfAAWAIMBggFkAVMAKQNhoQQAAFVucGFjayBgZmlsZW5hbWVgIHRvIGBleHRyYWN0X2RpcmAsIG9yIHJhaXNlIGBgVW5yZWNvZ25pemVkRm9ybWF0YGAKCiAgICBgcHJvZ3Jlc3NfZmlsdGVyYCBpcyBhIGZ1bmN0aW9uIHRha2luZyB0d28gYXJndW1lbnRzOiBhIHNvdXJjZSBwYXRoCiAgICBpbnRlcm5hbCB0byB0aGUgYXJjaGl2ZSAoJy8nLXNlcGFyYXRlZCksIGFuZCBhIGZpbGVzeXN0ZW0gcGF0aCB3aGVyZSBpdAogICAgd2lsbCBiZSBleHRyYWN0ZWQuICBUaGUgY2FsbGJhY2sgbXVzdCByZXR1cm4gdGhlIGRlc2lyZWQgZXh0cmFjdCBwYXRoCiAgICAod2hpY2ggbWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBvbmUgcGFzc2VkIGluKSwgb3IgZWxzZSBgYE5vbmVgYCB0byBza2lwCiAgICB0aGF0IGZpbGUgb3IgZGlyZWN0b3J5LiAgVGhlIGNhbGxiYWNrIGNhbiB0aHVzIGJlIHVzZWQgdG8gcmVwb3J0IG9uIHRoZQogICAgcHJvZ3Jlc3Mgb2YgdGhlIGV4dHJhY3Rpb24sIGFzIHdlbGwgYXMgdG8gZmlsdGVyIHRoZSBpdGVtcyBleHRyYWN0ZWQgb3IKICAgIGFsdGVyIHRoZWlyIGV4dHJhY3Rpb24gcGF0aHMuCgogICAgYGRyaXZlcnNgLCBpZiBzdXBwbGllZCwgbXVzdCBiZSBhIG5vbi1lbXB0eSBzZXF1ZW5jZSBvZiBmdW5jdGlvbnMgd2l0aCB0aGUKICAgIHNhbWUgc2lnbmF0dXJlIGFzIHRoaXMgZnVuY3Rpb24gKG1pbnVzIHRoZSBgZHJpdmVyc2AgYXJndW1lbnQpLCB0aGF0IHJhaXNlCiAgICBgYFVucmVjb2duaXplZEZvcm1hdGBgIGlmIHRoZXkgZG8gbm90IHN1cHBvcnQgZXh0cmFjdGluZyB0aGUgZGVzaWduYXRlZAogICAgYXJjaGl2ZSB0eXBlLiAgVGhlIGBkcml2ZXJzYCBhcmUgdHJpZWQgaW4gc2VxdWVuY2UgdW50aWwgb25lIGlzIGZvdW5kIHRoYXQKICAgIGRvZXMgbm90IHJh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