<?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>175530</bug_id>
          
          <creation_ts>2017-08-14 04:47:48 -0700</creation_ts>
          <short_desc>Factor text autosizing into a class</short_desc>
          <delta_ts>2017-08-14 06:22:26 -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 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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</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>1338313</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-08-14 04:47:48 -0700</bug_when>
    <thetext>It is currently in Document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338319</commentid>
    <comment_count>1</comment_count>
      <attachid>318032</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-08-14 05:02:33 -0700</bug_when>
    <thetext>Created attachment 318032
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338321</commentid>
    <comment_count>2</comment_count>
      <attachid>318033</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-08-14 05:13:05 -0700</bug_when>
    <thetext>Created attachment 318033
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338322</commentid>
    <comment_count>3</comment_count>
      <attachid>318033</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-08-14 05:14:33 -0700</bug_when>
    <thetext>Comment on attachment 318033
patch

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

r=me

&gt; Source/WebCore/rendering/TextAutoSizing.h:128
&gt; +    using NodeMap = HashMap&lt;TextAutoSizingKey, std::unique_ptr&lt;TextAutoSizingValue&gt;, TextAutoSizingHash, TextAutoSizingTraits&gt;;
&gt; +    NodeMap m_textNodes;

Seems like this could be accomplished in a single line, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338328</commentid>
    <comment_count>4</comment_count>
      <attachid>318035</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-08-14 05:38:19 -0700</bug_when>
    <thetext>Created attachment 318035
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338330</commentid>
    <comment_count>5</comment_count>
      <attachid>318035</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-14 06:20:51 -0700</bug_when>
    <thetext>Comment on attachment 318035
patch

Clearing flags on attachment: 318035

Committed r220685: &lt;http://trac.webkit.org/changeset/220685&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338331</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-14 06:20:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338332</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-14 06:22:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/33874524&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318032</attachid>
            <date>2017-08-14 05:02:33 -0700</date>
            <delta_ts>2017-08-14 05:13:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>text-autosizing-class-2.patch</filename>
            <type>text/plain</type>
            <size>11111</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA4LTE0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBGYWN0b3IgdGV4dCBhdXRvc2l6
aW5nIGludG8gYSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc1NTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW92ZSB0aGUgcmVtYWluaW5nIHBhcnRzIG91dCBvZiBEb2N1bWVudC4KKworICAg
ICAgICAqIGNzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1
dGVMaW5lSGVpZ2h0TXVsdGlwbGllckR1ZVRvRm9udFNpemUpOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGVzdHJveVJlbmRlclRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRBdXRvU2l6aW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRBdXRvU2l6aW5nVHJhaXRzOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9TaXppbmdUcmFpdHM6OmlzRGVsZXRl
ZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRBdXRvU2l6
ZWROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVBdXRv
U2l6ZWROb2Rlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2xlYXJB
dXRvU2l6ZWROb2Rlcyk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9ja0Zsb3c6OmFkanVzdENvbXB1dGVkRm9udFNpemVzKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50
OjphZGp1c3RDb21wdXRlZEZvbnRTaXplc09uQmxvY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckVsZW1lbnQ6OnJlc2V0VGV4dEF1dG9zaXppbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9U
ZXh0QXV0b1NpemluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b1NpemluZ1RyYWl0
czo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvU2l6
aW5nVHJhaXRzOjppc0RlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b1Np
emluZzo6YWRkVGV4dE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9TaXppbmc6OnVw
ZGF0ZVJlbmRlclRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9TaXppbmc6OnJlc2V0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9TaXppbmcuaDoKKwogMjAxNy0wOC0xNCAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW1JlbmRlciBUcmVl
IE11dGF0aW9uXSBGaXJzdCBsZXR0ZXIgc2hvdWxkIG5vdCBtdXRhdGUgdGhlIHJlbmRlciB0cmVl
IHdoaWxlIGluIGxheW91dC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJD
dXN0b20uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3Vz
dG9tLmgJKHJldmlzaW9uIDIyMDY0NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxk
ZXJDdXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAtNjgwLDcgKzY4MCw3IEBAIHN0YXRpYyBpbmxp
bmUgZmxvYXQgY29tcHV0ZUxpbmVIZWlnaHRNdWwKICAgICAgICAgICAgICAgICAvLyB0aGF0IHRo
ZSBtaW5pbXVtIGZvbnQgc2l6ZSBpcyB0aGUgb25seSB0aGluZyBhZmZlY3RpbmcgdGhlIGNvbXB1
dGVkIGZvbnQgc2l6ZS4KIAogICAgICAgICAgICAgICAgIC8vIFRoaXMgY2FsY3VsYXRpb24gbWF0
Y2hlcyB0aGUgbGluZS1oZWlnaHQgY29tcHV0ZWQgc2l6ZSBjYWxjdWxhdGlvbiBpbgotICAgICAg
ICAgICAgICAgIC8vIFRleHRBdXRvU2l6aW5nVmFsdWU6OmFkanVzdFRleHROb2RlU2l6ZXMoKS4K
KyAgICAgICAgICAgICAgICAvLyBUZXh0QXV0b1NpemluZzo6VmFsdWU6OmFkanVzdFRleHROb2Rl
U2l6ZXMoKS4KICAgICAgICAgICAgICAgICBhdXRvIHNjYWxlQ2hhbmdlID0gbWluaW11bUZvbnRT
aXplIC8gc3BlY2lmaWVkRm9udFNpemU7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHNjYWxlQ2hh
bmdlOwogICAgICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lv
biAyMjA2NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MjcsMjAgKzQyNyw2IEBAIHN0YXRpYyB2b2lkIHByaW50TmF2aWdhdGlvbkVycm9y
TWVzc2FnZSgKICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnByaW50RXJyb3JN
ZXNzYWdlKG1lc3NhZ2UpOwogfQogCi0jaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKLQotdm9p
ZCBUZXh0QXV0b1NpemluZ1RyYWl0czo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKFRleHRBdXRvU2l6
aW5nS2V5JiBzbG90KQotewotICAgIG5ldyAoTm90TnVsbCwgJnNsb3QpIFRleHRBdXRvU2l6aW5n
S2V5KFRleHRBdXRvU2l6aW5nS2V5OjpEZWxldGVkKTsKLX0KLQotYm9vbCBUZXh0QXV0b1Npemlu
Z1RyYWl0czo6aXNEZWxldGVkVmFsdWUoY29uc3QgVGV4dEF1dG9TaXppbmdLZXkmIHZhbHVlKQot
ewotICAgIHJldHVybiB2YWx1ZS5pc0RlbGV0ZWQoKTsKLX0KLQotI2VuZGlmCi0KIHVpbnQ2NF90
IERvY3VtZW50OjpzX2dsb2JhbFRyZWVWZXJzaW9uID0gMDsKIAogSGFzaFNldDxEb2N1bWVudCo+
JiBEb2N1bWVudDo6YWxsRG9jdW1lbnRzKCkKQEAgLTIyNjQsOCArMjI1MCw3IEBAIHZvaWQgRG9j
dW1lbnQ6OmRlc3Ryb3lSZW5kZXJUcmVlKCkKICAgICBOb2RlOjpzZXRSZW5kZXJlcihudWxscHRy
KTsKIAogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0gICAgLy8gRG8gdGhpcyBiZWZvcmUg
dGhlIGFyZW5hIGlzIGNsZWFyZWQsIHdoaWNoIGlzIG5lZWRlZCB0byBkZXJlZiB0aGUgUmVuZGVy
U3R5bGUgb24gVGV4dEF1dG9TaXppbmdLZXkuCi0gICAgbV90ZXh0QXV0b1NpemVkTm9kZXMuY2xl
YXIoKTsKKyAgICBtX3RleHRBdXRvU2l6aW5nID0gbnVsbHB0cjsKICNlbmRpZgogCiAgICAgaWYg
KHZpZXcoKSkKQEAgLTU1NTgsMjggKzU1NDMsMTIgQEAgSFRNTENhbnZhc0VsZW1lbnQqIERvY3Vt
ZW50OjpnZXRDU1NDYW52YQogfQogCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKLQotdm9p
ZCBEb2N1bWVudDo6YWRkQXV0b1NpemVkTm9kZShUZXh0JiBub2RlLCBmbG9hdCBjYW5kaWRhdGVT
aXplKQorVGV4dEF1dG9TaXppbmcmIERvY3VtZW50Ojp0ZXh0QXV0b1NpemluZygpCiB7Ci0gICAg
TE9HKFRleHRBdXRvc2l6aW5nLCAiIGFkZEF1dG9TaXplZE5vZGUgJXAgY2FuZGlkYXRlU2l6ZT0l
ZiIsICZub2RlLCBjYW5kaWRhdGVTaXplKTsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdGV4dEF1
dG9TaXplZE5vZGVzLmFkZDxUZXh0QXV0b1NpemluZ0hhc2hUcmFuc2xhdG9yPihub2RlLnJlbmRl
cmVyKCktPnN0eWxlKCksIG51bGxwdHIpOwotICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkK
LSAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4
dEF1dG9TaXppbmdWYWx1ZT4oKTsKLSAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5hZGRU
ZXh0Tm9kZShub2RlLCBjYW5kaWRhdGVTaXplKTsKLX0KLQotdm9pZCBEb2N1bWVudDo6dXBkYXRl
QXV0b1NpemVkTm9kZXMoKQotewotICAgIG1fdGV4dEF1dG9TaXplZE5vZGVzLnJlbW92ZUlmKFtd
KGF1dG8mIGtleUFuZFZhbHVlKSB7Ci0gICAgICAgIHJldHVybiBrZXlBbmRWYWx1ZS52YWx1ZS0+
YWRqdXN0VGV4dE5vZGVTaXplcygpID09IFRleHRBdXRvU2l6aW5nVmFsdWU6OlN0aWxsSGFzTm9k
ZXM6Ok5vOwotICAgIH0pOworICAgIGlmICghbV90ZXh0QXV0b1NpemluZykKKyAgICAgICAgbV90
ZXh0QXV0b1NpemluZyA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4dEF1dG9TaXppbmc+KCk7CisgICAg
cmV0dXJuICptX3RleHRBdXRvU2l6aW5nOwogfQotICAgIAotdm9pZCBEb2N1bWVudDo6Y2xlYXJB
dXRvU2l6ZWROb2RlcygpCi17Ci0gICAgbV90ZXh0QXV0b1NpemVkTm9kZXMuY2xlYXIoKTsKLX0K
LQogI2VuZGlmIC8vIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAKIHZvaWQgRG9jdW1lbnQ6Omlu
aXRETlNQcmVmZXRjaCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMjIwNjQ2
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIw
NywxNSArMjA3LDcgQEAgY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOwogI2VuZGlm
CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotc3RydWN0IFRleHRBdXRvU2l6aW5nSGFz
aDsKLWNsYXNzIFRleHRBdXRvU2l6aW5nS2V5OwotY2xhc3MgVGV4dEF1dG9TaXppbmdWYWx1ZTsK
LQotc3RydWN0IFRleHRBdXRvU2l6aW5nVHJhaXRzIDogV1RGOjpHZW5lcmljSGFzaFRyYWl0czxU
ZXh0QXV0b1NpemluZ0tleT4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1pl
cm8gPSB0cnVlOwotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShUZXh0QXV0
b1NpemluZ0tleSYgc2xvdCk7Ci0gICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3Qg
VGV4dEF1dG9TaXppbmdLZXkmIHZhbHVlKTsKLX07CitjbGFzcyBUZXh0QXV0b1NpemluZzsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCkBAIC0xMzYyLDYgKzEzNTQsMTAgQEAg
cHVibGljOgogICAgIC8vIFBlciBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS9vYnNvbGV0ZS5odG1sI2RvbS1kb2N1bWVudC1yZWxlYXNlZXZlbnRzLCB0aGlzIG1ldGhvZCBk
b2VzIG5vdGhpbmcuCiAgICAgdm9pZCByZWxlYXNlRXZlbnRzKCkgeyB9CiAKKyNpZiBFTkFCTEUo
VEVYVF9BVVRPU0laSU5HKQorICAgIFRleHRBdXRvU2l6aW5nJiB0ZXh0QXV0b1NpemluZygpOwor
ZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVz
aXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsKICAgICBEb2N1bWVu
dChGcmFtZSosIGNvbnN0IFVSTCYsIHVuc2lnbmVkID0gRGVmYXVsdERvY3VtZW50Q2xhc3MsIHVu
c2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzID0gMCk7CkBAIC0xNjY1LDE0ICsxNjYxLDcgQEAgcHJp
dmF0ZToKICAgICBWZWN0b3I8VGFzaz4gbV9wZW5kaW5nVGFza3M7CiAKICNpZiBFTkFCTEUoVEVY
VF9BVVRPU0laSU5HKQotcHVibGljOgotICAgIHZvaWQgYWRkQXV0b1NpemVkTm9kZShUZXh0Jiwg
ZmxvYXQgc2l6ZSk7Ci0gICAgdm9pZCB1cGRhdGVBdXRvU2l6ZWROb2RlcygpOwotICAgIHZvaWQg
Y2xlYXJBdXRvU2l6ZWROb2RlcygpOwotCi1wcml2YXRlOgotICAgIHVzaW5nIFRleHRBdXRvU2l6
aW5nTWFwID0gSGFzaE1hcDxUZXh0QXV0b1NpemluZ0tleSwgc3RkOjp1bmlxdWVfcHRyPFRleHRB
dXRvU2l6aW5nVmFsdWU+LCBUZXh0QXV0b1NpemluZ0hhc2gsIFRleHRBdXRvU2l6aW5nVHJhaXRz
PjsKLSAgICBUZXh0QXV0b1NpemluZ01hcCBtX3RleHRBdXRvU2l6ZWROb2RlczsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8VGV4dEF1dG9TaXppbmc+IG1fdGV4dEF1dG9TaXppbmc7CiAjZW5kaWYKIAog
ICAgIFRpbWVyIG1fdmlzdWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXI7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAkocmV2aXNpb24gMjIwNjQ2
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlNpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJTaW1wbGVMaW5lTGF5
b3V0UGFnaW5hdGlvbi5oIgorI2luY2x1ZGUgIlRleHRBdXRvU2l6aW5nLmgiCiAjaW5jbHVkZSAi
VmVydGljYWxQb3NpdGlvbkNhY2hlLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAK
QEAgLTM5MDYsNyArMzkwNyw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RDb21wdXRl
ZEZvbnQKICAgICAgICAgICAgIGZsb2F0IGxpbmVUZXh0TXVsdGlwbGllciA9IGxpbmVDb3VudCA9
PSBPTkVfTElORSA/IG9uZUxpbmVUZXh0TXVsdGlwbGllcihzcGVjaWZpZWRTaXplKSA6IHRleHRN
dWx0aXBsaWVyKHNwZWNpZmllZFNpemUpOwogICAgICAgICAgICAgZmxvYXQgY2FuZGlkYXRlTmV3
U2l6ZSA9IHJvdW5kZihzdGQ6Om1pbihtaW5Gb250U2l6ZSwgc3BlY2lmaWVkU2l6ZSAqIGxpbmVU
ZXh0TXVsdGlwbGllcikpOwogICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZU5ld1NpemUgPiBzcGVj
aWZpZWRTaXplICYmIGNhbmRpZGF0ZU5ld1NpemUgIT0gZm9udERlc2NyaXB0aW9uLmNvbXB1dGVk
U2l6ZSgpICYmIHRleHQudGV4dE5vZGUoKSAmJiBvbGRTdHlsZS50ZXh0U2l6ZUFkanVzdCgpLmlz
QXV0bygpKQotICAgICAgICAgICAgICAgIGRvY3VtZW50KCkuYWRkQXV0b1NpemVkTm9kZSgqdGV4
dC50ZXh0Tm9kZSgpLCBjYW5kaWRhdGVOZXdTaXplKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dCgpLnRleHRBdXRvU2l6aW5nKCkuYWRkVGV4dE5vZGUoKnRleHQudGV4dE5vZGUoKSwgY2FuZGlk
YXRlTmV3U2l6ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBkZXNjZW5kYW50ID0gUmVuZGVyT2Jq
ZWN0VHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJlbih0ZXh0LCB0aGlzKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyMDY0
NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzQsNiArNzQsNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNs
dWRlICJTdHlsZVBlbmRpbmdSZXNvdXJjZXMuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgi
CisjaW5jbHVkZSAiVGV4dEF1dG9TaXppbmcuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRzLmg+CiAKQEAgLTIzMTQsNyArMjMxNSw3IEBAIHZv
aWQgUmVuZGVyRWxlbWVudDo6YWRqdXN0Q29tcHV0ZWRGb250U2kKICAgICB9CiAKICAgICAvLyBS
ZW1vdmUgc3R5bGUgZnJvbSBhdXRvLXNpemluZyB0YWJsZSB0aGF0IGFyZSBubyBsb25nZXIgdmFs
aWQuCi0gICAgZG9jdW1lbnQtPnVwZGF0ZUF1dG9TaXplZE5vZGVzKCk7CisgICAgZG9jdW1lbnQt
PnRleHRBdXRvU2l6aW5nKCkudXBkYXRlUmVuZGVyVHJlZSgpOwogfQogCiB2b2lkIFJlbmRlckVs
ZW1lbnQ6OnJlc2V0VGV4dEF1dG9zaXppbmcoKQpAQCAtMjMyNSw3ICsyMzI2LDcgQEAgdm9pZCBS
ZW5kZXJFbGVtZW50OjpyZXNldFRleHRBdXRvc2l6aW5nKAogCiAgICAgTE9HKFRleHRBdXRvc2l6
aW5nLCAiUmVuZGVyRWxlbWVudDo6cmVzZXRUZXh0QXV0b3NpemluZygpIik7CiAKLSAgICBkb2N1
bWVudC0+Y2xlYXJBdXRvU2l6ZWROb2RlcygpOworICAgIGRvY3VtZW50LT50ZXh0QXV0b1Npemlu
ZygpLnJlc2V0KCk7CiAKICAgICBWZWN0b3I8aW50PiBkZXB0aFN0YWNrOwogICAgIGludCBjdXJy
ZW50RGVwdGggPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvU2l6
aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9T
aXppbmcuY3BwCShyZXZpc2lvbiAyMjA2NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dEF1dG9TaXppbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNiArMjE1LDM3IEBAIHZv
aWQgVGV4dEF1dG9TaXppbmdWYWx1ZTo6cmVzZXQoKQogICAgIH0KIH0KIAordm9pZCBUZXh0QXV0
b1NpemluZ1RyYWl0czo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKFRleHRBdXRvU2l6aW5nS2V5JiBz
bG90KQoreworICAgIG5ldyAoTm90TnVsbCwgJnNsb3QpIFRleHRBdXRvU2l6aW5nS2V5KFRleHRB
dXRvU2l6aW5nS2V5OjpEZWxldGVkKTsKK30KKworYm9vbCBUZXh0QXV0b1NpemluZ1RyYWl0czo6
aXNEZWxldGVkVmFsdWUoY29uc3QgVGV4dEF1dG9TaXppbmdLZXkmIHZhbHVlKQoreworICAgIHJl
dHVybiB2YWx1ZS5pc0RlbGV0ZWQoKTsKK30KKwordm9pZCBUZXh0QXV0b1NpemluZzo6YWRkVGV4
dE5vZGUoVGV4dCYgbm9kZSwgZmxvYXQgY2FuZGlkYXRlU2l6ZSkKK3sKKyAgICBMT0coVGV4dEF1
dG9zaXppbmcsICIgYWRkQXV0b1NpemVkTm9kZSAlcCBjYW5kaWRhdGVTaXplPSVmIiwgJm5vZGUs
IGNhbmRpZGF0ZVNpemUpOworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV90ZXh0Tm9kZXMuYWRkPFRl
eHRBdXRvU2l6aW5nSGFzaFRyYW5zbGF0b3I+KG5vZGUucmVuZGVyZXIoKS0+c3R5bGUoKSwgbnVs
bHB0cik7CisgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KQorICAgICAgICBhZGRSZXN1bHQu
aXRlcmF0b3ItPnZhbHVlID0gc3RkOjptYWtlX3VuaXF1ZTxUZXh0QXV0b1NpemluZ1ZhbHVlPigp
OworICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmFkZFRleHROb2RlKG5vZGUsIGNhbmRp
ZGF0ZVNpemUpOworfQorCit2b2lkIFRleHRBdXRvU2l6aW5nOjp1cGRhdGVSZW5kZXJUcmVlKCkK
K3sKKyAgICBtX3RleHROb2Rlcy5yZW1vdmVJZihbXShhdXRvJiBrZXlBbmRWYWx1ZSkgeworICAg
ICAgICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUtPmFkanVzdFRleHROb2RlU2l6ZXMoKSA9PSBU
ZXh0QXV0b1NpemluZ1ZhbHVlOjpTdGlsbEhhc05vZGVzOjpObzsKKyAgICB9KTsKK30KKwordm9p
ZCBUZXh0QXV0b1NpemluZzo6cmVzZXQoKQoreworICAgIG1fdGV4dE5vZGVzLmNsZWFyKCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShURVhUX0FVVE9T
SVpJTkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9TaXppbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9TaXppbmcuaAko
cmV2aXNpb24gMjIwNjQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvU2l6
aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoVEVYVF9B
VVRPU0laSU5HKQogCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0xMDcsNiArMTA4LDI2IEBAIHByaXZh
dGU6CiAgICAgSGFzaFNldDxSZWZQdHI8VGV4dD4+IG1fYXV0b1NpemVkTm9kZXM7CiB9OwogCitz
dHJ1Y3QgVGV4dEF1dG9TaXppbmdUcmFpdHMgOiBXVEY6OkdlbmVyaWNIYXNoVHJhaXRzPFRleHRB
dXRvU2l6aW5nS2V5PiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9
IHRydWU7CisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFRleHRBdXRvU2l6
aW5nS2V5JiBzbG90KTsKKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBUZXh0
QXV0b1NpemluZ0tleSYgdmFsdWUpOworfTsKKworY2xhc3MgVGV4dEF1dG9TaXppbmcgeworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFRleHRBdXRvU2l6aW5nKCkg
PSBkZWZhdWx0OworCisgICAgdm9pZCBhZGRUZXh0Tm9kZShUZXh0JiwgZmxvYXQgc2l6ZSk7Cisg
ICAgdm9pZCB1cGRhdGVSZW5kZXJUcmVlKCk7CisgICAgdm9pZCByZXNldCgpOworCitwcml2YXRl
OgorICAgIHVzaW5nIE5vZGVNYXAgPSBIYXNoTWFwPFRleHRBdXRvU2l6aW5nS2V5LCBzdGQ6OnVu
aXF1ZV9wdHI8VGV4dEF1dG9TaXppbmdWYWx1ZT4sIFRleHRBdXRvU2l6aW5nSGFzaCwgVGV4dEF1
dG9TaXppbmdUcmFpdHM+OworICAgIE5vZGVNYXAgbV90ZXh0Tm9kZXM7Cit9OworCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318033</attachid>
            <date>2017-08-14 05:13:05 -0700</date>
            <delta_ts>2017-08-14 05:38:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>text-autosizing-class-4.patch</filename>
            <type>text/plain</type>
            <size>10942</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA4LTE0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBGYWN0b3IgdGV4dCBhdXRvc2l6
aW5nIGludG8gYSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc1NTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW92ZSB0aGUgcmVtYWluaW5nIHBhcnRzIG91dCBvZiBEb2N1bWVudC4KKworICAg
ICAgICAqIGNzcy9TdHlsZUJ1aWxkZXJDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1
dGVMaW5lSGVpZ2h0TXVsdGlwbGllckR1ZVRvRm9udFNpemUpOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGVzdHJveVJlbmRlclRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRBdXRvU2l6aW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRBdXRvU2l6aW5nVHJhaXRzOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9TaXppbmdUcmFpdHM6OmlzRGVsZXRl
ZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRBdXRvU2l6
ZWROb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVBdXRv
U2l6ZWROb2Rlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2xlYXJB
dXRvU2l6ZWROb2Rlcyk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9ja0Zsb3c6OmFkanVzdENvbXB1dGVkRm9udFNpemVzKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50
OjphZGp1c3RDb21wdXRlZEZvbnRTaXplc09uQmxvY2tzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckVsZW1lbnQ6OnJlc2V0VGV4dEF1dG9zaXppbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9U
ZXh0QXV0b1NpemluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b1NpemluZ1RyYWl0
czo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvU2l6
aW5nVHJhaXRzOjppc0RlbGV0ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b1Np
emluZzo6YWRkVGV4dE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9TaXppbmc6OnVw
ZGF0ZVJlbmRlclRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9TaXppbmc6OnJlc2V0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9TaXppbmcuaDoKKwogMjAxNy0wOC0xNCAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW1JlbmRlciBUcmVl
IE11dGF0aW9uXSBGaXJzdCBsZXR0ZXIgc2hvdWxkIG5vdCBtdXRhdGUgdGhlIHJlbmRlciB0cmVl
IHdoaWxlIGluIGxheW91dC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJD
dXN0b20uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3Vz
dG9tLmgJKHJldmlzaW9uIDIyMDY0NikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxk
ZXJDdXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAtNjgwLDcgKzY4MCw3IEBAIHN0YXRpYyBpbmxp
bmUgZmxvYXQgY29tcHV0ZUxpbmVIZWlnaHRNdWwKICAgICAgICAgICAgICAgICAvLyB0aGF0IHRo
ZSBtaW5pbXVtIGZvbnQgc2l6ZSBpcyB0aGUgb25seSB0aGluZyBhZmZlY3RpbmcgdGhlIGNvbXB1
dGVkIGZvbnQgc2l6ZS4KIAogICAgICAgICAgICAgICAgIC8vIFRoaXMgY2FsY3VsYXRpb24gbWF0
Y2hlcyB0aGUgbGluZS1oZWlnaHQgY29tcHV0ZWQgc2l6ZSBjYWxjdWxhdGlvbiBpbgotICAgICAg
ICAgICAgICAgIC8vIFRleHRBdXRvU2l6aW5nVmFsdWU6OmFkanVzdFRleHROb2RlU2l6ZXMoKS4K
KyAgICAgICAgICAgICAgICAvLyBUZXh0QXV0b1NpemluZzo6VmFsdWU6OmFkanVzdFRleHROb2Rl
U2l6ZXMoKS4KICAgICAgICAgICAgICAgICBhdXRvIHNjYWxlQ2hhbmdlID0gbWluaW11bUZvbnRT
aXplIC8gc3BlY2lmaWVkRm9udFNpemU7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHNjYWxlQ2hh
bmdlOwogICAgICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lv
biAyMjA2NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MjcsMjAgKzQyNyw2IEBAIHN0YXRpYyB2b2lkIHByaW50TmF2aWdhdGlvbkVycm9y
TWVzc2FnZSgKICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnByaW50RXJyb3JN
ZXNzYWdlKG1lc3NhZ2UpOwogfQogCi0jaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKLQotdm9p
ZCBUZXh0QXV0b1NpemluZ1RyYWl0czo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKFRleHRBdXRvU2l6
aW5nS2V5JiBzbG90KQotewotICAgIG5ldyAoTm90TnVsbCwgJnNsb3QpIFRleHRBdXRvU2l6aW5n
S2V5KFRleHRBdXRvU2l6aW5nS2V5OjpEZWxldGVkKTsKLX0KLQotYm9vbCBUZXh0QXV0b1Npemlu
Z1RyYWl0czo6aXNEZWxldGVkVmFsdWUoY29uc3QgVGV4dEF1dG9TaXppbmdLZXkmIHZhbHVlKQot
ewotICAgIHJldHVybiB2YWx1ZS5pc0RlbGV0ZWQoKTsKLX0KLQotI2VuZGlmCi0KIHVpbnQ2NF90
IERvY3VtZW50OjpzX2dsb2JhbFRyZWVWZXJzaW9uID0gMDsKIAogSGFzaFNldDxEb2N1bWVudCo+
JiBEb2N1bWVudDo6YWxsRG9jdW1lbnRzKCkKQEAgLTIyNjQsOCArMjI1MCw3IEBAIHZvaWQgRG9j
dW1lbnQ6OmRlc3Ryb3lSZW5kZXJUcmVlKCkKICAgICBOb2RlOjpzZXRSZW5kZXJlcihudWxscHRy
KTsKIAogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0gICAgLy8gRG8gdGhpcyBiZWZvcmUg
dGhlIGFyZW5hIGlzIGNsZWFyZWQsIHdoaWNoIGlzIG5lZWRlZCB0byBkZXJlZiB0aGUgUmVuZGVy
U3R5bGUgb24gVGV4dEF1dG9TaXppbmdLZXkuCi0gICAgbV90ZXh0QXV0b1NpemVkTm9kZXMuY2xl
YXIoKTsKKyAgICBtX3RleHRBdXRvU2l6aW5nID0gbnVsbHB0cjsKICNlbmRpZgogCiAgICAgaWYg
KHZpZXcoKSkKQEAgLTU1NTgsMjggKzU1NDMsMTIgQEAgSFRNTENhbnZhc0VsZW1lbnQqIERvY3Vt
ZW50OjpnZXRDU1NDYW52YQogfQogCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKLQotdm9p
ZCBEb2N1bWVudDo6YWRkQXV0b1NpemVkTm9kZShUZXh0JiBub2RlLCBmbG9hdCBjYW5kaWRhdGVT
aXplKQorVGV4dEF1dG9TaXppbmcmIERvY3VtZW50Ojp0ZXh0QXV0b1NpemluZygpCiB7Ci0gICAg
TE9HKFRleHRBdXRvc2l6aW5nLCAiIGFkZEF1dG9TaXplZE5vZGUgJXAgY2FuZGlkYXRlU2l6ZT0l
ZiIsICZub2RlLCBjYW5kaWRhdGVTaXplKTsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fdGV4dEF1
dG9TaXplZE5vZGVzLmFkZDxUZXh0QXV0b1NpemluZ0hhc2hUcmFuc2xhdG9yPihub2RlLnJlbmRl
cmVyKCktPnN0eWxlKCksIG51bGxwdHIpOwotICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkK
LSAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4
dEF1dG9TaXppbmdWYWx1ZT4oKTsKLSAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5hZGRU
ZXh0Tm9kZShub2RlLCBjYW5kaWRhdGVTaXplKTsKLX0KLQotdm9pZCBEb2N1bWVudDo6dXBkYXRl
QXV0b1NpemVkTm9kZXMoKQotewotICAgIG1fdGV4dEF1dG9TaXplZE5vZGVzLnJlbW92ZUlmKFtd
KGF1dG8mIGtleUFuZFZhbHVlKSB7Ci0gICAgICAgIHJldHVybiBrZXlBbmRWYWx1ZS52YWx1ZS0+
YWRqdXN0VGV4dE5vZGVTaXplcygpID09IFRleHRBdXRvU2l6aW5nVmFsdWU6OlN0aWxsSGFzTm9k
ZXM6Ok5vOwotICAgIH0pOworICAgIGlmICghbV90ZXh0QXV0b1NpemluZykKKyAgICAgICAgbV90
ZXh0QXV0b1NpemluZyA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4dEF1dG9TaXppbmc+KCk7CisgICAg
cmV0dXJuICptX3RleHRBdXRvU2l6aW5nOwogfQotICAgIAotdm9pZCBEb2N1bWVudDo6Y2xlYXJB
dXRvU2l6ZWROb2RlcygpCi17Ci0gICAgbV90ZXh0QXV0b1NpemVkTm9kZXMuY2xlYXIoKTsKLX0K
LQogI2VuZGlmIC8vIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAKIHZvaWQgRG9jdW1lbnQ6Omlu
aXRETlNQcmVmZXRjaCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMjIwNjQ2
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIw
NywxNSArMjA3LDcgQEAgY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOwogI2VuZGlm
CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotc3RydWN0IFRleHRBdXRvU2l6aW5nSGFz
aDsKLWNsYXNzIFRleHRBdXRvU2l6aW5nS2V5OwotY2xhc3MgVGV4dEF1dG9TaXppbmdWYWx1ZTsK
LQotc3RydWN0IFRleHRBdXRvU2l6aW5nVHJhaXRzIDogV1RGOjpHZW5lcmljSGFzaFRyYWl0czxU
ZXh0QXV0b1NpemluZ0tleT4gewotICAgIHN0YXRpYyBjb25zdCBib29sIGVtcHR5VmFsdWVJc1pl
cm8gPSB0cnVlOwotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShUZXh0QXV0
b1NpemluZ0tleSYgc2xvdCk7Ci0gICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3Qg
VGV4dEF1dG9TaXppbmdLZXkmIHZhbHVlKTsKLX07CitjbGFzcyBUZXh0QXV0b1NpemluZzsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCkBAIC0xMzYyLDYgKzEzNTQsMTAgQEAg
cHVibGljOgogICAgIC8vIFBlciBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS9vYnNvbGV0ZS5odG1sI2RvbS1kb2N1bWVudC1yZWxlYXNlZXZlbnRzLCB0aGlzIG1ldGhvZCBk
b2VzIG5vdGhpbmcuCiAgICAgdm9pZCByZWxlYXNlRXZlbnRzKCkgeyB9CiAKKyNpZiBFTkFCTEUo
VEVYVF9BVVRPU0laSU5HKQorICAgIFRleHRBdXRvU2l6aW5nJiB0ZXh0QXV0b1NpemluZygpOwor
I2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBlbnVtIENvbnN0cnVjdGlvbkZsYWdzIHsgU3ludGhl
c2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNlaG9sZGVyID0gMSA8PCAxIH07CiAgICAgRG9jdW1l
bnQoRnJhbWUqLCBjb25zdCBVUkwmLCB1bnNpZ25lZCA9IERlZmF1bHREb2N1bWVudENsYXNzLCB1
bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9IDApOwpAQCAtMTY2NSwxNCArMTY2MSw3IEBAIHBy
aXZhdGU6CiAgICAgVmVjdG9yPFRhc2s+IG1fcGVuZGluZ1Rhc2tzOwogCiAjaWYgRU5BQkxFKFRF
WFRfQVVUT1NJWklORykKLXB1YmxpYzoKLSAgICB2b2lkIGFkZEF1dG9TaXplZE5vZGUoVGV4dCYs
IGZsb2F0IHNpemUpOwotICAgIHZvaWQgdXBkYXRlQXV0b1NpemVkTm9kZXMoKTsKLSAgICB2b2lk
IGNsZWFyQXV0b1NpemVkTm9kZXMoKTsKLQotcHJpdmF0ZToKLSAgICB1c2luZyBUZXh0QXV0b1Np
emluZ01hcCA9IEhhc2hNYXA8VGV4dEF1dG9TaXppbmdLZXksIHN0ZDo6dW5pcXVlX3B0cjxUZXh0
QXV0b1NpemluZ1ZhbHVlPiwgVGV4dEF1dG9TaXppbmdIYXNoLCBUZXh0QXV0b1NpemluZ1RyYWl0
cz47Ci0gICAgVGV4dEF1dG9TaXppbmdNYXAgbV90ZXh0QXV0b1NpemVkTm9kZXM7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFRleHRBdXRvU2l6aW5nPiBtX3RleHRBdXRvU2l6aW5nOwogI2VuZGlmCiAK
ICAgICBUaW1lciBtX3Zpc3VhbFVwZGF0ZXNTdXBwcmVzc2lvblRpbWVyOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAJKHJldmlzaW9uIDIyMDY0
NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJTaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiU2ltcGxlTGluZUxh
eW91dFBhZ2luYXRpb24uaCIKKyNpbmNsdWRlICJUZXh0QXV0b1NpemluZy5oIgogI2luY2x1ZGUg
IlZlcnRpY2FsUG9zaXRpb25DYWNoZS5oIgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgog
CkBAIC0zOTA2LDcgKzM5MDcsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRqdXN0Q29tcHV0
ZWRGb250CiAgICAgICAgICAgICBmbG9hdCBsaW5lVGV4dE11bHRpcGxpZXIgPSBsaW5lQ291bnQg
PT0gT05FX0xJTkUgPyBvbmVMaW5lVGV4dE11bHRpcGxpZXIoc3BlY2lmaWVkU2l6ZSkgOiB0ZXh0
TXVsdGlwbGllcihzcGVjaWZpZWRTaXplKTsKICAgICAgICAgICAgIGZsb2F0IGNhbmRpZGF0ZU5l
d1NpemUgPSByb3VuZGYoc3RkOjptaW4obWluRm9udFNpemUsIHNwZWNpZmllZFNpemUgKiBsaW5l
VGV4dE11bHRpcGxpZXIpKTsKICAgICAgICAgICAgIGlmIChjYW5kaWRhdGVOZXdTaXplID4gc3Bl
Y2lmaWVkU2l6ZSAmJiBjYW5kaWRhdGVOZXdTaXplICE9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRl
ZFNpemUoKSAmJiB0ZXh0LnRleHROb2RlKCkgJiYgb2xkU3R5bGUudGV4dFNpemVBZGp1c3QoKS5p
c0F1dG8oKSkKLSAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmFkZEF1dG9TaXplZE5vZGUoKnRl
eHQudGV4dE5vZGUoKSwgY2FuZGlkYXRlTmV3U2l6ZSk7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQoKS50ZXh0QXV0b1NpemluZygpLmFkZFRleHROb2RlKCp0ZXh0LnRleHROb2RlKCksIGNhbmRp
ZGF0ZU5ld1NpemUpOwogICAgICAgICB9CiAKICAgICAgICAgZGVzY2VuZGFudCA9IFJlbmRlck9i
amVjdFRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4odGV4dCwgdGhpcyk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjA2
NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTc0LDYgKzc0LDcgQEAKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5j
bHVkZSAiU3R5bGVQZW5kaW5nUmVzb3VyY2VzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5o
IgorI2luY2x1ZGUgIlRleHRBdXRvU2l6aW5nLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgogCkBAIC0yMzE0LDcgKzIzMTUsNyBAQCB2
b2lkIFJlbmRlckVsZW1lbnQ6OmFkanVzdENvbXB1dGVkRm9udFNpCiAgICAgfQogCiAgICAgLy8g
UmVtb3ZlIHN0eWxlIGZyb20gYXV0by1zaXppbmcgdGFibGUgdGhhdCBhcmUgbm8gbG9uZ2VyIHZh
bGlkLgotICAgIGRvY3VtZW50LT51cGRhdGVBdXRvU2l6ZWROb2RlcygpOworICAgIGRvY3VtZW50
LT50ZXh0QXV0b1NpemluZygpLnVwZGF0ZVJlbmRlclRyZWUoKTsKIH0KIAogdm9pZCBSZW5kZXJF
bGVtZW50OjpyZXNldFRleHRBdXRvc2l6aW5nKCkKQEAgLTIzMjUsNyArMjMyNiw3IEBAIHZvaWQg
UmVuZGVyRWxlbWVudDo6cmVzZXRUZXh0QXV0b3NpemluZygKIAogICAgIExPRyhUZXh0QXV0b3Np
emluZywgIlJlbmRlckVsZW1lbnQ6OnJlc2V0VGV4dEF1dG9zaXppbmcoKSIpOwogCi0gICAgZG9j
dW1lbnQtPmNsZWFyQXV0b1NpemVkTm9kZXMoKTsKKyAgICBkb2N1bWVudC0+dGV4dEF1dG9TaXpp
bmcoKS5yZXNldCgpOwogCiAgICAgVmVjdG9yPGludD4gZGVwdGhTdGFjazsKICAgICBpbnQgY3Vy
cmVudERlcHRoID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b1Np
emluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRv
U2l6aW5nLmNwcAkocmV2aXNpb24gMjIwNjQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1RleHRBdXRvU2l6aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDYgKzIxNSwyNyBAQCB2
b2lkIFRleHRBdXRvU2l6aW5nVmFsdWU6OnJlc2V0KCkKICAgICB9CiB9CiAKK3ZvaWQgVGV4dEF1
dG9TaXppbmc6OmFkZFRleHROb2RlKFRleHQmIG5vZGUsIGZsb2F0IGNhbmRpZGF0ZVNpemUpCit7
CisgICAgTE9HKFRleHRBdXRvc2l6aW5nLCAiIGFkZEF1dG9TaXplZE5vZGUgJXAgY2FuZGlkYXRl
U2l6ZT0lZiIsICZub2RlLCBjYW5kaWRhdGVTaXplKTsKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1f
dGV4dE5vZGVzLmFkZDxUZXh0QXV0b1NpemluZ0hhc2hUcmFuc2xhdG9yPihub2RlLnJlbmRlcmVy
KCktPnN0eWxlKCksIG51bGxwdHIpOworICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkKKyAg
ICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4dEF1
dG9TaXppbmdWYWx1ZT4oKTsKKyAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5hZGRUZXh0
Tm9kZShub2RlLCBjYW5kaWRhdGVTaXplKTsKK30KKwordm9pZCBUZXh0QXV0b1NpemluZzo6dXBk
YXRlUmVuZGVyVHJlZSgpCit7CisgICAgbV90ZXh0Tm9kZXMucmVtb3ZlSWYoW10oYXV0byYga2V5
QW5kVmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLnZhbHVlLT5hZGp1c3RUZXh0
Tm9kZVNpemVzKCkgPT0gVGV4dEF1dG9TaXppbmdWYWx1ZTo6U3RpbGxIYXNOb2Rlczo6Tm87Cisg
ICAgfSk7Cit9CisKK3ZvaWQgVGV4dEF1dG9TaXppbmc6OnJlc2V0KCkKK3sKKyAgICBtX3RleHRO
b2Rlcy5jbGVhcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoVEVYVF9BVVRPU0laSU5HKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRBdXRvU2l6aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRBdXRvU2l6aW5nLmgJKHJldmlzaW9uIDIyMDY0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9UZXh0QXV0b1NpemluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAj
aWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKIAogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMTA3LDYg
KzEwOCwyNiBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8UmVmUHRyPFRleHQ+PiBtX2F1dG9TaXpl
ZE5vZGVzOwogfTsKIAorc3RydWN0IFRleHRBdXRvU2l6aW5nVHJhaXRzIDogV1RGOjpHZW5lcmlj
SGFzaFRyYWl0czxUZXh0QXV0b1NpemluZ0tleT4geworICAgIHN0YXRpYyBjb25zdCBib29sIGVt
cHR5VmFsdWVJc1plcm8gPSB0cnVlOworICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRW
YWx1ZShUZXh0QXV0b1NpemluZ0tleSYgc2xvdCkgeyBuZXcgKE5vdE51bGwsICZzbG90KSBUZXh0
QXV0b1NpemluZ0tleShUZXh0QXV0b1NpemluZ0tleTo6RGVsZXRlZCk7IH0KKyAgICBzdGF0aWMg
Ym9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBUZXh0QXV0b1NpemluZ0tleSYgdmFsdWUpIHsgcmV0
dXJuIHZhbHVlLmlzRGVsZXRlZCgpOyB9Cit9OworCitjbGFzcyBUZXh0QXV0b1NpemluZyB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgVGV4dEF1dG9TaXppbmco
KSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIGFkZFRleHROb2RlKFRleHQmLCBmbG9hdCBzaXplKTsK
KyAgICB2b2lkIHVwZGF0ZVJlbmRlclRyZWUoKTsKKyAgICB2b2lkIHJlc2V0KCk7CisKK3ByaXZh
dGU6CisgICAgdXNpbmcgTm9kZU1hcCA9IEhhc2hNYXA8VGV4dEF1dG9TaXppbmdLZXksIHN0ZDo6
dW5pcXVlX3B0cjxUZXh0QXV0b1NpemluZ1ZhbHVlPiwgVGV4dEF1dG9TaXppbmdIYXNoLCBUZXh0
QXV0b1NpemluZ1RyYWl0cz47CisgICAgTm9kZU1hcCBtX3RleHROb2RlczsKK307CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCg==
</data>
<flag name="review"
          id="338498"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318035</attachid>
            <date>2017-08-14 05:38:19 -0700</date>
            <delta_ts>2017-08-14 06:20:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>text-autosizing-class-5.patch</filename>
            <type>text/plain</type>
            <size>10911</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMDY3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA4LTE0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBGYWN0b3IgdGV4dCBhdXRvc2l6
aW5nIGludG8gYSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc1NTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KKwor
ICAgICAgICBNb3ZlIHRoZSByZW1haW5pbmcgcGFydHMgb3V0IG9mIERvY3VtZW50LgorCisgICAg
ICAgICogY3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0
ZUxpbmVIZWlnaHRNdWx0aXBsaWVyRHVlVG9Gb250U2l6ZSk6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkZXN0cm95UmVuZGVyVHJlZSk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGV4dEF1dG9TaXppbmcpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEF1dG9TaXppbmdUcmFpdHM6OmNvbnN0cnVjdERlbGV0ZWRWYWx1ZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b1NpemluZ1RyYWl0czo6aXNEZWxldGVk
VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZEF1dG9TaXpl
ZE5vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUF1dG9T
aXplZE5vZGVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjbGVhckF1
dG9TaXplZE5vZGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrRmxvdzo6YWRqdXN0Q29tcHV0ZWRGb250U2l6ZXMpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6
OmFkanVzdENvbXB1dGVkRm9udFNpemVzT25CbG9ja3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRWxlbWVudDo6cmVzZXRUZXh0QXV0b3NpemluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1Rl
eHRBdXRvU2l6aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvU2l6aW5nVHJhaXRz
Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9TaXpp
bmdUcmFpdHM6OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvU2l6
aW5nOjphZGRUZXh0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b1NpemluZzo6dXBk
YXRlUmVuZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b1NpemluZzo6cmVzZXQp
OgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b1NpemluZy5oOgorCiAyMDE3LTA4LTE0ICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbUmVuZGVyIFRyZWUg
TXV0YXRpb25dIEZpcnN0IGxldHRlciBzaG91bGQgbm90IG11dGF0ZSB0aGUgcmVuZGVyIHRyZWUg
d2hpbGUgaW4gbGF5b3V0LgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlckN1
c3RvbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDdXN0
b20uaAkocmV2aXNpb24gMjIwNjQ2KQorKysgU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRl
ckN1c3RvbS5oCSh3b3JraW5nIGNvcHkpCkBAIC02ODAsNyArNjgwLDcgQEAgc3RhdGljIGlubGlu
ZSBmbG9hdCBjb21wdXRlTGluZUhlaWdodE11bAogICAgICAgICAgICAgICAgIC8vIHRoYXQgdGhl
IG1pbmltdW0gZm9udCBzaXplIGlzIHRoZSBvbmx5IHRoaW5nIGFmZmVjdGluZyB0aGUgY29tcHV0
ZWQgZm9udCBzaXplLgogCiAgICAgICAgICAgICAgICAgLy8gVGhpcyBjYWxjdWxhdGlvbiBtYXRj
aGVzIHRoZSBsaW5lLWhlaWdodCBjb21wdXRlZCBzaXplIGNhbGN1bGF0aW9uIGluCi0gICAgICAg
ICAgICAgICAgLy8gVGV4dEF1dG9TaXppbmdWYWx1ZTo6YWRqdXN0VGV4dE5vZGVTaXplcygpLgor
ICAgICAgICAgICAgICAgIC8vIFRleHRBdXRvU2l6aW5nOjpWYWx1ZTo6YWRqdXN0VGV4dE5vZGVT
aXplcygpLgogICAgICAgICAgICAgICAgIGF1dG8gc2NhbGVDaGFuZ2UgPSBtaW5pbXVtRm9udFNp
emUgLyBzcGVjaWZpZWRGb250U2l6ZTsKICAgICAgICAgICAgICAgICByZXR1cm4gc2NhbGVDaGFu
Z2U7CiAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9u
IDIyMDY0NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQyNywyMCArNDI3LDYgQEAgc3RhdGljIHZvaWQgcHJpbnROYXZpZ2F0aW9uRXJyb3JN
ZXNzYWdlKAogICAgIGZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+cHJpbnRFcnJvck1l
c3NhZ2UobWVzc2FnZSk7CiB9CiAKLSNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotCi12b2lk
IFRleHRBdXRvU2l6aW5nVHJhaXRzOjpjb25zdHJ1Y3REZWxldGVkVmFsdWUoVGV4dEF1dG9TaXpp
bmdLZXkmIHNsb3QpCi17Ci0gICAgbmV3IChOb3ROdWxsLCAmc2xvdCkgVGV4dEF1dG9TaXppbmdL
ZXkoVGV4dEF1dG9TaXppbmdLZXk6OkRlbGV0ZWQpOwotfQotCi1ib29sIFRleHRBdXRvU2l6aW5n
VHJhaXRzOjppc0RlbGV0ZWRWYWx1ZShjb25zdCBUZXh0QXV0b1NpemluZ0tleSYgdmFsdWUpCi17
Ci0gICAgcmV0dXJuIHZhbHVlLmlzRGVsZXRlZCgpOwotfQotCi0jZW5kaWYKLQogdWludDY0X3Qg
RG9jdW1lbnQ6OnNfZ2xvYmFsVHJlZVZlcnNpb24gPSAwOwogCiBIYXNoU2V0PERvY3VtZW50Kj4m
IERvY3VtZW50OjphbGxEb2N1bWVudHMoKQpAQCAtMjI2NCw4ICsyMjUwLDcgQEAgdm9pZCBEb2N1
bWVudDo6ZGVzdHJveVJlbmRlclRyZWUoKQogICAgIE5vZGU6OnNldFJlbmRlcmVyKG51bGxwdHIp
OwogCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKLSAgICAvLyBEbyB0aGlzIGJlZm9yZSB0
aGUgYXJlbmEgaXMgY2xlYXJlZCwgd2hpY2ggaXMgbmVlZGVkIHRvIGRlcmVmIHRoZSBSZW5kZXJT
dHlsZSBvbiBUZXh0QXV0b1NpemluZ0tleS4KLSAgICBtX3RleHRBdXRvU2l6ZWROb2Rlcy5jbGVh
cigpOworICAgIG1fdGV4dEF1dG9TaXppbmcgPSBudWxscHRyOwogI2VuZGlmCiAKICAgICBpZiAo
dmlldygpKQpAQCAtNTU1OCwyOCArNTU0MywxMiBAQCBIVE1MQ2FudmFzRWxlbWVudCogRG9jdW1l
bnQ6OmdldENTU0NhbnZhCiB9CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotCi12b2lk
IERvY3VtZW50OjphZGRBdXRvU2l6ZWROb2RlKFRleHQmIG5vZGUsIGZsb2F0IGNhbmRpZGF0ZVNp
emUpCitUZXh0QXV0b1NpemluZyYgRG9jdW1lbnQ6OnRleHRBdXRvU2l6aW5nKCkKIHsKLSAgICBM
T0coVGV4dEF1dG9zaXppbmcsICIgYWRkQXV0b1NpemVkTm9kZSAlcCBjYW5kaWRhdGVTaXplPSVm
IiwgJm5vZGUsIGNhbmRpZGF0ZVNpemUpOwotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV90ZXh0QXV0
b1NpemVkTm9kZXMuYWRkPFRleHRBdXRvU2l6aW5nSGFzaFRyYW5zbGF0b3I+KG5vZGUucmVuZGVy
ZXIoKS0+c3R5bGUoKSwgbnVsbHB0cik7Ci0gICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KQot
ICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gc3RkOjptYWtlX3VuaXF1ZTxUZXh0
QXV0b1NpemluZ1ZhbHVlPigpOwotICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmFkZFRl
eHROb2RlKG5vZGUsIGNhbmRpZGF0ZVNpemUpOwotfQotCi12b2lkIERvY3VtZW50Ojp1cGRhdGVB
dXRvU2l6ZWROb2RlcygpCi17Ci0gICAgbV90ZXh0QXV0b1NpemVkTm9kZXMucmVtb3ZlSWYoW10o
YXV0byYga2V5QW5kVmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLnZhbHVlLT5h
ZGp1c3RUZXh0Tm9kZVNpemVzKCkgPT0gVGV4dEF1dG9TaXppbmdWYWx1ZTo6U3RpbGxIYXNOb2Rl
czo6Tm87Ci0gICAgfSk7CisgICAgaWYgKCFtX3RleHRBdXRvU2l6aW5nKQorICAgICAgICBtX3Rl
eHRBdXRvU2l6aW5nID0gc3RkOjptYWtlX3VuaXF1ZTxUZXh0QXV0b1NpemluZz4oKTsKKyAgICBy
ZXR1cm4gKm1fdGV4dEF1dG9TaXppbmc7CiB9Ci0gICAgCi12b2lkIERvY3VtZW50OjpjbGVhckF1
dG9TaXplZE5vZGVzKCkKLXsKLSAgICBtX3RleHRBdXRvU2l6ZWROb2Rlcy5jbGVhcigpOwotfQot
CiAjZW5kaWYgLy8gRU5BQkxFKFRFWFRfQVVUT1NJWklORykKIAogdm9pZCBEb2N1bWVudDo6aW5p
dEROU1ByZWZldGNoKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiAyMjA2NDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjA3
LDE1ICsyMDcsNyBAQCBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi1zdHJ1Y3QgVGV4dEF1dG9TaXppbmdIYXNo
OwotY2xhc3MgVGV4dEF1dG9TaXppbmdLZXk7Ci1jbGFzcyBUZXh0QXV0b1NpemluZ1ZhbHVlOwot
Ci1zdHJ1Y3QgVGV4dEF1dG9TaXppbmdUcmFpdHMgOiBXVEY6OkdlbmVyaWNIYXNoVHJhaXRzPFRl
eHRBdXRvU2l6aW5nS2V5PiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVy
byA9IHRydWU7Ci0gICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFRleHRBdXRv
U2l6aW5nS2V5JiBzbG90KTsKLSAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBU
ZXh0QXV0b1NpemluZ0tleSYgdmFsdWUpOwotfTsKK2NsYXNzIFRleHRBdXRvU2l6aW5nOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKQEAgLTEzNjIsNiArMTM1NCwxMCBAQCBw
dWJsaWM6CiAgICAgLy8gUGVyIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L29ic29sZXRlLmh0bWwjZG9tLWRvY3VtZW50LXJlbGVhc2VldmVudHMsIHRoaXMgbWV0aG9kIGRv
ZXMgbm90aGluZy4KICAgICB2b2lkIHJlbGVhc2VFdmVudHMoKSB7IH0KIAorI2lmIEVOQUJMRShU
RVhUX0FVVE9TSVpJTkcpCisgICAgVGV4dEF1dG9TaXppbmcmIHRleHRBdXRvU2l6aW5nKCk7Cisj
ZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVz
aXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsKICAgICBEb2N1bWVu
dChGcmFtZSosIGNvbnN0IFVSTCYsIHVuc2lnbmVkID0gRGVmYXVsdERvY3VtZW50Q2xhc3MsIHVu
c2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzID0gMCk7CkBAIC0xNjY1LDE0ICsxNjYxLDcgQEAgcHJp
dmF0ZToKICAgICBWZWN0b3I8VGFzaz4gbV9wZW5kaW5nVGFza3M7CiAKICNpZiBFTkFCTEUoVEVY
VF9BVVRPU0laSU5HKQotcHVibGljOgotICAgIHZvaWQgYWRkQXV0b1NpemVkTm9kZShUZXh0Jiwg
ZmxvYXQgc2l6ZSk7Ci0gICAgdm9pZCB1cGRhdGVBdXRvU2l6ZWROb2RlcygpOwotICAgIHZvaWQg
Y2xlYXJBdXRvU2l6ZWROb2RlcygpOwotCi1wcml2YXRlOgotICAgIHVzaW5nIFRleHRBdXRvU2l6
aW5nTWFwID0gSGFzaE1hcDxUZXh0QXV0b1NpemluZ0tleSwgc3RkOjp1bmlxdWVfcHRyPFRleHRB
dXRvU2l6aW5nVmFsdWU+LCBUZXh0QXV0b1NpemluZ0hhc2gsIFRleHRBdXRvU2l6aW5nVHJhaXRz
PjsKLSAgICBUZXh0QXV0b1NpemluZ01hcCBtX3RleHRBdXRvU2l6ZWROb2RlczsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8VGV4dEF1dG9TaXppbmc+IG1fdGV4dEF1dG9TaXppbmc7CiAjZW5kaWYKIAog
ICAgIFRpbWVyIG1fdmlzdWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXI7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAkocmV2aXNpb24gMjIwNjQ2
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlNpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJTaW1wbGVMaW5lTGF5
b3V0UGFnaW5hdGlvbi5oIgorI2luY2x1ZGUgIlRleHRBdXRvU2l6aW5nLmgiCiAjaW5jbHVkZSAi
VmVydGljYWxQb3NpdGlvbkNhY2hlLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAK
QEAgLTM5MDYsNyArMzkwNyw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RDb21wdXRl
ZEZvbnQKICAgICAgICAgICAgIGZsb2F0IGxpbmVUZXh0TXVsdGlwbGllciA9IGxpbmVDb3VudCA9
PSBPTkVfTElORSA/IG9uZUxpbmVUZXh0TXVsdGlwbGllcihzcGVjaWZpZWRTaXplKSA6IHRleHRN
dWx0aXBsaWVyKHNwZWNpZmllZFNpemUpOwogICAgICAgICAgICAgZmxvYXQgY2FuZGlkYXRlTmV3
U2l6ZSA9IHJvdW5kZihzdGQ6Om1pbihtaW5Gb250U2l6ZSwgc3BlY2lmaWVkU2l6ZSAqIGxpbmVU
ZXh0TXVsdGlwbGllcikpOwogICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZU5ld1NpemUgPiBzcGVj
aWZpZWRTaXplICYmIGNhbmRpZGF0ZU5ld1NpemUgIT0gZm9udERlc2NyaXB0aW9uLmNvbXB1dGVk
U2l6ZSgpICYmIHRleHQudGV4dE5vZGUoKSAmJiBvbGRTdHlsZS50ZXh0U2l6ZUFkanVzdCgpLmlz
QXV0bygpKQotICAgICAgICAgICAgICAgIGRvY3VtZW50KCkuYWRkQXV0b1NpemVkTm9kZSgqdGV4
dC50ZXh0Tm9kZSgpLCBjYW5kaWRhdGVOZXdTaXplKTsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dCgpLnRleHRBdXRvU2l6aW5nKCkuYWRkVGV4dE5vZGUoKnRleHQudGV4dE5vZGUoKSwgY2FuZGlk
YXRlTmV3U2l6ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBkZXNjZW5kYW50ID0gUmVuZGVyT2Jq
ZWN0VHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJlbih0ZXh0LCB0aGlzKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyMDY0
NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzQsNiArNzQsNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNs
dWRlICJTdHlsZVBlbmRpbmdSZXNvdXJjZXMuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgi
CisjaW5jbHVkZSAiVGV4dEF1dG9TaXppbmcuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRzLmg+CiAKQEAgLTIzMTQsNyArMjMxNSw3IEBAIHZv
aWQgUmVuZGVyRWxlbWVudDo6YWRqdXN0Q29tcHV0ZWRGb250U2kKICAgICB9CiAKICAgICAvLyBS
ZW1vdmUgc3R5bGUgZnJvbSBhdXRvLXNpemluZyB0YWJsZSB0aGF0IGFyZSBubyBsb25nZXIgdmFs
aWQuCi0gICAgZG9jdW1lbnQtPnVwZGF0ZUF1dG9TaXplZE5vZGVzKCk7CisgICAgZG9jdW1lbnQt
PnRleHRBdXRvU2l6aW5nKCkudXBkYXRlUmVuZGVyVHJlZSgpOwogfQogCiB2b2lkIFJlbmRlckVs
ZW1lbnQ6OnJlc2V0VGV4dEF1dG9zaXppbmcoKQpAQCAtMjMyNSw3ICsyMzI2LDcgQEAgdm9pZCBS
ZW5kZXJFbGVtZW50OjpyZXNldFRleHRBdXRvc2l6aW5nKAogCiAgICAgTE9HKFRleHRBdXRvc2l6
aW5nLCAiUmVuZGVyRWxlbWVudDo6cmVzZXRUZXh0QXV0b3NpemluZygpIik7CiAKLSAgICBkb2N1
bWVudC0+Y2xlYXJBdXRvU2l6ZWROb2RlcygpOworICAgIGRvY3VtZW50LT50ZXh0QXV0b1Npemlu
ZygpLnJlc2V0KCk7CiAKICAgICBWZWN0b3I8aW50PiBkZXB0aFN0YWNrOwogICAgIGludCBjdXJy
ZW50RGVwdGggPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvU2l6
aW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9T
aXppbmcuY3BwCShyZXZpc2lvbiAyMjA2NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dEF1dG9TaXppbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNiArMjE1LDI3IEBAIHZv
aWQgVGV4dEF1dG9TaXppbmdWYWx1ZTo6cmVzZXQoKQogICAgIH0KIH0KIAordm9pZCBUZXh0QXV0
b1NpemluZzo6YWRkVGV4dE5vZGUoVGV4dCYgbm9kZSwgZmxvYXQgY2FuZGlkYXRlU2l6ZSkKK3sK
KyAgICBMT0coVGV4dEF1dG9zaXppbmcsICIgYWRkQXV0b1NpemVkTm9kZSAlcCBjYW5kaWRhdGVT
aXplPSVmIiwgJm5vZGUsIGNhbmRpZGF0ZVNpemUpOworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV90
ZXh0Tm9kZXMuYWRkPFRleHRBdXRvU2l6aW5nSGFzaFRyYW5zbGF0b3I+KG5vZGUucmVuZGVyZXIo
KS0+c3R5bGUoKSwgbnVsbHB0cik7CisgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KQorICAg
ICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gc3RkOjptYWtlX3VuaXF1ZTxUZXh0QXV0
b1NpemluZ1ZhbHVlPigpOworICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmFkZFRleHRO
b2RlKG5vZGUsIGNhbmRpZGF0ZVNpemUpOworfQorCit2b2lkIFRleHRBdXRvU2l6aW5nOjp1cGRh
dGVSZW5kZXJUcmVlKCkKK3sKKyAgICBtX3RleHROb2Rlcy5yZW1vdmVJZihbXShhdXRvJiBrZXlB
bmRWYWx1ZSkgeworICAgICAgICByZXR1cm4ga2V5QW5kVmFsdWUudmFsdWUtPmFkanVzdFRleHRO
b2RlU2l6ZXMoKSA9PSBUZXh0QXV0b1NpemluZ1ZhbHVlOjpTdGlsbEhhc05vZGVzOjpObzsKKyAg
ICB9KTsKK30KKwordm9pZCBUZXh0QXV0b1NpemluZzo6cmVzZXQoKQoreworICAgIG1fdGV4dE5v
ZGVzLmNsZWFyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShURVhUX0FVVE9TSVpJTkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dEF1dG9TaXppbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dEF1dG9TaXppbmcuaAkocmV2aXNpb24gMjIwNjQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1RleHRBdXRvU2l6aW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNp
ZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0xMDcsNiAr
MTA4LDI1IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxSZWZQdHI8VGV4dD4+IG1fYXV0b1NpemVk
Tm9kZXM7CiB9OwogCitzdHJ1Y3QgVGV4dEF1dG9TaXppbmdUcmFpdHMgOiBXVEY6OkdlbmVyaWNI
YXNoVHJhaXRzPFRleHRBdXRvU2l6aW5nS2V5PiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgZW1w
dHlWYWx1ZUlzWmVybyA9IHRydWU7CisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZh
bHVlKFRleHRBdXRvU2l6aW5nS2V5JiBzbG90KSB7IG5ldyAoTm90TnVsbCwgJnNsb3QpIFRleHRB
dXRvU2l6aW5nS2V5KFRleHRBdXRvU2l6aW5nS2V5OjpEZWxldGVkKTsgfQorICAgIHN0YXRpYyBi
b29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFRleHRBdXRvU2l6aW5nS2V5JiB2YWx1ZSkgeyByZXR1
cm4gdmFsdWUuaXNEZWxldGVkKCk7IH0KK307CisKK2NsYXNzIFRleHRBdXRvU2l6aW5nIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBUZXh0QXV0b1NpemluZygp
ID0gZGVmYXVsdDsKKworICAgIHZvaWQgYWRkVGV4dE5vZGUoVGV4dCYsIGZsb2F0IHNpemUpOwor
ICAgIHZvaWQgdXBkYXRlUmVuZGVyVHJlZSgpOworICAgIHZvaWQgcmVzZXQoKTsKKworcHJpdmF0
ZToKKyAgICBIYXNoTWFwPFRleHRBdXRvU2l6aW5nS2V5LCBzdGQ6OnVuaXF1ZV9wdHI8VGV4dEF1
dG9TaXppbmdWYWx1ZT4sIFRleHRBdXRvU2l6aW5nSGFzaCwgVGV4dEF1dG9TaXppbmdUcmFpdHM+
IG1fdGV4dE5vZGVzOworfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFRFWFRfQVVUT1NJWklORykK
</data>

          </attachment>
      

    </bug>

</bugzilla>