<?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>177493</bug_id>
          
          <creation_ts>2017-09-26 10:52:52 -0700</creation_ts>
          <short_desc>Extract out combined text query into a member function</short_desc>
          <delta_ts>2017-09-27 12:15:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>175784</blocked>
    
    <blocked>177495</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>hyatt</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1352742</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-26 10:52:52 -0700</bug_when>
    <thetext>Extract out combined text query into a member function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352753</commentid>
    <comment_count>1</comment_count>
      <attachid>321844</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-26 11:09:17 -0700</bug_when>
    <thetext>Created attachment 321844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352763</commentid>
    <comment_count>2</comment_count>
      <attachid>321848</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-26 11:18:51 -0700</bug_when>
    <thetext>Created attachment 321848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352794</commentid>
    <comment_count>3</comment_count>
      <attachid>321848</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-09-26 12:56:20 -0700</bug_when>
    <thetext>Comment on attachment 321848
Patch

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

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1117
&gt; +    return lineStyle().hasTextCombine() &amp;&amp; is&lt;RenderCombineText&gt;(renderer()) &amp;&amp; downcast&lt;RenderCombineText&gt;(renderer()).isCombined() ? &amp;downcast&lt;RenderCombineText&gt;(renderer()) : nullptr;

Not sure why we check both the style and the type of the renderer here. If the style has text combine, the renderer is supposed to be RenderCombineText (and vice versa). Also do you mind checking if fontToUse() could take advantage of this change -it&apos;s a static function though).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352876</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-26 15:27:28 -0700</bug_when>
    <thetext>(In reply to zalan from comment #3)
&gt; Comment on attachment 321848 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=321848&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/InlineTextBox.cpp:1117
&gt; &gt; +    return lineStyle().hasTextCombine() &amp;&amp; is&lt;RenderCombineText&gt;(renderer()) &amp;&amp; downcast&lt;RenderCombineText&gt;(renderer()).isCombined() ? &amp;downcast&lt;RenderCombineText&gt;(renderer()) : nullptr;
&gt; 
&gt; Not sure why we check both the style and the type of the renderer here. If
&gt; the style has text combine, the renderer is supposed to be RenderCombineText
&gt; (and vice versa). 

This was strange to me as well when I was performing the refactor. This patch is just moving code. I hope you do not mind that defer this investigation to another bug.

&gt; Also do you mind checking if fontToUse() could take advantage of this change -it&apos;s a static function though).

Yes, I plan to update fontToUse() to take advantage of this change. I plan to do this in bug #177495.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352877</commentid>
    <comment_count>5</comment_count>
      <attachid>321848</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-26 15:28:48 -0700</bug_when>
    <thetext>Comment on attachment 321848
Patch

Clearing flags on attachment: 321848

Committed r222528: &lt;http://trac.webkit.org/changeset/222528&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352878</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-09-26 15:28:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353238</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:15:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/34692884&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321844</attachid>
            <date>2017-09-26 11:09:17 -0700</date>
            <delta_ts>2017-09-26 11:18:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177493-20170926110917.patch</filename>
            <type>text/plain</type>
            <size>16255</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRiYTY3NjFlMmMzMzk3
YjgxMzE5ZmMxODc0MjY4ZDI0YWYwMTAyYi4uNTI0YzZlOGQzZmM5ZGY4NGNjYjc1OGUzZjcwOWEx
MTFhZjE5MmI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDE3LTA5LTI2ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBFeHRyYWN0IG91dCBjb21i
aW5lZCB0ZXh0IHF1ZXJ5IGludG8gYSBtZW1iZXIgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzQ5MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvd2FyZHMgcmVtb3ZpbmcgZHVwbGljYXRp
b24gdGhyb3VnaG91dCB0aGUgcGFpbnQgY29kZSBleHRyYWN0IHRoZQorICAgICAgICBxdWVyeWlu
ZyBmb3IgdGhlIGNvbWJpbmVkIHRleHQgb2YgYW4gaW5saW5lIHRleHQgYm94IGludG8gYSBtZW1i
ZXIKKyAgICAgICAgZnVuY3Rpb24uCisKKyAgICAgICAgRm9yIGEgc2ltaWxhciByZWFzb24sIHVw
ZGF0ZSBmdW5jdGlvbnMgdG8gcXVlcnkgbGluZVN0eWxlKCkgaW5zdGVhZAorICAgICAgICBvZiBw
YXNzaW5nIHRoaXMgaW5mb3JtYXRpb24gYW4gYXJndW1lbnQuCisKKyAgICAgICAgTm8gZnVuY3Rp
b25hbGl0eSBjaGFuZ2VkLiBTbywgbm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcmVuZGVyaW5n
L0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFp
bnQpOiBFeHRyYWN0IGxvZ2ljIHRvIHF1ZXJ5IGZvciBjb21iaW5lZCB0ZXh0CisgICAgICAgIGZy
b20gaGVyZSB0byBJbmxpbmVUZXh0Qm94Ojpjb21iaW5lZFRleHQoKSBhbmQgbW9kaWZ5IGNvZGUg
dG8gY2FsbCB0aGlzCisgICAgICAgIG1lbWJlciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OklubGluZVRleHRCb3g6OnBhaW50VGV4dFN1YnJhbmdlQmFja2dyb3VuZCk6IFF1ZXJ5IGZvciBs
aW5lIHN0eWxlCisgICAgICAgIGluc3RlYWQgb2YgdGFraW5nIGl0IGFzIGFuIGFyZ3VtZW50Lgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnRDb21wb3NpdGlvbkJhY2tncm91
bmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50VGV4dE1h
dGNoTWFya2VyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWlu
dERlY29yYXRpb24pOiBVcGRhdGUgY29kZSB0byBxdWVyeSBjb21iaW5lZFRleHQoKQorICAgICAg
ICBpbnN0ZWFkIG9mIHRha2luZyBSZW5kZXJDb21iaW5lVGV4dCBhcyBhbiBhcmd1bWVudC4gV2hp
bGUgSSBhbSBoZXJlIG1ha2UgdXNlIG9mCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgdG8gc2F2ZSBhbmQgcmVzdG9yZSB0aGUgZ3JhcGhpY3MgY29udGV4dCBzdGF0ZSB3aGVuCisg
ICAgICAgIHdlIGhhdmUgYSBub24tZW1wdHkgY2xpcCByZWN0LgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1hcmtlcik6IFF1ZXJ5IGZvciBsaW5lIHN0eWxl
IGluc3RlYWQgb2YKKyAgICAgICAgdGFraW5nIGl0IGFzIGFuIGFyZ3VtZW50LgorICAgICAgICAo
V2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1hcmtlcnMpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbWJpbmVkVGV4dCBjb25zdCk6IEFkZGVk
OyBleHRyYWN0ZWQgZnJvbSBJbmxpbmVUZXh0Qm94OjpwYWludCgpLgorICAgICAgICAqIHJlbmRl
cmluZy9JbmxpbmVUZXh0Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludGVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6c2V0RW1waGFzaXNNYXJrKTogTW9kaWZp
ZWQgdG8gdGFrZSBhIGNvbnN0IFJlbmRlckNvbWJpbmVUZXh0KgorICAgICAgICBhcyBvcHBvc2Vk
IHRvIGEgcG9pbnRlciB0byBhIG5vbi1jb25zdCBSZW5kZXJDb21iaW5lVGV4dC4KKworMjAxNy0w
OS0yNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKICAgICAgICAgQ2xlYW51
cDogQ29uc29saWRhdGUgbm9uLXNlbGVjdGlvbiBiYWNrZ3JvdW5kIHBhaW50aW5nIGNvZGUgZm9y
IHRleHQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NzQ5MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXgg
NWEzMzc5NDYzYzJlMWE5MjBlODMwMjJmNTNhNzJiY2JlYzg0ODlhMS4uMjZmMzVjNTU5OGZiYTc3
YzU4ODQyNzcxODRhYTg1ZGNlMDAzZmI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcApAQCAtNDYxLDcgKzQ2MSw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6
cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNl
dCwKICAgICBib3hPcmlnaW4ubW92ZUJ5KGxvY2FsUGFpbnRPZmZzZXQpOwogICAgIEZsb2F0UmVj
dCBib3hSZWN0KGJveE9yaWdpbiwgRmxvYXRTaXplKGxvZ2ljYWxXaWR0aCgpLCBsb2dpY2FsSGVp
Z2h0KCkpKTsKIAotICAgIFJlbmRlckNvbWJpbmVUZXh0KiBjb21iaW5lZFRleHQgPSBsaW5lU3R5
bGUuaGFzVGV4dENvbWJpbmUoKSAmJiBpczxSZW5kZXJDb21iaW5lVGV4dD4ocmVuZGVyZXIoKSkg
JiYgZG93bmNhc3Q8UmVuZGVyQ29tYmluZVRleHQ+KHJlbmRlcmVyKCkpLmlzQ29tYmluZWQoKSA/
ICZkb3duY2FzdDxSZW5kZXJDb21iaW5lVGV4dD4ocmVuZGVyZXIoKSkgOiBudWxscHRyOworICAg
IGF1dG8qIGNvbWJpbmVkVGV4dCA9IHRoaXMtPmNvbWJpbmVkVGV4dCgpOwogCiAgICAgYm9vbCBz
aG91bGRSb3RhdGUgPSAhaXNIb3Jpem9udGFsKCkgJiYgIWNvbWJpbmVkVGV4dDsKICAgICBpZiAo
c2hvdWxkUm90YXRlKQpAQCAtNDg4LDkgKzQ4OCw5IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFp
bnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwK
ICAgICAvLyBhbmQgY29tcG9zaXRpb24gdW5kZXJsaW5lcy4KICAgICBpZiAocGFpbnRJbmZvLnBo
YXNlICE9IFBhaW50UGhhc2VTZWxlY3Rpb24gJiYgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhh
c2VUZXh0Q2xpcCAmJiAhaXNQcmludGluZykgewogICAgICAgICBpZiAoY29udGFpbnNDb21wb3Np
dGlvbiAmJiAhdXNlQ3VzdG9tVW5kZXJsaW5lcykKLSAgICAgICAgICAgIHBhaW50Q29tcG9zaXRp
b25CYWNrZ3JvdW5kKGNvbnRleHQsIGJveE9yaWdpbiwgbGluZVN0eWxlLCBmb250KTsKKyAgICAg
ICAgICAgIHBhaW50Q29tcG9zaXRpb25CYWNrZ3JvdW5kKGNvbnRleHQsIGJveE9yaWdpbiwgZm9u
dCk7CiAKLSAgICAgICAgcGFpbnREb2N1bWVudE1hcmtlcnMoY29udGV4dCwgYm94T3JpZ2luLCBs
aW5lU3R5bGUsIGZvbnQsIHRydWUpOworICAgICAgICBwYWludERvY3VtZW50TWFya2Vycyhjb250
ZXh0LCBib3hPcmlnaW4sIGZvbnQsIHRydWUpOwogCiAgICAgICAgIGlmIChoYXZlU2VsZWN0aW9u
ICYmICF1c2VDdXN0b21VbmRlcmxpbmVzKQogICAgICAgICAgICAgcGFpbnRTZWxlY3Rpb24oY29u
dGV4dCwgYm94T3JpZ2luLCBsaW5lU3R5bGUsIGZvbnQsIHNlbGVjdGlvblBhaW50U3R5bGUuZmls
bENvbG9yKTsKQEAgLTYwMCwxMSArNjAwLDExIEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwKICAg
ICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvblNlbGVjdGlvbkNsaXBPdXRSZWN0LnNldFdpZHRo
KGxvZ2ljYWxTZWxlY3Rpb25XaWR0aCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAg
ICAgcGFpbnREZWNvcmF0aW9uKGNvbnRleHQsIGZvbnQsIGNvbWJpbmVkVGV4dCwgdGV4dFJ1biwg
dGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dERlY29yYXRpb25zLCB0ZXh0UGFpbnRTdHlsZSwgdGV4
dFNoYWRvdywgdGV4dERlY29yYXRpb25TZWxlY3Rpb25DbGlwT3V0UmVjdCk7CisgICAgICAgIHBh
aW50RGVjb3JhdGlvbihjb250ZXh0LCBmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luLCBib3hSZWN0
LCB0ZXh0RGVjb3JhdGlvbnMsIHRleHRQYWludFN0eWxlLCB0ZXh0U2hhZG93LCB0ZXh0RGVjb3Jh
dGlvblNlbGVjdGlvbkNsaXBPdXRSZWN0KTsKICAgICB9CiAKICAgICBpZiAocGFpbnRJbmZvLnBo
YXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKSB7Ci0gICAgICAgIHBhaW50RG9jdW1lbnRNYXJr
ZXJzKGNvbnRleHQsIGJveE9yaWdpbiwgbGluZVN0eWxlLCBmb250LCBmYWxzZSk7CisgICAgICAg
IHBhaW50RG9jdW1lbnRNYXJrZXJzKGNvbnRleHQsIGJveE9yaWdpbiwgZm9udCwgZmFsc2UpOwog
CiAgICAgICAgIGlmICh1c2VDdXN0b21VbmRlcmxpbmVzKSB7CiAgICAgICAgICAgICBjb25zdCBW
ZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbmU+JiB1bmRlcmxpbmVzID0gcmVuZGVyZXIoKS5mcmFt
ZSgpLmVkaXRvcigpLmN1c3RvbUNvbXBvc2l0aW9uVW5kZXJsaW5lcygpOwpAQCAtNzE1LDcgKzcx
NSw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb24oR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBiCiAjZW5kaWYKIH0KIAotaW5saW5lIHZvaWQg
SW5saW5lVGV4dEJveDo6cGFpbnRUZXh0U3VicmFuZ2VCYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBDb2xvciYgY29sb3IsIHVu
c2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQpCitpbmxpbmUgdm9pZCBJbmxp
bmVUZXh0Qm94OjpwYWludFRleHRTdWJyYW5nZUJhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IEZvbnRDYXNjYWRlJiBm
b250LCBjb25zdCBDb2xvciYgY29sb3IsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBl
bmRPZmZzZXQpCiB7CiAgICAgc3RhcnRPZmZzZXQgPSBjbGFtcGVkT2Zmc2V0KHN0YXJ0T2Zmc2V0
KTsKICAgICBlbmRPZmZzZXQgPSBjbGFtcGVkT2Zmc2V0KGVuZE9mZnNldCk7CkBAIC03MzEsMjIg
KzczMSwyMiBAQCBpbmxpbmUgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludFRleHRTdWJyYW5nZUJh
Y2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LAogICAgIExheW91dFJlY3Qgc2VsZWN0
aW9uUmVjdCA9IExheW91dFJlY3QoYm94T3JpZ2luLngoKSwgYm94T3JpZ2luLnkoKSAtIGRlbHRh
WSwgMCwgc2VsZWN0aW9uSGVpZ2h0KCkpOwogCiAgICAgLy8gRklYTUU6IEFkanVzdCB0ZXh0IHJ1
biBmb3IgY29tYmluZWQgdGV4dCBhbmQgaHlwaGVuYXRpb24uCi0gICAgVGV4dFJ1biB0ZXh0UnVu
ID0gY29uc3RydWN0VGV4dFJ1bihzdHlsZSk7CisgICAgVGV4dFJ1biB0ZXh0UnVuID0gY29uc3Ry
dWN0VGV4dFJ1bihsaW5lU3R5bGUoKSk7CiAgICAgZm9udC5hZGp1c3RTZWxlY3Rpb25SZWN0Rm9y
VGV4dCh0ZXh0UnVuLCBzZWxlY3Rpb25SZWN0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKICAg
ICBjb250ZXh0LmZpbGxSZWN0KHNuYXBSZWN0VG9EZXZpY2VQaXhlbHNXaXRoV3JpdGluZ0RpcmVj
dGlvbihzZWxlY3Rpb25SZWN0LCByZW5kZXJlcigpLmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0
b3IoKSwgdGV4dFJ1bi5sdHIoKSksIGNvbG9yKTsKIH0KIAotdm9pZCBJbmxpbmVUZXh0Qm94Ojpw
YWludENvbXBvc2l0aW9uQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBG
b250Q2FzY2FkZSYgZm9udCkKK3ZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRDb21wb3NpdGlvbkJh
Y2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hP
cmlnaW4sIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotICAgIHBhaW50VGV4dFN1YnJhbmdl
QmFja2dyb3VuZChjb250ZXh0LCBib3hPcmlnaW4sIHN0eWxlLCBmb250LCByZW5kZXJlcigpLmZy
YW1lKCkuZWRpdG9yKCkuY29tcG9zaXRpb25TdGFydCgpLCByZW5kZXJlcigpLmZyYW1lKCkuZWRp
dG9yKCkuY29tcG9zaXRpb25FbmQoKSwgQ29sb3I6OmNvbXBvc2l0aW9uRmlsbCk7CisgICAgcGFp
bnRUZXh0U3VicmFuZ2VCYWNrZ3JvdW5kKGNvbnRleHQsIGJveE9yaWdpbiwgZm9udCwgcmVuZGVy
ZXIoKS5mcmFtZSgpLmVkaXRvcigpLmNvbXBvc2l0aW9uU3RhcnQoKSwgcmVuZGVyZXIoKS5mcmFt
ZSgpLmVkaXRvcigpLmNvbXBvc2l0aW9uRW5kKCksIENvbG9yOjpjb21wb3NpdGlvbkZpbGwpOwog
fQogCi12b2lkIElubGluZVRleHRCb3g6OnBhaW50VGV4dE1hdGNoTWFya2VyKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBNYXJrZXJTdWJyYW5n
ZSYgc3VicmFuZ2UsIGJvb2wgaXNBY3RpdmVNYXRjaCkKK3ZvaWQgSW5saW5lVGV4dEJveDo6cGFp
bnRUZXh0TWF0Y2hNYXJrZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBv
aW50JiBib3hPcmlnaW4sIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBNYXJrZXJTdWJy
YW5nZSYgc3VicmFuZ2UsIGJvb2wgaXNBY3RpdmVNYXRjaCkKIHsKICAgICBpZiAoIXJlbmRlcmVy
KCkuZnJhbWUoKS5lZGl0b3IoKS5tYXJrZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVkKCkpCiAg
ICAgICAgIHJldHVybjsKICAgICBhdXRvIGhpZ2hsaWdodENvbG9yID0gaXNBY3RpdmVNYXRjaCA/
IHJlbmRlcmVyKCkudGhlbWUoKS5wbGF0Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cigpIDogcmVuZGVyZXIoKS50aGVtZSgpLnBsYXRmb3JtSW5hY3RpdmVUZXh0U2VhcmNoSGlnaGxp
Z2h0Q29sb3IoKTsKLSAgICBwYWludFRleHRTdWJyYW5nZUJhY2tncm91bmQoY29udGV4dCwgYm94
T3JpZ2luLCBzdHlsZSwgZm9udCwgaGlnaGxpZ2h0Q29sb3IsIHN1YnJhbmdlLnN0YXJ0T2Zmc2V0
LCBzdWJyYW5nZS5lbmRPZmZzZXQpOworICAgIHBhaW50VGV4dFN1YnJhbmdlQmFja2dyb3VuZChj
b250ZXh0LCBib3hPcmlnaW4sIGZvbnQsIGhpZ2hsaWdodENvbG9yLCBzdWJyYW5nZS5zdGFydE9m
ZnNldCwgc3VicmFuZ2UuZW5kT2Zmc2V0KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIG1pcnJv
clJUTFNlZ21lbnQoZmxvYXQgbG9naWNhbFdpZHRoLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiwg
ZmxvYXQmIHN0YXJ0LCBmbG9hdCB3aWR0aCkKQEAgLTc1NiwxNCArNzU2LDE2IEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBtaXJyb3JSVExTZWdtZW50KGZsb2F0IGxvZ2ljYWxXaWR0aCwgVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24sCiAgICAgc3RhcnQgPSBsb2dpY2FsV2lkdGggLSB3aWR0aCAtIHN0YXJ0
OwogfQogCi12b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBSZW5kZXJDb21iaW5lVGV4dCog
Y29tYmluZWRUZXh0LCBjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25zdCBGbG9hdFBvaW50JiB0
ZXh0T3JpZ2luLAordm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgY29uc3QgVGV4dFJ1biYg
dGV4dFJ1biwgY29uc3QgRmxvYXRQb2ludCYgdGV4dE9yaWdpbiwKICAgICBjb25zdCBGbG9hdFJl
Y3QmIGJveFJlY3QsIFRleHREZWNvcmF0aW9uIGRlY29yYXRpb24sIFRleHRQYWludFN0eWxlIHRl
eHRQYWludFN0eWxlLCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIGNvbnN0IEZsb2F0UmVjdCYg
Y2xpcE91dFJlY3QpCiB7CiAgICAgaWYgKG1fdHJ1bmNhdGlvbiA9PSBjRnVsbFRydW5jYXRpb24p
CiAgICAgICAgIHJldHVybjsKIAogICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCB0
ZXh0UGFpbnRTdHlsZSk7Ci0gICAgaWYgKGNvbWJpbmVkVGV4dCkKKworICAgIGJvb2wgaXNDb21i
aW5lZFRleHQgPSBjb21iaW5lZFRleHQoKTsKKyAgICBpZiAoaXNDb21iaW5lZFRleHQpCiAgICAg
ICAgIGNvbnRleHQuY29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENsb2Nrd2lzZSkpOwogCiAg
ICAgZmxvYXQgc3RhcnQgPSAwOwpAQCAtNzg0LDIxICs3ODYsMjAgQEAgdm9pZCBJbmxpbmVUZXh0
Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250
Q2FzY2FkZSYKICAgICBGbG9hdFBvaW50IGxvY2FsT3JpZ2luID0gYm94UmVjdC5sb2NhdGlvbigp
OwogICAgIGxvY2FsT3JpZ2luLm1vdmUoc3RhcnQsIDApOwogCi0gICAgaWYgKCFjbGlwT3V0UmVj
dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29udGV4dC5zYXZlKCk7Ci0gICAgICAgIGNvbnRleHQu
Y2xpcE91dChjbGlwT3V0UmVjdCk7CisgICAgeworICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIgeyBjb250ZXh0LCBmYWxzZSB9OworICAgICAgICBpZiAoIWNsaXBP
dXRSZWN0LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgc3RhdGVTYXZlci5zYXZlKCk7CisgICAg
ICAgICAgICBjb250ZXh0LmNsaXBPdXQoY2xpcE91dFJlY3QpOworICAgICAgICB9CisgICAgICAg
IGRlY29yYXRpb25QYWludGVyLnBhaW50VGV4dERlY29yYXRpb24odGV4dFJ1biwgdGV4dE9yaWdp
biwgbG9jYWxPcmlnaW4pOwogICAgIH0KIAotICAgIGRlY29yYXRpb25QYWludGVyLnBhaW50VGV4
dERlY29yYXRpb24odGV4dFJ1biwgdGV4dE9yaWdpbiwgbG9jYWxPcmlnaW4pOwotCi0gICAgaWYg
KCFjbGlwT3V0UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIGNvbnRleHQucmVzdG9yZSgpOwotCi0g
ICAgaWYgKGNvbWJpbmVkVGV4dCkKKyAgICBpZiAoaXNDb21iaW5lZFRleHQpCiAgICAgICAgIGNv
bnRleHQuY29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENvdW50ZXJjbG9ja3dpc2UpKTsKIH0K
IAotdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERvY3VtZW50TWFya2VyKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBNYXJrZXJTdWJyYW5nZSYg
c3VicmFuZ2UpCit2b2lkIElubGluZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJrZXIoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IEZv
bnRDYXNjYWRlJiBmb250LCBjb25zdCBNYXJrZXJTdWJyYW5nZSYgc3VicmFuZ2UpCiB7CiAgICAg
Ly8gTmV2ZXIgcHJpbnQgc3BlbGxpbmcvZ3JhbW1hciBtYXJrZXJzICg1MzI3ODg3KQogICAgIGlm
IChyZW5kZXJlcigpLmRvY3VtZW50KCkucHJpbnRpbmcoKSkKQEAgLTgzMSw3ICs4MzIsNyBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFBvaQogICAgICAgICBpbnQgZGVsdGFZID0gcmVuZGVyZXIoKS5z
dHlsZSgpLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSA/IHNlbGVjdGlvbkJvdHRvbSgpIC0g
bG9naWNhbEJvdHRvbSgpIDogbG9naWNhbFRvcCgpIC0gc2VsZWN0aW9uVG9wKCk7CiAgICAgICAg
IGludCBzZWxIZWlnaHQgPSBzZWxlY3Rpb25IZWlnaHQoKTsKICAgICAgICAgRmxvYXRQb2ludCBz
dGFydFBvaW50KGJveE9yaWdpbi54KCksIGJveE9yaWdpbi55KCkgLSBkZWx0YVkpOwotICAgICAg
ICBUZXh0UnVuIHJ1biA9IGNvbnN0cnVjdFRleHRSdW4oc3R5bGUpOworICAgICAgICBUZXh0UnVu
IHJ1biA9IGNvbnN0cnVjdFRleHRSdW4obGluZVN0eWxlKCkpOwogCiAgICAgICAgIExheW91dFJl
Y3Qgc2VsZWN0aW9uUmVjdCA9IExheW91dFJlY3Qoc3RhcnRQb2ludCwgRmxvYXRTaXplKDAsIHNl
bEhlaWdodCkpOwogICAgICAgICBmb250LmFkanVzdFNlbGVjdGlvblJlY3RGb3JUZXh0KHJ1biwg
c2VsZWN0aW9uUmVjdCwgc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pOwpAQCAtODgxLDcgKzg4
Miw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1hcmtlcihHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pCiAgICAgY29udGV4dC5kcmF3TGluZUZvckRv
Y3VtZW50TWFya2VyKEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIHN0YXJ0LCBib3hPcmlnaW4u
eSgpICsgdW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgsIGxpbmVTdHlsZUZvclN1YnJhbmdlVHlwZShz
dWJyYW5nZS50eXBlKSk7CiB9CiAKLXZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1h
cmtlcnMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmln
aW4sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRm9udENhc2NhZGUmIGZvbnQsIGJv
b2wgYmFja2dyb3VuZCkKK3ZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1hcmtlcnMo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNv
bnN0IEZvbnRDYXNjYWRlJiBmb250LCBib29sIGJhY2tncm91bmQpCiB7CiAgICAgaWYgKCFyZW5k
ZXJlcigpLnRleHROb2RlKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTk3NSw5ICs5NzYsOSBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJrZXJzKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRQbwogCiAgICAgZm9yIChhdXRvJiBzdWJyYW5nZSA6IHN1YmRp
dmlkZShzdWJyYW5nZXMsIE92ZXJsYXBTdHJhdGVneTo6RnJvbnRtb3N0KSkgewogICAgICAgICBp
ZiAoc3VicmFuZ2UudHlwZSA9PSBNYXJrZXJTdWJyYW5nZTo6VGV4dE1hdGNoKQotICAgICAgICAg
ICAgcGFpbnRUZXh0TWF0Y2hNYXJrZXIoY29udGV4dCwgYm94T3JpZ2luLCBzdHlsZSwgZm9udCwg
c3VicmFuZ2UsIHN1YnJhbmdlLm1hcmtlci0+aXNBY3RpdmVNYXRjaCgpKTsKKyAgICAgICAgICAg
IHBhaW50VGV4dE1hdGNoTWFya2VyKGNvbnRleHQsIGJveE9yaWdpbiwgZm9udCwgc3VicmFuZ2Us
IHN1YnJhbmdlLm1hcmtlci0+aXNBY3RpdmVNYXRjaCgpKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgcGFpbnREb2N1bWVudE1hcmtlcihjb250ZXh0LCBib3hPcmlnaW4sIHN0eWxlLCBmb250
LCBzdWJyYW5nZSk7CisgICAgICAgICAgICBwYWludERvY3VtZW50TWFya2VyKGNvbnRleHQsIGJv
eE9yaWdpbiwgZm9udCwgc3VicmFuZ2UpOwogICAgIH0KIH0KIApAQCAtMTExMSw2ICsxMTEyLDEx
IEBAIFRleHRSdW4gSW5saW5lVGV4dEJveDo6Y29uc3RydWN0VGV4dFJ1bihjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUsIFN0cmluZ1ZpZXcgc3RyCiAgICAgcmV0dXJuIHJ1bjsKIH0KIAorY29uc3Qg
UmVuZGVyQ29tYmluZVRleHQqIElubGluZVRleHRCb3g6OmNvbWJpbmVkVGV4dCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGxpbmVTdHlsZSgpLmhhc1RleHRDb21iaW5lKCkgJiYgaXM8UmVuZGVyQ29t
YmluZVRleHQ+KHJlbmRlcmVyKCkpICYmIGRvd25jYXN0PFJlbmRlckNvbWJpbmVUZXh0PihyZW5k
ZXJlcigpKS5pc0NvbWJpbmVkKCkgPyAmZG93bmNhc3Q8UmVuZGVyQ29tYmluZVRleHQ+KHJlbmRl
cmVyKCkpIDogbnVsbHB0cjsKK30KKwogRXhwYW5zaW9uQmVoYXZpb3IgSW5saW5lVGV4dEJveDo6
ZXhwYW5zaW9uQmVoYXZpb3IoKSBjb25zdAogewogICAgIEV4cGFuc2lvbkJlaGF2aW9yIGxlYWRp
bmdCZWhhdmlvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCmluZGV4
IDc5NWEyMGI5NGRhMTI3ODBjZTkyZjk5MGY1YzgwNDE3MzM2MWM4ODQuLjhmNDMyMDhiYzY0NDU0
ODE1MWEwYThjMDg1NWZiY2I2ZWM2M2I3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guaApAQCAtMTU1LDE4ICsxNTUsMjAgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
ZmxvYXQgcG9zaXRpb25Gb3JPZmZzZXQodW5zaWduZWQgb2Zmc2V0KSBjb25zdDsKIAogcHJpdmF0
ZToKLSAgICB2b2lkIHBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGb250
Q2FzY2FkZSYsIFJlbmRlckNvbWJpbmVUZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0
UG9pbnQmIHRleHRPcmlnaW4sIGNvbnN0IEZsb2F0UmVjdCYgYm94UmVjdCwKKyAgICB2b2lkIHBh
aW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGb250Q2FzY2FkZSYsIGNvbnN0
IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiB0ZXh0T3JpZ2luLCBjb25zdCBGbG9hdFJlY3Qm
IGJveFJlY3QsCiAgICAgICAgIFRleHREZWNvcmF0aW9uLCBUZXh0UGFpbnRTdHlsZSwgY29uc3Qg
U2hhZG93RGF0YSosIGNvbnN0IEZsb2F0UmVjdCYgY2xpcE91dFJlY3QpOwogICAgIHZvaWQgcGFp
bnRTZWxlY3Rpb24oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2lu
LCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgY29uc3QgQ29sb3ImKTsK
IAotICAgIHZvaWQgcGFpbnREb2N1bWVudE1hcmtlcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udENhc2Nh
ZGUmLCBjb25zdCBNYXJrZXJTdWJyYW5nZSYpOwotICAgIHZvaWQgcGFpbnREb2N1bWVudE1hcmtl
cnMoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBS
ZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgYm9vbCBiYWNrZ3JvdW5kKTsKLSAgICB2
b2lkIHBhaW50VGV4dE1hdGNoTWFya2VyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9p
bnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250Q2FzY2FkZSYsIGNv
bnN0IE1hcmtlclN1YnJhbmdlJiwgYm9vbCBpc0FjdGl2ZU1hdGNoKTsKKyAgICB2b2lkIHBhaW50
RG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3Jp
Z2luLCBjb25zdCBGb250Q2FzY2FkZSYsIGNvbnN0IE1hcmtlclN1YnJhbmdlJik7CisgICAgdm9p
ZCBwYWludERvY3VtZW50TWFya2VycyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFBvaW50
JiBib3hPcmlnaW4sIGNvbnN0IEZvbnRDYXNjYWRlJiwgYm9vbCBiYWNrZ3JvdW5kKTsKKyAgICB2
b2lkIHBhaW50VGV4dE1hdGNoTWFya2VyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9p
bnQmIGJveE9yaWdpbiwgY29uc3QgRm9udENhc2NhZGUmLCBjb25zdCBNYXJrZXJTdWJyYW5nZSYs
IGJvb2wgaXNBY3RpdmVNYXRjaCk7CiAKLSAgICB2b2lkIHBhaW50Q29tcG9zaXRpb25CYWNrZ3Jv
dW5kKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgY29uc3Qg
UmVuZGVyU3R5bGUmLCBjb25zdCBGb250Q2FzY2FkZSYpOworICAgIHZvaWQgcGFpbnRDb21wb3Np
dGlvbkJhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3Jp
Z2luLCBjb25zdCBGb250Q2FzY2FkZSYpOwogICAgIHZvaWQgcGFpbnRDb21wb3NpdGlvblVuZGVy
bGluZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0
IENvbXBvc2l0aW9uVW5kZXJsaW5lJik7CiAKLSAgICB2b2lkIHBhaW50VGV4dFN1YnJhbmdlQmFj
a2dyb3VuZChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNv
bnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udENhc2NhZGUmLCBjb25zdCBDb2xvciYsIHVuc2ln
bmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQpOworICAgIHZvaWQgcGFpbnRUZXh0
U3VicmFuZ2VCYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9pbnQmIGJv
eE9yaWdpbiwgY29uc3QgRm9udENhc2NhZGUmLCBjb25zdCBDb2xvciYsIHVuc2lnbmVkIHN0YXJ0
T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQpOworCisgICAgY29uc3QgUmVuZGVyQ29tYmluZVRl
eHQqIGNvbWJpbmVkVGV4dCgpIGNvbnN0OwogCiAgICAgRXhwYW5zaW9uQmVoYXZpb3IgZXhwYW5z
aW9uQmVoYXZpb3IoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1RleHRQYWludGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIu
aAppbmRleCAzYjgxNDczY2M4MjkyOTM3ZmRjY2IwZjA4ZjliNDQ0OWY1YWUxMzA2Li5jOGE3YjM5
M2M2OWRhM2ViYzM0ZTNiZDUzZWM0ZmViODhiMjg0MWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dFBhaW50ZXIuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dElzSG9yaXpvbnRhbChib29sIGlzSG9yaXpvbnRhbCkgeyBtX3RleHRCb3hJc0hvcml6b250YWwg
PSBpc0hvcml6b250YWw7IH0KIAotICAgIHZvaWQgc2V0RW1waGFzaXNNYXJrKGNvbnN0IEF0b21p
Y1N0cmluZyYgbWFyaywgZmxvYXQgb2Zmc2V0LCBSZW5kZXJDb21iaW5lVGV4dCopOworICAgIHZv
aWQgc2V0RW1waGFzaXNNYXJrKGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgZmxvYXQgb2Zmc2V0
LCBjb25zdCBSZW5kZXJDb21iaW5lVGV4dCopOwogCiAgICAgdm9pZCBwYWludFJhbmdlKGNvbnN0
IFRleHRSdW4mLCBjb25zdCBGbG9hdFJlY3QmIGJveFJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHRl
eHRPcmlnaW4sIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpOwogICAgIHZvaWQgcGFpbnQo
Y29uc3QgVGV4dFJ1biYsIHVuc2lnbmVkIGxlbmd0aCwgY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0
LCBjb25zdCBGbG9hdFBvaW50JiB0ZXh0T3JpZ2luLApAQCAtODAsMTIgKzgwLDEyIEBAIHByaXZh
dGU6CiAgICAgY29uc3QgU2hhZG93RGF0YSogbV9zaGFkb3cgeyBudWxscHRyIH07CiAgICAgY29u
c3QgU2hhZG93RGF0YSogbV9zZWxlY3Rpb25TaGFkb3cgeyBudWxscHRyIH07CiAgICAgQXRvbWlj
U3RyaW5nIG1fZW1waGFzaXNNYXJrOwotICAgIFJlbmRlckNvbWJpbmVUZXh0KiBtX2NvbWJpbmVk
VGV4dCB7IG51bGxwdHIgfTsKKyAgICBjb25zdCBSZW5kZXJDb21iaW5lVGV4dCogbV9jb21iaW5l
ZFRleHQgeyBudWxscHRyIH07CiAgICAgZmxvYXQgbV9lbXBoYXNpc01hcmtPZmZzZXQgeyAwIH07
CiAgICAgYm9vbCBtX3RleHRCb3hJc0hvcml6b250YWwgeyB0cnVlIH07CiB9OwogCi1pbmxpbmUg
dm9pZCBUZXh0UGFpbnRlcjo6c2V0RW1waGFzaXNNYXJrKGNvbnN0IEF0b21pY1N0cmluZyYgbWFy
aywgZmxvYXQgb2Zmc2V0LCBSZW5kZXJDb21iaW5lVGV4dCogY29tYmluZWRUZXh0KQoraW5saW5l
IHZvaWQgVGV4dFBhaW50ZXI6OnNldEVtcGhhc2lzTWFyayhjb25zdCBBdG9taWNTdHJpbmcmIG1h
cmssIGZsb2F0IG9mZnNldCwgY29uc3QgUmVuZGVyQ29tYmluZVRleHQqIGNvbWJpbmVkVGV4dCkK
IHsKICAgICBtX2VtcGhhc2lzTWFyayA9IG1hcms7CiAgICAgbV9lbXBoYXNpc01hcmtPZmZzZXQg
PSBvZmZzZXQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321848</attachid>
            <date>2017-09-26 11:18:51 -0700</date>
            <delta_ts>2017-09-26 15:28:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177493-20170926111851.patch</filename>
            <type>text/plain</type>
            <size>16255</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRiYTY3NjFlMmMzMzk3
YjgxMzE5ZmMxODc0MjY4ZDI0YWYwMTAyYi4uNTI0YzZlOGQzZmM5ZGY4NGNjYjc1OGUzZjcwOWEx
MTFhZjE5MmI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDE3LTA5LTI2ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBFeHRyYWN0IG91dCBjb21i
aW5lZCB0ZXh0IHF1ZXJ5IGludG8gYSBtZW1iZXIgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzQ5MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvd2FyZHMgcmVtb3ZpbmcgZHVwbGljYXRp
b24gdGhyb3VnaG91dCB0aGUgcGFpbnQgY29kZSBleHRyYWN0IHRoZQorICAgICAgICBxdWVyeWlu
ZyBmb3IgdGhlIGNvbWJpbmVkIHRleHQgb2YgYW4gaW5saW5lIHRleHQgYm94IGludG8gYSBtZW1i
ZXIKKyAgICAgICAgZnVuY3Rpb24uCisKKyAgICAgICAgRm9yIGEgc2ltaWxhciByZWFzb24sIHVw
ZGF0ZSBmdW5jdGlvbnMgdG8gcXVlcnkgbGluZVN0eWxlKCkgaW5zdGVhZAorICAgICAgICBvZiBw
YXNzaW5nIHRoaXMgaW5mb3JtYXRpb24gYW4gYXJndW1lbnQuCisKKyAgICAgICAgTm8gZnVuY3Rp
b25hbGl0eSBjaGFuZ2VkLiBTbywgbm8gbmV3IHRlc3RzLgorCisgICAgICAgICogcmVuZGVyaW5n
L0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFp
bnQpOiBFeHRyYWN0IGxvZ2ljIHRvIHF1ZXJ5IGZvciBjb21iaW5lZCB0ZXh0CisgICAgICAgIGZy
b20gaGVyZSB0byBJbmxpbmVUZXh0Qm94Ojpjb21iaW5lZFRleHQoKSBhbmQgbW9kaWZ5IGNvZGUg
dG8gY2FsbCB0aGlzCisgICAgICAgIG1lbWJlciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OklubGluZVRleHRCb3g6OnBhaW50VGV4dFN1YnJhbmdlQmFja2dyb3VuZCk6IFF1ZXJ5IGZvciBs
aW5lIHN0eWxlCisgICAgICAgIGluc3RlYWQgb2YgdGFraW5nIGl0IGFzIGFuIGFyZ3VtZW50Lgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnRDb21wb3NpdGlvbkJhY2tncm91
bmQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50VGV4dE1h
dGNoTWFya2VyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWlu
dERlY29yYXRpb24pOiBVcGRhdGUgY29kZSB0byBxdWVyeSBjb21iaW5lZFRleHQoKQorICAgICAg
ICBpbnN0ZWFkIG9mIHRha2luZyBSZW5kZXJDb21iaW5lVGV4dCBhcyBhbiBhcmd1bWVudC4gV2hp
bGUgSSBhbSBoZXJlIG1ha2UgdXNlIG9mCisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgdG8gc2F2ZSBhbmQgcmVzdG9yZSB0aGUgZ3JhcGhpY3MgY29udGV4dCBzdGF0ZSB3aGVuCisg
ICAgICAgIHdlIGhhdmUgYSBub24tZW1wdHkgY2xpcCByZWN0LgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1hcmtlcik6IFF1ZXJ5IGZvciBsaW5lIHN0eWxl
IGluc3RlYWQgb2YKKyAgICAgICAgdGFraW5nIGl0IGFzIGFuIGFyZ3VtZW50LgorICAgICAgICAo
V2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1hcmtlcnMpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmNvbWJpbmVkVGV4dCBjb25zdCk6IEFkZGVk
OyBleHRyYWN0ZWQgZnJvbSBJbmxpbmVUZXh0Qm94OjpwYWludCgpLgorICAgICAgICAqIHJlbmRl
cmluZy9JbmxpbmVUZXh0Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludGVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6c2V0RW1waGFzaXNNYXJrKTogTW9kaWZp
ZWQgdG8gdGFrZSBhIGNvbnN0IFJlbmRlckNvbWJpbmVUZXh0KgorICAgICAgICBhcyBvcHBvc2Vk
IHRvIGEgcG9pbnRlciB0byBhIG5vbi1jb25zdCBSZW5kZXJDb21iaW5lVGV4dC4KKworMjAxNy0w
OS0yNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKICAgICAgICAgQ2xlYW51
cDogQ29uc29saWRhdGUgbm9uLXNlbGVjdGlvbiBiYWNrZ3JvdW5kIHBhaW50aW5nIGNvZGUgZm9y
IHRleHQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NzQ5MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXgg
NWEzMzc5NDYzYzJlMWE5MjBlODMwMjJmNTNhNzJiY2JlYzg0ODlhMS4uMjZmMzVjNTU5OGZiYTc3
YzU4ODQyNzcxODRhYTg1ZGNlMDAzZmI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcApAQCAtNDYxLDcgKzQ2MSw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6
cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNl
dCwKICAgICBib3hPcmlnaW4ubW92ZUJ5KGxvY2FsUGFpbnRPZmZzZXQpOwogICAgIEZsb2F0UmVj
dCBib3hSZWN0KGJveE9yaWdpbiwgRmxvYXRTaXplKGxvZ2ljYWxXaWR0aCgpLCBsb2dpY2FsSGVp
Z2h0KCkpKTsKIAotICAgIFJlbmRlckNvbWJpbmVUZXh0KiBjb21iaW5lZFRleHQgPSBsaW5lU3R5
bGUuaGFzVGV4dENvbWJpbmUoKSAmJiBpczxSZW5kZXJDb21iaW5lVGV4dD4ocmVuZGVyZXIoKSkg
JiYgZG93bmNhc3Q8UmVuZGVyQ29tYmluZVRleHQ+KHJlbmRlcmVyKCkpLmlzQ29tYmluZWQoKSA/
ICZkb3duY2FzdDxSZW5kZXJDb21iaW5lVGV4dD4ocmVuZGVyZXIoKSkgOiBudWxscHRyOworICAg
IGF1dG8qIGNvbWJpbmVkVGV4dCA9IHRoaXMtPmNvbWJpbmVkVGV4dCgpOwogCiAgICAgYm9vbCBz
aG91bGRSb3RhdGUgPSAhaXNIb3Jpem9udGFsKCkgJiYgIWNvbWJpbmVkVGV4dDsKICAgICBpZiAo
c2hvdWxkUm90YXRlKQpAQCAtNDg4LDkgKzQ4OCw5IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFp
bnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwK
ICAgICAvLyBhbmQgY29tcG9zaXRpb24gdW5kZXJsaW5lcy4KICAgICBpZiAocGFpbnRJbmZvLnBo
YXNlICE9IFBhaW50UGhhc2VTZWxlY3Rpb24gJiYgcGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhh
c2VUZXh0Q2xpcCAmJiAhaXNQcmludGluZykgewogICAgICAgICBpZiAoY29udGFpbnNDb21wb3Np
dGlvbiAmJiAhdXNlQ3VzdG9tVW5kZXJsaW5lcykKLSAgICAgICAgICAgIHBhaW50Q29tcG9zaXRp
b25CYWNrZ3JvdW5kKGNvbnRleHQsIGJveE9yaWdpbiwgbGluZVN0eWxlLCBmb250KTsKKyAgICAg
ICAgICAgIHBhaW50Q29tcG9zaXRpb25CYWNrZ3JvdW5kKGNvbnRleHQsIGJveE9yaWdpbiwgZm9u
dCk7CiAKLSAgICAgICAgcGFpbnREb2N1bWVudE1hcmtlcnMoY29udGV4dCwgYm94T3JpZ2luLCBs
aW5lU3R5bGUsIGZvbnQsIHRydWUpOworICAgICAgICBwYWludERvY3VtZW50TWFya2Vycyhjb250
ZXh0LCBib3hPcmlnaW4sIGZvbnQsIHRydWUpOwogCiAgICAgICAgIGlmIChoYXZlU2VsZWN0aW9u
ICYmICF1c2VDdXN0b21VbmRlcmxpbmVzKQogICAgICAgICAgICAgcGFpbnRTZWxlY3Rpb24oY29u
dGV4dCwgYm94T3JpZ2luLCBsaW5lU3R5bGUsIGZvbnQsIHNlbGVjdGlvblBhaW50U3R5bGUuZmls
bENvbG9yKTsKQEAgLTYwMCwxMSArNjAwLDExIEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnQo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwKICAg
ICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvblNlbGVjdGlvbkNsaXBPdXRSZWN0LnNldFdpZHRo
KGxvZ2ljYWxTZWxlY3Rpb25XaWR0aCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAg
ICAgcGFpbnREZWNvcmF0aW9uKGNvbnRleHQsIGZvbnQsIGNvbWJpbmVkVGV4dCwgdGV4dFJ1biwg
dGV4dE9yaWdpbiwgYm94UmVjdCwgdGV4dERlY29yYXRpb25zLCB0ZXh0UGFpbnRTdHlsZSwgdGV4
dFNoYWRvdywgdGV4dERlY29yYXRpb25TZWxlY3Rpb25DbGlwT3V0UmVjdCk7CisgICAgICAgIHBh
aW50RGVjb3JhdGlvbihjb250ZXh0LCBmb250LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luLCBib3hSZWN0
LCB0ZXh0RGVjb3JhdGlvbnMsIHRleHRQYWludFN0eWxlLCB0ZXh0U2hhZG93LCB0ZXh0RGVjb3Jh
dGlvblNlbGVjdGlvbkNsaXBPdXRSZWN0KTsKICAgICB9CiAKICAgICBpZiAocGFpbnRJbmZvLnBo
YXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKSB7Ci0gICAgICAgIHBhaW50RG9jdW1lbnRNYXJr
ZXJzKGNvbnRleHQsIGJveE9yaWdpbiwgbGluZVN0eWxlLCBmb250LCBmYWxzZSk7CisgICAgICAg
IHBhaW50RG9jdW1lbnRNYXJrZXJzKGNvbnRleHQsIGJveE9yaWdpbiwgZm9udCwgZmFsc2UpOwog
CiAgICAgICAgIGlmICh1c2VDdXN0b21VbmRlcmxpbmVzKSB7CiAgICAgICAgICAgICBjb25zdCBW
ZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbmU+JiB1bmRlcmxpbmVzID0gcmVuZGVyZXIoKS5mcmFt
ZSgpLmVkaXRvcigpLmN1c3RvbUNvbXBvc2l0aW9uVW5kZXJsaW5lcygpOwpAQCAtNzE1LDcgKzcx
NSw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb24oR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBiCiAjZW5kaWYKIH0KIAotaW5saW5lIHZvaWQg
SW5saW5lVGV4dEJveDo6cGFpbnRUZXh0U3VicmFuZ2VCYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBDb2xvciYgY29sb3IsIHVu
c2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQpCitpbmxpbmUgdm9pZCBJbmxp
bmVUZXh0Qm94OjpwYWludFRleHRTdWJyYW5nZUJhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IEZvbnRDYXNjYWRlJiBm
b250LCBjb25zdCBDb2xvciYgY29sb3IsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBl
bmRPZmZzZXQpCiB7CiAgICAgc3RhcnRPZmZzZXQgPSBjbGFtcGVkT2Zmc2V0KHN0YXJ0T2Zmc2V0
KTsKICAgICBlbmRPZmZzZXQgPSBjbGFtcGVkT2Zmc2V0KGVuZE9mZnNldCk7CkBAIC03MzEsMjIg
KzczMSwyMiBAQCBpbmxpbmUgdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludFRleHRTdWJyYW5nZUJh
Y2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LAogICAgIExheW91dFJlY3Qgc2VsZWN0
aW9uUmVjdCA9IExheW91dFJlY3QoYm94T3JpZ2luLngoKSwgYm94T3JpZ2luLnkoKSAtIGRlbHRh
WSwgMCwgc2VsZWN0aW9uSGVpZ2h0KCkpOwogCiAgICAgLy8gRklYTUU6IEFkanVzdCB0ZXh0IHJ1
biBmb3IgY29tYmluZWQgdGV4dCBhbmQgaHlwaGVuYXRpb24uCi0gICAgVGV4dFJ1biB0ZXh0UnVu
ID0gY29uc3RydWN0VGV4dFJ1bihzdHlsZSk7CisgICAgVGV4dFJ1biB0ZXh0UnVuID0gY29uc3Ry
dWN0VGV4dFJ1bihsaW5lU3R5bGUoKSk7CiAgICAgZm9udC5hZGp1c3RTZWxlY3Rpb25SZWN0Rm9y
VGV4dCh0ZXh0UnVuLCBzZWxlY3Rpb25SZWN0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKICAg
ICBjb250ZXh0LmZpbGxSZWN0KHNuYXBSZWN0VG9EZXZpY2VQaXhlbHNXaXRoV3JpdGluZ0RpcmVj
dGlvbihzZWxlY3Rpb25SZWN0LCByZW5kZXJlcigpLmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0
b3IoKSwgdGV4dFJ1bi5sdHIoKSksIGNvbG9yKTsKIH0KIAotdm9pZCBJbmxpbmVUZXh0Qm94Ojpw
YWludENvbXBvc2l0aW9uQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBG
b250Q2FzY2FkZSYgZm9udCkKK3ZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRDb21wb3NpdGlvbkJh
Y2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hP
cmlnaW4sIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250KQogewotICAgIHBhaW50VGV4dFN1YnJhbmdl
QmFja2dyb3VuZChjb250ZXh0LCBib3hPcmlnaW4sIHN0eWxlLCBmb250LCByZW5kZXJlcigpLmZy
YW1lKCkuZWRpdG9yKCkuY29tcG9zaXRpb25TdGFydCgpLCByZW5kZXJlcigpLmZyYW1lKCkuZWRp
dG9yKCkuY29tcG9zaXRpb25FbmQoKSwgQ29sb3I6OmNvbXBvc2l0aW9uRmlsbCk7CisgICAgcGFp
bnRUZXh0U3VicmFuZ2VCYWNrZ3JvdW5kKGNvbnRleHQsIGJveE9yaWdpbiwgZm9udCwgcmVuZGVy
ZXIoKS5mcmFtZSgpLmVkaXRvcigpLmNvbXBvc2l0aW9uU3RhcnQoKSwgcmVuZGVyZXIoKS5mcmFt
ZSgpLmVkaXRvcigpLmNvbXBvc2l0aW9uRW5kKCksIENvbG9yOjpjb21wb3NpdGlvbkZpbGwpOwog
fQogCi12b2lkIElubGluZVRleHRCb3g6OnBhaW50VGV4dE1hdGNoTWFya2VyKEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBNYXJrZXJTdWJyYW5n
ZSYgc3VicmFuZ2UsIGJvb2wgaXNBY3RpdmVNYXRjaCkKK3ZvaWQgSW5saW5lVGV4dEJveDo6cGFp
bnRUZXh0TWF0Y2hNYXJrZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBv
aW50JiBib3hPcmlnaW4sIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBNYXJrZXJTdWJy
YW5nZSYgc3VicmFuZ2UsIGJvb2wgaXNBY3RpdmVNYXRjaCkKIHsKICAgICBpZiAoIXJlbmRlcmVy
KCkuZnJhbWUoKS5lZGl0b3IoKS5tYXJrZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVkKCkpCiAg
ICAgICAgIHJldHVybjsKICAgICBhdXRvIGhpZ2hsaWdodENvbG9yID0gaXNBY3RpdmVNYXRjaCA/
IHJlbmRlcmVyKCkudGhlbWUoKS5wbGF0Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cigpIDogcmVuZGVyZXIoKS50aGVtZSgpLnBsYXRmb3JtSW5hY3RpdmVUZXh0U2VhcmNoSGlnaGxp
Z2h0Q29sb3IoKTsKLSAgICBwYWludFRleHRTdWJyYW5nZUJhY2tncm91bmQoY29udGV4dCwgYm94
T3JpZ2luLCBzdHlsZSwgZm9udCwgaGlnaGxpZ2h0Q29sb3IsIHN1YnJhbmdlLnN0YXJ0T2Zmc2V0
LCBzdWJyYW5nZS5lbmRPZmZzZXQpOworICAgIHBhaW50VGV4dFN1YnJhbmdlQmFja2dyb3VuZChj
b250ZXh0LCBib3hPcmlnaW4sIGZvbnQsIGhpZ2hsaWdodENvbG9yLCBzdWJyYW5nZS5zdGFydE9m
ZnNldCwgc3VicmFuZ2UuZW5kT2Zmc2V0KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIG1pcnJv
clJUTFNlZ21lbnQoZmxvYXQgbG9naWNhbFdpZHRoLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiwg
ZmxvYXQmIHN0YXJ0LCBmbG9hdCB3aWR0aCkKQEAgLTc1NiwxNCArNzU2LDE2IEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBtaXJyb3JSVExTZWdtZW50KGZsb2F0IGxvZ2ljYWxXaWR0aCwgVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24sCiAgICAgc3RhcnQgPSBsb2dpY2FsV2lkdGggLSB3aWR0aCAtIHN0YXJ0
OwogfQogCi12b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBSZW5kZXJDb21iaW5lVGV4dCog
Y29tYmluZWRUZXh0LCBjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25zdCBGbG9hdFBvaW50JiB0
ZXh0T3JpZ2luLAordm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgY29uc3QgVGV4dFJ1biYg
dGV4dFJ1biwgY29uc3QgRmxvYXRQb2ludCYgdGV4dE9yaWdpbiwKICAgICBjb25zdCBGbG9hdFJl
Y3QmIGJveFJlY3QsIFRleHREZWNvcmF0aW9uIGRlY29yYXRpb24sIFRleHRQYWludFN0eWxlIHRl
eHRQYWludFN0eWxlLCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIGNvbnN0IEZsb2F0UmVjdCYg
Y2xpcE91dFJlY3QpCiB7CiAgICAgaWYgKG1fdHJ1bmNhdGlvbiA9PSBjRnVsbFRydW5jYXRpb24p
CiAgICAgICAgIHJldHVybjsKIAogICAgIHVwZGF0ZUdyYXBoaWNzQ29udGV4dChjb250ZXh0LCB0
ZXh0UGFpbnRTdHlsZSk7Ci0gICAgaWYgKGNvbWJpbmVkVGV4dCkKKworICAgIGJvb2wgaXNDb21i
aW5lZFRleHQgPSBjb21iaW5lZFRleHQoKTsKKyAgICBpZiAoaXNDb21iaW5lZFRleHQpCiAgICAg
ICAgIGNvbnRleHQuY29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENsb2Nrd2lzZSkpOwogCiAg
ICAgZmxvYXQgc3RhcnQgPSAwOwpAQCAtNzg0LDIxICs3ODYsMjAgQEAgdm9pZCBJbmxpbmVUZXh0
Qm94OjpwYWludERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250
Q2FzY2FkZSYKICAgICBGbG9hdFBvaW50IGxvY2FsT3JpZ2luID0gYm94UmVjdC5sb2NhdGlvbigp
OwogICAgIGxvY2FsT3JpZ2luLm1vdmUoc3RhcnQsIDApOwogCi0gICAgaWYgKCFjbGlwT3V0UmVj
dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29udGV4dC5zYXZlKCk7Ci0gICAgICAgIGNvbnRleHQu
Y2xpcE91dChjbGlwT3V0UmVjdCk7CisgICAgeworICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIgeyBjb250ZXh0LCBmYWxzZSB9OworICAgICAgICBpZiAoIWNsaXBP
dXRSZWN0LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgc3RhdGVTYXZlci5zYXZlKCk7CisgICAg
ICAgICAgICBjb250ZXh0LmNsaXBPdXQoY2xpcE91dFJlY3QpOworICAgICAgICB9CisgICAgICAg
IGRlY29yYXRpb25QYWludGVyLnBhaW50VGV4dERlY29yYXRpb24odGV4dFJ1biwgdGV4dE9yaWdp
biwgbG9jYWxPcmlnaW4pOwogICAgIH0KIAotICAgIGRlY29yYXRpb25QYWludGVyLnBhaW50VGV4
dERlY29yYXRpb24odGV4dFJ1biwgdGV4dE9yaWdpbiwgbG9jYWxPcmlnaW4pOwotCi0gICAgaWYg
KCFjbGlwT3V0UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIGNvbnRleHQucmVzdG9yZSgpOwotCi0g
ICAgaWYgKGNvbWJpbmVkVGV4dCkKKyAgICBpZiAoaXNDb21iaW5lZFRleHQpCiAgICAgICAgIGNv
bnRleHQuY29uY2F0Q1RNKHJvdGF0aW9uKGJveFJlY3QsIENvdW50ZXJjbG9ja3dpc2UpKTsKIH0K
IAotdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludERvY3VtZW50TWFya2VyKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBNYXJrZXJTdWJyYW5nZSYg
c3VicmFuZ2UpCit2b2lkIElubGluZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJrZXIoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IEZv
bnRDYXNjYWRlJiBmb250LCBjb25zdCBNYXJrZXJTdWJyYW5nZSYgc3VicmFuZ2UpCiB7CiAgICAg
Ly8gTmV2ZXIgcHJpbnQgc3BlbGxpbmcvZ3JhbW1hciBtYXJrZXJzICg1MzI3ODg3KQogICAgIGlm
IChyZW5kZXJlcigpLmRvY3VtZW50KCkucHJpbnRpbmcoKSkKQEAgLTgzMSw3ICs4MzIsNyBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFBvaQogICAgICAgICBpbnQgZGVsdGFZID0gcmVuZGVyZXIoKS5z
dHlsZSgpLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSA/IHNlbGVjdGlvbkJvdHRvbSgpIC0g
bG9naWNhbEJvdHRvbSgpIDogbG9naWNhbFRvcCgpIC0gc2VsZWN0aW9uVG9wKCk7CiAgICAgICAg
IGludCBzZWxIZWlnaHQgPSBzZWxlY3Rpb25IZWlnaHQoKTsKICAgICAgICAgRmxvYXRQb2ludCBz
dGFydFBvaW50KGJveE9yaWdpbi54KCksIGJveE9yaWdpbi55KCkgLSBkZWx0YVkpOwotICAgICAg
ICBUZXh0UnVuIHJ1biA9IGNvbnN0cnVjdFRleHRSdW4oc3R5bGUpOworICAgICAgICBUZXh0UnVu
IHJ1biA9IGNvbnN0cnVjdFRleHRSdW4obGluZVN0eWxlKCkpOwogCiAgICAgICAgIExheW91dFJl
Y3Qgc2VsZWN0aW9uUmVjdCA9IExheW91dFJlY3Qoc3RhcnRQb2ludCwgRmxvYXRTaXplKDAsIHNl
bEhlaWdodCkpOwogICAgICAgICBmb250LmFkanVzdFNlbGVjdGlvblJlY3RGb3JUZXh0KHJ1biwg
c2VsZWN0aW9uUmVjdCwgc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pOwpAQCAtODgxLDcgKzg4
Miw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1hcmtlcihHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pCiAgICAgY29udGV4dC5kcmF3TGluZUZvckRv
Y3VtZW50TWFya2VyKEZsb2F0UG9pbnQoYm94T3JpZ2luLngoKSArIHN0YXJ0LCBib3hPcmlnaW4u
eSgpICsgdW5kZXJsaW5lT2Zmc2V0KSwgd2lkdGgsIGxpbmVTdHlsZUZvclN1YnJhbmdlVHlwZShz
dWJyYW5nZS50eXBlKSk7CiB9CiAKLXZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1h
cmtlcnMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmln
aW4sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRm9udENhc2NhZGUmIGZvbnQsIGJv
b2wgYmFja2dyb3VuZCkKK3ZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnREb2N1bWVudE1hcmtlcnMo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNv
bnN0IEZvbnRDYXNjYWRlJiBmb250LCBib29sIGJhY2tncm91bmQpCiB7CiAgICAgaWYgKCFyZW5k
ZXJlcigpLnRleHROb2RlKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTk3NSw5ICs5NzYsOSBAQCB2
b2lkIElubGluZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJrZXJzKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmxvYXRQbwogCiAgICAgZm9yIChhdXRvJiBzdWJyYW5nZSA6IHN1YmRp
dmlkZShzdWJyYW5nZXMsIE92ZXJsYXBTdHJhdGVneTo6RnJvbnRtb3N0KSkgewogICAgICAgICBp
ZiAoc3VicmFuZ2UudHlwZSA9PSBNYXJrZXJTdWJyYW5nZTo6VGV4dE1hdGNoKQotICAgICAgICAg
ICAgcGFpbnRUZXh0TWF0Y2hNYXJrZXIoY29udGV4dCwgYm94T3JpZ2luLCBzdHlsZSwgZm9udCwg
c3VicmFuZ2UsIHN1YnJhbmdlLm1hcmtlci0+aXNBY3RpdmVNYXRjaCgpKTsKKyAgICAgICAgICAg
IHBhaW50VGV4dE1hdGNoTWFya2VyKGNvbnRleHQsIGJveE9yaWdpbiwgZm9udCwgc3VicmFuZ2Us
IHN1YnJhbmdlLm1hcmtlci0+aXNBY3RpdmVNYXRjaCgpKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgcGFpbnREb2N1bWVudE1hcmtlcihjb250ZXh0LCBib3hPcmlnaW4sIHN0eWxlLCBmb250
LCBzdWJyYW5nZSk7CisgICAgICAgICAgICBwYWludERvY3VtZW50TWFya2VyKGNvbnRleHQsIGJv
eE9yaWdpbiwgZm9udCwgc3VicmFuZ2UpOwogICAgIH0KIH0KIApAQCAtMTExMSw2ICsxMTEyLDEx
IEBAIFRleHRSdW4gSW5saW5lVGV4dEJveDo6Y29uc3RydWN0VGV4dFJ1bihjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUsIFN0cmluZ1ZpZXcgc3RyCiAgICAgcmV0dXJuIHJ1bjsKIH0KIAorY29uc3Qg
UmVuZGVyQ29tYmluZVRleHQqIElubGluZVRleHRCb3g6OmNvbWJpbmVkVGV4dCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGxpbmVTdHlsZSgpLmhhc1RleHRDb21iaW5lKCkgJiYgaXM8UmVuZGVyQ29t
YmluZVRleHQ+KHJlbmRlcmVyKCkpICYmIGRvd25jYXN0PFJlbmRlckNvbWJpbmVUZXh0PihyZW5k
ZXJlcigpKS5pc0NvbWJpbmVkKCkgPyAmZG93bmNhc3Q8UmVuZGVyQ29tYmluZVRleHQ+KHJlbmRl
cmVyKCkpIDogbnVsbHB0cjsKK30KKwogRXhwYW5zaW9uQmVoYXZpb3IgSW5saW5lVGV4dEJveDo6
ZXhwYW5zaW9uQmVoYXZpb3IoKSBjb25zdAogewogICAgIEV4cGFuc2lvbkJlaGF2aW9yIGxlYWRp
bmdCZWhhdmlvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCmluZGV4
IDc5NWEyMGI5NGRhMTI3ODBjZTkyZjk5MGY1YzgwNDE3MzM2MWM4ODQuLjhmNDMyMDhiYzY0NDU0
ODE1MWEwYThjMDg1NWZiY2I2ZWM2M2I3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guaApAQCAtMTU1LDE4ICsxNTUsMjAgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
ZmxvYXQgcG9zaXRpb25Gb3JPZmZzZXQodW5zaWduZWQgb2Zmc2V0KSBjb25zdDsKIAogcHJpdmF0
ZToKLSAgICB2b2lkIHBhaW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGb250
Q2FzY2FkZSYsIFJlbmRlckNvbWJpbmVUZXh0KiwgY29uc3QgVGV4dFJ1biYsIGNvbnN0IEZsb2F0
UG9pbnQmIHRleHRPcmlnaW4sIGNvbnN0IEZsb2F0UmVjdCYgYm94UmVjdCwKKyAgICB2b2lkIHBh
aW50RGVjb3JhdGlvbihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGb250Q2FzY2FkZSYsIGNvbnN0
IFRleHRSdW4mLCBjb25zdCBGbG9hdFBvaW50JiB0ZXh0T3JpZ2luLCBjb25zdCBGbG9hdFJlY3Qm
IGJveFJlY3QsCiAgICAgICAgIFRleHREZWNvcmF0aW9uLCBUZXh0UGFpbnRTdHlsZSwgY29uc3Qg
U2hhZG93RGF0YSosIGNvbnN0IEZsb2F0UmVjdCYgY2xpcE91dFJlY3QpOwogICAgIHZvaWQgcGFp
bnRTZWxlY3Rpb24oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2lu
LCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgY29uc3QgQ29sb3ImKTsK
IAotICAgIHZvaWQgcGFpbnREb2N1bWVudE1hcmtlcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udENhc2Nh
ZGUmLCBjb25zdCBNYXJrZXJTdWJyYW5nZSYpOwotICAgIHZvaWQgcGFpbnREb2N1bWVudE1hcmtl
cnMoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBS
ZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnRDYXNjYWRlJiwgYm9vbCBiYWNrZ3JvdW5kKTsKLSAgICB2
b2lkIHBhaW50VGV4dE1hdGNoTWFya2VyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9p
bnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250Q2FzY2FkZSYsIGNv
bnN0IE1hcmtlclN1YnJhbmdlJiwgYm9vbCBpc0FjdGl2ZU1hdGNoKTsKKyAgICB2b2lkIHBhaW50
RG9jdW1lbnRNYXJrZXIoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3Jp
Z2luLCBjb25zdCBGb250Q2FzY2FkZSYsIGNvbnN0IE1hcmtlclN1YnJhbmdlJik7CisgICAgdm9p
ZCBwYWludERvY3VtZW50TWFya2VycyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFBvaW50
JiBib3hPcmlnaW4sIGNvbnN0IEZvbnRDYXNjYWRlJiwgYm9vbCBiYWNrZ3JvdW5kKTsKKyAgICB2
b2lkIHBhaW50VGV4dE1hdGNoTWFya2VyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9p
bnQmIGJveE9yaWdpbiwgY29uc3QgRm9udENhc2NhZGUmLCBjb25zdCBNYXJrZXJTdWJyYW5nZSYs
IGJvb2wgaXNBY3RpdmVNYXRjaCk7CiAKLSAgICB2b2lkIHBhaW50Q29tcG9zaXRpb25CYWNrZ3Jv
dW5kKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgY29uc3Qg
UmVuZGVyU3R5bGUmLCBjb25zdCBGb250Q2FzY2FkZSYpOworICAgIHZvaWQgcGFpbnRDb21wb3Np
dGlvbkJhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3Jp
Z2luLCBjb25zdCBGb250Q2FzY2FkZSYpOwogICAgIHZvaWQgcGFpbnRDb21wb3NpdGlvblVuZGVy
bGluZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0
IENvbXBvc2l0aW9uVW5kZXJsaW5lJik7CiAKLSAgICB2b2lkIHBhaW50VGV4dFN1YnJhbmdlQmFj
a2dyb3VuZChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNv
bnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udENhc2NhZGUmLCBjb25zdCBDb2xvciYsIHVuc2ln
bmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQpOworICAgIHZvaWQgcGFpbnRUZXh0
U3VicmFuZ2VCYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UG9pbnQmIGJv
eE9yaWdpbiwgY29uc3QgRm9udENhc2NhZGUmLCBjb25zdCBDb2xvciYsIHVuc2lnbmVkIHN0YXJ0
T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQpOworCisgICAgY29uc3QgUmVuZGVyQ29tYmluZVRl
eHQqIGNvbWJpbmVkVGV4dCgpIGNvbnN0OwogCiAgICAgRXhwYW5zaW9uQmVoYXZpb3IgZXhwYW5z
aW9uQmVoYXZpb3IoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1RleHRQYWludGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIu
aAppbmRleCAzYjgxNDczY2M4MjkyOTM3ZmRjY2IwZjA4ZjliNDQ0OWY1YWUxMzA2Li5jOGE3YjM5
M2M2OWRhM2ViYzM0ZTNiZDUzZWM0ZmViODhiMjg0MWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dFBhaW50ZXIuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dElzSG9yaXpvbnRhbChib29sIGlzSG9yaXpvbnRhbCkgeyBtX3RleHRCb3hJc0hvcml6b250YWwg
PSBpc0hvcml6b250YWw7IH0KIAotICAgIHZvaWQgc2V0RW1waGFzaXNNYXJrKGNvbnN0IEF0b21p
Y1N0cmluZyYgbWFyaywgZmxvYXQgb2Zmc2V0LCBSZW5kZXJDb21iaW5lVGV4dCopOworICAgIHZv
aWQgc2V0RW1waGFzaXNNYXJrKGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgZmxvYXQgb2Zmc2V0
LCBjb25zdCBSZW5kZXJDb21iaW5lVGV4dCopOwogCiAgICAgdm9pZCBwYWludFJhbmdlKGNvbnN0
IFRleHRSdW4mLCBjb25zdCBGbG9hdFJlY3QmIGJveFJlY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHRl
eHRPcmlnaW4sIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpOwogICAgIHZvaWQgcGFpbnQo
Y29uc3QgVGV4dFJ1biYsIHVuc2lnbmVkIGxlbmd0aCwgY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0
LCBjb25zdCBGbG9hdFBvaW50JiB0ZXh0T3JpZ2luLApAQCAtODAsMTIgKzgwLDEyIEBAIHByaXZh
dGU6CiAgICAgY29uc3QgU2hhZG93RGF0YSogbV9zaGFkb3cgeyBudWxscHRyIH07CiAgICAgY29u
c3QgU2hhZG93RGF0YSogbV9zZWxlY3Rpb25TaGFkb3cgeyBudWxscHRyIH07CiAgICAgQXRvbWlj
U3RyaW5nIG1fZW1waGFzaXNNYXJrOwotICAgIFJlbmRlckNvbWJpbmVUZXh0KiBtX2NvbWJpbmVk
VGV4dCB7IG51bGxwdHIgfTsKKyAgICBjb25zdCBSZW5kZXJDb21iaW5lVGV4dCogbV9jb21iaW5l
ZFRleHQgeyBudWxscHRyIH07CiAgICAgZmxvYXQgbV9lbXBoYXNpc01hcmtPZmZzZXQgeyAwIH07
CiAgICAgYm9vbCBtX3RleHRCb3hJc0hvcml6b250YWwgeyB0cnVlIH07CiB9OwogCi1pbmxpbmUg
dm9pZCBUZXh0UGFpbnRlcjo6c2V0RW1waGFzaXNNYXJrKGNvbnN0IEF0b21pY1N0cmluZyYgbWFy
aywgZmxvYXQgb2Zmc2V0LCBSZW5kZXJDb21iaW5lVGV4dCogY29tYmluZWRUZXh0KQoraW5saW5l
IHZvaWQgVGV4dFBhaW50ZXI6OnNldEVtcGhhc2lzTWFyayhjb25zdCBBdG9taWNTdHJpbmcmIG1h
cmssIGZsb2F0IG9mZnNldCwgY29uc3QgUmVuZGVyQ29tYmluZVRleHQqIGNvbWJpbmVkVGV4dCkK
IHsKICAgICBtX2VtcGhhc2lzTWFyayA9IG1hcms7CiAgICAgbV9lbXBoYXNpc01hcmtPZmZzZXQg
PSBvZmZzZXQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>