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AhgtogEAAxhOogEABBheogEABhhyogEACBiTogEACRigogEAChilogEADBi1ogEADRhOowEADhhbowEADxiCowEAEBixowEAERjVowEAEhgipAEAExgzpAEAFBhEpAEAFRhjpAEAFhiOpAEAFxjGpAEAGhjppAEAGxgZpQEAIBg1pQEAIRhGpQEAIhhapQEAJBjMpQEAJxjXpQEAKBgGpgEAKRhGpgEAKhiJpgEAKxicpgEALBi1pgEASBi8pgEASRjepgEATRjwpgEArxj8pgEAsRgBpwEAshgGpwEAsxgOpwEAtBgUpwEAtRgZpwEAthgqpwEAtxg3pwEAuBhIpwEAuRhVpwEAuhhfpwEAuxhkpwEAvBh1pwEAvRiBpwEAvhiJpwEAwhiSpwEAwxiepwEAxBitpwEAxRi9pwEAxhjlpwEAxxj3pwEAyBhMqAEAyRibqAEAyhjDqAEAyxjpqAEAzBgEqQEAzRgoqQEAzhhfqQEAzxiQqQEA0BilqQEA0RjQqQEA0hgUqgEA0xg/qgEA1hiDqgEA1xiaqgEA2BjHqgEA2RjfqgEA2hgRqwEA2xhWqwEA3Bh9qwEA3RigqwEA3hjaqwEA3xgQrAEA4BgtrAEA4RhKrAEA4hhcrAEA4xhqrAEA5Bh8rAEA5RiKrAEA6BjQrAEA6Rj6rAEA6xgWrQEA7BgkrQEA7RhBrQEA7hhhrQEA7xh3rQEA8hiQrQEA8xivrQEA9hjFrQEA9xjSrQEA+BjvrQEA+Rj9rQEA+hhPrgEABhmYrgEABxnfrgEACBn3rgEACRljsAEAChlusAEACxl5sAEADBmEsAEADRmQsAEADhmqsAEADxnFsAEAEBnosAEAERn+sAEAEhkbsQEAExlUsQEAFBmUsQEAFRm2sQEAFhnfsQEAFxn9sQEAGBkbsgEAGRlCsgEAGhlHsgEAGxlTsgEAHBlxsgEAHRmdsgEAHhmqsgEAIRnFsgEAIhnLsgEAIxn1sgEAJBkUswEAJRkvswEAKBlMswEAKRl3swEAKhm2swEAKxnXswEALBn2swEALRkFtAEALhkUtAEALxlItAEAMBmPtAEAMRmutAEAMhnUtAEAMxkNtQEANBlMtQEAORlmtQEAOhmKtQEAOxmOtQEAPBmltQEAPxmvtQEAQBnOtQEAQRketgEAQhlvtgEAQxm1tgEARBnAtgEA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MTzc/gEANDzt/gEANzz7/gEAODwf/wEAOTxN/wEAPDx4/wEAPTyA/wEAPjyI/wEAPzyR/wEAQDzE/wEAQTzz/wEARTz+/wEARjwSAAIARzxHAAIASTx0AAIASjymAAIASzzCAAIATDzWAAIATTzmAAIAUDz7AAIAUTwSAQIAUjzzAQIAUzz9AQIAVjyZAgIAVzwmAwIAWDzrAwIAWTyrBAIAWjy2BAIAWzzjBAIAXTwCBQIAXjwlBQIAXzw1BQIAYDxYBQIAYTxoBQIAYzyTBQIAZDzCBQIAZTzIBQIAZjzrBQIAZzz3BQIAaDwfBgIAaTwoBgIAajxCBgIAazxqBgIAbDxzBgIAbTyFBgIAbjyUBgIAbzybBgIAcDyhBgIAcTyrBgIAcjy0BgIAdDy7BgIAdTzNBgIAdjzTBgIAdzzrBgIAeDw1BwIAeTx7BwIAejyWBwIAezysBwIAfDy1BwIAfTzJBwIAfjziBwIAfzzwBwIAgDz+BwIAgTwbCAIAgjwmCAIAgzwyCAIAhDx0CAIAhTyICAIAhjy4CAIAhzziCAIAiDz8CAIAiTwSCQIAijw1CQIAizxVCQIAjDx8CQIAjTzlCQIAjjxQCgIAjzzeCgIAkDyVCwIAkTxSDAIAkjwNDQIAlDxADQIAlTx7DQIAljyNDQIAlzygDQIAmDzuDQIAmTwtDgIAmjzvDgIAmzytDwIAnDxjEAIAnTxoEAIAnjzWEAIAnzw3EQIAoDzGEgIAoTztEgIAojw/EwIAozxWEwIApDyPEwIApTybEwIApjzdEwIApzz0EwIAqTz9EwIAqzwuFAIArDwzFAIArTw6FAIArjxIFAIArzxPFAIAsDxYFAIAsTx3FAIAszyHFAIAtDy8FAIAtTzGFAIAtjz9FAIAuDwJFQIAuTwRFQIAwjwgFQIAxTw5FQIAyjxQFQIAzjxWFQIAzzxmFQIA0DyAFQIA0TyaFQIA0jyyFQIA0zzNFQIA1DzmFQIA1Tz/FQIA1jwWFgIA1zxCFgIA2DxUFgIA2TxsFgIA2jxuFgIA2zx4FgIA3DyFFgIA3TySFgIA3jykFgIA3zzBFgIA4DzeFgIA4TwGFwIA4jwdFwIA4zw0FwIA5DxWFwIA5TxrFwIA5jyLFwIA6TzIFwIA6jxCGAIA6zzEGAIA7Dw6GQIA7jxKGQIA7zxcGQIA8DxsGQIA8jx3GQIA8zyRGQIA9TycGQIA9jytGQIA9zy9GQIA+DzQGQIA+TzlGQIA+jzzGQIA+zz/GQIA/DwPGgIA/jwgGgIA/zwzGgIAAD1DGgIAAT1YGgIAAz1sGgIABD18GgIABT2EGgIABj2VGgIACD2eGgIACT2rGgIACz2yGgIADD26GgIADT3KGgIADj3ZGgIADz3hGgIAED3xGgIAET0AGwIAEj0GGwIAEz0UGwIAFT0hGwIAGj0kGwIAHD0yGwIAHj0+GwIAHz1bGwIAID1pGwIAIT1+GwIAIj2SGwIAIz2oGwIAJD3HGwIAJT3oGwIAJj0IHAIAKD0ZHAIAKz0jHAIALD09HAIALT1WHAIALj1xHAIALz2VHAIAMD27HAIAMT3gHAIAMj0bHQIAMz1cHQIAND3QHQIANT0nHgIASD1dHgIAST1wHgIASj18HgIASz2ZHgIATD23HgIATT3LHgIATj3uHgIATz0OHwIAUD0oHwIAUT1DHwIAUj1cHwIAUz15HwIAVD2OHwIAVT2mHwIAVj2+HwIAVz3bHwIAWD30HwIAWT0JIAIAWj0WIAIAXD0kIAIAXT0yIAIAXz06IAIAYD2BIAIAYT2JIAIAYj3EIAIAYz39IAIAZD08IQIAZT13IQIAZj2zIQIAZz3yIQIAaD0rIgIAaT1pIgIAaj2mIgIAaz2+IgIAbT3VIgIAbj07IwIAbz2gIwIAcD0IJAIAdD1nJAIAdz2BJAIAeD2gJAIAeT3eJAIAfj3vJAIAgT0LJQIAhT0bJQIAhj0nJQIAhz0uJQIAiD02JQIAiT1BJQIAij1+JQIAiz2PJQIAjT20JQIAjj3KJQIAjz3UJQIAkD3tJQIAkT0FJgIAkj0aJgIAkz05JgIAlD1cJgIAlT17JgIAlj2YJgIAlz2qJgIAmD23JgIAmj3HJgIAmz3WJgIAnD3xJgIAnT0GJwIAnj0bJwIAnz0oJwIAoD1RJwIAoT1lJwIAoj12JwIAoz2NJwIApD2hJwIApT3eJwIApj0jKAIApz03KAIAqD1UKAIAqj1uKAIAqz19KAIArD2bKAIArT26KAIArj3MKAIArz3fKAIAsD3zKAIAsj0NKQIAsz0TKQIAtT0cKQIAtj0uKQIAtz1HKQIAuD1iKQIAuT2aKQIAuj2sKQIAuz24KQIAvD3LKQIAvT3uKQIAvj0QKgIAvz0jKgIAwD02KgIAwT1kKgIAwj0SKwIAwz1eKwIAxD1+KwIAxT3LKwIAxj0KLAIAxz1pLAIAyD2mLAIAyT3mLAIAyj0OLQIAyz0uLQIA0D1XLQIA0j11LQIA0z19LQIA1j2MLQIA1z2dLQIA2D2pLQIA2z21LQIA3j3BLQIA3z3NLQIA4D3oLQIA4T1jLgIA4z2FLgIA5D3TLgIA5T0ILwIA5j0sLwIA5z1NLwIA6D1qLwIA6T1yLwIA6j2JLwIA6z2YLwIA7T2mLwIA7j21LwIA7z3CLwIA8D3ULwIA8j3jLwIA8z3rLwIA9D31LwIA9T3+LwIA9j0QMAIA9z0hMAIA+D0uMAIA+j07MAIA+z1KMAIA/D1RMAIA/T1wMAIA/j1/MAIA/z2JMAIAAD6OMAIAAT6ZMAIABD6lMAIABT6vMAIABj65MAIACD7TMAIACT7aMAIACj7lMAIACz7uMAIADD4AMQIADT4FMQIADj4RMQIADz4ZMQIAED4wMQIAET5BMQIAEj5QMQIAEz5lMQIAFD5/MQIAFT6IMQIAFj6ZMQIAGD6sMQIAGT66MQIAGj7RMQIAGz7gMQIAHD58MgIAHT4aMwIAHj4oMwIAHz50MwIAID7UMwIAIj4BNAIAIz4ONAIAJD4qNAIAJT48NAIAJj5MNAIAJz6TNAIAKD7YNAIAKT4iNQIAKj5kNQIAKz6kNQIALT7pNQIALj4uNgIALz6cNgIAMD5PNwIAMT7uNwIAMj5AOAIAMz6oOAIAND6zOAIANT7GOAIANj7aOAIANz7uOAIAOD5oOQIAOT55OgIAOj6GOgIAOz6kOgIAPD5VOwIAPT6rOwIAPj77OwIAPz6QPgIAQD6ePgIAQj7WPgIAQz56PwIARD4PQAIART6vQAIARj4yQgIARz71QgIASz4DQwIATD4iQwIATT4dRAIATj68RAIATz6dRQIAUD48RgIAUT5KRgIAUj64RgIAUz45RwIAVD5hRwIAVT5aSAIAVj66SAIAVz5QSQIAWD5kSQIAWT5bSgIAWj7wSgIAWz6lSwIAXD6/SwIAXT5ZTAIAXj5zTAIAXz4ATQIAYD4JTQIAYT4STQIAYj4hTQIAYz42TQIAZD5cTgIAZT6CTgIAZj6QTwIAZz6kTwIAaD4TUAIAaT5WVQIAaj4lVgIAbT7jVgIAbj76VgIAbz5gVwIA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eWocnQIAempInQIAfGp+nQIAfWqnnQIAfmranQIAf2oJngIAgGo1ngIAgWprngIAgmqnngIAg2rdngIAhGoZnwIAhWpPnwIAhmqCnwIAh2q7nwIAiGrxnwIAiWoloAIAimpfoAIAi2qToAIAjGrNoAIAjWoBoQIAjmoyoQIAj2ppoQIAkWqdoQIAkmqmoQIAlmqtoQIAnWrEoQIAn2rVoQIAoGrioQIAoWrvoQIAomr8oQIAo2oFogIApGoOogIApWoYogIAp2ohogIAqGopogIAqWouogIAqmozogIAq2pBogIArGpFogIArWpJogIArmpOogIAr2pUogIAuGpbogIAuWpfogIAumptogIAu2p2ogIAvGqAogIAvWqDogIAvmqJogIAv2qQogIAwGqZogIAwWqkogIAwmqwogIAw2q5ogIAymrEogIAzmrJogIA0GrMogIA0mrPogIA02rSogIA1mrVogIA12rfogIA2GrqogIA2WryogIA2mr8ogIA22oBowIA3GoGowIA3WoIowIA3moLowIA32oUowIA4GoZowIA4WofowIA4movowIA42o/owIA5GpTowIA5WpdowIA5mphowIA52pmowIA6GptowIA6WpzowIA6mp7owIA62qFowIA7GqOowIA8mqSowIA82qYowIA9GqfowIA9WqmowIA9mqtowIA92q0owIA+Gq7owIA+WrnowIA+2rzowIA/GoQpAIA/WojpAIA/mo4pAIA/2o9pAIAAGtFpAIAAWtJpAIAA2tSpAIABGtVpAIABWt6pAIABmudpAIAB2u/pAIACGvipAIACWsIpQIACmstpQIAC2tEpQIADWtPpQIAD2thpQIAFGt2pQIAFWuEpQIAFmuTpQIAF2ujpQIAGGuupQIAGWu9pQIAG2vFpQIAHGvTpQIAHWvcpQIAHmvnpQIAH2vzpQIAIGsFpgIAIWsXpgIAImstpgIAI2tBpgIAJGtOpgIAJWtcpgIAJmt6pgIAJ2uUpgIAKGu5pgIAKWvBpgIAKmvZpgIAK2vopgIAAAD4pgIAqQETAKoBFACxAR4AvwEkAMsBHgDQAQgA2AEeANsBHgD6ATYA/wEEAAYCIQAWAh4AFwITABgCFAA5Al4ARwJMAF4CQABnAnoAagJ+AGsCegBsAn4AiwITAJwCdgBLA7cATAO4AFQDwwBoA7kA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bWl1bSBpcyB5b3VyIGRlZmF1bHQgYnJvd3Nlck1ha2UgQ2hyb21pdW0gdGhlIGRlZmF1bHQgYnJvd3NlckNocm9taXVtIGNhbm5vdCBkZXRlcm1pbmUgb3Igc2V0IHRoZSBkZWZhdWx0IGJyb3dzZXJUaGlzIGlzIGEgc2Vjb25kYXJ5IGluc3RhbGxhdGlvbiBvZiBDaHJvbWl1bSwgYW5kIGNhbm5vdCBiZSBtYWRlIHlvdXIgZGVmYXVsdCBicm93c2VyLkNocm9taXVtIG1heSB1c2Ugd2ViIHNlcnZpY2VzIHRvIGltcHJvdmUgeW91ciBicm93c2luZyBleHBlcmllbmNlLiBZb3UgbWF5IG9wdGlvbmFsbHkgZGlzYWJsZSB0aGVzZSBzZXJ2aWNlcy4gPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiQxIj5MZWFybiBtb3JlPC9hPlRvIGZpeCBzcGVsbGluZyBlcnJvcnMsIENocm9taXVtIHNlbmRzIHRoZSB0ZXh0IHlvdSB0eXBlIGluIHRleHQgZmllbGRzIHRvIEdvb2dsZUNvbW11bmljYXRlcyB3aXRoIEdvb2dsZSB0byBpbXByb3ZlIGJyb3dzaW5nIGFuZCBDaHJvbWl1bVNpZ24gaW4gdG8gQ2hyb21pdW0gaXMgZGlzYWJsZWQgYnkgdGhlIGFkbWluaXN0cmF0b3Igb2YgdGhpcyBkZXZpY2UuVGhpcyB3aWxsIGRlbGV0ZSAxIGl0ZW0gZnJvbSB0aGlzIGRldmljZS4gVG8gcmV0cmlldmUgeW91ciBkYXRhIGxhdGVyLCBzaWduIGluIHRvIENocm9taXVtIGFzICQxLlRoaXMgd2lsbCBkZWxldGUgJDEgaXRlbXMgZnJvbSB0aGlzIGRldmljZS4gVG8gcmV0cmlldmUgeW91ciBkYXRhIGxhdGVyLCBzaWduIGluIHRvIENocm9taXVtIGFzICQyLlRoaXMgd2lsbCBkZWxldGUgeW91ciBicm93c2luZyBkYXRhIGZyb20gdGhpcyBkZXZpY2UuIFRvIHJldHJpZXZlIHlvdXIgZGF0YSBsYXRlciwgc2lnbiBpbiB0byBDaHJvbWl1bSBhcyAkMS5DaHJvbWl1bSBuYW1lIGFuZCBwaWN0dXJlU2lnbiBpbiB0byBzeW5jIGFuZCBwZXJzb25hbGl6ZSBDaHJvbWl1bSBhY3Jvc3MgeW91ciBkZXZpY2VzU3luYyBhbmQgcGVyc29uYWxpemUgQ2hyb21pdW0gYWNyb3NzIHlvdXIgZGV2aWNlc1NpZ24gaW4gdG8gQ2hyb21pdW1Gb3IgYWRkZWQgc2VjdXJpdHksIENocm9taXVtIHdpbGwgZW5jcnlwdCB5b3VyIGRhdGEuU2lnbiBvdXQgb2YgQ2hyb21pdW0/Q2hyb21pdW0gd2lsbCBhY2Nlc3MgeW91ciBEcml2ZSB0byBtYWtlIHN1Z2dlc3Rpb25zIGluIHRoZSBhZGRyZXNzIGJhckNocm9taXVtIGlzIGRpc3BsYXllZCBpbiB0aGlzIGxhbmd1YWdlRGlzcGxheSBDaHJvbWl1bSBpbiB0aGlzIGxhbmd1YWdlQ29udGludWUgcnVubmluZyBiYWNrZ3JvdW5kIGFwcHMgd2hlbiBDaHJvbWl1bSBpcyBjbG9zZWRIZWxwIG1ha2UgQ2hyb21pdW0gYmV0dGVyIGJ5IHJlcG9ydGluZyB0aGUgPGEgaXM9ImFjdGlvbi1saW5rIiB0YXJnZXQ9Il9ibGFuayI+Y3VycmVudCBzZXR0aW5nczwvYT5EaXNjb25uZWN0aW5nICQxIHdpbGwgY2xlYXIgeW91ciBoaXN0b3J5LCBib29rbWFya3MsIHNldHRpbmdzLCBhbmQgb3RoZXIgQ2hyb21pdW0gZGF0YSBzdG9yZWQgb24gdGhpcyBkZXZpY2UuIERhdGEgc3RvcmVkIGluIHlvdXIgR29vZ2xlIEFjY291bnQgd2lsbCBub3QgYmUgY2xlYXJlZCBhbmQgY2FuIGJlIG1hbmFnZWQgb24gPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiQyIj5Hb29nbGUgRGFzaGJvYXJkPC9hPi5DaHJvbWl1bUNocm9taXVtIGxvZ29zaWduIGluIHRvIENocm9taXVtVGFzayBNYW5hZ2VyIC0gQ2hyb21pdW1IZWxwIG1ha2UgQ2hyb21pdW0gYmV0dGVyIGJ5IHNlbmRpbmcgY3Jhc2ggcmVwb3J0cyBhbmQgJDEgdG8gR29vZ2xlJDEgLSBDaHJvbWl1bSQxIC0gQ2hyb21pdW0gQmV0YSQxIC0gQ2hyb21pdW0gRGV2JDEgLSBDaHJvbWl1bSBDYW5hcnlHZXQgaGVscCB3aXRoIHVzaW5nIENocm9taXVtVGhlIENocm9taXVtIEF1dGhvcnNDb3B5cmlnaHQgezAsZGF0ZSx5fSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5Ob3QgdXNlZCBpbiBDaHJvbWl1bS4gUGxhY2Vob2xkZXIgdG8ga2VlcCByZXNvdXJjZSBtYXBzIGluIHN5bmMuIEl0IGV4cGVjdHMgb25lIGFyZ3VtZW50OiAkMS5MZXQgQ2hyb21pdW0gcnVuIGluIHRoZSBiYWNrZ3JvdW5kQ2hyb21pdW0gY2Fubm90IHJlYWQgYW5kIHdyaXRlIHRvIGl0cyBkYXRhIGRpcmVjdG9yeToKCiQxWW91ciBwcm9maWxlIGNhbiBub3QgYmUgdXNlZCBiZWNhdXNlIGl0IGlzIGZyb20gYSBuZXdlciB2ZXJzaW9uIG9mIENocm9taXVtLgoKU29tZSBmZWF0dXJlcyBtYXkgYmUgdW5hdmFpbGFibGUuIFBsZWFzZSBzcGVjaWZ5IGEgZGlmZmVyZW50IHByb2ZpbGUgZGlyZWN0b3J5IG9yIHVzZSBhIG5ld2VyIHZlcnNpb24gb2YgQ2hyb21pdW0uWW91ciBwcmVmZXJlbmNlcyBjYW4gbm90IGJlIHJlYWQuCgpTb21lIGZlYXR1cmVzIG1heSBiZSB1bmF2YWlsYWJsZSBhbmQgY2hhbmdlcyB0byBwcmVmZXJlbmNlcyB3b24ndCBiZSBzYXZlZC5Zb3VyIHByZWZlcmVuY2VzIGZpbGUgaXMgY29ycnVwdCBvciBpbnZhbGlkLgoKQ2hyb21pdW0gaXMgdW5hYmxlIHRvIHJlY292ZXIgeW91ciBzZXR0aW5ncy5DaHJvbWl1bSB3aWxsIHNhdmUgdGhpcyBwYXNzd29yZCBpbiB5b3VyIEdvb2dsZSBBY2NvdW50LiBZb3Ugd29u4oCZdCBoYXZlIHRvIHJlbWVtYmVyIGl0LkNocm9taXVtIGlzbid0IHlvdXIgZGVmYXVsdCBicm93c2VyQ2hyb21pdW0gZG9lcyBub3QgaW5jbHVkZSB0aGUgUERGIHZpZXdlciB3aGljaCBpcyByZXF1aXJlZCBmb3IgUHJpbnQgUHJldmlldyB0byBmdW5jdGlvbi5BZGRpbmcgdG8gQ2hyb21pdW3igKYkMSBtYXkgYmUgZGFuZ2Vyb3VzLCBzbyBDaHJvbWl1bSBoYXMgYmxvY2tlZCBpdC5UaGlzIGZpbGUgaXMgZGFuZ2Vyb3VzLCBzbyBDaHJvbWl1bSBoYXMgYmxvY2tlZCBpdC4kMSBpcyBkYW5nZXJvdXMsIHNvIENocm9taXVtIGhhcyBibG9ja2VkIGl0LlRoaXMgZmlsZSBtYXkgYmUgZGFuZ2Vyb3VzLCBzbyBDaHJvbWl1bSBoYXMgYmxvY2tlZCBpdC5FeGl0IENocm9taXVtIGFueXdheT9Hb29nbGUgQVBJIGtleXMgYXJlIG1pc3NpbmcuIFNvbWUgZnVuY3Rpb25hbGl0eSBvZiBDaHJvbWl1bSB3aWxsIGJlIGRpc2FibGVkLkNocm9taXVtIGlzIHVwIHRvIGRhdGUuVXBkYXRpbmcgQ2hyb21pdW3igKZBZGQgdG8gQ2hyb21pdW0kMSBoYXMgYmVlbiBhZGRlZCB0byBDaHJvbWl1bUhpZGUgaW4gQ2hyb21pdW0gbWVudUhlbHAgbWFrZSBDaHJvbWl1bSBiZXR0ZXIgYnkgcmVwb3J0aW5nIHRoZSBjdXJyZW50IHNldHRpbmdzV2FybmluZzogQ2hyb21pdW0gY2Fubm90IHByZXZlbnQgZXh0ZW5zaW9ucyBmcm9tIHJlY29yZGluZyB5b3VyIGJyb3dzaW5nIGhpc3RvcnkuIFRvIGRpc2FibGUgdGhpcyBleHRlbnNpb24gaW4gaW5jb2duaXRvIG1vZGUsIHVuc2VsZWN0IHRoaXMgb3B0aW9uLlJlbW92ZSBmcm9tIENocm9taXVt4oCmSW4gQ2hyb21pdW1UbyBtYWtlIENocm9taXVtIHNhZmVyLCB3ZSBkaXNhYmxlZCBzb21lIGV4dGVuc2lvbnMgdGhhdCBhcmVuJ3QgbGlzdGVkIGluIHRoZSAkMSBhbmQgbWF5IGhhdmUgYmVlbiBhZGRlZCB3aXRob3V0IHlvdXIga25vd2xlZGdlLlRvIG1ha2UgQ2hyb21pdW0gc2FmZXIsIHdlIGRpc2FibGVkIHRoZSBmb2xsb3dpbmcgZXh0ZW5zaW9uIHRoYXQgaXNuJ3QgbGlzdGVkIGluIHRoZSAkMSBhbmQgbWF5IGhhdmUgYmVlbiBhZGRlZCB3aXRob3V0IHlvdXIga25vd2xlZGdlLkN1c3RvbWl6ZSBhbmQgY29udHJvbCBDaHJvbWl1bUN1c3RvbWl6ZSBhbmQgY29udHJvbCBDaHJvbWl1bS4gVXBkYXRlIGlzIGF2YWlsYWJsZS4mT3BlbiBpbiBDaHJvbWl1bUFib3V0ICZDaHJvbWl1bVVwZGF0ZSAmQ2hyb21pdW1Zb3UncmUgbm93IHNpZ25lZCBpbiB0byBDaHJvbWl1bVRoaXMgaXMgeW91ciBDaHJvbWl1bVNoYXJlIGEgY29tcHV0ZXI/IE5vdyB5b3UgY2FuIHNldCB1cCBDaHJvbWl1bSBqdXN0IHRoZSB3YXkgeW91IGxpa2UgaXQuQWZ0ZXIgcmVtb3ZpbmcgeW91ciBhY2NvdW50IGZyb20gQ2hyb21pdW0sIHlvdSBtYXkgbmVlZCB0byByZWxvYWQgeW91ciBvcGVuIHRhYnMgdG8gdGFrZSBlZmZlY3QuWW91J3JlIHVzaW5nICQxIHRvIHN5bmMgeW91ciBDaHJvbWl1bSBzdHVmZi4gVG8gdXBkYXRlIHlvdXIgc3luYyBwcmVmZXJlbmNlIG9yIHRvIHVzZSBDaHJvbWl1bSB3aXRob3V0IGEgR29vZ2xlIGFjY291bnQsIHZpc2l0ICQyLllvdSdyZSBzaWduZWQgaW4gdG8gQ2hyb21pdW0hWW91J3JlIHNpZ25lZCBpbiBhcyAkMS4gTm93IHlvdSBjYW4gYWNjZXNzIHlvdXIgYm9va21hcmtzLCBoaXN0b3J5LCBhbmQgb3RoZXIgc2V0dGluZ3Mgb24gYWxsIHlvdXIgc2lnbmVkIGluIGRldmljZXMuWW91J3JlIG5vdyBzaWduZWQgaW4gdG8gQ2hyb21pdW0hIFN5bmMgaXMgZGlzYWJsZWQgYnkgeW91ciBhZG1pbmlzdHJhdG9yLllvdSB3ZXJlIHNpZ25lZCBpbiB0byBDaHJvbWl1bSBhcyAkMS4gUGxlYXNlIHVzZSB0aGUgc2FtZSBhY2NvdW50IHRvIHNpZ24gaW4gYWdhaW4uU29tZW9uZSBwcmV2aW91c2x5IHNpZ25lZCBpbiB0byBDaHJvbWl1bSBvbiB0aGlzIGNvbXB1dGVyIGFzICQxLiBJZiB0aGF0IGlzbid0IHlvdXIgYWNjb3VudCwgY3JlYXRlIGEgbmV3IENocm9taXVtIHVzZXIgdG8ga2VlcCB5b3VyIGluZm9ybWF0aW9uIHNlcGFyYXRlLgoKU2lnbmluZyBpbiBhbnl3YXkgd2lsbCBtZXJnZSBDaHJvbWl1bSBpbmZvcm1hdGlvbiBsaWtlIGJvb2ttYXJrcywgaGlzdG9yeSwgYW5kIG90aGVyIHNldHRpbmdzIHRvICQyLlNvbWVvbmUgcHJldmlvdXNseSBzaWduZWQgaW4gdG8gQ2hyb21pdW0gb24gdGhpcyBjb21wdXRlciBhcyAkMS4gUGxlYXNlIGNyZWF0ZSBhIG5ldyBDaHJvbWl1bSB1c2VyIHRvIGtlZXAgeW91ciBpbmZvcm1hdGlvbiBzZXBhcmF0ZS4kMSB3YXMgcHJldmlvdXNseSB1c2luZyBDaHJvbWl1bUNocm9taXVtIGNvdWxkIG5vdCBzeW5jIHlvdXIgZGF0YS4gUGxlYXNlIHVwZGF0ZSB5b3VyIFN5bmMgcGFzc3BocmFzZS5DaHJvbWl1bSBjb3VsZCBub3Qgc3luYyB5b3VyIGRhdGEgYmVjYXVzZSB5b3VyIGFjY291bnQgc2lnbi1pbiBkZXRhaWxzIGFyZSBvdXQgb2YgZGF0ZS5DaHJvbWl1bSBjb3VsZCBub3Qgc3luYyB5b3VyIGRhdGEgYmVjYXVzZSBTeW5jIGlzIG5vdCBhdmFpbGFibGUgZm9yIHlvdXIgZG9tYWluLkNocm9taXVtIGNvdWxkIG5vdCBzeW5jIHlvdXIgZGF0YSBkdWUgdG8gYW4gZXJyb3Igc2lnbmluZyBpbi5TYXZlIGRldGFpbHMgaW4gQ2hyb21pdW1DaHJvbWl1bSB3aWxsIHNlY3VyZWx5IHN0b3JlIHlvdXIgcGVyc29uYWwgZGV0YWlscyBzbyB5b3UgZG9uJ3QgbmVlZCB0byB0eXBlIHRoZW0gaW4gYWdhaW4uQ29waWVkIHRvIENocm9taXVtQ2hyb21pdW0gQXBwc0Nocm9taXVtIGlzIHVzaW5nIHlvdXIgY2FtZXJhIGFuZCBtaWNyb3Bob25lLkNocm9taXVtIGlzIHVzaW5nIHlvdXIgbWljcm9waG9uZS5DaHJvbWl1bSBpcyB1c2luZyB5b3VyIGNhbWVyYS5UaGUgcHJvZmlsZSBhcHBlYXJzIHRvIGJlIGluIHVzZSBieSBhbm90aGVyIENocm9taXVtIHByb2Nlc3MgKCQxKSBvbiBhbm90aGVyIGNvbXB1dGVyICgkMikuIENocm9taXVtIGhhcyBsb2NrZWQgdGhlIHByb2ZpbGUgc28gdGhhdCBpdCBkb2Vzbid0IGdldCBjb3JydXB0ZWQuIElmIHlvdSBhcmUgc3VyZSBubyBvdGhlciBwcm9jZXNzZXMgYXJlIHVzaW5nIHRoaXMgcHJvZmlsZSwgeW91IGNhbiB1bmxvY2sgdGhlIHByb2ZpbGUgYW5kIHJlbGF1bmNoIENocm9taXVtLlRvIHNldCB3aGljaCB3ZWJzaXRlcyAkMSBjYW4gdmlldywgeW91IGNhbiBjb25maWd1cmUgcmVzdHJpY3Rpb25zIGFuZCBzZXR0aW5ncyBieSB2aXNpdGluZyA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJDMiPiQ0PC9hPi4gSWYgeW91IGRvIG5vdCBjaGFuZ2UgdGhlIGRlZmF1bHQgc2V0dGluZ3MsICQxIGNhbiBicm93c2UgZXZlcnl0aGluZyBvbiB0aGUgd2ViLgoKVG8gcHJldmVudCAkMSBmcm9tIGFjY2Vzc2luZyB5b3VyIGFjY291bnQsIG1ha2Ugc3VyZSB5b3UgbG9jayB5b3VyIHByb2ZpbGUgd2hlbiB5b3UncmUgbm90IHVzaW5nIENocm9taXVtLiBUbyBkbyB0aGlzLCBjbGljayB5b3VyIHByb2ZpbGUgbmFtZSBpbiB0aGUgdXBwZXItcmlnaHQgY29ybmVyIG9mIHRoZSBicm93c2VyLCBhbmQgc2VsZWN0ICJFeGl0IGFuZCBjaGlsZGxvY2suIgo8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9zdXBwb3J0Lmdvb2dsZS5jb20vY2hyb21lLz9wPXVpX3N1cGVydmlzZWRfdXNlcnMmaGw9ZW4iPkxlYXJuIG1vcmU8L2E+CgpQbGVhc2UgY2hlY2sgeW91ciBlbWFpbCBhdCAkMiBmb3IgZnVydGhlciBpbnN0cnVjdGlvbnMuU3VwZXJ2aXNlZCB1c2VyIHByb2ZpbGVzIHdpbGwgbm8gbG9uZ2VyIGJlIGF2YWlsYWJsZSBzdGFydGluZyB3aXRoIENocm9taXVtIDcwLlRoaXMgcGVyc29uJ3MgYnJvd3NpbmcgZGF0YSB3aWxsIGJlIGRlbGV0ZWQgZnJvbSB0aGlzIGRldmljZS4gVG8gcmVjb3ZlciB0aGUgZGF0YSwgc2lnbiBpbiB0byBDaHJvbWUgYXMgJDIuQ2hyb21pdW0ganVzdCBnb3QgYmV0dGVyTm93IGl0J3MgZWFzaWVyIHRvIHVzZSBDaHJvbWl1bSB3aXRoIHlvdXIgR29vZ2xlIEFjY291bnQgYW5kIG9uIHNoYXJlZCBjb21wdXRlcnMuWW91ciB3ZWIsIGJvb2ttYXJrcywgYW5kIG90aGVyIENocm9taXVtIHN0dWZmIGxpdmUgaGVyZS5HdWVzdHMgY2FuIHVzZSBDaHJvbWl1bSB3aXRob3V0IGxlYXZpbmcgYW55dGhpbmcgYmVoaW5kLklmIHlvdSBzaGFyZSBhIGNvbXB1dGVyLCBmcmllbmRzIGFuZCBmYW1pbHkgY2FuIGJyb3dzZSBzZXBhcmF0ZWx5IGFuZCBzZXQgdXAgQ2hyb21pdW0ganVzdCB0aGUgd2F5IHRoZXkgd2FudC5DbGljayB5b3VyIG5hbWUgdG8gb3BlbiBDaHJvbWl1bSBhbmQgc3RhcnQgYnJvd3NpbmcuQWRkIHlvdXJzZWxmIHRvIENocm9taXVtVGhpcyBleHRlbnNpb24gaGFzIGNoYW5nZWQgd2hhdCBwYWdlIGlzIHNob3duIHdoZW4geW91IHN0YXJ0IENocm9taXVtLlRoZSBleHRlbnNpb24gIiQxIiBoYXMgY2hhbmdlZCB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3Ugc3RhcnQgQ2hyb21pdW0uIEl0IGFsc28gY29udHJvbHMgd2hhdCBwYWdlIGlzIHNob3duIHdoZW4geW91IHN0YXJ0IENocm9taXVtLiAgSXQgYWxzbyBjb250cm9scyB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3Ugc3RhcnQgQ2hyb21pdW0gb3IgY2xpY2sgdGhlIEhvbWUgYnV0dG9uLiAgSXQgYWxzbyBjb250cm9scyB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3Ugc3RhcnQgQ2hyb21pdW0gb3Igc2VhcmNoIGZyb20gdGhlIE9tbmlib3guIERpc2NvdmVyIGdyZWF0IGFwcHMsIGdhbWVzLCBleHRlbnNpb25zIGFuZCB0aGVtZXMgZm9yIENocm9taXVtLkNocm9taXVtIGNhbiBwcm92aWRlIHNtYXJ0ZXIgc3BlbGwtY2hlY2tpbmcgYnkgc2VuZGluZyB3aGF0IHlvdSB0eXBlIGluIHRoZSBicm93c2VyIHRvIEdvb2dsZSBzZXJ2ZXJzLCBhbGxvd2luZyB5b3UgdG8gdXNlIHRoZSBzYW1lIHNwZWxsLWNoZWNraW5nIHRlY2hub2xvZ3kgdXNlZCBieSBHb29nbGUgc2VhcmNoLk9wZW4gbGluayBpbiBuZXcgQ2hyb21pdW0gJnRhYk9wZW4gbGluayBpbiBDaHJvbWl1bSBpbmNvJmduaXRvIHdpbmRvd1JlbGF1bmNoIENocm9taXVtQSBuZXcgdXBkYXRlIGZvciBDaHJvbWl1bSBpcyBhdmFpbGFibGUgYW5kIHdpbGwgYmUgYXBwbGllZCBhcyBzb29uIGFzIHlvdSByZWxhdW5jaC5SZWxhdW5jaFJlaW5zdGFsbCBDaHJvbWl1bUNocm9taXVtIGlzIG91dCBvZiBkYXRlQ2FuJ3QgdXBkYXRlIENocm9taXVtQ2hyb21pdW0gY291bGRuJ3QgdXBkYXRlIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiwgc28geW91J3JlIG1pc3Npbmcgb3V0IG9uIG5ldyBmZWF0dXJlcyBhbmQgc2VjdXJpdHkgZml4ZXMuWW91ciBtYW5hZ2VyIG11c3QgcmVtb3ZlIGFuZCBhZGQgeW91IGJhY2sgdG8gQ2hyb21pdW0uVXBkYXRlIENocm9taXVtVXBkYXRlIENocm9taXVtIHRvIHN0YXJ0IHN5bmNJbXBvcnRhbnQgc2VjdXJpdHkgaW1wcm92ZW1lbnRzIGFuZCBuZXcgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgbGF0ZXN0IHZlcnNpb24ue1NFQ09ORFMsIHBsdXJhbCwKICAgICAgICAgPTEge0Nocm9taXVtIHdpbGwgcmVzdGFydCBpbiAxIHNlY29uZH0KICAgICAgICAgb3RoZXIge0Nocm9taXVtIHdpbGwgcmVzdGFydCBpbiAjIHNlY29uZHN9fVlvdSBzaG91bGQgcmVzdGFydCBDaHJvbWl1bSBub3cuQSBzcGVjaWFsIHNlY3VyaXR5IHVwZGF0ZSBmb3IgQ2hyb21pdW0gd2FzIGp1c3QgYXBwbGllZDsgeW91IHNob3VsZCByZXN0YXJ0IG5vdyBmb3IgaXQgdG8gdGFrZSBlZmZlY3QgKHdlJ2xsIHJlc3RvcmUgeW91ciB0YWJzKS5IZWxwIG1ha2UgQ2hyb21pdW0gYmV0dGVyWW91IGNhbiBoZWxwIG1ha2UgQ2hyb21pdW0gc2FmZXIgYW5kIGVhc2llciB0byB1c2UgYnkgYXV0b21hdGljYWxseSByZXBvcnRpbmcgZGV0YWlscyBvZiBwb3NzaWJsZSBzZWN1cml0eSBpbmNpZGVudHMgdG8gR29vZ2xlLkNocm9taXVtIFRhYlJlc3RhcnQgQ2hyb21pdW0gdG8gZW5hYmxlICQxSW5zdGFsbCBDaHJvbWl1bSBvbiB5b3VyIHBob25lLiBXZeKAmWxsIHNlbmQgYW4gU01TIHRvIHlvdXIgcGhvbmUuSW5zdGFsbCBDaHJvbWl1bSBvbiB5b3VyIHBob25lLiBXZeKAmWxsIHNlbmQgYW4gU01TIHRvIHlvdXIgcGhvbmU6ICQxSW5zdGFsbCBDaHJvbWl1bSBvbiB5b3VyIHBob25lLiBXZeKAmWxsIHNlbmQgYW4gU01TIHRvIHlvdXIgYWNjb3VudCByZWNvdmVyeSBwaG9uZSBudW1iZXIuSW5zdGFsbCBDaHJvbWl1bSBvbiB5b3VyIHBob25lLiBXZeKAmWxsIHNlbmQgYW4gU01TIHRvIHlvdXIgYWNjb3VudCByZWNvdmVyeSBwaG9uZSBudW1iZXI6ICQxZ2V0IENocm9taXVtIG9uIHlvdXIgaVBob25lV2VsY29tZSB0byBDaHJvbWl1bVRha2UgQ2hyb21pdW0gZXZlcnl3aGVyZVdlYiBicm93c2luZyB3aXRoIEdvb2dsZSBzbWFydHNOb3Qgbm93ezAsIHBsdXJhbCwKICAgICAgICAgICA9MCB7QSBDaHJvbWl1bSB1cGRhdGUgaXMgYXZhaWxhYmxlfQogICAgICAgICAgID0xIHtBIENocm9taXVtIHVwZGF0ZSBpcyBhdmFpbGFibGV9CiAgICAgICAgICAgb3RoZXIge0EgQ2hyb21pdW0gdXBkYXRlIGhhcyBiZWVuIGF2YWlsYWJsZSBmb3IgIyBkYXlzfX1Zb3VyIGFkbWluaXN0cmF0b3IgYXNrcyB0aGF0IHlvdSByZWxhdW5jaCBDaHJvbWl1bSB0byBhcHBseSB0aGlzIHVwZGF0ZXswLCBwbHVyYWwsCiAgICAgICAgICAgPTEge1JlbGF1bmNoIENocm9taXVtIHdpdGhpbiBhIGRheX0KICAgICAgICAgICBvdGhlciB7UmVsYXVuY2ggQ2hyb21pdW0gd2l0aGluICMgZGF5c319ezAsIHBsdXJhbCwKICAgICAgICAgICA9MSB7Q2hyb21pdW0gd2lsbCByZWxhdW5jaCBpbiBhbiBob3VyfQogICAgICAgICAgIG90aGVyIHtDaHJvbWl1bSB3aWxsIHJlbGF1bmNoIGluICMgaG91cnN9fXswLCBwbHVyYWwsCiAgICAgICAgICAgPTEge0Nocm9taXVtIHdpbGwgcmVsYXVuY2ggaW4gMSBtaW51dGV9CiAgICAgICAgICAgb3RoZXIge0Nocm9taXVtIHdpbGwgcmVsYXVuY2ggaW4gIyBtaW51dGVzfX17MCwgcGx1cmFsLAogICAgICAgICAgID0wIHtDaHJvbWl1bSB3aWxsIHJlbGF1bmNoIG5vd30KICAgICAgICAgICA9MSB7Q2hyb21pdW0gd2lsbCByZWxhdW5jaCBpbiAxIHNlY29uZH0KICAgICAgICAgICBvdGhlciB7Q2hyb21pdW0gd2lsbCByZWxhdW5jaCBpbiAjIHNlY29uZHN9fVlvdXIgYWRtaW5pc3RyYXRvciByZXF1aXJlcyB0aGF0IHlvdSByZWxhdW5jaCBDaHJvbWl1bSB0byBhcHBseSBhbiB1cGRhdGVMYXVuY2hpbmcgQ2hyb21pdW3igKZDb3VsZG4ndCBsYXVuY2ggQ2hyb21pdW0uIFRyeSBhZ2Fpbi5DbG9zZUZvciBxdWljayBhY2Nlc3MsIHBsYWNlIHlvdXIgYm9va21hcmtzIGhlcmUgb24gdGhlIGJvb2ttYXJrcyBiYXIuSW1wb3J0IGJvb2ttYXJrcyBub3figKZJbXBvcnRlZCBGcm9tIEZpcmVmb3hJbXBvcnRlZCBGcm9tIFNhZmFyaUltcG9ydGVkU2hvdyBhcHBzIHNob3J0Y3V0U2hvdyBtYW5hZ2VkIGJvb2ttYXJrc1Nob3cgJDFBcHBzU2hvdyBhcHBzJk9wZW4gYWxsIGJvb2ttYXJrc09wZW4gYWxsIGJvb2ttYXJrcyBpbiAmbmV3IHdpbmRvd09wZW4gYWxsIGJvb2ttYXJrcyBpbiAmaW5jb2duaXRvIHdpbmRvd3tDT1VOVCwgcGx1cmFsLAogICAgICAgICAgPTAgeyZPcGVuIGFsbH0KICAgICAgICAgID0xIHsmT3BlbiBib29rbWFya30KICAgICAgICAgIG90aGVyIHsmT3BlbiBhbGwgKCMpfX17Q09VTlQsIHBsdXJhbCwKICAgICAgICAgID0wIHtPcGVuIGFsbCBpbiAmbmV3IHdpbmRvd30KICAgICAgICAgID0xIHtPcGVuIGluICZuZXcgd2luZG93fQogICAgICAgICAgb3RoZXIge09wZW4gYWxsICgjKSBpbiAmbmV3IHdpbmRvd319e0NPVU5ULCBwbHVyYWwsCiAgICAgICAgICA9MCB7T3BlbiBhbGwgaW4gJmluY29nbml0byB3aW5kb3d9CiAgICAgICAgICA9MSB7T3BlbiBpbiAmaW5jb2duaXRvIHdpbmRvd30KICAgICAgICAgIG90aGVyIHtPcGVuIGFsbCAoIykgaW4gJmluY29nbml0byB3aW5kb3d9fSZPcGVuIGluIG5ldyB0YWJPcGVuIGluICZuZXcgd2luZG93T3BlbiBpbiAmaW5jb2duaXRvIHdpbmRvdyZFZGl04oCmJlJlbmFtZeKApiZEZWxldGVBZGQgcGEmZ2XigKZBZGQgJmZvbGRlcuKApiZTaG93IGJvb2ttYXJrcyBiYXJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3BlbiAkMSB0YWJzP0Jvb2ttYXJrIGFkZGVkRWRpdCBib29rbWFya05hbWVCb29rbWFyayBuYW1lRm9sZGVyQm9va21hcmsgZm9sZGVyTW9yZeKApkNob29zZSBhbm90aGVyIGZvbGRlcuKAplRvIGdldCB5b3VyIGJvb2ttYXJrcyBvbiBhbGwgeW91ciBkZXZpY2VzLCAkMS5UbyBnZXQgeW91ciBib29rbWFya3Mgb24gYWxsIHlvdXIgZGV2aWNlcywgc2lnbiBpbiBhbmQgdHVybiBvbiBzeW5jLlRvIGdldCB5b3VyIGJvb2ttYXJrcyBvbiBhbGwgeW91ciBkZXZpY2VzLCB0dXJuIG9uIHN5bmMuQm9va21hcmsgVVJMVVJMe05VTV9CT09LTUFSS1MsIHBsdXJhbCwKICAgICA9MSB7VGhpcyBmb2xkZXIgY29udGFpbnMgYSBib29rbWFyay4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBpdD99CiAgICAgb3RoZXIge1RoaXMgZm9sZGVyIGNvbnRhaW5zICMgYm9va21hcmtzLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGl0P319TmV3IGZvbGRlciZOZXcgZm9sZGVyRWRpdCBmb2xkZXIgbmFtZUJvb2ttYXJrIGFsbCB0YWJzQm9va21hcmsgTWFuYWdlclNlYXJjaCBib29rbWFya3MmQm9va21hcmsgbWFuYWdlckZvbGRlcnNPcmdhbml6ZVNob3cgaW4gZm9sZGVyUmVvcmRlciBieSB0aXRsZUltcG9ydCBib29rbWFya3MgZnJvbSBIVE1MIGZpbGXigKZFeHBvcnQgYm9va21hcmtzIHRvIEhUTUwgZmlsZeKApkludmFsaWQgVVJMUmVjZW50U2VhcmNoYm9va21hcmtzXyQxLmh0bWxBZGQgYm9va21hcmtBZGQgZm9sZGVyQ2xlYXIgc2VhcmNoVG8gYm9va21hcmsgcGFnZXMsIGNsaWNrIHRoZSBzdGFyIGluIHRoZSBhZGRyZXNzIGJhclRoaXMgZm9sZGVyIGlzIGVtcHR5UmVuYW1lIGZvbGRlcntDT1VOVCwgcGx1cmFsLAogICAgICA9MSB7MSBpdGVtIGluIGJvb2ttYXJrIGxpc3R9CiAgICAgIG90aGVyIHsjIGl0ZW1zIGluIGJvb2ttYXJrIGxpc3R9fUJvb2ttYXJrIGxpc3RBZGQgbmV3IGJvb2ttYXJrQWRkIG5ldyBmb2xkZXJDb3B5IFVSTEV4cG9ydCBib29rbWFya3NIZWxwIGNlbnRlckltcG9ydCBib29rbWFya3NPcGVuIGFsbCBib29rbWFya3NPcGVuIGFsbCBpbiBuZXcgd2luZG93T3BlbiBhbGwgaW4gaW5jb2duaXRvIHdpbmRvd09wZW4gaW4gbmV3IHRhYk9wZW4gaW4gbmV3IHdpbmRvd09wZW4gaW4gaW5jb2duaXRvIHdpbmRvd1JlbmFtZVNvcnQgYnkgbmFtZU1vcmUgYWN0aW9uc01vcmUgYWN0aW9ucyBmb3IgJDFPcGVuIHNlbGVjdGVkIGl0ZW1zT3BlbiQxIHNlbGVjdGVkQm9va21hcmsgZm9sZGVyIHRyZWVDb2xsYXBzZSAkMUV4cGFuZCAkMUJvb2ttYXJrc0ZvbGRlciBzb3J0ZWQnJDEnIGRlbGV0ZWR7Q09VTlQsIHBsdXJhbCwKICAgICAgPTEgezEgYm9va21hcmsgZGVsZXRlZH0KICAgICAgb3RoZXIgeyMgYm9va21hcmtzIGRlbGV0ZWR9fVVSTCBjb3BpZWQnJDEnIGNvcGllZHtDT1VOVCwgcGx1cmFsLAogICAgICA9MSB7MSBpdGVtIGNvcGllZH0KICAgICAgb3RoZXIgeyMgaXRlbXMgY29waWVkfX0mQm9va21hcmtzQm9va21hcmsgdGhpcyBwYWdl4oCmQm9va21hcmsgb3BlbiBwYWdlc+KApkVkaXQgYm9va21hcmsgZm9yIHRoaXMgcGFnZU1lZGlhIFJvdXRlckRpc3BsYXkgb24gYW5vdGhlciBzY3JlZW4mQ2FzdOKApkJhY2tWaWV3IGNhc3QgbW9kZSBsaXN0VmlldyBkZXZpY2UgbGlzdENhc3QgdG9DYXN0ICQxQ2FzdCBkZXNrdG9wQ2FzdCB0YWJDYXN0IGZpbGVTZWxlY3Qgc291cmNlU2hhcmUgeW91ciBzY3JlZW5TdHJlYW0gYSB2aWRlbyBvciBhdWRpbyBmaWxlU291cmNlc0Fib3V0RW5hYmxlIGNsb3VkIHNlcnZpY2VzSGVscEFsd2F5cyBzaG93IGljb25SZXBvcnQgYW4gaXNzdWVNYW5hZ2UgQ2FzdCBkZXZpY2VzQWRkZWQgYnkgeW91ciBhZG1pbmlzdHJhdG9yRW5hYmxlIGNhc3RpbmcgdG8gY2xvdWQtYmFzZWQgc2VydmljZXMgbGlrZSBHb29nbGUgSGFuZ291dHMuV2VsY29tZSB0byB0aGUgQ2FzdCBleHBlcmllbmNlIGluIENocm9taXVtIVlvdSBjYW4gdXNlIHRoaXMgZmVhdHVyZSB0byBkaXNwbGF5IGNvbnRlbnQgZnJvbSBDaHJvbWl1bSBvbiB5b3VyIFRWIG9yIG90aGVyIGRldmljZXMuT2ssIGdvdCBpdERpc21pc3NFcnJvclVuYWJsZSB0byBjYXN0ICQxLlVuYWJsZSB0byBjYXN0IGRlc2t0b3AuICBDaGVjayB0byBzZWUgaWYgeW91IGNvbmZpcm1lZCB0aGUgcHJvbXB0IHRvIHN0YXJ0IHNoYXJpbmcgeW91ciBzY3JlZW4uVW5hYmxlIHRvIGNhc3QgdGFiLk9ubHkgb25lIHNlc3Npb24gY2FuIGJlIGNyZWF0ZWQgYXQgYSB0aW1lLlVuYWJsZSB0byBjYXN0IGRlc2t0b3AuVW5hYmxlIHRvIGNhc3QgZmlsZS5DYXN0aW5nOiAkMUNhc3RTdG9wUGxheVBhdXNlTXV0ZVVubXV0ZVNlZWtWb2x1bWVDdXJyZW50IHRpbWVEdXJhdGlvblNtb290aCBNb3Rpb24gW2JldGFdVXNlIGhpZ2ggYmFuZHdpZHRoIGZvciBiZXN0IHZpZGVvIG9yIGFuaW1hdGlvbi4gT3RoZXIgcGVvcGxlIHdpdGggc2xvdyBjb25uZWN0aW9ucyBtYXkgbm90IHNlZSB5b3VyIGNvbnRlbnQuQWx3YXlzIHVzZSBtaXJyb3JpbmdTaG93IGZ1bGxzY3JlZW4gdmlkZW9zIG9uQm90aCBzY3JlZW5zUmVtb3RlIHNjcmVlbkxvb2tpbmcgZm9yIGRldmljZXNObyBkZXZpY2VzIGZvdW5kTm8gQ2FzdCBkZXN0aW5hdGlvbnMgZm91bmQuIE5lZWQgaGVscD9BdmFpbGFibGVDb25uZWN0aW5n4oCmTm8gbWF0Y2hlc0F1ZGlvL1ZpZGVvT3B0aW1pemUgZnVsbHNjcmVlbiBjYXN0aW5nP0dldCBiZXR0ZXIgcXVhbGl0eSB2aWRlbyBhbmQgc2F2ZSBiYXR0ZXJ5IGxpZmUuIFZpZGVvIHdpbGwgcGxheSBvbmx5IG9uIHlvdXIgQ2FzdC1lbmFibGVkIHNjcmVlbi5Eb24ndCBhc2sgYWdhaW5PcHRpbWl6ZU5vIHRoYW5rc05vIFRoYW5rc0VuYWJsZSBjbG91ZCBzZXJ2aWNlcyBmb3IgQ2FzdD9Vc2Ugb2YgSGFuZ291dHMgYW5kIENhc3QgZm9yIEVkdWNhdGlvbiBpcyBnb3Zlcm5lZCBieSB0aGUgR29vZ2xlIFByaXZhY3kgUG9saWN5LkVuYWJsZUNhbmNlbFByZXNlbnRpbmcgKCQxKURpc3BsYXkgJDFVc2FnZSBhbmQgaGlzdG9yeSBjYW4gYmUgcmV2aWV3ZWQgYnkgdGhlIG1hbmFnZXIgKCQxKSBvbiBjaHJvbWUuY29tLlRoaXMgaXMgYW4gYWNjb3VudCBmb3Iga2lkcyBtYW5hZ2VkIGJ5ICQxLlRoaXMgaXMgYW4gYWNjb3VudCBmb3Iga2lkcyBtYW5hZ2VkIGJ5ICQxIGFuZCAkMi5TdXBlcnZpc2VkIHVzZXJDdXJyZW50IHVzZXJZb3UncmUgaW5jb2duaXRvJDE6IFN5bmMgaXNuJ3Qgd29ya2luZ1BhdXNlZCQxOiBTeW5jIHBhdXNlZCQxIChTdXBlcnZpc2VkKSQxIChBY2NvdW50IGZvciBraWRzKSQxCiAgICBJIGRvbid0IHRoaW5rIHRoaXMgc2l0ZSBzaG91bGQgYmUgYmxvY2tlZCFQZW9wbGVFeGl0IGFuZCBjaGlsZGxvY2tFeGl0ICQxU2lnbiBpblJlbW92ZSBhY2NvdW50c2V0dGluZ3NTeW5jaW5nIHRvU3luYyBhcyAkMVN5bmMgdG8geW91ciBhY2NvdW50U3luYyBkaXNhYmxlZFN5bmMgaXMgcGF1c2VkRXhpdCBHdWVzdFNpZ24gaW4gdG8gZ2V0IHlvdXIgYm9va21hcmtzLCBoaXN0b3J5LCBwYXNzd29yZHMsIGFuZCBvdGhlciBzZXR0aW5ncyBvbiBhbGwgeW91ciBkZXZpY2VzLlBhc3N3b3Jkc1BheW1lbnQgbWV0aG9kc0FkZHJlc3Nlc1N5bmMgdG8gYW5vdGhlciBhY2NvdW50VXNlIGFub3RoZXIgYWNjb3VudEFkZCBhY2NvdW50IGZvciAkMVlvdXIgYWNjb3VudHNIaWRlIGFjY291bnRzTWFuYWdlIHBlb3BsZU9wZW4gR3Vlc3Qgd2luZG93Q2xvc2UgYWxsIHlvdXIgd2luZG93c0VkaXQgcGVyc29uLCAkMUVkaXQgcGVyc29uLCAkMSwgJDJHdWVzdEZpcnN0IHVzZXJEZWZhdWx0IFByb2ZpbGVVc2VyICQxUGVyc29uICQxWW91QWdlbnQgWFNwYW5kZXhNaWFCdXR0b25kb3duU25lYWt5TW9vbmJlYW1Bd2Vzb21lUGV0YWxzU2xpY2VGcml0elBpY2tsZXNGbHVmZnlTd2VldG5lc3NTcGFya3lTYXJhdG9nYUxlbW9uYWRlQmx1ZXN5U2hhZHlTaGFkb3dEZWZhdWx0IHdoaXRlIGF2YXRhckRlZmF1bHQgdGVhbCBhdmF0YXJEZWZhdWx0IGJsdWUgYXZhdGFyRGVmYXVsdCBncmVlbiBhdmF0YXJEZWZhdWx0IG9yYW5nZSBhdmF0YXJEZWZhdWx0IHB1cnBsZSBhdmF0YXJEZWZhdWx0IHJlZCBhdmF0YXJEZWZhdWx0IHllbGxvdyBhdmF0YXJTcHlIZXJvQXRobGV0ZUJ1c2luZXNzbWFuTmluamFBbGllbkF3ZXNvbWUgZmFjZVllbGxvdyBhbmQgd2hpdGUgZmxvd2VyUGl6emEgc2xpY2VTb2NjZXIgYmFsbEhhbWJ1cmdlckNhdEN1cGNha2VEb2dIb3JzZU1hcnRpbmkgZ2xhc3NNdXNpYyBub3RlU3VuIGFuZCBjbG91ZHNOb3Qgc2lnbmVkIGluQWRkIHBlcnNvbuKApkVkaXTigKZEZWZhdWx0U2lnbmluZyBpbiB3aXRoIHRoaXMgdXNlcm5hbWUgaGFzIGJlZW4gZGlzYWJsZWQgYnkgeW91ciBhZG1pbmlzdHJhdG9yLlN1cGVydmlzZWQgdXNlcnMgaGF2ZSBiZWVuIGRpc2FibGVkIGJ5IHlvdXIgYWRtaW5pc3RyYXRvci5DYW4ndCB1c2UgdGhpcyBwcm9maWxlWW91ciBhZG1pbmlzdHJhdG9yIGhhcyBtYWRlIGEgc3lzdGVtLXdpZGUgY2hhbmdlIHRoYXQgZGlzYWJsZXMgc29tZSBvbGQgcHJvZmlsZXMuVG8gY29udGludWUsIGNsaWNrIE9LLCB0aGVuIGNsaWNrIEFkZCBQZXJzb24gdG8gY3JlYXRlIGEgbmV3IHByb2ZpbGUgZm9yIHlvdXIgZW1haWwgYWRkcmVzcy5UbyBjb250aW51ZSwgY2xpY2sgT0ssIHRoZW4gY2xpY2sgQWRkIFBlcnNvbiB0byBjcmVhdGUgYSBuZXcgcHJvZmlsZSBmb3IgeW91ciAkMSBlbWFpbCBhZGRyZXNzLkFsdGhvdWdoIHlvdSBjYW4gbm8gbG9uZ2VyIGFjY2VzcyB5b3VyIG9sZCBwcm9maWxlLCB5b3UgY2FuIHN0aWxsIHJlbW92ZSBpdC5UaGlzIGFjY291bnQgaXMgYWxyZWFkeSBiZWluZyB1c2VkIG9uIHRoaXMgY29tcHV0ZXIuVGhpcyBhY2NvdW50IGlzIGFscmVhZHkgYmVpbmcgdXNlZCBvbiB0aGlzIGNvbXB1dGVyIGJ5ICQxLkFkZCBwZXJzb25UaGUgbmV3IHVzZXIgY291bGRuJ3QgYmUgY3JlYXRlZC4gUGxlYXNlIGNoZWNrIHlvdXIgaGFyZCBkcml2ZSBzcGFjZSBhbmQgcGVybWlzc2lvbnMgYW5kIHRyeSBhZ2Fpbi5DcmVhdGUgYSBkZXNrdG9wIHNob3J0Y3V0IGZvciB0aGlzIHVzZXJDcmVhdGluZyB5b3VyIHN1cGVydmlzZWQgdXNlci4gVGhpcyBtYXkgdGFrZSBhIGZldyBtb21lbnRzLkltcG9ydCBhbiBleGlzdGluZyBzdXBlcnZpc2VkIHVzZXJDaG9vc2UgYSBzdXBlcnZpc2VkIHVzZXIgdG8gYWRkIHRvIHRoaXMgZGV2aWNlLkNyZWF0ZSBhIG5ldyBzdXBlcnZpc2VkIHVzZXJJbXBvcnQgc3VwZXJ2aXNlZCB1c2VyUmVtb3ZlIHRoaXMgcGVyc29uQWRkIHN1cGVydmlzZWQgcGVyc29uU2lnbiBvdXRCcm93c2UgYXMgR3Vlc3RNb3JlIE9wdGlvbnNDdXJyZW50bHkgc2lnbmVkIGluU29ycnksIHlvdXIgcGFzc3dvcmQgY291bGQgbm90IGJlIHZlcmlmaWVkLiBQbGVhc2UgdHJ5IGFnYWluLlNvcnJ5LCB5b3VyIHBhc3N3b3JkIGNvdWxkIG5vdCBiZSB2ZXJpZmllZCBiZWNhdXNlIHlvdSBhcmUgb2ZmbGluZS5QYXNzd29yZFNpZ25pbmcgaW5QYXNzd29yZCBmb3IgJDFTdWJtaXRPcHRpb25zIG1lbnUgZm9yICQxUmVtb3ZlIHRoaXMgdXNlckFsbCBmaWxlcyBhbmQgbG9jYWwgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIHN1cGVydmlzZWQgdXNlciB3aWxsIGJlIHBlcm1hbmVudGx5IGRlbGV0ZWQgb25jZSB0aGlzIHN1cGVydmlzZWQgdXNlciBpcyByZW1vdmVkLiBWaXNpdGVkIHdlYnNpdGVzIGFuZCBzZXR0aW5ncyBmb3IgdGhpcyBzdXBlcnZpc2VkIHVzZXIgbWF5IHN0aWxsIGJlIHZpc2libGUgYnkgdGhlIG1hbmFnZXIgYXQgJDEuQWxsIGZpbGVzIGFuZCBsb2NhbCBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHVzZXIgd2lsbCBiZSBwZXJtYW5lbnRseSBkZWxldGVkIG9uY2UgdGhpcyB1c2VyIGlzIHJlbW92ZWQuICQxIGNhbiBzdGlsbCBzaWduIGluIGxhdGVyLlBsZWFzZSB1bmxvY2sgeW91ciBwcm9maWxlIGJlZm9yZSBicm93c2luZyBhcyBhIGd1ZXN0LlBsZWFzZSB1bmxvY2sgeW91ciBwcm9maWxlIGJlZm9yZSByZW1vdmluZyBhIHBlcnNvbi5QbGVhc2UgdW5sb2NrIHlvdXIgcHJvZmlsZSBiZWZvcmUgYWRkaW5nIGEgcGVyc29uLlRvIHVzZSBDaHJvbWUsIHBsZWFzZSBzaWduIGluVGhpcyB3aWxsIHBlcm1hbmVudGx5IGRlbGV0ZSB5b3VyIGJyb3dzaW5nIGRhdGEgZnJvbSB0aGlzIGRldmljZS5Ccm93c2luZyBoaXN0b3J5QXV0b2ZpbGwgZm9ybSBkYXRh4oCmTmV4dE9LLCBnb3QgaXRTaGFyZSB3aXRoIGd1ZXN0c0FkZCBmYW1pbHkgYW5kIGZyaWVuZHNZb3UncmUgYWxtb3N0IGRvbmUhRG9uJ3Qgc2VlIHlvdXIgbmFtZT9UdXJuIG9uVmVyc2lvbiAkMSAoJDIpICQzICQ0Q2hlY2tpbmcgZm9yIHVwZGF0ZXNBY2Nlc3NpYmlsaXR5T3BlbiBDaHJvbWUgV2ViIFN0b3JlQWRkIGFjY2Vzc2liaWxpdHkgZmVhdHVyZXNFbmFibGUgYWNjZXNzaWJpbGl0eSBmZWF0dXJlc0FwcGVhcmFuY2VDdXN0b21FbnRlciBjdXN0b20gd2ViIGFkZHJlc3NEaXNhYmxlZFdhbGxwYXBlclRoZW1lc0dUSytVc2UgR1RLK0NsYXNzaWNVc2UgQ2xhc3NpY1Nob3cgaG9tZSBidXR0b25TaG93IGJvb2ttYXJrcyBiYXJOZXcgVGFiIHBhZ2VDaGFuZ2VPcGVuIHRoZSB3YWxscGFwZXIgYXBwQWR2YW5jZWRCYXNpY01haW4gbWVudU9wZW5zIGluIGEgbmV3IHRhYlNlYXJjaCBzZXR0aW5nc0dvIHRvIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIkMSI+R29vZ2xlIENocm9tZSBoZWxwPC9hPiBpZiB5b3UgY2FuJ3QgZmluZCB3aGF0IHlvdSdyZSBsb29raW5nIGZvclNldHRpbmdzJDEgaXMgY29udHJvbGxpbmcgdGhpcyBzZXR0aW5nQ2xlYXJFZGl0T25PZmZOb3QgdmFsaWROb3QgYSB2YWxpZCB3ZWIgYWRkcmVzc1JldHJ5UGFzc3dvcmRzIGFuZCBmb3Jtc0F1dG9maWxsIHNldHRpbmdzQWRkcmVzc2VzICYgcGF5bWVudCBtZXRob2RzR29vZ2xlIFBheUF1dG9maWxsIGZvcm1zU2F2ZSBhbmQgZmlsbCBhZGRyZXNzZXNTYXZlIGFuZCBmaWxsIHBheW1lbnQgbWV0aG9kc0FkZCBhZGRyZXNzRWRpdCBhZGRyZXNzQ291bnRyeSAvIFJlZ2lvblBob25lRW1haWxDcmVkaXQgY2FyZHNUeXBlRW5hYmxlIEF1dG9maWxsIHRvIGZpbGwgb3V0IGZvcm1zIGluIGEgc2luZ2xlIGNsaWNrUmVtb3ZlQ2xlYXIgY29weUVkaXQgY2FyZEFkZCBjYXJkTmFtZSBvbiBjYXJkQ2FyZCBudW1iZXJFeHBpcmF0aW9uIGRhdGVFeHBpcmF0aW9uIG1vbnRoRXhwaXJhdGlvbiB5ZWFyWW91ciBjYXJkIGlzIGV4cGlyZWRNYW5hZ2UgcGFzc3dvcmRzT2ZmZXIgdG8gc2F2ZSBwYXNzd29yZHNBdXRvIFNpZ24taW5BdXRvbWF0aWNhbGx5IHNpZ24gaW4gdG8gd2Vic2l0ZXMgdXNpbmcgc3RvcmVkIGNyZWRlbnRpYWxzLiBJZiBkaXNhYmxlZCwgeW91IHdpbGwgYmUgYXNrZWQgZm9yIGNvbmZpcm1hdGlvbiBldmVyeSB0aW1lIGJlZm9yZSBzaWduaW5nIGluIHRvIGEgd2Vic2l0ZS5PZmZlciB0byBzYXZlIHlvdXIgd2ViIHBhc3N3b3Jkc1NhdmVkIFBhc3N3b3Jkc05ldmVyIFNhdmVkRGVsZXRlIHRoaXMgaXRlbVNlYXJjaCBwYXNzd29yZHNTaG93IHBhc3N3b3JkSGlkZSBwYXNzd29yZFNhdmVkIHBhc3N3b3JkIGRldGFpbHNEZXRhaWxzV2Vic2l0ZVVzZXJuYW1lU2F2ZWQgYWRkcmVzc2VzIHdpbGwgYXBwZWFyIGhlcmVTYXZlZCBjYXJkcyB3aWxsIGFwcGVhciBoZXJlU2F2ZWQgcGF5bWVudCBtZXRob2RzIHdpbGwgYXBwZWFyIGhlcmVTYXZlZCBwYXNzd29yZHMgd2lsbCBhcHBlYXIgaGVyZVNpdGVzIHdoaWNoIG5ldmVyIHNhdmUgcGFzc3dvcmRzIHdpbGwgYXBwZWFyIGhlcmVVbmRvUGFzc3dvcmQgZGVsZXRlZFZpZXcgYW5kIG1hbmFnZSBzYXZlZCBwYXNzd29yZHMgaW4geW91ciA8YSBpcz0iYWN0aW9uLWxpbmsiIGhyZWY9IiQxIiB0YXJnZXQ9Il9ibGFuayI+R29vZ2xlIEFjY291bnQ8L2E+RXhwb3J0IHBhc3N3b3Jkc+KApkV4cG9ydCBwYXNzd29yZHNZb3VyIHBhc3N3b3JkcyB3aWxsIGJlIHZpc2libGUgdG8gYW55b25lIHdobyBjYW4gc2VlIHRoZSBleHBvcnRlZCBmaWxlLlRyeSBhZ2FpbkV4cG9ydGluZyBwYXNzd29yZHPigKZDYW4ndCBleHBvcnQgcGFzc3dvcmRzIHRvICIkMSJUcnkgdGhlIGZvbGxvd2luZyB0aXBzOk1ha2Ugc3VyZSB0aGVyZSBpcyBlbm91Z2ggc3BhY2Ugb24geW91ciBkZXZpY2VFeHBvcnQgeW91ciBwYXNzd29yZHMgdG8gYW5vdGhlciBmb2xkZXJNb3JlIGFjdGlvbnMsIHBhc3N3b3JkIGZvciAkMSBvbiAkMk1vcmUgYWN0aW9ucywgc2F2ZWQgYWNjb3VudCBmb3IgJDEgb24gJDJEZWZhdWx0IGJyb3dzZXJNYWtlIGRlZmF1bHRZb3VyIGNlcnRpZmljYXRlc1Nob3cgY2VydGlmaWNhdGVzIGZvciBvcmdhbml6YXRpb25Zb3UgaGF2ZSBjZXJ0aWZpY2F0ZXMgZnJvbSB0aGVzZSBvcmdhbml6YXRpb25zIHRoYXQgaWRlbnRpZnkgeW91U2VydmVyc1lvdSBoYXZlIGNlcnRpZmljYXRlcyBvbiBmaWxlIHRoYXQgaWRlbnRpZnkgdGhlc2Ugc2VydmVyc1lvdSBoYXZlIG5vIGNlcnRpZmljYXRlcyBpbiB0aGlzIGNhdGVnb3J5QXV0aG9yaXRpZXNZb3UgaGF2ZSBjZXJ0aWZpY2F0ZXMgb24gZmlsZSB0aGF0IGlkZW50aWZ5IHRoZXNlIGNlcnRpZmljYXRlIGF1dGhvcml0aWVzVmlld0ltcG9ydEltcG9ydCBhbmQgQmluZEV4cG9ydERlbGV0ZU90aGVyc1lvdSBoYXZlIGNlcnRpZmljYXRlcyBvbiBmaWxlIHRoYXQgZG8gbm90IGZpdCBpbiBhbnkgb2YgdGhlIG90aGVyIGNhdGVnb3JpZXNTU0wgQ2xpZW50IENlcnRpZmljYXRlVW50cnVzdGVkQ2VydGlmaWNhdGUgYXV0aG9yaXR5VHJ1c3Qgc2V0dGluZ3NUaGUgY2VydGlmaWNhdGUgIiQxIiByZXByZXNlbnRzIGEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHlUcnVzdCB0aGlzIGNlcnRpZmljYXRlIGZvciBpZGVudGlmeWluZyB3ZWJzaXRlc1RydXN0IHRoaXMgY2VydGlmaWNhdGUgZm9yIGlkZW50aWZ5aW5nIGVtYWlsIHVzZXJzVHJ1c3QgdGhpcyBjZXJ0aWZpY2F0ZSBmb3IgaWRlbnRpZnlpbmcgc29mdHdhcmUgbWFrZXJzRGVsZXRlICIkMSI/SWYgeW91IGRlbGV0ZSBvbmUgb2YgeW91ciBvd24gY2VydGlmaWNhdGVzLCB5b3UgY2FuIG5vIGxvbmdlciB1c2UgaXQgdG8gaWRlbnRpZnkgeW91cnNlbGYuRGVsZXRlIHNlcnZlciBjZXJ0aWZpY2F0ZSAiJDEiP0lmIHlvdSBkZWxldGUgYSBzZXJ2ZXIgY2VydGlmaWNhdGUsIHlvdSByZXN0b3JlIHRoZSB1c3VhbCBzZWN1cml0eSBjaGVja3MgZm9yIHRoYXQgc2VydmVyIGFuZCByZXF1aXJlIGl0IHVzZXMgYSB2YWxpZCBjZXJ0aWZpY2F0ZS5EZWxldGUgQ0EgY2VydGlmaWNhdGUgIiQxIj9JZiB5b3UgZGVsZXRlIGEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKENBKSBjZXJ0aWZpY2F0ZSwgeW91ciBicm93c2VyIHdpbGwgbm8gbG9uZ2VyIHRydXN0IGFueSBjZXJ0aWZpY2F0ZXMgaXNzdWVkIGJ5IHRoYXQgQ0EuRGVsZXRlIGNlcnRpZmljYXRlICIkMSI/UGxlYXNlIGVudGVyIGEgcGFzc3dvcmQgdG8gZW5jcnlwdCB0aGlzIGNlcnRpZmljYXRlRW50ZXIgeW91ciBjZXJ0aWZpY2F0ZSBwYXNzd29yZFRoZSBwYXNzd29yZCB5b3UgY2hvb3NlIHdpbGwgYmUgcmVxdWlyZWQgdG8gcmVzdG9yZSB0aGlzIGNlcnRpZmljYXRlIGxhdGVyLiBQbGVhc2UgcmVjb3JkIGl0IGluIGEgc2FmZSBsb2NhdGlvbi5Db25maXJtIHBhc3N3b3JkSW5jb3JyZWN0IHBhc3N3b3JkQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgSW1wb3J0IEVycm9yVW5hYmxlIHRvIHBhcnNlIGZpbGVDZXJ0aWZpY2F0ZSBEZWxldGlvbiBFcnJvckNlcnRpZmljYXRlIGFscmVhZHkgZXhpc3RzTm90IGEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHlUaGUgZmlsZSBjb250YWluZWQgbXVsdGlwbGUgY2VydGlmaWNhdGVzLCBub25lIG9mIHdoaWNoIHdlcmUgaW1wb3J0ZWQ6Q2VydGlmaWNhdGUgSW1wb3J0IEVycm9ySW52YWxpZCBvciBjb3JydXB0IGZpbGVJbmNvcnJlY3QgcGFzc3dvcmQgb3IgY29ycnVwdCBmaWxlVGhlIFByaXZhdGUgS2V5IGZvciB0aGlzIENsaWVudCBDZXJ0aWZpY2F0ZSBpcyBtaXNzaW5nIG9yIGludmFsaWRUaGUgZmlsZSBjb250YWluZWQgb25lIGNlcnRpZmljYXRlLCB3aGljaCB3YXMgbm90IGltcG9ydGVkOlRoZSBmaWxlIGNvbnRhaW5lZCBtdWx0aXBsZSBjZXJ0aWZpY2F0ZXMsIHNvbWUgb2Ygd2hpY2ggd2VyZSBub3QgaW1wb3J0ZWQ6RmlsZSB1c2VzIHVuc3VwcG9ydGVkIGZlYXR1cmVzUEtDUyAjMTIgRXhwb3J0IEVycm9yUEtDUyAjMTIgRmlsZXNUaGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgdHJ5aW5nIHRvIHJlYWQgdGhlIGZpbGU6ICQxLiQxOiAkMlNlcnZlciBDZXJ0aWZpY2F0ZSBJbXBvcnQgRXJyb3JFcnJvciBTZXR0aW5nIENlcnRpZmljYXRlIFRydXN0VW5rbm93biBlcnJvclRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSB0cnlpbmcgdG8gd3JpdGUgdGhlIGZpbGU6ICQxLlRpbWUgcmFuZ2VTaWducyB5b3Ugb3V0IG9mIG1vc3Qgc2l0ZXMuU2lnbnMgeW91IG91dCBvZiBtb3N0IHNpdGVzLiBZb3Ugd29uJ3QgYmUgc2lnbmVkIG91dCBvZiB5b3VyIEdvb2dsZSBBY2NvdW50LkNsZWFycyBoaXN0b3J5IGFuZCBhdXRvY29tcGxldGlvbnMgaW4gdGhlIGFkZHJlc3MgYmFyLkNsZWFycyBoaXN0b3J5IGFuZCBhdXRvY29tcGxldGlvbnMgaW4gdGhlIGFkZHJlc3MgYmFyLiBZb3VyIEdvb2dsZSBBY2NvdW50IG1heSBoYXZlIG90aGVyIGZvcm1zIG9mIGJyb3dzaW5nIGhpc3RvcnkgYXQgPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9JyQxJz5teWFjdGl2aXR5Lmdvb2dsZS5jb208L2E+LkNsZWFycyBoaXN0b3J5IGZyb20gYWxsIHNpZ25lZC1pbiBkZXZpY2VzLiBZb3VyIEdvb2dsZSBBY2NvdW50IG1heSBoYXZlIG90aGVyIGZvcm1zIG9mIGJyb3dzaW5nIGhpc3RvcnkgYXQgPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9JyQxJz5teWFjdGl2aXR5Lmdvb2dsZS5jb208L2E+LkRvd25sb2FkIGhpc3RvcnlDYWNoZWQgaW1hZ2VzIGFuZCBmaWxlc0Nvb2tpZXMgYW5kIG90aGVyIHNpdGUgZGF0YUNvb2tpZXMgYW5kIG90aGVyIHNpdGUgYW5kIHBsdWdpbiBkYXRhSG9zdGVkIGFwcCBkYXRhTWVkaWEgbGljZW5zZXNMYXN0IGhvdXJMYXN0IDI0IGhvdXJzTGFzdCA3IGRheXNMYXN0IDQgd2Vla3NBbGwgdGltZU5vdGlmaWNhdGlvbnMgd2lsbCBiZSBkaXNhYmxlZFByaW50aW5nU2V0IHVwIG9yIG1hbmFnZSBwcmludGVycyBpbiBHb29nbGUgQ2xvdWQgUHJpbnQuU2hvdyBub3RpZmljYXRpb25zIHdoZW4gbmV3IHByaW50ZXJzIGFyZSBkZXRlY3RlZCBvbiB0aGUgbmV0d29ya01hbmFnZSBDbG91ZCBQcmludCBkZXZpY2VzUHJpbnRlcnNHb29nbGUgQ2xvdWQgUHJpbnREb3dubG9hZHNMb2NhdGlvbkFzayB3aGVyZSB0byBzYXZlIGVhY2ggZmlsZSBiZWZvcmUgZG93bmxvYWRpbmdEaXNjb25uZWN0IEdvb2dsZSBEcml2ZSBhY2NvdW50T3BlbiBjZXJ0YWluIGZpbGUgdHlwZXMgYXV0b21hdGljYWxseSBhZnRlciBkb3dubG9hZGluZ09uIHN0YXJ0dXBPcGVuIHRoZSBOZXcgVGFiIHBhZ2VDb250aW51ZSB3aGVyZSB5b3UgbGVmdCBvZmZPcGVuIGEgc3BlY2lmaWMgcGFnZSBvciBzZXQgb2YgcGFnZXNVc2UgY3VycmVudCBwYWdlc0FkZCBhIG5ldyBwYWdlRWRpdCBwYWdlU2l0ZSBVUkwkMSAtICQyUGxlYXNlIGVudGVyIGEgc2hvcnRlciBVUkxMYW5ndWFnZXNMYW5ndWFnZVNlYXJjaCBsYW5ndWFnZXNTaG93IGxhbmd1YWdlIG9wdGlvbnNPcmRlciBsYW5ndWFnZXMgYmFzZWQgb24geW91ciBwcmVmZXJlbmNlTW92ZSB0byB0aGUgdG9wTW92ZSB1cE1vdmUgZG93bkFkZCBsYW5ndWFnZXNPZmZlciB0byB0cmFuc2xhdGUgcGFnZXMgaW4gdGhpcyBsYW5ndWFnZU9mZmVyIHRvIHRyYW5zbGF0ZSBwYWdlcyB0aGF0IGFyZW4ndCBpbiBhIGxhbmd1YWdlIHlvdSByZWFkQWxsIGxhbmd1YWdlc0VuYWJsZWQgbGFuZ3VhZ2VzU3BlbGwgY2hlY2tTaG93IHNwZWxsIGNoZWNrIG9wdGlvbnMkMSwgJDIkMSwgJDIsIGFuZCAxIG90aGVyJDEsICQyLCBhbmQgJDMgb3RoZXJzQ3VzdG9tIHNwZWxsaW5nTWFuYWdlIHNwZWxsIGNoZWNrQWRkIGEgbmV3IHdvcmRBZGQgd29yZEFscmVhZHkgYWRkZWRDYW5ub3QgZXhjZWVkIDk5IGxldHRlcnNDdXN0b20gd29yZHNTYXZlZCBjdXN0b20gd29yZHMgd2lsbCBhcHBlYXIgaGVyZVNwZWxsIGNoZWNrIGRpY3Rpb25hcnkgZG93bmxvYWQgZmFpbGVkLlBsZWFzZSBjaGVjayB3aXRoIHlvdXIgbmV0d29yayBhZG1pbmlzdHJhdG9yIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBmaXJld2FsbCBpcyBub3QgYmxvY2tpbmcgZG93bmxvYWRzIGZyb20gR29vZ2xlIHNlcnZlcnMuUHJpdmFjeSBhbmQgc2VjdXJpdHlVc2UgYSB3ZWIgc2VydmljZSB0byBoZWxwIHJlc29sdmUgbmF2aWdhdGlvbiBlcnJvcnNTaG93IHN1Z2dlc3Rpb25zIGZvciBzaW1pbGFyIHBhZ2VzIHdoZW4gYSBwYWdlIGNhbid0IGJlIGZvdW5kU2VuZHMgdGhlIHdlYiBhZGRyZXNzIG9mIHRoZSBwYWdlIHlvdSdyZSB0cnlpbmcgdG8gcmVhY2ggdG8gR29vZ2xlVXNlIGEgcHJlZGljdGlvbiBzZXJ2aWNlIHRvIGhlbHAgY29tcGxldGUgc2VhcmNoZXMgYW5kIFVSTHMgdHlwZWQgaW4gdGhlIGFkZHJlc3MgYmFyQXV0b2NvbXBsZXRlIHNlYXJjaGVzIGFuZCBVUkxzU2VuZHMgc29tZSBjb29raWVzIGFuZCBzZWFyY2hlcyBmcm9tIHRoZSBhZGRyZXNzIGJhciBhbmQgc2VhcmNoIGJveCB0byB5b3VyIGRlZmF1bHQgc2VhcmNoIGVuZ2luZVVzZSBhIHByZWRpY3Rpb24gc2VydmljZSB0byBsb2FkIHBhZ2VzIG1vcmUgcXVpY2tseVByZWxvYWQgcGFnZXMgZm9yIGZhc3RlciBicm93c2luZyBhbmQgc2VhcmNoaW5nVXNlcyBjb29raWVzIHRvIHJlbWVtYmVyIHlvdXIgcHJlZmVyZW5jZXMsIGV2ZW4gaWYgeW91IGRvbuKAmXQgdmlzaXQgdGhvc2UgcGFnZXNTYWZlIEJyb3dzaW5nUHJvdGVjdHMgeW91IGFuZCB5b3VyIGRldmljZSBmcm9tIGRhbmdlcm91cyBzaXRlc0hlbHAgaW1wcm92ZSBTYWZlIEJyb3dzaW5nU2VuZHMgc29tZSBzeXN0ZW0gaW5mb3JtYXRpb24gYW5kIHBhZ2UgY29udGVudCB0byBHb29nbGVVc2UgYSB3ZWIgc2VydmljZSB0byBoZWxwIHJlc29sdmUgc3BlbGxpbmcgZXJyb3JzU21hcnRlciBzcGVsbC1jaGVja2luZyBieSBzZW5kaW5nIHdoYXQgeW91IHR5cGUgaW4gdGhlIGJyb3dzZXIgdG8gR29vZ2xlRW5oYW5jZWQgc3BlbGwgY2hlY2tUbyB0dXJuIHRoaXMgb24sIGZpcnN0IHR1cm4gb24gc3BlbGwgY2hlY2sgaW4gPGEgaHJlZj0iJDEiIHRhcmdldD0iX2JsYW5rIj5MYW5ndWFnZXMgYW5kIGlucHV0PC9hPlRvIHR1cm4gdGhpcyBvbiwgZmlyc3Qgc2VsZWN0IENoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZyBpbiB0aGUgRWRpdCBtZW51QXV0b21hdGljYWxseSBzZW5kIHVzYWdlIHN0YXRpc3RpY3MgYW5kIGNyYXNoIHJlcG9ydHMgdG8gR29vZ2xlQXV0b21hdGljYWxseSBzZW5kIGRpYWdub3N0aWMgYW5kIHVzYWdlIGRhdGEgdG8gR29vZ2xlSGVscCBpbXByb3ZlIENocm9tZSdzIGZlYXR1cmVzIGFuZCBwZXJmb3JtYW5jZU1ha2Ugc2VhcmNoZXMgYW5kIGJyb3dzaW5nIGJldHRlclNlbmRzIFVSTHMgb2YgcGFnZXMgeW91IHZpc2l0IHRvIEdvb2dsZVNlbmQgYSAiRG8gTm90IFRyYWNrIiByZXF1ZXN0IHdpdGggeW91ciBicm93c2luZyB0cmFmZmljRG8gTm90IFRyYWNrRW5hYmxpbmcgIkRvIE5vdCBUcmFjayIgbWVhbnMgdGhhdCBhIHJlcXVlc3Qgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHlvdXIgYnJvd3NpbmcgdHJhZmZpYy4gQW55IGVmZmVjdCBkZXBlbmRzIG9uIHdoZXRoZXIgYSB3ZWJzaXRlIHJlc3BvbmRzIHRvIHRoZSByZXF1ZXN0LCBhbmQgaG93IHRoZSByZXF1ZXN0IGlzIGludGVycHJldGVkLiBGb3IgZXhhbXBsZSwgc29tZSB3ZWJzaXRlcyBtYXkgcmVzcG9uZCB0byB0aGlzIHJlcXVlc3QgYnkgc2hvd2luZyB5b3UgYWRzIHRoYXQgYXJlbid0IGJhc2VkIG9uIG90aGVyIHdlYnNpdGVzIHlvdSd2ZSB2aXNpdGVkLiBNYW55IHdlYnNpdGVzIHdpbGwgc3RpbGwgY29sbGVjdCBhbmQgdXNlIHlvdXIgYnJvd3NpbmcgZGF0YSAtIGZvciBleGFtcGxlIHRvIGltcHJvdmUgc2VjdXJpdHksIHRvIHByb3ZpZGUgY29udGVudCwgc2VydmljZXMsIGFkcyBhbmQgcmVjb21tZW5kYXRpb25zIG9uIHRoZWlyIHdlYnNpdGVzLCBhbmQgdG8gZ2VuZXJhdGUgcmVwb3J0aW5nIHN0YXRpc3RpY3MuIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIkMSI+TGVhcm4gbW9yZTwvYT5FbmFibGUgVmVyaWZpZWQgQWNjZXNzS2VlcCBXaS1GaSBvbiBkdXJpbmcgc2xlZXBNYW5hZ2UgY2VydGlmaWNhdGVzTWFuYWdlIEhUVFBTL1NTTCBjZXJ0aWZpY2F0ZXMgYW5kIHNldHRpbmdzQ29udGVudCBzZXR0aW5nc1NpdGUgU2V0dGluZ3NDb250cm9sIHdoYXQgaW5mb3JtYXRpb24gd2Vic2l0ZXMgY2FuIHVzZSBhbmQgd2hhdCBjb250ZW50IHRoZXkgY2FuIHNob3cgeW91Q2xlYXIgZGF0YUNsZWFyIGJyb3dzaW5nIGRhdGFDbGVhciBoaXN0b3J5LCBjb29raWVzLCBjYWNoZSwgYW5kIG1vcmVGb3IgbW9yZSBzZXR0aW5ncyB0aGF0IHJlbGF0ZSB0byBwcml2YWN5LCBzZWN1cml0eSwgYW5kIGRhdGEgY29sbGVjdGlvbiwgc2VlIDxhIGhyZWY9ImNocm9tZTovL3NldHRpbmdzL3N5bmNTZXR1cCI+U3luYyBhbmQgcGVyc29uYWxpemF0aW9uPC9hPkZvciBtb3JlIHNldHRpbmdzIHRoYXQgcmVsYXRlIHRvIHByaXZhY3ksIHNlY3VyaXR5LCBhbmQgZGF0YSBjb2xsZWN0aW9uLCBzZWUgPGEgaHJlZj0iY2hyb21lOi8vc2V0dGluZ3Mvc3luY1NldHVwIj5TeW5jIGFuZCBHb29nbGUgc2VydmljZXM8L2E+UmVzZXQgc2V0dGluZ3NSZXN0b3JlIHNldHRpbmdzIHRvIHRoZWlyIG9yaWdpbmFsIGRlZmF1bHRzU29tZSBzZXR0aW5ncyB3ZXJlIHJlc2V0Q2hyb21lIGRldGVjdGVkIHRoYXQgc29tZSBvZiB5b3VyIHNldHRpbmdzIHdlcmUgY29ycnVwdGVkIGJ5IGFub3RoZXIgcHJvZ3JhbSBhbmQgcmVzZXQgdGhlbSB0byB0aGVpciBvcmlnaW5hbCBkZWZhdWx0cy5SZXNldCBhbGwgc2V0dGluZ3NTZWFyY2ggZW5naW5lU2VhcmNoIGVuZ2luZSB1c2VkIGluIHRoZSA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJDEiPmFkZHJlc3MgYmFyPC9hPk1hbmFnZSBzZWFyY2ggZW5naW5lc1NlYXJjaCBFbmdpbmVzQWRkIHNlYXJjaCBlbmdpbmVFZGl0IHNlYXJjaCBlbmdpbmVEZWZhdWx0IHNlYXJjaCBlbmdpbmVzT3RoZXIgc2VhcmNoIGVuZ2luZXNPdGhlciBzYXZlZCBzZWFyY2ggZW5naW5lcyB3aWxsIGFwcGVhciBoZXJlU2VhcmNoIGVuZ2luZXMgYWRkZWQgYnkgZXh0ZW5zaW9uc0tleXdvcmRRdWVyeSBVUkxVUkwgd2l0aCAlcyBpbiBwbGFjZSBvZiBxdWVyeVJlbW92ZSBmcm9tIGxpc3RNYW5hZ2VlbWJlZGRlZCBvbiAkMWVtYmVkZGVkIG9uIGFueSBob3N0UGVybWlzc2lvbiBDYXRlZ29yeUFsbCBzaXRlc1ZpZXcgcGVybWlzc2lvbnMgYW5kIGRhdGEgc3RvcmVkIGFjcm9zcyBzaXRlc1NvcnQgYnnigJRBZHNBdXRvbWF0aWMgZG93bmxvYWRzQmFja2dyb3VuZCBzeW5jQ2FtZXJhQ2xpcGJvYXJkQXNrIHdoZW4gYSBzaXRlIHdhbnRzIHRvIHNlZSB0ZXh0IGFuZCBpbWFnZXMgY29waWVkIHRvIHRoZSBjbGlwYm9hcmRBc2sgd2hlbiBhIHNpdGUgd2FudHMgdG8gc2VlIHRleHQgYW5kIGltYWdlcyBjb3BpZWQgdG8gdGhlIGNsaXBib2FyZCAocmVjb21tZW5kZWQpRG8gbm90IGFsbG93IHNpdGVzIHRvIHNlZSB0ZXh0IGFuZCBpbWFnZXMgY29waWVkIHRvIHRoZSBjbGlwYm9hcmRDb29raWVzSGFuZGxlcnNNaWNyb3Bob25lTm90aWZpY2F0aW9uc0ltYWdlc0phdmFTY3JpcHRGbGFzaFBheW1lbnQgSGFuZGxlcnNBbGxvdyBzaXRlcyB0byBpbnN0YWxsIHBheW1lbnQgaGFuZGxlcnNBbGxvdyBzaXRlcyB0byBpbnN0YWxsIHBheW1lbnQgaGFuZGxlcnMgKHJlY29tbWVuZGVkKURvIG5vdCBhbGxvdyBhbnkgc2l0ZSB0byBpbnN0YWxsIHBheW1lbnQgaGFuZGxlcnNQREYgZG9jdW1lbnRzRG93bmxvYWQgUERGIGZpbGVzIGluc3RlYWQgb2YgYXV0b21hdGljYWxseSBvcGVuaW5nIHRoZW0gaW4gQ2hyb21lUG9wLXVwcyBhbmQgcmVkaXJlY3RzUHJvdGVjdGVkIGNvbnRlbnRQcm90ZWN0ZWQgY29udGVudCBpZGVudGlmaWVyc0FsbG93IHNpdGVzIHRvIHBsYXkgcHJvdGVjdGVkIGNvbnRlbnQgKHJlY29tbWVuZGVkKVVuc2FuZGJveGVkIHBsdWdpbiBhY2Nlc3NNSURJIGRldmljZXNBc2sgd2hlbiBhIHNpdGUgd2FudHMgdG8gdXNlIHN5c3RlbSBleGNsdXNpdmUgbWVzc2FnZXMgdG8gYWNjZXNzIE1JREkgZGV2aWNlc0FzayB3aGVuIGEgc2l0ZSB3YW50cyB0byB1c2Ugc3lzdGVtIGV4Y2x1c2l2ZSBtZXNzYWdlcyB0byBhY2Nlc3MgTUlESSBkZXZpY2VzIChyZWNvbW1lbmRlZClEbyBub3QgYWxsb3cgYW55IHNpdGVzIHRvIHVzZSBzeXN0ZW0gZXhjbHVzaXZlIG1lc3NhZ2VzIHRvIGFjY2VzcyBNSURJIGRldmljZXNTb3VuZE1vdGlvbiBvciBsaWdodCBzZW5zb3JzVVNCIGRldmljZXNBc2sgd2hlbiBhIHNpdGUgd2FudHMgdG8gYWNjZXNzIFVTQiBkZXZpY2VzQXNrIHdoZW4gYSBzaXRlIHdhbnRzIHRvIGFjY2VzcyBVU0IgZGV2aWNlcyAocmVjb21tZW5kZWQpRG8gbm90IGFsbG93IGFueSBzaXRlcyB0byBhY2Nlc3MgVVNCIGRldmljZXNSZW1vdmUgem9vbSBsZXZlbFpvb20gbGV2ZWxzU2l0ZXMgY2FuIHNhdmUgYW5kIHJlYWQgY29va2llIGRhdGFBc2sgZmlyc3RBc2sgZmlyc3QgKHJlY29tbWVuZGVkKUFzayBiZWZvcmUgYWNjZXNzaW5nQXNrIGJlZm9yZSBhY2Nlc3NpbmcgKHJlY29tbWVuZGVkKUFzayBiZWZvcmUgc2VuZGluZ0FzayBiZWZvcmUgc2VuZGluZyAocmVjb21tZW5kZWQpRG8gbm90IHNob3cgYW55IGltYWdlc1Nob3cgYWxsU2hvdyBhbGwgKHJlY29tbWVuZGVkKUFsbG93IHNpdGVzIHRvIHNhdmUgYW5kIHJlYWQgY29va2llIGRhdGFBbGxvdyBzaXRlcyB0byBzYXZlIGFuZCByZWFkIGNvb2tpZSBkYXRhIChyZWNvbW1lbmRlZClCbG9jayBzaXRlcyBmcm9tIHJ1bm5pbmcgRmxhc2hZb3VyIEZsYXNoIHNldHRpbmdzIHdpbGwgYmUga2VwdCB1bnRpbCB5b3UgcXVpdCBDaHJvbWUuUnVuIG9ubHkgaW1wb3J0YW50IGNvbnRlbnQgKHJlY29tbWVuZGVkKVJ1biBvbmx5IGltcG9ydGFudCBjb250ZW50QWxsb3cgcmVjZW50bHkgY2xvc2VkIHNpdGVzIHRvIGZpbmlzaCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgZGF0YUFsbG93IHJlY2VudGx5IGNsb3NlZCBzaXRlcyB0byBmaW5pc2ggc2VuZGluZyBhbmQgcmVjZWl2aW5nIGRhdGEgKHJlY29tbWVuZGVkKURvIG5vdCBhbGxvdyByZWNlbnRseSBjbG9zZWQgc2l0ZXMgdG8gZmluaXNoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBkYXRhQWxsb3cgc2l0ZXMgdG8gYXNrIHRvIGJlY29tZSBkZWZhdWx0IGhhbmRsZXJzIGZvciBwcm90b2NvbHNBbGxvdyBzaXRlcyB0byBhc2sgdG8gYmVjb21lIGRlZmF1bHQgaGFuZGxlcnMgZm9yIHByb3RvY29scyAocmVjb21tZW5kZWQpRG8gbm90IGFsbG93IGFueSBzaXRlIHRvIGhhbmRsZSBwcm90b2NvbHNCbG9ja2VkIG9uIHNpdGVzIHRoYXQgdGVuZCB0byBzaG93IGludHJ1c2l2ZSBhZHNCbG9ja2VkIG9uIHNpdGVzIHRoYXQgdGVuZCB0byBzaG93IGludHJ1c2l2ZSBhZHMgKHJlY29tbWVuZGVkKUFsbG93IHNpdGVzIHRvIHBsYXkgc291bmRBbGxvdyBzaXRlcyB0byBwbGF5IHNvdW5kIChyZWNvbW1lbmRlZClNdXRlIHNpdGVzIHRoYXQgcGxheSBzb3VuZEFsbG93IHNpdGVzIHRvIHVzZSBtb3Rpb24gYW5kIGxpZ2h0IHNlbnNvcnNCbG9jayBzaXRlcyBmcm9tIHVzaW5nIG1vdGlvbiBhbmQgbGlnaHQgc2Vuc29yc0FzayB3aGVuIGEgc2l0ZSB0cmllcyB0byBkb3dubG9hZCBmaWxlcyBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSBmaXJzdCBmaWxlQXNrIHdoZW4gYSBzaXRlIHRyaWVzIHRvIGRvd25sb2FkIGZpbGVzIGF1dG9tYXRpY2FsbHkgYWZ0ZXIgdGhlIGZpcnN0IGZpbGUgKHJlY29tbWVuZGVkKURvIG5vdCBhbGxvdyBhbnkgc2l0ZSB0byBkb3dubG9hZCBtdWx0aXBsZSBmaWxlcyBhdXRvbWF0aWNhbGx5QXNrIHdoZW4gYSBzaXRlIHdhbnRzIHRvIHVzZSBhIHBsdWdpbiB0byBhY2Nlc3MgeW91ciBjb21wdXRlckFzayB3aGVuIGEgc2l0ZSB3YW50cyB0byB1c2UgYSBwbHVnaW4gdG8gYWNjZXNzIHlvdXIgY29tcHV0ZXIgKHJlY29tbWVuZGVkKURvIG5vdCBhbGxvdyBhbnkgc2l0ZSB0byB1c2UgYSBwbHVnaW4gdG8gYWNjZXNzIHlvdXIgY29tcHV0ZXJBbGxvd2VkQWxsb3dlZCAocmVjb21tZW5kZWQpQmxvY2tlZEJsb2NrZWQgKHJlY29tbWVuZGVkKUFsbG93QmxvY2tNdXRlZENsZWFyIG9uIGV4aXRBc2sgKGRlZmF1bHQpQWxsb3cgKGRlZmF1bHQpQmxvY2sgKGRlZmF1bHQpQXNrVXNhZ2VObyB1c2FnZSBkYXRhUGVybWlzc2lvbnNUbyBjaGFuZ2UgdGhpcyBzZXR0aW5nLCBmaXJzdCA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJDEiPnR1cm4gb24gaWRlbnRpZmllcnM8L2E+QmxvY2sgaWYgc2l0ZSB0ZW5kcyB0byBzaG93IGludHJ1c2l2ZSBhZHNUZW1wb3JhcmlseSBibG9ja2VkIHRvIHByb3RlY3QgeW91ciBzZWN1cml0eUJsb2NrZWQgdG8gcHJvdGVjdCB5b3VyIHByaXZhY3lSZXNldCBwZXJtaXNzaW9uc0FsbCBjb29raWVzIGFuZCBzaXRlIGRhdGFTZWUgYWxsIGNvb2tpZXMgYW5kIHNpdGUgZGF0YVJlbW92ZSBBbGxSZW1vdmUgQWxsIFNob3duQ2xlYXIgc2l0ZSBkYXRhJDEgbG9jYWxseSBzdG9yZWQgZGF0YVJlc2V0IHNpdGUgcGVybWlzc2lvbnMgZm9yICQxP0NsZWFyIHNpdGUgZGF0YT9BbGwgZGF0YSBzdG9yZWQgYnkgJDEgd2lsbCBiZSBkZWxldGVkLCBleGNlcHQgZm9yIGNvb2tpZXMuUmVzZXQgc2l0ZSBwZXJtaXNzaW9ucz9TaXRlcyB1bmRlciAkMSB3aWxsIGFsc28gYmUgcmVzZXQuVGhpcyB3aWxsIGRlbGV0ZSBhbnkgZGF0YSBzdG9yZWQgb24geW91ciBkZXZpY2UgZm9yIGFsbCB0aGUgc2l0ZXMgc2hvd24uIERvIHlvdSB3YW50IHRvIGNvbnRpbnVlP1JlbW92ZSAkMUNsZWFyIGFsbFJlc2V0U2VhcmNoIGNvb2tpZXNCbG9jayB0aGlyZC1wYXJ0eSBjb29raWVzUHJldmVudCB0aGlyZC1wYXJ0eSB3ZWJzaXRlcyBmcm9tIHNhdmluZyBhbmQgcmVhZGluZyBjb29raWUgZGF0YUtlZXAgbG9jYWwgZGF0YSBvbmx5IHVudGlsIHlvdSBxdWl0IHlvdXIgYnJvd3NlckFkb2JlIEZsYXNoIFBsYXllciBTdG9yYWdlIHNldHRpbmdzU2V0IGFzIGRlZmF1bHRDdXJyZW50IGluY29nbml0byBzZXNzaW9uIG9ubHlDdXJyZW50IGluY29nbml0byBzZXNzaW9uQ3VycmVudCBpbmNvZ25pdG8gc2Vzc2lvbiAoJDEpTm8gc2l0ZXMgaGF2ZSBiZWVuIHpvb21lZCBpbiBvciBvdXRObyBzaXRlcyBhZGRlZE5vIFVTQiBkZXZpY2VzIGZvdW5kWyouXWV4YW1wbGUuY29tQWRkIGEgc2l0ZUVkaXQgc2l0ZVNpdGVDb250ZW50RG9tYWluUGF0aFNlbmQgZm9yQWNjZXNzaWJsZSB0byBzY3JpcHRDcmVhdGVkRXhwaXJlc0FwcGxpY2F0aW9uIGNhY2hlRmxhc2ggZGF0YU1hbmlmZXN0e05VTV9DT09LSUVTLCBwbHVyYWwsCiAgICAgICAgPTEgezEgY29va2llfQogICAgICAgIG90aGVyIHsjIGNvb2tpZXN9fURlc2NyaXB0aW9uT3JpZ2luU2l6ZSBvbiBkaXNrTGFzdCBtb2RpZmllZERhdGFiYXNlIHN0b3JhZ2VMb2NhbCBzdG9yYWdlTWVkaWEgbGljZW5zZUZpbGUgc3lzdGVtVGVtcG9yYXJ5IHN0b3JhZ2VQZXJzaXN0ZW50IHN0b3JhZ2VMYXN0IGFjY2Vzc2VkQ2hhbm5lbCBJRENlcnRpZmljYXRlIFR5cGVTZXJ2aWNlIFdvcmtlcnNTY29wZXNTaGFyZWQgV29ya2Vyc0NhY2hlIFN0b3JhZ2VNYW5hZ2Ugb3RoZXIgcGVvcGxlR29vZ2xlIFByb2ZpbGUgcGhvdG9Vc2Ugc3luYyBhbmQgYWxsIHNlcnZpY2VzTWFuYWdlZCBieSAkMUdldCBHb29nbGUgc21hcnRzIGluIENocm9tZVN5bmNpbmcgdG8gJDFUdXJuIG9mZlN5bmMgaXNuJ3Qgd29ya2luZ0JlY2F1c2UgdGhpcyBhY2NvdW50IGlzIG1hbmFnZWQgYnkgJDEsIHlvdXIgYm9va21hcmtzLCBoaXN0b3J5LCBwYXNzd29yZHMsIGFuZCBvdGhlciBzZXR0aW5ncyB3aWxsIGJlIGNsZWFyZWQgZnJvbSB0aGlzIGRldmljZS4gSG93ZXZlciwgeW91ciBkYXRhIHdpbGwgcmVtYWluIHN0b3JlZCBpbiB5b3VyIEdvb2dsZSBBY2NvdW50IGFuZCBjYW4gYmUgbWFuYWdlZCBvbiA8YSBocmVmPSIkMiIgdGFyZ2V0PSJfYmxhbmsiPkdvb2dsZSBEYXNoYm9hcmQ8L2E+LkVkaXQgcGVyc29uU2hvdyBkZXNrdG9wIHNob3J0Y3V0VHVybiBvZmYgc3luYyBhbmQgc2lnbiBvdXQ/VHVybiBvZmYgc3luYyBhbmQgcGVyc29uYWxpemF0aW9uP0NsZWFyIGFuZCBjb250aW51ZUNsZWFyIGJvb2ttYXJrcywgaGlzdG9yeSwgcGFzc3dvcmRzLCBhbmQgbW9yZSBmcm9tIHRoaXMgZGV2aWNlU2V0dGluZ3Mgc2F2ZWQuIFN5bmMgc3RhcnRlZC5TaWduIGluIHRvIGdldCB5b3VyIGJvb2ttYXJrcywgaGlzdG9yeSwgcGFzc3dvcmRzLCBhbmQgb3RoZXIgc2V0dGluZ3Mgb24gYWxsIHlvdXIgZGV2aWNlcy4gWW91J2xsIGFsc28gYXV0b21hdGljYWxseSBiZSBzaWduZWQgaW4gdG8geW91ciBHb29nbGUgc2VydmljZXMuQ2hhbmdlcyB0byB5b3VyIGJvb2ttYXJrcywgaGlzdG9yeSwgcGFzc3dvcmRzLCBhbmQgb3RoZXIgc2V0dGluZ3Mgd2lsbCBubyBsb25nZXIgYmUgc3luY2VkIHRvIHlvdXIgR29vZ2xlIEFjY291bnQuIEhvd2V2ZXIsIHlvdXIgZXhpc3RpbmcgZGF0YSB3aWxsIHJlbWFpbiBzdG9yZWQgaW4geW91ciBHb29nbGUgQWNjb3VudCBhbmQgY2FuIGJlIG1hbmFnZWQgb24gPGEgaHJlZj0iJDEiIHRhcmdldD0iX2JsYW5rIj5Hb29nbGUgRGFzaGJvYXJkPC9hPi5UaGlzIHdpbGwgc2lnbiB5b3Ugb3V0IG9mIHlvdXIgR29vZ2xlIGFjY291bnRzLiBDaGFuZ2VzIHRvIHlvdXIgYm9va21hcmtzLCBoaXN0b3J5LCBwYXNzd29yZHMsIGFuZCBvdGhlciBzZXR0aW5ncyB3aWxsIG5vIGxvbmdlciBiZSBzeW5jZWQgdG8geW91ciBHb29nbGUgQWNjb3VudC4gSG93ZXZlciwgeW91ciBleGlzdGluZyBkYXRhIHdpbGwgcmVtYWluIHN0b3JlZCBpbiB5b3VyIEdvb2dsZSBBY2NvdW50IGFuZCBjYW4gYmUgbWFuYWdlZCBvbiA8YSBocmVmPSIkMSIgdGFyZ2V0PSJfYmxhbmsiPkdvb2dsZSBEYXNoYm9hcmQ8L2E+LlRoaXMgd2lsbCBzaWduIHlvdSBvdXQgb2YgeW91ciBHb29nbGUgQWNjb3VudHMuIFlvdXIgYm9va21hcmtzLCBoaXN0b3J5LCBwYXNzd29yZHMsIGFuZCBtb3JlIHdpbGwgbm8gbG9uZ2VyIGJlIHN5bmNlZC5TaG93IHByb2ZpbGUgc3RhdHNBbHNvIHJlbW92ZSB5b3VyIGV4aXN0aW5nIGRhdGEgZnJvbSB0aGlzIGRldmljZUNsZWFyIGFuZCBTaWduIE91dFN5bmNTeW5jIGFuZCBwZXJzb25hbGl6YXRpb25QYXNzd29yZHMsIGJvb2ttYXJrcywgaGlzdG9yeSwgYW5kIG1vcmUgYXJlIHN5bmNlZCB0byB5b3VyIGFjY291bnRZb3VyIGJyb3dzaW5nIGRhdGEgYW5kIGFjdGl2aXR5LCBzeW5jZWQgdG8geW91ciBHb29nbGUgQWNjb3VudFNob3cgc3luYyBzZXR0aW5nc05vbi1wZXJzb25hbGl6ZWQgc2VydmljZXNTaG93IEdvb2dsZSBzZXJ2aWNlcyBzZXR0aW5nc1N5bmMgYW5kIEdvb2dsZSBzZXJ2aWNlc0FkdmFuY2VkIHN5bmMgc2V0dGluZ3NQbGVhc2Ugd2FpdOKAplN5bmMgd2lsbCBzdGFydCBvbmNlIHlvdSBsZWF2ZSB0aGlzIHBhZ2VDYW5jZWwgc3luY0NoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbi4gSWYgdGhlIHByb2JsZW0gY29udGludWVzLCB0cnkgc2lnbmluZyBvdXQgYW5kIHNpZ25pbmcgaW4gYWdhaW4uU3luYyBldmVyeXRoaW5nRXh0ZW5zaW9uc0F1dG9maWxsSGlzdG9yeVRoZW1lcyAmIFdhbGxwYXBlcnNDcmVkaXQgY2FyZHMgYW5kIGFkZHJlc3NlcyB1c2luZyBHb29nbGUgUGF5LlBheW1lbnQgbWV0aG9kcyBhbmQgYWRkcmVzc2VzIHVzaW5nIEdvb2dsZSBQYXkuT3BlbiBUYWJzR29vZ2xlIERyaXZlIHNlYXJjaCBzdWdnZXN0aW9uc0FjdGl2aXR5IGFuZCBpbnRlcmFjdGlvbnNVc2VzIGNvbnRlbnQgb24gc2l0ZXMgeW91IHZpc2l0LCBwbHVzIGJyb3dzZXIgYWN0aXZpdHkgYW5kIGludGVyYWN0aW9ucywgZm9yIHBlcnNvbmFsaXphdGlvbk1hbmFnZSBzeW5jZWQgZGF0YSBvbiBHb29nbGUgRGFzaGJvYXJkRW5jcnlwdGlvbiBvcHRpb25zRW5jcnlwdCBzeW5jZWQgcGFzc3dvcmRzIHdpdGggeW91ciBHb29nbGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkRW5jcnlwdCBzeW5jZWQgZGF0YSB3aXRoIHlvdXIgb3duIDxhIGhyZWY9IiQxIiB0YXJnZXQ9Il9ibGFuayI+c3luYyBwYXNzcGhyYXNlPC9hPk9ubHkgc29tZW9uZSB3aXRoIHlvdXIgcGFzc3BocmFzZSBjYW4gcmVhZCB5b3VyIGVuY3J5cHRlZCBkYXRhLiBUaGUgcGFzc3BocmFzZSBpcyBub3Qgc2VudCB0byBvciBzdG9yZWQgYnkgR29vZ2xlLiBJZiB5b3UgZm9yZ2V0IHlvdXIgcGFzc3BocmFzZSBvciB3YW50IHRvIGNoYW5nZSB0aGlzIHNldHRpbmcsIHlvdSdsbCBuZWVkIHRvIDxhIGhyZWY9IiQxIiB0YXJnZXQ9Il9ibGFuayI+cmVzZXQgc3luYzwvYT4uVG8gY2hhbmdlIHRoaXMgc2V0dGluZywgPGEgaHJlZj0iJDEiIHRhcmdldD0iX2JsYW5rIj5yZXNldCBzeW5jPC9hPi5UbyB0dXJuIHRoaXMgb24sIDxhIGhyZWY9IiQxIiB0YXJnZXQ9Il9ibGFuayI+cmVzZXQgc3luYzwvYT4gdG8gcmVtb3ZlIHlvdXIgc3luYyBwYXNzcGhyYXNlRW1wdHkgcGFzc3BocmFzZSBpcyBub3QgYWxsb3dlZFlvdSBtdXN0IGVudGVyIHRoZSBzYW1lIHBhc3NwaHJhc2UgdHdpY2VUaGUgcGFzc3BocmFzZSB5b3UgZW50ZXJlZCBpcyBpbmNvcnJlY3RJZiB5b3UgZm9yZ290IHlvdXIgcGFzc3BocmFzZSBvciB3YW50IHRvIGNoYW5nZSB0aGlzIHNldHRpbmcsIDxhIGhyZWY9IiQxIiB0YXJnZXQ9Il9ibGFuayI+cmVzZXQgc3luYzwvYT4uUGFzc3BocmFzZUNvbmZpcm0gcGFzc3BocmFzZVVzZSBkZWZhdWx0IHNldHRpbmdzQ29udHJvbCBob3cgeW91ciBicm93c2luZyBoaXN0b3J5IGlzIHVzZWQgdG8gcGVyc29uYWxpemUgU2VhcmNoLCBhZHMsIGFuZCBtb3JlSW1wb3J0IGJvb2ttYXJrcyBhbmQgc2V0dGluZ3NGcm9tOlNlbGVjdCBpdGVtcyB0byBpbXBvcnQ6TG9hZGluZ+KApkZhdm9yaXRlcy9Cb29rbWFya3NTYXZlZCBwYXNzd29yZHNTZWFyY2ggZW5naW5lc0Nob29zZSBGaWxlWW91ciBib29rbWFya3MgYW5kIHNldHRpbmdzIGFyZSByZWFkeU5vIHN1cHBvcnRlZCBicm93c2VyIGZvdW5kV2ViIGNvbnRlbnRQYWdlIHpvb21Gb250IHNpemVWZXJ5IHNtYWxsU21hbGxNZWRpdW0gKFJlY29tbWVuZGVkKUxhcmdlVmVyeSBsYXJnZUN1c3RvbWl6ZSBmb250c0ZvbnRzU3RhbmRhcmQgZm9udFNlcmlmIGZvbnRTYW5zLXNlcmlmIGZvbnRGaXhlZC13aWR0aCBmb250TWluaW11bSBmb250IHNpemVUaW55SHVnZUxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuQWR2YW5jZWQgZm9udCBzZXR0aW5nc09wZW4gZXh0ZW5zaW9uIG9wdGlvbnNUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBzIG92ZXIgdGhlIGxhenkgZG9nUmVxdWlyZXMgZXh0ZW5zaW9uIGZyb20gdGhlIENocm9tZSBXZWIgU3RvcmVTeXN0ZW1Vc2UgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIHdoZW4gYXZhaWxhYmxlT3BlbiBwcm94eSBzZXR0aW5nc1lvdXIgcGFzc3dvcmQgbWF5IGJlIGNvbXByb21pc2VkVG8gcHJvdGVjdCB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uLCBjaGFuZ2UgeW91ciBwYXNzd29yZCBub3cuIEJlZm9yZSB5b3UgY2FuIGNoYW5nZSB5b3VyIHBhc3N3b3JkLCB5b3XigJlsbCBiZSBhc2tlZCB0byBzaWduIGluLkNoYW5nZSBQYXNzd29yZCQxIGlzIG5vdCBhdmFpbGFibGUgdG8gR3Vlc3QgdXNlcnMuQWxsb3cgYWNjZXNzIHRvIGZpbGUgVVJMc0FsbG93IG9uIGFsbCB3ZWJzaXRlc2JhY2tncm91bmQgcGFnZVRoaXMgZXh0ZW5zaW9uIG1heSBoYXZlIGJlZW4gY29ycnVwdGVkLkNvbGxlY3QgZXJyb3JzTm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy5Ecm9wIHRvIGluc3RhbGxUaGVyZSB3ZXJlIHdhcm5pbmdzIHdoZW4gdHJ5aW5nIHRvIGluc3RhbGwgdGhpcyBleHRlbnNpb246TG9nV2FybmluZ0xvYWRlZCBmcm9tOlJlbG9hZFJlcGFpcihpZnJhbWUpKEluYWN0aXZlKShJbmNvZ25pdG8pRGV2ZWxvcGVyIG1vZGVUaGlzIGV4dGVuc2lvbiBpcyBvdXRkYXRlZCBhbmQgZGlzYWJsZWQgYnkgZW50ZXJwcmlzZSBwb2xpY3kuIEl0IG1pZ2h0IGJlY29tZSBlbmFibGVkIGF1dG9tYXRpY2FsbHkgd2hlbiBhIG5ld2VyIHZlcnNpb24gaXMgYXZhaWxhYmxlLkVycm9yc2Fub255bW91cyBmdW5jdGlvbkNvbnRleHRVbmtub3duQ2xlYXIgZW50cnlTdGFjayBUcmFjZXtMSU5FX0NPVU5ULCBwbHVyYWwsCiAgICAgID0xIHs8MSBsaW5lIG5vdCBzaG93bj59CiAgICAgIG90aGVyIHs8JDEgbGluZXMgbm90IHNob3duPn19QWxsb3cgdGhpcyBleHRlbnNpb24gdG8gcmVhZCBhbmQgY2hhbmdlIGFsbCB5b3VyIGRhdGEgb24gd2Vic2l0ZXMgeW91IHZpc2l0Ok9uIGNsaWNrT24gc3BlY2lmaWMgc2l0ZXNPbiBhbGwgc2l0ZXNBbGxvd2VkIHNpdGVzRXJyb3Igb24gbGluZSAkMUVycm9yIGZyb20gbGluZSAkMSB0byAkMjxzcGFuPklEOiA8L3NwYW4+JDFJbnNwZWN0IHZpZXdzJDEgbW9yZeKApk5vIGFjdGl2ZSB2aWV3c0FsbG93IGluIGluY29nbml0b1RoZSBmb2xsb3dpbmcgZXh0ZW5zaW9ucyBkZXBlbmQgb24gdGhpcyBleHRlbnNpb246JDEgKElEOiAkMilSZWxhdGVkIHRvICQxQXBwIEljb25FeHRlbnNpb24gSWNvbklERXh0ZW5zaW9uIEVuYWJsZWRBcHAgRW5hYmxlZE9wZW4gZXh0ZW5zaW9uIHdlYnNpdGVWaWV3IGluIENocm9tZSBXZWIgU3RvcmVFeHRlbnNpb24gb3B0aW9uc1RoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIG5vIHNwZWNpYWwgcGVybWlzc2lvbnNSZW1vdmUgZXh0ZW5zaW9uU291cmNlQWRkZWQgYnkgcG9saWN5QWRkZWQgYnkgYSB0aGlyZC1wYXJ0eVVucGFja2VkIGV4dGVuc2lvbkNocm9tZSBXZWIgU3RvcmVWZXJzaW9uRmFpbGVkIHRvIGxvYWQgZXh0ZW5zaW9uRmlsZUNvdWxkIG5vdCBsb2FkIG1hbmlmZXN0LkZpbmQgZXh0ZW5zaW9ucyBhbmQgdGhlbWVzIGluIHRoZSA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9jaHJvbWUuZ29vZ2xlLmNvbS93ZWJzdG9yZS9jYXRlZ29yeS9leHRlbnNpb25zIj5DaHJvbWUgV2ViIFN0b3JlPC9hPk5vIGRlc2NyaXB0aW9uIHByb3ZpZGVkUGFjayBleHRlbnNpb25QYWNrIGV4dGVuc2lvbiB3YXJuaW5nUGFjayBleHRlbnNpb24gZXJyb3JQcm9jZWVkIGFueXdheUJyb3dzZUV4dGVuc2lvbiByb290IGRpcmVjdG9yeVByaXZhdGUga2V5IGZpbGUgKG9wdGlvbmFsKVNlYXJjaCBleHRlbnNpb25zTm90IHNldFNjb3BlR2xvYmFsQ2hyb21lIEFwcHNLZXlib2FyZCBzaG9ydGN1dHNMb2FkIHVucGFja2VkVXBkYXRlVXBkYXRlIGV4dGVuc2lvbnMgbm93RXh0ZW5zaW9ucyB1cGRhdGVkVXBkYXRpbmfigKZUeXBlIGEgc2hvcnRjdXRJbmNsdWRlIGVpdGhlciBDdHJsIG9yIEFsdFVzZSBlaXRoZXIgQ3RybCBvciBBbHRUeXBlIGEgbGV0dGVyUERGIENvbXBvc2l0b3IgU2VydmljZVByaW50aW5nIFNlcnZpY2VUaGUgc2VsZWN0ZWQgcHJpbnRlciBpcyBub3QgYXZhaWxhYmxlIG9yIG5vdCBpbnN0YWxsZWQgY29ycmVjdGx5LiAgQ2hlY2sgeW91ciBwcmludGVyIG9yIHRyeSBzZWxlY3RpbmcgYW5vdGhlciBwcmludGVyLlByaW50TG9hZGluZyBwcmV2aWV3UHJpbnQgcHJldmlldyBmYWlsZWQuVGhlIHNlbGVjdGVkIEdvb2dsZSBDbG91ZCBQcmludCBkZXZpY2UgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gVHJ5IHNldHRpbmcgdXAgdGhlIHByaW50ZXIgaW4geW91ciBjb21wdXRlcidzIHN5c3RlbSBzZXR0aW5ncy5TYXZlUHJpbnRpbmfigKZTYXZpbmfigKZBbGxEZXN0aW5hdGlvbkJsYWNrIGFuZCB3aGl0ZUNvbGxhdGVDb2xvckxhbmRzY2FwZVBvcnRyYWl0VHdvLXNpZGVkUGFnZXNMYXlvdXRDb3BpZXNTY2FsZVBhZ2VzIFBlciBTaGVldGUuZy4gMS01LCA4LCAxMS0xM3BhZ2UgcmFuZ2UgdGV4dCBib3hwYWdlIHJhbmdlIHJhZGlvIGJ1dHRvblNhdmUgYXMgUERGTG9hZGluZyAkMVRvdGFsOiAkMSAkMiAoJDMgJDQpVG90YWw6ICQxICQyc2hlZXRzIG9mIHBhcGVyc2hlZXQgb2YgcGFwZXJwYWdlcGFnZXNJbnZhbGlkIHBhZ2UgcmFuZ2UsIHVzZSAkMU91dCBvZiBib3VuZHMgcGFnZSByZWZlcmVuY2VPdXQgb2YgYm91bmRzIHBhZ2UgcmVmZXJlbmNlLCBsaW1pdCBpcyAkMVVzZSBhIG51bWJlciB0byBpbmRpY2F0ZSBob3cgbWFueSBjb3BpZXMgdG8gcHJpbnQgKDEgdG8gOTk5KS5TY2FsZSBhbW91bnQgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDEwIGFuZCAyMDAuUHJpbnQgU3BlY2lmaWMgUGFnZXNPcHRpb25zSGVhZGVycyBhbmQgZm9vdGVyc0ZpdCB0byBwYWdlQmFja2dyb3VuZCBncmFwaGljc1NlbGVjdGlvbiBvbmx5UHJpbnQgYXMgaW1hZ2VNYXJnaW5zTm9uZU1pbmltdW1Ub3AgbWFyZ2luQm90dG9tIG1hcmdpbkxlZnQgbWFyZ2luUmlnaHQgbWFyZ2luUGFwZXIgc2l6ZVF1YWxpdHkkMXgkMiBkcGkkMSBkcGlQcmludCB1c2luZyBzeXN0ZW0gZGlhbG9n4oCmU2VsZWN0IGEgZGVzdGluYXRpb25TaG93aW5nIGRlc3RpbmF0aW9ucyBmb3JBZGQgYWNjb3VudOKAplByaW50IHRvIEdvb2dsZSBEb2NzIGFuZCBvdGhlciBjbG91ZCBkZXN0aW5hdGlvbnMuICQxU2lnbiBpbiQyIHRvIHByaW50IHRvIEdvb2dsZSBDbG91ZCBQcmludC5TZWFyY2ggZGVzdGluYXRpb25zTm8gZGVzdGluYXRpb25zIGZvdW5kU2hvdyBBbGzigKYoJDEgdG90YWwpUmVjZW50IERlc3RpbmF0aW9uc1ByaW50IERlc3RpbmF0aW9uc01hbmFnZeKApkNoYW5nZeKApk9mZmxpbmUgZm9yIG1vcmUgdGhhbiBhIHllYXJPZmZsaW5lIGZvciBtb3JlIHRoYW4gYSBtb250aE9mZmxpbmUgZm9yIG1vcmUgdGhhbiBhIHdlZWtDdXJyZW50bHkgb2ZmbGluZU5vIGxvbmdlciBzdXBwb3J0ZWRObyBsb25nZXIgc3VwcG9ydGVkLkRvY3VtZW50cyB5b3Ugc2VuZCB0byBwcmludCB2aWEgJDEgY2FuIGJlIHJlYWQgYnkgJDEuTW9yZSBzZXR0aW5nc0Zld2VyIHNldHRpbmdzUHJpbnRpbmcgZmFpbGVkLiBQbGVhc2UgY2hlY2sgeW91ciBwcmludGVyIGFuZCB0cnkgYWdhaW4uUmVnaXN0ZXJBZHZhbmNlZCBzZXR0aW5ncyBmb3IgJDFObyBtYXRjaGVzIHdlcmUgZm91bmQuQXBwbHlDaGFuZ2UgcHJpbnRlciBvcHRpb25z4oCmQWNjZXB0QWNjZXB0IGZvciBncm91cFJlamVjdDxzdHJvbmc+JDE8L3N0cm9uZz4gd2FudHMgdG8gc2hhcmUgYSBwcmludGVyIDxzdHJvbmc+JDI8L3N0cm9uZz4gd2l0aCBhIGdyb3VwIHlvdSBvd246IDxzdHJvbmc+JDM8L3N0cm9uZz4uIElmIHlvdSBhY2NlcHQsIGFsbCBncm91cCBtZW1iZXJzIHdpbGwgYmUgYWJsZSB0byBwcmludCB0byB0aGUgcHJpbnRlci48c3Ryb25nPiQxPC9zdHJvbmc+IHdhbnRzIHRvIHNoYXJlIGEgcHJpbnRlciA8c3Ryb25nPiQyPC9zdHJvbmc+IHdpdGggeW91LlNlbGVjdEJ5IHNlbGVjdGluZyB0aGlzIHByaW50ZXIsIHlvdSBhcmUgZ2l2aW5nIHRoZSBmb2xsb3dpbmcgZXh0ZW5zaW9uIHRoZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB5b3VyIHByaW50ZXI6JDEgY291bGQgbm90IGNvbW11bmljYXRlIHdpdGggdGhpcyBwcmludGVyLiBNYWtlIHN1cmUgdGhlIHByaW50ZXIgaXMgcGx1Z2dlZCBpbiBhbmQgdHJ5IGFnYWluLlByaW50IHVzaW5nIHN5c3RlbSBkaWFsb2figKYgJDFVbnRpdGxlZCBEb2N1bWVudFByaW50IEZhaWxlZFNvbWV0aGluZyB3ZW50IHdyb25nIHdoZW4gdHJ5aW5nIHRvIHByaW50LiAgUGxlYXNlIGNoZWNrIHlvdXIgcHJpbnRlciBhbmQgdHJ5IGFnYWluLkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHJldHJpZXZpbmcgcHJpbnRlciBjYXBhYmlsaXRpZXMgZm9yIHByaW50ZXIgJDEuIFRoaXMgcHJpbnRlciBjb3VsZCBub3QgYmUgcmVnaXN0ZXJlZCB3aXRoICQyLlJlY2VpdmVkIGEgbm90aWZpY2F0aW9uIGZvciBhbiB1bmtub3duIHByaW50ZXIuVGhlcmUgd2FzIGEgcHJvYmxlbSBsaXN0aW5nIHByaW50ZXJzLiBTb21lIG9mIHlvdXIgcHJpbnRlcnMgbWF5IG5vdCBoYXZlIHJlZ2lzdGVyZWQgc3VjY2Vzc2Z1bGx5IHdpdGggJDEuVGhlICQxIGNvbm5lY3RvciBwcm9jZXNzIGhhcyBjcmFzaGVkLiBSZXN0YXJ0P1ByZXNzIEFwcCBidXR0b24gdG8gZXhpdFNpdGUgaXMgdHJhY2tpbmcgeW91ciBsb2NhdGlvblNpdGUgaXMgdXNpbmcgeW91ciBtaWNyb3Bob25lU2l0ZSBpcyB1c2luZyBibHVldG9vdGhTaXRlIGlzIHVzaW5nIHlvdXIgY2FtZXJhU2l0ZSBpcyBzaGFyaW5nIHlvdXIgc2NyZWVuQmFja2dyb3VuZCB0YWIgaXMgdXNpbmcgeW91ciBtaWNyb3Bob25lQmFja2dyb3VuZCB0YWIgaXMgdXNpbmcgYmx1ZXRvb3RoQmFja2dyb3VuZCB0YWIgaXMgdXNpbmcgeW91ciBjYW1lcmFCYWNrZ3JvdW5kIHRhYiBpcyBzaGFyaW5nIHlvdXIgc2NyZWVuU2l0ZSBjYW4gdHJhY2sgeW91ciBsb2NhdGlvblNpdGUgY2FuIHVzZSB5b3VyIG1pY3JvcGhvbmVTaXRlIGNhbiB1c2UgYmx1ZXRvb3RoU2l0ZSBjYW4gdXNlIHlvdXIgY2FtZXJhU2l0ZSBjYW4gc2hhcmUgeW91ciBzY3JlZW5JbnN0YWxsIG9yIHVwZGF0ZSBEYXlkcmVhbSBLZXlib2FyZCB0byB1c2UgQ2hyb21lIGluIFZSVGhpcyBmZWF0dXJlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gVlJTaXRlIGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gVlJBbGxvdyBDaHJvbWUgdG8gcmVjb3JkIGF1ZGlvP0NvbnRpbnVlRVhJVCBWUlRoaXMgcGFnZSBjb250YWlucyBmZWF0dXJlcyBub3QgeWV0IHN1cHBvcnRlZCBpbiBWUi4gRXhpdGluZ+KAplRoZSBwYWdlIGlzbid0IHJlc3BvbmRpbmcuIFlvdSBjYW4gd2FpdCBmb3IgaXQgb3IgZXhpdC5FeGl0U29ycnksIGRpZG4ndCBjYXRjaCB0aGF0LlNjcm9sbCAvIENsaWNrRXhpdCBGdWxsc2NyZWVuVG91Y2ggdG8gcmVzaXplRmluaXNoTmV3IGluY29nbml0byB0YWJDbG9zZSBpbmNvZ25pdG8gdGFic1RhYnNJbmNvZ25pdG8kMSBoYXMgY3Jhc2hlZC4gQ2xpY2sgdGhpcyBiYWxsb29uIHRvIHJlc3RhcnQgdGhlIGFwcC4kMSBoYXMgY3Jhc2hlZC4gQ2xpY2sgdGhpcyBiYWxsb29uIHRvIHJlbG9hZCB0aGUgZXh0ZW5zaW9uLk5vIGJhY2tncm91bmQgYXBwcyBydW5uaW5nJDEgd2FudHMgdG9DdXN0b21pemVEaWQgeW91IG1lYW4gdG8gZ28gdG8gJDE/U2VhcmNoIGhpc3RvcnlDaHJvbWUgaGlzdG9yeU5vIHRhYnMgZnJvbSBvdGhlciBkZXZpY2VzVGFicyBmcm9tIG90aGVyIGRldmljZXNTaWduIGluIHRvIENocm9tZUNvbnRpbnVlIGZyb20gYW5vdGhlciBkZXZpY2VUbyBnZXQgeW91ciB0YWJzIGZyb20geW91ciBvdGhlciBkZXZpY2VzLCBzaWduIGluIHRvIENocm9tZS5Zb3UgY2FuIGNsZWFyIHlvdXIgYnJvd3NpbmcgZGF0YSBmcm9tIHRoaXMgbWVudVVuZG8gRGVsZXRlJkVkaXRDb25maXJtRGlzYWJsZVNlYXJjaCByZXN1bHRzIGZvciAnJDEnTm8gc2VhcmNoIHJlc3VsdHMgZm91bmRQcmVzcyBBbHQgU2hpZnQgQSB0byBzaG93SSZuc3BlY3QmQmFjayZGb3J3YXJkU2F2ZSAmYXPigKYmUHJpbnTigKYmVmlldyBwYWdlIHNvdXJjZU9wZW4gbGluayB3aXRo4oCmQ29uZmlndXJl4oCmSW5zcGVjdCAmYmFja2dyb3VuZCBwYWdlJlJlbG9hZFNpbXVsYXRlIGJyb3dzZXIgcmVzdGFydCZSZWxvYWQgYXBwJlRyYW5zbGF0ZSB0byAkMUV4aXQgZnVsbCBzY3JlZW5SZWxvYWQgJmZyYW1lJlZpZXcgZnJhbWUgc291cmNlT3BlbiBsaW5rIGluIG5ldyAmdGFiT3BlbiBsaW5rIGluIG5ldyAmd2luZG93T3BlbiBsaW5rIGluIGluY28mZ25pdG8gd2luZG93T3BlbiBsaW5rIGFzT3BlbiBsaW5rIGFzICQxT3BlbiBsaW5rIGluICQxT3BlbiBsaW5rIGluIG5ldyAkMSB3aW5kb3dTYXZlIGxpbiZrIGFz4oCmQ29weSBsaW5rIGFkZHImZXNzQ29weSAmZW1haWwgYWRkcmVzc0NvcHkgbGluayB0ZSZ4dFNhJnZlIGltYWdlIGFz4oCmQyZvcHkgaW1hZ2UgYWRkcmVzc0NvcCZ5IGltYWdlT3BlbiAmaW1hZ2UgaW4gbmV3IHRhYk9wZW4gb3JpZ2luYWwgJmltYWdlIGluIG5ldyB0YWJMb2FkIGltYWdlJkxvb3BTaG93ICZjb250cm9sc1JvdGF0ZSAmY2xvY2t3aXNlUm90YXRlIGMmb3VudGVyY2xvY2t3aXNlU2EmdmUgdmlkZW8gYXPigKZDJm9weSB2aWRlbyBhZGRyZXNzJk9wZW4gdmlkZW8gaW4gbmV3IHRhYlNhJnZlIGF1ZGlvIGFz4oCmQyZvcHkgYXVkaW8gYWRkcmVzcyZPcGVuIGF1ZGlvIGluIG5ldyB0YWJQaWN0dXJlIGluIHBpY3R1cmUmVW5kbyZSZWRvQ3UmdCZDb3B5JlBhc3RlUGFzdGUgYXMgcGxhaW4gdGV4dCZBZGQgdG8gZGljdGlvbmFyeUFzayBHb29nbGUgZm9yIHN1Z2dlc3Rpb25zTG9hZGluZyBzdWdnZXN0aW9uTm8gbW9yZSBzdWdnZXN0aW9ucyBmcm9tIEdvb2dsZVNlbGVjdCAmYWxsJlNlYXJjaCAkMSBmb3Ig4oCcJDLigJ0mU2VhcmNoICQxIGZvciBpbWFnZSZHbyB0byAkMVNhdmUgcGFzc3dvcmRHZW5lcmF0ZSBwYXNzd29yZOKApk1vcmVPcGVuIHdpdGggJDFSdW4gdGhpcyBwbHVnaW5IaWRlIHRoaXMgcGx1Z2luRW5hYmxlIEZsYXNoJkxhbmd1YWdlIHNldHRpbmdzJlNwZWxsY2hlY2smQWxsIHlvdXIgbGFuZ3VhZ2VzJkNoZWNrIHRoZSBzcGVsbGluZyBvZiB0ZXh0IGZpZWxkc05ldyAmdGFiJlNob3cgYXMgdGFiJk5ldyB3aW5kb3dOZXcgJmluY29nbml0byB3aW5kb3dQaW4gdGhpcyBwYWdlIHRvIFN0YXJ0IHNjcmVlbuKApiZGaW5k4oCmU2F2ZSBwYWdlICZhc+KApkRpc3RpbGwgcGFnZU1vcmUgdG9vJmxzJlpvb21ab29tJkxhcmdlcismTm9ybWFsJlNtYWxsZXLiiJJDb3B5ICZVUkxPcGVuIGluICQxTWFrZSBUZXh0IExhcmdlck1ha2UgVGV4dCBTbWFsbGVyVmlldyBzJm91cmNlJlJlcG9ydCBhbiBpc3N1ZeKApiZEZXZlbG9wZXIgdG9vbHMmSmF2YVNjcmlwdCBjb25zb2xlJkluc3BlY3QgZGV2aWNlcyZUYXNrIG1hbmFnZXJUJmFrZSBzY3JlZW5zaG90UiZlb3BlbiBjbG9zZWQgdGFiUiZlb3BlbiBjbG9zZWQgd2luZG93UHJlZmVyZW5jZXNIJmVscEltcG9ydCBib29rbWFya3MgYW5kIHNldHRpbmdz4oCmJlByb2ZpbGluZyBlbmFibGVkJkZ1bGwgc2NyZWVuJkNsZWFyIGJyb3dzaW5nIGRhdGHigKYmRG93bmxvYWRzJkV4dGVuc2lvbnMmU2V0dGluZ3MmT3B0aW9uc0gmZWxwIGNlbnRlckJldGEgZm9ydW1HZXQgSCZlbHBFJnhpdCAtICZFZGl0IHNlYXJjaCBlbmdpbmVz4oCmJDEgKERlZmF1bHQpRG93bmxvYWRzIGJhckNsb3NlIGRvd25sb2FkcyBiYXJEb3dubG9hZCBzdGFydGVkRG93bmxvYWQgZXJyb3JJbnN1ZmZpY2llbnQgcGVybWlzc2lvbnNDYW5ub3Qgc2F2ZSBkdWUgdG8gaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zLiBQbGVhc2Ugc2F2ZSB0byBhbm90aGVyIGxvY2F0aW9uLlBhdGggdG9vIGxvbmdUaGUgZmlsZSBwYXRoIG9yIG5hbWUgaXMgdG9vIGxvbmcuICBQbGVhc2Ugc2F2ZSB3aXRoIGEgc2hvcnRlciBuYW1lIG9yIHRvIGFub3RoZXIgbG9jYXRpb24uRGlzayBmdWxsWW91ciBoYXJkIGRpc2sgaXMgZnVsbC4gIFBsZWFzZSBzYXZlIHRvIGFub3RoZXIgbG9jYXRpb24gb3IgbWFrZSBtb3JlIHJvb20gb24gdGhlIGhhcmQgZGlzay5GaWxlIHRvbyBsYXJnZVRoZSBmaWxlIGlzIHRvbyBsYXJnZSBmb3IgeW91ciBjb21wdXRlciB0byBoYW5kbGUuIFNvcnJ5LlN5c3RlbSBidXN5WW91ciBjb21wdXRlciBpcyBkb2luZyB0b28gbWFueSB0aGluZ3MgcmlnaHQgbm93LiAgVHJ5IGFnYWluIGxhdGVyLlZpcnVzIGRldGVjdGVkQW50aS12aXJ1cyBzb2Z0d2FyZSBkZXRlY3RlZCBhIHZpcnVzLlNlY3VyaXR5IHNldHRpbmdzIG9uIHlvdXIgY29tcHV0ZXIgYmxvY2tlZCB0aGlzIGZpbGUuRmlsZSBpbmNvbXBsZXRlRGVzdGluYXRpb24gZmlsZSB3YXMgaW5jb21wbGV0ZSBkdWUgdG8gYSBjb25uZWN0aW9uIGlzc3VlLlZpcnVzIHNjYW4gZmFpbGVkQW50aS12aXJ1cyBzb2Z0d2FyZSBmYWlsZWQgdW5leHBlY3RlZGx5IHdoaWxlIHNjYW5uaW5nIHRoaXMgZmlsZS5GaWxlIHRydW5jYXRlZERlc3RpbmF0aW9uIGZpbGUgd2FzIHRydW5jYXRlZCBvciByZW1vdmVkIHNpbmNlIGxhc3QgZG93bmxvYWQuQWxyZWFkeSBkb3dubG9hZGVkVGhlIGZpbGUgYWxyZWFkeSBleGlzdHMgaW4geW91ciBkb3dubG9hZCBmb2xkZXIuTmV0d29yayB0aW1lb3V0VGhlIGRvd25sb2FkIHdhcyB0YWtpbmcgdG9vIGxvbmcgYW5kIHdhcyBzdG9wcGVkIGJ5IHRoZSBuZXR3b3JrLk5ldHdvcmsgZGlzY29ubmVjdGVkSW50ZXJuZXQgZGlzY29ubmVjdGVkLiBQbGVhc2UgY2hlY2sgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uIGFuZCB0cnkgYWdhaW4uU2VydmVyIHVuYXZhaWxhYmxlU2VydmVyIHVuYXZhaWxhYmxlLk5ldHdvcmsgZXJyb3JVbmtub3duIG5ldHdvcmsgZXJyb3IuTm8gZmlsZVRoZSBzZXJ2ZXIgY291bGQgbm90IGZpbmQgdGhlIGZpbGUuU2VydmVyIHByb2JsZW1Vbmtub3duIHNlcnZlciBlcnJvci4gUGxlYXNlIHRyeSBhZ2Fpbiwgb3IgY29udGFjdCB0aGUgc2VydmVyIGFkbWluaXN0cmF0b3IuU2h1dGRvd25UaGUgYnJvd3NlciB3YXMgc2h1dCBkb3duIGJlZm9yZSB0aGUgZG93bmxvYWQgY29tcGxldGVkLkNyYXNoVGhlIGJyb3dzZXIgY3Jhc2hlZCBiZWZvcmUgdGhlIGRvd25sb2FkIGNvbXBsZXRlZC5OZWVkcyBhdXRob3JpemF0aW9uU2VydmVyIGRpZCBub3QgYXV0aG9yaXplIHlvdSB0byBhY2Nlc3MgdGhpcyByZXNvdXJjZS5CYWQgY2VydGlmaWNhdGVUaGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggc2VydmVyJ3MgY2VydGlmaWNhdGUuRm9yYmlkZGVuQWNjZXNzIHRvIHRoaXMgcmVzb3VyY2Ugd2FzIGZvcmJpZGRlbiBieSB0aGUgc2VydmVyLlNlcnZlciB1bnJlYWNoYWJsZVRoZSBzZXJ2ZXIgbWF5IGJlIHVucmVhY2hhYmxlLiBUcnkgYWdhaW4gbGF0ZXIuT3BlbiB3aGVuIGRvbmVTdGFydGluZ+KApiQxLyQyT3BlbmluZyBpbiAkMeKApk9wZW5pbmcgd2hlbiBjb21wbGV0ZU9wZW5pbmcgJDHigKZJbiBwcm9ncmVzc0NhbmNlbGVkUmVtb3ZlZEZhaWxlZCAtICQxVW5jb25maXJtZWRUaGlzIHR5cGUgb2YgZmlsZSBjYW4gaGFybSB5b3VyIGNvbXB1dGVyLiBEbyB5b3Ugd2FudCB0byBrZWVwICQxIGFueXdheT9FeHRlbnNpb25zLCBhcHBzLCBhbmQgdGhlbWVzIGNhbiBoYXJtIHlvdXIgY29tcHV0ZXIuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb250aW51ZT8kMSBpcyBub3QgY29tbW9ubHkgZG93bmxvYWRlZCBhbmQgbWF5IGJlIGRhbmdlcm91cy5UaGlzIGZpbGUgaXMgbm90IGNvbW1vbmx5IGRvd25sb2FkZWQgYW5kIG1heSBiZSBkYW5nZXJvdXMuVGhpcyB0eXBlIG9mIGZpbGUgbWF5IGhhcm0geW91ciBjb21wdXRlci5Db25maXJtIGRvd25sb2FkS2VlcCBkYW5nZXJvdXMgZmlsZT9LZWVwIGZpbGU/VGhpcyBmaWxlIG1heSBiZSBoYXJtZnVsIGZvciB5b3VyIGNvbXB1dGVyLkV2ZW4gaWYgeW91IGhhdmUgZG93bmxvYWRlZCBmaWxlcyBmcm9tIHRoaXMgc2l0ZSBiZWZvcmUsIHRoZSBzaXRlIG1heSBiZSB0ZW1wb3JhcmlseSB1bnNhZmUgKGhhY2tlZCkuIFRyeSBkb3dubG9hZGluZyB0aGlzIGZpbGUgbGF0ZXIuS2VlcCBhbnl3YXlLZWVwS2VlcCBkYW5nZXJvdXMgZmlsZURpc2NhcmRTZWFyY2ggZG93bmxvYWRzRmlsZXMgeW91IGRvd25sb2FkIGFwcGVhciBoZXJlT3B0aW9ucyBtZW51UmVzdW1lRGVsZXRlZCQxIC0gJDIsICQzJDEgb2YgJDJPcGVuIGRvd25sb2FkcyBmb2xkZXJEb3dubG9hZGVkIGJ5IDxhIGhyZWY9IiQxIj4kMjwvYT5Eb3dubG9hZGVkIGluIEluY29nbml0b0Rvd25sb2FkaW5nICQxLCAkMkRvd25sb2FkaW5nLCAkMSUgcmVtYWluaW5nRG93bmxvYWRpbmcsICQxRG93bmxvYWQgdW5zdWNjZXNzZnVsOiAkMURvd25sb2FkIGNhbmNlbGxlZDogJDEuRG93bmxvYWQgY29tcGxldGU6ICQxLiBQcmVzcyBTaGlmdCtGNiB0byBjeWNsZSB0byB0aGUgZG93bmxvYWRzIGJhciBhcmVhLkNvcHkgdG8gY2xpcGJvYXJkQW5ub3RhdGUgaW1hZ2UmU2hvdyBpbiBmb2xkZXJPcGVuIHdoZW4gJmRvbmUmT3BlbiZBbHdheXMgb3BlbiBmaWxlcyBvZiB0aGlzIHR5cGVPcGVuIHdpdGggc3lzdGVtIHZpZXdlckFsd2F5cyBvcGVuIHdpdGggc3lzdGVtIHZpZXdlciZDYW5jZWwmUGF1c2UmUmVzdW1lJkRpc2NhcmQmS2VlcCZMZWFybiBtb3JlJk1vcmUgaW5mb3JtYXRpb257TlVNX0RPV05MT0FELCBwbHVyYWwsCiAgICAgICAgPTEge0Rvd25sb2FkIGlzIGluIHByb2dyZXNzfSBvdGhlciB7RG93bmxvYWRzIGFyZSBpbiBwcm9ncmVzc319Q29udGludWUgZG93bmxvYWRpbmdFeGl0IGluY29nbml0byBtb2RlIGFueXdheT9Zb3UgY2FuIGhlbHAgaW1wcm92ZSBTYWZlIEJyb3dzaW5nIGJ5IHNlbmRpbmcgc29tZSBzeXN0ZW0gaW5mb3JtYXRpb24gYW5kIHBhZ2UgY29udGVudCB0byBHb29nbGUuWWVzLCBJIHdhbnQgdG8gaGVscE5vLCB0aGFua3NDcmVhdGUgc2hvcnRjdXQ/Q3JlYXRlSW5zdGFsbCBhcHA/SW5zdGFsbFNob3J0Y3V0IG5hbWVPcGVuIGFzIHdpbmRvd0NyZWF0ZSBzaG9ydGN1dOKApkluc3RhbGwgJDHigKZWaWV3IGluIHN0b3JlRGV2ZWxvcGVyIHdlYnNpdGVNYW5hZ2Ugc3VwcG9ydGVkIGxpbmtzT3ZlcnZpZXdSZW1vdmXigKZMaWNlbnNlc1NpemU6VmVyc2lvbjpDcmVhdGUgc2hvcnRjdXRz4oCmSG93IHdvdWxkIHlvdSBsaWtlIHRoaXMgYXBwbGljYXRpb24gdG8gbGF1bmNoP0NhbGN1bGF0aW5n4oCmPCAxIE1CUmV2b2tlIHRoZSBwZXJtaXNzaW9uICckMSdUaGlzIGFwcCByZXF1aXJlcyBubyBzcGVjaWFsIHBlcm1pc3Npb25zLlRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIG5vIHNwZWNpYWwgcGVybWlzc2lvbnMue05VTV9GSUxFUywgcGx1cmFsLAogICAgICAgICAgID0xIHtBY2Nlc3MgYSBmaWxlIHN0b3JlZCBvbiB5b3VyIGNvbXB1dGVyfQogICAgICAgICAgIG90aGVyIHtBY2Nlc3MgIyBmaWxlcyBzdG9yZWQgb24geW91ciBjb21wdXRlcn19e05VTV9ERVZJQ0VTLCBwbHVyYWwsCiAgICAgICAgID0xIHtDb21tdW5pY2F0ZSB3aXRoIGEgVVNCIGRldmljZX0KICAgICAgICAgb3RoZXIge0NvbW11bmljYXRlIHdpdGggIyBVU0IgZGV2aWNlc319Q3JlYXRlIGFwcGxpY2F0aW9uIHNob3J0Y3V0c0FkZCBzaG9ydGN1dHMgdG8gdGhlIGZvbGxvd2luZyBwbGFjZXM6RGVza3RvcEFwcGxpY2F0aW9ucyBtZW51U2hhcmUgdmlhQ2hvb3NlIGFuIGFwcCB0byBzaGFyZSB0bzpTaGFyZSQxICgkMinigKIgICQxQXV0b21hdGljIERvd25sb2Fkc0NvbnRpbnVlIGJsb2NraW5nIGF1dG9tYXRpYyBkb3dubG9hZHMgb2YgbXVsdGlwbGUgZmlsZXNBbHdheXMgYWxsb3cgJDEgdG8gZG93bmxvYWQgbXVsdGlwbGUgZmlsZXNNYW5hZ2UgZG93bmxvYWQgc2V0dGluZ3PigKZUaGlzIHNpdGUgZG93bmxvYWRlZCBtdWx0aXBsZSBmaWxlcyBhdXRvbWF0aWNhbGx5VGhpcyBzaXRlIGF0dGVtcHRlZCB0byBkb3dubG9hZCBtdWx0aXBsZSBmaWxlcyBhdXRvbWF0aWNhbGx5RG93bmxvYWQgYmxvY2tlZENvbnRpbnVlIGFsbG93aW5nIGF1dG9tYXRpYyBkb3dubG9hZHMgb2YgbXVsdGlwbGUgZmlsZXNBbHdheXMgYmxvY2sgbXVsdGlwbGUgYXV0b21hdGljIGRvd25sb2FkcyBvbiAkMUNvb2tpZXMgYmxvY2tlZENvb2tpZXMgc2V0VGhpcyBwYWdlIHdhcyBwcmV2ZW50ZWQgZnJvbSBzZXR0aW5nIGNvb2tpZXMuVGhpcyBwYWdlIHNldCBjb29raWVzLk1hbmFnZSBjb29raWUgYmxvY2tpbmfigKZTaG93IGNvb2tpZXMgYW5kIG90aGVyIHNpdGUgZGF0YeKApkltYWdlcyBibG9ja2VkSW1hZ2VzIHdlcmUgYmxvY2tlZCBvbiB0aGlzIHBhZ2UuQWx3YXlzIGFsbG93ICQxIHRvIHNldCBjb29raWVzQWx3YXlzIGFsbG93ICQxIHRvIHNob3cgaW1hZ2VzQ29udGludWUgYmxvY2tpbmcgY29va2llc0NvbnRpbnVlIGFsbG93aW5nIGNvb2tpZXNBbHdheXMgYmxvY2sgY29va2llcyBvbiAkMUNvbnRpbnVlIGJsb2NraW5nIGltYWdlc1BvcC11cHMgd2VyZSBibG9ja2VkIG9uIHRoaXMgcGFnZS5Qb3AtdXBzIGJsb2NrZWQ6QWx3YXlzIGFsbG93IHBvcC11cHMgYW5kIHJlZGlyZWN0cyBmcm9tICQxQ29udGludWUgYmxvY2tpbmdNYW5hZ2UgcG9wLXVwIGJsb2NraW5n4oCmQWx3YXlzIGFsbG93ICQxIHRvIGFjY2VzcyB5b3VyIGNhbWVyYSBhbmQgbWljcm9waG9uZUFsd2F5cyBhbGxvdyAkMSB0byBhY2Nlc3MgeW91ciBtaWNyb3Bob25lQWx3YXlzIGFsbG93ICQxIHRvIGFjY2VzcyB5b3VyIGNhbWVyYUFzayBpZiAkMSB3YW50cyB0byBhY2Nlc3MgeW91ciBjYW1lcmEgYW5kIG1pY3JvcGhvbmVBc2sgaWYgJDEgd2FudHMgdG8gYWNjZXNzIHlvdXIgbWljcm9waG9uZUFzayBpZiAkMSB3YW50cyB0byBhY2Nlc3MgeW91ciBjYW1lcmFBbHdheXMgYmxvY2sgY2FtZXJhIGFuZCBtaWNyb3Bob25lIGFjY2Vzc0Fsd2F5cyBibG9jayBtaWNyb3Bob25lIGFjY2Vzc0Fsd2F5cyBibG9jayBjYW1lcmEgYWNjZXNzQ29udGludWUgYmxvY2tpbmcgY2FtZXJhIGFuZCBtaWNyb3Bob25lIGFjY2Vzc0NvbnRpbnVlIGJsb2NraW5nIG1pY3JvcGhvbmUgYWNjZXNzQ29udGludWUgYmxvY2tpbmcgY2FtZXJhIGFjY2Vzc0NvbnRpbnVlIGFsbG93aW5nICQxIHRvIGFjY2VzcyB5b3VyIGNhbWVyYSBhbmQgbWljcm9waG9uZUNvbnRpbnVlIGFsbG93aW5nICQxIHRvIGFjY2VzcyB5b3VyIG1pY3JvcGhvbmVDb250aW51ZSBhbGxvd2luZyAkMSB0byBhY2Nlc3MgeW91ciBjYW1lcmFQb3AtdXAgYmxvY2tlZFBsdWdpbiBibG9ja2VkSmF2YVNjcmlwdCBibG9ja2VkSmF2YVNjcmlwdCB3YXMgYmxvY2tlZCBvbiB0aGlzIHBhZ2UuQWx3YXlzIGFsbG93IEphdmFTY3JpcHQgb24gJDFDb250aW51ZSBibG9ja2luZyBKYXZhU2NyaXB0Rmxhc2ggd2FzIGJsb2NrZWQgb24gdGhpcyBwYWdlRmxhc2ggd2FzIGJsb2NrZWQgb24gdGhpcyBwYWdlLlJ1biBGbGFzaCB0aGlzIHRpbWVTb3VuZCB3YXMgbXV0ZWQgb24gdGhpcyBwYWdlQWx3YXlzIGFsbG93IHNvdW5kIG9uICQxQ29udGludWUgbXV0aW5nIHNvdW5kSXNzdWVkIFRvSXNzdWVkIEJ5Q29tbW9uIE5hbWUgKENOKU9yZ2FuaXphdGlvbiAoTylPcmdhbml6YXRpb25hbCBVbml0IChPVSlTZXJpYWwgTnVtYmVyVmFsaWRpdHkgUGVyaW9kSXNzdWVkIE9uRXhwaXJlcyBPbkZpbmdlcnByaW50c1NIQS0yNTYgRmluZ2VycHJpbnRTSEEtMSBGaW5nZXJwcmludENlcnRpZmljYXRlIFN1YmplY3QgQWx0ZXJuYXRpdmUgTmFtZUJhc2U2NC1lbmNvZGVkIEFTQ0lJLCBzaW5nbGUgY2VydGlmaWNhdGVCYXNlNjQtZW5jb2RlZCBBU0NJSSwgY2VydGlmaWNhdGUgY2hhaW5ERVItZW5jb2RlZCBiaW5hcnksIHNpbmdsZSBjZXJ0aWZpY2F0ZVBLQ1MgIzcsIHNpbmdsZSBjZXJ0aWZpY2F0ZVBLQ1MgIzcsIGNlcnRpZmljYXRlIGNoYWluQ2VydGlmaWNhdGUgVmlld2VyOiAkMSZHZW5lcmFsJkRldGFpbHNUaGlzIGNlcnRpZmljYXRlIGhhcyBiZWVuIHZlcmlmaWVkIGZvciB0aGUgZm9sbG93aW5nIHVzYWdlczpTU0wgU2VydmVyIENlcnRpZmljYXRlU1NMIFNlcnZlciB3aXRoIFN0ZXAtdXBFbWFpbCBTaWduZXIgQ2VydGlmaWNhdGVFbWFpbCBFbmNyeXB0aW9uIENlcnRpZmljYXRlQ29kZSBTaWduZXJTU0wgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHlTdGF0dXMgUmVzcG9uZGVyIENlcnRpZmljYXRlPE5vdCBQYXJ0IE9mIENlcnRpZmljYXRlPkNlcnRpZmljYXRlIEhpZXJhcmNoeUNlcnRpZmljYXRlIEZpZWxkc0ZpZWxkIFZhbHVlQ2VydGlmaWNhdGVWZXJzaW9uICQxQ2VydGlmaWNhdGUgU2lnbmF0dXJlIEFsZ29yaXRobUlzc3VlclZhbGlkaXR5Tm90IEJlZm9yZU5vdCBBZnRlclN1YmplY3RTdWJqZWN0IFB1YmxpYyBLZXkgSW5mb1N1YmplY3QgUHVibGljIEtleSBBbGdvcml0aG1TdWJqZWN0J3MgUHVibGljIEtleU1vZHVsdXMgKCQxIGJpdHMpOgogICQyCgogIFB1YmxpYyBFeHBvbmVudCAoJDMgYml0cyk6CiAgJDRDZXJ0aWZpY2F0ZSBTaWduYXR1cmUgVmFsdWVFJnhwb3J04oCmQ05TVE9PVWRuUXVhbGlmaWVyQ3NlcmlhbE51bWJlckxEQ01BSUxVSURFYnVzaW5lc3NDYXRlZ29yeWp1cmlzZGljdGlvbkxvY2FsaXR5TmFtZWp1cmlzZGljdGlvblN0YXRlT3JQcm92aW5jZU5hbWVqdXJpc2RpY3Rpb25Db3VudHJ5TmFtZVNUUkVFVHBvc3RhbENvZGVQS0NTICMxIFJTQSBFbmNyeXB0aW9uUEtDUyAjMSBNRDIgV2l0aCBSU0EgRW5jcnlwdGlvblBLQ1MgIzEgTUQ0IFdpdGggUlNBIEVuY3J5cHRpb25QS0NTICMxIE1ENSBXaXRoIFJTQSBFbmNyeXB0aW9uUEtDUyAjMSBTSEEtMSBXaXRoIFJTQSBFbmNyeXB0aW9uUEtDUyAjMSBTSEEtMjU2IFdpdGggUlNBIEVuY3J5cHRpb25QS0NTICMxIFNIQS0zODQgV2l0aCBSU0EgRW5jcnlwdGlvblBLQ1MgIzEgU0hBLTUxMiBXaXRoIFJTQSBFbmNyeXB0aW9uWDkuNjIgRUNEU0EgU2lnbmF0dXJlIHdpdGggU0hBLTFYOS42MiBFQ0RTQSBTaWduYXR1cmUgd2l0aCBTSEEtMjU2WDkuNjIgRUNEU0EgU2lnbmF0dXJlIHdpdGggU0hBLTM4NFg5LjYyIEVDRFNBIFNpZ25hdHVyZSB3aXRoIFNIQS01MTJFbGxpcHRpYyBDdXJ2ZSBQdWJsaWMgS2V5U0VDRyBlbGxpcHRpYyBjdXJ2ZSBzZWNwMjU2cjEgKGFrYSBBTlNJIFg5LjYyIHByaW1lMjU2djEsIE5JU1QgUC0yNTYpU0VDRyBlbGxpcHRpYyBjdXJ2ZSBzZWNwMzg0cjEgKGFrYSBOSVNUIFAtMzg0KVNFQ0cgZWxsaXB0aWMgY3VydmUgc2VjcDUyMXIxIChha2EgTklTVCBQLTUyMSlOZXRzY2FwZSBDZXJ0aWZpY2F0ZSBUeXBlRW1haWwgQ2VydGlmaWNhdGVFbWFpbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eU5ldHNjYXBlIENlcnRpZmljYXRlIEJhc2UgVVJMTmV0c2NhcGUgQ2VydGlmaWNhdGUgUmV2b2NhdGlvbiBVUkxOZXRzY2FwZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSZXZvY2F0aW9uIFVSTE5ldHNjYXBlIENlcnRpZmljYXRlIFJlbmV3YWwgVVJMTmV0c2NhcGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUG9saWN5IFVSTE5ldHNjYXBlIENlcnRpZmljYXRlIFNTTCBTZXJ2ZXIgTmFtZU5ldHNjYXBlIENlcnRpZmljYXRlIENvbW1lbnROZXRzY2FwZSBMb3N0IFBhc3N3b3JkIFVSTE5ldHNjYXBlIENlcnRpZmljYXRlIFJlbmV3YWwgVGltZUNlcnRpZmljYXRlIFN1YmplY3QgRGlyZWN0b3J5IEF0dHJpYnV0ZXNDZXJ0aWZpY2F0ZSBTdWJqZWN0IEtleSBJREtleSBJRDogJDFJc3N1ZXI6ICQxU2VyaWFsIE51bWJlcjogJDFDZXJ0aWZpY2F0ZSBLZXkgVXNhZ2VDZXJ0aWZpY2F0ZSBJc3N1ZXIgQWx0ZXJuYXRpdmUgTmFtZUNlcnRpZmljYXRlIEJhc2ljIENvbnN0cmFpbnRzQ2VydGlmaWNhdGUgTmFtZSBDb25zdHJhaW50c0NSTCBEaXN0cmlidXRpb24gUG9pbnRzQ2VydGlmaWNhdGUgUG9saWNpZXNDZXJ0aWZpY2F0ZSBQb2xpY3kgTWFwcGluZ3NDZXJ0aWZpY2F0ZSBQb2xpY3kgQ29uc3RyYWludHNDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBLZXkgSURFeHRlbmRlZCBLZXkgVXNhZ2VBdXRob3JpdHkgSW5mb3JtYXRpb24gQWNjZXNzU2lnbmluZ05vbi1yZXB1ZGlhdGlvbktleSBFbmNpcGhlcm1lbnREYXRhIEVuY2lwaGVybWVudEtleSBBZ3JlZW1lbnRDZXJ0aWZpY2F0ZSBTaWduZXJDUkwgU2lnbmVyRW5jaXBoZXIgT25seUlzIGEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHlJcyBub3QgYSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eU1heGltdW0gbnVtYmVyIG9mIGludGVybWVkaWF0ZSBDQXM6ICQxdW5saW1pdGVkQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1lbnQgUG9pbnRlclVzZXIgTm90aWNlVW51c2VkS2V5IENvbXByb21pc2VDQSBDb21wcm9taXNlQWZmaWxpYXRpb24gQ2hhbmdlZFN1cGVyc2VkZWRDZXNzYXRpb24gb2YgT3BlcmF0aW9uQ2VydGlmaWNhdGUgb24gSG9sZE9DU1AgUmVzcG9uZGVyOiAkMUNBIElzc3VlcnM6ICQxJDE6RW1haWwgQWRkcmVzc0ROUyBOYW1lWC40MDAgQWRkcmVzc1guNTAwIE5hbWVFREkgUGFydHkgTmFtZVVSSUlQIEFkZHJlc3NSZWdpc3RlcmVkIE9JRE1pY3Jvc29mdCBDZXJ0aWZpY2F0ZSBUZW1wbGF0ZSBOYW1lTWljcm9zb2Z0IENBIFZlcnNpb25NaWNyb3NvZnQgUHJpbmNpcGFsIE5hbWVNaWNyb3NvZnQgRG9tYWluIEdVSURUTFMgV1dXIFNlcnZlciBBdXRoZW50aWNhdGlvblRMUyBXV1cgQ2xpZW50IEF1dGhlbnRpY2F0aW9uQ29kZSBTaWduaW5nRW1haWwgUHJvdGVjdGlvblRpbWUgU3RhbXBpbmdTaWduaW5nIE9DU1AgUmVzcG9uc2VzTWljcm9zb2Z0IEluZGl2aWR1YWwgQ29kZSBTaWduaW5nTWljcm9zb2Z0IENvbW1lcmNpYWwgQ29kZSBTaWduaW5nTWljcm9zb2Z0IFRydXN0IExpc3QgU2lnbmluZ01pY3Jvc29mdCBUaW1lIFN0YW1waW5nTWljcm9zb2Z0IFNlcnZlciBHYXRlZCBDcnlwdG9ncmFwaHlNaWNyb3NvZnQgRW5jcnlwdGluZyBGaWxlIFN5c3RlbU1pY3Jvc29mdCBGaWxlIFJlY292ZXJ5TWljcm9zb2Z0IFdpbmRvd3MgSGFyZHdhcmUgRHJpdmVyIFZlcmlmaWNhdGlvbk1pY3Jvc29mdCBRdWFsaWZpZWQgU3Vib3JkaW5hdGlvbk1pY3Jvc29mdCBLZXkgUmVjb3ZlcnlNaWNyb3NvZnQgRG9jdW1lbnQgU2lnbmluZ01pY3Jvc29mdCBMaWZldGltZSBTaWduaW5nTWljcm9zb2Z0IFNtYXJ0IENhcmQgTG9nb25NaWNyb3NvZnQgS2V5IFJlY292ZXJ5IEFnZW50TmV0c2NhcGUgSW50ZXJuYXRpb25hbCBTdGVwLVVwQ3JpdGljYWxOb3QgQ3JpdGljYWxFcnJvcjogVW5hYmxlIHRvIGRlY29kZSBleHRlbnNpb25DZXJ0aWZpY2F0ZSBtYW5hZ2VyaGFyZHdhcmUtYmFja2VkJDEgKGV4dGVuc2lvbiBwcm92aWRlZCkiJDEiIGlzIGRlYnVnZ2luZyB0aGlzIGJyb3dzZXJEZXZUb29scyByZXF1ZXN0cyBmdWxsIGFjY2VzcyB0byAkMS4gTWFrZSBzdXJlIHlvdSBkbyBub3QgZXhwb3NlIGFueSBzZW5zaXRpdmUgaW5mb3JtYXRpb24uRGVueU5vcm1hbCBSZWxvYWRIYXJkIFJlbG9hZEVtcHR5IENhY2hlIGFuZCBIYXJkIFJlbG9hZEVuZCBwcm9jZXNzUHJvY2VzcyBJREdESSBoYW5kbGVzVVNFUiBoYW5kbGVzVGFza05hQ2wgZGVidWcgcG9ydE5ldHdvcmtDUFVTdGFydCBUaW1lQ1BVIFRpbWVNZW1vcnkgZm9vdHByaW50U3dhcHBlZCBtZW1vcnlQcm9maWxlSWRsZSB3YWtlIHVwc0hhcmQgZmF1bHRzRmlsZSBkZXNjcmlwdG9yc1Byb2Nlc3MgcHJpb3JpdHlJbWFnZSBjYWNoZVNjcmlwdCBjYWNoZUNTUyBjYWNoZUdQVSBtZW1vcnlTUUxpdGUgbWVtb3J5SmF2YVNjcmlwdCBtZW1vcnlNZW1vcnkgc3RhdGVLZWVwYWxpdmUgY291bnQkMUskMUsgKCQySyBsaXZlKeKAk0xvd05vcm1hbFRocm90dGxlZFN1c3BlbmRlZCQxICgkMiBwZWFrKUJyb3dzZXJFeHRlbnNpb246ICQxSW5jb2duaXRvIEV4dGVuc2lvbjogJDFBcHA6ICQxSW5jb2duaXRvIEFwcDogJDFUYWI6ICQxSW5jb2duaXRvIFRhYjogJDFCYWNrZ3JvdW5kIEFwcDogJDFCYWNrZ3JvdW5kIFBhZ2U6ICQxUGx1Z2luOiAkMVBsdWdpbiBCcm9rZXI6ICQxUHJlcmVuZGVyOiAkMVJlbmRlcmVyOiAkMVVua25vd24gcGx1Z2luVXRpbGl0eTogJDFOYXRpdmUgQ2xpZW50IG1vZHVsZTogJDFOYXRpdmUgQ2xpZW50IHNlY3VyaXR5IG1hbmFnZXJHUFUgUHJvY2Vzc1ByaW50OiAkMVN1YmZyYW1lOiAkMUluY29nbml0byBTdWJmcmFtZTogJDFTZXJ2aWNlOiAkMVJlY2VpdmVyOiAkMVN5c3RlbTogJDFTdWJmcmFtZXMgZm9yOiAkMUluY29nbml0byBzdWJmcmFtZXMgZm9yOiAkMUltYWdlIERlY29kZXJWOCBQcm94eSBSZXNvbHZlckNocm9tZSBGaWxlIFV0aWxpdGllc1Byb2ZpbGUgSW1wb3J0ZXJDaHJvbWUgT1MgU3lzdGVtIEltYWdlIFdyaXRlck1lZGlhIEZpbGUgQ2hlY2tlclBhdGNoIFNlcnZpY2VQcm9maWxpbmcgU2VydmljZVVuemlwIFNlcnZpY2VJbnN0YWxsZWQgdGhlbWUgIiQxIlJlc3RhcnQgbm93RG9uJ3QgcmVzdGFydFRvIHJlLWVuYWJsZSBpdCwgYWNjZXB0IHRoZSBuZXcgcGVybWlzc2lvbnM6R29vZ2xlIGhhcyBmbGFnZ2VkICIkMSIgYXMgbWFsaWNpb3VzIGFuZCBpbnN0YWxsYXRpb24gaGFzIGJlZW4gcHJldmVudGVkJDEgd2FzIGFkZGVkIHJlbW90ZWx5JDEgaXMgZGlzYWJsZWRSZWxvYWQgcGFnZSB0byB1c2UgdGhpcyBleHRlbnNpb25Vbmluc3RhbGwgYXBwPyIkMSIgd2lsbCBiZSB1bmluc3RhbGxlZC5EYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFwcCB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGlzIGRldmljZS5Db25maXJtIFJlbW92YWxDb25maXJtIFBlcm1pc3Npb25zQWRkICIkMSIgZm9yICQyP0FkZCAiJDEiP1JlbW92ZSAiJDEiPyIkMSIgd291bGQgbGlrZSB0byByZW1vdmUgIiQyIi5UaGUgbmV3ZXN0IHZlcnNpb24gb2YgIiQxIiBoYXMgYmVlbiBkaXNhYmxlZCBiZWNhdXNlIGl0IHJlcXVpcmVzIG1vcmUgcGVybWlzc2lvbnMuIiQxIiBoYXMgcmVxdWVzdGVkIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMuQ3VycmVudCBQZXJtaXNzaW9ucyBmb3IgIiQxIkVuYWJsZSAiJDEiP1JlcGFpciAiJDEiP0Fub3RoZXIgcHJvZ3JhbSBvbiB5b3VyIGNvbXB1dGVyIGFkZGVkIGFuIGFwcCB0aGF0IG1heSBjaGFuZ2UgdGhlIHdheSBDaHJvbWUgd29ya3MuCgoKJDFBbm90aGVyIHByb2dyYW0gb24geW91ciBjb21wdXRlciBhZGRlZCBhbiBleHRlbnNpb24gdGhhdCBtYXkgY2hhbmdlIHRoZSB3YXkgQ2hyb21lIHdvcmtzLgoKJDFBbm90aGVyIHByb2dyYW0gb24geW91ciBjb21wdXRlciBhZGRlZCBhIHRoZW1lIHRoYXQgbWF5IGNoYW5nZSB0aGUgd2F5IENocm9tZSB3b3Jrcy4KCiQxRW5hYmxlIGV4dGVuc2lvbkVuYWJsZSBhcHBFbmFibGUgdGhlbWVSZW1vdmUgZnJvbSBDaHJvbWVDb25maXJtIENoYW5nZXNUaGUgZXh0ZW5zaW9uICIkMSIgaGFzIGJlZW4gYWRkZWQuVGhlIGV4dGVuc2lvbiAiJDEiIHdhcyBhdXRvbWF0aWNhbGx5IGRpc2FibGVkLlRoZSBhcHAgIiQxIiBoYXMgYmVlbiBhZGRlZC5UaGUgYXBwICIkMSIgd2FzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZC5PSyQxIHdhbnRzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGFwcCAiJDIiJDEgd2FudHMgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgZXh0ZW5zaW9uICIkMiJJdCBjYW46SXQgY2FuIG5vdzpJdCBjb3VsZDpIYXMgbm8gc3BlY2lhbCBwZXJtaXNzaW9ucy7igKIgJDEoJDEpezEsIHBsdXJhbCwKICAgICAgICAgID0xIHtSYXRlZCB7MCwgbnVtYmVyLDAuMH0gYnkgb25lIHVzZXIufQogICAgICAgICAgb3RoZXJ7UmF0ZWQgezAsIG51bWJlciwwLjB9IGJ5ICMgdXNlcnMufX1Ob3QgeWV0IHJhdGVkIGJ5IGFueSB1c2Vycy4kMSB1c2Vyc09wZW4gaW4gV2ViIFN0b3Jle05VTV9GSUxFUywgcGx1cmFsLAogICAgICAgICA9MSB7SXQgaGFzIHBlcm1hbmVudCBhY2Nlc3MgdG8gb25lIGZpbGUufQogICAgICAgICBvdGhlciB7SXQgaGFzIHBlcm1hbmVudCBhY2Nlc3MgdG8gIyBmaWxlcy59fVJlYWQgYW5kIGNoYW5nZSBhbGwgeW91ciBkYXRhIG9uIHlvdXIgY29tcHV0ZXIgYW5kIHRoZSB3ZWJzaXRlcyB5b3UgdmlzaXRSZWFkIGFuZCBjaGFuZ2UgYWxsIHlvdXIgZGF0YSBvbiB0aGUgd2Vic2l0ZXMgeW91IHZpc2l0UmVhZCBhbmQgY2hhbmdlIGFsbCB5b3VyIGRhdGEgb24gdGhlIGN1cnJlbnQgd2Vic2l0ZSB3aGVuIGludm9rZWRSZWFkIGFsbCB5b3VyIGRhdGEgb24gdGhlIHdlYnNpdGVzIHlvdSB2aXNpdFVzZSB5b3VyIG1pY3JvcGhvbmVVc2UgeW91ciBjYW1lcmFVc2UgeW91ciBtaWNyb3Bob25lIGFuZCBjYW1lcmFBY2Nlc3MgaW5mb3JtYXRpb24gYWJvdXQgQmx1ZXRvb3RoIGRldmljZXMgcGFpcmVkIHdpdGggeW91ciBzeXN0ZW0gYW5kIGRpc2NvdmVyIG5lYXJieSBCbHVldG9vdGggZGV2aWNlcy5TZW5kIG1lc3NhZ2VzIHRvIGFuZCByZWNlaXZlIG1lc3NhZ2VzIGZyb20gQmx1ZXRvb3RoIGRldmljZXMuQ29udHJvbCBCbHVldG9vdGggYWRhcHRlciBzdGF0ZSBhbmQgcGFpcmluZ0FjY2VzcyB5b3VyIEJsdWV0b290aCBhbmQgU2VyaWFsIGRldmljZXNSZWFkIGFuZCBjaGFuZ2UgeW91ciBib29rbWFya3NSZWFkIGRhdGEgeW91IGNvcHkgYW5kIHBhc3RlUmVhZCBhbmQgbW9kaWZ5IGRhdGEgeW91IGNvcHkgYW5kIHBhc3RlTW9kaWZ5IGRhdGEgeW91IGNvcHkgYW5kIHBhc3RlQWNjZXNzIHRoZSBwYWdlIGRlYnVnZ2VyIGJhY2tlbmRCbG9jayBwYXJ0cyBvZiB3ZWIgcGFnZXNBY2Nlc3MgZG9jdW1lbnQgc2Nhbm5lcnMgYXR0YWNoZWQgdmlhIFVTQiBvciBvbiB0aGUgbG9jYWwgbmV0d29ya1JlYWQgdGhlIGljb25zIG9mIHRoZSB3ZWJzaXRlcyB5b3UgdmlzaXREZXRlY3QgeW91ciBwaHlzaWNhbCBsb2NhdGlvblJlYWQgeW91ciBicm93c2luZyBoaXN0b3J5UmVhZCB5b3VyIGJyb3dzaW5nIGhpc3Rvcnkgb24gYWxsIHlvdXIgc2lnbmVkLWluIGRldmljZXNSZWFkIGFuZCBjaGFuZ2UgeW91ciBicm93c2luZyBoaXN0b3J5UmVhZCBhbmQgY2hhbmdlIHlvdXIgYnJvd3NpbmcgaGlzdG9yeSBvbiBhbGwgeW91ciBzaWduZWQtaW4gZGV2aWNlc0NoYW5nZSB5b3VyIGhvbWUgcGFnZSB0bzogJDFSZWFkIGFuZCBjaGFuZ2UgeW91ciBkYXRhIG9uICQxUmVhZCB5b3VyIGRhdGEgb24gJDFSZWFkIGFuZCBjaGFuZ2UgeW91ciBkYXRhIG9uICQxIGFuZCAkMlJlYWQgeW91ciBkYXRhIG9uICQxIGFuZCAkMlJlYWQgYW5kIGNoYW5nZSB5b3VyIGRhdGEgb24gJDEsICQyLCBhbmQgJDNSZWFkIHlvdXIgZGF0YSBvbiAkMSwgJDIsIGFuZCAkM1JlYWQgYW5kIGNoYW5nZSB5b3VyIGRhdGEgb24gYSBudW1iZXIgb2Ygd2Vic2l0ZXNSZWFkIHlvdXIgZGF0YSBvbiBhIG51bWJlciBvZiB3ZWJzaXRlc2FsbCAkMSBzaXRlc0FsbCAkMSBzaXRlc1JlYWQgYW5kIGNoYW5nZSBhbnl0aGluZyB5b3UgdHlwZU1hbmFnZSB5b3VyIGFwcHMsIGV4dGVuc2lvbnMsIGFuZCB0aGVtZXNEaXNjb3ZlciBkZXZpY2VzIG9uIHlvdXIgbG9jYWwgbmV0d29ya0FjY2VzcyBsaXN0IG9mIG5ldHdvcmsgY29ubmVjdGlvbnNDb25maWd1cmUgbmV0d29yayBjb25uZWN0aW9uc01hbmFnZSBuZXR3b3JrIGNvbm5lY3Rpb25zQ2hhbmdlIHlvdXIgc2VhcmNoIHNldHRpbmdzIHRvOiAkMUFjY2VzcyB5b3VyIHNlcmlhbCBkZXZpY2VzRXhjaGFuZ2UgZGF0YSB3aXRoIGFueSBkZXZpY2Ugb24gdGhlIGxvY2FsIG5ldHdvcmsgb3IgaW50ZXJuZXRFeGNoYW5nZSBkYXRhIHdpdGggYW55IGRldmljZSBpbiB0aGUgZG9tYWluICQxRXhjaGFuZ2UgZGF0YSB3aXRoIGFueSBkZXZpY2UgaW4gdGhlIGRvbWFpbnM6ICQxRXhjaGFuZ2UgZGF0YSB3aXRoIHRoZSBkZXZpY2UgbmFtZWQgJDFFeGNoYW5nZSBkYXRhIHdpdGggdGhlIGRldmljZXMgbmFtZWQ6ICQxQ2hhbmdlIHlvdXIgc3RhcnQgcGFnZSB0bzogJDFJZGVudGlmeSBhbmQgZWplY3Qgc3RvcmFnZSBkZXZpY2VzUmVhZCBhIGxpc3Qgb2YgeW91ciBtb3N0IGZyZXF1ZW50bHkgdmlzaXRlZCB3ZWJzaXRlc1JlYWQgYWxsIHRleHQgc3Bva2VuIHVzaW5nIHN5bnRoZXNpemVkIHNwZWVjaEFjY2VzcyB5b3VyIFVuaXZlcnNhbCAybmQgRmFjdG9yIGRldmljZXNEaXNwbGF5IG5vdGlmaWNhdGlvbnNBY2Nlc3MgYW55ICQxIHZpYSBVU0JBY2Nlc3MgYW55IG9mIHRoZXNlIFVTQiBkZXZpY2VzdW5rbm93biBkZXZpY2VzIGZyb20gJDFkZXZpY2VzIGZyb20gYW4gdW5rbm93biB2ZW5kb3JBY2Nlc3MgVVNCIGRldmljZXMgZnJvbSAkMUFjY2VzcyBVU0IgZGV2aWNlcyBmcm9tIGFuIHVua25vd24gdmVuZG9yQWNjZXNzIHlvdXIgbmV0d29yayB0cmFmZmljQ29tbXVuaWNhdGUgd2l0aCBjb29wZXJhdGluZyB3ZWJzaXRlc0NoYW5nZSB5b3VyIHNldHRpbmdzIHRoYXQgY29udHJvbCB3ZWJzaXRlcycgYWNjZXNzIHRvIGZlYXR1cmVzIHN1Y2ggYXMgY29va2llcywgSmF2YVNjcmlwdCwgcGx1Z2lucywgZ2VvbG9jYXRpb24sIG1pY3JvcGhvbmUsIGNhbWVyYSBldGMuQ2hhbmdlIHlvdXIgcHJpdmFjeS1yZWxhdGVkIHNldHRpbmdzUmVhZCB0aGUgbGlzdCBvZiB5b3VyIHNpZ25lZC1pbiBkZXZpY2VzTWFuYWdlIHlvdXIgZG93bmxvYWRzT3BlbiBkb3dubG9hZGVkIGZpbGVzS25vdyB5b3VyIGVtYWlsIGFkZHJlc3NDaGFuZ2UgeW91ciB3YWxscGFwZXJSZWFkIGZvbGRlcnMgdGhhdCB5b3Ugb3BlbiBpbiB0aGUgYXBwbGljYXRpb25Xcml0ZSB0byBmaWxlcyBhbmQgZm9sZGVycyB0aGF0IHlvdSBvcGVuIGluIHRoZSBhcHBsaWNhdGlvbkFjY2VzcyBwaG90b3MsIG11c2ljLCBhbmQgb3RoZXIgbWVkaWEgZnJvbSB5b3VyIGNvbXB1dGVyUmVhZCBhbmQgY2hhbmdlIHBob3RvcywgbXVzaWMsIGFuZCBvdGhlciBtZWRpYSBmcm9tIHlvdXIgY29tcHV0ZXJSZWFkIGFuZCBkZWxldGUgcGhvdG9zLCBtdXNpYywgYW5kIG90aGVyIG1lZGlhIGZyb20geW91ciBjb21wdXRlclJlYWQsIGNoYW5nZSBhbmQgZGVsZXRlIHBob3RvcywgbXVzaWMsIGFuZCBvdGhlciBtZWRpYSBmcm9tIHlvdXIgY29tcHV0ZXJTdG9yZSBkYXRhIGluIHlvdXIgR29vZ2xlIERyaXZlIGFjY291bnRSZWFkIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgY29tcHV0ZXJDb21tdW5pY2F0ZSB3aXRoIGNvb3BlcmF0aW5nIG5hdGl2ZSBhcHBsaWNhdGlvbnNMb2NrIGFuZCB1bmxvY2sgdGhlIHNjcmVlbkNoYW5nZSB0aGUgYm9va21hcmtzIHVzZXIgaW50ZXJmYWNlTW9uaXRvciB0aGUgYmVoYXZpb3Igb2Ygb3RoZXIgZXh0ZW5zaW9ucywgaW5jbHVkaW5nIHZpc2l0ZWQgVVJMc0NhcHR1cmUgY29udGVudCBvZiB5b3VyIHNjcmVlbkNoYW5nZSB5b3VyIGFjY2Vzc2liaWxpdHkgc2V0dGluZ3NSZWFkIHlvdXIgYWNjZXNzaWJpbGl0eSBzZXR0aW5nc1JlYWQgYW5kIGNoYW5nZSB5b3VyIGFjY2Vzc2liaWxpdHkgc2V0dGluZ3NVc2UgeW91ciBjbGllbnQgY2VydGlmaWNhdGVzUHJvdmlkZSBjZXJ0aWZpY2F0ZXMgZm9yIGF1dGhlbnRpY2F0aW9uUmVhZCBhbmQgY2hhbmdlIHVzZXIgYW5kIGRldmljZSBzZXR0aW5nc1JlYWQgYW5kIGNoYW5nZSBhdXRvZmlsbCBzZXR0aW5nc1JlYWQgYW5kIGNoYW5nZSBzYXZlZCBwYXNzd29yZCBzZXR0aW5nc1JlYWQgYW5kIGNoYW5nZSB3aGl0ZWxpc3RlZCB1c2Vyc1NlbmQgYXVkaW8gYW5kIHZpZGVvIHRvIGRpc3BsYXlzIG9uIHRoZSBsb2NhbCBuZXR3b3JrUmVwbGFjZSB0aGUgcGFnZSB5b3Ugc2VlIHdoZW4gb3BlbmluZyBhIG5ldyB0YWJBdHRlbXB0ZWQgdG8gZG93bmdyYWRlIGV4dGVuc2lvbi5BdHRlbXB0ZWQgdG8gZG93bmdyYWRlIGFwcC5Db3VsZCBub3QgbW92ZSBleHRlbnNpb24gZGlyZWN0b3J5IGludG8gcHJvZmlsZS5JbnN0YWxsYXRpb24gaXMgbm90IGVuYWJsZWRBcHBzIG11c3QgYmUgc2VydmVkIHdpdGggY29udGVudC10eXBlICIkMSJBcHBzIG11c3QgYmUgc2VydmVkIGZyb20gdGhlIGhvc3QgdGhleSBhZmZlY3RFeHBlY3RlZCBJRCAiJDEiLCBidXQgSUQgd2FzICIkMiJBcHBzLCBleHRlbnNpb25zLCBhbmQgdXNlciBzY3JpcHRzIGNhbm5vdCBiZSBhZGRlZCBmcm9tIHRoaXMgd2Vic2l0ZUV4cGVjdGVkIHZlcnNpb24gIiQxIiwgYnV0IHZlcnNpb24gd2FzICIkMiJFeHRlbnNpb24gcmVxdWlyZXMgIiQxIiB3aXRoIGEgbWluaW11bSB2ZXJzaW9uICIkMiIsIGJ1dCBvbmx5IHZlcnNpb24gIiQzIiBpcyBpbnN0YWxsZWRVbmFibGUgdG8gaW1wb3J0IGV4dGVuc2lvbiAiJDEiIGJlY2F1c2UgaXQgaXMgbm90IGEgc2hhcmVkIG1vZHVsZVVuYWJsZSB0byBpbnN0YWxsICIkMSIgYmVjYXVzZSBpdCBpcyBub3QgYWxsb3dlZCBieSAiJDIiVGhpcyBjYW4gb25seSBiZSBhZGRlZCBmcm9tIHRoZSAkMUFwcCB3aXRoICdraW9za19vbmx5JyBtYW5pZmVzdCBhdHRyaWJ1dGUgbXVzdCBiZSBpbnN0YWxsZWQgaW4gQ2hyb21lIE9TIGtpb3NrIG1vZGVDb3VsZCBub3QgYWRkIGFwcGxpY2F0aW9uICIkMSIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCAiJDIiLkNvdWxkIG5vdCBsb2FkICckMScgZm9yIHRoZW1lLkNvdWxkIG5vdCBsb2FkIGljb24gJyQxJyBmb3IgcGFnZSBhY3Rpb24uQ291bGQgbm90IGxvYWQgaWNvbiAnJDEnIGZvciBicm93c2VyIGFjdGlvbi5UaGlzIGljb24gd2lsbCBiZSB2aXNpYmxlIHdoZW4gdGhlIGV4dGVuc2lvbiBjYW4gYWN0IG9uIHRoZSBjdXJyZW50IHBhZ2UuVGhpcyBpY29uIHdpbGwgYmUgdmlzaWJsZSB3aGVuIHRoZSBleHRlbnNpb24gY2FuIGFjdCBvbiB0aGUgY3VycmVudCBwYWdlLiBVc2UgdGhpcyBleHRlbnNpb24gYnkgY2xpY2tpbmcgb24gdGhlIGljb24gb3IgYnkgcHJlc3NpbmcgJDEuVXNlIHRoaXMgZXh0ZW5zaW9uIGJ5IGNsaWNraW5nIG9uIHRoaXMgaWNvbi5Vc2UgdGhpcyBleHRlbnNpb24gYnkgY2xpY2tpbmcgb24gdGhpcyBpY29uIG9yIGJ5IHByZXNzaW5nICQxLlRvIHVzZSB0aGlzIGV4dGVuc2lvbiwgdHlwZSAiJDEiLCB0aGVuIFRBQiwgdGhlbiB5b3VyIGNvbW1hbmQgb3Igc2VhcmNoLk1hbmFnZSB5b3VyIGV4dGVuc2lvbnMgYnkgY2xpY2tpbmcgRXh0ZW5zaW9ucyBpbiB0aGUgVG9vbHMgbWVudS5NYW5hZ2Ugc2hvcnRjdXRzVG8gZ2V0IHlvdXIgZXh0ZW5zaW9ucyBvbiBhbGwgeW91ciBjb21wdXRlcnMsICQxLlRvIGdldCBhbGwgeW91ciBleHRlbnNpb25zIG9uIGFsbCB5b3VyIGRldmljZXMsIHNpZ24gaW4gYW5kIHR1cm4gb24gc3luYy5UbyBnZXQgYWxsIHlvdXIgZXh0ZW5zaW9ucyBvbiBhbGwgeW91ciBkZXZpY2VzLCB0dXJuIG9uIHN5bmMuQ29uZmlybSBBY2Nlc3NUaGUgZm9sZGVyIHlvdSBzZWxlY3RlZCBjb250YWlucyBzZW5zaXRpdmUgZmlsZXMuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBncmFudCAiJDEiIHBlcm1hbmVudCByZWFkIGFjY2VzcyB0byB0aGlzIGZvbGRlcj9UaGUgZm9sZGVyIHlvdSBzZWxlY3RlZCBjb250YWlucyBzZW5zaXRpdmUgZmlsZXMuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBncmFudCAiJDEiIHBlcm1hbmVudCB3cml0ZSBhY2Nlc3MgdG8gdGhpcyBmb2xkZXI/RXJyb3IgTG9hZGluZyBFeHRlbnNpb25GYWlsZWQgdG8gbG9hZCBleHRlbnNpb24gZnJvbTpBbGxvdyBhY2Nlc3NPbiAkMUluc3RhbGxlZCBieSB5b3VyIGFkbWluaXN0cmF0b3JIaWRlIGJ1dHRvbktlZXAgaW4gdG9vbGJhclNob3cgaW4gdG9vbGJhck1hbmFnZSBleHRlbnNpb25zSW5zcGVjdCBwb3B1cEFwcHMgYW5kIGV4dGVuc2lvbnMgY2FuIG9ubHkgYmUgbW9kaWZpZWQgYnkgdGhlIG1hbmFnZXIgKCQxKS5JbnN0YWxsZWQgYnkgeW91ciBwYXJlbnQuSW5zdGFsbGVkIGJ5IHlvdXIgY3VzdG9kaWFuLlNlbGVjdCB0aGUgZXh0ZW5zaW9uIGRpcmVjdG9yeS5BY3RpdmF0ZSB0aGUgZXh0ZW5zaW9uU2VsZWN0IHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgZXh0ZW5zaW9uIHRvIHBhY2suIFRvIHVwZGF0ZSBhbiBleHRlbnNpb24sIGFsc28gc2VsZWN0IHRoZSBwcml2YXRlIGtleSBmaWxlIHRvIHJldXNlLlNlbGVjdCBwcml2YXRlIGtleSBmaWxlLlByaXZhdGUga2V5RXh0ZW5zaW9uIHJvb3QgZGlyZWN0b3J5IGlzIHJlcXVpcmVkLkV4dGVuc2lvbiByb290IGRpcmVjdG9yeSBpcyBpbnZhbGlkLlByaXZhdGUga2V5IGZpbGUgaXMgaW52YWxpZC5DcmVhdGVkIHRoZSBmb2xsb3dpbmcgZmlsZXM6CgpFeHRlbnNpb246ICQxCktleSBGaWxlOiAkMgoKS2VlcCB5b3VyIGtleSBmaWxlIGluIGEgc2FmZSBwbGFjZS4gWW91IHdpbGwgbmVlZCBpdCB0byBjcmVhdGUgbmV3IHZlcnNpb25zIG9mIHlvdXIgZXh0ZW5zaW9uLkNyZWF0ZWQgdGhlIGV4dGVuc2lvbjoKCiQxQWRkQWRkIGV4dGVuc2lvbkFkZCBhcHBBZGQgdGhlbWVSZXBvcnQgYWJ1c2VSZXBvcnQgYWJ1c2UgZnJvbSAiJDEiVW5pbnN0YWxsIiQxIiB3b3VsZCBsaWtlIHRvIHJlbW92ZSB0aGlzIGV4dGVuc2lvbi5SZS1lbmFibGVBY2NlcHQgcGVybWlzc2lvbnNSZXZva2UgZmlsZSBhY2Nlc3NSZXZva2UgZGV2aWNlIGFjY2Vzc1Jldm9rZSBmaWxlIGFuZCBkZXZpY2UgYWNjZXNzUmVwYWlyIGV4dGVuc2lvblJlcGFpciBhcHBXZWIgU3RvcmVTaG93IERldGFpbHNIaWRlIERldGFpbHNBY2Nlc3MgZGVuaWVkLkV4dGVuc2lvbiBlcnJvck5ldyBleHRlbnNpb24gYWRkZWQgKCQxKU5ldyBhcHAgYWRkZWQgKCQxKU5ldyB0aGVtZSBhZGRlZCAoJDEpIiQxIiBhZGRlZEFub3RoZXIgcHJvZ3JhbSBvbiB5b3VyIGNvbXB1dGVyIGFkZGVkIGFuIGFwcCB0aGF0IG1heSBjaGFuZ2UgdGhlIHdheSBDaHJvbWUgd29ya3MuQW5vdGhlciBwcm9ncmFtIG9uIHlvdXIgY29tcHV0ZXIgYWRkZWQgYW4gZXh0ZW5zaW9uIHRoYXQgbWF5IGNoYW5nZSB0aGUgd2F5IENocm9tZSB3b3Jrcy5Bbm90aGVyIHByb2dyYW0gb24geW91ciBjb21wdXRlciBhZGRlZCBhIHRoZW1lIHRoYXQgbWF5IGNoYW5nZSB0aGUgd2F5IENocm9tZSB3b3Jrcy5VbnN1cHBvcnRlZCBleHRlbnNpb25zIGRpc2FibGVkYW5kICQxIG1vcmVUaGlzIGV4dGVuc2lvbiBpcyBub3QgbGlzdGVkIGluIHRoZSAkMSBhbmQgbWF5IGhhdmUgYmVlbiBhZGRlZCB3aXRob3V0IHlvdXIga25vd2xlZGdlLkRpc2FibGUgZGV2ZWxvcGVyIG1vZGUgZXh0ZW5zaW9uc0V4dGVuc2lvbnMgcnVubmluZyBpbiBkZXZlbG9wZXIgbW9kZSBjYW4gaGFybSB5b3VyIGNvbXB1dGVyLiBJZiB5b3UncmUgbm90IGEgZGV2ZWxvcGVyLCB5b3Ugc2hvdWxkIGRpc2FibGUgdGhlc2UgZXh0ZW5zaW9ucyBydW5uaW5nIGluIGRldmVsb3BlciBtb2RlIHRvIHN0YXkgc2FmZS5JcyB0aGlzIHRoZSBob21lIHBhZ2UgeW91IHdlcmUgZXhwZWN0aW5nP0lzIHRoaXMgdGhlIHN0YXJ0dXAgcGFnZSB5b3Ugd2VyZSBleHBlY3Rpbmc/SXMgdGhpcyB0aGUgc2VhcmNoIHBhZ2UgeW91IHdlcmUgZXhwZWN0aW5nP0lzIHRoaXMgdGhlIG5ldyB0YWIgcGFnZSB5b3Ugd2VyZSBleHBlY3Rpbmc/WW91ciBJbnRlcm5ldCBjb25uZWN0aW9uIGlzIGJlaW5nIGNvbnRyb2xsZWRUaGlzIGV4dGVuc2lvbiBoYXMgY2hhbmdlZCB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3Ugc2VhcmNoIGZyb20gdGhlIE9tbmlib3guVGhlIGV4dGVuc2lvbiAiJDEiIGhhcyBjaGFuZ2VkIHdoYXQgcGFnZSBpcyBzaG93biB3aGVuIHlvdSBzZWFyY2ggZnJvbSB0aGUgT21uaWJveC5UaGlzIGV4dGVuc2lvbiBoYXMgY2hhbmdlZCB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3UgY2xpY2sgdGhlIEhvbWUgYnV0dG9uLlRoZSBleHRlbnNpb24gIiQxIiBoYXMgY2hhbmdlZCB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3UgY2xpY2sgdGhlIEhvbWUgYnV0dG9uLiBJdCBhbHNvIGNvbnRyb2xzIHdoYXQgcGFnZSBpcyBzaG93biB3aGVuIHlvdSBzZWFyY2ggZnJvbSB0aGUgT21uaWJveC4gSXQgYWxzbyBjb250cm9scyB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3UgY2xpY2sgdGhlIEhvbWUgYnV0dG9uLiAgSXQgYWxzbyBjb250cm9scyB3aGF0IHBhZ2UgaXMgc2hvd24gd2hlbiB5b3UgY2xpY2sgdGhlIEhvbWUgYnV0dG9uIG9yIHNlYXJjaCBmcm9tIHRoZSBPbW5pYm94LiBBbiBleHRlbnNpb24gaGFzIGNoYW5nZWQgd2hhdCBwYWdlIGlzIHNob3duIHdoZW4geW91IG9wZW4gYSBuZXcgdGFiLlRoZSBleHRlbnNpb24gIiQxIiBoYXMgdGFrZW4gY29udHJvbCBvZiB5b3VyIHByb3h5IHNldHRpbmdzLCB3aGljaCBtZWFucyBpdCBjYW4gY2hhbmdlLCBicmVhaywgb3IgZWF2ZXNkcm9wIG9uIGFueXRoaW5nIHlvdSBkbyBvbmxpbmUuIElmIHlvdSBhcmVuJ3Qgc3VyZSB3aHkgdGhpcyBjaGFuZ2UgaGFwcGVuZWQsIHlvdSBwcm9iYWJseSBkb24ndCB3YW50IGl0LlRoaXMgZXh0ZW5zaW9uIGhhcyB0YWtlbiBjb250cm9sIG9mIHlvdXIgcHJveHkgc2V0dGluZ3MsIHdoaWNoIG1lYW5zIGl0IGNhbiBjaGFuZ2UsIGJyZWFrLCBvciBlYXZlc2Ryb3Agb24gYW55dGhpbmcgeW91IGRvIG9ubGluZS4gSWYgeW91IGFyZW4ndCBzdXJlIHdoeSB0aGlzIGNoYW5nZSBoYXBwZW5lZCwgeW91IHByb2JhYmx5IGRvbid0IHdhbnQgaXQuIElmIHlvdSBkaWRuJ3Qgd2FudCB0aGVzZSBjaGFuZ2VzLCB5b3UgY2FuIHJlc3RvcmUgeW91ciBwcmV2aW91cyBzZXR0aW5ncy5SZXN0b3JlIHNldHRpbmdzS2VlcCBjaGFuZ2VzQ3VzdG9taXplIGFuZCBjb250cm9sICQxQ29tcG9uZW50c05vIGNvbXBvbmVudHMgaW5zdGFsbGVkLk5vIGNvbXBvbmVudHMgYXJlIGluc3RhbGxlZENoZWNrIGZvciB1cGRhdGVTdGF0dXNDaGVja2luZyBmb3Igc3RhdHVz4oCmTmV3Q2hlY2tpbmdEb3dubG9hZGluZyBkaWZmRG93bmxvYWRpbmdEb3dubG9hZGVkVXBkYXRpbmcgZGlmZlVwZGF0aW5nVXBkYXRlZFVwLXRvLWRhdGVVcGRhdGUgZXJyb3JVcGRhdGVyIHN0YXJ0ZWRVcGRhdGVyIHNsZWVwaW5nVXBkYXRlIGZvdW5kVXBkYXRlIHJlYWR5Q29tcG9uZW50IHVwZGF0ZWRDb21wb25lbnQgbm90IHVwZGF0ZWRDb21wb25lbnQgZG93bmxvYWRpbmcoRGlzYWJsZWQpQ2hvb3NlIHlvdXIgYWNjb3VudCBzYXZlZCB3aXRoICQxIHRvIHNpZ24gaW5TaWduIGluIHdpdGggeW91ciBhY2NvdW50IHNhdmVkIHdpdGggJDFQYXNzd29yZCBzYXZlZFVzZSBzdWdnZXN0ZWQgcGFzc3dvcmRTYXZlZCBwYXNzd29yZFNhdmUgcGFzc3dvcmQ/RG8geW91IHdhbnQgJDEgdG8gc2F2ZSB5b3VyIGFjY291bnQgZm9yIHRoaXMgc2l0ZT9VcGRhdGUgcGFzc3dvcmQ/U2F2ZSBwYXNzd29yZCBmb3IgJDE/VXBkYXRlIHBhc3N3b3JkIGZvciAkMT9QYXNzd29yZHMgYXJlIHNhdmVkIGluIHlvdXIgR29vZ2xlIEFjY291bnQgc28geW91IGNhbiB1c2UgdGhlbSBvbiBhbnkgZGV2aWNlVG8gZ2V0IHlvdXIgcGFzc3dvcmRzIG9uIGFsbCB5b3VyIGRldmljZXMsIHNpZ24gaW4gdG8gQ2hyb21lLlRvIGdldCBhbGwgeW91ciBwYXNzd29yZHMgb24gYWxsIHlvdXIgZGV2aWNlcywgc2lnbiBpbiBhbmQgdHVybiBvbiBzeW5jLlRvIGdldCBhbGwgeW91ciBwYXNzd29yZHMgb24gYWxsIHlvdXIgZGV2aWNlcywgdHVybiBvbiBzeW5jLlNhdmVkIGRhdGFGYXN0ZXIgcGFnZSBsb2FkZWRTaG93IG9yaWdpbmFsVXBkYXRlZCAkMW1pbiBhZ29VcGRhdGVkIDFociBhZ29VcGRhdGVkICQxaHJzIGFnb1VwZGF0ZWQganVzdCBub3dUaGlzIHBhZ2UgdXNlcyBtb3JlIHRoYW4gJDFNQlN0b3BwZWQgbG9hZGluZ1N0b3AgbG9hZGluZ1dlYlJUQyBsb2dzV2ViUlRDIGxvZ3MgKCQxKVdlYlJUQyBsb2cgY2FwdHVyZWQgJDFMb2NhbCBmaWxlOk5vIGxvY2FsIGxvZyBmaWxlLlVwbG9hZGVkICQxUmVwb3J0IElEICQxRmlsZSBidWdMb2cgbm90IHVwbG9hZGVkLllvdSBoYXZlIG5vIHJlY2VudGx5IGNhcHR1cmVkIFdlYlJUQyBsb2dzLlVwZGF0ZSBwbHVnaW5SaWdodC1jbGljayB0byBydW4gJDEkMSBpcyBibG9ja2VkIGJ5IGVudGVycHJpc2UgcG9saWN5JDEgaXMgYmxvY2tlZCQxIGlzIG91dCBvZiBkYXRlJDEgbmVlZHMgeW91ciBwZXJtaXNzaW9uIHRvIHJ1bkRvd25sb2FkaW5nICQx4oCmVGhlcmUgd2FzIGFuIGVycm9yICgkMSkgd2hpbGUgZG93bmxvYWRpbmcgdGhlIHBsdWdpbiQxIGRvd25sb2FkIGZhaWxlZFdoZW4gJDEgZmluaXNoZXMgdXBkYXRpbmcsIHJlbG9hZCB0aGUgcGFnZSB0byBhY3RpdmF0ZSBpdCQxIGRpc2FibGVkLkNsaWNrIHRvIGVuYWJsZSAkMVJlc3RvcmUgcGFnZXM/dXNhZ2Ugc3RhdGlzdGljc1lvdSBhcmUgdXNpbmcgYW4gdW5zdXBwb3J0ZWQgY29tbWFuZC1saW5lIGZsYWc6ICQxLiBTdGFiaWxpdHkgYW5kIHNlY3VyaXR5IHdpbGwgc3VmZmVyLllvdSBhcmUgdXNpbmcgYW4gdW5zdXBwb3J0ZWQgZmVhdHVyZSBmbGFnOiAkMS4gU3RhYmlsaXR5IGFuZCBzZWN1cml0eSB3aWxsIHN1ZmZlci4kMSBvbiAkMiB3YW50cyB0byBhY2Nlc3MgeW91ciBjb21wdXRlclVuc2FuZGJveGVkIHBsdWdpbiBibG9ja2VkVW5zYW5kYm94ZWQgcGx1Z2luIGFsbG93ZWRBbiB1bnNhbmRib3hlZCBwbHVnaW4gd2FzIHByZXZlbnRlZCBmcm9tIHJ1bm5pbmcgb24gdGhpcyBwYWdlLkFuIHVuc2FuZGJveGVkIHBsdWdpbiB3YXMgYWxsb3dlZCB0byBydW4gb24gdGhpcyBwYWdlLkFsd2F5cyBhbGxvdyB1bnNhbmRib3hlZCBwbHVnaW5zIG9uICQxQ29udGludWUgYmxvY2tpbmcgdW5zYW5kYm94ZWQgcGx1Z2luc0NvbnRpbnVlIGFsbG93aW5nIHVuc2FuZGJveGVkIHBsdWdpbnNBbHdheXMgYmxvY2sgdW5zYW5kYm94ZWQgcGx1Z2lucyBvbiAkMUluc2VjdXJlIGNvbnRlbnQgYmxvY2tlZFRoaXMgcGFnZSBpcyB0cnlpbmcgdG8gbG9hZCBzY3JpcHRzIGZyb20gdW5hdXRoZW50aWNhdGVkIHNvdXJjZXMuTG9hZCB1bnNhZmUgc2NyaXB0c0FkZCB0aGlzIHNpdGUgdG8geW91ciBzaGVsZiB0byB1c2UgaXQgYW55IHRpbWVBYm91dCBTeXN0ZW1TeXN0ZW0gZGlhZ25vc3RpYyBkYXRhRGV0YWlsczogJDFFeHBhbmQgYWxs4oCmQ29sbGFwc2UgYWxs4oCmRXhwYW5k4oCmQ29sbGFwc2XigKZVbmFibGUgdG8gcGFyc2UgZmlsZTogJDFBYm91dCBGbGFzaFRoaXMgcGFnZSB1c2VzIGEgTmF0aXZlIENsaWVudCBhcHAgdGhhdCBkb2Vzbid0IHdvcmsgb24geW91ciBjb21wdXRlci5TZWFyY2ggJDEgb3IgdHlwZSBhIFVSTFBhJnN0ZSBhbmQgZ29QYSZzdGUgYW5kIHNlYXJjaFByZXNzICQxIHRvIHNlYXJjaCAkMlByZXNzICQxIHRvIHNlbmQgY29tbWFuZHMgdG8gJDJUYWJTZWFyY2ggJDFTZW5kIGNvbW1hbmRzIHRvICQxU2VhcmNoICQxOkNsaWNrIHRvIHZpZXcgdG9kYXnigJlzIGRvb2RsZUNsZWFyIGlucHV0U2VhcmNoIG9yIHR5cGUgd2ViIGFkZHJlc3NTZWFyY2ggR29vZ2xlIG9yIHR5cGUgVVJMU2VhcmNoIEdvb2dsZSBvciB0eXBlIGEgVVJMQWRkIHNob3J0Y3V0RWRpdCBzaG9ydGN1dERvbmVUeXBlIGEgdmFsaWQgVVJMU2hvcnRjdXQgYWxyZWFkeSBleGlzdHNDYW7igJl0IGNyZWF0ZSBzaG9ydGN1dFNob3J0Y3V0IHJlbW92ZWRTaG9ydGN1dCBlZGl0ZWRTaG9ydGN1dCBhZGRlZFJlc3RvcmUgZGVmYXVsdCBzaG9ydGN1dHNDdXN0b21pemUgdGhpcyBwYWdlR29vZ2xlIFBob3Rvc0Nocm9tZSBiYWNrZ3JvdW5kc1VwbG9hZCBhbiBpbWFnZVNlbGVjdCBhIGNvbGxlY3Rpb25TZWxlY3QgYSBHb29nbGUgUGhvdG9zIGFsYnVtUmVmcmVzaCBkYWlseVN1cnByaXNlIG1lUmVzdG9yZSBkZWZhdWx0IGJhY2tncm91bmRDb25uZWN0aW9uIGVycm9yQ29ubmVjdGlvbiBlcnJvci5Nb3JlIGluZm9CYWNrZ3JvdW5kcyBhcmUgdW5hdmFpbGFibGUuIFRyeSBhZ2FpbiBsYXRlci5JbWFnZSBpcyB1bmF2YWlsYWJsZS4gVHJ5IGFnYWluIGxhdGVyLlRoaXMgaW1hZ2UgY2FuJ3QgYmUgdXNlZC4gQ2hvb3NlIGEgZGlmZmVyZW50IGltYWdlLlBob3Rvc2VsZWN0ZWRDbGljayB0byBnbyBiYWNrLCBob2xkIHRvIHNlZSBoaXN0b3J5UHJlc3MgdG8gZ28gYmFjaywgY29udGV4dCBtZW51IHRvIHNlZSBoaXN0b3J5Q2xpY2sgdG8gZ28gZm9yd2FyZCwgaG9sZCB0byBzZWUgaGlzdG9yeVByZXNzIHRvIGdvIGZvcndhcmQsIGNvbnRleHQgbWVudSB0byBzZWUgaGlzdG9yeU9wZW4gdGhlIGhvbWUgcGFnZVJlbG9hZCB0aGlzIHBhZ2VSZWxvYWQgdGhpcyBwYWdlLCBob2xkIHRvIHNlZSBtb3JlIG9wdGlvbnNTdG9wIGxvYWRpbmcgdGhpcyBwYWdlVmlldyBzaXRlIGluZm9ybWF0aW9uTmV3IHRhYlNlYXJjaCBieSB2b2ljZVNhdmUgY3JlZGl0IGNhcmRIYXZlIHlvdXIgY2FyZHMgaW4gb25lIHBsYWNlVHJhbnNsYXRlIHRoaXMgcGFnZVpvb206ICQxVGhpcyBwYWdlIHdhcyB6b29tZWQgYnkgdGhlICIkMSIgZXh0ZW5zaW9uRmluZCQxIChJbmNvZ25pdG8pJDEgKFVwZGF0ZSBpcyBhdmFpbGFibGUpRnVsbCBzY3JlZW5Ib21lTWVudSBjb250YWluaW5nIGhpZGRlbiBib29rbWFya3NCb29rbWFya3MgbWVudVNlcGFyYXRvck5ldyBUYWJNaW5pbWl6ZU1heGltaXplUmVzdG9yZUNsb3NlICQxUmVzZXQgdG8gZGVmYXVsdCB6b29tIGxldmVsUmVzcG9uZCB0byBBY2Nlc3NpYmlsaXR5IEV2ZW50c1NlZSB0ZXh0IGFuZCBpbWFnZXMgY29waWVkIHRvIHRoZSBjbGlwYm9hcmRDbGlwYm9hcmQgcmVhZCBhY2Nlc3MgYWxsb3dlZENsaXBib2FyZCByZWFkIGFjY2VzcyBkZW5pZWRUaGlzIHNpdGUgY2FuIHNlZSB0ZXh0IGFuZCBpbWFnZXMgY29waWVkIHRvIHRoZSBjbGlwYm9hcmQuQWx3YXlzIGJsb2NrICQxIGZyb20gc2VlaW5nIHRoZSBjbGlwYm9hcmRDb250aW51ZSBhbGxvd2luZyB0aGlzIHNpdGUgdG8gc2VlIHRoZSBjbGlwYm9hcmRUaGlzIHNpdGUgaGFzIGJlZW4gYmxvY2tlZCBmcm9tIHNlZWluZyB0ZXh0IGFuZCBpbWFnZXMgY29waWVkIHRvIHRoZSBjbGlwYm9hcmRBbHdheXMgYWxsb3cgJDEgdG8gc2VlIHRoZSBjbGlwYm9hcmRDb250aW51ZSBibG9ja2luZyB0aGlzIHNpdGUgZnJvbSBzZWVpbmcgdGhlIGNsaXBib2FyZEJvb2ttYXJrIHRoaXMgcGFnZSB0byBlYXNpbHkgZmluZCBpdCBsYXRlcllvdSBjYW4gY2xpY2sgdGhlIHN0YXIgdG8gYm9va21hcmsgYSBwYWdlR2V0IGJhY2sgaGVyZSBmYXN0IGJ5IGJvb2ttYXJraW5nIHRoaXMgcGFnZVlvdSBjYW4gYnJvd3NlIHByaXZhdGVseSB1c2luZyBhbiBpbmNvZ25pdG8gd2luZG93VXNlIHRoZSB3ZWIgd2l0aG91dCBzYXZpbmcgeW91ciBicm93c2luZyBoaXN0b3J5IHdpdGggYW4gaW5jb2duaXRvIHdpbmRvd1VzaW5nIGEgc2hhcmVkIGNvbXB1dGVyPyBUcnkgb3BlbmluZyBhbiBpbmNvZ25pdG8gd2luZG93LlRvIGJyb3dzZSBwcml2YXRlbHksIGNsaWNrIHRoZSBkb3RzIGljb24gbWVudSB0byBvcGVuIGFuIGluY29nbml0byB3aW5kb3dPcGVuIGEgbmV3IHRhYiB3aXRoIG9uZSBjbGlja1lvdSBjYW4gY2xpY2sgaGVyZSB0byBvcGVuIGEgbmV3IHRhYk9wZW4gYSBuZXcgdGFiIHRvIGJyb3dzZSB0d28gc2l0ZXMgYXQgb25jZXtOVU1fUEFHRVMsIHBsdXJhbCwKICAgICAgICA9MSB7UGFnZSBVbnJlc3BvbnNpdmV9CiAgICAgICAgb3RoZXIge1BhZ2VzIFVucmVzcG9uc2l2ZX19e05VTV9QQUdFUywgcGx1cmFsLAogICAgICAgID0xIHtZb3UgY2FuIHdhaXQgZm9yIGl0IHRvIGJlY29tZSByZXNwb25zaXZlIG9yIGV4aXQgdGhlIHBhZ2UufQogICAgICAgIG90aGVyIHtZb3UgY2FuIHdhaXQgZm9yIHRoZW0gdG8gYmVjb21lIHJlc3BvbnNpdmUgb3IgZXhpdCB0aGUgcGFnZXMufX1UaGUgcGFnZSBoYXMgYmVjb21lIHVucmVzcG9uc2l2ZS4gWW91IGNhbiB3YWl0IGZvciBpdCB0byBiZWNvbWUgcmVzcG9uc2l2ZSBvciBjbG9zZSBpdC4kMSwgaW4gJDIuV2FpdHtOVU1fUEFHRVMsIHBsdXJhbCwKICAgICAgICAgID0xIHtFeGl0IHBhZ2V9CiAgICAgICAgICBvdGhlciB7RXhpdCBwYWdlc319JDEgaXNuJ3QgcmVzcG9uZGluZ1N0b3AgcGx1Z2luVGhlIHdlYiBwYWdlIHdhcyByZWxvYWRlZCBiZWNhdXNlIGl0IHJhbiBvdXQgb2YgbWVtb3J5LkF1dG8gc2lnbi1pbkF1dG9tYXRpY2FsbHkgc2lnbiBpbiB0byB3ZWJzaXRlcyB1c2luZyBzdG9yZWQgY3JlZGVudGlhbHMuIFdoZW4gdGhlIGZlYXR1cmUgaXMgZGlzYWJsZWQsIHlvdSB3aWxsIGJlIGFza2VkIGZvciBjb25maXJtYXRpb24gZXZlcnkgdGltZSBiZWZvcmUgc2lnbmluZyBpbiB0byBhIHdlYnNpdGUud2l0aCAkMUhpZGVZZXNOb05vcGVVcGRhdGUgcGFzc3dvcmROZXZlclNhdmUgeW91ciBwYXNzd29yZE1hbmFnZSB5b3VyIHBhc3N3b3Jkc0ltcG9ydCBQYXNzd29yZHMgVG8gQ2hyb21lRXhwb3J0IFBhc3N3b3JkcyBGcm9tIENocm9tZVNpZ24gaW4gd2l0aCAkMU1vemlsbGEgRmlyZWZveEljZXdlYXNlbFNhZmFyaUJvb2ttYXJrcyBIVE1MIEZpbGVIb2xkIHwkMXwrfCQyfCt8JDN8IHRvIGV4aXRXYXJuIGJlZm9yZSBleGl0aW5nICgkMSlDbG9zZSBGaXJlZm94VG8gZmluaXNoIGltcG9ydGluZywgY2xvc2UgYWxsIEZpcmVmb3ggd2luZG93cy5UZWxsIHVzIHdoYXQncyBoYXBwZW5pbmdEZXNjcmliZSB3aGF0IHlvdSB3ZXJlIGRvaW5nIHdoZW4gdGhlIHRhYiBjcmFzaGVkUmVwb3J0IGFub255bW91c2x5SW5jbHVkZSB0aGlzIHNjcmVlbnNob3RTZW5kIHBlcmZvcm1hbmNlIHRyYWNlIGRhdGFBdHRhY2ggPGEgaHJlZj0iIyIgaWQ9ImJsdWV0b290aC1sb2dzLWluZm8tbGluayI+Qmx1ZXRvb3RoIExvZ3M8L2E+IChHb29nbGUgaW50ZXJuYWwpVG8gYmV0dGVyIGRpYWdub3NlIEJsdWV0b290aCBpc3N1ZXMsIEdvb2dsZXJzIGNhbiBpbmNsdWRlIGFkZGl0aW9uYWwgQmx1ZXRvb3RoIGxvZ3Mgd2l0aCB0aGVpciBmZWVkYmFjayByZXBvcnRzLiBXaGVuIHRoaXMgb3B0aW9uIGlzIGNoZWNrZWQsIHlvdXIgcmVwb3J0IHdpbGwgaW5jbHVkZSBidHNub29wIGFuZCBIQ0kgbG9ncyBmcm9tIHlvdXIgY3VycmVudCBzZXNzaW9uLCBzYW5pdGl6ZWQgdG8gcmVtb3ZlIGFzIG11Y2ggUElJIGFzIHBvc3NpYmxlLiBBY2Nlc3MgdG8gdGhlc2UgbG9ncyB3aWxsIGJlIHJlc3RyaWN0ZWQgdG8gbWFuYWdlcnMgb2YgdGhlIENocm9tZSBPUyBwcm9kdWN0IGdyb3VwIGluIExpc3Ruci4gTG9ncyB3aWxsIGJlIHB1cmdlZCBhZnRlciA5MCBkYXlzLkZlZWRiYWNrIFJlcG9ydFRoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjay4gWW91IGFyZSBvZmZsaW5lIG5vdywgYW5kIHlvdXIgcmVwb3J0IHdpbGwgYmUgc2VudCBsYXRlci5TZW5kIDxhIGhyZWY9IiMiIGlkPSJzeXMtaW5mby11cmwiPnN5c3RlbSBpbmZvcm1hdGlvbjwvYT5GaWxlIHdpbGwgYmUgc2VudCB0byBHb29nbGUgZm9yIGRlYnVnZ2luZ0F0dGFjaCBmaWxlUmVhZGluZyBmaWxlLi5TZWxlY3RlZCBmaWxlIGlzIHRvbyBiaWcgKG1heCBzaXplOiAzbWIpLjxGb3VyIGZpbGVzIGdlbmVyYXRlZCBieSBJbnRlbCBXaS1GaSBmaXJtd2FyZTogY3NyLmxzdCwgZmhfcmVncy5sc3QsIHJhZGlvX3JlZy5sc3QsIG1vbml0b3IubHN0LnN5c21vbi4gIFRoZSBmaXJzdCB0aHJlZSBhcmUgYmluYXJ5IGZpbGVzIGNvbnRhaW5pbmcgcmVnaXN0ZXIgZHVtcHMsIGFuZCBhcmUgYXNzZXJ0ZWQgYnkgSW50ZWwgdG8gY29udGFpbiBubyBwZXJzb25hbCBvciBkZXZpY2UtaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uICBUaGUgbGFzdCBmaWxlIGlzIGFuIGV4ZWN1dGlvbiB0cmFjZSBmcm9tIHRoZSBJbnRlbCBmaXJtd2FyZTsgaXQgaGFzIGJlZW4gc2NydWJiZWQgb2YgYW55IHBlcnNvbmFsIG9yIGRldmljZS1pZGVudGlmeWluZyBpbmZvcm1hdGlvbiwgYnV0IGlzIHRvbyBsYXJnZSB0byBkaXNwbGF5IGhlcmUuICBUaGVzZSBmaWxlcyB3ZXJlIGdlbmVyYXRlZCBpbiByZXNwb25zZSB0byByZWNlbnQgV2ktRmkgcHJvYmxlbXMgd2l0aCB5b3VyIGRldmljZSwgYW5kIHdpbGwgYmUgc2hhcmVkIHdpdGggSW50ZWwgdG8gaGVscCB0cm91Ymxlc2hvb3QgdGhlc2UgcHJvYmxlbXMuPkdvIHRvIHRoZSA8YSBocmVmPSIjIiBpZD0ibGVnYWwtaGVscC1wYWdlLXVybCI+TGVnYWwgSGVscCBwYWdlPC9hPiB0byByZXF1ZXN0IGNvbnRlbnQgY2hhbmdlcyBmb3IgbGVnYWwgcmVhc29ucy4gIFNvbWUgYWNjb3VudCBhbmQgc3lzdGVtIGluZm9ybWF0aW9uIG1heSBiZSBzZW50IHRvIEdvb2dsZS4gIFdlIHdpbGwgdXNlIHRoZSBpbmZvcm1hdGlvbiB5b3UgZ2l2ZSB1cyB0byBoZWxwIGFkZHJlc3MgdGVjaG5pY2FsIGlzc3VlcyBhbmQgdG8gaW1wcm92ZSBvdXIgc2VydmljZXMsIHN1YmplY3QgdG8gb3VyIDxhIGhyZWY9IiMiIGlkPSJwcml2YWN5LXBvbGljeS11cmwiPlByaXZhY3kgUG9saWN5PC9hPiBhbmQgPGEgaHJlZj0iIyIgaWQ9InRlcm1zLW9mLXNlcnZpY2UtdXJsIj5UZXJtcyBvZiBTZXJ2aWNlPC9hPi5QbGVhc2UgdGVsbCB1cyB3aGF0IGlzIGhhcHBlbmluZyBiZWZvcmUgc2VuZGluZyB0aGUgZmVlZGJhY2suU2VuZFN5c3RlbSBJbmZvcm1hdGlvbiBQcmV2aWV3QWRkaXRpb25hbCBpbmZvIChvcHRpb25hbClJcyBDaHJvbWUgY3Jhc2hpbmcsIHNob3dpbmcgdW51c3VhbCBzdGFydHVwIHBhZ2VzLCB0b29sYmFycywgb3IgdW5leHBlY3RlZCBhZHMgeW91IGNhbid0IGdldCByaWQgb2YsIG9yIG90aGVyd2lzZSBjaGFuZ2luZyB5b3VyIGJyb3dzaW5nIGV4cGVyaWVuY2U/IFlvdSBtYXkgYmUgYWJsZSB0byBmaXggdGhlIHByb2JsZW0gYnkgcnVubmluZyB0aGUgQ2hyb21lIENsZWFudXAgVG9vbC5Eb3dubG9hZCBDaHJvbWUgQ2xlYW51cCBUb29sU2tpcFJ1biBGbGFzaFRoZSBzZWxlY3RlZCBkYXRhIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBDaHJvbWUgYW5kIHN5bmNlZCBkZXZpY2VzLiBZb3VyIEdvb2dsZSBBY2NvdW50IG1heSBoYXZlIG90aGVyIGZvcm1zIG9mIGJyb3dzaW5nIGhpc3RvcnkgbGlrZSBzZWFyY2hlcyBhbmQgYWN0aXZpdHkgZnJvbSBvdGhlciBHb29nbGUgc2VydmljZXMgYXQgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9IiQxIj5teWFjdGl2aXR5Lmdvb2dsZS5jb208L2E+LkNsZWFyZWQgQ2hyb21lIGRhdGFNaWNyb3Bob25lOkNhbWVyYTpOb25lIGF2YWlsYWJsZU1hbmFnZSBoYW5kbGVyIHNldHRpbmdz4oCmKENocm9tZSBlcnJvciBwYWdlcylSZXN0b3JlIGRlZmF1bHQgc2VhcmNoIGVuZ2luZT9SZXN0b3JlIGRlZmF1bHQgc3RhcnR1cCBwYWdlP1Jlc3RvcmUgZGVmYXVsdCBob21lcGFnZT9Zb3VyIHNlYXJjaCBlbmdpbmUgd2FzIGNoYW5nZWQgdG8gJDEuWW91ciBzdGFydHVwIHBhZ2Ugd2FzIGNoYW5nZWQgdG8gJDEuWW91ciBzdGFydHVwIHBhZ2VzIHdlcmUgY2hhbmdlZCB0byBpbmNsdWRlICQxLllvdXIgaG9tZXBhZ2Ugd2FzIGNoYW5nZWQgdG8gJDEuVHVybiBvbiBhdXRvdXBkYXRlVG9nZ2xlIHZpZGVvIHRvIHBsYXkgb3IgcGF1c2VBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2xvc2UgdGhpcyB0YWI/QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGxlYXZlIHRoaXMgcGFnZT9UaGUgdmlkZW8gaW4gcGljdHVyZS1pbi1waWN0dXJlIG1vZGUgd2lsbCBzdG9wIHBsYXlpbmcuTGVhdmVXYWl0aW5nIGZvciBhdmFpbGFibGUgc29ja2V04oCmV2FpdGluZyBmb3IgJDHigKZQcm9jZXNzaW5nIHJlcXVlc3TigKZXYWl0aW5nIGZvciBjYWNoZeKApldhaXRpbmcgZm9yIEFwcENhY2hl4oCmV2FpdGluZyBmb3IgcHJveHkgdHVubmVs4oCmUmVzb2x2aW5nIHByb3h54oCmUmVzb2x2aW5nIGhvc3QgaW4gcHJveHkgc2NyaXB04oCmRG93bmxvYWRpbmcgcHJveHkgc2NyaXB04oCmUmVzb2x2aW5nIGhvc3TigKZFc3RhYmxpc2hpbmcgc2VjdXJlIGNvbm5lY3Rpb27igKZTZW5kaW5nIHJlcXVlc3TigKZVcGxvYWRpbmcgKCQxJSnigKZEdXBsaWNhdGVDbG9zZSB0YWJDbG9zZSB0YWJzQ2xvc2Ugb3RoZXIgdGFic0Nsb3NlIHRhYnMgdG8gdGhlIHJpZ2h0UGluIHRhYlBpbiB0YWJzVW5waW4gdGFiVW5waW4gdGFic011dGUgdGFiTXV0ZSB0YWJzVW5tdXRlIHRhYlVubXV0ZSB0YWJzTXV0ZSBzaXRlTXV0ZSBzaXRlc1VubXV0ZSBzaXRlVW5tdXRlIHNpdGVzQm9va21hcmsgYWxsIHRhYnPigKZPcGVuIGJyb3dzZXIgd2luZG93JDEgU2NyZWVuIFNoYXJpbmcgUmVxdWVzdERvIHlvdSB3YW50ICQxIHRvIHNoYXJlIHlvdXIgc2NyZWVuP0RvIHlvdSB3YW50ICQxIHRvIHNoYXJlIHlvdXIgc2NyZWVuIGFuZCBhdWRpbyBvdXRwdXQ/JDEgaXMgc2hhcmluZyB5b3VyIHNjcmVlbi4kMSBpcyBzaGFyaW5nIHlvdXIgc2NyZWVuIHdpdGggJDIuJDEgaXMgc2hhcmluZyB5b3VyIHNjcmVlbiBhbmQgYXVkaW8uJDEgaXMgc2hhcmluZyB5b3VyIHNjcmVlbiBhbmQgYXVkaW8gd2l0aCAkMi4kMSBpcyBzaGFyaW5nIGEgd2luZG93LiQxIGlzIHNoYXJpbmcgYSB3aW5kb3cgd2l0aCAkMi4kMSBpcyBzaGFyaW5nIGEgQ2hyb21lIHRhYi4kMSBpcyBzaGFyaW5nIGEgQ2hyb21lIHRhYiB3aXRoICQyLiQxIGlzIHNoYXJpbmcgYSBDaHJvbWUgdGFiIGFuZCBhdWRpby4kMSBpcyBzaGFyaW5nIGEgQ2hyb21lIHRhYiBhbmQgYXVkaW8gd2l0aCAkMi5TdG9wIHNoYXJpbmckMSB3YW50cyBwZXJtYW5lbnQgYWNjZXNzIHRvIGEgY2VydGlmaWNhdGUgdG8gYXV0aGVudGljYXRlIGl0c2VsZiBvbiB5b3VyIGJlaGFsZi5UaGlzIGZyYW1lIHdhcyBibG9ja2VkIGJlY2F1c2UgaXQgY29udGFpbnMgc29tZSBpbnNlY3VyZSBjb250ZW50LlNlbGVjdCBhIGNlcnRpZmljYXRlU2VsZWN0IGEgY2VydGlmaWNhdGUgdG8gYXV0aGVudGljYXRlIHlvdXJzZWxmIHRvICQxU2lnbiBpbiB0byBTZWN1cml0eSBEZXZpY2VQbGVhc2Ugc2lnbiBpbiB0byAkMSB0byBpbXBvcnQgY2xpZW50IGNlcnRpZmljYXRlIGZyb20gJDIuUGxlYXNlIHNpZ24gaW4gdG8gJDEgdG8gYXV0aGVudGljYXRlIHRvICQyIHdpdGggeW91ciBjZXJ0aWZpY2F0ZS5QbGVhc2Ugc2lnbiBpbiB0byAkMS5QbGVhc2Ugc2lnbiBpbiB0byAkMSB0byBpbXBvcnQgdGhlIGNsaWVudCBjZXJ0aWZpY2F0ZS5QbGVhc2Ugc2lnbiBpbiB0byAkMSB0byBleHBvcnQgdGhlIGNsaWVudCBjZXJ0aWZpY2F0ZS5QYXNzd29yZDpVbmxvY2tIZWxwIG91ciBlbmdpbmVlcnMgaW52ZXN0aWdhdGUgYW5kIGZpeCB0aGlzIGNyYXNoLiBMaXN0IGV4YWN0IHN0ZXBzIGlmIHlvdSBjYW4uIE5vIGRldGFpbCBpcyB0b28gc21hbGwhClNlbmQgZmVlZGJhY2tUYWIga2lsbGVkIGZlZWRiYWNrLgpZb3VyIGhvbWUgcGFnZSBoYXMgYmVlbiBzZXQuQmlsbGluZyBhZGRyZXNzQWRkIHByaW50ZXJzWW91IGhhdmUgcmVnaXN0ZXJlZCB5b3VyIHByaW50ZXJzIHdpdGggJDEgdXNpbmcgdGhlIGFjY291bnQgJDJEaXNjb25uZWN0IHByaW50ZXJzRW5hYmxpbmfigKZUaGlzIHNldHRpbmcgaXMgZW5mb3JjZWQgYnkgeW91ciBhZG1pbmlzdHJhdG9yLlRoaXMgc2V0dGluZyBpcyBlbmZvcmNlZCBieSB0aGUgIiQxIiBleHRlbnNpb24uVGhpcyBzZXR0aW5nIGlzIGVuZm9yY2VkIGJ5IGFuIGV4dGVuc2lvbi5Zb3UgYXJlIGZvbGxvd2luZyB0aGUgYWRtaW5pc3RyYXRvcidzIHJlY29tbWVuZGF0aW9uIGZvciB0aGlzIHNldHRpbmcuWW91ciBhZG1pbmlzdHJhdG9yIHJlY29tbWVuZHMgYSBzcGVjaWZpYyB2YWx1ZSBmb3IgdGhpcyBzZXR0aW5nLk5vdCBmcm9tIENocm9tZSBXZWIgU3RvcmUuSW5zdGFsbGVkIGJ5IGEgdGhpcmQgcGFydHkuSW5zdGFsbGVkIGJ5IGVudGVycHJpc2UgcG9saWN5Lkluc3RhbGxlZCBiZWNhdXNlIG9mIGRlcGVuZGVudCBleHRlbnNpb24ocykuVGhpcyBleHRlbnNpb24gY29udGFpbnMgbWFsd2FyZS5UaGlzIGV4dGVuc2lvbiBjb250YWlucyBhIHNlcmlvdXMgc2VjdXJpdHkgdnVsbmVyYWJpbGl0eS5UaGlzIGV4dGVuc2lvbiB2aW9sYXRlcyB0aGUgQ2hyb21lIFdlYiBTdG9yZSBwb2xpY3kuRGlzYWJsZWQgYnkgQ2hyb21lLiBUaGlzIGV4dGVuc2lvbiBtYXkgYmUgdW5zYWZlLlRoaXMgd2lsbCByZXNldCB5b3VyIHN0YXJ0dXAgcGFnZSwgbmV3IHRhYiBwYWdlLCBzZWFyY2ggZW5naW5lLCBhbmQgcGlubmVkIHRhYnMuIEl0IHdpbGwgYWxzbyBkaXNhYmxlIGFsbCBleHRlbnNpb25zIGFuZCBjbGVhciB0ZW1wb3JhcnkgZGF0YSBsaWtlIGNvb2tpZXMuIFlvdXIgYm9va21hcmtzLCBoaXN0b3J5IGFuZCBzYXZlZCBwYXNzd29yZHMgd2lsbCBub3QgYmUgY2xlYXJlZC4kMSB3YW50cyB0byByZXNldCB5b3VyIHNldHRpbmdzLiQxIHdhbnRzIHRvIHJlc3RvcmUgeW91ciBDaHJvbWUgc2V0dGluZ3MgdG8gdGhlaXIgb3JpZ2luYWwgZGVmYXVsdHMuIFRoaXMgd2lsbCByZXNldCB5b3VyIGhvbWVwYWdlLCBuZXcgdGFiIHBhZ2UgYW5kIHNlYXJjaCBlbmdpbmUsIGRpc2FibGUgeW91ciBleHRlbnNpb25zLCBhbmQgdW5waW4gYWxsIHRhYnMuIEl0IHdpbGwgYWxzbyBjbGVhciBvdGhlciB0ZW1wb3JhcnkgYW5kIGNhY2hlZCBkYXRhLCBzdWNoIGFzIGNvb2tpZXMsIGNvbnRlbnQgYW5kIHNpdGUgZGF0YS5BIGNsZWFudXAgdG9vbExvY2FsZVN0YXJ0dXAgVVJMc1N0YXJ0dXAgdHlwZUhvbWVwYWdlSG9tZXBhZ2UgaXMgdGhlIE5ldyBUYWIgcGFnZVNob3cgSG9tZSBidXR0b25EZWZhdWx0IHNlYXJjaCBlbmdpbmVTaG9ydGN1dCB0YXJnZXRzUHJvY2Vzc2luZyBzaG9ydGN1dHPigKZNb250aFllYXJVc2Ugc3lzdGVtIHRpdGxlIGJhciBhbmQgYm9yZGVyc0Nvb2tpZXMgaW4gdXNlVGhlIGZvbGxvd2luZyBjb29raWVzIHdlcmUgc2V0IHdoZW4geW91IHZpZXdlZCB0aGlzIHBhZ2VUaGUgZm9sbG93aW5nIGNvb2tpZXMgd2VyZSBibG9ja2VkVGhlIGZvbGxvd2luZyBjb29raWVzIHdlcmUgYmxvY2tlZCAodGhpcmQtcGFydHkgY29va2llcyBhcmUgYmVpbmcgYmxvY2tlZCB3aXRob3V0IGV4Y2VwdGlvbilDb29raWVzIGZyb20gJDEgYWxsb3dlZENvb2tpZXMgZnJvbSAkMSBibG9ja2VkQ29va2llcyBmcm9tICQxIHdpbGwgYmUgY2xlYXJlZCBvbiBleGl0Q2xlYXJlZCBvbiBFeGl0TmV3IGNvb2tpZSBzZXR0aW5ncyB3aWxsIHRha2UgZWZmZWN0IGFmdGVyIHJlbG9hZGluZyB0aGUgcGFnZVlvdXIgYm9va21hcmtzLCBoaXN0b3J5LCBhbmQgb3RoZXIgc2V0dGluZ3Mgd2lsbCBiZSBzeW5jZWQgdG8geW91ciBHb29nbGUgQWNjb3VudC5DcmVhdGUgYSBuZXcgcHJvZmlsZUxpbmsgZGF0YVRoaXMgYWNjb3VudCBpcyBtYW5hZ2VkIGJ5ICQxU2lnbiBpbiBjZXJ0aWZpY2F0aW9uIGlzIG5vdCB2YWxpZCwgd2luZG93IGNsb3NpbmcgaW4gezAsbnVtYmVyLDAwfSA6IHsxLG51bWJlciwwMH1TaWduIGluIG5vd0FsbCBicm93c2VyIHdpbmRvd3Mgd2lsbCBzb29uIGJlIGNsb3NlZCBhdXRvbWF0aWNhbGx5IHdpdGhvdXQgc2lnbiBpbi5XaGVuIHRoZSBicm93c2luZyBzZXNzaW9uIGVuZHNBbnkga2luZCBvZiBjb25uZWN0aW9uU2VjdXJlIGNvbm5lY3Rpb25zIG9ubHlTYW1lLXNpdGUgY29ubmVjdGlvbnMgb25seVNlY3VyZSBzYW1lLXNpdGUgY29ubmVjdGlvbnMgb25seU5vIChIdHRwT25seSlubyBjb29raWUgc2VsZWN0ZWREZXNjcmlwdGlvbjo8dW5uYW1lZD5PcmlnaW46U2l6ZSBvbiBkaXNrOkxhc3QgbW9kaWZpZWQ6QXBwbGljYXRpb24gY2FjaGVzTWFuaWZlc3Q6V2ViIGRhdGFiYXNlc1Nlc3Npb24gc3RvcmFnZUluZGV4ZWQgZGF0YWJhc2VJbmRleGVkIGRhdGFiYXNlc0ZpbGUgc3lzdGVtc0xhc3QgYWNjZXNzZWQ6Q2hhbm5lbCBJRHNlY2RzYV9zaWduWW914oCZcmUgYnJvd3NpbmcgYXMgYSBHdWVzdFBhZ2VzIHlvdSB2aWV3IGluIHRoaXMgd2luZG93IHdvbuKAmXQgYXBwZWFyIGluIHRoZSBicm93c2VyIGhpc3RvcnkgYW5kIHRoZXkgd29u4oCZdCBsZWF2ZSBvdGhlciB0cmFjZXMsIGxpa2UgY29va2llcywgb24gdGhlIGNvbXB1dGVyIGFmdGVyIHlvdSBjbG9zZSBhbGwgb3BlbiBHdWVzdCB3aW5kb3dzLiBBbnkgZmlsZXMgeW91IGRvd25sb2FkIHdpbGwgYmUgcHJlc2VydmVkLCBob3dldmVyLlVzZSBsZWZ0IGFuZCByaWdodCBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlLkFkZCBtb3JlIGFwcHNNb3N0IHZpc2l0ZWRSZXN0b3JlIGFsbFRoZW1lIGNyZWF0ZWQgYnlUaHVtYm5haWwgcmVtb3ZlZC5Eb24ndCBzaG93IG9uIHRoaXMgcGFnZUdvIHRvICQxTW9yZSAkMVBsZWFzZSBjaGVjayB5b3VyIG1pY3JvcGhvbmUuVm9pY2Ugc2VhcmNoIGluIHlvdXIgbGFuZ3VhZ2UgaXMgbm90IGF2YWlsYWJsZS5MaXN0ZW5pbmfigKZObyBJbnRlcm5ldCBjb25uZWN0aW9uLkRpZG4ndCBnZXQgdGhhdC5QbGVhc2UgY2hlY2sgeW91ciBtaWNyb3Bob25lIGFuZCBhdWRpbyBsZXZlbHMuVW5rbm93biBlcnJvci5Wb2ljZSBzZWFyY2ggaGFzIGJlZW4gdHVybmVkIG9mZi5TcGVhayBub3dXYWl0aW5n4oCmVmlldyBpbiBXZWIgU3RvcmVBcHAgaW5mb09wZW4gYXMgcGlubmVkIHRhYk9wZW4gYXMgcmVndWxhciB0YWJPcGVuIGZ1bGwgc2NyZWVuT3BlbiBtYXhpbWl6ZWRPcGVuIGluIGEgdGFiWW91J3ZlIHNpZ25lZCBpbiBhbmQgdHVybmVkIG9uIFN5bmNZb3UndmUgdHVybmVkIG9uIFN5bmNHZXQgbW9yZSBHb29nbGUgc21hcnRzTW9yZSBvcHRpb25zQ29udHJvbCBzeW5jLCBwZXJzb25hbGl6YXRpb24sIGFuZCBtb3JlVGhlIHNldHRpbmdzIHRoYXQgY29udHJvbCBzeW5jLCBwZXJzb25hbGl6YXRpb24sIGFuZCBvdGhlciBHb29nbGUgc2VydmljZXMgaW4gQ2hyb21lIGhhdmUgY2hhbmdlZC4gVGhpcyBtYXkgYWZmZWN0IHlvdXIgY3VycmVudCBzZXR0aW5ncy5SZXZpZXcgeW91ciBzZXR0aW5ncyBvbiB0aGUgbmV4dCBzY3JlZW5NYWtlIG5vIGNoYW5nZXNUaGUgZGF0YSB5b3Ugc3luYyB0byBHb29nbGUgYW5kIHRoZSBmZWF0dXJlcyB5b3UgdXNlIHdpbGwgbm90IGNoYW5nZVR1cm4gb24gc3luYywgcGVyc29uYWxpemF0aW9uLCBhbmQgb3RoZXIgR29vZ2xlIHNlcnZpY2VzWW91IGNhbiBjdXN0b21pemUgdGhpcyBhbnl0aW1lIGluIENocm9tZSBTZXR0aW5nc0Nocm9tZSBTeW5jWW91ciBib29rbWFya3MsIGhpc3RvcnksIHBhc3N3b3JkcywgYW5kIG90aGVyIHNldHRpbmdzIHdpbGwgYmUgc3luY2VkIHRvIHlvdXIgR29vZ2xlIEFjY291bnQgc28geW91IGNhbiB1c2UgdGhlbSBvbiBhbGwgeW91ciBkZXZpY2VzWW91ciBib29rbWFya3MsIHBhc3N3b3JkcywgaGlzdG9yeSwgYW5kIG1vcmUgb24gYWxsIHlvdXIgZGV2aWNlc1BlcnNvbmFsaXplIEdvb2dsZSBzZXJ2aWNlc0dvb2dsZSBtYXkgdXNlIHlvdXIgYnJvd3NpbmcgaGlzdG9yeSB0byBwZXJzb25hbGl6ZSBTZWFyY2gsIGFkcywgYW5kIG90aGVyIEdvb2dsZSBzZXJ2aWNlc1BlcnNvbmFsaXplZCBHb29nbGUgc2VydmljZXMgbGlrZSBHb29nbGUgUGF5R29vZ2xlIG1heSB1c2UgeW91ciBicm93c2luZyBoaXN0b3J5IHRvIHBlcnNvbmFsaXplIFNlYXJjaCBhbmQgb3RoZXIgR29vZ2xlIHNlcnZpY2VzSW1wcm92ZSBDaHJvbWUgYW5kIGl0cyBzZWN1cml0eSBieSBzZW5kaW5nIHN5c3RlbSBhbmQgdXNhZ2UgaW5mb3JtYXRpb24gdG8gR29vZ2xlV2FudCB0byBtYW5hZ2Ugc3luYyBhbmQgcGVyc29uYWxpemF0aW9uIGJlZm9yZSB0aGV54oCZcmUgdHVybmVkIG9uPyBWaXNpdCA8YSBpZD0ic2V0dGluZ3NMaW5rIiBocmVmPSJjaHJvbWU6Ly9zZXR0aW5ncyI+U2V0dGluZ3M8L2E+LllvdSBjYW4gY3VzdG9taXplIHdoYXQgaW5mb3JtYXRpb24gR29vZ2xlIGNvbGxlY3RzIGluIDxhIGlkPSJzZXR0aW5nc0xpbmsiIGhyZWY9ImNocm9tZTovL3NldHRpbmdzIj5TZXR0aW5nczwvYT4gYW55dGltZS5Hb29nbGUgbWF5IHVzZSBjb250ZW50IG9uIHNpdGVzIHlvdSB2aXNpdCwgcGx1cyBicm93c2VyIGFjdGl2aXR5IGFuZCBpbnRlcmFjdGlvbnMsIHRvIHBlcnNvbmFsaXplIENocm9tZSBhbmQgb3RoZXIgR29vZ2xlIHNlcnZpY2VzIGxpa2UgVHJhbnNsYXRlLCBTZWFyY2gsIGFuZCBhZHMuIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgaW4gU2V0dGluZ3MuWWVzLCBJJ20gaW5TeW5jIGlzIGRpc2FibGVkIGJ5IHlvdXIgYWRtaW5pc3RyYXRvcllvdXIgYWRtaW5pc3RyYXRvciBoYXMgZGlzYWJsZWQgc3luY2luZyBvZiB5b3VyIGJvb2ttYXJrcywgaGlzdG9yeSwgcGFzc3dvcmRzLCBhbmQgb3RoZXIgc2V0dGluZ3MuU2lnbiBpbiBhbnl3YXlDYW5jZWwgc2lnbiBpbkNhbid0IHNpZ24gaW5DYW4ndCBzaWduIGluIHRvICQxQ2FuJ3Qgc3luYyB0byAkMVN3aXRjaCB0byAkMVRoaXMgd2Fzbid0IG1lLkNyZWF0ZSBhIG5ldyBwcm9maWxlIGZvciAkMVRoaXMgd2FzIG1lLkFkZCBteSBib29rbWFya3MsIGhpc3RvcnksIHBhc3N3b3JkcywgYW5kIG90aGVyIHNldHRpbmdzIHRvICQxJDEgd2FzIGJsb2NrZWQgYmVjYXVzZSBpdCBpcyBvdXQgb2YgZGF0ZVJ1biB0aGlzIHRpbWUkMSBoYXMgY3Jhc2hlZENvdWxkIG5vdCBsb2FkICQxT3BlbiAkMT9PcGVuICQxQWx3YXlzIG9wZW4gdGhlc2UgdHlwZXMgb2YgbGlua3MgaW4gdGhlIGFzc29jaWF0ZWQgYXBwSW5kZXggb2YgTE9DQVRJT05bcGFyZW50IGRpcmVjdG9yeV1TaXplRGF0ZSBNb2RpZmllZE9oLCBubyEgVGhpcyBzZXJ2ZXIgaXMgc2VuZGluZyBkYXRhICQxIGNhbid0IHVuZGVyc3RhbmQuIFBsZWFzZSA8YSBocmVmPSJodHRwOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2VudHJ5Ij5yZXBvcnQgYSBidWc8L2E+LCBhbmQgaW5jbHVkZSB0aGUgPGEgaHJlZj0iTE9DQVRJT04iPnJhdyBsaXN0aW5nPC9hPi5XZWJwYWdlLCBIVE1MIE9ubHlXZWJwYWdlLCBTaW5nbGUgRmlsZVdlYnBhZ2UsIENvbXBsZXRlUHJvZmlsZSBlcnJvciBvY2N1cnJlZFNvbWV0aGluZyB3ZW50IHdyb25nIHdoZW4gb3BlbmluZyB5b3VyIHByb2ZpbGUuIFNvbWUgZmVhdHVyZXMgbWF5IGJlIHVuYXZhaWxhYmxlLlNvbWV0aGluZyB3ZW50IHdyb25nIHdoZW4gb3BlbmluZyB5b3VyIHByb2ZpbGUuIFBsZWFzZSBzaWduIG91dCB0aGVuIHNpZ24gaW4gYWdhaW4uU2VuZCBmZWVkYmFjayB0byBoZWxwIHVzIGZpeCB0aGlzIGlzc3VlLlBsZWFzZSBoZWxwIG91ciBlbmdpbmVlcnMgZml4IHRoaXMgcHJvYmxlbS4gVGVsbCB1cyB3aGF0IGhhcHBlbmVkIHJpZ2h0IGJlZm9yZSB5b3UgZ290IHRoZSBwcm9maWxlIGVycm9yIG1lc3NhZ2U6CkNhbm5vdCBzdGFydCBDaHJvbWUgYmVjYXVzZSBzb21ldGhpbmcgd2VudCB3cm9uZyB3aGVuIG9wZW5pbmcgeW91ciBwcm9maWxlLiBUcnkgdG8gcmVzdGFydCBDaHJvbWUuJDEgY2FuIG5vdCBiZSBydW4gYXMgcm9vdC5QbGVhc2Ugc3RhcnQgJDEgYXMgYSBub3JtYWwgdXNlci4gSWYgeW91IG5lZWQgdG8gcnVuIGFzIHJvb3QgZm9yIGRldmVsb3BtZW50LCByZXJ1biB3aXRoIHRoZSAtLW5vLXNhbmRib3ggZmxhZy5GYWlsZWQgVG8gQ3JlYXRlIERhdGEgRGlyZWN0b3J5VGhpcyBzaXRlIGlzIGF0dGVtcHRpbmcgdG8gZG93bmxvYWQgbXVsdGlwbGUgZmlsZXMuIERvIHlvdSB3YW50IHRvIGFsbG93IHRoaXM/RG93bmxvYWQgbXVsdGlwbGUgZmlsZXNSZWNlbnQgdGFic3tOVU1fVEFCUywgcGx1cmFsLCA9MSB7MSB0YWJ9IG90aGVyIHsjIHRhYnN9fSZIaXN0b3J5ZG93bmxvYWRDcmVhdGVkIG5ldyB3aW5kb3cgaW4gZXhpc3RpbmcgYnJvd3NlciBzZXNzaW9uLllvdXIgZGF0YSB3YXMgZW5jcnlwdGVkIHdpdGggeW91ciBHb29nbGUgcGFzc3dvcmQgYXMgb2YgJDEuIEVudGVyIGl0IHRvIHN0YXJ0IHN5bmMuU2lnbmVkIGluIGFzICQxLk9uIC0gc3luYyBldmVyeXRoaW5nT24gLSBjdXN0b20gc2V0dGluZ3NTaWduIEluU2lnbi1pbiBlcnJvclN5bmMgRXJyb3JTaWduLWluIGRldGFpbHMgYXJlIG91dCBvZiBkYXRlU2lnbiBpbiBhZ2FpblBhc3NwaHJhc2UgcmVxdWlyZWQgdG8gc3RhcnQgc3luY0VudGVyIHBhc3NwaHJhc2VUcnkgc2lnbmluZyBpbiBhZ2FpblRyeSBzaWduaW5nIG91dCBhbmQgYmFjayBpbiBhZ2Fpbk9wZW4gc2V0dGluZ3NPS+KAplNpZ24gaW4gYWdhaW7igKZTaWduIGluIHRvIGdldCB5b3VyIGJvb2ttYXJrcywgaGlzdG9yeSwgcGFzc3dvcmRzIGFuZCBvdGhlciBzZXR0aW5ncyBvbiBhbGwgeW91ciBkZXZpY2VzLiBZb3UnbGwgYWxzbyBhdXRvbWF0aWNhbGx5IGJlIHNpZ25lZCBpbiB0byB5b3VyIEdvb2dsZSBzZXJ2aWNlcy5TaWduIGluIHRvICQxU3luYyBpcyBkaXNhYmxlZCBieSB5b3VyIGFkbWluaXN0cmF0b3IuU3luYyBoYXMgYmVlbiBzdG9wcGVkIHZpYSB0aGUgR29vZ2xlIERhc2hib2FyZC5Db25maXJtIHN5bmMgc2V0dGluZ3MgdG8gc3RhcnQgc3luYy5NYW5hZ2UgeW91ciBzeW5jZWQgZGF0YSBvbiA8YSBocmVmPSIkMSIgdGFyZ2V0PSJfYmxhbmsiPkdvb2dsZSBEYXNoYm9hcmQ8L2E+LkF1dGhlbnRpY2F0aW5n4oCmRXJyb3Igc2lnbmluZyBpbi5Pb3BzLCBTeW5jIGhhcyBzdG9wcGVkIHdvcmtpbmcuU3luYyBpc27igJl0IHdvcmtpbmcuIFRyeSBzaWduaW5nIGluIGFnYWluLlN5bmMgaXNu4oCZdCB3b3JraW5nLiBUcnkgc2lnbmluZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4uRW50ZXIgeW91ciBwYXNzcGhyYXNlIHRvIHN0YXJ0IHN5bmNDb3VsZG4ndCBjb25uZWN0IHRvIHRoZSBzeW5jIHNlcnZlci4gUmV0cnlpbmfigKZTaWduIGluIGFnYWluIHRvIHJlc3VtZSBzeW5jQWR2YW5jZWQgc2V0dGluZ3NTZXR1cCBpbiBwcm9ncmVzc+KApllvdSdyZSBub3cgc2lnbmVkIGluIHRvICQxLiBZb3VyIGJvb2ttYXJrcywgaGlzdG9yeSwgYW5kIG90aGVyIHNldHRpbmdzIGFyZSBiZWluZyBzeW5jZWQgd2l0aCB5b3VyIEdvb2dsZSBBY2NvdW50LkFkdmFuY2Vk4oCmQWxsIGRhdGEgaXMgZW5jcnlwdGVkIHdpdGggeW91ciBzeW5jIHBhc3NwaHJhc2VBbGwgZGF0YSB3YXMgZW5jcnlwdGVkIHdpdGggeW91ciBzeW5jIHBhc3NwaHJhc2Ugb24KICAgICAgICAgICQxQWxsIGRhdGEgd2FzIGVuY3J5cHRlZCB3aXRoIHlvdXIgR29vZ2xlIHBhc3N3b3JkIGFzIG9mCiAgICAgICAgICAkMU5vdCBzaWduZWQgaW4gdG8gJDEoWW91J3JlIG1pc3Npbmcgb3V04oCUJDEpc2lnbiBpbiQxIHdhbnRzIHRvIHNlbmQgeW91IG5vdGlmaWNhdGlvbnNTaG93IG5vdGlmaWNhdGlvbnNTZW5kIG1lc3NhZ2UmRmlsZSZWaWV3SGkmc3RvcnkmVG9vbHMmSGVscFJlb3BlbiBDbG9zZWQgVGFiT3BlbiAmRmlsZeKApk9wZW4gJkxvY2F0aW9u4oCmQ2xvc2UgV2luJmRvdyZDbG9zZSBUYWImU3RvcCZSZWxvYWQgVGhpcyBQYWdlQSZjdHVhbCBTaXplWm9vbSAmSW5ab29tICZPdXRNb3N0IFZpc2l0ZWRSZWNlbnRseSBDbG9zZWRSZXN0b3JlIEFsbCBUYWJzJDEgd2FudHMgdG8gdXNlIHlvdXIgY29tcHV0ZXIncyBsb2NhdGlvbktub3cgeW91ciBsb2NhdGlvblRoaXMgcGFnZSBjb250YWlucyBlbGVtZW50cyBmcm9tIHRoZSBmb2xsb3dpbmcgc2l0ZXMgdGhhdCBhcmUgdHJhY2tpbmcgeW91ciBsb2NhdGlvbjpUaGUgZm9sbG93aW5nIHNpdGVzIGhhdmUgYmVlbiBibG9ja2VkIGZyb20gdHJhY2tpbmcgeW91ciBsb2NhdGlvbiBvbiB0aGlzIHBhZ2U6U2V0dGluZ3Mgd2lsbCBiZSBjbGVhcmVkIG9uIG5leHQgcmVsb2FkLkNsZWFyIHRoZXNlIHNldHRpbmdzIGZvciBmdXR1cmUgdmlzaXRzTWFuYWdlIGxvY2F0aW9uIHNldHRpbmdz4oCmVGhpcyBwYWdlIGlzIHRyYWNraW5nIHlvdXIgbG9jYXRpb24uVGhpcyBwYWdlIGhhcyBiZWVuIGJsb2NrZWQgZnJvbSB0cmFja2luZyB5b3VyIGxvY2F0aW9uLiQxIHdhbnRzIHRvIGdldCBmdWxsIGNvbnRyb2wgb2YgeW91ciBNSURJIGRldmljZXNVc2UgeW91ciBNSURJIGRldmljZXNUaGlzIHBhZ2UgaGFzIGZ1bGwgY29udHJvbCBvZiBNSURJIGRldmljZXMuVGhpcyBwYWdlIGhhcyBiZWVuIGJsb2NrZWQgZnJvbSBoYXZpbmcgZnVsbCBjb250cm9sIG9mIE1JREkgZGV2aWNlcy5UaGlzIHNpdGUgaGFzIGZ1bGwgY29udHJvbCBvZiBNSURJIGRldmljZXMuVGhpcyBzaXRlIGhhcyBiZWVuIGJsb2NrZWQgZnJvbSBoYXZpbmcgZnVsbCBjb250cm9sIG9mIE1JREkgZGV2aWNlcy5NYW5hZ2UgTUlESSBzZXR0aW5nc+KAplRoaXMgcGFnZSB3YW50cyB0byBpbnN0YWxsIGEgc2VydmljZSBoYW5kbGVyLk1hbmFnZSBtZWRpYSBzZXR0aW5nc+KAplRoaXMgcGFnZSBpcyBhY2Nlc3NpbmcgeW91ciBjYW1lcmEgYW5kIG1pY3JvcGhvbmUuVGhpcyBwYWdlIGhhcyBiZWVuIGJsb2NrZWQgZnJvbSBhY2Nlc3NpbmcgeW91ciBjYW1lcmEgYW5kIG1pY3JvcGhvbmUuVGhpcyBwYWdlIGlzIGFjY2Vzc2luZyB5b3VyIG1pY3JvcGhvbmUuVGhpcyBwYWdlIGlzIGFjY2Vzc2luZyB5b3VyIGNhbWVyYS5UaGlzIHBhZ2UgaGFzIGJlZW4gYmxvY2tlZCBmcm9tIGFjY2Vzc2luZyB5b3VyIG1pY3JvcGhvbmUuVGhpcyBwYWdlIGhhcyBiZWVuIGJsb2NrZWQgZnJvbSBhY2Nlc3NpbmcgeW91ciBjYW1lcmEuQ2FtZXJhIGFuZCBtaWNyb3Bob25lIGFsbG93ZWRDYW1lcmEgYW5kIG1pY3JvcGhvbmUgYmxvY2tlZE1pY3JvcGhvbmUgYWxsb3dlZENhbWVyYSBhbGxvd2VkTWljcm9waG9uZSBibG9ja2VkQ2FtZXJhIGJsb2NrZWRUaGlzIHBhZ2UgbWF5IG5lZWQgdG8gYmUgcmVsb2FkZWQgYmVmb3JlIHRoZSBuZXcgc2V0dGluZ3MgdGFrZSBlZmZlY3QuVmlldyBhbmQgbWFuYWdlIHNhdmVkIHBhc3N3b3JkcyBpbiB5b3VyICQxaHR0cHM6Ly9wYXNzd29yZHMuZ29vZ2xlLmNvbUdvb2dsZSBBY2NvdW50U2F2ZWQgcGFzc3dvcmRzIGZvciB0aGlzIHNpdGVObyBwYXNzd29yZHMgc2F2ZWQgZm9yIHRoaXMgc2l0ZVNhdmVkIHBhc3N3b3JkcyBmb3IgJDFObyBwYXNzd29yZHMgc2F2ZWQgZm9yICQxUmVzdG9yZSBkZWxldGVkIHBhc3N3b3JkIGZvciAkMURlbGV0ZSBwYXNzd29yZCBmb3IgJDFTaWduaW5nIGluIGFzU2lnbiBpbiBlYXNpbHkgYWNyb3NzIGRldmljZXNTaWduIGluIGVhc2lseSQxIGF1dG9tYXRpY2FsbHkgc2lnbnMgeW91IGluIHRvIGVsaWdpYmxlIHNpdGVzIGFuZCBhcHBzIHdpdGggcGFzc3dvcmRzIHlvdSBzYXZlZC4kMSBhdXRvbWF0aWNhbGx5IHNpZ25zIHlvdSBpbiB0byBlbGlnaWJsZSBzaXRlcyB3aXRoIHBhc3N3b3JkcyB5b3Ugc2F2ZWQuQWNjZXNzIHRvIGxvY2FsIGZpbGVzIG9uIHlvdXIgbWFjaGluZSBpcyBkaXNhYmxlZCBieSB5b3VyIGFkbWluaXN0cmF0b3JQcm94eSBDb25maWd1cmF0aW9uIEhlbHA8cD5XaGVuIHJ1bm5pbmcgJDEgdW5kZXIgYSBzdXBwb3J0ZWQgZGVza3RvcCBlbnZpcm9ubWVudCwgdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyB3aWxsIGJlIHVzZWQuICBIb3dldmVyLCBlaXRoZXIgeW91ciBzeXN0ZW0gaXMgbm90IHN1cHBvcnRlZCBvciB0aGVyZSB3YXMgYSBwcm9ibGVtIGxhdW5jaGluZyB5b3VyIHN5c3RlbSBjb25maWd1cmF0aW9uLjwvcD4KCiAgICAgICAgICA8cD5CdXQgeW91IGNhbiBzdGlsbCBjb25maWd1cmUgdmlhIHRoZSBjb21tYW5kIGxpbmUuICBQbGVhc2Ugc2VlIDxjb2RlPm1hbiAkMjwvY29kZT4gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gZmxhZ3MgYW5kIGVudmlyb25tZW50IHZhcmlhYmxlcy48L3A+SW1hZ2UgRmlsZXNBdWRpbyBGaWxlc1ZpZGVvIEZpbGVzQ3VzdG9tIEZpbGVzWW91IGhhdmUgZ29uZSBmdWxsIHNjcmVlbi4iJDEiIHRyaWdnZXJlZCBmdWxsIHNjcmVlbi5BbiBleHRlbnNpb24gdHJpZ2dlcmVkIGZ1bGwgc2NyZWVuLiQxIGlzIG5vdyBmdWxsIHNjcmVlbi5UaGlzIHBhZ2UgaXMgbm93IGZ1bGwgc2NyZWVuLiQxIGlzIG5vdyBmdWxsIHNjcmVlbiBhbmQgaGFzIGRpc2FibGVkIHlvdXIgbW91c2UgY3Vyc29yLlRoaXMgcGFnZSBpcyBub3cgZnVsbCBzY3JlZW4gYW5kIGhhcyBkaXNhYmxlZCB5b3VyIG1vdXNlIGN1cnNvci4kMSBoYXMgZGlzYWJsZWQgeW91ciBtb3VzZSBjdXJzb3IuVGhpcyBwYWdlIGhhcyBkaXNhYmxlZCB5b3VyIG1vdXNlIGN1cnNvci5QcmVzcyB8JDF8IHRvIGV4aXQgZnVsbCBzY3JlZW5QcmVzcyB8JDF8IHRvIHNob3cgeW91ciBjdXJzb3JQcmVzcyBhbmQgaG9sZCB8JDF8IHRvIGV4aXQgZnVsbCBzY3JlZW5lbWFpbHdlYiBjYWxlbmRhckFsbG93ICQxIHRvIG9wZW4gYWxsICQyIGxpbmtzP0FsbG93ICQxIHRvIG9wZW4gYWxsICQyIGxpbmtzIGluc3RlYWQgb2YgJDM/T3BlbiAkMSBsaW5rc09wZW4gJDEgbGlua3MgaW5zdGVhZCBvZiAkMklnbm9yZSQxIHdhbnRzIHRvIHVzZSB5b3VyIGNhbWVyYSBhbmQgbWljcm9waG9uZSQxIHdhbnRzIHRvIHVzZSB5b3VyIG1pY3JvcGhvbmUkMSB3YW50cyB0byB1c2UgeW91ciBjYW1lcmEkMSB3YW50cyB0byBzaGFyZSB5b3VyIHNjcmVlblRoaXMgc2l0ZSBpcyB1c2luZyBtb3Rpb24gb3IgbGlnaHQgc2Vuc29ycy5UaGlzIHNpdGUgaGFzIGJlZW4gYmxvY2tlZCBmcm9tIHVzaW5nIG1vdGlvbiBhbmQgbGlnaHQgc2Vuc29ycy5BbHdheXMgYWxsb3cgJDEgdG8gYWNjZXNzIHNlbnNvcnNDb250aW51ZSBibG9ja2luZyBzZW5zb3IgYWNjZXNzU2Vuc29ycyBhbGxvd2VkU2Vuc29ycyBibG9ja2VkVGhpcyBzaXRlIGlzIGFjY2Vzc2luZyB5b3VyIG1vdGlvbiBvciBsaWdodCBzZW5zb3JzLlRoaXMgc2l0ZSBoYXMgYmVlbiBibG9ja2VkIGZyb20gYWNjZXNzaW5nIHlvdXIgbW90aW9uIG9yIGxpZ2h0IHNlbnNvcnMuQ29udGludWUgYWxsb3dpbmcgc2Vuc29yIGFjY2Vzc0Fsd2F5cyBibG9jayAkMSBmcm9tIGFjY2Vzc2luZyBzZW5zb3JzJDEgd2FudHMgdG8gcGVybWFuZW50bHkgc3RvcmUgZGF0YSBvbiB5b3VyIGxvY2FsIGNvbXB1dGVyJDEgd2FudHMgdG8gcGVybWFuZW50bHkgc3RvcmUgbGFyZ2UgZGF0YSBvbiB5b3VyIGxvY2FsIGNvbXB1dGVyU3RvcmUgZmlsZXMgb24gdGhpcyBkZXZpY2VCcm93c2UgdGhlIHdlYiBpbiBoaWdoIGNvbnRyYXN0IG1vZGVUcnk6SGlnaCBDb250cmFzdCBFeHRlbnNpb25EYXJrIFRoZW1lTWVkaWEtRmlsZSBQZXJtaXNzaW9ucyBmb3IgIiQxIiIkMSIgY2FuIHJlYWQgYW5kIHdyaXRlIGltYWdlcywgdmlkZW8sIGFuZCBzb3VuZCBmaWxlcyBpbiB0aGUgY2hlY2tlZCBsb2NhdGlvbnMuIiQxIiBjYW4gcmVhZCBhbmQgZGVsZXRlIGltYWdlcywgdmlkZW8sIGFuZCBzb3VuZCBmaWxlcyBpbiB0aGUgY2hlY2tlZCBsb2NhdGlvbnMuIiQxIiBjYW4gcmVhZCBpbWFnZXMsIHZpZGVvLCBhbmQgc291bmQgZmlsZXMgaW4gdGhlIGNoZWNrZWQgbG9jYXRpb25zLlN1Z2dlc3Rpb25zbGFzdCBhdHRhY2hlZCBvbiAkMUFkZCBsb2NhdGlvbuKApkFkZCBNZWRpYSBHYWxsZXJ5IGJ5IERpcmVjdG9yeWF0dGFjaGVkbm90IGF0dGFjaGVkUGVybWFuZW50bHkgcmVtb3ZlIGFjY2VzcyBmb3IgYWxsIGFwcHNJZGVudGl0eSBBUEkgVG9rZW4gQ2FjaGVBY2Nlc3MgVG9rZW5FeHRlbnNpb24gTmFtZUV4dGVuc2lvbiBJZFRva2VuIFN0YXR1c05vdCBGb3VuZFRva2VuIFByZXNlbnRFeHBpcmF0aW9uIFRpbWVSZXZva2VBIGZhc3QsIHNpbXBsZSwgYW5kIHNlY3VyZSB3ZWIgYnJvd3NlciwgYnVpbHQgZm9yIHRoZSBtb2Rlcm4gd2ViLkhpZ2ggZGlzayB1c2FnZSBkZXRlY3RlZCQxIGlzIHVzaW5nICQyIE1CIG9mIGRpc2sgc3BhY2UuRG9uJ3Qgd2FybiBhZ2FpbiBmb3IgdGhpcyBhcHBEb24ndCB3YXJuIGFnYWluIGZvciB0aGlzIGV4dGVuc2lvblJlbW92ZSBhcHAkMSB3YW50cyB0byBzaGFyZSB0aGUgY29udGVudHMgb2YgeW91ciBzY3JlZW4uIENob29zZSB3aGF0IHlvdSdkIGxpa2UgdG8gc2hhcmUuJDEgd2FudHMgdG8gc2hhcmUgdGhlIGNvbnRlbnRzIG9mIHlvdXIgc2NyZWVuIHdpdGggJDIuIENob29zZSB3aGF0IHlvdSdkIGxpa2UgdG8gc2hhcmUuU2hhcmUgYXVkaW9Zb3VyIEVudGlyZSBTY3JlZW5BcHBsaWNhdGlvbiBXaW5kb3dFbnRpcmUgc2NyZWVue1NDUkVFTl9JTkRFWCwgcGx1cmFsLCA9MXtTY3JlZW4gI30gb3RoZXJ7U2NyZWVuICN9fXtOVU1fUFJJTlRFUiwgcGx1cmFsLAogICAgICAgICA9MSB7TmV3IHByaW50ZXIgb24geW91ciBuZXR3b3JrfQogICAgICAgICBvdGhlciB7TmV3IHByaW50ZXJzIG9uIHlvdXIgbmV0d29ya319e05VTV9QUklOVEVSLCBwbHVyYWwsCiAgICAgICAgICA9MSB7QWRkIHRoZSBwcmludGVyIHRvIEdvb2dsZSBDbG91ZCBQcmludCBzbyB5b3UgY2FuIHByaW50IGZyb20gYW55d2hlcmUufQogICAgICAgICAgb3RoZXIge0FkZCAjIHByaW50ZXJzIHRvIEdvb2dsZSBDbG91ZCBQcmludCBzbyB5b3UgY2FuIHByaW50IGZyb20gYW55d2hlcmUufX1BZGQgdG8gQ2xvdWQgUHJpbnREZXZpY2VzVXNlcjpDb25maXJtIHJlZ2lzdHJhdGlvbkFkZGluZyBwcmludGVy4oCmQWRkaW5nIGRldmljZeKApkNvdWxkIG5vdCBjb21wbGV0ZSByZWdpc3RyYXRpb25Zb3UgbXVzdCBjb25maXJtIHJlZ2lzdHJhdGlvbiBvbiB5b3VyIHByaW50ZXIgdG8gZmluaXNoIHRoaXMgcHJvY2VzcyAtIGNoZWNrIGl0IG5vdy5BZGRpbmcgdGhlIHByaW50ZXIgdG8geW91ciBhY2NvdW50IC0gdGhpcyBtYXkgdGFrZSBhIG1vbWVudOKApkFkZGluZyB0aGUgZGV2aWNlIHRvIHlvdXIgYWNjb3VudCAtIHRoaXMgbWF5IHRha2UgYSBtb21lbnTigKZNYWtlIHN1cmUgdGhlIGRldmljZSBpcyBzaG93aW5nIHRoZSBzYW1lIGNvZGUuQW4gZXJyb3IgaGFzIG9jY3VycmVkLiBQbGVhc2UgY2hlY2sgeW91ciBwcmludGVyIGFuZCB0cnkgYWdhaW4uUHJpbnRlciBvbiBHb29nbGUgQ2xvdWQgUHJpbnREZXZpY2Ugb24gR29vZ2xlIENsb3VkIERldmljZXNObyBvdGhlciBhdmFpbGFibGUgZGV2aWNlcy5PbmUgb3RoZXIgYXZhaWxhYmxlIGRldmljZS4kMSBvdGhlciBhdmFpbGFibGUgZGV2aWNlcy5Mb2FkaW5nQWRkIERldmljZXNMb29rcyBsaWtlIHRoZXJlIGFyZSBubyBkZXZpY2VzIGF2YWlsYWJsZSB0byByZWdpc3RlciBvbiB0aGUgbmV0d29yay4gSWYgeW91ciBkZXZpY2UgaXMgb24gYW5kIGNvbm5lY3RlZCB0byB0aGUgaW50ZXJuZXQsIHRyeSByZWdpc3RlcmluZyBpdCB1c2luZyBpbnN0cnVjdGlvbnMgaW4gaXRzIGluc3RydWN0aW9uIG1hbnVhbC5Db3VsZCBub3QgbG9hZCBkZXZpY2VzLllvdSBuZWVkIHRvIHNpZ24gaW4gdG8gQ2hyb21lIHRvIHNlZSB5b3VyIGRldmljZXNZb3UgbmVlZCB0byBzaWduIGluIHRvIENocm9tZSB0byByZWdpc3RlciBuZXcgZGV2aWNlc05ldyBkZXZpY2VzTXkgZGV2aWNlc1lvdSBjYW4gYWRkIGNsYXNzaWMgcHJpbnRlcnMgY29ubmVjdGVkIHRvIHlvdXIgY29tcHV0ZXIgdG8gJDEuQ2xhc3NpYyBwcmludGVyc0Rvbid0IHNob3cgdGhpcyBhZ2FpblByaW50ZXIgcmVnaXN0cmF0aW9uIGhhcyBiZWVuIGNhbmNlbGVkLlByaW50ZXIgcmVnaXN0cmF0aW9uIGhhcyB0aW1lZCBvdXQuIEluIG9yZGVyIHRvIHJlZ2lzdGVyIGEgcHJpbnRlciwgeW91IG11c3QgY29uZmlybSByZWdpc3RyYXRpb24gb24gdGhlIHByaW50ZXIuRG9jdW1lbnRzIGFyZSA8YSBpcz0iYWN0aW9uLWxpbmsiIGhyZWY9Imh0dHBzOi8vc3VwcG9ydC5nb29nbGUuY29tL2Nsb3VkcHJpbnQvYW5zd2VyLzI1NDE4NDMiIHRhcmdldD0iX2JsYW5rIj5zZW50IHRvIEdvb2dsZTwvYT4gdG8gcHJlcGFyZSB0aGVtIGZvciBwcmludGluZy4gVmlldywgZWRpdCBhbmQgbWFuYWdlIHlvdXIgcHJpbnRlcnMgYW5kIHByaW50ZXIgaGlzdG9yeSBvbiB0aGUgPGEgaXM9ImFjdGlvbi1saW5rIiBocmVmPSJodHRwczovL3d3dy5nb29nbGUuY29tL2Nsb3VkcHJpbnQjam9icyIgdGFyZ2V0PSJfYmxhbmsiPkdvb2dsZSBDbG91ZCBQcmludCBkYXNoYm9hcmQ8L2E+LlRoaXMgdGFiIGlzIHVzaW5nIHlvdXIgY2FtZXJhIG9yIG1pY3JvcGhvbmUuVGhpcyB0YWIncyBjb250ZW50IGlzIGJlaW5nIHNoYXJlZC5UaGlzIHRhYiBpcyBwbGF5aW5nIGF1ZGlvLlRoaXMgdGFiJ3MgYXVkaW8gaXMgYmVpbmcgbXV0ZWQuVGhpcyB0YWIgaXMgY29ubmVjdGVkIHRvIGEgQmx1ZXRvb3RoIERldmljZS5UaGlzIHRhYiBpcyBjb25uZWN0ZWQgdG8gYSBVU0IgZGV2aWNlLlRoaXMgdGFiIGlzIHBsYXlpbmcgYSB2aWRlbyBpbiBwaWN0dXJlLWluLXBpY3R1cmUgbW9kZS5UaGlzIHRhYiBpcyBzaGFyaW5nIHlvdXIgZGVza3RvcCBjb250ZW50LiQxIC0gQ2FtZXJhIG9yIG1pY3JvcGhvbmUgcmVjb3JkaW5nJDEgLSBUYWIgY29udGVudCBzaGFyZWQkMSAtIFZpZGVvIHBsYXlpbmcgaW4gcGljdHVyZS1pbi1waWN0dXJlIG1vZGUkMSAtIEF1ZGlvIHBsYXlpbmckMSAtIEF1ZGlvIG11dGVkJDEgLSBCbHVldG9vdGggZGV2aWNlIGNvbm5lY3RlZCQxIC0gVVNCIGRldmljZSBjb25uZWN0ZWQkMSAtIE5ldHdvcmsgZXJyb3IkMSAtIENyYXNoZWQkMSAtIERlc2t0b3AgY29udGVudCBzaGFyZWRRdWl0VW5sb2NrIFByb2ZpbGUgYW5kIFJlbGF1bmNoVGhpcyBzaXRlIGhhcyBiZWVuIHVwZGF0ZWQgaW4gdGhlIGJhY2tncm91bmQuRGV2aWNlIExvZ0FkZCBhIHF1ZXJ5IHBhcmFtIGluIFVSTCB0byBhdXRvLXJlZnJlc2ggdGhlIHBhZ2U6IGNocm9tZTovL2RldmljZS1sb2cvP3JlZnJlc2g9PHNlYz5SZWZyZXNoU2hvdzpVc2VyRXZlbnREZWJ1Z0xvZ2luUG93ZXJCbHVldG9vdGhVU0JISURQcmludGVyRmlsZSBJbmZvRGV0YWlsZWQgVGltZXN0YW1wc1skMV0KICAgICAgICAkMgogICAgICAgICQzR28gdG8gJDEgdG8gY29ubmVjdC4kMSBkZXRlY3RlZCQxIHdhbnRzIHRvIHBhaXIiJDEiIHdhbnRzIHRvIHBhaXJObyBjb21wYXRpYmxlIGRldmljZXMgZm91bmQuJDEgdG8gYWxsb3cgcGFpcmluZ1R1cm4gb24gQmx1ZXRvb3RoIHdoaWxlIHNjYW5uaW5nIGZvciBkZXZpY2Vz4oCmUmUtc2NhblJlLXNjYW4gQmx1ZXRvb3RoIGRldmljZXNTY2FubmluZ+KAplNjYW5uaW5nIGZvciBCbHVldG9vdGggZGV2aWNlc+KAplBhaXJHZXQgaGVscCQxJDEgb3IgJDJQYWlyZWQkMSAtIFBhaXJlZCQxIHdhbnRzIHRvIGNvbm5lY3QiJDEiIHdhbnRzIHRvIGNvbm5lY3RDb25uZWN0VW5rbm93biBkZXZpY2UgZnJvbSAkMVVua25vd24gZGV2aWNlIFskMTokMl0kMSBleHRlbnNpb24gbWF5IGNvbGxlY3QgYWxsIHRoZSB0ZXh0IHlvdSB0eXBlLCBpbmNsdWRpbmcgcGVyc29uYWwgZGF0YSBsaWtlIHBhc3N3b3JkcyBhbmQgY3JlZGl0IGNhcmQgbnVtYmVycy4gRG8geW91IHdhbnQgdG8gdXNlIHRoaXMgZXh0ZW5zaW9uP05ldmVyIHNob3cgdGhpcyBhZ2Fpbi5BbHdheXMgYWxsb3cgYWRzIG9uIHRoaXMgc2l0ZUFkcyBibG9ja2VkLkFkcyBibG9ja2VkQ2hyb21lIGJsb2NrZWQgYWRzIG9uIHRoaXMgc2l0ZSBiZWNhdXNlIHRoaXMgc2l0ZSB0ZW5kcyB0byBzaG93IGludHJ1c2l2ZSBhZHMuQWRzIGJsb2NrZWQgb24gdGhpcyBzaXRlUmVkaXJlY3QgYmxvY2tlZDpSZWRpcmVjdCBibG9ja2VkUmVkaXJlY3QgYmxvY2tlZCBvbiB0aGlzIHBhZ2UuVGhlIHdlYiBicm93c2VyIGJ5IEdvb2dsZSwgZm9yIHlvdVNpZ24gaW4gdG8gQ2hyb21lIHdpdGggeW91ciBHb29nbGUgQWNjb3VudCB0byBnZXQgeW91ciBib29rbWFya3MsIGhpc3RvcnksIHBhc3N3b3JkcywgYW5kIG90aGVyIHNldHRpbmdzIG9uIGFsbCB5b3VyIGRldmljZXMuWW91ciBkb3dubG9hZHMgYXBwZWFyIGhlcmVDaHJvbWUgaXMgYmVpbmcgY29udHJvbGxlZCBieSBhdXRvbWF0ZWQgdGVzdCBzb2Z0d2FyZS5TZWUgdGhlIG1ha2UgYW5kIG1vZGVsIG9mIHlvdXIgU2VjdXJpdHkgS2V5QWNjZXNzaW5nIHZpZGVvIGlucHV0QWNjZXNzaW5nIGF1ZGlvIGlucHV0QWNjZXNzaW5nIGF1ZGlvIGFuZCB2aWRlbyBpbnB1dE9wZW4gZG93bmxvYWRBbGxvdyAkMSB0byBvcGVuICQyP3swLCBwbHVyYWwsCiAgICAgICAgPTEge1VwbG9hZCBvbmUgZmlsZSB0byB0aGlzIHNpdGU/fQogICAgICAgIG90aGVyIHtVcGxvYWQgIyBmaWxlcyB0byB0aGlzIHNpdGU/fQogICAgICB9VGhpcyB3aWxsIHVwbG9hZCBhbGwgZmlsZXMgZnJvbSAiJDEiLiBPbmx5IGRvIHRoaXMgaWYgeW91IHRydXN0IHRoZSBzaXRlLlVwbG9hZFJlbGF1bmNoIG5vd0dvdCBpdCQxIHdhbnRzIHRvIHZlcmlmeSB5b3VyIGlkZW50aXR5VmVyaWZ5aW5nIHlvdXIgaWRlbnRpdHkgaGVscHMgcHJvdGVjdCB5b3VyIHByaXZhdGUgZGF0YVZlcmlmeSB5b3VyIGlkZW50aXR5IHdpdGggJDFQaWNrIGFuIG9wdGlvblVzZSB5b3VyIFNlY3VyaXR5IEtleSB3aXRoIEJsdWV0b290aFVzZSB5b3VyIFNlY3VyaXR5IEtleSB3aXRoIFVTQlVzZSB5b3VyIFNlY3VyaXR5IEtleSB3aXRoIE5GQ1VzZSBhIGJ1aWx0LWluIFNlY3VyaXR5IEtleVVzZSB5b3VyIHBob25lIGFzIGEgU2VjdXJpdHkgS2V5VXNlIFVTQiBTZWN1cml0eSBLZXlVc2UgVVNCIFNlY3VyaXR5IEtleSB3aXRoICQxUGx1ZyBpbiB5b3VyIFNlY3VyaXR5IEtleSBhbmQgYWN0aXZhdGUgaXRUaW1lIG91dFRoZSByZXF1ZXN0IHRpbWVkIG91dFlvdXIgU2VjdXJpdHkgS2V5IG9ubHkgd29ya3Mgd2hlbiB5b3VyIGRldmljZSdzIEJsdWV0b290aCBpcyBvblJlYWR5IHRvIHBhaXIgeW91ciBTZWN1cml0eSBLZXk/UGFpciB5b3VyIGtleSB0byB0aGlzIGRldmljZSBzbyB5b3UgY2FuIHVzZSBpdCB0byBzaWduIGludG8geW91ciBhY2NvdW50QmVnaW5BbGxvdyB0aGUgdXNlIG9mIHlvdXIgU2VjdXJpdHkgS2V5UHJlc3MgYW5kIGhvbGQgdGhlIGJ1dHRvbiBvbiB5b3VyIFNlY3VyaXR5IEtleSBmb3IgYXQgbGVhc3QgNSBzZWNvbmRzU2VsZWN0IHlvdXIgU2VjdXJpdHkgS2V5RmluZCB0aGUgbmFtZSBwcmludGVkIG9uIHRoZSBiYWNrIG9mIHlvdXIga2V5UGFpciB3aXRoICQxRmluZCB0aGUgNi1kaWdpdCBQSU4gb24gdGhlIGJhY2sgb2YgeW91ciBrZXlWZXJpZnlpbmcgeW91ciBTZWN1cml0eSBLZXlVc2UgeW91ciBTZWN1cml0eSBLZXkgd2l0aCAkMVRvIHVzZSBtb3N0IGtleXMsIHNpbXBseSBwcmVzcyB0aGUgYnV0dG9uZW4tVVM1NTcwMjU1Mmh0dHBzOi8vY2hyb21lLmdvb2dsZS5jb20vd2Vic3RvcmU/aGw9ZW4mY2F0ZWdvcnk9dGhlbWVodHRwczovL2Nocm9tZS5nb29nbGUuY29tL3dlYnN0b3JlP2hsPWVuaHR0cDovL3d3dy5hZG9iZS5jb20vZ28vc2V0dG1ncl9zdG9yYWdlX2VuaHR0cDovL3d3dy5tYWNyb21lZGlhLmNvbS9zdXBwb3J0L2RvY3VtZW50YXRpb24vZW4vZmxhc2hwbGF5ZXIvaGVscC9zZXR0aW5nc19tYW5hZ2VyMDIuaHRtbGh0dHA6Ly93d3cubWFjcm9tZWRpYS5jb20vc3VwcG9ydC9kb2N1bWVudGF0aW9uL2VuL2ZsYXNocGxheWVyL2hlbHAvc2V0dGluZ3NfbWFuYWdlcjA2Lmh0bWxodHRwczovL3N1cHBvcnQuZ29vZ2xlLmNvbS9jaHJvbWUvYW5zd2VyLzExODE0MjA2NTgxaHR0cHM6Ly9teWFjdGl2aXR5Lmdvb2dsZS5jb20vbXlhY3Rpdml0eS8/dXRtX3NvdXJjZT1jaHJvbWVfbmh0dHBzOi8vbXlhY3Rpdml0eS5nb29nbGUuY29tL215YWN0aXZpdHkvP3V0bV9zb3VyY2U9Y2hyb21lX2hUaW1lcyBOZXcgUm9tYW5Nb25vc3BhY2VBcmlhbENvbWljIFNhbnMgTVNJbXBhY3QxNjEzMDZHbyB0bwogICAgICAgICAgdGhlIENocm9taXVtIG1lbnUgPgogICAgICAgICAgPHNwYW4ganNjb250ZW50PSJzZXR0aW5nc1RpdGxlIj48L3NwYW4+CiAgICAgICAgICA+CiAgICAgICAgICA8c3BhbiBqc2NvbnRlbnQ9ImFkdmFuY2VkVGl0bGUiPjwvc3Bhbj4KICAgICAgICAgIGFuZCBkZXNlbGVjdCAiPHNwYW4ganNjb250ZW50PSJub05ldHdvcmtQcmVkaWN0aW9uVGl0bGUiPjwvc3Bhbj4uIgogICAgICAgICAgSWYgdGhpcyBkb2VzIG5vdCByZXNvbHZlIHRoZSBpc3N1ZSwgd2UgcmVjb21tZW5kIHNlbGVjdGluZyB0aGlzIG9wdGlvbgogICAgICAgICAgYWdhaW4gZm9yIGltcHJvdmVkIHBlcmZvcm1hbmNlLkFsbG93IENocm9taXVtIHRvIGFjY2VzcyB0aGUgbmV0d29yayBpbiB5b3VyIGZpcmV3YWxsIG9yIGFudGl2aXJ1cwogICAgICAgICAgc2V0dGluZ3MuQ2hyb21pdW0gT1MgaGFzbuKAmXQgY29tcGxldGVkIGl0cyBpbml0aWFsIHNldHVwLkdvIHRvCiAgICAgICAgICB0aGUgQ2hyb21pdW0gbWVudSA+CiAgICAgICAgICA8c3BhbiBqc2NvbnRlbnQ9InNldHRpbmdzVGl0bGUiPjwvc3Bhbj4KICAgICAgICAgID4KICAgICAgICAgIDxzcGFuIGpzY29udGVudD0iYWR2YW5jZWRUaXRsZSI+PC9zcGFuPgogICAgICAgICAgPgogICAgICAgICAgPHNwYW4ganNjb250ZW50PSJwcm94eVRpdGxlIj48L3NwYW4+CiAgICAgICAgICBhbmQgbWFrZSBzdXJlIHlvdXIgY29uZmlndXJhdGlvbiBpcyBzZXQgdG8gIm5vIHByb3h5IiBvciAiZGlyZWN0LiJZb3VyIGNoYW5nZXMgd2lsbCB0YWtlIGVmZmVjdCB0aGUgbmV4dCB0aW1lIHlvdSByZWxhdW5jaCBDaHJvbWl1bS5DcmFzaCByZXBvcnRpbmcgaXMgbm90IGF2YWlsYWJsZSBpbiBDaHJvbWl1bS5DaHJvbWl1bSBpcyBtYWRlIHBvc3NpYmxlIGJ5IHRoZSA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJDEiPkNocm9taXVtPC9hPiBvcGVuIHNvdXJjZSBwcm9qZWN0IGFuZCBvdGhlciA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJDIiPm9wZW4gc291cmNlIHNvZnR3YXJlPC9hPi5Zb3UncmUgdmlld2luZyBhIHNlY3VyZSBDaHJvbWl1bSBwYWdlQ2hyb21pdW0gdmVyaWZpZWQgdGhhdCAkMSBpc3N1ZWQgdGhpcyB3ZWJzaXRlJ3MgY2VydGlmaWNhdGUuQ2hyb21pdW0gZGlkbid0IHNodXQgZG93biBjb3JyZWN0bHkuPGh0bWw+CjxoZWFkPgogIDx0aXRsZT48L3RpdGxlPgo8L2hlYWQ+Cjxib2R5Pgo8aDI+VGhpcyBTcGFjZSBJbnRlbnRpb25hbGx5IEJsYW5rPC9oMj4KPHA+SW4gb2ZmaWNpYWwgYnVpbGRzIHRoaXMgc3BhY2Ugd2lsbCBzaG93IHRoZSB0ZXJtcyBvZiBzZXJ2aWNlLjwvcD4KPC9ib2R5Pgo8L2h0bWw+ZW4tVVMsZW53aW5kb3dzLTEyNTIkMSBzYXlzQW4gZW1iZWRkZWQgcGFnZSBhdCAkMSBzYXlzVGhpcyBwYWdlIHNheXNBbiBlbWJlZGRlZCBwYWdlIG9uIHRoaXMgcGFnZSBzYXlzUHJldmVudCB0aGlzIHBhZ2UgZnJvbSBjcmVhdGluZyBhZGRpdGlvbmFsIGRpYWxvZ3NMZWF2ZSBzaXRlP0xlYXZlIGFwcD9DaGFuZ2VzIHlvdSBtYWRlIG1heSBub3QgYmUgc2F2ZWQuUmVsb2FkIHNpdGU/UmVsb2FkIGFwcD9DbGVhciBmb3JtUGF5bWVudCBhdXRvZmlsbGluZyBkaXNhYmxlZEF1dG9tYXRpYyBjcmVkaXQgY2FyZCBmaWxsaW5nIGlzIGRpc2FibGVkIGJlY2F1c2UgdGhpcyBmb3JtIGRvZXMgbm90IHVzZSBhIHNlY3VyZSBjb25uZWN0aW9uLlRvIHVzZSBjYXJkcyBmcm9tIHlvdXIgR29vZ2xlIEFjY291bnQsIHNpZ24gaW4gdG8gQ2hyb21lUmVtb3ZlIGZvcm0gc3VnZ2VzdGlvbiBmcm9tIENocm9taXVtP1JlbW92ZSBjcmVkaXQgY2FyZCBmcm9tIENocm9taXVtP1JlbW92ZSBhZGRyZXNzIGZyb20gQ2hyb21pdW0/QW1lcmljYW4gRXhwcmVzc0FtZXhEaW5lcnMgQ2x1YkRpc2NvdmVyRWxvSkNCTWFzdGVyY2FyZE1pckNoaW5hIFVuaW9uUGF5VmlzYUNhcmQsIFN0YXRlQXJlYUNvdW50eURlcGFydG1lbnREaXN0cmljdEVtaXJhdGVJc2xhbmRQYXJpc2hQcmVmZWN0dXJlUHJvdmluY2VaSVAgY29kZVBvc3RhbCBjb2RlTWFuYWdlIGFkZHJlc3Nlc+KApk1hbmFnZSBwYXltZW50IG1ldGhvZHPigKZNYW5hZ2UgcGFzc3dvcmRz4oCmU2NhbiBuZXcgY2FyZFNob3cgYWxsIHNhdmVkIHBhc3N3b3Jkc0RvIHlvdSB3YW50IHRvIHNhdmUgdGhpcyBjYXJkIHRvIHlvdXIgR29vZ2xlIEFjY291bnQ/U2F2ZSBjYXJkP1BheSBxdWlja2x5IG9uIHNpdGVzIGFuZCBhcHBzIGFjcm9zcyBkZXZpY2VzIHVzaW5nIGNhcmRzIHlvdSBoYXZlIHNhdmVkIHdpdGggR29vZ2xlLlRvIHBheSBmYXN0ZXIgbmV4dCB0aW1lLCBzYXZlIHRoaXMgY2FyZCB0byB5b3VyIEdvb2dsZSBBY2NvdW50LlRvIHBheSBmYXN0ZXIgbmV4dCB0aW1lLCBzYXZlIHlvdXIgY2FyZCBhbmQgYmlsbGluZyBhZGRyZXNzIHRvIHlvdXIgR29vZ2xlIEFjY291bnQuVG8gcGF5IGZhc3RlciBuZXh0IHRpbWUsIHNhdmUgeW91ciBjYXJkLCBuYW1lLCBhbmQgYmlsbGluZyBhZGRyZXNzIHRvIHlvdXIgR29vZ2xlIEFjY291bnQuQ2FyZGhvbGRlciBuYW1lVGhpcyBuYW1lIGlzIGZyb20geW91ciBHb29nbGUgQWNjb3VudC5EbyB5b3Ugd2FudCB0byBoYXZlIGFsbCB5b3VyIGNhcmRzIGluIG9uZSBwbGFjZT9FeHA6ICQxLyQyLCBleHAgJDFDaGVjayB5b3VyIENWQyBhbmQgdHJ5IGFnYWluQ2hlY2sgeW91ciBleHBpcmF0aW9uIGRhdGUgYW5kIHRyeSBhZ2FpbkNoZWNrIHlvdXIgZXhwaXJhdGlvbiBkYXRlIGFuZCBDVkMgYW5kIHRyeSBhZ2FpbkNoZWNrIHlvdXIgZXhwaXJhdGlvbiBtb250aCBhbmQgdHJ5IGFnYWluQ2hlY2sgeW91ciBleHBpcmF0aW9uIHllYXIgYW5kIHRyeSBhZ2FpblRoaXMgY2FyZCBjYW4ndCBiZSB2ZXJpZmllZCByaWdodCBub3dUaGVyZSB3YXMgYSBwcm9ibGVtIGNvbmZpcm1pbmcgeW91ciBjYXJkLiBDaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24gYW5kIHRyeSBhZ2Fpbi5FbnRlciB0aGUgQ1ZDIGZvciAkMUVudGVyIHRoZSBleHBpcmF0aW9uIGRhdGUgYW5kIENWQyBmb3IgJDFBZnRlciB5b3UgY29uZmlybSwgY2FyZCBkZXRhaWxzIGZyb20geW91ciBHb29nbGUgUGF5bWVudHMgYWNjb3VudCB3aWxsIGJlIHNoYXJlZCB3aXRoIHRoaXMgc2l0ZS5PbmNlIHlvdSBjb25maXJtLCB5b3VyIGNhcmQgZGV0YWlscyB3aWxsIGJlIHNoYXJlZCB3aXRoIHRoaXMgc2l0ZS5UaGUgQ1ZDIGlzIGxvY2F0ZWQgYmVoaW5kIHlvdXIgY2FyZC5LZWVwIGEgY29weSBvZiB0aGlzIGNhcmQgb24gdGhpcyBkZXZpY2VJZiBjaGVja2VkLCBDaHJvbWl1bSB3aWxsIHN0b3JlIGEgY29weSBvZiB5b3VyIGNhcmQgb24gdGhpcyBkZXZpY2UgZm9yIGZhc3RlciBmb3JtIGZpbGxpbmcuQ29uZmlybWluZyBjYXJk4oCmWW91ciBjYXJkIGlzIGNvbmZpcm1lZFRoZSBjYXJkIGlzIGV4cGlyZWQvVXBkYXRlIGNhcmRDVkNGYWlsZWQgbG9hZGluZyByZWdpb25zIGRhdGFObyBzYXZlZCBhZGRyZXNzZXNGcm9tIEdvb2dsZSBQYXlCb29rbWFya3MgYmFyTW9iaWxlIGJvb2ttYXJrc090aGVyIGJvb2ttYXJrcyQxIGJvb2ttYXJrc01hbmFnZWQgYm9va21hcmtzQm9va21hcmsgdGhpcyBwYWdle0NPVU5ULCBwbHVyYWwsCiAgICAgPTAge05vbmV9CiAgICAgPTEgezEgaXRlbX0KICAgICBvdGhlciB7IyBpdGVtc319e0NPVU5ULCBwbHVyYWwsCiAgICAgPTAge0F0IGxlYXN0IDEgaXRlbSBvbiBzeW5jZWQgZGV2aWNlc30KICAgICA9MSB7MSBpdGVtIChhbmQgbW9yZSBvbiBzeW5jZWQgZGV2aWNlcyl9CiAgICAgb3RoZXIgeyMgaXRlbXMgKGFuZCBtb3JlIG9uIHN5bmNlZCBkZXZpY2VzKX19TGVzcyB0aGFuICQxTGVzcyB0aGFuIDEgTUJGcmVlcyB1cCAkMS4gU29tZSBzaXRlcyBtYXkgbG9hZCBtb3JlIHNsb3dseSBvbiB5b3VyIG5leHQgdmlzaXQuRnJlZXMgdXAgbGVzcyB0aGFuICQxLiBTb21lIHNpdGVzIG1heSBsb2FkIG1vcmUgc2xvd2x5IG9uIHlvdXIgbmV4dCB2aXNpdC5GcmVlcyB1cCBsZXNzIHRoYW4gMSBNQi4gU29tZSBzaXRlcyBtYXkgbG9hZCBtb3JlIHNsb3dseSBvbiB5b3VyIG5leHQgdmlzaXQue0NPVU5ULCBwbHVyYWwsCiAgICAgPTAge05vbmV9CiAgICAgPTEgezEgcGFzc3dvcmR9CiAgICAgb3RoZXIgeyMgcGFzc3dvcmRzfX17Q09VTlQsIHBsdXJhbCwKICAgICA9MCB7Tm9uZX0KICAgICA9MSB7MSBwYXNzd29yZCAoc3luY2VkKX0KICAgICBvdGhlciB7IyBwYXNzd29yZHMgKHN5bmNlZCl9fXtDT1VOVCwgcGx1cmFsLAogICAgID0wIHtOb25lfQogICAgID0xIHsxIHNpdGV9CiAgICAgb3RoZXIgeyMgc2l0ZXN9fXtDT1VOVCwgcGx1cmFsLAogICAgID0xIHsxIGNyZWRpdCBjYXJkfQogICAgIG90aGVyIHsjIGNyZWRpdCBjYXJkc319e0NPVU5ULCBwbHVyYWwsCiAgICAgPTEgezEgYWRkcmVzc30KICAgICBvdGhlciB7IyBhZGRyZXNzZXN9fXtDT1VOVCwgcGx1cmFsLAogICAgID0xIHsxIHN1Z2dlc3Rpb259CiAgICAgb3RoZXIgeyMgc3VnZ2VzdGlvbnN9fXtDT1VOVCwgcGx1cmFsLAogICAgID0xIHsxIG90aGVyIHN1Z2dlc3Rpb259CiAgICAgb3RoZXIgeyMgb3RoZXIgc3VnZ2VzdGlvbnN9fXtDT1VOVCwgcGx1cmFsLAogICAgID0xIHsxIG90aGVyfQogICAgIG90aGVyIHsjIG90aGVyc319JDEgKHN5bmNlZCkkMSwgJDIgKHN5bmNlZCkkMSwgJDIsICQzJDEsICQyLCAkMyAoc3luY2VkKVRoaXMgd2lsbCBzaWduIHlvdSBvdXQgb2YgbW9zdCB3ZWJzaXRlcy57Q09VTlQsIHBsdXJhbCwKICAgICAgPTAge05vbmV9CiAgICAgID0xIHtGcm9tIDEgc2l0ZSB9CiAgICAgIG90aGVyIHtGcm9tICMgc2l0ZXMgfX17Q09VTlQsIHBsdXJhbCwKICAgICAgPTAge05vbmV9CiAgICAgID0xIHtGcm9tIDEgc2l0ZSAoeW91IHdvbid0IGJlIHNpZ25lZCBvdXQgb2YgeW91ciBHb29nbGUgQWNjb3VudCl9CiAgICAgIG90aGVyIHtGcm9tICMgc2l0ZXMgKHlvdSB3b24ndCBiZSBzaWduZWQgb3V0IG9mIHlvdXIgR29vZ2xlIEFjY291bnQpfX17Q09VTlQsIHBsdXJhbCwKICAgICA9MCB7Tm9uZX0KICAgICA9MSB7MSBhcHAgKCQxKX0KICAgICA9MiB7MiBhcHBzICgkMSwgJDIpfQogICAgIG90aGVyIHsjIGFwcHMgKCQxLCAkMiwgJDMpfX17Q09VTlQsIHBsdXJhbCwKICAgICA9MSB7YW5kIDEgbW9yZX0KICAgICBvdGhlciB7YW5kICMgbW9yZX19WW91IG1heSBsb3NlIGFjY2VzcyB0byBwcm90ZWN0ZWQgY29udGVudCBmcm9tIHNvbWUgc2l0ZXMuWW91IG1heSBsb3NlIGFjY2VzcyB0byBwcm90ZWN0ZWQgY29udGVudCBmcm9tICQxIGFuZCBzb21lIG90aGVyIHNpdGVzLkhpZGUgYWR2YW5jZWQgc2V0dGluZ3PigKZTaG93IGFkdmFuY2VkIHNldHRpbmdz4oCmQ2hhbmdlIHByb3h5IHNldHRpbmdz4oCmQ3Jhc2hlc0NyYXNoZXMgKCQxKVVwbG9hZGVkIENyYXNoIFJlcG9ydCBJRCAkMSAoTG9jYWwgQ3Jhc2ggSUQ6ICQyKUxvY2FsIENyYXNoIElEICQxQ3Jhc2ggcmVwb3J0IHVwbG9hZGVkIG9uICQxQ3Jhc2ggcmVwb3J0IGNhcHR1cmVkIG9uICQxLCB1cGxvYWRlZCBvbiAkMkNyYXNoIHJlcG9ydCBjYXB0dXJlZCBvbiAkMSB3YXMgbm90IHVwbG9hZGVkQ3Jhc2ggcmVwb3J0IGNhcHR1cmVkIG9uICQxIChub3QgeWV0IHVwbG9hZGVkIG9yIGlnbm9yZWQpQ3Jhc2ggcmVwb3J0IGNhcHR1cmVkIG9uICQxICh1cGxvYWQgcmVxdWVzdGVkIGJ5IHVzZXIsIG5vdCB5ZXQgdXBsb2FkZWQpUHJvdmlkZSBhZGRpdGlvbmFsIGRldGFpbHNZb3UgaGF2ZSBubyByZWNlbnRseSByZXBvcnRlZCBjcmFzaGVzLiAgQ3Jhc2hlcyB0aGF0IG9jY3VycmVkIHdoZW4gY3Jhc2ggcmVwb3J0aW5nIHdhcyBkaXNhYmxlZCB3aWxsIG5vdCBhcHBlYXIgaGVyZS5DcmFzaCByZXBvcnRpbmcgaXMgZGlzYWJsZWQuU3RhcnQgdXBsb2FkaW5nIGNyYXNoZXNTZW5kIG5vd1RoZSBzaXplIG9uIHRoZSBsb2NhbCBzdG9yYWdlIGlzICQxLkNvbmZpcm0gRm9ybSBSZXN1Ym1pc3Npb25UaGUgcGFnZSB0aGF0IHlvdSdyZSBsb29raW5nIGZvciB1c2VkIGluZm9ybWF0aW9uIHRoYXQgeW91IGVudGVyZWQuIFJldHVybmluZyB0byB0aGF0IHBhZ2UgbWlnaHQgY2F1c2UgYW55IGFjdGlvbiB5b3UgdG9vayB0byBiZSByZXBlYXRlZC4gRG8geW91IHdhbnQgdG8gY29udGludWU/SmF2YVNjcmlwdCBtdXN0IGJlIGVuYWJsZWQgdG8gdXNlIHRoaXMgZmVhdHVyZS5GYWlsZWQgdG8gYWRkIGFydGljbGUuRmFpbGVkIHRvIHZpZXcgYXJ0aWNsZS5GZXRjaGluZyBlbnRyaWVz4oCmRmFpbGVkIHRvIGZpbmQgYXJ0aWNsZUNvdWxkIG5vdCBmaW5kIHRoZSByZXF1ZXN0ZWQgYXJ0aWNsZS5SZWFkZXIgTW9kZU5vIGRhdGEgZm91bmQuV2FzIHRoZSB0ZXh0IGV4dHJhY3RlZCBjb3JyZWN0bHk/RE9NIERpc3RpbGxlckhpZGUgZGV0YWlsc1Nob3cgc2F2ZWQgY29weVNob3cgYSBzYXZlZCAoaS5lLiBrbm93biB0byBiZSBvdXQgb2YgZGF0ZSkgY29weSBvZiB0aGlzIHBhZ2UuVGhlIG93bmVyIG9mIHRoaXMgZGV2aWNlIHR1cm5lZCBvZmYgdGhlIGRpbm9zYXVyIGdhbWUuQWNjZXNzIGEgPGEganN2YWx1ZXM9ImhyZWY6dXJsQ29ycmVjdGlvbjsuanN0ZGF0YTokdGhpcyIgb25tb3VzZWRvd249ImxpbmtDbGlja2VkKHRoaXMuanN0ZGF0YSkiPmNhY2hlZCBjb3B5PC9hPiBvZiA8c3BhbiBqc2NvbnRlbnQ9Im9yaWdpbmFsVXJsRm9yRGlzcGxheSI+PC9zcGFuPkRpZCB5b3UgbWVhbiA8YSBqc3ZhbHVlcz0iaHJlZjp1cmxDb3JyZWN0aW9uOy5qc3RkYXRhOiR0aGlzIiBvbm1vdXNlZG93bj0ibGlua0NsaWNrZWQodGhpcy5qc3RkYXRhKSIganNjb250ZW50PSJ1cmxDb3JyZWN0aW9uRm9yRGlzcGxheSI+PC9hPj9HbyB0byA8YSBqc3ZhbHVlcz0iaHJlZjp1cmxDb3JyZWN0aW9uOy5qc3RkYXRhOiR0aGlzIiBvbm1vdXNlZG93bj0ibGlua0NsaWNrZWQodGhpcy5qc3RkYXRhKSIganNjb250ZW50PSJ1cmxDb3JyZWN0aW9uRm9yRGlzcGxheSI+PC9hPlByZXNzIHRoZSByZWxvYWQgYnV0dG9uIHRvIHJlc3VibWl0IHRoZSBkYXRhIG5lZWRlZCB0byBsb2FkIHRoZSBwYWdlLkNoZWNrIHlvdXIgSW50ZXJuZXQgY29ubmVjdGlvbkNoZWNrIGFueSBjYWJsZXMgYW5kIHJlYm9vdCBhbnkgcm91dGVycywgbW9kZW1zLCBvciBvdGhlciBuZXR3b3JrCiAgICBkZXZpY2VzIHlvdSBtYXkgYmUgdXNpbmcuQ2hlY2sgeW91ciBETlMgc2V0dGluZ3NDb250YWN0IHlvdXIgbmV0d29yayBhZG1pbmlzdHJhdG9yIGlmIHlvdSdyZSBub3Qgc3VyZSB3aGF0IHRoaXMgbWVhbnMuVHJ5IGRpc2FibGluZyBuZXR3b3JrIHByZWRpY3Rpb25JZiBpdCBpcyBhbHJlYWR5IGxpc3RlZCBhcyBhIHByb2dyYW0gYWxsb3dlZCB0byBhY2Nlc3MgdGhlIG5ldHdvcmssIHRyeQogICAgICByZW1vdmluZyBpdCBmcm9tIHRoZSBsaXN0IGFuZCBhZGRpbmcgaXQgYWdhaW4uSWYgeW91IHVzZSBhIHByb3h5IHNlcnZlcuKApkNoZWNrIHlvdXIgcHJveHkgc2V0dGluZ3Mgb3IgY29udGFjdCB5b3VyIG5ldHdvcmsgYWRtaW5pc3RyYXRvciB0bwogICAgICBtYWtlIHN1cmUgdGhlIHByb3h5IHNlcnZlciBpcyB3b3JraW5nLiBJZiB5b3UgZG9uJ3QgYmVsaWV2ZSB5b3Ugc2hvdWxkCiAgICAgIGJlIHVzaW5nIGEgcHJveHkgc2VydmVyOgogICAgICAkMUNoZWNrIHlvdXIgYWRtaW5pc3RyYXRvcidzIHBvbGljaWVzVmlzaXQgPHN0cm9uZz5jaHJvbWU6Ly9wb2xpY3k8L3N0cm9uZz4gdG8gc2VlIHRoZSBsaXN0IG9mIGJsYWNrbGlzdGVkIFVSTHMgYW5kIG90aGVyIHBvbGljaWVzIGVuZm9yY2VkIGJ5IHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IuVW5zdXBwb3J0ZWQgcHJvdG9jb2xUaGUgY2xpZW50IGFuZCBzZXJ2ZXIgZG9uJ3Qgc3VwcG9ydCBhIGNvbW1vbiBTU0wgcHJvdG9jb2wgdmVyc2lvbiBvciBjaXBoZXIgc3VpdGUuVHJ5IDxhIGpzdmFsdWVzPSJocmVmOm9yaWdpblVSTDsuanN0ZGF0YTokdGhpcyIgb25tb3VzZWRvd249ImxpbmtDbGlja2VkKHRoaXMuanN0ZGF0YSkiPnZpc2l0aW5nIHRoZSBzaXRlJ3MgaG9tZXBhZ2U8L2E+LlRoaXMgc2l0ZSBjYW7igJl0IGJlIHJlYWNoZWRZb3VyIEludGVybmV0IGFjY2VzcyBpcyBibG9ja2VkTm8gaW50ZXJuZXRUaGlzIHNpdGUgY2Fu4oCZdCBiZSBsb2FkZWQgZnJvbSB0aGUgY2FjaGVZb3VyIGNvbm5lY3Rpb24gd2FzIGludGVycnVwdGVkVGhpcyA8c3BhbiBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3NwYW4+IHBhZ2UgY2Fu4oCZdCBiZSBmb3VuZFlvdXIgZmlsZSB3YXMgbm90IGZvdW5kPHNwYW4ganNjb250ZW50PSJob3N0TmFtZSI+PC9zcGFuPiBpcyBibG9ja2VkVGhlIHdlYnBhZ2UgYXQgPHN0cm9uZyBqc2NvbnRlbnQ9ImZhaWxlZFVybCI+PC9zdHJvbmc+IG1pZ2h0IGJlIHRlbXBvcmFyaWx5IGRvd24gb3IgaXQgbWF5IGhhdmUgbW92ZWQgcGVybWFuZW50bHkgdG8gYSBuZXcgd2ViIGFkZHJlc3MuPHN0cm9uZyBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3N0cm9uZz4gdG9vayB0b28gbG9uZyB0byByZXNwb25kLlRoZSBjb25uZWN0aW9uIHdhcyByZXNldC48c3Ryb25nIGpzY29udGVudD0iaG9zdE5hbWUiPjwvc3Ryb25nPiB1bmV4cGVjdGVkbHkgY2xvc2VkIHRoZSBjb25uZWN0aW9uLjxzdHJvbmcganNjb250ZW50PSJob3N0TmFtZSI+PC9zdHJvbmc+IGlzIGN1cnJlbnRseSB1bnJlYWNoYWJsZS5BIG5ldHdvcmsgY2hhbmdlIHdhcyBkZXRlY3RlZC48c3Ryb25nIGpzY29udGVudD0iaG9zdE5hbWUiPjwvc3Ryb25nPiByZWZ1c2VkIHRvIGNvbm5lY3QuPHN0cm9uZyBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3N0cm9uZz7igJlzIHNlcnZlciBJUCBhZGRyZXNzIGNvdWxkIG5vdCBiZSBmb3VuZC5UaGlzIHNpdGUgb24gdGhlIGNvbXBhbnksIG9yZ2FuaXphdGlvbiBvciBzY2hvb2wgaW50cmFuZXQgaGFzIHRoZSBzYW1lIFVSTCBhcyBhbiBleHRlcm5hbCB3ZWJzaXRlLgogICAgPGJyIC8+PGJyIC8+CiAgICBUcnkgY29udGFjdGluZyB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yLjxzdHJvbmcganNjb250ZW50PSJmYWlsZWRVcmwiPjwvc3Ryb25nPiBpcyB1bnJlYWNoYWJsZS5UaGUgZmlsZSBhdCA8c3Ryb25nIGpzY29udGVudD0iZmFpbGVkVXJsIj48L3N0cm9uZz4gaXMgbm90IHJlYWRhYmxlLiAgSXQgbWF5IGhhdmUgYmVlbiByZW1vdmVkLCBtb3ZlZCwgb3IgZmlsZSBwZXJtaXNzaW9ucyBtYXkgYmUgcHJldmVudGluZyBhY2Nlc3MuRmlyZXdhbGwgb3IgYW50aXZpcnVzIHNvZnR3YXJlIG1heSBoYXZlIGJsb2NrZWQgdGhlIGNvbm5lY3Rpb24uVGhlcmUgaXMgc29tZXRoaW5nIHdyb25nIHdpdGggdGhlIHByb3h5IHNlcnZlciwgb3IgdGhlIGFkZHJlc3MgaXMgaW5jb3JyZWN0LlRoZSBzYXZlZCAoY2FjaGVkKSBjb3B5IG9mIHRoaXMgc2l0ZSB3YXMgdW5yZWFkYWJsZS5Zb3VyIGNvbXB1dGVyIHdlbnQgdG8gc2xlZXAuTm8gd2VicGFnZSB3YXMgZm91bmQgZm9yIHRoZSB3ZWIgYWRkcmVzczogPHN0cm9uZyBqc2NvbnRlbnQ9ImZhaWxlZFVybCI+PC9zdHJvbmc+SXQgbWF5IGhhdmUgYmVlbiBtb3ZlZCBvciBkZWxldGVkLjxzdHJvbmcganNjb250ZW50PSJob3N0TmFtZSI+PC9zdHJvbmc+IHJlZGlyZWN0ZWQgeW91IHRvbyBtYW55IHRpbWVzLjxzdHJvbmcganNjb250ZW50PSJob3N0TmFtZSI+PC9zdHJvbmc+IGRpZG7igJl0IHNlbmQgYW55IGRhdGEuPHN0cm9uZyBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3N0cm9uZz4gc2VudCBhbiBpbnZhbGlkIHJlc3BvbnNlLjxzdHJvbmcganNjb250ZW50PSJob3N0TmFtZSI+PC9zdHJvbmc+4oCZcyA8YWJiciBpZD0iZG5zRGVmaW5pdGlvbiI+RE5TIGFkZHJlc3M8L2FiYnI+IGNvdWxkIG5vdCBiZSBmb3VuZC4gRGlhZ25vc2luZyB0aGUgcHJvYmxlbS5BY2Nlc3MgdG8gPHNwYW4ganNjb250ZW50PSJob3N0TmFtZSI+PC9zcGFuPiB3YXMgZGVuaWVkQWNjZXNzIHRvIHRoZSBmaWxlIHdhcyBkZW5pZWRZb3UgZG9uJ3QgaGF2ZSBhdXRob3JpemF0aW9uIHRvIHZpZXcgdGhpcyBwYWdlLlRoaXMgcGFnZSBpc27igJl0IHdvcmtpbmdJZiB0aGUgcHJvYmxlbSBjb250aW51ZXMsIGNvbnRhY3QgdGhlIHNpdGUgb3duZXIuPHN0cm9uZyBqc2NvbnRlbnQ9Imhvc3ROYW1lIj48L3N0cm9uZz4gaXMgY3VycmVudGx5IHVuYWJsZSB0byBoYW5kbGUgdGhpcyByZXF1ZXN0LjxzdHJvbmcganNjb250ZW50PSJob3N0TmFtZSI+PC9zdHJvbmc+IGRvZXNuJ3QgYWRoZXJlIHRvIHNlY3VyaXR5IHN0YW5kYXJkcy48c3Ryb25nIGpzY29udGVudD0iaG9zdE5hbWUiPjwvc3Ryb25nPiB1c2VzIGFuIHVuc3VwcG9ydGVkIHByb3RvY29sLlRoaXMgc2l0ZSBjYW7igJl0IHByb3ZpZGUgYSBzZWN1cmUgY29ubmVjdGlvbjxzdHJvbmcganNjb250ZW50PSJob3N0TmFtZSI+PC9zdHJvbmc+IGRpZG7igJl0IGFjY2VwdCB5b3VyIGxvZ2luIGNlcnRpZmljYXRlLCBvciBvbmUgbWF5IG5vdCBoYXZlIGJlZW4gcHJvdmlkZWQuUmVxdWVzdHMgdG8gdGhlIHNlcnZlciBoYXZlIGJlZW4gYmxvY2tlZCBieSBhbiBleHRlbnNpb24uQ2hyb21lIGRldGVjdGVkIHVudXN1YWwgY29kZSBvbiB0aGlzIHBhZ2UgYW5kIGJsb2NrZWQgaXQgdG8gcHJvdGVjdCB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uIChmb3IgZXhhbXBsZSwgcGFzc3dvcmRzLCBwaG9uZSBudW1iZXJzLCBhbmQgY3JlZGl0IGNhcmRzKS5UaGUgcGVyc29uIHdobyBzZXQgdXAgdGhpcyBjb21wdXRlciBoYXMgY2hvc2VuIHRvIGJsb2NrIHRoaXMgc2l0ZS5UaGlzIHdlYnBhZ2UgcmVxdWlyZXMgZGF0YSB0aGF0IHlvdSBlbnRlcmVkIGVhcmxpZXIgaW4gb3JkZXIgdG8gYmUgcHJvcGVybHkgZGlzcGxheWVkLiBZb3UgY2FuIHNlbmQgdGhpcyBkYXRhIGFnYWluLCBidXQgYnkgZG9pbmcgc28geW91IHdpbGwgcmVwZWF0IGFueSBhY3Rpb24gdGhpcyBwYWdlIHByZXZpb3VzbHkgcGVyZm9ybWVkLkNoZWNraW5nIHRoZSBjb25uZWN0aW9uPGEgaHJlZj0iI2J1dHRvbnMiIG9uY2xpY2s9InRvZ2dsZUhlbHBCb3goKSI+Q2hlY2tpbmcgdGhlIHByb3h5LCBmaXJld2FsbCwgYW5kIEROUyBjb25maWd1cmF0aW9uPC9hPjxhIGhyZWY9IiNidXR0b25zIiBvbmNsaWNrPSJ0b2dnbGVIZWxwQm94KCkiPkNoZWNraW5nIGZpcmV3YWxsIGFuZCBhbnRpdmlydXMgY29uZmlndXJhdGlvbnM8L2E+PGEgaHJlZj0iI2J1dHRvbnMiIG9uY2xpY2s9InRvZ2dsZUhlbHBCb3goKSI+Q2hlY2tpbmcgdGhlIHByb3h5IGFuZCB0aGUgZmlyZXdhbGw8L2E+PGEgaHJlZj0iI2J1dHRvbnMiIG9uY2xpY2s9InRvZ2dsZUhlbHBCb3goKSI+Q2hlY2tpbmcgdGhlIHByb3h5IGFkZHJlc3M8L2E+Q29udGFjdGluZyB0aGUgc3lzdGVtIGFkbWluVHJ5IGNvbnRhY3RpbmcgdGhlIHN5c3RlbSBhZG1pbi48YSBqc3ZhbHVlcz0iaHJlZjpsZWFybk1vcmVVcmwiPkxlYXJuaW5nIG1vcmU8L2E+IGFib3V0IHRoaXMgcHJvYmxlbS48YSBqc3ZhbHVlcz0iaHJlZjpsZWFybk1vcmVVcmwiPkxlYXJuIG1vcmU8L2E+IGFib3V0IHRoaXMgcHJvYmxlbS48YSBqc3ZhbHVlcz0iaHJlZjpsZWFybk1vcmVVcmwiPlRyeSBjbGVhcmluZyB5b3VyIGNvb2tpZXM8L2E+LkNoZWNraW5nIHRoZSBuZXR3b3JrIGNhYmxlcywgbW9kZW0sIGFuZCByb3V0ZXJSZWNvbm5lY3RpbmcgdG8gV2ktRmlGaXggeW91ciBjb25uZWN0aW9uIHVzaW5nIHRoZSA8YSAgaHJlZj0iI2J1dHRvbnMiIG9uY2xpY2s9ImphdmFzY3JpcHQ6ZGlhZ25vc2VFcnJvcnMoKSI+ZGlhZ25vc3RpY3MgYXBwPC9hPlNpZ24gb3V0IGFuZCBjb21wbGV0ZSBzZXR1cFRyeSBkaXNhYmxpbmcgeW91ciBleHRlbnNpb25zLlNlYXJjaCBHb29nbGUgZm9yIDxhIGpzdmFsdWVzPSJocmVmOnNlYXJjaFVybDsuanN0ZGF0YTokdGhpcyIgb25jbGljaz0ibGlua0NsaWNrZWQodGhpcy5qc3RkYXRhKSIganNjb250ZW50PSJzZWFyY2hUZXJtcyIgaWQ9InNlYXJjaC1saW5rIj48L2E+UHJldmlvdXNDbG9zZSBmaW5kIGJhckFjdGlvbnNBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZXNlIHBhZ2VzIGZyb20geW91ciBoaXN0b3J5P0Jvb2ttYXJrZWQkMSAkMiAkMyAkNEZvdW5kICQxICQyIGZvciAnJDMnWW91ciBHb29nbGUgQWNjb3VudCBtYXkgaGF2ZSBvdGhlciBmb3JtcyBvZiBicm93c2luZyBoaXN0b3J5IGF0IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSIkMSI+bXlhY3Rpdml0eS5nb29nbGUuY29tPC9hPk1vcmUgZnJvbSB0aGlzIHNpdGVZb3VyIGJyb3dzaW5nIGhpc3RvcnkgYXBwZWFycyBoZXJlQ2xlYXIgYnJvd3NpbmcgZGF0YeKApkNvbGxhcHNlIGxpc3RFeHBhbmQgbGlzdEhpZGUgZm9yIG5vd09wZW4gYWxsUmVtb3ZlIGJvb2ttYXJrUmVtb3ZlIGZyb20gaGlzdG9yeVJlbW92ZSBzZWxlY3RlZCBpdGVtc3NlYXJjaCByZXN1bHRzZWFyY2ggcmVzdWx0c1Nob3cgRnVsbCBIaXN0b3J5VW5rbm93biBkZXZpY2UkMSByZXF1aXJlcyBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC5UaGUgcHJveHkgJDEgcmVxdWlyZXMgYSB1c2VybmFtZSBhbmQgcGFzc3dvcmQuWW91ciBjb25uZWN0aW9uIHRvIHRoaXMgc2l0ZSBpcyBub3QgcHJpdmF0ZVVudGl0bGVkRG93bmxvYWRBdywgU25hcCFTb21ldGhpbmcgd2VudCB3cm9uZyB3aGlsZSBkaXNwbGF5aW5nIHRoaXMgd2VicGFnZS5JZiB5b3UncmUgc2VlaW5nIHRoaXMgZnJlcXVlbnRseSwgdHJ5IHRoZXNlICQxLnN1Z2dlc3Rpb25zQ2FuJ3Qgb3BlbiB0aGlzIHBhZ2VUcnkgY2xvc2luZyBvdGhlciB0YWJzIG9yIHByb2dyYW1zIHRvIGZyZWUgdXAgbWVtb3J5LlRyeSBleGl0aW5nIG90aGVyIHByb2dyYW1zIHRvIGZyZWUgdXAgbWVtb3J5Lk9wZW4gcGFnZSBpbiBhIG5ldyBJbmNvZ25pdG8gd2luZG93IChDdHJsLVNoaWZ0LU4pQ2xvc2Ugb3RoZXIgdGFicyBvciBwcm9ncmFtc0Nsb3NlIG90aGVyIHByb2dyYW1zUmVzdGFydCBDaHJvbWl1bVJlc3RhcnQgeW91ciBjb21wdXRlcllvdeKAmXZlIGdvbmUgaW5jb2duaXRvUGFnZXMgeW91IHZpZXcgaW4gaW5jb2duaXRvIHRhYnMgd29u4oCZdCBzdGljayBhcm91bmQgaW4geW91ciBicm93c2Vy4oCZcyBoaXN0b3J5LCBjb29raWUgc3RvcmUsIG9yIHNlYXJjaCBoaXN0b3J5IGFmdGVyIHlvdeKAmXZlIGNsb3NlZCBhbGwgb2YgeW91ciBpbmNvZ25pdG8gdGFicy4gQW55IGZpbGVzIHlvdSBkb3dubG9hZCBvciBib29rbWFya3MgeW91IGNyZWF0ZSB3aWxsIGJlIGtlcHQuTGVhcm4gbW9yZUhvd2V2ZXIsIHlvdSBhcmVu4oCZdCBpbnZpc2libGUuIEdvaW5nIGluY29nbml0byBkb2VzbuKAmXQgaGlkZSB5b3VyIGJyb3dzaW5nIGZyb20geW91ciBlbXBsb3llciwgeW91ciBpbnRlcm5ldCBzZXJ2aWNlIHByb3ZpZGVyLCBvciB0aGUgd2Vic2l0ZXMgeW91IHZpc2l0Lk5vdyB5b3UgY2FuIGJyb3dzZSBwcml2YXRlbHksIGFuZCBvdGhlciBwZW9wbGUgd2hvIHVzZSB0aGlzIGRldmljZSB3b27igJl0IHNlZSB5b3VyIGFjdGl2aXR5LiBIb3dldmVyLCBkb3dubG9hZHMgYW5kIGJvb2ttYXJrcyB3aWxsIGJlIHNhdmVkLkNocm9tZSA8ZW0+d29u4oCZdCBzYXZlPC9lbT4gdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+WW91ciBicm93c2luZyBoaXN0b3J5CiAgICAgICAgICA8bGk+Q29va2llcyBhbmQgc2l0ZSBkYXRhCiAgICAgICAgICA8bGk+SW5mb3JtYXRpb24gZW50ZXJlZCBpbiBmb3JtcwogICAgICAgIDwvdWw+WW91ciBhY3Rpdml0eSA8ZW0+bWlnaHQgc3RpbGwgYmUgdmlzaWJsZTwvZW0+IHRvOgogICAgICAgIDx1bD4KICAgICAgICAgIDxsaT5XZWJzaXRlcyB5b3UgdmlzaXQKICAgICAgICAgIDxsaT5Zb3VyIGVtcGxveWVyIG9yIHNjaG9vbAogICAgICAgICAgPGxpPllvdXIgaW50ZXJuZXQgc2VydmljZSBwcm92aWRlcgogICAgICAgIDwvdWw+R2V0IHN0YXJ0ZWRHZXQgcXVpY2sgYWNjZXNzIHRvIHlvdXIgZmF2b3JpdGUgR29vZ2xlIEFwcHNPcGVuIGFwcHMgZWFzaWx5IHdpdGggYm9va21hcmtzQXJ0aWNsZXMgYXJlbid0IGF2YWlsYWJsZSByaWdodCBub3dBcnRpY2xlcyBmb3IgeW91WW91ciBzdWdnZXN0ZWQgYXJ0aWNsZXMgYXBwZWFyIGhlcmVSZWNlbnQgYm9va21hcmtzWW91ciByZWNlbnRseSB2aXNpdGVkIGJvb2ttYXJrcyBhcHBlYXIgaGVyZVlvdXIgcmVjZW50IHRhYnMgZnJvbSBvdGhlciBkZXZpY2VzIGFwcGVhciBoZXJlTmVhcmJ5WW91ciBuZWFyYnkgc3VnZ2VzdGlvbnMgYXBwZWFyIGhlcmVSZWFkaW5nIGxpc3RQYWdlcyBmcm9tIHlvdXIgcmVhZGluZyBsaXN0IGFwcGVhciBoZXJlT3BlbiB0YWJzWW91ciBvcGVuIHRhYnMgYXBwZWFyIGhlcmVGcm9tICQxLiBSZWFkIHRoaXMgYW5kICQyIG90aGVyIHN0b3JpZXMuJDEgU2VhcmNoPFR5cGUgc2VhcmNoIHRlcm0+TGluayB5b3UgY29waWVkJDEgWyQyXVNlY3VyZU5vdCBzZWN1cmVEYW5nZXJvdXNPZmZsaW5lU3dpdGNoIHRvIHRoaXMgdGFiU3dpdGNoUGh5c2ljYWwgV2ViIHN1Z2dlc3Rpb25ze1VSTF9jb3VudCwgcGx1cmFsLCA9MSB7YW5kIDEgbW9yZSB3ZWIgcGFnZX0gb3RoZXIge2FuZCAjIG1vcmUgd2ViIHBhZ2VzfX17VVJMX2NvdW50LCBwbHVyYWwsID0xIHsxIHdlYiBwYWdlIG5lYXJieX0gb3RoZXIgeyMgd2ViIHBhZ2VzIG5lYXJieX19JDIgJDEgbG9jYXRpb24gZnJvbSBoaXN0b3J5JDEgc2VhcmNoIGZyb20gaGlzdG9yeSQxIHNlYXJjaCQxIHNlYXJjaCBzdWdnZXN0aW9uJDEsICQyLCBzZWFyY2ggc3VnZ2VzdGlvbiQxLCBhbnN3ZXIsICQyJDIgJDEgYm9va21hcmskMiAkMSBsb2NhdGlvbiBmcm9tIGNsaXBib2FyZFNlYXJjaCBpY29uJDEsICQyIG9mICQzJDEsIGN1cnJlbnRseSBvcGVuLCBwcmVzcyB0YWIgdGhlbiBlbnRlciB0byBzd2l0Y2ggdG8gdGhlIG9wZW4gdGFiQ29ubmVjdGlvbiBpcyBzZWN1cmVZb3VyIGNvbm5lY3Rpb24gdG8gdGhpcyBzaXRlIGlzIG5vdCBmdWxseSBzZWN1cmVZb3VyIGNvbm5lY3Rpb24gdG8gdGhpcyBzaXRlIGlzIG5vdCBzZWN1cmVUaGlzIHNpdGUgY29udGFpbnMgbWFsd2FyZVRoaXMgc2l0ZSBpcyBkZWNlcHRpdmVUaGlzIHNpdGUgY29udGFpbnMgaGFybWZ1bCBwcm9ncmFtc1lvdSdyZSB2aWV3aW5nIGFuIGV4dGVuc2lvbiBwYWdlWW91J3JlIHZpZXdpbmcgdGhlIHNvdXJjZSBvZiBhIHdlYiBwYWdlWW91ciBpbmZvcm1hdGlvbiAoZm9yIGV4YW1wbGUsIHBhc3N3b3JkcyBvciBjcmVkaXQgY2FyZCBudW1iZXJzKSBpcyBwcml2YXRlIHdoZW4gaXQgaXMgc2VudCB0byB0aGlzIHNpdGUuQXR0YWNrZXJzIG1pZ2h0IGJlIGFibGUgdG8gc2VlIHRoZSBpbWFnZXMgeW914oCZcmUgbG9va2luZyBhdCBvbiB0aGlzIHNpdGUgYW5kIHRyaWNrIHlvdSBieSBtb2RpZnlpbmcgdGhlbS5Zb3Ugc2hvdWxkIG5vdCBlbnRlciBhbnkgc2Vuc2l0aXZlIGluZm9ybWF0aW9uIG9uIHRoaXMgc2l0ZSAoZm9yIGV4YW1wbGUsIHBhc3N3b3JkcyBvciBjcmVkaXQgY2FyZHMpLCBiZWNhdXNlIGl0IGNvdWxkIGJlIHN0b2xlbiBieSBhdHRhY2tlcnMuQXR0YWNrZXJzIG9uIHRoaXMgc2l0ZSBtaWdodCBhdHRlbXB0IHRvIGluc3RhbGwgZGFuZ2Vyb3VzIHByb2dyYW1zIG9uIHlvdXIgY29tcHV0ZXIgdGhhdCBzdGVhbCBvciBkZWxldGUgeW91ciBpbmZvcm1hdGlvbiAoZm9yIGV4YW1wbGUsIHBob3RvcywgcGFzc3dvcmRzLCBtZXNzYWdlcywgYW5kIGNyZWRpdCBjYXJkcykuQXR0YWNrZXJzIG9uIHRoaXMgc2l0ZSBtYXkgdHJpY2sgeW91IGludG8gZG9pbmcgc29tZXRoaW5nIGRhbmdlcm91cyBsaWtlIGluc3RhbGxpbmcgc29mdHdhcmUgb3IgcmV2ZWFsaW5nIHlvdXIgcGVyc29uYWwgaW5mb3JtYXRpb24gKGZvciBleGFtcGxlLCBwYXNzd29yZHMsIHBob25lIG51bWJlcnMsIG9yIGNyZWRpdCBjYXJkcykuQXR0YWNrZXJzIG9uIHRoaXMgc2l0ZSBtaWdodCB0cnkgdG8gdHJpY2sgeW91IGludG8gaW5zdGFsbGluZyBwcm9ncmFtcyB0aGF0IGhhcm0geW91ciBicm93c2luZyBleHBlcmllbmNlIChmb3IgZXhhbXBsZSwgYnkgY2hhbmdpbmcgeW91ciBob21lcGFnZSBvciBzaG93aW5nIGV4dHJhIGFkcyBvbiBzaXRlcyB5b3UgdmlzaXQpLlRoZSBpZGVudGl0eSBvZiB0aGlzIHdlYnNpdGUgaGFzIG5vdCBiZWVuIHZlcmlmaWVkLllvdSBoYXZlIGNob3NlbiB0byBkaXNhYmxlIHNlY3VyaXR5IHdhcm5pbmdzIGZvciB0aGlzIHNpdGUuUmUtZW5hYmxlIHdhcm5pbmdzV2hhdCBkbyB0aGVzZSBtZWFuP1RoZSBjZXJ0aWZpY2F0ZSBjaGFpbiBmb3IgdGhpcyBzaXRlIGNvbnRhaW5zIGEgY2VydGlmaWNhdGUgc2lnbmVkIHVzaW5nIFNIQS0xLllvdXIgY29ubmVjdGlvbiB0byAkMSBpcyBlbmNyeXB0ZWQgdXNpbmcgYSBtb2Rlcm4gY2lwaGVyIHN1aXRlLkZ1cnRoZXIsIHRoaXMgcGFnZSBpbmNsdWRlcyBvdGhlciByZXNvdXJjZXMgd2hpY2ggYXJlIG5vdCBzZWN1cmUuIFRoZXNlIHJlc291cmNlcyBjYW4gYmUgdmlld2VkIGJ5IG90aGVycyB3aGlsZSBpbiB0cmFuc2l0LCBhbmQgY2FuIGJlIG1vZGlmaWVkIGJ5IGFuIGF0dGFja2VyIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIHBhZ2UuRnVydGhlciwgdGhpcyBwYWdlIGluY2x1ZGVzIG90aGVyIHJlc291cmNlcyB3aGljaCBhcmUgbm90IHNlY3VyZS4gVGhlc2UgcmVzb3VyY2VzIGNhbiBiZSB2aWV3ZWQgYnkgb3RoZXJzIHdoaWxlIGluIHRyYW5zaXQsIGFuZCBjYW4gYmUgbW9kaWZpZWQgYnkgYW4gYXR0YWNrZXIgdG8gY2hhbmdlIHRoZSBsb29rIG9mIHRoZSBwYWdlLlRoaXMgcGFnZSBpbmNsdWRlcyBhIGZvcm0gdGhhdCBtYXkgbm90IHN1Ym1pdCBzZWN1cmVseS4gRGF0YSB5b3Ugc2VuZCBjYW4gYmUgdmlld2VkIGJ5IG90aGVycyB3aGlsZSBpbiB0cmFuc2l0IG9yIGNvdWxkIGJlIG1vZGlmaWVkIGJ5IGFuIGF0dGFja2VyIHRvIGNoYW5nZSB3aGF0IHRoZSBzZXJ2ZXIgcmVjZWl2ZXMuJDEgJDJUaGUgY29ubmVjdGlvbiBpcyBlbmNyeXB0ZWQgdXNpbmcgJDEsIHdpdGggJDIgZm9yIG1lc3NhZ2UgYXV0aGVudGljYXRpb24gYW5kICQzIGFzIHRoZSBrZXkgZXhjaGFuZ2UgbWVjaGFuaXNtLlRoZSBjb25uZWN0aW9uIGlzIGVuY3J5cHRlZCBhbmQgYXV0aGVudGljYXRlZCB1c2luZyAkMSBhbmQgdXNlcyAkMiBhcyB0aGUga2V5IGV4Y2hhbmdlIG1lY2hhbmlzbS5UaGUgaWRlbnRpdHkgb2YgdGhlIHNlcnZlciB5b3UgYXJlIGNvbm5lY3RlZCB0byBjYW5ub3QgYmUgZnVsbHkgdmFsaWRhdGVkLiBZb3UgYXJlIGNvbm5lY3RlZCB0byBhIHNlcnZlciB1c2luZyBhIG5hbWUgb25seSB2YWxpZCB3aXRoaW4geW91ciBuZXR3b3JrLCB3aGljaCBhbiBleHRlcm5hbCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgaGFzIG5vIHdheSB0byB2YWxpZGF0ZSBvd25lcnNoaXAgb2YuIEFzIHNvbWUgY2VydGlmaWNhdGUgYXV0aG9yaXRpZXMgd2lsbCBpc3N1ZSBjZXJ0aWZpY2F0ZXMgZm9yIHRoZXNlIG5hbWVzIHJlZ2FyZGxlc3MsIHRoZXJlIGlzIG5vIHdheSB0byBlbnN1cmUgeW91IGFyZSBjb25uZWN0ZWQgdG8gdGhlIGludGVuZGVkIHdlYnNpdGUgYW5kIG5vdCBhbiBhdHRhY2tlci5Zb3VyIGNvbm5lY3Rpb24gdG8gJDEgaXMgbm90IGVuY3J5cHRlZC5UaGUgY2VydGlmaWNhdGUgZG9lcyBub3Qgc3BlY2lmeSBhIG1lY2hhbmlzbSB0byBjaGVjayB3aGV0aGVyIGl0IGhhcyBiZWVuIHJldm9rZWQuVGhlIGNvbm5lY3Rpb24gdXNlcyAkMS5VbmFibGUgdG8gY2hlY2sgd2hldGhlciB0aGUgY2VydGlmaWNhdGUgaGFzIGJlZW4gcmV2b2tlZC51bmtub3duIG5hbWVZb3VyIGNvbm5lY3Rpb24gdG8gJDEgaXMgZW5jcnlwdGVkIHVzaW5nIGFuIG9ic29sZXRlIGNpcGhlciBzdWl0ZS5DZXJ0aWZpY2F0ZSBpbmZvcm1hdGlvbiQxLCAkMiAkM1RoZSBpZGVudGl0eSBvZiAkMSBhdCAkMiBoYXMgYmVlbiB2ZXJpZmllZCBieSAkMy5WYWxpZEludmFsaWRDZXJ0aWZpY2F0ZSAkMShWYWxpZCkoSW52YWxpZClTaG93IGNlcnRpZmljYXRlIChpc3N1ZWQgYnkgJDEpU2hvdyBjZXJ0aWZpY2F0ZXtOVU1fQ09PS0lFUywgcGx1cmFsLCA9MSB7MSBpbiB1c2V9IG90aGVyIHsjIGluIHVzZX19Q29va2llcyAkMSh7TlVNX0NPT0tJRVMsIHBsdXJhbCwgPTEgezEgaW4gdXNlfSBvdGhlciB7IyBpbiB1c2V9fSlTaG93IGNvb2tpZXNBdXRvcGxheUJhY2tncm91bmQgU3luY01JREkgZGV2aWNlcyBmdWxsIGNvbnRyb2xNb3Rpb24gb3IgTGlnaHQgU2Vuc29yc0RldGVjdERldGVjdCAoZGVmYXVsdClVc2UgZ2xvYmFsIGRlZmF1bHQgKEFsbG93KVVzZSBnbG9iYWwgZGVmYXVsdCAoQmxvY2spVXNlIGdsb2JhbCBkZWZhdWx0IChBc2spVXNlIGdsb2JhbCBkZWZhdWx0IChEZXRlY3QpQWx3YXlzIGFsbG93IG9uIHRoaXMgc2l0ZUFsd2F5cyBibG9jayBvbiB0aGlzIHNpdGVBbHdheXMgYXNrIG9uIHRoaXMgc2l0ZUFsd2F5cyBkZXRlY3QgaW1wb3J0YW50IGNvbnRlbnQgb24gdGhpcyBzaXRlQmxvY2sgb24gdGhpcyBzaXRlU2VsZWN0IHBlcm1pc3Npb24gZm9yICQxJDFVU0IgZGV2aWNlUmV2b2tlIGFjY2Vzc1NpdGUgc2V0dGluZ3NPcGVuIHNpdGUgc2V0dGluZ3NBbGxvd2VkIGJ5IHlvdXIgYWRtaW5pc3RyYXRvckJsb2NrZWQgYnkgeW91ciBhZG1pbmlzdHJhdG9yU2V0dGluZyBjb250cm9sbGVkIGJ5IHlvdXIgYWRtaW5pc3RyYXRvckFsbG93ZWQgYnkgYW4gZXh0ZW5zaW9uQmxvY2tlZCBieSBhbiBleHRlbnNpb25TZXR0aW5nIGNvbnRyb2xsZWQgYnkgYW4gZXh0ZW5zaW9uQXV0b21hdGljYWxseSBibG9ja2VkU2l0ZSB0ZW5kcyB0byBzaG93IGludHJ1c2l2ZSBhZHNUbyBhcHBseSB5b3VyIHVwZGF0ZWQgc2V0dGluZ3MgdG8gdGhpcyBzaXRlLCByZWxvYWQgdGhpcyBwYWdlWW91IGNvdWxkIGxvc2UgYWNjZXNzIHRvIHlvdXIgR29vZ2xlIEFjY291bnQgb3IgZXhwZXJpZW5jZSBpZGVudGl0eSB0aGVmdC4gQ2hyb21pdW0gcmVjb21tZW5kcyBjaGFuZ2luZyB5b3VyIHBhc3N3b3JkIG5vdy5Zb3UgY291bGQgbG9zZSBhY2Nlc3MgdG8geW91ciBvcmdhbml6YXRpb24ncyBhY2NvdW50IG9yIGV4cGVyaWVuY2UgaWRlbnRpdHkgdGhlZnQuIENocm9taXVtIHJlY29tbWVuZHMgY2hhbmdpbmcgeW91ciBwYXNzd29yZCBub3cuWW91IGNvdWxkIGxvc2UgYWNjZXNzIHRvIHlvdXIgJDEgYWNjb3VudCBvciBleHBlcmllbmNlIGlkZW50aXR5IHRoZWZ0LiBDaHJvbWl1bSByZWNvbW1lbmRzIGNoYW5naW5nIHlvdXIgcGFzc3dvcmQgbm93LkhlbHAgbWUgZml4IHRoaXNTaXRlIGlzIGxlZ2l0aW1hdGVTaWduaW5nIGluIGFzICQxTm8gdXNlcm5hbWVTdWdnZXN0IHN0cm9uZyBwYXNzd29yZOKApk5ldmVyIHNhdmVkR29vZ2xlIFNtYXJ0IExvY2tDaHJvbWUgUGFzc3dvcmRzUmV2aWV3IHlvdXIgcGF5bWVudFBheW1lbnQgbm90IGNvbXBsZXRlZFBheW1lbnQgbWV0aG9kQ29udGFjdCBpbmZvQWRkIGNvbnRhY3QgaW5mb0VkaXQgY29udGFjdCBpbmZvQWRkIGJpbGxpbmcgYWRkcmVzc0FkZCBuYW1lIG9uIGNhcmRBZGQgdmFsaWQgY2FyZCBudW1iZXJBZGQgbW9yZSBpbmZvcm1hdGlvbkFkZCBwaG9uZSBudW1iZXJBZGQgbmFtZUFkZCB2YWxpZCBhZGRyZXNzQWRkIGVtYWlsT3JkZXIgc3VtbWFyeVBheW1lbnRTaGlwcGluZ1NoaXBwaW5nIGFkZHJlc3NTaGlwcGluZyBtZXRob2REZWxpdmVyeURlbGl2ZXJ5IGFkZHJlc3NEZWxpdmVyeSBtZXRob2RQaWNrdXBQaWNrdXAgYWRkcmVzc1BpY2t1cCBtZXRob2RQYXlDYW5jZWwgcGF5bWVudFBob25lIG51bWJlclNhdmUgdGhpcyBjYXJkIHRvIHRoaXMgZGV2aWNlQWNjZXB0ZWQgY2FyZHNBY2NlcHRlZCBjcmVkaXQgY2FyZHNBY2NlcHRlZCBkZWJpdCBjYXJkc0FjY2VwdGVkIHByZXBhaWQgY2FyZHNBY2NlcHRlZCBjcmVkaXQgYW5kIGRlYml0IGNhcmRzQWNjZXB0ZWQgY3JlZGl0IGFuZCBwcmVwYWlkIGNhcmRzQWNjZXB0ZWQgZGViaXQgYW5kIHByZXBhaWQgY2FyZHNFeHBpcmVzICUxJHMvJTIkc1Byb2Nlc3NpbmdDcmVkaXQgY2FyZHMgYXJlIGFjY2VwdGVkLkRlYml0IGNhcmRzIGFyZSBhY2NlcHRlZC5QcmVwYWlkIGNhcmRzIGFyZSBhY2NlcHRlZC5DcmVkaXQgYW5kIGRlYml0IGNhcmRzIGFyZSBhY2NlcHRlZC5DcmVkaXQgYW5kIHByZXBhaWQgY2FyZHMgYXJlIGFjY2VwdGVkLkRlYml0IGFuZCBwcmVwYWlkIGNhcmRzIGFyZSBhY2NlcHRlZC5UaGVyZSB3YXMgYW4gZXJyb3IgcHJvY2Vzc2luZyB5b3VyIG9yZGVyLiBQbGVhc2UgdHJ5IGFnYWluLllvdSBjYW4gbWFuYWdlIGNhcmRzIGFuZCBhZGRyZXNzZXMgaW4gQkVHSU5fTElOS1NldHRpbmdzRU5EX0xJTksuQ2FyZHMgYW5kIGFkZHJlc3NlcyBhcmUgZnJvbSBDaHJvbWUgYW5kIHlvdXIgR29vZ2xlIEFjY291bnQgKCQxKS4gWW91IGNhbiBtYW5hZ2UgdGhlbSBpbiBCRUdJTl9MSU5LU2V0dGluZ3NFTkRfTElOSy5DYXJkcyBhbmQgYWRkcmVzc2VzIGFyZSBmcm9tIENocm9tZS4gWW91IGNhbiBtYW5hZ2UgdGhlbSBpbiBCRUdJTl9MSU5LU2V0dGluZ3NFTkRfTElOSy5BbGxvdyBzaXRlcyB0byBjaGVjayBpZiB5b3UgaGF2ZSBwYXltZW50IG1ldGhvZHMgc2F2ZWQqIEZpZWxkIGlzIHJlcXVpcmVkRW50ZXIgYSBuYW1lRW50ZXIgYSB2YWxpZCBleHBpcmF0aW9uIHllYXJFbnRlciBhIHZhbGlkIGV4cGlyYXRpb24gbW9udGhUaGlzIGNhcmQgaXMgZXhwaXJlZFRoaXMgdHlwZSBvZiBjYXJkIGlzbuKAmXQgc3VwcG9ydGVkVGhpcyBjYXJkIG51bWJlciBpcyBhbHJlYWR5IHVzZWRFbnRlciBhIHZhbGlkIHBob25lIG51bWJlckVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzc0VudGVyIGEgdmFsaWQgY2FyZCBudW1iZXJFbnRlciBhIHZhbGlkIGV4cGlyYXRpb24gZGF0ZUVudGVyIGEgdmFsaWQgYWRkcmVzc0JpbGxpbmcgYWRkcmVzcyByZXF1aXJlZENhcmRob2xkZXIgbmFtZSByZXF1aXJlZENhcmQgYmlsbGluZyBhZGRyZXNzIHJlcXVpcmVkTW9yZSBpbmZvcm1hdGlvbiByZXF1aXJlZFBob25lIG51bWJlciByZXF1aXJlZE5hbWUgcmVxdWlyZWRFbWFpbCByZXF1aXJlZFJlcXVpcmVkIGZpZWxkJDEgJDIgJDN7TU9SRV9JVEVNUywgcGx1cmFsLAogICAgICA9MSB7IyBtb3JlIGl0ZW19CiAgICAgIG90aGVyIHsjIG1vcmUgaXRlbXN9fU11bHRpcGxlVG8gc2VlIHNoaXBwaW5nIG1ldGhvZHMgYW5kIHJlcXVpcmVtZW50cywgc2VsZWN0IGFuIGFkZHJlc3NDYW7igJl0IHNoaXAgdG8gdGhpcyBhZGRyZXNzLiBTZWxlY3QgYSBkaWZmZXJlbnQgYWRkcmVzcy5UaGlzIHNoaXBwaW5nIG1ldGhvZCBpc27igJl0IGF2YWlsYWJsZS4gVHJ5IGEgZGlmZmVyZW50IG1ldGhvZC5UbyBzZWUgZGVsaXZlcnkgbWV0aG9kcyBhbmQgcmVxdWlyZW1lbnRzLCBzZWxlY3QgYW4gYWRkcmVzc0NhbuKAmXQgZGVsaXZlciB0byB0aGlzIGFkZHJlc3MuIFNlbGVjdCBhIGRpZmZlcmVudCBhZGRyZXNzLlRoaXMgZGVsaXZlcnkgbWV0aG9kIGlzbuKAmXQgYXZhaWxhYmxlLiBUcnkgYSBkaWZmZXJlbnQgbWV0aG9kLlRvIHNlZSBwaWNrdXAgbWV0aG9kcyBhbmQgcmVxdWlyZW1lbnRzLCBzZWxlY3QgYW4gYWRkcmVzc0NhbuKAmXQgcGljayB1cCBmcm9tIHRoaXMgYWRkcmVzcy4gU2VsZWN0IGEgZGlmZmVyZW50IGFkZHJlc3MuVGhpcyBwaWNrdXAgbWV0aG9kIGlzbuKAmXQgYXZhaWxhYmxlLiBUcnkgYSBkaWZmZXJlbnQgbWV0aG9kLkNhbuKAmXQgb3BlbiBwYXltZW50IGFwcFBheW1lbnQgTWFuaWZlc3QgUGFyc2Vye1BBWU1FTlRfTUVUSE9ELCBwbHVyYWwsCiAgICAgICA9MCB7ezF9fQogICAgICAgPTEge3sxfSBhbmQgezJ9IG1vcmV9CiAgICAgICBvdGhlciB7ezF9IGFuZCB7Mn0gbW9yZX19e1NISVBQSU5HX0FERFJFU1MsIHBsdXJhbCwKICAgICAgPTAge3sxfX0KICAgICAgPTEge3sxfSBhbmQgezJ9IG1vcmV9CiAgICAgIG90aGVyIHt7MX0gYW5kIHsyfSBtb3JlfX17U0hJUFBJTkdfT1BUSU9OUywgcGx1cmFsLAogICAgICAgPTAge3sxfX0KICAgICAgID0xIHt7MX0gYW5kIHsyfSBtb3JlfQogICAgICAgb3RoZXIge3sxfSBhbmQgezJ9IG1vcmV9fXtDT05UQUNULCBwbHVyYWwsCiAgICAgICA9MCB7ezF9fQogICAgICAgPTEge3sxfSBhbmQgezJ9IG1vcmV9CiAgICAgICBvdGhlciB7ezF9IGFuZCB7Mn0gbW9yZX19JDEsIGN1cnJlbnRseSBzZWxlY3RlZC4gJDJPcmRlciBTdW1tYXJ5LCAkMSwgTW9yZSBEZXRhaWxzVGhpcyBkb2N1bWVudCBpcyBwYXNzd29yZCBwcm90ZWN0ZWQuICBQbGVhc2UgZW50ZXIgYSBwYXNzd29yZC5QYXNzd29yZCByZXF1aXJlZEZhaWxlZCB0byBsb2FkIFBERiBkb2N1bWVudC5Sb3RhdGUgY2xvY2t3aXNlRml0IHRvIHdpZHRoWm9vbSBpblpvb20gb3V0UGFnZSBudW1iZXJ7Q09VTlQsIHBsdXJhbCwKICAgICAgICAgPTEge1BhZ2UgMX0KICAgICAgICAgb3RoZXIge1BhZ2UgI319UmVxdWVzdCBzdWNjZWVkZWRJbnZhbGlkIHJlcXVlc3Qgb3IgcmVxdWVzdCBwYXJhbWV0ZXJzVGVtcG9yYXJ5IHNlcnZlciBlcnJvckhUVFAgZXJyb3JGYWlsZWQgdG8gZGVjb2RlIHJlc3BvbnNlTWFuYWdlbWVudCBub3Qgc3VwcG9ydGVkTWlzc2luZyBkZXZpY2UgcmVjb3JkSW52YWxpZCBkZXZpY2UgbWFuYWdlbWVudCB0b2tlbkFjdGl2YXRpb24gaXMgcGVuZGluZyBvbiB0aGUgc2VydmVyRGV2aWNlIHNlcmlhbCBudW1iZXIgaXMgaW52YWxpZENvbmZsaWN0aW5nIGRldmljZSBpZGVudGlmaWVyTGljZW5zZXMgZXhoYXVzdGVkRGVwcm92aXNpb25lZFBvbGljeSBub3QgZm91bmREb21haW4gbWlzbWF0Y2hSZXF1ZXN0IGNvdWxkIG5vdCBiZSBzaWduZWRWYWxpZGF0aW9uIHN1Y2Nlc3NmdWxCYWQgaW5pdGlhbCBzaWduYXR1cmVCYWQgc2lnbmF0dXJlRXJyb3IgY29kZSBwcmVzZW50IGluIHRoZSBwb2xpY3kgcmVzcG9uc2VFcnJvciBwYXJzaW5nIHBvbGljeVdyb25nIHBvbGljeSB0eXBlV3JvbmcgZW50aXR5IGlkZW50aWZpZXJCYWQgcG9saWN5IHRpbWVzdGFtcFJldHVybmVkIHBvbGljeSB0b2tlbiBpcyBlbXB0eSBvciBkb2Vzbid0IG1hdGNoIGN1cnJlbnQgdG9rZW5SZXR1cm5lZCBwb2xpY3kgZGV2aWNlIGlkIGlzIGVtcHR5IG9yIGRvZXNuJ3QgbWF0Y2ggY3VycmVudCBkZXZpY2UgaWRXcm9uZyBwb2xpY3kgc3ViamVjdEVycm9yIHBhcnNpbmcgcG9saWN5IHNldHRpbmdzQmFkIHZlcmlmaWNhdGlvbiBzaWduYXR1cmVQb2xpY3kgY2FjaGUgT0tGYWlsZWQgdG8gbG9hZCBwb2xpY3kgc2V0dGluZ3NGYWlsZWQgdG8gc3RvcmUgcG9saWN5IHNldHRpbmdzUG9saWN5IHBhcnNlIGVycm9yU2VyaWFsaXphdGlvbiBlcnJvclZhbGlkYXRpb24gZXJyb3I6ICQxQmFja2luZyBzdG9yZSBpbiBiYWQgc3RhdGVBY3RpdmVVbm1hbmFnZWRFeHBlY3RlZCAkMSB2YWx1ZS5WYWx1ZSBpcyBvdXQgb2YgcmFuZ2UgJDEuVmFsdWUgZG9lc24ndCBtYXRjaCBmb3JtYXQuSWdub3JlZCBiZWNhdXNlIGRlZmF1bHQgc2VhcmNoIGlzIG5vdCBlbmFibGVkIGJ5IHBvbGljeS5NdXN0IGJlIHNwZWNpZmllZC5LZXkgIiQxIjogJDJMaXN0IGVudHJ5ICIkMSI6ICQyU2NoZW1hIHZhbGlkYXRpb24gZXJyb3IgYXQgIiQxIjogJDJFcnJvciB3aGlsZSBwYXJzaW5nIEpTT04gdmFsdWU6ICQxSW52YWxpZCBzZWFyY2ggVVJMLkludmFsaWQgcHJveHkgbW9kZS5JbnZhbGlkIHVwZGF0ZSBVUkwgZm9yIGV4dGVuc2lvbiB3aXRoIElEICIkMSIuVGhpcyBjb21wdXRlciBpcyBub3QgZGV0ZWN0ZWQgYXMgZW50ZXJwcmlzZSBtYW5hZ2VkIHNvIHBvbGljeSBjYW4gb25seSBhdXRvbWF0aWNhbGx5IGluc3RhbGwgZXh0ZW5zaW9ucyBob3N0ZWQgb24gdGhlIENocm9tZSBXZWJzdG9yZS4gVGhlIENocm9tZSBXZWJzdG9yZSB1cGRhdGUgVVJMIGlzICIkMSIuVXNlIG9mIGEgcHJveHkgaXMgZGlzYWJsZWQgYnV0IGFuIGV4cGxpY2l0IHByb3h5IGNvbmZpZ3VyYXRpb24gaXMgc3BlY2lmaWVkLlByb3h5IGlzIHNldCB0byBhdXRvIGNvbmZpZ3VyZWQuUHJveHkgY29uZmlndXJhdGlvbiBpcyBzZXQgdG8gdXNlIGEgLnBhYyBzY3JpcHQgVVJMLCBub3QgZml4ZWQgcHJveHkgc2VydmVycy5Qcm94eSBpcyBzZXQgdG8gdXNlIGZpeGVkIHByb3h5IHNlcnZlcnMsIG5vdCBhIC5wYWMgc2NyaXB0IFVSTC5TeXN0ZW0gcHJveHkgc2V0dGluZ3MgYXJlIHNldCB0byBiZSB1c2VkIGJ1dCBhbiBleHBsaWNpdCBwcm94eSBjb25maWd1cmF0aW9uIGlzIGFsc28gc3BlY2lmaWVkLkJvdGggZml4ZWQgcHJveHkgc2VydmVycyBhbmQgYSAucGFjIHNjcmlwdCBVUkwgYXJlIHNwZWNpZmllZC5OZWl0aGVyIGZpeGVkIHByb3h5IHNlcnZlcnMgbm9yIGEgLnBhYyBzY3JpcHQgVVJMIGFyZSBzcGVjaWZpZWQuSWdub3JlZCBiZWNhdXNlIGl0IHdhcyBvdmVycmlkZGVuIGJ5ICQxLlRoaXMgcG9saWN5IGhhcyBiZWVuIGRlcHJlY2F0ZWQuVGhpcyB2YWx1ZSBpcyBkZXByZWNhdGVkIGZvciB0aGlzIHBvbGljeS5Qb2xpY3kgbGV2ZWwgaXMgbm90IHN1cHBvcnRlZC5Ob3Qgc2V0LlVua25vd24gcG9saWN5LlBvbGljeSBtYW5hZ2VtZW50RXhwb3J0IExpbnV4RXhwb3J0IE1hY09TTG9hZCBzZXNzaW9uU2Vzc2lvbiBuYW1lVGhlIHBvbGljeSB0eXBlIGlzIGludmFsaWQuVGhlcmUgd2FzIGEgcHJvYmxlbSBhY2Nlc3NpbmcgdGhlIHNlc3Npb24gZmlsZXMuIFNhdmluZyB0byBkaXNrIGlzIGN1cnJlbnRseSBkaXNhYmxlZC4gUGxlYXNlIHJlbG9hZCB0aGUgcGFnZSB0byB0cnkgYWdhaW4uUGxlYXNlIGVudGVyIGEgdmFsaWQgc2Vzc2lvbiBuYW1lLlRoZSBmaWxlIHNlZW1zIHRvIGJlIGNvcnJ1cHRlZC4gQ2xpY2sgdGhlICdSZXNldCcgYnV0dG9uIHRvIHJlc2V0IHRoZSBzZXNzaW9uLlRoZSBzZXNzaW9uIHdpdGggdGhpcyBuYW1lIGlzIG5vdCB2YWxpZCBmb3IgZGVsZXRpb24uVGhlIHNlbGVjdGVkIHNlc3Npb24gZG9lcyBub3QgZXhpc3QuVGhpcyBzZXNzaW9uIG5hbWUgYWxyZWFkeSBleGlzdHMuRmFpbGVkIHRvIHJlbmFtZSB0aGUgc2Vzc2lvbi5Qb2xpY2llc0ZpbHRlciBwb2xpY2llcyBieSBuYW1lUmVsb2FkIHBvbGljaWVzRXhwb3J0IHRvIEpTT05EZXZpY2UgcG9saWNpZXNVc2VyIHBvbGljaWVzRW5yb2xsbWVudCBkb21haW46RGlzcGxheSBkb21haW46R2FpYSBJRDpDbGllbnQgSUQ6QXNzZXQgSUQ6QXNzaWduZWQgTG9jYXRpb246RGlyZWN0b3J5IEFQSSBJRDpMYXN0IGZldGNoZWQ6Tm90IFNwZWNpZmllZEZldGNoIGludGVydmFsOlN0YXR1czpTaG93IHBvbGljaWVzIHdpdGggbm8gdmFsdWUgc2V0Tm8gcG9saWNpZXMgc2V0QXBwbGllcyB0b0xldmVsUG9saWN5IG5hbWVQb2xpY3kgdmFsdWVTaG93IHZhbHVlSGlkZSB2YWx1ZUxlYXJuIG1vcmUgYWJvdXQgJDEgcG9saWN5TWFjaGluZVJlY29tbWVuZGVkTWFuZGF0b3J5RW50ZXJwcmlzZSBkZWZhdWx0Q2xvdWRMb2NhbCBTZXJ2ZXJQbGF0Zm9ybVB1YmxpYyBzZXNzaW9uIG92ZXJyaWRlRnVsbCBBZG1pbiBBY2Nlc3NTeXN0ZW0gU2VjdXJpdHlTaGFyaW5nIHdpdGggV2Vic2l0ZXNTaGFyaW5nIHdpdGggQWRtaW5pc3RyYXRvckZpbHRlcmluZ0xvY2FsIERhdGEgQWNjZXNzU2hhcmluZyB3aXRoIEdvb2dsZVJlc2V0IFBhc3N3b3JkUmVzZXQgeW91ciBwYXNzd29yZCBub3dSZXNldCBwYXNzd29yZD9Zb3UgZW50ZXJlZCB5b3VyIHBhc3N3b3JkIG9uIGEgc2l0ZSB0aGF04oCZcyBub3QgbWFuYWdlZCBieSB5b3VyIG9yZ2FuaXphdGlvbi4gVG8gcHJvdGVjdCB5b3VyIGFjY291bnQsIGRvbuKAmXQgcmV1c2UgeW91ciBwYXNzd29yZCBvbiBvdGhlciBhcHBzIGFuZCBzaXRlcy5Zb3UgZW50ZXJlZCB5b3VyIHBhc3N3b3JkIG9uIGEgc2l0ZSB0aGF04oCZcyBub3QgbWFuYWdlZCBieSA8c3Ryb25nPiQxPC9zdHJvbmc+LiBUbyBwcm90ZWN0IHlvdXIgYWNjb3VudCwgZG9u4oCZdCByZXVzZSB5b3VyIHBhc3N3b3JkIG9uIG90aGVyIGFwcHMgYW5kIHNpdGVzLlJlc2V0IHBhc3N3b3JkQ2hyb21pdW0gcmVjb21tZW5kcyByZXNldHRpbmcgeW91ciBwYXNzd29yZCBpZiB5b3UgcmV1c2VkIGl0IG9uIG90aGVyIHNpdGVzLkNocm9taXVtIHJlY29tbWVuZHMgcmVzZXR0aW5nIHlvdXIgPHN0cm9uZz4kMTwvc3Ryb25nPiBwYXNzd29yZCBpZiB5b3UgcmV1c2VkIGl0IG9uIG90aGVyIHNpdGVzLlRoZSBTYWZlIEJyb3dzaW5nIHBhZ2UgaXMgdW5kZXIgY29uc3RydWN0aW9uLkhpZGUgYWR2YW5jZWRDYXB0aXZlIFBvcnRhbCBBdXRob3JpemF0aW9uQ29ubmVjdCB0byBuZXR3b3JrQ29ubmVjdCB0byBXaS1GaVRoZSBuZXR3b3JrIHlvdSBhcmUgdXNpbmcgbWF5IHJlcXVpcmUgeW91IHRvIHZpc2l0IDxzdHJvbmc+JDE8L3N0cm9uZz4uVGhlIFdpLUZpIHlvdSBhcmUgdXNpbmcgbWF5IHJlcXVpcmUgeW91IHRvIHZpc2l0IDxzdHJvbmc+JDE8L3N0cm9uZz4uVGhlIFdpLUZpIHlvdSBhcmUgdXNpbmcgKCQxKSBtYXkgcmVxdWlyZSB5b3UgdG8gdmlzaXQgPHN0cm9uZz4kMjwvc3Ryb25nPi5UaGUgbmV0d29yayB5b3UgYXJlIHVzaW5nIG1heSByZXF1aXJlIHlvdSB0byB2aXNpdCBpdHMgbG9naW4gcGFnZS5UaGUgV2ktRmkgeW91IGFyZSB1c2luZyBtYXkgcmVxdWlyZSB5b3UgdG8gdmlzaXQgaXRzIGxvZ2luIHBhZ2UuVGhlIFdpLUZpIHlvdSBhcmUgdXNpbmcgKCQxKSBtYXkgcmVxdWlyZSB5b3UgdG8gdmlzaXQgaXRzIGxvZ2luIHBhZ2UuQW4gYXBwbGljYXRpb24gaXMgc3RvcHBpbmcgQ2hyb21lIGZyb20gc2FmZWx5IGNvbm5lY3RpbmcgdG8gdGhpcyBzaXRlIiQxIiB3YXNu4oCZdCBpbnN0YWxsZWQgcHJvcGVybHkgb24geW91ciBjb21wdXRlciBvciBuZXR3b3JrLiBBc2sgeW91ciBJVCBhZG1pbmlzdHJhdG9yIHRvIHJlc29sdmUgdGhpcyBpc3N1ZS4iJDEiIHdhc27igJl0IGluc3RhbGxlZCBwcm9wZXJseSBvbiB5b3VyIGNvbXB1dGVyIG9yIHRoZSBuZXR3b3JrOgogICAgPHVsPgogICAgPGxpPlRyeSB1bmluc3RhbGxpbmcgb3IgZGlzYWJsaW5nICIkMSI8L2xpPgogICAgPGxpPlRyeSBjb25uZWN0aW5nIHRvIGFub3RoZXIgbmV0d29yazwvbGk+CiAgICA8L3VsPkEgcm9vdCBjZXJ0aWZpY2F0ZSBmb3IgIiQxIiBpcyByZXF1aXJlZCBidXQgaXNu4oCZdCBpbnN0YWxsZWQuIFlvdXIgSVQgYWRtaW5pc3RyYXRvciBzaG91bGQgbG9vayBhdCBjb25maWd1cmF0aW9uIGluc3RydWN0aW9ucyBmb3IgIiQxIiB0byBmaXggdGhpcyBwcm9ibGVtLiAkMiIkMSIgaXNu4oCZdCBjb25maWd1cmVkIGNvcnJlY3RseS4gVW5pbnN0YWxsaW5nICIkMSIgdXN1YWxseSBmaXhlcyB0aGUgcHJvYmxlbS4gJDJBcHBsaWNhdGlvbnMgdGhhdCBjYW4gY2F1c2UgdGhpcyBlcnJvciBpbmNsdWRlIGFudGl2aXJ1cywgZmlyZXdhbGwsIGFuZCB3ZWItZmlsdGVyaW5nIG9yIHByb3h5IHNvZnR3YXJlLkNsb2NrIGVycm9yWW91ciBjbG9jayBpcyBhaGVhZFlvdXIgY2xvY2sgaXMgYmVoaW5kVXBkYXRlIGRhdGUgYW5kIHRpbWVBIHByaXZhdGUgY29ubmVjdGlvbiB0byA8c3Ryb25nPiQxPC9zdHJvbmc+IGNhbid0IGJlIGVzdGFibGlzaGVkIGJlY2F1c2UgeW91ciBjb21wdXRlcidzIGRhdGUgYW5kIHRpbWUgKCQyKSBhcmUgaW5jb3JyZWN0LlRvIGVzdGFibGlzaCBhIHNlY3VyZSBjb25uZWN0aW9uLCB5b3VyIGNsb2NrIG5lZWRzIHRvIGJlIHNldCBjb3JyZWN0bHkuIFRoaXMgaXMgYmVjYXVzZSB0aGUgY2VydGlmaWNhdGVzIHRoYXQgd2Vic2l0ZXMgdXNlIHRvIGlkZW50aWZ5IHRoZW1zZWx2ZXMgYXJlIG9ubHkgdmFsaWQgZm9yIHNwZWNpZmljIHBlcmlvZHMgb2YgdGltZS4gU2luY2UgeW91ciBkZXZpY2UncyBjbG9jayBpcyBpbmNvcnJlY3QsIENocm9taXVtIGNhbm5vdCB2ZXJpZnkgdGhlc2UgY2VydGlmaWNhdGVzLlByaXZhY3kgZXJyb3JZb3VyIGNvbm5lY3Rpb24gaXMgbm90IHByaXZhdGVBdHRhY2tlcnMgbWlnaHQgYmUgdHJ5aW5nIHRvIHN0ZWFsIHlvdXIgaW5mb3JtYXRpb24gZnJvbSA8c3Ryb25nPiQxPC9zdHJvbmc+IChmb3IgZXhhbXBsZSwgcGFzc3dvcmRzLCBtZXNzYWdlcywgb3IgY3JlZGl0IGNhcmRzKS4gPGEgaHJlZj0iIyIgaWQ9ImxlYXJuLW1vcmUtbGluayI+TGVhcm4gbW9yZTwvYT5XYXJuaW5ncyBtYXkgYmUgY29tbW9uIHdoaWxlIHdlYnNpdGVzIHVwZGF0ZSB0aGVpciBzZWN1cml0eS4gVGhpcyBzaG91bGQgaW1wcm92ZSBzb29uLlNvZnR3YXJlIG9uIHlvdXIgY29tcHV0ZXIgaXMgc3RvcHBpbmcgQ2hyb21pdW0gZnJvbSBzYWZlbHkgY29ubmVjdGluZyB0byB0aGUgd2ViPHA+Rm9sbG93IHRoZXNlIHN0ZXBzIHRvIHRlbXBvcmFyaWx5IGRpc2FibGUgdGhlIHNvZnR3YXJlIHNvIHlvdSBjYW4gZ2V0IG9uIHRoZSB3ZWIuIFlvdSdsbCBuZWVkIGFkbWluaXN0cmF0b3IgcHJpdmlsZWdlcy48L3A+CgogICAgPG9sPgogICAgPGxpPkNsaWNrIDxzdHJvbmc+U3RhcnQ8L3N0cm9uZz4sIHRoZW4gc2VhcmNoIGZvciBhbmQgc2VsZWN0IDxzdHJvbmc+IlZpZXcgbG9jYWwgc2VydmljZXMiPC9zdHJvbmc+CiAgICA8bGk+U2VsZWN0IDxzdHJvbmc+VmlzdWFsRGlzY292ZXJ5PC9zdHJvbmc+CiAgICA8bGk+VW5kZXIgPHN0cm9uZz5TdGFydHVwIHR5cGU8L3N0cm9uZz4sIHNlbGVjdCA8c3Ryb25nPkRpc2FibGVkPC9zdHJvbmc+CiAgICA8bGk+VW5kZXIgPHN0cm9uZz5TZXJ2aWNlIHN0YXR1czwvc3Ryb25nPiwgY2xpY2sgPHN0cm9uZz5TdG9wPC9zdHJvbmc+CiAgICA8bGk+Q2xpY2sgPHN0cm9uZz5BcHBseTwvc3Ryb25nPiwgdGhlbiBjbGljayA8c3Ryb25nPk9LPC9zdHJvbmc+CiAgICA8bGk+VmlzaXQgdGhlIDxhIGhyZWY9IiMiIGlkPSJsZWFybi1tb3JlLWxpbmsiPkNocm9tZSBoZWxwIGNlbnRlcjwvYT4gdG8gbGVhcm4gaG93IHRvIHBlcm1hbmVudGx5IHJlbW92ZSB0aGUgc29mdHdhcmUgZnJvbSB5b3VyIGNvbXB1dGVyCiAgICA8L29sPkJhY2sgdG8gc2FmZXR5PGEgaHJlZj0iIyIgaWQ9InByb2NlZWQtbGluayI+UHJvY2VlZCB0byAkMSAodW5zYWZlKTwvYT5Zb3UgY2Fubm90IHZpc2l0ICQxIHJpZ2h0IG5vdyBiZWNhdXNlIHRoZSB3ZWJzaXRlIHVzZXMgY2VydGlmaWNhdGUgcGlubmluZy4gTmV0d29yayBlcnJvcnMgYW5kIGF0dGFja3MgYXJlIHVzdWFsbHkgdGVtcG9yYXJ5LCBzbyB0aGlzIHBhZ2Ugd2lsbCBwcm9iYWJseSB3b3JrIGxhdGVyLllvdSBjYW5ub3QgdmlzaXQgJDEgcmlnaHQgbm93IGJlY2F1c2UgdGhlIHdlYnNpdGUgdXNlcyBIU1RTLiBOZXR3b3JrIGVycm9ycyBhbmQgYXR0YWNrcyBhcmUgdXN1YWxseSB0ZW1wb3JhcnksIHNvIHRoaXMgcGFnZSB3aWxsIHByb2JhYmx5IHdvcmsgbGF0ZXIuWW91IGNhbm5vdCB2aXNpdCAkMSByaWdodCBub3cgYmVjYXVzZSBpdHMgY2VydGlmaWNhdGUgaGFzIGJlZW4gcmV2b2tlZC4gTmV0d29yayBlcnJvcnMgYW5kIGF0dGFja3MgYXJlIHVzdWFsbHkgdGVtcG9yYXJ5LCBzbyB0aGlzIHBhZ2Ugd2lsbCBwcm9iYWJseSB3b3JrIGxhdGVyLiQxIG5vcm1hbGx5IHVzZXMgZW5jcnlwdGlvbiB0byBwcm90ZWN0IHlvdXIgaW5mb3JtYXRpb24uIFdoZW4gQ2hyb21pdW0gdHJpZWQgdG8gY29ubmVjdCB0byAkMSB0aGlzIHRpbWUsIHRoZSB3ZWJzaXRlIHNlbnQgYmFjayB1bnVzdWFsIGFuZCBpbmNvcnJlY3QgY3JlZGVudGlhbHMuIFRoaXMgbWF5IGhhcHBlbiB3aGVuIGFuIGF0dGFja2VyIGlzIHRyeWluZyB0byBwcmV0ZW5kIHRvIGJlICQxLCBvciBhIFdpLUZpIHNpZ24taW4gc2NyZWVuIGhhcyBpbnRlcnJ1cHRlZCB0aGUgY29ubmVjdGlvbi4gWW91ciBpbmZvcm1hdGlvbiBpcyBzdGlsbCBzZWN1cmUgYmVjYXVzZSBDaHJvbWl1bSBzdG9wcGVkIHRoZSBjb25uZWN0aW9uIGJlZm9yZSBhbnkgZGF0YSB3YXMgZXhjaGFuZ2VkLllvdSBjYW5ub3QgdmlzaXQgJDEgcmlnaHQgbm93IGJlY2F1c2UgdGhlIHdlYnNpdGUgc2VudCBzY3JhbWJsZWQgY3JlZGVudGlhbHMgdGhhdCBDaHJvbWl1bSBjYW5ub3QgcHJvY2Vzcy4gTmV0d29yayBlcnJvcnMgYW5kIGF0dGFja3MgYXJlIHVzdWFsbHkgdGVtcG9yYXJ5LCBzbyB0aGlzIHBhZ2Ugd2lsbCBwcm9iYWJseSB3b3JrIGxhdGVyLlNlY3VyaXR5IGVycm9yVGhlIHNpdGUgYWhlYWQgY29udGFpbnMgbWFsd2FyZUF0dGFja2VycyBjdXJyZW50bHkgb24gPHN0cm9uZz4kMTwvc3Ryb25nPiBtaWdodCBhdHRlbXB0IHRvIGluc3RhbGwgZGFuZ2Vyb3VzIHByb2dyYW1zIG9uIHlvdXIgY29tcHV0ZXIgdGhhdCBzdGVhbCBvciBkZWxldGUgeW91ciBpbmZvcm1hdGlvbiAoZm9yIGV4YW1wbGUsIHBob3RvcywgcGFzc3dvcmRzLCBtZXNzYWdlcywgYW5kIGNyZWRpdCBjYXJkcykuIDxhIGhyZWY9IiMiIGlkPSJsZWFybi1tb3JlLWxpbmsiPkxlYXJuIG1vcmU8L2E+R29vZ2xlIFNhZmUgQnJvd3NpbmcgcmVjZW50bHkgPGEgaHJlZj0iIyIgaWQ9ImRpYWdub3N0aWMtbGluayI+ZGV0ZWN0ZWQgbWFsd2FyZTwvYT4gb24gJDEuIFdlYnNpdGVzIHRoYXQgYXJlIG5vcm1hbGx5IHNhZmUgYXJlIHNvbWV0aW1lcyBpbmZlY3RlZCB3aXRoIG1hbHdhcmUuR29vZ2xlIFNhZmUgQnJvd3NpbmcgcmVjZW50bHkgPGEgaHJlZj0iIyIgaWQ9ImRpYWdub3N0aWMtbGluayI+ZGV0ZWN0ZWQgbWFsd2FyZTwvYT4gb24gJDEuIFdlYnNpdGVzIHRoYXQgYXJlIG5vcm1hbGx5IHNhZmUgYXJlIHNvbWV0aW1lcyBpbmZlY3RlZCB3aXRoIG1hbHdhcmUuIFRoZSBtYWxpY2lvdXMgY29udGVudCBjb21lcyBmcm9tICQyLCBhIGtub3duIG1hbHdhcmUgZGlzdHJpYnV0b3IuSWYgeW91IHVuZGVyc3RhbmQgdGhlIHJpc2tzIHRvIHlvdXIgc2VjdXJpdHksIHlvdSBtYXkgPGEgaHJlZj0iIyIgaWQ9InByb2NlZWQtbGluayI+dmlzaXQgdGhpcyB1bnNhZmUgc2l0ZTwvYT4gYmVmb3JlIHRoZSBkYW5nZXJvdXMgcHJvZ3JhbXMgaGF2ZSBiZWVuIHJlbW92ZWQuUHJpdmFjeSBwb2xpY3k8YSBocmVmPSIjIiBpZD0id2hpdGVwYXBlci1saW5rIj5BdXRvbWF0aWNhbGx5IHJlcG9ydDwvYT4gZGV0YWlscyBvZiBwb3NzaWJsZSBzZWN1cml0eSBpbmNpZGVudHMgdG8gR29vZ2xlLiAkMUhlbHAgaW1wcm92ZSBTYWZlIEJyb3dzaW5nIGJ5IHNlbmRpbmcgc29tZSA8YSBocmVmPSIjIiBpZD0id2hpdGVwYXBlci1saW5rIj5zeXN0ZW0gaW5mb3JtYXRpb24gYW5kIHBhZ2UgY29udGVudDwvYT4gdG8gR29vZ2xlLiAkMVRoZSBzaXRlIGFoZWFkIGNvbnRhaW5zIGhhcm1mdWwgcHJvZ3JhbXNBdHRhY2tlcnMgb24gPHN0cm9uZz4kMTwvc3Ryb25nPiBtaWdodCBhdHRlbXB0IHRvIHRyaWNrIHlvdSBpbnRvIGluc3RhbGxpbmcgcHJvZ3JhbXMgdGhhdCBoYXJtIHlvdXIgYnJvd3NpbmcgZXhwZXJpZW5jZSAoZm9yIGV4YW1wbGUsIGJ5IGNoYW5naW5nIHlvdXIgaG9tZXBhZ2Ugb3Igc2hvd2luZyBleHRyYSBhZHMgb24gc2l0ZXMgeW91IHZpc2l0KS4gPGEgaHJlZj0iIyIgaWQ9ImxlYXJuLW1vcmUtbGluayI+TGVhcm4gbW9yZTwvYT5Hb29nbGUgU2FmZSBCcm93c2luZyByZWNlbnRseSA8YSBocmVmPSIjIiBpZD0iZGlhZ25vc3RpYy1saW5rIj5mb3VuZCBoYXJtZnVsIHByb2dyYW1zPC9hPiBvbiAkMS5JZiB5b3UgdW5kZXJzdGFuZCB0aGUgcmlza3MgdG8geW91ciBzZWN1cml0eSwgeW91IG1heSA8YSBocmVmPSIjIiBpZD0icHJvY2VlZC1saW5rIj52aXNpdCB0aGlzIHNpdGU8L2E+IGJlZm9yZSB0aGUgaGFybWZ1bCBwcm9ncmFtcyBoYXZlIGJlZW4gcmVtb3ZlZC5EZWNlcHRpdmUgc2l0ZSBhaGVhZEF0dGFja2VycyBvbiA8c3Ryb25nPiQxPC9zdHJvbmc+IG1heSB0cmljayB5b3UgaW50byBkb2luZyBzb21ldGhpbmcgZGFuZ2Vyb3VzIGxpa2UgaW5zdGFsbGluZyBzb2Z0d2FyZSBvciByZXZlYWxpbmcgeW91ciBwZXJzb25hbCBpbmZvcm1hdGlvbiAoZm9yIGV4YW1wbGUsIHBhc3N3b3JkcywgcGhvbmUgbnVtYmVycywgb3IgY3JlZGl0IGNhcmRzKS4gPGEgaHJlZj0iIyIgaWQ9ImxlYXJuLW1vcmUtbGluayI+TGVhcm4gbW9yZTwvYT5Hb29nbGUgU2FmZSBCcm93c2luZyByZWNlbnRseSA8YSBocmVmPSIjIiBpZD0iZGlhZ25vc3RpYy1saW5rIj5kZXRlY3RlZCBwaGlzaGluZzwvYT4gb24gJDEuIFBoaXNoaW5nIHNpdGVzIHByZXRlbmQgdG8gYmUgb3RoZXIgd2Vic2l0ZXMgdG8gdHJpY2sgeW91LllvdSBjYW4gPGEgaHJlZj0iIyIgaWQ9InJlcG9ydC1lcnJvci1saW5rIj5yZXBvcnQgYSBkZXRlY3Rpb24gcHJvYmxlbTwvYT4gb3IsIGlmIHlvdSB1bmRlcnN0YW5kIHRoZSByaXNrcyB0byB5b3VyIHNlY3VyaXR5LCA8YSBocmVmPSIjIiBpZD0icHJvY2VlZC1saW5rIj52aXNpdCB0aGlzIHVuc2FmZSBzaXRlPC9hPi5EYW5nZXJvdXMgY29udGVudCBibG9ja2VkLlRoaXMgY29udGVudCBtaWdodCB0cnkgdG8gaW5zdGFsbCBkYW5nZXJvdXMgc29mdHdhcmUgb24geW91ciBkZXZpY2UgdGhhdCBzdGVhbHMgb3IgZGVsZXRlcyB5b3VyIGluZm9ybWF0aW9uLiA8YSBocmVmPSIjIiBpZD0icHJvY2VlZC1saW5rIj5TaG93IGFueXdheTwvYT5EZWNlcHRpdmUgY29udGVudCBibG9ja2VkLlRoaXMgY29udGVudCBtaWdodCB0cnkgdG8gdHJpY2sgeW91IGludG8gaW5zdGFsbGluZyBzb2Z0d2FyZSBvciByZXZlYWxpbmcgcGVyc29uYWwgaW5mb3JtYXRpb24uIDxhIGhyZWY9IiMiIGlkPSJwcm9jZWVkLWxpbmsiPlNob3cgYW55d2F5PC9hPlNob3cgTW9yZVNob3cgTGVzc0Nvbm5lY3Rpb24gSGVscEZpeCBjb25uZWN0aW9uIGVycm9yczxwPklmIHlvdSB0cnkgdG8gdmlzaXQgYSB3ZWJzaXRlIGFuZCBpdCBkb2VzbuKAmXQgb3BlbiwgZmlyc3QgdHJ5IHRvIGZpeCB0aGUgZXJyb3Igd2l0aCB0aGVzZSB0cm91Ymxlc2hvb3Rpbmcgc3RlcHM6PC9wPgogICAgPG9sPgogICAgPGxpPkNoZWNrIHRoZSB3ZWIgYWRkcmVzcyBmb3IgdHlwb3MuPC9saT4KICAgIDxsaT5NYWtlIHN1cmUgeW91ciBpbnRlcm5ldCBjb25uZWN0aW9uIGlzIHdvcmtpbmcgbm9ybWFsbHkuPC9saT4KICAgIDxsaT5Db250YWN0IHRoZSB3ZWJzaXRlIG93bmVyLjwvbGk+CiAgICA8L29sPkdldCBoZWxwIHdpdGggYSBzcGVjaWZpYyBlcnJvciBtZXNzYWdlIllvdXIgY29ubmVjdGlvbiBpcyBub3QgcHJpdmF0ZSIgb3IgIjxzcGFuIGNsYXNzPSJlcnJvci1jb2RlIj5ORVQ6OkVSUl9DRVJUX0FVVEhPUklUWV9JTlZBTElEPC9zcGFuPiIgb3IgIjxzcGFuIGNsYXNzPSJlcnJvci1jb2RlIj5FUlJfQ0VSVF9DT01NT05fTkFNRV9JTlZBTElEPC9zcGFuPiIgb3IgIjxzcGFuIGNsYXNzPSJlcnJvci1jb2RlIj5ORVQ6OkVSUl9DRVJUX1dFQUtfU0lHTkFUVVJFX0FMR09SSVRITTwvc3Bhbj4iIG9yICJTU0wgY2VydGlmaWNhdGUgZXJyb3IiIkNvbm5lY3QgdG8gbmV0d29yayIiWW91ciBjbG9jayBpcyBiZWhpbmQiIG9yICJZb3VyIGNsb2NrIGlzIGFoZWFkIiBvciAiPHNwYW4gY2xhc3M9ImVycm9yLWNvZGUiPk5FVDo6RVJSX0NFUlRfREFURV9JTlZBTElEPC9zcGFuPiI8aDQ+U3RlcCAxOiBTaWduIGluIHRvIHRoZSBwb3J0YWw8L2g0PgogICAgPHA+V2ktRmkgbmV0d29ya3MgYXQgcGxhY2VzIGxpa2UgY2FmZXMgb3IgYWlycG9ydHMgbmVlZCB5b3UgdG8gc2lnbiBpbi4gVG8gc2VlIHRoZSBzaWduLWluIHBhZ2UsIHZpc2l0IGEgcGFnZSB0aGF0IHVzZXMgPGNvZGU+aHR0cDovLzwvY29kZT4uPC9wPgogICAgPG9sPgogICAgPGxpPkdvIHRvIGFueSB3ZWJzaXRlIHN0YXJ0aW5nIHdpdGggPGNvZGU+aHR0cDovLzwvY29kZT4sIGxpa2UgPGEgaHJlZj0iaHR0cDovL2V4YW1wbGUuY29tIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL2V4YW1wbGUuY29tPC9hPi48L2xpPgogICAgPGxpPk9uIHRoZSBzaWduLWluIHBhZ2UgdGhhdCBvcGVucywgc2lnbiBpbiB0byB1c2UgdGhlIGludGVybmV0LjwvbGk+CiAgICA8L29sPgogICAgPGg0PlN0ZXAgMjogT3BlbiB0aGUgcGFnZSBpbiBJbmNvZ25pdG8gbW9kZSAoY29tcHV0ZXIgb25seSk8L2g0PgogICAgPHA+T3BlbiB0aGUgcGFnZSB5b3Ugd2VyZSB2aXNpdGluZyBpbiBhbiBJbmNvZ25pdG8gd2luZG93LjwvcD4KICAgIDxwPklmIHRoZSBwYWdlIG9wZW5zLCBhIENocm9tZSBleHRlbnNpb24gaXNuJ3Qgd29ya2luZyByaWdodC4gVG8gZml4IHRoZSBlcnJvciwgdHVybiBvZmYgdGhlIGV4dGVuc2lvbi48L3A+CiAgICA8aDQ+U3RlcCAzOiBVcGRhdGUgeW91ciBvcGVyYXRpbmcgc3lzdGVtPC9oND4KICAgIDxwPk1ha2Ugc3VyZSB5b3VyIGRldmljZSBpcyB1cC10by1kYXRlLjwvcD4KICAgIDxoND5TdGVwIDQ6IFRlbXBvcmFyaWx5IHR1cm4gb2ZmIHlvdXIgYW50aXZpcnVzPC9oND4KICAgIDxwPllvdSdsbCBzZWUgdGhpcyBlcnJvciBpZiB5b3UgaGF2ZSBhbnRpdmlydXMgc29mdHdhcmUgdGhhdCBwcm92aWRlcyAiSFRUUFMgcHJvdGVjdGlvbiIgb3IgIkhUVFBTIHNjYW5uaW5nLiIgVGhlIGFudGl2aXJ1cyBpcyBwcmV2ZW50aW5nIENocm9tZSBmcm9tIHByb3ZpZGluZyBzZWN1cml0eS48L3A+CiAgICA8cD5UbyBmaXggdGhlIHByb2JsZW0sIHR1cm4gb2ZmIHlvdXIgYW50aXZpcnVzIHNvZnR3YXJlLiBJZiB0aGUgcGFnZSB3b3JrcyBhZnRlciB0dXJuaW5nIG9mZiB0aGUgc29mdHdhcmUsIHR1cm4gb2ZmIHRoaXMgc29mdHdhcmUgd2hlbiB5b3UgdXNlIHNlY3VyZSBzaXRlcy48L3A+CiAgICA8cD5SZW1lbWJlciB0byB0dXJuIHlvdXIgYW50aXZpcnVzIHByb2dyYW0gYmFjayBvbiB3aGVuIHlvdSdyZSBkb25lLjwvcD4KICAgIDxoND5TdGVwIDU6IEdldCBleHRyYSBoZWxwPC9oND4KICAgIDxwPklmIHlvdSBzdGlsbCBzZWUgdGhlIGVycm9yLCBjb250YWN0IHRoZSB3ZWJzaXRlIG93bmVyLjwvcD48cD5Zb3UnbGwgc2VlIHRoaXMgZXJyb3IgaWYgeW91J3JlIHVzaW5nIGEgV2ktRmkgcG9ydGFsIHdoZXJlIHlvdSBoYXZlIHRvIHNpZ24gaW4gYmVmb3JlIHlvdSBjYW4gZ2V0IG9ubGluZS48L3A+CiAgICA8cD5UbyBmaXggdGhlIGVycm9yLCBjbGljayA8c3Ryb25nPkNvbm5lY3Q8L3N0cm9uZz4gb24gdGhlIHBhZ2UgeW91J3JlIHRyeWluZyB0byBvcGVuLjwvcD48cD5Zb3UnbGwgc2VlIHRoaXMgZXJyb3IgaWYgeW91ciBjb21wdXRlciBvciBtb2JpbGUgZGV2aWNlJ3MgZGF0ZSBhbmQgdGltZSBhcmUgaW5hY2N1cmF0ZS48L3A+CiAgICA8cD5UbyBmaXggdGhlIGVycm9yLCBvcGVuIHlvdXIgZGV2aWNlJ3MgY2xvY2suIE1ha2Ugc3VyZSB0aGUgdGltZSBhbmQgZGF0ZSBhcmUgY29ycmVjdC48L3A+UHJpdmF0ZSB1c2VyIGRhdGEgaW5wdXRUaGlzIHBhZ2UgaW5jbHVkZXMgYSBwYXNzd29yZCBvciBjcmVkaXQgY2FyZCBpbnB1dCBvdmVyIEhUVFAuIEEgd2FybmluZyBoYXMgYmVlbiBhZGRlZCB0byB0aGUgVVJMIGJhci5Ob24tc2VjdXJlIHBhZ2UgbG9hZGVkIGluIGluY29nbml0byBtb2RlVGhpcyBwYWdlIHdhcyBsb2FkZWQgbm9uLXNlY3VyZWx5IGluIGFuIGluY29nbml0byB3aW5kb3cuIEEgd2FybmluZyBoYXMgYmVlbiBhZGRlZCB0byB0aGUgVVJMIGJhci5Gb3JtIGZpZWxkIGVkaXRlZCBvbiBhIG5vbi1zZWN1cmUgcGFnZURhdGEgd2FzIGVudGVyZWQgaW4gYSBmaWVsZCBvbiBhIG5vbi1zZWN1cmUgcGFnZS4gQSB3YXJuaW5nIGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBVUkwgYmFyLlRoaXMgcGFnZSBpcyBkYW5nZXJvdXMgKGZsYWdnZWQgYnkgR29vZ2xlIFNhZmUgQnJvd3NpbmcpLkZsYWdnZWQgYnkgR29vZ2xlIFNhZmUgQnJvd3NpbmdUbyBjaGVjayB0aGlzIHBhZ2UncyBzdGF0dXMsIHZpc2l0IGcuY28vc2FmZWJyb3dzaW5nc3RhdHVzLmluc2VjdXJlIChTSEEtMSlTdWJqZWN0IEFsdGVybmF0aXZlIE5hbWUgbWlzc2luZ1RoZSBjZXJ0aWZpY2F0ZSBmb3IgdGhpcyBzaXRlIGRvZXMgbm90IGNvbnRhaW4gYSBTdWJqZWN0IEFsdGVybmF0aXZlIE5hbWUgZXh0ZW5zaW9uIGNvbnRhaW5pbmcgYSBkb21haW4gbmFtZSBvciBJUCBhZGRyZXNzLm1pc3NpbmdUaGlzIHNpdGUgaXMgbWlzc2luZyBhIHZhbGlkLCB0cnVzdGVkIGNlcnRpZmljYXRlICgkMSkudmFsaWQgYW5kIHRydXN0ZWRUaGUgY29ubmVjdGlvbiB0byB0aGlzIHNpdGUgaXMgdXNpbmcgYSB2YWxpZCwgdHJ1c3RlZCBzZXJ2ZXIgY2VydGlmaWNhdGUgaXNzdWVkIGJ5ICQxLkNlcnRpZmljYXRlIGV4cGlyZXMgc29vblRoZSBjZXJ0aWZpY2F0ZSBmb3IgdGhpcyBzaXRlIGV4cGlyZXMgaW4gbGVzcyB0aGFuIDQ4IGhvdXJzIGFuZCBuZWVkcyB0byBiZSByZW5ld2VkLkNvbm5lY3Rpb25zZWN1cmUgKHN0cm9uZyAkMSlQdWJsaWMtS2V5LVBpbm5pbmcgYnlwYXNzZWRQdWJsaWMtS2V5LVBpbm5pbmcgd2FzIGJ5cGFzc2VkIGJ5IGEgbG9jYWwgcm9vdCBjZXJ0aWZpY2F0ZS5UaGUgY29ubmVjdGlvbiB0byB0aGlzIHNpdGUgaXMgZW5jcnlwdGVkIGFuZCBhdXRoZW50aWNhdGVkIHVzaW5nICQxIChhIHN0cm9uZyBwcm90b2NvbCksICQyIChhIHN0cm9uZyBrZXkgZXhjaGFuZ2UpLCBhbmQgJDMgKGEgc3Ryb25nIGNpcGhlcikub2Jzb2xldGUgY29ubmVjdGlvbiBzZXR0aW5nc1RoZSBjb25uZWN0aW9uIHRvIHRoaXMgc2l0ZSB1c2VzICQxICgkMiksICQzICgkNCksIGFuZCAkNSAoJDYpLiQxIHdpdGggJDJhbiBvYnNvbGV0ZSBwcm90b2NvbGEgc3Ryb25nIHByb3RvY29sYW4gb2Jzb2xldGUga2V5IGV4Y2hhbmdlYSBzdHJvbmcga2V5IGV4Y2hhbmdlYW4gb2Jzb2xldGUgY2lwaGVyYSBzdHJvbmcgY2lwaGVyUmVzb3VyY2VzYWxsIHNlcnZlZCBzZWN1cmVseUFsbCByZXNvdXJjZXMgb24gdGhpcyBwYWdlIGFyZSBzZXJ2ZWQgc2VjdXJlbHkubWl4ZWQgY29udGVudFRoaXMgcGFnZSBpbmNsdWRlcyBIVFRQIHJlc291cmNlcy5hY3RpdmUgbWl4ZWQgY29udGVudFlvdSBoYXZlIHJlY2VudGx5IGFsbG93ZWQgbm9uLXNlY3VyZSBjb250ZW50IChzdWNoIGFzIHNjcmlwdHMgb3IgaWZyYW1lcykgdG8gcnVuIG9uIHRoaXMgc2l0ZS5jb250ZW50IHdpdGggY2VydGlmaWNhdGUgZXJyb3JzVGhpcyBwYWdlIGluY2x1ZGVzIHJlc291cmNlcyB0aGF0IHdlcmUgbG9hZGVkIHdpdGggY2VydGlmaWNhdGUgZXJyb3JzLmFjdGl2ZSBjb250ZW50IHdpdGggY2VydGlmaWNhdGUgZXJyb3JzWW91IGhhdmUgcmVjZW50bHkgYWxsb3dlZCBjb250ZW50IGxvYWRlZCB3aXRoIGNlcnRpZmljYXRlIGVycm9ycyAoc3VjaCBhcyBzY3JpcHRzIG9yIGlmcmFtZXMpIHRvIHJ1biBvbiB0aGlzIHNpdGUubm9uLXNlY3VyZSBmb3JtVGhpcyBwYWdlIGluY2x1ZGVzIGEgZm9ybSB3aXRoIGEgbm9uLXNlY3VyZSAiYWN0aW9uIiBhdHRyaWJ1dGUuVGhpcyBzZXJ2ZXIgY291bGQgbm90IHByb3ZlIHRoYXQgaXQgaXMgPHN0cm9uZz4kMTwvc3Ryb25nPjsgaXRzIHNlY3VyaXR5IGNlcnRpZmljYXRlIGRvZXMgbm90IHNwZWNpZnkgU3ViamVjdCBBbHRlcm5hdGl2ZSBOYW1lcy4gVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IGEgbWlzY29uZmlndXJhdGlvbiBvciBhbiBhdHRhY2tlciBpbnRlcmNlcHRpbmcgeW91ciBjb25uZWN0aW9uLlRoaXMgc2VydmVyIGNvdWxkIG5vdCBwcm92ZSB0aGF0IGl0IGlzIDxzdHJvbmc+JDE8L3N0cm9uZz47IGl0cyBzZWN1cml0eSBjZXJ0aWZpY2F0ZSBpcyBmcm9tIDxzdHJvbmc+JDI8L3N0cm9uZz4uIFRoaXMgbWF5IGJlIGNhdXNlZCBieSBhIG1pc2NvbmZpZ3VyYXRpb24gb3IgYW4gYXR0YWNrZXIgaW50ZXJjZXB0aW5nIHlvdXIgY29ubmVjdGlvbi5TZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBkb2VzIG5vdCBtYXRjaCB0aGUgVVJMLnsxLCBwbHVyYWwsCiAgICAgPTEge1RoaXMgc2VydmVyIGNvdWxkIG5vdCBwcm92ZSB0aGF0IGl0IGlzIDxzdHJvbmc+ezB9PC9zdHJvbmc+OyBpdHMgc2VjdXJpdHkgY2VydGlmaWNhdGUgZXhwaXJlZCB5ZXN0ZXJkYXkuIFRoaXMgbWF5IGJlIGNhdXNlZCBieSBhIG1pc2NvbmZpZ3VyYXRpb24gb3IgYW4gYXR0YWNrZXIgaW50ZXJjZXB0aW5nIHlvdXIgY29ubmVjdGlvbi4gWW91ciBjb21wdXRlcidzIGNsb2NrIGlzIGN1cnJlbnRseSBzZXQgdG8gezIsIGRhdGUsIGZ1bGx9LiBEb2VzIHRoYXQgbG9vayByaWdodD8gSWYgbm90LCB5b3Ugc2hvdWxkIGNvcnJlY3QgeW91ciBzeXN0ZW0ncyBjbG9jayBhbmQgdGhlbiByZWZyZXNoIHRoaXMgcGFnZS59CiAgICAgb3RoZXIge1RoaXMgc2VydmVyIGNvdWxkIG5vdCBwcm92ZSB0aGF0IGl0IGlzIDxzdHJvbmc+ezB9PC9zdHJvbmc+OyBpdHMgc2VjdXJpdHkgY2VydGlmaWNhdGUgZXhwaXJlZCAjIGRheXMgYWdvLiBUaGlzIG1heSBiZSBjYXVzZWQgYnkgYSBtaXNjb25maWd1cmF0aW9uIG9yIGFuIGF0dGFja2VyIGludGVyY2VwdGluZyB5b3VyIGNvbm5lY3Rpb24uIFlvdXIgY29tcHV0ZXIncyBjbG9jayBpcyBjdXJyZW50bHkgc2V0IHRvIHsyLCBkYXRlLCBmdWxsfS4gRG9lcyB0aGF0IGxvb2sgcmlnaHQ/IElmIG5vdCwgeW91IHNob3VsZCBjb3JyZWN0IHlvdXIgc3lzdGVtJ3MgY2xvY2sgYW5kIHRoZW4gcmVmcmVzaCB0aGlzIHBhZ2UufX1TZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBoYXMgZXhwaXJlZC57MSwgcGx1cmFsLAogICAgID0xIHtUaGlzIHNlcnZlciBjb3VsZCBub3QgcHJvdmUgdGhhdCBpdCBpcyA8c3Ryb25nPnswfTwvc3Ryb25nPjsgaXRzIHNlY3VyaXR5IGNlcnRpZmljYXRlIGlzIHN1cHBvc2VkbHkgZnJvbSB0b21vcnJvdy4gVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IGEgbWlzY29uZmlndXJhdGlvbiBvciBhbiBhdHRhY2tlciBpbnRlcmNlcHRpbmcgeW91ciBjb25uZWN0aW9uLn0KICAgICBvdGhlciB7VGhpcyBzZXJ2ZXIgY291bGQgbm90IHByb3ZlIHRoYXQgaXQgaXMgPHN0cm9uZz57MH08L3N0cm9uZz47IGl0cyBzZWN1cml0eSBjZXJ0aWZpY2F0ZSBpcyBzdXBwb3NlZGx5IGZyb20gIyBkYXlzIGluIHRoZSBmdXR1cmUuIFRoaXMgbWF5IGJlIGNhdXNlZCBieSBhIG1pc2NvbmZpZ3VyYXRpb24gb3IgYW4gYXR0YWNrZXIgaW50ZXJjZXB0aW5nIHlvdXIgY29ubmVjdGlvbi59fVNlcnZlcidzIGNlcnRpZmljYXRlIGlzIG5vdCB5ZXQgdmFsaWQuVGhpcyBzZXJ2ZXIgY291bGQgbm90IHByb3ZlIHRoYXQgaXQgaXMgPHN0cm9uZz4kMTwvc3Ryb25nPjsgaXRzIHNlY3VyaXR5IGNlcnRpZmljYXRlIGlzIG5vdCB2YWxpZCBhdCB0aGlzIHRpbWUuIFRoaXMgbWF5IGJlIGNhdXNlZCBieSBhIG1pc2NvbmZpZ3VyYXRpb24gb3IgYW4gYXR0YWNrZXIgaW50ZXJjZXB0aW5nIHlvdXIgY29ubmVjdGlvbi5TZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBpcyBub3QgdmFsaWQgYXQgdGhpcyB0aW1lLlNlcnZlcidzIGNlcnRpZmljYXRlIGlzIG5vdCB0cnVzdGVkLlRoaXMgc2VydmVyIGNvdWxkIG5vdCBwcm92ZSB0aGF0IGl0IGlzIDxzdHJvbmc+JDE8L3N0cm9uZz47IGl0cyBzZWN1cml0eSBjZXJ0aWZpY2F0ZSBjb250YWlucyBlcnJvcnMuIFRoaXMgbWF5IGJlIGNhdXNlZCBieSBhIG1pc2NvbmZpZ3VyYXRpb24gb3IgYW4gYXR0YWNrZXIgaW50ZXJjZXB0aW5nIHlvdXIgY29ubmVjdGlvbi5TZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBjb250YWlucyBlcnJvcnMuVGhpcyBzZXJ2ZXIgY291bGQgbm90IHByb3ZlIHRoYXQgaXQgaXMgPHN0cm9uZz4kMTwvc3Ryb25nPjsgaXRzIHNlY3VyaXR5IGNlcnRpZmljYXRlIG1pZ2h0IGJlIHJldm9rZWQuIFRoaXMgbWF5IGJlIGNhdXNlZCBieSBhIG1pc2NvbmZpZ3VyYXRpb24gb3IgYW4gYXR0YWNrZXIgaW50ZXJjZXB0aW5nIHlvdXIgY29ubmVjdGlvbi5TZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBjYW5ub3QgYmUgY2hlY2tlZC5ObyByZXZvY2F0aW9uIG1lY2hhbmlzbSBmb3VuZC5Zb3UgYXR0ZW1wdGVkIHRvIHJlYWNoIDxzdHJvbmc+JDE8L3N0cm9uZz4sIGJ1dCB0aGUgY2VydGlmaWNhdGUgdGhhdCB0aGUgc2VydmVyIHByZXNlbnRlZCBoYXMgYmVlbiByZXZva2VkIGJ5IGl0cyBpc3N1ZXIuIFRoaXMgbWVhbnMgdGhhdCB0aGUgc2VjdXJpdHkgY3JlZGVudGlhbHMgdGhlIHNlcnZlciBwcmVzZW50ZWQgYWJzb2x1dGVseSBzaG91bGQgbm90IGJlIHRydXN0ZWQuIFlvdSBtYXkgYmUgY29tbXVuaWNhdGluZyB3aXRoIGFuIGF0dGFja2VyLlNlcnZlcidzIGNlcnRpZmljYXRlIGhhcyBiZWVuIHJldm9rZWQuWW91IGF0dGVtcHRlZCB0byByZWFjaCA8c3Ryb25nPiQxPC9zdHJvbmc+LCBidXQgdGhlIHNlcnZlciBwcmVzZW50ZWQgYW4gaW52YWxpZCBjZXJ0aWZpY2F0ZS5TZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBpcyBpbnZhbGlkLllvdSBhdHRlbXB0ZWQgdG8gcmVhY2ggPHN0cm9uZz4kMTwvc3Ryb25nPiwgYnV0IHRoZSBzZXJ2ZXIgcHJlc2VudGVkIGEgY2VydGlmaWNhdGUgc2lnbmVkIHVzaW5nIGEgd2VhayBzaWduYXR1cmUgYWxnb3JpdGhtIChzdWNoIGFzIFNIQS0xKS4gVGhpcyBtZWFucyB0aGF0IHRoZSBzZWN1cml0eSBjcmVkZW50aWFscyB0aGUgc2VydmVyIHByZXNlbnRlZCBjb3VsZCBoYXZlIGJlZW4gZm9yZ2VkLCBhbmQgdGhlIHNlcnZlciBtYXkgbm90IGJlIHRoZSBzZXJ2ZXIgeW91IGV4cGVjdGVkICh5b3UgbWF5IGJlIGNvbW11bmljYXRpbmcgd2l0aCBhbiBhdHRhY2tlcikuU2VydmVyJ3MgY2VydGlmaWNhdGUgaXMgc2lnbmVkIHVzaW5nIGEgd2VhayBzaWduYXR1cmUgYWxnb3JpdGhtLllvdSBhdHRlbXB0ZWQgdG8gcmVhY2ggPHN0cm9uZz4kMTwvc3Ryb25nPiwgYnV0IHRoZSBzZXJ2ZXIgcHJlc2VudGVkIGEgY2VydGlmaWNhdGUgY29udGFpbmluZyBhIHdlYWsga2V5LiBBbiBhdHRhY2tlciBjb3VsZCBoYXZlIGJyb2tlbiB0aGUgcHJpdmF0ZSBrZXksIGFuZCB0aGUgc2VydmVyIG1heSBub3QgYmUgdGhlIHNlcnZlciB5b3UgZXhwZWN0ZWQgKHlvdSBtYXkgYmUgY29tbXVuaWNhdGluZyB3aXRoIGFuIGF0dGFja2VyKS5UaGUgc2VydmVyIGNlcnRpZmljYXRlIGNvbnRhaW5zIGEgd2VhayBjcnlwdG9ncmFwaGljIGtleS5UaGlzIHNlcnZlciBjb3VsZCBub3QgcHJvdmUgdGhhdCBpdCBpcyA8c3Ryb25nPiQxPC9zdHJvbmc+OyBpdHMgc2VjdXJpdHkgY2VydGlmaWNhdGUgbWlnaHQgaGF2ZSBiZWVuIGlzc3VlZCBmcmF1ZHVsZW50bHkuIFRoaXMgbWF5IGJlIGNhdXNlZCBieSBhIG1pc2NvbmZpZ3VyYXRpb24gb3IgYW4gYXR0YWNrZXIgaW50ZXJjZXB0aW5nIHlvdXIgY29ubmVjdGlvbi5TZXJ2ZXIncyBjZXJ0aWZpY2F0ZSB2aW9sYXRlcyBuYW1lIGNvbnN0cmFpbnRzLllvdSBhdHRlbXB0ZWQgdG8gcmVhY2ggPHN0cm9uZz4kMTwvc3Ryb25nPiwgYnV0IHRoZSBzZXJ2ZXIgcHJlc2VudGVkIGEgY2VydGlmaWNhdGUgd2hvc2UgdmFsaWRpdHkgcGVyaW9kIGlzIHRvbyBsb25nIHRvIGJlIHRydXN0d29ydGh5LlRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgaGFzIGEgdmFsaWRpdHkgcGVyaW9kIHRoYXQgaXMgdG9vIGxvbmcuQW4gdW5rbm93biBlcnJvciBoYXMgb2NjdXJyZWQuVW5rbm93biBzZXJ2ZXIgY2VydGlmaWNhdGUgZXJyb3IuVGhlIHNlcnZlciBwcmVzZW50ZWQgYSBjZXJ0aWZpY2F0ZSB0aGF0IGRvZXNuJ3QgbWF0Y2ggYnVpbHQtaW4gZXhwZWN0YXRpb25zLiBUaGVzZSBleHBlY3RhdGlvbnMgYXJlIGluY2x1ZGVkIGZvciBjZXJ0YWluLCBoaWdoLXNlY3VyaXR5IHdlYnNpdGVzIGluIG9yZGVyIHRvIHByb3RlY3QgeW91LlRoZSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBhcHBlYXJzIHRvIGJlIGEgZm9yZ2VyeS5UaGUgc2VydmVyIHByZXNlbnRlZCBhIGNlcnRpZmljYXRlIHRoYXQgd2FzIG5vdCBwdWJsaWNseSBkaXNjbG9zZWQgdXNpbmcgdGhlIENlcnRpZmljYXRlIFRyYW5zcGFyZW5jeSBwb2xpY3kuIFRoaXMgaXMgYSByZXF1aXJlbWVudCBmb3Igc29tZSBjZXJ0aWZpY2F0ZXMsIHRvIGVuc3VyZSB0aGF0IHRoZXkgYXJlIHRydXN0d29ydGh5IGFuZCBwcm90ZWN0IGFnYWluc3QgYXR0YWNrZXJzLlRoZSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZSB3YXMgbm90IGRpc2Nsb3NlZCB2aWEgQ2VydGlmaWNhdGUgVHJhbnNwYXJlbmN5LlRoaXMgc2VydmVyIGNvdWxkIG5vdCBwcm92ZSB0aGF0IGl0IGlzIDxzdHJvbmc+JDE8L3N0cm9uZz47IGl0cyBzZWN1cml0eSBjZXJ0aWZpY2F0ZSBpcyBub3QgdHJ1c3RlZCBieSB5b3VyIGNvbXB1dGVyJ3Mgb3BlcmF0aW5nIHN5c3RlbS4gVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IGEgbWlzY29uZmlndXJhdGlvbiBvciBhbiBhdHRhY2tlciBpbnRlcmNlcHRpbmcgeW91ciBjb25uZWN0aW9uLlNpdGUgYmxvY2tlZFlvdSBuZWVkIHBlcm1pc3Npb24gZnJvbSAkMSB0byB2aXNpdCB0aGlzIHNpdGVBc2sgeW91ciBwYXJlbnRZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpc2l0IHRoaXMgc2l0ZVBsZWFzZSBzdGFydCBhbmQgc2lnbiBpbiB0byBDaHJvbWUgYmVmb3JlIHVzaW5nIHRoaXMgYXBwLllvdSBuZWVkIHBlcm1pc3Npb24gdG8gdmlzaXQgdGhpcyBzaXRlUXVlc3Rpb25zPyBDb250YWN0IHRoZSBwZXJzb24gd2hvIHN1cGVydmlzZXMgeW91ciBwcm9maWxlLkdvIGJhY2tBc2sgcGVybWlzc2lvbllvdXIgcmVxdWVzdCB0byBhY2Nlc3MgdGhpcyBzaXRlIGhhcyBiZWVuIHNlbnQgdG8gJDFZb3VyIHJlcXVlc3QgdG8gYWNjZXNzIHRoaXMgc2l0ZSBjb3VsZCBub3QgYmUgc2VudCB0byAkMS4gUGxlYXNlIHRyeSBhZ2Fpbi5Zb3UgYXNrZWQgeW91ciBwYXJlbnQgaWYgaXQncyBPSyB0byB2aXNpdCB0aGlzIHNpdGVZb3UgYXNrZWQgeW91ciBwYXJlbnRzIGlmIGl0J3MgT0sgdG8gdmlzaXQgdGhpcyBzaXRlV2UgY291bGQgbm90IHJlYWNoIHlvdXIgcGFyZW50IGF0IHRoZSBtb21lbnQuIFBsZWFzZSB0cnkgYWdhaW4uV2UgY291bGQgbm90IHJlYWNoIHlvdXIgcGFyZW50cyBhdCB0aGUgbW9tZW50LiBQbGVhc2UgdHJ5IGFnYWluLldhcyB0aGlzIHVuZXhwZWN0ZWQ/IDxhIGhyZWY9IiMiIGlkPSJmZWVkYmFjay1saW5rIj5MZXQgdXMga25vdzwvYT5UaGlzIHNpdGUgaXMgYmxvY2tlZFlvdXIgcGFyZW50IGhhc24ndCBhcHByb3ZlZCBpdCB5ZXRZb3VyIHBhcmVudHMgaGF2ZW4ndCBhcHByb3ZlZCBpdCB5ZXRZb3VyIG1hbmFnZXIgaGFzbid0IGFwcHJvdmVkIGl0IHlldEl0IG1heSBoYXZlIG1hdHVyZSBjb250ZW50WW91ciBwYXJlbnQgY2FuIHVuYmxvY2sgaXQgZm9yIHlvdVlvdXIgcGFyZW50cyBjYW4gdW5ibG9jayBpdCBmb3IgeW91WW91ciBtYW5hZ2VyIGNhbiB1bmJsb2NrIGl0IGZvciB5b3VQbGVhc2Ugc3RhcnQgYW5kIHNpZ24gaW4gdG8gQ2hyb21lIHNvIHRoYXQgQ2hyb21lIGNhbiBjaGVjayB3aGV0aGVyIHlvdSBhcmUgYWxsb3dlZCB0byBhY2Nlc3MgdGhpcyBzaXRlLkVuY3J5cHQgc3luY2VkIHBhc3N3b3JkcyB3aXRoIHlvdXIgR29vZ2xlIGNyZWRlbnRpYWxzUGxlYXNlIHVwZGF0ZSB5b3VyIHN5bmMgcGFzc3BocmFzZS5SZWFkaW5nIExpc3RFbXB0eSBwYXNzcGhyYXNlIGlzIG5vdCBhbGxvd2VkLllvdSBhbHJlYWR5IGhhdmUgZGF0YSB0aGF0IGlzIGVuY3J5cHRlZCB1c2luZyBhIGRpZmZlcmVudCB2ZXJzaW9uIG9mIHlvdXIgR29vZ2xlIEFjY291bnQgcGFzc3dvcmQuIFBsZWFzZSBlbnRlciBpdCBiZWxvdy5FbmNyeXB0IGFsbCBzeW5jZWQgZGF0YSB3aXRoIHlvdXIgb3duIHN5bmMgcGFzc3BocmFzZVNldHRpbmcgdXDigKZZb3UgbXVzdCBlbnRlciB0aGUgc2FtZSBwYXNzcGhyYXNlIHR3aWNlLlN5bmMgaXMgbm90IGF2YWlsYWJsZSBmb3IgeW91ciBkb21haW5Zb3VyIGRhdGEgd2FzIGVuY3J5cHRlZCB3aXRoIHlvdXIgc3luYyBwYXNzcGhyYXNlIG9uICQxLiBFbnRlciBpdCB0byBzdGFydCBzeW5jLllvdXIgZGF0YSBpcyBlbmNyeXB0ZWQgd2l0aCB5b3VyIHN5bmMgcGFzc3BocmFzZS4gRW50ZXIgaXQgdG8gc3RhcnQgc3luYy5OZXZlciB0cmFuc2xhdGUgJDFOZXZlciB0cmFuc2xhdGUgdGhpcyBzaXRlQWx3YXlzIHRyYW5zbGF0ZSAkMSB0byAkMk5vdCBpbiAkMT8gUmVwb3J0IHRoaXMgZXJyb3JBYm91dCBHb29nbGUgVHJhbnNsYXRlVGhpcyBwYWdlIGlzIGluJDFXb3VsZCB5b3UgbGlrZSB0byB0cmFuc2xhdGUgaXQ/VHJhbnNsYXRlQWx3YXlzIHRyYW5zbGF0ZSAkMVRyYW5zbGF0aW5nIHBhZ2UgdG8gJDHigKZUaGlzIHBhZ2UgaGFzIGJlZW4gdHJhbnNsYXRlZCBmcm9tJDF0byQyVGhpcyBwYWdlIGhhcyBiZWVuIHRyYW5zbGF0ZWQgdG8gJDFUaGUgdHJhbnNsYXRpb24gZmFpbGVkIGJlY2F1c2Ugb2YgYSBwcm9ibGVtIHdpdGggdGhlIG5ldHdvcmsgY29ubmVjdGlvbi5UaGUgdHJhbnNsYXRpb24gZmFpbGVkIGJlY2F1c2Ugb2YgYSBzZXJ2ZXIgZXJyb3IuVGhlIHRyYW5zbGF0aW9uIGZhaWxlZCBiZWNhdXNlIHRoZSBwYWdlJ3MgbGFuZ3VhZ2UgY291bGQgbm90IGJlIGRldGVybWluZWQuVGhlIHRyYW5zbGF0aW9uIGZhaWxlZCBiZWNhdXNlIHRoZSBwYWdlIGlzIGFscmVhZHkgaW4gJDEuVGhpcyBwYWdlIGhhcyBiZWVuIHRyYW5zbGF0ZWQgZnJvbSBhbiB1bmtub3duIGxhbmd1YWdlIHRvICQxJlVuZG8gYWRkJlJlZG8gYWRkJlVuZG8gZGVsZXRlJlJlZG8gZGVsZXRlJlVuZG8gZWRpdCZSZWRvIGVkaXQmVW5kbyBtb3ZlJlJlZG8gbW92ZSZVbmRvIHJlb3JkZXImUmVkbyByZW9yZGVyQWJvdXQgVmVyc2lvbk9mZmljaWFsIEJ1aWxkRGV2ZWxvcGVyIEJ1aWxkKDMyLWJpdCkoNjQtYml0KVJldmlzaW9uT1NVc2VyIEFnZW50Q29tbWFuZCBMaW5lRXhlY3V0YWJsZSBQYXRoUHJvZmlsZSBQYXRoTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVZhcmlhdGlvbnNDb21tYW5kLWxpbmUgdmFyaWF0aW9uc1RoaXMgcGx1Z2luIGlzIG5vdCBzdXBwb3J0ZWRSZWNlbnRseSBjbG9zZWRDaG9vc2VGb3J3YXJkT2tBZGRyZXNzIGFuZCBzZWFyY2ggYmFySlNPTiBQYXJzZXJPcGVuIHN0YXJ0dXAgcGFnZXNQcml2YWN5VG9kYXlDaG9vc2UgRmlsZXNObyBmaWxlIGNob3NlbiQxIGZpbGVzT3RoZXLigKZkZG1teXl5eVRoaXMgbW9udGhUaGlzIHdlZWtXZWVrU2hvdyBkYXRlIHBpY2tlclNob3cgbW9udGggc2VsZWN0aW9uIHBhbmVsU2hvdyBuZXh0IG1vbnRoU2hvdyBwcmV2aW91cyBtb250aCQxLCBzdGFydGluZyBvbiAkMmFydGljbGViYW5uZXJjb21wbGVtZW50YXJ5ZGVsZXRpb25pbnNlcnRpb25jaGVja2JveGNvbnRlbnQgaW5mb2RlZmluaXRpb25kZWZpbml0aW9uIGxpc3R0ZXJtZGlzY2xvc3VyZSB0cmlhbmdsZWFic3RyYWN0YWNrbm93bGVkZ21lbnRzYWZ0ZXJ3b3JkYXBwZW5kaXhiYWNrIGxpbmtiaWJsaW9ncmFwaHkgZW50cnliaWJsaW9ncmFwaHliaWJsaW9ncmFwaHkgcmVmZXJlbmNlY2hhcHRlcmNvbG9waG9uY29uY2x1c2lvbmNvdmVyY3JlZGl0Y3JlZGl0c2RlZGljYXRpb25lbmRub3RlZW5kbm90ZXNlcGlncmFwaGVwaWxvZ3VlZXJyYXRhZXhhbXBsZWZvb3Rub3RlZm9yZXdvcmRnbG9zc2FyeWdsb3NzYXJ5IHJlZmVyZW5jZWluZGV4aW50cm9kdWN0aW9ubm90ZSByZWZlcmVuY2Vub3RpY2VwYWdlIGJyZWFrcGFnZSBsaXN0cGFydHByZWZhY2Vwcm9sb2d1ZXB1bGxxdW90ZVEmQXN1YnRpdGxldGlwdGFibGUgb2YgY29udGVudHNmZWVkZmlndXJlZm9ybWZvb3RlcmdyYXBoaWNzIGRvY3VtZW50Z3JhcGhpY3Mgb2JqZWN0Z3JhcGhpY3Mgc3ltYm9sdG9nZ2xlIGJ1dHRvbmhlYWRpbmdsaW5rbWFpbmhpZ2hsaWdodGVkIGNvbnRlbnRtYXRobmF2aWdhdGlvbnJlZ2lvbnNlYXJjaCB0ZXh0IGZpZWxkc3RhdHVzc3dpdGNoSFRNTCBjb250ZW50QU0vUE1EYXlIb3Vyc21lZGlhIGNvbnRyb2xhdWRpb3ZpZGVvbXV0ZXVubXV0ZXBsYXlwYXVzZWVsYXBzZWQgdGltZXJlbWFpbmluZyB0aW1lZW50ZXIgZnVsbCBzY3JlZW5leGl0IGZ1bGwgc2NyZWVuZW50ZXIgcGljdHVyZS1pbi1waWN0dXJlZXhpdCBwaWN0dXJlLWluLXBpY3R1cmVzaG93IGNsb3NlZCBjYXB0aW9uc2hpZGUgY2xvc2VkIGNhcHRpb25zcGxheSBvbiByZW1vdGUgZGV2aWNlY29udHJvbCByZW1vdGUgcGxheWJhY2tkb3dubG9hZCBtZWRpYXNob3cgbW9yZSBtZWRpYSBjb250cm9sc211dGUgYXVkaW8gdHJhY2t1bm11dGUgYXVkaW8gdHJhY2tiZWdpbiBwbGF5YmFja3BhdXNlIHBsYXliYWNrYXVkaW8gdGltZSBzY3J1YmJlcm1vdmllIHRpbWUgc2NydWJiZXJjdXJyZW50IHRpbWUgaW4gc2Vjb25kc251bWJlciBvZiBzZWNvbmRzIG9mIG1vdmllIHJlbWFpbmluZ3BsYXkgbW92aWUgaW4gZnVsbCBzY3JlZW4gbW9kZXBsYXkgdmlkZW8gaW4gcGljdHVyZS1pbi1waWN0dXJlIG1vZGVzdGFydCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9uc3N0b3AgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnNtb3JlIG9wdGlvbnNNaWxsaXNlY29uZHNNaW51dGVzU2Vjb25kc1dlZWsgJDIsICQxUGxlYXNlIHNlbGVjdCBvbmUgb3IgbW9yZSBmaWxlcy5JbnZhbGlkIHZhbHVlLlBsZWFzZSBlbnRlciBhIG5vbi1lbXB0eSBlbWFpbCBhZGRyZXNzLlBsZWFzZSBlbnRlciBhIHBhcnQgZm9sbG93aW5nICckMScuICckMicgaXMgaW5jb21wbGV0ZS5QbGVhc2UgZW50ZXIgYSBwYXJ0IGZvbGxvd2VkIGJ5ICckMScuICckMicgaXMgaW5jb21wbGV0ZS5BIHBhcnQgZm9sbG93aW5nICckMScgc2hvdWxkIG5vdCBjb250YWluIHRoZSBzeW1ib2wgJyQyJy4nJDEnIGlzIHVzZWQgYXQgYSB3cm9uZyBwb3NpdGlvbiBpbiAnJDInLkEgcGFydCBmb2xsb3dlZCBieSAnJDEnIHNob3VsZCBub3QgY29udGFpbiB0aGUgc3ltYm9sICckMicuUGxlYXNlIGluY2x1ZGUgYW4gJyQxJyBpbiB0aGUgZW1haWwgYWRkcmVzcy4gJyQyJyBpcyBtaXNzaW5nIGFuICckMScuUGxlYXNlIGVudGVyIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZW1haWwgYWRkcmVzc2VzLlZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICQxLlZhbHVlIG11c3QgYmUgJDEgb3IgbGF0ZXIuVmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJDEuVmFsdWUgbXVzdCBiZSAkMSBvciBlYXJsaWVyLlBsZWFzZSBlbnRlciBhIHZhbGlkIHZhbHVlLiBUaGUgZmllbGQgaXMgaW5jb21wbGV0ZSBvciBoYXMgYW4gaW52YWxpZCBkYXRlLlBsZWFzZSBlbnRlciBhIG51bWJlci5QbGVhc2UgZmlsbCBvdXQgdGhpcyBmaWVsZC5QbGVhc2UgY2hlY2sgdGhpcyBib3ggaWYgeW91IHdhbnQgdG8gcHJvY2VlZC5QbGVhc2Ugc2VsZWN0IGEgZmlsZS5QbGVhc2Ugc2VsZWN0IG9uZSBvZiB0aGVzZSBvcHRpb25zLlBsZWFzZSBzZWxlY3QgYW4gaXRlbSBpbiB0aGUgbGlzdC5QbGVhc2UgZW50ZXIgYW4gZW1haWwgYWRkcmVzcy5QbGVhc2UgZW50ZXIgYSBVUkwuUGxlYXNlIG1hdGNoIHRoZSByZXF1ZXN0ZWQgZm9ybWF0LlBsZWFzZSBlbnRlciBhIHZhbGlkIHZhbHVlLiBUaGUgdHdvIG5lYXJlc3QgdmFsaWQgdmFsdWVzIGFyZSAkMSBhbmQgJDIuUGxlYXNlIGVudGVyIGEgdmFsaWQgdmFsdWUuIFRoZSBuZWFyZXN0IHZhbGlkIHZhbHVlIGlzICQxLlBsZWFzZSBzaG9ydGVuIHRoaXMgdGV4dCB0byAkMiBjaGFyYWN0ZXJzIG9yIGxlc3MgKHlvdSBhcmUgY3VycmVudGx5IHVzaW5nICQxIGNoYXJhY3RlcnMpLlBsZWFzZSBsZW5ndGhlbiB0aGlzIHRleHQgdG8gJDIgY2hhcmFjdGVycyBvciBtb3JlICh5b3UgYXJlIGN1cnJlbnRseSB1c2luZyAxIGNoYXJhY3RlcikuUGxlYXNlIGxlbmd0aGVuIHRoaXMgdGV4dCB0byAkMiBjaGFyYWN0ZXJzIG9yIG1vcmUgKHlvdSBhcmUgY3VycmVudGx5IHVzaW5nICQxIGNoYXJhY3RlcnMpLkNhcHRpb25zRnVsbHNjcmVlbkV4aXQgZnVsbHNjcmVlbkV4aXQgcGljdHVyZS1pbi1waWN0dXJlIG1vZGVUaGlzIHZpZGVvIGlzIHBsYXlpbmcgaW4gcGljdHVyZS1pbi1waWN0dXJlIG1vZGVOb3cgY2FzdGluZyB0byAkMU5vdyBjYXN0aW5nIHRvIHlvdXIgVFZTd2l0Y2hlZCB0byBtaXJyb3JpbmdQb29yIHBsYXliYWNrIHF1YWxpdHlWaWRlbyBwbGF5YmFjayBlcnJvckRvdWJsZSB0YXAgbGVmdCBvciByaWdodCB0byBza2lwIDEwc1RyYWNrICQxQ291bGRuJ3QgbG9hZCBwbHVnaW4uJDEgS0IkMSBNQiQxIEdCJDEgVEIkMSBQQlVua25vd24gb3IgVW5zdXBwb3J0ZWQgRGV2aWNlICgkMSlDb21wdXRlciAoJDEpUGhvbmUgKCQxKU1vZGVtICgkMSlBdWRpbyAoJDEpQ2FyIGF1ZGlvICgkMSlWaWRlbyAoJDEpSm95c3RpY2sgKCQxKUdhbWVwYWQgKCQxKUtleWJvYXJkICgkMSlUYWJsZXQgKCQxKU1vdXNlICgkMSlLZXlib2FyZC9Nb3VzZSAoJDEpQ291bGQgbm90IGxvYWQgZmlsZSAnJDEnIGZvciBjb250ZW50IHNjcmlwdC4gSXQgaXNuJ3QgVVRGLTggZW5jb2RlZC5DYW4ndCBmaW5kIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBkaXJlY3RvcnkgdG8gcGFjay5UaGlzIGV4dGVuc2lvbiBpbmNsdWRlcyB0aGUga2V5IGZpbGUgJyQxJy4gWW91IHByb2JhYmx5IGRvbid0IHdhbnQgdG8gZG8gdGhhdC5UaGVyZSBpcyBhbHJlYWR5IGEgQ1JYIGZpbGUgcHJlc2VudCB3aXRoIHRoaXMgbmFtZS5JbnB1dCBkaXJlY3RvcnkgbXVzdCBleGlzdC5FcnJvciB3aGlsZSBzaWduaW5nIGV4dGVuc2lvbi5GYWlsZWQgdG8gY3JlYXRlIHRlbXBvcmFyeSB6aXAgZmlsZSBkdXJpbmcgcGFja2FnaW5nLkNvdWxkIG5vdCBsb2FkIGFib3V0IHBhZ2UgJyQxJy5Db3VsZCBub3QgbG9hZCBiYWNrZ3JvdW5kIHNjcmlwdCAnJDEnLkNvdWxkIG5vdCBsb2FkIGJhY2tncm91bmQgcGFnZSAnJDEnLkNvdWxkIG5vdCBsb2FkIGNzcyAnJDEnIGZvciBjb250ZW50IHNjcmlwdC5Db3VsZCBub3QgbG9hZCBleHRlbnNpb24gaWNvbiAnJDEnLkNvdWxkIG5vdCBsb2FkIGphdmFzY3JpcHQgJyQxJyBmb3IgY29udGVudCBzY3JpcHQuQ291bGQgbm90IGxvYWQgb3B0aW9ucyBwYWdlICckMScuTG9jYWxpemF0aW9uIHVzZWQsIGJ1dCBkZWZhdWx0X2xvY2FsZSB3YXNuJ3Qgc3BlY2lmaWVkIGluIHRoZSBtYW5pZmVzdC5NYW5pZmVzdCBmaWxlIGlzIG1pc3Npbmcgb3IgdW5yZWFkYWJsZU1hbmlmZXN0IGZpbGUgaXMgaW52YWxpZENvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5IGZvciB1bnppcHBpbmc6ICckMSdJbGxlZ2FsIHBhdGggKGFic29sdXRlIG9yIHJlbGF0aXZlIHdpdGggJy4uJyk6ICckMSdDb3VsZCBub3QgZGVjb2RlIGltYWdlOiAnJDEnQ291bGQgbm90IHVuemlwIGV4dGVuc2lvbkEgcHJpdmF0ZSBrZXkgZm9yIHNwZWNpZmllZCBleHRlbnNpb24gYWxyZWFkeSBleGlzdHMuIFJldXNlIHRoYXQga2V5IG9yIGRlbGV0ZSBpdCBmaXJzdC5GYWlsZWQgdG8gcmVhZCBwcml2YXRlIGtleS5GYWlsZWQgdG8gZXhwb3J0IHByaXZhdGUga2V5Lllpa2VzISBGYWlsZWQgdG8gZ2VuZXJhdGUgcmFuZG9tIFJTQSBwcml2YXRlIGtleS5GYWlsZWQgdG8gb3V0cHV0IHByaXZhdGUga2V5LkludmFsaWQgcHJpdmF0ZSBrZXkuSW5wdXQgdmFsdWUgZm9yIHByaXZhdGUga2V5IG11c3QgZXhpc3QuSW5wdXQgdmFsdWUgZm9yIHByaXZhdGUga2V5IG11c3QgYmUgYSB2YWxpZCBwYXRoLkZhaWxlZCB0byBleHBvcnQgcHVibGljIGtleS5leHRlbnNpb24gJDFGYWlsZWQgdG8gcmVwbGFjZSBjcnggZmlsZS4gQ2hlY2sgdG8gc2VlIGlmIHRoZSBmaWxlIGlzIGluIHVzZS4kMSAoZXh0ZW5zaW9uIElEICIkMiIpIGlzIGJsb2NrZWQgYnkgdGhlIGFkbWluaXN0cmF0b3IuICQzVGhlIGFkbWluaXN0cmF0b3Igb2YgdGhpcyBtYWNoaW5lIHJlcXVpcmVzICQxIHRvIGJlIGluc3RhbGxlZC4gSXQgY2Fubm90IGJlIHJlbW92ZWQgb3IgbW9kaWZpZWQuVGhlIGFkbWluaXN0cmF0b3Igb2YgdGhpcyBtYWNoaW5lIHJlcXVpcmVzICQxIHRvIGJlIGluc3RhbGxlZC4gSXQgY2Fubm90IGJlIHVuaW5zdGFsbGVkLlRoZSBhZG1pbmlzdHJhdG9yIG9mIHRoaXMgbWFjaGluZSByZXF1aXJlcyAkMSB0byBoYXZlIGEgbWluaW11bSB2ZXJzaW9uIG9mICQyLiBJdCBjYW5ub3QgYmUgZW5hYmxlZCB1bnRpbCBpdCBoYXMgdXBkYXRlZCB0byB0aGF0IHZlcnNpb24gKG9yIGhpZ2hlcikuJDEgKHNlcmlhbCBudW1iZXIgJDIpJDEgZnJvbSB2ZW5kb3IgJDIkMSBmcm9tIHZlbmRvciAkMiAoc2VyaWFsIG51bWJlciAkMykkMSBmcm9tICQyJDEgZnJvbSAkMiAoc2VyaWFsIG51bWJlciAkMylVbmtub3duIHByb2R1Y3QgJDEgZnJvbSB2ZW5kb3IgJDJVbmtub3duIHByb2R1Y3QgJDEgZnJvbSB2ZW5kb3IgJDIgKHNlcmlhbCBudW1iZXIgJDMpVW5rbm93biBwcm9kdWN0ICQxIGZyb20gJDJVbmtub3duIHByb2R1Y3QgJDEgZnJvbSAkMiAoc2VyaWFsIG51bWJlciAkMykiJDEiIGlzIHJlcXVlc3RpbmcgYWNjZXNzIHRvIG9uZSBvZiB5b3VyIGRldmljZXM6IiQxIiBpcyByZXF1ZXN0aW5nIGFjY2VzcyB0byBvbmUgb3IgbW9yZSBvZiB5b3VyIGRldmljZXM6VXNlci1mYWNpbmdFbnZpcm9ubWVudC1mYWNpbmdBcHB2aWV3OiAkMU9wdGlvbnM6ICQxRXh0ZW5zaW9uVmlldzogJDFNaW1laGFuZGxlcjogJDFXZWJ2aWV3OiAkMVRoaXMgZXh0ZW5zaW9uIGlzIHNsb3dpbmcgZG93biAkMS4gWW91IHNob3VsZCBkaXNhYmxlIGl0IHRvIHJlc3RvcmUgJDEncyBwZXJmb3JtYW5jZS5UaGlzIGV4dGVuc2lvbiBmYWlsZWQgdG8gbW9kaWZ5IGEgbmV0d29yayByZXF1ZXN0IGJlY2F1c2UgdGhlIG1vZGlmaWNhdGlvbiBjb25mbGljdGVkIHdpdGggYW5vdGhlciBleHRlbnNpb24uVGhpcyBleHRlbnNpb24gZmFpbGVkIHRvIHJlZGlyZWN0IGEgbmV0d29yayByZXF1ZXN0IHRvICQxIGJlY2F1c2UgYW5vdGhlciBleHRlbnNpb24gKCQyKSByZWRpcmVjdGVkIGl0IHRvICQzLlRoaXMgZXh0ZW5zaW9uIGZhaWxlZCB0byBtb2RpZnkgdGhlIHJlcXVlc3QgaGVhZGVyICIkMSIgb2YgYSBuZXR3b3JrIHJlcXVlc3QgYmVjYXVzZSB0aGUgbW9kaWZpY2F0aW9uIGNvbmZsaWN0ZWQgd2l0aCBhbm90aGVyIGV4dGVuc2lvbiAoJDIpLlRoaXMgZXh0ZW5zaW9uIGZhaWxlZCB0byBtb2RpZnkgdGhlIHJlc3BvbnNlIGhlYWRlciAiJDEiIG9mIGEgbmV0d29yayByZXF1ZXN0IGJlY2F1c2UgdGhlIG1vZGlmaWNhdGlvbiBjb25mbGljdGVkIHdpdGggYW5vdGhlciBleHRlbnNpb24gKCQyKS5UaGlzIGV4dGVuc2lvbiBmYWlsZWQgdG8gcHJvdmlkZSBjcmVkZW50aWFscyB0byBhIG5ldHdvcmsgcmVxdWVzdCBiZWNhdXNlIGFub3RoZXIgZXh0ZW5zaW9uICgkMSkgcHJvdmlkZWQgZGlmZmVyZW50IGNyZWRlbnRpYWxzLlRoaXMgZXh0ZW5zaW9uIGZhaWxlZCB0byBuYW1lIHRoZSBkb3dubG9hZCAiJDEiIGJlY2F1c2UgYW5vdGhlciBleHRlbnNpb24gKCQyKSBkZXRlcm1pbmVkIGEgZGlmZmVyZW50IGZpbGVuYW1lICIkMyIuVGhpcyBleHRlbnNpb24gcmVsb2FkZWQgaXRzZWxmIHRvbyBmcmVxdWVudGx5LlRoZSBleHRlbnNpb24gZmFpbGVkIHRvIGxvYWQgcHJvcGVybHkuIEl0IG1pZ2h0IG5vdCBiZSBhYmxlIHRvIGludGVyY2VwdCBuZXR3b3JrIHJlcXVlc3RzLkNvdWxkIG5vdCBpbnN0YWxsIHBhY2thZ2UgYmVjYXVzZSBhIHV0aWxpdHkgcHJvY2VzcyBjcmFzaGVkLiBUcnkgcmVzdGFydGluZyBDaHJvbWUgYW5kIHRyeWluZyBhZ2Fpbi5QYWNrYWdlIGlzIGludmFsaWQ6ICckMScuUGFja2FnZSBpcyBpbnZhbGlkLiBEZXRhaWxzOiAnJDEnLkNvdWxkIG5vdCBpbnN0YWxsIHBhY2thZ2U6ICckMSdDYW4gbm90IHVucGFjayBleHRlbnNpb24uICBUbyBzYWZlbHkgdW5wYWNrIGFuIGV4dGVuc2lvbiwgdGhlcmUgbXVzdCBiZSBhIHBhdGggdG8geW91ciBwcm9maWxlIGRpcmVjdG9yeSB0aGF0IGRvZXMgbm90IGNvbnRhaW4gYSBzeW1saW5rLiAgTm8gc3VjaCBwYXRoIGV4aXN0cyBmb3IgeW91ciBwcm9maWxlLldlYkdMIGlzIG5vdCBzdXBwb3J0ZWQuQ2l0eVBvc3QgVG93blN1YnVyYlRvd25sYW5kVmlsbGFnZSAvIFRvd25zaGlwU3RyZWV0IGFkZHJlc3NFaXJjb2RlUElOIGNvZGVEby9TaU9ibGFzdE9yZ2FuaXphdGlvbk5laWdoYm9yaG9vZFlvdSBjYW4ndCBsZWF2ZSB0aGlzIGVtcHR5LllvdSBtdXN0IHByb3ZpZGUgYSBwb3N0YWwgY29kZSwgZm9yIGV4YW1wbGUgJDEuIERvbid0IGtub3cgeW91ciBwb3N0YWwgY29kZT8gRmluZCBpdCBvdXQgJDJoZXJlJDMuWW91IG11c3QgcHJvdmlkZSBhIHBvc3RhbCBjb2RlLCBmb3IgZXhhbXBsZSAkMS5Zb3UgbXVzdCBwcm92aWRlIGEgWklQIGNvZGUsIGZvciBleGFtcGxlICQxLiBEb24ndCBrbm93IHlvdXIgWklQIGNvZGU/IEZpbmQgaXQgb3V0ICQyaGVyZSQzLllvdSBtdXN0IHByb3ZpZGUgYSBaSVAgY29kZSwgZm9yIGV4YW1wbGUgJDEuJDEgaXMgbm90IHJlY29nbml6ZWQgYXMgYSBrbm93biB2YWx1ZSBmb3IgdGhpcyBmaWVsZC5UaGlzIHBvc3RhbCBjb2RlIGZvcm1hdCBpcyBub3QgcmVjb2duaXplZC4gRXhhbXBsZSBvZiBhIHZhbGlkIHBvc3RhbCBjb2RlOiAkMS4gRG9uJ3Qga25vdyB5b3VyIHBvc3RhbCBjb2RlPyBGaW5kIGl0IG91dCAkMmhlcmUkMy5UaGlzIHBvc3RhbCBjb2RlIGZvcm1hdCBpcyBub3QgcmVjb2duaXplZC4gRXhhbXBsZSBvZiBhIHZhbGlkIHBvc3RhbCBjb2RlOiAkMS5UaGlzIHBvc3RhbCBjb2RlIGZvcm1hdCBpcyBub3QgcmVjb2duaXplZC5UaGlzIFpJUCBjb2RlIGZvcm1hdCBpcyBub3QgcmVjb2duaXplZC4gRXhhbXBsZSBvZiBhIHZhbGlkIFpJUCBjb2RlOiAkMS4gRG9uJ3Qga25vdyB5b3VyIFpJUCBjb2RlPyBGaW5kIGl0IG91dCAkMmhlcmUkMy5UaGlzIFpJUCBjb2RlIGZvcm1hdCBpcyBub3QgcmVjb2duaXplZC4gRXhhbXBsZSBvZiBhIHZhbGlkIFpJUCBjb2RlOiAkMS5UaGlzIFpJUCBjb2RlIGZvcm1hdCBpcyBub3QgcmVjb2duaXplZC5UaGlzIHBvc3RhbCBjb2RlIGRvZXMgbm90IGFwcGVhciB0byBtYXRjaCB0aGUgcmVzdCBvZiB0aGlzIGFkZHJlc3MuIERvbid0IGtub3cgeW91ciBwb3N0YWwgY29kZT8gRmluZCBpdCBvdXQgJDFoZXJlJDIuVGhpcyBwb3N0YWwgY29kZSBkb2VzIG5vdCBhcHBlYXIgdG8gbWF0Y2ggdGhlIHJlc3Qgb2YgdGhpcyBhZGRyZXNzLlRoaXMgWklQIGNvZGUgZG9lcyBub3QgYXBwZWFyIHRvIG1hdGNoIHRoZSByZXN0IG9mIHRoaXMgYWRkcmVzcy4gRG9uJ3Qga25vdyB5b3VyIFpJUCBjb2RlPyBGaW5kIGl0IG91dCAkMWhlcmUkMi5UaGlzIFpJUCBjb2RlIGRvZXMgbm90IGFwcGVhciB0byBtYXRjaCB0aGUgcmVzdCBvZiB0aGlzIGFkZHJlc3MuVGhpcyBhZGRyZXNzIGxpbmUgYXBwZWFycyB0byBjb250YWluIGEgcG9zdCBvZmZpY2UgYm94LiBQbGVhc2UgdXNlIGEgc3RyZWV0IG9yIGJ1aWxkaW5nIGFkZHJlc3MuQXJpYWwsIHNhbnMtc2VyaWY3NSV7U0VDT05EUywgcGx1cmFsLCA9MSB7MSBzZWN9IG90aGVyIHsjIHNlY3N9fXtTRUNPTkRTLCBwbHVyYWwsID0xIHsxIHNlY29uZH0gb3RoZXIgeyMgc2Vjb25kc319e01JTlVURVMsIHBsdXJhbCwgPTEgezEgbWlufSBvdGhlciB7IyBtaW5zfX17TUlOVVRFUywgcGx1cmFsLCA9MSB7MSBtaW51dGV9IG90aGVyIHsjIG1pbnV0ZXN9fXtNSU5VVEVTLCBwbHVyYWwsID0xIHsxIG1pbnV0ZSBhbmQgfSBvdGhlciB7IyBtaW51dGVzIGFuZCB9fXtIT1VSUywgcGx1cmFsLCA9MSB7MSBob3VyfSBvdGhlciB7IyBob3Vyc319e0hPVVJTLCBwbHVyYWwsID0xIHsxIGhvdXIgYW5kIH0gb3RoZXIgeyMgaG91cnMgYW5kIH19e0RBWVMsIHBsdXJhbCwgPTEgezEgZGF5fSBvdGhlciB7IyBkYXlzfX17REFZUywgcGx1cmFsLCA9MSB7MSBkYXkgYW5kIH0gb3RoZXIgeyMgZGF5cyBhbmQgfX17TU9OVEhTLCBwbHVyYWwsID0xIHsxIG1vbnRofSBvdGhlciB7IyBtb250aHN9fXtZRUFSUywgcGx1cmFsLCA9MSB7MSB5ZWFyfSBvdGhlciB7IyB5ZWFyc319e1NFQ09ORFMsIHBsdXJhbCwgPTEgezEgc2VjIGxlZnR9IG90aGVyIHsjIHNlY3MgbGVmdH19e1NFQ09ORFMsIHBsdXJhbCwgPTEgezEgc2Vjb25kIGxlZnR9IG90aGVyIHsjIHNlY29uZHMgbGVmdH19e01JTlVURVMsIHBsdXJhbCwgPTEgezEgbWluIGxlZnR9IG90aGVyIHsjIG1pbnMgbGVmdH19e01JTlVURVMsIHBsdXJhbCwgPTEgezEgbWludXRlIGxlZnR9IG90aGVyIHsjIG1pbnV0ZXMgbGVmdH19e0hPVVJTLCBwbHVyYWwsID0xIHsxIGhvdXIgbGVmdH0gb3RoZXIgeyMgaG91cnMgbGVmdH19e0RBWVMsIHBsdXJhbCwgPTEgezEgZGF5IGxlZnR9IG90aGVyIHsjIGRheXMgbGVmdH19e01PTlRIUywgcGx1cmFsLCA9MSB7MSBtb250aCBsZWZ0fSBvdGhlciB7IyBtb250aHMgbGVmdH19e1lFQVJTLCBwbHVyYWwsID0xIHsxIHllYXIgbGVmdH0gb3RoZXIgeyMgeWVhcnMgbGVmdH19e1NFQ09ORFMsIHBsdXJhbCwgPTEgezEgc2VjIGFnb30gb3RoZXIgeyMgc2VjcyBhZ299fXtTRUNPTkRTLCBwbHVyYWwsID0xIHsxIHNlY29uZCBhZ299IG90aGVyIHsjIHNlY29uZHMgYWdvfX17TUlOVVRFUywgcGx1cmFsLCA9MSB7MSBtaW4gYWdvfSBvdGhlciB7IyBtaW5zIGFnb319e1NFQ09ORFMsIHBsdXJhbCwgPTEgezEgbWludXRlIGFnb30gb3RoZXIgeyMgbWludXRlcyBhZ299fXtIT1VSUywgcGx1cmFsLCA9MSB7MSBob3VyIGFnb30gb3RoZXIgeyMgaG91cnMgYWdvfX17REFZUywgcGx1cmFsLCA9MSB7MSBkYXkgYWdvfSBvdGhlciB7IyBkYXlzIGFnb319e01PTlRIUywgcGx1cmFsLCA9MSB7MSBtb250aCBhZ299IG90aGVyIHsjIG1vbnRocyBhZ299fXtZRUFSUywgcGx1cmFsLCA9MSB7MSB5ZWFyIGFnb30gb3RoZXIgeyMgeWVhcnMgYWdvfX1ZZXN0ZXJkYXkoZW1wdHkpU2VsZWN0IEZvbGRlciB0byBVcGxvYWRXcml0aW5nIERpcmVjdGlvbkxlZnQgdG8gUmlnaHRSaWdodCB0byBMZWZ0U2VsZWN0IEZvbGRlclNhdmUgRmlsZU9wZW4gRmlsZU9wZW4gRmlsZXNBbGwgRmlsZXNhY3RpdmF0ZWNoZWNrY2xpY2tjbGljayBhbmNlc3Rvcmp1bXBvcGVucHJlc3NzZWxlY3R1bmNoZWNrTWVudVNjcm9sbCB0byBIZXJlTGVmdCBFZGdlUmlnaHQgRWRnZVRvcEJvdHRvbVBhZ2UgVXBQYWdlIERvd25TY3JvbGwgTGVmdFNjcm9sbCBSaWdodFNjcm9sbCBVcFNjcm9sbCBEb3duRW1vamlFc2NJbnNEZWxFbmRMZWZ0IEFycm93UmlnaHQgQXJyb3dVcCBBcnJvd0Rvd24gQXJyb3dFbnRlclNwYWNlRjFGMTFCYWNrc3BhY2VDb21tYVBlcmlvZE1lZGlhIE5leHQgVHJhY2tNZWRpYSBQbGF5L1BhdXNlTWVkaWEgUHJldmlvdXMgVHJhY2tNZWRpYSBTdG9wQ3RybFNoaWZ0Q3RybCskMUFsdCskMVNoaWZ0KyQxQ29tbWFuZCskMVNlYXJjaCskMSQxIEIkMSBCL3MkMSBLQi9zJDEgTUIvcyQxIEdCL3MkMSBUQi9zJDEgUEIvc05vdGlmaWNhdGlvbiBDZW50ZXIsICQxIHVucmVhZCBub3RpZmljYXRpb25zTm90aWZpY2F0aW9uRGlzYWJsZSBub3RpZmljYXRpb25zIGZyb20gJDFFeHBhbmQgbm90aWZpY2F0aW9uQ29sbGFwc2Ugbm90aWZpY2F0aW9uIC0gJDErJDEgbW9yZSQxICUkMSBzeXN0ZW1ub3d7TUlOVVRFUywgcGx1cmFsLCA9MSB7MW19IG90aGVyIHsjbX19e0hPVVJTLCBwbHVyYWwsID0xIHsxaH0gb3RoZXIgeyNofX17REFZUywgcGx1cmFsLCA9MSB7MWR9IG90aGVyIHsjZH19e1lFQVJTLCBwbHVyYWwsID0xIHsxeX0gb3RoZXIgeyN5fX1CbG9jayBhbGwgbm90aWZpY2F0aW9ucyBmcm9tIHRoaXMgc2l0ZUJsb2NrIGFsbCBub3RpZmljYXRpb25zIGZyb20gdGhpcyBhcHBCbG9jayBhbGwgbm90aWZpY2F0aW9uc0Rvbid0IGJsb2NrTm90aWZpY2F0aW9uIGNsb3NlTm90aWZpY2F0aW9uIHNldHRpbmdzU1VHR0VTVEVEIEFQUFNGUkVRVUVOVExZIFVTRURSRUNPTU1FTkRFRCBBUFBTTU9TVCBMSUtFTFlBUFAgU1VHR0VTVElPTlNBTEwgQVBQU1VubmFtZWQgRm9sZGVyRm9sZGVyICQxT3BlbiBmb2xkZXJDbG9zZSBmb2xkZXJFeHBhbmQgdG8gYWxsIGFwcHNMYXVuY2hlciwgYWxsIGFwcHNMYXVuY2hlciwgcGFydGlhbCB2aWV3Q2xlYXIgc2VhcmNoYm94IHRleHRQYWdlICQxIG9mICQyU3RhciByYXRpbmcgJDFUbyBleGl0IGNhbGlicmF0aW9uIHByZXNzIEVzYy5DYWxpYnJhdGUgeW91ciB0b3VjaHNjcmVlblRhcCB0aGUgdG91Y2ggdGFyZ2V0cyBvbiB5b3VyIHNjcmVlbi5UYXAgaGVyZUNhbGlicmF0aW9uIGlzIGNvbXBsZXRlZFVua25vd24gRGlzcGxheUludGVybmFsIERpc3BsYXk=