<?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>202394</bug_id>
          
          <creation_ts>2019-10-01 02:16:18 -0700</creation_ts>
          <short_desc>ImageBitmap should be serializable</short_desc>
          <delta_ts>2019-10-04 07:54:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</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>
          
          <blocked>183720</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Lord">clord</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>jsbell</cc>
    
    <cc>mark.lam</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1575468</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2019-10-01 02:16:18 -0700</bug_when>
    <thetext>Currently an ImageBitmap can be sent in sendMessage if it&apos;s transferred, but it can&apos;t be copied. As it is serializable in the spec[1], this should work.

[1] https://html.spec.whatwg.org/multipage/imagebitmap-and-animations.html#imagebitmap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575485</commentid>
    <comment_count>1</comment_count>
      <attachid>379887</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2019-10-01 03:45:44 -0700</bug_when>
    <thetext>Created attachment 379887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576797</commentid>
    <comment_count>2</comment_count>
      <attachid>380208</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2019-10-04 03:00:11 -0700</bug_when>
    <thetext>Created attachment 380208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576806</commentid>
    <comment_count>3</comment_count>
      <attachid>380208</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-04 04:08:17 -0700</bug_when>
    <thetext>Comment on attachment 380208
Patch

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

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:915
&gt; +        auto buffer = imageBitmap.buffer();

It&apos;s usually preferable to use `auto*` to explicitly denote that a pointer of some sorts is being returned.

Given the pointer, what should happen if it is null? It can be, at least theoretically. Should a validation error be reported in this case. or should serialization still succeed?

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:927
&gt; +        write(static_cast&lt;int32_t&gt;(imageBitmap.originClean()));

origin-clean being a boolean, I think using uint8_t type here and in the deserialization makes more sense, if possible.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:932
&gt; +        write(arrayBuffer-&gt;byteLength());

Nit: perhaps this should be explicitly casted to uint32_t to make the intended type clear, even when `unsigned` as returned by byteLength() is an equivalent.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2769
&gt; +        read(originClean);
&gt; +        read(logicalWidth);
&gt; +        read(logicalHeight);
&gt; +        read(resolutionScale);

These returns should also probable be checked, perhaps in the same if-statement to keep things compact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576810</commentid>
    <comment_count>4</comment_count>
      <attachid>380211</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2019-10-04 04:44:45 -0700</bug_when>
    <thetext>Created attachment 380211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576835</commentid>
    <comment_count>5</comment_count>
      <attachid>380211</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-10-04 06:24:49 -0700</bug_when>
    <thetext>Comment on attachment 380211
Patch

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

Patch looks good, just some additional checks required to cover the odd cases.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:923
&gt; +        auto imageData = buffer-&gt;getPremultipliedImageData(IntRect(0, 0, logicalSize.width(), logicalSize.height()));

Looked it up only now -- getPremultipliedImageData() can possibly return null, so we have to null-check around that as well.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2776
&gt; +        auto imageData = Uint8ClampedArray::tryCreate(WTFMove(arrayBuffer), 0, arrayBuffer-&gt;byteLength());

tryCreate() possibly returns null, so we have to null-check it.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:2777
&gt; +        auto buffer = ImageBuffer::create(FloatSize(logicalWidth, logicalHeight), Unaccelerated, resolutionScale);

Similar here -- ImageBuffer::create() can return null if internally the initialization doesn&apos;t succeed (e.g. memory allocation or some other step fails).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576844</commentid>
    <comment_count>6</comment_count>
      <attachid>380218</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2019-10-04 07:04:56 -0700</bug_when>
    <thetext>Created attachment 380218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576853</commentid>
    <comment_count>7</comment_count>
      <attachid>380218</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-04 07:53:24 -0700</bug_when>
    <thetext>Comment on attachment 380218
Patch

Clearing flags on attachment: 380218

Committed r250721: &lt;https://trac.webkit.org/changeset/250721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576854</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-04 07:53:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576855</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-04 07:54:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/55982648&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379887</attachid>
            <date>2019-10-01 03:45:44 -0700</date>
            <delta_ts>2019-10-04 02:59:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202394-20191001114542.patch</filename>
            <type>text/plain</type>
            <size>9412</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzI2ODFhNGZjNmNhNjk5
MzA3NWQyMTI1YzM3ZmU4ZjJlZjJkMTAxMy4uNjJlMGFiZDE3NmI4ZjMzNDc0ZjAyYzQ1NDY0MDRj
YjAzN2VkYjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEwLTAxICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbWFnZUJpdG1hcCBzaG91bGQg
YmUgc2VyaWFsaXphYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDIzOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9p
bWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1zZXJpYWxpemFibGUuaHRtbAorCisgICAgICAg
ICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEltYWdlQml0bWFwKToKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkVHJhbnNmZXJyZWRJbWFnZUJpdG1hcCk6CisgICAgICAg
IChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cmVhZEltYWdlQml0bWFwKToKKyAgICAgICAg
KFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkVGVybWluYWwpOgorCiAyMDE5LTA5LTIz
ICBDaGFybGllIFR1cm5lciAgPGN0dXJuZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVh
bWVyXSBpc0FWQzFDb2RlY1N1cHBvcnRlZCBpcyBjcmFzaGluZyBzZXZlcmFsIG1lZGlhIHNvdXJj
ZSB0ZXN0cyBkdWUgdG8gYXZjMS40ZDQwMDEgY29kZWMgdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggNzhlZjFm
ZWNiYTE0M2EwYWYyZjc1YmVmYjM4Yjk2NDQ5ZjBkNDUzYS4uNzY5NWViZDFkN2E1MzQ1YzgyZGQ2
MDk5M2U1YmI1MTEyNzAyZTk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0xNjYsNiArMTY2LDcgQEAgZW51bSBT
ZXJpYWxpemF0aW9uVGFnIHsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBSVENDZXJ0aWZpY2F0
ZVRhZyA9IDQ0LAogI2VuZGlmCisgICAgSW1hZ2VCaXRtYXBUYWcgPSA0NSwKICAgICBFcnJvclRh
ZyA9IDI1NQogfTsKIApAQCAtMzQ4LDYgKzM0OSw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJpbmdEYXRhSXM4Qml0RmxhZyA9IDB4ODAwMDAwMDA7CiAgKiAgICB8IERPTVF1YWQKICAqICAg
IHwgSW1hZ2VCaXRtYXBUcmFuc2ZlclRhZyA8dmFsdWU6dWludDMyX3Q+CiAgKiAgICB8IFJUQ0Nl
cnRpZmljYXRlVGFnCisgKiAgICB8IEltYWdlQml0bWFwVGFnIDxvcmlnaW5DbGVhbjppbnQzMl90
PiA8bG9naWNhbFdpZHRoOmludDMyX3Q+IDxsb2dpY2FsSGVpZ2h0OmludDMyX3Q+IDxyZXNvbHV0
aW9uU2NhbGU6ZG91YmxlPiA8Ynl0ZUxlbmd0aDp1aW50MzJfdD4oPGltYWdlQnl0ZURhdGE6dWlu
dDhfdD4pCiAgKgogICogSW5zaWRlIGNlcnRpZmljYXRlLCBkYXRhIGlzIHNlcmlhbGl6ZWQgaW4g
dGhpcyBmb3JtYXQgYXMgcGVyIHNwZWM6CiAgKgpAQCAtOTA5LDggKzkxMSwyNiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gQ29weWluZyBJ
bWFnZUJpdG1hcHMgaXMgbm90IHlldCBzdXBwb3J0ZWQuCi0gICAgICAgIGNvZGUgPSBTZXJpYWxp
emF0aW9uUmV0dXJuQ29kZTo6VmFsaWRhdGlvbkVycm9yOworICAgICAgICBhdXRvJiBpbWFnZUJp
dG1hcCA9IGpzQ2FzdDxKU0ltYWdlQml0bWFwKj4ob2JqKS0+d3JhcHBlZCgpOworICAgICAgICBh
dXRvIGJ1ZmZlciA9IGltYWdlQml0bWFwLmJ1ZmZlcigpOworCisgICAgICAgIGNvbnN0IEludFNp
emUmIGxvZ2ljYWxTaXplID0gYnVmZmVyLT5sb2dpY2FsU2l6ZSgpOworICAgICAgICBhdXRvIGlt
YWdlRGF0YSA9IGJ1ZmZlci0+Z2V0UHJlbXVsdGlwbGllZEltYWdlRGF0YShJbnRSZWN0KDAsIDAs
IGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxTaXplLmhlaWdodCgpKSk7CisKKyAgICAgICAg
UmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlciA9IGltYWdlRGF0YS0+cG9zc2libHlTaGFy
ZWRCdWZmZXIoKTsKKyAgICAgICAgaWYgKCFhcnJheUJ1ZmZlcikgeworICAgICAgICAgICAgY29k
ZSA9IFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlOjpWYWxpZGF0aW9uRXJyb3I7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB3cml0ZShJbWFnZUJpdG1hcFRhZyk7Cisg
ICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PGludDMyX3Q+KGltYWdlQml0bWFwLm9yaWdpbkNsZWFu
KCkpKTsKKyAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8aW50MzJfdD4obG9naWNhbFNpemUud2lk
dGgoKSkpOworICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDxpbnQzMl90Pihsb2dpY2FsU2l6ZS5o
ZWlnaHQoKSkpOworICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDxkb3VibGU+KGJ1ZmZlci0+cmVz
b2x1dGlvblNjYWxlKCkpKTsKKworICAgICAgICB3cml0ZShhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0
aCgpKTsKKyAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVm
ZmVyLT5kYXRhKCkpLCBhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKICAgICB9CiAKICAgICBi
b29sIGR1bXBJZlRlcm1pbmFsKEpTVmFsdWUgdmFsdWUsIFNlcmlhbGl6YXRpb25SZXR1cm5Db2Rl
JiBjb2RlKQpAQCAtMjY3Miw3ICsyNjkyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRv
SlNOZXdseUNyZWF0ZWQobV9leGVjLCBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihtX2dsb2Jh
bE9iamVjdCksIERPTVF1YWQ6OmNyZWF0ZShwMS52YWx1ZSgpLCBwMi52YWx1ZSgpLCBwMy52YWx1
ZSgpLCBwNC52YWx1ZSgpKSk7CiAgICAgfQogCi0gICAgSlNWYWx1ZSByZWFkSW1hZ2VCaXRtYXAo
KQorICAgIEpTVmFsdWUgcmVhZFRyYW5zZmVycmVkSW1hZ2VCaXRtYXAoKQogICAgIHsKICAgICAg
ICAgdWludDMyX3QgaW5kZXg7CiAgICAgICAgIGJvb2wgaW5kZXhTdWNjZXNzZnVsbHlSZWFkID0g
cmVhZChpbmRleCk7CkBAIC0yNzM1LDYgKzI3NTUsMzEgQEAgcHJpdmF0ZToKICAgICB9CiAjZW5k
aWYKIAorICAgIEpTVmFsdWUgcmVhZEltYWdlQml0bWFwKCkKKyAgICB7CisgICAgICAgIGludDMy
X3Qgb3JpZ2luQ2xlYW47CisgICAgICAgIGludDMyX3QgbG9naWNhbFdpZHRoOworICAgICAgICBp
bnQzMl90IGxvZ2ljYWxIZWlnaHQ7CisgICAgICAgIGRvdWJsZSByZXNvbHV0aW9uU2NhbGU7Cisg
ICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXI7CisKKyAgICAgICAgcmVhZChv
cmlnaW5DbGVhbik7CisgICAgICAgIHJlYWQobG9naWNhbFdpZHRoKTsKKyAgICAgICAgcmVhZChs
b2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmVhZChyZXNvbHV0aW9uU2NhbGUpOworICAgICAgICBp
ZiAoIXJlYWRBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlcikpIHsKKyAgICAgICAgICAgIGZhaWwoKTsK
KyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBhdXRv
IGltYWdlRGF0YSA9IFVpbnQ4Q2xhbXBlZEFycmF5Ojp0cnlDcmVhdGUoV1RGTW92ZShhcnJheUJ1
ZmZlciksIDAsIGFycmF5QnVmZmVyLT5ieXRlTGVuZ3RoKCkpOworICAgICAgICBhdXRvIGJ1ZmZl
ciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoRmxvYXRTaXplKGxvZ2ljYWxXaWR0aCwgbG9naWNhbEhl
aWdodCksIFVuYWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSk7CisgICAgICAgIGJ1ZmZlci0+
cHV0Qnl0ZUFycmF5KCppbWFnZURhdGEsIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRp
cGxpZWQsIEludFNpemUobG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0KSwgSW50UmVjdCgwLCAw
LCBsb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQpLCBJbnRQb2ludCgpKTsKKworICAgICAgICBh
dXRvIGJpdG1hcCA9IEltYWdlQml0bWFwOjpjcmVhdGUoeyBXVEZNb3ZlKGJ1ZmZlciksIHN0YXRp
Y19jYXN0PGJvb2w+KG9yaWdpbkNsZWFuKSB9KTsKKyAgICAgICAgcmV0dXJuIGdldEpTVmFsdWUo
Yml0bWFwKTsKKyAgICB9CisKICAgICBKU1ZhbHVlIHJlYWRUZXJtaW5hbCgpCiAgICAgewogICAg
ICAgICBTZXJpYWxpemF0aW9uVGFnIHRhZyA9IHJlYWRUYWcoKTsKQEAgLTMwMjQsMTIgKzMwNjks
MTQgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBET01RdWFkVGFnOgogICAgICAgICAgICAgcmV0
dXJuIHJlYWRET01RdWFkKCk7CiAgICAgICAgIGNhc2UgSW1hZ2VCaXRtYXBUcmFuc2ZlclRhZzoK
LSAgICAgICAgICAgIHJldHVybiByZWFkSW1hZ2VCaXRtYXAoKTsKKyAgICAgICAgICAgIHJldHVy
biByZWFkVHJhbnNmZXJyZWRJbWFnZUJpdG1hcCgpOwogI2lmIEVOQUJMRShXRUJfUlRDKQogICAg
ICAgICBjYXNlIFJUQ0NlcnRpZmljYXRlVGFnOgogICAgICAgICAgICAgcmV0dXJuIHJlYWRSVEND
ZXJ0aWZpY2F0ZSgpOwogCiAjZW5kaWYKKyAgICAgICAgY2FzZSBJbWFnZUJpdG1hcFRhZzoKKyAg
ICAgICAgICAgIHJldHVybiByZWFkSW1hZ2VCaXRtYXAoKTsKICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgIG1fcHRyLS07IC8vIFB1c2ggdGhlIHRhZyBiYWNrCiAgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZDQ1NDU0OWM2
ZWRhODM5ZjhkNmQyNWZmNzI2YTg3MjM0MjZkYzljNS4uZTQ2MzdlNDg0ZDRhZTY2YzVhZjBkMWU2
MWIzNTg0M2Q4YzMwZDExNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTktMTAtMDEgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIEltYWdlQml0bWFwIHNob3VsZCBiZSBzZXJpYWxpemFibGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjM5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcG9ydCBmcm9tIHVwc3RyZWFtIGlz
c3VlICMxOTQzOSAoT09QUzogVXBkYXRlIHdpdGggcmV2aXNpb24gb24gYWNjZXB0YW5jZSkKKwor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3JlYXRl
SW1hZ2VCaXRtYXAtc2VyaWFsaXphYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1h
cC1zZXJpYWxpemFibGUuaHRtbDogQWRkZWQuCisKIDIwMTktMDktMjMgIFJvYiBCdWlzICA8cmJ1
aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBTeW5jIG9wZXJhdG9yIGRpY3Rpb25hcnkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250
ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXNlcmlhbGl6YWJsZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4
dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1zZXJpYWxpemFibGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcxODYyNWRiOGFmMmQ3YWI2ZGFmZTIyY2IzN2EyNDlmYzMxMWU3ZTYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1zZXJpYWxpemFibGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKworUEFTUyBTZXJpYWxpemUgSW1hZ2VCaXRt
YXAgY3JlYXRlZCBmcm9tIGFuIEhUTUxDYW52YXNFbGVtZW50IAorUEFTUyBTZXJpYWxpemUgSW1h
Z2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFuIEhUTUxWaWRlb0VsZW1lbnQgCitQQVNTIFNlcmlhbGl6
ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYW4gSFRNTFZpZGVvRWxlbWVudCBmcm9tIGEgZGF0
YSBVUkwgCitQQVNTIFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYSBiaXRtYXAg
SFRNTEltYWdlRWxlbWVudCAKK1BBU1MgU2VyaWFsaXplIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJv
bSBhIHZlY3RvciBIVE1MSW1hZ2VFbGVtZW50IAorRkFJTCBTZXJpYWxpemUgSW1hZ2VCaXRtYXAg
Y3JlYXRlZCBmcm9tIGEgYml0bWFwIFNWR0ltYWdlRWxlbWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3Ii
CitGQUlMIFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYSB2ZWN0b3IgU1ZHSW1h
Z2VFbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgU2VyaWFsaXplIEltYWdlQml0bWFw
IGNyZWF0ZWQgZnJvbSBhbiBPZmZzY3JlZW5DYW52YXMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ3Rlc3RDdHguZmlsbFN0eWxlID0gInJnYigyNTUsIDAsIDApIicp
IgorRkFJTCBTZXJpYWxpemUgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFuIEltYWdlRGF0YSBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IGNyZWF0ZUltYWdlQml0bWFwIHdpdGggSW1hZ2VEYXRhIGlzIG5vdCBpbXBsZW1lbnRl
ZCIKK1BBU1MgU2VyaWFsaXplIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSBhbiBJbWFnZUJpdG1h
cCAKK1BBU1MgU2VyaWFsaXplIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSBhIEJsb2IgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRj
b250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXNlcmlhbGl6YWJsZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvaW1h
Z2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtc2VyaWFsaXphYmxlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzlhODhjNjNkM2ZhODIzZmIwNDA5OTgyZDc0ZTgyNTJmMmVhNTU3ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0
L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXNlcmlhbGl6YWJsZS5odG1sCkBAIC0wLDAg
KzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5j
cmVhdGVJbWFnZUJpdG1hcCBzZXJpYWxpemUgdGVzdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9t
ZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9uYW1lc3BhY2VzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJjb21tb24uc3ViLmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9
bG9nPjwvZGl2PgorPHNjcmlwdD4KK2xldCB3b3JrZXIsIGNvbnRpbnVhdGlvbnMgPSB7fTsKK3Nl
dHVwKGZ1bmN0aW9uKCkgeworICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoInRyYW5zZmVyLXdvcmtl
ci5qcyIpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24o
ZXZlbnQpIHsKKyAgICAgICAgbGV0IHsgbmFtZSwgYml0bWFwIH0gPSBldmVudC5kYXRhOworICAg
ICAgICBpZiAoY29udGludWF0aW9ucy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkgeworICAgICAgICAg
ICAgY29udGludWF0aW9uc1tuYW1lXShiaXRtYXApOworICAgICAgICB9CisgICAgfSk7Cit9KTsK
KworZm9yIChsZXQgeyBuYW1lLCBmYWN0b3J5IH0gb2YgaW1hZ2VTb3VyY2VUeXBlcykgeworICAg
IHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICAgIHJldHVybiBmYWN0b3J5KCkudGhl
bihjcmVhdGVJbWFnZUJpdG1hcCkudGhlbihmdW5jdGlvbihiaXRtYXApIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoYml0bWFwLndpZHRoLCAyMCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGJpdG1hcC5oZWlnaHQsIDIwKTsKKworICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdl
KHsgbmFtZTogdC5uYW1lLCBiaXRtYXA6IGJpdG1hcCB9KTsKKworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhiaXRtYXAud2lkdGgsIDIwKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYml0
bWFwLmhlaWdodCwgMjApOworCisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rp
b24ocmVzb2x2ZSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbnNbdC5uYW1lXSA9IHJl
c29sdmU7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkudGhlbihmdW5jdGlvbihiaXRtYXAp
IHsKKyAgICAgICAgICAgIGFzc2VydF9jbGFzc19zdHJpbmcoYml0bWFwLCAiSW1hZ2VCaXRtYXAi
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYml0bWFwLndpZHRoLCAyMCk7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGJpdG1hcC5oZWlnaHQsIDIwKTsKKyAgICAgICAgfSk7CisgICAg
fSwgYFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gJHtuYW1lfWApOworfQorPC9z
Y3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380208</attachid>
            <date>2019-10-04 03:00:11 -0700</date>
            <delta_ts>2019-10-04 04:44:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202394-20191004110010.patch</filename>
            <type>text/plain</type>
            <size>11382</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWE1ODQ0ZmQ1ZTgwYTJj
N2Q5MDRhMmU3ZjYwZjgxMDY5MWQxMThjOC4uMTA2Y2RkMTVmM2IzNzEyZTk1NjZhMDBlNzBkNDlj
MzAwOGYzNWY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEwLTAyICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbWFnZUJpdG1hcCBzaG91bGQg
YmUgc2VyaWFsaXphYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDIzOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9p
bWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1zZXJpYWxpemFibGUuaHRtbAorCisgICAgICAg
ICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEltYWdlQml0bWFwKToKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkVHJhbnNmZXJyZWRJbWFnZUJpdG1hcCk6CisgICAgICAg
IChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cmVhZEltYWdlQml0bWFwKToKKyAgICAgICAg
KFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkVGVybWluYWwpOgorCiAyMDE5LTEwLTAy
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmlt
YXRpb25zXSBJbXBsZW1lbnQgcmVwbGFjZWQgYW5pbWF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggNzhlZjFm
ZWNiYTE0M2EwYWYyZjc1YmVmYjM4Yjk2NDQ5ZjBkNDUzYS4uNzY5NWViZDFkN2E1MzQ1YzgyZGQ2
MDk5M2U1YmI1MTEyNzAyZTk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0xNjYsNiArMTY2LDcgQEAgZW51bSBT
ZXJpYWxpemF0aW9uVGFnIHsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBSVENDZXJ0aWZpY2F0
ZVRhZyA9IDQ0LAogI2VuZGlmCisgICAgSW1hZ2VCaXRtYXBUYWcgPSA0NSwKICAgICBFcnJvclRh
ZyA9IDI1NQogfTsKIApAQCAtMzQ4LDYgKzM0OSw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJpbmdEYXRhSXM4Qml0RmxhZyA9IDB4ODAwMDAwMDA7CiAgKiAgICB8IERPTVF1YWQKICAqICAg
IHwgSW1hZ2VCaXRtYXBUcmFuc2ZlclRhZyA8dmFsdWU6dWludDMyX3Q+CiAgKiAgICB8IFJUQ0Nl
cnRpZmljYXRlVGFnCisgKiAgICB8IEltYWdlQml0bWFwVGFnIDxvcmlnaW5DbGVhbjppbnQzMl90
PiA8bG9naWNhbFdpZHRoOmludDMyX3Q+IDxsb2dpY2FsSGVpZ2h0OmludDMyX3Q+IDxyZXNvbHV0
aW9uU2NhbGU6ZG91YmxlPiA8Ynl0ZUxlbmd0aDp1aW50MzJfdD4oPGltYWdlQnl0ZURhdGE6dWlu
dDhfdD4pCiAgKgogICogSW5zaWRlIGNlcnRpZmljYXRlLCBkYXRhIGlzIHNlcmlhbGl6ZWQgaW4g
dGhpcyBmb3JtYXQgYXMgcGVyIHNwZWM6CiAgKgpAQCAtOTA5LDggKzkxMSwyNiBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gQ29weWluZyBJ
bWFnZUJpdG1hcHMgaXMgbm90IHlldCBzdXBwb3J0ZWQuCi0gICAgICAgIGNvZGUgPSBTZXJpYWxp
emF0aW9uUmV0dXJuQ29kZTo6VmFsaWRhdGlvbkVycm9yOworICAgICAgICBhdXRvJiBpbWFnZUJp
dG1hcCA9IGpzQ2FzdDxKU0ltYWdlQml0bWFwKj4ob2JqKS0+d3JhcHBlZCgpOworICAgICAgICBh
dXRvIGJ1ZmZlciA9IGltYWdlQml0bWFwLmJ1ZmZlcigpOworCisgICAgICAgIGNvbnN0IEludFNp
emUmIGxvZ2ljYWxTaXplID0gYnVmZmVyLT5sb2dpY2FsU2l6ZSgpOworICAgICAgICBhdXRvIGlt
YWdlRGF0YSA9IGJ1ZmZlci0+Z2V0UHJlbXVsdGlwbGllZEltYWdlRGF0YShJbnRSZWN0KDAsIDAs
IGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2ljYWxTaXplLmhlaWdodCgpKSk7CisKKyAgICAgICAg
UmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlciA9IGltYWdlRGF0YS0+cG9zc2libHlTaGFy
ZWRCdWZmZXIoKTsKKyAgICAgICAgaWYgKCFhcnJheUJ1ZmZlcikgeworICAgICAgICAgICAgY29k
ZSA9IFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlOjpWYWxpZGF0aW9uRXJyb3I7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB3cml0ZShJbWFnZUJpdG1hcFRhZyk7Cisg
ICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PGludDMyX3Q+KGltYWdlQml0bWFwLm9yaWdpbkNsZWFu
KCkpKTsKKyAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8aW50MzJfdD4obG9naWNhbFNpemUud2lk
dGgoKSkpOworICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDxpbnQzMl90Pihsb2dpY2FsU2l6ZS5o
ZWlnaHQoKSkpOworICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDxkb3VibGU+KGJ1ZmZlci0+cmVz
b2x1dGlvblNjYWxlKCkpKTsKKworICAgICAgICB3cml0ZShhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0
aCgpKTsKKyAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5QnVm
ZmVyLT5kYXRhKCkpLCBhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKICAgICB9CiAKICAgICBi
b29sIGR1bXBJZlRlcm1pbmFsKEpTVmFsdWUgdmFsdWUsIFNlcmlhbGl6YXRpb25SZXR1cm5Db2Rl
JiBjb2RlKQpAQCAtMjY3Miw3ICsyNjkyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRv
SlNOZXdseUNyZWF0ZWQobV9leGVjLCBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihtX2dsb2Jh
bE9iamVjdCksIERPTVF1YWQ6OmNyZWF0ZShwMS52YWx1ZSgpLCBwMi52YWx1ZSgpLCBwMy52YWx1
ZSgpLCBwNC52YWx1ZSgpKSk7CiAgICAgfQogCi0gICAgSlNWYWx1ZSByZWFkSW1hZ2VCaXRtYXAo
KQorICAgIEpTVmFsdWUgcmVhZFRyYW5zZmVycmVkSW1hZ2VCaXRtYXAoKQogICAgIHsKICAgICAg
ICAgdWludDMyX3QgaW5kZXg7CiAgICAgICAgIGJvb2wgaW5kZXhTdWNjZXNzZnVsbHlSZWFkID0g
cmVhZChpbmRleCk7CkBAIC0yNzM1LDYgKzI3NTUsMzEgQEAgcHJpdmF0ZToKICAgICB9CiAjZW5k
aWYKIAorICAgIEpTVmFsdWUgcmVhZEltYWdlQml0bWFwKCkKKyAgICB7CisgICAgICAgIGludDMy
X3Qgb3JpZ2luQ2xlYW47CisgICAgICAgIGludDMyX3QgbG9naWNhbFdpZHRoOworICAgICAgICBp
bnQzMl90IGxvZ2ljYWxIZWlnaHQ7CisgICAgICAgIGRvdWJsZSByZXNvbHV0aW9uU2NhbGU7Cisg
ICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXI7CisKKyAgICAgICAgcmVhZChv
cmlnaW5DbGVhbik7CisgICAgICAgIHJlYWQobG9naWNhbFdpZHRoKTsKKyAgICAgICAgcmVhZChs
b2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmVhZChyZXNvbHV0aW9uU2NhbGUpOworICAgICAgICBp
ZiAoIXJlYWRBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlcikpIHsKKyAgICAgICAgICAgIGZhaWwoKTsK
KyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBhdXRv
IGltYWdlRGF0YSA9IFVpbnQ4Q2xhbXBlZEFycmF5Ojp0cnlDcmVhdGUoV1RGTW92ZShhcnJheUJ1
ZmZlciksIDAsIGFycmF5QnVmZmVyLT5ieXRlTGVuZ3RoKCkpOworICAgICAgICBhdXRvIGJ1ZmZl
ciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoRmxvYXRTaXplKGxvZ2ljYWxXaWR0aCwgbG9naWNhbEhl
aWdodCksIFVuYWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSk7CisgICAgICAgIGJ1ZmZlci0+
cHV0Qnl0ZUFycmF5KCppbWFnZURhdGEsIEFscGhhUHJlbXVsdGlwbGljYXRpb246OlByZW11bHRp
cGxpZWQsIEludFNpemUobG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0KSwgSW50UmVjdCgwLCAw
LCBsb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQpLCBJbnRQb2ludCgpKTsKKworICAgICAgICBh
dXRvIGJpdG1hcCA9IEltYWdlQml0bWFwOjpjcmVhdGUoeyBXVEZNb3ZlKGJ1ZmZlciksIHN0YXRp
Y19jYXN0PGJvb2w+KG9yaWdpbkNsZWFuKSB9KTsKKyAgICAgICAgcmV0dXJuIGdldEpTVmFsdWUo
Yml0bWFwKTsKKyAgICB9CisKICAgICBKU1ZhbHVlIHJlYWRUZXJtaW5hbCgpCiAgICAgewogICAg
ICAgICBTZXJpYWxpemF0aW9uVGFnIHRhZyA9IHJlYWRUYWcoKTsKQEAgLTMwMjQsMTIgKzMwNjks
MTQgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBET01RdWFkVGFnOgogICAgICAgICAgICAgcmV0
dXJuIHJlYWRET01RdWFkKCk7CiAgICAgICAgIGNhc2UgSW1hZ2VCaXRtYXBUcmFuc2ZlclRhZzoK
LSAgICAgICAgICAgIHJldHVybiByZWFkSW1hZ2VCaXRtYXAoKTsKKyAgICAgICAgICAgIHJldHVy
biByZWFkVHJhbnNmZXJyZWRJbWFnZUJpdG1hcCgpOwogI2lmIEVOQUJMRShXRUJfUlRDKQogICAg
ICAgICBjYXNlIFJUQ0NlcnRpZmljYXRlVGFnOgogICAgICAgICAgICAgcmV0dXJuIHJlYWRSVEND
ZXJ0aWZpY2F0ZSgpOwogCiAjZW5kaWYKKyAgICAgICAgY2FzZSBJbWFnZUJpdG1hcFRhZzoKKyAg
ICAgICAgICAgIHJldHVybiByZWFkSW1hZ2VCaXRtYXAoKTsKICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgIG1fcHRyLS07IC8vIFB1c2ggdGhlIHRhZyBiYWNrCiAgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZDkxYjgyNDlm
Y2JhNjM4M2M3MzUxMTBlYWE0OGVhYmY0NWMzNTEwNy4uYWJkMDkyMjJiOTJkYWE2ZGM3MmU3MDYw
NzI3MDdjMGFkN2UzNTcyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTktMTAtMDIgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgorCisg
ICAgICAgIEltYWdlQml0bWFwIHNob3VsZCBiZSBzZXJpYWxpemFibGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjM5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcG9ydCBmcm9tIHVwc3RyZWFtIGlz
c3VlICMxOTQzOQorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFn
ZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1zZXJpYWxpemFibGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2Ny
ZWF0ZUltYWdlQml0bWFwLXNlcmlhbGl6YWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3RydWN0dXJlZC1jbG9uZS9kZWRpY2F0
ZWQtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEwLTAyICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBJbXBsZW1lbnQgcmVwbGFjZWQg
YW5pbWF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtc2VyaWFs
aXphYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXNlcmlhbGl6
YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE4NjI1ZGI4YWYyZDdhYjZkYWZlMjJjYjM3
YTI0OWZjMzExZTdlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0
bWFwLXNlcmlhbGl6YWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorCitQQVNTIFNl
cmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYW4gSFRNTENhbnZhc0VsZW1lbnQgCitQ
QVNTIFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYW4gSFRNTFZpZGVvRWxlbWVu
dCAKK1BBU1MgU2VyaWFsaXplIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSBhbiBIVE1MVmlkZW9F
bGVtZW50IGZyb20gYSBkYXRhIFVSTCAKK1BBU1MgU2VyaWFsaXplIEltYWdlQml0bWFwIGNyZWF0
ZWQgZnJvbSBhIGJpdG1hcCBIVE1MSW1hZ2VFbGVtZW50IAorUEFTUyBTZXJpYWxpemUgSW1hZ2VC
aXRtYXAgY3JlYXRlZCBmcm9tIGEgdmVjdG9yIEhUTUxJbWFnZUVsZW1lbnQgCitGQUlMIFNlcmlh
bGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYSBiaXRtYXAgU1ZHSW1hZ2VFbGVtZW50IHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgU2VyaWFsaXplIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJv
bSBhIHZlY3RvciBTVkdJbWFnZUVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgorRkFJTCBTZXJp
YWxpemUgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFuIE9mZnNjcmVlbkNhbnZhcyBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGVzdEN0eC5maWxsU3R5bGUgPSAi
cmdiKDI1NSwgMCwgMCkiJykiCitGQUlMIFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZy
b20gYW4gSW1hZ2VEYXRhIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlR5cGVFcnJvcjogY3JlYXRlSW1hZ2VCaXRtYXAgd2l0aCBJbWFnZURhdGEg
aXMgbm90IGltcGxlbWVudGVkIgorUEFTUyBTZXJpYWxpemUgSW1hZ2VCaXRtYXAgY3JlYXRlZCBm
cm9tIGFuIEltYWdlQml0bWFwIAorUEFTUyBTZXJpYWxpemUgSW1hZ2VCaXRtYXAgY3JlYXRlZCBm
cm9tIGEgQmxvYiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtc2Vy
aWFsaXphYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1zZXJpYWxpemFibGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zOWE4OGM2M2QzZmE4MjNmYjA0MDk5ODJkNzRlODI1MmYyZWE1NTdk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtc2VyaWFsaXph
YmxlLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPHRpdGxlPmNyZWF0ZUltYWdlQml0bWFwIHNlcmlhbGl6ZSB0ZXN0PC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9u
L25hbWVzcGFjZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImNvbW1vbi5zdWIuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD1sb2c+PC9kaXY+Cis8c2NyaXB0PgorbGV0IHdvcmtlciwgY29udGlu
dWF0aW9ucyA9IHt9Oworc2V0dXAoZnVuY3Rpb24oKSB7CisgICAgd29ya2VyID0gbmV3IFdvcmtl
cigidHJhbnNmZXItd29ya2VyLmpzIik7CisgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICBsZXQgeyBuYW1lLCBiaXRtYXAgfSA9
IGV2ZW50LmRhdGE7CisgICAgICAgIGlmIChjb250aW51YXRpb25zLmhhc093blByb3BlcnR5KG5h
bWUpKSB7CisgICAgICAgICAgICBjb250aW51YXRpb25zW25hbWVdKGJpdG1hcCk7CisgICAgICAg
IH0KKyAgICB9KTsKK30pOworCitmb3IgKGxldCB7IG5hbWUsIGZhY3RvcnkgfSBvZiBpbWFnZVNv
dXJjZVR5cGVzKSB7CisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgcmV0
dXJuIGZhY3RvcnkoKS50aGVuKGNyZWF0ZUltYWdlQml0bWFwKS50aGVuKGZ1bmN0aW9uKGJpdG1h
cCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhiaXRtYXAud2lkdGgsIDIwKTsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoYml0bWFwLmhlaWdodCwgMjApOworCisgICAgICAgICAgICB3
b3JrZXIucG9zdE1lc3NhZ2UoeyBuYW1lOiB0Lm5hbWUsIGJpdG1hcDogYml0bWFwIH0pOworCisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJpdG1hcC53aWR0aCwgMjApOworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhiaXRtYXAuaGVpZ2h0LCAyMCk7CisKKyAgICAgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICAgICAgY29udGludWF0
aW9uc1t0Lm5hbWVdID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KS50aGVu
KGZ1bmN0aW9uKGJpdG1hcCkgeworICAgICAgICAgICAgYXNzZXJ0X2NsYXNzX3N0cmluZyhiaXRt
YXAsICJJbWFnZUJpdG1hcCIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhiaXRtYXAud2lk
dGgsIDIwKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYml0bWFwLmhlaWdodCwgMjApOwor
ICAgICAgICB9KTsKKyAgICB9LCBgU2VyaWFsaXplIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSAk
e25hbWV9YCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3RydWN0dXJlZC1jbG9u
ZS9kZWRpY2F0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL2RlZGljYXRl
ZC1leHBlY3RlZC50eHQKaW5kZXggNTdiNzFkNDE2NjFlNTZhNDUzOGM0YWFmOWUwZDk2NTcxNzNj
ZGRmZi4uNzgzNzE0OTQ3MTA2ODFhZjdlMWJiNGVhZTM3MGZmM2U3MDdjMTcxMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3Nl
bWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL2RlZGljYXRlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFudGlj
cy9zdHJ1Y3R1cmVkLWNsb25lL2RlZGljYXRlZC1leHBlY3RlZC50eHQKQEAgLTEwNiwxMiArMTA2
LDEyIEBAIFBBU1MgT2JqZWN0IHdpdGggcHJvcGVydHkgb24gcHJvdG90eXBlCiBQQVNTIE9iamVj
dCB3aXRoIG5vbi1lbnVtZXJhYmxlIHByb3BlcnR5IAogUEFTUyBPYmplY3Qgd2l0aCBub24td3Jp
dGFibGUgcHJvcGVydHkgCiBQQVNTIE9iamVjdCB3aXRoIG5vbi1jb25maWd1cmFibGUgcHJvcGVy
dHkgCi1GQUlMIEltYWdlQml0bWFwIDF4MSB0cmFuc3BhcmVudCBibGFjayBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IiCi1GQUlMIEltYWdlQml0bWFwIDF4MSBub24tdHJhbnNwYXJlbnQgbm9uLWJsYWNrIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogVHlwZSBlcnJvciIKLUZBSUwgQXJyYXkgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJp
dG1hcCAxeDEgdHJhbnNwYXJlbnQgYmxhY2sgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBBcnJh
eSBJbWFnZUJpdG1hcCBvYmplY3QsIEltYWdlQml0bWFwIDF4MSB0cmFuc3BhcmVudCBub24tYmxh
Y2sgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBPYmplY3QgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJ
bWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQgYmxhY2sgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJ
TCBPYmplY3QgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQg
bm9uLWJsYWNrIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK1BBU1MgSW1hZ2VCaXRtYXAgMXgxIHRyYW5z
cGFyZW50IGJsYWNrIAorUEFTUyBJbWFnZUJpdG1hcCAxeDEgbm9uLXRyYW5zcGFyZW50IG5vbi1i
bGFjayAKK1BBU1MgQXJyYXkgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEgdHJh
bnNwYXJlbnQgYmxhY2sgCitQQVNTIEFycmF5IEltYWdlQml0bWFwIG9iamVjdCwgSW1hZ2VCaXRt
YXAgMXgxIHRyYW5zcGFyZW50IG5vbi1ibGFjayAKK1BBU1MgT2JqZWN0IEltYWdlQml0bWFwIG9i
amVjdCwgSW1hZ2VCaXRtYXAgMXgxIHRyYW5zcGFyZW50IGJsYWNrIAorUEFTUyBPYmplY3QgSW1h
Z2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQgbm9uLWJsYWNrIAog
UEFTUyBBcnJheUJ1ZmZlciAKIFBBU1MgTWVzc2FnZVBvcnQgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380211</attachid>
            <date>2019-10-04 04:44:45 -0700</date>
            <delta_ts>2019-10-04 07:04:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202394-20191004124444.patch</filename>
            <type>text/plain</type>
            <size>11548</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjI0ZjljMDc2NjkwZWI0
ZmRmM2IwMzRiZGMzMzA2ZDg3ZWQ2ZGEwMS4uNGI1NmY2NTQ0NTc4Mjg3ZjhlOWNmNTM0YTg2ZmU2
MTM2MGYyOTc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEwLTA0ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbWFnZUJpdG1hcCBzaG91bGQg
YmUgc2VyaWFsaXphYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDIzOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9p
bWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1zZXJpYWxpemFibGUuaHRtbAorCisgICAgICAg
ICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEltYWdlQml0bWFwKToKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkVHJhbnNmZXJyZWRJbWFnZUJpdG1hcCk6CisgICAgICAg
IChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cmVhZEltYWdlQml0bWFwKToKKyAgICAgICAg
KFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkVGVybWluYWwpOgorCiAyMDE5LTEwLTA0
ICBPcmlvbCBCcnVmYXUgIDxvYnJ1ZmF1QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1ncmlk
XSBQcmVzZXJ2ZSBhdXRvIHJlcGVhdCgpIGluIGdldENvbXB1dGVkU3R5bGUoKSBmb3Igbm9uLWdy
aWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcAppbmRleCA3OGVmMWZlY2JhMTQzYTBhZjJmNzViZWZiMzhiOTY0NDlmMGQ0NTNh
Li45YjAyOTcwOTgzZTQyN2ZkOWM2NDkyNDE5ZGJmOGJmMTRkOGJhMDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAg
LTE2Niw2ICsxNjYsNyBAQCBlbnVtIFNlcmlhbGl6YXRpb25UYWcgewogI2lmIEVOQUJMRShXRUJf
UlRDKQogICAgIFJUQ0NlcnRpZmljYXRlVGFnID0gNDQsCiAjZW5kaWYKKyAgICBJbWFnZUJpdG1h
cFRhZyA9IDQ1LAogICAgIEVycm9yVGFnID0gMjU1CiB9OwogCkBAIC0zNDgsNiArMzQ5LDcgQEAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cmluZ0RhdGFJczhCaXRGbGFnID0gMHg4MDAwMDAwMDsK
ICAqICAgIHwgRE9NUXVhZAogICogICAgfCBJbWFnZUJpdG1hcFRyYW5zZmVyVGFnIDx2YWx1ZTp1
aW50MzJfdD4KICAqICAgIHwgUlRDQ2VydGlmaWNhdGVUYWcKKyAqICAgIHwgSW1hZ2VCaXRtYXBU
YWcgPG9yaWdpbkNsZWFuOnVpbnQ4X3Q+IDxsb2dpY2FsV2lkdGg6aW50MzJfdD4gPGxvZ2ljYWxI
ZWlnaHQ6aW50MzJfdD4gPHJlc29sdXRpb25TY2FsZTpkb3VibGU+IDxieXRlTGVuZ3RoOnVpbnQz
Ml90Pig8aW1hZ2VCeXRlRGF0YTp1aW50OF90PikKICAqCiAgKiBJbnNpZGUgY2VydGlmaWNhdGUs
IGRhdGEgaXMgc2VyaWFsaXplZCBpbiB0aGlzIGZvcm1hdCBhcyBwZXIgc3BlYzoKICAqCkBAIC05
MDksOCArOTExLDMxIEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICAvLyBDb3B5aW5nIEltYWdlQml0bWFwcyBpcyBub3QgeWV0IHN1cHBvcnRlZC4K
LSAgICAgICAgY29kZSA9IFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlOjpWYWxpZGF0aW9uRXJyb3I7
CisgICAgICAgIGF1dG8mIGltYWdlQml0bWFwID0ganNDYXN0PEpTSW1hZ2VCaXRtYXAqPihvYmop
LT53cmFwcGVkKCk7CisgICAgICAgIGF1dG8qIGJ1ZmZlciA9IGltYWdlQml0bWFwLmJ1ZmZlcigp
OworCisgICAgICAgIGlmICghYnVmZmVyKSB7CisgICAgICAgICAgICBjb2RlID0gU2VyaWFsaXph
dGlvblJldHVybkNvZGU6OlZhbGlkYXRpb25FcnJvcjsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGNvbnN0IEludFNpemUmIGxvZ2ljYWxTaXplID0gYnVmZmVyLT5s
b2dpY2FsU2l6ZSgpOworICAgICAgICBhdXRvIGltYWdlRGF0YSA9IGJ1ZmZlci0+Z2V0UHJlbXVs
dGlwbGllZEltYWdlRGF0YShJbnRSZWN0KDAsIDAsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2lj
YWxTaXplLmhlaWdodCgpKSk7CisKKyAgICAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1
ZmZlciA9IGltYWdlRGF0YS0+cG9zc2libHlTaGFyZWRCdWZmZXIoKTsKKyAgICAgICAgaWYgKCFh
cnJheUJ1ZmZlcikgeworICAgICAgICAgICAgY29kZSA9IFNlcmlhbGl6YXRpb25SZXR1cm5Db2Rl
OjpWYWxpZGF0aW9uRXJyb3I7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICB3cml0ZShJbWFnZUJpdG1hcFRhZyk7CisgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KGltYWdlQml0bWFwLm9yaWdpbkNsZWFuKCkpKTsKKyAgICAgICAgd3JpdGUoc3RhdGlj
X2Nhc3Q8aW50MzJfdD4obG9naWNhbFNpemUud2lkdGgoKSkpOworICAgICAgICB3cml0ZShzdGF0
aWNfY2FzdDxpbnQzMl90Pihsb2dpY2FsU2l6ZS5oZWlnaHQoKSkpOworICAgICAgICB3cml0ZShz
dGF0aWNfY2FzdDxkb3VibGU+KGJ1ZmZlci0+cmVzb2x1dGlvblNjYWxlKCkpKTsKKworICAgICAg
ICB3cml0ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oYXJyYXlCdWZmZXItPmJ5dGVMZW5ndGgoKSkp
OworICAgICAgICB3cml0ZShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXIt
PmRhdGEoKSksIGFycmF5QnVmZmVyLT5ieXRlTGVuZ3RoKCkpOwogICAgIH0KIAogICAgIGJvb2wg
ZHVtcElmVGVybWluYWwoSlNWYWx1ZSB2YWx1ZSwgU2VyaWFsaXphdGlvblJldHVybkNvZGUmIGNv
ZGUpCkBAIC0yNjcyLDcgKzI2OTcsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdG9KU05l
d2x5Q3JlYXRlZChtX2V4ZWMsIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KG1fZ2xvYmFsT2Jq
ZWN0KSwgRE9NUXVhZDo6Y3JlYXRlKHAxLnZhbHVlKCksIHAyLnZhbHVlKCksIHAzLnZhbHVlKCks
IHA0LnZhbHVlKCkpKTsKICAgICB9CiAKLSAgICBKU1ZhbHVlIHJlYWRJbWFnZUJpdG1hcCgpCisg
ICAgSlNWYWx1ZSByZWFkVHJhbnNmZXJyZWRJbWFnZUJpdG1hcCgpCiAgICAgewogICAgICAgICB1
aW50MzJfdCBpbmRleDsKICAgICAgICAgYm9vbCBpbmRleFN1Y2Nlc3NmdWxseVJlYWQgPSByZWFk
KGluZGV4KTsKQEAgLTI3MzUsNiArMjc2MCwyNyBAQCBwcml2YXRlOgogICAgIH0KICNlbmRpZgog
CisgICAgSlNWYWx1ZSByZWFkSW1hZ2VCaXRtYXAoKQorICAgIHsKKyAgICAgICAgdWludDhfdCBv
cmlnaW5DbGVhbjsKKyAgICAgICAgaW50MzJfdCBsb2dpY2FsV2lkdGg7CisgICAgICAgIGludDMy
X3QgbG9naWNhbEhlaWdodDsKKyAgICAgICAgZG91YmxlIHJlc29sdXRpb25TY2FsZTsKKyAgICAg
ICAgUmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlcjsKKworICAgICAgICBpZiAoIXJlYWQo
b3JpZ2luQ2xlYW4pIHx8ICFyZWFkKGxvZ2ljYWxXaWR0aCkgfHwgIXJlYWQobG9naWNhbEhlaWdo
dCkgfHwgIXJlYWQocmVzb2x1dGlvblNjYWxlKSB8fCAhcmVhZEFycmF5QnVmZmVyKGFycmF5QnVm
ZmVyKSkgeworICAgICAgICAgICAgZmFpbCgpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUo
KTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gaW1hZ2VEYXRhID0gVWludDhDbGFtcGVkQXJy
YXk6OnRyeUNyZWF0ZShXVEZNb3ZlKGFycmF5QnVmZmVyKSwgMCwgYXJyYXlCdWZmZXItPmJ5dGVM
ZW5ndGgoKSk7CisgICAgICAgIGF1dG8gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShGbG9h
dFNpemUobG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0KSwgVW5hY2NlbGVyYXRlZCwgcmVzb2x1
dGlvblNjYWxlKTsKKyAgICAgICAgYnVmZmVyLT5wdXRCeXRlQXJyYXkoKmltYWdlRGF0YSwgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbjo6UHJlbXVsdGlwbGllZCwgSW50U2l6ZShsb2dpY2FsV2lkdGgs
IGxvZ2ljYWxIZWlnaHQpLCBJbnRSZWN0KDAsIDAsIGxvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdo
dCksIEludFBvaW50KCkpOworCisgICAgICAgIGF1dG8gYml0bWFwID0gSW1hZ2VCaXRtYXA6OmNy
ZWF0ZSh7IFdURk1vdmUoYnVmZmVyKSwgc3RhdGljX2Nhc3Q8Ym9vbD4ob3JpZ2luQ2xlYW4pIH0p
OworICAgICAgICByZXR1cm4gZ2V0SlNWYWx1ZShiaXRtYXApOworICAgIH0KKwogICAgIEpTVmFs
dWUgcmVhZFRlcm1pbmFsKCkKICAgICB7CiAgICAgICAgIFNlcmlhbGl6YXRpb25UYWcgdGFnID0g
cmVhZFRhZygpOwpAQCAtMzAyNCwxMiArMzA3MCwxNCBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IERPTVF1YWRUYWc6CiAgICAgICAgICAgICByZXR1cm4gcmVhZERPTVF1YWQoKTsKICAgICAgICAg
Y2FzZSBJbWFnZUJpdG1hcFRyYW5zZmVyVGFnOgotICAgICAgICAgICAgcmV0dXJuIHJlYWRJbWFn
ZUJpdG1hcCgpOworICAgICAgICAgICAgcmV0dXJuIHJlYWRUcmFuc2ZlcnJlZEltYWdlQml0bWFw
KCk7CiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgICAgIGNhc2UgUlRDQ2VydGlmaWNhdGVUYWc6
CiAgICAgICAgICAgICByZXR1cm4gcmVhZFJUQ0NlcnRpZmljYXRlKCk7CiAKICNlbmRpZgorICAg
ICAgICBjYXNlIEltYWdlQml0bWFwVGFnOgorICAgICAgICAgICAgcmV0dXJuIHJlYWRJbWFnZUJp
dG1hcCgpOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgbV9wdHItLTsgLy8gUHVzaCB0
aGUgdGFnIGJhY2sKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCBlM2UwZGEzMGYxMjM1OWI4YzBhMGUxM2ZlZDIwZjBkZjEwMjlk
MmI5Li40YWIxNWUxNDZhOWNhYWM3YWJjZDQ4MjIzNjkzZmViOGQyYWExOWY5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMC0wNCAgQ2hyaXMg
TG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CisKKyAgICAgICAgSW1hZ2VCaXRtYXAgc2hvdWxkIGJl
IHNlcmlhbGl6YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAyMzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wb3J0IGZyb20gdXBzdHJlYW0gaXNzdWUgIzE5NDM5CisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXNl
cmlhbGl6YWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtc2VyaWFsaXphYmxl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFu
dGljcy9zdHJ1Y3R1cmVkLWNsb25lL2RlZGljYXRlZC1leHBlY3RlZC50eHQ6CisKIDIwMTktMTAt
MDQgIE9yaW9sIEJydWZhdSAgPG9icnVmYXVAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWdy
aWRdIFByZXNlcnZlIGF1dG8gcmVwZWF0KCkgaW4gZ2V0Q29tcHV0ZWRTdHlsZSgpIGZvciBub24t
Z3JpZHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXNlcmlhbGl6YWJs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1zZXJpYWxpemFibGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxODYyNWRiOGFmMmQ3YWI2ZGFmZTIyY2IzN2EyNDlm
YzMxMWU3ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1z
ZXJpYWxpemFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKKworUEFTUyBTZXJpYWxp
emUgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFuIEhUTUxDYW52YXNFbGVtZW50IAorUEFTUyBT
ZXJpYWxpemUgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFuIEhUTUxWaWRlb0VsZW1lbnQgCitQ
QVNTIFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYW4gSFRNTFZpZGVvRWxlbWVu
dCBmcm9tIGEgZGF0YSBVUkwgCitQQVNTIFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZy
b20gYSBiaXRtYXAgSFRNTEltYWdlRWxlbWVudCAKK1BBU1MgU2VyaWFsaXplIEltYWdlQml0bWFw
IGNyZWF0ZWQgZnJvbSBhIHZlY3RvciBIVE1MSW1hZ2VFbGVtZW50IAorRkFJTCBTZXJpYWxpemUg
SW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGEgYml0bWFwIFNWR0ltYWdlRWxlbWVudCBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IFR5cGUgZXJyb3IiCitGQUlMIFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYSB2
ZWN0b3IgU1ZHSW1hZ2VFbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgU2VyaWFsaXpl
IEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSBhbiBPZmZzY3JlZW5DYW52YXMgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBudWxs
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3Rlc3RDdHguZmlsbFN0eWxlID0gInJnYigy
NTUsIDAsIDApIicpIgorRkFJTCBTZXJpYWxpemUgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFu
IEltYWdlRGF0YSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTog
b2JqZWN0ICJUeXBlRXJyb3I6IGNyZWF0ZUltYWdlQml0bWFwIHdpdGggSW1hZ2VEYXRhIGlzIG5v
dCBpbXBsZW1lbnRlZCIKK1BBU1MgU2VyaWFsaXplIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSBh
biBJbWFnZUJpdG1hcCAKK1BBU1MgU2VyaWFsaXplIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSBh
IEJsb2IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXNlcmlhbGl6
YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8y
ZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRtYXAtc2VyaWFsaXphYmxlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzlhODhjNjNkM2ZhODIzZmIwNDA5OTgyZDc0ZTgyNTJmMmVhNTU3ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0bWFwLXNlcmlhbGl6YWJsZS5o
dG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzx0aXRsZT5jcmVhdGVJbWFnZUJpdG1hcCBzZXJpYWxpemUgdGVzdDwvdGl0bGU+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9uYW1l
c3BhY2VzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJjb21tb24uc3ViLmpzIj48L3Njcmlw
dD4KKzxkaXYgaWQ9bG9nPjwvZGl2PgorPHNjcmlwdD4KK2xldCB3b3JrZXIsIGNvbnRpbnVhdGlv
bnMgPSB7fTsKK3NldHVwKGZ1bmN0aW9uKCkgeworICAgIHdvcmtlciA9IG5ldyBXb3JrZXIoInRy
YW5zZmVyLXdvcmtlci5qcyIpOworICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgbGV0IHsgbmFtZSwgYml0bWFwIH0gPSBldmVu
dC5kYXRhOworICAgICAgICBpZiAoY29udGludWF0aW9ucy5oYXNPd25Qcm9wZXJ0eShuYW1lKSkg
eworICAgICAgICAgICAgY29udGludWF0aW9uc1tuYW1lXShiaXRtYXApOworICAgICAgICB9Cisg
ICAgfSk7Cit9KTsKKworZm9yIChsZXQgeyBuYW1lLCBmYWN0b3J5IH0gb2YgaW1hZ2VTb3VyY2VU
eXBlcykgeworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICAgIHJldHVybiBm
YWN0b3J5KCkudGhlbihjcmVhdGVJbWFnZUJpdG1hcCkudGhlbihmdW5jdGlvbihiaXRtYXApIHsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYml0bWFwLndpZHRoLCAyMCk7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGJpdG1hcC5oZWlnaHQsIDIwKTsKKworICAgICAgICAgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKHsgbmFtZTogdC5uYW1lLCBiaXRtYXA6IGJpdG1hcCB9KTsKKworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhiaXRtYXAud2lkdGgsIDIwKTsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoYml0bWFwLmhlaWdodCwgMjApOworCisgICAgICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVhdGlvbnNb
dC5uYW1lXSA9IHJlc29sdmU7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkudGhlbihmdW5j
dGlvbihiaXRtYXApIHsKKyAgICAgICAgICAgIGFzc2VydF9jbGFzc19zdHJpbmcoYml0bWFwLCAi
SW1hZ2VCaXRtYXAiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYml0bWFwLndpZHRoLCAy
MCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJpdG1hcC5oZWlnaHQsIDIwKTsKKyAgICAg
ICAgfSk7CisgICAgfSwgYFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gJHtuYW1l
fWApOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvZGVk
aWNhdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3RydWN0dXJlZC1jbG9uZS9kZWRpY2F0ZWQtZXhw
ZWN0ZWQudHh0CmluZGV4IDU3YjcxZDQxNjYxZTU2YTQ1MzhjNGFhZjllMGQ5NjU3MTczY2RkZmYu
Ljc4MzcxNDk0NzEwNjgxYWY3ZTFiYjRlYWUzNzBmZjNlNzA3YzE3MTIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRp
Y3Mvc3RydWN0dXJlZC1jbG9uZS9kZWRpY2F0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3Ry
dWN0dXJlZC1jbG9uZS9kZWRpY2F0ZWQtZXhwZWN0ZWQudHh0CkBAIC0xMDYsMTIgKzEwNiwxMiBA
QCBQQVNTIE9iamVjdCB3aXRoIHByb3BlcnR5IG9uIHByb3RvdHlwZQogUEFTUyBPYmplY3Qgd2l0
aCBub24tZW51bWVyYWJsZSBwcm9wZXJ0eSAKIFBBU1MgT2JqZWN0IHdpdGggbm9uLXdyaXRhYmxl
IHByb3BlcnR5IAogUEFTUyBPYmplY3Qgd2l0aCBub24tY29uZmlndXJhYmxlIHByb3BlcnR5IAot
RkFJTCBJbWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQgYmxhY2sgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9y
IgotRkFJTCBJbWFnZUJpdG1hcCAxeDEgbm9uLXRyYW5zcGFyZW50IG5vbi1ibGFjayBwcm9taXNl
X3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6
IFR5cGUgZXJyb3IiCi1GQUlMIEFycmF5IEltYWdlQml0bWFwIG9iamVjdCwgSW1hZ2VCaXRtYXAg
MXgxIHRyYW5zcGFyZW50IGJsYWNrIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwgQXJyYXkgSW1h
Z2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQgbm9uLWJsYWNrIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVF
cnJvcjogVHlwZSBlcnJvciIKLUZBSUwgT2JqZWN0IEltYWdlQml0bWFwIG9iamVjdCwgSW1hZ2VC
aXRtYXAgMXgxIHRyYW5zcGFyZW50IGJsYWNrIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwgT2Jq
ZWN0IEltYWdlQml0bWFwIG9iamVjdCwgSW1hZ2VCaXRtYXAgMXgxIHRyYW5zcGFyZW50IG5vbi1i
bGFjayBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiCitQQVNTIEltYWdlQml0bWFwIDF4MSB0cmFuc3BhcmVu
dCBibGFjayAKK1BBU1MgSW1hZ2VCaXRtYXAgMXgxIG5vbi10cmFuc3BhcmVudCBub24tYmxhY2sg
CitQQVNTIEFycmF5IEltYWdlQml0bWFwIG9iamVjdCwgSW1hZ2VCaXRtYXAgMXgxIHRyYW5zcGFy
ZW50IGJsYWNrIAorUEFTUyBBcnJheSBJbWFnZUJpdG1hcCBvYmplY3QsIEltYWdlQml0bWFwIDF4
MSB0cmFuc3BhcmVudCBub24tYmxhY2sgCitQQVNTIE9iamVjdCBJbWFnZUJpdG1hcCBvYmplY3Qs
IEltYWdlQml0bWFwIDF4MSB0cmFuc3BhcmVudCBibGFjayAKK1BBU1MgT2JqZWN0IEltYWdlQml0
bWFwIG9iamVjdCwgSW1hZ2VCaXRtYXAgMXgxIHRyYW5zcGFyZW50IG5vbi1ibGFjayAKIFBBU1Mg
QXJyYXlCdWZmZXIgCiBQQVNTIE1lc3NhZ2VQb3J0IAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380218</attachid>
            <date>2019-10-04 07:04:56 -0700</date>
            <delta_ts>2019-10-04 07:53:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202394-20191004150455.patch</filename>
            <type>text/plain</type>
            <size>11850</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjI0ZjljMDc2NjkwZWI0
ZmRmM2IwMzRiZGMzMzA2ZDg3ZWQ2ZGEwMS4uNGI1NmY2NTQ0NTc4Mjg3ZjhlOWNmNTM0YTg2ZmU2
MTM2MGYyOTc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEwLTA0ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbWFnZUJpdG1hcCBzaG91bGQg
YmUgc2VyaWFsaXphYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDIzOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9p
bWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1zZXJpYWxpemFibGUuaHRtbAorCisgICAgICAg
ICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEltYWdlQml0bWFwKToKKyAgICAgICAgKFdlYkNvcmU6
OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkVHJhbnNmZXJyZWRJbWFnZUJpdG1hcCk6CisgICAgICAg
IChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cmVhZEltYWdlQml0bWFwKToKKyAgICAgICAg
KFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkVGVybWluYWwpOgorCiAyMDE5LTEwLTA0
ICBPcmlvbCBCcnVmYXUgIDxvYnJ1ZmF1QGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1ncmlk
XSBQcmVzZXJ2ZSBhdXRvIHJlcGVhdCgpIGluIGdldENvbXB1dGVkU3R5bGUoKSBmb3Igbm9uLWdy
aWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcAppbmRleCA3OGVmMWZlY2JhMTQzYTBhZjJmNzViZWZiMzhiOTY0NDlmMGQ0NTNh
Li4zYjAwMGI4ODEwMDNkMmI0OTE1YjA4NDc4ZmJhYzk5MzIzMGY1YTI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAg
LTE2Niw2ICsxNjYsNyBAQCBlbnVtIFNlcmlhbGl6YXRpb25UYWcgewogI2lmIEVOQUJMRShXRUJf
UlRDKQogICAgIFJUQ0NlcnRpZmljYXRlVGFnID0gNDQsCiAjZW5kaWYKKyAgICBJbWFnZUJpdG1h
cFRhZyA9IDQ1LAogICAgIEVycm9yVGFnID0gMjU1CiB9OwogCkBAIC0zNDgsNiArMzQ5LDcgQEAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cmluZ0RhdGFJczhCaXRGbGFnID0gMHg4MDAwMDAwMDsK
ICAqICAgIHwgRE9NUXVhZAogICogICAgfCBJbWFnZUJpdG1hcFRyYW5zZmVyVGFnIDx2YWx1ZTp1
aW50MzJfdD4KICAqICAgIHwgUlRDQ2VydGlmaWNhdGVUYWcKKyAqICAgIHwgSW1hZ2VCaXRtYXBU
YWcgPG9yaWdpbkNsZWFuOnVpbnQ4X3Q+IDxsb2dpY2FsV2lkdGg6aW50MzJfdD4gPGxvZ2ljYWxI
ZWlnaHQ6aW50MzJfdD4gPHJlc29sdXRpb25TY2FsZTpkb3VibGU+IDxieXRlTGVuZ3RoOnVpbnQz
Ml90Pig8aW1hZ2VCeXRlRGF0YTp1aW50OF90PikKICAqCiAgKiBJbnNpZGUgY2VydGlmaWNhdGUs
IGRhdGEgaXMgc2VyaWFsaXplZCBpbiB0aGlzIGZvcm1hdCBhcyBwZXIgc3BlYzoKICAqCkBAIC05
MDksOCArOTExLDM1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICAvLyBDb3B5aW5nIEltYWdlQml0bWFwcyBpcyBub3QgeWV0IHN1cHBvcnRlZC4K
LSAgICAgICAgY29kZSA9IFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlOjpWYWxpZGF0aW9uRXJyb3I7
CisgICAgICAgIGF1dG8mIGltYWdlQml0bWFwID0ganNDYXN0PEpTSW1hZ2VCaXRtYXAqPihvYmop
LT53cmFwcGVkKCk7CisgICAgICAgIGF1dG8qIGJ1ZmZlciA9IGltYWdlQml0bWFwLmJ1ZmZlcigp
OworCisgICAgICAgIGlmICghYnVmZmVyKSB7CisgICAgICAgICAgICBjb2RlID0gU2VyaWFsaXph
dGlvblJldHVybkNvZGU6OlZhbGlkYXRpb25FcnJvcjsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGNvbnN0IEludFNpemUmIGxvZ2ljYWxTaXplID0gYnVmZmVyLT5s
b2dpY2FsU2l6ZSgpOworICAgICAgICBhdXRvIGltYWdlRGF0YSA9IGJ1ZmZlci0+Z2V0UHJlbXVs
dGlwbGllZEltYWdlRGF0YShJbnRSZWN0KDAsIDAsIGxvZ2ljYWxTaXplLndpZHRoKCksIGxvZ2lj
YWxTaXplLmhlaWdodCgpKSk7CisgICAgICAgIGlmICghaW1hZ2VEYXRhKSB7CisgICAgICAgICAg
ICBjb2RlID0gU2VyaWFsaXphdGlvblJldHVybkNvZGU6OlZhbGlkYXRpb25FcnJvcjsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4g
YXJyYXlCdWZmZXIgPSBpbWFnZURhdGEtPnBvc3NpYmx5U2hhcmVkQnVmZmVyKCk7CisgICAgICAg
IGlmICghYXJyYXlCdWZmZXIpIHsKKyAgICAgICAgICAgIGNvZGUgPSBTZXJpYWxpemF0aW9uUmV0
dXJuQ29kZTo6VmFsaWRhdGlvbkVycm9yOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgd3JpdGUoSW1hZ2VCaXRtYXBUYWcpOworICAgICAgICB3cml0ZShzdGF0aWNf
Y2FzdDx1aW50OF90PihpbWFnZUJpdG1hcC5vcmlnaW5DbGVhbigpKSk7CisgICAgICAgIHdyaXRl
KHN0YXRpY19jYXN0PGludDMyX3Q+KGxvZ2ljYWxTaXplLndpZHRoKCkpKTsKKyAgICAgICAgd3Jp
dGUoc3RhdGljX2Nhc3Q8aW50MzJfdD4obG9naWNhbFNpemUuaGVpZ2h0KCkpKTsKKyAgICAgICAg
d3JpdGUoc3RhdGljX2Nhc3Q8ZG91YmxlPihidWZmZXItPnJlc29sdXRpb25TY2FsZSgpKSk7CisK
KyAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGFycmF5QnVmZmVyLT5ieXRlTGVu
Z3RoKCkpKTsKKyAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGFycmF5
QnVmZmVyLT5kYXRhKCkpLCBhcnJheUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKTsKICAgICB9CiAKICAg
ICBib29sIGR1bXBJZlRlcm1pbmFsKEpTVmFsdWUgdmFsdWUsIFNlcmlhbGl6YXRpb25SZXR1cm5D
b2RlJiBjb2RlKQpAQCAtMjY3Miw3ICsyNzAxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJu
IHRvSlNOZXdseUNyZWF0ZWQobV9leGVjLCBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihtX2ds
b2JhbE9iamVjdCksIERPTVF1YWQ6OmNyZWF0ZShwMS52YWx1ZSgpLCBwMi52YWx1ZSgpLCBwMy52
YWx1ZSgpLCBwNC52YWx1ZSgpKSk7CiAgICAgfQogCi0gICAgSlNWYWx1ZSByZWFkSW1hZ2VCaXRt
YXAoKQorICAgIEpTVmFsdWUgcmVhZFRyYW5zZmVycmVkSW1hZ2VCaXRtYXAoKQogICAgIHsKICAg
ICAgICAgdWludDMyX3QgaW5kZXg7CiAgICAgICAgIGJvb2wgaW5kZXhTdWNjZXNzZnVsbHlSZWFk
ID0gcmVhZChpbmRleCk7CkBAIC0yNzM1LDYgKzI3NjQsMzcgQEAgcHJpdmF0ZToKICAgICB9CiAj
ZW5kaWYKIAorICAgIEpTVmFsdWUgcmVhZEltYWdlQml0bWFwKCkKKyAgICB7CisgICAgICAgIHVp
bnQ4X3Qgb3JpZ2luQ2xlYW47CisgICAgICAgIGludDMyX3QgbG9naWNhbFdpZHRoOworICAgICAg
ICBpbnQzMl90IGxvZ2ljYWxIZWlnaHQ7CisgICAgICAgIGRvdWJsZSByZXNvbHV0aW9uU2NhbGU7
CisgICAgICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXI7CisKKyAgICAgICAgaWYg
KCFyZWFkKG9yaWdpbkNsZWFuKSB8fCAhcmVhZChsb2dpY2FsV2lkdGgpIHx8ICFyZWFkKGxvZ2lj
YWxIZWlnaHQpIHx8ICFyZWFkKHJlc29sdXRpb25TY2FsZSkgfHwgIXJlYWRBcnJheUJ1ZmZlcihh
cnJheUJ1ZmZlcikpIHsKKyAgICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAgICAgIHJldHVybiBK
U1ZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIGltYWdlRGF0YSA9IFVpbnQ4Q2xh
bXBlZEFycmF5Ojp0cnlDcmVhdGUoV1RGTW92ZShhcnJheUJ1ZmZlciksIDAsIGFycmF5QnVmZmVy
LT5ieXRlTGVuZ3RoKCkpOworICAgICAgICBpZiAoIWltYWdlRGF0YSkgeworICAgICAgICAgICAg
ZmFpbCgpOworICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGF1dG8gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShGbG9hdFNpemUobG9naWNhbFdp
ZHRoLCBsb2dpY2FsSGVpZ2h0KSwgVW5hY2NlbGVyYXRlZCwgcmVzb2x1dGlvblNjYWxlKTsKKyAg
ICAgICAgaWYgKCFidWZmZXIpIHsKKyAgICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAgICAgIHJl
dHVybiBKU1ZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICBidWZmZXItPnB1dEJ5dGVBcnJh
eSgqaW1hZ2VEYXRhLCBBbHBoYVByZW11bHRpcGxpY2F0aW9uOjpQcmVtdWx0aXBsaWVkLCBJbnRT
aXplKGxvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdodCksIEludFJlY3QoMCwgMCwgbG9naWNhbFdp
ZHRoLCBsb2dpY2FsSGVpZ2h0KSwgSW50UG9pbnQoKSk7CisKKyAgICAgICAgYXV0byBiaXRtYXAg
PSBJbWFnZUJpdG1hcDo6Y3JlYXRlKHsgV1RGTW92ZShidWZmZXIpLCBzdGF0aWNfY2FzdDxib29s
PihvcmlnaW5DbGVhbikgfSk7CisgICAgICAgIHJldHVybiBnZXRKU1ZhbHVlKGJpdG1hcCk7Cisg
ICAgfQorCiAgICAgSlNWYWx1ZSByZWFkVGVybWluYWwoKQogICAgIHsKICAgICAgICAgU2VyaWFs
aXphdGlvblRhZyB0YWcgPSByZWFkVGFnKCk7CkBAIC0zMDI0LDEyICszMDg0LDE0IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgRE9NUXVhZFRhZzoKICAgICAgICAgICAgIHJldHVybiByZWFkRE9N
UXVhZCgpOwogICAgICAgICBjYXNlIEltYWdlQml0bWFwVHJhbnNmZXJUYWc6Ci0gICAgICAgICAg
ICByZXR1cm4gcmVhZEltYWdlQml0bWFwKCk7CisgICAgICAgICAgICByZXR1cm4gcmVhZFRyYW5z
ZmVycmVkSW1hZ2VCaXRtYXAoKTsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICAgICAgY2FzZSBS
VENDZXJ0aWZpY2F0ZVRhZzoKICAgICAgICAgICAgIHJldHVybiByZWFkUlRDQ2VydGlmaWNhdGUo
KTsKIAogI2VuZGlmCisgICAgICAgIGNhc2UgSW1hZ2VCaXRtYXBUYWc6CisgICAgICAgICAgICBy
ZXR1cm4gcmVhZEltYWdlQml0bWFwKCk7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBt
X3B0ci0tOyAvLyBQdXNoIHRoZSB0YWcgYmFjawogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGUzZTBkYTMwZjEyMzU5YjhjMGEw
ZTEzZmVkMjBmMGRmMTAyOWQyYjkuLjRhYjE1ZTE0NmE5Y2FhYzdhYmNkNDgyMjM2OTNmZWI4ZDJh
YTE5ZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE5LTEwLTA0ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBJbWFn
ZUJpdG1hcCBzaG91bGQgYmUgc2VyaWFsaXphYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIzOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBvcnQgZnJvbSB1cHN0cmVhbSBpc3N1ZSAjMTk0MzkK
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3Jl
YXRlSW1hZ2VCaXRtYXAtc2VyaWFsaXphYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJp
dG1hcC1zZXJpYWxpemFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3dvcmtlcnMvc2VtYW50aWNzL3N0cnVjdHVyZWQtY2xvbmUvZGVkaWNhdGVkLWV4cGVjdGVk
LnR4dDoKKwogMjAxOS0xMC0wNCAgT3Jpb2wgQnJ1ZmF1ICA8b2JydWZhdUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtjc3MtZ3JpZF0gUHJlc2VydmUgYXV0byByZXBlYXQoKSBpbiBnZXRDb21wdXRl
ZFN0eWxlKCkgZm9yIG5vbi1ncmlkcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VC
aXRtYXAtc2VyaWFsaXphYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2NyZWF0ZUltYWdlQml0
bWFwLXNlcmlhbGl6YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE4NjI1ZGI4YWYyZDdh
YjZkYWZlMjJjYjM3YTI0OWZjMzExZTdlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0bWFwL2Ny
ZWF0ZUltYWdlQml0bWFwLXNlcmlhbGl6YWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBA
QAorCitQQVNTIFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYW4gSFRNTENhbnZh
c0VsZW1lbnQgCitQQVNTIFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYW4gSFRN
TFZpZGVvRWxlbWVudCAKK1BBU1MgU2VyaWFsaXplIEltYWdlQml0bWFwIGNyZWF0ZWQgZnJvbSBh
biBIVE1MVmlkZW9FbGVtZW50IGZyb20gYSBkYXRhIFVSTCAKK1BBU1MgU2VyaWFsaXplIEltYWdl
Qml0bWFwIGNyZWF0ZWQgZnJvbSBhIGJpdG1hcCBIVE1MSW1hZ2VFbGVtZW50IAorUEFTUyBTZXJp
YWxpemUgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGEgdmVjdG9yIEhUTUxJbWFnZUVsZW1lbnQg
CitGQUlMIFNlcmlhbGl6ZSBJbWFnZUJpdG1hcCBjcmVhdGVkIGZyb20gYSBiaXRtYXAgU1ZHSW1h
Z2VFbGVtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK0ZBSUwgU2VyaWFsaXplIEltYWdlQml0bWFw
IGNyZWF0ZWQgZnJvbSBhIHZlY3RvciBTVkdJbWFnZUVsZW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9y
IgorRkFJTCBTZXJpYWxpemUgSW1hZ2VCaXRtYXAgY3JlYXRlZCBmcm9tIGFuIE9mZnNjcmVlbkNh
bnZhcyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJUeXBlRXJyb3I6IG51bGwgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGVzdEN0eC5m
aWxsU3R5bGUgPSAicmdiKDI1NSwgMCwgMCkiJykiCitGQUlMIFNlcmlhbGl6ZSBJbWFnZUJpdG1h
cCBjcmVhdGVkIGZyb20gYW4gSW1hZ2VEYXRhIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogY3JlYXRlSW1hZ2VCaXRtYXAgd2l0
aCBJbWFnZURhdGEgaXMgbm90IGltcGxlbWVudGVkIgorUEFTUyBTZXJpYWxpemUgSW1hZ2VCaXRt
YXAgY3JlYXRlZCBmcm9tIGFuIEltYWdlQml0bWFwIAorUEFTUyBTZXJpYWxpemUgSW1hZ2VCaXRt
YXAgY3JlYXRlZCBmcm9tIGEgQmxvYiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1h
Z2VCaXRtYXAtc2VyaWFsaXphYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1z
ZXJpYWxpemFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOWE4OGM2M2QzZmE4MjNmYjA0MDk5ODJkNzRl
ODI1MmYyZWE1NTdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAvY3JlYXRlSW1hZ2VCaXRt
YXAtc2VyaWFsaXphYmxlLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPmNyZWF0ZUltYWdlQml0bWFwIHNlcmlhbGl6ZSB0
ZXN0PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvY29tbW9uL25hbWVzcGFjZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImNvbW1v
bi5zdWIuanMiPjwvc2NyaXB0PgorPGRpdiBpZD1sb2c+PC9kaXY+Cis8c2NyaXB0PgorbGV0IHdv
cmtlciwgY29udGludWF0aW9ucyA9IHt9Oworc2V0dXAoZnVuY3Rpb24oKSB7CisgICAgd29ya2Vy
ID0gbmV3IFdvcmtlcigidHJhbnNmZXItd29ya2VyLmpzIik7CisgICAgd29ya2VyLmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICBsZXQgeyBuYW1l
LCBiaXRtYXAgfSA9IGV2ZW50LmRhdGE7CisgICAgICAgIGlmIChjb250aW51YXRpb25zLmhhc093
blByb3BlcnR5KG5hbWUpKSB7CisgICAgICAgICAgICBjb250aW51YXRpb25zW25hbWVdKGJpdG1h
cCk7CisgICAgICAgIH0KKyAgICB9KTsKK30pOworCitmb3IgKGxldCB7IG5hbWUsIGZhY3Rvcnkg
fSBvZiBpbWFnZVNvdXJjZVR5cGVzKSB7CisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgICAgICAgcmV0dXJuIGZhY3RvcnkoKS50aGVuKGNyZWF0ZUltYWdlQml0bWFwKS50aGVuKGZ1
bmN0aW9uKGJpdG1hcCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhiaXRtYXAud2lkdGgs
IDIwKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYml0bWFwLmhlaWdodCwgMjApOworCisg
ICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoeyBuYW1lOiB0Lm5hbWUsIGJpdG1hcDogYml0
bWFwIH0pOworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGJpdG1hcC53aWR0aCwgMjApOwor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhiaXRtYXAuaGVpZ2h0LCAyMCk7CisKKyAgICAgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICAg
ICAgY29udGludWF0aW9uc1t0Lm5hbWVdID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KS50aGVuKGZ1bmN0aW9uKGJpdG1hcCkgeworICAgICAgICAgICAgYXNzZXJ0X2NsYXNz
X3N0cmluZyhiaXRtYXAsICJJbWFnZUJpdG1hcCIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhiaXRtYXAud2lkdGgsIDIwKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoYml0bWFwLmhl
aWdodCwgMjApOworICAgICAgICB9KTsKKyAgICB9LCBgU2VyaWFsaXplIEltYWdlQml0bWFwIGNy
ZWF0ZWQgZnJvbSAke25hbWV9YCk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3Mvc3Ry
dWN0dXJlZC1jbG9uZS9kZWRpY2F0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3JrZXJzL3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNs
b25lL2RlZGljYXRlZC1leHBlY3RlZC50eHQKaW5kZXggNTdiNzFkNDE2NjFlNTZhNDUzOGM0YWFm
OWUwZDk2NTcxNzNjZGRmZi4uNzgzNzE0OTQ3MTA2ODFhZjdlMWJiNGVhZTM3MGZmM2U3MDdjMTcx
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93b3JrZXJzL3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL2RlZGljYXRlZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93b3Jr
ZXJzL3NlbWFudGljcy9zdHJ1Y3R1cmVkLWNsb25lL2RlZGljYXRlZC1leHBlY3RlZC50eHQKQEAg
LTEwNiwxMiArMTA2LDEyIEBAIFBBU1MgT2JqZWN0IHdpdGggcHJvcGVydHkgb24gcHJvdG90eXBl
CiBQQVNTIE9iamVjdCB3aXRoIG5vbi1lbnVtZXJhYmxlIHByb3BlcnR5IAogUEFTUyBPYmplY3Qg
d2l0aCBub24td3JpdGFibGUgcHJvcGVydHkgCiBQQVNTIE9iamVjdCB3aXRoIG5vbi1jb25maWd1
cmFibGUgcHJvcGVydHkgCi1GQUlMIEltYWdlQml0bWFwIDF4MSB0cmFuc3BhcmVudCBibGFjayBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBl
RXJyb3I6IFR5cGUgZXJyb3IiCi1GQUlMIEltYWdlQml0bWFwIDF4MSBub24tdHJhbnNwYXJlbnQg
bm9uLWJsYWNrIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKLUZBSUwgQXJyYXkgSW1hZ2VCaXRtYXAgb2Jq
ZWN0LCBJbWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQgYmxhY2sgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9y
IgotRkFJTCBBcnJheSBJbWFnZUJpdG1hcCBvYmplY3QsIEltYWdlQml0bWFwIDF4MSB0cmFuc3Bh
cmVudCBub24tYmxhY2sgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFs
dWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBlIGVycm9yIgotRkFJTCBPYmplY3QgSW1hZ2VCaXRt
YXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQgYmxhY2sgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiBUeXBl
IGVycm9yIgotRkFJTCBPYmplY3QgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEg
dHJhbnNwYXJlbnQgbm9uLWJsYWNrIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogVHlwZSBlcnJvciIKK1BBU1MgSW1hZ2VCaXRt
YXAgMXgxIHRyYW5zcGFyZW50IGJsYWNrIAorUEFTUyBJbWFnZUJpdG1hcCAxeDEgbm9uLXRyYW5z
cGFyZW50IG5vbi1ibGFjayAKK1BBU1MgQXJyYXkgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJp
dG1hcCAxeDEgdHJhbnNwYXJlbnQgYmxhY2sgCitQQVNTIEFycmF5IEltYWdlQml0bWFwIG9iamVj
dCwgSW1hZ2VCaXRtYXAgMXgxIHRyYW5zcGFyZW50IG5vbi1ibGFjayAKK1BBU1MgT2JqZWN0IElt
YWdlQml0bWFwIG9iamVjdCwgSW1hZ2VCaXRtYXAgMXgxIHRyYW5zcGFyZW50IGJsYWNrIAorUEFT
UyBPYmplY3QgSW1hZ2VCaXRtYXAgb2JqZWN0LCBJbWFnZUJpdG1hcCAxeDEgdHJhbnNwYXJlbnQg
bm9uLWJsYWNrIAogUEFTUyBBcnJheUJ1ZmZlciAKIFBBU1MgTWVzc2FnZVBvcnQgCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>