<?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>204731</bug_id>
          
          <creation_ts>2019-12-01 12:15:44 -0800</creation_ts>
          <short_desc>[LFC][IFC] Trim trailing letter spacing.</short_desc>
          <delta_ts>2019-12-01 15:14:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</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>1594434</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-01 12:15:44 -0800</bug_when>
    <thetext>https://drafts.csswg.org/css-text-3/#letter-spacing-property

&quot;Because letter-spacing is not applied at the beginning or end of a line, text always fits flush with the edge of the block.
UAs therefore must not append letter spacing to the right or trailing edge of a line:&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594435</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-01 12:16:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/57545763&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594438</commentid>
    <comment_count>2</comment_count>
      <attachid>384579</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-01 12:29:54 -0800</bug_when>
    <thetext>Created attachment 384579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594446</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-01 15:14:44 -0800</bug_when>
    <thetext>Committed r252972: &lt;https://trac.webkit.org/changeset/252972&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384579</attachid>
            <date>2019-12-01 12:29:54 -0800</date>
            <delta_ts>2019-12-01 15:10:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204731-20191201122922.patch</filename>
            <type>text/plain</type>
            <size>19362</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzg0ZmVjNmI5NGNjZDA2
YmQxOWQ0Mzc3MDRjNjdiNzg5Y2Y2MjY2ZS4uOTZmNjI5OWI1ODBlZTlmZjVhYzQyYWYwZTg1NTE1
NDY4MDUwYjQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTEyLTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBUcmltIHRy
YWlsaW5nIGxldHRlciBzcGFjaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA0NzMxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzU0NTc2Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3Rv
ciB0cmFpbGluZyB0cmltbWFibGUgY29udGVudCB0byBzdXBwb3J0IHBhcnRpYWwsIG5vbi13aGl0
ZXNwYWNlIHRyaW1tYWJsZSBjb250ZW50IGUuZy4gbGV0dGVyIHNwYWNpbmcuCisgICAgICAgIGh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdGV4dC0zLyNsZXR0ZXItc3BhY2luZy1wcm9wZXJ0
eSAtPiBVQXMgdGhlcmVmb3JlIG11c3Qgbm90IGFwcGVuZCBsZXR0ZXIgc3BhY2luZyB0byB0aGUg
cmlnaHQgb3IgdHJhaWxpbmcgZWRnZSBvZiBhIGxpbmUuCisKKyAgICAgICAgKiBsYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkxpbmVCcmVha2VyOjpicmVha2luZ0NvbnRleHRGb3JJbmxpbmVDb250ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJyZWFrZXI6OkNvbnRlbnQ6OmFwcGVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50OjpyZXNldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50OjpUcmFpbGluZ1Ry
aW1tYWJsZUNvbnRlbnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJy
ZWFrZXI6OkNvbnRlbnQ6Omhhc05vbldoaXRlc3BhY2VPcklubGluZUJveCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50Ojp0cmFp
bGluZ1RyaW1tYWJsZVdpZHRoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpMaW5lQnJlYWtlcjo6Q29udGVudDo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50Ojpub25UcmltbWFibGVXaWR0aCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCcmVha2VyOjpDb250ZW50OjpoYXNU
cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpMaW5lQnJlYWtlcjo6Q29udGVudDo6aXNUcmFpbGluZ0NvbnRlbnRGdWxseVRyaW1tYWJsZSBj
b25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6cmVtb3ZlVHJh
aWxpbmdUcmltbWFibGVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1
aWxkZXI6OmFwcGVuZFRleHRDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZUJ1aWxkZXI6OlRyaW1tYWJsZUNvbnRlbnQ6OmFwcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkxpbmVCdWlsZGVyOjpJbmxpbmVJdGVtUnVuOjpyZW1vdmVUcmFpbGluZ0xldHRlclNw
YWNpbmcpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWls
ZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjppc1RyYWlsaW5n
Q29udGVudEZ1bGx5VHJpbW1hYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
TGluZUJ1aWxkZXI6OlRyaW1tYWJsZUNvbnRlbnQ6OmlzVHJhaWxpbmdDb250ZW50RnVsbHlUcmlt
bWFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6VHJp
bW1hYmxlQ29udGVudDo6Y2xlYXIpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0xpbmVMYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxh
eW91dENvbnRleHQ6OnByb2Nlc3NVbmNvbW1pdHRlZENvbnRlbnQpOgorCiAyMDE5LTExLTMwICBa
YWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBBZGQg
c3VwcG9ydCBmb3Igd29yZC1zcGFjaW5nIHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAK
aW5kZXggNTMwYjg5OTVjYTM2ODdmMmY5Mjg3ZmNkNDBhZmYyYmRiMzRhZjcwMy4uZjc4NmFlNjkw
ZGVlOTJlMjI2OGZkZTk3OTY2M2UzNTllMjdiNjM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNw
cApAQCAtNDksMjkgKzQ5LDI0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1RyYWlsaW5nV2hpdGVz
cGFjZVdpdGhQcmVXcmFwKGNvbnN0IElubGluZUl0ZW0mIHRyYWlsaW5nSW5sCiAgICAgcmV0dXJu
IHRyYWlsaW5nSW5saW5lSXRlbS5zdHlsZSgpLndoaXRlU3BhY2UoKSA9PSBXaGl0ZVNwYWNlOjpQ
cmVXcmFwICYmIGRvd25jYXN0PElubGluZVRleHRJdGVtPih0cmFpbGluZ0lubGluZUl0ZW0pLmlz
V2hpdGVzcGFjZSgpOwogfQogCi1MaW5lQnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0IExpbmVCcmVh
a2VyOjpicmVha2luZ0NvbnRleHRGb3JJbmxpbmVDb250ZW50KGNvbnN0IENvbnRlbnQmIGNvbnRl
bnQsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIExheW91dFVuaXQgdHJhaWxpbmdUcmltbWFi
bGVXaWR0aCwgIGJvb2wgbGluZUlzRW1wdHkpCitMaW5lQnJlYWtlcjo6QnJlYWtpbmdDb250ZXh0
IExpbmVCcmVha2VyOjpicmVha2luZ0NvbnRleHRGb3JJbmxpbmVDb250ZW50KGNvbnN0IENvbnRl
bnQmIG5ld0NvbnRlbnQsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgsIGJvb2wgbGluZUhhc0Z1
bGx5VHJpbW1hYmxlVHJhaWxpbmdDb250ZW50LCAgYm9vbCBsaW5lSXNFbXB0eSkKIHsKLSAgICBB
U1NFUlQoIWNvbnRlbnQuaXNFbXB0eSgpKTsKLSAgICBpZiAoY29udGVudC53aWR0aCgpIDw9IGF2
YWlsYWJsZVdpZHRoKQorICAgIEFTU0VSVCghbmV3Q29udGVudC5pc0VtcHR5KCkpOworICAgIGlm
IChuZXdDb250ZW50LndpZHRoKCkgPD0gYXZhaWxhYmxlV2lkdGgpCiAgICAgICAgIHJldHVybiB7
IEJyZWFraW5nQ29udGV4dDo6Q29udGVudEJyZWFrOjpLZWVwLCB7IH0gfTsKLSAgICAvLyBDaGVj
ayBpZiBpdCBmaXRzIHdpdGhvdXQgdGhlIHRyYWlsaW5nIHRyaW1tYWJsZSBjb250ZW50LgotICAg
IGlmICghVGV4dFV0aWw6OnNob3VsZFByZXNlcnZlVHJhaWxpbmdXaGl0ZXNwYWNlKGNvbnRlbnQu
cnVucygpWzBdLmlubGluZUl0ZW0uc3R5bGUoKSkpIHsKLSAgICAgICAgYXV0byBhZGp1c3RlZEF2
YWlsYWJsZVdpZHRoID0gYXZhaWxhYmxlV2lkdGg7Ci0gICAgICAgIGF1dG8gYWRqdXN0ZWRDb250
ZW50V2lkdGggPSBjb250ZW50LndpZHRoKCkgLSBjb250ZW50LnRyYWlsaW5nVHJpbW1hYmxlV2lk
dGgoKTsKLSAgICAgICAgLy8gV2hlbiB0aGUgdW5jb21taXR0ZWQgY29udGVudCBoYXMgdHJhaWxp
bmcgdHJpbW1hYmxlIHdpZHRoLCBpdCBhbHNvIG1lYW5zIHRoYXQgaXQgZG9lcyBub3QgaGF2ZSBh
bnkgb3RoZXIgbm9uLXRyaW1tYWJsZSBfY29udGVudF8gKFt0ZXh0XVsgXSA8LSBbdGV4dF0gaXMg
b24gY29tbWl0IGJvdW5kYXJ5KQotICAgICAgICAvLyBzbyBwbGFjaW5nIGl0IG9uIHRoZSBsaW5l
IHdpdGggdHJpbW1hYmxlIHRyYWlsaW5nIGNvbnRlbnQgbWVhbnMgdGhhdCB3ZSd2IGdvdCBhZGph
Y2VudCB0cmltbWFibGUgY29udGVudC4KLSAgICAgICAgLy8gW3RleHRdWyBdIDwtIGV4aXN0aW5n
IGNvbnRlbnQgb24gdGhlIGxpbmUgd2l0aCB0cmFpbGluZyB0cmltbWFibGUKLSAgICAgICAgLy8g
W2NvbnRhaW5lciBzdGFydF1bIF1bY29udGFpbmVyIGVuZF0gPC0gbmV3IGNvbnRlbnQKLSAgICAg
ICAgLy8gPC0gYWRqYWNlbnQgdHJpbW1hYmxlIF9jb250ZW50XyBbdGV4dF1bXVtjb250YWluZXIg
c3RhcnRdW11bY29udGFpbmVyIGVuZF0KLSAgICAgICAgaWYgKHRyYWlsaW5nVHJpbW1hYmxlV2lk
dGggJiYgIWNvbnRlbnQuaGFzTm9uV2hpdGVzcGFjZU9ySW5saW5lQm94KCkpCi0gICAgICAgICAg
ICBhZGp1c3RlZEF2YWlsYWJsZVdpZHRoICs9IHRyYWlsaW5nVHJpbW1hYmxlV2lkdGg7Ci0KLSAg
ICAgICAgaWYgKGFkanVzdGVkQ29udGVudFdpZHRoIDw9IGFkanVzdGVkQXZhaWxhYmxlV2lkdGgp
CisgICAgaWYgKG5ld0NvbnRlbnQuaGFzVHJhaWxpbmdUcmltbWFibGVDb250ZW50KCkpIHsKKyAg
ICAgICAgLy8gRmlyc3QgY2hlY2sgaWYgdGhlIGNvbnRlbnQgZml0cyB3aXRob3V0IHRoZSB0cmFp
bGluZyB0cmltbWFibGUgcGFydC4KKyAgICAgICAgaWYgKG5ld0NvbnRlbnQubm9uVHJpbW1hYmxl
V2lkdGgoKSA8PSBhdmFpbGFibGVXaWR0aCkKKyAgICAgICAgICAgIHJldHVybiB7IEJyZWFraW5n
Q29udGV4dDo6Q29udGVudEJyZWFrOjpLZWVwLCB7IH0gfTsKKyAgICAgICAgLy8gTm93IGNoZWNr
IGlmIHdlIGNhbiB0cmltIHRoZSBsaW5lIHRvby4KKyAgICAgICAgaWYgKGxpbmVIYXNGdWxseVRy
aW1tYWJsZVRyYWlsaW5nQ29udGVudCAmJiBuZXdDb250ZW50LmlzVHJhaWxpbmdDb250ZW50RnVs
bHlUcmltbWFibGUoKSkgeworICAgICAgICAgICAgLy8gSWYgdGhpcyBuZXcgY29udGVudCBpcyBm
dWxseSB0cmltbWFibGUsIGl0IHNob3VkIHN1cmVseSBmaXQuCiAgICAgICAgICAgICByZXR1cm4g
eyBCcmVha2luZ0NvbnRleHQ6OkNvbnRlbnRCcmVhazo6S2VlcCwgeyB9IH07CisgICAgICAgIH0K
ICAgICB9CiAKLSAgICBpZiAoY29udGVudC5oYXNUZXh0Q29udGVudE9ubHkoKSkgewotICAgICAg
ICBhdXRvJiBydW5zID0gY29udGVudC5ydW5zKCk7CisgICAgaWYgKG5ld0NvbnRlbnQuaGFzVGV4
dENvbnRlbnRPbmx5KCkpIHsKKyAgICAgICAgYXV0byYgcnVucyA9IG5ld0NvbnRlbnQucnVucygp
OwogICAgICAgICBpZiAoYXV0byB0cmFpbGluZ1BhcnRpYWxDb250ZW50ID0gd29yZEJyZWFraW5n
QmVoYXZpb3IocnVucywgYXZhaWxhYmxlV2lkdGgpKQogICAgICAgICAgICAgcmV0dXJuIHsgQnJl
YWtpbmdDb250ZXh0OjpDb250ZW50QnJlYWs6OlNwbGl0LCB0cmFpbGluZ1BhcnRpYWxDb250ZW50
IH07CiAgICAgICAgIC8vIElmIHdlIGRpZCBub3QgbWFuYWdlIHRvIGJyZWFrIHRoaXMgY29udGVu
dCwgd2Ugc3RpbGwgbmVlZCB0byBkZWNpZGUgd2hldGhlciBrZWVwIGl0IG9yIHdyYXAgaXQgdG8g
dGhlIG5leHQgbGluZS4KQEAgLTI2MCwxNCArMjU1LDMzIEBAIGJvb2wgTGluZUJyZWFrZXI6OkNv
bnRlbnQ6OmlzQXRDb250ZW50Qm91bmRhcnkoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwg
Y29uCiAKIHZvaWQgTGluZUJyZWFrZXI6OkNvbnRlbnQ6OmFwcGVuZChjb25zdCBJbmxpbmVJdGVt
JiBpbmxpbmVJdGVtLCBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCkKIHsKKyAgICBBU1NFUlQoIWlu
bGluZUl0ZW0uaXNGbG9hdCgpKTsKICAgICBBU1NFUlQoaW5saW5lSXRlbS5pc0ZvcmNlZExpbmVC
cmVhaygpIHx8ICFpc0F0Q29udGVudEJvdW5kYXJ5KGlubGluZUl0ZW0sICp0aGlzKSk7CiAgICAg
bV9jb250aW5vdXNSdW5zLmFwcGVuZCh7IGlubGluZUl0ZW0sIGxvZ2ljYWxXaWR0aCB9KTsKICAg
ICBtX3dpZHRoICs9IGxvZ2ljYWxXaWR0aDsKKyAgICAvLyBGaWd1cmUgb3V0IHRoZSB0cmFpbGlu
ZyB0cmltbWFibGUgc3RhdGUuCisgICAgaWYgKGlubGluZUl0ZW0uaXNCb3goKSB8fCBpbmxpbmVJ
dGVtLmlzRm9yY2VkTGluZUJyZWFrKCkpCisgICAgICAgIG1fdHJhaWxpbmdUcmltbWFibGVDb250
ZW50LnJlc2V0KCk7CisgICAgZWxzZSBpZiAoaW5saW5lSXRlbS5pc1RleHQoKSkgeworICAgICAg
ICBhdXRvJiBpbmxpbmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJ
dGVtKTsKKyAgICAgICAgYXV0byBpc0Z1bGx5VHJpbW1hYmxlID0gWyZdIHsKKyAgICAgICAgICAg
IHJldHVybiBpbmxpbmVUZXh0SXRlbS5pc1doaXRlc3BhY2UoKSAmJiAhVGV4dFV0aWw6OnNob3Vs
ZFByZXNlcnZlVHJhaWxpbmdXaGl0ZXNwYWNlKGlubGluZVRleHRJdGVtLnN0eWxlKCkpOworICAg
ICAgICB9OworICAgICAgICBpZiAoaXNGdWxseVRyaW1tYWJsZSgpKSB7CisgICAgICAgICAgICBt
X3RyYWlsaW5nVHJpbW1hYmxlQ29udGVudC53aWR0aCArPSBsb2dpY2FsV2lkdGg7CisgICAgICAg
ICAgICBtX3RyYWlsaW5nVHJpbW1hYmxlQ29udGVudC5pc0Z1bGx5VHJpbW1hYmxlID0gdHJ1ZTsK
KyAgICAgICAgfSBlbHNlIGlmIChhdXRvIHRyaW1tYWJsZVdpZHRoID0gaW5saW5lVGV4dEl0ZW0u
c3R5bGUoKS5sZXR0ZXJTcGFjaW5nKCkpIHsKKyAgICAgICAgICAgIG1fdHJhaWxpbmdUcmltbWFi
bGVDb250ZW50LndpZHRoID0gdHJpbW1hYmxlV2lkdGg7CisgICAgICAgICAgICBtX3RyYWlsaW5n
VHJpbW1hYmxlQ29udGVudC5pc0Z1bGx5VHJpbW1hYmxlID0gZmFsc2U7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgbV90cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnQucmVzZXQoKTsKKyAgICB9
CiB9CiAKIHZvaWQgTGluZUJyZWFrZXI6OkNvbnRlbnQ6OnJlc2V0KCkKIHsKICAgICBtX2NvbnRp
bm91c1J1bnMuY2xlYXIoKTsKKyAgICBtX3RyYWlsaW5nVHJpbW1hYmxlQ29udGVudC5yZXNldCgp
OwogICAgIG1fd2lkdGggPSAwOwogfQogCkBAIC0yNzgsMTggKzI5Miw2IEBAIHZvaWQgTGluZUJy
ZWFrZXI6OkNvbnRlbnQ6OnRyaW0odW5zaWduZWQgbmV3U2l6ZSkKICAgICBtX2NvbnRpbm91c1J1
bnMuc2hyaW5rKG5ld1NpemUpOwogfQogCi1ib29sIExpbmVCcmVha2VyOjpDb250ZW50OjpoYXNO
b25XaGl0ZXNwYWNlT3JJbmxpbmVCb3goKSBjb25zdAotewotICAgIC8vIDxzcGFuPjxpbWc+PC9z
cGFuPiBpcyBjb25zaWRlcmVkIGEgaW5saW5lIGJveCBydW4gZXZlbiB3aXRoIHRoZSBbY29udGFp
bmVyIHN0YXJ0XVtjb250YWluZXIgZW5kXSBpbmxpbmUgaXRlbXMuCi0gICAgZm9yIChhdXRvJiBy
dW4gOiBtX2NvbnRpbm91c1J1bnMpIHsKLSAgICAgICAgYXV0byYgaW5saW5lSXRlbSA9IHJ1bi5p
bmxpbmVJdGVtOwotICAgICAgICBpZiAoaW5saW5lSXRlbS5pc0NvbnRhaW5lclN0YXJ0KCkgfHwg
aW5saW5lSXRlbS5pc0NvbnRhaW5lckVuZCgpIHx8IGlubGluZUl0ZW0uaXNGb3JjZWRMaW5lQnJl
YWsoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICByZXR1cm4gIWlzPElubGluZVRl
eHRJdGVtPihpbmxpbmVJdGVtKSB8fCAhZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0
ZW0pLmlzV2hpdGVzcGFjZSgpOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGJvb2wg
TGluZUJyZWFrZXI6OkNvbnRlbnQ6Omhhc1RleHRDb250ZW50T25seSgpIGNvbnN0CiB7CiAgICAg
Ly8gPHNwYW4+dGV4dDwvc3Bhbj4gaXMgY29uc2lkZXJlZCBhIHRleHQgcnVuIGV2ZW4gd2l0aCB0
aGUgW2NvbnRhaW5lciBzdGFydF1bY29udGFpbmVyIGVuZF0gaW5saW5lIGl0ZW1zLgpAQCAtMzAz
LDI0ICszMDUsMTMgQEAgYm9vbCBMaW5lQnJlYWtlcjo6Q29udGVudDo6aGFzVGV4dENvbnRlbnRP
bmx5KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUxheW91dFVuaXQgTGluZUJyZWFr
ZXI6OkNvbnRlbnQ6OnRyYWlsaW5nVHJpbW1hYmxlV2lkdGgoKSBjb25zdAordm9pZCBMaW5lQnJl
YWtlcjo6Q29udGVudDo6VHJhaWxpbmdUcmltbWFibGVDb250ZW50OjpyZXNldCgpCiB7Ci0gICAg
TGF5b3V0VW5pdCB0cmFpbGluZ1doaXRlc3BhY2VXaWR0aDsKLSAgICBmb3IgKGF1dG8gaSA9IG1f
Y29udGlub3VzUnVucy5zaXplKCk7IGktLTspIHsKLSAgICAgICAgYXV0byYgaW5saW5lSXRlbSA9
IG1fY29udGlub3VzUnVuc1tpXS5pbmxpbmVJdGVtOwotICAgICAgICBpZiAoaW5saW5lSXRlbS5p
c0NvbnRhaW5lclN0YXJ0KCkgfHwgaW5saW5lSXRlbS5pc0NvbnRhaW5lckVuZCgpKQotICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChpbmxpbmVJdGVtLmlzVGV4dCgpICYmIGRvd25j
YXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKS5pc1doaXRlc3BhY2UoKSkgewotICAgICAg
ICAgICAgdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGggKz0gbV9jb250aW5vdXNSdW5zW2ldLmxvZ2lj
YWxXaWR0aDsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIC8vIENh
bid0IGhhdmUgW3RleHQgY29udGVudF1bd2hpdGVzcGFjZV0gYXMgW3doaXRlc3BhY2VdIGlzIGFs
d2F5cyBhIGNvbW1pdCBib3VuZGFyeSB3aGVuIGl0IGlzIGFkamFjZW50IHRvIHNvbWUgb3RoZXIg
aW5saW5lIGNvbnRlbnQuIFNlZSBVbmNvbW1pdHRlZENvbnRlbnQ6OmFkZC4KLSAgICAgICAgQVNT
RVJUKCF0cmFpbGluZ1doaXRlc3BhY2VXaWR0aCk7Ci0gICAgICAgIHJldHVybiB0cmFpbGluZ1do
aXRlc3BhY2VXaWR0aDsKLSAgICB9Ci0gICAgcmV0dXJuIHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRo
OworICAgIGlzRnVsbHlUcmltbWFibGUgPSBmYWxzZTsKKyAgICB3aWR0aCA9IHsgfTsKIH0KIAor
CiB9CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5oCmluZGV4IDEwY2I4N2QzMWIwMmQzZTQz
YjVmNjg2MDM2YWQzNzIzZTg5YmJmMzYuLjE3OTkzNjA4MTk3MWU3ZmQ1ODkzZWRmODllMDY5YmVl
ZDg4NTI4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUxpbmVCcmVha2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuaApAQCAtNzQsMTggKzc0LDI3IEBAIHB1Ymxp
YzoKICAgICAgICAgUnVuTGlzdCYgcnVucygpIHsgcmV0dXJuIG1fY29udGlub3VzUnVuczsgfQog
ICAgICAgICBjb25zdCBSdW5MaXN0JiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9jb250aW5vdXNS
dW5zOyB9CiAgICAgICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGlub3Vz
UnVucy5pc0VtcHR5KCk7IH0KLSAgICAgICAgYm9vbCBoYXNOb25XaGl0ZXNwYWNlT3JJbmxpbmVC
b3goKSBjb25zdDsKICAgICAgICAgYm9vbCBoYXNUZXh0Q29udGVudE9ubHkoKSBjb25zdDsKICAg
ICAgICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGlub3VzUnVucy5zaXpl
KCk7IH0KICAgICAgICAgTGF5b3V0VW5pdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7
IH0KLSAgICAgICAgTGF5b3V0VW5pdCB0cmFpbGluZ1RyaW1tYWJsZVdpZHRoKCkgY29uc3Q7Cisg
ICAgICAgIExheW91dFVuaXQgbm9uVHJpbW1hYmxlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dp
ZHRoIC0gbV90cmFpbGluZ1RyaW1tYWJsZUNvbnRlbnQud2lkdGg7IH0KKworICAgICAgICBib29s
IGhhc1RyYWlsaW5nVHJpbW1hYmxlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuICEhbV90cmFpbGlu
Z1RyaW1tYWJsZUNvbnRlbnQud2lkdGg7IH0KKyAgICAgICAgYm9vbCBpc1RyYWlsaW5nQ29udGVu
dEZ1bGx5VHJpbW1hYmxlKCkgY29uc3QgeyByZXR1cm4gbV90cmFpbGluZ1RyaW1tYWJsZUNvbnRl
bnQuaXNGdWxseVRyaW1tYWJsZTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgUnVuTGlzdCBt
X2NvbnRpbm91c1J1bnM7CisgICAgICAgIHN0cnVjdCBUcmFpbGluZ1RyaW1tYWJsZUNvbnRlbnQg
eworICAgICAgICAgICAgdm9pZCByZXNldCgpOworCisgICAgICAgICAgICBib29sIGlzRnVsbHlU
cmltbWFibGUgeyBmYWxzZSB9OworICAgICAgICAgICAgTGF5b3V0VW5pdCB3aWR0aDsKKyAgICAg
ICAgfTsKKyAgICAgICAgVHJhaWxpbmdUcmltbWFibGVDb250ZW50IG1fdHJhaWxpbmdUcmltbWFi
bGVDb250ZW50OwogICAgICAgICBMYXlvdXRVbml0IG1fd2lkdGg7CiAgICAgfTsKIAotICAgIEJy
ZWFraW5nQ29udGV4dCBicmVha2luZ0NvbnRleHRGb3JJbmxpbmVDb250ZW50KGNvbnN0IENvbnRl
bnQmLCBMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoLCBMYXlvdXRVbml0IHRyYWlsaW5nVHJpbW1h
YmxlV2lkdGgsIGJvb2wgbGluZUlzRW1wdHkpOworICAgIEJyZWFraW5nQ29udGV4dCBicmVha2lu
Z0NvbnRleHRGb3JJbmxpbmVDb250ZW50KGNvbnN0IENvbnRlbnQmLCBMYXlvdXRVbml0IGF2YWls
YWJsZVdpZHRoLCBib29sIGxpbmVIYXNGdWxseVRyaW1tYWJsZVRyYWlsaW5nQ29udGVudCwgYm9v
bCBsaW5lSXNFbXB0eSk7CiAgICAgYm9vbCBzaG91bGRXcmFwRmxvYXRCb3goTGF5b3V0VW5pdCBm
bG9hdExvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCwgYm9vbCBsaW5lSXNF
bXB0eSk7CiAKICAgICB2b2lkIHNldEh5cGhlbmF0aW9uRGlzYWJsZWQoKSB7IG5faHlwaGVuYXRp
b25Jc0Rpc2FibGVkID0gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IDc0NGMx
MTJlNzI4NDhkYTI2NWM2NjAwYzZjNzEwMmIzMGY1YjQ5YzUuLmUxYzdlZmYyNzU1ZWFiZmYxNjU2
ZGQ2ZTIyYWNlMWY1N2RhMDk0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTM4Mywx
NCArMzgzLDE1IEBAIHZvaWQgTGluZUJ1aWxkZXI6OnJlbW92ZVRyYWlsaW5nVHJpbW1hYmxlQ29u
dGVudCgpCiAgICAgZm9yIChhdXRvIHRyaW1tYWJsZVJ1bkluZGV4IDogbV90cmltbWFibGVDb250
ZW50LnJ1bkluZGV4ZXMoKSkgewogICAgICAgICBhdXRvJiB0cmltbWFibGVSdW4gPSBtX2lubGlu
ZUl0ZW1SdW5zW3RyaW1tYWJsZVJ1bkluZGV4XTsKICAgICAgICAgQVNTRVJUKHRyaW1tYWJsZVJ1
bi5pc1RleHQoKSk7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBtaWdodCBuZWVkIHRvIGJlIGFibGUg
dG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHRyaW1tZWQgYW5kIGNvbGxhcHNlZCBydW5zLgotICAg
ICAgICB0cmltbWFibGVSdW4uc2V0Q29sbGFwc2VzVG9aZXJvQWR2YW5jZVdpZHRoKCk7CisgICAg
ICAgIGlmICh0cmltbWFibGVSdW4uaXNXaGl0ZXNwYWNlKCkpCisgICAgICAgICAgICB0cmltbWFi
bGVSdW4uc2V0Q29sbGFwc2VzVG9aZXJvQWR2YW5jZVdpZHRoKCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRyaW1tYWJsZVJ1bi5yZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKTsKICAg
ICB9CiAgICAgbV9saW5lQm94LnNocmlua0hvcml6b250YWxseShtX3RyaW1tYWJsZUNvbnRlbnQu
d2lkdGgoKSk7CiAgICAgbV90cmltbWFibGVDb250ZW50LmNsZWFyKCk7CiAgICAgLy8gSWYgd2Ug
dHJpbW1lZCB0aGUgZmlyc3QgdmlzaWJsZSBydW4gb24gdGhlIGxpbmUsIHdlIG5lZWQgdG8gcmUt
Y2hlY2sgdGhlIHZpc2liaWxpdHkgc3RhdHVzLgotICAgIEFTU0VSVChtX2xpbmVJc1Zpc3VhbGx5
RW1wdHlCZWZvcmVUcmltbWFibGVDb250ZW50Lmhhc1ZhbHVlKCkpOwotICAgIGlmICgqbV9saW5l
SXNWaXN1YWxseUVtcHR5QmVmb3JlVHJpbW1hYmxlQ29udGVudCkgeworICAgIGlmIChtX2xpbmVJ
c1Zpc3VhbGx5RW1wdHlCZWZvcmVUcmltbWFibGVDb250ZW50KSB7CiAgICAgICAgIC8vIEp1c3Qg
YmVjYXVzZSB0aGUgbGluZSB3YXMgdmlzdWFsbHkgZW1wdHkgYmVmb3JlIHRoZSB0cmltbWVkIGNv
bnRlbnQsIGl0IGRvZXMgbm90IG5lY2Vzc2FyaWx5IG1lYW4gaXQgaXMgc3RpbGwgdmlzdWFsbHkg
ZW1wdHkuCiAgICAgICAgIC8vIDxzcGFuPiAgPC9zcGFuPjxzcGFuIHN0eWxlPSJwYWRkaW5nLWxl
ZnQ6IDEwcHgiPjwvc3Bhbj4gIDwtIG5vbi1lbXB0eQogICAgICAgICBhdXRvIGxpbmVJc1Zpc3Vh
bGx5RW1wdHkgPSBbJl0gewpAQCAtNDAzLDggKzQwNCw4IEBAIHZvaWQgTGluZUJ1aWxkZXI6OnJl
bW92ZVRyYWlsaW5nVHJpbW1hYmxlQ29udGVudCgpCiAgICAgICAgIC8vIFdlIGNvdWxkIG9ubHkg
Z28gZnJvbSB2aXN1YWxseSBub24gZW1wdHkgLT4gdG8gdmlzdWFsbHkgZW1wdHkuIFRyaW1taW5n
IHJ1bnMgc2hvdWxkIG5ldmVyIG1ha2UgdGhlIGxpbmUgdmlzaWJsZS4KICAgICAgICAgaWYgKGxp
bmVJc1Zpc3VhbGx5RW1wdHkoKSkKICAgICAgICAgICAgIG1fbGluZUJveC5zZXRJc0NvbnNpZGVy
ZWRFbXB0eSgpOwotICAgICAgICBtX2xpbmVJc1Zpc3VhbGx5RW1wdHlCZWZvcmVUcmltbWFibGVD
b250ZW50ID0geyB9OwogICAgIH0KKyAgICBtX2xpbmVJc1Zpc3VhbGx5RW1wdHlCZWZvcmVUcmlt
bWFibGVDb250ZW50ID0geyB9OwogfQogCiB2b2lkIExpbmVCdWlsZGVyOjptb3ZlTG9naWNhbExl
ZnQoTGF5b3V0VW5pdCBkZWx0YSkKQEAgLTQ2NSwxMCArNDY2LDYgQEAgdm9pZCBMaW5lQnVpbGRl
cjo6YXBwZW5kSW5saW5lQ29udGFpbmVyRW5kKGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0s
IExheW91dFUKIAogdm9pZCBMaW5lQnVpbGRlcjo6YXBwZW5kVGV4dENvbnRlbnQoY29uc3QgSW5s
aW5lVGV4dEl0ZW0mIGlubGluZUl0ZW0sIExheW91dFVuaXQgbG9naWNhbFdpZHRoKQogewotICAg
IGF1dG8gaXNUcmltbWFibGUgPSAhc2hvdWxkUHJlc2VydmVUcmFpbGluZ0NvbnRlbnQoaW5saW5l
SXRlbSk7Ci0gICAgaWYgKCFpc1RyaW1tYWJsZSkKLSAgICAgICAgbV90cmltbWFibGVDb250ZW50
LmNsZWFyKCk7Ci0KICAgICBhdXRvIHdpbGxDb2xsYXBzZUNvbXBsZXRlbHkgPSBbJl0gewogICAg
ICAgICAvLyBFbXB0eSBydW4uCiAgICAgICAgIGlmICghaW5saW5lSXRlbS5sZW5ndGgoKSkgewpA
QCAtNTEyLDEyICs1MDksMjAgQEAgdm9pZCBMaW5lQnVpbGRlcjo6YXBwZW5kVGV4dENvbnRlbnQo
Y29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZUl0ZW0sIExheW91dFVuaXQKICAgICAgICAgbGlu
ZVJ1bi5zZXRJc0NvbGxhcHNlZCgpOwogCiAgICAgYXV0byBsaW5lUnVuV2lkdGggPSBsaW5lUnVu
LmxvZ2ljYWxSZWN0KCkud2lkdGgoKTsKLSAgICBpZiAoaXNUcmltbWFibGUpIHsKKyAgICAvLyBU
cmFpbGluZyB3aGl0ZXNwYWNlIGNvbnRlbnQgaXMgZnVsbHkgdHJpbW1hYmxlIHNvIGFzIHRoZSB0
cmFpbGluZyBsZXR0ZXIgc3BhY2UuCisgICAgYXV0byBpc0Z1bGx5VHJpbW1hYmxlID0gIXNob3Vs
ZFByZXNlcnZlVHJhaWxpbmdDb250ZW50KGlubGluZUl0ZW0pOworICAgIGF1dG8gaXNQYXJ0aWFs
bHlUcmltbWFibGUgPSAhaW5saW5lSXRlbS5pc1doaXRlc3BhY2UoKSAmJiBpbmxpbmVJdGVtLnN0
eWxlKCkubGV0dGVyU3BhY2luZygpOworICAgIGF1dG8gaXNUcmltbWFibGUgPSBpc0Z1bGx5VHJp
bW1hYmxlIHx8IGlzUGFydGlhbGx5VHJpbW1hYmxlOworICAgIC8vIFJlc2V0IHRoZSB0cmltbWFi
bGUgY29udGVudCBpZiBuZWVkZWQuCisgICAgaWYgKCFpc1RyaW1tYWJsZSB8fCBpc1BhcnRpYWxs
eVRyaW1tYWJsZSB8fCAoaXNGdWxseVRyaW1tYWJsZSAmJiAhbV90cmltbWFibGVDb250ZW50Lmlz
VHJhaWxpbmdDb250ZW50RnVsbHlUcmltbWFibGUoKSkpCisgICAgICAgIG1fdHJpbW1hYmxlQ29u
dGVudC5jbGVhcigpOworICAgIGlmIChpc0Z1bGx5VHJpbW1hYmxlKSB7CiAgICAgICAgIC8vIElm
IHdlIGV2ZXIgdHJpbSB0aGlzIGNvbnRlbnQsIHdlIG5lZWQgdG8ga25vdyBpZiB0aGUgbGluZSB2
aXNpYmlsaXR5IHN0YXRlIG5lZWRzIHRvIGJlIHJlY29tcHV0ZWQuCiAgICAgICAgIGlmIChtX3Ry
aW1tYWJsZUNvbnRlbnQuaXNFbXB0eSgpKQogICAgICAgICAgICAgbV9saW5lSXNWaXN1YWxseUVt
cHR5QmVmb3JlVHJpbW1hYmxlQ29udGVudCA9IGlzVmlzdWFsbHlFbXB0eSgpOwotICAgICAgICBt
X3RyaW1tYWJsZUNvbnRlbnQuYXBwZW5kKGxpbmVSdW5XaWR0aCwgbV9pbmxpbmVJdGVtUnVucy5z
aXplKCkpOwotICAgIH0KKyAgICAgICAgbV90cmltbWFibGVDb250ZW50LmFwcGVuZChsaW5lUnVu
V2lkdGgsIG1faW5saW5lSXRlbVJ1bnMuc2l6ZSgpLCBUcmltbWFibGVDb250ZW50OjpJc0Z1bGx5
VHJpbW1hYmxlOjpZZXMpOworICAgIH0gZWxzZSBpZiAoaXNQYXJ0aWFsbHlUcmltbWFibGUpCisg
ICAgICAgIG1fdHJpbW1hYmxlQ29udGVudC5hcHBlbmQoTGF5b3V0VW5pdCB7IGlubGluZUl0ZW0u
c3R5bGUoKS5sZXR0ZXJTcGFjaW5nKCkgfSwgbV9pbmxpbmVJdGVtUnVucy5zaXplKCksIFRyaW1t
YWJsZUNvbnRlbnQ6OklzRnVsbHlUcmltbWFibGU6Ok5vKTsKIAogICAgIG1fbGluZUJveC5leHBh
bmRIb3Jpem9udGFsbHkobGluZVJ1bldpZHRoKTsKICAgICBtX2lubGluZUl0ZW1SdW5zLmFwcGVu
ZChXVEZNb3ZlKGxpbmVSdW4pKTsKQEAgLTcwOCwxMSArNzEzLDEyIEBAIGNvbnN0IElubGluZUZv
cm1hdHRpbmdDb250ZXh0JiBMaW5lQnVpbGRlcjo6Zm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdAog
ICAgIHJldHVybiBtX2lubGluZUZvcm1hdHRpbmdDb250ZXh0OwogfQogCi12b2lkIExpbmVCdWls
ZGVyOjpUcmltbWFibGVDb250ZW50OjphcHBlbmQoTGF5b3V0VW5pdCBpdGVtUnVuV2lkdGgsIHNp
emVfdCBydW5JbmRleCkKK3ZvaWQgTGluZUJ1aWxkZXI6OlRyaW1tYWJsZUNvbnRlbnQ6OmFwcGVu
ZChMYXlvdXRVbml0IGl0ZW1SdW5XaWR0aCwgc2l6ZV90IHJ1bkluZGV4LCBJc0Z1bGx5VHJpbW1h
YmxlIGlzRnVsbHlUcmltbWFibGUpCiB7CiAgICAgLy8gd29yZC1zcGFjaW5nIGNvdWxkIHZlcnkg
d2VsbCBiZSBuZWdhdGl2ZSwgYnV0IGl0IGRvZXMgbm90IG1lYW4gdGhhdCB0aGUgbGluZSBnYWlu
cyB0aGF0IG11Y2ggZXh0cmEgc3BhY2Ugd2hlbiB0aGUgY29udGVudCBpcyB0cmltbWVkLgogICAg
IGl0ZW1SdW5XaWR0aCA9IHN0ZDo6bWF4KDBfbHUsIGl0ZW1SdW5XaWR0aCk7CiAgICAgbV93aWR0
aCArPSBpdGVtUnVuV2lkdGg7CisgICAgbV9sYXN0UnVuSXNGdWxseVRyaW1tYWJsZSA9IGlzRnVs
bHlUcmltbWFibGUgPT0gSXNGdWxseVRyaW1tYWJsZTo6WWVzOwogICAgIG1fcnVuSW5kZXhlcy5h
cHBlbmQocnVuSW5kZXgpOwogfQogCkBAIC03MjksNiArNzM1LDEyIEBAIHZvaWQgTGluZUJ1aWxk
ZXI6OklubGluZUl0ZW1SdW46OnNldENvbGxhcHNlc1RvWmVyb0FkdmFuY2VXaWR0aCgpCiAgICAg
bV9sb2dpY2FsUmVjdC5zZXRXaWR0aCh7IH0pOwogfQogCit2b2lkIExpbmVCdWlsZGVyOjpJbmxp
bmVJdGVtUnVuOjpyZW1vdmVUcmFpbGluZ0xldHRlclNwYWNpbmcoKQoreworICAgIEFTU0VSVCht
X2lubGluZUl0ZW0uc3R5bGUoKS5sZXR0ZXJTcGFjaW5nKCkpOworICAgIG1fbG9naWNhbFJlY3Qu
ZXhwYW5kSG9yaXpvbnRhbGx5KExheW91dFVuaXQgeyAtbV9pbmxpbmVJdGVtLnN0eWxlKCkubGV0
dGVyU3BhY2luZygpIH0pOworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5oCmluZGV4IGEx
ZjIxM2VhYjkyNWI3OThhMzc5ODgyZGZkZDYxYjZiYjhhMWVlYzYuLjgwZDJiODhkNzQwMDk0MDEx
YzI5YThlNDBjNmI1MzgzM2I5M2IxYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaApAQCAtNjUsNiAr
NjUsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCgpIGNvbnN0IHsg
cmV0dXJuIGxvZ2ljYWxXaWR0aCgpIC0gY29udGVudExvZ2ljYWxXaWR0aCgpOyB9CiAKICAgICBM
YXlvdXRVbml0IHRyYWlsaW5nVHJpbW1hYmxlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3RyaW1t
YWJsZUNvbnRlbnQud2lkdGgoKTsgfQorICAgIGJvb2wgaXNUcmFpbGluZ0NvbnRlbnRGdWxseVRy
aW1tYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJpbW1hYmxlQ29udGVudC5pc1RyYWlsaW5nQ29u
dGVudEZ1bGx5VHJpbW1hYmxlKCk7IH0KIAogICAgIGNvbnN0IExpbmVCb3gmIGxpbmVCb3goKSBj
b25zdCB7IHJldHVybiBtX2xpbmVCb3g7IH0KICAgICB2b2lkIG1vdmVMb2dpY2FsTGVmdChMYXlv
dXRVbml0KTsKQEAgLTE3MCw2ICsxNzEsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldElz
Q29sbGFwc2VkKCkgeyBtX2lzQ29sbGFwc2VkID0gdHJ1ZTsgfQogICAgICAgICBib29sIGlzQ29s
bGFwc2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbGxhcHNlZDsgfQogCisgICAgICAgIHZvaWQg
cmVtb3ZlVHJhaWxpbmdMZXR0ZXJTcGFjaW5nKCk7CiAgICAgICAgIHZvaWQgc2V0Q29sbGFwc2Vz
VG9aZXJvQWR2YW5jZVdpZHRoKCk7CiAgICAgICAgIGJvb2wgaXNDb2xsYXBzZWRUb1plcm9BZHZh
bmNlV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2NvbGxhcHNlZFRvWmVyb0FkdmFuY2VXaWR0aDsg
fQogCkBAIC0xODcsMTYgKzE4OSwxOSBAQCBwcml2YXRlOgogICAgIH07CiAKICAgICBzdHJ1Y3Qg
VHJpbW1hYmxlQ29udGVudCB7Ci0gICAgICAgIHZvaWQgYXBwZW5kKExheW91dFVuaXQgaXRlbVJ1
bldpZHRoLCBzaXplX3QgcnVuSW5kZXgpOworICAgICAgICBlbnVtIGNsYXNzIElzRnVsbHlUcmlt
bWFibGUgeyBObywgWWVzIH07CisgICAgICAgIHZvaWQgYXBwZW5kKExheW91dFVuaXQgaXRlbVJ1
bldpZHRoLCBzaXplX3QgcnVuSW5kZXgsIElzRnVsbHlUcmltbWFibGUpOwogICAgICAgICB2b2lk
IGNsZWFyKCk7CiAKICAgICAgICAgTGF5b3V0VW5pdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
d2lkdGg7IH0KICAgICAgICAgVmVjdG9yPHNpemVfdCwgNT4mIHJ1bkluZGV4ZXMoKSB7IHJldHVy
biBtX3J1bkluZGV4ZXM7IH0KICAgICAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4g
bV9ydW5JbmRleGVzLmlzRW1wdHkoKTsgfQorICAgICAgICBib29sIGlzVHJhaWxpbmdDb250ZW50
RnVsbHlUcmltbWFibGUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RSdW5Jc0Z1bGx5VHJpbW1hYmxl
OyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBWZWN0b3I8c2l6ZV90LCA1PiBtX3J1bkluZGV4
ZXM7CiAgICAgICAgIExheW91dFVuaXQgbV93aWR0aDsKKyAgICAgICAgYm9vbCBtX2xhc3RSdW5J
c0Z1bGx5VHJpbW1hYmxlIHsgZmFsc2UgfTsKICAgICB9OwogCiAgICAgY29uc3QgSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQmIG1faW5saW5lRm9ybWF0dGluZ0NvbnRleHQ7CkBAIC0yMTUsNiArMjIw
LDcgQEAgaW5saW5lIHZvaWQgTGluZUJ1aWxkZXI6OlRyaW1tYWJsZUNvbnRlbnQ6OmNsZWFyKCkK
IHsKICAgICBtX3J1bkluZGV4ZXMuY2xlYXIoKTsKICAgICBtX3dpZHRoID0geyB9OworICAgIG1f
bGFzdFJ1bklzRnVsbHlUcmltbWFibGUgPSBmYWxzZTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRl
eHQuY3BwCmluZGV4IDViNDM2ZGNjN2RjZjU1MjE4M2U5M2YzOTg5OTJlNDc4NDY1NjRlYjkuLjE0
NjBjYjM0YjVjY2RlOTIyZmM2ODc1MWIxNmI3NWVlZTA2ODYwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29u
dGV4dC5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCBMaW5lTGF5b3V0Q29udGV4dDo6SXNFbmRPZkxp
bmUgTGluZUxheW91dENvbnRleHQ6OnByb2Nlc3NVbmNvbW1pdHRlZENvbnRlbnQoTGluZQogICAg
IGF1dG8gbGluZUJyZWFrZXIgPSBMaW5lQnJlYWtlciB7IH07CiAgICAgaWYgKHNob3VsZERpc2Fi
bGVIeXBoZW5hdGlvbigpKQogICAgICAgICBsaW5lQnJlYWtlci5zZXRIeXBoZW5hdGlvbkRpc2Fi
bGVkKCk7Ci0gICAgYXV0byBicmVha2luZ0NvbnRleHQgPSBsaW5lQnJlYWtlci5icmVha2luZ0Nv
bnRleHRGb3JJbmxpbmVDb250ZW50KG1fdW5jb21taXR0ZWRDb250ZW50LCBsaW5lLmF2YWlsYWJs
ZVdpZHRoKCksIGxpbmUudHJhaWxpbmdUcmltbWFibGVXaWR0aCgpLCBsaW5lSXNDb25zaWRlcmVk
RW1wdHkpOworICAgIGF1dG8gYnJlYWtpbmdDb250ZXh0ID0gbGluZUJyZWFrZXIuYnJlYWtpbmdD
b250ZXh0Rm9ySW5saW5lQ29udGVudChtX3VuY29tbWl0dGVkQ29udGVudCwgbGluZS5hdmFpbGFi
bGVXaWR0aCgpLCBsaW5lLmlzVHJhaWxpbmdDb250ZW50RnVsbHlUcmltbWFibGUoKSwgbGluZUlz
Q29uc2lkZXJlZEVtcHR5KTsKICAgICAvLyBUaGUgdW5jb21taXR0ZWQgY29udGVudCBjYW4gZnVs
bHksIHBhcnRpYWxseSBmaXQgdGhlIGN1cnJlbnQgbGluZSAoY29tbWl0L3BhcnRpYWwgY29tbWl0
KSBvciBub3QgYXQgYWxsIChyZXNldCkuCiAgICAgaWYgKGJyZWFraW5nQ29udGV4dC5jb250ZW50
QnJlYWsgPT0gTGluZUJyZWFrZXI6OkJyZWFraW5nQ29udGV4dDo6Q29udGVudEJyZWFrOjpLZWVw
KQogICAgICAgICBjb21taXRQZW5kaW5nQ29udGVudChsaW5lKTsK
</data>
<flag name="review"
          id="400374"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>