<?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>234758</bug_id>
          
          <creation_ts>2021-12-30 19:27:46 -0800</creation_ts>
          <short_desc>[LFC][IFC] Take grapheme clusters into account when keeping the first &quot;character&quot; on the line</short_desc>
          <delta_ts>2021-12-31 06:23:18 -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>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>1827288</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-12-30 19:27:46 -0800</bug_when>
    <thetext>in preparation for enabling complex font codepath for IFC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827289</commentid>
    <comment_count>1</comment_count>
      <attachid>448115</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-12-30 19:37:55 -0800</bug_when>
    <thetext>Created attachment 448115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827311</commentid>
    <comment_count>2</comment_count>
      <attachid>448115</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-31 00:47:23 -0800</bug_when>
    <thetext>Comment on attachment 448115
Patch

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

&gt; Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp:296
&gt; +    auto graphemeClustersIterator = NonSharedCharacterBreakIterator { textContent };
&gt; +    auto nextPosition = ubrk_following(graphemeClustersIterator, inlineTextItem.start());
&gt; +    if (nextPosition == UBRK_DONE)
&gt; +        return inlineTextItem.length();
&gt; +    return nextPosition - inlineTextItem.start();

Isn&apos;t it slow to make the iterator repeatedly? Maybe we should cache it or make it in the caller?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827312</commentid>
    <comment_count>3</comment_count>
      <attachid>448115</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-31 01:00:32 -0800</bug_when>
    <thetext>Comment on attachment 448115
Patch

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

&gt;&gt; Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp:296
&gt;&gt; +    auto graphemeClustersIterator = NonSharedCharacterBreakIterator { textContent };
&gt;&gt; +    auto nextPosition = ubrk_following(graphemeClustersIterator, inlineTextItem.start());
&gt;&gt; +    if (nextPosition == UBRK_DONE)
&gt;&gt; +        return inlineTextItem.length();
&gt;&gt; +    return nextPosition - inlineTextItem.start();
&gt; 
&gt; Isn&apos;t it slow to make the iterator repeatedly? Maybe we should cache it or make it in the caller?

I suppose it is always initialized with a different StringView so there is nothing to cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827332</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-12-31 06:15:29 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 448115 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448115&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp:296
&gt; &gt;&gt; +    auto graphemeClustersIterator = NonSharedCharacterBreakIterator { textContent };
&gt; &gt;&gt; +    auto nextPosition = ubrk_following(graphemeClustersIterator, inlineTextItem.start());
&gt; &gt;&gt; +    if (nextPosition == UBRK_DONE)
&gt; &gt;&gt; +        return inlineTextItem.length();
&gt; &gt;&gt; +    return nextPosition - inlineTextItem.start();
&gt; &gt; 
&gt; &gt; Isn&apos;t it slow to make the iterator repeatedly? Maybe we should cache it or make it in the caller?
&gt; 
&gt; I suppose it is always initialized with a different StringView so there is
&gt; nothing to cache.
Yes. This codepath may be triggered once per line at most. It is also not a highly common case as regular web pages let their inline content fit the container. However it is very much used for testing content breaking (width: 0px).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827333</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-31 06:22:08 -0800</bug_when>
    <thetext>Committed r287493 (245628@main): &lt;https://commits.webkit.org/245628@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448115.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827334</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-31 06:23:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/87028287&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448115</attachid>
            <date>2021-12-30 19:37:55 -0800</date>
            <delta_ts>2021-12-31 06:22:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234758-20211230193754.patch</filename>
            <type>text/plain</type>
            <size>14182</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWExODdhNDYyYmRiNDg2
M2Q3MjRkNzlkMTMxOGQxZTU0ZjU1NjM2OS4uNTExMDhlYWMyNWEzNmNiZmFhYWI5ZTNlNTYwZmM2
NGQxMmM4MjE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTEyLTMwICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJRkNdIFRha2UgZ3Jh
cGhlbWUgY2x1c3RlcnMgaW50byBhY2NvdW50IHdoZW4ga2VlcGluZyB0aGUgZmlyc3QgImNoYXJh
Y3RlciIgb24gdGhlIGxpbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNDc1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdoZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggZm9udHMsIHdlIGhhdmUgdG8gc3Rh
cnQgbG9va2luZyBiZXlvbmQgY29kZSBwb2ludHMgYW5kIHRha2luZworICAgICAgICBsYXJnZXIg
Y2x1c3RlciBvZiBjb2RlIHVuaXRzIGludG8gYWNjb3VudC4KKworICAgICAgICBUaGlzIHBhdGNo
IGlzIGluIHByZXBhcmF0aW9uIGZvciBlbmFibGluZyBjb21wbGV4IGZvbnQgY29kZXBhdGguCisK
KyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250ZW50
QnJlYWtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRCcmVh
a2VyOjpwcm9jZXNzT3ZlcmZsb3dpbmdDb250ZW50IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6VGV4dFV0aWw6OmZpcnN0VXNlclBlcmNlaXZlZENoYXJhY3Rlckxlbmd0
aCk6IHVzZXItcGVyY2VpdmVkIGNoYXJhY3RlciBpcyBhIHVuaWNvZGUgdGVybS4KKyAgICAgICAg
c2VlIGh0dHBzOi8vdW5pY29kZS5vcmcvcmVwb3J0cy90cjI5LyNHcmFwaGVtZV9DbHVzdGVyX0Jv
dW5kYXJpZXMKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0
L1RleHRVdGlsLmg6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uQm94VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Qm94
VHJlZTo6YnVpbGRUcmVlKToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxp
bmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEJveDo6
SW5saW5lVGV4dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Om1fY2FuVXNlU2ltcGxl
Rm9udENvZGVQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6bV9jYW5Vc2VTaW1wbGlm
aWVkQ29udGVudE1lYXN1cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0SW5saW5lVGV4dEJveC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVUZXh0Qm94OjpjYW5Vc2VTaW1wbGVGb250Q29kZVBhdGggY29uc3QpOgorICAgICAgICAqIGxh
eW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZVRleHRCb3gpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5b3V0Qm94KToKKyAgICAgICAgKiBsYXlvdXQv
bGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oOgorCiAyMDIxLTEyLTMwICBBbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0gRW5hYmxl
IFJUTCBpbmxpbmUgYmFzZSBkaXJlY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRCcmVha2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNv
bnRlbnRCcmVha2VyLmNwcAppbmRleCBiZDFmOWVlYzlmYjE5NGZmMjRhNmRlOGQ5YzM1OTM0YWI1
MWU3M2NjLi4xYzdlNzhkNjZkNjUyZTcxZDBiN2U1OTUwMzA1M2IzNTgzNTZlOWRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVDb250ZW50QnJlYWtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEJyZWFrZXIuY3BwCkBAIC0yMDgsMjYgKzIw
OCwxNyBAQCBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0IElubGluZUNvbnRlbnRCcmVha2Vy
Ojpwcm9jZXNzT3ZlcmZsb3dpbmdDb250ZW50KGNvbgogICAgICAgICAgICAgICAgIGF1dG8gbGVh
ZGluZ1RleHRSdW5JbmRleCA9ICpmaXJzdFRleHRSdW5JbmRleChjb250aW51b3VzQ29udGVudCk7
CiAgICAgICAgICAgICAgICAgYXV0byYgbGVhZGluZ1RleHRSdW4gPSBjb250aW51b3VzQ29udGVu
dC5ydW5zKClbbGVhZGluZ1RleHRSdW5JbmRleF07CiAgICAgICAgICAgICAgICAgYXV0byYgaW5s
aW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4obGVhZGluZ1RleHRSdW4uaW5s
aW5lSXRlbSk7Ci0gICAgICAgICAgICAgICAgYXV0byBmaXJzdENvZGVQb2ludExlbmd0aCA9IFsm
XSgpIC0+IHNpemVfdCB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gdGV4dENvbnRlbnQgPSBp
bmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCkuY29udGVudCgpOwotICAgICAgICAgICAgICAg
ICAgICBpZiAodGV4dENvbnRlbnQuaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gMTsKLSAgICAgICAgICAgICAgICAgICAgVUNoYXIzMiBjaGFyYWN0ZXI7Ci0gICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBlbmRPZkNvZGVQb2ludCA9IDA7Ci0gICAgICAgICAgICAgICAg
ICAgIFUxNl9ORVhUKHRleHRDb250ZW50LmNoYXJhY3RlcnMxNigpLCBlbmRPZkNvZGVQb2ludCwg
dGV4dENvbnRlbnQubGVuZ3RoKCksIGNoYXJhY3Rlcik7Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBlbmRPZkNvZGVQb2ludDsKLSAgICAgICAgICAgICAgICB9KCk7Ci0KLSAgICAgICAgICAg
ICAgICBpZiAoaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkgPD0gZmlyc3RDb2RlUG9pbnRMZW5ndGgp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRpbnVvdXNDb250ZW50LnJ1bnMoKS5zaXpl
KCkgPT0gMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gTGV0J3MgcmV0dXJuIHNpbmds
ZSwgbGVhZGluZyB0ZXh0IGl0ZW1zIGFzIGlzLgorICAgICAgICAgICAgICAgIGF1dG8gZmlyc3RD
aGFyYWN0ZXJMZW5ndGggPSBUZXh0VXRpbDo6Zmlyc3RVc2VyUGVyY2VpdmVkQ2hhcmFjdGVyTGVu
Z3RoKGlubGluZVRleHRJdGVtKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoZmlyc3RDaGFyYWN0
ZXJMZW5ndGggPiAwKTsKKworICAgICAgICAgICAgICAgIGlmIChpbmxpbmVUZXh0SXRlbS5sZW5n
dGgoKSA8PSBmaXJzdENoYXJhY3Rlckxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
Y29udGludW91c0NvbnRlbnQucnVucygpLnNpemUoKSA9PSAxKQogICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBJc0VuZE9mTGluZTo6
WWVzIH07Ci0gICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpCcmVhaywgSXNFbmRPZkxpbmU6OlllcywgUmVzdWx0
OjpQYXJ0aWFsVHJhaWxpbmdDb250ZW50IHsgbGVhZGluZ1RleHRSdW5JbmRleCwgeyB9IH0gfTsK
ICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBhdXRvIGZpcnN0Q29kZVBvaW50
V2lkdGggPSBUZXh0VXRpbDo6d2lkdGgoaW5saW5lVGV4dEl0ZW0sIGxlYWRpbmdUZXh0UnVuLnN0
eWxlLmZvbnRDYXNjYWRlKCksIGlubGluZVRleHRJdGVtLnN0YXJ0KCksIGlubGluZVRleHRJdGVt
LnN0YXJ0KCkgKyBmaXJzdENvZGVQb2ludExlbmd0aCwgbGluZVN0YXR1cy5jb250ZW50TG9naWNh
bFJpZ2h0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0IHsgUmVzdWx0OjpBY3Rpb246
OkJyZWFrLCBJc0VuZE9mTGluZTo6WWVzLCBSZXN1bHQ6OlBhcnRpYWxUcmFpbGluZ0NvbnRlbnQg
eyBsZWFkaW5nVGV4dFJ1bkluZGV4LCBQYXJ0aWFsUnVuIHsgZmlyc3RDb2RlUG9pbnRMZW5ndGgs
IGZpcnN0Q29kZVBvaW50V2lkdGggfSB9IH07CisgICAgICAgICAgICAgICAgYXV0byBmaXJzdENo
YXJhY3RlcldpZHRoID0gVGV4dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVtLCBsZWFkaW5nVGV4
dFJ1bi5zdHlsZS5mb250Q2FzY2FkZSgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVU
ZXh0SXRlbS5zdGFydCgpICsgZmlyc3RDaGFyYWN0ZXJMZW5ndGgsIGxpbmVTdGF0dXMuY29udGVu
dExvZ2ljYWxSaWdodCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6
QWN0aW9uOjpCcmVhaywgSXNFbmRPZkxpbmU6OlllcywgUmVzdWx0OjpQYXJ0aWFsVHJhaWxpbmdD
b250ZW50IHsgbGVhZGluZ1RleHRSdW5JbmRleCwgUGFydGlhbFJ1biB7IGZpcnN0Q2hhcmFjdGVy
TGVuZ3RoLCBmaXJzdENoYXJhY3RlcldpZHRoIH0gfSB9OwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgaWYgKHRyYWlsaW5nQ29udGVudC0+b3ZlcmZsb3dzICYmIGxpbmVTdGF0dXMuaGFzQ29u
dGVudCkgewogICAgICAgICAgICAgICAgIC8vIFdlIG1hbmFnZWQgdG8gYnJlYWsgYSBydW4gd2l0
aCBvdmVyZmxvdyBidXQgdGhlIGxpbmUgYWxyZWFkeSBoYXMgY29udGVudC4gTGV0J3Mgd3JhcCBp
dCB0byB0aGUgbmV4dCBsaW5lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvdGV4dC9UZXh0VXRpbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcAppbmRl
eCBlN2UzNzQyMmNjNDE5YzM0NzAxMzk2Y2MyNGE5YzY4NjczN2Q2MDc3Li4yODljZWZlNDUyYTg4
MzYyMGIxYWRhZDhhZTYyYzBiZDIxNDFkNzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRV
dGlsLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1
ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU3Vycm9nYXRlUGFpckF3YXJlVGV4dEl0ZXJh
dG9yLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvVGV4dEJyZWFrSXRlcmF0b3IuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CkBAIC0yNzQsNiArMjc1LDI3IEBAIGJv
b2wgVGV4dFV0aWw6OmNvbnRhaW5zU3Ryb25nRGlyZWN0aW9uYWxpdHlUZXh0KFN0cmluZ1ZpZXcg
dGV4dCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3NpemVfdCBUZXh0VXRpbDo6Zmlyc3RVc2Vy
UGVyY2VpdmVkQ2hhcmFjdGVyTGVuZ3RoKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0
SXRlbSkKK3sKKyAgICBhdXRvJiBpbmxpbmVUZXh0Qm94ID0gaW5saW5lVGV4dEl0ZW0uaW5saW5l
VGV4dEJveCgpOworICAgIGF1dG8gdGV4dENvbnRlbnQgPSBpbmxpbmVUZXh0Qm94LmNvbnRlbnQo
KTsKKyAgICBSRUxFQVNFX0FTU0VSVCghdGV4dENvbnRlbnQuaXNFbXB0eSgpKTsKKworICAgIGlm
ICh0ZXh0Q29udGVudC5pczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIDE7CisgICAgaWYgKGlubGlu
ZVRleHRCb3guY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCkpIHsKKyAgICAgICAgVUNoYXIzMiBj
aGFyYWN0ZXI7CisgICAgICAgIHNpemVfdCBlbmRPZkNvZGVQb2ludCA9IDA7CisgICAgICAgIFUx
Nl9ORVhUKHRleHRDb250ZW50LmNoYXJhY3RlcnMxNigpLCBlbmRPZkNvZGVQb2ludCwgdGV4dENv
bnRlbnQubGVuZ3RoKCksIGNoYXJhY3Rlcik7CisgICAgICAgIHJldHVybiBlbmRPZkNvZGVQb2lu
dDsKKyAgICB9CisgICAgYXV0byBncmFwaGVtZUNsdXN0ZXJzSXRlcmF0b3IgPSBOb25TaGFyZWRD
aGFyYWN0ZXJCcmVha0l0ZXJhdG9yIHsgdGV4dENvbnRlbnQgfTsKKyAgICBhdXRvIG5leHRQb3Np
dGlvbiA9IHVicmtfZm9sbG93aW5nKGdyYXBoZW1lQ2x1c3RlcnNJdGVyYXRvciwgaW5saW5lVGV4
dEl0ZW0uc3RhcnQoKSk7CisgICAgaWYgKG5leHRQb3NpdGlvbiA9PSBVQlJLX0RPTkUpCisgICAg
ICAgIHJldHVybiBpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKTsKKyAgICByZXR1cm4gbmV4dFBvc2l0
aW9uIC0gaW5saW5lVGV4dEl0ZW0uc3RhcnQoKTsKK30KKwogfQogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0
L1RleHRVdGlsLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS90ZXh0L1RleHRVdGlsLmgKaW5kZXggYmViMzBiZWFiZDkzNTRmZTZkZDhlOWE5MmNkZDZi
ZmNkY2U4NWFkZi4uOTZjNzcwOTVkNzY5ZGQwMzgzOWFiMzJhMjI1Mzk0ZmY0YWQxOWZmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
dGV4dC9UZXh0VXRpbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL3RleHQvVGV4dFV0aWwuaApAQCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGJvb2wgc2hvdWxkUHJlc2VydmVOZXdsaW5lKGNvbnN0IEJveCYpOwogICAgIHN0
YXRpYyBib29sIGlzV3JhcHBpbmdBbGxvd2VkKGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgc3Rh
dGljIGJvb2wgY29udGFpbnNTdHJvbmdEaXJlY3Rpb25hbGl0eVRleHQoU3RyaW5nVmlldyk7CisK
KyAgICBzdGF0aWMgc2l6ZV90IGZpcnN0VXNlclBlcmNlaXZlZENoYXJhY3Rlckxlbmd0aChjb25z
dCBJbmxpbmVUZXh0SXRlbSYpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcApp
bmRleCAyNWM0NWE5NTlmODBlYjUwMTNiYzAxZTUyN2RmMjRmNTBjMzc3NDUzLi5hZGUxN2RmNTA3
NjMzYjdmYjhjM2VmM2E3OTMxMzNjYWE2YjFlNThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVl
LmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIEJveFRyZWU6OmJ1aWxkVHJlZSgpCiAgICAgICAg
ICAgICBhdXRvIHN0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERp
c3BsYXkodGV4dFJlbmRlcmVyLnN0eWxlKCksIERpc3BsYXlUeXBlOjpJbmxpbmUpOwogICAgICAg
ICAgICAgYXV0byB0ZXh0ID0gc3R5bGUudGV4dFNlY3VyaXR5KCkgPT0gVGV4dFNlY3VyaXR5OjpO
b25lID8gdGV4dFJlbmRlcmVyLnRleHQoKSA6IFJlbmRlckJsb2NrOjp1cGRhdGVTZWN1cml0eURp
c2NDaGFyYWN0ZXJzKHN0eWxlLCB0ZXh0UmVuZGVyZXIudGV4dCgpKTsKICAgICAgICAgICAgIGF1
dG8gdXNlU2ltcGxpZmllZFRleHRNZWFzdXJpbmcgPSB0ZXh0UmVuZGVyZXIuY2FuVXNlU2ltcGxp
ZmllZFRleHRNZWFzdXJpbmcoKSAmJiAoIWZpcnN0TGluZVN0eWxlIHx8IGZpcnN0TGluZVN0eWxl
LT5mb250Q2FzY2FkZSgpID09IHN0eWxlLmZvbnRDYXNjYWRlKCkpOwotICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmlxdWU8TGF5b3V0OjpJbmxpbmVUZXh0Qm94Pih0ZXh0LCB1c2VTaW1wbGlmaWVk
VGV4dE1lYXN1cmluZywgV1RGTW92ZShzdHlsZSksIFdURk1vdmUoZmlyc3RMaW5lU3R5bGUpKTsK
KyAgICAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPExheW91dDo6SW5saW5lVGV4dEJveD4odGV4
dCwgdXNlU2ltcGxpZmllZFRleHRNZWFzdXJpbmcsIHRleHRSZW5kZXJlci5jYW5Vc2VTaW1wbGVG
b250Q29kZVBhdGgoKSwgV1RGTW92ZShzdHlsZSksIFdURk1vdmUoZmlyc3RMaW5lU3R5bGUpKTsK
ICAgICAgICAgfQogCiAgICAgICAgIGF1dG8gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUoY2hp
bGRSZW5kZXJlci5zdHlsZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0SW5saW5lVGV4dEJveC5jcHAKaW5kZXggY2M5Mzk5N2E3MTdiMDM0
Nzk0NTYyYWY5NmRiMjAzODVkOTA5OGM1Zi4uOGNhOGU3MWViYTRlMzk0ZjBlYjExNmZiMzViMzFl
NGNkMWQ1NzAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0SW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0SW5saW5lVGV4dEJveC5jcHAKQEAgLTM2LDEwICszNiwxMSBAQCBuYW1lc3Bh
Y2UgTGF5b3V0IHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKElubGluZVRleHRCb3gp
OwogCi1JbmxpbmVUZXh0Qm94OjpJbmxpbmVUZXh0Qm94KFN0cmluZyBjb250ZW50LCBib29sIGNh
blVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nLCBSZW5kZXJTdHlsZSYmIHN0eWxlLCBzdGQ6
OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+JiYgZmlyc3RMaW5lU3R5bGUpCitJbmxpbmVUZXh0Qm94
OjpJbmxpbmVUZXh0Qm94KFN0cmluZyBjb250ZW50LCBib29sIGNhblVzZVNpbXBsaWZpZWRDb250
ZW50TWVhc3VyaW5nLCBib29sIGNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCwgUmVuZGVyU3R5bGUm
JiBzdHlsZSwgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiYmIGZpcnN0TGluZVN0eWxlKQog
ICAgIDogQm94KHsgfSwgV1RGTW92ZShzdHlsZSksIFdURk1vdmUoZmlyc3RMaW5lU3R5bGUpLCBC
b3g6OklubGluZVRleHRCb3hGbGFnKQogICAgICwgbV9jb250ZW50KGNvbnRlbnQpCiAgICAgLCBt
X2NhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nKGNhblVzZVNpbXBsaWZpZWRDb250ZW50
TWVhc3VyaW5nKQorICAgICwgbV9jYW5Vc2VTaW1wbGVGb250Q29kZVBhdGgoY2FuVXNlU2ltcGxl
Rm9udENvZGVQYXRoKQogewogICAgIHNldElzQW5vbnltb3VzKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVUZXh0Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVUZXh0Qm94LmgKaW5k
ZXggZjlmYmM1YTM1ZWU3NjhhNTBkZGZmYjBlM2ViZWZiNDJlN2NiNzgwZi4uMGYwODhmZmE0ZjBi
NWQ0NTNhYTc1YzBjMjgxODFjNzE1NGQzY2ZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5saW5lVGV4dEJveC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZVRleHRCb3guaApAQCAtMzcsMTYgKzM3
LDE4IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogY2xhc3MgSW5saW5lVGV4dEJveCA6IHB1YmxpYyBC
b3ggewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSW5saW5lVGV4dEJveCk7CiBwdWJsaWM6
Ci0gICAgSW5saW5lVGV4dEJveChTdHJpbmcsIGJvb2wgY2FuVXNlU2ltcGxpZmllZENvbnRlbnRN
ZWFzdXJpbmcsIFJlbmRlclN0eWxlJiYsIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4mJiBm
aXJzdExpbmVTdHlsZSA9IG51bGxwdHIpOworICAgIElubGluZVRleHRCb3goU3RyaW5nLCBib29s
IGNhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nLCBib29sIGNhblVzZVNpbXBsZUZvbnRD
b2RlUGF0aCwgUmVuZGVyU3R5bGUmJiwgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiYmIGZp
cnN0TGluZVN0eWxlID0gbnVsbHB0cik7CiAgICAgdmlydHVhbCB+SW5saW5lVGV4dEJveCgpID0g
ZGVmYXVsdDsKIAogICAgIFN0cmluZyBjb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50
OyB9CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBhIGJveCdzIHByb3BlcnR5Lgog
ICAgIGJvb2wgY2FuVXNlU2ltcGxpZmllZENvbnRlbnRNZWFzdXJpbmcoKSBjb25zdCB7IHJldHVy
biBtX2NhblVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nOyB9CisgICAgYm9vbCBjYW5Vc2VT
aW1wbGVGb250Q29kZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2NhblVzZVNpbXBsZUZvbnRDb2Rl
UGF0aDsgfQogCiBwcml2YXRlOgogICAgIFN0cmluZyBtX2NvbnRlbnQ7CiAgICAgYm9vbCBtX2Nh
blVzZVNpbXBsaWZpZWRDb250ZW50TWVhc3VyaW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1fY2Fu
VXNlU2ltcGxlRm9udENvZGVQYXRoIHsgdHJ1ZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCmluZGV4
IDMzMjcwMjRmYWMwMjVmNDU3NTQ4MmQ5Njg4MGEwNjMwZTBjZGZhZWEuLjkwNWU5NzE1ZjUwOGVh
MTM5ZTg0ZmU0ZWM3MjFiZWZhYzM0YmU5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKQEAgLTEzMiw5ICsxMzIs
OSBAQCBzdGQ6OnVuaXF1ZV9wdHI8Qm94PiBUcmVlQnVpbGRlcjo6Y3JlYXRlUmVwbGFjZWRCb3go
c3RkOjpvcHRpb25hbDxCb3g6OkVsZW1lbnRBdAogICAgIHJldHVybiBtYWtlVW5pcXVlPFJlcGxh
Y2VkQm94PihlbGVtZW50QXR0cmlidXRlcywgV1RGTW92ZShzdHlsZSkpOwogfQogCi1zdGQ6OnVu
aXF1ZV9wdHI8Qm94PiBUcmVlQnVpbGRlcjo6Y3JlYXRlVGV4dEJveChTdHJpbmcgdGV4dCwgYm9v
bCBjYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywgUmVuZGVyU3R5bGUmJiBzdHlsZSkKK3N0
ZDo6dW5pcXVlX3B0cjxCb3g+IFRyZWVCdWlsZGVyOjpjcmVhdGVUZXh0Qm94KFN0cmluZyB0ZXh0
LCBib29sIGNhblVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBib29sIGNhblVzZVNpbXBsZUZv
bnRDb2RlUGF0aCwgIFJlbmRlclN0eWxlJiYgc3R5bGUpCiB7Ci0gICAgcmV0dXJuIG1ha2VVbmlx
dWU8SW5saW5lVGV4dEJveD4odGV4dCwgY2FuVXNlU2ltcGxpZmllZFRleHRNZWFzdXJpbmcsIFdU
Rk1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbmxpbmVUZXh0Qm94Pih0ZXh0
LCBjYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywgY2FuVXNlU2ltcGxlRm9udENvZGVQYXRo
LCBXVEZNb3ZlKHN0eWxlKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IFRyZWVCdWlsZGVy
OjpjcmVhdGVMaW5lQnJlYWtCb3goYm9vbCBpc09wdGlvbmFsLCBSZW5kZXJTdHlsZSYmIHN0eWxl
KQpAQCAtMTcxLDkgKzE3MSw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IFRyZWVCdWlsZGVyOjpj
cmVhdGVMYXlvdXRCb3goY29uc3QgQ29udGFpbmVyQm94JiBwYXJlbnRDb250CiAgICAgICAgIFN0
cmluZyB0ZXh0ID0gdGV4dFJlbmRlcmVyLnRleHQoKTsKICAgICAgICAgYXV0byB1c2VTaW1wbGlm
aWVkVGV4dE1lYXN1cmluZyA9IGNhblVzZVNpbXBsaWZpZWRUZXh0TWVhc3VyaW5nKHRleHQsIHBh
cmVudENvbnRhaW5lci5zdHlsZSgpLmZvbnRDYXNjYWRlKCksIHBhcmVudENvbnRhaW5lci5zdHls
ZSgpLmNvbGxhcHNlV2hpdGVTcGFjZSgpKTsKICAgICAgICAgaWYgKHBhcmVudENvbnRhaW5lci5z
dHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lKQotICAgICAgICAgICAgY2hp
bGRMYXlvdXRCb3ggPSBjcmVhdGVUZXh0Qm94KHRleHQsIHVzZVNpbXBsaWZpZWRUZXh0TWVhc3Vy
aW5nLCBSZW5kZXJTdHlsZTo6Y2xvbmUocGFyZW50Q29udGFpbmVyLnN0eWxlKCkpKTsKKyAgICAg
ICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gY3JlYXRlVGV4dEJveCh0ZXh0LCB1c2VTaW1wbGlmaWVk
VGV4dE1lYXN1cmluZywgdGV4dFJlbmRlcmVyLmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpLCBS
ZW5kZXJTdHlsZTo6Y2xvbmUocGFyZW50Q29udGFpbmVyLnN0eWxlKCkpKTsKICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBjcmVhdGVUZXh0Qm94KHRleHQsIHVzZVNp
bXBsaWZpZWRUZXh0TWVhc3VyaW5nLCBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVX
aXRoRGlzcGxheShwYXJlbnRDb250YWluZXIuc3R5bGUoKSwgRGlzcGxheVR5cGU6OklubGluZSkp
OworICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBjcmVhdGVUZXh0Qm94KHRleHQsIHVzZVNp
bXBsaWZpZWRUZXh0TWVhc3VyaW5nLCB0ZXh0UmVuZGVyZXIuY2FuVXNlU2ltcGxlRm9udENvZGVQ
YXRoKCksIFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KHBhcmVu
dENvbnRhaW5lci5zdHlsZSgpLCBEaXNwbGF5VHlwZTo6SW5saW5lKSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgYXV0byYgcmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJFbGVtZW50PihjaGlsZFJl
bmRlcmVyKTsKICAgICAgICAgYXV0byBkaXNwbGF5VHlwZSA9IHJlbmRlcmVyLnN0eWxlKCkuZGlz
cGxheSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0VHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91
dFRyZWVCdWlsZGVyLmgKaW5kZXggNjNhYjg3OTM0ODFmYjNhNjRmZWUwZTEyZGIwZmU3MjkyMjhk
YjUyMS4uZDY0YTA5ZTAxMGZmZTA4NTQ0NWIxMjFmNDNlNzdjODkzODkzYzM0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5o
CkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEJveD4gY3Jl
YXRlTGF5b3V0Qm94KGNvbnN0IENvbnRhaW5lckJveCYgcGFyZW50Q29udGFpbmVyLCBjb25zdCBS
ZW5kZXJPYmplY3QmIGNoaWxkUmVuZGVyZXIpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEJveD4g
Y3JlYXRlUmVwbGFjZWRCb3goc3RkOjpvcHRpb25hbDxCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzPiwg
UmVuZGVyU3R5bGUmJik7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEJveD4gY3JlYXRlVGV4dEJveChT
dHJpbmcgdGV4dCwgYm9vbCBjYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywgUmVuZGVyU3R5
bGUmJik7CisgICAgc3RkOjp1bmlxdWVfcHRyPEJveD4gY3JlYXRlVGV4dEJveChTdHJpbmcgdGV4
dCwgYm9vbCBjYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZywgYm9vbCBjYW5Vc2VTaW1wbGVG
b250Q29kZVBhdGgsIFJlbmRlclN0eWxlJiYpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IGNy
ZWF0ZUxpbmVCcmVha0JveChib29sIGlzT3B0aW9uYWwsIFJlbmRlclN0eWxlJiYpOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxDb250YWluZXJCb3g+IGNyZWF0ZUNvbnRhaW5lcihzdGQ6Om9wdGlvbmFs
PEJveDo6RWxlbWVudEF0dHJpYnV0ZXM+LCBSZW5kZXJTdHlsZSYmKTsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>