<?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>12691</bug_id>
          
          <creation_ts>2007-02-08 00:24:30 -0800</creation_ts>
          <short_desc>Generated content and display: table-cell duplicates content on font size change</short_desc>
          <delta_ts>2007-04-30 22:11:15 -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>CSS</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://enfinitystudios.thaposse.net/personal/bugs/table-cell-error.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Elliott Sprehn">esprehn</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>25043</commentid>
    <comment_count>0</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2007-02-08 00:24:30 -0800</bug_when>
    <thetext>An element that has display: table-cell and generated content (with :before or :after) will regenerate this content after a font size change.

Using Apple++ or Apple+- to increase and decrease the font size on the linked page the content specified in the css will be generated again with each increase or decrease in the font size.

This occurs when font is changed by Javascript or the User.

Reproducible with both Konqueror and Safari, official 2.0.4 (419.3) and latest nightly (Thu Feb 8 6:10:29 GMT 2007) builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25107</commentid>
    <comment_count>1</comment_count>
      <attachid>13061</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2007-02-08 11:14:47 -0800</bug_when>
    <thetext>Created attachment 13061
Test Case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11571</commentid>
    <comment_count>2</comment_count>
      <attachid>14282</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-30 20:40:21 -0700</bug_when>
    <thetext>Created attachment 14282
Patch to fix the problem.

This patch fixes the problem by making sure we drill into anonymous containers to find generated content that may have been wrapped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11561</commentid>
    <comment_count>3</comment_count>
      <attachid>14282</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-30 20:42:01 -0700</bug_when>
    <thetext>Comment on attachment 14282
Patch to fix the problem.

There&apos;s a minor problem.  Need to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11562</commentid>
    <comment_count>4</comment_count>
      <attachid>14283</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-30 20:57:48 -0700</bug_when>
    <thetext>Created attachment 14283
Better version of patch.

Fixed a mistake made later in the function where the innermost container was incorrectly used when doing the insertion of the content.  Go layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11564</commentid>
    <comment_count>5</comment_count>
      <attachid>14284</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-30 21:52:04 -0700</bug_when>
    <thetext>Created attachment 14284
Fix issues with table display types

Even though layout tests passed (and the reduction passed), my own further testing before landing caught some additional issues with table display types and generated content.  We weren&apos;t making the right kind of anonymous container for generated content even though we kept the table display type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11515</commentid>
    <comment_count>6</comment_count>
      <attachid>14284</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-30 22:01:10 -0700</bug_when>
    <thetext>Comment on attachment 14284
Fix issues with table display types

+    bool oldContentPresent = child;

For MSVC that needs to be !!child instead of just child used as a boolean.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11516</commentid>
    <comment_count>7</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-04-30 22:11:15 -0700</bug_when>
    <thetext>Fixed.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>13061</attachid>
            <date>2007-02-08 11:14:47 -0800</date>
            <delta_ts>2007-02-08 11:14:47 -0800</delta_ts>
            <desc>Test Case</desc>
            <filename>table-cell-error.html</filename>
            <type>text/html</type>
            <size>379</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgogICAgICAg
ICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KCjxodG1sPgoKPGhlYWQ+
Cgk8dGl0bGU+VGVzdCBDYXNlPC90aXRsZT4KCTxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlw
ZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KCQoJPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KCQkuZXJyb3I6YmVmb3JlIHsKCQkJY29udGVudDogImZvbyBiYXIgYmF6IjsKCQkJ
ZGlzcGxheTogdGFibGUtY2VsbDsKCQl9Cgk8L3N0eWxlPgoJCjwvaGVhZD4KPGJvZHk+Cgk8ZGl2
IGNsYXNzPSJlcnJvciI+PC9kaXY+CjwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14282</attachid>
            <date>2007-04-30 20:40:21 -0700</date>
            <delta_ts>2007-04-30 20:57:48 -0700</delta_ts>
            <desc>Patch to fix the problem.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>28883</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMTk3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDctMDQtMzAgIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBmb3IgYnVnIDEyNjkxLCBnZW5lcmF0ZWQgY29u
dGVudCBhbmQgZGlzcGxheTogdGFibGUtY2VsbCBkdXBsaWNhdGVzCisgICAgICAgIGNvbnRlbnQg
b24gYSBzaXplIGNoYW5nZS4gIE1ha2Ugc3VyZSB0aGF0IHRoZSBjb2RlIHRvIHVwZGF0ZSBiZWZv
cmUvYWZ0ZXIKKyAgICAgICAgY29udGVudCBpcyBzbWFydCBlbm91Z2ggdG8gZHJpbGwgaW50byBh
bm9ueW1vdXMgY29udGFpbmVycyB0byBmaW5kIHRoZQorICAgICAgICBvbGQgY2hpbGQuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1n
ZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50LWV4cGVjdGVkLmNoZWNr
c3VtOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1j
ZWxsLWJlZm9yZS1jb250ZW50LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MtZ2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2VsbC1iZWZvcmUtY29udGVudC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3RhYmxlLWNl
bGwtYmVmb3JlLWNvbnRlbnQuaHRtbDogQWRkZWQuCisKIDIwMDctMDQtMzAgIEp1c3RpbiBHYXJj
aWEgIDxqdXN0aW4uZ2FyY2lhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBkYXJp
bgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2Vs
bC1iZWZvcmUtY29udGVudC1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50
LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2VsbC1iZWZvcmUtY29udGVudC1leHBlY3RlZC5jaGVj
a3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorODhjYTM4Y2YxNzBkYmNkYWM4OTRkMDcw
ZTkyNzI3YzIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29u
dGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3RhYmxlLWNlbGwtYmVm
b3JlLWNvbnRlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDM0CisgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDgwMHgzNAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
Nzg0eDE4IFtjb2xvcj0jMDAwMEZGXQorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkg
c2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGFibGUgYXQgKDAsMCkgc2l6ZSAzNTh4MTggW2Nv
bG9yPSMwMDAwMDBdCisgICAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uIGF0ICgwLDApIHNpemUg
MzU4eDE4CisgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyBhdCAoMCwwKSBzaXplIDM1OHgxOAor
ICAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwgYXQgKDAsMCkgc2l6ZSAzNTh4MTggW3I9MCBj
PTAgcnM9MSBjcz0xXQorICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIChnZW5lcmF0ZWQpIGF0
ICgwLDApIHNpemUgMzU4eDE4IFtjb2xvcj0jMDAwMEZGXQorICAgICAgICAgICAgICAgICAgUmVu
ZGVyVGV4dCBhdCAoMCwwKSBzaXplIDM1OHgxOAorICAgICAgICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCAyODY6ICJZb3Ugc2hvdWxkIGp1c3Qgc2VlIGEgc2luZ2xlIGxpbmUg
b2YgYmx1ZSB0ZXh0LiAiCisgICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyODYsMCkg
d2lkdGggNzI6ICJUaGlzIG9uZS4gOikiCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5l
cmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2VsbC1iZWZv
cmUtY29udGVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2Vu
ZXJhdGVkLWNvbnRlbnQvdGFibGUtY2VsbC1iZWZvcmUtY29udGVudC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhU
TUwgNC4wMS8vRU4iCisgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3Qu
ZHRkIj4KKworPGh0bWw+CisKKzxoZWFkPgorCTx0aXRsZT5UZXN0IENhc2U8L3RpdGxlPgorCTxt
ZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PXV0Zi04Ij4KKwkKKwk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCQkuZXJyb3I6YmVmb3JlIHsK
KwkJCWNvbnRlbnQ6ICJZb3Ugc2hvdWxkIGp1c3Qgc2VlIGEgc2luZ2xlIGxpbmUgb2YgYmx1ZSB0
ZXh0LiAgVGhpcyBvbmUuIDopIjsKKwkJCWRpc3BsYXk6IHRhYmxlLWNlbGw7CisJCX0KKwk8L3N0
eWxlPgorCQorPC9oZWFkPgorPGJvZHk+CisJPGRpdiBjbGFzcz0iZXJyb3IiPjwvZGl2PgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUuY29sb3IgPSAnYmx1ZSc7CisgICAgICAgIDwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IFdlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
MTE5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMDctMDQtMzAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAg
IEZpeCBmb3IgYnVnIDEyNjkxLCBnZW5lcmF0ZWQgY29udGVudCBhbmQgZGlzcGxheTogdGFibGUt
Y2VsbCBkdXBsaWNhdGVzCisgICAgICAgIGNvbnRlbnQgb24gYSBzaXplIGNoYW5nZS4gIE1ha2Ug
c3VyZSB0aGF0IHRoZSBjb2RlIHRvIHVwZGF0ZSBiZWZvcmUvYWZ0ZXIKKyAgICAgICAgY29udGVu
dCBpcyBzbWFydCBlbm91Z2ggdG8gZHJpbGwgaW50byBhbm9ueW1vdXMgY29udGFpbmVycyB0byBm
aW5kIHRoZQorICAgICAgICBvbGQgY2hpbGQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvdGFi
bGUtY2VsbC1iZWZvcmUtY29udGVudC5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldFN0eWxlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJ1dHRvbjo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQnV0dG9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb250YWluZXI6OmJlZm9yZUFmdGVyQ29udGFp
bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckNvbnRhaW5lcjo6dXBkYXRlQmVmb3JlQWZ0
ZXJDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckNvbnRhaW5lcjo6dXBkYXRlQmVm
b3JlQWZ0ZXJDb250ZW50Rm9yT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ29u
dGFpbmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OnNldFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlcklubGluZTo6YWRkQ2hpbGRUb0Zsb3cpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5s
aW5lOjpzcGxpdElubGluZXMpOgorCiAyMDA3LTA0LTMwICBKdXN0aW4gR2FyY2lhICA8anVzdGlu
LmdhcmNpYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgZGFyaW4KSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDIxMTczKQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsOCArMTQ4LDggQEAg
dm9pZCBSZW5kZXJCbG9jazo6c2V0U3R5bGUoUmVuZGVyU3R5bGUqIAogICAgIG1fbGluZUhlaWdo
dCA9IC0xOwogCiAgICAgLy8gVXBkYXRlIHBzZXVkb3MgZm9yIDpiZWZvcmUgYW5kIDphZnRlciBu
b3cuCi0gICAgdXBkYXRlUHNldWRvQ2hpbGQoUmVuZGVyU3R5bGU6OkJFRk9SRSk7Ci0gICAgdXBk
YXRlUHNldWRvQ2hpbGQoUmVuZGVyU3R5bGU6OkFGVEVSKTsKKyAgICB1cGRhdGVCZWZvcmVBZnRl
ckNvbnRlbnQoUmVuZGVyU3R5bGU6OkJFRk9SRSk7CisgICAgdXBkYXRlQmVmb3JlQWZ0ZXJDb250
ZW50KFJlbmRlclN0eWxlOjpBRlRFUik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0FmdGVy
Q29udGVudChSZW5kZXJPYmplY3QqIGNoaWxkKQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQnV0dG9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0
b24uY3BwCShyZXZpc2lvbiAyMTE3MykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRv
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMCwxMiArMTAwLDEyIEBAIHZvaWQgUmVuZGVyQnV0
dG9uOjpzZXRUZXh0KGNvbnN0IFN0cmluZyYKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQnV0dG9u
Ojp1cGRhdGVQc2V1ZG9DaGlsZChSZW5kZXJTdHlsZTo6UHNldWRvSWQgdHlwZSkKK3ZvaWQgUmVu
ZGVyQnV0dG9uOjp1cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQoUmVuZGVyU3R5bGU6OlBzZXVkb0lk
IHR5cGUpCiB7CiAgICAgaWYgKG1faW5uZXIpCi0gICAgICAgIG1faW5uZXItPnVwZGF0ZVBzZXVk
b0NoaWxkRm9yT2JqZWN0KHR5cGUsIHRoaXMpOworICAgICAgICBtX2lubmVyLT51cGRhdGVCZWZv
cmVBZnRlckNvbnRlbnRGb3JPYmplY3QodHlwZSwgdGhpcyk7CiAgICAgZWxzZQotICAgICAgICB1
cGRhdGVQc2V1ZG9DaGlsZEZvck9iamVjdCh0eXBlLCB0aGlzKTsKKyAgICAgICAgdXBkYXRlQmVm
b3JlQWZ0ZXJDb250ZW50Rm9yT2JqZWN0KHR5cGUsIHRoaXMpOwogfQogCiBJbnRSZWN0IFJlbmRl
ckJ1dHRvbjo6Y29udHJvbENsaXBSZWN0KGludCB0eCwgaW50IHR5KSBjb25zdApJbmRleDogV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQnV0dG9uLmgJKHJldmlzaW9uIDIxMTczKQorKysgV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQnV0dG9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRTdHlsZShSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBzZXVk
b0NoaWxkKFJlbmRlclN0eWxlOjpQc2V1ZG9JZCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJl
Zm9yZUFmdGVyQ29udGVudChSZW5kZXJTdHlsZTo6UHNldWRvSWQpOwogCiAgICAgdmlydHVhbCBi
b29sIGhhc0NvbnRyb2xDbGlwKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwg
SW50UmVjdCBjb250cm9sQ2xpcFJlY3QoaW50IC8qdHgqLywgaW50IC8qdHkqLykgY29uc3Q7Cklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb250YWluZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5jcHAJKHJldmlzaW9uIDIxMTczKQor
KysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29udGFpbmVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjMxLDQzICsyMzEsNTYgQEAgdm9pZCBSZW5kZXJDb250YWluZXI6OnJlbW92ZUNoaWxkKFJl
bmRlcgogICAgIHJlbW92ZUNoaWxkTm9kZShvbGRDaGlsZCk7CiB9CiAKLVJlbmRlck9iamVjdCog
UmVuZGVyQ29udGFpbmVyOjpwc2V1ZG9DaGlsZChSZW5kZXJTdHlsZTo6UHNldWRvSWQgdHlwZSkg
Y29uc3QKK1JlbmRlck9iamVjdCogUmVuZGVyQ29udGFpbmVyOjpiZWZvcmVBZnRlckNvbnRhaW5l
cihSZW5kZXJTdHlsZTo6UHNldWRvSWQgdHlwZSkKIHsKICAgICBpZiAodHlwZSA9PSBSZW5kZXJT
dHlsZTo6QkVGT1JFKSB7Ci0gICAgICAgIFJlbmRlck9iamVjdCogZmlyc3QgPSBmaXJzdENoaWxk
KCk7Ci0gICAgICAgIHdoaWxlIChmaXJzdCAmJiBmaXJzdC0+aXNMaXN0TWFya2VyKCkpCi0gICAg
ICAgICAgICBmaXJzdCA9IGZpcnN0LT5uZXh0U2libGluZygpOworICAgICAgICBSZW5kZXJPYmpl
Y3QqIGZpcnN0ID0gdGhpczsKKyAgICAgICAgZG8geworICAgICAgICAgICAgLy8gU2tpcCBsaXN0
IG1hcmtlcnMuCisgICAgICAgICAgICBmaXJzdCA9IGZpcnN0LT5maXJzdENoaWxkKCk7CisgICAg
ICAgICAgICB3aGlsZSAoZmlyc3QgJiYgZmlyc3QtPmlzTGlzdE1hcmtlcigpKQorICAgICAgICAg
ICAgICAgIGZpcnN0ID0gZmlyc3QtPm5leHRTaWJsaW5nKCk7CisgICAgICAgIH0gd2hpbGUgKGZp
cnN0ICYmIGZpcnN0LT5pc0Fub255bW91cygpICYmIGZpcnN0LT5zdHlsZSgpLT5zdHlsZVR5cGUo
KSA9PSBSZW5kZXJTdHlsZTo6Tk9QU0VVRE8pOworICAgICAgICBpZiAoZmlyc3QgJiYgZmlyc3Qt
PnN0eWxlKCktPnN0eWxlVHlwZSgpICE9IHR5cGUpCisgICAgICAgICAgICByZXR1cm4gMDsKICAg
ICAgICAgcmV0dXJuIGZpcnN0OwogICAgIH0KLSAgICBpZiAodHlwZSA9PSBSZW5kZXJTdHlsZTo6
QUZURVIpCi0gICAgICAgIHJldHVybiBsYXN0Q2hpbGQoKTsKKyAgICBpZiAodHlwZSA9PSBSZW5k
ZXJTdHlsZTo6QUZURVIpIHsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBsYXN0ID0gdGhpczsKKyAg
ICAgICAgZG8geworICAgICAgICAgICAgbGFzdCA9IGxhc3QtPmxhc3RDaGlsZCgpOworICAgICAg
ICB9IHdoaWxlIChsYXN0ICYmIGxhc3QtPmlzQW5vbnltb3VzKCkgJiYgbGFzdC0+c3R5bGUoKS0+
c3R5bGVUeXBlKCkgPT0gUmVuZGVyU3R5bGU6Ok5PUFNFVURPICYmICFsYXN0LT5pc0xpc3RNYXJr
ZXIoKSk7CisgICAgICAgIGlmIChsYXN0ICYmIGxhc3QtPnN0eWxlKCktPnN0eWxlVHlwZSgpICE9
IHR5cGUpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGxhc3Q7CisgICAg
fQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQg
UmVuZGVyQ29udGFpbmVyOjp1cGRhdGVQc2V1ZG9DaGlsZChSZW5kZXJTdHlsZTo6UHNldWRvSWQg
dHlwZSkKK3ZvaWQgUmVuZGVyQ29udGFpbmVyOjp1cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQoUmVu
ZGVyU3R5bGU6OlBzZXVkb0lkIHR5cGUpCiB7CiAgICAgLy8gSWYgdGhpcyBpcyBhbiBhbm9ueW1v
dXMgd3JhcHBlciwgdGhlbiBwYXJlbnQgYXBwbGllcyBpdHMgb3duIHBzZXVkbyBzdHlsZSB0byBp
dC4KICAgICBpZiAocGFyZW50KCkgJiYgcGFyZW50KCktPmNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVy
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICB1cGRhdGVQc2V1ZG9DaGlsZEZvck9iamVjdCh0eXBl
LCB0aGlzKTsKKyAgICB1cGRhdGVCZWZvcmVBZnRlckNvbnRlbnRGb3JPYmplY3QodHlwZSwgdGhp
cyk7CiB9CiAKLXZvaWQgUmVuZGVyQ29udGFpbmVyOjp1cGRhdGVQc2V1ZG9DaGlsZEZvck9iamVj
dChSZW5kZXJTdHlsZTo6UHNldWRvSWQgdHlwZSwgUmVuZGVyT2JqZWN0KiBzdHlsZWRPYmplY3Qp
Cit2b2lkIFJlbmRlckNvbnRhaW5lcjo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50Rm9yT2JqZWN0
KFJlbmRlclN0eWxlOjpQc2V1ZG9JZCB0eXBlLCBSZW5kZXJPYmplY3QqIHN0eWxlZE9iamVjdCkK
IHsKICAgICAvLyBJbiBDU1MyLCBiZWZvcmUvYWZ0ZXIgcHNldWRvLWNvbnRlbnQgY2Fubm90IG5l
c3QuICBDaGVjayB0aGlzIGZpcnN0LgogICAgIGlmIChzdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSBS
ZW5kZXJTdHlsZTo6QkVGT1JFIHx8IHN0eWxlKCktPnN0eWxlVHlwZSgpID09IFJlbmRlclN0eWxl
OjpBRlRFUikKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIFJlbmRlclN0eWxlKiBwc2V1ZG8g
PSBzdHlsZWRPYmplY3QtPmdldFBzZXVkb1N0eWxlKHR5cGUpOwotICAgIFJlbmRlck9iamVjdCog
Y2hpbGQgPSBwc2V1ZG9DaGlsZCh0eXBlKTsKKyAgICBSZW5kZXJTdHlsZSogcHNldWRvRWxlbWVu
dFN0eWxlID0gc3R5bGVkT2JqZWN0LT5nZXRQc2V1ZG9TdHlsZSh0eXBlKTsKKyAgICBSZW5kZXJP
YmplY3QqIGNoaWxkID0gYmVmb3JlQWZ0ZXJDb250YWluZXIodHlwZSk7CiAKICAgICAvLyBXaGV0
aGVyIG9yIG5vdCB3ZSBjdXJyZW50bHkgaGF2ZSBnZW5lcmF0ZWQgY29udGVudCBhdHRhY2hlZC4K
LSAgICBib29sIG9sZENvbnRlbnRQcmVzZW50ID0gY2hpbGQgJiYgKGNoaWxkLT5zdHlsZSgpLT5z
dHlsZVR5cGUoKSA9PSB0eXBlKTsKKyAgICBib29sIG9sZENvbnRlbnRQcmVzZW50ID0gY2hpbGQ7
CiAKICAgICAvLyBXaGV0aGVyIG9yIG5vdCB3ZSBub3cgd2FudCBnZW5lcmF0ZWQgY29udGVudC4g
IAotICAgIGJvb2wgbmV3Q29udGVudFdhbnRlZCA9IHBzZXVkbyAmJiBwc2V1ZG8tPmRpc3BsYXko
KSAhPSBOT05FOworICAgIGJvb2wgbmV3Q29udGVudFdhbnRlZCA9IHBzZXVkb0VsZW1lbnRTdHls
ZSAmJiBwc2V1ZG9FbGVtZW50U3R5bGUtPmRpc3BsYXkoKSAhPSBOT05FOwogCiAgICAgLy8gRm9y
IDxxPjxwLz48L3E+LCBpZiB0aGlzIG9iamVjdCBpcyB0aGUgaW5saW5lIGNvbnRpbnVhdGlvbiBv
ZiB0aGUgPHE+LCB3ZSBvbmx5IHdhbnQgdG8gZ2VuZXJhdGUKICAgICAvLyA6YWZ0ZXIgY29udGVu
dCBhbmQgbm90IDpiZWZvcmUgY29udGVudC4KQEAgLTI4Miw3ICsyOTUsNyBAQCB2b2lkIFJlbmRl
ckNvbnRhaW5lcjo6dXBkYXRlUHNldWRvQ2hpbGRGCiAgICAgLy8gSWYgd2UgZG9uJ3Qgd2FudCBn
ZW5lcmF0ZWQgY29udGVudCBhbnkgbG9uZ2VyLCBvciBpZiB3ZSBoYXZlIGdlbmVyYXRlZCBjb250
ZW50LCBidXQgaXQncyBubyBsb25nZXIKICAgICAvLyBpZGVudGljYWwgdG8gdGhlIG5ldyBjb250
ZW50IGRhdGEgd2Ugd2FudCB0byBidWlsZCByZW5kZXIgb2JqZWN0cyBmb3IsIHRoZW4gd2UgbnVr
ZSBhbGwKICAgICAvLyBvZiB0aGUgb2xkIGdlbmVyYXRlZCBjb250ZW50LgotICAgIGlmICghbmV3
Q29udGVudFdhbnRlZCB8fCAob2xkQ29udGVudFByZXNlbnQgJiYgIWNoaWxkLT5zdHlsZSgpLT5j
b250ZW50RGF0YUVxdWl2YWxlbnQocHNldWRvKSkpIHsKKyAgICBpZiAoIW5ld0NvbnRlbnRXYW50
ZWQgfHwgKG9sZENvbnRlbnRQcmVzZW50ICYmICFjaGlsZC0+c3R5bGUoKS0+Y29udGVudERhdGFF
cXVpdmFsZW50KHBzZXVkb0VsZW1lbnRTdHlsZSkpKSB7CiAgICAgICAgIC8vIE51a2UgdGhlIGNo
aWxkLiAKICAgICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLT5zdHlsZSgpLT5zdHlsZVR5cGUoKSA9
PSB0eXBlKSB7CiAgICAgICAgICAgICBvbGRDb250ZW50UHJlc2VudCA9IGZhbHNlOwpAQCAtMjkx
LDM1ICszMDQsMzUgQEAgdm9pZCBSZW5kZXJDb250YWluZXI6OnVwZGF0ZVBzZXVkb0NoaWxkRgog
ICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gSWYgd2UgaGF2ZSBubyBwc2V1ZG8tc3R5bGUgb3Ig
aWYgdGhlIHBzZXVkbydzIGRpc3BsYXkgdHlwZSBpcyBOT05FLCB0aGVuIHdlCisgICAgLy8gSWYg
d2UgaGF2ZSBubyBwc2V1ZG8tZWxlbWVudCBzdHlsZSBvciBpZiB0aGUgcHNldWRvLWVsZW1lbnQg
c3R5bGUncyBkaXNwbGF5IHR5cGUgaXMgTk9ORSwgdGhlbiB3ZQogICAgIC8vIGhhdmUgbm8gZ2Vu
ZXJhdGVkIGNvbnRlbnQgYW5kIGNhbiBub3cgcmV0dXJuLgogICAgIGlmICghbmV3Q29udGVudFdh
bnRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGlzSW5saW5lRmxvdygpICYmICFwc2V1
ZG8tPmlzRGlzcGxheUlubGluZVR5cGUoKSkKKyAgICBpZiAoaXNJbmxpbmVGbG93KCkgJiYgIXBz
ZXVkb0VsZW1lbnRTdHlsZS0+aXNEaXNwbGF5SW5saW5lVHlwZSgpKQogICAgICAgICAvLyBBY2Nv
cmRpbmcgdG8gdGhlIENTUzIgc3BlYyAodGhlIGVuZCBvZiBzZWN0aW9uIDEyLjEpLCB0aGUgb25s
eSBhbGxvd2VkCiAgICAgICAgIC8vIGRpc3BsYXkgdmFsdWVzIGZvciB0aGUgcHNldWRvIHN0eWxl
IGFyZSBOT05FIGFuZCBJTkxJTkUgZm9yIGlubGluZSBmbG93cy4KICAgICAgICAgLy8gRklYTUU6
IENTUzIuMSBsaWZ0ZWQgdGhpcyByZXN0cmljdGlvbiwgYnV0IGJsb2NrIGRpc3BsYXkgdHlwZXMg
d2lsbCBjcmFzaC4KICAgICAgICAgLy8gRm9yIG5vdyB3ZSBhdCBsZWFzdCByZWxheCB0aGUgcmVz
dHJpY3Rpb24gdG8gYWxsb3cgYWxsIGlubGluZSB0eXBlcyBsaWtlIGlubGluZS1ibG9jawogICAg
ICAgICAvLyBhbmQgaW5saW5lLXRhYmxlLgotICAgICAgICBwc2V1ZG8tPnNldERpc3BsYXkoSU5M
SU5FKTsKKyAgICAgICAgcHNldWRvRWxlbWVudFN0eWxlLT5zZXREaXNwbGF5KElOTElORSk7CiAK
ICAgICBpZiAob2xkQ29udGVudFByZXNlbnQpIHsKICAgICAgICAgaWYgKGNoaWxkICYmIGNoaWxk
LT5zdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSB0eXBlKSB7CiAgICAgICAgICAgICAvLyBXZSBoYXZl
IGdlbmVyYXRlZCBjb250ZW50IHByZXNlbnQgc3RpbGwuICBXZSB3YW50IHRvIHdhbGsgdGhpcyBj
b250ZW50IGFuZCB1cGRhdGUgb3VyCi0gICAgICAgICAgICAvLyBzdHlsZSBpbmZvcm1hdGlvbiB3
aXRoIHRoZSBuZXcgcHNldWRvIHN0eWxlLgotICAgICAgICAgICAgY2hpbGQtPnNldFN0eWxlKHBz
ZXVkbyk7CisgICAgICAgICAgICAvLyBzdHlsZSBpbmZvcm1hdGlvbiB3aXRoIHRoZSBuZXcgcHNl
dWRvLWVsZW1lbnQgc3R5bGUuCisgICAgICAgICAgICBjaGlsZC0+c2V0U3R5bGUocHNldWRvRWxl
bWVudFN0eWxlKTsKIAogICAgICAgICAgICAgLy8gTm90ZSB0aGF0IGlmIHdlIGV2ZXIgc3VwcG9y
dCBhZGRpdGlvbmFsIHR5cGVzIG9mIGdlbmVyYXRlZCBjb250ZW50ICh3aGljaCBzaG91bGQgYmUg
d2F5IG9mZgogICAgICAgICAgICAgLy8gaW4gdGhlIGZ1dHVyZSksIHRoaXMgY29kZSB3aWxsIG5l
ZWQgdG8gYmUgcGF0Y2hlZC4KICAgICAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBnZW5DaGls
ZCA9IGNoaWxkLT5maXJzdENoaWxkKCk7IGdlbkNoaWxkOyBnZW5DaGlsZCA9IGdlbkNoaWxkLT5u
ZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGdlbkNoaWxkLT5pc1RleHQoKSkK
LSAgICAgICAgICAgICAgICAgICAgLy8gR2VuZXJhdGVkIHRleHQgY29udGVudCBpcyBhIGNoaWxk
IHdob3NlIHN0eWxlIGFsc28gbmVlZHMgdG8gYmUgc2V0IHRvIHRoZSBwc2V1ZG8gc3R5bGUuCi0g
ICAgICAgICAgICAgICAgICAgIGdlbkNoaWxkLT5zZXRTdHlsZShwc2V1ZG8pOworICAgICAgICAg
ICAgICAgICAgICAvLyBHZW5lcmF0ZWQgdGV4dCBjb250ZW50IGlzIGEgY2hpbGQgd2hvc2Ugc3R5
bGUgYWxzbyBuZWVkcyB0byBiZSBzZXQgdG8gdGhlIHBzZXVkby1lbGVtZW50IHN0eWxlLgorICAg
ICAgICAgICAgICAgICAgICBnZW5DaGlsZC0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsK
ICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gSW1hZ2VzIGdl
dCBhbiBlbXB0eSBzdHlsZSB0aGF0IGluaGVyaXRzIGZyb20gdGhlIHBzZXVkby4KICAgICAgICAg
ICAgICAgICAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5k
ZXJTdHlsZTsKLSAgICAgICAgICAgICAgICAgICAgc3R5bGUtPmluaGVyaXRGcm9tKHBzZXVkbyk7
CisgICAgICAgICAgICAgICAgICAgIHN0eWxlLT5pbmhlcml0RnJvbShwc2V1ZG9FbGVtZW50U3R5
bGUpOwogICAgICAgICAgICAgICAgICAgICBnZW5DaGlsZC0+c2V0U3R5bGUoc3R5bGUpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTMzMCwyNSArMzQzLDI1IEBAIHZvaWQg
UmVuZGVyQ29udGFpbmVyOjp1cGRhdGVQc2V1ZG9DaGlsZEYKICAgICBSZW5kZXJPYmplY3QqIGlu
c2VydEJlZm9yZSA9ICh0eXBlID09IFJlbmRlclN0eWxlOjpCRUZPUkUpID8gY2hpbGQgOiAwOwog
CiAgICAgLy8gR2VuZXJhdGVkIGNvbnRlbnQgY29uc2lzdHMgb2YgYSBzaW5nbGUgY29udGFpbmVy
IHRoYXQgaG91c2VzIG11bHRpcGxlIGNoaWxkcmVuIChzcGVjaWZpZWQKLSAgICAvLyBieSB0aGUg
Y29udGVudCBwcm9wZXJ0eSkuICBUaGlzIHBzZXVkbyBjb250YWluZXIgZ2V0cyB0aGUgcHNldWRv
IHN0eWxlIHNldCBvbiBpdC4KLSAgICBSZW5kZXJPYmplY3QqIHBzZXVkb0NvbnRhaW5lciA9IDA7
CisgICAgLy8gYnkgdGhlIGNvbnRlbnQgcHJvcGVydHkpLiAgVGhpcyBnZW5lcmF0ZWQgY29udGVu
dCBjb250YWluZXIgZ2V0cyB0aGUgcHNldWRvLWVsZW1lbnQgc3R5bGUgc2V0IG9uIGl0LgorICAg
IFJlbmRlck9iamVjdCogZ2VuZXJhdGVkQ29udGVudENvbnRhaW5lciA9IDA7CiAgICAgCiAgICAg
Ly8gV2FsayBvdXIgbGlzdCBvZiBnZW5lcmF0ZWQgY29udGVudCBhbmQgY3JlYXRlIHJlbmRlciBv
YmplY3RzIGZvciBlYWNoLgotICAgIGZvciAoY29uc3QgQ29udGVudERhdGEqIGNvbnRlbnQgPSBw
c2V1ZG8tPmNvbnRlbnREYXRhKCk7IGNvbnRlbnQ7IGNvbnRlbnQgPSBjb250ZW50LT5tX25leHQp
IHsKKyAgICBmb3IgKGNvbnN0IENvbnRlbnREYXRhKiBjb250ZW50ID0gcHNldWRvRWxlbWVudFN0
eWxlLT5jb250ZW50RGF0YSgpOyBjb250ZW50OyBjb250ZW50ID0gY29udGVudC0+bV9uZXh0KSB7
CiAgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSAwOwogICAgICAgICBzd2l0Y2ggKGNv
bnRlbnQtPm1fdHlwZSkgewogICAgICAgICAgICAgY2FzZSBDT05URU5UX05PTkU6CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENPTlRFTlRfVEVYVDoKICAgICAgICAg
ICAgICAgICByZW5kZXJlciA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyVGV4dEZyYWdtZW50
KGRvY3VtZW50KCkgLyogYW5vbnltb3VzIG9iamVjdCAqLywgY29udGVudC0+bV9jb250ZW50Lm1f
dGV4dCk7Ci0gICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBzZXVkbyk7CisgICAg
ICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIENPTlRFTlRfT0JKRUNUOgogICAg
ICAgICAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBjb250ZW50LT5tX2Nv
bnRlbnQubV9vYmplY3QpCiAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZS0+dHlwZSgp
ID09IENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckltYWdl
KGRvY3VtZW50KCkpOyAvLyBhbm9ueW1vdXMgb2JqZWN0CiAgICAgICAgICAgICAgICAgICAgICAg
ICBSZW5kZXJTdHlsZSogc3R5bGUgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlclN0eWxlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGUtPmluaGVyaXRGcm9tKHBzZXVkbyk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzdHlsZS0+aW5oZXJpdEZyb20ocHNldWRvRWxlbWVudFN0eWxl
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlLT5zZXRTdHlsZShzdHlsZSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBpbWFnZS0+c2V0Q2FjaGVkSW1hZ2Uoc3RhdGljX2Nhc3Q8Q2Fj
aGVkSW1hZ2UqPihyZXNvdXJjZSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UtPnNl
dElzQW5vbnltb3VzSW1hZ2UodHJ1ZSk7CkBAIC0zNTcsMjEgKzM3MCwyMSBAQCB2b2lkIFJlbmRl
ckNvbnRhaW5lcjo6dXBkYXRlUHNldWRvQ2hpbGRGCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIENPTlRFTlRfQ09VTlRFUjoKICAgICAgICAgICAgICAgICByZW5kZXJl
ciA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyQ291bnRlcihkb2N1bWVudCgpLCAqY29udGVu
dC0+bV9jb250ZW50Lm1fY291bnRlcik7Ci0gICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0
eWxlKHBzZXVkbyk7CisgICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlKHBzZXVkb0Vs
ZW1lbnRTdHlsZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocmVuZGVyZXIpIHsKLSAgICAgICAgICAgIGlmICghcHNldWRvQ29udGFpbmVyKQotICAg
ICAgICAgICAgICAgIHBzZXVkb0NvbnRhaW5lciA9IFJlbmRlckZsb3c6OmNyZWF0ZUFub255bW91
c0Zsb3coZG9jdW1lbnQoKSwgcHNldWRvKTsgLy8gYW5vbnltb3VzIGJveAotICAgICAgICAgICAg
cHNldWRvQ29udGFpbmVyLT5hZGRDaGlsZChyZW5kZXJlcik7CisgICAgICAgICAgICBpZiAoIWdl
bmVyYXRlZENvbnRlbnRDb250YWluZXIpCisgICAgICAgICAgICAgICAgZ2VuZXJhdGVkQ29udGVu
dENvbnRhaW5lciA9IFJlbmRlckZsb3c6OmNyZWF0ZUFub255bW91c0Zsb3coZG9jdW1lbnQoKSwg
cHNldWRvRWxlbWVudFN0eWxlKTsgLy8gYW5vbnltb3VzIGJveAorICAgICAgICAgICAgZ2VuZXJh
dGVkQ29udGVudENvbnRhaW5lci0+YWRkQ2hpbGQocmVuZGVyZXIpOwogICAgICAgICB9CiAgICAg
fQogCiAgICAgLy8gQWRkIHRoZSBwc2V1ZG8gYWZ0ZXIgd2UndmUgaW5zdGFsbGVkIGFsbCBvdXIg
Y29udGVudCBzbyB0aGF0IGFkZENoaWxkIHdpbGwgYmUgYWJsZSB0byBmaW5kIHRoZSB0ZXh0CiAg
ICAgLy8gaW5zaWRlIHRoZSBpbmxpbmUgZm9yIGUuZy4sIGZpcnN0LWxldHRlciBzdHlsaW5nLgot
ICAgIGlmIChwc2V1ZG9Db250YWluZXIpCi0gICAgICAgIGFkZENoaWxkKHBzZXVkb0NvbnRhaW5l
ciwgaW5zZXJ0QmVmb3JlKTsKKyAgICBpZiAoZ2VuZXJhdGVkQ29udGVudENvbnRhaW5lcikKKyAg
ICAgICAgYWRkQ2hpbGQoZ2VuZXJhdGVkQ29udGVudENvbnRhaW5lciwgaW5zZXJ0QmVmb3JlKTsK
IH0KIAogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb250YWluZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb250YWluZXIuaAkocmV2aXNpb24gMjEx
NzMpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb250YWluZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtNTQsOSArNTQsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTGVm
dG92ZXJBbm9ueW1vdXNCb3hlcygpOwogCi0gICAgUmVuZGVyT2JqZWN0KiBwc2V1ZG9DaGlsZChS
ZW5kZXJTdHlsZTo6UHNldWRvSWQpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQc2V1
ZG9DaGlsZChSZW5kZXJTdHlsZTo6UHNldWRvSWQpOwotICAgIHZvaWQgdXBkYXRlUHNldWRvQ2hp
bGRGb3JPYmplY3QoUmVuZGVyU3R5bGU6OlBzZXVkb0lkLCBSZW5kZXJPYmplY3QqKTsKKyAgICBS
ZW5kZXJPYmplY3QqIGJlZm9yZUFmdGVyQ29udGFpbmVyKFJlbmRlclN0eWxlOjpQc2V1ZG9JZCk7
CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudChSZW5kZXJTdHlsZTo6
UHNldWRvSWQpOworICAgIHZvaWQgdXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50Rm9yT2JqZWN0KFJl
bmRlclN0eWxlOjpQc2V1ZG9JZCwgUmVuZGVyT2JqZWN0Kik7CiAKICAgICB2aXJ0dWFsIFZpc2li
bGVQb3NpdGlvbiBwb3NpdGlvbkZvckNvb3JkaW5hdGVzKGludCB4LCBpbnQgeSk7CiAKSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24gMjExNzMpCisrKyBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw4ICs2Niw4
IEBAIHZvaWQgUmVuZGVySW5saW5lOjpzZXRTdHlsZShSZW5kZXJTdHlsZSoKICAgICBtX2xpbmVI
ZWlnaHQgPSAtMTsKIAogICAgIC8vIFVwZGF0ZSBwc2V1ZG9zIGZvciA6YmVmb3JlIGFuZCA6YWZ0
ZXIgbm93LgotICAgIHVwZGF0ZVBzZXVkb0NoaWxkKFJlbmRlclN0eWxlOjpCRUZPUkUpOwotICAg
IHVwZGF0ZVBzZXVkb0NoaWxkKFJlbmRlclN0eWxlOjpBRlRFUik7CisgICAgdXBkYXRlQmVmb3Jl
QWZ0ZXJDb250ZW50KFJlbmRlclN0eWxlOjpCRUZPUkUpOworICAgIHVwZGF0ZUJlZm9yZUFmdGVy
Q29udGVudChSZW5kZXJTdHlsZTo6QUZURVIpOwogfQogCiBib29sIFJlbmRlcklubGluZTo6aXNJ
bmxpbmVDb250aW51YXRpb24oKSBjb25zdApAQCAtMTA4LDEwICsxMDgsMTAgQEAgdm9pZCBSZW5k
ZXJJbmxpbmU6OmFkZENoaWxkVG9GbG93KFJlbmRlcgogICAgICAgICBzZXRDb250aW51YXRpb24o
bmV3Qm94KTsKIAogICAgICAgICAvLyBTb21lb25lIG1heSBoYXZlIHB1dCBhIDxwPiBpbnNpZGUg
YSA8cT4sIGNhdXNpbmcgYSBzcGxpdC4gIFdoZW4gdGhpcyBoYXBwZW5zLCB0aGUgOmFmdGVyIGNv
bnRlbnQKLSAgICAgICAgLy8gaGFzIHRvIG1vdmUgaW50byB0aGUgaW5saW5lIGNvbnRpbnVhdGlv
bi4gIENhbGwgdXBkYXRlUHNldWRvQ2hpbGQgdG8gZW5zdXJlIHRoYXQgb3VyIDphZnRlcgorICAg
ICAgICAvLyBoYXMgdG8gbW92ZSBpbnRvIHRoZSBpbmxpbmUgY29udGludWF0aW9uLiAgQ2FsbCB1
cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQgdG8gZW5zdXJlIHRoYXQgb3VyIDphZnRlcgogICAgICAg
ICAvLyBjb250ZW50IGdldHMgcHJvcGVybHkgZGVzdHJveWVkLgogICAgICAgICBib29sIGlzTGFz
dENoaWxkID0gKGJlZm9yZUNoaWxkID09IGxhc3RDaGlsZCgpKTsKLSAgICAgICAgdXBkYXRlUHNl
dWRvQ2hpbGQoUmVuZGVyU3R5bGU6OkFGVEVSKTsKKyAgICAgICAgdXBkYXRlQmVmb3JlQWZ0ZXJD
b250ZW50KFJlbmRlclN0eWxlOjpBRlRFUik7CiAgICAgICAgIGlmIChpc0xhc3RDaGlsZCAmJiBi
ZWZvcmVDaGlsZCAhPSBsYXN0Q2hpbGQoKSkKICAgICAgICAgICAgIGJlZm9yZUNoaWxkID0gMDsg
Ly8gV2UgZGVzdHJveWVkIHRoZSBsYXN0IGNoaWxkLCBzbyBub3cgd2UgbmVlZCB0byB1cGRhdGUg
b3VyIGluc2VydGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwb2ludCB0byBi
ZSAwLiAgSXQncyBqdXN0IGEgc3RyYWlnaHQgYXBwZW5kIG5vdy4KQEAgLTE4MSw5ICsxODEsOSBA
QCB2b2lkIFJlbmRlcklubGluZTo6c3BsaXRJbmxpbmVzKFJlbmRlckJsCiAgICAgICAgICAgICBj
bG9uZS0+c2V0Q29udGludWF0aW9uKG9sZENvbnQpOwogCiAgICAgICAgICAgICAvLyBTb21lb25l
IG1heSBoYXZlIGluZGlyZWN0bHkgY2F1c2VkIGEgPHE+IHRvIHNwbGl0LiAgV2hlbiB0aGlzIGhh
cHBlbnMsIHRoZSA6YWZ0ZXIgY29udGVudAotICAgICAgICAgICAgLy8gaGFzIHRvIG1vdmUgaW50
byB0aGUgaW5saW5lIGNvbnRpbnVhdGlvbi4gIENhbGwgdXBkYXRlUHNldWRvQ2hpbGQgdG8gZW5z
dXJlIHRoYXQgdGhlIGlubGluZSdzIDphZnRlcgorICAgICAgICAgICAgLy8gaGFzIHRvIG1vdmUg
aW50byB0aGUgaW5saW5lIGNvbnRpbnVhdGlvbi4gIENhbGwgdXBkYXRlQmVmb3JlQWZ0ZXJDb250
ZW50IHRvIGVuc3VyZSB0aGF0IHRoZSBpbmxpbmUncyA6YWZ0ZXIKICAgICAgICAgICAgIC8vIGNv
bnRlbnQgZ2V0cyBwcm9wZXJseSBkZXN0cm95ZWQuCi0gICAgICAgICAgICBjdXJyLT51cGRhdGVQ
c2V1ZG9DaGlsZChSZW5kZXJTdHlsZTo6QUZURVIpOworICAgICAgICAgICAgY3Vyci0+dXBkYXRl
QmVmb3JlQWZ0ZXJDb250ZW50KFJlbmRlclN0eWxlOjpBRlRFUik7CiAKICAgICAgICAgICAgIC8v
IE5vdyB3ZSBuZWVkIHRvIHRha2UgYWxsIG9mIHRoZSBjaGlsZHJlbiBzdGFydGluZyBmcm9tIHRo
ZSBmaXJzdCBjaGlsZAogICAgICAgICAgICAgLy8gKmFmdGVyKiBjdXJyQ2hpbGQgYW5kIGFwcGVu
ZCB0aGVtIGFsbCB0byB0aGUgY2xvbmUuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5l
cmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50LWV4cGVjdGVkLnBuZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46
bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9y
ZS1jb250ZW50LWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAg
KyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFB
QUFKWUNBWUFBQUNhZG9Kd0FBQWFWMGxFUVZSNG5PM2RlN0N0ZFYzSDhlOUJEbmNTCkIwNFFNZ2to
QW9jSUU3QzhSVVVRMENFY2I2RlplUWt4YWlqUUxxTmRORXhFRVUybkNLZWExRWtCTFM5NUFSVVVj
T0lpQWpPSEFTMngKQzJWY2srczVuZzJIWDMvOFpzL2VaN0hXMm11ZHZmZm5jT3oxbW1IT1h2dFp6
N04rejJWdjFudXRaejE3Uld1dEZRQUFRTUEyVzNvQQpBQURBL3g4Q0JBQUFpQkVnQUFCQWpBQUJB
QUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4VzNXQVBQUlExZTIzCkw5L3lO
MnlvK3VkL0hqMTk0OGFxYjN4ai9ES3V2NzdxMFVlWGRseGJvM3Z2cmZyWGYxMjY1UzIwYjZhWmQ2
bkh0am51dXF2cThzdXIKL3ZkL0h6L3RvWWVxL3Z1L1I4KzdtRzN4L1dDaDN3TlBoUDI3R0E4L3ZL
VkhBQUJMYThFQStmem5xdzQ2cUdyRmlxcW5QYTNxMGt2bgpwdDE5ZDlYdi9WNmY5aHUvVVhYUFBj
czUxRTE5NUNOVmUrNVo5ZUVQTDgveXI3MjI2b2dqcWw3MG91SFR2L2ExcW1jK3MrcDFyeHU5CmpO
dHVxenJ5eUtyTExsdWVNVzVOL3ZpUHExNzR3cVZaMWtMN1p0cDVsM0pzbStNREg2aTY4TUtxSzY2
b091U1FIaFN6THJpZ2F2ZmQKcXo3MnNlSHpMbVpiUEpHdFdWUDFsS2RVSFhkYzFjdGVWdldrSjFY
dHQxL1ZTMTVTOWZ6bjk5c2YrdEJrdndlMjlQNWRyUC80ajZxTApMdHJTb3dDQXBiTmdnQngvZk5X
VlYvYjRXTGV1UDZHZXRXcFYxZDU3Vi8zQkgxU2RmMzdWSG5zczUxQTM5WXBYOURFdGw1LzRpYXBY
CnZXcjA5Q09QclBycG42NWF1WEwwZmZiZnYrcTY2NnFPUG5weFk5bXdvZXJMWDE3Y01yYTBQLzNU
cWs5K2NtbVd0ZEMrbVhiZXBSemIKdEI1K3VPck1NNnQrNjdlcTN2cldxbi80aDZydHQ1K2JmdXFw
L1luNEtJdlpGcE5ZeW1Odm1tVTk4a2pWRFRkVVhYSkoxY1VYVjIyMwpYZjk1Ky9qSHE3NzYxYXAz
dmF2cWU5K2I3UGZBbHR5L1MySDE2cXBuUGF2cXpXL2UwaU1CZ0tVeDBTbFlQL2lEVmYvNGoxVVBQ
TkNmCktNMzZ6LytzK3NwWHFzNCtlNWxHTjZDMVRXK3ZYTm5mZlZrdTIyMDNmUG1QUGRiLzNYYmJx
bTBXMklKSEh0bnZONDM1Ni9uSUkxVy8KOGl0VlYxMDEzWHpMWVpwVHlRYkhzdnZ1VlFjY01QMWpq
bHFuVWZ0bUVvUHpidTdZbHNMYXRWVXpNM1BIMFhPZisvajdMSFNjTDJaYgpqRFBOc2JmVXl6cnp6
UDZPeHlpbm50cmZMYXBhZVB1TTJyL0wvZk95bEE0NG9KL3krZG5QYnVtUkFNRGlUZndaa0djOXEr
cjNmNy9xCm94L3RyOUpXVloxeFJ0VzU1ejcrdmc4OTFFUGxEVy9vcHo2Y2ZuclYrdlY5MmtVWFZU
MzFxVlh2ZjMrL2ZlR0ZWUWNlV1BYNjE0OSsKN0lzdTZ1K3d2UE9kajMrQzl0aGovUlNMSC83aHFo
LzkwYXAvKzdmbEc4ZTZkVldublZiMXRyZjErMTEvL2VqN1B2cG8xYWMvWGZXTAp2MWoxaFM5TTlu
akQxdk85NyszTCtlUW5xMzd0MTRhZkR6NXErOXg1WjM4aWQ5UlJWWWNmWG5YTk5aTk5HM1RaWlZY
bm5GTjEzbmxWCnozdGUxYzAzajc3dnNMSDh6Ly8wMjg5NVRyLzk1UzlYblh4eTFSdmZXUFUzZjlQ
ZktUcm9vRTMzM2JwMWZkK2RkVmJWc2NmMis1OXoKenVnbnNOT3N6M3liTTdacEhtdmNNZmpYZjEz
MWxyZjBZK1UzZjdNLzVpanIxdlhwZSs3WkgvUFdXNGZmYjVMamJOTHhEenYyUnMzNwo5YS8zL1hU
SUlmMUZpYTkvdmVxd3c2bysrTUhSeXhybjUzOSsvUFNkZCs3SDRxeFJ2d2NHOSsvc05ocjErMlMr
Y2Z0dXFZK1RRV2VkCnRlbTd6VlZWTDM5NWY3ZDU0OGJKbHdNQVQwaHRDdC83WG1zSEh0amFxbFd0
dmZ2ZHJaMTk5dkQ3L2RSUHRmYWhEL1d2WjJaYWUvYXoKVzF1elptNzZVNS9hMnAvOTJkenRZNDl0
N2FVdkhiNnNSeDVwN1lnajVtNmZjVVpyR3pmMnIzL3N4MW83N0xEV3Z2U2wxbTYvdmJXRApEbXJ0
MTM5OTZjYnh2dmUxdHRkZWM3ZC80UmRhdS9EQy92WEdqYTN0dlhkcnh4d3pmTndQUHRqSFZkWGE1
ejYzOE9PTlc4OTk5MjN0CjdXK2ZidnM4K21ocnh4L2YyZ01QOU51bm50cjMyM2UvTzM3YW9BMGIr
cmd2djd6ZmZzdGJXbnZ4aTZjYnkxMTN0ZmI2MTdlMnh4NzkKKzNmYzBkb3pudEgzMXovOVUydi8v
dS85dURybGxMbDUzLy8rMXQ3d2h2NzEyclY5TzU1elRyOXZhNXZ1bTJuV1ozRGVhY2MyN1dNdApk
QXhlZkhGcjIyd3pmTjVaKyt6VDJpR0h0UGJwVC9mOXNPKytyZjNJai9UdFBiZytyWTAvenFZZC8v
eGpiNkY1WjQvM3ozKytIL1BuCm5UZDZXZFBhWVlmV1h2V3E0ZFBHL1I0WTNML2pmczRHamR0M1Mz
MmNEUHFMdjJqdHBKTTIvZDdNVEdzclY3WjI3YldUTFFNQW5xaW0KdWdyVzl0djNEOFhlZlhkLzFX
L1lLN2FYWE5MUDBUNzU1SDU3NWNxcTE3eW02ak9mcWJyNjZ2NjlIWGZjOUpTSm5YWWFmUXJGZmZk
VgozWFJUMWVjKzEyK2Zjc3FtcDA2c1dkTS9ZN0hQUGxVLzh6TnpWNlZhNm5GY2MwMGZ3K3dyczl0
c1UzWENDY1B2VzFXMXl5NVZMM2hCCi8zcDJ2T01lYjZIMW5IYjdYSHh4Ly9lcXEvcTIrS0VmNnZ2
dHlpdkhUeHUwY21YL2dQTmhoL1hidSs4Kyt0WDNVV05adGFycTBFUG4KMW1mUFBmc3J4b2NlMnZm
ZjA1NVc5Yk0vVy9YTmI4NHQ2OE1mN285VjFWL1JYcldxZnozc2ZQOXAxbWZRdEdPYjVyRW1PUVlu
OWF1LwpXblhpaWYwWWY4Yzdxcjc5N2FvdmZXbjRmY2NkWjV1enJTYWQ5K2lqcTM3cGw2cmU5S2Er
LzA0L2ZmU3lsdHFvM3dPRCszZWhuN05aCkMrMjdwVHhPaGpudHRNZC9ibVhseXY1NW9ILzVsK20y
RFFBODBVeDlHZDZqanFyYVlZZitwSERZWnh1dXU2Ny9UMy8raDdPZi9leisKNzQwM1RqL0FQZmJv
VDRCUFBMR2Zwckx2dnYwS09MUG1QNkY1eWxQNmFSUExNWTZ2ZktXZllySGJiblBmMjJXWDhVK29a
cWROOHFScgptdldjWkw2cnIrNVA0TGZicnYvM3ZPZFZmZkdML1ZTUWNkT0dyY1A3M3RlZnVKMXpU
cjlTMDRNUFRyOE9LMVpzdWc2RHQzZmR0WCtvCmVQN3QrVS9TOTlxcmYrQjZtR25XWjVocHhqYk5Z
eTNsTWZqa0o4OTkvWk0vMmYvZG5FdkxiczYybXQwV2s4eDc3cm45Q2ZMaGgyOTYKL0E0dWE2bU4r
ajB3TzIxMitrSS9aN01tMlhkTGRaeE1ZOWRkdCs1TENnTkFWZFdVSDQ5ZTJMcDEvWEs4RHozVW42
Qlg5VmNKdDkxMgo4NjluLzVHUDlLdHQvZm1mOXl2alhIcHAxUS84UUhZYy8vVmZ3eTh6dkpSUHFE
Wm5QVWZOZDg4OWZWMS83dWNlZi85eDA0YTU0SUwrCmF2RGYvbTMvM01KMTF5MzlPZ3c2NDR4K2Rh
ZTFhL3M3Ynp2dDFPTjNtR25YWnpHbWVhemwrRm1vNnErMjc3cHIvMjlhaTlsV2s4eTcKY21WLzR2
N09kMWE5OXJXYkJ2c1R4U1RINkdMMzNYSWRrNDg4MG44V0FHQnJ0dVIvaVBDZ2cvcUhKTC8ydGJu
djNYVlgvNkR0d1FmUApmVy8yU2xJTHVlT09Qdjk3M3ROUFpWaTd0bit3TmoyT3ZmZnVwMUFzOXZT
SFVZKzMwSHFPQ3AxUjgrMjNYMy9GZGY2N0NxMzFkM0xHClRSdDB5eTM5ZEpCenp4MS95ZUZKMW1F
YUo1elFUNCs1NUpMK1lmOXhsMitkWm4wV2E1ckhtdlFZbk5aM3Z0UGZoZnJ4SHg5OW4xSEgKMmVa
c3E5bGpiNUo1LytpUCt1bE5LMWIwcjBjdGEwdVo5QmhkN0w1YnJtUHl6anY3dXpZQXNEV2JPa0Ey
YnV5WERiMzMzdUhUWC9yUwpmaDcyRjc4NDk3M3JyKy8vUXovdXVINzcwRVA3SDFDYm1lbFBwbTY3
YmZUeTdyMTM3bzl3SFh0czFVa256YjBpdVc1ZC8yL1crdlZ6ClY2bFppbkhNelBSWEhLdjZ1ZTNi
Ymx2MVYzODFOLzBiMytpdmRFNTZWWnB4anpkdVBYZmJyYjhEVTFYMTNlOU90bjErK1pmN2s1VlQK
VCszejNIVlgvM3NJQnh3d2Z0cWdXMi90VDJadnVhV3Y1eFZYOUNkVi9lUEdrNDJscXUrbjlldm41
cG1aMmZSSjhycDFtMjdIdDc2MQo2aG5QNko4amVNVXIrdWNhNXB1L2I2WlpuOEY1cHgzYk5JODF5
VEg0d0FQOXNlWWZ4OFBNM3phWFg5NnZ5alQ3dVp6QjlSbDNuRTI3CnJlWWZlMnZXakovM2trdjYx
d2NmM0UvWE8vLzhUVTgxR3p5T04yeW9ldnZiNTc0M3ltT1A5WFVaOWxmaXE4Yi9IcGlkUHJ0L3h4
MmoKODAyeTd4WnpuQ3kwN2xkZDFTTnB2bnZ2N2Z0NThPcFlBTERWbWVZVDZ6ZmUyTnFaWi9hbm5q
dnUySzlLOUozdlBQNStOOXpRMnVyVgpyYjNyWGYxcU9DZWYzTnF0dDg1TnYreXkxbmJmdlYvSjUz
ZC90MStsNXVpajU2NjBOTi9OTjdlMi8vNnRYWEJCYTUvNlZHdW5uZGF2ClpQUHhqL2VyQjYxZTNj
ZDF3dzJ0SFh4d2E5dHUyNjhXdE5oeFhIdHRhNGNmM3RmMUwvK3lYdzNxNy8rK3RWMTM3WS96c3Bl
MWR1S0oKclQzM3VmMzd3OHpNYkhvVnJIR1BOMm85VzJ2dFRXOXFiY1dLMWw3em10YnV2SE95N2RO
YWErZWYzOXIyMi9kNVY2MXE3Uk9mbUp0dgozTFQ1SG42NHRXYytzN1ZkZG1udDFhOXU3Yk9mYlcy
bm5WcDc1U3Y3TnBsa0xOZGUyOXB6bnRPM3hYdmUwNjlXdE50dS9TcGlWMS9kCjJrMDN0ZmIwcC9m
eGZPRUxmVm0vOHp1emlkUGFrNTdVMnA1Nzl1VnQyREI4MzB5NlBvUHpmdldyMDQ5dDBzZHFiZnd4
ZU0wMXJiM2cKQmYyeDMvakcxbTY3YmZneS91UlBXanYwME5iZThZNSs1Ym5mL3UxK2RhVmg2N05o
dzhJL1g5T01mL0RZR3pYdjVaZjNLM0hkZEZPLwpmY3N0ZmIvdHQ5L2NWWnNHbDNYTExmMzJCejg0
K3ZGdnZybGZRYXFxdFNjL3VWOTk3Lzc3NTZZdjlIdGc4Tmk3OGNiUlB5L1Q3THNyCnJsamNjYkxR
dXA5K2V0K2VqejQ2OTcyLys3dldYdmpDMGRzS0FMWVdLMXBibmovSDFWclZ0NzdWcnhhMS8vNlBu
ejR6MDE4dDNISEgKL3FyZXFOTjdIbnVzTCtPKysvcDlkdDU1eTR4ajFzYU4vUlhOUGZibzd3VHNz
TVBvKzg3TTlNOHZYSGZkM0t1V294NXZvZlc4NTU3aApmMmwrb2ZsbVpxcHV2NzEvYm1Ed29nSGpw
ZzFhdjM3dVhZaFIyMm14KzJxK3M4K3Vlc2xMK2paKzhNRyt6SXN2cm5ybEswZWZWei9OCitpeldO
SSsxMERFNHFUdnU2TWZBSk91MjBIRTl6ZmdIajczRmJPZkJaZDE5OTl3VnpoS21QVVlYdSsvR2Jh
dHg2OTVhUC9ibnYvTjMKMGtuOTUyTDE2dW5IQVFCUEpNc1dJUFRUYTNiYnJmODc3RFFQaHZ2QUIz
cHNERjVtOXRKTCs1UEFwejk5eTR3THRwUS8vTU9xWTQ0WgpmU0VHQU5pYUNKQmxjUFRSL1M4dkgz
aGd2M3JVQlJkczZSRnRYZGF1N2U4WW5YaGl2MnpwK3ZYOWZQbzFhL3AvOFAvSmxWZjJTL25PClhu
NFpBTFoyQW1RWnJGM2JYNzFmdmJySHlIS2ZEdlQ5NlA3Nyt4T3ZPKzdvZjFqT3V4NEFBTjhmQkFn
QUFCQ3o1SDhIQkFBQVlCUUIKQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFB
QVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQQpNUUlFQUFDSUVTQUFBRUNNQUFF
QUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFC
CkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdB
QVFBQVlnUUlBQUFRSTBBQUFJQVkKQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNN
QUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQQpBREVDQkFBQWlCRWdBQUJB
akFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFR
SXdBCkFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFB
RUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0EKR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdB
QUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQQpBQUF4QWdRQUFJZ1JJ
QUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVT
QUFBRUNNCkFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlC
RWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUEKZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJ
Z1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQQpBQUFBTVFJRUFB
Q0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFB
QWlCRWdBQUJBCmpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdR
QUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUEKQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJ
RUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCRwpnQUFBQURF
Q0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4
QWdRQUFJZ1JJQUFBClFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFB
TVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkEKQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFB
QURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZwpSb0FB
QUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFB
QUFBTVFJRUFBQ0lFU0FBCkFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdn
QUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWoKUUFBQWdCZ0JBZ0FBeEFnUUFBQWdS
b0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQQpJ
RWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFD
QkdnQUFBQURFQ0JBQUFpQkVnCkFBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFB
QWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVEKSTBBQUFJQVlBUUlBQU1RSUVB
QUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JB
QQpBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFn
UUFBQWdSb0FBQUFBeEFnUUFBSWdSCklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1R
SUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUEKRUNOQUFBQ0FHQUVDQUFE
RUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FB
eEFnUQpBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlB
QU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJCkVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVD
QUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0EKQUJBalFBQUFnQmdC
QWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlB
UUlBQU1RSQpFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FH
QUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBCmlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFn
QmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUkKQUFBUUkwQUFB
SUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFB
Q0FHQUVDQUFERQpDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFB
QUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBCkFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkw
QUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUUKQ0FBQUVD
TkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJB
alFBQUFnQmdCQWdBQQp4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFB
UUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFCkFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FB
QUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmkKQkFn
QUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJ
QUFBUUkwQUFBSUFZQVFJQQpBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lF
Q0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDCkJBQUFpQkVnQUFCQWpBQUJBQUJp
QkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUEK
WWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFB
R0lFQ0FBQUVDTkFBQUNBR0FFQwpBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJB
QUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4CkFnUUFBSWdSSUFBQVFJd0FB
UUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFB
RUEKQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpB
QUJBQUJpQkFnQUFCQWpRQUFBZ0JnQgpBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJ
d0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBCk1RSUVBQUNJRVNBQUFF
Q01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFC
QWpBQUIKQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFB
QVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWQpBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNB
QUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBCkFERUNCQUFBaUJF
Z0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdS
SUFBQVFJd0EKQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJ
RVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQQpHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFB
aUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBCkFBQXhBZ1FB
QUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVB
QUNJRVNBQUFFQ00KQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNC
QUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQQpnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhB
Z1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBCkFBQUFN
UUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFE
RUNCQUFBaVBrL3BseWoKRnk4b3VmUUFBQUFBU1VWT1JLNUNZSUk9Cgo=
</data>
<flag name="review"
          id="5818"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14283</attachid>
            <date>2007-04-30 20:57:48 -0700</date>
            <delta_ts>2007-04-30 21:52:04 -0700</delta_ts>
            <desc>Better version of patch.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>29179</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMTk3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDctMDQtMzAgIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBmb3IgYnVnIDEyNjkxLCBnZW5lcmF0ZWQgY29u
dGVudCBhbmQgZGlzcGxheTogdGFibGUtY2VsbCBkdXBsaWNhdGVzCisgICAgICAgIGNvbnRlbnQg
b24gYSBzaXplIGNoYW5nZS4gIE1ha2Ugc3VyZSB0aGF0IHRoZSBjb2RlIHRvIHVwZGF0ZSBiZWZv
cmUvYWZ0ZXIKKyAgICAgICAgY29udGVudCBpcyBzbWFydCBlbm91Z2ggdG8gZHJpbGwgaW50byBh
bm9ueW1vdXMgY29udGFpbmVycyB0byBmaW5kIHRoZQorICAgICAgICBvbGQgY2hpbGQuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1n
ZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50LWV4cGVjdGVkLmNoZWNr
c3VtOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1j
ZWxsLWJlZm9yZS1jb250ZW50LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MtZ2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2VsbC1iZWZvcmUtY29udGVudC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3RhYmxlLWNl
bGwtYmVmb3JlLWNvbnRlbnQuaHRtbDogQWRkZWQuCisKIDIwMDctMDQtMzAgIEp1c3RpbiBHYXJj
aWEgIDxqdXN0aW4uZ2FyY2lhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBkYXJp
bgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2Vs
bC1iZWZvcmUtY29udGVudC1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50
LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2VsbC1iZWZvcmUtY29udGVudC1leHBlY3RlZC5jaGVj
a3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorODhjYTM4Y2YxNzBkYmNkYWM4OTRkMDcw
ZTkyNzI3YzIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29u
dGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3RhYmxlLWNlbGwtYmVm
b3JlLWNvbnRlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDM0CisgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDgwMHgzNAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
Nzg0eDE4IFtjb2xvcj0jMDAwMEZGXQorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkg
c2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGFibGUgYXQgKDAsMCkgc2l6ZSAzNTh4MTggW2Nv
bG9yPSMwMDAwMDBdCisgICAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uIGF0ICgwLDApIHNpemUg
MzU4eDE4CisgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyBhdCAoMCwwKSBzaXplIDM1OHgxOAor
ICAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwgYXQgKDAsMCkgc2l6ZSAzNTh4MTggW3I9MCBj
PTAgcnM9MSBjcz0xXQorICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrIChnZW5lcmF0ZWQpIGF0
ICgwLDApIHNpemUgMzU4eDE4IFtjb2xvcj0jMDAwMEZGXQorICAgICAgICAgICAgICAgICAgUmVu
ZGVyVGV4dCBhdCAoMCwwKSBzaXplIDM1OHgxOAorICAgICAgICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCAyODY6ICJZb3Ugc2hvdWxkIGp1c3Qgc2VlIGEgc2luZ2xlIGxpbmUg
b2YgYmx1ZSB0ZXh0LiAiCisgICAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyODYsMCkg
d2lkdGggNzI6ICJUaGlzIG9uZS4gOikiCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5l
cmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2VsbC1iZWZv
cmUtY29udGVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2Vu
ZXJhdGVkLWNvbnRlbnQvdGFibGUtY2VsbC1iZWZvcmUtY29udGVudC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhU
TUwgNC4wMS8vRU4iCisgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3Qu
ZHRkIj4KKworPGh0bWw+CisKKzxoZWFkPgorCTx0aXRsZT5UZXN0IENhc2U8L3RpdGxlPgorCTxt
ZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PXV0Zi04Ij4KKwkKKwk8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCQkuZXJyb3I6YmVmb3JlIHsK
KwkJCWNvbnRlbnQ6ICJZb3Ugc2hvdWxkIGp1c3Qgc2VlIGEgc2luZ2xlIGxpbmUgb2YgYmx1ZSB0
ZXh0LiAgVGhpcyBvbmUuIDopIjsKKwkJCWRpc3BsYXk6IHRhYmxlLWNlbGw7CisJCX0KKwk8L3N0
eWxlPgorCQorPC9oZWFkPgorPGJvZHk+CisJPGRpdiBjbGFzcz0iZXJyb3IiPjwvZGl2PgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisgICAgICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUuY29sb3IgPSAnYmx1ZSc7CisgICAgICAgIDwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IFdlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
MTE5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMDctMDQtMzAgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAg
IEZpeCBmb3IgYnVnIDEyNjkxLCBnZW5lcmF0ZWQgY29udGVudCBhbmQgZGlzcGxheTogdGFibGUt
Y2VsbCBkdXBsaWNhdGVzCisgICAgICAgIGNvbnRlbnQgb24gYSBzaXplIGNoYW5nZS4gIE1ha2Ug
c3VyZSB0aGF0IHRoZSBjb2RlIHRvIHVwZGF0ZSBiZWZvcmUvYWZ0ZXIKKyAgICAgICAgY29udGVu
dCBpcyBzbWFydCBlbm91Z2ggdG8gZHJpbGwgaW50byBhbm9ueW1vdXMgY29udGFpbmVycyB0byBm
aW5kIHRoZQorICAgICAgICBvbGQgY2hpbGQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvdGFi
bGUtY2VsbC1iZWZvcmUtY29udGVudC5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnNldFN0eWxlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJ1dHRvbjo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQnV0dG9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb250YWluZXI6OmJlZm9yZUFmdGVyQ29udGFp
bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckNvbnRhaW5lcjo6dXBkYXRlQmVmb3JlQWZ0
ZXJDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckNvbnRhaW5lcjo6dXBkYXRlQmVm
b3JlQWZ0ZXJDb250ZW50Rm9yT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ29u
dGFpbmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OnNldFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlcklubGluZTo6YWRkQ2hpbGRUb0Zsb3cpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5s
aW5lOjpzcGxpdElubGluZXMpOgorCiAyMDA3LTA0LTMwICBKdXN0aW4gR2FyY2lhICA8anVzdGlu
LmdhcmNpYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgZGFyaW4KSW5kZXg6IFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDIxMTczKQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsOCArMTQ4LDggQEAg
dm9pZCBSZW5kZXJCbG9jazo6c2V0U3R5bGUoUmVuZGVyU3R5bGUqIAogICAgIG1fbGluZUhlaWdo
dCA9IC0xOwogCiAgICAgLy8gVXBkYXRlIHBzZXVkb3MgZm9yIDpiZWZvcmUgYW5kIDphZnRlciBu
b3cuCi0gICAgdXBkYXRlUHNldWRvQ2hpbGQoUmVuZGVyU3R5bGU6OkJFRk9SRSk7Ci0gICAgdXBk
YXRlUHNldWRvQ2hpbGQoUmVuZGVyU3R5bGU6OkFGVEVSKTsKKyAgICB1cGRhdGVCZWZvcmVBZnRl
ckNvbnRlbnQoUmVuZGVyU3R5bGU6OkJFRk9SRSk7CisgICAgdXBkYXRlQmVmb3JlQWZ0ZXJDb250
ZW50KFJlbmRlclN0eWxlOjpBRlRFUik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0FmdGVy
Q29udGVudChSZW5kZXJPYmplY3QqIGNoaWxkKQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQnV0dG9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0
b24uY3BwCShyZXZpc2lvbiAyMTE3MykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRv
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMCwxMiArMTAwLDEyIEBAIHZvaWQgUmVuZGVyQnV0
dG9uOjpzZXRUZXh0KGNvbnN0IFN0cmluZyYKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyQnV0dG9u
Ojp1cGRhdGVQc2V1ZG9DaGlsZChSZW5kZXJTdHlsZTo6UHNldWRvSWQgdHlwZSkKK3ZvaWQgUmVu
ZGVyQnV0dG9uOjp1cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQoUmVuZGVyU3R5bGU6OlBzZXVkb0lk
IHR5cGUpCiB7CiAgICAgaWYgKG1faW5uZXIpCi0gICAgICAgIG1faW5uZXItPnVwZGF0ZVBzZXVk
b0NoaWxkRm9yT2JqZWN0KHR5cGUsIHRoaXMpOworICAgICAgICBtX2lubmVyLT51cGRhdGVCZWZv
cmVBZnRlckNvbnRlbnRGb3JDb250YWluZXIodHlwZSwgdGhpcyk7CiAgICAgZWxzZQotICAgICAg
ICB1cGRhdGVQc2V1ZG9DaGlsZEZvck9iamVjdCh0eXBlLCB0aGlzKTsKKyAgICAgICAgdXBkYXRl
QmVmb3JlQWZ0ZXJDb250ZW50Rm9yQ29udGFpbmVyKHR5cGUsIHRoaXMpOwogfQogCiBJbnRSZWN0
IFJlbmRlckJ1dHRvbjo6Y29udHJvbENsaXBSZWN0KGludCB0eCwgaW50IHR5KSBjb25zdApJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgJKHJldmlzaW9uIDIxMTczKQorKysgV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTdHlsZShSZW5kZXJTdHlsZSopOwogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZVBzZXVkb0NoaWxkKFJlbmRlclN0eWxlOjpQc2V1ZG9JZCk7CisgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUJlZm9yZUFmdGVyQ29udGVudChSZW5kZXJTdHlsZTo6UHNldWRvSWQpOwogCiAgICAgdmly
dHVhbCBib29sIGhhc0NvbnRyb2xDbGlwKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgSW50UmVjdCBjb250cm9sQ2xpcFJlY3QoaW50IC8qdHgqLywgaW50IC8qdHkqLykgY29u
c3Q7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb250YWluZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5jcHAJKHJldmlzaW9uIDIx
MTczKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29udGFpbmVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjMxLDQzICsyMzEsNTYgQEAgdm9pZCBSZW5kZXJDb250YWluZXI6OnJlbW92ZUNo
aWxkKFJlbmRlcgogICAgIHJlbW92ZUNoaWxkTm9kZShvbGRDaGlsZCk7CiB9CiAKLVJlbmRlck9i
amVjdCogUmVuZGVyQ29udGFpbmVyOjpwc2V1ZG9DaGlsZChSZW5kZXJTdHlsZTo6UHNldWRvSWQg
dHlwZSkgY29uc3QKK1JlbmRlck9iamVjdCogUmVuZGVyQ29udGFpbmVyOjpiZWZvcmVBZnRlckNv
bnRhaW5lcihSZW5kZXJTdHlsZTo6UHNldWRvSWQgdHlwZSkKIHsKICAgICBpZiAodHlwZSA9PSBS
ZW5kZXJTdHlsZTo6QkVGT1JFKSB7Ci0gICAgICAgIFJlbmRlck9iamVjdCogZmlyc3QgPSBmaXJz
dENoaWxkKCk7Ci0gICAgICAgIHdoaWxlIChmaXJzdCAmJiBmaXJzdC0+aXNMaXN0TWFya2VyKCkp
Ci0gICAgICAgICAgICBmaXJzdCA9IGZpcnN0LT5uZXh0U2libGluZygpOworICAgICAgICBSZW5k
ZXJPYmplY3QqIGZpcnN0ID0gdGhpczsKKyAgICAgICAgZG8geworICAgICAgICAgICAgLy8gU2tp
cCBsaXN0IG1hcmtlcnMuCisgICAgICAgICAgICBmaXJzdCA9IGZpcnN0LT5maXJzdENoaWxkKCk7
CisgICAgICAgICAgICB3aGlsZSAoZmlyc3QgJiYgZmlyc3QtPmlzTGlzdE1hcmtlcigpKQorICAg
ICAgICAgICAgICAgIGZpcnN0ID0gZmlyc3QtPm5leHRTaWJsaW5nKCk7CisgICAgICAgIH0gd2hp
bGUgKGZpcnN0ICYmIGZpcnN0LT5pc0Fub255bW91cygpICYmIGZpcnN0LT5zdHlsZSgpLT5zdHls
ZVR5cGUoKSA9PSBSZW5kZXJTdHlsZTo6Tk9QU0VVRE8pOworICAgICAgICBpZiAoZmlyc3QgJiYg
Zmlyc3QtPnN0eWxlKCktPnN0eWxlVHlwZSgpICE9IHR5cGUpCisgICAgICAgICAgICByZXR1cm4g
MDsKICAgICAgICAgcmV0dXJuIGZpcnN0OwogICAgIH0KLSAgICBpZiAodHlwZSA9PSBSZW5kZXJT
dHlsZTo6QUZURVIpCi0gICAgICAgIHJldHVybiBsYXN0Q2hpbGQoKTsKKyAgICBpZiAodHlwZSA9
PSBSZW5kZXJTdHlsZTo6QUZURVIpIHsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBsYXN0ID0gdGhp
czsKKyAgICAgICAgZG8geworICAgICAgICAgICAgbGFzdCA9IGxhc3QtPmxhc3RDaGlsZCgpOwor
ICAgICAgICB9IHdoaWxlIChsYXN0ICYmIGxhc3QtPmlzQW5vbnltb3VzKCkgJiYgbGFzdC0+c3R5
bGUoKS0+c3R5bGVUeXBlKCkgPT0gUmVuZGVyU3R5bGU6Ok5PUFNFVURPICYmICFsYXN0LT5pc0xp
c3RNYXJrZXIoKSk7CisgICAgICAgIGlmIChsYXN0ICYmIGxhc3QtPnN0eWxlKCktPnN0eWxlVHlw
ZSgpICE9IHR5cGUpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGxhc3Q7
CisgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9CiAK
LXZvaWQgUmVuZGVyQ29udGFpbmVyOjp1cGRhdGVQc2V1ZG9DaGlsZChSZW5kZXJTdHlsZTo6UHNl
dWRvSWQgdHlwZSkKK3ZvaWQgUmVuZGVyQ29udGFpbmVyOjp1cGRhdGVCZWZvcmVBZnRlckNvbnRl
bnQoUmVuZGVyU3R5bGU6OlBzZXVkb0lkIHR5cGUpCiB7Ci0gICAgLy8gSWYgdGhpcyBpcyBhbiBh
bm9ueW1vdXMgd3JhcHBlciwgdGhlbiBwYXJlbnQgYXBwbGllcyBpdHMgb3duIHBzZXVkbyBzdHls
ZSB0byBpdC4KKyAgICAvLyBJZiB0aGlzIGlzIGFuIGFub255bW91cyB3cmFwcGVyLCB0aGVuIHRo
ZSBwYXJlbnQgYXBwbGllcyBpdHMgb3duIHBzZXVkbyBzdHlsZSB0byBpdC4KICAgICBpZiAocGFy
ZW50KCkgJiYgcGFyZW50KCktPmNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVyKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICB1cGRhdGVQc2V1ZG9DaGlsZEZvck9iamVjdCh0eXBlLCB0aGlzKTsKKyAgICB1
cGRhdGVCZWZvcmVBZnRlckNvbnRlbnRGb3JDb250YWluZXIodHlwZSwgdGhpcyk7CiB9CiAKLXZv
aWQgUmVuZGVyQ29udGFpbmVyOjp1cGRhdGVQc2V1ZG9DaGlsZEZvck9iamVjdChSZW5kZXJTdHls
ZTo6UHNldWRvSWQgdHlwZSwgUmVuZGVyT2JqZWN0KiBzdHlsZWRPYmplY3QpCit2b2lkIFJlbmRl
ckNvbnRhaW5lcjo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50Rm9yQ29udGFpbmVyKFJlbmRlclN0
eWxlOjpQc2V1ZG9JZCB0eXBlLCBSZW5kZXJDb250YWluZXIqIHN0eWxlZE9iamVjdCkKIHsKICAg
ICAvLyBJbiBDU1MyLCBiZWZvcmUvYWZ0ZXIgcHNldWRvLWNvbnRlbnQgY2Fubm90IG5lc3QuICBD
aGVjayB0aGlzIGZpcnN0LgogICAgIGlmIChzdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSBSZW5kZXJT
dHlsZTo6QkVGT1JFIHx8IHN0eWxlKCktPnN0eWxlVHlwZSgpID09IFJlbmRlclN0eWxlOjpBRlRF
UikKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIFJlbmRlclN0eWxlKiBwc2V1ZG8gPSBzdHls
ZWRPYmplY3QtPmdldFBzZXVkb1N0eWxlKHR5cGUpOwotICAgIFJlbmRlck9iamVjdCogY2hpbGQg
PSBwc2V1ZG9DaGlsZCh0eXBlKTsKKyAgICBSZW5kZXJTdHlsZSogcHNldWRvRWxlbWVudFN0eWxl
ID0gc3R5bGVkT2JqZWN0LT5nZXRQc2V1ZG9TdHlsZSh0eXBlKTsKKyAgICBSZW5kZXJPYmplY3Qq
IGNoaWxkID0gYmVmb3JlQWZ0ZXJDb250YWluZXIodHlwZSk7CiAKICAgICAvLyBXaGV0aGVyIG9y
IG5vdCB3ZSBjdXJyZW50bHkgaGF2ZSBnZW5lcmF0ZWQgY29udGVudCBhdHRhY2hlZC4KLSAgICBi
b29sIG9sZENvbnRlbnRQcmVzZW50ID0gY2hpbGQgJiYgKGNoaWxkLT5zdHlsZSgpLT5zdHlsZVR5
cGUoKSA9PSB0eXBlKTsKKyAgICBib29sIG9sZENvbnRlbnRQcmVzZW50ID0gY2hpbGQ7CiAKICAg
ICAvLyBXaGV0aGVyIG9yIG5vdCB3ZSBub3cgd2FudCBnZW5lcmF0ZWQgY29udGVudC4gIAotICAg
IGJvb2wgbmV3Q29udGVudFdhbnRlZCA9IHBzZXVkbyAmJiBwc2V1ZG8tPmRpc3BsYXkoKSAhPSBO
T05FOworICAgIGJvb2wgbmV3Q29udGVudFdhbnRlZCA9IHBzZXVkb0VsZW1lbnRTdHlsZSAmJiBw
c2V1ZG9FbGVtZW50U3R5bGUtPmRpc3BsYXkoKSAhPSBOT05FOwogCiAgICAgLy8gRm9yIDxxPjxw
Lz48L3E+LCBpZiB0aGlzIG9iamVjdCBpcyB0aGUgaW5saW5lIGNvbnRpbnVhdGlvbiBvZiB0aGUg
PHE+LCB3ZSBvbmx5IHdhbnQgdG8gZ2VuZXJhdGUKICAgICAvLyA6YWZ0ZXIgY29udGVudCBhbmQg
bm90IDpiZWZvcmUgY29udGVudC4KQEAgLTI4Miw3ICsyOTUsNyBAQCB2b2lkIFJlbmRlckNvbnRh
aW5lcjo6dXBkYXRlUHNldWRvQ2hpbGRGCiAgICAgLy8gSWYgd2UgZG9uJ3Qgd2FudCBnZW5lcmF0
ZWQgY29udGVudCBhbnkgbG9uZ2VyLCBvciBpZiB3ZSBoYXZlIGdlbmVyYXRlZCBjb250ZW50LCBi
dXQgaXQncyBubyBsb25nZXIKICAgICAvLyBpZGVudGljYWwgdG8gdGhlIG5ldyBjb250ZW50IGRh
dGEgd2Ugd2FudCB0byBidWlsZCByZW5kZXIgb2JqZWN0cyBmb3IsIHRoZW4gd2UgbnVrZSBhbGwK
ICAgICAvLyBvZiB0aGUgb2xkIGdlbmVyYXRlZCBjb250ZW50LgotICAgIGlmICghbmV3Q29udGVu
dFdhbnRlZCB8fCAob2xkQ29udGVudFByZXNlbnQgJiYgIWNoaWxkLT5zdHlsZSgpLT5jb250ZW50
RGF0YUVxdWl2YWxlbnQocHNldWRvKSkpIHsKKyAgICBpZiAoIW5ld0NvbnRlbnRXYW50ZWQgfHwg
KG9sZENvbnRlbnRQcmVzZW50ICYmICFjaGlsZC0+c3R5bGUoKS0+Y29udGVudERhdGFFcXVpdmFs
ZW50KHBzZXVkb0VsZW1lbnRTdHlsZSkpKSB7CiAgICAgICAgIC8vIE51a2UgdGhlIGNoaWxkLiAK
ICAgICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLT5zdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSB0eXBl
KSB7CiAgICAgICAgICAgICBvbGRDb250ZW50UHJlc2VudCA9IGZhbHNlOwpAQCAtMjkxLDM1ICsz
MDQsMzUgQEAgdm9pZCBSZW5kZXJDb250YWluZXI6OnVwZGF0ZVBzZXVkb0NoaWxkRgogICAgICAg
ICB9CiAgICAgfQogCi0gICAgLy8gSWYgd2UgaGF2ZSBubyBwc2V1ZG8tc3R5bGUgb3IgaWYgdGhl
IHBzZXVkbydzIGRpc3BsYXkgdHlwZSBpcyBOT05FLCB0aGVuIHdlCisgICAgLy8gSWYgd2UgaGF2
ZSBubyBwc2V1ZG8tZWxlbWVudCBzdHlsZSBvciBpZiB0aGUgcHNldWRvLWVsZW1lbnQgc3R5bGUn
cyBkaXNwbGF5IHR5cGUgaXMgTk9ORSwgdGhlbiB3ZQogICAgIC8vIGhhdmUgbm8gZ2VuZXJhdGVk
IGNvbnRlbnQgYW5kIGNhbiBub3cgcmV0dXJuLgogICAgIGlmICghbmV3Q29udGVudFdhbnRlZCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGlzSW5saW5lRmxvdygpICYmICFwc2V1ZG8tPmlz
RGlzcGxheUlubGluZVR5cGUoKSkKKyAgICBpZiAoaXNJbmxpbmVGbG93KCkgJiYgIXBzZXVkb0Vs
ZW1lbnRTdHlsZS0+aXNEaXNwbGF5SW5saW5lVHlwZSgpKQogICAgICAgICAvLyBBY2NvcmRpbmcg
dG8gdGhlIENTUzIgc3BlYyAodGhlIGVuZCBvZiBzZWN0aW9uIDEyLjEpLCB0aGUgb25seSBhbGxv
d2VkCiAgICAgICAgIC8vIGRpc3BsYXkgdmFsdWVzIGZvciB0aGUgcHNldWRvIHN0eWxlIGFyZSBO
T05FIGFuZCBJTkxJTkUgZm9yIGlubGluZSBmbG93cy4KICAgICAgICAgLy8gRklYTUU6IENTUzIu
MSBsaWZ0ZWQgdGhpcyByZXN0cmljdGlvbiwgYnV0IGJsb2NrIGRpc3BsYXkgdHlwZXMgd2lsbCBj
cmFzaC4KICAgICAgICAgLy8gRm9yIG5vdyB3ZSBhdCBsZWFzdCByZWxheCB0aGUgcmVzdHJpY3Rp
b24gdG8gYWxsb3cgYWxsIGlubGluZSB0eXBlcyBsaWtlIGlubGluZS1ibG9jawogICAgICAgICAv
LyBhbmQgaW5saW5lLXRhYmxlLgotICAgICAgICBwc2V1ZG8tPnNldERpc3BsYXkoSU5MSU5FKTsK
KyAgICAgICAgcHNldWRvRWxlbWVudFN0eWxlLT5zZXREaXNwbGF5KElOTElORSk7CiAKICAgICBp
ZiAob2xkQ29udGVudFByZXNlbnQpIHsKICAgICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLT5zdHls
ZSgpLT5zdHlsZVR5cGUoKSA9PSB0eXBlKSB7CiAgICAgICAgICAgICAvLyBXZSBoYXZlIGdlbmVy
YXRlZCBjb250ZW50IHByZXNlbnQgc3RpbGwuICBXZSB3YW50IHRvIHdhbGsgdGhpcyBjb250ZW50
IGFuZCB1cGRhdGUgb3VyCi0gICAgICAgICAgICAvLyBzdHlsZSBpbmZvcm1hdGlvbiB3aXRoIHRo
ZSBuZXcgcHNldWRvIHN0eWxlLgotICAgICAgICAgICAgY2hpbGQtPnNldFN0eWxlKHBzZXVkbyk7
CisgICAgICAgICAgICAvLyBzdHlsZSBpbmZvcm1hdGlvbiB3aXRoIHRoZSBuZXcgcHNldWRvLWVs
ZW1lbnQgc3R5bGUuCisgICAgICAgICAgICBjaGlsZC0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0
eWxlKTsKIAogICAgICAgICAgICAgLy8gTm90ZSB0aGF0IGlmIHdlIGV2ZXIgc3VwcG9ydCBhZGRp
dGlvbmFsIHR5cGVzIG9mIGdlbmVyYXRlZCBjb250ZW50ICh3aGljaCBzaG91bGQgYmUgd2F5IG9m
ZgogICAgICAgICAgICAgLy8gaW4gdGhlIGZ1dHVyZSksIHRoaXMgY29kZSB3aWxsIG5lZWQgdG8g
YmUgcGF0Y2hlZC4KICAgICAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBnZW5DaGlsZCA9IGNo
aWxkLT5maXJzdENoaWxkKCk7IGdlbkNoaWxkOyBnZW5DaGlsZCA9IGdlbkNoaWxkLT5uZXh0U2li
bGluZygpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGdlbkNoaWxkLT5pc1RleHQoKSkKLSAgICAg
ICAgICAgICAgICAgICAgLy8gR2VuZXJhdGVkIHRleHQgY29udGVudCBpcyBhIGNoaWxkIHdob3Nl
IHN0eWxlIGFsc28gbmVlZHMgdG8gYmUgc2V0IHRvIHRoZSBwc2V1ZG8gc3R5bGUuCi0gICAgICAg
ICAgICAgICAgICAgIGdlbkNoaWxkLT5zZXRTdHlsZShwc2V1ZG8pOworICAgICAgICAgICAgICAg
ICAgICAvLyBHZW5lcmF0ZWQgdGV4dCBjb250ZW50IGlzIGEgY2hpbGQgd2hvc2Ugc3R5bGUgYWxz
byBuZWVkcyB0byBiZSBzZXQgdG8gdGhlIHBzZXVkby1lbGVtZW50IHN0eWxlLgorICAgICAgICAg
ICAgICAgICAgICBnZW5DaGlsZC0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKICAgICAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gSW1hZ2VzIGdldCBhbiBl
bXB0eSBzdHlsZSB0aGF0IGluaGVyaXRzIGZyb20gdGhlIHBzZXVkby4KICAgICAgICAgICAgICAg
ICAgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJTdHls
ZTsKLSAgICAgICAgICAgICAgICAgICAgc3R5bGUtPmluaGVyaXRGcm9tKHBzZXVkbyk7CisgICAg
ICAgICAgICAgICAgICAgIHN0eWxlLT5pbmhlcml0RnJvbShwc2V1ZG9FbGVtZW50U3R5bGUpOwog
ICAgICAgICAgICAgICAgICAgICBnZW5DaGlsZC0+c2V0U3R5bGUoc3R5bGUpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTMyNywyOCArMzQwLDI4IEBAIHZvaWQgUmVuZGVy
Q29udGFpbmVyOjp1cGRhdGVQc2V1ZG9DaGlsZEYKICAgICAgICAgcmV0dXJuOyAvLyBXZSd2ZSB1
cGRhdGVkIHRoZSBnZW5lcmF0ZWQgY29udGVudC4gVGhhdCdzIGFsbCB3ZSBuZWVkZWQgdG8gZG8u
CiAgICAgfQogICAgIAotICAgIFJlbmRlck9iamVjdCogaW5zZXJ0QmVmb3JlID0gKHR5cGUgPT0g
UmVuZGVyU3R5bGU6OkJFRk9SRSkgPyBjaGlsZCA6IDA7CisgICAgUmVuZGVyT2JqZWN0KiBpbnNl
cnRCZWZvcmUgPSAodHlwZSA9PSBSZW5kZXJTdHlsZTo6QkVGT1JFKSA/IGZpcnN0Q2hpbGQoKSA6
IDA7CiAKICAgICAvLyBHZW5lcmF0ZWQgY29udGVudCBjb25zaXN0cyBvZiBhIHNpbmdsZSBjb250
YWluZXIgdGhhdCBob3VzZXMgbXVsdGlwbGUgY2hpbGRyZW4gKHNwZWNpZmllZAotICAgIC8vIGJ5
IHRoZSBjb250ZW50IHByb3BlcnR5KS4gIFRoaXMgcHNldWRvIGNvbnRhaW5lciBnZXRzIHRoZSBw
c2V1ZG8gc3R5bGUgc2V0IG9uIGl0LgotICAgIFJlbmRlck9iamVjdCogcHNldWRvQ29udGFpbmVy
ID0gMDsKKyAgICAvLyBieSB0aGUgY29udGVudCBwcm9wZXJ0eSkuICBUaGlzIGdlbmVyYXRlZCBj
b250ZW50IGNvbnRhaW5lciBnZXRzIHRoZSBwc2V1ZG8tZWxlbWVudCBzdHlsZSBzZXQgb24gaXQu
CisgICAgUmVuZGVyT2JqZWN0KiBnZW5lcmF0ZWRDb250ZW50Q29udGFpbmVyID0gMDsKICAgICAK
ICAgICAvLyBXYWxrIG91ciBsaXN0IG9mIGdlbmVyYXRlZCBjb250ZW50IGFuZCBjcmVhdGUgcmVu
ZGVyIG9iamVjdHMgZm9yIGVhY2guCi0gICAgZm9yIChjb25zdCBDb250ZW50RGF0YSogY29udGVu
dCA9IHBzZXVkby0+Y29udGVudERhdGEoKTsgY29udGVudDsgY29udGVudCA9IGNvbnRlbnQtPm1f
bmV4dCkgeworICAgIGZvciAoY29uc3QgQ29udGVudERhdGEqIGNvbnRlbnQgPSBwc2V1ZG9FbGVt
ZW50U3R5bGUtPmNvbnRlbnREYXRhKCk7IGNvbnRlbnQ7IGNvbnRlbnQgPSBjb250ZW50LT5tX25l
eHQpIHsKICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IDA7CiAgICAgICAgIHN3aXRj
aCAoY29udGVudC0+bV90eXBlKSB7CiAgICAgICAgICAgICBjYXNlIENPTlRFTlRfTk9ORToKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9URVhUOgogICAg
ICAgICAgICAgICAgIHJlbmRlcmVyID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJUZXh0RnJh
Z21lbnQoZG9jdW1lbnQoKSAvKiBhbm9ueW1vdXMgb2JqZWN0ICovLCBjb250ZW50LT5tX2NvbnRl
bnQubV90ZXh0KTsKLSAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvKTsK
KyAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9PQkpFQ1Q6
CiAgICAgICAgICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGNvbnRlbnQt
Pm1fY29udGVudC5tX29iamVjdCkKICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc291cmNlLT50
eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIFJlbmRlckltYWdlKiBpbWFnZSA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVy
SW1hZ2UoZG9jdW1lbnQoKSk7IC8vIGFub255bW91cyBvYmplY3QKICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyU3R5
bGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZS0+aW5oZXJpdEZyb20ocHNldWRvKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLT5pbmhlcml0RnJvbShwc2V1ZG9FbGVtZW50
U3R5bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UtPnNldFN0eWxlKHN0eWxlKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlLT5zZXRDYWNoZWRJbWFnZShzdGF0aWNfY2Fz
dDxDYWNoZWRJbWFnZSo+KHJlc291cmNlKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbWFn
ZS0+c2V0SXNBbm9ueW1vdXNJbWFnZSh0cnVlKTsKQEAgLTM1NywyMSArMzcwLDIxIEBAIHZvaWQg
UmVuZGVyQ29udGFpbmVyOjp1cGRhdGVQc2V1ZG9DaGlsZEYKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9DT1VOVEVSOgogICAgICAgICAgICAgICAgIHJl
bmRlcmVyID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJDb3VudGVyKGRvY3VtZW50KCksICpj
b250ZW50LT5tX2NvbnRlbnQubV9jb3VudGVyKTsKLSAgICAgICAgICAgICAgICByZW5kZXJlci0+
c2V0U3R5bGUocHNldWRvKTsKKyAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNl
dWRvRWxlbWVudFN0eWxlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAg
ICAgICAgIGlmIChyZW5kZXJlcikgewotICAgICAgICAgICAgaWYgKCFwc2V1ZG9Db250YWluZXIp
Ci0gICAgICAgICAgICAgICAgcHNldWRvQ29udGFpbmVyID0gUmVuZGVyRmxvdzo6Y3JlYXRlQW5v
bnltb3VzRmxvdyhkb2N1bWVudCgpLCBwc2V1ZG8pOyAvLyBhbm9ueW1vdXMgYm94Ci0gICAgICAg
ICAgICBwc2V1ZG9Db250YWluZXItPmFkZENoaWxkKHJlbmRlcmVyKTsKKyAgICAgICAgICAgIGlm
ICghZ2VuZXJhdGVkQ29udGVudENvbnRhaW5lcikKKyAgICAgICAgICAgICAgICBnZW5lcmF0ZWRD
b250ZW50Q29udGFpbmVyID0gUmVuZGVyRmxvdzo6Y3JlYXRlQW5vbnltb3VzRmxvdyhkb2N1bWVu
dCgpLCBwc2V1ZG9FbGVtZW50U3R5bGUpOyAvLyBhbm9ueW1vdXMgYm94CisgICAgICAgICAgICBn
ZW5lcmF0ZWRDb250ZW50Q29udGFpbmVyLT5hZGRDaGlsZChyZW5kZXJlcik7CiAgICAgICAgIH0K
ICAgICB9CiAKICAgICAvLyBBZGQgdGhlIHBzZXVkbyBhZnRlciB3ZSd2ZSBpbnN0YWxsZWQgYWxs
IG91ciBjb250ZW50IHNvIHRoYXQgYWRkQ2hpbGQgd2lsbCBiZSBhYmxlIHRvIGZpbmQgdGhlIHRl
eHQKICAgICAvLyBpbnNpZGUgdGhlIGlubGluZSBmb3IgZS5nLiwgZmlyc3QtbGV0dGVyIHN0eWxp
bmcuCi0gICAgaWYgKHBzZXVkb0NvbnRhaW5lcikKLSAgICAgICAgYWRkQ2hpbGQocHNldWRvQ29u
dGFpbmVyLCBpbnNlcnRCZWZvcmUpOworICAgIGlmIChnZW5lcmF0ZWRDb250ZW50Q29udGFpbmVy
KQorICAgICAgICBhZGRDaGlsZChnZW5lcmF0ZWRDb250ZW50Q29udGFpbmVyLCBpbnNlcnRCZWZv
cmUpOwogfQogCiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5oCShyZXZpc2lv
biAyMTE3MykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5oCSh3b3JraW5n
IGNvcHkpCkBAIC01NCw5ICs1NCw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVMZWZ0b3ZlckFub255bW91c0JveGVzKCk7CiAKLSAgICBSZW5kZXJPYmplY3QqIHBzZXVkb0No
aWxkKFJlbmRlclN0eWxlOjpQc2V1ZG9JZCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZVBzZXVkb0NoaWxkKFJlbmRlclN0eWxlOjpQc2V1ZG9JZCk7Ci0gICAgdm9pZCB1cGRhdGVQc2V1
ZG9DaGlsZEZvck9iamVjdChSZW5kZXJTdHlsZTo6UHNldWRvSWQsIFJlbmRlck9iamVjdCopOwor
ICAgIFJlbmRlck9iamVjdCogYmVmb3JlQWZ0ZXJDb250YWluZXIoUmVuZGVyU3R5bGU6OlBzZXVk
b0lkKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KFJlbmRlclN0
eWxlOjpQc2V1ZG9JZCk7CisgICAgdm9pZCB1cGRhdGVCZWZvcmVBZnRlckNvbnRlbnRGb3JDb250
YWluZXIoUmVuZGVyU3R5bGU6OlBzZXVkb0lkLCBSZW5kZXJDb250YWluZXIqKTsKIAogICAgIHZp
cnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yQ29vcmRpbmF0ZXMoaW50IHgsIGludCB5
KTsKIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCShyZXZpc2lvbiAyMTE3MykK
KysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTY2LDggKzY2LDggQEAgdm9pZCBSZW5kZXJJbmxpbmU6OnNldFN0eWxlKFJlbmRlclN0eWxlKgog
ICAgIG1fbGluZUhlaWdodCA9IC0xOwogCiAgICAgLy8gVXBkYXRlIHBzZXVkb3MgZm9yIDpiZWZv
cmUgYW5kIDphZnRlciBub3cuCi0gICAgdXBkYXRlUHNldWRvQ2hpbGQoUmVuZGVyU3R5bGU6OkJF
Rk9SRSk7Ci0gICAgdXBkYXRlUHNldWRvQ2hpbGQoUmVuZGVyU3R5bGU6OkFGVEVSKTsKKyAgICB1
cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQoUmVuZGVyU3R5bGU6OkJFRk9SRSk7CisgICAgdXBkYXRl
QmVmb3JlQWZ0ZXJDb250ZW50KFJlbmRlclN0eWxlOjpBRlRFUik7CiB9CiAKIGJvb2wgUmVuZGVy
SW5saW5lOjppc0lubGluZUNvbnRpbnVhdGlvbigpIGNvbnN0CkBAIC0xMDgsMTAgKzEwOCwxMCBA
QCB2b2lkIFJlbmRlcklubGluZTo6YWRkQ2hpbGRUb0Zsb3coUmVuZGVyCiAgICAgICAgIHNldENv
bnRpbnVhdGlvbihuZXdCb3gpOwogCiAgICAgICAgIC8vIFNvbWVvbmUgbWF5IGhhdmUgcHV0IGEg
PHA+IGluc2lkZSBhIDxxPiwgY2F1c2luZyBhIHNwbGl0LiAgV2hlbiB0aGlzIGhhcHBlbnMsIHRo
ZSA6YWZ0ZXIgY29udGVudAotICAgICAgICAvLyBoYXMgdG8gbW92ZSBpbnRvIHRoZSBpbmxpbmUg
Y29udGludWF0aW9uLiAgQ2FsbCB1cGRhdGVQc2V1ZG9DaGlsZCB0byBlbnN1cmUgdGhhdCBvdXIg
OmFmdGVyCisgICAgICAgIC8vIGhhcyB0byBtb3ZlIGludG8gdGhlIGlubGluZSBjb250aW51YXRp
b24uICBDYWxsIHVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCB0byBlbnN1cmUgdGhhdCBvdXIgOmFm
dGVyCiAgICAgICAgIC8vIGNvbnRlbnQgZ2V0cyBwcm9wZXJseSBkZXN0cm95ZWQuCiAgICAgICAg
IGJvb2wgaXNMYXN0Q2hpbGQgPSAoYmVmb3JlQ2hpbGQgPT0gbGFzdENoaWxkKCkpOwotICAgICAg
ICB1cGRhdGVQc2V1ZG9DaGlsZChSZW5kZXJTdHlsZTo6QUZURVIpOworICAgICAgICB1cGRhdGVC
ZWZvcmVBZnRlckNvbnRlbnQoUmVuZGVyU3R5bGU6OkFGVEVSKTsKICAgICAgICAgaWYgKGlzTGFz
dENoaWxkICYmIGJlZm9yZUNoaWxkICE9IGxhc3RDaGlsZCgpKQogICAgICAgICAgICAgYmVmb3Jl
Q2hpbGQgPSAwOyAvLyBXZSBkZXN0cm95ZWQgdGhlIGxhc3QgY2hpbGQsIHNvIG5vdyB3ZSBuZWVk
IHRvIHVwZGF0ZSBvdXIgaW5zZXJ0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHBvaW50IHRvIGJlIDAuICBJdCdzIGp1c3QgYSBzdHJhaWdodCBhcHBlbmQgbm93LgpAQCAtMTgx
LDkgKzE4MSw5IEBAIHZvaWQgUmVuZGVySW5saW5lOjpzcGxpdElubGluZXMoUmVuZGVyQmwKICAg
ICAgICAgICAgIGNsb25lLT5zZXRDb250aW51YXRpb24ob2xkQ29udCk7CiAKICAgICAgICAgICAg
IC8vIFNvbWVvbmUgbWF5IGhhdmUgaW5kaXJlY3RseSBjYXVzZWQgYSA8cT4gdG8gc3BsaXQuICBX
aGVuIHRoaXMgaGFwcGVucywgdGhlIDphZnRlciBjb250ZW50Ci0gICAgICAgICAgICAvLyBoYXMg
dG8gbW92ZSBpbnRvIHRoZSBpbmxpbmUgY29udGludWF0aW9uLiAgQ2FsbCB1cGRhdGVQc2V1ZG9D
aGlsZCB0byBlbnN1cmUgdGhhdCB0aGUgaW5saW5lJ3MgOmFmdGVyCisgICAgICAgICAgICAvLyBo
YXMgdG8gbW92ZSBpbnRvIHRoZSBpbmxpbmUgY29udGludWF0aW9uLiAgQ2FsbCB1cGRhdGVCZWZv
cmVBZnRlckNvbnRlbnQgdG8gZW5zdXJlIHRoYXQgdGhlIGlubGluZSdzIDphZnRlcgogICAgICAg
ICAgICAgLy8gY29udGVudCBnZXRzIHByb3Blcmx5IGRlc3Ryb3llZC4KLSAgICAgICAgICAgIGN1
cnItPnVwZGF0ZVBzZXVkb0NoaWxkKFJlbmRlclN0eWxlOjpBRlRFUik7CisgICAgICAgICAgICBj
dXJyLT51cGRhdGVCZWZvcmVBZnRlckNvbnRlbnQoUmVuZGVyU3R5bGU6OkFGVEVSKTsKIAogICAg
ICAgICAgICAgLy8gTm93IHdlIG5lZWQgdG8gdGFrZSBhbGwgb2YgdGhlIGNoaWxkcmVuIHN0YXJ0
aW5nIGZyb20gdGhlIGZpcnN0IGNoaWxkCiAgICAgICAgICAgICAvLyAqYWZ0ZXIqIGN1cnJDaGls
ZCBhbmQgYXBwZW5kIHRoZW0gYWxsIHRvIHRoZSBjbG9uZS4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3RhYmxlLWNlbGwtYmVmb3JlLWNvbnRlbnQtZXhwZWN0
ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5
IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3RhYmxl
LWNlbGwtYmVmb3JlLWNvbnRlbnQtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1p
bWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5T
VWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBYVYwbEVRVlI0bk8zZGU3Q3RkVjNIOGU5QkRu
Y1MKQjA0UU1na2hBb2NJRTdDOFJVVVEwQ0VjYjZGWmVRa3hhaWpRTHFOZE5FeEVFVTJuQ0tlYTFF
a0JMUzk1QVJVVWNPSWlBak9IQVMyeApDMlZjaytzNW5nMkhYMy84WnMvZVo3SFcybXVkdmZmbmNP
ejFtbUhPWHZ0Wno3Tit6MlZ2MW51dFp6MTdSV3V0RlFBQVFNQTJXM29BCkFBREEveDhDQkFBQWlC
RWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhXM1dBUFBS
UTFlMjMKTDkveU4yeW8rdWQvSGoxOTQ4YXFiM3hqL0RLdXY3N3EwVWVYZGx4Ym8zdnZyZnJYZjEy
NjVTMjBiNmFaZDZuSHRqbnV1cXZxOHN1cgovdmQvSHovdG9ZZXEvdnUvUjgrN21HM3gvV0NoM3dO
UGhQMjdHQTgvdktWSEFBQkxhOEVBK2Z6bnF3NDZxR3JGaXFxblBhM3Ewa3ZuCnB0MTlkOVh2L1Y2
ZjlodS9VWFhQUGNzNTFFMTk1Q05WZSs1WjllRVBMOC95cjcyMjZvZ2pxbDcwb3VIVHYvYTFxbWMr
cytwMXJ4dTkKak50dXF6cnl5S3JMTGx1ZU1XNU4vdmlQcTE3NHdxVloxa0w3WnRwNWwzSnNtK01E
SDZpNjhNS3FLNjZvT3VTUUhoU3pMcmlnYXZmZApxejcyc2VIekxtWmJQSkd0V1ZQMWxLZFVIWGRj
MWN0ZVZ2V2tKMVh0dDEvVlMxNVM5ZnpuOTlzZit0Qmt2d2UyOVA1ZHJQLzRqNnFMCkx0clNvd0NB
cGJOZ2dCeC9mTldWVi9iNFdMZXVQNkdldFdwVjFkNTdWLzNCSDFTZGYzN1ZIbnNzNTFBMzlZcFg5
REV0bDUvNGlhcFgKdldyMDlDT1ByUHJwbjY1YXVYTDBmZmJmditxNjY2cU9QbnB4WTltd29lckxY
MTdjTXJhMFAvM1RxazkrY21tV3RkQyttWGJlcFJ6Ygp0QjUrdU9yTU02dCs2N2VxM3ZyV3FuLzRo
NnJ0dDUrYmZ1cXAvWW40S0l2WkZwTll5bU52bW1VOThralZEVGRVWFhKSjFjVVhWMjIzClhmOTUr
L2pIcTc3NjFhcDN2YXZxZTkrYjdQZkFsdHkvUzJIMTZxcG5QYXZxelcvZTBpTUJnS1V4MFNsWVAv
aURWZi80ajFVUFBOQ2YKS00zNnovK3Mrc3BYcXM0K2U1bEdONkMxVFcrdlhObmZmVmt1MjIwM2ZQ
bVBQZGIvM1hiYnFtMFcySUpISHRudk40MzU2L25JSTFXLwo4aXRWVjEwMTNYekxZWnBUeVFiSHN2
dnVWUWNjTVAxampscW5VZnRtRW9QemJ1N1lsc0xhdFZVek0zUEgwWE9mKy9qN0xIU2NMMlpiCmpE
UE5zYmZVeXpyenpQNk94eWlubnRyZkxhcGFlUHVNMnIvTC9mT3lsQTQ0b0oveStkblBidW1SQU1E
aVRmd1prR2M5cStyM2Y3L3EKb3gvdHI5SldWWjF4UnRXNTV6Nyt2Zzg5MUVQbERXL29wejZjZm5y
Vit2Vjkya1VYVlQzMXFWWHZmMysvZmVHRlZRY2VXUFg2MTQ5Kwo3SXN1NnUrd3ZQT2RqMytDOXRo
ai9SU0xILzdocWgvOTBhcC8rN2ZsRzhlNmRWV25uVmIxdHJmMSsxMS8vZWo3UHZwbzFhYy9YZldM
CnYxajFoUzlNOW5qRDF2Tzk3KzNMK2VRbnEzN3QxNGFmRHo1cSs5eDVaMzhpZDlSUlZZY2ZYblhO
TlpOTkczVFpaVlhubkZOMTNubFYKejN0ZTFjMDNqNzd2c0xIOHovLzAyODk1VHIvOTVTOVhuWHh5
MVJ2ZldQVTNmOVBmS1Ryb29FMzMzYnAxZmQrZGRWYlZzY2YyKzU5egp6dWduc05Pc3ozeWJNN1pw
SG12Y01malhmMTMxbHJmMFkrVTNmN00vNWlqcjF2WHBlKzdaSC9QV1c0ZmZiNUxqYk5MeER6djJS
czM3CjlhLzMvWFRJSWYxRmlhOS92ZXF3dzZvKytNSFJ5eHJuNTM5Ky9QU2RkKzdINHF4UnZ3Y0c5
Ky9zTmhyMSsyUytjZnR1cVkrVFFXZWQKdGVtN3pWVlZMMzk1ZjdkNTQ4Ykpsd01BVDBodEN0LzdY
bXNISHRqYXFsV3R2ZnZkcloxOTl2RDcvZFJQdGZhaEQvV3ZaMlphZS9hegpXMXV6Wm03NlU1L2Ey
cC85MmR6dFk0OXQ3YVV2SGI2c1J4NXA3WWdqNW02ZmNVWnJHemYycjMvc3gxbzc3TERXdnZTbDFt
Ni92YldECkRtcnQxMzk5NmNieHZ2ZTF0dGRlYzdkLzRSZGF1L0RDL3ZYR2phM3R2WGRyeHh3emZO
d1BQdGpIVmRYYTV6NjM4T09OVzg5OTkyM3QKN1crZmJ2czgrbWhyeHgvZjJnTVA5TnVubnRyMzIz
ZS9PMzdhb0EwYityZ3Z2N3pmZnN0YldudnhpNmNieTExM3RmYjYxN2UyeHg3OQorM2ZjMGRvem50
SDMxei85VTJ2Ly91Lzl1RHJsbExsNTMvLysxdDd3aHY3MTJyVjlPNTV6VHI5dmE1dnVtMm5XWjNE
ZWFjYzI3V010CmRBeGVmSEZyMjJ3emZONVorK3pUMmlHSHRQYnBUL2Y5c08rK3JmM0lqL1R0UGJn
K3JZMC96cVlkLy94amI2RjVaNC8zejMrK0gvUG4KblRkNldkUGFZWWZXWHZXcTRkUEcvUjRZM0wv
amZzNEdqZHQzUzMyY0RQcUx2Mmp0cEpNMi9kN01UR3NyVjdaMjdiV1RMUU1BbnFpbQp1Z3JXOXR2
M0Q4WGVmWGQvMVcvWUs3YVhYTkxQMFQ3NTVINTc1Y3FxMTd5bTZqT2ZxYnI2NnY2OUhYZmM5SlNK
blhZYWZRckZmZmRWCjNYUlQxZWMrMTIrZmNzcW1wMDZzV2RNL1k3SFBQbFUvOHpOelY2VmE2bkZj
YzAwZncrd3JzOXRzVTNYQ0NjUHZXMVcxeXk1VkwzaEIKLzNwMnZPTWViNkgxbkhiN1hIeHgvL2Vx
cS9xMitLRWY2dnZ0eWl2SFR4dTBjbVgvZ1BOaGgvWGJ1KzgrK3RYM1VXTlp0YXJxMEVQbgoxbWZQ
UGZzcnhvY2UydmZmMDU1VzliTS9XL1hOYjg0dDY4TWY3bzlWMVYvUlhyV3FmejNzZlA5cDFtZlF0
R09iNXJFbU9RWW45YXUvClduWGlpZjBZZjhjN3FyNzk3YW92ZlduNGZjY2RaNXV6clNhZDkraWpx
MzdwbDZyZTlLYSsvMDQvZmZTeWx0cW8zd09EKzNlaG43TloKQysyN3BUeE9oam50dE1kL2JtWGx5
djU1b0gvNWwrbTJEUUE4MFV4OUdkNmpqcXJhWVlmK3BIRFlaeHV1dTY3L1QzLytoN09mL2V6Kwo3
NDAzVGovQVBmYm9UNEJQUExHZnByTHZ2djBLT0xQbVA2RjV5bFA2YVJQTE1ZNnZmS1dmWXJIYmJu
UGYyMldYOFUrb1pxZE44cVJyCm12V2NaTDZycis1UDRMZmJydi8zdk9kVmZmR0wvVlNRY2RPR3Jj
UDczdGVmdUoxelRyOVMwNE1QVHI4T0sxWnN1ZzZEdDNmZHRYK28KZVA3dCtVL1M5OXFyZitCNm1H
bldaNWhweGpiTll5M2xNZmprSjg5OS9aTS8yZi9kbkV2TGJzNjJtdDBXazh4NzdybjlDZkxoaDI5
NgovQTR1YTZtTitqMHdPMjEyK2tJL1o3TW0yWGRMZFp4TVk5ZGR0KzVMQ2dOQVZkV1VINDllMkxw
MS9YSzhEejNVbjZCWDlWY0p0OTEyCjg2OW4vNUdQOUt0dC9mbWY5eXZqWEhwcDFRLzhRSFljLy9W
Znd5OHp2SlJQcURablBVZk5kODg5ZlYxLzd1Y2VmLzl4MDRhNTRJTCsKYXZEZi9tMy8zTUoxMXkz
OU9ndzY0NHgrZGFlMWEvczdienZ0MU9OM21HblhaekdtZWF6bCtGbW82cSsyNzdwci8yOWFpOWxX
azh5NwpjbVYvNHY3T2QxYTk5cldiQnZzVHhTVEg2R0wzM1hJZGs0ODgwbjhXQUdCcnR1Ui9pUENn
Zy9xSEpMLzJ0Ym52M1hWWC82RHR3UWZQCmZXLzJTbElMdWVPT1B2OTczdE5QWlZpN3RuK3dOajJP
dmZmdXAxQXM5dlNIVVkrMzBIcU9DcDFSOCsyM1gzL0ZkZjY3Q3EzMWQzTEcKVFJ0MHl5MzlkSkJ6
engxL3llRkoxbUVhSjV6UVQ0KzU1SkwrWWY5eGwyK2RabjBXYTVySG12UVluTlozdnRQZmhmcnhI
eDk5bjFISAoyZVpzcTlsamI1SjUvK2lQK3VsTksxYjByMGN0YTB1WjlCaGQ3TDVicm1QeXpqdjd1
ellBc0RXYk9rQTJidXlYRGIzMzN1SFRYL3JTCmZoNzJGNzg0OTczcnIrLy9Rei91dUg3NzBFUDdI
MUNibWVsUHBtNjdiZlR5N3IxMzdvOXdIWHRzMVVrbnpiMGl1VzVkLzIvVyt2VnoKVjZsWmluSE16
UFJYSEt2NnVlM2JibHYxVjM4MU4vMGIzK2l2ZEU1NlZacHhqemR1UFhmYnJiOERVMVgxM2U5T3Ru
MSsrWmY3azVWVApUKzN6M0hWWC8zc0lCeHd3ZnRxZ1cyL3RUMlp2dWFXdjV4Vlg5Q2RWL2VQR2s0
MmxxdStuOWV2bjVwbVoyZlJKOHJwMW0yN0h0NzYxCjZoblA2SjhqZU1Vcit1Y2E1cHUvYjZaWm44
RjVweDNiTkk4MXlUSDR3QVA5c2VZZng4UE0zemFYWDk2dnlqVDd1WnpCOVJsM25FMjcKcmVZZmUy
dldqSi8za2t2NjF3Y2YzRS9YTy8vOFRVODFHenlPTjJ5b2V2dmI1NzQzeW1PUDlYVVo5bGZpcThi
L0hwaWRQcnQveHgyago4MDJ5N3haem5DeTA3bGRkMVNOcHZudnY3ZnQ1OE9wWUFMRFZtZVlUNnpm
ZTJOcVpaL2Fubmp2dTJLOUs5SjN2UFA1K045elEydXJWCnJiM3JYZjFxT0NlZjNOcXR0ODVOdit5
eTFuYmZ2Vi9KNTNkL3QxK2w1dWlqNTY2ME5OL05ON2UyLy82dFhYQkJhNS82Vkd1bm5kYXYKWlBQ
eGovZXJCNjFlM2NkMXd3MnRIWHh3YTl0dTI2OFd0Tmh4WEh0dGE0Y2YzdGYxTC8reVh3M3E3Lysr
dFYxMzdZL3pzcGUxZHVLSgpyVDMzdWYzN3c4ek1iSG9WckhHUE4ybzlXMnZ0VFc5cWJjV0sxbDd6
bXRidXZIT3k3ZE5hYStlZjM5cjIyL2Q1VjYxcTdST2ZtSnR2CjNMVDVIbjY0dFdjK3M3VmRkbW50
MWE5dTdiT2ZiVzJublZwNzVTdjdOcGxrTE5kZTI5cHpudE8zeFh2ZTA2OVd0TnR1L1NwaVYxL2QK
MmswM3RmYjBwL2Z4Zk9FTGZWbS84enV6aWRQYWs1N1UycDU3OXVWdDJEQjgzMHk2UG9QemZ2V3Iw
NDl0MHNkcWJmd3hlTTAxcmIzZwpCZjJ4My9qRzFtNjdiZmd5L3VSUFdqdjAwTmJlOFk1KzVibmYv
dTErZGFWaDY3Tmh3OEkvWDlPTWYvRFlHelh2NVpmM0szSGRkRk8vCmZjc3RmYi90dDkvY1Zac0ds
M1hMTGYzMkJ6ODQrdkZ2dnJsZlFhcXF0U2MvdVY5OTcvNzc1Nll2OUh0ZzhOaTc4Y2JSUHkvVDdM
c3IKcmxqY2NiTFF1cDkrZXQrZWp6NDY5NzIvKzd2V1h2akMwZHNLQUxZV0sxcGJuai9IMVZyVnQ3
N1ZyeGExLy82UG56NHowMTh0M0hISAovcXJlcU5ON0hudXNMK08rKy9wOWR0NTV5NHhqMXNhTi9S
WE5QZmJvN3dUc3NNUG8rODdNOU04dlhIZmQzS3VXb3g1dm9mVzg1NTdoCmYybCtvZmxtWnFwdXY3
MS9ibUR3b2dIanBnMWF2Mzd1WFloUjIybXgrMnErczgrdWVzbEwralorOE1HK3pJc3ZybnJsSzBl
ZlZ6L04KK2l6V05JKzEwREU0cVR2dTZNZkFKT3UyMEhFOXpmZ0hqNzNGYk9mQlpkMTk5OXdWemhL
bVBVWVh1Ky9HYmF0eDY5NWFQL2Judi9OMwowa245NTJMMTZ1bkhBUUJQSk1zV0lQVFRhM2JicmY4
NzdEUVBodnZBQjNwc0RGNW05dEpMKzVQQXB6OTl5NHdMdHBRLy9NT3FZNDRaCmZTRUdBTmlhQ0pC
bGNQVFIvUzh2SDNoZ3YzclVCUmRzNlJGdFhkYXU3ZThZblhoaXYyenArdlg5ZlBvMWEvcC84UC9K
bFZmMlMvbk8KWG40WkFMWjJBbVFackYzYlg3MWZ2YnJIeUhLZkR2VDk2UDc3K3hPdk8rN29mMWpP
dXg0QUFOOGZCQWdBQUJDejVIOEhCQUFBWUJRQgpBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdS
SUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBCk1RSUVBQUNJ
RVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFp
QkVnQUFCQWpBQUIKQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFB
SWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWQpBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVB
QUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBCkFERUNC
QUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFn
UUFBSWdSSUFBQVFJd0EKQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1R
SUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQQpHQUVDQUFERUNCQUFBQ0JHZ0FBQUFE
RUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBCkFB
QXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFB
QU1RSUVBQUNJRVNBQUFFQ00KQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FB
QUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQQpnQmdCQWdBQXhBZ1FBQUFnUm9B
QUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFB
CkFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JH
Z0FBQUFERUNCQUFBaUJFZ0FBQkEKakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFn
Um9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQQpBSUFZQVFJQUFNUUlFQUFB
SUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFB
Q0JHCmdBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FB
QUFnUm9BQUFBQXhBZ1FBQUlnUklBQUEKUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlF
QUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQQpBQUNBR0FFQ0FBREVD
QkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhB
Z1FBQUFnClJvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFN
UUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUEKQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FB
REVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBagpRQUFBZ0JnQkFn
QUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJ
QUFNUUlFQUFBCklFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FF
Q0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWcKQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0Jn
QkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUQpJMEFBQUlB
WUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNB
R0FFQ0FBREVDQkFBCkFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFB
Z0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1IKSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFB
QUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQQpFQ05B
QUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpR
QUFBZ0JnQkFnQUF4QWdRCkFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJ
MEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0kKRVNBQUFFQ01BQUVBQUdJRUNBQUFF
Q05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQQpB
QkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFB
QVFJMEFBQUlBWUFRSUFBTVFJCkVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNB
QUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUEKaUJFZ0FBQkFqQUFCQUFCaUJB
Z0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdR
SQpBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJ
RUNBQUFFQ05BQUFDQUdBRUNBQURFCkNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFC
aUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUEKQUlnUklBQUFRSXdBQVFB
QVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVB
QUdJRQpDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFC
QUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBCnhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdB
QVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUUKQUFDSUVTQUFBRUNN
QUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFq
QUFCQUFCaQpCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFR
SXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBCkFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFB
RUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUMKQkFBQWlCRWdB
QUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklB
QUFRSXdBQVFBQQpZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVT
QUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDCkFBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlC
RWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXgKQWdRQUFJ
Z1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFD
SUVTQUFBRUNNQUFFQQpBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFB
QWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCCkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdR
QUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUEKTVFJ
RUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVD
QkFBQWlCRWdBQUJBakFBQgpBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4
QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZCkFRSUFBTVFJRUFBQUlFYUFBQUFB
TVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUEK
QURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFB
QUF4QWdRQUFJZ1JJQUFBUUl3QQpBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFB
QUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBCkdBRUNBQURFQ0JBQUFDQkdn
QUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1Jv
QUEKQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlF
YUFBQUFBTVFJRUFBQ0lFU0FBQUVDTQpBQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFD
QkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBCmdCZ0JBZ0FBeEFnUUFB
QWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFB
QUlFYUEKQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JB
QUFDQkdnQUFBQURFQ0JBQUFpUGsvcGx5agpGeThvdWZRQUFBQUFTVVZPUks1Q1lJST0KCg==
</data>
<flag name="review"
          id="5819"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14284</attachid>
            <date>2007-04-30 21:52:04 -0700</date>
            <delta_ts>2007-04-30 21:58:50 -0700</delta_ts>
            <desc>Fix issues with table display types</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>33197</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMTk3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDctMDQtMzAgIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBmb3IgYnVnIDEyNjkxLCBnZW5lcmF0ZWQgY29u
dGVudCBhbmQgZGlzcGxheTogdGFibGUtY2VsbCBkdXBsaWNhdGVzCisgICAgICAgIGNvbnRlbnQg
b24gYSBzaXplIGNoYW5nZS4gIE1ha2Ugc3VyZSB0aGF0IHRoZSBjb2RlIHRvIHVwZGF0ZSBiZWZv
cmUvYWZ0ZXIKKyAgICAgICAgY29udGVudCBpcyBzbWFydCBlbm91Z2ggdG8gZHJpbGwgaW50byBh
bm9ueW1vdXMgY29udGFpbmVycyB0byBmaW5kIHRoZQorICAgICAgICBvbGQgY2hpbGQuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1n
ZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50LWV4cGVjdGVkLmNoZWNr
c3VtOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1j
ZWxsLWJlZm9yZS1jb250ZW50LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MtZ2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2VsbC1iZWZvcmUtY29udGVudC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3RhYmxlLWNl
bGwtYmVmb3JlLWNvbnRlbnQuaHRtbDogQWRkZWQuCisKIDIwMDctMDQtMzAgIEp1c3RpbiBHYXJj
aWEgIDxqdXN0aW4uZ2FyY2lhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBkYXJp
bgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2Vs
bC1iZWZvcmUtY29udGVudC1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50
LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2VsbC1iZWZvcmUtY29udGVudC1leHBlY3RlZC5jaGVj
a3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorYTA4NzUyMmVlOGI2M2QzNzAxMWIwMmVh
Mzg5NDkyNzgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29u
dGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvY3NzLWdlbmVyYXRlZC1jb250ZW50L3RhYmxlLWNlbGwtYmVm
b3JlLWNvbnRlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4IEBACits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDM0CisgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDgwMHgzNAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUg
Nzg0eDE4IFtjb2xvcj0jMDAwMEZGXQorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkg
c2l6ZSA3ODR4MTgKKyAgICAgICAgUmVuZGVyVGFibGUgYXQgKDAsMCkgc2l6ZSAyODJ4MTggW2Nv
bG9yPSMwMDAwMDBdCisgICAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uIGF0ICgwLDApIHNpemUg
MjgyeDE4CisgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyBhdCAoMCwwKSBzaXplIDI4MngxOAor
ICAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwgYXQgKDAsMCkgc2l6ZSAyMDN4MTggW2NvbG9y
PSMwMDAwRkZdIFtyPTAgYz0wIHJzPTEgY3M9MV0KKyAgICAgICAgICAgICAgICBSZW5kZXJUZXh0
IGF0ICgwLDApIHNpemUgMjAzeDE4CisgICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAyMDM6ICJZb3Ugc2hvdWxkIGp1c3Qgc2VlIGEgc2luZ2xlIGxpbmUiCisgICAgICAg
ICAgICAgIFJlbmRlclRhYmxlQ2VsbCB7RElWfSBhdCAoMjAzLDApIHNpemUgNHgxOCBbY29sb3I9
IzAwMDBGRl0gW3I9MCBjPTEgcnM9MSBjcz0xXQorICAgICAgICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDR4MTgKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDQ6ICIgIgorICAgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwgYXQgKDIw
NywwKSBzaXplIDc1eDE4IFtjb2xvcj0jMDAwMEZGXSBbcj0wIGM9MiBycz0xIGNzPTFdCisgICAg
ICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMCwwKSBzaXplIDc1eDE4CisgICAgICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA3NTogIm9mIGJsdWUgdGV4dC4iCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1j
b250ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVk
LWNvbnRlbnQvdGFibGUtY2VsbC1iZWZvcmUtY29udGVudC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ2VuZXJhdGVkLWNvbnRlbnQvdGFibGUtY2VsbC1iZWZvcmUt
Y29udGVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iCisgICAgICAgICJodHRwOi8vd3d3
LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVz
dCBDYXNlPC90aXRsZT4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKy5l
cnJvcjpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICJZb3Ugc2hvdWxkIGp1c3Qgc2VlIGEgc2luZ2xl
IGxpbmUiOworICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7Cit9CisKKy5lcnJvcjphZnRlciB7Cisg
ICAgY29udGVudDogIm9mIGJsdWUgdGV4dC4iOworICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7Cit9
CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9ImVycm9yIj48ZGl2IHN0
eWxlPSJkaXNwbGF5OnRhYmxlLWNlbGwiPiZuYnNwOzwvZGl2PjwvZGl2PgorPHNjcmlwdD4KK2Rv
Y3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKK2RvY3VtZW50LmJvZHkuc3R5bGUuY29sb3IgPSAnYmx1
ZSc7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjExOTcpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDI5IEBACisyMDA3LTA0LTMwICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxl
LmNvbT4KKworICAgICAgICBGaXggZm9yIGJ1ZyAxMjY5MSwgZ2VuZXJhdGVkIGNvbnRlbnQgYW5k
IGRpc3BsYXk6IHRhYmxlLWNlbGwgZHVwbGljYXRlcworICAgICAgICBjb250ZW50IG9uIGEgc2l6
ZSBjaGFuZ2UuICBNYWtlIHN1cmUgdGhhdCB0aGUgY29kZSB0byB1cGRhdGUgYmVmb3JlL2FmdGVy
CisgICAgICAgIGNvbnRlbnQgaXMgc21hcnQgZW5vdWdoIHRvIGRyaWxsIGludG8gYW5vbnltb3Vz
IGNvbnRhaW5lcnMgdG8gZmluZCB0aGUKKyAgICAgICAgb2xkIGNoaWxkLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGZhc3QvY3NzLWdlbmVy
YXRlZC1jb250ZW50L3RhYmxlLWNlbGwtYmVmb3JlLWNvbnRlbnQuaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpzZXRTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCdXR0b246OnVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQ29udGFpbmVyOjpi
ZWZvcmVBZnRlckNvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb250YWluZXI6
OnVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb250
YWluZXI6OnVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudEZvck9iamVjdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckNvbnRhaW5lci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpzZXRTdHlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmFkZENoaWxkVG9GbG93KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlcklubGluZTo6c3BsaXRJbmxpbmVzKToKKwogMjAwNy0wNC0zMCAgSnVzdGlu
IEdhcmNpYSAgPGp1c3Rpbi5nYXJjaWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IGRhcmluCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCShyZXZpc2lvbiAyMTE3MykK
KysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTQ4LDIwICsxNDgsMTAgQEAgdm9pZCBSZW5kZXJCbG9jazo6c2V0U3R5bGUoUmVuZGVyU3R5bGUq
IAogICAgIG1fbGluZUhlaWdodCA9IC0xOwogCiAgICAgLy8gVXBkYXRlIHBzZXVkb3MgZm9yIDpi
ZWZvcmUgYW5kIDphZnRlciBub3cuCi0gICAgdXBkYXRlUHNldWRvQ2hpbGQoUmVuZGVyU3R5bGU6
OkJFRk9SRSk7Ci0gICAgdXBkYXRlUHNldWRvQ2hpbGQoUmVuZGVyU3R5bGU6OkFGVEVSKTsKLX0K
LQotc3RhdGljIGlubGluZSBib29sIGlzQWZ0ZXJDb250ZW50KFJlbmRlck9iamVjdCogY2hpbGQp
Ci17Ci0gICAgaWYgKCFjaGlsZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChjaGls
ZC0+c3R5bGUoKS0+c3R5bGVUeXBlKCkgIT0gUmVuZGVyU3R5bGU6OkFGVEVSKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgLy8gVGV4dCBub2RlcyBkb24ndCBoYXZlIHRoZWlyIG93biBzdHls
ZXMsIHNvIGlnbm9yZSB0aGUgc3R5bGUgb24gYSB0ZXh0IG5vZGUuCi0gICAgaWYgKGNoaWxkLT5p
c1RleHQoKSAmJiAhY2hpbGQtPmlzQlIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJl
dHVybiB0cnVlOworICAgIGlmICghaXNBbm9ueW1vdXMoKSkgeworICAgICAgICB1cGRhdGVCZWZv
cmVBZnRlckNvbnRlbnQoUmVuZGVyU3R5bGU6OkJFRk9SRSk7CisgICAgICAgIHVwZGF0ZUJlZm9y
ZUFmdGVyQ29udGVudChSZW5kZXJTdHlsZTo6QUZURVIpOworICAgIH0KIH0KIAogdm9pZCBSZW5k
ZXJCbG9jazo6YWRkQ2hpbGRUb0Zsb3coUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2Jq
ZWN0KiBiZWZvcmVDaGlsZCkKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAkocmV2
aXNpb24gMjExNzMpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDAsMTIgKzEwMCwxMiBAQCB2b2lkIFJlbmRlckJ1dHRvbjo6c2V0VGV4
dChjb25zdCBTdHJpbmcmCiAgICAgfQogfQogCi12b2lkIFJlbmRlckJ1dHRvbjo6dXBkYXRlUHNl
dWRvQ2hpbGQoUmVuZGVyU3R5bGU6OlBzZXVkb0lkIHR5cGUpCit2b2lkIFJlbmRlckJ1dHRvbjo6
dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KFJlbmRlclN0eWxlOjpQc2V1ZG9JZCB0eXBlKQogewog
ICAgIGlmIChtX2lubmVyKQotICAgICAgICBtX2lubmVyLT51cGRhdGVQc2V1ZG9DaGlsZEZvck9i
amVjdCh0eXBlLCB0aGlzKTsKKyAgICAgICAgbV9pbm5lci0+dXBkYXRlQmVmb3JlQWZ0ZXJDb250
ZW50Rm9yQ29udGFpbmVyKHR5cGUsIHRoaXMpOwogICAgIGVsc2UKLSAgICAgICAgdXBkYXRlUHNl
dWRvQ2hpbGRGb3JPYmplY3QodHlwZSwgdGhpcyk7CisgICAgICAgIHVwZGF0ZUJlZm9yZUFmdGVy
Q29udGVudEZvckNvbnRhaW5lcih0eXBlLCB0aGlzKTsKIH0KIAogSW50UmVjdCBSZW5kZXJCdXR0
b246OmNvbnRyb2xDbGlwUmVjdChpbnQgdHgsIGludCB0eSkgY29uc3QKSW5kZXg6IFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJ1dHRvbi5oCShyZXZpc2lvbiAyMTE3MykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJ1dHRvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U3R5bGUoUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlRnJvbUVsZW1lbnQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQc2V1ZG9DaGls
ZChSZW5kZXJTdHlsZTo6UHNldWRvSWQpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCZWZvcmVB
ZnRlckNvbnRlbnQoUmVuZGVyU3R5bGU6OlBzZXVkb0lkKTsKIAogICAgIHZpcnR1YWwgYm9vbCBo
YXNDb250cm9sQ2xpcCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIEludFJl
Y3QgY29udHJvbENsaXBSZWN0KGludCAvKnR4Ki8sIGludCAvKnR5Ki8pIGNvbnN0OwpJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29udGFpbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJDb250YWluZXIuY3BwCShyZXZpc2lvbiAyMTE3MykKKysrIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbnRhaW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
MSw0MyArMjMxLDU2IEBAIHZvaWQgUmVuZGVyQ29udGFpbmVyOjpyZW1vdmVDaGlsZChSZW5kZXIK
ICAgICByZW1vdmVDaGlsZE5vZGUob2xkQ2hpbGQpOwogfQogCi1SZW5kZXJPYmplY3QqIFJlbmRl
ckNvbnRhaW5lcjo6cHNldWRvQ2hpbGQoUmVuZGVyU3R5bGU6OlBzZXVkb0lkIHR5cGUpIGNvbnN0
CitSZW5kZXJPYmplY3QqIFJlbmRlckNvbnRhaW5lcjo6YmVmb3JlQWZ0ZXJDb250YWluZXIoUmVu
ZGVyU3R5bGU6OlBzZXVkb0lkIHR5cGUpCiB7CiAgICAgaWYgKHR5cGUgPT0gUmVuZGVyU3R5bGU6
OkJFRk9SRSkgewotICAgICAgICBSZW5kZXJPYmplY3QqIGZpcnN0ID0gZmlyc3RDaGlsZCgpOwot
ICAgICAgICB3aGlsZSAoZmlyc3QgJiYgZmlyc3QtPmlzTGlzdE1hcmtlcigpKQotICAgICAgICAg
ICAgZmlyc3QgPSBmaXJzdC0+bmV4dFNpYmxpbmcoKTsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBm
aXJzdCA9IHRoaXM7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIC8vIFNraXAgbGlzdCBtYXJr
ZXJzLgorICAgICAgICAgICAgZmlyc3QgPSBmaXJzdC0+Zmlyc3RDaGlsZCgpOworICAgICAgICAg
ICAgd2hpbGUgKGZpcnN0ICYmIGZpcnN0LT5pc0xpc3RNYXJrZXIoKSkKKyAgICAgICAgICAgICAg
ICBmaXJzdCA9IGZpcnN0LT5uZXh0U2libGluZygpOworICAgICAgICB9IHdoaWxlIChmaXJzdCAm
JiBmaXJzdC0+aXNBbm9ueW1vdXMoKSAmJiBmaXJzdC0+c3R5bGUoKS0+c3R5bGVUeXBlKCkgPT0g
UmVuZGVyU3R5bGU6Ok5PUFNFVURPKTsKKyAgICAgICAgaWYgKGZpcnN0ICYmIGZpcnN0LT5zdHls
ZSgpLT5zdHlsZVR5cGUoKSAhPSB0eXBlKQorICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAg
IHJldHVybiBmaXJzdDsKICAgICB9Ci0gICAgaWYgKHR5cGUgPT0gUmVuZGVyU3R5bGU6OkFGVEVS
KQotICAgICAgICByZXR1cm4gbGFzdENoaWxkKCk7CisgICAgaWYgKHR5cGUgPT0gUmVuZGVyU3R5
bGU6OkFGVEVSKSB7CisgICAgICAgIFJlbmRlck9iamVjdCogbGFzdCA9IHRoaXM7CisgICAgICAg
IGRvIHsKKyAgICAgICAgICAgIGxhc3QgPSBsYXN0LT5sYXN0Q2hpbGQoKTsKKyAgICAgICAgfSB3
aGlsZSAobGFzdCAmJiBsYXN0LT5pc0Fub255bW91cygpICYmIGxhc3QtPnN0eWxlKCktPnN0eWxl
VHlwZSgpID09IFJlbmRlclN0eWxlOjpOT1BTRVVETyAmJiAhbGFzdC0+aXNMaXN0TWFya2VyKCkp
OworICAgICAgICBpZiAobGFzdCAmJiBsYXN0LT5zdHlsZSgpLT5zdHlsZVR5cGUoKSAhPSB0eXBl
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBsYXN0OworICAgIH0KIAog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJlbmRl
ckNvbnRhaW5lcjo6dXBkYXRlUHNldWRvQ2hpbGQoUmVuZGVyU3R5bGU6OlBzZXVkb0lkIHR5cGUp
Cit2b2lkIFJlbmRlckNvbnRhaW5lcjo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50KFJlbmRlclN0
eWxlOjpQc2V1ZG9JZCB0eXBlKQogewotICAgIC8vIElmIHRoaXMgaXMgYW4gYW5vbnltb3VzIHdy
YXBwZXIsIHRoZW4gcGFyZW50IGFwcGxpZXMgaXRzIG93biBwc2V1ZG8gc3R5bGUgdG8gaXQuCisg
ICAgLy8gSWYgdGhpcyBpcyBhbiBhbm9ueW1vdXMgd3JhcHBlciwgdGhlbiB0aGUgcGFyZW50IGFw
cGxpZXMgaXRzIG93biBwc2V1ZG8tZWxlbWVudCBzdHlsZSB0byBpdC4KICAgICBpZiAocGFyZW50
KCkgJiYgcGFyZW50KCktPmNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVyKCkpCiAgICAgICAgIHJldHVy
bjsKLSAgICB1cGRhdGVQc2V1ZG9DaGlsZEZvck9iamVjdCh0eXBlLCB0aGlzKTsKKyAgICB1cGRh
dGVCZWZvcmVBZnRlckNvbnRlbnRGb3JDb250YWluZXIodHlwZSwgdGhpcyk7CiB9CiAKLXZvaWQg
UmVuZGVyQ29udGFpbmVyOjp1cGRhdGVQc2V1ZG9DaGlsZEZvck9iamVjdChSZW5kZXJTdHlsZTo6
UHNldWRvSWQgdHlwZSwgUmVuZGVyT2JqZWN0KiBzdHlsZWRPYmplY3QpCit2b2lkIFJlbmRlckNv
bnRhaW5lcjo6dXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50Rm9yQ29udGFpbmVyKFJlbmRlclN0eWxl
OjpQc2V1ZG9JZCB0eXBlLCBSZW5kZXJDb250YWluZXIqIHN0eWxlZE9iamVjdCkKIHsKICAgICAv
LyBJbiBDU1MyLCBiZWZvcmUvYWZ0ZXIgcHNldWRvLWNvbnRlbnQgY2Fubm90IG5lc3QuICBDaGVj
ayB0aGlzIGZpcnN0LgogICAgIGlmIChzdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSBSZW5kZXJTdHls
ZTo6QkVGT1JFIHx8IHN0eWxlKCktPnN0eWxlVHlwZSgpID09IFJlbmRlclN0eWxlOjpBRlRFUikK
ICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIFJlbmRlclN0eWxlKiBwc2V1ZG8gPSBzdHlsZWRP
YmplY3QtPmdldFBzZXVkb1N0eWxlKHR5cGUpOwotICAgIFJlbmRlck9iamVjdCogY2hpbGQgPSBw
c2V1ZG9DaGlsZCh0eXBlKTsKKyAgICBSZW5kZXJTdHlsZSogcHNldWRvRWxlbWVudFN0eWxlID0g
c3R5bGVkT2JqZWN0LT5nZXRQc2V1ZG9TdHlsZSh0eXBlKTsKKyAgICBSZW5kZXJPYmplY3QqIGNo
aWxkID0gYmVmb3JlQWZ0ZXJDb250YWluZXIodHlwZSk7CiAKICAgICAvLyBXaGV0aGVyIG9yIG5v
dCB3ZSBjdXJyZW50bHkgaGF2ZSBnZW5lcmF0ZWQgY29udGVudCBhdHRhY2hlZC4KLSAgICBib29s
IG9sZENvbnRlbnRQcmVzZW50ID0gY2hpbGQgJiYgKGNoaWxkLT5zdHlsZSgpLT5zdHlsZVR5cGUo
KSA9PSB0eXBlKTsKKyAgICBib29sIG9sZENvbnRlbnRQcmVzZW50ID0gY2hpbGQ7CiAKICAgICAv
LyBXaGV0aGVyIG9yIG5vdCB3ZSBub3cgd2FudCBnZW5lcmF0ZWQgY29udGVudC4gIAotICAgIGJv
b2wgbmV3Q29udGVudFdhbnRlZCA9IHBzZXVkbyAmJiBwc2V1ZG8tPmRpc3BsYXkoKSAhPSBOT05F
OworICAgIGJvb2wgbmV3Q29udGVudFdhbnRlZCA9IHBzZXVkb0VsZW1lbnRTdHlsZSAmJiBwc2V1
ZG9FbGVtZW50U3R5bGUtPmRpc3BsYXkoKSAhPSBOT05FOwogCiAgICAgLy8gRm9yIDxxPjxwLz48
L3E+LCBpZiB0aGlzIG9iamVjdCBpcyB0aGUgaW5saW5lIGNvbnRpbnVhdGlvbiBvZiB0aGUgPHE+
LCB3ZSBvbmx5IHdhbnQgdG8gZ2VuZXJhdGUKICAgICAvLyA6YWZ0ZXIgY29udGVudCBhbmQgbm90
IDpiZWZvcmUgY29udGVudC4KQEAgLTI4Miw3ICsyOTUsNyBAQCB2b2lkIFJlbmRlckNvbnRhaW5l
cjo6dXBkYXRlUHNldWRvQ2hpbGRGCiAgICAgLy8gSWYgd2UgZG9uJ3Qgd2FudCBnZW5lcmF0ZWQg
Y29udGVudCBhbnkgbG9uZ2VyLCBvciBpZiB3ZSBoYXZlIGdlbmVyYXRlZCBjb250ZW50LCBidXQg
aXQncyBubyBsb25nZXIKICAgICAvLyBpZGVudGljYWwgdG8gdGhlIG5ldyBjb250ZW50IGRhdGEg
d2Ugd2FudCB0byBidWlsZCByZW5kZXIgb2JqZWN0cyBmb3IsIHRoZW4gd2UgbnVrZSBhbGwKICAg
ICAvLyBvZiB0aGUgb2xkIGdlbmVyYXRlZCBjb250ZW50LgotICAgIGlmICghbmV3Q29udGVudFdh
bnRlZCB8fCAob2xkQ29udGVudFByZXNlbnQgJiYgIWNoaWxkLT5zdHlsZSgpLT5jb250ZW50RGF0
YUVxdWl2YWxlbnQocHNldWRvKSkpIHsKKyAgICBpZiAoIW5ld0NvbnRlbnRXYW50ZWQgfHwgKG9s
ZENvbnRlbnRQcmVzZW50ICYmICFjaGlsZC0+c3R5bGUoKS0+Y29udGVudERhdGFFcXVpdmFsZW50
KHBzZXVkb0VsZW1lbnRTdHlsZSkpKSB7CiAgICAgICAgIC8vIE51a2UgdGhlIGNoaWxkLiAKICAg
ICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLT5zdHlsZSgpLT5zdHlsZVR5cGUoKSA9PSB0eXBlKSB7
CiAgICAgICAgICAgICBvbGRDb250ZW50UHJlc2VudCA9IGZhbHNlOwpAQCAtMjkxLDM1ICszMDQs
MzUgQEAgdm9pZCBSZW5kZXJDb250YWluZXI6OnVwZGF0ZVBzZXVkb0NoaWxkRgogICAgICAgICB9
CiAgICAgfQogCi0gICAgLy8gSWYgd2UgaGF2ZSBubyBwc2V1ZG8tc3R5bGUgb3IgaWYgdGhlIHBz
ZXVkbydzIGRpc3BsYXkgdHlwZSBpcyBOT05FLCB0aGVuIHdlCisgICAgLy8gSWYgd2UgaGF2ZSBu
byBwc2V1ZG8tZWxlbWVudCBzdHlsZSBvciBpZiB0aGUgcHNldWRvLWVsZW1lbnQgc3R5bGUncyBk
aXNwbGF5IHR5cGUgaXMgTk9ORSwgdGhlbiB3ZQogICAgIC8vIGhhdmUgbm8gZ2VuZXJhdGVkIGNv
bnRlbnQgYW5kIGNhbiBub3cgcmV0dXJuLgogICAgIGlmICghbmV3Q29udGVudFdhbnRlZCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGlzSW5saW5lRmxvdygpICYmICFwc2V1ZG8tPmlzRGlz
cGxheUlubGluZVR5cGUoKSkKKyAgICBpZiAoaXNJbmxpbmVGbG93KCkgJiYgIXBzZXVkb0VsZW1l
bnRTdHlsZS0+aXNEaXNwbGF5SW5saW5lVHlwZSgpKQogICAgICAgICAvLyBBY2NvcmRpbmcgdG8g
dGhlIENTUzIgc3BlYyAodGhlIGVuZCBvZiBzZWN0aW9uIDEyLjEpLCB0aGUgb25seSBhbGxvd2Vk
CiAgICAgICAgIC8vIGRpc3BsYXkgdmFsdWVzIGZvciB0aGUgcHNldWRvIHN0eWxlIGFyZSBOT05F
IGFuZCBJTkxJTkUgZm9yIGlubGluZSBmbG93cy4KICAgICAgICAgLy8gRklYTUU6IENTUzIuMSBs
aWZ0ZWQgdGhpcyByZXN0cmljdGlvbiwgYnV0IGJsb2NrIGRpc3BsYXkgdHlwZXMgd2lsbCBjcmFz
aC4KICAgICAgICAgLy8gRm9yIG5vdyB3ZSBhdCBsZWFzdCByZWxheCB0aGUgcmVzdHJpY3Rpb24g
dG8gYWxsb3cgYWxsIGlubGluZSB0eXBlcyBsaWtlIGlubGluZS1ibG9jawogICAgICAgICAvLyBh
bmQgaW5saW5lLXRhYmxlLgotICAgICAgICBwc2V1ZG8tPnNldERpc3BsYXkoSU5MSU5FKTsKKyAg
ICAgICAgcHNldWRvRWxlbWVudFN0eWxlLT5zZXREaXNwbGF5KElOTElORSk7CiAKICAgICBpZiAo
b2xkQ29udGVudFByZXNlbnQpIHsKICAgICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLT5zdHlsZSgp
LT5zdHlsZVR5cGUoKSA9PSB0eXBlKSB7CiAgICAgICAgICAgICAvLyBXZSBoYXZlIGdlbmVyYXRl
ZCBjb250ZW50IHByZXNlbnQgc3RpbGwuICBXZSB3YW50IHRvIHdhbGsgdGhpcyBjb250ZW50IGFu
ZCB1cGRhdGUgb3VyCi0gICAgICAgICAgICAvLyBzdHlsZSBpbmZvcm1hdGlvbiB3aXRoIHRoZSBu
ZXcgcHNldWRvIHN0eWxlLgotICAgICAgICAgICAgY2hpbGQtPnNldFN0eWxlKHBzZXVkbyk7Cisg
ICAgICAgICAgICAvLyBzdHlsZSBpbmZvcm1hdGlvbiB3aXRoIHRoZSBuZXcgcHNldWRvLWVsZW1l
bnQgc3R5bGUuCisgICAgICAgICAgICBjaGlsZC0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxl
KTsKIAogICAgICAgICAgICAgLy8gTm90ZSB0aGF0IGlmIHdlIGV2ZXIgc3VwcG9ydCBhZGRpdGlv
bmFsIHR5cGVzIG9mIGdlbmVyYXRlZCBjb250ZW50ICh3aGljaCBzaG91bGQgYmUgd2F5IG9mZgog
ICAgICAgICAgICAgLy8gaW4gdGhlIGZ1dHVyZSksIHRoaXMgY29kZSB3aWxsIG5lZWQgdG8gYmUg
cGF0Y2hlZC4KICAgICAgICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBnZW5DaGlsZCA9IGNoaWxk
LT5maXJzdENoaWxkKCk7IGdlbkNoaWxkOyBnZW5DaGlsZCA9IGdlbkNoaWxkLT5uZXh0U2libGlu
ZygpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGdlbkNoaWxkLT5pc1RleHQoKSkKLSAgICAgICAg
ICAgICAgICAgICAgLy8gR2VuZXJhdGVkIHRleHQgY29udGVudCBpcyBhIGNoaWxkIHdob3NlIHN0
eWxlIGFsc28gbmVlZHMgdG8gYmUgc2V0IHRvIHRoZSBwc2V1ZG8gc3R5bGUuCi0gICAgICAgICAg
ICAgICAgICAgIGdlbkNoaWxkLT5zZXRTdHlsZShwc2V1ZG8pOworICAgICAgICAgICAgICAgICAg
ICAvLyBHZW5lcmF0ZWQgdGV4dCBjb250ZW50IGlzIGEgY2hpbGQgd2hvc2Ugc3R5bGUgYWxzbyBu
ZWVkcyB0byBiZSBzZXQgdG8gdGhlIHBzZXVkby1lbGVtZW50IHN0eWxlLgorICAgICAgICAgICAg
ICAgICAgICBnZW5DaGlsZC0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKICAgICAgICAg
ICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgLy8gSW1hZ2VzIGdldCBhbiBlbXB0
eSBzdHlsZSB0aGF0IGluaGVyaXRzIGZyb20gdGhlIHBzZXVkby4KICAgICAgICAgICAgICAgICAg
ICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJTdHlsZTsK
LSAgICAgICAgICAgICAgICAgICAgc3R5bGUtPmluaGVyaXRGcm9tKHBzZXVkbyk7CisgICAgICAg
ICAgICAgICAgICAgIHN0eWxlLT5pbmhlcml0RnJvbShwc2V1ZG9FbGVtZW50U3R5bGUpOwogICAg
ICAgICAgICAgICAgICAgICBnZW5DaGlsZC0+c2V0U3R5bGUoc3R5bGUpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0KQEAgLTMyNywyOCArMzQwLDI4IEBAIHZvaWQgUmVuZGVyQ29u
dGFpbmVyOjp1cGRhdGVQc2V1ZG9DaGlsZEYKICAgICAgICAgcmV0dXJuOyAvLyBXZSd2ZSB1cGRh
dGVkIHRoZSBnZW5lcmF0ZWQgY29udGVudC4gVGhhdCdzIGFsbCB3ZSBuZWVkZWQgdG8gZG8uCiAg
ICAgfQogICAgIAotICAgIFJlbmRlck9iamVjdCogaW5zZXJ0QmVmb3JlID0gKHR5cGUgPT0gUmVu
ZGVyU3R5bGU6OkJFRk9SRSkgPyBjaGlsZCA6IDA7CisgICAgUmVuZGVyT2JqZWN0KiBpbnNlcnRC
ZWZvcmUgPSAodHlwZSA9PSBSZW5kZXJTdHlsZTo6QkVGT1JFKSA/IGZpcnN0Q2hpbGQoKSA6IDA7
CiAKICAgICAvLyBHZW5lcmF0ZWQgY29udGVudCBjb25zaXN0cyBvZiBhIHNpbmdsZSBjb250YWlu
ZXIgdGhhdCBob3VzZXMgbXVsdGlwbGUgY2hpbGRyZW4gKHNwZWNpZmllZAotICAgIC8vIGJ5IHRo
ZSBjb250ZW50IHByb3BlcnR5KS4gIFRoaXMgcHNldWRvIGNvbnRhaW5lciBnZXRzIHRoZSBwc2V1
ZG8gc3R5bGUgc2V0IG9uIGl0LgotICAgIFJlbmRlck9iamVjdCogcHNldWRvQ29udGFpbmVyID0g
MDsKKyAgICAvLyBieSB0aGUgY29udGVudCBwcm9wZXJ0eSkuICBUaGlzIGdlbmVyYXRlZCBjb250
ZW50IGNvbnRhaW5lciBnZXRzIHRoZSBwc2V1ZG8tZWxlbWVudCBzdHlsZSBzZXQgb24gaXQuCisg
ICAgUmVuZGVyT2JqZWN0KiBnZW5lcmF0ZWRDb250ZW50Q29udGFpbmVyID0gMDsKICAgICAKICAg
ICAvLyBXYWxrIG91ciBsaXN0IG9mIGdlbmVyYXRlZCBjb250ZW50IGFuZCBjcmVhdGUgcmVuZGVy
IG9iamVjdHMgZm9yIGVhY2guCi0gICAgZm9yIChjb25zdCBDb250ZW50RGF0YSogY29udGVudCA9
IHBzZXVkby0+Y29udGVudERhdGEoKTsgY29udGVudDsgY29udGVudCA9IGNvbnRlbnQtPm1fbmV4
dCkgeworICAgIGZvciAoY29uc3QgQ29udGVudERhdGEqIGNvbnRlbnQgPSBwc2V1ZG9FbGVtZW50
U3R5bGUtPmNvbnRlbnREYXRhKCk7IGNvbnRlbnQ7IGNvbnRlbnQgPSBjb250ZW50LT5tX25leHQp
IHsKICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IDA7CiAgICAgICAgIHN3aXRjaCAo
Y29udGVudC0+bV90eXBlKSB7CiAgICAgICAgICAgICBjYXNlIENPTlRFTlRfTk9ORToKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9URVhUOgogICAgICAg
ICAgICAgICAgIHJlbmRlcmVyID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJUZXh0RnJhZ21l
bnQoZG9jdW1lbnQoKSAvKiBhbm9ueW1vdXMgb2JqZWN0ICovLCBjb250ZW50LT5tX2NvbnRlbnQu
bV90ZXh0KTsKLSAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvKTsKKyAg
ICAgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRvRWxlbWVudFN0eWxlKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9PQkpFQ1Q6CiAg
ICAgICAgICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGNvbnRlbnQtPm1f
Y29udGVudC5tX29iamVjdCkKICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc291cmNlLT50eXBl
KCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlbmRlckltYWdlKiBpbWFnZSA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVySW1h
Z2UoZG9jdW1lbnQoKSk7IC8vIGFub255bW91cyBvYmplY3QKICAgICAgICAgICAgICAgICAgICAg
ICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG5ldyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyU3R5bGU7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZS0+aW5oZXJpdEZyb20ocHNldWRvKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHN0eWxlLT5pbmhlcml0RnJvbShwc2V1ZG9FbGVtZW50U3R5
bGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UtPnNldFN0eWxlKHN0eWxlKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGltYWdlLT5zZXRDYWNoZWRJbWFnZShzdGF0aWNfY2FzdDxD
YWNoZWRJbWFnZSo+KHJlc291cmNlKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZS0+
c2V0SXNBbm9ueW1vdXNJbWFnZSh0cnVlKTsKQEAgLTM1NywyMyArMzcwLDM4IEBAIHZvaWQgUmVu
ZGVyQ29udGFpbmVyOjp1cGRhdGVQc2V1ZG9DaGlsZEYKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIGNhc2UgQ09OVEVOVF9DT1VOVEVSOgogICAgICAgICAgICAgICAgIHJlbmRl
cmVyID0gbmV3IChyZW5kZXJBcmVuYSgpKSBSZW5kZXJDb3VudGVyKGRvY3VtZW50KCksICpjb250
ZW50LT5tX2NvbnRlbnQubV9jb3VudGVyKTsKLSAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0
U3R5bGUocHNldWRvKTsKKyAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5bGUocHNldWRv
RWxlbWVudFN0eWxlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChyZW5kZXJlcikgewotICAgICAgICAgICAgaWYgKCFwc2V1ZG9Db250YWluZXIpCi0g
ICAgICAgICAgICAgICAgcHNldWRvQ29udGFpbmVyID0gUmVuZGVyRmxvdzo6Y3JlYXRlQW5vbnlt
b3VzRmxvdyhkb2N1bWVudCgpLCBwc2V1ZG8pOyAvLyBhbm9ueW1vdXMgYm94Ci0gICAgICAgICAg
ICBwc2V1ZG9Db250YWluZXItPmFkZENoaWxkKHJlbmRlcmVyKTsKKyAgICAgICAgICAgIGlmICgh
Z2VuZXJhdGVkQ29udGVudENvbnRhaW5lcikgeworICAgICAgICAgICAgICAgIC8vIE1ha2UgYSBn
ZW5lcmF0ZWQgYm94IHRoYXQgbWlnaHQgYmUgYW55IGRpc3BsYXkgdHlwZSBub3cgdGhhdCB3ZSBh
cmUgYWJsZSB0byBkcmlsbCBkb3duIGludG8gY2hpbGRyZW4KKyAgICAgICAgICAgICAgICAvLyB0
byBmaW5kIHRoZSBvcmlnaW5hbCBjb250ZW50IHByb3Blcmx5LgorICAgICAgICAgICAgICAgIGdl
bmVyYXRlZENvbnRlbnRDb250YWluZXIgPSBSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdChkb2N1
bWVudCgpLCBwc2V1ZG9FbGVtZW50U3R5bGUpOworICAgICAgICAgICAgICAgIGdlbmVyYXRlZENv
bnRlbnRDb250YWluZXItPnNldFN0eWxlKHBzZXVkb0VsZW1lbnRTdHlsZSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBnZW5lcmF0ZWRDb250ZW50Q29udGFpbmVyLT5hZGRDaGlsZChyZW5k
ZXJlcik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBBZGQgdGhlIHBzZXVkbyBhZnRlciB3
ZSd2ZSBpbnN0YWxsZWQgYWxsIG91ciBjb250ZW50IHNvIHRoYXQgYWRkQ2hpbGQgd2lsbCBiZSBh
YmxlIHRvIGZpbmQgdGhlIHRleHQKICAgICAvLyBpbnNpZGUgdGhlIGlubGluZSBmb3IgZS5nLiwg
Zmlyc3QtbGV0dGVyIHN0eWxpbmcuCi0gICAgaWYgKHBzZXVkb0NvbnRhaW5lcikKLSAgICAgICAg
YWRkQ2hpbGQocHNldWRvQ29udGFpbmVyLCBpbnNlcnRCZWZvcmUpOworICAgIGlmIChnZW5lcmF0
ZWRDb250ZW50Q29udGFpbmVyKQorICAgICAgICBhZGRDaGlsZChnZW5lcmF0ZWRDb250ZW50Q29u
dGFpbmVyLCBpbnNlcnRCZWZvcmUpOwogfQogCitib29sIFJlbmRlckNvbnRhaW5lcjo6aXNBZnRl
ckNvbnRlbnQoUmVuZGVyT2JqZWN0KiBjaGlsZCkgY29uc3QKK3sKKyAgICBpZiAoIWNoaWxkKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5zdHlsZVR5cGUo
KSAhPSBSZW5kZXJTdHlsZTo6QUZURVIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBU
ZXh0IG5vZGVzIGRvbid0IGhhdmUgdGhlaXIgb3duIHN0eWxlcywgc28gaWdub3JlIHRoZSBzdHls
ZSBvbiBhIHRleHQgbm9kZS4KKyAgICBpZiAoY2hpbGQtPmlzVGV4dCgpICYmICFjaGlsZC0+aXNC
UigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CiAKIHZvaWQg
UmVuZGVyQ29udGFpbmVyOjphcHBlbmRDaGlsZE5vZGUoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwg
Ym9vbCBmdWxsQXBwZW5kKQogewpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29udGFp
bmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29udGFpbmVyLmgJ
KHJldmlzaW9uIDIxMTczKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29udGFpbmVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU0LDkgKzU0LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVMZWZ0b3ZlckFub255bW91c0JveGVzKCk7CiAKLSAgICBSZW5kZXJPYmplY3Qq
IHBzZXVkb0NoaWxkKFJlbmRlclN0eWxlOjpQc2V1ZG9JZCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVBzZXVkb0NoaWxkKFJlbmRlclN0eWxlOjpQc2V1ZG9JZCk7Ci0gICAgdm9pZCB1
cGRhdGVQc2V1ZG9DaGlsZEZvck9iamVjdChSZW5kZXJTdHlsZTo6UHNldWRvSWQsIFJlbmRlck9i
amVjdCopOworICAgIFJlbmRlck9iamVjdCogYmVmb3JlQWZ0ZXJDb250YWluZXIoUmVuZGVyU3R5
bGU6OlBzZXVkb0lkKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmVmb3JlQWZ0ZXJDb250ZW50
KFJlbmRlclN0eWxlOjpQc2V1ZG9JZCk7CisgICAgdm9pZCB1cGRhdGVCZWZvcmVBZnRlckNvbnRl
bnRGb3JDb250YWluZXIoUmVuZGVyU3R5bGU6OlBzZXVkb0lkLCBSZW5kZXJDb250YWluZXIqKTsK
KyAgICBib29sIGlzQWZ0ZXJDb250ZW50KFJlbmRlck9iamVjdCogY2hpbGQpIGNvbnN0OwogCiAg
ICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JDb29yZGluYXRlcyhpbnQgeCwg
aW50IHkpOwogCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlzaW9uIDIx
MTczKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjYsOCArNjYsMTAgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OnNldFN0eWxlKFJlbmRlclN0
eWxlKgogICAgIG1fbGluZUhlaWdodCA9IC0xOwogCiAgICAgLy8gVXBkYXRlIHBzZXVkb3MgZm9y
IDpiZWZvcmUgYW5kIDphZnRlciBub3cuCi0gICAgdXBkYXRlUHNldWRvQ2hpbGQoUmVuZGVyU3R5
bGU6OkJFRk9SRSk7Ci0gICAgdXBkYXRlUHNldWRvQ2hpbGQoUmVuZGVyU3R5bGU6OkFGVEVSKTsK
KyAgICBpZiAoIWlzQW5vbnltb3VzKCkpIHsKKyAgICAgICAgdXBkYXRlQmVmb3JlQWZ0ZXJDb250
ZW50KFJlbmRlclN0eWxlOjpCRUZPUkUpOworICAgICAgICB1cGRhdGVCZWZvcmVBZnRlckNvbnRl
bnQoUmVuZGVyU3R5bGU6OkFGVEVSKTsKKyAgICB9CiB9CiAKIGJvb2wgUmVuZGVySW5saW5lOjpp
c0lubGluZUNvbnRpbnVhdGlvbigpIGNvbnN0CkBAIC0xMDgsMTAgKzExMCwxMCBAQCB2b2lkIFJl
bmRlcklubGluZTo6YWRkQ2hpbGRUb0Zsb3coUmVuZGVyCiAgICAgICAgIHNldENvbnRpbnVhdGlv
bihuZXdCb3gpOwogCiAgICAgICAgIC8vIFNvbWVvbmUgbWF5IGhhdmUgcHV0IGEgPHA+IGluc2lk
ZSBhIDxxPiwgY2F1c2luZyBhIHNwbGl0LiAgV2hlbiB0aGlzIGhhcHBlbnMsIHRoZSA6YWZ0ZXIg
Y29udGVudAotICAgICAgICAvLyBoYXMgdG8gbW92ZSBpbnRvIHRoZSBpbmxpbmUgY29udGludWF0
aW9uLiAgQ2FsbCB1cGRhdGVQc2V1ZG9DaGlsZCB0byBlbnN1cmUgdGhhdCBvdXIgOmFmdGVyCisg
ICAgICAgIC8vIGhhcyB0byBtb3ZlIGludG8gdGhlIGlubGluZSBjb250aW51YXRpb24uICBDYWxs
IHVwZGF0ZUJlZm9yZUFmdGVyQ29udGVudCB0byBlbnN1cmUgdGhhdCBvdXIgOmFmdGVyCiAgICAg
ICAgIC8vIGNvbnRlbnQgZ2V0cyBwcm9wZXJseSBkZXN0cm95ZWQuCiAgICAgICAgIGJvb2wgaXNM
YXN0Q2hpbGQgPSAoYmVmb3JlQ2hpbGQgPT0gbGFzdENoaWxkKCkpOwotICAgICAgICB1cGRhdGVQ
c2V1ZG9DaGlsZChSZW5kZXJTdHlsZTo6QUZURVIpOworICAgICAgICB1cGRhdGVCZWZvcmVBZnRl
ckNvbnRlbnQoUmVuZGVyU3R5bGU6OkFGVEVSKTsKICAgICAgICAgaWYgKGlzTGFzdENoaWxkICYm
IGJlZm9yZUNoaWxkICE9IGxhc3RDaGlsZCgpKQogICAgICAgICAgICAgYmVmb3JlQ2hpbGQgPSAw
OyAvLyBXZSBkZXN0cm95ZWQgdGhlIGxhc3QgY2hpbGQsIHNvIG5vdyB3ZSBuZWVkIHRvIHVwZGF0
ZSBvdXIgaW5zZXJ0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBvaW50IHRv
IGJlIDAuICBJdCdzIGp1c3QgYSBzdHJhaWdodCBhcHBlbmQgbm93LgpAQCAtMTgxLDkgKzE4Myw5
IEBAIHZvaWQgUmVuZGVySW5saW5lOjpzcGxpdElubGluZXMoUmVuZGVyQmwKICAgICAgICAgICAg
IGNsb25lLT5zZXRDb250aW51YXRpb24ob2xkQ29udCk7CiAKICAgICAgICAgICAgIC8vIFNvbWVv
bmUgbWF5IGhhdmUgaW5kaXJlY3RseSBjYXVzZWQgYSA8cT4gdG8gc3BsaXQuICBXaGVuIHRoaXMg
aGFwcGVucywgdGhlIDphZnRlciBjb250ZW50Ci0gICAgICAgICAgICAvLyBoYXMgdG8gbW92ZSBp
bnRvIHRoZSBpbmxpbmUgY29udGludWF0aW9uLiAgQ2FsbCB1cGRhdGVQc2V1ZG9DaGlsZCB0byBl
bnN1cmUgdGhhdCB0aGUgaW5saW5lJ3MgOmFmdGVyCisgICAgICAgICAgICAvLyBoYXMgdG8gbW92
ZSBpbnRvIHRoZSBpbmxpbmUgY29udGludWF0aW9uLiAgQ2FsbCB1cGRhdGVCZWZvcmVBZnRlckNv
bnRlbnQgdG8gZW5zdXJlIHRoYXQgdGhlIGlubGluZSdzIDphZnRlcgogICAgICAgICAgICAgLy8g
Y29udGVudCBnZXRzIHByb3Blcmx5IGRlc3Ryb3llZC4KLSAgICAgICAgICAgIGN1cnItPnVwZGF0
ZVBzZXVkb0NoaWxkKFJlbmRlclN0eWxlOjpBRlRFUik7CisgICAgICAgICAgICBjdXJyLT51cGRh
dGVCZWZvcmVBZnRlckNvbnRlbnQoUmVuZGVyU3R5bGU6OkFGVEVSKTsKIAogICAgICAgICAgICAg
Ly8gTm93IHdlIG5lZWQgdG8gdGFrZSBhbGwgb2YgdGhlIGNoaWxkcmVuIHN0YXJ0aW5nIGZyb20g
dGhlIGZpcnN0IGNoaWxkCiAgICAgICAgICAgICAvLyAqYWZ0ZXIqIGN1cnJDaGlsZCBhbmQgYXBw
ZW5kIHRoZW0gYWxsIHRvIHRoZSBjbG9uZS4KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcAkocmV2aXNpb24gMjExNzMpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCwxMyArODgsMTQgQEAgdm9pZCBSZW5kZXJPYmplY3Q6
Om9wZXJhdG9yIGRlbGV0ZSh2b2lkKgogCiBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdDo6Y3Jl
YXRlT2JqZWN0KE5vZGUqIG5vZGUsIFJlbmRlclN0eWxlKiBzdHlsZSkKIHsKLSAgICBSZW5kZXJB
cmVuYSogYXJlbmEgPSBub2RlLT5kb2N1bWVudCgpLT5yZW5kZXJBcmVuYSgpOworICAgIERvY3Vt
ZW50KiBkb2MgPSBub2RlLT5kb2N1bWVudCgpOworICAgIFJlbmRlckFyZW5hKiBhcmVuYSA9IGRv
Yy0+cmVuZGVyQXJlbmEoKTsKIAogICAgIC8vIE1pbmltYWwgc3VwcG9ydCBmb3IgY29udGVudCBw
cm9wZXJ0aWVzIHJlcGxhY2luZyBhbiBlbnRpcmUgZWxlbWVudC4KICAgICAvLyBXb3JrcyBvbmx5
IGlmIHdlIGhhdmUgZXhhY3RseSBvbmUgcGllY2Ugb2YgY29udGVudCBhbmQgaXQncyBhIFVSTC4K
ICAgICAvLyBPdGhlcndpc2UgYWN0cyBhcyBpZiB3ZSBkaWRuJ3Qgc3VwcG9ydCB0aGlzIGZlYXR1
cmUuCiAgICAgY29uc3QgQ29udGVudERhdGEqIGNvbnRlbnREYXRhID0gc3R5bGUtPmNvbnRlbnRE
YXRhKCk7Ci0gICAgaWYgKGNvbnRlbnREYXRhICYmICFjb250ZW50RGF0YS0+bV9uZXh0ICYmIGNv
bnRlbnREYXRhLT5tX3R5cGUgPT0gQ09OVEVOVF9PQkpFQ1QpIHsKKyAgICBpZiAoY29udGVudERh
dGEgJiYgIWNvbnRlbnREYXRhLT5tX25leHQgJiYgY29udGVudERhdGEtPm1fdHlwZSA9PSBDT05U
RU5UX09CSkVDVCAmJiBkb2MgIT0gbm9kZSkgewogICAgICAgICBSZW5kZXJJbWFnZSogaW1hZ2Ug
PSBuZXcgKGFyZW5hKSBSZW5kZXJJbWFnZShub2RlKTsKICAgICAgICAgaW1hZ2UtPnNldFN0eWxl
KHN0eWxlKTsKICAgICAgICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGNvbnRlbnRE
YXRhLT5tX2NvbnRlbnQubV9vYmplY3QpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3Bw
CShyZXZpc2lvbiAyMTE3MykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcmVz
ZXRTZWN0aW9uUG9pbnRlcklmCiAKIHZvaWQgUmVuZGVyVGFibGU6OmFkZENoaWxkKFJlbmRlck9i
amVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiB7CisgICAgLy8gTWFrZSBz
dXJlIHdlIGRvbid0IGFwcGVuZCB0aGluZ3MgYWZ0ZXIgOmFmdGVyLWdlbmVyYXRlZCBjb250ZW50
IGlmIHdlIGhhdmUgaXQuCisgICAgaWYgKCFiZWZvcmVDaGlsZCAmJiBpc0FmdGVyQ29udGVudChs
YXN0Q2hpbGQoKSkpCisgICAgICAgIGJlZm9yZUNoaWxkID0gbGFzdENoaWxkKCk7CisKICAgICBi
b29sIHdyYXBJbkFub255bW91c1NlY3Rpb24gPSB0cnVlOwogICAgIGJvb2wgaXNUYWJsZUVsZW1l
bnQgPSBlbGVtZW50KCkgJiYgZWxlbWVudCgpLT5oYXNUYWdOYW1lKHRhYmxlVGFnKTsKIApJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcAkocmV2aXNpb24gMjExNzMpCisrKyBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYz
LDYgKzYzLDEwIEBAIHZvaWQgUmVuZGVyVGFibGVSb3c6OnNldFN0eWxlKFJlbmRlclN0eWwKIAog
dm9pZCBSZW5kZXJUYWJsZVJvdzo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVy
T2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKKyAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgYXBwZW5k
IHRoaW5ncyBhZnRlciA6YWZ0ZXItZ2VuZXJhdGVkIGNvbnRlbnQgaWYgd2UgaGF2ZSBpdC4KKyAg
ICBpZiAoIWJlZm9yZUNoaWxkICYmIGlzQWZ0ZXJDb250ZW50KGxhc3RDaGlsZCgpKSkKKyAgICAg
ICAgYmVmb3JlQ2hpbGQgPSBsYXN0Q2hpbGQoKTsKKwogICAgIGJvb2wgaXNUYWJsZVJvdyA9IGVs
ZW1lbnQoKSAmJiBlbGVtZW50KCktPmhhc1RhZ05hbWUodHJUYWcpOwogICAgIAogICAgIGlmICgh
Y2hpbGQtPmlzVGFibGVDZWxsKCkpIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlU2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVTZWN0aW9uLmNwcAkocmV2aXNpb24gMjExNzMpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZVNlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5MiwxMCBAQCB2b2lk
IFJlbmRlclRhYmxlU2VjdGlvbjo6c2V0U3R5bGUoUmVuZGVyCiAKIHZvaWQgUmVuZGVyVGFibGVT
ZWN0aW9uOjphZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9y
ZUNoaWxkKQogeworICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBhcHBlbmQgdGhpbmdzIGFmdGVy
IDphZnRlci1nZW5lcmF0ZWQgY29udGVudCBpZiB3ZSBoYXZlIGl0LgorICAgIGlmICghYmVmb3Jl
Q2hpbGQgJiYgaXNBZnRlckNvbnRlbnQobGFzdENoaWxkKCkpKQorICAgICAgICBiZWZvcmVDaGls
ZCA9IGxhc3RDaGlsZCgpOworCiAgICAgYm9vbCBpc1RhYmxlU2VjdGlvbiA9IGVsZW1lbnQoKSAm
JiAoZWxlbWVudCgpLT5oYXNUYWdOYW1lKHRoZWFkVGFnKSB8fCBlbGVtZW50KCktPmhhc1RhZ05h
bWUodGJvZHlUYWcpIHx8IGVsZW1lbnQoKS0+aGFzVGFnTmFtZSh0Zm9vdFRhZykpOwogCiAgICAg
aWYgKCFjaGlsZC0+aXNUYWJsZVJvdygpKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
ZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJlZm9yZS1jb250ZW50LWV4cGVjdGVkLnBuZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpz
dm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy1nZW5lcmF0ZWQtY29udGVudC90YWJsZS1jZWxsLWJl
Zm9yZS1jb250ZW50LWV4cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUK
ICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFB
eUFBQUFKWUNBWUFBQUNhZG9Kd0FBQVlUVWxFUVZSNG5PM2RlWXdrWmYzSDhlOXlnL0FUCkFpc0lS
RURrRnZFQUZRaWlycUlncUZGUmduaUxLQnFVd3lNa0tuaHhpQmNrSWtaTmtJaUFGOTdJZlVVT0VV
aVdBS0tvRVVYa0VPVFkKWlFlVzUvZkhrODNNRHRNejA3czdId0w3ZWlWa3A2ZTZxcDZxTHBKK2Qx
ZlZ6R3F0dFFJQUFBaFk0WWtlQUFBQXNQd1FJQUFBUUl3QQpBUUFBWWdRSUFBQVFJMEFBQUlBWUFR
SUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0llVklIeUlNUFZ0MTIyOHd0ZjhHQ3F0Ly9mdkQwCmhR
dXJicjU1OG1WY2MwM1ZvNDh1MjNFOUdkMXpUOVdmLzd6c2xqZlZhelBNdk10NmJFdml6anVyTHJ5
dzZyLy9mZnkwQngrcyt0ZS8KQnMrN05Qc0NBQ0J0eWdENTdXK3J0dDY2YXRhc3FrMDJxZnJkNzBh
bjNYVlgxU2MrMGFkOTZFTlZkOTg5azBOZDNPbW5WNjIvZnRWcApwODNNOHErNnFtckhIYXZlOUth
SnAvL2hEMVhQZjM3VkJ6NHdlQm0zM2xxMTAwNVZGMXd3TTJOOE12bk1aNnJlK01abHM2eXBYcHRo
CjUxMldZMXNTMy81MjFSbG5WRjF5U2RWMjIvV2dXT1NVVTZyV1hiZnFSeithZU42bDJSY0FBRStF
S1FOa3p6MnJMcjIweDhlOGVmME4KOVNLeloxZHR1R0hWcHo1VmRmTEpWZXV0TjVORFhkeisrL2N4
elpTWHZLVHEzZThlUEgybm5hcGUvdktxbFZjZS9Kek5ONis2K3VxcQpPWE9XYml3TEZsUmRkTkhT
TGVPSjlyblBWWjE5OXJKWjFsU3Z6YkR6THN1eERldWhoNm9PTzZ6cUl4K3BPdnJvcXAvOHBHclZW
VWVuCkgzUlExVHJyREo1L2FmYkZkQ3pMWSsrcGNCd0RBRXR2V3FkZ1BlTVpWVC85YWRYOTkvYzNT
b3Y4NHg5VkYxOWNkY3d4TXpTNmNWcGIKL1BIS0svZHZYMmJLS3F0TXZQekhIdXYvcnJSUzFRcFQ3
TUdkZHVyUEc4Ylk3WHpra2FwM3ZLUHFzc3VHbTI4bURITXEyZml4ckx0dQoxUlpiREwvT1FkczA2
TFdaanZIekx1bllsb1c1YzZ0R1JrYVBvMTEyZWZ4enBqck9sMlpmVEdhWVl5KzVMQURneVczYTE0
Qzg4SVZWCm4veGsxUTkvMkQrbHJhbzY5TkNxRTA1NC9ITWZmTENIeXVHSDkxTmJEam1rYXY3OFB1
M01NNnMyMnFqcXBKUDY0elBPcU5wcXE2b1AKZm5Ed3VzODhzMy9EY3Z6eGozK0Q5dGhqL1JTYVp6
MnI2cm5QcmZyYjMyWnVIUFBtVlIxOGNOVVh2dENmZDgwMWc1Lzc2S05Wdi9oRgoxZXRmWDNYdXVk
TmIzMFRiK2ZXdjkrV2NmWGJWdTk3VlB6R2Y3djc1ejMvNnArdTc3MTcxb2hkVlhYbmw5S2FOZDhF
RlZjY2RWL1hWCnIxYnR1bXZWRFRjTWZ1NUVZL24zdi92am5YZnVqeSs2cUdxLy9hcU9PS0xxdTkv
dDN4UnR2ZlhpcjkyOGVmMjErL3pucS9iWW96Ly8KdU9NR3Y0RWRabnZHV3BLeERiT3V5WTdCNzN5
bjZxaWorckh5NFEvM2RRNHliMTZmdnY3NmZaMDMzVFR4ODZaem5FMTMvQk1kZTRQbQovZU1mKyt1
MDNYYjlRNGsvL3JGcWh4MnFUajExOExJQWdPVlVHOExERDdlMjFWYXR6WjdkMmxlKzB0b3h4MHo4
dkplOXJMWHZmNy8vClBETFMyb3RmM05yZWU0OU8zMmlqMXI3NHhkSEhlK3pSMnI3N1RyeXNSeDVw
YmNjZFJ4OGZlbWhyQ3hmMm41LzN2TloyMktHMTg4OXYKN2JiYld0dDY2OWJlLy81bE40NFRUMnh0
Z3cxR0g3L3VkYTJkY1ViL2VlSEMxamJjc0xWWHYzcmljVC93UUI5WFZXdS8rYzNVNjV0cwpPemZk
dExVdmZXbTQvZlBvbzYzdHVXZHI5OS9mSHg5MFVIL2Q3cjEzOG1uakxWalF4MzNoaGYzeFVVZTE5
dVkzRHplV08rOXM3WU1mCmJHMjk5ZnJ2NzdpanRTMjM3Sy9YTDMvWjJ0Ly8zbytyQXc4Y25mZWtr
MW83L1BEKzg5eTVmVDhlZDF4L2JtdUx2emJEYk0vNGVZY2QKMjdEcm11b1lQT3VzMWxaWVllSjVG
OWw0NDlhMjI2NjFYL3lpdnc2YmJ0cmFzNS9kOS9mNDdXbHQ4dU5zMlBHUFBmYW1tbmZSOGY3Ygoz
L1pqL3F0Zkhid3NBR0Q1TmRSZHNGWmR0VjhVZTlkZC9kUGhpVDZ4UGVlY3Fzc3Y3NThpVi9YVFI5
NzczcXBmL2FycWlpdjY3MVpmCmZmRlRSdFpZWS9BcEpQZmRWM1g5OVZXLytVMS9mT0NCaTUrV3Mv
ZmUvUnFMalRldWVzVXJSdTlLdGF6SGNlV1ZmUXl2ZVUxL3ZNSUsKVlh2dE5mRnpxNnJXWExOcXQ5
MzZ6NHZHTzluNnB0ck9ZZmZQV1dmMWZ5KzdyTytMWno2enYyNlhYanI1dFBGV1hybGY0THpERHYz
eAp1dXNPL3ZSOTBGaG16NjdhZnZ2UjdWbC8vZjdOd3ZiYjk5ZHZrMDJxWHZuS3FqLzlhWFJacDUz
VzExWFZ2OW1hUGJ2L1BORjFQOE5zCnozakRqbTJZZFUzbkdKeXVkNzZ6YXA5OStqRis3TEZWZi8x
cjFmbm5UL3pjeVk2ekpkbFgwNTEzenB5cXQ3MnQ2c2dqKyt0M3lDR0QKbHdVQUxMK0d2ZzN2N3J0
WHJiWmFmMU00MGJVTlYxL2QzOVNOdlRqN3hTL3UvMTUzM2ZBRFhHKzkvZ1o0bjMzNmFTcWJibHEx
NG9xagowOGUrb1Zsbm5YN0t5MHlNNCtLTCs2azRhNjg5K3JzMTE1ejhEZFdpYWRONTB6WE1kazVu
dml1dTZHL2dWMW1sLzdmcnJsWG5uZGRQCm01bHMya1RiY09LSlBTNk9PNjdmcWVtQkI0YmZobG16
RnQrRzhZL1hXcXZxNFljWGZ6ejJUZm9HRy9RTHJpY3l6UFpNWkppeERiT3UKWlhrTVB2M3Bveisv
OUtYOTN5VzVkZkNTN0t0RisySTY4NTV3UXRVdHQvVGZqVDEreHk4TEFGaCtEWGw1OU5UbXpldTM0
MzN3d2Y0Rwp2YXAvbXJ6U1NrdCszdmZwcC9lN2JYM2pHMVhYWHR0dkJmeC8vNWNkeHovL09mRnRo
cGZsRzZvbDJjNUI4OTE5ZDkvV1Y3M3E4YytmCmJOcEVUam1sZjVML3ZlLzE2eGF1dm5yWmI4TjRo
eDdhNys0MGQyNy81bTJOTlhyOFRtVFk3VmthdzZ4ckp2NWZxT3JmeXF5MVZ2OXYKV0V1enI2WXo3
OG9yOStnNi92aXE5NzF2OFdBSEFLaWFnVDlFdVBYVy9RLzAvZUVQbzcrNzg4NStvZTAyMjR6K2J0
R2RwS1p5eHgxOQovcTk5clovMk1YZHV2N0EyUFk0Tk4reW5tOXh5eS9TZVA4aWc5VTIxbllOQ1o5
QjhtMjNXUDUwZSs2MUNhLzJibk1tbWpYZmpqZjNDCit4Tk9tUHlXdzlQWmhtSHN0VmMvaGV1Y2Mv
ckYvcFBkdm5XWTdWbGF3NnhydXNmZ3NHNi92WDhMOVlJWERIN09vT05zU2ZiVm9tTnYKT3ZOKyt0
UDlGTHhacy9yUGc1WUZBQ3kvaGc2UWhRdjdiVVB2dVdmaTZmdnUyNi9IT08rODBkOWRjMDEvTS9i
YTEvYkgyMi9mLzREYQp5RWgvTTNYcnJZT1hkODg5L2M0K1ZmMHVPMjk0dytpbnlmUG05ZjhXbVQ5
LzlBNUR5MkljSXlQOTlxRlYvZHoybFZhcSt0YTNScWZmCmZIUC9WSGpod3NIN2E2ekoxamZaZHE2
OWR2OEdwcXJxM251bnQzL2UvdloreDZLRER1cnozSGxuLzNzWFcyd3grYlR4YnJxcHY1bTkKOGNh
K25aZGMwdCtBOXN1TnB6ZVdxdjQ2elo4L09zL0l5T0p2a3VmTlczdy9IbjEwMVpaYjl1c0k5dCsv
WDljdzF0alhacGp0R1QvdgpzR01iWmwzVE9RYnZ2Nyt2YSt4eFBKR3grK2JDQy9zZHRSWmRsek4r
ZXlZN3pvYmRWMk9QdmIzM25uemVjODdwUDIrelRUOWQ3K1NUCkZ6L1ZiUHh4dkdCQjFaZStOUG83
QUdBNU1jd1Y2OWRkMTlwaGgvVzNucXV2M3U5S2RQdnRqMy9ldGRlMnR1MjJyWDM1eS8xdU9QdnQK
MTlwTk40MU92K0NDMXRaZHQ5L0o1K01mNzNjaG1qTm45RTVMWTkxd1EydWJiOTdhS2FlMDl2T2Z0
M2J3d2YzdVB6LytjYjk3MExiYgo5bkZkZTIxcjIyelQya29yOWJzRkxlMDRycnFxdFJlOXFHL3JO
Ny9aN3diMWd4KzB0dFphZlQxdmZXdHIrK3pUMmk2NzlOOVBaR1JrCjhidGdUYmErUWR2WldtdEhI
dG5hckZtdHZmZTlyZjNuUDlQYlA2MjFkdkxKcmEyNmFwOTM5dXpXZnZhejBma21temJXUXcrMTl2
em4KdDdibW1xMjk1ejJ0L2ZyWHJhMnhSbXNISE5EM3lYVEdjdFZWcmUyOGM5OFhYL3RhdjF2UzJt
djN1NGhkY1VWcjExL2Yybk9lMDhkego3cmw5V1IvNzJLTEVhVzNGRlZ0YmYvMit2QVVMSm41dHBy
czk0K2U5L1BMaHh6YmRkYlUyK1RGNDVaV3Q3YlpiWC9jUlI3UjI2NjBUCkwrT3puMjF0KysxYk8v
YllmdWU1ajM2MDM0bHFvdTFac0dEcS83K0dHZi80WTIvUXZCZGUyTy9FZGYzMS9mR05OL2JYYmJQ
TitoZ24KV3RhTk4vYkhwNTQ2ZVAwQXdGUFByTlptNXMvWHRWYjFsNy8wdTBWdHZ2bmpwNCtNOUU5
MVYxKzlmM283NlBTZXh4N3J5N2p2dnY2YwpwejN0aVJuSElnc1g5azl2MTF1dmZ4T3cybXFEbnpz
eTBxOWZ1UHJxMGI4Z1AyaDlVMjNuM1hkUC9KZm1wNXB2WktUcXR0djZkUVBqCmJ4b3cyYlR4NXM4
Zi9SWmkwSDVhMnRkcXJHT09xWHJMVy9vK2Z1Q0J2c3l6enFvNjRJREIxeUFNc3oxTGE1aDFUWFVN
VHRjZGQvUmoKWURyYk50VnhQY3o0eHg5N1M3T2Z4eS9ycnJ0RzczQUdBQ3dmWml4QTZLZlhyTDEy
LzNmUnFVaE03ZHZmN3JFeC9qYXp2L3RkZndQLwpuT2M4TWVNQ0FHRHB6ZkRueE11bk9YUDZYOWJl
YXF0K0liWDRHTTdPTy9kclAvYmR0OS9PZGY3OGZ1M0IzbnVMRHdDQUp6dmZnTXlBCnVYUDdwL2Zi
YnR0alpLWlBCM29xK3QvLytoKzR1K09PL3NmM2hBY0F3Rk9EQUFFQUFHS1crZDhCQVFBQUdFU0FB
QUFBTVFJRUFBQ0kKRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdn
QUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQQpBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdS
b0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJCkVBQUFJ
RWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFD
QkdnQUFBQURFQ0JBQUEKaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFB
QWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSQpBQUFRSTBBQUFJQVlBUUlBQU1RSUVB
QUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFCkNC
QUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFn
UUFBQWdSb0FBQUFBeEFnUUEKQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1R
SUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRQpDQUFBRUNOQUFBQ0FHQUVDQUFE
RUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FB
CnhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlB
QU1RSUVBQUFJRWFBQUFBQU1RSUUKQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVD
QUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaQpCQWdBQUJBalFBQUFnQmdC
QWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlB
UUlBCkFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FH
QUVDQUFERUNCQUFBQ0JHZ0FBQUFERUMKQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFn
QmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQQpZZ1FJQUFBUUkwQUFB
SUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFB
Q0FHQUVDCkFBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFB
QUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXgKQWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkw
QUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQQpBR0lFQ0FBQUVD
TkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJB
alFBQUFnQmdCCkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFB
UUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUEKTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FB
QUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQgpBQUJpQkFn
QUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJ
QUFBUUkwQUFBSUFZCkFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lF
Q0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUEKQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJp
QkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QQpBUUFB
WWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFB
R0lFQ0FBQUVDTkFBQUNBCkdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJB
QUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUEKQUFBeEFnUUFBSWdSSUFBQVFJd0FB
UUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTQpB
QUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpB
QUJBQUJpQkFnQUFCQWpRQUFBCmdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJ
d0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUEKQUFBQU1RSUVBQUNJRVNBQUFF
Q01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFC
QQpqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFB
QVFJd0FBUUFBWWdRSUFBQVFJMEFBCkFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNB
QUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkcKZ0FBQUFERUNCQUFBaUJF
Z0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdS
SUFBQQpRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJ
RVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BCkFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFB
aUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWcKUm9BQUFBQXhBZ1FB
QUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVB
QUNJRVNBQQpBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNC
QUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqClFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhB
Z1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUEKSUVhQUFBQUFN
UUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFE
RUNCQUFBaUJFZwpBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFB
QXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRCkkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFB
QUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUEKQUNCR2dB
QUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9B
QUFBQXhBZ1FBQUlnUgpJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVh
QUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBCkVDTkFBQUNBR0FFQ0FBREVDQkFBQUNC
R2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1EKQUFB
Z1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFB
SUVhQUFBQUFNUUlFQUFDSQpFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFB
QUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBCkFCQWpRQUFBZ0JnQkFnQUF4QWdR
QUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUkK
RUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVD
QkFBQUNCR2dBQUFBREVDQkFBQQppQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4
QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJCkFBQVFJMEFBQUlBWUFRSUFB
TVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FB
REUKQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFn
QUF4QWdRQUFBZ1JvQUFBQUF4QWdRQQpBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFR
SUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFCkNBQUFFQ05BQUFDQUdB
RUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0Jn
QkFnQUEKeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlB
WUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRQpBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFD
QUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpCkJBZ0FBQkFqUUFB
QWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWXY0ZjBVSHZTVjA2
VkFVQUFBQUEKU1VWT1JLNUNZSUk9Cgo=
</data>
<flag name="review"
          id="5820"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>