<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>75765</bug_id>
          
          <creation_ts>2012-01-06 19:20:47 -0800</creation_ts>
          <short_desc>webkitpy: revamp versioning</short_desc>
          <delta_ts>2012-01-09 13:11:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>531582</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-06 19:20:47 -0800</bug_when>
    <thetext>webkitpy: revamp versioning</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531583</commentid>
    <comment_count>1</comment_count>
      <attachid>121532</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-06 19:21:17 -0800</bug_when>
    <thetext>Created attachment 121532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531584</commentid>
    <comment_count>2</comment_count>
      <attachid>121533</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-06 19:26:42 -0800</bug_when>
    <thetext>Created attachment 121533
fix ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531585</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-06 19:28:08 -0800</bug_when>
    <thetext>This code is so simple (and testing it programmatically is sufficiently annoying enough) that I&apos;ve just tested it by hand. If this approach seems reasonable but y&apos;all really want unit tests, let me know and I&apos;ll write something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531610</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-06 23:13:28 -0800</bug_when>
    <thetext>Soon we&apos;ll bump that up to &gt;= 2.6.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532460</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-01-09 13:11:02 -0800</bug_when>
    <thetext>Committed r104482: &lt;http://trac.webkit.org/changeset/104482&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121532</attachid>
            <date>2012-01-06 19:21:17 -0800</date>
            <delta_ts>2012-01-06 19:26:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75765-20120106192116.patch</filename>
            <type>text/plain</type>
            <size>27542</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MzQxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWJhZTE2YjA2ZjFjYjZmOWNiYzhkZmEzNTRjNjdkNmRl
M2MzNjkyNS4uZjAzOGQyYTY3MDliZTU1MWFjOGQxOTllY2Q1MDRiY2ZiZWUyNzYyYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDEyLTAxLTA2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHdlYmtpdHB5OiByZXZhbXAgdmVyc2lvbmluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvY2hlY2std2Via2l0LXN0eWxlOgor
ICAgICAgICAqIFNjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQ6CisgICAgICAgICogU2NyaXB0
cy9uZXctcnVuLXdlYmtpdC10ZXN0czoKKyAgICAgICAgKiBTY3JpcHRzL3JlYmFzZWxpbmUtY2hy
b21pdW0td2Via2l0LXRlc3RzOgorICAgICAgICAqIFNjcmlwdHMvdGVzdC13ZWJraXRweToKKyAg
ICAgICAgKGNvbmZpZ3VyZV9sb2dnaW5nKToKKyAgICAgICAgKGluaXQpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0LXBhdGNoOgorICAgICAgICAobWFpbik6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weToKKyAgICAgICAgKEV4ZWN1dGl2ZS5f
Y2hpbGRfcHJvY2Vzc19lbmNvZGluZyk6CisgICAgICAgIChFeGVjdXRpdmUuX3Nob3VsZF9lbmNv
ZGVfY2hpbGRfcHJvY2Vzc19hcmd1bWVudHMpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3ZlcnNpb25fY2hlY2sucHk6IENvcGllZCBmcm9tIFRvb2xzL1NjcmlwdHMvcmViYXNl
bGluZS1jaHJvbWl1bS13ZWJraXQtdGVzdHMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9weXRob24yNC9fX2luaXRfXy5weTogUmVtb3ZlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3B5dGhvbjI0L3ZlcnNpb25pbmcucHk6IFJlbW92ZWQuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9weXRob24yNC92ZXJzaW9uaW5nX3VuaXR0ZXN0LnB5
OiBSZW1vdmVkLgorCiAyMDEyLTAxLTA1ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIHdlYmtpdHB5OiBjbGVhbiB1cCB0ZXN0L3VyaSBjb252ZXJzaW9uIHJv
dXRpbmVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2NoZWNrLXdlYmtpdC1zdHlsZSBiL1Rv
b2xzL1NjcmlwdHMvY2hlY2std2Via2l0LXN0eWxlCmluZGV4IDA5OTUzODZiNThjYThlNDk1ZTMy
ZmM3NmM0ZjJiNjg5ZTZlZWEyYzcuLjU0Y2EyNzZlYWQxYWU2MzQ5ODliMzFmZmZkMTY1ZWZlNWRh
Y2QyZDAgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvY2hlY2std2Via2l0LXN0eWxlCisrKyBi
L1Rvb2xzL1NjcmlwdHMvY2hlY2std2Via2l0LXN0eWxlCkBAIC0xLDYgKzEsNiBAQAogIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCiAjCi0jIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEwIENocmlzIEplcmRvbmVrIChjaHJp
cy5qZXJkb25la0BnbWFpbC5jb20pCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzksNiArMzksOCBAQCBm
aW5kIGlzIGxlZ2l0aW1hdGVseSBhIHByb2JsZW0uIiIiCiAKIGltcG9ydCBzeXMKIAoraW1wb3J0
IHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX2NoZWNrCisKIGZyb20gd2Via2l0cHkuc3R5bGUubWFp
biBpbXBvcnQgQ2hlY2tXZWJLaXRTdHlsZQogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
bmV3LXJ1bi13ZWJraXQtaHR0cGQgYi9Ub29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LWh0dHBk
CmluZGV4IGY5MTkxMTRmYWJkNGRkMjRhZTFiMGU1ZjA2MGRkZmE5MWJmMjk1MGIuLjdkYzJiMjdj
OWUxMTY1ZTBiY2E5MDYxMjU5N2IyOWZiMWUxNGU1NTkgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQKKysrIGIvVG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtp
dC1odHRwZApAQCAtNDIsNiArNDIsOCBAQCBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGltcG9ydCB0
ZW1wZmlsZQogCitpbXBvcnQgd2Via2l0cHkuY29tbW9uLnZlcnNpb25fY2hlY2sKKwogZnJvbSB3
ZWJraXRweS5jb21tb24uaG9zdCBpbXBvcnQgSG9zdAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMuc2VydmVycyBpbXBvcnQgaHR0cF9zZXJ2ZXIKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9uZXctcnVuLXdlYmtpdC10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtdGVz
dHMKaW5kZXggYjQ5NDYzNmJhZDU3OTg0ZjJmMjE4NzQ0ZTgxNWU1ODczZDZiN2QzMy4uOGY3Y2Qw
NDNlZTU5OTZhMDhkYjgyYzk3MWNmZGNiMTAxYTk0ZDllOCAxMDA3NTUKLS0tIGEvVG9vbHMvU2Ny
aXB0cy9uZXctcnVuLXdlYmtpdC10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL25ldy1ydW4td2Vi
a2l0LXRlc3RzCkBAIC0xLDUgKzEsNSBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDYgKzMzLDggQEAgaW1wb3J0IHNpZ25hbAogaW1w
b3J0IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMKIAoraW1wb3J0IHdlYmtpdHB5LmNvbW1vbi52ZXJz
aW9uX2NoZWNrCisKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgIyBJbiBvcmRlciBm
b3IgdGhlIG11bHRpcHJvY2Vzc2luZyBtb2R1bGUgdG8gc3Bhd24gY2hpbGRyZW4gY29ycmVjdGx5
IG9uCiAgICAgIyBXaW5kb3dzLCB3ZSBuZWVkIHRvIGJlIHJ1bm5pbmcgYSBQeXRob24gbW9kdWxl
IHRoYXQgY2FuIGJlIGltcG9ydGVkCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3JlYmFzZWxp
bmUtY2hyb21pdW0td2Via2l0LXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9yZWJhc2VsaW5lLWNocm9t
aXVtLXdlYmtpdC10ZXN0cwppbmRleCBkNjMzZGI1NjA5OTNkYzg2NjQ5YjIwZDBiYTU5ZTZiZmU4
M2MzMWU1Li45NDIyZDAxNjdhOWRmODJmNDkwYWU0ZDEyMzU0OTE0ZGM3MmE2NWQ4IDEwMDc1NQot
LS0gYS9Ub29scy9TY3JpcHRzL3JlYmFzZWxpbmUtY2hyb21pdW0td2Via2l0LXRlc3RzCisrKyBi
L1Rvb2xzL1NjcmlwdHMvcmViYXNlbGluZS1jaHJvbWl1bS13ZWJraXQtdGVzdHMKQEAgLTEsNSAr
MSw1IEBACiAjIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQpAQCAtMjksNiArMjksOCBAQAogCiBpbXBvcnQgc3lzCiAKK2ltcG9ydCB3ZWJraXRweS5jb21t
b24udmVyc2lvbl9jaGVjaworCiBpbXBvcnQgd2Via2l0cHkudG9fYmVfbW92ZWQucmViYXNlbGlu
ZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3Rl
c3Qtd2Via2l0cHkgYi9Ub29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHkKaW5kZXggMDgzZmI3Nzll
YzA5MWNiNGZmNzI3ZDMxMGY5NjAyMmIxMGY5Yzk0NS4uODI2NGJmYjg3ZGNkMGUyZWQwNGNiMWVk
NGU3NmZjZDQwYTI0YjIyMiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweQpAQCAtMSwxMSArMSwxMSBAQAogIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEwIENocmlzIEplcmRvbmVrIChjamVy
ZG9uZWtAd2Via2l0Lm9yZykKICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKICMgbWV0
OgotIyAKKyMKICMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCkBAIC0xNSw3ICsxNSw3IEBA
CiAjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKICMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KICMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMgCisjCiAjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
ICMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCkBAIC0zMiwxMyArMzIsOSBAQCBpbXBvcnQgbG9nZ2luZwogaW1wb3J0
IG9zCiBpbXBvcnQgc3lzCiAKLSMgRG8gbm90IGltcG9ydCBhbnl0aGluZyBmcm9tIHdlYmtpdHB5
IHByaW9yIHRvIGNsZWFuaW5nIHdlYmtpdHB5IG9mCi0jIG9ycGhhbmVkICoucHljIGZpbGVzLiAg
VGhpcyBlbnN1cmVzIHRoYXQgbm8gb3JwaGFuZWQgKi5weWMgZmlsZXMgYXJlCi0jIGFjY2lkZW50
YWxseSBpbXBvcnRlZCBkdXJpbmcgdGhlIGNvdXJzZSBvZiB0aGlzIHNjcmlwdC4KLSMKLSMgQWxz
bywgZG8gbm90IGltcG9ydCBvciBleGVjdXRlIGFueSBQeXRob24gY29kZSBpbmNvbXBhdGlibGUg
d2l0aAotIyBQeXRob24gMi40IHVudGlsIGFmdGVyIGV4ZWN1dGlvbiBvZiB0aGUgaW5pdCgpIG1l
dGhvZCBiZWxvdy4KLQorIyBXZSBzdHJpY3RseSBsaW1pdCB3aGF0IGlzIGltcG9ydGVkIGZyb20g
d2Via2l0cHkgdW50aWwgd2UgZ2V0IGEgY2hhbmNlCisjIHRvIGRlbGV0ZSBhbnkgc3RyYXkgKi5w
eWMgZmlsZXMuCitpbXBvcnQgd2Via2l0cHkuY29tbW9uLnZlcnNpb25fY2hlY2sKIAogX2xvZyA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ0ZXN0LXdlYmtpdHB5IikKIApAQCAtNjEsOCArNTcsNiBAQCBk
ZWYgY29uZmlndXJlX2xvZ2dpbmcoaXNfdmVyYm9zZV9sb2dnaW5nKToKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9nZ2luZy5ERUJVRy4gIE90aGVyd2lzZSwgaXQgaXMgc2V0IHRvIGxvZ2dp
bmcuSU5GTy4KIAogICAgICIiIgotICAgICMgRG9uJ3QgdXNlIHRoZSBQeXRob24gdGVybmFyeSBv
cGVyYXRvciBoZXJlIHNvIHRoYXQgdGhpcyBtZXRob2Qgd2lsbAotICAgICMgd29yayB3aXRoIFB5
dGhvbiAyLjQuCiAgICAgaWYgaXNfdmVyYm9zZV9sb2dnaW5nOgogICAgICAgICBsb2dnaW5nX2xl
dmVsID0gbG9nZ2luZy5ERUJVRwogICAgIGVsc2U6CkBAIC0xOTQsMTAgKzE4OCwxMCBAQCBkZWYg
aW5pdChjb21tYW5kX2FyZ3MsIGV4dGVybmFsX3BhY2thZ2VfcGF0aHMpOgogICAgICMgYWZ0ZXIg
YW55IGZpbGUgbW92ZXMuICBPdGhlcndpc2UsIGluY29ycmVjdCBpbXBvcnQgc3RhdGVtZW50cyBj
YW4KICAgICAjIGJlIG1hc2tlZC4KICAgICAjCi0gICAgIyBGb3IgZXhhbXBsZSwgaWYgd2Via2l0
cHkvcHl0aG9uMjQvdmVyc2lvbmluZy5weSB3ZXJlIG1vdmVkIHRvIGEKKyAgICAjIEZvciBleGFt
cGxlLCBpZiB3ZWJraXRweS9jb21tb24vaG9zdC5weSB3ZXJlIG1vdmVkIHRvIGEKICAgICAjIGRp
ZmZlcmVudCBsb2NhdGlvbiB3aXRob3V0IGNoYW5naW5nIGFueSBpbXBvcnQgc3RhdGVtZW50cywg
YW5kIGlmCiAgICAgIyB0aGUgY29ycmVzcG9uZGluZyAucHljIGZpbGUgd2VyZSBsZWZ0IGJlaGlu
ZCB3aXRob3V0IGRlbGV0aW5nIGl0LAotICAgICMgdGhlbiAiaW1wb3J0IHdlYmtpdHB5LnB5dGhv
bjI0LnZlcnNpb25pbmciIHdvdWxkIGNvbnRpbnVlIHRvIHN1Y2NlZWQKKyAgICAjIHRoZW4gImlt
cG9ydCB3ZWJraXRweS5jb21tb24uaG9zdCIgd291bGQgY29udGludWUgdG8gc3VjY2VlZAogICAg
ICMgZXZlbiB0aG91Z2ggaXQgd291bGQgZmFpbCBmb3Igc29tZW9uZSBjaGVja2luZyBvdXQgYSBm
cmVzaCBjb3B5CiAgICAgIyBvZiB0aGUgc291cmNlIHRyZWUuICBUaGlzIGlzIGJlY2F1c2Ugb2Yg
YSBQeXRob24gZmVhdHVyZToKICAgICAjCkBAIC0yMTIsMTkgKzIwNiw2IEBAIGRlZiBpbml0KGNv
bW1hbmRfYXJncywgZXh0ZXJuYWxfcGFja2FnZV9wYXRocyk6CiAgICAgIyBjYXVzZSBhbiBJbXBv
cnRFcnJvciB0byBvY2N1ciBvbiBpbXBvcnQgYXMgZGVzaXJlZC4KICAgICBfY2xlYW5fcGFja2Fn
ZXNfd2l0aF90ZXN0KGV4dGVybmFsX3BhY2thZ2VfcGF0aHMpCiAKLSAgICBpbXBvcnQgd2Via2l0
cHkucHl0aG9uMjQudmVyc2lvbmluZyBhcyB2ZXJzaW9uaW5nCi0KLSAgICB2ZXJzaW9uaW5nLmNo
ZWNrX3ZlcnNpb24obG9nPV9sb2cpCi0KLSAgICAoY29tcGFyaXNvbiwgY3VycmVudF92ZXJzaW9u
LCBleHBlY3RlZF92ZXJzaW9uKSA9IFwKLSAgICAgICAgdmVyc2lvbmluZy5jb21wYXJlX3ZlcnNp
b24oKQotCi0gICAgaWYgY29tcGFyaXNvbiAhPSAwOgotICAgICAgICAjIFRoZW4gdGhlIGN1cnJl
bnQgdmVyc2lvbiBpcyBub3Qgd2hhdCB3ZSBleHBlY3QuCi0gICAgICAgIG1lc3NhZ2UgPSAoIllv
dSBhcmUgdGVzdGluZyB3ZWJraXRweSB3aXRoIFB5dGhvbiB2ZXJzaW9uICglcykgIgotICAgICAg
ICAgICAgICAgICAgICJpbnN0ZWFkIG9mIHZlcnNpb24gKCVzKSB3aGljaCB3ZSBzdXBwb3J0LiAg
UGxlYXNlIHZlcmlmeSAiCi0gICAgICAgICAgICAgICAgICAgImNoYW5nZXMgYWdhaW5zdCB2ZXJz
aW9uICglcykiICUgKGN1cnJlbnRfdmVyc2lvbiwgZXhwZWN0ZWRfdmVyc2lvbiwgZXhwZWN0ZWRf
dmVyc2lvbikpCi0gICAgICAgIF9sb2cud2FybihtZXNzYWdlKQogCiBkZWYgX3BhdGhfZnJvbV93
ZWJraXRfcm9vdCgqY29tcG9uZW50cyk6CiAgICAgd2Via2l0X3Jvb3QgPSBvcy5wYXRoLmRpcm5h
bWUob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXQtcGF0Y2ggYi9Ub29scy9TY3JpcHRzL3dlYmtpdC1wYXRj
aAppbmRleCA5MWU0YzBmOWFhNDU1ZTM1OWNiZTAxZDc0OTg3NDViZTMyYTkwODQ3Li5hOGNlNTEz
MGI0YmM3YjA1YzE5MmFkZGQzYWJkMmRiMTcxN2E0MjYwIDEwMDc1NQotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdC1wYXRjaAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdC1wYXRjaApAQCAtNyw3
ICs3LDcgQEAKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKICMgbWV0OgotIyAKKyMKICMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKICMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgogIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCkBAIC0xNyw3ICsxNyw3IEBACiAjICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKICMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KICMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMgCisjCiAjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKICMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCkBAIC0zOCwxNCArMzgsMTcgQEAgaW1wb3J0IHNpZ25hbAogaW1wb3J0IHN5cwogaW1wb3J0
IGNvZGVjcwogCitpbXBvcnQgd2Via2l0cHkuY29tbW9uLnZlcnNpb25fY2hlY2sKKworZnJvbSB3
ZWJraXRweS5jb21tb24uc3lzdGVtLmxvZ3V0aWxzIGltcG9ydCBjb25maWd1cmVfbG9nZ2luZwor
ZnJvbSB3ZWJraXRweS50b29sLm1haW4gaW1wb3J0IFdlYktpdFBhdGNoCisKICMgQnkgZGVmYXVs
dCwgc3lzLnN0ZG91dCBhc3N1bWVzIGFzY2lpIGVuY29kaW5nLiAgU2luY2Ugb3VyIG1lc3NhZ2Vz
IGNhbgogIyBjb250YWluIHVuaWNvZGUgc3RyaW5ncyAoYXMgd2l0aCBzb21lIHBlb3BsZXMnIG5h
bWVzKSB3ZSBuZWVkIHRvIGFwcGx5CiAjIHRoZSB1dGYtOCBjb2RlYyB0byBwcmV2ZW50IHRocm93
aW5nIGFuZCBleGNlcHRpb24uCiAjIE5vdCBoYXZpbmcgdGhpcyB3YXMgdGhlIGNhdXNlIG9mIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzQ1Mi4KIHN5cy5zdGRvdXQg
PSBjb2RlY3MubG9va3VwKCd1dGYtOCcpWy0xXShzeXMuc3Rkb3V0KQogCi1mcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0ubG9ndXRpbHMgaW1wb3J0IGNvbmZpZ3VyZV9sb2dnaW5nCi1pbXBvcnQg
d2Via2l0cHkucHl0aG9uMjQudmVyc2lvbmluZyBhcyB2ZXJzaW9uaW5nCiAKIF9sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcigid2Via2l0LXBhdGNoIikKIApAQCAtNTgsMTQgKzYxLDYgQEAgZGVmIG1h
aW4oKToKICAgICBlbHNlOgogICAgICAgICBsb2dnaW5nX2xldmVsID0gbG9nZ2luZy5JTkZPCiAg
ICAgY29uZmlndXJlX2xvZ2dpbmcobG9nZ2luZ19sZXZlbD1sb2dnaW5nX2xldmVsKQotCi0gICAg
dmVyc2lvbmluZy5jaGVja192ZXJzaW9uKCkKLQotICAgICMgSW1wb3J0IHdlYmtpdC1wYXRjaCBj
b2RlIG9ubHkgYWZ0ZXIgdmVyc2lvbi1jaGVja2luZyBzbyB0aGF0Ci0gICAgIyBzY3JpcHQgZG9l
c24ndCBlcnJvciBvdXQgYmVmb3JlIGhhdmluZyBhIGNoYW5jZSB0byByZXBvcnQgdGhlCi0gICAg
IyB2ZXJzaW9uIHdhcm5pbmcuCi0gICAgZnJvbSB3ZWJraXRweS50b29sLm1haW4gaW1wb3J0IFdl
YktpdFBhdGNoCi0KICAgICBXZWJLaXRQYXRjaChvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKS5t
YWluKCkKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vZXhlY3V0aXZlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZS5weQppbmRleCA1NjFkOGNhODA5YTk1ZmUzZjYwMmZkMzliNTZkYTVkZDZhNWU2Zjhh
Li4wNDgxZjA0NzI5MjNlNzQxMDAyZjA1YTU1ZGQ4ZDZlYmRhY2RkMWQ4IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkKQEAgLTQ2LDcg
KzQ2LDYgQEAgaW1wb3J0IHRpbWUKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmRlcHJl
Y2F0ZWRfbG9nZ2luZyBpbXBvcnQgdGVlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmls
ZXN5c3RlbSBpbXBvcnQgRmlsZVN5c3RlbQotZnJvbSB3ZWJraXRweS5weXRob24yNCBpbXBvcnQg
dmVyc2lvbmluZwogCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKQEAgLTQ0
NSw3ICs0NDQsNyBAQCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0KToKICAgICAgICAgIyBXaW4zMiBQ
eXRob24gMi54IHVzZXMgQ3JlYXRlUHJvY2Vzc0EgcmF0aGVyIHRoYW4gQ3JlYXRlUHJvY2Vzc1cK
ICAgICAgICAgIyB0byBsYXVuY2ggc3VicHJvY2Vzc2VzLCBzbyB3ZSBoYXZlIHRvIGVuY29kZSBh
cmd1bWVudHMgdXNpbmcgdGhlCiAgICAgICAgICMgY3VycmVudCBjb2RlIHBhZ2UuCi0gICAgICAg
IGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIGFuZCB2ZXJzaW9uaW5nLmNvbXBhcmVfdmVyc2lv
bihzeXMsICczLjAnKVswXSA8IDA6CisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzIn
IGFuZCBzeXMudmVyc2lvbiA8ICczJzoKICAgICAgICAgICAgIHJldHVybiAnbWJjcycKICAgICAg
ICAgIyBBbGwgb3RoZXIgcGxhdGZvcm1zIHVzZSBVVEYtOC4KICAgICAgICAgIyBGSVhNRTogVXNp
bmcgVVRGLTggb24gQ3lnd2luIHdpbGwgY29uZnVzZSBXaW5kb3dzLW5hdGl2ZSBjb21tYW5kcwpA
QCAtNDYyLDcgKzQ2MSw3IEBAIGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAjIFdp
bjMyIFB5dGhvbiAyLnggdXNlcyBDcmVhdGVQcm9jZXNzQSByYXRoZXIgdGhhbiBDcmVhdGVQcm9j
ZXNzVwogICAgICAgICAjIHRvIGxhdW5jaCBzdWJwcm9jZXNzZXMsIHNvIHdlIGhhdmUgdG8gZW5j
b2RlIGFyZ3VtZW50cyB1c2luZyB0aGUKICAgICAgICAgIyBjdXJyZW50IGNvZGUgcGFnZS4KLSAg
ICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMicgYW5kIHZlcnNpb25pbmcuY29tcGFyZV92
ZXJzaW9uKHN5cywgJzMuMCcpWzBdIDwgMDoKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3
aW4zMicgYW5kIHN5cy52ZXJzaW9uIDwgJzMnOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKIAog
ICAgICAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3ZlcnNpb25fY2hlY2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi92
ZXJzaW9uX2NoZWNrLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5MDYyM2QzMmZjYWQ4NmRmYTc0NDAwZjc4MGI2
N2M0ZGMzMWFmY2YKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi92ZXJzaW9uX2NoZWNrLnB5CkBAIC0wLDAgKzEsMzQgQEAKKyMhL3Vzci9iaW4vZW52IHB5
dGhvbgorIyBDb3B5cmlnaHQgKGMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1
dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBzeXMKKworaWYgc3lzLnZlcnNpb24gPCAn
Mi41JyBvciBzeXMudmVyc2lvbiA+PSAnMi44JzoKKyAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAi
VW5zdXBwb3J0ZWQgUHl0aG9uIHZlcnNpb246IFdlYktpdCBvbmx5IHN1cHBvcnRzIDIuNS54IC0g
Mi43LngsIGFuZCB5b3UncmUgcnVubmluZyAlcy4iICUgc3lzLnZlcnNpb24uc3BsaXQoKVswXQor
ICAgIHN5cy5leGl0KDEpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0
LnB5CmluZGV4IGFjYzFkMTY3YTMyMzBiMjUzMDk1ZmQ1YmRlNWQ5YWM0NjFhZjYxODUuLjBmZjVm
MjA1MjY3M2JmN2E1ZTVkYzlkNjE3NWQ0YmZmNjBkOWY3ZDUgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJr
aXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CkBAIC03MCw3ICs3MCw2IEBAIGZyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzIGltcG9ydCBwb3J0CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cyBp
bXBvcnQgcnVuX3dlYmtpdF90ZXN0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBp
bXBvcnQgUG9ydAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC50ZXN0IGltcG9ydCBU
ZXN0UG9ydCwgVGVzdERyaXZlcgotZnJvbSB3ZWJraXRweS5weXRob24yNC52ZXJzaW9uaW5nIGlt
cG9ydCBjb21wYXJlX3ZlcnNpb24KIGZyb20gd2Via2l0cHkudGVzdC5za2lwIGltcG9ydCBza2lw
X2lmCiAKIApAQCAtNzYwLDcgKzc1OSw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKE1haW5UZXN0Lmhhc190ZXN0X29mX3R5cGUo
YmF0Y2hfdGVzdHNfcnVuX2h0dHAsICdodHRwJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShN
YWluVGVzdC5oYXNfdGVzdF9vZl90eXBlKGJhdGNoX3Rlc3RzX3J1bl9odHRwLCAnd2Vic29ja2V0
JykpCiAKLU1haW5UZXN0ID0gc2tpcF9pZihNYWluVGVzdCwgc3lzLnBsYXRmb3JtID09ICdjeWd3
aW4nIGFuZCBjb21wYXJlX3ZlcnNpb24oc3lzLCAnMi42JylbMF0gPCAwLCAnbmV3LXJ1bi13ZWJr
aXQtdGVzdHMgdGVzdHMgaGFuZyBvbiBDeWd3aW4gUHl0aG9uIDIuNS4yJykKK01haW5UZXN0ID0g
c2tpcF9pZihNYWluVGVzdCwgc3lzLnBsYXRmb3JtID09ICdjeWd3aW4nIGFuZCBzeXMudmVyc2lv
biA8ICcyLjYnLCAnbmV3LXJ1bi13ZWJraXQtdGVzdHMgdGVzdHMgaGFuZyBvbiBDeWd3aW4gUHl0
aG9uIDIuNS4yJykKIAogCiBjbGFzcyBFbmRUb0VuZFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9weXRob24yNC9fX2luaXRfXy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcHl0aG9uMjQvX19pbml0X18ucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGVmNjViZWU1YmI3N2U5NmViYzdjZDljNDc2NDA2OTBmYmRhOGFj
MTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9weXRob24yNC9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLSMgUmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3Rvcnkg
Zm9yIG1vZHVsZSBmaWxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9weXRo
b24yNC92ZXJzaW9uaW5nLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9weXRob24yNC92ZXJz
aW9uaW5nLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjM5MjE3ZGZmMDRkNjI1
MmY1ODliZTFjMmE0OTYzZTlmMzUzNDY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcHl0aG9uMjQvdmVyc2lvbmlu
Zy5weQorKysgL2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAx
MCBDaHJpcyBKZXJkb25layAoY2plcmRvbmVrQHdlYmtpdC5vcmcpCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0j
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiIlN1cHBvcnRzIFB5dGhvbiB2ZXJzaW9uIGNo
ZWNraW5nLiIiIgotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IHN5cwotCi0KLV9sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi0jIFRoZSBtaW5pbXVtIFB5dGhvbiB2ZXJzaW9u
IHRoZSB3ZWJraXRweSBwYWNrYWdlIHN1cHBvcnRzLgotX01JTklNVU1fU1VQUE9SVEVEX1BZVEhP
Tl9WRVJTSU9OID0gIjIuNSIKLQotCi1kZWYgY29tcGFyZV92ZXJzaW9uKHN5c21vZHVsZT1Ob25l
LCB0YXJnZXRfdmVyc2lvbj1Ob25lKToKLSAgICAiIiJDb21wYXJlIHRoZSBjdXJyZW50IFB5dGhv
biB2ZXJzaW9uIHdpdGggYSB0YXJnZXQgdmVyc2lvbi4KLQotICAgIEFyZ3M6Ci0gICAgICBzeXNt
b2R1bGU6IEFuIG9iamVjdCB3aXRoIHZlcnNpb24gYW5kIHZlcnNpb25faW5mbyBkYXRhIGF0dHJp
YnV0ZXMKLSAgICAgICAgICAgICAgICAgdXNlZCB0byBkZXRlY3QgdGhlIGN1cnJlbnQgUHl0aG9u
IHZlcnNpb24uICBUaGUgYXR0cmlidXRlcwotICAgICAgICAgICAgICAgICBzaG91bGQgaGF2ZSB0
aGUgc2FtZSBzZW1hbnRpY3MgYXMgc3lzLnZlcnNpb24gYW5kCi0gICAgICAgICAgICAgICAgIHN5
cy52ZXJzaW9uX2luZm8uICBUaGlzIHBhcmFtZXRlciBzaG91bGQgb25seSBiZSB1c2VkCi0gICAg
ICAgICAgICAgICAgIGZvciB1bml0IHRlc3RpbmcuICBEZWZhdWx0cyB0byBzeXMuCi0gICAgICB0
YXJnZXRfdmVyc2lvbjogQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBQeXRob24gdmVyc2lvbiB0
byBjb21wYXJlCi0gICAgICAgICAgICAgICAgICAgICAgdGhlIGN1cnJlbnQgdmVyc2lvbiBhZ2Fp
bnN0LiAgVGhlIHN0cmluZyBzaG91bGQgaGF2ZQotICAgICAgICAgICAgICAgICAgICAgIG9uZSBv
ZiB0aGUgZm9sbG93aW5nIHRocmVlIGZvcm1zOiAyLCAyLjUsIG9yIDIuNS4zLgotICAgICAgICAg
ICAgICAgICAgICAgIERlZmF1bHRzIHRvIHRoZSBtaW5pbXVtIHZlcnNpb24gdGhhdCB0aGUgd2Vi
a2l0cHkKLSAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlIHN1cHBvcnRzLgotCi0gICAgUmV0
dXJuczoKLSAgICAgIEEgdHJpcGxlIG9mIChjb21wYXJpc29uLCBjdXJyZW50X3ZlcnNpb24sIHRh
cmdldF92ZXJzaW9uKS4KLQotICAgICAgY29tcGFyaXNvbjogQW4gaW50ZWdlciByZXByZXNlbnRp
bmcgdGhlIHJlc3VsdCBvZiBjb21wYXJpbmcgdGhlCi0gICAgICAgICAgICAgICAgICBjdXJyZW50
IHZlcnNpb24gd2l0aCB0aGUgdGFyZ2V0IHZlcnNpb24uICBBIHBvc2l0aXZlCi0gICAgICAgICAg
ICAgICAgICBudW1iZXIgbWVhbnMgdGhlIGN1cnJlbnQgdmVyc2lvbiBpcyBncmVhdGVyIHRoYW4g
dGhlCi0gICAgICAgICAgICAgICAgICB0YXJnZXQsIDAgbWVhbnMgdGhleSBhcmUgdGhlIHNhbWUs
IGFuZCBhIG5lZ2F0aXZlIG51bWJlcgotICAgICAgICAgICAgICAgICAgbWVhbnMgdGhlIGN1cnJl
bnQgdmVyc2lvbiBpcyBsZXNzIHRoYW4gdGhlIHRhcmdldC4KLSAgICAgICAgICAgICAgICAgICAg
ICBUaGlzIG1ldGhvZCBjb21wYXJlcyB2ZXJzaW9uIGluZm9ybWF0aW9uIG9ubHkgdXAKLSAgICAg
ICAgICAgICAgICAgIHRvIHRoZSBwcmVjaXNpb24gb2YgdGhlIGdpdmVuIHRhcmdldCB2ZXJzaW9u
LiAgRm9yCi0gICAgICAgICAgICAgICAgICBleGFtcGxlLCBpZiB0aGUgdGFyZ2V0IHZlcnNpb24g
aXMgMi42IGFuZCB0aGUgY3VycmVudAotICAgICAgICAgICAgICAgICAgdmVyc2lvbiBpcyAyLjUu
MywgdGhpcyBtZXRob2QgdXNlcyAyLjUgZm9yIHRoZSBwdXJwb3NlcwotICAgICAgICAgICAgICAg
ICAgb2YgY29tcGFyaW5nIHdpdGggdGhlIHRhcmdldC4KLSAgICAgIGN1cnJlbnRfdmVyc2lvbjog
QSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IFB5dGhvbiB2ZXJzaW9uLCBmb3IKLSAg
ICAgICAgICAgICAgICAgICAgICAgZXhhbXBsZSAyLjUuMy4KLSAgICAgIHRhcmdldF92ZXJzaW9u
OiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHZlcnNpb24gdGhhdCB0aGUgY3VycmVudAotICAg
ICAgICAgICAgICAgICAgICAgIHZlcnNpb24gd2FzIGNvbXBhcmVkIGFnYWluc3QsIGZvciBleGFt
cGxlIDIuNS4KLQotICAgICIiIgotICAgIGlmIHN5c21vZHVsZSBpcyBOb25lOgotICAgICAgICBz
eXNtb2R1bGUgPSBzeXMKLSAgICBpZiB0YXJnZXRfdmVyc2lvbiBpcyBOb25lOgotICAgICAgICB0
YXJnZXRfdmVyc2lvbiA9IF9NSU5JTVVNX1NVUFBPUlRFRF9QWVRIT05fVkVSU0lPTgotCi0gICAg
IyBUaGUgbnVtYmVyIG9mIHZlcnNpb24gcGFydHMgdG8gY29tcGFyZS4KLSAgICBwcmVjaXNpb24g
PSBsZW4odGFyZ2V0X3ZlcnNpb24uc3BsaXQoIi4iKSkKLQotICAgICMgV2UgdXNlIHN5cy52ZXJz
aW9uX2luZm8gcmF0aGVyIHRoYW4gc3lzLnZlcnNpb24gc2luY2UgaXRzIGZpcnN0Ci0gICAgIyB0
aHJlZSBlbGVtZW50cyBhcmUgZ3VhcmFudGVlZCB0byBiZSBpbnRlZ2Vycy4KLSAgICBjdXJyZW50
X3ZlcnNpb25faW5mb190b19jb21wYXJlID0gc3lzbW9kdWxlLnZlcnNpb25faW5mb1s6cHJlY2lz
aW9uXQotICAgICMgQ29udmVydCBpbnRlZ2VycyB0byBzdHJpbmdzLgotICAgIGN1cnJlbnRfdmVy
c2lvbl9pbmZvX3RvX2NvbXBhcmUgPSBtYXAoc3RyLCBjdXJyZW50X3ZlcnNpb25faW5mb190b19j
b21wYXJlKQotICAgIGN1cnJlbnRfdmVyc2lvbl90b19jb21wYXJlID0gIi4iLmpvaW4oY3VycmVu
dF92ZXJzaW9uX2luZm9fdG9fY29tcGFyZSkKLQotICAgICMgQ29tcGFyZSB2ZXJzaW9uIHN0cmlu
Z3MgbGV4aWNvZ3JhcGhpY2FsbHkuCi0gICAgaWYgY3VycmVudF92ZXJzaW9uX3RvX2NvbXBhcmUg
PiB0YXJnZXRfdmVyc2lvbjoKLSAgICAgICAgY29tcGFyaXNvbiA9IDEKLSAgICBlbGlmIGN1cnJl
bnRfdmVyc2lvbl90b19jb21wYXJlID09IHRhcmdldF92ZXJzaW9uOgotICAgICAgICBjb21wYXJp
c29uID0gMAotICAgIGVsc2U6Ci0gICAgICAgIGNvbXBhcmlzb24gPSAtMQotCi0gICAgIyBUaGUg
dmVyc2lvbiBudW1iZXIgcG9ydGlvbiBvZiB0aGUgY3VycmVudCB2ZXJzaW9uIHN0cmluZywgZm9y
Ci0gICAgIyBleGFtcGxlICIyLjYuNCIuCi0gICAgY3VycmVudF92ZXJzaW9uID0gc3lzbW9kdWxl
LnZlcnNpb24uc3BsaXQoKVswXQotCi0gICAgcmV0dXJuIChjb21wYXJpc29uLCBjdXJyZW50X3Zl
cnNpb24sIHRhcmdldF92ZXJzaW9uKQotCi0KLSMgRklYTUU6IEFkZCBhIGxvZ2dpbmcgbGV2ZWwg
cGFyYW1ldGVyIHRvIGFsbG93IHRoZSB2ZXJzaW9uIG1lc3NhZ2UKLSMgICAgICAgIHRvIGJlIGxv
Z2dlZCBhdCBsZXZlbHMgb3RoZXIgdGhhbiBXQVJOSU5HLCBmb3IgZXhhbXBsZSBDUklUSUNBTC4K
LWRlZiBjaGVja192ZXJzaW9uKGxvZz1Ob25lLCBzeXNtb2R1bGU9Tm9uZSwgdGFyZ2V0X3ZlcnNp
b249Tm9uZSk6Ci0gICAgIiIiQ2hlY2sgdGhlIGN1cnJlbnQgUHl0aG9uIHZlcnNpb24gYWdhaW5z
dCBhIHRhcmdldCB2ZXJzaW9uLgotCi0gICAgTG9ncyBhIHdhcm5pbmcgbWVzc2FnZSBpZiB0aGUg
Y3VycmVudCB2ZXJzaW9uIGlzIGxlc3MgdGhhbiB0aGUKLSAgICB0YXJnZXQgdmVyc2lvbi4KLQot
ICAgIEFyZ3M6Ci0gICAgICBsb2c6IEEgbG9nZ2luZy5sb2dnZXIgaW5zdGFuY2UgdG8gdXNlIHdo
ZW4gbG9nZ2luZyB0aGUgdmVyc2lvbiB3YXJuaW5nLgotICAgICAgICAgICBEZWZhdWx0cyB0byB0
aGUgbG9nZ2VyIG9mIHRoaXMgbW9kdWxlLgotICAgICAgc3lzbW9kdWxlOiBTZWUgdGhlIGNvbXBh
cmVfdmVyc2lvbigpIGRvY3N0cmluZy4KLSAgICAgIHRhcmdldF92ZXJzaW9uOiBTZWUgdGhlIGNv
bXBhcmVfdmVyc2lvbigpIGRvY3N0cmluZy4KLQotICAgIFJldHVybnM6Ci0gICAgICBBIGJvb2xl
YW4gdmFsdWUgb2Ygd2hldGhlciB0aGUgY3VycmVudCB2ZXJzaW9uIGlzIGdyZWF0ZXIgdGhhbgot
ICAgICAgb3IgZXF1YWwgdG8gdGhlIHRhcmdldCB2ZXJzaW9uLgotCi0gICAgIiIiCi0gICAgaWYg
bG9nIGlzIE5vbmU6Ci0gICAgICAgIGxvZyA9IF9sb2cKLQotICAgIChjb21wYXJpc29uLCBjdXJy
ZW50X3ZlcnNpb24sIHRhcmdldF92ZXJzaW9uKSA9IFwKLSAgICAgICAgY29tcGFyZV92ZXJzaW9u
KHN5c21vZHVsZSwgdGFyZ2V0X3ZlcnNpb24pCi0KLSAgICBpZiBjb21wYXJpc29uID49IDA6Ci0g
ICAgICAgICMgVGhlbiB0aGUgY3VycmVudCB2ZXJzaW9uIGlzIGF0IGxlYXN0IHRoZSBtaW5pbXVt
IHZlcnNpb24uCi0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBtZXNzYWdlID0gKCJXZWJLaXQg
UHl0aG9uIHNjcmlwdHMgZG8gbm90IHN1cHBvcnQgeW91ciBjdXJyZW50IFB5dGhvbiAiCi0gICAg
ICAgICAgICAgICAidmVyc2lvbiAoJXMpLiAgVGhlIG1pbmltdW0gc3VwcG9ydGVkIHZlcnNpb24g
aXMgJXMuXG4iCi0gICAgICAgICAgICAgICAiICBTZWUgdGhlIGZvbGxvd2luZyBwYWdlIHRvIHVw
Z3JhZGUgeW91ciBQeXRob24gdmVyc2lvbjpcblxuIgotICAgICAgICAgICAgICAgIiAgICBodHRw
Oi8vdHJhYy53ZWJraXQub3JnL3dpa2kvUHl0aG9uR3VpZGVsaW5lc1xuIgotICAgICAgICAgICAg
ICAgJSAoY3VycmVudF92ZXJzaW9uLCB0YXJnZXRfdmVyc2lvbikpCi0gICAgbG9nLndhcm4obWVz
c2FnZSkKLSAgICByZXR1cm4gRmFsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcHl0aG9uMjQvdmVyc2lvbmluZ191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcHl0aG9uMjQvdmVyc2lvbmluZ191bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjkzOWUyZDkyZDIwZjcwZmExMjAxYTE5ODIwYjg4MDZjNTRhZmUxNy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3B5dGhvbjI0L3ZlcnNpb25pbmdfdW5pdHRlc3QucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwxMzQgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNqZXJk
b25la0B3ZWJraXQub3JnKQotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6
Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi0iIiJDb250YWlucyB1bml0IHRlc3RzIGZvciB2ZXJzaW9uaW5nLnB5LiIiIgotCi1pbXBv
cnQgbG9nZ2luZwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5sb2d0ZXN0aW5nIGltcG9ydCBMb2dUZXN0aW5nCi1mcm9tIHdlYmtpdHB5LnB5dGhvbjI0LnZl
cnNpb25pbmcgaW1wb3J0IGNoZWNrX3ZlcnNpb24KLWZyb20gd2Via2l0cHkucHl0aG9uMjQudmVy
c2lvbmluZyBpbXBvcnQgY29tcGFyZV92ZXJzaW9uCi0KLWNsYXNzIE1vY2tTeXMob2JqZWN0KToK
LQotICAgICIiIkEgbW9jayBzeXMgbW9kdWxlIGZvciBwYXNzaW5nIHRvIHZlcnNpb24tY2hlY2tp
bmcgbWV0aG9kcy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjdXJyZW50X3ZlcnNpb24p
OgotICAgICAgICAiIiJDcmVhdGUgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgY3VycmVudF92ZXJz
aW9uOiBBIHZlcnNpb24gc3RyaW5nIHdpdGggbWFqb3IsIG1pbm9yLCBhbmQgbWljcm8KLSAgICAg
ICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uIHBhcnRzLgotCi0gICAgICAgICIiIgotICAgICAg
ICB2ZXJzaW9uX2luZm8gPSBjdXJyZW50X3ZlcnNpb24uc3BsaXQoIi4iKQotICAgICAgICB2ZXJz
aW9uX2luZm8gPSBtYXAoaW50LCB2ZXJzaW9uX2luZm8pCi0KLSAgICAgICAgc2VsZi52ZXJzaW9u
ID0gY3VycmVudF92ZXJzaW9uICsgIiBWZXJzaW9uIGRldGFpbHMuIgotICAgICAgICBzZWxmLnZl
cnNpb25faW5mbyA9IHZlcnNpb25faW5mbwotCi0KLWNsYXNzIENvbXBhcmVWZXJzaW9uVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICAiIiJUZXN0cyBjb21wYXJlX3ZlcnNpb24oKS4iIiIK
LQotICAgIGRlZiBfbW9ja19zeXMoc2VsZiwgY3VycmVudF92ZXJzaW9uKToKLSAgICAgICAgcmV0
dXJuIE1vY2tTeXMoY3VycmVudF92ZXJzaW9uKQotCi0gICAgZGVmIHRlc3RfZGVmYXVsdF9taW5p
bXVtX3ZlcnNpb24oc2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhlIGNvbmZpZ3VyZWQgbWluaW11
bSB2ZXJzaW9uIHRoYXQgd2Via2l0cHkgc3VwcG9ydHMuIiIiCi0gICAgICAgIChjb21wYXJpc29u
LCBjdXJyZW50X3ZlcnNpb24sIG1pbl92ZXJzaW9uKSA9IGNvbXBhcmVfdmVyc2lvbigpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1pbl92ZXJzaW9uLCAiMi41IikKLQotICAgIGRlZiBjb21w
YXJlX3ZlcnNpb24oc2VsZiwgdGFyZ2V0X3ZlcnNpb24sIGN1cnJlbnRfdmVyc2lvbj1Ob25lKToK
LSAgICAgICAgIiIiQ2FsbCBjb21wYXJlX3ZlcnNpb24oKS4iIiIKLSAgICAgICAgaWYgY3VycmVu
dF92ZXJzaW9uIGlzIE5vbmU6Ci0gICAgICAgICAgICBjdXJyZW50X3ZlcnNpb24gPSAiMi41LjMi
Ci0gICAgICAgIG1vY2tfc3lzID0gc2VsZi5fbW9ja19zeXMoY3VycmVudF92ZXJzaW9uKQotICAg
ICAgICByZXR1cm4gY29tcGFyZV92ZXJzaW9uKG1vY2tfc3lzLCB0YXJnZXRfdmVyc2lvbikKLQot
ICAgIGRlZiBjb21wYXJlKHNlbGYsIHRhcmdldF92ZXJzaW9uLCBjdXJyZW50X3ZlcnNpb249Tm9u
ZSk6Ci0gICAgICAgICIiIkNhbGwgY29tcGFyZV92ZXJzaW9uKCksIGFuZCByZXR1cm4gdGhlIGNv
bXBhcmlzb24uIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmNvbXBhcmVfdmVyc2lvbih0YXJnZXRf
dmVyc2lvbiwgY3VycmVudF92ZXJzaW9uKVswXQotCi0gICAgZGVmIHRlc3RfcmV0dXJuZWRfY3Vy
cmVudF92ZXJzaW9uKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHRoZSBjdXJyZW50X3ZlcnNpb24g
cmV0dXJuIHZhbHVlLiIiIgotICAgICAgICBjdXJyZW50X3ZlcnNpb24gPSBzZWxmLmNvbXBhcmVf
dmVyc2lvbigiMi41IilbMV0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY3VycmVudF92ZXJz
aW9uLCAiMi41LjMiKQotCi0gICAgZGVmIHRlc3RfcmV0dXJuZWRfdGFyZ2V0X3ZlcnNpb24oc2Vs
Zik6Ci0gICAgICAgICIiIlRlc3QgdGhlIGN1cnJlbnRfdmVyc2lvbiByZXR1cm4gdmFsdWUuIiIi
Ci0gICAgICAgIHRhcmdldF92ZXJzaW9uID0gc2VsZi5jb21wYXJlX3ZlcnNpb24oIjIuNSIpWzJd
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRhcmdldF92ZXJzaW9uLCAiMi41IikKLQotICAg
IGRlZiB0ZXN0X3RhcmdldF92ZXJzaW9uX21ham9yKHNlbGYpOgotICAgICAgICAiIiJUZXN0IG1h
am9yIHZlcnNpb24gZm9yIHRhcmdldC4iIiIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoLTEs
IHNlbGYuY29tcGFyZSgiMyIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygwLCBzZWxmLmNv
bXBhcmUoIjIiKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgc2VsZi5jb21wYXJlKCIy
IiwgIjMuMC4wIikpCi0KLSAgICBkZWYgdGVzdF90YXJnZXRfdmVyc2lvbl9taW5vcihzZWxmKToK
LSAgICAgICAgIiIiVGVzdCBtaW5vciB2ZXJzaW9uIGZvciB0YXJnZXQuIiIiCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKC0xLCBzZWxmLmNvbXBhcmUoIjIuNiIpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFscygwLCBzZWxmLmNvbXBhcmUoIjIuNSIpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscygxLCBzZWxmLmNvbXBhcmUoIjIuNCIpKQotCi0gICAgZGVmIHRlc3RfdGFyZ2V0X3ZlcnNp
b25fbWljcm8oc2VsZik6Ci0gICAgICAgICIiIlRlc3QgbWlub3IgdmVyc2lvbiBmb3IgdGFyZ2V0
LiIiIgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygtMSwgc2VsZi5jb21wYXJlKCIyLjUuNCIp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygwLCBzZWxmLmNvbXBhcmUoIjIuNS4zIikpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIHNlbGYuY29tcGFyZSgiMi41LjIiKSkKLQotCi1j
bGFzcyBDaGVja1ZlcnNpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgICIiIlRlc3Rz
IGNoZWNrX3ZlcnNpb24oKS4iIiIKLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2Vs
Zi5fbG9nID0gTG9nVGVzdGluZy5zZXRVcChzZWxmKQotCi0gICAgZGVmIHRlYXJEb3duKHNlbGYp
OgotICAgICAgICBzZWxmLl9sb2cudGVhckRvd24oKQotCi0gICAgZGVmIF9jaGVja192ZXJzaW9u
KHNlbGYsIG1pbmltdW1fdmVyc2lvbik6Ci0gICAgICAgICIiIkNhbGwgY2hlY2tfdmVyc2lvbigp
LiIiIgotICAgICAgICBtb2NrX3N5cyA9IE1vY2tTeXMoIjIuNS4zIikKLSAgICAgICAgcmV0dXJu
IGNoZWNrX3ZlcnNpb24oc3lzbW9kdWxlPW1vY2tfc3lzLCB0YXJnZXRfdmVyc2lvbj1taW5pbXVt
X3ZlcnNpb24pCi0KLSAgICBkZWYgdGVzdF90cnVlX3JldHVybl92YWx1ZShzZWxmKToKLSAgICAg
ICAgIiIiVGVzdCB0aGUgY29uZmlndXJlZCBtaW5pbXVtIHZlcnNpb24gdGhhdCB3ZWJraXRweSBz
dXBwb3J0cy4iIiIKLSAgICAgICAgaXNfY3VycmVudCA9IHNlbGYuX2NoZWNrX3ZlcnNpb24oIjIu
NCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFRydWUsIGlzX2N1cnJlbnQpCi0gICAgICAg
IHNlbGYuX2xvZy5hc3NlcnRNZXNzYWdlcyhbXSkgICMgTm8gd2FybmluZyB3YXMgbG9nZ2VkLgot
Ci0gICAgZGVmIHRlc3RfZmFsc2VfcmV0dXJuX3ZhbHVlKHNlbGYpOgotICAgICAgICAiIiJUZXN0
IHRoZSBjb25maWd1cmVkIG1pbmltdW0gdmVyc2lvbiB0aGF0IHdlYmtpdHB5IHN1cHBvcnRzLiIi
IgotICAgICAgICBpc19jdXJyZW50ID0gc2VsZi5fY2hlY2tfdmVyc2lvbigiMi42IikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoRmFsc2UsIGlzX2N1cnJlbnQpCi0gICAgICAgIGV4cGVjdGVk
X21lc3NhZ2UgPSAoJ1dBUk5JTkc6IFdlYktpdCBQeXRob24gc2NyaXB0cyBkbyBub3Qgc3VwcG9y
dCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3lvdXIgY3VycmVudCBQeXRob24gdmVy
c2lvbiAoMi41LjMpLiAgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUaGUgbWluaW11
bSBzdXBwb3J0ZWQgdmVyc2lvbiBpcyAyLjYuXG4gICcKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnU2VlIHRoZSBmb2xsb3dpbmcgcGFnZSB0byB1cGdyYWRlIHlvdXIgUHl0aG9uICcKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyc2lvbjpcblxuICAgICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnaHR0cDovL3RyYWMud2Via2l0Lm9yZy93aWtpL1B5dGhvbkd1aWRl
bGluZXNcblxuJykKLSAgICAgICAgc2VsZi5fbG9nLmFzc2VydE1lc3NhZ2VzKFtleHBlY3RlZF9t
ZXNzYWdlXSkKLQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121533</attachid>
            <date>2012-01-06 19:26:42 -0800</date>
            <delta_ts>2012-01-06 23:12:59 -0800</delta_ts>
            <desc>fix ChangeLog</desc>
            <filename>bug-75765-20120106192641.patch</filename>
            <type>text/plain</type>
            <size>28099</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MzQxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWJhZTE2YjA2ZjFjYjZmOWNiYzhkZmEzNTRjNjdkNmRl
M2MzNjkyNS4uNGFiNjI0YTRiYmI5OWI0MWU2MDkxMjRiNTY1ZWE1ZDY4MWYxODA4NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5
IEBACisyMDEyLTAxLTA2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIHdlYmtpdHB5OiByZXZhbXAgdmVyc2lvbiBjaGVja2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NjUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdmVyc2lvbi1jaGVja2luZyBjb2Rl
IGluIHdlYmtpdHB5L3B5dGhvbjI0L3ZlcnNpb25pbmcgc2VlbXMgcmVhbGx5CisgICAgICAgIGF3
a3dhcmQgYW5kIG92ZXJkZXNpZ25lZCwgZXNwZWNpYWxseSBzaW5jZSB3ZSBkb24ndCBzdXBwb3J0
IHB5dGhvbiAyLjQKKyAgICAgICAgYW55IG1vcmUuCisKKyAgICAgICAgSW4gYWRkaXRpb24sIEkg
YW0gdGlyZWQgb2YgZ2V0dGluZyB3YXJuaW5ncyBhYm91dCBQeXRob24gMi42IGJlaW5nICJhCisg
ICAgICAgIG5ld2VyIHJlbGVhc2UgdGhhbiB3aGF0IGlzIHN1cHBvcnRlZCIgOikuCisKKyAgICAg
ICAgSSdtIHRha2luZyBhIHBhZ2UgZnJvbSB0aGUgZGVwb3RfdG9vbHMgcHl0aG9uIGNvZGUgYW5k
IGp1c3QgY3JlYXRpbmcgYQorICAgICAgICBuZXcgd2Via2l0cHkuY29tbW9uLnZlcnNpb25fY2hl
Y2sgbW9kdWxlIHRoYXQgd2lsbCBwcmludCBhIG1lc3NhZ2Ugb24KKyAgICAgICAgc3RkZXJyIGFu
ZCBjYWxsIHN5cy5leGl0KCkgaWYgd2UncmUgcnVubmluZyBhbiB1bnN1cHBvcnRlZCB2ZXJzaW9u
LgorCisgICAgICAgICogU2NyaXB0cy9jaGVjay13ZWJraXQtc3R5bGU6CisgICAgICAgICogU2Ny
aXB0cy9uZXctcnVuLXdlYmtpdC1odHRwZDoKKyAgICAgICAgKiBTY3JpcHRzL25ldy1ydW4td2Vi
a2l0LXRlc3RzOgorICAgICAgICAqIFNjcmlwdHMvcmViYXNlbGluZS1jaHJvbWl1bS13ZWJraXQt
dGVzdHM6CisgICAgICAgICogU2NyaXB0cy90ZXN0LXdlYmtpdHB5OgorICAgICAgICAoY29uZmln
dXJlX2xvZ2dpbmcpOgorICAgICAgICAoaW5pdCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQt
cGF0Y2g6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9zeXN0ZW0vZXhlY3V0aXZlLnB5OgorICAgICAgICAoRXhlY3V0aXZlLl9jaGlsZF9wcm9jZXNz
X2VuY29kaW5nKToKKyAgICAgICAgKEV4ZWN1dGl2ZS5fc2hvdWxkX2VuY29kZV9jaGlsZF9wcm9j
ZXNzX2FyZ3VtZW50cyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vdmVyc2lv
bl9jaGVjay5weTogQ29waWVkIGZyb20gVG9vbHMvU2NyaXB0cy9yZWJhc2VsaW5lLWNocm9taXVt
LXdlYmtpdC10ZXN0cy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3B5dGhvbjI0L19faW5pdF9fLnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvcHl0aG9uMjQvdmVyc2lvbmluZy5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3B5dGhvbjI0L3ZlcnNpb25pbmdfdW5pdHRlc3QucHk6IFJlbW92ZWQuCisK
IDIwMTItMDEtMDUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgd2Via2l0cHk6IGNsZWFuIHVwIHRlc3QvdXJpIGNvbnZlcnNpb24gcm91dGluZXMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvY2hlY2std2Via2l0LXN0eWxlIGIvVG9vbHMvU2NyaXB0cy9j
aGVjay13ZWJraXQtc3R5bGUKaW5kZXggMDk5NTM4NmI1OGNhOGU0OTVlMzJmYzc2YzRmMmI2ODll
NmVlYTJjNy4uNTRjYTI3NmVhZDFhZTYzNDk4OWIzMWZmZmQxNjVlZmU1ZGFjZDJkMCAxMDA3NTUK
LS0tIGEvVG9vbHMvU2NyaXB0cy9jaGVjay13ZWJraXQtc3R5bGUKKysrIGIvVG9vbHMvU2NyaXB0
cy9jaGVjay13ZWJraXQtc3R5bGUKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBweXRo
b24KICMKLSMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIyBDb3B5cmlnaHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNocmlzLmplcmRvbmVrQGdt
YWlsLmNvbSkKICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zOSw2ICszOSw4IEBAIGZpbmQgaXMgbGVnaXRp
bWF0ZWx5IGEgcHJvYmxlbS4iIiIKIAogaW1wb3J0IHN5cwogCitpbXBvcnQgd2Via2l0cHkuY29t
bW9uLnZlcnNpb25fY2hlY2sKKwogZnJvbSB3ZWJraXRweS5zdHlsZS5tYWluIGltcG9ydCBDaGVj
a1dlYktpdFN0eWxlCiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtp
dC1odHRwZCBiL1Rvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtaHR0cGQKaW5kZXggZjkxOTEx
NGZhYmQ0ZGQyNGFlMWIwZTVmMDYwZGRmYTkxYmYyOTUwYi4uN2RjMmIyN2M5ZTExNjVlMGJjYTkw
NjEyNTk3YjI5ZmIxZTE0ZTU1OSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9uZXctcnVuLXdl
YmtpdC1odHRwZAorKysgYi9Ub29scy9TY3JpcHRzL25ldy1ydW4td2Via2l0LWh0dHBkCkBAIC00
Miw2ICs0Miw4IEBAIGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHRlbXBmaWxlCiAKK2lt
cG9ydCB3ZWJraXRweS5jb21tb24udmVyc2lvbl9jaGVjaworCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5zZXJ2ZXJzIGlt
cG9ydCBodHRwX3NlcnZlcgogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL25ldy1ydW4td2Vi
a2l0LXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9uZXctcnVuLXdlYmtpdC10ZXN0cwppbmRleCBiNDk0
NjM2YmFkNTc5ODRmMmYyMTg3NDRlODE1ZTU4NzNkNmI3ZDMzLi44ZjdjZDA0M2VlNTk5NmEwOGRi
ODJjOTcxY2ZkY2IxMDFhOTRkOWU4IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL25ldy1ydW4t
d2Via2l0LXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvbmV3LXJ1bi13ZWJraXQtdGVzdHMKQEAg
LTEsNSArMSw1IEBACiAjIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtMzMsNiArMzMsOCBAQCBpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc3VicHJvY2Vz
cwogaW1wb3J0IHN5cwogCitpbXBvcnQgd2Via2l0cHkuY29tbW9uLnZlcnNpb25fY2hlY2sKKwog
aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICAjIEluIG9yZGVyIGZvciB0aGUgbXVsdGlw
cm9jZXNzaW5nIG1vZHVsZSB0byBzcGF3biBjaGlsZHJlbiBjb3JyZWN0bHkgb24KICAgICAjIFdp
bmRvd3MsIHdlIG5lZWQgdG8gYmUgcnVubmluZyBhIFB5dGhvbiBtb2R1bGUgdGhhdCBjYW4gYmUg
aW1wb3J0ZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcmViYXNlbGluZS1jaHJvbWl1bS13
ZWJraXQtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3JlYmFzZWxpbmUtY2hyb21pdW0td2Via2l0LXRl
c3RzCmluZGV4IGQ2MzNkYjU2MDk5M2RjODY2NDliMjBkMGJhNTllNmJmZTgzYzMxZTUuLjk0MjJk
MDE2N2E5ZGY4MmY0OTBhZTRkMTIzNTQ5MTRkYzcyYTY1ZDggMTAwNzU1Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvcmViYXNlbGluZS1jaHJvbWl1bS13ZWJraXQtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0
cy9yZWJhc2VsaW5lLWNocm9taXVtLXdlYmtpdC10ZXN0cwpAQCAtMSw1ICsxLDUgQEAKICMhL3Vz
ci9iaW4vZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yOSw2ICsy
OSw4IEBACiAKIGltcG9ydCBzeXMKIAoraW1wb3J0IHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX2No
ZWNrCisKIGltcG9ydCB3ZWJraXRweS50b19iZV9tb3ZlZC5yZWJhc2VsaW5lX2Nocm9taXVtX3dl
YmtpdF90ZXN0cwogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweSBi
L1Rvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweQppbmRleCAwODNmYjc3OWVjMDkxY2I0ZmY3Mjdk
MzEwZjk2MDIyYjEwZjljOTQ1Li44MjY0YmZiODdkY2QwZTJlZDA0Y2IxZWQ0ZTc2ZmNkNDBhMjRi
MjIyIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHkKKysrIGIvVG9vbHMv
U2NyaXB0cy90ZXN0LXdlYmtpdHB5CkBAIC0xLDExICsxLDExIEBACiAjIS91c3IvYmluL2VudiBw
eXRob24KLSMgQ29weXJpZ2h0IChjKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoYykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIyBDb3B5cmlnaHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNqZXJkb25la0B3ZWJraXQu
b3JnKQogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogIyBtZXQ6Ci0jIAorIwogIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAogIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCiAjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKQEAgLTE1LDcgKzE1LDcgQEAKICMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQogIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIyAKKyMKICMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKQEAgLTMyLDEzICszMiw5IEBAIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKIGltcG9ydCBz
eXMKIAotIyBEbyBub3QgaW1wb3J0IGFueXRoaW5nIGZyb20gd2Via2l0cHkgcHJpb3IgdG8gY2xl
YW5pbmcgd2Via2l0cHkgb2YKLSMgb3JwaGFuZWQgKi5weWMgZmlsZXMuICBUaGlzIGVuc3VyZXMg
dGhhdCBubyBvcnBoYW5lZCAqLnB5YyBmaWxlcyBhcmUKLSMgYWNjaWRlbnRhbGx5IGltcG9ydGVk
IGR1cmluZyB0aGUgY291cnNlIG9mIHRoaXMgc2NyaXB0LgotIwotIyBBbHNvLCBkbyBub3QgaW1w
b3J0IG9yIGV4ZWN1dGUgYW55IFB5dGhvbiBjb2RlIGluY29tcGF0aWJsZSB3aXRoCi0jIFB5dGhv
biAyLjQgdW50aWwgYWZ0ZXIgZXhlY3V0aW9uIG9mIHRoZSBpbml0KCkgbWV0aG9kIGJlbG93Lgot
CisjIFdlIHN0cmljdGx5IGxpbWl0IHdoYXQgaXMgaW1wb3J0ZWQgZnJvbSB3ZWJraXRweSB1bnRp
bCB3ZSBnZXQgYSBjaGFuY2UKKyMgdG8gZGVsZXRlIGFueSBzdHJheSAqLnB5YyBmaWxlcy4KK2lt
cG9ydCB3ZWJraXRweS5jb21tb24udmVyc2lvbl9jaGVjawogCiBfbG9nID0gbG9nZ2luZy5nZXRM
b2dnZXIoInRlc3Qtd2Via2l0cHkiKQogCkBAIC02MSw4ICs1Nyw2IEBAIGRlZiBjb25maWd1cmVf
bG9nZ2luZyhpc192ZXJib3NlX2xvZ2dpbmcpOgogICAgICAgICAgICAgICAgICAgICAgICAgICBs
b2dnaW5nLkRFQlVHLiAgT3RoZXJ3aXNlLCBpdCBpcyBzZXQgdG8gbG9nZ2luZy5JTkZPLgogCiAg
ICAgIiIiCi0gICAgIyBEb24ndCB1c2UgdGhlIFB5dGhvbiB0ZXJuYXJ5IG9wZXJhdG9yIGhlcmUg
c28gdGhhdCB0aGlzIG1ldGhvZCB3aWxsCi0gICAgIyB3b3JrIHdpdGggUHl0aG9uIDIuNC4KICAg
ICBpZiBpc192ZXJib3NlX2xvZ2dpbmc6CiAgICAgICAgIGxvZ2dpbmdfbGV2ZWwgPSBsb2dnaW5n
LkRFQlVHCiAgICAgZWxzZToKQEAgLTE5NCwxMCArMTg4LDEwIEBAIGRlZiBpbml0KGNvbW1hbmRf
YXJncywgZXh0ZXJuYWxfcGFja2FnZV9wYXRocyk6CiAgICAgIyBhZnRlciBhbnkgZmlsZSBtb3Zl
cy4gIE90aGVyd2lzZSwgaW5jb3JyZWN0IGltcG9ydCBzdGF0ZW1lbnRzIGNhbgogICAgICMgYmUg
bWFza2VkLgogICAgICMKLSAgICAjIEZvciBleGFtcGxlLCBpZiB3ZWJraXRweS9weXRob24yNC92
ZXJzaW9uaW5nLnB5IHdlcmUgbW92ZWQgdG8gYQorICAgICMgRm9yIGV4YW1wbGUsIGlmIHdlYmtp
dHB5L2NvbW1vbi9ob3N0LnB5IHdlcmUgbW92ZWQgdG8gYQogICAgICMgZGlmZmVyZW50IGxvY2F0
aW9uIHdpdGhvdXQgY2hhbmdpbmcgYW55IGltcG9ydCBzdGF0ZW1lbnRzLCBhbmQgaWYKICAgICAj
IHRoZSBjb3JyZXNwb25kaW5nIC5weWMgZmlsZSB3ZXJlIGxlZnQgYmVoaW5kIHdpdGhvdXQgZGVs
ZXRpbmcgaXQsCi0gICAgIyB0aGVuICJpbXBvcnQgd2Via2l0cHkucHl0aG9uMjQudmVyc2lvbmlu
ZyIgd291bGQgY29udGludWUgdG8gc3VjY2VlZAorICAgICMgdGhlbiAiaW1wb3J0IHdlYmtpdHB5
LmNvbW1vbi5ob3N0IiB3b3VsZCBjb250aW51ZSB0byBzdWNjZWVkCiAgICAgIyBldmVuIHRob3Vn
aCBpdCB3b3VsZCBmYWlsIGZvciBzb21lb25lIGNoZWNraW5nIG91dCBhIGZyZXNoIGNvcHkKICAg
ICAjIG9mIHRoZSBzb3VyY2UgdHJlZS4gIFRoaXMgaXMgYmVjYXVzZSBvZiBhIFB5dGhvbiBmZWF0
dXJlOgogICAgICMKQEAgLTIxMiwxOSArMjA2LDYgQEAgZGVmIGluaXQoY29tbWFuZF9hcmdzLCBl
eHRlcm5hbF9wYWNrYWdlX3BhdGhzKToKICAgICAjIGNhdXNlIGFuIEltcG9ydEVycm9yIHRvIG9j
Y3VyIG9uIGltcG9ydCBhcyBkZXNpcmVkLgogICAgIF9jbGVhbl9wYWNrYWdlc193aXRoX3Rlc3Qo
ZXh0ZXJuYWxfcGFja2FnZV9wYXRocykKIAotICAgIGltcG9ydCB3ZWJraXRweS5weXRob24yNC52
ZXJzaW9uaW5nIGFzIHZlcnNpb25pbmcKLQotICAgIHZlcnNpb25pbmcuY2hlY2tfdmVyc2lvbihs
b2c9X2xvZykKLQotICAgIChjb21wYXJpc29uLCBjdXJyZW50X3ZlcnNpb24sIGV4cGVjdGVkX3Zl
cnNpb24pID0gXAotICAgICAgICB2ZXJzaW9uaW5nLmNvbXBhcmVfdmVyc2lvbigpCi0KLSAgICBp
ZiBjb21wYXJpc29uICE9IDA6Ci0gICAgICAgICMgVGhlbiB0aGUgY3VycmVudCB2ZXJzaW9uIGlz
IG5vdCB3aGF0IHdlIGV4cGVjdC4KLSAgICAgICAgbWVzc2FnZSA9ICgiWW91IGFyZSB0ZXN0aW5n
IHdlYmtpdHB5IHdpdGggUHl0aG9uIHZlcnNpb24gKCVzKSAiCi0gICAgICAgICAgICAgICAgICAg
Imluc3RlYWQgb2YgdmVyc2lvbiAoJXMpIHdoaWNoIHdlIHN1cHBvcnQuICBQbGVhc2UgdmVyaWZ5
ICIKLSAgICAgICAgICAgICAgICAgICAiY2hhbmdlcyBhZ2FpbnN0IHZlcnNpb24gKCVzKSIgJSAo
Y3VycmVudF92ZXJzaW9uLCBleHBlY3RlZF92ZXJzaW9uLCBleHBlY3RlZF92ZXJzaW9uKSkKLSAg
ICAgICAgX2xvZy53YXJuKG1lc3NhZ2UpCiAKIGRlZiBfcGF0aF9mcm9tX3dlYmtpdF9yb290KCpj
b21wb25lbnRzKToKICAgICB3ZWJraXRfcm9vdCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRp
cm5hbWUob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdC1wYXRjaCBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0LXBhdGNoCmluZGV4IDkxZTRj
MGY5YWE0NTVlMzU5Y2JlMDFkNzQ5ODc0NWJlMzJhOTA4NDcuLmE4Y2U1MTMwYjRiYzdiMDVjMTky
YWRkZDNhYmQyZGIxNzE3YTQyNjAgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0LXBh
dGNoCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0LXBhdGNoCkBAIC03LDcgKzcsNyBAQAogIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogIyBtZXQ6Ci0jIAorIwogIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAog
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCiAjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKQEAgLTE3LDcgKzE3LDcgQEAKICMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
IyAKKyMKICMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwogIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKQEAgLTM4LDE0
ICszOCwxNyBAQCBpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc3lzCiBpbXBvcnQgY29kZWNzCiAKK2lt
cG9ydCB3ZWJraXRweS5jb21tb24udmVyc2lvbl9jaGVjaworCitmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0ubG9ndXRpbHMgaW1wb3J0IGNvbmZpZ3VyZV9sb2dnaW5nCitmcm9tIHdlYmtpdHB5
LnRvb2wubWFpbiBpbXBvcnQgV2ViS2l0UGF0Y2gKKwogIyBCeSBkZWZhdWx0LCBzeXMuc3Rkb3V0
IGFzc3VtZXMgYXNjaWkgZW5jb2RpbmcuICBTaW5jZSBvdXIgbWVzc2FnZXMgY2FuCiAjIGNvbnRh
aW4gdW5pY29kZSBzdHJpbmdzIChhcyB3aXRoIHNvbWUgcGVvcGxlcycgbmFtZXMpIHdlIG5lZWQg
dG8gYXBwbHkKICMgdGhlIHV0Zi04IGNvZGVjIHRvIHByZXZlbnQgdGhyb3dpbmcgYW5kIGV4Y2Vw
dGlvbi4KICMgTm90IGhhdmluZyB0aGlzIHdhcyB0aGUgY2F1c2Ugb2YgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNDUyLgogc3lzLnN0ZG91dCA9IGNvZGVjcy5sb29r
dXAoJ3V0Zi04JylbLTFdKHN5cy5zdGRvdXQpCiAKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5sb2d1dGlscyBpbXBvcnQgY29uZmlndXJlX2xvZ2dpbmcKLWltcG9ydCB3ZWJraXRweS5weXRo
b24yNC52ZXJzaW9uaW5nIGFzIHZlcnNpb25pbmcKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KCJ3ZWJraXQtcGF0Y2giKQogCkBAIC01OCwxNCArNjEsNiBAQCBkZWYgbWFpbigpOgogICAgIGVs
c2U6CiAgICAgICAgIGxvZ2dpbmdfbGV2ZWwgPSBsb2dnaW5nLklORk8KICAgICBjb25maWd1cmVf
bG9nZ2luZyhsb2dnaW5nX2xldmVsPWxvZ2dpbmdfbGV2ZWwpCi0KLSAgICB2ZXJzaW9uaW5nLmNo
ZWNrX3ZlcnNpb24oKQotCi0gICAgIyBJbXBvcnQgd2Via2l0LXBhdGNoIGNvZGUgb25seSBhZnRl
ciB2ZXJzaW9uLWNoZWNraW5nIHNvIHRoYXQKLSAgICAjIHNjcmlwdCBkb2Vzbid0IGVycm9yIG91
dCBiZWZvcmUgaGF2aW5nIGEgY2hhbmNlIHRvIHJlcG9ydCB0aGUKLSAgICAjIHZlcnNpb24gd2Fy
bmluZy4KLSAgICBmcm9tIHdlYmtpdHB5LnRvb2wubWFpbiBpbXBvcnQgV2ViS2l0UGF0Y2gKLQog
ICAgIFdlYktpdFBhdGNoKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpLm1haW4oKQogCiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlLnB5Cmlu
ZGV4IDU2MWQ4Y2E4MDlhOTVmZTNmNjAyZmQzOWI1NmRhNWRkNmE1ZTZmOGEuLjA0ODFmMDQ3Mjky
M2U3NDEwMDJmMDVhNTVkZDhkNmViZGFjZGQxZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZS5weQpAQCAtNDYsNyArNDYsNiBAQCBpbXBv
cnQgdGltZQogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5n
IGltcG9ydCB0ZWUKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtIGltcG9y
dCBGaWxlU3lzdGVtCi1mcm9tIHdlYmtpdHB5LnB5dGhvbjI0IGltcG9ydCB2ZXJzaW9uaW5nCiAK
IAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQpAQCAtNDQ1LDcgKzQ0NCw3IEBA
IGNsYXNzIEV4ZWN1dGl2ZShvYmplY3QpOgogICAgICAgICAjIFdpbjMyIFB5dGhvbiAyLnggdXNl
cyBDcmVhdGVQcm9jZXNzQSByYXRoZXIgdGhhbiBDcmVhdGVQcm9jZXNzVwogICAgICAgICAjIHRv
IGxhdW5jaCBzdWJwcm9jZXNzZXMsIHNvIHdlIGhhdmUgdG8gZW5jb2RlIGFyZ3VtZW50cyB1c2lu
ZyB0aGUKICAgICAgICAgIyBjdXJyZW50IGNvZGUgcGFnZS4KLSAgICAgICAgaWYgc3lzLnBsYXRm
b3JtID09ICd3aW4zMicgYW5kIHZlcnNpb25pbmcuY29tcGFyZV92ZXJzaW9uKHN5cywgJzMuMCcp
WzBdIDwgMDoKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMicgYW5kIHN5cy52ZXJz
aW9uIDwgJzMnOgogICAgICAgICAgICAgcmV0dXJuICdtYmNzJwogICAgICAgICAjIEFsbCBvdGhl
ciBwbGF0Zm9ybXMgdXNlIFVURi04LgogICAgICAgICAjIEZJWE1FOiBVc2luZyBVVEYtOCBvbiBD
eWd3aW4gd2lsbCBjb25mdXNlIFdpbmRvd3MtbmF0aXZlIGNvbW1hbmRzCkBAIC00NjIsNyArNDYx
LDcgQEAgY2xhc3MgRXhlY3V0aXZlKG9iamVjdCk6CiAgICAgICAgICMgV2luMzIgUHl0aG9uIDIu
eCB1c2VzIENyZWF0ZVByb2Nlc3NBIHJhdGhlciB0aGFuIENyZWF0ZVByb2Nlc3NXCiAgICAgICAg
ICMgdG8gbGF1bmNoIHN1YnByb2Nlc3Nlcywgc28gd2UgaGF2ZSB0byBlbmNvZGUgYXJndW1lbnRz
IHVzaW5nIHRoZQogICAgICAgICAjIGN1cnJlbnQgY29kZSBwYWdlLgotICAgICAgICBpZiBzeXMu
cGxhdGZvcm0gPT0gJ3dpbjMyJyBhbmQgdmVyc2lvbmluZy5jb21wYXJlX3ZlcnNpb24oc3lzLCAn
My4wJylbMF0gPCAwOgorICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyBhbmQgc3lz
LnZlcnNpb24gPCAnMyc6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgICAgIHJldHVy
biBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdmVyc2lv
bl9jaGVjay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3ZlcnNpb25fY2hlY2su
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjkwNjIzZDMyZmNhZDg2ZGZhNzQ0MDBmNzgwYjY3YzRkYzMxYWZjZgot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3ZlcnNpb25f
Y2hlY2sucHkKQEAgLTAsMCArMSwzNCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENvcHly
aWdodCAoYykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisj
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworaW1wb3J0IHN5cworCitpZiBzeXMudmVyc2lvbiA8ICcyLjUnIG9yIHN5cy52
ZXJzaW9uID49ICcyLjgnOgorICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICJVbnN1cHBvcnRlZCBQ
eXRob24gdmVyc2lvbjogV2ViS2l0IG9ubHkgc3VwcG9ydHMgMi41LnggLSAyLjcueCwgYW5kIHlv
dSdyZSBydW5uaW5nICVzLiIgJSBzeXMudmVyc2lvbi5zcGxpdCgpWzBdCisgICAgc3lzLmV4aXQo
MSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93
ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkKaW5kZXggYWNj
MWQxNjdhMzIzMGIyNTMwOTVmZDViZGU1ZDlhYzQ2MWFmNjE4NS4uMGZmNWYyMDUyNjczYmY3YTVl
NWRjOWQ2MTc1ZDRiZmY2MGQ5ZjdkNSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRl
Z3JhdGlvbnRlc3QucHkKQEAgLTcwLDcgKzcwLDYgQEAgZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMgaW1wb3J0IHBvcnQKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzIGltcG9ydCBydW5fd2Vi
a2l0X3Rlc3RzCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBQb3J0CiBm
cm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LnRlc3QgaW1wb3J0IFRlc3RQb3J0LCBUZXN0
RHJpdmVyCi1mcm9tIHdlYmtpdHB5LnB5dGhvbjI0LnZlcnNpb25pbmcgaW1wb3J0IGNvbXBhcmVf
dmVyc2lvbgogZnJvbSB3ZWJraXRweS50ZXN0LnNraXAgaW1wb3J0IHNraXBfaWYKIAogCkBAIC03
NjAsNyArNzU5LDcgQEAgY2xhc3MgTWFpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLmFzc2VydFRydWUoTWFpblRlc3QuaGFzX3Rlc3Rfb2ZfdHlwZShiYXRjaF90ZXN0c19y
dW5faHR0cCwgJ2h0dHAnKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKE1haW5UZXN0Lmhhc190
ZXN0X29mX3R5cGUoYmF0Y2hfdGVzdHNfcnVuX2h0dHAsICd3ZWJzb2NrZXQnKSkKIAotTWFpblRl
c3QgPSBza2lwX2lmKE1haW5UZXN0LCBzeXMucGxhdGZvcm0gPT0gJ2N5Z3dpbicgYW5kIGNvbXBh
cmVfdmVyc2lvbihzeXMsICcyLjYnKVswXSA8IDAsICduZXctcnVuLXdlYmtpdC10ZXN0cyB0ZXN0
cyBoYW5nIG9uIEN5Z3dpbiBQeXRob24gMi41LjInKQorTWFpblRlc3QgPSBza2lwX2lmKE1haW5U
ZXN0LCBzeXMucGxhdGZvcm0gPT0gJ2N5Z3dpbicgYW5kIHN5cy52ZXJzaW9uIDwgJzIuNicsICdu
ZXctcnVuLXdlYmtpdC10ZXN0cyB0ZXN0cyBoYW5nIG9uIEN5Z3dpbiBQeXRob24gMi41LjInKQog
CiAKIGNsYXNzIEVuZFRvRW5kVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3B5dGhvbjI0L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9weXRob24yNC9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZWY2NWJlZTViYjc3ZTk2ZWJjN2NkOWM0NzY0MDY5MGZiZGE4YWMxOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3B5dGhvbjI0L19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotIyBS
ZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlIGZp
bGVzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3B5dGhvbjI0L3ZlcnNpb25p
bmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3B5dGhvbjI0L3ZlcnNpb25pbmcucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyMzkyMTdkZmYwNGQ2MjUyZjU4OWJlMWMyYTQ5
NjNlOWYzNTM0NjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9weXRob24yNC92ZXJzaW9uaW5nLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwIENocmlzIEplcmRv
bmVrIChjamVyZG9uZWtAd2Via2l0Lm9yZykKLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
IyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAot
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotIiIiU3VwcG9ydHMgUHl0aG9uIHZlcnNpb24gY2hlY2tpbmcuIiIiCi0K
LWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgc3lzCi0KLQotX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KF9fbmFtZV9fKQotCi0KLSMgVGhlIG1pbmltdW0gUHl0aG9uIHZlcnNpb24gdGhlIHdlYmtpdHB5
IHBhY2thZ2Ugc3VwcG9ydHMuCi1fTUlOSU1VTV9TVVBQT1JURURfUFlUSE9OX1ZFUlNJT04gPSAi
Mi41IgotCi0KLWRlZiBjb21wYXJlX3ZlcnNpb24oc3lzbW9kdWxlPU5vbmUsIHRhcmdldF92ZXJz
aW9uPU5vbmUpOgotICAgICIiIkNvbXBhcmUgdGhlIGN1cnJlbnQgUHl0aG9uIHZlcnNpb24gd2l0
aCBhIHRhcmdldCB2ZXJzaW9uLgotCi0gICAgQXJnczoKLSAgICAgIHN5c21vZHVsZTogQW4gb2Jq
ZWN0IHdpdGggdmVyc2lvbiBhbmQgdmVyc2lvbl9pbmZvIGRhdGEgYXR0cmlidXRlcwotICAgICAg
ICAgICAgICAgICB1c2VkIHRvIGRldGVjdCB0aGUgY3VycmVudCBQeXRob24gdmVyc2lvbi4gIFRo
ZSBhdHRyaWJ1dGVzCi0gICAgICAgICAgICAgICAgIHNob3VsZCBoYXZlIHRoZSBzYW1lIHNlbWFu
dGljcyBhcyBzeXMudmVyc2lvbiBhbmQKLSAgICAgICAgICAgICAgICAgc3lzLnZlcnNpb25faW5m
by4gIFRoaXMgcGFyYW1ldGVyIHNob3VsZCBvbmx5IGJlIHVzZWQKLSAgICAgICAgICAgICAgICAg
Zm9yIHVuaXQgdGVzdGluZy4gIERlZmF1bHRzIHRvIHN5cy4KLSAgICAgIHRhcmdldF92ZXJzaW9u
OiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIFB5dGhvbiB2ZXJzaW9uIHRvIGNvbXBhcmUKLSAg
ICAgICAgICAgICAgICAgICAgICB0aGUgY3VycmVudCB2ZXJzaW9uIGFnYWluc3QuICBUaGUgc3Ry
aW5nIHNob3VsZCBoYXZlCi0gICAgICAgICAgICAgICAgICAgICAgb25lIG9mIHRoZSBmb2xsb3dp
bmcgdGhyZWUgZm9ybXM6IDIsIDIuNSwgb3IgMi41LjMuCi0gICAgICAgICAgICAgICAgICAgICAg
RGVmYXVsdHMgdG8gdGhlIG1pbmltdW0gdmVyc2lvbiB0aGF0IHRoZSB3ZWJraXRweQotICAgICAg
ICAgICAgICAgICAgICAgIHBhY2thZ2Ugc3VwcG9ydHMuCi0KLSAgICBSZXR1cm5zOgotICAgICAg
QSB0cmlwbGUgb2YgKGNvbXBhcmlzb24sIGN1cnJlbnRfdmVyc2lvbiwgdGFyZ2V0X3ZlcnNpb24p
LgotCi0gICAgICBjb21wYXJpc29uOiBBbiBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgcmVzdWx0
IG9mIGNvbXBhcmluZyB0aGUKLSAgICAgICAgICAgICAgICAgIGN1cnJlbnQgdmVyc2lvbiB3aXRo
IHRoZSB0YXJnZXQgdmVyc2lvbi4gIEEgcG9zaXRpdmUKLSAgICAgICAgICAgICAgICAgIG51bWJl
ciBtZWFucyB0aGUgY3VycmVudCB2ZXJzaW9uIGlzIGdyZWF0ZXIgdGhhbiB0aGUKLSAgICAgICAg
ICAgICAgICAgIHRhcmdldCwgMCBtZWFucyB0aGV5IGFyZSB0aGUgc2FtZSwgYW5kIGEgbmVnYXRp
dmUgbnVtYmVyCi0gICAgICAgICAgICAgICAgICBtZWFucyB0aGUgY3VycmVudCB2ZXJzaW9uIGlz
IGxlc3MgdGhhbiB0aGUgdGFyZ2V0LgotICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbWV0aG9k
IGNvbXBhcmVzIHZlcnNpb24gaW5mb3JtYXRpb24gb25seSB1cAotICAgICAgICAgICAgICAgICAg
dG8gdGhlIHByZWNpc2lvbiBvZiB0aGUgZ2l2ZW4gdGFyZ2V0IHZlcnNpb24uICBGb3IKLSAgICAg
ICAgICAgICAgICAgIGV4YW1wbGUsIGlmIHRoZSB0YXJnZXQgdmVyc2lvbiBpcyAyLjYgYW5kIHRo
ZSBjdXJyZW50Ci0gICAgICAgICAgICAgICAgICB2ZXJzaW9uIGlzIDIuNS4zLCB0aGlzIG1ldGhv
ZCB1c2VzIDIuNSBmb3IgdGhlIHB1cnBvc2VzCi0gICAgICAgICAgICAgICAgICBvZiBjb21wYXJp
bmcgd2l0aCB0aGUgdGFyZ2V0LgotICAgICAgY3VycmVudF92ZXJzaW9uOiBBIHN0cmluZyByZXBy
ZXNlbnRpbmcgdGhlIGN1cnJlbnQgUHl0aG9uIHZlcnNpb24sIGZvcgotICAgICAgICAgICAgICAg
ICAgICAgICBleGFtcGxlIDIuNS4zLgotICAgICAgdGFyZ2V0X3ZlcnNpb246IEEgc3RyaW5nIHJl
cHJlc2VudGluZyB0aGUgdmVyc2lvbiB0aGF0IHRoZSBjdXJyZW50Ci0gICAgICAgICAgICAgICAg
ICAgICAgdmVyc2lvbiB3YXMgY29tcGFyZWQgYWdhaW5zdCwgZm9yIGV4YW1wbGUgMi41LgotCi0g
ICAgIiIiCi0gICAgaWYgc3lzbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgIHN5c21vZHVsZSA9IHN5
cwotICAgIGlmIHRhcmdldF92ZXJzaW9uIGlzIE5vbmU6Ci0gICAgICAgIHRhcmdldF92ZXJzaW9u
ID0gX01JTklNVU1fU1VQUE9SVEVEX1BZVEhPTl9WRVJTSU9OCi0KLSAgICAjIFRoZSBudW1iZXIg
b2YgdmVyc2lvbiBwYXJ0cyB0byBjb21wYXJlLgotICAgIHByZWNpc2lvbiA9IGxlbih0YXJnZXRf
dmVyc2lvbi5zcGxpdCgiLiIpKQotCi0gICAgIyBXZSB1c2Ugc3lzLnZlcnNpb25faW5mbyByYXRo
ZXIgdGhhbiBzeXMudmVyc2lvbiBzaW5jZSBpdHMgZmlyc3QKLSAgICAjIHRocmVlIGVsZW1lbnRz
IGFyZSBndWFyYW50ZWVkIHRvIGJlIGludGVnZXJzLgotICAgIGN1cnJlbnRfdmVyc2lvbl9pbmZv
X3RvX2NvbXBhcmUgPSBzeXNtb2R1bGUudmVyc2lvbl9pbmZvWzpwcmVjaXNpb25dCi0gICAgIyBD
b252ZXJ0IGludGVnZXJzIHRvIHN0cmluZ3MuCi0gICAgY3VycmVudF92ZXJzaW9uX2luZm9fdG9f
Y29tcGFyZSA9IG1hcChzdHIsIGN1cnJlbnRfdmVyc2lvbl9pbmZvX3RvX2NvbXBhcmUpCi0gICAg
Y3VycmVudF92ZXJzaW9uX3RvX2NvbXBhcmUgPSAiLiIuam9pbihjdXJyZW50X3ZlcnNpb25faW5m
b190b19jb21wYXJlKQotCi0gICAgIyBDb21wYXJlIHZlcnNpb24gc3RyaW5ncyBsZXhpY29ncmFw
aGljYWxseS4KLSAgICBpZiBjdXJyZW50X3ZlcnNpb25fdG9fY29tcGFyZSA+IHRhcmdldF92ZXJz
aW9uOgotICAgICAgICBjb21wYXJpc29uID0gMQotICAgIGVsaWYgY3VycmVudF92ZXJzaW9uX3Rv
X2NvbXBhcmUgPT0gdGFyZ2V0X3ZlcnNpb246Ci0gICAgICAgIGNvbXBhcmlzb24gPSAwCi0gICAg
ZWxzZToKLSAgICAgICAgY29tcGFyaXNvbiA9IC0xCi0KLSAgICAjIFRoZSB2ZXJzaW9uIG51bWJl
ciBwb3J0aW9uIG9mIHRoZSBjdXJyZW50IHZlcnNpb24gc3RyaW5nLCBmb3IKLSAgICAjIGV4YW1w
bGUgIjIuNi40Ii4KLSAgICBjdXJyZW50X3ZlcnNpb24gPSBzeXNtb2R1bGUudmVyc2lvbi5zcGxp
dCgpWzBdCi0KLSAgICByZXR1cm4gKGNvbXBhcmlzb24sIGN1cnJlbnRfdmVyc2lvbiwgdGFyZ2V0
X3ZlcnNpb24pCi0KLQotIyBGSVhNRTogQWRkIGEgbG9nZ2luZyBsZXZlbCBwYXJhbWV0ZXIgdG8g
YWxsb3cgdGhlIHZlcnNpb24gbWVzc2FnZQotIyAgICAgICAgdG8gYmUgbG9nZ2VkIGF0IGxldmVs
cyBvdGhlciB0aGFuIFdBUk5JTkcsIGZvciBleGFtcGxlIENSSVRJQ0FMLgotZGVmIGNoZWNrX3Zl
cnNpb24obG9nPU5vbmUsIHN5c21vZHVsZT1Ob25lLCB0YXJnZXRfdmVyc2lvbj1Ob25lKToKLSAg
ICAiIiJDaGVjayB0aGUgY3VycmVudCBQeXRob24gdmVyc2lvbiBhZ2FpbnN0IGEgdGFyZ2V0IHZl
cnNpb24uCi0KLSAgICBMb2dzIGEgd2FybmluZyBtZXNzYWdlIGlmIHRoZSBjdXJyZW50IHZlcnNp
b24gaXMgbGVzcyB0aGFuIHRoZQotICAgIHRhcmdldCB2ZXJzaW9uLgotCi0gICAgQXJnczoKLSAg
ICAgIGxvZzogQSBsb2dnaW5nLmxvZ2dlciBpbnN0YW5jZSB0byB1c2Ugd2hlbiBsb2dnaW5nIHRo
ZSB2ZXJzaW9uIHdhcm5pbmcuCi0gICAgICAgICAgIERlZmF1bHRzIHRvIHRoZSBsb2dnZXIgb2Yg
dGhpcyBtb2R1bGUuCi0gICAgICBzeXNtb2R1bGU6IFNlZSB0aGUgY29tcGFyZV92ZXJzaW9uKCkg
ZG9jc3RyaW5nLgotICAgICAgdGFyZ2V0X3ZlcnNpb246IFNlZSB0aGUgY29tcGFyZV92ZXJzaW9u
KCkgZG9jc3RyaW5nLgotCi0gICAgUmV0dXJuczoKLSAgICAgIEEgYm9vbGVhbiB2YWx1ZSBvZiB3
aGV0aGVyIHRoZSBjdXJyZW50IHZlcnNpb24gaXMgZ3JlYXRlciB0aGFuCi0gICAgICBvciBlcXVh
bCB0byB0aGUgdGFyZ2V0IHZlcnNpb24uCi0KLSAgICAiIiIKLSAgICBpZiBsb2cgaXMgTm9uZToK
LSAgICAgICAgbG9nID0gX2xvZwotCi0gICAgKGNvbXBhcmlzb24sIGN1cnJlbnRfdmVyc2lvbiwg
dGFyZ2V0X3ZlcnNpb24pID0gXAotICAgICAgICBjb21wYXJlX3ZlcnNpb24oc3lzbW9kdWxlLCB0
YXJnZXRfdmVyc2lvbikKLQotICAgIGlmIGNvbXBhcmlzb24gPj0gMDoKLSAgICAgICAgIyBUaGVu
IHRoZSBjdXJyZW50IHZlcnNpb24gaXMgYXQgbGVhc3QgdGhlIG1pbmltdW0gdmVyc2lvbi4KLSAg
ICAgICAgcmV0dXJuIFRydWUKLQotICAgIG1lc3NhZ2UgPSAoIldlYktpdCBQeXRob24gc2NyaXB0
cyBkbyBub3Qgc3VwcG9ydCB5b3VyIGN1cnJlbnQgUHl0aG9uICIKLSAgICAgICAgICAgICAgICJ2
ZXJzaW9uICglcykuICBUaGUgbWluaW11bSBzdXBwb3J0ZWQgdmVyc2lvbiBpcyAlcy5cbiIKLSAg
ICAgICAgICAgICAgICIgIFNlZSB0aGUgZm9sbG93aW5nIHBhZ2UgdG8gdXBncmFkZSB5b3VyIFB5
dGhvbiB2ZXJzaW9uOlxuXG4iCi0gICAgICAgICAgICAgICAiICAgIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvd2lraS9QeXRob25HdWlkZWxpbmVzXG4iCi0gICAgICAgICAgICAgICAlIChjdXJyZW50
X3ZlcnNpb24sIHRhcmdldF92ZXJzaW9uKSkKLSAgICBsb2cud2FybihtZXNzYWdlKQotICAgIHJl
dHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9weXRob24yNC92
ZXJzaW9uaW5nX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9weXRob24yNC92
ZXJzaW9uaW5nX3VuaXR0ZXN0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTM5
ZTJkOTJkMjBmNzBmYTEyMDFhMTk4MjBiODgwNmM1NGFmZTE3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcHl0aG9u
MjQvdmVyc2lvbmluZ191bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBA
Ci0jIENvcHlyaWdodCAoQykgMjAxMCBDaHJpcyBKZXJkb25layAoY2plcmRvbmVrQHdlYmtpdC5v
cmcpCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0j
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSIiIkNvbnRh
aW5zIHVuaXQgdGVzdHMgZm9yIHZlcnNpb25pbmcucHkuIiIiCi0KLWltcG9ydCBsb2dnaW5nCi1p
bXBvcnQgdW5pdHRlc3QKLQotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmxvZ3Rlc3Rpbmcg
aW1wb3J0IExvZ1Rlc3RpbmcKLWZyb20gd2Via2l0cHkucHl0aG9uMjQudmVyc2lvbmluZyBpbXBv
cnQgY2hlY2tfdmVyc2lvbgotZnJvbSB3ZWJraXRweS5weXRob24yNC52ZXJzaW9uaW5nIGltcG9y
dCBjb21wYXJlX3ZlcnNpb24KLQotY2xhc3MgTW9ja1N5cyhvYmplY3QpOgotCi0gICAgIiIiQSBt
b2NrIHN5cyBtb2R1bGUgZm9yIHBhc3NpbmcgdG8gdmVyc2lvbi1jaGVja2luZyBtZXRob2RzLiIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGN1cnJlbnRfdmVyc2lvbik6Ci0gICAgICAgICIi
IkNyZWF0ZSBhbiBpbnN0YW5jZS4KLQotICAgICAgICBjdXJyZW50X3ZlcnNpb246IEEgdmVyc2lv
biBzdHJpbmcgd2l0aCBtYWpvciwgbWlub3IsIGFuZCBtaWNybwotICAgICAgICAgICAgICAgICAg
ICAgICAgIHZlcnNpb24gcGFydHMuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHZlcnNpb25faW5m
byA9IGN1cnJlbnRfdmVyc2lvbi5zcGxpdCgiLiIpCi0gICAgICAgIHZlcnNpb25faW5mbyA9IG1h
cChpbnQsIHZlcnNpb25faW5mbykKLQotICAgICAgICBzZWxmLnZlcnNpb24gPSBjdXJyZW50X3Zl
cnNpb24gKyAiIFZlcnNpb24gZGV0YWlscy4iCi0gICAgICAgIHNlbGYudmVyc2lvbl9pbmZvID0g
dmVyc2lvbl9pbmZvCi0KLQotY2xhc3MgQ29tcGFyZVZlcnNpb25UZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKLQotICAgICIiIlRlc3RzIGNvbXBhcmVfdmVyc2lvbigpLiIiIgotCi0gICAgZGVmIF9t
b2NrX3N5cyhzZWxmLCBjdXJyZW50X3ZlcnNpb24pOgotICAgICAgICByZXR1cm4gTW9ja1N5cyhj
dXJyZW50X3ZlcnNpb24pCi0KLSAgICBkZWYgdGVzdF9kZWZhdWx0X21pbmltdW1fdmVyc2lvbihz
ZWxmKToKLSAgICAgICAgIiIiVGVzdCB0aGUgY29uZmlndXJlZCBtaW5pbXVtIHZlcnNpb24gdGhh
dCB3ZWJraXRweSBzdXBwb3J0cy4iIiIKLSAgICAgICAgKGNvbXBhcmlzb24sIGN1cnJlbnRfdmVy
c2lvbiwgbWluX3ZlcnNpb24pID0gY29tcGFyZV92ZXJzaW9uKCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMobWluX3ZlcnNpb24sICIyLjUiKQotCi0gICAgZGVmIGNvbXBhcmVfdmVyc2lvbihz
ZWxmLCB0YXJnZXRfdmVyc2lvbiwgY3VycmVudF92ZXJzaW9uPU5vbmUpOgotICAgICAgICAiIiJD
YWxsIGNvbXBhcmVfdmVyc2lvbigpLiIiIgotICAgICAgICBpZiBjdXJyZW50X3ZlcnNpb24gaXMg
Tm9uZToKLSAgICAgICAgICAgIGN1cnJlbnRfdmVyc2lvbiA9ICIyLjUuMyIKLSAgICAgICAgbW9j
a19zeXMgPSBzZWxmLl9tb2NrX3N5cyhjdXJyZW50X3ZlcnNpb24pCi0gICAgICAgIHJldHVybiBj
b21wYXJlX3ZlcnNpb24obW9ja19zeXMsIHRhcmdldF92ZXJzaW9uKQotCi0gICAgZGVmIGNvbXBh
cmUoc2VsZiwgdGFyZ2V0X3ZlcnNpb24sIGN1cnJlbnRfdmVyc2lvbj1Ob25lKToKLSAgICAgICAg
IiIiQ2FsbCBjb21wYXJlX3ZlcnNpb24oKSwgYW5kIHJldHVybiB0aGUgY29tcGFyaXNvbi4iIiIK
LSAgICAgICAgcmV0dXJuIHNlbGYuY29tcGFyZV92ZXJzaW9uKHRhcmdldF92ZXJzaW9uLCBjdXJy
ZW50X3ZlcnNpb24pWzBdCi0KLSAgICBkZWYgdGVzdF9yZXR1cm5lZF9jdXJyZW50X3ZlcnNpb24o
c2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhlIGN1cnJlbnRfdmVyc2lvbiByZXR1cm4gdmFsdWUu
IiIiCi0gICAgICAgIGN1cnJlbnRfdmVyc2lvbiA9IHNlbGYuY29tcGFyZV92ZXJzaW9uKCIyLjUi
KVsxXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjdXJyZW50X3ZlcnNpb24sICIyLjUuMyIp
Ci0KLSAgICBkZWYgdGVzdF9yZXR1cm5lZF90YXJnZXRfdmVyc2lvbihzZWxmKToKLSAgICAgICAg
IiIiVGVzdCB0aGUgY3VycmVudF92ZXJzaW9uIHJldHVybiB2YWx1ZS4iIiIKLSAgICAgICAgdGFy
Z2V0X3ZlcnNpb24gPSBzZWxmLmNvbXBhcmVfdmVyc2lvbigiMi41IilbMl0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHModGFyZ2V0X3ZlcnNpb24sICIyLjUiKQotCi0gICAgZGVmIHRlc3RfdGFy
Z2V0X3ZlcnNpb25fbWFqb3Ioc2VsZik6Ci0gICAgICAgICIiIlRlc3QgbWFqb3IgdmVyc2lvbiBm
b3IgdGFyZ2V0LiIiIgotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygtMSwgc2VsZi5jb21wYXJl
KCIzIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDAsIHNlbGYuY29tcGFyZSgiMiIpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBzZWxmLmNvbXBhcmUoIjIiLCAiMy4wLjAiKSkK
LQotICAgIGRlZiB0ZXN0X3RhcmdldF92ZXJzaW9uX21pbm9yKHNlbGYpOgotICAgICAgICAiIiJU
ZXN0IG1pbm9yIHZlcnNpb24gZm9yIHRhcmdldC4iIiIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoLTEsIHNlbGYuY29tcGFyZSgiMi42IikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDAs
IHNlbGYuY29tcGFyZSgiMi41IikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIHNlbGYu
Y29tcGFyZSgiMi40IikpCi0KLSAgICBkZWYgdGVzdF90YXJnZXRfdmVyc2lvbl9taWNybyhzZWxm
KToKLSAgICAgICAgIiIiVGVzdCBtaW5vciB2ZXJzaW9uIGZvciB0YXJnZXQuIiIiCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKC0xLCBzZWxmLmNvbXBhcmUoIjIuNS40IikpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKDAsIHNlbGYuY29tcGFyZSgiMi41LjMiKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoMSwgc2VsZi5jb21wYXJlKCIyLjUuMiIpKQotCi0KLWNsYXNzIENoZWNrVmVy
c2lvblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgIiIiVGVzdHMgY2hlY2tfdmVyc2lv
bigpLiIiIgotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLl9sb2cgPSBMb2dU
ZXN0aW5nLnNldFVwKHNlbGYpCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgIHNl
bGYuX2xvZy50ZWFyRG93bigpCi0KLSAgICBkZWYgX2NoZWNrX3ZlcnNpb24oc2VsZiwgbWluaW11
bV92ZXJzaW9uKToKLSAgICAgICAgIiIiQ2FsbCBjaGVja192ZXJzaW9uKCkuIiIiCi0gICAgICAg
IG1vY2tfc3lzID0gTW9ja1N5cygiMi41LjMiKQotICAgICAgICByZXR1cm4gY2hlY2tfdmVyc2lv
bihzeXNtb2R1bGU9bW9ja19zeXMsIHRhcmdldF92ZXJzaW9uPW1pbmltdW1fdmVyc2lvbikKLQot
ICAgIGRlZiB0ZXN0X3RydWVfcmV0dXJuX3ZhbHVlKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHRo
ZSBjb25maWd1cmVkIG1pbmltdW0gdmVyc2lvbiB0aGF0IHdlYmtpdHB5IHN1cHBvcnRzLiIiIgot
ICAgICAgICBpc19jdXJyZW50ID0gc2VsZi5fY2hlY2tfdmVyc2lvbigiMi40IikKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoVHJ1ZSwgaXNfY3VycmVudCkKLSAgICAgICAgc2VsZi5fbG9nLmFz
c2VydE1lc3NhZ2VzKFtdKSAgIyBObyB3YXJuaW5nIHdhcyBsb2dnZWQuCi0KLSAgICBkZWYgdGVz
dF9mYWxzZV9yZXR1cm5fdmFsdWUoc2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhlIGNvbmZpZ3Vy
ZWQgbWluaW11bSB2ZXJzaW9uIHRoYXQgd2Via2l0cHkgc3VwcG9ydHMuIiIiCi0gICAgICAgIGlz
X2N1cnJlbnQgPSBzZWxmLl9jaGVja192ZXJzaW9uKCIyLjYiKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhGYWxzZSwgaXNfY3VycmVudCkKLSAgICAgICAgZXhwZWN0ZWRfbWVzc2FnZSA9ICgn
V0FSTklORzogV2ViS2l0IFB5dGhvbiBzY3JpcHRzIGRvIG5vdCBzdXBwb3J0ICcKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAneW91ciBjdXJyZW50IFB5dGhvbiB2ZXJzaW9uICgyLjUuMyku
ICAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZSBtaW5pbXVtIHN1cHBvcnRlZCB2
ZXJzaW9uIGlzIDIuNi5cbiAgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTZWUgdGhl
IGZvbGxvd2luZyBwYWdlIHRvIHVwZ3JhZGUgeW91ciBQeXRob24gJwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICd2ZXJzaW9uOlxuXG4gICAgJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdodHRwOi8vdHJhYy53ZWJraXQub3JnL3dpa2kvUHl0aG9uR3VpZGVsaW5lc1xuXG4nKQot
ICAgICAgICBzZWxmLl9sb2cuYXNzZXJ0TWVzc2FnZXMoW2V4cGVjdGVkX21lc3NhZ2VdKQotCg==
</data>
<flag name="review"
          id="122053"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>