<?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>194888</bug_id>
          
          <creation_ts>2019-02-20 17:53:05 -0800</creation_ts>
          <short_desc>BigInt should store its data in the primitive gigacage.</short_desc>
          <delta_ts>2019-11-18 00:25:19 -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>JavaScriptCore</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="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1508403</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-02-20 17:53:05 -0800</bug_when>
    <thetext>BigInt should store its data in the primitive gigacage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510469</commentid>
    <comment_count>1</comment_count>
      <attachid>363098</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-02-27 09:56:29 -0800</bug_when>
    <thetext>Created attachment 363098
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510470</commentid>
    <comment_count>2</comment_count>
      <attachid>363099</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-02-27 10:01:03 -0800</bug_when>
    <thetext>Created attachment 363099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510473</commentid>
    <comment_count>3</comment_count>
      <attachid>363100</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-02-27 10:05:41 -0800</bug_when>
    <thetext>Created attachment 363100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510503</commentid>
    <comment_count>4</comment_count>
      <attachid>363100</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-27 10:56:22 -0800</bug_when>
    <thetext>Comment on attachment 363100
Patch

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

&gt; Source/JavaScriptCore/runtime/JSBigInt.h:245
&gt; +    CagedBarrierPtr&lt;Gigacage::Primitive, Digit&gt; m_data;

Do we need to use CagedBarrierPtr instead of CagedPtr here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510506</commentid>
    <comment_count>5</comment_count>
      <attachid>363100</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-27 11:00:20 -0800</bug_when>
    <thetext>Comment on attachment 363100
Patch

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

&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:74
&gt; +    Gigacage::free(Gigacage::Primitive, thisObject-&gt;dataStorage());

If we use CagedUniquePtr, we do not need to call this in JSBigInt::destroy. We can call thisObject-~JSBigInt().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511001</commentid>
    <comment_count>6</comment_count>
      <attachid>363100</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-02-28 11:07:43 -0800</bug_when>
    <thetext>Comment on attachment 363100
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:74
&gt;&gt; +    Gigacage::free(Gigacage::Primitive, thisObject-&gt;dataStorage());
&gt; 
&gt; If we use CagedUniquePtr, we do not need to call this in JSBigInt::destroy. We can call thisObject-~JSBigInt().

Ohh, nice, I&apos;ll change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511033</commentid>
    <comment_count>7</comment_count>
      <attachid>363244</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-02-28 11:38:54 -0800</bug_when>
    <thetext>Created attachment 363244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511064</commentid>
    <comment_count>8</comment_count>
      <attachid>363244</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-28 12:41:09 -0800</bug_when>
    <thetext>Comment on attachment 363244
Patch

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

&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:119
&gt;  JSBigInt* JSBigInt::createWithLengthUnchecked(VM&amp; vm, unsigned length)
&gt;  {
&gt;      ASSERT(length &lt;= maxLength);
&gt; -    JSBigInt* bigInt = new (NotNull, allocateCell&lt;JSBigInt&gt;(vm.heap, allocationSize(length))) JSBigInt(vm, vm.bigIntStructure.get(), length);
&gt; +    void* data = Gigacage::tryMalloc(Gigacage::Primitive, length * sizeof(Digit));
&gt; +    if (!data)
&gt; +        return nullptr;
&gt; +
&gt; +    JSBigInt* bigInt = new (NotNull, allocateCell&lt;JSBigInt&gt;(vm.heap)) JSBigInt(vm, vm.bigIntStructure.get(), reinterpret_cast&lt;Digit*&gt;(data), length);
&gt;      bigInt-&gt;finishCreation(vm);
&gt;      return bigInt;
&gt;  }

The point of this function is that we don&apos;t return nullptr. So this shouldn&apos;t be using tryMalloc. Perhaps somewhere earlier we should be tryMallocing and throwing an OOM? If you grep for callers of this, you&apos;ll see that we just assume it&apos;s non-null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590988</commentid>
    <comment_count>9</comment_count>
      <attachid>383732</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-17 23:03:21 -0800</bug_when>
    <thetext>Created attachment 383732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590990</commentid>
    <comment_count>10</comment_count>
      <attachid>383732</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-17 23:56:33 -0800</bug_when>
    <thetext>Comment on attachment 383732
Patch

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

r=me with fix.

&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:111
&gt; +    ASSERT(data);

This is not strictly needed because malloc() should crash on failure to allocate, but I suppose it doesn&apos;t hurt.

&gt; Source/JavaScriptCore/runtime/JSBigInt.h:56
&gt;      JSBigInt(VM&amp;, Structure*, unsigned length);

Shouldn&apos;t this line be removed?  This constructor doesn&apos;t exist anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590993</commentid>
    <comment_count>11</comment_count>
      <attachid>383732</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-18 00:21:00 -0800</bug_when>
    <thetext>Comment on attachment 383732
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.cpp:111
&gt;&gt; +    ASSERT(data);
&gt; 
&gt; This is not strictly needed because malloc() should crash on failure to allocate, but I suppose it doesn&apos;t hurt.

Yeah, removing this is also OK.

&gt;&gt; Source/JavaScriptCore/runtime/JSBigInt.h:56
&gt;&gt;      JSBigInt(VM&amp;, Structure*, unsigned length);
&gt; 
&gt; Shouldn&apos;t this line be removed?  This constructor doesn&apos;t exist anymore.

Yes, we should remove it. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590994</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-18 00:24:07 -0800</bug_when>
    <thetext>Committed r252538: &lt;https://trac.webkit.org/changeset/252538&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590995</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-18 00:25:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/57274577&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363098</attachid>
            <date>2019-02-27 09:56:29 -0800</date>
            <delta_ts>2019-02-27 10:00:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194888-20190227095627.patch</filename>
            <type>text/plain</type>
            <size>5005</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
N2FiYzZlM2VlMGE3YTllMWNmMmUyNDUzOTMwZDI5ZGJmZTgwYjllLi4xMjUwZmZkOTMzNzEwZDZj
ZDc5ZDRmZDQ2MTg1MGQ3MDhiMzAxOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxOS0wMi0yNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBCaWdJbnQgc2hvdWxkIHN0b3JlIGl0cyBkYXRhIGluIHRoZSBwcmlt
aXRpdmUgZ2lnYWNhZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTQ4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6
SlNCaWdJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6ZGVzdHJveSk6CisgICAgICAgIChK
U0M6OkpTQmlnSW50OjpjcmVhdGVXaXRoTGVuZ3RoVW5jaGVja2VkKToKKyAgICAgICAgKEpTQzo6
SlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
QmlnSW50Lmg6CisKIDIwMTktMDItMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIE1TRSBsb2dnaW5nIGNvbmZpZ3VyYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAppbmRleCAyYmNhYTliNjc2MmQyNTJm
MGIzMWVlMWE4OTQ5Y2RkODM3NDY4MDBlLi4yZTYwYzkwZWM2NTJjZDk2YTI1NmJlNDg1ODY2MDY0
Y2QyNGYzNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jp
Z0ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3Bw
CkBAIC02MiwxMSArNjIsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiBjb25zdCBDbGFzc0luZm8gSlNC
aWdJbnQ6OnNfaW5mbyA9CiAgICAgeyAiSlNCaWdJbnQiLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQmlnSW50KSB9OwogCi1KU0JpZ0ludDo6SlNCaWdJ
bnQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdW5zaWduZWQgbGVuZ3RoKQorSlNCaWdJ
bnQ6OkpTQmlnSW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIERpZ2l0KiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2xlbmd0
aChsZW5ndGgpCisgICAgLCBtX2RhdGEodm0sIHRoaXMsIGRhdGEpCiB7IH0KIAordm9pZCBKU0Jp
Z0ludDo6ZGVzdHJveShKU0NlbGwqIHRoaXNDZWxsKQoreworICAgIGF1dG8gdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTQmlnSW50Kj4odGhpc0NlbGwpOworICAgIEdpZ2FjYWdlOjpmcmVlKEdp
Z2FjYWdlOjpQcmltaXRpdmUsIHRoaXNPYmplY3QtPmRhdGFTdG9yYWdlKCkpOworfQorCiB2b2lk
IEpTQmlnSW50Ojppbml0aWFsaXplKEluaXRpYWxpemF0aW9uVHlwZSBpbml0VHlwZSkKIHsKICAg
ICBpZiAoaW5pdFR5cGUgPT0gSW5pdGlhbGl6YXRpb25UeXBlOjpXaXRoWmVybykKQEAgLTg0LDEy
ICs5MSw2IEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6Y3JlYXRlWmVybyhWTSYgdm0pCiAgICAgcmV0
dXJuIHplcm9CaWdJbnQ7CiB9CiAKLWlubGluZSBzaXplX3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25T
aXplKHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICBzaXplX3Qgc2l6ZVdpdGhQYWRkaW5nID0gV1RG
Ojpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZihzaXplX3QpPihzaXplb2YoSlNCaWdJbnQpKTsK
LSAgICByZXR1cm4gc2l6ZVdpdGhQYWRkaW5nICsgbGVuZ3RoICogc2l6ZW9mKERpZ2l0KTsKLX0K
LQogSlNCaWdJbnQqIEpTQmlnSW50Ojp0cnlDcmVhdGVXaXRoTGVuZ3RoKEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC0xMDgs
NyArMTA5LDExIEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6dHJ5Q3JlYXRlV2l0aExlbmd0aChFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGxlbmd0aCkKIEpTQmlnSW50KiBKU0JpZ0ludDo6Y3JlYXRl
V2l0aExlbmd0aFVuY2hlY2tlZChWTSYgdm0sIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBBU1NF
UlQobGVuZ3RoIDw9IG1heExlbmd0aCk7Ci0gICAgSlNCaWdJbnQqIGJpZ0ludCA9IG5ldyAoTm90
TnVsbCwgYWxsb2NhdGVDZWxsPEpTQmlnSW50Pih2bS5oZWFwLCBhbGxvY2F0aW9uU2l6ZShsZW5n
dGgpKSkgSlNCaWdJbnQodm0sIHZtLmJpZ0ludFN0cnVjdHVyZS5nZXQoKSwgbGVuZ3RoKTsKKyAg
ICB2b2lkKiBkYXRhID0gR2lnYWNhZ2U6OnRyeU1hbGxvYyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBs
ZW5ndGggKiBzaXplb2YoRGlnaXQpKTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgSlNCaWdJbnQqIGJpZ0ludCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPEpTQmlnSW50Pih2bS5oZWFwKSkgSlNCaWdJbnQodm0sIHZtLmJpZ0ludFN0cnVjdHVyZS5n
ZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxEaWdpdCo+KGRhdGEpLCBsZW5ndGgpOwogICAgIGJpZ0lu
dC0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHJldHVybiBiaWdJbnQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAppbmRleCBkYmJmNjNkZWQxYzhjYmQ0OGVhN2I5
ZmNiNWIwZTg1MTViNWZlYTlkLi40MTQ2Yjg0ZmFkYjMwNWJkYWU2MzhiYjg3NGQ1MzQ3ZmUyM2Ey
MzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKQEAgLTM2LDEz
ICszNiwxNSBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CitwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTQ2VsbDsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8
IFN0cnVjdHVyZUlzSW1tb3J0YWwgfCBPdmVycmlkZXNUb1RoaXM7Ci0gICAgZnJpZW5kIGNsYXNz
IENhY2hlZEJpZ0ludDsKKyAgICB1c2luZyBEaWdpdCA9IFVDUFVSZWdpc3RlcjsKIAotcHVibGlj
OgorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWwgfCBPdmVycmlkZXNUb1RoaXM7Cisg
ICAgZnJpZW5kIGNsYXNzIENhY2hlZEJpZ0ludDsKIAotICAgIEpTQmlnSW50KFZNJiwgU3RydWN0
dXJlKiwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNE
ZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAog
ICAgIGVudW0gY2xhc3MgSW5pdGlhbGl6YXRpb25UeXBlIHsgTm9uZSwgV2l0aFplcm8gfTsKICAg
ICB2b2lkIGluaXRpYWxpemUoSW5pdGlhbGl6YXRpb25UeXBlKTsKQEAgLTEyOSw4ICsxMzEsOCBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQmlnSW50KiBzaWduZWRSaWdodFNoaWZ0KEV4ZWNTdGF0
ZSosIEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSk7CiAKIHByaXZhdGU6CisgICAgSlNCaWdJbnQo
Vk0mLCBTdHJ1Y3R1cmUqLCBEaWdpdCosIHVuc2lnbmVkIGxlbmd0aCk7CiAKLSAgICB1c2luZyBE
aWdpdCA9IFVDUFVSZWdpc3RlcjsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdHNQ
ZXJCeXRlID0gODsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGRpZ2l0Qml0cyA9IHNp
emVvZihEaWdpdCkgKiBiaXRzUGVyQnl0ZTsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IGhhbGZEaWdpdEJpdHMgPSBkaWdpdEJpdHMgLyAyOwpAQCAtMjI4LDIyICsyMzAsMTkgQEAgcHJp
dmF0ZToKIAogICAgIHN0YXRpYyBPcHRpb25hbDxEaWdpdD4gdG9TaGlmdEFtb3VudChKU0JpZ0lu
dCogeCk7CiAKLSAgICBzdGF0aWMgc2l6ZV90IGFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0
aCk7CiAgICAgaW5saW5lIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZEYXRhKCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8c2l6ZW9mKERpZ2l0KT4oc2l6ZW9m
KEpTQmlnSW50KSk7CisgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNCaWdJbnQsIG1f
ZGF0YSk7CiAgICAgfQogCi0gICAgaW5saW5lIERpZ2l0KiBkYXRhU3RvcmFnZSgpCi0gICAgewot
ICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxEaWdpdCo+KHJlaW50ZXJwcmV0X2Nhc3Q8
Y2hhcio+KHRoaXMpICsgb2Zmc2V0T2ZEYXRhKCkpOwotICAgIH0KKyAgICBpbmxpbmUgRGlnaXQq
IGRhdGFTdG9yYWdlKCkgeyByZXR1cm4gbV9kYXRhLmdldCgpOyB9CiAKICAgICBEaWdpdCBkaWdp
dCh1bnNpZ25lZCk7CiAgICAgdm9pZCBzZXREaWdpdCh1bnNpZ25lZCwgRGlnaXQpOwogICAgICAg
ICAKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKICAgICBib29sIG1fc2lnbiB7IGZhbHNlIH07Cisg
ICAgQ2FnZWRCYXJyaWVyUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIERpZ2l0PiBtX2RhdGE7CiB9
OwogCiBpbmxpbmUgSlNCaWdJbnQqIGFzQmlnSW50KEpTVmFsdWUgdmFsdWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363099</attachid>
            <date>2019-02-27 10:01:03 -0800</date>
            <delta_ts>2019-02-27 10:05:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194888-20190227100100.patch</filename>
            <type>text/plain</type>
            <size>5306</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
N2FiYzZlM2VlMGE3YTllMWNmMmUyNDUzOTMwZDI5ZGJmZTgwYjllLi45YzdkNTJjOGVlNDgwNmJj
ZjY1OWRhZTNkMWUzM2NhMzM4MzdlMmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0wMi0yNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBCaWdJbnQgc2hvdWxkIHN0b3JlIGl0cyBkYXRhIGluIHRoZSBwcmlt
aXRpdmUgZ2lnYWNhZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTQ4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZSBzaG91bGQgcHV0IHRoZXNlIGJpdHMgaW4gdGhlIHByaW1pdGl2ZSBnaWdhY2Fn
ZSB0byByZWR1Y2UgdGhlCisgICAgICAgIHZhbHVlIG9mIHR5cGUgY29uZnVzaW5nIGEgQmlnSW50
IGFzIGEgZGlmZmVyZW50IGNlbGwgYW5kIHVzaW5nIHRoZQorICAgICAgICBkaWdpdHMgYXMgYSB3
YXkgdG8gY3JlYXRlIGFuIGFyYml0cmFyeSBwb2ludGVyLiBJIGRpZG4ndCB3b3JyeQorICAgICAg
ICBhYm91dCBsZW5ndGgvc2lnbiBhcyB0aGV5IGFyZSBub3QgcG9zc2libGUgdG8gZm9yZ2UgYSBw
b2ludGVyIHdpdGguCisKKyAgICAgICAgKiBydW50aW1lL0pTQmlnSW50LmNwcDoKKyAgICAgICAg
KEpTQzo6SlNCaWdJbnQ6OkpTQmlnSW50KToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmRlc3Ry
b3kpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aFVuY2hlY2tlZCk6
CisgICAgICAgIChKU0M6OkpTQmlnSW50OjphbGxvY2F0aW9uU2l6ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9KU0JpZ0ludC5oOgorCiAyMDE5LTAyLTE4ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBNU0UgbG9nZ2luZyBjb25maWd1
cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0lu
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKaW5kZXgg
MmJjYWE5YjY3NjJkMjUyZjBiMzFlZTFhODk0OWNkZDgzNzQ2ODAwZS4uMmU2MGM5MGVjNjUyY2Q5
NmEyNTZiZTQ4NTg2NjA2NGNkMjRmMzUyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQmlnSW50LmNwcApAQCAtNjIsMTEgKzYyLDE4IEBAIG5hbWVzcGFjZSBKU0MgewogY29u
c3QgQ2xhc3NJbmZvIEpTQmlnSW50OjpzX2luZm8gPQogICAgIHsgIkpTQmlnSW50IiwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0JpZ0ludCkgfTsKIAot
SlNCaWdJbnQ6OkpTQmlnSW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVk
IGxlbmd0aCkKK0pTQmlnSW50OjpKU0JpZ0ludChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBEaWdpdCogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
KQogICAgICwgbV9sZW5ndGgobGVuZ3RoKQorICAgICwgbV9kYXRhKHZtLCB0aGlzLCBkYXRhKQog
eyB9CiAKK3ZvaWQgSlNCaWdJbnQ6OmRlc3Ryb3koSlNDZWxsKiB0aGlzQ2VsbCkKK3sKKyAgICBh
dXRvIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0JpZ0ludCo+KHRoaXNDZWxsKTsKKyAgICBH
aWdhY2FnZTo6ZnJlZShHaWdhY2FnZTo6UHJpbWl0aXZlLCB0aGlzT2JqZWN0LT5kYXRhU3RvcmFn
ZSgpKTsKK30KKwogdm9pZCBKU0JpZ0ludDo6aW5pdGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGUg
aW5pdFR5cGUpCiB7CiAgICAgaWYgKGluaXRUeXBlID09IEluaXRpYWxpemF0aW9uVHlwZTo6V2l0
aFplcm8pCkBAIC04NCwxMiArOTEsNiBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OmNyZWF0ZVplcm8o
Vk0mIHZtKQogICAgIHJldHVybiB6ZXJvQmlnSW50OwogfQogCi1pbmxpbmUgc2l6ZV90IEpTQmln
SW50OjphbGxvY2F0aW9uU2l6ZSh1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgc2l6ZV90IHNpemVX
aXRoUGFkZGluZyA9IFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxzaXplb2Yoc2l6ZV90KT4oc2l6
ZW9mKEpTQmlnSW50KSk7Ci0gICAgcmV0dXJuIHNpemVXaXRoUGFkZGluZyArIGxlbmd0aCAqIHNp
emVvZihEaWdpdCk7Ci19Ci0KIEpTQmlnSW50KiBKU0JpZ0ludDo6dHJ5Q3JlYXRlV2l0aExlbmd0
aChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwpAQCAtMTA4LDcgKzEwOSwxMSBAQCBKU0JpZ0ludCogSlNCaWdJbnQ6OnRyeUNyZWF0
ZVdpdGhMZW5ndGgoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBsZW5ndGgpCiBKU0JpZ0ludCog
SlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5ndGhVbmNoZWNrZWQoVk0mIHZtLCB1bnNpZ25lZCBsZW5n
dGgpCiB7CiAgICAgQVNTRVJUKGxlbmd0aCA8PSBtYXhMZW5ndGgpOwotICAgIEpTQmlnSW50KiBi
aWdJbnQgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU0JpZ0ludD4odm0uaGVhcCwgYWxs
b2NhdGlvblNpemUobGVuZ3RoKSkpIEpTQmlnSW50KHZtLCB2bS5iaWdJbnRTdHJ1Y3R1cmUuZ2V0
KCksIGxlbmd0aCk7CisgICAgdm9pZCogZGF0YSA9IEdpZ2FjYWdlOjp0cnlNYWxsb2MoR2lnYWNh
Z2U6OlByaW1pdGl2ZSwgbGVuZ3RoICogc2l6ZW9mKERpZ2l0KSk7CisgICAgaWYgKCFkYXRhKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEpTQmlnSW50KiBiaWdJbnQgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxKU0JpZ0ludD4odm0uaGVhcCkpIEpTQmlnSW50KHZtLCB2bS5i
aWdJbnRTdHJ1Y3R1cmUuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8RGlnaXQqPihkYXRhKSwgbGVu
Z3RoKTsKICAgICBiaWdJbnQtPmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICByZXR1cm4gYmlnSW50
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggZGJiZjYz
ZGVkMWM4Y2JkNDhlYTdiOWZjYjViMGU4NTE1YjVmZWE5ZC4uNDE0NmI4NGZhZGIzMDViZGFlNjM4
YmI4NzRkNTM0N2ZlMjNhMjM0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCaWdJbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jp
Z0ludC5oCkBAIC0zNiwxMyArMzYsMTUgQEAKIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBKU0Jp
Z0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgeworcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBK
U0NlbGw7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsIHwgT3ZlcnJpZGVzVG9UaGlzOwot
ICAgIGZyaWVuZCBjbGFzcyBDYWNoZWRCaWdJbnQ7CisgICAgdXNpbmcgRGlnaXQgPSBVQ1BVUmVn
aXN0ZXI7CiAKLXB1YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1Y3R1cmVJc0ltbW9ydGFsIHwgT3Zl
cnJpZGVzVG9UaGlzOworICAgIGZyaWVuZCBjbGFzcyBDYWNoZWRCaWdJbnQ7CiAKLSAgICBKU0Jp
Z0ludChWTSYsIFN0cnVjdHVyZSosIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOworICAgIHN0YXRpYyB2b2lkIGRlc3Ry
b3koSlNDZWxsKik7CiAKICAgICBlbnVtIGNsYXNzIEluaXRpYWxpemF0aW9uVHlwZSB7IE5vbmUs
IFdpdGhaZXJvIH07CiAgICAgdm9pZCBpbml0aWFsaXplKEluaXRpYWxpemF0aW9uVHlwZSk7CkBA
IC0xMjksOCArMTMxLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0JpZ0ludCogc2lnbmVkUmln
aHRTaGlmdChFeGVjU3RhdGUqLCBKU0JpZ0ludCogeCwgSlNCaWdJbnQqIHkpOwogCiBwcml2YXRl
OgorICAgIEpTQmlnSW50KFZNJiwgU3RydWN0dXJlKiwgRGlnaXQqLCB1bnNpZ25lZCBsZW5ndGgp
OwogCi0gICAgdXNpbmcgRGlnaXQgPSBVQ1BVUmVnaXN0ZXI7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBiaXRzUGVyQnl0ZSA9IDg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBkaWdpdEJpdHMgPSBzaXplb2YoRGlnaXQpICogYml0c1BlckJ5dGU7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciB1bnNpZ25lZCBoYWxmRGlnaXRCaXRzID0gZGlnaXRCaXRzIC8gMjsKQEAgLTIyOCwy
MiArMjMwLDE5IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgT3B0aW9uYWw8RGlnaXQ+IHRvU2hp
ZnRBbW91bnQoSlNCaWdJbnQqIHgpOwogCi0gICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6
ZSh1bnNpZ25lZCBsZW5ndGgpOwogICAgIGlubGluZSBzdGF0aWMgc2l6ZV90IG9mZnNldE9mRGF0
YSgpCiAgICAgewotICAgICAgICByZXR1cm4gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVv
ZihEaWdpdCk+KHNpemVvZihKU0JpZ0ludCkpOworICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKEpTQmlnSW50LCBtX2RhdGEpOwogICAgIH0KIAotICAgIGlubGluZSBEaWdpdCogZGF0YVN0
b3JhZ2UoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RGlnaXQqPihy
ZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIG9mZnNldE9mRGF0YSgpKTsKLSAgICB9Cisg
ICAgaW5saW5lIERpZ2l0KiBkYXRhU3RvcmFnZSgpIHsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQog
CiAgICAgRGlnaXQgZGlnaXQodW5zaWduZWQpOwogICAgIHZvaWQgc2V0RGlnaXQodW5zaWduZWQs
IERpZ2l0KTsKICAgICAgICAgCiAgICAgdW5zaWduZWQgbV9sZW5ndGg7CiAgICAgYm9vbCBtX3Np
Z24geyBmYWxzZSB9OworICAgIENhZ2VkQmFycmllclB0cjxHaWdhY2FnZTo6UHJpbWl0aXZlLCBE
aWdpdD4gbV9kYXRhOwogfTsKIAogaW5saW5lIEpTQmlnSW50KiBhc0JpZ0ludChKU1ZhbHVlIHZh
bHVlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363100</attachid>
            <date>2019-02-27 10:05:41 -0800</date>
            <delta_ts>2019-02-28 11:38:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194888-20190227100539.patch</filename>
            <type>text/plain</type>
            <size>5310</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
NTM4MWQxYTZlNTAyMDRlMGZkMDQ2Y2Q4MmMwOTJmOTE0MTUwNjhhLi40YTMzNmU2MDA3MTlmY2Mz
MTlmODc3ZDY0OWUzMGM2ZDNjYWQ4NTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0wMi0yNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBCaWdJbnQgc2hvdWxkIHN0b3JlIGl0cyBkYXRhIGluIHRoZSBwcmlt
aXRpdmUgZ2lnYWNhZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTQ4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZSBzaG91bGQgcHV0IHRoZXNlIGJpdHMgaW4gdGhlIHByaW1pdGl2ZSBnaWdhY2Fn
ZSB0byByZWR1Y2UgdGhlCisgICAgICAgIHZhbHVlIG9mIHR5cGUgY29uZnVzaW5nIGEgQmlnSW50
IGFzIGEgZGlmZmVyZW50IGNlbGwgYW5kIHVzaW5nIHRoZQorICAgICAgICBkaWdpdHMgYXMgYSB3
YXkgdG8gY3JlYXRlIGFuIGFyYml0cmFyeSBwb2ludGVyLiBJIGRpZG4ndCB3b3JyeQorICAgICAg
ICBhYm91dCBsZW5ndGgvc2lnbiBhcyB0aGV5IGFyZSBub3QgcG9zc2libGUgdG8gZm9yZ2UgYSBw
b2ludGVyIHdpdGguCisKKyAgICAgICAgKiBydW50aW1lL0pTQmlnSW50LmNwcDoKKyAgICAgICAg
KEpTQzo6SlNCaWdJbnQ6OkpTQmlnSW50KToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmRlc3Ry
b3kpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aFVuY2hlY2tlZCk6
CisgICAgICAgIChKU0M6OkpTQmlnSW50OjphbGxvY2F0aW9uU2l6ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9KU0JpZ0ludC5oOgorCiAyMDE5LTAyLTI2ICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgcG9pc29ucyBpbiBKU0NQb2lzb24gYW5k
IHVzZXMgb2YgdGhlbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQmlnSW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNw
cAppbmRleCAyYmNhYTliNjc2MmQyNTJmMGIzMWVlMWE4OTQ5Y2RkODM3NDY4MDBlLi4yZTYwYzkw
ZWM2NTJjZDk2YTI1NmJlNDg1ODY2MDY0Y2QyNGYzNTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCkBAIC02MiwxMSArNjIsMTggQEAgbmFtZXNwYWNlIEpT
QyB7CiBjb25zdCBDbGFzc0luZm8gSlNCaWdJbnQ6OnNfaW5mbyA9CiAgICAgeyAiSlNCaWdJbnQi
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQmlnSW50
KSB9OwogCi1KU0JpZ0ludDo6SlNCaWdJbnQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
dW5zaWduZWQgbGVuZ3RoKQorSlNCaWdJbnQ6OkpTQmlnSW50KFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIERpZ2l0KiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgOiBCYXNlKHZtLCBz
dHJ1Y3R1cmUpCiAgICAgLCBtX2xlbmd0aChsZW5ndGgpCisgICAgLCBtX2RhdGEodm0sIHRoaXMs
IGRhdGEpCiB7IH0KIAordm9pZCBKU0JpZ0ludDo6ZGVzdHJveShKU0NlbGwqIHRoaXNDZWxsKQor
eworICAgIGF1dG8gdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQmlnSW50Kj4odGhpc0NlbGwp
OworICAgIEdpZ2FjYWdlOjpmcmVlKEdpZ2FjYWdlOjpQcmltaXRpdmUsIHRoaXNPYmplY3QtPmRh
dGFTdG9yYWdlKCkpOworfQorCiB2b2lkIEpTQmlnSW50Ojppbml0aWFsaXplKEluaXRpYWxpemF0
aW9uVHlwZSBpbml0VHlwZSkKIHsKICAgICBpZiAoaW5pdFR5cGUgPT0gSW5pdGlhbGl6YXRpb25U
eXBlOjpXaXRoWmVybykKQEAgLTg0LDEyICs5MSw2IEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6Y3Jl
YXRlWmVybyhWTSYgdm0pCiAgICAgcmV0dXJuIHplcm9CaWdJbnQ7CiB9CiAKLWlubGluZSBzaXpl
X3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICBzaXpl
X3Qgc2l6ZVdpdGhQYWRkaW5nID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZihzaXpl
X3QpPihzaXplb2YoSlNCaWdJbnQpKTsKLSAgICByZXR1cm4gc2l6ZVdpdGhQYWRkaW5nICsgbGVu
Z3RoICogc2l6ZW9mKERpZ2l0KTsKLX0KLQogSlNCaWdJbnQqIEpTQmlnSW50Ojp0cnlDcmVhdGVX
aXRoTGVuZ3RoKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIFZNJiB2
bSA9IGV4ZWMtPnZtKCk7CkBAIC0xMDgsNyArMTA5LDExIEBAIEpTQmlnSW50KiBKU0JpZ0ludDo6
dHJ5Q3JlYXRlV2l0aExlbmd0aChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGxlbmd0aCkKIEpT
QmlnSW50KiBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aFVuY2hlY2tlZChWTSYgdm0sIHVuc2ln
bmVkIGxlbmd0aCkKIHsKICAgICBBU1NFUlQobGVuZ3RoIDw9IG1heExlbmd0aCk7Ci0gICAgSlNC
aWdJbnQqIGJpZ0ludCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTQmlnSW50Pih2bS5o
ZWFwLCBhbGxvY2F0aW9uU2l6ZShsZW5ndGgpKSkgSlNCaWdJbnQodm0sIHZtLmJpZ0ludFN0cnVj
dHVyZS5nZXQoKSwgbGVuZ3RoKTsKKyAgICB2b2lkKiBkYXRhID0gR2lnYWNhZ2U6OnRyeU1hbGxv
YyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBsZW5ndGggKiBzaXplb2YoRGlnaXQpKTsKKyAgICBpZiAo
IWRhdGEpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgSlNCaWdJbnQqIGJpZ0ludCA9
IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTQmlnSW50Pih2bS5oZWFwKSkgSlNCaWdJbnQo
dm0sIHZtLmJpZ0ludFN0cnVjdHVyZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxEaWdpdCo+KGRh
dGEpLCBsZW5ndGgpOwogICAgIGJpZ0ludC0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHJldHVy
biBiaWdJbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAppbmRl
eCA2OTdmMjNjMDQyMzNjMjczNjFmMmNmOWYwNDI4N2EzNWFmNWM0OGUzLi40MTQ2Yjg0ZmFkYjMw
NWJkYWU2MzhiYjg3NGQ1MzQ3ZmUyM2EyMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0JpZ0ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQmlnSW50LmgKQEAgLTM2LDEzICszNiwxNSBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIGNs
YXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CitwdWJsaWM6CiAgICAgdXNpbmcg
QmFzZSA9IEpTQ2VsbDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0YWwgfCBPdmVycmlkZXNU
b1RoaXM7Ci0gICAgZnJpZW5kIGNsYXNzIENhY2hlZEJpZ0ludDsKKyAgICB1c2luZyBEaWdpdCA9
IFVDUFVSZWdpc3RlcjsKIAotcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1tb3J0
YWwgfCBPdmVycmlkZXNUb1RoaXM7CisgICAgZnJpZW5kIGNsYXNzIENhY2hlZEJpZ0ludDsKIAot
ICAgIEpTQmlnSW50KFZNJiwgU3RydWN0dXJlKiwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CisgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0NlbGwqKTsKIAogICAgIGVudW0gY2xhc3MgSW5pdGlhbGl6YXRpb25UeXBl
IHsgTm9uZSwgV2l0aFplcm8gfTsKICAgICB2b2lkIGluaXRpYWxpemUoSW5pdGlhbGl6YXRpb25U
eXBlKTsKQEAgLTEyOSw4ICsxMzEsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEpTQmlnSW50KiBz
aWduZWRSaWdodFNoaWZ0KEV4ZWNTdGF0ZSosIEpTQmlnSW50KiB4LCBKU0JpZ0ludCogeSk7CiAK
IHByaXZhdGU6CisgICAgSlNCaWdJbnQoVk0mLCBTdHJ1Y3R1cmUqLCBEaWdpdCosIHVuc2lnbmVk
IGxlbmd0aCk7CiAKLSAgICB1c2luZyBEaWdpdCA9IFVDUFVSZWdpc3RlcjsKICAgICBzdGF0aWMg
Y29uc3RleHByIHVuc2lnbmVkIGJpdHNQZXJCeXRlID0gODsKICAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIGRpZ2l0Qml0cyA9IHNpemVvZihEaWdpdCkgKiBiaXRzUGVyQnl0ZTsKICAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGhhbGZEaWdpdEJpdHMgPSBkaWdpdEJpdHMgLyAyOwpA
QCAtMjI4LDIyICsyMzAsMTkgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBPcHRpb25hbDxEaWdp
dD4gdG9TaGlmdEFtb3VudChKU0JpZ0ludCogeCk7CiAKLSAgICBzdGF0aWMgc2l6ZV90IGFsbG9j
YXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgaW5saW5lIHN0YXRpYyBzaXplX3Qgb2Zm
c2V0T2ZEYXRhKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBXVEY6OnJvdW5kVXBUb011bHRpcGxl
T2Y8c2l6ZW9mKERpZ2l0KT4oc2l6ZW9mKEpTQmlnSW50KSk7CisgICAgICAgIHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoSlNCaWdJbnQsIG1fZGF0YSk7CiAgICAgfQogCi0gICAgaW5saW5lIERpZ2l0
KiBkYXRhU3RvcmFnZSgpCi0gICAgewotICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PERpZ2l0
Kj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBvZmZzZXRPZkRhdGEoKSk7Ci0gICAg
fQorICAgIGlubGluZSBEaWdpdCogZGF0YVN0b3JhZ2UoKSB7IHJldHVybiBtX2RhdGEuZ2V0KCk7
IH0KIAogICAgIERpZ2l0IGRpZ2l0KHVuc2lnbmVkKTsKICAgICB2b2lkIHNldERpZ2l0KHVuc2ln
bmVkLCBEaWdpdCk7CiAgICAgICAgIAogICAgIHVuc2lnbmVkIG1fbGVuZ3RoOwogICAgIGJvb2wg
bV9zaWduIHsgZmFsc2UgfTsKKyAgICBDYWdlZEJhcnJpZXJQdHI8R2lnYWNhZ2U6OlByaW1pdGl2
ZSwgRGlnaXQ+IG1fZGF0YTsKIH07CiAKIGlubGluZSBKU0JpZ0ludCogYXNCaWdJbnQoSlNWYWx1
ZSB2YWx1ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363244</attachid>
            <date>2019-02-28 11:38:54 -0800</date>
            <delta_ts>2019-11-17 23:03:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194888-20190228113850.patch</filename>
            <type>text/plain</type>
            <size>5512</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OWE0MTUyYzUxMDUxMzNkNDZjZGM0ZTQxZTZmNGEwZmI2NmYzZDBkLi40OWMzM2Y3ZTYwZGM5OWNm
YTJlNjcyZjE0NGFjMGEwOGIzYjMwYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0wMi0yOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBCaWdJbnQgc2hvdWxkIHN0b3JlIGl0cyBkYXRhIGluIHRoZSBwcmlt
aXRpdmUgZ2lnYWNhZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTQ4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZSBzaG91bGQgcHV0IHRoZXNlIGJpdHMgaW4gdGhlIHByaW1pdGl2ZSBnaWdhY2Fn
ZSB0byByZWR1Y2UgdGhlCisgICAgICAgIHZhbHVlIG9mIHR5cGUgY29uZnVzaW5nIGEgQmlnSW50
IGFzIGEgZGlmZmVyZW50IGNlbGwgYW5kIHVzaW5nIHRoZQorICAgICAgICBkaWdpdHMgYXMgYSB3
YXkgdG8gY3JlYXRlIGFuIGFyYml0cmFyeSBwb2ludGVyLiBJIGRpZG4ndCB3b3JyeQorICAgICAg
ICBhYm91dCBsZW5ndGgvc2lnbiBhcyB0aGV5IGFyZSBub3QgcG9zc2libGUgdG8gZm9yZ2UgYSBw
b2ludGVyIHdpdGguCisKKyAgICAgICAgKiBydW50aW1lL0pTQmlnSW50LmNwcDoKKyAgICAgICAg
KEpTQzo6SlNCaWdJbnQ6OkpTQmlnSW50KToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmRlc3Ry
b3kpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aFVuY2hlY2tlZCk6
CisgICAgICAgIChKU0M6OkpTQmlnSW50OjphbGxvY2F0aW9uU2l6ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9KU0JpZ0ludC5oOgorCiAyMDE5LTAyLTI4ICBKdXN0aW4gRmFuICA8anVz
dGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBHUFVdIEVuYWJsZSBXZWIgR1BVIG9u
bHkgb24gNjQtYml0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAK
aW5kZXggMmJjYWE5YjY3NjJkMjUyZjBiMzFlZTFhODk0OWNkZDgzNzQ2ODAwZS4uZTNkZWI0Mjky
ZjdkZTdmOTkzMzFhMDRmMTNhMjZkYTJlZDdiYTgxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAtNjIsMTEgKzYyLDE4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogY29uc3QgQ2xhc3NJbmZvIEpTQmlnSW50OjpzX2luZm8gPQogICAgIHsgIkpTQmlnSW50Iiwg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0JpZ0ludCkg
fTsKIAotSlNCaWdJbnQ6OkpTQmlnSW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVu
c2lnbmVkIGxlbmd0aCkKK0pTQmlnSW50OjpKU0JpZ0ludChWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBEaWdpdCogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKQogICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlKQogICAgICwgbV9sZW5ndGgobGVuZ3RoKQorICAgICwgbV9kYXRhKGRhdGEpCiB7IH0K
IAordm9pZCBKU0JpZ0ludDo6ZGVzdHJveShKU0NlbGwqIHRoaXNDZWxsKQoreworICAgIGF1dG8g
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQmlnSW50Kj4odGhpc0NlbGwpOworICAgIHRoaXNP
YmplY3QtPn5KU0JpZ0ludCgpOworfQorCiB2b2lkIEpTQmlnSW50Ojppbml0aWFsaXplKEluaXRp
YWxpemF0aW9uVHlwZSBpbml0VHlwZSkKIHsKICAgICBpZiAoaW5pdFR5cGUgPT0gSW5pdGlhbGl6
YXRpb25UeXBlOjpXaXRoWmVybykKQEAgLTg0LDEyICs5MSw2IEBAIEpTQmlnSW50KiBKU0JpZ0lu
dDo6Y3JlYXRlWmVybyhWTSYgdm0pCiAgICAgcmV0dXJuIHplcm9CaWdJbnQ7CiB9CiAKLWlubGlu
ZSBzaXplX3QgSlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAg
ICBzaXplX3Qgc2l6ZVdpdGhQYWRkaW5nID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVv
ZihzaXplX3QpPihzaXplb2YoSlNCaWdJbnQpKTsKLSAgICByZXR1cm4gc2l6ZVdpdGhQYWRkaW5n
ICsgbGVuZ3RoICogc2l6ZW9mKERpZ2l0KTsKLX0KLQogSlNCaWdJbnQqIEpTQmlnSW50Ojp0cnlD
cmVhdGVXaXRoTGVuZ3RoKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgbGVuZ3RoKQogewogICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC0xMDgsNyArMTA5LDExIEBAIEpTQmlnSW50KiBKU0Jp
Z0ludDo6dHJ5Q3JlYXRlV2l0aExlbmd0aChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGxlbmd0
aCkKIEpTQmlnSW50KiBKU0JpZ0ludDo6Y3JlYXRlV2l0aExlbmd0aFVuY2hlY2tlZChWTSYgdm0s
IHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBBU1NFUlQobGVuZ3RoIDw9IG1heExlbmd0aCk7Ci0g
ICAgSlNCaWdJbnQqIGJpZ0ludCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTQmlnSW50
Pih2bS5oZWFwLCBhbGxvY2F0aW9uU2l6ZShsZW5ndGgpKSkgSlNCaWdJbnQodm0sIHZtLmJpZ0lu
dFN0cnVjdHVyZS5nZXQoKSwgbGVuZ3RoKTsKKyAgICB2b2lkKiBkYXRhID0gR2lnYWNhZ2U6OnRy
eU1hbGxvYyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBsZW5ndGggKiBzaXplb2YoRGlnaXQpKTsKKyAg
ICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgSlNCaWdJbnQqIGJp
Z0ludCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTQmlnSW50Pih2bS5oZWFwKSkgSlNC
aWdJbnQodm0sIHZtLmJpZ0ludFN0cnVjdHVyZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxEaWdp
dCo+KGRhdGEpLCBsZW5ndGgpOwogICAgIGJpZ0ludC0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAg
IHJldHVybiBiaWdJbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0JpZ0ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQu
aAppbmRleCA2OTdmMjNjMDQyMzNjMjczNjFmMmNmOWYwNDI4N2EzNWFmNWM0OGUzLi5lZDMxZDJm
MmFkYjRhYjNlM2E1ODIwNjQxMjA2MmE0MTg3MWZjYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQmlnSW50LmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJDUFUuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKLSNp
bmNsdWRlIDx3dGYvQ2FnZWRQdHIuaD4KKyNpbmNsdWRlIDx3dGYvQ2FnZWRVbmlxdWVQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzYsMTMg
KzM2LDE1IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSlNCaWdJbnQgZmluYWwgOiBwdWJs
aWMgSlNDZWxsIHsKK3B1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNDZWxsOwotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwg
U3RydWN0dXJlSXNJbW1vcnRhbCB8IE92ZXJyaWRlc1RvVGhpczsKLSAgICBmcmllbmQgY2xhc3Mg
Q2FjaGVkQmlnSW50OworICAgIHVzaW5nIERpZ2l0ID0gVUNQVVJlZ2lzdGVyOwogCi1wdWJsaWM6
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbCB8IE92ZXJyaWRlc1RvVGhpczsKKyAg
ICBmcmllbmQgY2xhc3MgQ2FjaGVkQmlnSW50OwogCi0gICAgSlNCaWdJbnQoVk0mLCBTdHJ1Y3R1
cmUqLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rl
c3RydWN0aW9uID0gdHJ1ZTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCiAg
ICAgZW51bSBjbGFzcyBJbml0aWFsaXphdGlvblR5cGUgeyBOb25lLCBXaXRoWmVybyB9OwogICAg
IHZvaWQgaW5pdGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGUpOwpAQCAtMTI5LDggKzEzMSw4IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgSlNCaWdJbnQqIHNpZ25lZFJpZ2h0U2hpZnQoRXhlY1N0YXRl
KiwgSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5KTsKIAogcHJpdmF0ZToKKyAgICBKU0JpZ0ludChW
TSYsIFN0cnVjdHVyZSosIERpZ2l0KiwgdW5zaWduZWQgbGVuZ3RoKTsKIAotICAgIHVzaW5nIERp
Z2l0ID0gVUNQVVJlZ2lzdGVyOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgYml0c1Bl
ckJ5dGUgPSA4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZGlnaXRCaXRzID0gc2l6
ZW9mKERpZ2l0KSAqIGJpdHNQZXJCeXRlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
aGFsZkRpZ2l0Qml0cyA9IGRpZ2l0Qml0cyAvIDI7CkBAIC0yMjgsMjIgKzIzMCwxOSBAQCBwcml2
YXRlOgogCiAgICAgc3RhdGljIE9wdGlvbmFsPERpZ2l0PiB0b1NoaWZ0QW1vdW50KEpTQmlnSW50
KiB4KTsKIAotICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUodW5zaWduZWQgbGVuZ3Ro
KTsKICAgICBpbmxpbmUgc3RhdGljIHNpemVfdCBvZmZzZXRPZkRhdGEoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZjxzaXplb2YoRGlnaXQpPihzaXplb2Yo
SlNCaWdJbnQpKTsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0JpZ0ludCwgbV9k
YXRhKTsKICAgICB9CiAKLSAgICBpbmxpbmUgRGlnaXQqIGRhdGFTdG9yYWdlKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8RGlnaXQqPihyZWludGVycHJldF9jYXN0PGNoYXIq
Pih0aGlzKSArIG9mZnNldE9mRGF0YSgpKTsKLSAgICB9CisgICAgaW5saW5lIERpZ2l0KiBkYXRh
U3RvcmFnZSgpIHsgcmV0dXJuIG1fZGF0YS5nZXQoKTsgfQogCiAgICAgRGlnaXQgZGlnaXQodW5z
aWduZWQpOwogICAgIHZvaWQgc2V0RGlnaXQodW5zaWduZWQsIERpZ2l0KTsKICAgICAgICAgCiAg
ICAgdW5zaWduZWQgbV9sZW5ndGg7CiAgICAgYm9vbCBtX3NpZ24geyBmYWxzZSB9OworICAgIENh
Z2VkVW5pcXVlUHRyPEdpZ2FjYWdlOjpQcmltaXRpdmUsIERpZ2l0PiBtX2RhdGE7CiB9OwogCiBp
bmxpbmUgSlNCaWdJbnQqIGFzQmlnSW50KEpTVmFsdWUgdmFsdWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383732</attachid>
            <date>2019-11-17 23:03:21 -0800</date>
            <delta_ts>2019-11-17 23:56:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194888-20191117230319.patch</filename>
            <type>text/plain</type>
            <size>8476</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ZjgwNjg3MWZiYWIwNjZhMjMwZGQxODg3YzM2NzQwNmNlNTM1OTc4Li5mNTUyZWQzZDU3ZTljZDEx
ZmNiYmViNThjNGI2MjU5M2Q2YzJkMDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxOS0xMS0xNyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4gYW5kIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBC
aWdJbnQgc2hvdWxkIHN0b3JlIGl0cyBkYXRhIGluIHRoZSBwcmltaXRpdmUgZ2lnYWNhZ2UuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ4ODgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBzaG91bGQg
cHV0IHRoZXNlIGJpdHMgaW4gdGhlIHByaW1pdGl2ZSBnaWdhY2FnZSB0byByZWR1Y2UgdGhlCisg
ICAgICAgIHZhbHVlIG9mIHR5cGUgY29uZnVzaW5nIGEgQmlnSW50IGFzIGEgZGlmZmVyZW50IGNl
bGwgYW5kIHVzaW5nIHRoZQorICAgICAgICBkaWdpdHMgYXMgYSB3YXkgdG8gY3JlYXRlIGFuIGFy
Yml0cmFyeSBwb2ludGVyLiBJIGRpZG4ndCB3b3JyeQorICAgICAgICBhYm91dCBsZW5ndGgvc2ln
biBhcyB0aGV5IGFyZSBub3QgcG9zc2libGUgdG8gZm9yZ2UgYSBwb2ludGVyIHdpdGguCisKKyAg
ICAgICAgV2UgYWxzbyBwdXQgSlNCaWdJbnQgaW4gSXNvU3Vic3BhY2UuCisKKyAgICAgICAgKiBy
dW50aW1lL0NlbGxTaXplLmg6CisgICAgICAgIChKU0M6OmlzRHluYW1pY2FsbHlTaXplZFR5cGUp
OgorICAgICAgICAoSlNDOjpjZWxsU2l6ZSk6CisgICAgICAgICogcnVudGltZS9KU0JpZ0ludC5j
cHA6CisgICAgICAgIChKU0M6OkpTQmlnSW50OjpKU0JpZ0ludCk6CisgICAgICAgIChKU0M6OkpT
QmlnSW50OjpkZXN0cm95KToKKyAgICAgICAgKEpTQzo6SlNCaWdJbnQ6OmNyZWF0ZVdpdGhMZW5n
dGhVbmNoZWNrZWQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKyAgICAgICAgKEpT
Qzo6SlNCaWdJbnQ6OmFsbG9jYXRpb25TaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6
CisKIDIwMTktMTEtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSlNDXSBSZW1vdmUgaW5kZXgtbWFza2luZyBvbiBTY29wZWRBcmd1bWVudHMgYW5kIHB1
dCBpdCBpbiBJc29TdWJzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ2VsbFNpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NlbGxTaXpl
LmgKaW5kZXggN2ZjMzZlNzVhM2IxNDU1ZjAzYmQ3ZDdkMzljZjcxOWQxMTVkOWM4MC4uYzY4Njhk
ZDY4ZDA5MDdhNWEyMjIxNjkxOGY5ZWE5ZGY0OGRlY2E4OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2VsbFNpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9DZWxsU2l6ZS5oCkBAIC0zNSw4ICszNSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBpbmxpbmUgY29uc3RleHByIGJvb2wgaXNEeW5hbWljYWxseVNpemVkVHlwZShKU1R5cGUgdHlw
ZSkKIHsKLSAgICBpZiAodHlwZSA9PSBCaWdJbnRUeXBlCi0gICAgICAgIHx8IHR5cGUgPT0gRGly
ZWN0QXJndW1lbnRzVHlwZQorICAgIGlmICh0eXBlID09IERpcmVjdEFyZ3VtZW50c1R5cGUKICAg
ICAgICAgfHwgdHlwZSA9PSBGaW5hbE9iamVjdFR5cGUKICAgICAgICAgfHwgdHlwZSA9PSBMZXhp
Y2FsRW52aXJvbm1lbnRUeXBlCiAgICAgICAgIHx8IHR5cGUgPT0gTW9kdWxlRW52aXJvbm1lbnRU
eXBlCkBAIC01MywxMCArNTIsNiBAQCBpbmxpbmUgc2l6ZV90IGNlbGxTaXplKFZNJiB2bSwgSlND
ZWxsKiBjZWxsKQogCiAgICAgaWYgKGlzRHluYW1pY2FsbHlTaXplZFR5cGUoY2VsbFR5cGUpKSB7
CiAgICAgICAgIHN3aXRjaCAoY2VsbFR5cGUpIHsKLSAgICAgICAgY2FzZSBCaWdJbnRUeXBlOiB7
Ci0gICAgICAgICAgICBhdXRvKiBiaWdJbnQgPSBqc0Nhc3Q8SlNCaWdJbnQqPihjZWxsKTsKLSAg
ICAgICAgICAgIHJldHVybiBKU0JpZ0ludDo6YWxsb2NhdGlvblNpemUoYmlnSW50LT5sZW5ndGgo
KSk7Ci0gICAgICAgIH0KICAgICAgICAgY2FzZSBEaXJlY3RBcmd1bWVudHNUeXBlOiB7CiAgICAg
ICAgICAgICBhdXRvKiBhcmdzID0ganNDYXN0PERpcmVjdEFyZ3VtZW50cyo+KGNlbGwpOwogICAg
ICAgICAgICAgcmV0dXJuIERpcmVjdEFyZ3VtZW50czo6YWxsb2NhdGlvblNpemUoYXJncy0+bV9t
aW5DYXBhY2l0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAK
aW5kZXggODlmODRkZjJhNTVjZWQ0MWI0NzAzYTJjYzNiYmMwZDEyNWY2MmQ2NC4uNGMwMThjYmU1
ODU5YTI0YjExYzM5OTVlZTAzYTBkM2IyNjUzZTJmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAtNjEsMTEgKzYxLDE3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiBjb25zdCBDbGFzc0luZm8gSlNCaWdJbnQ6OnNfaW5mbyA9IHsgIkJpZ0ludCIsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNCaWdJbnQpIH07CiAK
LUpTQmlnSW50OjpKU0JpZ0ludChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25l
ZCBsZW5ndGgpCitKU0JpZ0ludDo6SlNCaWdJbnQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgRGlnaXQqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKKyAgICAsIG1fZGF0YShkYXRhLCBsZW5ndGgpCiB7
IH0KIAordm9pZCBKU0JpZ0ludDo6ZGVzdHJveShKU0NlbGwqIHRoaXNDZWxsKQoreworICAgIHN0
YXRpY19jYXN0PEpTQmlnSW50Kj4odGhpc0NlbGwpLT5+SlNCaWdJbnQoKTsKK30KKwogdm9pZCBK
U0JpZ0ludDo6aW5pdGlhbGl6ZShJbml0aWFsaXphdGlvblR5cGUgaW5pdFR5cGUpCiB7CiAgICAg
aWYgKGluaXRUeXBlID09IEluaXRpYWxpemF0aW9uVHlwZTo6V2l0aFplcm8pCkBAIC0xMDEsNyAr
MTA3LDkgQEAgSlNCaWdJbnQqIEpTQmlnSW50Ojp0cnlDcmVhdGVXaXRoTGVuZ3RoKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGwKIEpTQmlnSW50KiBKU0JpZ0ludDo6Y3Jl
YXRlV2l0aExlbmd0aFVuY2hlY2tlZChWTSYgdm0sIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBB
U1NFUlQobGVuZ3RoIDw9IG1heExlbmd0aCk7Ci0gICAgSlNCaWdJbnQqIGJpZ0ludCA9IG5ldyAo
Tm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTQmlnSW50Pih2bS5oZWFwLCBhbGxvY2F0aW9uU2l6ZShs
ZW5ndGgpKSkgSlNCaWdJbnQodm0sIHZtLmJpZ0ludFN0cnVjdHVyZS5nZXQoKSwgbGVuZ3RoKTsK
KyAgICB2b2lkKiBkYXRhID0gR2lnYWNhZ2U6Om1hbGxvYyhHaWdhY2FnZTo6UHJpbWl0aXZlLCBs
ZW5ndGggKiBzaXplb2YoRGlnaXQpKTsKKyAgICBBU1NFUlQoZGF0YSk7CisgICAgSlNCaWdJbnQq
IGJpZ0ludCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEpTQmlnSW50Pih2bS5oZWFwKSkg
SlNCaWdJbnQodm0sIHZtLmJpZ0ludFN0cnVjdHVyZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxE
aWdpdCo+KGRhdGEpLCBsZW5ndGgpOwogICAgIGJpZ0ludC0+ZmluaXNoQ3JlYXRpb24odm0pOwog
ICAgIHJldHVybiBiaWdJbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JpZ0ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJ
bnQuaAppbmRleCAzYzQ1NjFkYTcwZWRiOWM0MmE5N2Q4NTUwYTIzMzMxNzliY2MzNWQyLi5mMDZk
NWZlM2ZmMzcxODQwMzc2YzQ3ZGIxOWU0ZmY0YzcyODIxMTVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJDUFUu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIK
LSNpbmNsdWRlIDx3dGYvQ2FnZWRQdHIuaD4KKyNpbmNsdWRlIDx3dGYvQ2FnZWRVbmlxdWVQdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzcs
MTEgKzM3LDIxIEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSlNCaWdJbnQgZmluYWwgOiBw
dWJsaWMgSlNDZWxsIHsKK3B1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNDZWxsOworICAgIHVz
aW5nIERpZ2l0ID0gVUNQVVJlZ2lzdGVyOworCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1v
cnRhbCB8IE92ZXJyaWRlc1RvVGhpczsKICAgICBmcmllbmQgY2xhc3MgQ2FjaGVkQmlnSW50Owog
Ci1wdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0
cnVlOworICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CisgICAgc3RhdGljIElzb1N1YnNwYWNl
KiBzdWJzcGFjZUZvcihWTSYgdm0pCisgICAgeworICAgICAgICByZXR1cm4gJnZtLmJpZ0ludFNw
YWNlOworICAgIH0KIAogICAgIEpTQmlnSW50KFZNJiwgU3RydWN0dXJlKiwgdW5zaWduZWQgbGVu
Z3RoKTsKIApAQCAtMTM0LDggKzE0NCw4IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGlj
IEpTQ2VsbCB7CiAgICAgc3RhdGljIEpTQmlnSW50KiBzaWduZWRSaWdodFNoaWZ0KEpTR2xvYmFs
T2JqZWN0KiwgSlNCaWdJbnQqIHgsIEpTQmlnSW50KiB5KTsKIAogcHJpdmF0ZToKKyAgICBKU0Jp
Z0ludChWTSYsIFN0cnVjdHVyZSosIERpZ2l0KiwgdW5zaWduZWQgbGVuZ3RoKTsKIAotICAgIHVz
aW5nIERpZ2l0ID0gVUNQVVJlZ2lzdGVyOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
Yml0c1BlckJ5dGUgPSA4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZGlnaXRCaXRz
ID0gc2l6ZW9mKERpZ2l0KSAqIGJpdHNQZXJCeXRlOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5z
aWduZWQgaGFsZkRpZ2l0Qml0cyA9IGRpZ2l0Qml0cyAvIDI7CkBAIC0yMzMsMzIgKzI0MywyMSBA
QCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgc3RhdGljIE9w
dGlvbmFsPERpZ2l0PiB0b1NoaWZ0QW1vdW50KEpTQmlnSW50KiB4KTsKIAotICAgIGlubGluZSBz
dGF0aWMgc2l6ZV90IGFsbG9jYXRpb25TaXplKHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgaW5saW5l
IHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZEYXRhKCkKICAgICB7Ci0gICAgICAgIHJldHVybiBXVEY6
OnJvdW5kVXBUb011bHRpcGxlT2Y8c2l6ZW9mKERpZ2l0KT4oc2l6ZW9mKEpTQmlnSW50KSk7Cisg
ICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNCaWdJbnQsIG1fZGF0YSk7CiAgICAgfQog
Ci0gICAgaW5saW5lIERpZ2l0KiBkYXRhU3RvcmFnZSgpCi0gICAgewotICAgICAgICByZXR1cm4g
Yml0d2lzZV9jYXN0PERpZ2l0Kj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBvZmZz
ZXRPZkRhdGEoKSk7Ci0gICAgfQorICAgIGlubGluZSBEaWdpdCogZGF0YVN0b3JhZ2UoKSB7IHJl
dHVybiBtX2RhdGEuZ2V0KG1fbGVuZ3RoKTsgfQogCiAgICAgRGlnaXQgZGlnaXQodW5zaWduZWQp
OwogICAgIHZvaWQgc2V0RGlnaXQodW5zaWduZWQsIERpZ2l0KTsKIAogICAgIGNvbnN0IHVuc2ln
bmVkIG1fbGVuZ3RoOwogICAgIGJvb2wgbV9zaWduIHsgZmFsc2UgfTsKLQotICAgIGZyaWVuZCBz
aXplX3QgY2VsbFNpemUoVk0mLCBKU0NlbGwqKTsKKyAgICBDYWdlZFVuaXF1ZVB0cjxHaWdhY2Fn
ZTo6UHJpbWl0aXZlLCBEaWdpdD4gbV9kYXRhOwogfTsKIAotaW5saW5lIHNpemVfdCBKU0JpZ0lu
dDo6YWxsb2NhdGlvblNpemUodW5zaWduZWQgbGVuZ3RoKQotewotICAgIHNpemVfdCBzaXplV2l0
aFBhZGRpbmcgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8c2l6ZW9mKHNpemVfdCk+KHNpemVv
ZihKU0JpZ0ludCkpOwotICAgIHJldHVybiBzaXplV2l0aFBhZGRpbmcgKyBsZW5ndGggKiBzaXpl
b2YoRGlnaXQpOwotfQotCiBpbmxpbmUgSlNCaWdJbnQqIGFzQmlnSW50KEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgQVNTRVJUKHZhbHVlLmFzQ2VsbCgpLT5pc0JpZ0ludCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCA3NGQ0MGY0NWZkNDEwMDg3ZmI4MTlmMzEzNTBkZjlj
YzA5N2FmNDE3Li5mNWJlMjM5M2FiODBiZDJkNWE0ZjQ3ODUzNGFmZjM3NDYzNjA3OWU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0yNzYsNiArMjc2LDcgQEAgVk06OlZN
KFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgICwgdmFyaWFibGVTaXplZENl
bGxTcGFjZSgiVmFyaWFibGUgU2l6ZWQgSlNDZWxsIiwgaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5n
ZXQoKSwgZmFzdE1hbGxvY0FsbG9jYXRvci5nZXQoKSkgLy8gSGFzaDoweGJjZDc2OWNjCiAgICAg
LCBkZXN0cnVjdGlibGVDZWxsU3BhY2UoIkRlc3RydWN0aWJsZSBKU0NlbGwiLCBoZWFwLCBkZXN0
cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBmYXN0TWFsbG9jQWxsb2NhdG9yLmdldCgp
KSAvLyBIYXNoOjB4YmZmZjNkNzMKICAgICAsIGRlc3RydWN0aWJsZU9iamVjdFNwYWNlKCJKU0Rl
c3RydWN0aWJsZU9iamVjdCIsIGhlYXAsIGRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5n
ZXQoKSwgZmFzdE1hbGxvY0FsbG9jYXRvci5nZXQoKSkgLy8gSGFzaDoweDRmNWVkN2E5CisgICAg
LCBiaWdJbnRTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBkZXN0cnVjdGlibGVDZWxsSGVh
cENlbGxUeXBlLmdldCgpLCBKU0JpZ0ludCkKICAgICAsIGV4ZWN1dGFibGVUb0NvZGVCbG9ja0Vk
Z2VTcGFjZSBJU09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBF
eGVjdXRhYmxlVG9Db2RlQmxvY2tFZGdlKSAvLyBIYXNoOjB4N2I3MzBiMjAKICAgICAsIGZ1bmN0
aW9uU3BhY2UgSVNPX1NVQlNQQUNFX0lOSVQoaGVhcCwgY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwg
SlNGdW5jdGlvbikgLy8gSGFzaDoweDgwMGZjYTcyCiAgICAgLCBnZXR0ZXJTZXR0ZXJTcGFjZSBJ
U09fU1VCU1BBQ0VfSU5JVChoZWFwLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBHZXR0ZXJTZXR0
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCBmNjYwNjU0NDJiMjY5NWIxMTVk
MjUyZTIwNGUxZTE0NmY2NTA0ZTU5Li4xZThiNzJiN2I2ODlhODdhZWIxNjcwZWJhYjcwM2E1OGQy
MTQ0YWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTM3Niw2ICszNzYsNyBA
QCBjbGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3Vi
bHlMaW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIENvbXBsZXRlU3Vic3BhY2UgZGVzdHJ1Y3RpYmxl
Q2VsbFNwYWNlOwogICAgIENvbXBsZXRlU3Vic3BhY2UgZGVzdHJ1Y3RpYmxlT2JqZWN0U3BhY2U7
CiAgICAgCisgICAgSXNvU3Vic3BhY2UgYmlnSW50U3BhY2U7CiAgICAgSXNvU3Vic3BhY2UgZXhl
Y3V0YWJsZVRvQ29kZUJsb2NrRWRnZVNwYWNlOwogICAgIElzb1N1YnNwYWNlIGZ1bmN0aW9uU3Bh
Y2U7CiAgICAgSXNvU3Vic3BhY2UgZ2V0dGVyU2V0dGVyU3BhY2U7Cg==
</data>
<flag name="review"
          id="399479"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>