<?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>148870</bug_id>
          
          <creation_ts>2015-09-04 19:17:20 -0700</creation_ts>
          <short_desc>form.elements should reflect the element ordering after the HTML tree builder algorithm</short_desc>
          <delta_ts>2015-12-10 12:06:15 -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>Forms</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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>krollin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1123810</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-09-04 19:17:20 -0700</bug_when>
    <thetext>When the HTML tree builder algorithm re-orders elements inside table, etc...
form.elements should be updated to reflect such re-ordering.

e.g. parsing the following HTML
&lt;form id=form&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;input type=&quot;radio&quot; name=&quot;radio1&quot; id=&quot;r1&quot; value=1&gt;&lt;/td&gt;
&lt;td&gt;&lt;input type=&quot;radio&quot; name=&quot;radio2&quot; id=&quot;r2&quot; value=2&gt;&lt;/td&gt;
&lt;input type=&quot;radio&quot;  name=&quot;radio0&quot; id=&quot;r0&quot; value=0&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/form&gt;

should put r0 at form.elements[0].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123811</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-09-04 19:17:58 -0700</bug_when>
    <thetext>This bug was found by the newly added test:
LayoutTests/http/tests/w3c/html/semantics/forms/the-form-element/form-elements-nameditem-02.html

and both Firefox and Chrome pass this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123812</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-09-04 19:18:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/22589879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147091</commentid>
    <comment_count>3</comment_count>
      <attachid>266827</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2015-12-07 16:18:38 -0800</bug_when>
    <thetext>Created attachment 266827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147109</commentid>
    <comment_count>4</comment_count>
      <attachid>266827</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-12-07 16:51:05 -0800</bug_when>
    <thetext>Comment on attachment 266827
Patch

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

&gt; Source/WebCore/html/FormAssociatedElement.cpp:54
&gt; +    , m_designatedForm(form)

&quot;designated&quot; seems rather vague.  How about m_parserSetForm or m_formSetByParser?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147115</commentid>
    <comment_count>5</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2015-12-07 17:02:35 -0800</bug_when>
    <thetext>(In reply to comment #4)

I thought about that. I even called it something like that at first. But I backed away from that because it wasn&apos;t apparent to me that only the parser would be constructing HTMLFormControlElements with non-NULL HTMLFormElements. I&apos;m pretty sure that that&apos;s the case *now*, but I didn&apos;t see anything that would prevent some other context from specifying an HTMLFormElement. That&apos;s why I went with a more general term.

But if you disagree with that line of thought, let me know and I&apos;ll change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147785</commentid>
    <comment_count>6</comment_count>
      <attachid>267012</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2015-12-09 08:49:57 -0800</bug_when>
    <thetext>Created attachment 267012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147802</commentid>
    <comment_count>7</comment_count>
      <attachid>267012</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-09 09:22:04 -0800</bug_when>
    <thetext>Comment on attachment 267012
Patch

Rejecting attachment 267012 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 267012, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/imported/w3c/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/537562</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147805</commentid>
    <comment_count>8</comment_count>
      <attachid>267015</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2015-12-09 09:29:45 -0800</bug_when>
    <thetext>Created attachment 267015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147829</commentid>
    <comment_count>9</comment_count>
      <attachid>267015</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-09 10:19:28 -0800</bug_when>
    <thetext>Comment on attachment 267015
Patch

Clearing flags on attachment: 267015

Committed r193840: &lt;http://trac.webkit.org/changeset/193840&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147830</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-09 10:19:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148269</commentid>
    <comment_count>11</comment_count>
      <attachid>267015</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-12-10 12:06:15 -0800</bug_when>
    <thetext>Comment on attachment 267015
Patch

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

&gt; Source/WebCore/html/FormAssociatedElement.h:91
&gt; +    FormAssociatedElement(HTMLFormElement*);

Should be marked explicit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266827</attachid>
            <date>2015-12-07 16:18:38 -0800</date>
            <delta_ts>2015-12-09 08:49:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148870-20151207161813.patch</filename>
            <type>text/plain</type>
            <size>12597</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzNjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZmZDA2ZGZlNTMxYjcy
ZjVjNDljMTQzY2YyYmZjZmY1NjEzYjM4Zi4uMmQ5MjNmNDc2ZDA0MmYxMTg3NmRkMWFjNWM4NWMx
ZTMxZDkzNTVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE1LTEyLTA3ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBmb3JtLmVsZW1lbnRzIHNo
b3VsZCByZWZsZWN0IHRoZSBlbGVtZW50IG9yZGVyaW5nIGFmdGVyIHRoZSBIVE1MIHRyZWUgYnVp
bGRlciBhbGdvcml0aG0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODg3MAorICAgICAgICByZGFyOi8vcHJvYmxlbS8yMjU4OTg3OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGZvcm0uZWxlbWVudHMgc2hv
dWxkIHJldHVybiBmb3JtLWFzc29jaWF0ZWQgZWxlbWVudHMgaW4gdHJlZSBvcmRlci4KKyAgICAg
ICAgSG93ZXZlciwgd2hlbiBwcmVzZW50ZWQgd2l0aCBhbiBIVE1MIGZyYWdtZW50IGxpa2UgdGhl
IGZvbGxvd2luZywKKyAgICAgICAgZm9ybXMuZWxlbWVudHMgaXMgbm90IGJ1aWx0IGluIHRyZWUg
b3JkZXIuIEluc3RlYWQsIHRoZSBlbGVtZW50cworICAgICAgICBhcHBlYXIgaW4gZm9ybXMuZWxl
bWVudCBpbiB0aGUgc2FtZSBvcmRlciB0aGV5IGFwcGVhciBpbiB0aGUgSFRNTCAtLQorICAgICAg
ICB0aGF0IGlzIGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZXkgYXJlIHBhcnNlZC4KKworICAgICAg
ICA8Zm9ybSBpZD1mb3JtPgorICAgICAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgICAgIDx0
cj4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icmFk
aW8xIiBpZD0icjEiIHZhbHVlPTE+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1
dCB0eXBlPSJyYWRpbyIgbmFtZT0icmFkaW8yIiBpZD0icjIiIHZhbHVlPTI+PC90ZD4KKyAgICAg
ICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJyYWRpbzAiIGlkPSJyMCIg
dmFsdWU9MD4KKyAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPC90YWJsZT4KKyAg
ICAgICAgPC9mb3JtPgorCisgICAgICAgIFRoZSByZWFzb24gd2h5IGVsZW1lbnRzIGFwcGVhciBp
biBmb3Jtcy5lbGVtZW50cyBpbiBwYXJzZSBvcmRlciBpcworICAgICAgICBiZWNhdXNlIHRoZXkg
cmVnaXN0ZXIgdGhlbXNlbHZlcyB3aXRoIHRoZSBkZXNpZ25hdGVkIGZvcm0gd2hlbiB0aGV5Cisg
ICAgICAgIGFyZSBjcmVhdGVkLiBBdCB0aGlzIHRpbWUsIHRoZXkgYXJlIG5vdCBpbiB0aGUgRE9N
IHRyZWUsIHNvIHRoZSBmb3JtCisgICAgICAgIGNhbiBvbmx5IGFzc3VtZSB0aGF0IHRoZSBlbGVt
ZW50IHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIERPTSB0cmVlLAorICAgICAgICB3aXRoIHRoZSBy
ZXN1bHQgdGhhdCBpdCByZWNvcmRzIHRoZSBlbGVtZW50cyBpbiB0aGUgSFRNTCBmcmFnbWVudAor
ICAgICAgICBhYm92ZSBhcyBbcjEsIHIyLCByMF0uCisKKyAgICAgICAgSG93ZXZlciwgaXQncyBu
b3QgYWx3YXlzIHRoZSBjYXNlIHRoYXQgdGhlIG5ld2x5LWNyZWF0ZWQgZWxlbWVudCB3aWxsCisg
ICAgICAgIGJlIGFwcGVuZGVkIHRvIHRoZSBjdXJyZW50IHRyZWUuIEluIHRoZSBIVE1MIGZyYWdt
ZW50IGFib3ZlLCB0aGUgcjAKKyAgICAgICAgaW5wdXQgZWxlbWVudCBpcyBob2lzZWQgb3V0IG9m
IHRoZSB0YWJsZSBlbGVtZW50LiBJdCBlbmRzIHVwIGJlaW5nIHRoZQorICAgICAgICBwcmVjZWRp
bmcgc2libGluZyBvZiB0aGUgdGFibGUgZWxlbWVudCwgd2l0aCB0aGUgcmVzdWx0IHRoYXQgdGhl
CisgICAgICAgIGFjdHVhbCB0cmVlLW9yZGVyIG9mIHRoZSBpbnB1dCBlbGVtZW50cyBpcyBbcjAs
IHIxLCByMl0uCisKKyAgICAgICAgQmVjYXVzZSB0aGUgcHJvYmxlbSBpcyBkdWUgdG8gcmVnaXN0
ZXJpbmcgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnRzCisgICAgICAgIHdpdGggdGhlIGZvcm0gKmJl
Zm9yZSogdGhlIGVsZW1lbnRzIGFyZSBhZGRlZCB0byB0aGUgRE9NIHRyZWUsIHRoZQorICAgICAg
ICBzb2x1dGlvbiBpcyB0byBkZWZlciB0aGF0IHJlZ2lzdHJhdGlvbiB1bnRpbCBhZnRlcndhcmRz
LiBXaXRoIHRoZSBuZXcKKyAgICAgICAgZWxlbWVudCBpbiB0aGUgdHJlZSwgdGhlIGZvcm0gY2Fu
IG5vdyB1c2UgaXRzIGN1cnJlbnQgbG9jYXRpb24gaW4gdGhlCisgICAgICAgIHRyZWUgdG8gY29y
cmVjdGx5IHBsYWNlIHRoZSBlbGVtZW50IGluIGZvcm0uZWxlbWVudHMuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBFeGlzdGluZyB0ZXN0cyBub3cgcGFzcy4KKworICAgICAgICAqIGh0bWwvRm9y
bUFzc29jaWF0ZWRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVk
RWxlbWVudDo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1B
c3NvY2lhdGVkRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1B
c3NvY2lhdGVkRWxlbWVudDo6cmVtb3ZlZEZyb20pOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFz
c29jaWF0ZWRFbGVtZW50Ojpmb3JtUmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybVdpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICog
aHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6SFRNTEZvcm1Db250cm9sRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OkhUTUxJbWFnZUVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6aW5zZXJ0ZWRJbnRv
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnJlbW92ZWRGcm9tKToKKyAg
ICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpIVE1M
T2JqZWN0RWxlbWVudCk6CisKIDIwMTUtMTItMDcgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVW5jYXVnaHQgRXhjZXB0aW9uIHBhZ2Ugc2hv
dWxkIGhhdmUgYmV0dGVyIHN0eWxlcyBhbmQgaGFuZGxlIG1vcmUgZXJyb3IgY2FzZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAppbmRleCA0NzRmYjY1
ZTY2YjUwMTJlY2E4OWU2OTQzMjEzMWQ0MWIyYmQzMjhjLi4xMGMzYmIyNjg1MzAwNzhhN2I2ZDZk
MGVlYzcxN2U0NWYxNjgyYzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1B
c3NvY2lhdGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2Np
YXRlZEVsZW1lbnQuY3BwCkBAIC00OSw4ICs0OSw5IEBAIHByaXZhdGU6CiAgICAgRm9ybUFzc29j
aWF0ZWRFbGVtZW50JiBtX2VsZW1lbnQ7CiB9OwogCi1Gb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OkZv
cm1Bc3NvY2lhdGVkRWxlbWVudCgpCitGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OkZvcm1Bc3NvY2lh
dGVkRWxlbWVudChIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCiAgICAgOiBtX2Zvcm0obnVsbHB0cikK
KyAgICAsIG1fZGVzaWduYXRlZEZvcm0oZm9ybSkKIHsKIH0KIApAQCAtNjgsMTAgKzY5LDE1IEBA
IHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50OjpkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVu
dCogb2xkRG9jdW1lbnQpCiAKIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50OjppbnNlcnRlZElu
dG8oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQpCiB7CisgICAgSFRNTEVsZW1lbnQmIGVs
ZW1lbnQgPSBhc0hUTUxFbGVtZW50KCk7CisgICAgaWYgKG1fZGVzaWduYXRlZEZvcm0pIHsKKyAg
ICAgICAgc2V0Rm9ybShtX2Rlc2lnbmF0ZWRGb3JtKTsKKyAgICAgICAgbV9kZXNpZ25hdGVkRm9y
bSA9IG51bGxwdHI7CisgICAgfQorCiAgICAgaWYgKCFpbnNlcnRpb25Qb2ludC5pbkRvY3VtZW50
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhUTUxFbGVtZW50JiBlbGVtZW50ID0gYXNIVE1M
RWxlbWVudCgpOwogICAgIGlmIChlbGVtZW50LmZhc3RIYXNBdHRyaWJ1dGUoZm9ybUF0dHIpKQog
ICAgICAgICByZXNldEZvcm1BdHRyaWJ1dGVUYXJnZXRPYnNlcnZlcigpOwogfQpAQCAtODQsNyAr
OTAsNyBAQCB2b2lkIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6cmVtb3ZlZEZyb20oQ29udGFpbmVy
Tm9kZSYgaW5zZXJ0aW9uUG9pbnQpCiAgICAgLy8gSWYgdGhlIGZvcm0gYW5kIGVsZW1lbnQgYXJl
IGJvdGggaW4gdGhlIHNhbWUgdHJlZSwgcHJlc2VydmUgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIGZv
cm0uCiAgICAgLy8gT3RoZXJ3aXNlLCBudWxsIG91dCBvdXIgZm9ybSBhbmQgcmVtb3ZlIG91cnNl
bHZlcyBmcm9tIHRoZSBmb3JtJ3MgbGlzdCBvZiBlbGVtZW50cy4KICAgICBpZiAobV9mb3JtICYm
IGVsZW1lbnQuaGlnaGVzdEFuY2VzdG9yKCkgIT0gbV9mb3JtLT5oaWdoZXN0QW5jZXN0b3IoKSkK
LSAgICAgICAgc2V0Rm9ybSgwKTsKKyAgICAgICAgc2V0Rm9ybShudWxscHRyKTsKIH0KIAogSFRN
TEZvcm1FbGVtZW50KiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZpbmRBc3NvY2lhdGVkRm9ybShj
b25zdCBIVE1MRWxlbWVudCogZWxlbWVudCwgSFRNTEZvcm1FbGVtZW50KiBjdXJyZW50QXNzb2Np
YXRlZEZvcm0pCkBAIC0xMTIsNyArMTE4LDcgQEAgdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6
OmZvcm1SZW1vdmVkRnJvbVRyZWUoY29uc3QgTm9kZSogZm9ybVJvb3QpCiB7CiAgICAgQVNTRVJU
KG1fZm9ybSk7CiAgICAgaWYgKGFzSFRNTEVsZW1lbnQoKS5oaWdoZXN0QW5jZXN0b3IoKSAhPSBm
b3JtUm9vdCkKLSAgICAgICAgc2V0Rm9ybSgwKTsKKyAgICAgICAgc2V0Rm9ybShudWxscHRyKTsK
IH0KIAogdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OnNldEZvcm0oSFRNTEZvcm1FbGVtZW50
KiBuZXdGb3JtKQpAQCAtMTQyLDcgKzE0OCw3IEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50
Ojpmb3JtV2lsbEJlRGVzdHJveWVkKCkKICAgICBpZiAoIW1fZm9ybSkKICAgICAgICAgcmV0dXJu
OwogICAgIHdpbGxDaGFuZ2VGb3JtKCk7Ci0gICAgbV9mb3JtID0gMDsKKyAgICBtX2Zvcm0gPSBu
dWxscHRyOwogICAgIGRpZENoYW5nZUZvcm0oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Rm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKaW5kZXggN2RmNmMzOWEwYTFhNjMyNjFjYzNiMzBlOTlh
ZTIwZWE5OWZjNTg0ZC4uM2NiNDExN2ZiYmVkY2Y4NDhmMzBkZWMxNzE1ZGIwZGEwZGM1MTE0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oCkBAIC04OCw3
ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZvcm1BdHRyaWJ1dGVUYXJnZXRDaGFuZ2VkKCk7
CiAKIHByb3RlY3RlZDoKLSAgICBGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKTsKKyAgICBGb3JtQXNz
b2NpYXRlZEVsZW1lbnQoSFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICB2b2lkIGluc2VydGVkSW50
byhDb250YWluZXJOb2RlJik7CiAgICAgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJik7
CkBAIC0xMTYsNiArMTE2LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGb3Jt
QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXI+IG1fZm9ybUF0dHJpYnV0ZVRhcmdldE9ic2VydmVyOwog
ICAgIEhUTUxGb3JtRWxlbWVudCogbV9mb3JtOworICAgIEhUTUxGb3JtRWxlbWVudCogbV9kZXNp
Z25hdGVkRm9ybTsKICAgICBTdHJpbmcgbV9jdXN0b21WYWxpZGF0aW9uTWVzc2FnZTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4
IDI5MWUxZWJmYmM3ZWM4ZDRmNDk0ZTY4OGFlOTZjOWM2MTc4NGFmMWYuLjg3M2UzNzU3MWMwNzBh
Zjg5ZjE2MGU0NDNhMjMwYmUxNTE4NGJiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNDksNiArNDksNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwg
SFRNTEZvcm1FbGVtZW50KiBmb3JtKQogICAgIDogTGFiZWxhYmxlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkKKyAgICAsIEZvcm1Bc3NvY2lhdGVkRWxlbWVudChmb3JtKQogICAgICwgbV9kaXNh
YmxlZChmYWxzZSkKICAgICAsIG1faXNSZWFkT25seShmYWxzZSkKICAgICAsIG1faXNSZXF1aXJl
ZChmYWxzZSkKQEAgLTYxLDcgKzYyLDYgQEAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6SFRNTEZv
cm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MKICAgICAs
IG1fd2FzQ2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoZmFsc2UpCiAgICAg
LCBtX2hhc0F1dG9mb2N1c2VkKGZhbHNlKQogewotICAgIHNldEZvcm0oZm9ybSk7CiAgICAgc2V0
SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGE5NDI0YjNiN2I4ZTZiNmM0OGQ1MDM4MzM4NWI4
MzI3NGYwNjk2NWIuLmQ1NDZmZjQ5YTlhZTY1YTIzMTU0NzNiNmU1ZmI4NWE5Mjg1MzIzNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAtNTUsNyArNTUsOCBA
QCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogSFRNTEltYWdlRWxlbWVudDo6SFRNTEltYWdl
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQs
IEhUTUxGb3JtRWxlbWVudCogZm9ybSkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQogICAgICwgbV9pbWFnZUxvYWRlcigqdGhpcykKLSAgICAsIG1fZm9ybShmb3JtKQorICAg
ICwgbV9mb3JtKG51bGxwdHIpCisgICAgLCBtX2Rlc2lnbmF0ZWRGb3JtKGZvcm0pCiAgICAgLCBt
X2NvbXBvc2l0ZU9wZXJhdG9yKENvbXBvc2l0ZVNvdXJjZU92ZXIpCiAgICAgLCBtX2ltYWdlRGV2
aWNlUGl4ZWxSYXRpbygxLjBmKQogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQpAQCAtNjQs
OCArNjUsNiBAQCBIVE1MSW1hZ2VFbGVtZW50OjpIVE1MSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogewogICAgIEFTU0VSVChoYXNUYWdO
YW1lKGltZ1RhZykpOwogICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwot
ICAgIGlmIChmb3JtKQotICAgICAgICBmb3JtLT5yZWdpc3RlckltZ0VsZW1lbnQodGhpcyk7CiB9
CiAKIFJlZjxIVE1MSW1hZ2VFbGVtZW50PiBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50KQpAQCAtMjg5LDEyICsyODgsMTcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50
OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQogCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1
ZXN0IEhUTUxJbWFnZUVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRp
b25Qb2ludCkKIHsKLSAgICBpZiAoIW1fZm9ybSkgeyAvLyBtX2Zvcm0gY2FuIGJlIG5vbi1udWxs
IGlmIGl0IHdhcyBzZXQgaW4gY29uc3RydWN0b3IuCi0gICAgICAgIG1fZm9ybSA9IEhUTUxGb3Jt
RWxlbWVudDo6ZmluZENsb3Nlc3RGb3JtQW5jZXN0b3IoKnRoaXMpOwotICAgICAgICBpZiAobV9m
b3JtKQotICAgICAgICAgICAgbV9mb3JtLT5yZWdpc3RlckltZ0VsZW1lbnQodGhpcyk7CisgICAg
aWYgKG1fZGVzaWduYXRlZEZvcm0pIHsKKyAgICAgICAgbV9mb3JtID0gbV9kZXNpZ25hdGVkRm9y
bTsKKyAgICAgICAgbV9kZXNpZ25hdGVkRm9ybSA9IG51bGxwdHI7CiAgICAgfQogCisgICAgaWYg
KCFtX2Zvcm0pCisgICAgICAgIG1fZm9ybSA9IEhUTUxGb3JtRWxlbWVudDo6ZmluZENsb3Nlc3RG
b3JtQW5jZXN0b3IoKnRoaXMpOworCisgICAgaWYgKG1fZm9ybSkKKyAgICAgICAgbV9mb3JtLT5y
ZWdpc3RlckltZ0VsZW1lbnQodGhpcyk7CisKICAgICAvLyBJbnNlcnQgbmVlZHMgdG8gY29tcGxl
dGUgZmlyc3QsIGJlZm9yZSB3ZSBzdGFydCB1cGRhdGluZyB0aGUgbG9hZGVyLiBMb2FkZXIgZGlz
cGF0Y2hlcyBldmVudHMgd2hpY2ggY291bGQgcmVzdWx0CiAgICAgLy8gaW4gY2FsbGJhY2tzIGJh
Y2sgdG8gdGhpcyBub2RlLgogICAgIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3Qg
aW5zZXJ0Tm90aWZpY2F0aW9uUmVxdWVzdCA9IEhUTUxFbGVtZW50OjppbnNlcnRlZEludG8oaW5z
ZXJ0aW9uUG9pbnQpOwpAQCAtMzIxLDcgKzMyNSw3IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6
cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQpCiAgICAgaWYgKGluc2Vy
dGlvblBvaW50LmluRG9jdW1lbnQoKSAmJiAhbV9sb3dlcmNhc2VkVXNlbWFwLmlzTnVsbCgpKQog
ICAgICAgICBkb2N1bWVudCgpLnJlbW92ZUltYWdlRWxlbWVudEJ5TG93ZXJjYXNlZFVzZW1hcCgq
bV9sb3dlcmNhc2VkVXNlbWFwLmltcGwoKSwgKnRoaXMpOwogCi0gICAgbV9mb3JtID0gMDsKKyAg
ICBtX2Zvcm0gPSBudWxscHRyOwogICAgIEhUTUxFbGVtZW50OjpyZW1vdmVkRnJvbShpbnNlcnRp
b25Qb2ludCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXgg
ODE3NDVkMjRhYjczZjA5NTFmYWQ2YWM3OTI0MzM2MzE1ZjJiNmY2Ny4uMjlmMWQzMjk4MmE5MmRh
MjFjYmQ2OTc0YjQ2YjQ3OTdhODIwMjg2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmgKQEAgLTEyNiw2ICsxMjYsNyBAQCBwcml2YXRlOgogCiAgICAgSFRNTEltYWdlTG9h
ZGVyIG1faW1hZ2VMb2FkZXI7CiAgICAgSFRNTEZvcm1FbGVtZW50KiBtX2Zvcm07CisgICAgSFRN
TEZvcm1FbGVtZW50KiBtX2Rlc2lnbmF0ZWRGb3JtOwogICAgIENvbXBvc2l0ZU9wZXJhdG9yIG1f
Y29tcG9zaXRlT3BlcmF0b3I7CiAgICAgQXRvbWljU3RyaW5nIG1fYmVzdEZpdEltYWdlVVJMOwog
ICAgIEF0b21pY1N0cmluZyBtX2N1cnJlbnRTcmM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuY3BwCmluZGV4IGRkM2NhMzQzNWZhYzgyMGQwZDE4MDllMmZkMTIxOGJmYmRk
MGI2YzcuLmFiYTAwMWI5Y2VlMTgwZDE5NjUxZjc5ZThlODBkM2MxYzg0ZTM1NDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC02NSwxMSArNjUsMTEgQEAg
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogaW5saW5lIEhUTUxPYmplY3RFbGVtZW50OjpI
VE1MT2JqZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYg
ZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiAg
ICAgOiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBjcmVhdGVkQnlQ
YXJzZXIpCisgICAgLCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQoZm9ybSkKICAgICAsIG1fZG9jTmFt
ZWRJdGVtKHRydWUpCiAgICAgLCBtX3VzZUZhbGxiYWNrQ29udGVudChmYWxzZSkKIHsKICAgICBB
U1NFUlQoaGFzVGFnTmFtZShvYmplY3RUYWcpKTsKLSAgICBzZXRGb3JtKGZvcm0pOwogfQogCiBp
bmxpbmUgSFRNTE9iamVjdEVsZW1lbnQ6On5IVE1MT2JqZWN0RWxlbWVudCgpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBiYjZlMzA0MmRkOWU1MTFlOTc5NWY5ZjEzMTEyOThhZGI4
OGMxMWFlLi40Njg1M2M2ODU5NGE0NjcwMTVkMjMwYjg1ZWQ2NWU2OTY4MWJiZDZhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNS0xMi0wNyAgS2Vp
dGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgZm9ybS5lbGVtZW50cyBz
aG91bGQgcmVmbGVjdCB0aGUgZWxlbWVudCBvcmRlcmluZyBhZnRlciB0aGUgSFRNTCB0cmVlIGJ1
aWxkZXIgYWxnb3JpdGhtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDg4NzAKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjI1ODk4NzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIGV4aXN0
aW5nIHRlc3QuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
Zm9ybXMvdGhlLWZvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnRzLW5hbWVkaXRlbS0wMi1leHBlY3Rl
ZC50eHQ6CisKIDIwMTUtMTItMDIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+
CiAKICAgICAgICAgUmViYXNlbGluZSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvZG9tL2ludGVyZmFjZXMuaHRtbCBhZnRlciByMTkyOTUzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1z
L3RoZS1mb3JtLWVsZW1lbnQvZm9ybS1lbGVtZW50cy1uYW1lZGl0ZW0tMDItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9mb3Jtcy90aGUtZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudHMtbmFtZWRpdGVtLTAyLWV4
cGVjdGVkLnR4dAppbmRleCA5YWEzNzkwYTc5ZjdiYWZkZDgzNzIxNDk0YTAyYjJhNmExNDdkMWNi
Li4wOWU4ZmM4YTc0YWNhNzRjMjkxMDlkZmNiYmFkMjk3NTk4NDQyYzcxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2Zvcm1zL3RoZS1mb3JtLWVsZW1lbnQvZm9ybS1lbGVtZW50cy1uYW1lZGl0ZW0tMDItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWZvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnRzLW5hbWVk
aXRlbS0wMi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKIAkKIAotRkFJTCBmb3JtLmVs
ZW1lbnRzIHNob3VsZCB3b3JrIGNvcnJlY3RseSBpbiB0aGUgZmFjZSBvZiB0YWJsZSBzeW50YXgg
ZXJyb3JzIGFzc2VydF9hcnJheV9lcXVhbHM6IHByb3BlcnR5IDAsIGV4cGVjdGVkIEVsZW1lbnQg
bm9kZSA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJhZGlvMCIgaWQ9InIwIiB2YWx1ZT0iMCI+
PC9pbnB1dD4gYnV0IGdvdCBFbGVtZW50IG5vZGUgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJy
YWRpbzEiIGlkPSJyMSIgdmFsdWU9IjEiPjwvaW5wdXQ+CitQQVNTIGZvcm0uZWxlbWVudHMgc2hv
dWxkIHdvcmsgY29ycmVjdGx5IGluIHRoZSBmYWNlIG9mIHRhYmxlIHN5bnRheCBlcnJvcnMgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267012</attachid>
            <date>2015-12-09 08:49:57 -0800</date>
            <delta_ts>2015-12-09 09:29:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148870-20151209084927.patch</filename>
            <type>text/plain</type>
            <size>14120</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzNzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc5NTQ5NzhhN2JmOWE2
NzFmZmVhOWY0MjdmMDQyMjEwYTVkMTMwZS4uOTIyYjlhOGRmM2MwZTc1MmQyYTU3Mjg4YzViYzFl
OWZmOTc5YzE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE1LTEyLTA5ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBmb3JtLmVsZW1lbnRzIHNo
b3VsZCByZWZsZWN0IHRoZSBlbGVtZW50IG9yZGVyaW5nIGFmdGVyIHRoZSBIVE1MIHRyZWUgYnVp
bGRlciBhbGdvcml0aG0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODg3MAorICAgICAgICByZGFyOi8vcHJvYmxlbS8yMjU4OTg3OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGZvcm0uZWxlbWVudHMgc2hv
dWxkIHJldHVybiBmb3JtLWFzc29jaWF0ZWQgZWxlbWVudHMgaW4gdHJlZSBvcmRlci4KKyAgICAg
ICAgSG93ZXZlciwgd2hlbiBwcmVzZW50ZWQgd2l0aCBhbiBIVE1MIGZyYWdtZW50IGxpa2UgdGhl
IGZvbGxvd2luZywKKyAgICAgICAgZm9ybXMuZWxlbWVudHMgaXMgbm90IGJ1aWx0IGluIHRyZWUg
b3JkZXIuIEluc3RlYWQsIHRoZSBlbGVtZW50cworICAgICAgICBhcHBlYXIgaW4gZm9ybXMuZWxl
bWVudCBpbiB0aGUgc2FtZSBvcmRlciB0aGV5IGFwcGVhciBpbiB0aGUgSFRNTCAtLQorICAgICAg
ICB0aGF0IGlzIGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZXkgYXJlIHBhcnNlZC4KKworICAgICAg
ICA8Zm9ybSBpZD1mb3JtPgorICAgICAgICAgICAgPHRhYmxlPgorICAgICAgICAgICAgICAgIDx0
cj4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icmFk
aW8xIiBpZD0icjEiIHZhbHVlPTE+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgPHRkPjxpbnB1
dCB0eXBlPSJyYWRpbyIgbmFtZT0icmFkaW8yIiBpZD0icjIiIHZhbHVlPTI+PC90ZD4KKyAgICAg
ICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJyYWRpbzAiIGlkPSJyMCIg
dmFsdWU9MD4KKyAgICAgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPC90YWJsZT4KKyAg
ICAgICAgPC9mb3JtPgorCisgICAgICAgIFRoZSByZWFzb24gd2h5IGVsZW1lbnRzIGFwcGVhciBp
biBmb3Jtcy5lbGVtZW50cyBpbiBwYXJzZSBvcmRlciBpcworICAgICAgICBiZWNhdXNlIHRoZXkg
cmVnaXN0ZXIgdGhlbXNlbHZlcyB3aXRoIHRoZSBkZXNpZ25hdGVkIGZvcm0gd2hlbiB0aGV5Cisg
ICAgICAgIGFyZSBjcmVhdGVkLiBBdCB0aGlzIHRpbWUsIHRoZXkgYXJlIG5vdCBpbiB0aGUgRE9N
IHRyZWUsIHNvIHRoZSBmb3JtCisgICAgICAgIGNhbiBvbmx5IGFzc3VtZSB0aGF0IHRoZSBlbGVt
ZW50IHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIERPTSB0cmVlLAorICAgICAgICB3aXRoIHRoZSBy
ZXN1bHQgdGhhdCBpdCByZWNvcmRzIHRoZSBlbGVtZW50cyBpbiB0aGUgSFRNTCBmcmFnbWVudAor
ICAgICAgICBhYm92ZSBhcyBbcjEsIHIyLCByMF0uCisKKyAgICAgICAgSG93ZXZlciwgaXQncyBu
b3QgYWx3YXlzIHRoZSBjYXNlIHRoYXQgdGhlIG5ld2x5LWNyZWF0ZWQgZWxlbWVudCB3aWxsCisg
ICAgICAgIGJlIGFwcGVuZGVkIHRvIHRoZSBjdXJyZW50IHRyZWUuIEluIHRoZSBIVE1MIGZyYWdt
ZW50IGFib3ZlLCB0aGUgcjAKKyAgICAgICAgaW5wdXQgZWxlbWVudCBpcyBob2lzZWQgb3V0IG9m
IHRoZSB0YWJsZSBlbGVtZW50LiBJdCBlbmRzIHVwIGJlaW5nIHRoZQorICAgICAgICBwcmVjZWRp
bmcgc2libGluZyBvZiB0aGUgdGFibGUgZWxlbWVudCwgd2l0aCB0aGUgcmVzdWx0IHRoYXQgdGhl
CisgICAgICAgIGFjdHVhbCB0cmVlLW9yZGVyIG9mIHRoZSBpbnB1dCBlbGVtZW50cyBpcyBbcjAs
IHIxLCByMl0uCisKKyAgICAgICAgQmVjYXVzZSB0aGUgcHJvYmxlbSBpcyBkdWUgdG8gcmVnaXN0
ZXJpbmcgZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnRzCisgICAgICAgIHdpdGggdGhlIGZvcm0gKmJl
Zm9yZSogdGhlIGVsZW1lbnRzIGFyZSBhZGRlZCB0byB0aGUgRE9NIHRyZWUsIHRoZQorICAgICAg
ICBzb2x1dGlvbiBpcyB0byBkZWZlciB0aGF0IHJlZ2lzdHJhdGlvbiB1bnRpbCBhZnRlcndhcmRz
LiBXaXRoIHRoZSBuZXcKKyAgICAgICAgZWxlbWVudCBpbiB0aGUgdHJlZSwgdGhlIGZvcm0gY2Fu
IG5vdyB1c2UgaXRzIGN1cnJlbnQgbG9jYXRpb24gaW4gdGhlCisgICAgICAgIHRyZWUgdG8gY29y
cmVjdGx5IHBsYWNlIHRoZSBlbGVtZW50IGluIGZvcm0uZWxlbWVudHMuCisKKyAgICAgICAgRXhp
c3RpbmcgdGVzdHMgbm93IHBhc3M6CisgICAgICAgIC0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVu
dHMtbmFtZWRpdGVtLTAyLWh0bWwKKworICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Rm9ybUFz
c29jaWF0ZWRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVu
dDo6cmVtb3ZlZEZyb20pOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50
Ojpmb3JtUmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVk
RWxlbWVudDo6Zm9ybVdpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogaHRtbC9Gb3JtQXNzb2Np
YXRlZEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6SFRNTEZvcm1Db250
cm9sRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OkhUTUxJbWFnZUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnJlbW92ZWRGcm9tKToKKyAgICAgICAgKiBodG1sL0hU
TUxJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50OjpIVE1MT2JqZWN0RWxlbWVudCk6
CisKIDIwMTUtMTItMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgZGlhZ25vc3RpYyBsb2dnaW5nIHRvIG1lYXN1cmUgc3BlY3VsYXRpdmUgcmV2YWxpZGF0
aW9uIGFjY3VyYWN5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lh
dGVkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVu
dC5jcHAKaW5kZXggNDc0ZmI2NWU2NmI1MDEyZWNhODllNjk0MzIxMzFkNDFiMmJkMzI4Yy4uNzU5
MzkwNDM1YWVkMTlkZmMxZjUwZTQwYjM2Yjc4NDVkNTJjY2I1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcApAQCAtNDksOCArNDksOSBAQCBwcml2
YXRlOgogICAgIEZvcm1Bc3NvY2lhdGVkRWxlbWVudCYgbV9lbGVtZW50OwogfTsKIAotRm9ybUFz
c29jaWF0ZWRFbGVtZW50OjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKQorRm9ybUFzc29jaWF0ZWRF
bGVtZW50OjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQoSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogICAg
IDogbV9mb3JtKG51bGxwdHIpCisgICAgLCBtX2Zvcm1TZXRCeVBhcnNlcihmb3JtKQogewogfQog
CkBAIC02OCwxMCArNjksMTUgQEAgdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmRpZE1vdmVU
b05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkKIAogdm9pZCBGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKIHsK
KyAgICBIVE1MRWxlbWVudCYgZWxlbWVudCA9IGFzSFRNTEVsZW1lbnQoKTsKKyAgICBpZiAobV9m
b3JtU2V0QnlQYXJzZXIpIHsKKyAgICAgICAgc2V0Rm9ybShtX2Zvcm1TZXRCeVBhcnNlcik7Cisg
ICAgICAgIG1fZm9ybVNldEJ5UGFyc2VyID0gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoIWlu
c2VydGlvblBvaW50LmluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSFRNTEVs
ZW1lbnQmIGVsZW1lbnQgPSBhc0hUTUxFbGVtZW50KCk7CiAgICAgaWYgKGVsZW1lbnQuZmFzdEhh
c0F0dHJpYnV0ZShmb3JtQXR0cikpCiAgICAgICAgIHJlc2V0Rm9ybUF0dHJpYnV0ZVRhcmdldE9i
c2VydmVyKCk7CiB9CkBAIC04NCw3ICs5MCw3IEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50
OjpyZW1vdmVkRnJvbShDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKICAgICAvLyBJZiB0
aGUgZm9ybSBhbmQgZWxlbWVudCBhcmUgYm90aCBpbiB0aGUgc2FtZSB0cmVlLCBwcmVzZXJ2ZSB0
aGUgY29ubmVjdGlvbiB0byB0aGUgZm9ybS4KICAgICAvLyBPdGhlcndpc2UsIG51bGwgb3V0IG91
ciBmb3JtIGFuZCByZW1vdmUgb3Vyc2VsdmVzIGZyb20gdGhlIGZvcm0ncyBsaXN0IG9mIGVsZW1l
bnRzLgogICAgIGlmIChtX2Zvcm0gJiYgZWxlbWVudC5oaWdoZXN0QW5jZXN0b3IoKSAhPSBtX2Zv
cm0tPmhpZ2hlc3RBbmNlc3RvcigpKQotICAgICAgICBzZXRGb3JtKDApOworICAgICAgICBzZXRG
b3JtKG51bGxwdHIpOwogfQogCiBIVE1MRm9ybUVsZW1lbnQqIEZvcm1Bc3NvY2lhdGVkRWxlbWVu
dDo6ZmluZEFzc29jaWF0ZWRGb3JtKGNvbnN0IEhUTUxFbGVtZW50KiBlbGVtZW50LCBIVE1MRm9y
bUVsZW1lbnQqIGN1cnJlbnRBc3NvY2lhdGVkRm9ybSkKQEAgLTExMiw3ICsxMTgsNyBAQCB2b2lk
IEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6Zm9ybVJlbW92ZWRGcm9tVHJlZShjb25zdCBOb2RlKiBm
b3JtUm9vdCkKIHsKICAgICBBU1NFUlQobV9mb3JtKTsKICAgICBpZiAoYXNIVE1MRWxlbWVudCgp
LmhpZ2hlc3RBbmNlc3RvcigpICE9IGZvcm1Sb290KQotICAgICAgICBzZXRGb3JtKDApOworICAg
ICAgICBzZXRGb3JtKG51bGxwdHIpOwogfQogCiB2b2lkIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6
c2V0Rm9ybShIVE1MRm9ybUVsZW1lbnQqIG5ld0Zvcm0pCkBAIC0xNDIsNyArMTQ4LDcgQEAgdm9p
ZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1XaWxsQmVEZXN0cm95ZWQoKQogICAgIGlmICgh
bV9mb3JtKQogICAgICAgICByZXR1cm47CiAgICAgd2lsbENoYW5nZUZvcm0oKTsKLSAgICBtX2Zv
cm0gPSAwOworICAgIG1fZm9ybSA9IG51bGxwdHI7CiAgICAgZGlkQ2hhbmdlRm9ybSgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaAppbmRleCA3ZGY2
YzM5YTBhMWE2MzI2MWNjM2IzMGU5OWFlMjBlYTk5ZmM1ODRkLi5mMzlhY2YyZDZhMTkzZjc1NjQ4
ZjcyOTU5NTUzYmZiYjMwNWI2MTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zv
cm1Bc3NvY2lhdGVkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29j
aWF0ZWRFbGVtZW50LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZm9ybUF0
dHJpYnV0ZVRhcmdldENoYW5nZWQoKTsKIAogcHJvdGVjdGVkOgotICAgIEZvcm1Bc3NvY2lhdGVk
RWxlbWVudCgpOworICAgIEZvcm1Bc3NvY2lhdGVkRWxlbWVudChIVE1MRm9ybUVsZW1lbnQqKTsK
IAogICAgIHZvaWQgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKTsKICAgICB2b2lkIHJlbW92
ZWRGcm9tKENvbnRhaW5lck5vZGUmKTsKQEAgLTExNiw2ICsxMTYsNyBAQCBwcml2YXRlOgogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEZvcm1BdHRyaWJ1dGVUYXJnZXRPYnNlcnZlcj4gbV9mb3JtQXR0
cmlidXRlVGFyZ2V0T2JzZXJ2ZXI7CiAgICAgSFRNTEZvcm1FbGVtZW50KiBtX2Zvcm07CisgICAg
SFRNTEZvcm1FbGVtZW50KiBtX2Zvcm1TZXRCeVBhcnNlcjsKICAgICBTdHJpbmcgbV9jdXN0b21W
YWxpZGF0aW9uTWVzc2FnZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDI5MWUxZWJmYmM3ZWM4ZDRmNDk0ZTY4OGFlOTZjOWM2
MTc4NGFmMWYuLjg3M2UzNzU3MWMwNzBhZjg5ZjE2MGU0NDNhMjMwYmUxNTE4NGJiZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNDks
NiArNDksNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogICAgIDogTGFi
ZWxhYmxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAgICAsIEZvcm1Bc3NvY2lhdGVkRWxl
bWVudChmb3JtKQogICAgICwgbV9kaXNhYmxlZChmYWxzZSkKICAgICAsIG1faXNSZWFkT25seShm
YWxzZSkKICAgICAsIG1faXNSZXF1aXJlZChmYWxzZSkKQEAgLTYxLDcgKzYyLDYgQEAgSFRNTEZv
cm1Db250cm9sRWxlbWVudDo6SFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2MKICAgICAsIG1fd2FzQ2hhbmdlZFNpbmNlTGFzdEZvcm1Db250cm9s
Q2hhbmdlRXZlbnQoZmFsc2UpCiAgICAgLCBtX2hhc0F1dG9mb2N1c2VkKGZhbHNlKQogewotICAg
IHNldEZvcm0oZm9ybSk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGE5NDI0
YjNiN2I4ZTZiNmM0OGQ1MDM4MzM4NWI4MzI3NGYwNjk2NWIuLmQxMDIzMzkzYjUzYTdmMmI0NDM1
YTJhOTc5MmJiODg0NDI1OWY1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcApAQCAtNTUsNyArNTUsOCBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogSFRN
TEltYWdlRWxlbWVudDo6SFRNTEltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKICAgICA6IEhU
TUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgbV9pbWFnZUxvYWRlcigqdGhpcykK
LSAgICAsIG1fZm9ybShmb3JtKQorICAgICwgbV9mb3JtKG51bGxwdHIpCisgICAgLCBtX2Zvcm1T
ZXRCeVBhcnNlcihmb3JtKQogICAgICwgbV9jb21wb3NpdGVPcGVyYXRvcihDb21wb3NpdGVTb3Vy
Y2VPdmVyKQogICAgICwgbV9pbWFnZURldmljZVBpeGVsUmF0aW8oMS4wZikKICNpZiBFTkFCTEUo
U0VSVklDRV9DT05UUk9MUykKQEAgLTY0LDggKzY1LDYgQEAgSFRNTEltYWdlRWxlbWVudDo6SFRN
TEltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW0KIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShpbWdUYWcpKTsKICAgICBzZXRIYXNDdXN0b21T
dHlsZVJlc29sdmVDYWxsYmFja3MoKTsKLSAgICBpZiAoZm9ybSkKLSAgICAgICAgZm9ybS0+cmVn
aXN0ZXJJbWdFbGVtZW50KHRoaXMpOwogfQogCiBSZWY8SFRNTEltYWdlRWxlbWVudD4gSFRNTElt
YWdlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTE2Myw3ICsxNjIsNyBA
QCBJbWFnZUNhbmRpZGF0ZSBIVE1MSW1hZ2VFbGVtZW50OjpiZXN0Rml0U291cmNlRnJvbVBpY3R1
cmVFbGVtZW50KCkKICAgICAgICAgTWVkaWFRdWVyeUV2YWx1YXRvciBldmFsdWF0b3IoZG9jdW1l
bnQoKS5wcmludGluZygpID8gInByaW50IiA6ICJzY3JlZW4iLCBkb2N1bWVudCgpLmZyYW1lKCks
IGNvbXB1dGVkU3R5bGUoKSk7CiAgICAgICAgIGlmICghZXZhbHVhdG9yLmV2YWwoTWVkaWFRdWVy
eVNldDo6Y3JlYXRlQWxsb3dpbmdEZXNjcmlwdGlvblN5bnRheChzb3VyY2UubWVkaWEoKSkucHRy
KCkpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIAorCiAgICAgICAgIGZsb2F0IHNv
dXJjZVNpemUgPSBwYXJzZVNpemVzQXR0cmlidXRlKHNvdXJjZS5mYXN0R2V0QXR0cmlidXRlKHNp
emVzQXR0cikuc3RyaW5nKCksIGRvY3VtZW50KCkucmVuZGVyVmlldygpLCBkb2N1bWVudCgpLmZy
YW1lKCkpOwogICAgICAgICBJbWFnZUNhbmRpZGF0ZSBjYW5kaWRhdGUgPSBiZXN0Rml0U291cmNl
Rm9ySW1hZ2VBdHRyaWJ1dGVzKGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbnVsbEF0
b20sIHNvdXJjZS5mYXN0R2V0QXR0cmlidXRlKHNyY3NldEF0dHIpLCBzb3VyY2VTaXplKTsKICAg
ICAgICAgaWYgKCFjYW5kaWRhdGUuaXNFbXB0eSgpKQpAQCAtMjg5LDIyICsyODgsMjcgQEAgdm9p
ZCBIVE1MSW1hZ2VFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQogCiBOb2RlOjpJbnNlcnRp
b25Ob3RpZmljYXRpb25SZXF1ZXN0IEhUTUxJbWFnZUVsZW1lbnQ6Omluc2VydGVkSW50byhDb250
YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKIHsKLSAgICBpZiAoIW1fZm9ybSkgeyAvLyBtX2Zv
cm0gY2FuIGJlIG5vbi1udWxsIGlmIGl0IHdhcyBzZXQgaW4gY29uc3RydWN0b3IuCi0gICAgICAg
IG1fZm9ybSA9IEhUTUxGb3JtRWxlbWVudDo6ZmluZENsb3Nlc3RGb3JtQW5jZXN0b3IoKnRoaXMp
OwotICAgICAgICBpZiAobV9mb3JtKQotICAgICAgICAgICAgbV9mb3JtLT5yZWdpc3RlckltZ0Vs
ZW1lbnQodGhpcyk7CisgICAgaWYgKG1fZm9ybVNldEJ5UGFyc2VyKSB7CisgICAgICAgIG1fZm9y
bSA9IG1fZm9ybVNldEJ5UGFyc2VyOworICAgICAgICBtX2Zvcm1TZXRCeVBhcnNlciA9IG51bGxw
dHI7CiAgICAgfQogCisgICAgaWYgKCFtX2Zvcm0pCisgICAgICAgIG1fZm9ybSA9IEhUTUxGb3Jt
RWxlbWVudDo6ZmluZENsb3Nlc3RGb3JtQW5jZXN0b3IoKnRoaXMpOworCisgICAgaWYgKG1fZm9y
bSkKKyAgICAgICAgbV9mb3JtLT5yZWdpc3RlckltZ0VsZW1lbnQodGhpcyk7CisKICAgICAvLyBJ
bnNlcnQgbmVlZHMgdG8gY29tcGxldGUgZmlyc3QsIGJlZm9yZSB3ZSBzdGFydCB1cGRhdGluZyB0
aGUgbG9hZGVyLiBMb2FkZXIgZGlzcGF0Y2hlcyBldmVudHMgd2hpY2ggY291bGQgcmVzdWx0CiAg
ICAgLy8gaW4gY2FsbGJhY2tzIGJhY2sgdG8gdGhpcyBub2RlLgogICAgIE5vZGU6Okluc2VydGlv
bk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0Tm90aWZpY2F0aW9uUmVxdWVzdCA9IEhUTUxFbGVt
ZW50OjppbnNlcnRlZEludG8oaW5zZXJ0aW9uUG9pbnQpOwogCiAgICAgaWYgKGluc2VydGlvblBv
aW50LmluRG9jdW1lbnQoKSAmJiAhbV9sb3dlcmNhc2VkVXNlbWFwLmlzTnVsbCgpKQogICAgICAg
ICBkb2N1bWVudCgpLmFkZEltYWdlRWxlbWVudEJ5TG93ZXJjYXNlZFVzZW1hcCgqbV9sb3dlcmNh
c2VkVXNlbWFwLmltcGwoKSwgKnRoaXMpOwotICAgIAorCiAgICAgaWYgKGlzPEhUTUxQaWN0dXJl
RWxlbWVudD4ocGFyZW50Tm9kZSgpKSkKICAgICAgICAgc2VsZWN0SW1hZ2VTb3VyY2UoKTsKLSAg
ICAKKwogICAgIC8vIElmIHdlIGhhdmUgYmVlbiBpbnNlcnRlZCBmcm9tIGEgcmVuZGVyZXItbGVz
cyBkb2N1bWVudCwKICAgICAvLyBvdXIgbG9hZGVyIG1heSBoYXZlIG5vdCBmZXRjaGVkIHRoZSBp
bWFnZSwgc28gZG8gaXQgbm93LgogICAgIGlmIChpbnNlcnRpb25Qb2ludC5pbkRvY3VtZW50KCkg
JiYgIW1faW1hZ2VMb2FkZXIuaW1hZ2UoKSkKQEAgLTMyMSw3ICszMjUsNyBAQCB2b2lkIEhUTUxJ
bWFnZUVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmIGluc2VydGlvblBvaW50KQog
ICAgIGlmIChpbnNlcnRpb25Qb2ludC5pbkRvY3VtZW50KCkgJiYgIW1fbG93ZXJjYXNlZFVzZW1h
cC5pc051bGwoKSkKICAgICAgICAgZG9jdW1lbnQoKS5yZW1vdmVJbWFnZUVsZW1lbnRCeUxvd2Vy
Y2FzZWRVc2VtYXAoKm1fbG93ZXJjYXNlZFVzZW1hcC5pbXBsKCksICp0aGlzKTsKIAotICAgIG1f
Zm9ybSA9IDA7CisgICAgbV9mb3JtID0gbnVsbHB0cjsKICAgICBIVE1MRWxlbWVudDo6cmVtb3Zl
ZEZyb20oaW5zZXJ0aW9uUG9pbnQpOwogfQogCkBAIC01MTgsNyArNTIyLDcgQEAgYm9vbCBIVE1M
SW1hZ2VFbGVtZW50Ojppc1NlcnZlck1hcCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdXNlbWFwID0gZmFzdEdldEF0dHJpYnV0ZSh1c2Vt
YXBBdHRyKTsKLSAgICAKKwogICAgIC8vIElmIHRoZSB1c2VtYXAgYXR0cmlidXRlIHN0YXJ0cyB3
aXRoICcjJywgaXQgcmVmZXJzIHRvIGEgbWFwIGVsZW1lbnQgaW4gdGhlIGRvY3VtZW50LgogICAg
IGlmICh1c2VtYXAuc3RyaW5nKClbMF0gPT0gJyMnKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCmluZGV4IDgxNzQ1ZDI0YWI3M2YwOTUx
ZmFkNmFjNzkyNDMzNjMxNWYyYjZmNjcuLjE5OWU4YzA4MzM2ZjUwMmM1Y2QwNDAwYzBiMDA1ZjQ0
ZTBmOGM2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xMjYs
NiArMTI2LDcgQEAgcHJpdmF0ZToKIAogICAgIEhUTUxJbWFnZUxvYWRlciBtX2ltYWdlTG9hZGVy
OwogICAgIEhUTUxGb3JtRWxlbWVudCogbV9mb3JtOworICAgIEhUTUxGb3JtRWxlbWVudCogbV9m
b3JtU2V0QnlQYXJzZXI7CiAgICAgQ29tcG9zaXRlT3BlcmF0b3IgbV9jb21wb3NpdGVPcGVyYXRv
cjsKICAgICBBdG9taWNTdHJpbmcgbV9iZXN0Rml0SW1hZ2VVUkw7CiAgICAgQXRvbWljU3RyaW5n
IG1fY3VycmVudFNyYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
aW5kZXggZGQzY2EzNDM1ZmFjODIwZDBkMTgwOWUyZmQxMjE4YmZiZGQwYjZjNy4uYWJhMDAxYjlj
ZWUxODBkMTk2NTFmNzllOGU4MGQzYzFjODRlMzU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTY1LDExICs2NSwxMSBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCiBpbmxpbmUgSFRNTE9iamVjdEVsZW1lbnQ6OkhUTUxPYmplY3RFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZv
cm1FbGVtZW50KiBmb3JtLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKICAgICA6IEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikKKyAgICAsIEZv
cm1Bc3NvY2lhdGVkRWxlbWVudChmb3JtKQogICAgICwgbV9kb2NOYW1lZEl0ZW0odHJ1ZSkKICAg
ICAsIG1fdXNlRmFsbGJhY2tDb250ZW50KGZhbHNlKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KG9iamVjdFRhZykpOwotICAgIHNldEZvcm0oZm9ybSk7CiB9CiAKIGlubGluZSBIVE1MT2JqZWN0
RWxlbWVudDo6fkhUTUxPYmplY3RFbGVtZW50KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IGJiNmUzMDQyZGQ5ZTUxMWU5Nzk1ZjlmMTMxMTI5OGFkYjg4YzExYWUuLjMyMDQyNmE4
YzM1YjdkOWE1ZTliZTY2NTlkNjYyMTEwOTc5Y2ZiNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTEyLTA5ICBLZWl0aCBSb2xsaW4gIDxrcm9s
bGluQGFwcGxlLmNvbT4KKworICAgICAgICBmb3JtLmVsZW1lbnRzIHNob3VsZCByZWZsZWN0IHRo
ZSBlbGVtZW50IG9yZGVyaW5nIGFmdGVyIHRoZSBIVE1MIHRyZWUgYnVpbGRlciBhbGdvcml0aG0K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODg3MAor
ICAgICAgICByZGFyOi8vcHJvYmxlbS8yMjU4OTg3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgZXhpc3RpbmcgdGVzdC4KKworICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtZm9ybS1l
bGVtZW50L2Zvcm0tZWxlbWVudHMtbmFtZWRpdGVtLTAyLWV4cGVjdGVkLnR4dDoKKwogMjAxNS0x
Mi0wMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWJh
c2VsaW5lIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vaW50ZXJmYWNl
cy5odG1sIGFmdGVyIHIxOTI5NTMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWZvcm0tZWxlbWVu
dC9mb3JtLWVsZW1lbnRzLW5hbWVkaXRlbS0wMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1m
b3JtLWVsZW1lbnQvZm9ybS1lbGVtZW50cy1uYW1lZGl0ZW0tMDItZXhwZWN0ZWQudHh0CmluZGV4
IDlhYTM3OTBhNzlmN2JhZmRkODM3MjE0OTRhMDJiMmE2YTE0N2QxY2IuLjA5ZThmYzhhNzRhY2E3
NGMyOTEwOWRmY2JiYWQyOTc1OTg0NDJjNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWZvcm0t
ZWxlbWVudC9mb3JtLWVsZW1lbnRzLW5hbWVkaXRlbS0wMi1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9m
b3Jtcy90aGUtZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudHMtbmFtZWRpdGVtLTAyLWV4cGVjdGVk
LnR4dApAQCAtMSw1ICsxLDUgQEAKIAogCQogCi1GQUlMIGZvcm0uZWxlbWVudHMgc2hvdWxkIHdv
cmsgY29ycmVjdGx5IGluIHRoZSBmYWNlIG9mIHRhYmxlIHN5bnRheCBlcnJvcnMgYXNzZXJ0X2Fy
cmF5X2VxdWFsczogcHJvcGVydHkgMCwgZXhwZWN0ZWQgRWxlbWVudCBub2RlIDxpbnB1dCB0eXBl
PSJyYWRpbyIgbmFtZT0icmFkaW8wIiBpZD0icjAiIHZhbHVlPSIwIj48L2lucHV0PiBidXQgZ290
IEVsZW1lbnQgbm9kZSA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJhZGlvMSIgaWQ9InIxIiB2
YWx1ZT0iMSI+PC9pbnB1dD4KK1BBU1MgZm9ybS5lbGVtZW50cyBzaG91bGQgd29yayBjb3JyZWN0
bHkgaW4gdGhlIGZhY2Ugb2YgdGFibGUgc3ludGF4IGVycm9ycyAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267015</attachid>
            <date>2015-12-09 09:29:45 -0800</date>
            <delta_ts>2015-12-09 10:19:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148870-20151209092915.patch</filename>
            <type>text/plain</type>
            <size>14116</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkzNzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc5NTQ5NzhhN2JmOWE2
NzFmZmVhOWY0MjdmMDQyMjEwYTVkMTMwZS4uZDY4YjI4ZTJhM2UzY2IxZTA5YWEzMTlmYmFlM2U4
ZjE1MjRjZTBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE1LTEyLTA5ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBmb3JtLmVsZW1lbnRzIHNo
b3VsZCByZWZsZWN0IHRoZSBlbGVtZW50IG9yZGVyaW5nIGFmdGVyIHRoZSBIVE1MIHRyZWUgYnVp
bGRlciBhbGdvcml0aG0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0ODg3MAorICAgICAgICByZGFyOi8vcHJvYmxlbS8yMjU4OTg3OQorCisgICAgICAg
IFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBmb3JtLmVsZW1lbnRzIHNob3Vs
ZCByZXR1cm4gZm9ybS1hc3NvY2lhdGVkIGVsZW1lbnRzIGluIHRyZWUgb3JkZXIuCisgICAgICAg
IEhvd2V2ZXIsIHdoZW4gcHJlc2VudGVkIHdpdGggYW4gSFRNTCBmcmFnbWVudCBsaWtlIHRoZSBm
b2xsb3dpbmcsCisgICAgICAgIGZvcm1zLmVsZW1lbnRzIGlzIG5vdCBidWlsdCBpbiB0cmVlIG9y
ZGVyLiBJbnN0ZWFkLCB0aGUgZWxlbWVudHMKKyAgICAgICAgYXBwZWFyIGluIGZvcm1zLmVsZW1l
bnQgaW4gdGhlIHNhbWUgb3JkZXIgdGhleSBhcHBlYXIgaW4gdGhlIEhUTUwgLS0KKyAgICAgICAg
dGhhdCBpcyBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGV5IGFyZSBwYXJzZWQuCisKKyAgICAgICAg
PGZvcm0gaWQ9Zm9ybT4KKyAgICAgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgICAgICA8dHI+
CisgICAgICAgICAgICAgICAgICAgIDx0ZD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InJhZGlv
MSIgaWQ9InIxIiB2YWx1ZT0xPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgIDx0ZD48aW5wdXQg
dHlwZT0icmFkaW8iIG5hbWU9InJhZGlvMiIgaWQ9InIyIiB2YWx1ZT0yPjwvdGQ+CisgICAgICAg
ICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icmFkaW8wIiBpZD0icjAiIHZh
bHVlPTA+CisgICAgICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICAgIDwvdGFibGU+CisgICAg
ICAgIDwvZm9ybT4KKworICAgICAgICBUaGUgcmVhc29uIHdoeSBlbGVtZW50cyBhcHBlYXIgaW4g
Zm9ybXMuZWxlbWVudHMgaW4gcGFyc2Ugb3JkZXIgaXMKKyAgICAgICAgYmVjYXVzZSB0aGV5IHJl
Z2lzdGVyIHRoZW1zZWx2ZXMgd2l0aCB0aGUgZGVzaWduYXRlZCBmb3JtIHdoZW4gdGhleQorICAg
ICAgICBhcmUgY3JlYXRlZC4gQXQgdGhpcyB0aW1lLCB0aGV5IGFyZSBub3QgaW4gdGhlIERPTSB0
cmVlLCBzbyB0aGUgZm9ybQorICAgICAgICBjYW4gb25seSBhc3N1bWUgdGhhdCB0aGUgZWxlbWVu
dCB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBET00gdHJlZSwKKyAgICAgICAgd2l0aCB0aGUgcmVz
dWx0IHRoYXQgaXQgcmVjb3JkcyB0aGUgZWxlbWVudHMgaW4gdGhlIEhUTUwgZnJhZ21lbnQKKyAg
ICAgICAgYWJvdmUgYXMgW3IxLCByMiwgcjBdLgorCisgICAgICAgIEhvd2V2ZXIsIGl0J3Mgbm90
IGFsd2F5cyB0aGUgY2FzZSB0aGF0IHRoZSBuZXdseS1jcmVhdGVkIGVsZW1lbnQgd2lsbAorICAg
ICAgICBiZSBhcHBlbmRlZCB0byB0aGUgY3VycmVudCB0cmVlLiBJbiB0aGUgSFRNTCBmcmFnbWVu
dCBhYm92ZSwgdGhlIHIwCisgICAgICAgIGlucHV0IGVsZW1lbnQgaXMgaG9pc2VkIG91dCBvZiB0
aGUgdGFibGUgZWxlbWVudC4gSXQgZW5kcyB1cCBiZWluZyB0aGUKKyAgICAgICAgcHJlY2VkaW5n
IHNpYmxpbmcgb2YgdGhlIHRhYmxlIGVsZW1lbnQsIHdpdGggdGhlIHJlc3VsdCB0aGF0IHRoZQor
ICAgICAgICBhY3R1YWwgdHJlZS1vcmRlciBvZiB0aGUgaW5wdXQgZWxlbWVudHMgaXMgW3IwLCBy
MSwgcjJdLgorCisgICAgICAgIEJlY2F1c2UgdGhlIHByb2JsZW0gaXMgZHVlIHRvIHJlZ2lzdGVy
aW5nIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50cworICAgICAgICB3aXRoIHRoZSBmb3JtICpiZWZv
cmUqIHRoZSBlbGVtZW50cyBhcmUgYWRkZWQgdG8gdGhlIERPTSB0cmVlLCB0aGUKKyAgICAgICAg
c29sdXRpb24gaXMgdG8gZGVmZXIgdGhhdCByZWdpc3RyYXRpb24gdW50aWwgYWZ0ZXJ3YXJkcy4g
V2l0aCB0aGUgbmV3CisgICAgICAgIGVsZW1lbnQgaW4gdGhlIHRyZWUsIHRoZSBmb3JtIGNhbiBu
b3cgdXNlIGl0cyBjdXJyZW50IGxvY2F0aW9uIGluIHRoZQorICAgICAgICB0cmVlIHRvIGNvcnJl
Y3RseSBwbGFjZSB0aGUgZWxlbWVudCBpbiBmb3JtLmVsZW1lbnRzLgorCisgICAgICAgIEV4aXN0
aW5nIHRlc3RzIG5vdyBwYXNzOgorICAgICAgICAtIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWZvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnRz
LW5hbWVkaXRlbS0wMi1odG1sCisKKyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OkZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6
Omluc2VydGVkSW50byk6CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6
OnJlbW92ZWRGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6
Zm9ybVJlbW92ZWRGcm9tVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQ6OmZvcm1XaWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0
ZWRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OkhUTUxGb3JtQ29udHJv
bEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpIVE1MSW1hZ2VFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpyZW1vdmVkRnJvbSk6CisgICAgICAgICogaHRtbC9IVE1M
SW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudDo6SFRNTE9iamVjdEVsZW1lbnQpOgor
CiAyMDE1LTEyLTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIGRpYWdub3N0aWMgbG9nZ2luZyB0byBtZWFzdXJlIHNwZWN1bGF0aXZlIHJldmFsaWRhdGlv
biBhY2N1cmFjeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRl
ZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQu
Y3BwCmluZGV4IDQ3NGZiNjVlNjZiNTAxMmVjYTg5ZTY5NDMyMTMxZDQxYjJiZDMyOGMuLjc1OTM5
MDQzNWFlZDE5ZGZjMWY1MGU0MGIzNmI3ODQ1ZDUyY2NiNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKQEAgLTQ5LDggKzQ5LDkgQEAgcHJpdmF0
ZToKICAgICBGb3JtQXNzb2NpYXRlZEVsZW1lbnQmIG1fZWxlbWVudDsKIH07CiAKLUZvcm1Bc3Nv
Y2lhdGVkRWxlbWVudDo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50KCkKK0Zvcm1Bc3NvY2lhdGVkRWxl
bWVudDo6Rm9ybUFzc29jaWF0ZWRFbGVtZW50KEhUTUxGb3JtRWxlbWVudCogZm9ybSkKICAgICA6
IG1fZm9ybShudWxscHRyKQorICAgICwgbV9mb3JtU2V0QnlQYXJzZXIoZm9ybSkKIHsKIH0KIApA
QCAtNjgsMTAgKzY5LDE1IEBAIHZvaWQgRm9ybUFzc29jaWF0ZWRFbGVtZW50OjpkaWRNb3ZlVG9O
ZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpCiAKIHZvaWQgRm9ybUFzc29jaWF0ZWRF
bGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQpCiB7Cisg
ICAgSFRNTEVsZW1lbnQmIGVsZW1lbnQgPSBhc0hUTUxFbGVtZW50KCk7CisgICAgaWYgKG1fZm9y
bVNldEJ5UGFyc2VyKSB7CisgICAgICAgIHNldEZvcm0obV9mb3JtU2V0QnlQYXJzZXIpOworICAg
ICAgICBtX2Zvcm1TZXRCeVBhcnNlciA9IG51bGxwdHI7CisgICAgfQorCiAgICAgaWYgKCFpbnNl
cnRpb25Qb2ludC5pbkRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhUTUxFbGVt
ZW50JiBlbGVtZW50ID0gYXNIVE1MRWxlbWVudCgpOwogICAgIGlmIChlbGVtZW50LmZhc3RIYXNB
dHRyaWJ1dGUoZm9ybUF0dHIpKQogICAgICAgICByZXNldEZvcm1BdHRyaWJ1dGVUYXJnZXRPYnNl
cnZlcigpOwogfQpAQCAtODQsNyArOTAsNyBAQCB2b2lkIEZvcm1Bc3NvY2lhdGVkRWxlbWVudDo6
cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQpCiAgICAgLy8gSWYgdGhl
IGZvcm0gYW5kIGVsZW1lbnQgYXJlIGJvdGggaW4gdGhlIHNhbWUgdHJlZSwgcHJlc2VydmUgdGhl
IGNvbm5lY3Rpb24gdG8gdGhlIGZvcm0uCiAgICAgLy8gT3RoZXJ3aXNlLCBudWxsIG91dCBvdXIg
Zm9ybSBhbmQgcmVtb3ZlIG91cnNlbHZlcyBmcm9tIHRoZSBmb3JtJ3MgbGlzdCBvZiBlbGVtZW50
cy4KICAgICBpZiAobV9mb3JtICYmIGVsZW1lbnQuaGlnaGVzdEFuY2VzdG9yKCkgIT0gbV9mb3Jt
LT5oaWdoZXN0QW5jZXN0b3IoKSkKLSAgICAgICAgc2V0Rm9ybSgwKTsKKyAgICAgICAgc2V0Rm9y
bShudWxscHRyKTsKIH0KIAogSFRNTEZvcm1FbGVtZW50KiBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6
OmZpbmRBc3NvY2lhdGVkRm9ybShjb25zdCBIVE1MRWxlbWVudCogZWxlbWVudCwgSFRNTEZvcm1F
bGVtZW50KiBjdXJyZW50QXNzb2NpYXRlZEZvcm0pCkBAIC0xMTIsNyArMTE4LDcgQEAgdm9pZCBG
b3JtQXNzb2NpYXRlZEVsZW1lbnQ6OmZvcm1SZW1vdmVkRnJvbVRyZWUoY29uc3QgTm9kZSogZm9y
bVJvb3QpCiB7CiAgICAgQVNTRVJUKG1fZm9ybSk7CiAgICAgaWYgKGFzSFRNTEVsZW1lbnQoKS5o
aWdoZXN0QW5jZXN0b3IoKSAhPSBmb3JtUm9vdCkKLSAgICAgICAgc2V0Rm9ybSgwKTsKKyAgICAg
ICAgc2V0Rm9ybShudWxscHRyKTsKIH0KIAogdm9pZCBGb3JtQXNzb2NpYXRlZEVsZW1lbnQ6OnNl
dEZvcm0oSFRNTEZvcm1FbGVtZW50KiBuZXdGb3JtKQpAQCAtMTQyLDcgKzE0OCw3IEBAIHZvaWQg
Rm9ybUFzc29jaWF0ZWRFbGVtZW50Ojpmb3JtV2lsbEJlRGVzdHJveWVkKCkKICAgICBpZiAoIW1f
Zm9ybSkKICAgICAgICAgcmV0dXJuOwogICAgIHdpbGxDaGFuZ2VGb3JtKCk7Ci0gICAgbV9mb3Jt
ID0gMDsKKyAgICBtX2Zvcm0gPSBudWxscHRyOwogICAgIGRpZENoYW5nZUZvcm0oKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKaW5kZXggN2RmNmMz
OWEwYTFhNjMyNjFjYzNiMzBlOTlhZTIwZWE5OWZjNTg0ZC4uZjM5YWNmMmQ2YTE5M2Y3NTY0OGY3
Mjk1OTU1M2JmYmIzMDViNjEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3Jt
QXNzb2NpYXRlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lh
dGVkRWxlbWVudC5oCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZvcm1BdHRy
aWJ1dGVUYXJnZXRDaGFuZ2VkKCk7CiAKIHByb3RlY3RlZDoKLSAgICBGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQoKTsKKyAgICBGb3JtQXNzb2NpYXRlZEVsZW1lbnQoSFRNTEZvcm1FbGVtZW50Kik7CiAK
ICAgICB2b2lkIGluc2VydGVkSW50byhDb250YWluZXJOb2RlJik7CiAgICAgdm9pZCByZW1vdmVk
RnJvbShDb250YWluZXJOb2RlJik7CkBAIC0xMTYsNiArMTE2LDcgQEAgcHJpdmF0ZToKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxGb3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXI+IG1fZm9ybUF0dHJp
YnV0ZVRhcmdldE9ic2VydmVyOwogICAgIEhUTUxGb3JtRWxlbWVudCogbV9mb3JtOworICAgIEhU
TUxGb3JtRWxlbWVudCogbV9mb3JtU2V0QnlQYXJzZXI7CiAgICAgU3RyaW5nIG1fY3VzdG9tVmFs
aWRhdGlvbk1lc3NhZ2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmNwcAppbmRleCAyOTFlMWViZmJjN2VjOGQ0ZjQ5NGU2ODhhZTk2YzljNjE3
ODRhZjFmLi44NzNlMzc1NzFjMDcwYWY4OWYxNjBlNDQzYTIzMGJlMTUxODRiYmVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTQ5LDYg
KzQ5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6SFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKICAgICA6IExhYmVs
YWJsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCisgICAgLCBGb3JtQXNzb2NpYXRlZEVsZW1l
bnQoZm9ybSkKICAgICAsIG1fZGlzYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzUmVhZE9ubHkoZmFs
c2UpCiAgICAgLCBtX2lzUmVxdWlyZWQoZmFsc2UpCkBAIC02MSw3ICs2Miw2IEBAIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jCiAgICAgLCBtX3dhc0NoYW5nZWRTaW5jZUxhc3RGb3JtQ29udHJvbENo
YW5nZUV2ZW50KGZhbHNlKQogICAgICwgbV9oYXNBdXRvZm9jdXNlZChmYWxzZSkKIHsKLSAgICBz
ZXRGb3JtKGZvcm0pOwogICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCBhOTQyNGIz
YjdiOGU2YjZjNDhkNTAzODMzODViODMyNzRmMDY5NjViLi5kMTAyMzM5M2I1M2E3ZjJiNDQzNWEy
YTk3OTJiYjg4NDQyNTlmNWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAKQEAgLTU1LDcgKzU1LDggQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIEhUTUxJ
bWFnZUVsZW1lbnQ6OkhUTUxJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCiAgICAgOiBIVE1M
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIG1faW1hZ2VMb2FkZXIoKnRoaXMpCi0g
ICAgLCBtX2Zvcm0oZm9ybSkKKyAgICAsIG1fZm9ybShudWxscHRyKQorICAgICwgbV9mb3JtU2V0
QnlQYXJzZXIoZm9ybSkKICAgICAsIG1fY29tcG9zaXRlT3BlcmF0b3IoQ29tcG9zaXRlU291cmNl
T3ZlcikKICAgICAsIG1faW1hZ2VEZXZpY2VQaXhlbFJhdGlvKDEuMGYpCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfQ09OVFJPTFMpCkBAIC02NCw4ICs2NSw2IEBAIEhUTUxJbWFnZUVsZW1lbnQ6OkhUTUxJ
bWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
CiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoaW1nVGFnKSk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5
bGVSZXNvbHZlQ2FsbGJhY2tzKCk7Ci0gICAgaWYgKGZvcm0pCi0gICAgICAgIGZvcm0tPnJlZ2lz
dGVySW1nRWxlbWVudCh0aGlzKTsKIH0KIAogUmVmPEhUTUxJbWFnZUVsZW1lbnQ+IEhUTUxJbWFn
ZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCkBAIC0xNjMsNyArMTYyLDcgQEAg
SW1hZ2VDYW5kaWRhdGUgSFRNTEltYWdlRWxlbWVudDo6YmVzdEZpdFNvdXJjZUZyb21QaWN0dXJl
RWxlbWVudCgpCiAgICAgICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IgZXZhbHVhdG9yKGRvY3VtZW50
KCkucHJpbnRpbmcoKSA/ICJwcmludCIgOiAic2NyZWVuIiwgZG9jdW1lbnQoKS5mcmFtZSgpLCBj
b21wdXRlZFN0eWxlKCkpOwogICAgICAgICBpZiAoIWV2YWx1YXRvci5ldmFsKE1lZGlhUXVlcnlT
ZXQ6OmNyZWF0ZUFsbG93aW5nRGVzY3JpcHRpb25TeW50YXgoc291cmNlLm1lZGlhKCkpLnB0cigp
KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAKKwogICAgICAgICBmbG9hdCBzb3Vy
Y2VTaXplID0gcGFyc2VTaXplc0F0dHJpYnV0ZShzb3VyY2UuZmFzdEdldEF0dHJpYnV0ZShzaXpl
c0F0dHIpLnN0cmluZygpLCBkb2N1bWVudCgpLnJlbmRlclZpZXcoKSwgZG9jdW1lbnQoKS5mcmFt
ZSgpKTsKICAgICAgICAgSW1hZ2VDYW5kaWRhdGUgY2FuZGlkYXRlID0gYmVzdEZpdFNvdXJjZUZv
ckltYWdlQXR0cmlidXRlcyhkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCksIG51bGxBdG9t
LCBzb3VyY2UuZmFzdEdldEF0dHJpYnV0ZShzcmNzZXRBdHRyKSwgc291cmNlU2l6ZSk7CiAgICAg
ICAgIGlmICghY2FuZGlkYXRlLmlzRW1wdHkoKSkKQEAgLTI4OSwyMiArMjg4LDI3IEBAIHZvaWQg
SFRNTEltYWdlRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCkKIAogTm9kZTo6SW5zZXJ0aW9u
Tm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MSW1hZ2VFbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFp
bmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQpCiB7Ci0gICAgaWYgKCFtX2Zvcm0pIHsgLy8gbV9mb3Jt
IGNhbiBiZSBub24tbnVsbCBpZiBpdCB3YXMgc2V0IGluIGNvbnN0cnVjdG9yLgotICAgICAgICBt
X2Zvcm0gPSBIVE1MRm9ybUVsZW1lbnQ6OmZpbmRDbG9zZXN0Rm9ybUFuY2VzdG9yKCp0aGlzKTsK
LSAgICAgICAgaWYgKG1fZm9ybSkKLSAgICAgICAgICAgIG1fZm9ybS0+cmVnaXN0ZXJJbWdFbGVt
ZW50KHRoaXMpOworICAgIGlmIChtX2Zvcm1TZXRCeVBhcnNlcikgeworICAgICAgICBtX2Zvcm0g
PSBtX2Zvcm1TZXRCeVBhcnNlcjsKKyAgICAgICAgbV9mb3JtU2V0QnlQYXJzZXIgPSBudWxscHRy
OwogICAgIH0KIAorICAgIGlmICghbV9mb3JtKQorICAgICAgICBtX2Zvcm0gPSBIVE1MRm9ybUVs
ZW1lbnQ6OmZpbmRDbG9zZXN0Rm9ybUFuY2VzdG9yKCp0aGlzKTsKKworICAgIGlmIChtX2Zvcm0p
CisgICAgICAgIG1fZm9ybS0+cmVnaXN0ZXJJbWdFbGVtZW50KHRoaXMpOworCiAgICAgLy8gSW5z
ZXJ0IG5lZWRzIHRvIGNvbXBsZXRlIGZpcnN0LCBiZWZvcmUgd2Ugc3RhcnQgdXBkYXRpbmcgdGhl
IGxvYWRlci4gTG9hZGVyIGRpc3BhdGNoZXMgZXZlbnRzIHdoaWNoIGNvdWxkIHJlc3VsdAogICAg
IC8vIGluIGNhbGxiYWNrcyBiYWNrIHRvIHRoaXMgbm9kZS4KICAgICBOb2RlOjpJbnNlcnRpb25O
b3RpZmljYXRpb25SZXF1ZXN0IGluc2VydE5vdGlmaWNhdGlvblJlcXVlc3QgPSBIVE1MRWxlbWVu
dDo6aW5zZXJ0ZWRJbnRvKGluc2VydGlvblBvaW50KTsKIAogICAgIGlmIChpbnNlcnRpb25Qb2lu
dC5pbkRvY3VtZW50KCkgJiYgIW1fbG93ZXJjYXNlZFVzZW1hcC5pc051bGwoKSkKICAgICAgICAg
ZG9jdW1lbnQoKS5hZGRJbWFnZUVsZW1lbnRCeUxvd2VyY2FzZWRVc2VtYXAoKm1fbG93ZXJjYXNl
ZFVzZW1hcC5pbXBsKCksICp0aGlzKTsKLSAgICAKKwogICAgIGlmIChpczxIVE1MUGljdHVyZUVs
ZW1lbnQ+KHBhcmVudE5vZGUoKSkpCiAgICAgICAgIHNlbGVjdEltYWdlU291cmNlKCk7Ci0gICAg
CisKICAgICAvLyBJZiB3ZSBoYXZlIGJlZW4gaW5zZXJ0ZWQgZnJvbSBhIHJlbmRlcmVyLWxlc3Mg
ZG9jdW1lbnQsCiAgICAgLy8gb3VyIGxvYWRlciBtYXkgaGF2ZSBub3QgZmV0Y2hlZCB0aGUgaW1h
Z2UsIHNvIGRvIGl0IG5vdy4KICAgICBpZiAoaW5zZXJ0aW9uUG9pbnQuaW5Eb2N1bWVudCgpICYm
ICFtX2ltYWdlTG9hZGVyLmltYWdlKCkpCkBAIC0zMjEsNyArMzI1LDcgQEAgdm9pZCBIVE1MSW1h
Z2VFbGVtZW50OjpyZW1vdmVkRnJvbShDb250YWluZXJOb2RlJiBpbnNlcnRpb25Qb2ludCkKICAg
ICBpZiAoaW5zZXJ0aW9uUG9pbnQuaW5Eb2N1bWVudCgpICYmICFtX2xvd2VyY2FzZWRVc2VtYXAu
aXNOdWxsKCkpCiAgICAgICAgIGRvY3VtZW50KCkucmVtb3ZlSW1hZ2VFbGVtZW50QnlMb3dlcmNh
c2VkVXNlbWFwKCptX2xvd2VyY2FzZWRVc2VtYXAuaW1wbCgpLCAqdGhpcyk7CiAKLSAgICBtX2Zv
cm0gPSAwOworICAgIG1fZm9ybSA9IG51bGxwdHI7CiAgICAgSFRNTEVsZW1lbnQ6OnJlbW92ZWRG
cm9tKGluc2VydGlvblBvaW50KTsKIH0KIApAQCAtNTE4LDcgKzUyMiw3IEBAIGJvb2wgSFRNTElt
YWdlRWxlbWVudDo6aXNTZXJ2ZXJNYXAoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHVzZW1hcCA9IGZhc3RHZXRBdHRyaWJ1dGUodXNlbWFw
QXR0cik7Ci0gICAgCisKICAgICAvLyBJZiB0aGUgdXNlbWFwIGF0dHJpYnV0ZSBzdGFydHMgd2l0
aCAnIycsIGl0IHJlZmVycyB0byBhIG1hcCBlbGVtZW50IGluIHRoZSBkb2N1bWVudC4KICAgICBp
ZiAodXNlbWFwLnN0cmluZygpWzBdID09ICcjJykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCA4MTc0NWQyNGFiNzNmMDk1MWZh
ZDZhYzc5MjQzMzYzMTVmMmI2ZjY3Li4xOTllOGMwODMzNmY1MDJjNWNkMDQwMGMwYjAwNWY0NGUw
ZjhjNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtMTI2LDYg
KzEyNiw3IEBAIHByaXZhdGU6CiAKICAgICBIVE1MSW1hZ2VMb2FkZXIgbV9pbWFnZUxvYWRlcjsK
ICAgICBIVE1MRm9ybUVsZW1lbnQqIG1fZm9ybTsKKyAgICBIVE1MRm9ybUVsZW1lbnQqIG1fZm9y
bVNldEJ5UGFyc2VyOwogICAgIENvbXBvc2l0ZU9wZXJhdG9yIG1fY29tcG9zaXRlT3BlcmF0b3I7
CiAgICAgQXRvbWljU3RyaW5nIG1fYmVzdEZpdEltYWdlVVJMOwogICAgIEF0b21pY1N0cmluZyBt
X2N1cnJlbnRTcmM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCmlu
ZGV4IGRkM2NhMzQzNWZhYzgyMGQwZDE4MDllMmZkMTIxOGJmYmRkMGI2YzcuLmFiYTAwMWI5Y2Vl
MTgwZDE5NjUxZjc5ZThlODBkM2MxYzg0ZTM1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9iamVjdEVsZW1lbnQuY3BwCkBAIC02NSwxMSArNjUsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAogaW5saW5lIEhUTUxPYmplY3RFbGVtZW50OjpIVE1MT2JqZWN0RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3Jt
RWxlbWVudCogZm9ybSwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiAgICAgOiBIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBjcmVhdGVkQnlQYXJzZXIpCisgICAgLCBGb3Jt
QXNzb2NpYXRlZEVsZW1lbnQoZm9ybSkKICAgICAsIG1fZG9jTmFtZWRJdGVtKHRydWUpCiAgICAg
LCBtX3VzZUZhbGxiYWNrQ29udGVudChmYWxzZSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShv
YmplY3RUYWcpKTsKLSAgICBzZXRGb3JtKGZvcm0pOwogfQogCiBpbmxpbmUgSFRNTE9iamVjdEVs
ZW1lbnQ6On5IVE1MT2JqZWN0RWxlbWVudCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCBiYjZlMzA0MmRkOWU1MTFlOTc5NWY5ZjEzMTEyOThhZGI4OGMxMWFlLi42Y2E4ZGU0OWY3
YjQ1OTEyMDg5MTk4YmNiNzllOTRmM2U4YzUwYzcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNS0xMi0wOSAgS2VpdGggUm9sbGluICA8a3JvbGxp
bkBhcHBsZS5jb20+CisKKyAgICAgICAgZm9ybS5lbGVtZW50cyBzaG91bGQgcmVmbGVjdCB0aGUg
ZWxlbWVudCBvcmRlcmluZyBhZnRlciB0aGUgSFRNTCB0cmVlIGJ1aWxkZXIgYWxnb3JpdGhtCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg4NzAKKyAg
ICAgICAgcmRhcjovL3Byb2JsZW0vMjI1ODk4NzkKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9z
dWtlIE5pd2EuCisKKyAgICAgICAgUmViYXNlbGluZSBleGlzdGluZyB0ZXN0LgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1mb3JtLWVsZW1l
bnQvZm9ybS1lbGVtZW50cy1uYW1lZGl0ZW0tMDItZXhwZWN0ZWQudHh0OgorCiAyMDE1LTEyLTAy
ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFzZWxp
bmUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9pbnRlcmZhY2VzLmh0
bWwgYWZ0ZXIgcjE5Mjk1MwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtZm9ybS1lbGVtZW50L2Zv
cm0tZWxlbWVudHMtbmFtZWRpdGVtLTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWZvcm0t
ZWxlbWVudC9mb3JtLWVsZW1lbnRzLW5hbWVkaXRlbS0wMi1leHBlY3RlZC50eHQKaW5kZXggOWFh
Mzc5MGE3OWY3YmFmZGQ4MzcyMTQ5NGEwMmIyYTZhMTQ3ZDFjYi4uMDllOGZjOGE3NGFjYTc0YzI5
MTA5ZGZjYmJhZDI5NzU5ODQ0MmM3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtZm9ybS1lbGVt
ZW50L2Zvcm0tZWxlbWVudHMtbmFtZWRpdGVtLTAyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1z
L3RoZS1mb3JtLWVsZW1lbnQvZm9ybS1lbGVtZW50cy1uYW1lZGl0ZW0tMDItZXhwZWN0ZWQudHh0
CkBAIC0xLDUgKzEsNSBAQAogCiAJCiAKLUZBSUwgZm9ybS5lbGVtZW50cyBzaG91bGQgd29yayBj
b3JyZWN0bHkgaW4gdGhlIGZhY2Ugb2YgdGFibGUgc3ludGF4IGVycm9ycyBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiBwcm9wZXJ0eSAwLCBleHBlY3RlZCBFbGVtZW50IG5vZGUgPGlucHV0IHR5cGU9InJh
ZGlvIiBuYW1lPSJyYWRpbzAiIGlkPSJyMCIgdmFsdWU9IjAiPjwvaW5wdXQ+IGJ1dCBnb3QgRWxl
bWVudCBub2RlIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icmFkaW8xIiBpZD0icjEiIHZhbHVl
PSIxIj48L2lucHV0PgorUEFTUyBmb3JtLmVsZW1lbnRzIHNob3VsZCB3b3JrIGNvcnJlY3RseSBp
biB0aGUgZmFjZSBvZiB0YWJsZSBzeW50YXggZXJyb3JzIAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>