<?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>137611</bug_id>
          
          <creation_ts>2014-10-10 07:26:58 -0700</creation_ts>
          <short_desc>Multiple refactors in RenderMathMLOperator</short_desc>
          <delta_ts>2014-10-14 03:06:41 -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>MathML</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alejandro G. Castro">alex</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1040907</commentid>
    <comment_count>0</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2014-10-10 07:26:58 -0700</bug_when>
    <thetext>Clean the code in RenderMathMLOperator following suggestions in bug #136883.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040908</commentid>
    <comment_count>1</comment_count>
      <attachid>239624</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2014-10-10 07:41:30 -0700</bug_when>
    <thetext>Created attachment 239624
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040912</commentid>
    <comment_count>2</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2014-10-10 07:58:42 -0700</bug_when>
    <thetext>The patch applies over the patch in bug #133845.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040932</commentid>
    <comment_count>3</comment_count>
      <attachid>239624</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-10 09:41:25 -0700</bug_when>
    <thetext>Comment on attachment 239624
patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        - Make most of the functions private, we needed to create some API
&gt; +        and move trailingSpaceError to RenderMathMLOperator.

To be pedantic, the new member functions are needed because of making data members private, not functions. Also, I personally wouldn&apos;t use the term API to mean public functions here; there’s no “app”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041518</commentid>
    <comment_count>4</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2014-10-14 02:59:35 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 239624 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=239624&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        - Make most of the functions private, we needed to create some API
&gt; &gt; +        and move trailingSpaceError to RenderMathMLOperator.
&gt; 
&gt; To be pedantic, the new member functions are needed because of making data members private, not functions. Also, I personally wouldn&apos;t use the term API to mean public functions here; there’s no “app”.

I&apos;ll fix that, thanks :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1041519</commentid>
    <comment_count>5</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2014-10-14 03:06:19 -0700</bug_when>
    <thetext>Landed http://trac.webkit.org/changeset/174678

Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239624</attachid>
            <date>2014-10-10 07:41:30 -0700</date>
            <delta_ts>2014-10-14 03:06:41 -0700</delta_ts>
            <desc>patch</desc>
            <filename>rendermathmloperator.patch</filename>
            <type>text/plain</type>
            <size>23432</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0YjkwZTM0Li5iM2U1NTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDgg
QEAKKzIwMTQtMTAtMTAgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisK
KyAgICAgICAgTXVsdGlwbGUgcmVmYWN0b3JzIGluIFJlbmRlck1hdGhNTE9wZXJhdG9yCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzc2MTEKKworICAg
ICAgICBUaGUgY2hhbmdlcyBpbmNsdWRlOgorICAgICAgICAtIFJlbmFtZSBtX29wZXJhdG9yIHRv
IG1fdGV4dENvbnRlbnQuCisgICAgICAgIC0gTWFrZSBtb3N0IG9mIHRoZSBmdW5jdGlvbnMgcHJp
dmF0ZSwgd2UgbmVlZGVkIHRvIGNyZWF0ZSBzb21lIEFQSQorICAgICAgICBhbmQgbW92ZSB0cmFp
bGluZ1NwYWNlRXJyb3IgdG8gUmVuZGVyTWF0aE1MT3BlcmF0b3IuCisgICAgICAgIC0gRml4IGlu
Y29ycmVjdCBjYXBpdGFsaXphdGlvbiBvZiBzZXRPcGVyYXRvclByb3BlcnRpZXMgZnVuY3Rpb24u
CisgICAgICAgIC0gTWFrZSBhbGwgZGF0YSBtZW1iZXJzIHByaXZhdGUgYW5kIG1vdmUgdGhlbSB0
byB0aGUgZW5kIG9mIHRoZQorICAgICAgICBjbGFzcyBkZWZpdGlvbi4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXMgbm8gY2hh
bmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTE9wZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJh
dG9yOjpSZW5kZXJNYXRoTUxPcGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRo
TUxPcGVyYXRvcjo6c2V0T3BlcmF0b3JQcm9wZXJ0aWVzKTogUmVuYW1lZCwKKyAgICAgICAgaW5j
b3JyZWN0IGNhcGl0YWxpemF0aW9uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxPcGVy
YXRvcjo6c3RyZXRjaFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9y
Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNYXRoTUxPcGVyYXRvcjo6cmVidWlsZFRva2VuQ29udGVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0b3I6OnVwZGF0ZU9wZXJhdG9yUHJvcGVydGllcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxPcGVyYXRvcjo6c2hvdWxkQWxsb3dTdHJldGNo
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjp1cGRhdGVTdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxPcGVyYXRvcjo6dHJhaWxpbmdTcGFj
ZUVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjpTZXRPcGVy
YXRvclByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1M
T3BlcmF0b3I6OmFkdmFuY2VGb3JHbHlwaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRlVG9rZW5Db250ZW50KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjpnZXRHbHlwaEFzc2VtYmx5RmFsbEJh
Y2spOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3Bl
cmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjpzZXRMZWFk
aW5nU3BhY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9y
OjpzZXRUcmFpbGluZ1NwYWNlKTogIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0
aE1MT3BlcmF0b3I6OnRleHRDb250ZW50KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNYXRoTUxPcGVyYXRvcjo6aXNJbnZpc2libGVPcGVyYXRvcik6CisgICAgICAgICogcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSYWRpY2FsT3BlcmF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9yOjpzZXRPcGVyYXRvclByb3BlcnRpZXMp
OgorICAgICAgICBSZW5hbWVkLCBpbmNvcnJlY3QgY2FwaXRhbGl6YXRpb24KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck1hdGhNTFJhZGljYWxPcGVyYXRvcjo6U2V0T3BlcmF0b3JQcm9wZXJ0aWVz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTFJhZGljYWxPcGVyYXRv
cjo6dHJhaWxpbmdTcGFjZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTFJhZGljYWxPcGVyYXRvci5oOgorCiAyMDE0LTEwLTA5ICBBbGVqYW5k
cm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIENoYW5nZXMgaW4gdGhl
IHN0cmV0Y2h5IGF0dHJpYnV0ZSBkbyBub3QgdXBkYXRlIHJlbmRlcmluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNw
cAppbmRleCA4NTFlYmJkZi4uMGE3ZmI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAKQEAgLTExMzksNyAr
MTEzOSw3IEBAIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpSZW5kZXJNYXRoTUxPcGVyYXRvcihNYXRo
TUxFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlCiAgICAgOiBSZW5kZXJNYXRoTUxUb2tl
bihlbGVtZW50LCBXVEY6Om1vdmUoc3R5bGUpKQogICAgICwgbV9zdHJldGNoSGVpZ2h0QWJvdmVC
YXNlbGluZSgwKQogICAgICwgbV9zdHJldGNoRGVwdGhCZWxvd0Jhc2VsaW5lKDApCi0gICAgLCBt
X29wZXJhdG9yKDApCisgICAgLCBtX3RleHRDb250ZW50KDApCiAgICAgLCBtX2lzVmVydGljYWwo
dHJ1ZSkKIHsKICAgICB1cGRhdGVUb2tlbkNvbnRlbnQoKTsKQEAgLTExNDksNyArMTE0OSw3IEBA
IFJlbmRlck1hdGhNTE9wZXJhdG9yOjpSZW5kZXJNYXRoTUxPcGVyYXRvcihEb2N1bWVudCYgZG9j
dW1lbnQsIFBhc3NSZWY8UmVuZGVyU3R5CiAgICAgOiBSZW5kZXJNYXRoTUxUb2tlbihkb2N1bWVu
dCwgV1RGOjptb3ZlKHN0eWxlKSkKICAgICAsIG1fc3RyZXRjaEhlaWdodEFib3ZlQmFzZWxpbmUo
MCkKICAgICAsIG1fc3RyZXRjaERlcHRoQmVsb3dCYXNlbGluZSgwKQotICAgICwgbV9vcGVyYXRv
cigwKQorICAgICwgbV90ZXh0Q29udGVudCgwKQogICAgICwgbV9pc1ZlcnRpY2FsKHRydWUpCiAg
ICAgLCBtX29wZXJhdG9yRm9ybShmb3JtKQogICAgICwgbV9vcGVyYXRvckZsYWdzKGZsYWdzKQpA
QCAtMTE5NiwxMCArMTE5NiwxMCBAQCB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpzZXRPcGVy
YXRvclByb3BlcnRpZXNGcm9tT3BEaWN0RW50cnkoY29uc3QgTWF0aE1MT3BlcgogICAgIG1fdHJh
aWxpbmdTcGFjZSA9IGVudHJ5LT5yc3BhY2UgKiBzdHlsZSgpLmZvbnQoKS5zaXplKCkgLyAxODsK
IH0KIAotdm9pZCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6U2V0T3BlcmF0b3JQcm9wZXJ0aWVzKCkK
K3ZvaWQgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OnNldE9wZXJhdG9yUHJvcGVydGllcygpCiB7CiAg
ICAgLy8gV2UgZGV0ZXJtaW5lIHRoZSBzdHJldGNoIGRpcmVjdGlvbiAoZGVmYXVsdCBpcyB2ZXJ0
aWNhbCkuCi0gICAgbV9pc1ZlcnRpY2FsID0gISh0cnlCaW5hcnlTZWFyY2g8Y29uc3QgVUNoYXIs
IFVDaGFyPihNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6Omhvcml6b250YWxPcGVyYXRvcnMsIFdU
Rl9BUlJBWV9MRU5HVEgoTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5Ojpob3Jpem9udGFsT3BlcmF0
b3JzKSwgbV9vcGVyYXRvciwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpFeHRyYWN0S2V5SG9y
aXpvbnRhbCkpOworICAgIG1faXNWZXJ0aWNhbCA9ICEodHJ5QmluYXJ5U2VhcmNoPGNvbnN0IFVD
aGFyLCBVQ2hhcj4oTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5Ojpob3Jpem9udGFsT3BlcmF0b3Jz
LCBXVEZfQVJSQVlfTEVOR1RIKE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6aG9yaXpvbnRhbE9w
ZXJhdG9ycyksIG1fdGV4dENvbnRlbnQsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RXh0cmFj
dEtleUhvcml6b250YWwpKTsKIAogICAgIC8vIFdlIGRldGVybWluZSB0aGUgZm9ybSBvZiB0aGUg
b3BlcmF0b3IuCiAgICAgYm9vbCBleHBsaWNpdEZvcm0gPSB0cnVlOwpAQCAtMTIzNSwxNiArMTIz
NSwxNiBAQCB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpTZXRPcGVyYXRvclByb3BlcnRpZXMo
KQogICAgIG1fbWluU2l6ZSA9IHN0eWxlKCkuZm9udCgpLnNpemUoKTsgLy8gVGhpcyBzZXRzIG1p
bnNpemUgdG8gIjFlbSIuCiAgICAgbV9tYXhTaXplID0gaW50TWF4Rm9yTGF5b3V0VW5pdDsgLy8g
VGhpcyBzZXRzIG1heHNpemUgdG8gImluZmluaXR5Ii4KIAotICAgIGlmIChtX29wZXJhdG9yKSB7
CisgICAgaWYgKG1fdGV4dENvbnRlbnQpIHsKICAgICAgICAgLy8gVGhlbiB3ZSB0cnkgdG8gZmlu
ZCB0aGUgZGVmYXVsdCB2YWx1ZXMgZnJvbSB0aGUgb3BlcmF0b3IgZGljdGlvbmFyeS4KLSAgICAg
ICAgaWYgKGNvbnN0IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RW50cnkqIGVudHJ5ID0gdHJ5
QmluYXJ5U2VhcmNoPGNvbnN0IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RW50cnksIE1hdGhN
TE9wZXJhdG9yRGljdGlvbmFyeTo6S2V5PihNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OmRpY3Rp
b25hcnksIE1BVEhNTF9PUERJQ1RfU0laRSwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpLZXko
bV9vcGVyYXRvciwgbV9vcGVyYXRvckZvcm0pLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkV4
dHJhY3RLZXkpKQorICAgICAgICBpZiAoY29uc3QgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpF
bnRyeSogZW50cnkgPSB0cnlCaW5hcnlTZWFyY2g8Y29uc3QgTWF0aE1MT3BlcmF0b3JEaWN0aW9u
YXJ5OjpFbnRyeSwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpLZXk+KE1hdGhNTE9wZXJhdG9y
RGljdGlvbmFyeTo6ZGljdGlvbmFyeSwgTUFUSE1MX09QRElDVF9TSVpFLCBNYXRoTUxPcGVyYXRv
ckRpY3Rpb25hcnk6OktleShtX3RleHRDb250ZW50LCBtX29wZXJhdG9yRm9ybSksIE1hdGhNTE9w
ZXJhdG9yRGljdGlvbmFyeTo6RXh0cmFjdEtleSkpCiAgICAgICAgICAgICBzZXRPcGVyYXRvclBy
b3BlcnRpZXNGcm9tT3BEaWN0RW50cnkoZW50cnkpOwogICAgICAgICBlbHNlIGlmICghZXhwbGlj
aXRGb3JtKSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBkaWQgbm90IGZpbmQgdGhlIGRlc2lyZWQg
b3BlcmF0b3IgZm9ybSBhbmQgaWYgaXQgd2FzIG5vdCBzZXQgZXhwbGljaXRlbHksIHdlIHVzZSB0
aGUgZmlyc3Qgb25lIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6IEluZml4LCBQcmVmaXgsIFBvc3Rm
aXguCiAgICAgICAgICAgICAvLyBUaGlzIGlzIHRvIGhhbmRsZSBiYWQgTWF0aE1MIG1hcmt1cCB3
aXRob3V0IGV4cGxpY2l0IDxtcm93PiBkZWxpbWl0ZXJzIGxpa2UgIjxtbz4oPC9tbz48bWk+YTwv
bWk+PG1vPik8L21vPjxtbz4oPC9tbz48bWk+YjwvbWk+PG1vPik8L21vPiIgd2hlcmUgdGhlIGlu
bmVyIHBhcmVudGhlc2lzIHNob3VsZCBub3QgYmUgY29uc2lkZXJlZCBpbmZpeC4KLSAgICAgICAg
ICAgIGlmIChjb25zdCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkVudHJ5KiBlbnRyeSA9IHRy
eUJpbmFyeVNlYXJjaDxjb25zdCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkVudHJ5LCBVQ2hh
cj4oTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpkaWN0aW9uYXJ5LCBNQVRITUxfT1BESUNUX1NJ
WkUsIG1fb3BlcmF0b3IsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RXh0cmFjdENoYXIpKSB7
CisgICAgICAgICAgICBpZiAoY29uc3QgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpFbnRyeSog
ZW50cnkgPSB0cnlCaW5hcnlTZWFyY2g8Y29uc3QgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpF
bnRyeSwgVUNoYXI+KE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6ZGljdGlvbmFyeSwgTUFUSE1M
X09QRElDVF9TSVpFLCBtX3RleHRDb250ZW50LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkV4
dHJhY3RDaGFyKSkgewogICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwcmV2aW91cyBlbnRyeSBp
cyBhbm90aGVyIGZvcm0gZm9yIHRoYXQgb3BlcmF0b3IsIHdlIG1vdmUgdG8gdGhhdCBlbnRyeS4g
Tm90ZSB0aGF0IGl0IG9ubHkgcmVtYWlucyBhdCBtb3N0IHR3byBmb3JtcyBzbyB3ZSBkb24ndCBu
ZWVkIHRvIG1vdmUgYW55IGZ1cnRoZXIuCi0gICAgICAgICAgICAgICAgaWYgKGVudHJ5ICE9IE1h
dGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6ZGljdGlvbmFyeSAmJiAoZW50cnktMSktPmNoYXJhY3Rl
ciA9PSBtX29wZXJhdG9yKQorICAgICAgICAgICAgICAgIGlmIChlbnRyeSAhPSBNYXRoTUxPcGVy
YXRvckRpY3Rpb25hcnk6OmRpY3Rpb25hcnkgJiYgKGVudHJ5LTEpLT5jaGFyYWN0ZXIgPT0gbV90
ZXh0Q29udGVudCkKICAgICAgICAgICAgICAgICAgICAgZW50cnktLTsKICAgICAgICAgICAgICAg
ICBtX29wZXJhdG9yRm9ybSA9IGVudHJ5LT5mb3JtOyAvLyBXZSBvdmVycmlkZSB0aGUgZm9ybSBw
cmV2aW91c2x5IGRldGVybWluZWQuCiAgICAgICAgICAgICAgICAgc2V0T3BlcmF0b3JQcm9wZXJ0
aWVzRnJvbU9wRGljdEVudHJ5KGVudHJ5KTsKQEAgLTEyODcsNyArMTI4Nyw3IEBAIHZvaWQgUmVu
ZGVyTWF0aE1MT3BlcmF0b3I6OnN0cmV0Y2hUbyhMYXlvdXRVbml0IGhlaWdodEFib3ZlQmFzZWxp
bmUsIExheW91dFVuaXQKICAgICBtX3N0cmV0Y2hIZWlnaHRBYm92ZUJhc2VsaW5lID0gaGVpZ2h0
QWJvdmVCYXNlbGluZTsKICAgICBtX3N0cmV0Y2hEZXB0aEJlbG93QmFzZWxpbmUgPSBkZXB0aEJl
bG93QmFzZWxpbmU7CiAKLSAgICBTZXRPcGVyYXRvclByb3BlcnRpZXMoKTsKKyAgICBzZXRPcGVy
YXRvclByb3BlcnRpZXMoKTsKICAgICBpZiAoaGFzT3BlcmF0b3JGbGFnKE1hdGhNTE9wZXJhdG9y
RGljdGlvbmFyeTo6U3ltbWV0cmljKSkgewogICAgICAgICAvLyBXZSBtYWtlIHRoZSBvcGVyYXRv
ciBzdHJldGNoIHN5bW1ldHJpY2FsbHkgYWJvdmUgYW5kIGJlbG93IHRoZSBheGlzLgogICAgICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlYWQgdGhlIGF4aXMgZnJvbSB0aGUgTUFUSCB0YWJsZSAo
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjI5NykuIEZvciBub3cs
IHdlIHVzZSB0aGUgc2FtZSB2YWx1ZSBhcyBpbiBSZW5kZXJNYXRoTUxGcmFjdGlvbjo6Zmlyc3RM
aW5lQmFzZWxpbmUoKS4KQEAgLTEzMTgsNyArMTMxOCw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MT3Bl
cmF0b3I6OnN0cmV0Y2hUbyhMYXlvdXRVbml0IHdpZHRoKQogCiAgICAgbV9zdHJldGNoV2lkdGgg
PSB3aWR0aDsKIAotICAgIFNldE9wZXJhdG9yUHJvcGVydGllcygpOworICAgIHNldE9wZXJhdG9y
UHJvcGVydGllcygpOwogCiAgICAgdXBkYXRlU3R5bGUoKTsKIH0KQEAgLTEzNDIsMTIgKzEzNDIs
MTIgQEAgdm9pZCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMoKQogewogICAgIEFTU0VSVChwcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoKSk7CiAK
LSAgICBTZXRPcGVyYXRvclByb3BlcnRpZXMoKTsKKyAgICBzZXRPcGVyYXRvclByb3BlcnRpZXMo
KTsKICAgICBpZiAoIXNob3VsZEFsbG93U3RyZXRjaGluZygpKSB7CiAgICAgICAgIFJlbmRlck1h
dGhNTFRva2VuOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOwogICAgICAgICBpZiAo
aXNJbnZpc2libGVPcGVyYXRvcigpKSB7CiAgICAgICAgICAgICAvLyBJbiBzb21lIGZvbnRzLCBn
bHlwaHMgZm9yIGludmlzaWJsZSBvcGVyYXRvcnMgaGF2ZSBub256ZXJvIHdpZHRoLiBDb25zZXF1
ZW50bHksIHdlIHN1YnRyYWN0IHRoYXQgd2lkdGggaGVyZSB0byBhdm9pZCB3aWRlIGdhcHMuCi0g
ICAgICAgICAgICBHbHlwaERhdGEgZGF0YSA9IHN0eWxlKCkuZm9udCgpLmdseXBoRGF0YUZvckNo
YXJhY3RlcihtX29wZXJhdG9yLCBmYWxzZSk7CisgICAgICAgICAgICBHbHlwaERhdGEgZGF0YSA9
IHN0eWxlKCkuZm9udCgpLmdseXBoRGF0YUZvckNoYXJhY3RlcihtX3RleHRDb250ZW50LCBmYWxz
ZSk7CiAgICAgICAgICAgICBmbG9hdCBnbHlwaFdpZHRoID0gYWR2YW5jZUZvckdseXBoKGRhdGEp
OwogICAgICAgICAgICAgQVNTRVJUKGdseXBoV2lkdGggPD0gbV9taW5QcmVmZXJyZWRMb2dpY2Fs
V2lkdGgpOwogICAgICAgICAgICAgbV9taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggLT0gZ2x5cGhX
aWR0aDsKQEAgLTEzNTYsNyArMTM1Niw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OmNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIEdseXBoRGF0YSBkYXRhID0gc3R5bGUoKS5mb250KCkuZ2x5cGhEYXRhRm9yQ2hhcmFjdGVy
KG1fb3BlcmF0b3IsICFzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSk7CisgICAgR2x5
cGhEYXRhIGRhdGEgPSBzdHlsZSgpLmZvbnQoKS5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV90ZXh0
Q29udGVudCwgIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKTsKICAgICBmbG9hdCBt
YXhpbXVtR2x5cGhXaWR0aCA9IGFkdmFuY2VGb3JHbHlwaChkYXRhKTsKICAgICBpZiAoIW1faXNW
ZXJ0aWNhbCkgewogICAgICAgICBpZiAobWF4aW11bUdseXBoV2lkdGggPCBzdHJldGNoU2l6ZSgp
KQpAQCAtMTM2NywxMiArMTM2NywxMiBAQCB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpjb21w
dXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAgICAgfQogICAgIGlmIChpc0xhcmdlT3BlcmF0
b3JJbkRpc3BsYXlTdHlsZSgpKSB7CiAgICAgICAgIC8vIExhcmdlIG9wZXJhdG9ycyBpbiBTVElY
IFdvcmQgaGF2ZSBpbmNvcnJlY3QgYWR2YW5jZSB3aWR0aCwgY2F1c2luZyBtaXNwbGFjZW1lbnQg
b2Ygc3VwZXJzY3JpcHQsIHNvIHdlIHVzZSB0aGUgZ2x5cGggYm91bmQgaW5zdGVhZCAoaHR0cDov
L3NvdXJjZWZvcmdlLm5ldC9wL3N0aXhmb250cy90cmFja2luZy80OS8pLgotICAgICAgICBTdHJl
dGNoeURhdGEgbGFyZ2VPcGVyYXRvciA9IGdldERpc3BsYXlTdHlsZUxhcmdlT3BlcmF0b3IobV9v
cGVyYXRvcik7CisgICAgICAgIFN0cmV0Y2h5RGF0YSBsYXJnZU9wZXJhdG9yID0gZ2V0RGlzcGxh
eVN0eWxlTGFyZ2VPcGVyYXRvcihtX3RleHRDb250ZW50KTsKICAgICAgICAgaWYgKGxhcmdlT3Bl
cmF0b3IubW9kZSgpID09IERyYXdTaXplVmFyaWFudCkKICAgICAgICAgICAgIG1heGltdW1HbHlw
aFdpZHRoID0gYm91bmRzRm9yR2x5cGgobGFyZ2VPcGVyYXRvci52YXJpYW50KCkpLndpZHRoKCk7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gRklYTUU6IHNvbWUgZ2x5cGhzIChlLmcuIHRoZSBv
bmUgZm9yICJGUkFDVElPTiBTTEFTSCIgaW4gdGhlIFNUSVggTWF0aCBmb250IG9yIGxhcmdlIG9w
ZXJhdG9ycykgaGF2ZSBhIHdpZHRoIHRoYXQgZGVwZW5kcyBvbiB0aGUgaGVpZ2h0LCByZXN1bHRp
bmcgaW4gbGFyZ2UgZ2FwcyAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMDMyNikuCi0gICAgICAgIGZpbmRTdHJldGNoeURhdGEobV9vcGVyYXRvciwgJm1heGltdW1H
bHlwaFdpZHRoKTsKKyAgICAgICAgZmluZFN0cmV0Y2h5RGF0YShtX3RleHRDb250ZW50LCAmbWF4
aW11bUdseXBoV2lkdGgpOwogICAgIH0KICAgICBtX21heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9
IG1fbWluUHJlZmVycmVkTG9naWNhbFdpZHRoID0gbV9sZWFkaW5nU3BhY2UgKyBtYXhpbXVtR2x5
cGhXaWR0aCArIG1fdHJhaWxpbmdTcGFjZTsKIH0KQEAgLTEzOTMsOCArMTM5Myw4IEBAIHZvaWQg
UmVuZGVyTWF0aE1MT3BlcmF0b3I6OnJlYnVpbGRUb2tlbkNvbnRlbnQoY29uc3QgU3RyaW5nJiBv
cGVyYXRvclN0cmluZykKICAgICAvLyBXZSB2ZXJpZnkgd2hldGhlciB0aGUgb3BlcmF0b3IgdGV4
dCBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgYSBzaW5nbGUgVUNoYXIuCiAgICAgLy8gRklYTUU6IFRo
aXMgZG9lcyBub3QgaGFuZGxlIHN1cnJvZ2F0ZSBwYWlycyAoaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMjI5NikuCiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3Qg
aGFuZGxlIDxtbz4gb3BlcmF0b3JzIHdpdGggbXVsdGlwbGUgY2hhcmFjdGVycyAoaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDgyOCkuCi0gICAgbV9vcGVyYXRvciA9
IHRleHRDb250ZW50Lmxlbmd0aCgpID09IDEgPyB0ZXh0Q29udGVudFswXSA6IDA7Ci0gICAgU2V0
T3BlcmF0b3JQcm9wZXJ0aWVzKCk7CisgICAgbV90ZXh0Q29udGVudCA9IHRleHRDb250ZW50Lmxl
bmd0aCgpID09IDEgPyB0ZXh0Q29udGVudFswXSA6IDA7CisgICAgc2V0T3BlcmF0b3JQcm9wZXJ0
aWVzKCk7CiAgICAgdXBkYXRlU3R5bGUoKTsKICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0
aHNSZWNhbGMoKTsKIH0KQEAgLTE0MTMsMTMgKzE0MTMsMTMgQEAgdm9pZCBSZW5kZXJNYXRoTUxP
cGVyYXRvcjo6dXBkYXRlVG9rZW5Db250ZW50KCkKIAogdm9pZCBSZW5kZXJNYXRoTUxPcGVyYXRv
cjo6dXBkYXRlRnJvbUVsZW1lbnQoKQogewotICAgIFNldE9wZXJhdG9yUHJvcGVydGllcygpOwor
ICAgIHNldE9wZXJhdG9yUHJvcGVydGllcygpOwogICAgIFJlbmRlck1hdGhNTFRva2VuOjp1cGRh
dGVGcm9tRWxlbWVudCgpOwogfQogCiB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjp1cGRhdGVP
cGVyYXRvclByb3BlcnRpZXMoKQogewotICAgIFNldE9wZXJhdG9yUHJvcGVydGllcygpOworICAg
IHNldE9wZXJhdG9yUHJvcGVydGllcygpOwogICAgIGlmICghaXNFbXB0eSgpKQogICAgICAgICB1
cGRhdGVTdHlsZSgpOwogICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwpA
QCAtMTQyNyw3ICsxNDI3LDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRlT3Bl
cmF0b3JQcm9wZXJ0aWVzKCkKIAogYm9vbCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6c2hvdWxkQWxs
b3dTdHJldGNoaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9vcGVyYXRvciAmJiAoaGFzT3Bl
cmF0b3JGbGFnKE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6U3RyZXRjaHkpIHx8IGlzTGFyZ2VP
cGVyYXRvckluRGlzcGxheVN0eWxlKCkpOworICAgIHJldHVybiBtX3RleHRDb250ZW50ICYmICho
YXNPcGVyYXRvckZsYWcoTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpTdHJldGNoeSkgfHwgaXNM
YXJnZU9wZXJhdG9ySW5EaXNwbGF5U3R5bGUoKSk7CiB9CiAKIGJvb2wgUmVuZGVyTWF0aE1MT3Bl
cmF0b3I6OmdldEdseXBoQXNzZW1ibHlGYWxsQmFjayhWZWN0b3I8T3BlblR5cGVNYXRoRGF0YTo6
QXNzZW1ibHlQYXJ0PiBhc3NlbWJseVBhcnRzLCBTdHJldGNoeURhdGEmIHN0cmV0Y2h5RGF0YSkg
Y29uc3QKQEAgLTE2NzEsMTQgKzE2NzEsMTQgQEAgdm9pZCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6
dXBkYXRlU3R5bGUoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pc1ZlcnRpY2FsICYm
IGlzTGFyZ2VPcGVyYXRvckluRGlzcGxheVN0eWxlKCkpCi0gICAgICAgIG1fc3RyZXRjaHlEYXRh
ID0gZ2V0RGlzcGxheVN0eWxlTGFyZ2VPcGVyYXRvcihtX29wZXJhdG9yKTsKKyAgICAgICAgbV9z
dHJldGNoeURhdGEgPSBnZXREaXNwbGF5U3R5bGVMYXJnZU9wZXJhdG9yKG1fdGV4dENvbnRlbnQp
OwogICAgIGVsc2UgewogICAgICAgICAvLyBXZSBkbyBub3Qgc3RyZXRjaCBpZiB0aGUgYmFzZSBn
bHlwaCBpcyBsYXJnZSBlbm91Z2guCi0gICAgICAgIEdseXBoRGF0YSBiYXNlR2x5cGggPSBzdHls
ZSgpLmZvbnQoKS5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV9vcGVyYXRvciwgIXN0eWxlKCkuaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbigpKTsKKyAgICAgICAgR2x5cGhEYXRhIGJhc2VHbHlwaCA9IHN0
eWxlKCkuZm9udCgpLmdseXBoRGF0YUZvckNoYXJhY3RlcihtX3RleHRDb250ZW50LCAhc3R5bGUo
KS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpOwogICAgICAgICBmbG9hdCBiYXNlU2l6ZSA9IG1f
aXNWZXJ0aWNhbCA/IGhlaWdodEZvckdseXBoKGJhc2VHbHlwaCkgOiBhZHZhbmNlRm9yR2x5cGgo
YmFzZUdseXBoKTsKICAgICAgICAgaWYgKHN0cmV0Y2hTaXplKCkgPD0gYmFzZVNpemUpCiAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fc3RyZXRjaHlEYXRhID0gZmluZFN0cmV0Y2h5RGF0
YShtX29wZXJhdG9yLCBudWxscHRyKTsKKyAgICAgICAgbV9zdHJldGNoeURhdGEgPSBmaW5kU3Ry
ZXRjaHlEYXRhKG1fdGV4dENvbnRlbnQsIG51bGxwdHIpOwogICAgIH0KIAogICAgIGlmIChtX2lz
VmVydGljYWwgJiYgbV9zdHJldGNoeURhdGEubW9kZSgpID09IERyYXdTaXplVmFyaWFudCkgewpA
QCAtMTk3MSw3ICsxOTcxLDMzIEBAIHZvaWQgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OnBhaW50Q2hp
bGRyZW4oUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50CiAgICAgICAgIHJl
dHVybjsKICAgICBSZW5kZXJNYXRoTUxUb2tlbjo6cGFpbnRDaGlsZHJlbihwYWludEluZm8sIHBh
aW50T2Zmc2V0LCBwYWludEluZm9Gb3JDaGlsZCwgdXNlUHJpbnRSZWN0KTsKIH0KLSAgICAKKwor
TGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6dHJhaWxpbmdTcGFjZUVycm9yKCkKK3sK
KyAgICBjb25zdCBhdXRvJiBwcmltYXJ5Rm9udERhdGEgPSBzdHlsZSgpLmZvbnQoKS5wcmltYXJ5
Rm9udCgpOworICAgIGlmICghcHJpbWFyeUZvbnREYXRhIHx8ICFwcmltYXJ5Rm9udERhdGEtPm1h
dGhEYXRhKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gRm9yIE9wZW5UeXBlIE1BVEgg
Zm9udCwgdGhlIGxheW91dCBpcyBiYXNlZCBvbiBSZW5kZXJNYXRoT3BlcmF0b3IgZm9yIHdoaWNo
IHRoZSBwcmVmZXJyZWQgd2lkdGggaXMgc29tZXRpbWVzIG92ZXJlc3RpbWF0ZWQgKGJ1ZyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMzI2KS4KKyAgICAvLyBIZW5j
ZSB3ZSBkZXRlcm1pbmUgdGhlIGVycm9yIGluIHRoZSBsb2dpY2FsIHdpZHRoIHdpdGggcmVzcGVj
dCB0byB0aGUgYWN0dWFsIHdpZHRoIG9mIHRoZSBnbHlwaChzKSB1c2VkIHRvIHBhaW50IHRoZSBv
cGVyYXRvci4KKyAgICBMYXlvdXRVbml0IHdpZHRoID0gbG9naWNhbFdpZHRoKCk7CisKKyAgICBp
ZiAobV9zdHJldGNoeURhdGEubW9kZSgpID09IERyYXdOb3JtYWwpIHsKKyAgICAgICAgR2x5cGhE
YXRhIGRhdGEgPSBzdHlsZSgpLmZvbnQoKS5nbHlwaERhdGFGb3JDaGFyYWN0ZXIodGV4dENvbnRl
bnQoKSwgIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKTsKKyAgICAgICAgcmV0dXJu
IHdpZHRoIC0gYWR2YW5jZUZvckdseXBoKGRhdGEpOworICAgIH0KKworICAgIGlmIChtX3N0cmV0
Y2h5RGF0YS5tb2RlKCkgPT0gRHJhd1NpemVWYXJpYW50KQorICAgICAgICByZXR1cm4gd2lkdGgg
LSBhZHZhbmNlRm9yR2x5cGgobV9zdHJldGNoeURhdGEudmFyaWFudCgpKTsKKworICAgIGZsb2F0
IGFzc2VtYmx5V2lkdGggPSBhZHZhbmNlRm9yR2x5cGgobV9zdHJldGNoeURhdGEudG9wKCkpOwor
ICAgIGFzc2VtYmx5V2lkdGggPSBzdGQ6Om1heChhc3NlbWJseVdpZHRoLCBhZHZhbmNlRm9yR2x5
cGgobV9zdHJldGNoeURhdGEuYm90dG9tKCkpKTsKKyAgICBhc3NlbWJseVdpZHRoID0gc3RkOjpt
YXgoYXNzZW1ibHlXaWR0aCwgYWR2YW5jZUZvckdseXBoKG1fc3RyZXRjaHlEYXRhLmV4dGVuc2lv
bigpKSk7CisgICAgaWYgKG1fc3RyZXRjaHlEYXRhLm1pZGRsZSgpLmdseXBoKQorICAgICAgICBh
c3NlbWJseVdpZHRoID0gc3RkOjptYXgoYXNzZW1ibHlXaWR0aCwgYWR2YW5jZUZvckdseXBoKG1f
c3RyZXRjaHlEYXRhLm1pZGRsZSgpKSk7CisgICAgcmV0dXJuIHdpZHRoIC0gYXNzZW1ibHlXaWR0
aDsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaAppbmRleCAzYmFlYjlhLi5iODAxMTE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9w
ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxPcGVyYXRvci5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiU2ltcGxlRm9udERhdGEu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAorCiBuYW1lc3BhY2UgTWF0aE1MT3BlcmF0
b3JEaWN0aW9uYXJ5IHsKIAogZW51bSBGb3JtIHsgSW5maXgsIFByZWZpeCwgUG9zdGZpeCB9OwpA
QCAtNzksMzAgKzc5LDIyIEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVRva2VuQ29udGVudCgp
IG92ZXJyaWRlIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlT3BlcmF0b3JQcm9wZXJ0aWVzKCk7CiAg
ICAgdm9pZCBzZXRPcGVyYXRvckZsYWdBbmRTY2hlZHVsZUxheW91dElmTmVlZGVkKE1hdGhNTE9w
ZXJhdG9yRGljdGlvbmFyeTo6RmxhZywgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVWYWx1
ZSk7CisgICAgTGF5b3V0VW5pdCB0cmFpbGluZ1NwYWNlRXJyb3IoKTsKIAogcHJvdGVjdGVkOgot
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGlzQW5vbnltb3VzKCkgPyAiUmVuZGVyTWF0aE1MT3BlcmF0b3IgKGFub255bW91cykiIDog
IlJlbmRlck1hdGhNTE9wZXJhdG9yIjsgfQotICAgIHZpcnR1YWwgdm9pZCBwYWludENoaWxkcmVu
KFBhaW50SW5mbyYgZm9yU2VsZiwgY29uc3QgTGF5b3V0UG9pbnQmLCBQYWludEluZm8mIGZvckNo
aWxkLCBib29sIHVzZVByaW50UmVjdCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGlzUmVu
ZGVyTWF0aE1MT3BlcmF0b3IoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAg
Ly8gVGhlIGZvbGxvd2luZyBvcGVyYXRvcnMgYXJlIGludmlzaWJsZTogVSsyMDYxIEZVTkNUSU9O
IEFQUExJQ0FUSU9OLCBVKzIwNjIgSU5WSVNJQkxFIFRJTUVTLCBVKzIwNjMgSU5WSVNJQkxFIFNF
UEFSQVRPUiwgVSsyMDY0IElOVklTSUJMRSBQTFVTLgotICAgIGJvb2wgaXNJbnZpc2libGVPcGVy
YXRvcigpIGNvbnN0IHsgcmV0dXJuIDB4MjA2MSA8PSBtX29wZXJhdG9yICYmIG1fb3BlcmF0b3Ig
PD0gMHgyMDY0OyB9Ci0gICAgdmlydHVhbCBib29sIGlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRl
ck9iamVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldE9wZXJhdG9yUHJvcGVydGllcygpOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
UHJlZmVycmVkTG9naWNhbFdpZHRocygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9n
aWNhbFRvcCwgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzJikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCBpbnQgZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIFJlbmRlck1hdGhNTE9wZXJhdG9yKiB1bmVtYmVsbGlzaGVkT3BlcmF0b3IoKSBvdmVy
cmlkZSB7IHJldHVybiB0aGlzOyB9Ci0gICAgdm9pZCByZWJ1aWxkVG9rZW5Db250ZW50KGNvbnN0
IFN0cmluZyYgb3BlcmF0b3JTdHJpbmcpOwotICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBv
dmVycmlkZTsKLQotICAgIGJvb2wgc2hvdWxkQWxsb3dTdHJldGNoaW5nKCkgY29uc3Q7Ci0KLSAg
ICBGbG9hdFJlY3QgYm91bmRzRm9yR2x5cGgoY29uc3QgR2x5cGhEYXRhJikgY29uc3Q7Ci0gICAg
ZmxvYXQgaGVpZ2h0Rm9yR2x5cGgoY29uc3QgR2x5cGhEYXRhJikgY29uc3Q7CiAgICAgZmxvYXQg
YWR2YW5jZUZvckdseXBoKGNvbnN0IEdseXBoRGF0YSYpIGNvbnN0OworICAgIHZvaWQgc2V0TGVh
ZGluZ1NwYWNlKExheW91dFVuaXQgbGVhZGluZ1NwYWNlKSB7IG1fbGVhZGluZ1NwYWNlID0gbGVh
ZGluZ1NwYWNlOyB9CisgICAgdm9pZCBzZXRUcmFpbGluZ1NwYWNlKExheW91dFVuaXQgdHJhaWxp
bmdTcGFjZSkgeyBtX3RyYWlsaW5nU3BhY2UgPSB0cmFpbGluZ1NwYWNlOyB9CisgICAgVUNoYXIg
dGV4dENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX3RleHRDb250ZW50OyB9CiAKK3ByaXZhdGU6
CiAgICAgZW51bSBEcmF3TW9kZSB7CiAgICAgICAgIERyYXdOb3JtYWwsIERyYXdTaXplVmFyaWFu
dCwgRHJhd0dseXBoQXNzZW1ibHkKICAgICB9OworCiAgICAgY2xhc3MgU3RyZXRjaHlEYXRhIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIERyYXdNb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21v
ZGU7IH0KQEAgLTE0NywxNSArMTM5LDM0IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorCiAgICAgcHJpdmF0ZToKICAgICAgICAg
RHJhd01vZGUgbV9tb2RlOwogICAgICAgICAvLyBGSVhNRTogRm9yIE9wZW5UeXBlIGZvbnRzIHdp
dGggYSBNQVRIIHRhYmxlIGFsbCB0aGUgZ2x5cGhzIGFyZSBmcm9tIHRoZSBzYW1lIGZvbnQsIHNv
IHdlIHdvdWxkIG9ubHkgbmVlZCB0byBzdG9yZSB0aGUgZ2x5cGggaW5kaWNlcyBoZXJlLgogICAg
ICAgICBHbHlwaERhdGEgbV9kYXRhWzRdOwogICAgIH07CisKKyAgICB2aXJ0dWFsIGNvbnN0IGNo
YXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBpc0Fub255bW91cygpID8g
IlJlbmRlck1hdGhNTE9wZXJhdG9yIChhbm9ueW1vdXMpIiA6ICJSZW5kZXJNYXRoTUxPcGVyYXRv
ciI7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDaGlsZHJlbihQYWludEluZm8mIGZvclNlbGYs
IGNvbnN0IExheW91dFBvaW50JiwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJl
Y3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTE9wZXJhdG9yKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIC8vIFRoZSBmb2xsb3dpbmcgb3Bl
cmF0b3JzIGFyZSBpbnZpc2libGU6IFUrMjA2MSBGVU5DVElPTiBBUFBMSUNBVElPTiwgVSsyMDYy
IElOVklTSUJMRSBUSU1FUywgVSsyMDYzIElOVklTSUJMRSBTRVBBUkFUT1IsIFUrMjA2NCBJTlZJ
U0lCTEUgUExVUy4KKyAgICBib29sIGlzSW52aXNpYmxlT3BlcmF0b3IoKSBjb25zdCB7IHJldHVy
biAweDIwNjEgPD0gbV90ZXh0Q29udGVudCAmJiBtX3RleHRDb250ZW50IDw9IDB4MjA2NDsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc0NoaWxkQWxsb3dlZChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25z
dCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVhbCBpbnQgZmlyc3RM
aW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlck1hdGhNTE9w
ZXJhdG9yKiB1bmVtYmVsbGlzaGVkT3BlcmF0b3IoKSBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9
CisgICAgdm9pZCByZWJ1aWxkVG9rZW5Db250ZW50KGNvbnN0IFN0cmluZyYgb3BlcmF0b3JTdHJp
bmcpOworICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBvdmVycmlkZTsKKworICAgIGJvb2wg
c2hvdWxkQWxsb3dTdHJldGNoaW5nKCkgY29uc3Q7CisKKyAgICBGbG9hdFJlY3QgYm91bmRzRm9y
R2x5cGgoY29uc3QgR2x5cGhEYXRhJikgY29uc3Q7CisgICAgZmxvYXQgaGVpZ2h0Rm9yR2x5cGgo
Y29uc3QgR2x5cGhEYXRhJikgY29uc3Q7CisKICAgICBib29sIGdldEdseXBoQXNzZW1ibHlGYWxs
QmFjayhWZWN0b3I8T3BlblR5cGVNYXRoRGF0YTo6QXNzZW1ibHlQYXJ0PiwgU3RyZXRjaHlEYXRh
JikgY29uc3Q7CiAgICAgU3RyZXRjaHlEYXRhIGdldERpc3BsYXlTdHlsZUxhcmdlT3BlcmF0b3Io
VUNoYXIpIGNvbnN0OwogICAgIFN0cmV0Y2h5RGF0YSBmaW5kU3RyZXRjaHlEYXRhKFVDaGFyLCBm
bG9hdCogbWF4aW11bUdseXBoV2lkdGgpOwotICAgIAorCiAgICAgZW51bSBHbHlwaFBhaW50VHJp
bW1pbmcgewogICAgICAgICBUcmltVG9wLAogICAgICAgICBUcmltQm90dG9tLApAQCAtMTcwLDI1
ICsxODEsMjMgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZmlsbFdpdGhIb3Jpem9udGFsRXh0ZW5z
aW9uR2x5cGgoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmIGZyb20sIGNvbnN0IExheW91
dFBvaW50JiB0byk7CiAgICAgdm9pZCBwYWludFZlcnRpY2FsR2x5cGhBc3NlbWJseShQYWludElu
Zm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogICAgIHZvaWQgcGFpbnRIb3Jpem9udGFsR2x5cGhB
c3NlbWJseShQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOworICAgIHZvaWQgc2V0T3Bl
cmF0b3JGbGFnRnJvbUF0dHJpYnV0ZShNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZsYWcsIGNv
bnN0IFF1YWxpZmllZE5hbWUmKTsKKyAgICB2b2lkIHNldE9wZXJhdG9yRmxhZ0Zyb21BdHRyaWJ1
dGVWYWx1ZShNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZsYWcsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgYXR0cmlidXRlVmFsdWUpOworICAgIHZvaWQgc2V0T3BlcmF0b3JQcm9wZXJ0aWVzRnJvbU9w
RGljdEVudHJ5KGNvbnN0IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RW50cnkqKTsKIAogICAg
IExheW91dFVuaXQgbV9zdHJldGNoSGVpZ2h0QWJvdmVCYXNlbGluZTsKICAgICBMYXlvdXRVbml0
IG1fc3RyZXRjaERlcHRoQmVsb3dCYXNlbGluZTsKICAgICBMYXlvdXRVbml0IG1fc3RyZXRjaFdp
ZHRoOwogCi0gICAgVUNoYXIgbV9vcGVyYXRvcjsKKyAgICBVQ2hhciBtX3RleHRDb250ZW50Owog
ICAgIGJvb2wgbV9pc1ZlcnRpY2FsOwotICAgIFN0cmV0Y2h5RGF0YSBtX3N0cmV0Y2h5RGF0YTsK
ICAgICBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZvcm0gbV9vcGVyYXRvckZvcm07CiAgICAg
dW5zaWduZWQgc2hvcnQgbV9vcGVyYXRvckZsYWdzOwogICAgIExheW91dFVuaXQgbV9sZWFkaW5n
U3BhY2U7CiAgICAgTGF5b3V0VW5pdCBtX3RyYWlsaW5nU3BhY2U7CiAgICAgTGF5b3V0VW5pdCBt
X21pblNpemU7CiAgICAgTGF5b3V0VW5pdCBtX21heFNpemU7Ci0KLSAgICB2b2lkIHNldE9wZXJh
dG9yRmxhZ0Zyb21BdHRyaWJ1dGUoTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGbGFnLCBjb25z
dCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdm9pZCBzZXRPcGVyYXRvckZsYWdGcm9tQXR0cmlidXRl
VmFsdWUoTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGbGFnLCBjb25zdCBBdG9taWNTdHJpbmcm
IGF0dHJpYnV0ZVZhbHVlKTsKLSAgICB2b2lkIHNldE9wZXJhdG9yUHJvcGVydGllc0Zyb21PcERp
Y3RFbnRyeShjb25zdCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkVudHJ5Kik7Ci0gICAgdmly
dHVhbCB2b2lkIFNldE9wZXJhdG9yUHJvcGVydGllcygpOworICAgIFN0cmV0Y2h5RGF0YSBtX3N0
cmV0Y2h5RGF0YTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUmFkaWNh
bE9wZXJhdG9yLmNwcAppbmRleCBiNjFiOGQ4Li5iNjhjMjkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJhZGljYWxPcGVyYXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSYWRpY2Fs
T3BlcmF0b3IuY3BwCkBAIC03MiwxMiArNzIsMTIgQEAgdm9pZCBSZW5kZXJNYXRoTUxSYWRpY2Fs
T3BlcmF0b3I6OnN0cmV0Y2hUbyhMYXlvdXRVbml0IGhlaWdodEFib3ZlQmFzZWxpbmUsIExheW8K
ICAgICBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6c3RyZXRjaFRvKGhlaWdodEFib3ZlQmFzZWxpbmUs
IGRlcHRoQmVsb3dCYXNlbGluZSk7CiB9CiAKLXZvaWQgUmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJh
dG9yOjpTZXRPcGVyYXRvclByb3BlcnRpZXMoKQordm9pZCBSZW5kZXJNYXRoTUxSYWRpY2FsT3Bl
cmF0b3I6OnNldE9wZXJhdG9yUHJvcGVydGllcygpCiB7Ci0gICAgUmVuZGVyTWF0aE1MT3BlcmF0
b3I6OlNldE9wZXJhdG9yUHJvcGVydGllcygpOworICAgIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpz
ZXRPcGVyYXRvclByb3BlcnRpZXMoKTsKICAgICAvLyBXZSByZW1vdmUgc3BhY2luZyBhcm91bmQg
dGhlIHJhZGljYWwgc3ltYm9sLgotICAgIG1fbGVhZGluZ1NwYWNlID0gMDsKLSAgICBtX3RyYWls
aW5nU3BhY2UgPSAwOworICAgIHNldExlYWRpbmdTcGFjZSgwKTsKKyAgICBzZXRUcmFpbGluZ1Nw
YWNlKDApOwogfQogCiB2b2lkIFJlbmRlck1hdGhNTFJhZGljYWxPcGVyYXRvcjo6Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQpAQCAtMTc2LDMyICsxNzYsNiBAQCB2b2lkIFJlbmRlck1h
dGhNTFJhZGljYWxPcGVyYXRvcjo6cGFpbnQoUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBMYXlvdXRQ
b2ludCYgcGFpbgogICAgIGluZm8uY29udGV4dC0+c3Ryb2tlUGF0aChsaW5lKTsKIH0KIAotTGF5
b3V0VW5pdCBSZW5kZXJNYXRoTUxSYWRpY2FsT3BlcmF0b3I6OnRyYWlsaW5nU3BhY2VFcnJvcigp
Ci17Ci0gICAgY29uc3QgYXV0byYgcHJpbWFyeUZvbnREYXRhID0gc3R5bGUoKS5mb250KCkucHJp
bWFyeUZvbnQoKTsKLSAgICBpZiAoIXByaW1hcnlGb250RGF0YSB8fCAhcHJpbWFyeUZvbnREYXRh
LT5tYXRoRGF0YSgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIC8vIEZvciBPcGVuVHlwZSBN
QVRIIGZvbnQsIHRoZSBsYXlvdXQgaXMgYmFzZWQgb24gUmVuZGVyTWF0aE9wZXJhdG9yIGZvciB3
aGljaCB0aGUgcHJlZmVycmVkIHdpZHRoIGlzIHNvbWV0aW1lcyBvdmVyZXN0aW1hdGVkIChidWcg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDMyNikuCi0gICAgLy8g
SGVuY2Ugd2UgZGV0ZXJtaW5lIHRoZSBlcnJvciBpbiB0aGUgbG9naWNhbCB3aWR0aCB3aXRoIHJl
c3BlY3QgdG8gdGhlIGFjdHVhbCB3aWR0aCBvZiB0aGUgZ2x5cGgocykgdXNlZCB0byBwYWludCB0
aGUgcmFkaWNhbC4KLSAgICBMYXlvdXRVbml0IHdpZHRoID0gbG9naWNhbFdpZHRoKCk7Ci0KLSAg
ICBpZiAobV9zdHJldGNoeURhdGEubW9kZSgpID09IERyYXdOb3JtYWwpIHsKLSAgICAgICAgR2x5
cGhEYXRhIGRhdGEgPSBzdHlsZSgpLmZvbnQoKS5nbHlwaERhdGFGb3JDaGFyYWN0ZXIobV9vcGVy
YXRvciwgIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKTsKLSAgICAgICAgcmV0dXJu
IHdpZHRoIC0gYWR2YW5jZUZvckdseXBoKGRhdGEpOwotICAgIH0KLQotICAgIGlmIChtX3N0cmV0
Y2h5RGF0YS5tb2RlKCkgPT0gRHJhd1NpemVWYXJpYW50KQotICAgICAgICByZXR1cm4gd2lkdGgg
LSBhZHZhbmNlRm9yR2x5cGgobV9zdHJldGNoeURhdGEudmFyaWFudCgpKTsKLQotICAgIGZsb2F0
IGFzc2VtYmx5V2lkdGggPSBhZHZhbmNlRm9yR2x5cGgobV9zdHJldGNoeURhdGEudG9wKCkpOwot
ICAgIGFzc2VtYmx5V2lkdGggPSBzdGQ6Om1heChhc3NlbWJseVdpZHRoLCBhZHZhbmNlRm9yR2x5
cGgobV9zdHJldGNoeURhdGEuYm90dG9tKCkpKTsKLSAgICBhc3NlbWJseVdpZHRoID0gc3RkOjpt
YXgoYXNzZW1ibHlXaWR0aCwgYWR2YW5jZUZvckdseXBoKG1fc3RyZXRjaHlEYXRhLmV4dGVuc2lv
bigpKSk7Ci0gICAgaWYgKG1fc3RyZXRjaHlEYXRhLm1pZGRsZSgpLmdseXBoKQotICAgICAgICBh
c3NlbWJseVdpZHRoID0gc3RkOjptYXgoYXNzZW1ibHlXaWR0aCwgYWR2YW5jZUZvckdseXBoKG1f
c3RyZXRjaHlEYXRhLm1pZGRsZSgpKSk7Ci0gICAgcmV0dXJuIHdpZHRoIC0gYXNzZW1ibHlXaWR0
aDsKLX0KLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJhZGljYWxPcGVyYXRvci5oCmluZGV4IGJjM2I0
YmUuLmVjY2Q2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSYWRpY2FsT3BlcmF0b3IuaApAQCAtNDAsMTIgKzQwLDEx
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0
aHMoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExvZ2ljYWxFeHRl
bnRDb21wdXRlZFZhbHVlcyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpIG92ZXJyaWRlOwot
ICAgIExheW91dFVuaXQgdHJhaWxpbmdTcGFjZUVycm9yKCk7CiAKIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIGlzUmVuZGVyTWF0aE1MUmFkaWNhbE9wZXJhdG9yKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGlzQW5vbnltb3VzKCkgPyAiUmVuZGVyTWF0aE1MUmFkaWNh
bE9wZXJhdG9yIChhbm9ueW1vdXMpIiA6ICJSZW5kZXJNYXRoTUxSYWRpY2FsT3BlcmF0b3IiOyB9
Ci0gICAgdm9pZCBTZXRPcGVyYXRvclByb3BlcnRpZXMoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dE9wZXJhdG9yUHJvcGVydGllcygpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>