<?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>180408</bug_id>
          
          <creation_ts>2017-12-05 02:54:29 -0800</creation_ts>
          <short_desc>WebDriver: implement proxy support</short_desc>
          <delta_ts>2019-11-11 16:57:47 -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>WebDriver</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>berto</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1378133</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-12-05 02:54:29 -0800</bug_when>
    <thetext>https://w3c.github.io/webdriver/webdriver-spec.html#proxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394568</commentid>
    <comment_count>1</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2018-01-30 09:14:17 -0800</bug_when>
    <thetext>safaridriver work tracked by &lt;rdar://problem/36854985&gt;. For safaridriver, we&apos;d need WKWebView support for proxy settings that hook into the NSURLSession. I suppose other network stacks have similar settings to propagate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588590</commentid>
    <comment_count>2</comment_count>
      <attachid>383117</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-08 01:06:37 -0800</bug_when>
    <thetext>Created attachment 383117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588591</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-11-08 01:07:36 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588607</commentid>
    <comment_count>4</comment_count>
      <attachid>383117</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-11-08 05:06:28 -0800</bug_when>
    <thetext>Comment on attachment 383117
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=383117&amp;action=review

&gt; Source/WebDriver/WebDriverService.cpp:367
&gt; +    if (proxy.type == &quot;pac&quot;) {
&gt; +        String autoconfigURL;
&gt; +        if (!proxyObject.getString(&quot;proxyAutoconfigUrl&quot;_s, autoconfigURL))
&gt; +            return WTF::nullopt;
&gt; +
&gt; +        proxy.autoconfigURL = autoconfigURL;
&gt; +        return proxy;
&gt; +    }

This type of proxy doesn&apos;t seem to be handled.
Maybe returning an error is more according to the spec than silently accepting it and ignoring it?

&gt; Source/WebDriver/WebDriverService.cpp:415
&gt; +        if (proxyObject.getValue(&quot;socksProxy&quot;, value)) {
&gt; +            String socksProxy;
&gt; +            if (!value-&gt;asString(socksProxy))
&gt; +                return WTF::nullopt;
&gt; +
&gt; +            proxy.socksURL = URL({ }, makeString(&quot;socks://&quot;, socksProxy));
&gt; +            if (!proxy.socksURL-&gt;isValid())
&gt; +                return WTF::nullopt;
&gt; +
&gt; +            RefPtr&lt;JSON::Value&gt; socksVersionValue;
&gt; +            if (!proxyObject.getValue(&quot;socksVersion&quot;, socksVersionValue))
&gt; +                return WTF::nullopt;
&gt; +
&gt; +            auto socksVersion = unsignedValue(*socksVersionValue);
&gt; +            if (!socksVersion || socksVersion.value() &gt; 255)
&gt; +                return WTF::nullopt;
&gt; +            proxy.socksVersion = socksVersion.value();
&gt; +        }

socksVersionValue seems to be ignored when constructing socksURL.
It is true that webkit_network_proxy_settings_add_proxy_for_scheme() works with the three types of sock proxies if not a specific version is specified, but I think its better to be specific here is the user/application has requested a specific type of proxy.

This is my suggestion:
* proxy.socksURL should start with:
  - if socksVersionValue is invalid/missing or anything other than 4 or 5 -&gt; socks:// 
  - if socksVersionValue is 4 and socksURL is an IP Adresss -&gt; socks4:// 
  - if socksVersionValue is 4 and socksURL is a domain name -&gt; socks4a:// 
  - if socksVersionValue is 5 -&gt; socks5://</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588613</commentid>
    <comment_count>5</comment_count>
      <attachid>383117</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-08 06:06:04 -0800</bug_when>
    <thetext>Comment on attachment 383117
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=383117&amp;action=review

&gt;&gt; Source/WebDriver/WebDriverService.cpp:367
&gt;&gt; +    }
&gt; 
&gt; This type of proxy doesn&apos;t seem to be handled.
&gt; Maybe returning an error is more according to the spec than silently accepting it and ignoring it?

Yes, I thought about it, I&apos;ll add a way to ask platform is a particular proxy types is supported.

&gt;&gt; Source/WebDriver/WebDriverService.cpp:415
&gt;&gt; +        }
&gt; 
&gt; socksVersionValue seems to be ignored when constructing socksURL.
&gt; It is true that webkit_network_proxy_settings_add_proxy_for_scheme() works with the three types of sock proxies if not a specific version is specified, but I think its better to be specific here is the user/application has requested a specific type of proxy.
&gt; 
&gt; This is my suggestion:
&gt; * proxy.socksURL should start with:
&gt;   - if socksVersionValue is invalid/missing or anything other than 4 or 5 -&gt; socks:// 
&gt;   - if socksVersionValue is 4 and socksURL is an IP Adresss -&gt; socks4:// 
&gt;   - if socksVersionValue is 4 and socksURL is a domain name -&gt; socks4a:// 
&gt;   - if socksVersionValue is 5 -&gt; socks5://

I had no idea how to specify the socks version, I&apos;ll do what you suggest here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589153</commentid>
    <comment_count>6</comment_count>
      <attachid>383257</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-11 02:36:59 -0800</bug_when>
    <thetext>Created attachment 383257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589170</commentid>
    <comment_count>7</comment_count>
      <attachid>383257</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-11-11 05:28:12 -0800</bug_when>
    <thetext>Comment on attachment 383257
Patch

r=me. Thanks!
But before landing check build on wincairo EWS: It broke because platformSupportProxyType() is not defined there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589188</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-11 07:13:56 -0800</bug_when>
    <thetext>I forgot there&apos;s wincairo implementation of WebDriver</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589189</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-11 07:16:23 -0800</bug_when>
    <thetext>Committed r252323: &lt;https://trac.webkit.org/changeset/252323&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589378</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-11 16:57:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/57099330&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383117</attachid>
            <date>2019-11-08 01:06:37 -0800</date>
            <delta_ts>2019-11-11 02:36:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wd-proxy.diff</filename>
            <type>text/plain</type>
            <size>25823</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDg4YjZiMjBkYTA5Li5hNGQxMWI5NDlkZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMTEtMDggIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYkRyaXZl
cjogaW1wbGVtZW50IHByb3h5IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDQwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBvcHRpb25hbCBQcm94eSBzdHJ1Y3QgdG8gc2Vzc2lvbiBj
YXBhYmlsaXRpZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rv
ci5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JTZXJ2
ZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpwcm9jZXNzU2Vzc2lvbkNhcGFiaWxpdGllcyk6
CisKIDIwMTktMTEtMDYgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSByZW1uYW50cyBvZiBzdXBwb3J0IGNvZGUgZm9yIGFuIHVwd2FyZHMgZ3Jvd2luZyBz
dGFjay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3Rl
L1JlbW90ZUluc3BlY3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvUmVtb3RlSW5zcGVjdG9yLmgKaW5kZXggMTQxZTlhYjc5MGEuLmJjNDliN2VmZDkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNw
ZWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1v
dGVJbnNwZWN0b3IuaApAQCAtOTIsNiArOTIsMTUgQEAgcHVibGljOgogICAgICAgICAgICAgYm9v
bCBhY2NlcHRJbnNlY3VyZUNlcnRpZmljYXRlcyB7IGZhbHNlIH07CiAjaWYgVVNFKEdMSUIpCiAg
ICAgICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gY2VydGlmaWNhdGVz
OworICAgICAgICAgICAgc3RydWN0IFByb3h5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdHlw
ZTsKKyAgICAgICAgICAgICAgICBPcHRpb25hbDxTdHJpbmc+IGZ0cFVSTDsKKyAgICAgICAgICAg
ICAgICBPcHRpb25hbDxTdHJpbmc+IGh0dHBVUkw7CisgICAgICAgICAgICAgICAgT3B0aW9uYWw8
U3RyaW5nPiBodHRwc1VSTDsKKyAgICAgICAgICAgICAgICBPcHRpb25hbDxTdHJpbmc+IHNvY2tz
VVJMOworICAgICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGlnbm9yZUFkZHJlc3NMaXN0Owor
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIE9wdGlvbmFsPFByb3h5PiBwcm94eTsKICNlbmRp
ZgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICAgICAgT3B0aW9uYWw8Ym9vbD4gYWxsb3dJ
bnNlY3VyZU1lZGlhQ2FwdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlSW5zcGVjdG9yU2VydmVy
LmNwcAppbmRleCA0NTNlM2EwMDBiMi4uZWNkOWQ2ZTcwMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlSW5zcGVjdG9yU2VydmVy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9nbGliL1Jl
bW90ZUluc3BlY3RvclNlcnZlci5jcHAKQEAgLTEwNSw2ICsxMDUsMzcgQEAgc3RhdGljIFJlbW90
ZUluc3BlY3Rvcjo6Q2xpZW50OjpTZXNzaW9uQ2FwYWJpbGl0aWVzIHByb2Nlc3NTZXNzaW9uQ2Fw
YWJpbGl0aWVzKEcKICAgICAgICAgICAgIGNhcGFiaWxpdGllcy5jZXJ0aWZpY2F0ZXMudW5jaGVj
a2VkQXBwZW5kKHsgU3RyaW5nOjpmcm9tVVRGOChob3N0KSwgU3RyaW5nOjpmcm9tVVRGOChjZXJ0
aWZpY2F0ZUZpbGUpIH0pOwogICAgIH0KIAorICAgIGlmIChHUmVmUHRyPEdWYXJpYW50PiBwcm94
eSA9IGdfdmFyaWFudF9sb29rdXBfdmFsdWUoc2Vzc2lvbkNhcGFiaWxpdGllcywgInByb3h5Iiwg
R19WQVJJQU5UX1RZUEUoImF7c3Z9IikpKSB7CisgICAgICAgIGNhcGFiaWxpdGllcy5wcm94eSA9
IFJlbW90ZUluc3BlY3Rvcjo6Q2xpZW50OjpTZXNzaW9uQ2FwYWJpbGl0aWVzOjpQcm94eSgpOwor
CisgICAgICAgIGNvbnN0IGNoYXIqIHByb3h5VHlwZTsKKyAgICAgICAgZ192YXJpYW50X2xvb2t1
cChwcm94eS5nZXQoKSwgInR5cGUiLCAiJnMiLCAmcHJveHlUeXBlKTsKKyAgICAgICAgY2FwYWJp
bGl0aWVzLnByb3h5LT50eXBlID0gU3RyaW5nOjpmcm9tVVRGOChwcm94eVR5cGUpOworCisgICAg
ICAgIGNvbnN0IGNoYXIqIGZ0cFVSTDsKKyAgICAgICAgaWYgKGdfdmFyaWFudF9sb29rdXAocHJv
eHkuZ2V0KCksICJmdHBVUkwiLCAiJnMiLCAmZnRwVVJMKSkKKyAgICAgICAgICAgIGNhcGFiaWxp
dGllcy5wcm94eS0+ZnRwVVJMID0gU3RyaW5nOjpmcm9tVVRGOChmdHBVUkwpOworCisgICAgICAg
IGNvbnN0IGNoYXIqIGh0dHBVUkw7CisgICAgICAgIGlmIChnX3ZhcmlhbnRfbG9va3VwKHByb3h5
LmdldCgpLCAiaHR0cFVSTCIsICImcyIsICZodHRwVVJMKSkKKyAgICAgICAgICAgIGNhcGFiaWxp
dGllcy5wcm94eS0+aHR0cFVSTCA9IFN0cmluZzo6ZnJvbVVURjgoaHR0cFVSTCk7CisKKyAgICAg
ICAgY29uc3QgY2hhciogaHR0cHNVUkw7CisgICAgICAgIGlmIChnX3ZhcmlhbnRfbG9va3VwKHBy
b3h5LmdldCgpLCAiaHR0cHNVUkwiLCAiJnMiLCAmaHR0cHNVUkwpKQorICAgICAgICAgICAgY2Fw
YWJpbGl0aWVzLnByb3h5LT5odHRwc1VSTCA9IFN0cmluZzo6ZnJvbVVURjgoaHR0cHNVUkwpOwor
CisgICAgICAgIGNvbnN0IGNoYXIqIHNvY2tzVVJMOworICAgICAgICBpZiAoZ192YXJpYW50X2xv
b2t1cChwcm94eS5nZXQoKSwgInNvY2tzVVJMIiwgIiZzIiwgJnNvY2tzVVJMKSkKKyAgICAgICAg
ICAgIGNhcGFiaWxpdGllcy5wcm94eS0+c29ja3NVUkwgPSBTdHJpbmc6OmZyb21VVEY4KHNvY2tz
VVJMKTsKKworICAgICAgICBpZiAoR1JlZlB0cjxHVmFyaWFudD4gaWdub3JlQWRkcmVzc0xpc3Qg
PSBnX3ZhcmlhbnRfbG9va3VwX3ZhbHVlKHByb3h5LmdldCgpLCAiaWdub3JlQWRkcmVzc0xpc3Qi
LCBHX1ZBUklBTlRfVFlQRSgiYXMiKSkpIHsKKyAgICAgICAgICAgIGdzaXplIGlnbm9yZUFkZHJl
c3NMaXN0TGVuZ3RoOworICAgICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBpZ25vcmVBZGRyZXNz
QXJyYXkocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oZ192YXJpYW50X2dldF9zdHJ2KGlnbm9yZUFk
ZHJlc3NMaXN0LmdldCgpLCAmaWdub3JlQWRkcmVzc0xpc3RMZW5ndGgpKSk7CisgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaWdub3JlQWRkcmVzc0xpc3RMZW5ndGg7ICsraSkK
KyAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMucHJveHktPmlnbm9yZUFkZHJlc3NMaXN0LmFw
cGVuZChTdHJpbmc6OmZyb21VVEY4KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcioqPihpZ25vcmVBZGRy
ZXNzQXJyYXkuZ2V0KCkpW2ldKSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICByZXR1cm4gY2Fw
YWJpbGl0aWVzOwogfQogY29uc3QgR0RCdXNJbnRlcmZhY2VWVGFibGUgUmVtb3RlSW5zcGVjdG9y
U2VydmVyOjpzX2ludGVyZmFjZVZUYWJsZSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2
ZXIvQ2FwYWJpbGl0aWVzLmggYi9Tb3VyY2UvV2ViRHJpdmVyL0NhcGFiaWxpdGllcy5oCmluZGV4
IGRlMDg0ZjQ5NTBkLi45ZWI4N2ExNTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9D
YXBhYmlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NhcGFiaWxpdGllcy5oCkBAIC0y
OCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAt
NTMsNiArNTQsMTcgQEAgZW51bSBjbGFzcyBVbmhhbmRsZWRQcm9tcHRCZWhhdmlvciB7CiAgICAg
SWdub3JlCiB9OwogCitzdHJ1Y3QgUHJveHkgeworICAgIFN0cmluZyB0eXBlOworICAgIE9wdGlv
bmFsPFN0cmluZz4gYXV0b2NvbmZpZ1VSTDsKKyAgICBPcHRpb25hbDxVUkw+IGZ0cFVSTDsKKyAg
ICBPcHRpb25hbDxVUkw+IGh0dHBVUkw7CisgICAgT3B0aW9uYWw8VVJMPiBodHRwc1VSTDsKKyAg
ICBPcHRpb25hbDxVUkw+IHNvY2tzVVJMOworICAgIE9wdGlvbmFsPHVpbnQ4X3Q+IHNvY2tzVmVy
c2lvbjsKKyAgICBWZWN0b3I8U3RyaW5nPiBpZ25vcmVBZGRyZXNzTGlzdDsKK307CisKIHN0cnVj
dCBDYXBhYmlsaXRpZXMgewogICAgIE9wdGlvbmFsPFN0cmluZz4gYnJvd3Nlck5hbWU7CiAgICAg
T3B0aW9uYWw8U3RyaW5nPiBicm93c2VyVmVyc2lvbjsKQEAgLTYyLDYgKzc0LDcgQEAgc3RydWN0
IENhcGFiaWxpdGllcyB7CiAgICAgT3B0aW9uYWw8VGltZW91dHM+IHRpbWVvdXRzOwogICAgIE9w
dGlvbmFsPFBhZ2VMb2FkU3RyYXRlZ3k+IHBhZ2VMb2FkU3RyYXRlZ3k7CiAgICAgT3B0aW9uYWw8
VW5oYW5kbGVkUHJvbXB0QmVoYXZpb3I+IHVuaGFuZGxlZFByb21wdEJlaGF2aW9yOworICAgIE9w
dGlvbmFsPFByb3h5PiBwcm94eTsKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkK
ICAgICBPcHRpb25hbDxTdHJpbmc+IGJyb3dzZXJCaW5hcnk7CiAgICAgT3B0aW9uYWw8VmVjdG9y
PFN0cmluZz4+IGJyb3dzZXJBcmd1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCmluZGV4IDU4ODFkM2YxNDEy
Li4wYjIxMDVjNTc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMS0w
OCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAg
V2ViRHJpdmVyOiBpbXBsZW1lbnQgcHJveHkgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGFuZGxlIHByb3h5IG9iamVjdCBpbiBjYXBhYmls
aXRpZXMuCisKKyAgICAgICAgKiBDYXBhYmlsaXRpZXMuaDogQWRkIFByb3h5IHN0cnVjdC4KKyAg
ICAgICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6ZGVzZXJp
YWxpemVQcm94eSk6IERlc2VyaWFsaXplIHRoZSBwcm94eSBmcm9tIGNhcGFiaWxpdGllcy4KKyAg
ICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6cGFyc2VDYXBhYmlsaXRpZXMgY29u
c3QpOiBHZXQgdGhlIGRlc2VyaWFsaXplZCBwcm94eS4KKyAgICAgICAgKFdlYkRyaXZlcjo6V2Vi
RHJpdmVyU2VydmljZTo6dmFsaWRhdGVkQ2FwYWJpbGl0aWVzIGNvbnN0KTogRW5zdXJlIHByb3h5
IG9iamVjdCBpcyB2YWxpZC4KKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6
bWF0Y2hDYXBhYmlsaXRpZXMgY29uc3QpOiBXZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nIGhl
cmUgZm9yIHByb3h5IG9iamVjdC4KKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2Vydmlj
ZTo6Y3JlYXRlU2Vzc2lvbik6IE9ubHkgc2V0IGFuIGVtcHB0eSBwcm94eSBvYmplY3QgaW4gY2Fw
YWJpbGl0aWVzIGlmIHdlIGRvbid0IGhhdmUgYQorICAgICAgICBkZXNlcmlhbGl6ZWQgcHJveHku
CisgICAgICAgICogZ2xpYi9TZXNzaW9uSG9zdEdsaWIuY3BwOgorICAgICAgICAoV2ViRHJpdmVy
OjpTZXNzaW9uSG9zdDo6YnVpbGRTZXNzaW9uQ2FwYWJpbGl0aWVzIGNvbnN0KTogU2VuZCB0aGUg
cHJveHkgc2V0dGluZ3MgdG8gdGhlIGJyb3dzZXIuCisKIDIwMTktMTEtMDcgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFdlYkRyaXZlcjogaW1w
bGVtZW50IGdldCBwYWdlIHNvdXJjZSBjb21tYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJp
dmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2
aWNlLmNwcAppbmRleCA4OTc4NTBlMGM1Zi4uMTZmZGQyZGZhMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9X
ZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtMzQ2LDYgKzM0Niw5NCBAQCBzdGF0aWMgT3B0aW9uYWw8
VGltZW91dHM+IGRlc2VyaWFsaXplVGltZW91dHMoSlNPTjo6T2JqZWN0JiB0aW1lb3V0c09iamVj
dCkKICAgICByZXR1cm4gdGltZW91dHM7CiB9CiAKK3N0YXRpYyBPcHRpb25hbDxQcm94eT4gZGVz
ZXJpYWxpemVQcm94eShKU09OOjpPYmplY3QmIHByb3h5T2JqZWN0KQoreworICAgIC8vIMKnNy4x
IFByb3h5LgorICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvI3Byb3h5Cisg
ICAgUHJveHkgcHJveHk7CisgICAgaWYgKCFwcm94eU9iamVjdC5nZXRTdHJpbmcoInByb3h5VHlw
ZSJfcywgcHJveHkudHlwZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBp
ZiAocHJveHkudHlwZSA9PSAiZGlyZWN0IiB8fCBwcm94eS50eXBlID09ICJhdXRvZGV0ZWN0IiB8
fCBwcm94eS50eXBlID09ICJzeXN0ZW0iKQorICAgICAgICByZXR1cm4gcHJveHk7CisKKyAgICBp
ZiAocHJveHkudHlwZSA9PSAicGFjIikgeworICAgICAgICBTdHJpbmcgYXV0b2NvbmZpZ1VSTDsK
KyAgICAgICAgaWYgKCFwcm94eU9iamVjdC5nZXRTdHJpbmcoInByb3h5QXV0b2NvbmZpZ1VybCJf
cywgYXV0b2NvbmZpZ1VSTCkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgICAgIHByb3h5LmF1dG9jb25maWdVUkwgPSBhdXRvY29uZmlnVVJMOworICAgICAgICByZXR1
cm4gcHJveHk7CisgICAgfQorCisgICAgaWYgKHByb3h5LnR5cGUgPT0gIm1hbnVhbCIpIHsKKyAg
ICAgICAgUmVmUHRyPEpTT046OlZhbHVlPiB2YWx1ZTsKKyAgICAgICAgaWYgKHByb3h5T2JqZWN0
LmdldFZhbHVlKCJmdHBQcm94eSJfcywgdmFsdWUpKSB7CisgICAgICAgICAgICBTdHJpbmcgZnRw
UHJveHk7CisgICAgICAgICAgICBpZiAoIXZhbHVlLT5hc1N0cmluZyhmdHBQcm94eSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICAgICAgcHJveHkuZnRw
VVJMID0gVVJMKHsgfSwgbWFrZVN0cmluZygiZnRwOi8vIiwgZnRwUHJveHkpKTsKKyAgICAgICAg
ICAgIGlmICghcHJveHkuZnRwVVJMLT5pc1ZhbGlkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJveHlPYmplY3QuZ2V0VmFs
dWUoImh0dHBQcm94eSJfcywgdmFsdWUpKSB7CisgICAgICAgICAgICBTdHJpbmcgaHR0cFByb3h5
OworICAgICAgICAgICAgaWYgKCF2YWx1ZS0+YXNTdHJpbmcoaHR0cFByb3h5KSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgICAgICBwcm94eS5odHRwVVJM
ID0gVVJMKHsgfSwgbWFrZVN0cmluZygiaHR0cDovLyIsIGh0dHBQcm94eSkpOworICAgICAgICAg
ICAgaWYgKCFwcm94eS5odHRwVVJMLT5pc1ZhbGlkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICAgICAgfQorICAgICAgICBpZiAocHJveHlPYmplY3QuZ2V0VmFs
dWUoInNzbFByb3h5Il9zLCB2YWx1ZSkpIHsKKyAgICAgICAgICAgIFN0cmluZyBzc2xQcm94eTsK
KyAgICAgICAgICAgIGlmICghdmFsdWUtPmFzU3RyaW5nKHNzbFByb3h5KSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgICAgICBwcm94eS5odHRwc1VSTCA9
IFVSTCh7IH0sIG1ha2VTdHJpbmcoImh0dHBzOi8vIiwgc3NsUHJveHkpKTsKKyAgICAgICAgICAg
IGlmICghcHJveHkuaHR0cHNVUkwtPmlzVmFsaWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgICAgICB9CisgICAgICAgIGlmIChwcm94eU9iamVjdC5nZXRWYWx1
ZSgic29ja3NQcm94eSIsIHZhbHVlKSkgeworICAgICAgICAgICAgU3RyaW5nIHNvY2tzUHJveHk7
CisgICAgICAgICAgICBpZiAoIXZhbHVlLT5hc1N0cmluZyhzb2Nrc1Byb3h5KSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgICAgICBwcm94eS5zb2Nrc1VS
TCA9IFVSTCh7IH0sIG1ha2VTdHJpbmcoInNvY2tzOi8vIiwgc29ja3NQcm94eSkpOworICAgICAg
ICAgICAgaWYgKCFwcm94eS5zb2Nrc1VSTC0+aXNWYWxpZCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIFJlZlB0cjxKU09OOjpWYWx1ZT4gc29j
a3NWZXJzaW9uVmFsdWU7CisgICAgICAgICAgICBpZiAoIXByb3h5T2JqZWN0LmdldFZhbHVlKCJz
b2Nrc1ZlcnNpb24iLCBzb2Nrc1ZlcnNpb25WYWx1ZSkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgICAgICAgICAgYXV0byBzb2Nrc1ZlcnNpb24gPSB1bnNpZ25l
ZFZhbHVlKCpzb2Nrc1ZlcnNpb25WYWx1ZSk7CisgICAgICAgICAgICBpZiAoIXNvY2tzVmVyc2lv
biB8fCBzb2Nrc1ZlcnNpb24udmFsdWUoKSA+IDI1NSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgICAgICAgICAgcHJveHkuc29ja3NWZXJzaW9uID0gc29ja3NWZXJz
aW9uLnZhbHVlKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb3h5T2JqZWN0LmdldFZhbHVl
KCJub1Byb3h5Il9zLCB2YWx1ZSkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxKU09OOjpBcnJheT4g
bm9Qcm94eTsKKyAgICAgICAgICAgIGlmICghdmFsdWUtPmFzQXJyYXkobm9Qcm94eSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICAgICAgYXV0byBub1By
b3h5TGVuZ3RoID0gbm9Qcm94eS0+bGVuZ3RoKCk7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbm9Qcm94eUxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgUmVmUHRy
PEpTT046OlZhbHVlPiBhZGRyZXNzVmFsdWUgPSBub1Byb3h5LT5nZXQoaSk7CisgICAgICAgICAg
ICAgICAgU3RyaW5nIGFkZHJlc3M7CisgICAgICAgICAgICAgICAgaWYgKCFhZGRyZXNzVmFsdWUt
PmFzU3RyaW5nKGFkZHJlc3MpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworICAgICAgICAgICAgICAgIHByb3h5Lmlnbm9yZUFkZHJlc3NMaXN0LmFwcGVuZChXVEZN
b3ZlKGFkZHJlc3MpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVy
biBwcm94eTsKKyAgICB9CisKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiBzdGF0aWMg
T3B0aW9uYWw8UGFnZUxvYWRTdHJhdGVneT4gZGVzZXJpYWxpemVQYWdlTG9hZFN0cmF0ZWd5KGNv
bnN0IFN0cmluZyYgcGFnZUxvYWRTdHJhdGVneSkKIHsKICAgICBpZiAocGFnZUxvYWRTdHJhdGVn
eSA9PSAibm9uZSIpCkBAIC0zOTAsNiArNDc4LDkgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpw
YXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmIG1hdGNoZWRDYXBhYmlsaXRpZXMK
ICAgICBTdHJpbmcgcGxhdGZvcm1OYW1lOwogICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVzLmdl
dFN0cmluZygicGxhdGZvcm1OYW1lIl9zLCBwbGF0Zm9ybU5hbWUpKQogICAgICAgICBjYXBhYmls
aXRpZXMucGxhdGZvcm1OYW1lID0gcGxhdGZvcm1OYW1lOworICAgIFJlZlB0cjxKU09OOjpPYmpl
Y3Q+IHByb3h5OworICAgIGlmIChtYXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9iamVjdCgicHJveHki
X3MsIHByb3h5KSkKKyAgICAgICAgY2FwYWJpbGl0aWVzLnByb3h5ID0gZGVzZXJpYWxpemVQcm94
eSgqcHJveHkpOwogICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHRpbWVvdXRzOwogICAgIGlmICht
YXRjaGVkQ2FwYWJpbGl0aWVzLmdldE9iamVjdCgidGltZW91dHMiX3MsIHRpbWVvdXRzKSkKICAg
ICAgICAgY2FwYWJpbGl0aWVzLnRpbWVvdXRzID0gZGVzZXJpYWxpemVUaW1lb3V0cygqdGltZW91
dHMpOwpAQCAtNDQzLDcgKzUzNCwxMCBAQCBSZWZQdHI8SlNPTjo6T2JqZWN0PiBXZWJEcml2ZXJT
ZXJ2aWNlOjp2YWxpZGF0ZWRDYXBhYmlsaXRpZXMoY29uc3QgSlNPTjo6T2JqZWN0JgogICAgICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgcmVzdWx0LT5zZXRTdHJpbmco
aXQtPmtleSwgcGFnZUxvYWRTdHJhdGVneSk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXQtPmtleSA9
PSAicHJveHkiKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IHByb3h5IHN1cHBv
cnQuCisgICAgICAgICAgICBSZWZQdHI8SlNPTjo6T2JqZWN0PiBwcm94eTsKKyAgICAgICAgICAg
IGlmICghaXQtPnZhbHVlLT5hc09iamVjdChwcm94eSkgfHwgIWRlc2VyaWFsaXplUHJveHkoKnBy
b3h5KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgICAgIHJlc3Vs
dC0+c2V0VmFsdWUoaXQtPmtleSwgUmVmUHRyPEpTT046OlZhbHVlPihpdC0+dmFsdWUpKTsKICAg
ICAgICAgfSBlbHNlIGlmIChpdC0+a2V5ID09ICJ0aW1lb3V0cyIpIHsKICAgICAgICAgICAgIFJl
ZlB0cjxKU09OOjpPYmplY3Q+IHRpbWVvdXRzOwogICAgICAgICAgICAgaWYgKCFpdC0+dmFsdWUt
PmFzT2JqZWN0KHRpbWVvdXRzKSB8fCAhZGVzZXJpYWxpemVUaW1lb3V0cygqdGltZW91dHMpKQpA
QCAtNTIyLDggKzYxNiw2IEBAIFJlZlB0cjxKU09OOjpPYmplY3Q+IFdlYkRyaXZlclNlcnZpY2U6
Om1hdGNoQ2FwYWJpbGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWVyCiAgICAgICAgICAgICBp
dC0+dmFsdWUtPmFzQm9vbGVhbihhY2NlcHRJbnNlY3VyZUNlcnRzKTsKICAgICAgICAgICAgIGlm
IChhY2NlcHRJbnNlY3VyZUNlcnRzICYmICFwbGF0Zm9ybUNhcGFiaWxpdGllcy5hY2NlcHRJbnNl
Y3VyZUNlcnRzLnZhbHVlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgIH0gZWxzZSBpZiAoaXQtPmtleSA9PSAicHJveHkiKSB7Ci0gICAgICAgICAgICAvLyBGSVhN
RTogaW1wbGVtZW50IHByb3h5IHN1cHBvcnQuCiAgICAgICAgIH0gZWxzZSBpZiAoIXBsYXRmb3Jt
TWF0Y2hDYXBhYmlsaXR5KGl0LT5rZXksIGl0LT52YWx1ZSkpCiAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAgICAgbWF0Y2hlZENhcGFiaWxpdGllcy0+c2V0VmFsdWUoaXQtPmtleSwg
UmVmUHRyPEpTT046OlZhbHVlPihpdC0+dmFsdWUpKTsKQEAgLTcyOSw4ICs4MjEsOCBAQCB2b2lk
IFdlYkRyaXZlclNlcnZpY2U6OmNyZWF0ZVNlc3Npb24oVmVjdG9yPENhcGFiaWxpdGllcz4mJiBj
YXBhYmlsaXRpZXNMaXN0LCBzdAogICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllc09iamVjdC0+
c2V0U3RyaW5nKCJwYWdlTG9hZFN0cmF0ZWd5Il9zLCAiZWFnZXIiKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQg
cHJveHkgc3VwcG9ydC4KLSAgICAgICAgICAgIGNhcGFiaWxpdGllc09iamVjdC0+c2V0T2JqZWN0
KCJwcm94eSJfcywgSlNPTjo6T2JqZWN0OjpjcmVhdGUoKSk7CisgICAgICAgICAgICBpZiAoIWNh
cGFiaWxpdGllcy5wcm94eSkKKyAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXNPYmplY3QtPnNl
dE9iamVjdCgicHJveHkiX3MsIEpTT046Ok9iamVjdDo6Y3JlYXRlKCkpOwogICAgICAgICAgICAg
UmVmUHRyPEpTT046Ok9iamVjdD4gdGltZW91dHNPYmplY3QgPSBKU09OOjpPYmplY3Q6OmNyZWF0
ZSgpOwogICAgICAgICAgICAgdGltZW91dHNPYmplY3QtPnNldEludGVnZXIoInNjcmlwdCJfcywg
bV9zZXNzaW9uLT5zY3JpcHRUaW1lb3V0KCkubWlsbGlzZWNvbmRzQXM8aW50PigpKTsKICAgICAg
ICAgICAgIHRpbWVvdXRzT2JqZWN0LT5zZXRJbnRlZ2VyKCJwYWdlTG9hZCJfcywgbV9zZXNzaW9u
LT5wYWdlTG9hZFRpbWVvdXQoKS5taWxsaXNlY29uZHNBczxpbnQ+KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkRyaXZlci9nbGliL1Nlc3Npb25Ib3N0R2xpYi5jcHAgYi9Tb3VyY2UvV2ViRHJp
dmVyL2dsaWIvU2Vzc2lvbkhvc3RHbGliLmNwcAppbmRleCAxNzdhYTU0ZjIyMi4uNjZhZTI4YmVm
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ2xpYi9TZXNzaW9uSG9zdEdsaWIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJEcml2ZXIvZ2xpYi9TZXNzaW9uSG9zdEdsaWIuY3BwCkBAIC0yNjcs
NyArMjY3LDcgQEAgYm9vbCBTZXNzaW9uSG9zdDo6bWF0Y2hDYXBhYmlsaXRpZXMoR1ZhcmlhbnQq
IGNhcGFiaWxpdGllcykKIAogYm9vbCBTZXNzaW9uSG9zdDo6YnVpbGRTZXNzaW9uQ2FwYWJpbGl0
aWVzKEdWYXJpYW50QnVpbGRlciogYnVpbGRlcikgY29uc3QKIHsKLSAgICBpZiAoIW1fY2FwYWJp
bGl0aWVzLmFjY2VwdEluc2VjdXJlQ2VydHMgJiYgIW1fY2FwYWJpbGl0aWVzLmNlcnRpZmljYXRl
cykKKyAgICBpZiAoIW1fY2FwYWJpbGl0aWVzLmFjY2VwdEluc2VjdXJlQ2VydHMgJiYgIW1fY2Fw
YWJpbGl0aWVzLmNlcnRpZmljYXRlcyAmJiAhbV9jYXBhYmlsaXRpZXMucHJveHkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQoYnVpbGRlciwgR19W
QVJJQU5UX1RZUEUoImF7c3Z9IikpOwpAQCAtMjg0LDYgKzI4NCwyOCBAQCBib29sIFNlc3Npb25I
b3N0OjpidWlsZFNlc3Npb25DYXBhYmlsaXRpZXMoR1ZhcmlhbnRCdWlsZGVyKiBidWlsZGVyKSBj
b25zdAogICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoYnVpbGRlciwgIntzdn0iLCAiY2Vy
dGlmaWNhdGVzIiwgZ192YXJpYW50X2J1aWxkZXJfZW5kKCZhcnJheUJ1aWxkZXIpKTsKICAgICB9
CiAKKyAgICBpZiAobV9jYXBhYmlsaXRpZXMucHJveHkpIHsKKyAgICAgICAgR1ZhcmlhbnRCdWls
ZGVyIGRpY3RCdWlsZGVyOworICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0KCZkaWN0QnVp
bGRlciwgR19WQVJJQU5UX1RZUEUoImF7c3Z9IikpOworICAgICAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9hZGQoJmRpY3RCdWlsZGVyLCAie3N2fSIsICJ0eXBlIiwgZ192YXJpYW50X25ld19zdHJpbmco
bV9jYXBhYmlsaXRpZXMucHJveHktPnR5cGUudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBpZiAo
bV9jYXBhYmlsaXRpZXMucHJveHktPmZ0cFVSTCkKKyAgICAgICAgICAgIGdfdmFyaWFudF9idWls
ZGVyX2FkZCgmZGljdEJ1aWxkZXIsICJ7c3Z9IiwgImZ0cFVSTCIsIGdfdmFyaWFudF9uZXdfc3Ry
aW5nKG1fY2FwYWJpbGl0aWVzLnByb3h5LT5mdHBVUkwtPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
KTsKKyAgICAgICAgaWYgKG1fY2FwYWJpbGl0aWVzLnByb3h5LT5odHRwVVJMKQorICAgICAgICAg
ICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZkaWN0QnVpbGRlciwgIntzdn0iLCAiaHR0cFVSTCIs
IGdfdmFyaWFudF9uZXdfc3RyaW5nKG1fY2FwYWJpbGl0aWVzLnByb3h5LT5odHRwVVJMLT5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGlmIChtX2NhcGFiaWxpdGllcy5wcm94eS0+
aHR0cHNVUkwpCisgICAgICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmRpY3RCdWlsZGVy
LCAie3N2fSIsICJodHRwc1VSTCIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKG1fY2FwYWJpbGl0aWVz
LnByb3h5LT5odHRwc1VSTC0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBpZiAo
bV9jYXBhYmlsaXRpZXMucHJveHktPnNvY2tzVVJMKQorICAgICAgICAgICAgZ192YXJpYW50X2J1
aWxkZXJfYWRkKCZkaWN0QnVpbGRlciwgIntzdn0iLCAic29ja3NVUkwiLCBnX3ZhcmlhbnRfbmV3
X3N0cmluZyhtX2NhcGFiaWxpdGllcy5wcm94eS0+c29ja3NVUkwtPnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpKTsKKyAgICAgICAgaWYgKCFtX2NhcGFiaWxpdGllcy5wcm94eS0+aWdub3JlQWRkcmVz
c0xpc3QuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBHVW5pcXVlUHRyPGNoYXIqPiBpZ25vcmVB
ZGRyZXNzTGlzdChzdGF0aWNfY2FzdDxjaGFyKio+KGdfbmV3MChjaGFyKiwgbV9jYXBhYmlsaXRp
ZXMucHJveHktPmlnbm9yZUFkZHJlc3NMaXN0LnNpemUoKSArIDEpKSk7CisgICAgICAgICAgICB1
bnNpZ25lZCBpID0gMDsKKyAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgaWdub3JlQWRkcmVz
cyA6IG1fY2FwYWJpbGl0aWVzLnByb3h5LT5pZ25vcmVBZGRyZXNzTGlzdCkKKyAgICAgICAgICAg
ICAgICBpZ25vcmVBZGRyZXNzTGlzdC5nZXQoKVtpKytdID0gZ19zdHJkdXAoaWdub3JlQWRkcmVz
cy51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmZGlj
dEJ1aWxkZXIsICJ7c3Z9IiwgImlnbm9yZUFkZHJlc3NMaXN0IiwgZ192YXJpYW50X25ld19zdHJ2
KGlnbm9yZUFkZHJlc3NMaXN0LmdldCgpLCAtMSkpOworICAgICAgICB9CisgICAgICAgIGdfdmFy
aWFudF9idWlsZGVyX2FkZChidWlsZGVyLCAie3N2fSIsICJwcm94eSIsIGdfdmFyaWFudF9idWls
ZGVyX2VuZCgmZGljdEJ1aWxkZXIpKTsKKyAgICB9CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA0OTE1NTdiYjE2Ni4uNTU1ZGQ3ZWQyOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTktMTEtMDggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFdlYkRyaXZlcjogaW1wbGVtZW50IHByb3h5IHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDQwOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKHBhcnNlUHJveHlD
YXBhYmlsaXRpZXMpOiBQYXJzZSB0aGUgcHJveHkgc2V0dGluZ3MgZnJvbSBjYXBhYmlsaXRpZXMu
CisgICAgICAgICh3ZWJraXRBdXRvbWF0aW9uU2Vzc2lvbkNyZWF0ZSk6IFNldCB0aGUgcHJveHkg
c2V0dGluZ3MgcmVjZWl2ZWQgZnJvbSBjYXBhYmlsaXRpZXMuCisKIDIwMTktMTEtMDcgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFdlYkRyaXZl
cjogY29ycmVjdGx5IGhhbmRsZSBlcnJvcnMgd2hlbiBmb2N1c2luZyBlbGVtZW50IGJlZm9yZSBz
ZW5kaW5nIGtleSBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCAyMTg2NjA0NTE5
Mi4uNzg4NGU4YTU3OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTI5Miw2ICsyOTIs
MzUgQEAgc3RhdGljIHZvaWQgd2Via2l0X2F1dG9tYXRpb25fc2Vzc2lvbl9jbGFzc19pbml0KFdl
YktpdEF1dG9tYXRpb25TZXNzaW9uQ2xhc3MqIHMKIH0KIAogI2lmIEVOQUJMRShSRU1PVEVfSU5T
UEVDVE9SKQorc3RhdGljIFdlYktpdE5ldHdvcmtQcm94eU1vZGUgcGFyc2VQcm94eUNhcGFiaWxp
dGllcyhjb25zdCBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6Q2xpZW50OjpTZXNzaW9uQ2Fw
YWJpbGl0aWVzOjpQcm94eSYgcHJveHksIFdlYktpdE5ldHdvcmtQcm94eVNldHRpbmdzKiogc2V0
dGluZ3MpCit7CisgICAgaWYgKHByb3h5LnR5cGUgPT0gInN5c3RlbSIpCisgICAgICAgIHJldHVy
biBXRUJLSVRfTkVUV09SS19QUk9YWV9NT0RFX0RFRkFVTFQ7CisKKyAgICBpZiAocHJveHkudHlw
ZSA9PSAiZGlyZWN0IikKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1BST1hZX01PREVf
Tk9fUFJPWFk7CisKKyAgICBpZiAoIXByb3h5Lmlnbm9yZUFkZHJlc3NMaXN0LmlzRW1wdHkoKSkg
eworICAgICAgICBHVW5pcXVlUHRyPGNoYXIqPiBpZ25vcmVBZGRyZXNzTGlzdChzdGF0aWNfY2Fz
dDxjaGFyKio+KGdfbmV3MChjaGFyKiwgcHJveHkuaWdub3JlQWRkcmVzc0xpc3Quc2l6ZSgpICsg
MSkpKTsKKyAgICAgICAgdW5zaWduZWQgaSA9IDA7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYg
aWdub3JlQWRkcmVzcyA6IHByb3h5Lmlnbm9yZUFkZHJlc3NMaXN0KQorICAgICAgICAgICAgaWdu
b3JlQWRkcmVzc0xpc3QuZ2V0KClbaSsrXSA9IGdfc3RyZHVwKGlnbm9yZUFkZHJlc3MudXRmOCgp
LmRhdGEoKSk7CisgICAgICAgICpzZXR0aW5ncyA9IHdlYmtpdF9uZXR3b3JrX3Byb3h5X3NldHRp
bmdzX25ldyhudWxscHRyLCBpZ25vcmVBZGRyZXNzTGlzdC5nZXQoKSk7CisgICAgfSBlbHNlCisg
ICAgICAgICpzZXR0aW5ncyA9IHdlYmtpdF9uZXR3b3JrX3Byb3h5X3NldHRpbmdzX25ldyhudWxs
cHRyLCBudWxscHRyKTsKKworICAgIGlmIChwcm94eS5mdHBVUkwpCisgICAgICAgIHdlYmtpdF9u
ZXR3b3JrX3Byb3h5X3NldHRpbmdzX2FkZF9wcm94eV9mb3Jfc2NoZW1lKCpzZXR0aW5ncywgImZ0
cCIsIHByb3h5LmZ0cFVSTC0+dXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKHByb3h5Lmh0dHBVUkwp
CisgICAgICAgIHdlYmtpdF9uZXR3b3JrX3Byb3h5X3NldHRpbmdzX2FkZF9wcm94eV9mb3Jfc2No
ZW1lKCpzZXR0aW5ncywgImh0dHAiLCBwcm94eS5odHRwVVJMLT51dGY4KCkuZGF0YSgpKTsKKyAg
ICBpZiAocHJveHkuaHR0cHNVUkwpCisgICAgICAgIHdlYmtpdF9uZXR3b3JrX3Byb3h5X3NldHRp
bmdzX2FkZF9wcm94eV9mb3Jfc2NoZW1lKCpzZXR0aW5ncywgImh0dHBzIiwgcHJveHkuaHR0cHNV
UkwtPnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChwcm94eS5zb2Nrc1VSTCkKKyAgICAgICAgd2Vi
a2l0X25ldHdvcmtfcHJveHlfc2V0dGluZ3NfYWRkX3Byb3h5X2Zvcl9zY2hlbWUoKnNldHRpbmdz
LCAic29ja3MiLCBwcm94eS5zb2Nrc1VSTC0+dXRmOCgpLmRhdGEoKSk7CisKKyAgICByZXR1cm4g
V0VCS0lUX05FVFdPUktfUFJPWFlfTU9ERV9DVVNUT007Cit9CisKIFdlYktpdEF1dG9tYXRpb25T
ZXNzaW9uKiB3ZWJraXRBdXRvbWF0aW9uU2Vzc2lvbkNyZWF0ZShXZWJLaXRXZWJDb250ZXh0KiB3
ZWJDb250ZXh0LCBjb25zdCBjaGFyKiBzZXNzaW9uSUQsIGNvbnN0IEluc3BlY3Rvcjo6UmVtb3Rl
SW5zcGVjdG9yOjpDbGllbnQ6OlNlc3Npb25DYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykKIHsK
ICAgICBhdXRvKiBzZXNzaW9uID0gV0VCS0lUX0FVVE9NQVRJT05fU0VTU0lPTihnX29iamVjdF9u
ZXcoV0VCS0lUX1RZUEVfQVVUT01BVElPTl9TRVNTSU9OLCAiaWQiLCBzZXNzaW9uSUQsIG51bGxw
dHIpKTsKQEAgLTMwMyw2ICszMzIsMTMgQEAgV2ViS2l0QXV0b21hdGlvblNlc3Npb24qIHdlYmtp
dEF1dG9tYXRpb25TZXNzaW9uQ3JlYXRlKFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnQKICAgICAg
ICAgaWYgKHRsc0NlcnRpZmljYXRlKQogICAgICAgICAgICAgd2Via2l0X3dlYl9jb250ZXh0X2Fs
bG93X3Rsc19jZXJ0aWZpY2F0ZV9mb3JfaG9zdCh3ZWJDb250ZXh0LCB0bHNDZXJ0aWZpY2F0ZS5n
ZXQoKSwgY2VydGlmaWNhdGUuZmlyc3QudXRmOCgpLmRhdGEoKSk7CiAgICAgfQorICAgIGlmIChj
YXBhYmlsaXRpZXMucHJveHkpIHsKKyAgICAgICAgV2ViS2l0TmV0d29ya1Byb3h5U2V0dGluZ3Mq
IHByb3h5U2V0dGluZ3MgPSBudWxscHRyOworICAgICAgICBhdXRvIHByb3h5TW9kZSA9IHBhcnNl
UHJveHlDYXBhYmlsaXRpZXMoKmNhcGFiaWxpdGllcy5wcm94eSwgJnByb3h5U2V0dGluZ3MpOwor
ICAgICAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X25ldHdvcmtfcHJveHlfc2V0dGluZ3Mod2Vi
Q29udGV4dCwgcHJveHlNb2RlLCBwcm94eVNldHRpbmdzKTsKKyAgICAgICAgaWYgKHByb3h5U2V0
dGluZ3MpCisgICAgICAgICAgICB3ZWJraXRfbmV0d29ya19wcm94eV9zZXR0aW5nc19mcmVlKHBy
b3h5U2V0dGluZ3MpOworICAgIH0KICAgICByZXR1cm4gc2Vzc2lvbjsKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvQ2hhbmdlTG9nIGIvV2ViRHJpdmVyVGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGVhNTMzNmM0MTA0Li4xZjVmMzdkMDQ2YSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVy
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL1dlYkRyaXZlclRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDE5LTExLTA4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBwcm94eSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA0MDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbnNraXAgdGhlIHRl
c3RzIHRoYXQgYXJlIG5vdyBwYXNzaW5nLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9ucy5q
c29uOgorCiAyMDE5LTExLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBXZWJEcml2ZXI6IGltcGxlbWVudCBnZXQgcGFnZSBzb3VyY2UgY29t
bWFuZApkaWZmIC0tZ2l0IGEvV2ViRHJpdmVyVGVzdHMvVGVzdEV4cGVjdGF0aW9ucy5qc29uIGIv
V2ViRHJpdmVyVGVzdHMvVGVzdEV4cGVjdGF0aW9ucy5qc29uCmluZGV4IDgzY2Q3NTBjMjA0Li45
NjFlZDljNDI2OSAxMDA2NDQKLS0tIGEvV2ViRHJpdmVyVGVzdHMvVGVzdEV4cGVjdGF0aW9ucy5q
c29uCisrKyBiL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNvbgpAQCAtNzYzLDEx
OCArNzYzLDYgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0sCi0gICAgImltcG9y
dGVkL3czYy93ZWJkcml2ZXIvdGVzdHMvbmV3X3Nlc3Npb24vaW52YWxpZF9jYXBhYmlsaXRpZXMu
cHkiOiB7Ci0gICAgICAgICJzdWJ0ZXN0cyI6IHsKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRf
dmFsdWVzW3Byb3h5LTEtPGxhbWJkYT4wXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQi
OiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQw
OCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3By
b3h5LTEtPGxhbWJkYT4xXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6
IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVl
MjgtPGxhbWJkYT4wXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsi
c3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMjgt
PGxhbWJkYT4xXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3Rh
dHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXt9LTxsYW1iZGE+
MF0iOiB7Ci0gICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsi
RkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODA0MDgifX0KLSAgICAgICAgICAgIH0sCi0g
ICAgICAgICAgICAidGVzdF9pbnZhbGlkX3ZhbHVlc1twcm94eS17fS08bGFtYmRhPjFdIjogewot
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwg
ImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAg
ICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzMC08bGFtYmRhPjBdIjogewotICAg
ICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1
ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAg
InRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzMC08bGFtYmRhPjFdIjogewotICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6
ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRl
c3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzMS08bGFtYmRhPjBdIjogewotICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3
ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3Rf
aW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzMS08bGFtYmRhPjFdIjogewotICAgICAgICAgICAg
ICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJr
aXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52
YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzMi08bGFtYmRhPjBdIjogewotICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQu
b3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxp
ZF92YWx1ZXNbcHJveHktdmFsdWUzMi08bGFtYmRhPjFdIjogewotICAgICAgICAgICAgICAgICJl
eHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3Jn
L2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92
YWx1ZXNbcHJveHktdmFsdWUzMy08bGFtYmRhPjBdIjogewotICAgICAgICAgICAgICAgICJleHBl
Y3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2Iv
MTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1
ZXNbcHJveHktdmFsdWUzMy08bGFtYmRhPjFdIjogewotICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgw
NDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNb
cHJveHktdmFsdWUzNC08bGFtYmRhPjBdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4
In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJv
eHktdmFsdWUzNC08bGFtYmRhPjFdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsi
YWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19
Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHkt
dmFsdWUzNS08bGFtYmRhPjBdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxs
IjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0g
ICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFs
dWUzNS08bGFtYmRhPjFdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjog
eyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAg
ICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUz
Ni08bGFtYmRhPjBdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJz
dGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAg
ICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzNi08
bGFtYmRhPjFdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0
dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAg
ICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzNy08bGFt
YmRhPjBdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMi
OiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9
LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzNy08bGFtYmRh
PjFdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBb
IkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAot
ICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzOC08bGFtYmRhPjBd
IjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZB
SUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAg
ICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzOC08bGFtYmRhPjFdIjog
ewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwi
XSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAg
ICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzOS08bGFtYmRhPjBdIjogewot
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwg
ImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAg
ICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWUzOS08bGFtYmRhPjFdIjogewotICAg
ICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1
ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAg
InRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWU0MC08bGFtYmRhPjBdIjogewotICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6
ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRl
c3RfaW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWU0MC08bGFtYmRhPjFdIjogewotICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3
ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3Rf
aW52YWxpZF92YWx1ZXNbcHJveHktdmFsdWU0MS08bGFtYmRhPjBdIjogewotICAgICAgICAgICAg
ICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJr
aXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52
YWxpZF92YWx1ZXNbcHJveHktdmFsdWU0MS08bGFtYmRhPjFdIjogewotICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQu
b3JnL2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxp
ZF92YWx1ZXNbcHJveHktdmFsdWU0Mi08bGFtYmRhPjBdIjogewotICAgICAgICAgICAgICAgICJl
eHBlY3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3Jn
L2IvMTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92
YWx1ZXNbcHJveHktdmFsdWU0Mi08bGFtYmRhPjFdIjogewotICAgICAgICAgICAgICAgICJleHBl
Y3RlZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2Iv
MTgwNDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1
ZXNbcHJveHktdmFsdWU0My08bGFtYmRhPjBdIjogewotICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgw
NDA4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNb
cHJveHktdmFsdWU0My08bGFtYmRhPjFdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
IHsiYWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4
In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJv
eHktdmFsdWU0NC08bGFtYmRhPjBdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsi
YWxsIjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19
Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHkt
dmFsdWU0NC08bGFtYmRhPjFdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxs
IjogeyJzdGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9LAogICAgICJpbXBvcnRlZC93M2Mvd2ViZHJp
dmVyL3Rlc3RzL25ld19zZXNzaW9uL2RlZmF1bHRfdmFsdWVzLnB5IjogewogICAgICAgICAic3Vi
dGVzdHMiOiB7CiAgICAgICAgICAgICAidGVzdF92YWxpZF9idXRfdW5tYXRjaGFibGVfa2V5Ijog
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383257</attachid>
            <date>2019-11-11 02:36:59 -0800</date>
            <delta_ts>2019-11-11 05:28:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wd-proxy.diff</filename>
            <type>text/plain</type>
            <size>28170</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA0MDIzMjFkYTg0Li43ZWZlYWIyNTE0YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMTEtMTEgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYkRyaXZl
cjogaW1wbGVtZW50IHByb3h5IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDQwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBvcHRpb25hbCBQcm94eSBzdHJ1Y3QgdG8gc2Vzc2lvbiBj
YXBhYmlsaXRpZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rv
ci5oOgorICAgICAgICAqIGluc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JTZXJ2
ZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpwcm9jZXNzU2Vzc2lvbkNhcGFiaWxpdGllcyk6
CisKIDIwMTktMTEtMDkgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgW1dlYkFzc2VtYmx5XSBJbXByb3ZlIGJ5dGVjb2RlIGR1bXBpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9y
LmgKaW5kZXggMTQxZTlhYjc5MGEuLmJjNDliN2VmZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IuaApAQCAt
OTIsNiArOTIsMTUgQEAgcHVibGljOgogICAgICAgICAgICAgYm9vbCBhY2NlcHRJbnNlY3VyZUNl
cnRpZmljYXRlcyB7IGZhbHNlIH07CiAjaWYgVVNFKEdMSUIpCiAgICAgICAgICAgICBWZWN0b3I8
c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gY2VydGlmaWNhdGVzOworICAgICAgICAgICAgc3Ry
dWN0IFByb3h5IHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdHlwZTsKKyAgICAgICAgICAgICAg
ICBPcHRpb25hbDxTdHJpbmc+IGZ0cFVSTDsKKyAgICAgICAgICAgICAgICBPcHRpb25hbDxTdHJp
bmc+IGh0dHBVUkw7CisgICAgICAgICAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiBodHRwc1VSTDsK
KyAgICAgICAgICAgICAgICBPcHRpb25hbDxTdHJpbmc+IHNvY2tzVVJMOworICAgICAgICAgICAg
ICAgIFZlY3RvcjxTdHJpbmc+IGlnbm9yZUFkZHJlc3NMaXN0OworICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgIE9wdGlvbmFsPFByb3h5PiBwcm94eTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgICAgICAgICAgT3B0aW9uYWw8Ym9vbD4gYWxsb3dJbnNlY3VyZU1lZGlhQ2FwdHVy
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2ds
aWIvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmNwcAppbmRleCA0NTNlM2Ew
MDBiMi4uZWNkOWQ2ZTcwMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9nbGliL1JlbW90ZUluc3BlY3RvclNlcnZl
ci5jcHAKQEAgLTEwNSw2ICsxMDUsMzcgQEAgc3RhdGljIFJlbW90ZUluc3BlY3Rvcjo6Q2xpZW50
OjpTZXNzaW9uQ2FwYWJpbGl0aWVzIHByb2Nlc3NTZXNzaW9uQ2FwYWJpbGl0aWVzKEcKICAgICAg
ICAgICAgIGNhcGFiaWxpdGllcy5jZXJ0aWZpY2F0ZXMudW5jaGVja2VkQXBwZW5kKHsgU3RyaW5n
Ojpmcm9tVVRGOChob3N0KSwgU3RyaW5nOjpmcm9tVVRGOChjZXJ0aWZpY2F0ZUZpbGUpIH0pOwog
ICAgIH0KIAorICAgIGlmIChHUmVmUHRyPEdWYXJpYW50PiBwcm94eSA9IGdfdmFyaWFudF9sb29r
dXBfdmFsdWUoc2Vzc2lvbkNhcGFiaWxpdGllcywgInByb3h5IiwgR19WQVJJQU5UX1RZUEUoImF7
c3Z9IikpKSB7CisgICAgICAgIGNhcGFiaWxpdGllcy5wcm94eSA9IFJlbW90ZUluc3BlY3Rvcjo6
Q2xpZW50OjpTZXNzaW9uQ2FwYWJpbGl0aWVzOjpQcm94eSgpOworCisgICAgICAgIGNvbnN0IGNo
YXIqIHByb3h5VHlwZTsKKyAgICAgICAgZ192YXJpYW50X2xvb2t1cChwcm94eS5nZXQoKSwgInR5
cGUiLCAiJnMiLCAmcHJveHlUeXBlKTsKKyAgICAgICAgY2FwYWJpbGl0aWVzLnByb3h5LT50eXBl
ID0gU3RyaW5nOjpmcm9tVVRGOChwcm94eVR5cGUpOworCisgICAgICAgIGNvbnN0IGNoYXIqIGZ0
cFVSTDsKKyAgICAgICAgaWYgKGdfdmFyaWFudF9sb29rdXAocHJveHkuZ2V0KCksICJmdHBVUkwi
LCAiJnMiLCAmZnRwVVJMKSkKKyAgICAgICAgICAgIGNhcGFiaWxpdGllcy5wcm94eS0+ZnRwVVJM
ID0gU3RyaW5nOjpmcm9tVVRGOChmdHBVUkwpOworCisgICAgICAgIGNvbnN0IGNoYXIqIGh0dHBV
Ukw7CisgICAgICAgIGlmIChnX3ZhcmlhbnRfbG9va3VwKHByb3h5LmdldCgpLCAiaHR0cFVSTCIs
ICImcyIsICZodHRwVVJMKSkKKyAgICAgICAgICAgIGNhcGFiaWxpdGllcy5wcm94eS0+aHR0cFVS
TCA9IFN0cmluZzo6ZnJvbVVURjgoaHR0cFVSTCk7CisKKyAgICAgICAgY29uc3QgY2hhciogaHR0
cHNVUkw7CisgICAgICAgIGlmIChnX3ZhcmlhbnRfbG9va3VwKHByb3h5LmdldCgpLCAiaHR0cHNV
UkwiLCAiJnMiLCAmaHR0cHNVUkwpKQorICAgICAgICAgICAgY2FwYWJpbGl0aWVzLnByb3h5LT5o
dHRwc1VSTCA9IFN0cmluZzo6ZnJvbVVURjgoaHR0cHNVUkwpOworCisgICAgICAgIGNvbnN0IGNo
YXIqIHNvY2tzVVJMOworICAgICAgICBpZiAoZ192YXJpYW50X2xvb2t1cChwcm94eS5nZXQoKSwg
InNvY2tzVVJMIiwgIiZzIiwgJnNvY2tzVVJMKSkKKyAgICAgICAgICAgIGNhcGFiaWxpdGllcy5w
cm94eS0+c29ja3NVUkwgPSBTdHJpbmc6OmZyb21VVEY4KHNvY2tzVVJMKTsKKworICAgICAgICBp
ZiAoR1JlZlB0cjxHVmFyaWFudD4gaWdub3JlQWRkcmVzc0xpc3QgPSBnX3ZhcmlhbnRfbG9va3Vw
X3ZhbHVlKHByb3h5LmdldCgpLCAiaWdub3JlQWRkcmVzc0xpc3QiLCBHX1ZBUklBTlRfVFlQRSgi
YXMiKSkpIHsKKyAgICAgICAgICAgIGdzaXplIGlnbm9yZUFkZHJlc3NMaXN0TGVuZ3RoOworICAg
ICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBpZ25vcmVBZGRyZXNzQXJyYXkocmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4oZ192YXJpYW50X2dldF9zdHJ2KGlnbm9yZUFkZHJlc3NMaXN0LmdldCgpLCAm
aWdub3JlQWRkcmVzc0xpc3RMZW5ndGgpKSk7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgaWdub3JlQWRkcmVzc0xpc3RMZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICBj
YXBhYmlsaXRpZXMucHJveHktPmlnbm9yZUFkZHJlc3NMaXN0LmFwcGVuZChTdHJpbmc6OmZyb21V
VEY4KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcioqPihpZ25vcmVBZGRyZXNzQXJyYXkuZ2V0KCkpW2ld
KSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICByZXR1cm4gY2FwYWJpbGl0aWVzOwogfQogY29u
c3QgR0RCdXNJbnRlcmZhY2VWVGFibGUgUmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzX2ludGVyZmFj
ZVZUYWJsZSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2FwYWJpbGl0aWVzLmgg
Yi9Tb3VyY2UvV2ViRHJpdmVyL0NhcGFiaWxpdGllcy5oCmluZGV4IGRlMDg0ZjQ5NTBkLi45ZWI4
N2ExNTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DYXBhYmlsaXRpZXMuaAorKysg
Yi9Tb3VyY2UvV2ViRHJpdmVyL0NhcGFiaWxpdGllcy5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSA8dXRpbGl0eT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9T
ZWNvbmRzLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTMsNiArNTQsMTcgQEAgZW51
bSBjbGFzcyBVbmhhbmRsZWRQcm9tcHRCZWhhdmlvciB7CiAgICAgSWdub3JlCiB9OwogCitzdHJ1
Y3QgUHJveHkgeworICAgIFN0cmluZyB0eXBlOworICAgIE9wdGlvbmFsPFN0cmluZz4gYXV0b2Nv
bmZpZ1VSTDsKKyAgICBPcHRpb25hbDxVUkw+IGZ0cFVSTDsKKyAgICBPcHRpb25hbDxVUkw+IGh0
dHBVUkw7CisgICAgT3B0aW9uYWw8VVJMPiBodHRwc1VSTDsKKyAgICBPcHRpb25hbDxVUkw+IHNv
Y2tzVVJMOworICAgIE9wdGlvbmFsPHVpbnQ4X3Q+IHNvY2tzVmVyc2lvbjsKKyAgICBWZWN0b3I8
U3RyaW5nPiBpZ25vcmVBZGRyZXNzTGlzdDsKK307CisKIHN0cnVjdCBDYXBhYmlsaXRpZXMgewog
ICAgIE9wdGlvbmFsPFN0cmluZz4gYnJvd3Nlck5hbWU7CiAgICAgT3B0aW9uYWw8U3RyaW5nPiBi
cm93c2VyVmVyc2lvbjsKQEAgLTYyLDYgKzc0LDcgQEAgc3RydWN0IENhcGFiaWxpdGllcyB7CiAg
ICAgT3B0aW9uYWw8VGltZW91dHM+IHRpbWVvdXRzOwogICAgIE9wdGlvbmFsPFBhZ2VMb2FkU3Ry
YXRlZ3k+IHBhZ2VMb2FkU3RyYXRlZ3k7CiAgICAgT3B0aW9uYWw8VW5oYW5kbGVkUHJvbXB0QmVo
YXZpb3I+IHVuaGFuZGxlZFByb21wdEJlaGF2aW9yOworICAgIE9wdGlvbmFsPFByb3h5PiBwcm94
eTsKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICBPcHRpb25hbDxTdHJp
bmc+IGJyb3dzZXJCaW5hcnk7CiAgICAgT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGJyb3dzZXJB
cmd1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJEcml2ZXIvQ2hhbmdlTG9nCmluZGV4IDQ2MzNlMDA3ODNmLi4zYmIxZmU0YWM3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0xMS0xMSAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViRHJpdmVyOiBpbXBsZW1l
bnQgcHJveHkgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgwNDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSGFuZGxlIHByb3h5IG9iamVjdCBpbiBjYXBhYmlsaXRpZXMuCisKKyAgICAgICAg
KiBDYXBhYmlsaXRpZXMuaDogQWRkIFByb3h5IHN0cnVjdC4KKyAgICAgICAgKiBXZWJEcml2ZXJT
ZXJ2aWNlLmNwcDoKKyAgICAgICAgKFdlYkRyaXZlcjo6ZGVzZXJpYWxpemVQcm94eSk6IERlc2Vy
aWFsaXplIHRoZSBwcm94eSBmcm9tIGNhcGFiaWxpdGllcy4KKyAgICAgICAgKFdlYkRyaXZlcjo6
V2ViRHJpdmVyU2VydmljZTo6cGFyc2VDYXBhYmlsaXRpZXMgY29uc3QpOiBHZXQgdGhlIGRlc2Vy
aWFsaXplZCBwcm94eS4KKyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6dmFs
aWRhdGVkQ2FwYWJpbGl0aWVzIGNvbnN0KTogRW5zdXJlIHByb3h5IG9iamVjdCBpcyB2YWxpZC4K
KyAgICAgICAgKFdlYkRyaXZlcjo6V2ViRHJpdmVyU2VydmljZTo6bWF0Y2hDYXBhYmlsaXRpZXMg
Y29uc3QpOiBDaGVjayBwcm94eSB0eXBlIGlzIHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0uCisg
ICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OmNyZWF0ZVNlc3Npb24pOiBPbmx5
IHNldCBhbiBlbXB0eSBwcm94eSBvYmplY3QgaW4gY2FwYWJpbGl0aWVzIGlmIHdlIGRvbid0IGhh
dmUgYQorICAgICAgICBkZXNlcmlhbGl6ZWQgcHJveHkuCisgICAgICAgICogV2ViRHJpdmVyU2Vy
dmljZS5oOgorICAgICAgICAqIGdsaWIvU2Vzc2lvbkhvc3RHbGliLmNwcDoKKyAgICAgICAgKFdl
YkRyaXZlcjo6U2Vzc2lvbkhvc3Q6OmJ1aWxkU2Vzc2lvbkNhcGFiaWxpdGllcyBjb25zdCk6IFNl
bmQgdGhlIHByb3h5IHNldHRpbmdzIHRvIHRoZSBicm93c2VyLgorICAgICAgICAqIGdsaWIvV2Vi
RHJpdmVyU2VydmljZUdMaWIuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2
aWNlOjpwbGF0Zm9ybVN1cHBvcnRQcm94eVR5cGUgY29uc3QpOiBSZXR1cm4gZmFsc2UgaWYgcHJv
eHkgdHlwZSBpcyAicGFjIi4KKwogMjAxOS0xMS0wOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBpbXBsZW1lbnQgZ2V0IHBh
Z2Ugc291cmNlIGNvbW1hbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVy
U2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4
IDg5Nzg1MGUwYzVmLi44MThjMjVkNDFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9X
ZWJEcml2ZXJTZXJ2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZp
Y2UuY3BwCkBAIC0zNDYsNiArMzQ2LDk0IEBAIHN0YXRpYyBPcHRpb25hbDxUaW1lb3V0cz4gZGVz
ZXJpYWxpemVUaW1lb3V0cyhKU09OOjpPYmplY3QmIHRpbWVvdXRzT2JqZWN0KQogICAgIHJldHVy
biB0aW1lb3V0czsKIH0KIAorc3RhdGljIE9wdGlvbmFsPFByb3h5PiBkZXNlcmlhbGl6ZVByb3h5
KEpTT046Ok9iamVjdCYgcHJveHlPYmplY3QpCit7CisgICAgLy8gwqc3LjEgUHJveHkuCisgICAg
Ly8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmRyaXZlci8jcHJveHkKKyAgICBQcm94eSBwcm94
eTsKKyAgICBpZiAoIXByb3h5T2JqZWN0LmdldFN0cmluZygicHJveHlUeXBlIl9zLCBwcm94eS50
eXBlKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmIChwcm94eS50eXBl
ID09ICJkaXJlY3QiIHx8IHByb3h5LnR5cGUgPT0gImF1dG9kZXRlY3QiIHx8IHByb3h5LnR5cGUg
PT0gInN5c3RlbSIpCisgICAgICAgIHJldHVybiBwcm94eTsKKworICAgIGlmIChwcm94eS50eXBl
ID09ICJwYWMiKSB7CisgICAgICAgIFN0cmluZyBhdXRvY29uZmlnVVJMOworICAgICAgICBpZiAo
IXByb3h5T2JqZWN0LmdldFN0cmluZygicHJveHlBdXRvY29uZmlnVXJsIl9zLCBhdXRvY29uZmln
VVJMKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgcHJveHku
YXV0b2NvbmZpZ1VSTCA9IGF1dG9jb25maWdVUkw7CisgICAgICAgIHJldHVybiBwcm94eTsKKyAg
ICB9CisKKyAgICBpZiAocHJveHkudHlwZSA9PSAibWFudWFsIikgeworICAgICAgICBSZWZQdHI8
SlNPTjo6VmFsdWU+IHZhbHVlOworICAgICAgICBpZiAocHJveHlPYmplY3QuZ2V0VmFsdWUoImZ0
cFByb3h5Il9zLCB2YWx1ZSkpIHsKKyAgICAgICAgICAgIFN0cmluZyBmdHBQcm94eTsKKyAgICAg
ICAgICAgIGlmICghdmFsdWUtPmFzU3RyaW5nKGZ0cFByb3h5KSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgICAgICBwcm94eS5mdHBVUkwgPSBVUkwoeyB9
LCBtYWtlU3RyaW5nKCJmdHA6Ly8iLCBmdHBQcm94eSkpOworICAgICAgICAgICAgaWYgKCFwcm94
eS5mdHBVUkwtPmlzVmFsaWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgICAgICB9CisgICAgICAgIGlmIChwcm94eU9iamVjdC5nZXRWYWx1ZSgiaHR0cFByb3h5
Il9zLCB2YWx1ZSkpIHsKKyAgICAgICAgICAgIFN0cmluZyBodHRwUHJveHk7CisgICAgICAgICAg
ICBpZiAoIXZhbHVlLT5hc1N0cmluZyhodHRwUHJveHkpKQorICAgICAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIHByb3h5Lmh0dHBVUkwgPSBVUkwoeyB9LCBt
YWtlU3RyaW5nKCJodHRwOi8vIiwgaHR0cFByb3h5KSk7CisgICAgICAgICAgICBpZiAoIXByb3h5
Lmh0dHBVUkwtPmlzVmFsaWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgICAgICB9CisgICAgICAgIGlmIChwcm94eU9iamVjdC5nZXRWYWx1ZSgic3NsUHJveHki
X3MsIHZhbHVlKSkgeworICAgICAgICAgICAgU3RyaW5nIHNzbFByb3h5OworICAgICAgICAgICAg
aWYgKCF2YWx1ZS0+YXNTdHJpbmcoc3NsUHJveHkpKQorICAgICAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIHByb3h5Lmh0dHBzVVJMID0gVVJMKHsgfSwgbWFr
ZVN0cmluZygiaHR0cHM6Ly8iLCBzc2xQcm94eSkpOworICAgICAgICAgICAgaWYgKCFwcm94eS5o
dHRwc1VSTC0+aXNWYWxpZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKHByb3h5T2JqZWN0LmdldFZhbHVlKCJzb2Nrc1Byb3h5
IiwgdmFsdWUpKSB7CisgICAgICAgICAgICBTdHJpbmcgc29ja3NQcm94eTsKKyAgICAgICAgICAg
IGlmICghdmFsdWUtPmFzU3RyaW5nKHNvY2tzUHJveHkpKQorICAgICAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgICAgIHByb3h5LnNvY2tzVVJMID0gVVJMKHsgfSwg
bWFrZVN0cmluZygic29ja3M6Ly8iLCBzb2Nrc1Byb3h5KSk7CisgICAgICAgICAgICBpZiAoIXBy
b3h5LnNvY2tzVVJMLT5pc1ZhbGlkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgICAgICAgICAgUmVmUHRyPEpTT046OlZhbHVlPiBzb2Nrc1ZlcnNpb25WYWx1
ZTsKKyAgICAgICAgICAgIGlmICghcHJveHlPYmplY3QuZ2V0VmFsdWUoInNvY2tzVmVyc2lvbiIs
IHNvY2tzVmVyc2lvblZhbHVlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgICAgICAgICBhdXRvIHNvY2tzVmVyc2lvbiA9IHVuc2lnbmVkVmFsdWUoKnNvY2tz
VmVyc2lvblZhbHVlKTsKKyAgICAgICAgICAgIGlmICghc29ja3NWZXJzaW9uIHx8IHNvY2tzVmVy
c2lvbi52YWx1ZSgpID4gMjU1KQorICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisgICAgICAgICAgICBwcm94eS5zb2Nrc1ZlcnNpb24gPSBzb2Nrc1ZlcnNpb24udmFsdWUoKTsK
KyAgICAgICAgfQorICAgICAgICBpZiAocHJveHlPYmplY3QuZ2V0VmFsdWUoIm5vUHJveHkiX3Ms
IHZhbHVlKSkgeworICAgICAgICAgICAgUmVmUHRyPEpTT046OkFycmF5PiBub1Byb3h5OworICAg
ICAgICAgICAgaWYgKCF2YWx1ZS0+YXNBcnJheShub1Byb3h5KSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgICAgICBhdXRvIG5vUHJveHlMZW5ndGggPSBu
b1Byb3h5LT5sZW5ndGgoKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBu
b1Byb3h5TGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBSZWZQdHI8SlNPTjo6VmFsdWU+
IGFkZHJlc3NWYWx1ZSA9IG5vUHJveHktPmdldChpKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcg
YWRkcmVzczsKKyAgICAgICAgICAgICAgICBpZiAoIWFkZHJlc3NWYWx1ZS0+YXNTdHJpbmcoYWRk
cmVzcykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAg
ICAgICAgICAgcHJveHkuaWdub3JlQWRkcmVzc0xpc3QuYXBwZW5kKFdURk1vdmUoYWRkcmVzcykp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHByb3h5OworICAg
IH0KKworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKIHN0YXRpYyBPcHRpb25hbDxQYWdl
TG9hZFN0cmF0ZWd5PiBkZXNlcmlhbGl6ZVBhZ2VMb2FkU3RyYXRlZ3koY29uc3QgU3RyaW5nJiBw
YWdlTG9hZFN0cmF0ZWd5KQogewogICAgIGlmIChwYWdlTG9hZFN0cmF0ZWd5ID09ICJub25lIikK
QEAgLTM5MCw2ICs0NzgsOSBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OnBhcnNlQ2FwYWJpbGl0
aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWF0Y2hlZENhcGFiaWxpdGllcwogICAgIFN0cmluZyBw
bGF0Zm9ybU5hbWU7CiAgICAgaWYgKG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0U3RyaW5nKCJwbGF0
Zm9ybU5hbWUiX3MsIHBsYXRmb3JtTmFtZSkpCiAgICAgICAgIGNhcGFiaWxpdGllcy5wbGF0Zm9y
bU5hbWUgPSBwbGF0Zm9ybU5hbWU7CisgICAgUmVmUHRyPEpTT046Ok9iamVjdD4gcHJveHk7Cisg
ICAgaWYgKG1hdGNoZWRDYXBhYmlsaXRpZXMuZ2V0T2JqZWN0KCJwcm94eSJfcywgcHJveHkpKQor
ICAgICAgICBjYXBhYmlsaXRpZXMucHJveHkgPSBkZXNlcmlhbGl6ZVByb3h5KCpwcm94eSk7CiAg
ICAgUmVmUHRyPEpTT046Ok9iamVjdD4gdGltZW91dHM7CiAgICAgaWYgKG1hdGNoZWRDYXBhYmls
aXRpZXMuZ2V0T2JqZWN0KCJ0aW1lb3V0cyJfcywgdGltZW91dHMpKQogICAgICAgICBjYXBhYmls
aXRpZXMudGltZW91dHMgPSBkZXNlcmlhbGl6ZVRpbWVvdXRzKCp0aW1lb3V0cyk7CkBAIC00NDMs
NyArNTM0LDEwIEBAIFJlZlB0cjxKU09OOjpPYmplY3Q+IFdlYkRyaXZlclNlcnZpY2U6OnZhbGlk
YXRlZENhcGFiaWxpdGllcyhjb25zdCBKU09OOjpPYmplY3QmCiAgICAgICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgICAgICAgICByZXN1bHQtPnNldFN0cmluZyhpdC0+a2V5LCBwYWdl
TG9hZFN0cmF0ZWd5KTsKICAgICAgICAgfSBlbHNlIGlmIChpdC0+a2V5ID09ICJwcm94eSIpIHsK
LSAgICAgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgcHJveHkgc3VwcG9ydC4KKyAgICAgICAg
ICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHByb3h5OworICAgICAgICAgICAgaWYgKCFpdC0+dmFs
dWUtPmFzT2JqZWN0KHByb3h5KSB8fCAhZGVzZXJpYWxpemVQcm94eSgqcHJveHkpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgcmVzdWx0LT5zZXRWYWx1ZShp
dC0+a2V5LCBSZWZQdHI8SlNPTjo6VmFsdWU+KGl0LT52YWx1ZSkpOwogICAgICAgICB9IGVsc2Ug
aWYgKGl0LT5rZXkgPT0gInRpbWVvdXRzIikgewogICAgICAgICAgICAgUmVmUHRyPEpTT046Ok9i
amVjdD4gdGltZW91dHM7CiAgICAgICAgICAgICBpZiAoIWl0LT52YWx1ZS0+YXNPYmplY3QodGlt
ZW91dHMpIHx8ICFkZXNlcmlhbGl6ZVRpbWVvdXRzKCp0aW1lb3V0cykpCkBAIC01MjMsNyArNjE3
LDEyIEBAIFJlZlB0cjxKU09OOjpPYmplY3Q+IFdlYkRyaXZlclNlcnZpY2U6Om1hdGNoQ2FwYWJp
bGl0aWVzKGNvbnN0IEpTT046Ok9iamVjdCYgbWVyCiAgICAgICAgICAgICBpZiAoYWNjZXB0SW5z
ZWN1cmVDZXJ0cyAmJiAhcGxhdGZvcm1DYXBhYmlsaXRpZXMuYWNjZXB0SW5zZWN1cmVDZXJ0cy52
YWx1ZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9IGVsc2Ug
aWYgKGl0LT5rZXkgPT0gInByb3h5IikgewotICAgICAgICAgICAgLy8gRklYTUU6IGltcGxlbWVu
dCBwcm94eSBzdXBwb3J0LgorICAgICAgICAgICAgUmVmUHRyPEpTT046Ok9iamVjdD4gcHJveHk7
CisgICAgICAgICAgICBpdC0+dmFsdWUtPmFzT2JqZWN0KHByb3h5KTsKKyAgICAgICAgICAgIFN0
cmluZyBwcm94eVR5cGU7CisgICAgICAgICAgICBwcm94eS0+Z2V0U3RyaW5nKCJwcm94eVR5cGUi
X3MsIHByb3h5VHlwZSk7CisgICAgICAgICAgICBpZiAoIXBsYXRmb3JtU3VwcG9ydFByb3h5VHlw
ZShwcm94eVR5cGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9
IGVsc2UgaWYgKCFwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShpdC0+a2V5LCBpdC0+dmFsdWUpKQog
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIG1hdGNoZWRDYXBhYmlsaXRpZXMt
PnNldFZhbHVlKGl0LT5rZXksIFJlZlB0cjxKU09OOjpWYWx1ZT4oaXQtPnZhbHVlKSk7CkBAIC03
MjksOCArODI4LDggQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpjcmVhdGVTZXNzaW9uKFZlY3Rv
cjxDYXBhYmlsaXRpZXM+JiYgY2FwYWJpbGl0aWVzTGlzdCwgc3QKICAgICAgICAgICAgICAgICBj
YXBhYmlsaXRpZXNPYmplY3QtPnNldFN0cmluZygicGFnZUxvYWRTdHJhdGVneSJfcywgImVhZ2Vy
Iik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAv
LyBGSVhNRTogaW1wbGVtZW50IHByb3h5IHN1cHBvcnQuCi0gICAgICAgICAgICBjYXBhYmlsaXRp
ZXNPYmplY3QtPnNldE9iamVjdCgicHJveHkiX3MsIEpTT046Ok9iamVjdDo6Y3JlYXRlKCkpOwor
ICAgICAgICAgICAgaWYgKCFjYXBhYmlsaXRpZXMucHJveHkpCisgICAgICAgICAgICAgICAgY2Fw
YWJpbGl0aWVzT2JqZWN0LT5zZXRPYmplY3QoInByb3h5Il9zLCBKU09OOjpPYmplY3Q6OmNyZWF0
ZSgpKTsKICAgICAgICAgICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHRpbWVvdXRzT2JqZWN0ID0g
SlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgICAgIHRpbWVvdXRzT2JqZWN0LT5zZXRJ
bnRlZ2VyKCJzY3JpcHQiX3MsIG1fc2Vzc2lvbi0+c2NyaXB0VGltZW91dCgpLm1pbGxpc2Vjb25k
c0FzPGludD4oKSk7CiAgICAgICAgICAgICB0aW1lb3V0c09iamVjdC0+c2V0SW50ZWdlcigicGFn
ZUxvYWQiX3MsIG1fc2Vzc2lvbi0+cGFnZUxvYWRUaW1lb3V0KCkubWlsbGlzZWNvbmRzQXM8aW50
PigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5oIGIv
U291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmgKaW5kZXggN2ZiMGViZTM3NzUuLmNl
NmQxNWNmZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2Uu
aAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuaApAQCAtMTIzLDYgKzEy
Myw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEpTT046Ok9iamVjdD4gbWF0Y2hDYXBhYmlsaXRp
ZXMoY29uc3QgSlNPTjo6T2JqZWN0JikgY29uc3Q7CiAgICAgYm9vbCBwbGF0Zm9ybVZhbGlkYXRl
Q2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25zdCBSZWZQdHI8SlNPTjo6VmFsdWU+JikgY29u
c3Q7CiAgICAgYm9vbCBwbGF0Zm9ybU1hdGNoQ2FwYWJpbGl0eShjb25zdCBTdHJpbmcmLCBjb25z
dCBSZWZQdHI8SlNPTjo6VmFsdWU+JikgY29uc3Q7CisgICAgYm9vbCBwbGF0Zm9ybVN1cHBvcnRQ
cm94eVR5cGUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBwYXJzZUNhcGFiaWxpdGll
cyhjb25zdCBKU09OOjpPYmplY3QmIGRlc2lyZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYp
IGNvbnN0OwogICAgIHZvaWQgcGxhdGZvcm1QYXJzZUNhcGFiaWxpdGllcyhjb25zdCBKU09OOjpP
YmplY3QmIGRlc2lyZWRDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllcyYpIGNvbnN0OwogICAgIHZv
aWQgY29ubmVjdFRvQnJvd3NlcihWZWN0b3I8Q2FwYWJpbGl0aWVzPiYmLCBGdW5jdGlvbjx2b2lk
IChDb21tYW5kUmVzdWx0JiYpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvZ2xp
Yi9TZXNzaW9uSG9zdEdsaWIuY3BwIGIvU291cmNlL1dlYkRyaXZlci9nbGliL1Nlc3Npb25Ib3N0
R2xpYi5jcHAKaW5kZXggMTc3YWE1NGYyMjIuLjI1ZGNlMTExZGQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViRHJpdmVyL2dsaWIvU2Vzc2lvbkhvc3RHbGliLmNwcAorKysgYi9Tb3VyY2UvV2ViRHJp
dmVyL2dsaWIvU2Vzc2lvbkhvc3RHbGliLmNwcApAQCAtMjY3LDcgKzI2Nyw3IEBAIGJvb2wgU2Vz
c2lvbkhvc3Q6Om1hdGNoQ2FwYWJpbGl0aWVzKEdWYXJpYW50KiBjYXBhYmlsaXRpZXMpCiAKIGJv
b2wgU2Vzc2lvbkhvc3Q6OmJ1aWxkU2Vzc2lvbkNhcGFiaWxpdGllcyhHVmFyaWFudEJ1aWxkZXIq
IGJ1aWxkZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2NhcGFiaWxpdGllcy5hY2NlcHRJbnNlY3Vy
ZUNlcnRzICYmICFtX2NhcGFiaWxpdGllcy5jZXJ0aWZpY2F0ZXMpCisgICAgaWYgKCFtX2NhcGFi
aWxpdGllcy5hY2NlcHRJbnNlY3VyZUNlcnRzICYmICFtX2NhcGFiaWxpdGllcy5jZXJ0aWZpY2F0
ZXMgJiYgIW1fY2FwYWJpbGl0aWVzLnByb3h5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0KGJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBFKCJhe3N2fSIp
KTsKQEAgLTI4NCw2ICsyODQsNDQgQEAgYm9vbCBTZXNzaW9uSG9zdDo6YnVpbGRTZXNzaW9uQ2Fw
YWJpbGl0aWVzKEdWYXJpYW50QnVpbGRlciogYnVpbGRlcikgY29uc3QKICAgICAgICAgZ192YXJp
YW50X2J1aWxkZXJfYWRkKGJ1aWxkZXIsICJ7c3Z9IiwgImNlcnRpZmljYXRlcyIsIGdfdmFyaWFu
dF9idWlsZGVyX2VuZCgmYXJyYXlCdWlsZGVyKSk7CiAgICAgfQogCisgICAgaWYgKG1fY2FwYWJp
bGl0aWVzLnByb3h5KSB7CisgICAgICAgIEdWYXJpYW50QnVpbGRlciBkaWN0QnVpbGRlcjsKKyAg
ICAgICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmZGljdEJ1aWxkZXIsIEdfVkFSSUFOVF9UWVBF
KCJhe3N2fSIpKTsKKyAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZkaWN0QnVpbGRlciwg
Intzdn0iLCAidHlwZSIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKG1fY2FwYWJpbGl0aWVzLnByb3h5
LT50eXBlLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgaWYgKG1fY2FwYWJpbGl0aWVzLnByb3h5
LT5mdHBVUkwpCisgICAgICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmRpY3RCdWlsZGVy
LCAie3N2fSIsICJmdHBVUkwiLCBnX3ZhcmlhbnRfbmV3X3N0cmluZyhtX2NhcGFiaWxpdGllcy5w
cm94eS0+ZnRwVVJMLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGlmIChtX2Nh
cGFiaWxpdGllcy5wcm94eS0+aHR0cFVSTCkKKyAgICAgICAgICAgIGdfdmFyaWFudF9idWlsZGVy
X2FkZCgmZGljdEJ1aWxkZXIsICJ7c3Z9IiwgImh0dHBVUkwiLCBnX3ZhcmlhbnRfbmV3X3N0cmlu
ZyhtX2NhcGFiaWxpdGllcy5wcm94eS0+aHR0cFVSTC0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkp
OworICAgICAgICBpZiAobV9jYXBhYmlsaXRpZXMucHJveHktPmh0dHBzVVJMKQorICAgICAgICAg
ICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZkaWN0QnVpbGRlciwgIntzdn0iLCAiaHR0cHNVUkwi
LCBnX3ZhcmlhbnRfbmV3X3N0cmluZyhtX2NhcGFiaWxpdGllcy5wcm94eS0+aHR0cHNVUkwtPnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgaWYgKG1fY2FwYWJpbGl0aWVzLnByb3h5
LT5zb2Nrc1VSTCkgeworICAgICAgICAgICAgVVJMIHNvY2tzVVJMID0gbV9jYXBhYmlsaXRpZXMu
cHJveHktPnNvY2tzVVJMLnZhbHVlKCk7CisgICAgICAgICAgICBBU1NFUlQobV9jYXBhYmlsaXRp
ZXMucHJveHktPnNvY2tzVmVyc2lvbik7CisgICAgICAgICAgICBzd2l0Y2ggKG1fY2FwYWJpbGl0
aWVzLnByb3h5LT5zb2Nrc1ZlcnNpb24udmFsdWUoKSkgeworICAgICAgICAgICAgY2FzZSA0Ogor
ICAgICAgICAgICAgICAgIGlmIChVUkw6Omhvc3RJc0lQQWRkcmVzcyhzb2Nrc1VSTC5ob3N0KCkp
KQorICAgICAgICAgICAgICAgICAgICBzb2Nrc1VSTC5zZXRQcm90b2NvbCgic29ja3M0Iik7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzb2Nrc1VSTC5zZXRQcm90
b2NvbCgic29ja3M0YSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSA1OgorICAgICAgICAgICAgICAgIHNvY2tzVVJMLnNldFByb3RvY29sKCJzb2NrczUiKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9h
ZGQoJmRpY3RCdWlsZGVyLCAie3N2fSIsICJzb2Nrc1VSTCIsIGdfdmFyaWFudF9uZXdfc3RyaW5n
KHNvY2tzVVJMLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoIW1fY2FwYWJpbGl0aWVzLnByb3h5LT5pZ25vcmVBZGRyZXNzTGlzdC5pc0VtcHR5KCkpIHsK
KyAgICAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcio+IGlnbm9yZUFkZHJlc3NMaXN0KHN0YXRpY19j
YXN0PGNoYXIqKj4oZ19uZXcwKGNoYXIqLCBtX2NhcGFiaWxpdGllcy5wcm94eS0+aWdub3JlQWRk
cmVzc0xpc3Quc2l6ZSgpICsgMSkpKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGkgPSAwOworICAg
ICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBpZ25vcmVBZGRyZXNzIDogbV9jYXBhYmlsaXRpZXMu
cHJveHktPmlnbm9yZUFkZHJlc3NMaXN0KQorICAgICAgICAgICAgICAgIGlnbm9yZUFkZHJlc3NM
aXN0LmdldCgpW2krK10gPSBnX3N0cmR1cChpZ25vcmVBZGRyZXNzLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZkaWN0QnVpbGRlciwgIntzdn0iLCAi
aWdub3JlQWRkcmVzc0xpc3QiLCBnX3ZhcmlhbnRfbmV3X3N0cnYoaWdub3JlQWRkcmVzc0xpc3Qu
Z2V0KCksIC0xKSk7CisgICAgICAgIH0KKyAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKGJ1
aWxkZXIsICJ7c3Z9IiwgInByb3h5IiwgZ192YXJpYW50X2J1aWxkZXJfZW5kKCZkaWN0QnVpbGRl
cikpOworICAgIH0KKwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViRHJpdmVyL2dsaWIvV2ViRHJpdmVyU2VydmljZUdMaWIuY3BwIGIvU291cmNlL1dlYkRyaXZl
ci9nbGliL1dlYkRyaXZlclNlcnZpY2VHTGliLmNwcAppbmRleCA1OTVkMzQzOGU2Ni4uOTQxNzkz
ZDNlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJEcml2ZXIvZ2xpYi9XZWJEcml2ZXJTZXJ2aWNl
R0xpYi5jcHAKKysrIGIvU291cmNlL1dlYkRyaXZlci9nbGliL1dlYkRyaXZlclNlcnZpY2VHTGli
LmNwcApAQCAtNzMsNCArNzMsOSBAQCBib29sIFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtQ29t
cGFyZUJyb3dzZXJWZXJzaW9ucyhjb25zdCBTdHJpbmcmIHJlcXVpcmVkVmVycwogICAgICAgICB8
fCAocHJvcG9zZWRNYWpvciA9PSByZXF1aXJlZE1ham9yICYmIHByb3Bvc2VkTWlub3IgPT0gcmVx
dWlyZWRNaW5vciAmJiBwcm9wb3NlZE1pY3JvID49IHJlcXVpcmVkTWljcm8pOwogfQogCitib29s
IFdlYkRyaXZlclNlcnZpY2U6OnBsYXRmb3JtU3VwcG9ydFByb3h5VHlwZShjb25zdCBTdHJpbmcm
IHByb3h5VHlwZSkgY29uc3QKK3sKKyAgICByZXR1cm4gcHJveHlUeXBlICE9ICJwYWMiOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJEcml2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTRiMzU1YTA5YTIuLmM0MWQ4
MTg2M2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTExLTExICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IGlt
cGxlbWVudCBwcm94eSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODA0MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lv
bi5jcHA6CisgICAgICAgIChwYXJzZVByb3h5Q2FwYWJpbGl0aWVzKTogUGFyc2UgdGhlIHByb3h5
IHNldHRpbmdzIGZyb20gY2FwYWJpbGl0aWVzLgorICAgICAgICAod2Via2l0QXV0b21hdGlvblNl
c3Npb25DcmVhdGUpOiBTZXQgdGhlIHByb3h5IHNldHRpbmdzIHJlY2VpdmVkIGZyb20gY2FwYWJp
bGl0aWVzLgorCiAyMDE5LTExLTEwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgU3RvcmFnZU1hbmFnZXJTZXQubV9zdG9yYWdlQXJlYXMgc2hvdWxkIHVzZSB3
ZWFrIHBvaW50ZXJzIHRvIFN0b3JhZ2VBcmVhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXgg
MjE4NjYwNDUxOTIuLjc4ODRlOGE1NzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC0y
OTIsNiArMjkyLDM1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9hdXRvbWF0aW9uX3Nlc3Npb25fY2xh
c3NfaW5pdChXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbkNsYXNzKiBzCiB9CiAKICNpZiBFTkFCTEUo
UkVNT1RFX0lOU1BFQ1RPUikKK3N0YXRpYyBXZWJLaXROZXR3b3JrUHJveHlNb2RlIHBhcnNlUHJv
eHlDYXBhYmlsaXRpZXMoY29uc3QgSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OkNsaWVudDo6
U2Vzc2lvbkNhcGFiaWxpdGllczo6UHJveHkmIHByb3h5LCBXZWJLaXROZXR3b3JrUHJveHlTZXR0
aW5ncyoqIHNldHRpbmdzKQoreworICAgIGlmIChwcm94eS50eXBlID09ICJzeXN0ZW0iKQorICAg
ICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfUFJPWFlfTU9ERV9ERUZBVUxUOworCisgICAgaWYg
KHByb3h5LnR5cGUgPT0gImRpcmVjdCIpCisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19Q
Uk9YWV9NT0RFX05PX1BST1hZOworCisgICAgaWYgKCFwcm94eS5pZ25vcmVBZGRyZXNzTGlzdC5p
c0VtcHR5KCkpIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyKj4gaWdub3JlQWRkcmVzc0xpc3Qo
c3RhdGljX2Nhc3Q8Y2hhcioqPihnX25ldzAoY2hhciosIHByb3h5Lmlnbm9yZUFkZHJlc3NMaXN0
LnNpemUoKSArIDEpKSk7CisgICAgICAgIHVuc2lnbmVkIGkgPSAwOworICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIGlnbm9yZUFkZHJlc3MgOiBwcm94eS5pZ25vcmVBZGRyZXNzTGlzdCkKKyAgICAg
ICAgICAgIGlnbm9yZUFkZHJlc3NMaXN0LmdldCgpW2krK10gPSBnX3N0cmR1cChpZ25vcmVBZGRy
ZXNzLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAqc2V0dGluZ3MgPSB3ZWJraXRfbmV0d29ya19w
cm94eV9zZXR0aW5nc19uZXcobnVsbHB0ciwgaWdub3JlQWRkcmVzc0xpc3QuZ2V0KCkpOworICAg
IH0gZWxzZQorICAgICAgICAqc2V0dGluZ3MgPSB3ZWJraXRfbmV0d29ya19wcm94eV9zZXR0aW5n
c19uZXcobnVsbHB0ciwgbnVsbHB0cik7CisKKyAgICBpZiAocHJveHkuZnRwVVJMKQorICAgICAg
ICB3ZWJraXRfbmV0d29ya19wcm94eV9zZXR0aW5nc19hZGRfcHJveHlfZm9yX3NjaGVtZSgqc2V0
dGluZ3MsICJmdHAiLCBwcm94eS5mdHBVUkwtPnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChwcm94
eS5odHRwVVJMKQorICAgICAgICB3ZWJraXRfbmV0d29ya19wcm94eV9zZXR0aW5nc19hZGRfcHJv
eHlfZm9yX3NjaGVtZSgqc2V0dGluZ3MsICJodHRwIiwgcHJveHkuaHR0cFVSTC0+dXRmOCgpLmRh
dGEoKSk7CisgICAgaWYgKHByb3h5Lmh0dHBzVVJMKQorICAgICAgICB3ZWJraXRfbmV0d29ya19w
cm94eV9zZXR0aW5nc19hZGRfcHJveHlfZm9yX3NjaGVtZSgqc2V0dGluZ3MsICJodHRwcyIsIHBy
b3h5Lmh0dHBzVVJMLT51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAocHJveHkuc29ja3NVUkwpCisg
ICAgICAgIHdlYmtpdF9uZXR3b3JrX3Byb3h5X3NldHRpbmdzX2FkZF9wcm94eV9mb3Jfc2NoZW1l
KCpzZXR0aW5ncywgInNvY2tzIiwgcHJveHkuc29ja3NVUkwtPnV0ZjgoKS5kYXRhKCkpOworCisg
ICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1BST1hZX01PREVfQ1VTVE9NOworfQorCiBXZWJLaXRB
dXRvbWF0aW9uU2Vzc2lvbiogd2Via2l0QXV0b21hdGlvblNlc3Npb25DcmVhdGUoV2ViS2l0V2Vi
Q29udGV4dCogd2ViQ29udGV4dCwgY29uc3QgY2hhciogc2Vzc2lvbklELCBjb25zdCBJbnNwZWN0
b3I6OlJlbW90ZUluc3BlY3Rvcjo6Q2xpZW50OjpTZXNzaW9uQ2FwYWJpbGl0aWVzJiBjYXBhYmls
aXRpZXMpCiB7CiAgICAgYXV0byogc2Vzc2lvbiA9IFdFQktJVF9BVVRPTUFUSU9OX1NFU1NJT04o
Z19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0FVVE9NQVRJT05fU0VTU0lPTiwgImlkIiwgc2Vzc2lv
bklELCBudWxscHRyKSk7CkBAIC0zMDMsNiArMzMyLDEzIEBAIFdlYktpdEF1dG9tYXRpb25TZXNz
aW9uKiB3ZWJraXRBdXRvbWF0aW9uU2Vzc2lvbkNyZWF0ZShXZWJLaXRXZWJDb250ZXh0KiB3ZWJD
b250CiAgICAgICAgIGlmICh0bHNDZXJ0aWZpY2F0ZSkKICAgICAgICAgICAgIHdlYmtpdF93ZWJf
Y29udGV4dF9hbGxvd190bHNfY2VydGlmaWNhdGVfZm9yX2hvc3Qod2ViQ29udGV4dCwgdGxzQ2Vy
dGlmaWNhdGUuZ2V0KCksIGNlcnRpZmljYXRlLmZpcnN0LnV0ZjgoKS5kYXRhKCkpOwogICAgIH0K
KyAgICBpZiAoY2FwYWJpbGl0aWVzLnByb3h5KSB7CisgICAgICAgIFdlYktpdE5ldHdvcmtQcm94
eVNldHRpbmdzKiBwcm94eVNldHRpbmdzID0gbnVsbHB0cjsKKyAgICAgICAgYXV0byBwcm94eU1v
ZGUgPSBwYXJzZVByb3h5Q2FwYWJpbGl0aWVzKCpjYXBhYmlsaXRpZXMucHJveHksICZwcm94eVNl
dHRpbmdzKTsKKyAgICAgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF9uZXR3b3JrX3Byb3h5X3Nl
dHRpbmdzKHdlYkNvbnRleHQsIHByb3h5TW9kZSwgcHJveHlTZXR0aW5ncyk7CisgICAgICAgIGlm
IChwcm94eVNldHRpbmdzKQorICAgICAgICAgICAgd2Via2l0X25ldHdvcmtfcHJveHlfc2V0dGlu
Z3NfZnJlZShwcm94eVNldHRpbmdzKTsKKyAgICB9CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL0NoYW5nZUxvZyBiL1dlYkRyaXZlclRl
c3RzL0NoYW5nZUxvZwppbmRleCAzOWQ4ZWVhZmEwZi4uYTMzMzIyOTBiMDYgMTAwNjQ0Ci0tLSBh
L1dlYkRyaXZlclRlc3RzL0NoYW5nZUxvZworKysgYi9XZWJEcml2ZXJUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAxOS0xMS0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViRHJpdmVyOiBpbXBsZW1lbnQgcHJveHkgc3Vw
cG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgw
NDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5z
a2lwIHRoZSB0ZXN0cyB0aGF0IGFyZSBub3cgcGFzc2luZy4KKworICAgICAgICAqIFRlc3RFeHBl
Y3RhdGlvbnMuanNvbjoKKwogMjAxOS0xMS0wOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBpbXBsZW1lbnQgZ2V0IHBhZ2Ug
c291cmNlIGNvbW1hbmQKZGlmZiAtLWdpdCBhL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMuanNvbiBiL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMuanNvbgppbmRleCA4M2Nk
NzUwYzIwNC4uOTYxZWQ5YzQyNjkgMTAwNjQ0Ci0tLSBhL1dlYkRyaXZlclRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMuanNvbgorKysgYi9XZWJEcml2ZXJUZXN0cy9UZXN0RXhwZWN0YXRpb25zLmpzb24K
QEAgLTc2MywxMTggKzc2Myw2IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9LAot
ICAgICJpbXBvcnRlZC93M2Mvd2ViZHJpdmVyL3Rlc3RzL25ld19zZXNzaW9uL2ludmFsaWRfY2Fw
YWJpbGl0aWVzLnB5IjogewotICAgICAgICAic3VidGVzdHMiOiB7Ci0gICAgICAgICAgICAidGVz
dF9pbnZhbGlkX3ZhbHVlc1twcm94eS0xLTxsYW1iZGE+MF0iOiB7Ci0gICAgICAgICAgICAgICAg
ImV4cGVjdGVkIjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5v
cmcvYi8xODA0MDgifX0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAidGVzdF9pbnZhbGlk
X3ZhbHVlc1twcm94eS0xLTxsYW1iZGE+MV0iOiB7Ci0gICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogeyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODA0
MDgifX0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAidGVzdF9pbnZhbGlkX3ZhbHVlc1tw
cm94eS12YWx1ZTI4LTxsYW1iZGE+MF0iOiB7Ci0gICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
eyJhbGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODA0MDgi
fX0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAidGVzdF9pbnZhbGlkX3ZhbHVlc1twcm94
eS12YWx1ZTI4LTxsYW1iZGE+MV0iOiB7Ci0gICAgICAgICAgICAgICAgImV4cGVjdGVkIjogeyJh
bGwiOiB7InN0YXR1cyI6IFsiRkFJTCJdLCAiYnVnIjogIndlYmtpdC5vcmcvYi8xODA0MDgifX0K
LSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAidGVzdF9pbnZhbGlkX3ZhbHVlc1twcm94eS17
fS08bGFtYmRhPjBdIjogewotICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHsiYWxsIjogeyJz
dGF0dXMiOiBbIkZBSUwiXSwgImJ1ZyI6ICJ3ZWJraXQub3JnL2IvMTgwNDA4In19Ci0gICAgICAg
ICAgICB9LAotICAgICAgICAgICAgInRlc3RfaW52YWxpZF92YWx1ZXNbcHJveHkte30tPGxhbWJk
YT4xXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzAtPGxhbWJkYT4w
XSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJG
QUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzAtPGxhbWJkYT4xXSI6
IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlM
Il0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzEtPGxhbWJkYT4wXSI6IHsK
LSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0s
ICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzEtPGxhbWJkYT4xXSI6IHsKLSAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJi
dWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzItPGxhbWJkYT4wXSI6IHsKLSAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWci
OiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0
ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzItPGxhbWJkYT4xXSI6IHsKLSAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0
X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzMtPGxhbWJkYT4wXSI6IHsKLSAgICAgICAgICAg
ICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Vi
a2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2lu
dmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzMtPGxhbWJkYT4xXSI6IHsKLSAgICAgICAgICAgICAg
ICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0
Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFs
aWRfdmFsdWVzW3Byb3h5LXZhbHVlMzQtPGxhbWJkYT4wXSI6IHsKLSAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9y
Zy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRf
dmFsdWVzW3Byb3h5LXZhbHVlMzQtPGxhbWJkYT4xXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9i
LzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFs
dWVzW3Byb3h5LXZhbHVlMzUtPGxhbWJkYT4wXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0
ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4
MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVz
W3Byb3h5LXZhbHVlMzUtPGxhbWJkYT4xXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQi
OiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQw
OCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3By
b3h5LXZhbHVlMzYtPGxhbWJkYT4wXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7
ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9
fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5
LXZhbHVlMzYtPGxhbWJkYT4xXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFs
bCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQot
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZh
bHVlMzctPGxhbWJkYT4wXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6
IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVl
MzctPGxhbWJkYT4xXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsi
c3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzgt
PGxhbWJkYT4wXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3Rh
dHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAg
ICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzgtPGxh
bWJkYT4xXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVz
IjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzktPGxhbWJk
YT4wXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjog
WyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlMzktPGxhbWJkYT4x
XSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJG
QUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlNDAtPGxhbWJkYT4wXSI6
IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlM
Il0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAg
ICAgICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlNDAtPGxhbWJkYT4xXSI6IHsK
LSAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0s
ICJidWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAg
ICAgICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlNDEtPGxhbWJkYT4wXSI6IHsKLSAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJi
dWciOiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
ICJ0ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlNDEtPGxhbWJkYT4xXSI6IHsKLSAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWci
OiAid2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0
ZXN0X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlNDItPGxhbWJkYT4wXSI6IHsKLSAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAi
d2Via2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0
X2ludmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlNDItPGxhbWJkYT4xXSI6IHsKLSAgICAgICAgICAg
ICAgICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Vi
a2l0Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2lu
dmFsaWRfdmFsdWVzW3Byb3h5LXZhbHVlNDMtPGxhbWJkYT4wXSI6IHsKLSAgICAgICAgICAgICAg
ICAiZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0
Lm9yZy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFs
aWRfdmFsdWVzW3Byb3h5LXZhbHVlNDMtPGxhbWJkYT4xXSI6IHsKLSAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9y
Zy9iLzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRf
dmFsdWVzW3Byb3h5LXZhbHVlNDQtPGxhbWJkYT4wXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9i
LzE4MDQwOCJ9fQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJ0ZXN0X2ludmFsaWRfdmFs
dWVzW3Byb3h5LXZhbHVlNDQtPGxhbWJkYT4xXSI6IHsKLSAgICAgICAgICAgICAgICAiZXhwZWN0
ZWQiOiB7ImFsbCI6IHsic3RhdHVzIjogWyJGQUlMIl0sICJidWciOiAid2Via2l0Lm9yZy9iLzE4
MDQwOCJ9fQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSwKICAgICAiaW1wb3J0ZWQv
dzNjL3dlYmRyaXZlci90ZXN0cy9uZXdfc2Vzc2lvbi9kZWZhdWx0X3ZhbHVlcy5weSI6IHsKICAg
ICAgICAgInN1YnRlc3RzIjogewogICAgICAgICAgICAgInRlc3RfdmFsaWRfYnV0X3VubWF0Y2hh
YmxlX2tleSI6IHsK
</data>
<flag name="review"
          id="399003"
          type_id="1"
          status="+"
          setter="clopez"
    />
    <flag name="commit-queue"
          id="399009"
          type_id="3"
          status="-"
          setter="clopez"
    />
          </attachment>
      

    </bug>

</bugzilla>