<?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>237817</bug_id>
          
          <creation_ts>2022-03-12 22:31:18 -0800</creation_ts>
          <short_desc>[Cocoa] When accessibility bold is enabled, font-family:system-ui is supposed to be bold</short_desc>
          <delta_ts>2022-06-27 12:42:38 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>241112</dependson>
    
    <dependson>241329</dependson>
    
    <dependson>241360</dependson>
    
    <dependson>241404</dependson>
    
    <dependson>241454</dependson>
    
    <dependson>241506</dependson>
    
    <dependson>241537</dependson>
    
    <dependson>241770</dependson>
    
    <dependson>241995</dependson>
    
    <dependson>242021</dependson>
    
    <dependson>242023</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>tom.hamming</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1850752</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-12 22:31:18 -0800</bug_when>
    <thetext>[Cocoa] When accessibility bold is enabled, font-family:system-ui is supposed to be bold</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850753</commentid>
    <comment_count>1</comment_count>
      <attachid>454551</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-12 22:44:54 -0800</bug_when>
    <thetext>Created attachment 454551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850754</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-12 22:46:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/88249241&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854016</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-22 17:12:07 -0700</bug_when>
    <thetext>I ran the same command the bots ran (except with a debug build instead of a release build) and it reported:

=&gt; Results: 100/100 tests passed (100.0%)

🤔</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854301</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-23 11:37:30 -0700</bug_when>
    <thetext>Hang on, the test didn&apos;t fail on iOS (which is the one platform with accessibility bold). I think I know what&apos;s happening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854379</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-23 13:42:38 -0700</bug_when>
    <thetext>Oh, USE(NON_VARIABLE_SYSTEM_FONT) is enabled on Big Sur. That explains it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854406</commentid>
    <comment_count>6</comment_count>
      <attachid>455557</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-23 14:37:52 -0700</bug_when>
    <thetext>Created attachment 455557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854416</commentid>
    <comment_count>7</comment_count>
      <attachid>455561</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-23 14:44:01 -0700</bug_when>
    <thetext>Created attachment 455561
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854592</commentid>
    <comment_count>8</comment_count>
      <attachid>455613</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-23 23:45:10 -0700</bug_when>
    <thetext>Created attachment 455613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855000</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-24 21:09:14 -0700</bug_when>
    <thetext>Committed r291846 (248858@main): &lt;https://commits.webkit.org/248858@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455613.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861677</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-04-14 18:07:51 -0700</bug_when>
    <thetext>Looks like this was reverted in bug 239323.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861687</commentid>
    <comment_count>11</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-04-14 18:58:28 -0700</bug_when>
    <thetext>Patch was reverted - reopening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1875364</commentid>
    <comment_count>12</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-10 21:19:13 -0700</bug_when>
    <thetext>After some internal deliberations, we think the right way to handle this is to do it in a way that is similar to the previous shipping way (when that worked) and not like accessibility font sizing.

Accessibility font sizing makes applyValueFontSize() aware of the accessibility font sizes. However, we want to implement accessibility bold at a lower level (rather than applyValueFontWeight) because:

1. It&apos;s compatible with shipping behavior. getComputedStyle() reports a font weight of 400 when accessibility font sizes are enabled, so it would be nice if we could preserve that behavior
2. Accessibility bold needs to happen for all system fonts, even ones triggered by &quot;font-family: system-ui&quot;. If we did this at the style resolution level, this would mean one property (font-family) would have an affect on another property (font-weight). We _do_ have precedent for this (where &quot;font-family: monospace&quot; affects the font-size property) but this precedent is generally considered a mistake and a wart on the web platform.
3. Accessibility bold is supposed to bolden just the characters/glyphs from the system font, not all characters/glyphs in the element. If the content said &quot;font-family: someFont, system-ui&quot; then if we did this at the CSS level, then either A) the whole element would get bold, even the glyphs coming from someFont, or B) none of the element would get bold, even the glyphs coming from the system font.

Because of that logic, we&apos;re going to handle this inside preparePlatformFont() rather than in applyValueFontFamily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1878522</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-27 10:50:58 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/1823</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1878526</commentid>
    <comment_count>14</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-27 11:00:26 -0700</bug_when>
    <thetext>*** Bug 239364 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1878528</commentid>
    <comment_count>15</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-27 11:00:29 -0700</bug_when>
    <thetext>*** Bug 239365 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1878530</commentid>
    <comment_count>16</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-27 11:00:33 -0700</bug_when>
    <thetext>*** Bug 239367 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1878532</commentid>
    <comment_count>17</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-27 11:00:37 -0700</bug_when>
    <thetext>*** Bug 239368 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1878534</commentid>
    <comment_count>18</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-27 11:00:40 -0700</bug_when>
    <thetext>*** Bug 239369 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1878536</commentid>
    <comment_count>19</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-27 11:00:44 -0700</bug_when>
    <thetext>*** Bug 239371 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1878538</commentid>
    <comment_count>20</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-27 11:00:50 -0700</bug_when>
    <thetext>*** Bug 239373 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1878540</commentid>
    <comment_count>21</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-06-27 11:00:55 -0700</bug_when>
    <thetext>*** Bug 239374 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1878562</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-06-27 12:42:35 -0700</bug_when>
    <thetext>Committed 251883@main (3e3f9ab0f79b): &lt;https://commits.webkit.org/251883@main&gt;

Reviewed commits have been landed. Closing PR #1823 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454551</attachid>
            <date>2022-03-12 22:44:54 -0800</date>
            <delta_ts>2022-03-23 14:37:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237817-20220312224453.patch</filename>
            <type>text/plain</type>
            <size>18876</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE3NzA1YTQ5M2JiZDI3
M2Q5ZTA1YjRhZDIxMzQzOWFlZWIyMmQ3MC4uY2Y1M2I4OTU2OTQ2NDNhMmUzMjEyOTE4NDQ4NGU0
ZTBkNGVjNDExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIyLTAzLTEyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBS
RUdSRVNTSU9OKHIyODEyOTEpOiBXaGVuIGFjY2Vzc2liaWxpdHkgYm9sZCBpcyBlbmFibGVkLCBm
b250LWZhbWlseTpzeXN0ZW0tdWkgaXMgc3VwcG9zZWQgdG8gYmUgYm9sZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3ODE3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84ODI0OTI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBY2Nlc3NpYmlsaXR5IGJvbGQgaXMgc3VwcG9zZWQgdG8gY2F1c2UgdGhl
IHN5c3RlbSBmb250IHRvIGJlIHJlbmRlcmVkIGFzIGJvbGQsIGV2ZW4gaWYgdGhlCisgICAgICAg
IHZhbHVlIG9mIHRoZSBmb250LXdlaWdodCBwcm9wZXJ0eSBpcyBub3JtYWwuCisKKyAgICAgICAg
VGhlIHdheSB0aGlzIGlzIG9yaWdpbmFsbHkgc3VwcG9zZWQgdG8gd29yayBpcyB0aGF0LCB3aGVu
IGFjY2Vzc2liaWxpdHkgYm9sZCBpcyBlbmFibGVkIGFuZAorICAgICAgICBzb2Z0d2FyZSBhc2tz
IGZvciB0aGUgc3lzdGVtIGZvbnQsIHRoZSBmb250IHJlcG9ydHMgdG8gbm90IGJlIGJvbGQsIGJ1
dCB0aGUgbWV0cmljcy9jb250b3VycworICAgICAgICBlbmQgdXAgdmlzdWFsbHkgYm9sZCB0byB0
aGUgdXNlci4gRm9udCB2YXJpYXRpb25zLCBob3dldmVyLCBhcmUgYSBsb3dlci1sZXZlbCBpbnRl
cmZhY2UgdG8KKyAgICAgICAgdGhlIGZvbnQsIGFuZCBkb24ndCBhYmlkZSBieSB0aGUgZmFjYWRl
LiBTbywgYmVmb3JlIHIyODEyOTEsIHdlIHdlcmVuJ3QgYXBwbHlpbmcgZm9udCB2YXJpYXRpb25z
CisgICAgICAgIHRvIHRoZSBzeXN0ZW0gZm9udCwgc28gdGhlIGZhY2FkZSB3YXMgbWFpbnRhaW5l
ZCwgYnV0IHIyODEyOTEgc3RhcnRlZCBhcHBseWluZyB2YXJpYXRpb25zIHRvIHRoZQorICAgICAg
ICBzeXN0ZW0gZm9udCwgdGhlcmVieSBicmVha2luZyB0aGlzIGFjY2Vzc2liaWxpdHkgYm9sZCBz
ZXR0aW5nLgorCisgICAgICAgIFRoZSBzb2x1dGlvbiBpcyB0byByZS1pbXBsZW1lbnQgYWNjZXNz
aWJpbGl0eSBib2xkIHdoZW4gd2UgYXBwbHkgZm9udCB2YXJpYXRpb25zLiBBdCB0aGUgcG9pbnQK
KyAgICAgICAgd2hlcmUgd2UgYXBwbHkgdGhlIHdlaWdodCB2YXJpYXRpb24sIHdlIHNob3VsZCBk
ZXRlcm1pbmUgaWYgYWNjZXNzaWJpbGl0eSBib2xkIGlzIGluIGVmZmVjdCwgYW5kCisgICAgICAg
IGlmIGl0IGlzLCBhcnRpZmljaWFsbHkgaW5jcmVhc2UgdGhlIHdlaWdodCBvZiB0aGUgY3JlYXRl
ZCBmb250IGFjY29yZGluZyB0byB0aGUgcGxhdGZvcm0ncworICAgICAgICBpbmZsYXRpb24gYW1v
dW50LiBUaGVyZSBhcmUgYSBmZXcgU1BJIGZ1bmN0aW9ucyB3aGljaCBhaWQgaW4gdGhpcyBlbmRl
YXZvci4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmZvbnRJc1N5c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bm9ybWFsaXplR1hXZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6bm9ybWFsaXplQ1RXZWln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6ZGVub3JtYWxpemVHWFdlaWdodCk6CisgICAgICAgIChX
ZWJDb3JlOjpkZW5vcm1hbGl6ZUNUV2VpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Om92ZXJyaWRl
RW5oYW5jZVRleHRMZWdpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlRW5o
YW5jZVRleHRMZWdpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEVuaGFuY2VUZXh0
TGVnaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVwYXJlUGxhdGZvcm1Gb250KToKKyAg
ICAgICAgKFdlYkNvcmU6OmZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRp
b25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnBsYXRmb3JtSW5pdCk6
CisgICAgICAgIChXZWJDb3JlOjp2YXJpYXRpb25DYXBhYmlsaXRpZXNGb3JGb250RGVzY3JpcHRv
cik6CisgICAgICAgIChXZWJDb3JlOjpub3JtYWxpemVXZWlnaHQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZGVub3JtYWxpemVXZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0Lmg6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRPdmVycmlk
ZUVuaGFuY2VUZXh0TGVnaWJpbGl0eSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjItMDMtMTIgIEFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtJRkNdW0ludGVncmF0aW9uXSBwcmV2
aW91c0xpbmVQb3NpdGlvbi9uZXh0TGluZVBvc2l0aW9uIHNob3VsZCB1c2UgTGluZTo6bGluZUJv
eEhlaWdodApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZDFhMzQzYmM0YTExMzA4N2Q2NzRlZDNiNDFj
ODk0ZGQ5ZGYxMjQwYi4uNWNjZjhlOTI0OThhZjU1NzYzMjBiMjkzMWFjMGY2MjBjZDk3MTAwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDMtMTIgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJFR1JF
U1NJT04ocjI4MTI5MSk6IFdoZW4gYWNjZXNzaWJpbGl0eSBib2xkIGlzIGVuYWJsZWQsIGZvbnQt
ZmFtaWx5OnN5c3RlbS11aSBpcyBzdXBwb3NlZCB0byBiZSBib2xkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4MTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg4MjQ5MjQxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcGFsL3NwaS9jZi9Db3JlVGV4dFNQSS5oOgorICAgICAgICAqIHBhbC9zcGkv
Y29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaDoKKwogMjAyMi0wMy0xMSAgRWxsaW90dCBX
aWxsaWFtcyAgPGVtd0BhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSAiTmVzdCBIZWFkZXJz
IiBzY3JpcHQgcGhhc2VzIGNvcHkgaGVhZGVycyBpbmNvcnJlY3RseSBvbiBDYXRhbHlzdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ29yZVRleHRTUEkuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmgKaW5kZXggZjI1N2UxYTg4
NGZlMzNjYTY0NTgxNTg4ZDI0NWQ4ZmQ1NWVkYmYyYi4uOThhNDQ3MmM0YmMyZTQ2Y2MyYWY2MmJh
OWQ1YThhZTdkZTFlZjQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y2YvQ29yZVRleHRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9Db3Jl
VGV4dFNQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIx
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQt
MjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0xNDksNiArMTQ5LDcgQEAgQ0ZBcnJheVJlZiBDVEZvbnRNYW5hZ2Vy
Q3JlYXRlRm9udERlc2NyaXB0b3JzRnJvbURhdGEoQ0ZEYXRhUmVmKTsKIGJvb2wgQ1RGb250TWFu
YWdlckVuYWJsZUFsbFVzZXJGb250cyhib29sIHBvc3RGb250Q2hhbmdlTm90aWZpY2F0aW9uKTsK
IAogdm9pZCBDVFBhcmFncmFwaFN0eWxlU2V0Q29tcG9zaXRpb25MYW5ndWFnZShDVFBhcmFncmFw
aFN0eWxlUmVmLCBDVENvbXBvc2l0aW9uTGFuZ3VhZ2UpOworQ0dGbG9hdCBDVEZvbnRHZXRBY2Nl
c3NpYmlsaXR5Qm9sZFdlaWdodE9mV2VpZ2h0KENHRmxvYXQpOwogCiBleHRlcm4gY29uc3QgQ0ZT
dHJpbmdSZWYga0NURm9udENTU1dlaWdodEF0dHJpYnV0ZTsKIGV4dGVybiBjb25zdCBDRlN0cmlu
Z1JlZiBrQ1RGb250Q1NTV2lkdGhBdHRyaWJ1dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaAppbmRleCBm
MmQzYzBjZmYzODY2Yjc4NjllOGI5MmNjODk5Mzc0ZmM1NTZlOGU3Li42MTRiZjliMmYxYmRjNTFm
ODg1YzA5MzA4NzFiOTAwYzljNzAwMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jb2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Nyw2ICs0
Nyw5IEBAIEFYU0lzb2xhdGVkVHJlZU1vZGUgX0FYU0lzb2xhdGVkVHJlZU1vZGUodm9pZCk7CiB2
b2lkIF9BWFNTZXRJc29sYXRlZFRyZWVNb2RlKEFYU0lzb2xhdGVkVHJlZU1vZGUpOwogI2VuZGlm
IC8vIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCiAKK2V4dGVybiBDRlN0cmlu
Z1JlZiBrQVhTRW5oYW5jZVRleHRMZWdpYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbjsKK0Jvb2xl
YW4gX0FYU0VuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWQodm9pZCk7CisKIFdURl9FWFRFUk5f
Q19FTkQKIAogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3Jl
VGV4dC5jcHAKaW5kZXggZTYxNzc5ODFmMWU1ODNlOGY0ZDcxYjEzMWViMTYyNzJhNThlNjdiNy4u
MmU0ZjlmNDkwMjM5NjYyMWZiMDJlYjMyZTBkNDc4Yzk4NzJiMzllMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNv
cmVUZXh0LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTeXN0ZW1Gb250RGF0YWJh
c2VDb3JlVGV4dC5oIgogI2luY2x1ZGUgPENvcmVUZXh0L1NGTlRMYXlvdXRUeXBlcy5oPgogI2lu
Y2x1ZGUgPHBhbC9zcGkvY2YvQ29yZVRleHRTUEkuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NvY29h
L0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC0zNTAs
NyArMzUxLDYgQEAgVmFyaWF0aW9uRGVmYXVsdHNNYXAgZGVmYXVsdFZhcmlhdGlvblZhbHVlcyhD
VEZvbnRSZWYgZm9udCwgU2hvdWxkTG9jYWxpemVBeGlzTmEKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi0jaWYgVVNFKE5PTl9WQVJJQUJMRV9TWVNURU1fRk9OVCkKIHN0YXRpYyBpbmxpbmUgYm9v
bCBmb250SXNTeXN0ZW1Gb250KENURm9udFJlZiBmb250KQogewogICAgIGlmIChpc1N5c3RlbUZv
bnQoZm9udCkpCkBAIC0zNTksMjUgKzM1OSwzNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZm9udElz
U3lzdGVtRm9udChDVEZvbnRSZWYgZm9udCkKICAgICBhdXRvIG5hbWUgPSBhZG9wdENGKENURm9u
dENvcHlQb3N0U2NyaXB0TmFtZShmb250KSk7CiAgICAgcmV0dXJuIGZvbnROYW1lSXNTeXN0ZW1G
b250KG5hbWUuZ2V0KCkpOwogfQotI2VuZGlmCiAKIC8vIFRoZXNlIHZhbHVlcyB3ZXJlIGNhbGN1
bGF0ZWQgYnkgcGVyZm9ybWluZyBhIGxpbmVhciByZWdyZXNzaW9uIG9uIHRoZSBDU1Mgd2VpZ2h0
cy93aWR0aHMvc2xvcGVzIGFuZCBDb3JlIFRleHQgd2VpZ2h0cy93aWR0aHMvc2xvcGVzIG9mIFNh
biBGcmFuY2lzY28uCiAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzMxMzEyNjAyPiBHZXQgdGhl
IHJlYWwgdmFsdWVzIGZyb20gQ29yZSBUZXh0Lgotc3RhdGljIGlubGluZSBmbG9hdCBub3JtYWxp
emVXZWlnaHQoZmxvYXQgdmFsdWUpCitzdGF0aWMgaW5saW5lIGZsb2F0IG5vcm1hbGl6ZUdYV2Vp
Z2h0KGZsb2F0IHZhbHVlKQogewogICAgIHJldHVybiA1MjMuNyAqIHZhbHVlIC0gMTA5LjM7CiB9
CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQgbm9ybWFsaXplQ1RXZWlnaHQoZmxvYXQgdmFsdWUpCit7
CisgICAgcmV0dXJuIDYxNi4xOCAqIHZhbHVlICsgNDAwOworfQorCiBzdGF0aWMgaW5saW5lIGZs
b2F0IG5vcm1hbGl6ZVNsb3BlKGZsb2F0IHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSAqIDMw
MDsKIH0KIAotc3RhdGljIGlubGluZSBmbG9hdCBkZW5vcm1hbGl6ZVdlaWdodChmbG9hdCB2YWx1
ZSkKK3N0YXRpYyBpbmxpbmUgZmxvYXQgZGVub3JtYWxpemVHWFdlaWdodChmbG9hdCB2YWx1ZSkK
IHsKICAgICByZXR1cm4gKHZhbHVlICsgMTA5LjMpIC8gNTIzLjc7CiB9CiAKK3N0YXRpYyBpbmxp
bmUgZmxvYXQgZGVub3JtYWxpemVDVFdlaWdodChmbG9hdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4g
KHZhbHVlIC0gNDAwKSAvIDYxNi4xODsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdCBkZW5vcm1h
bGl6ZVNsb3BlKGZsb2F0IHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSAvIDMwMDsKQEAgLTUy
MSw2ICs1MzAsMjIgQEAgc3RhdGljIHZvaWQgYWRkQXR0cmlidXRlc0ZvckZvbnRQYWxldHRlcyhD
Rk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMsIGNvbnMKICAgICB9CiB9CiAKK3N0YXRp
YyBzdGQ6Om9wdGlvbmFsPGJvb2w+JiBvdmVycmlkZUVuaGFuY2VUZXh0TGVnaWJpbGl0eSgpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6b3B0aW9uYWw8Ym9vbD4+IG92ZXJyaWRl
RW5oYW5jZVRleHRMZWdpYmlsaXR5OworICAgIHJldHVybiBvdmVycmlkZUVuaGFuY2VUZXh0TGVn
aWJpbGl0eS5nZXQoKTsKK30KKwordm9pZCBzZXRPdmVycmlkZUVuaGFuY2VUZXh0TGVnaWJpbGl0
eShib29sIGVuaGFuY2UpCit7CisgICAgb3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoKSA9
IGVuaGFuY2U7Cit9CisKK3N0YXRpYyBib29sIHNob3VsZEVuaGFuY2VUZXh0TGVnaWJpbGl0eSgp
Cit7CisgICAgcmV0dXJuIG92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5KCkudmFsdWVfb3Io
X0FYU0VuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWQoKSk7Cit9CisKIFJldGFpblB0cjxDVEZv
bnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwgY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRl
eHQmIGZvbnRDcmVhdGlvbkNvbnRleHQsIGJvb2wgYXBwbHlXZWlnaHRXaWR0aFNsb3BlVmFyaWF0
aW9ucykKIHsKICAgICBpZiAoIW9yaWdpbmFsRm9udCkKQEAgLTYwMyw4ICs2MjgsMTMgQEAgUmV0
YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxG
b250LCBjb25zdCBGb250RGVzY3IKICAgICAgICAgICAgIHdpZHRoID0gc3RkOjptYXgoc3RkOjpt
aW4od2lkdGgsIHN0YXRpY19jYXN0PGZsb2F0Pih3aWR0aFZhbHVlLT5tYXhpbXVtKSksIHN0YXRp
Y19jYXN0PGZsb2F0Pih3aWR0aFZhbHVlLT5taW5pbXVtKSk7CiAgICAgICAgIGlmIChhdXRvIHNs
b3BlVmFsdWUgPSBmb250Q3JlYXRpb25Db250ZXh0LmZvbnRGYWNlQ2FwYWJpbGl0aWVzKCkud2Vp
Z2h0KQogICAgICAgICAgICAgc2xvcGUgPSBzdGQ6Om1heChzdGQ6Om1pbihzbG9wZSwgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHNsb3BlVmFsdWUtPm1heGltdW0pKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNs
b3BlVmFsdWUtPm1pbmltdW0pKTsKKyAgICAgICAgaWYgKGZvbnRJc1N5c3RlbUZvbnQob3JpZ2lu
YWxGb250KSAmJiBzaG91bGRFbmhhbmNlVGV4dExlZ2liaWxpdHkoKSkgeworICAgICAgICAgICAg
YXV0byBjdFdlaWdodCA9IGRlbm9ybWFsaXplQ1RXZWlnaHQod2VpZ2h0KTsKKyAgICAgICAgICAg
IGN0V2VpZ2h0ID0gQ1RGb250R2V0QWNjZXNzaWJpbGl0eUJvbGRXZWlnaHRPZldlaWdodChjdFdl
aWdodCk7CisgICAgICAgICAgICB3ZWlnaHQgPSBub3JtYWxpemVDVFdlaWdodChjdFdlaWdodCk7
CisgICAgICAgIH0KICAgICAgICAgaWYgKG5lZWRzQ29udmVyc2lvbikgewotICAgICAgICAgICAg
d2VpZ2h0ID0gZGVub3JtYWxpemVXZWlnaHQod2VpZ2h0KTsKKyAgICAgICAgICAgIHdlaWdodCA9
IGRlbm9ybWFsaXplR1hXZWlnaHQod2VpZ2h0KTsKICAgICAgICAgICAgIHdpZHRoID0gZGVub3Jt
YWxpemVWYXJpYXRpb25XaWR0aCh3aWR0aCk7CiAgICAgICAgICAgICBzbG9wZSA9IGRlbm9ybWFs
aXplU2xvcGUoc2xvcGUpOwogICAgICAgICB9CkBAIC03NTIsNyArNzgyLDcgQEAgc3RhdGljIGZs
b2F0IHN0cmV0Y2hGcm9tQ29yZVRleHRUcmFpdHMoQ0ZEaWN0aW9uYXJ5UmVmIHRyYWl0cykKIAog
c3RhdGljIHZvaWQgaW52YWxpZGF0ZUZvbnRDYWNoZSgpOwogCi1zdGF0aWMgdm9pZCBmb250Q2Fj
aGVSZWdpc3RlcmVkRm9udHNDaGFuZ2VkTm90aWZpY2F0aW9uQ2FsbGJhY2soQ0ZOb3RpZmljYXRp
b25DZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDRlN0cmluZ1JlZiwgY29uc3Qgdm9pZCAqLCBD
RkRpY3Rpb25hcnlSZWYpCitzdGF0aWMgdm9pZCBmb250Q2FjaGVSZWdpc3RlcmVkRm9udHNDaGFu
Z2VkTm90aWZpY2F0aW9uQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqIG9i
c2VydmVyLCBDRlN0cmluZ1JlZiwgY29uc3Qgdm9pZCosIENGRGljdGlvbmFyeVJlZikKIHsKICAg
ICBBU1NFUlRfVU5VU0VEKG9ic2VydmVyLCBpc01haW5UaHJlYWQoKSAmJiBvYnNlcnZlciA9PSAm
Rm9udENhY2hlOjpmb3JDdXJyZW50VGhyZWFkKCkpOwogCkBAIC03NjMsNiArNzkzLDggQEAgdm9p
ZCBGb250Q2FjaGU6OnBsYXRmb3JtSW5pdCgpCiB7CiAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJB
ZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldExvY2FsQ2VudGVyKCksIHRoaXMsICZm
b250Q2FjaGVSZWdpc3RlcmVkRm9udHNDaGFuZ2VkTm90aWZpY2F0aW9uQ2FsbGJhY2ssIGtDVEZv
bnRNYW5hZ2VyUmVnaXN0ZXJlZEZvbnRzQ2hhbmdlZE5vdGlmaWNhdGlvbiwgbnVsbHB0ciwgQ0ZO
b3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JEZWxpdmVySW1tZWRpYXRlbHkpOwogCisgICAg
Q0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldExv
Y2FsQ2VudGVyKCksIHRoaXMsICZmb250Q2FjaGVSZWdpc3RlcmVkRm9udHNDaGFuZ2VkTm90aWZp
Y2F0aW9uQ2FsbGJhY2ssIGtBWFNFbmhhbmNlVGV4dExlZ2liaWxpdHlDaGFuZ2VkTm90aWZpY2F0
aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckRlbGl2ZXJJbW1l
ZGlhdGVseSk7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJS
ZWYgY2VudGVyID0gQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpOwogICAgIGNv
bnN0IENGU3RyaW5nUmVmIG5vdGlmaWNhdGlvbk5hbWUgPSBrQ0ZMb2NhbGVDdXJyZW50TG9jYWxl
RGlkQ2hhbmdlTm90aWZpY2F0aW9uOwpAQCAtMTA2MywxMSArMTA5NSwxMSBAQCBzdGF0aWMgVmFy
aWF0aW9uQ2FwYWJpbGl0aWVzIHZhcmlhdGlvbkNhcGFiaWxpdGllc0ZvckZvbnREZXNjcmlwdG9y
KENURm9udERlc2NyaQogCiAgICAgaWYgKEZvbnRUeXBlKGZvbnQuZ2V0KCkpLnZhcmlhdGlvblR5
cGUgPT0gRm9udFR5cGU6OlZhcmlhdGlvblR5cGU6OlRydWVUeXBlR1ggJiYgIW9wdE91dEZyb21H
WE5vcm1hbGl6YXRpb24pIHsKICAgICAgICAgaWYgKHJlc3VsdC53ZWlnaHQpCi0gICAgICAgICAg
ICByZXN1bHQud2VpZ2h0ID0ge3sgbm9ybWFsaXplV2VpZ2h0KHJlc3VsdC53ZWlnaHQudmFsdWUo
KS5taW5pbXVtKSwgbm9ybWFsaXplV2VpZ2h0KHJlc3VsdC53ZWlnaHQudmFsdWUoKS5tYXhpbXVt
KSB9fTsKKyAgICAgICAgICAgIHJlc3VsdC53ZWlnaHQgPSB7IHsgbm9ybWFsaXplR1hXZWlnaHQo
cmVzdWx0LndlaWdodC52YWx1ZSgpLm1pbmltdW0pLCBub3JtYWxpemVHWFdlaWdodChyZXN1bHQu
d2VpZ2h0LnZhbHVlKCkubWF4aW11bSkgfSB9OwogICAgICAgICBpZiAocmVzdWx0LndpZHRoKQot
ICAgICAgICAgICAgcmVzdWx0LndpZHRoID0ge3sgbm9ybWFsaXplVmFyaWF0aW9uV2lkdGgocmVz
dWx0LndpZHRoLnZhbHVlKCkubWluaW11bSksIG5vcm1hbGl6ZVZhcmlhdGlvbldpZHRoKHJlc3Vs
dC53aWR0aC52YWx1ZSgpLm1heGltdW0pIH19OworICAgICAgICAgICAgcmVzdWx0LndpZHRoID0g
eyB7IG5vcm1hbGl6ZVZhcmlhdGlvbldpZHRoKHJlc3VsdC53aWR0aC52YWx1ZSgpLm1pbmltdW0p
LCBub3JtYWxpemVWYXJpYXRpb25XaWR0aChyZXN1bHQud2lkdGgudmFsdWUoKS5tYXhpbXVtKSB9
IH07CiAgICAgICAgIGlmIChyZXN1bHQuc2xvcGUpCi0gICAgICAgICAgICByZXN1bHQuc2xvcGUg
PSB7eyBub3JtYWxpemVTbG9wZShyZXN1bHQuc2xvcGUudmFsdWUoKS5taW5pbXVtKSwgbm9ybWFs
aXplU2xvcGUocmVzdWx0LnNsb3BlLnZhbHVlKCkubWF4aW11bSkgfX07CisgICAgICAgICAgICBy
ZXN1bHQuc2xvcGUgPSB7IHsgbm9ybWFsaXplU2xvcGUocmVzdWx0LnNsb3BlLnZhbHVlKCkubWlu
aW11bSksIG5vcm1hbGl6ZVNsb3BlKHJlc3VsdC5zbG9wZS52YWx1ZSgpLm1heGltdW0pIH0gfTsK
ICAgICB9CiAKICAgICBhdXRvIG1pbmltdW0gPSBzdGF0aWNfY2FzdDxmbG9hdD4oRm9udFNlbGVj
dGlvblZhbHVlOjptaW5pbXVtVmFsdWUoKSk7CkBAIC0xNjg2LDQgKzE3MTgsNCBAQCB2b2lkIEZv
bnRDYWNoZTo6cHJld2FybUdsb2JhbGx5KCkKICNlbmRpZgogfQogCi19Cit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaAppbmRleCAwMDM1YWJhMWQzZjQ0OWUyZTRmYTc2
NTMxZjBjNDA4OTA1Zjg1ZDk2Li4xNmMzZWNhNGNlNzQ3YzZhYjA3ZWIwMzVjZjM3MTNmOTQ1M2Vm
NjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250Q2FjaGVDb3JlVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNy0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcyLDYgKzcyLDcgQEAgUmV0YWluUHRy
PENURm9udFJlZj4gY3JlYXRlRm9udEZvckluc3RhbGxlZEZvbnRzKENURm9udERlc2NyaXB0b3JS
ZWYsIENHRmxvYXQgc2kKIFJldGFpblB0cjxDVEZvbnRSZWY+IGNyZWF0ZUZvbnRGb3JJbnN0YWxs
ZWRGb250cyhDVEZvbnRSZWYsIEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKIHZvaWQgYWRkQXR0
cmlidXRlc0ZvcldlYkZvbnRzKENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMpOwogUmV0YWluUHRyPENGU2V0UmVmPiBpbnN0YWxsZWRGb250
TWFuZGF0b3J5QXR0cmlidXRlcyhBbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7Ci0KIFZhcmlhdGlv
bkRlZmF1bHRzTWFwIGRlZmF1bHRWYXJpYXRpb25WYWx1ZXMoQ1RGb250UmVmLCBTaG91bGRMb2Nh
bGl6ZUF4aXNOYW1lcyk7Ci19CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE92ZXJyaWRlRW5oYW5j
ZVRleHRMZWdpYmlsaXR5KGJvb2wpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMWEwYThiMWIzMmQzZjdhZDA2ZWE1ODlhMDA3
MGFiZWQzMzM4NzE4MS4uNWRmMjAzMmExNjNlODJhNWVlMTZhNzVmZDNlZWNhYjYyZWQxMzJiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
IENvcHlyaWdodCAoQykgMjAxMy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYyLDYgKzM2MiwxMCBAQAog
I2luY2x1ZGUgIlRleHRSZWNvZ25pdGlvblJlc3VsdC5oIgogI2VuZGlmCiAKKyNpZiBVU0UoQ09S
RV9URVhUKQorI2luY2x1ZGUgIkZvbnRDYWNoZUNvcmVUZXh0LmgiCisjZW5kaWYKKwogdXNpbmcg
SlNDOjpDYWxsRGF0YTsKIHVzaW5nIEpTQzo6Q29kZUJsb2NrOwogdXNpbmcgSlNDOjpGdW5jdGlv
bkV4ZWN1dGFibGU7CkBAIC0xODg4LDYgKzE4OTIsMTUgQEAgdm9pZCBJbnRlcm5hbHM6OnNldEZv
bnRTbW9vdGhpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBGb250Q2FzY2FkZTo6c2V0U2hv
dWxkVXNlU21vb3RoaW5nKGVuYWJsZWQpOwogfQogCit2b2lkIEludGVybmFsczo6c2V0T3ZlcnJp
ZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoYm9vbCBlbmhhbmNlKQoreworI2lmIFVTRShDT1JFX1RF
WFQpCisgICAgV2ViQ29yZTo6c2V0T3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoZW5oYW5j
ZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmhhbmNlKTsKKyNlbmRpZgorfQorCiBFeGNl
cHRpb25Pcjx2b2lkPiBJbnRlcm5hbHM6OnNldExvd1Bvd2VyTW9kZUVuYWJsZWQoYm9vbCBpc0Vu
YWJsZWQpCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDQ0NDNlNTAzZGRmYjE0NjhiODc3MzIxYTAxZDJh
ZDg2NmIzZTgxNTYuLjg4ODBkZWU2OWQxODM4OWM0YmZiZGUxMWZmOTI0MmRhOTRiYWFjNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxMy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMy0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzExLDYgKzMxMSw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgaW52YWxpZGF0ZUZvbnRDYWNoZSgpOwogICAgIHZvaWQgc2V0Rm9udFNtb290
aGluZ0VuYWJsZWQoYm9vbCk7CisgICAgdm9pZCBzZXRPdmVycmlkZUVuaGFuY2VUZXh0TGVnaWJp
bGl0eShib29sKTsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldExvd1Bvd2VyTW9kZUVuYWJs
ZWQoYm9vbCk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0T3V0c2lkZVZpZXdwb3J0VGhyb3R0
bGluZ0VuYWJsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXgg
N2QxYTFjZmQ3NDVmMDgyNWI1NDA4MTA1M2Q2M2VlNjcxZTA5MTMzNi4uMDMwNmZmMzk4ZDE1ZWNm
YjYwZThlMWU2NDhmZjEyMzBjMTI0NDA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNDE4LDYgKzQxOCw3IEBAIHR5cGVkZWYgKEZldGNoUmVxdWVzdCBvciBGZXRjaFJl
c3BvbnNlKSBGZXRjaE9iamVjdDsKIAogICAgIHVuZGVmaW5lZCBpbnZhbGlkYXRlRm9udENhY2hl
KCk7CiAgICAgdW5kZWZpbmVkIHNldEZvbnRTbW9vdGhpbmdFbmFibGVkKGJvb2xlYW4gZW5hYmxl
ZCk7CisgICAgdW5kZWZpbmVkIHNldE92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5KGJvb2xl
YW4gZW5oYW5jZSk7CiAKICAgICB1bmRlZmluZWQgc2V0U2Nyb2xsVmlld1Bvc2l0aW9uKGxvbmcg
eCwgbG9uZyB5KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVjMTlkMTIzZmQyZGIxM2ExOWJiNWI3MGQ4ODk2YTg2MTE5
Y2ZlMGUuLmNiNGJmMDEwOTkxNzE0NTM0MGY2ODMzMmQ2YTBiOTRhNDY4OGI2NGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAyMi0wMy0xMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRA
YXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUkVHUkVTU0lPTihyMjgxMjkxKTogV2hlbiBh
Y2Nlc3NpYmlsaXR5IGJvbGQgaXMgZW5hYmxlZCwgZm9udC1mYW1pbHk6c3lzdGVtLXVpIGlzIHN1
cHBvc2VkIHRvIGJlIGJvbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNzgxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODgyNDkyNDE+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB0ZXN0IGhh
cyA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHJ1blNpbmdseT10cnVlIF0gLS0+IHNvIHRoZSB0
ZXN0aW5nCisgICAgICAgIGluZnJhc3RydWN0dXJlIGZvciBhY2Nlc3NpYmlsaXR5IGJvbGQgY2Fu
IGJlIHdlYi1wcm9jZXNzLWdsb2JhbC4KKworICAgICAgICAqIGZhc3QvdGV4dC9hY2Nlc3NpYmls
aXR5LWJvbGQtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90
ZXh0L2FjY2Vzc2liaWxpdHktYm9sZC5odG1sOiBBZGRlZC4KKwogMjAyMi0wMy0xMSAgTmlrb2xh
b3MgTW91Y2h0YXJpcyAgPG5tb3VjaHRhcmlzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBG
aXggb3ZzZXJzY3JvbGwtYmVoYXZpb3IgZm9yIG1haW4gZG9jdW1lbnQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9hY2Nlc3NpYmlsaXR5LWJvbGQtZXhwZWN0ZWQtbWlzbWF0Y2gu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9hY2Nlc3NpYmlsaXR5LWJvbGQtZXhwZWN0ZWQt
bWlzbWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmM2Yjk3MDVkYWU2ZmRkMTEzZmViZDIwODJjMDU2
ZjZlNWFjNThkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2FjY2Vz
c2liaWxpdHktYm9sZC1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgcnVuU2luZ2x5PXRydWUgXSAt
LT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICB3aW5kb3cuaW50ZXJuYWxzLmludmFsaWRhdGVGb250Q2FjaGUoKTsKKyAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldE92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5KGZhbHNlKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGFjY2Vzc2li
aWxpdHkgYm9sZCBpcyBhcHBsaWVkIHRvIGZvbnQtZmFtaWx5OiBzeXN0ZW0tdWkuIFRoZSB0ZXN0
IHBhc3NlcyBpZiB0aGUgdGV4dCBiZWxvdyBpcyBib2xkLgorPHAgc3R5bGU9ImZvbnQ6IDI0cHgg
c3lzdGVtLXVpOyI+SGVsbG8gdGhpcyBpcyB0ZXh0PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2FjY2Vzc2liaWxpdHktYm9sZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2FjY2Vzc2liaWxpdHktYm9sZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE0NWM4OTM4OWNlNTVjY2UxM2IyMDM2NmNkMjNmMGNlNTA4N2ZkNGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwKQEAgLTAs
MCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBydW5T
aW5nbHk9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMuaW52YWxpZGF0ZUZvbnRDYWNoZSgpOwor
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0T3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkodHJ1
ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IG1ha2VzIHN1cmUg
dGhhdCBhY2Nlc3NpYmlsaXR5IGJvbGQgaXMgYXBwbGllZCB0byBmb250LWZhbWlseTogc3lzdGVt
LXVpLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHRleHQgYmVsb3cgaXMgYm9sZC4KKzxwIHN0eWxl
PSJmb250OiAyNHB4IHN5c3RlbS11aTsiPkhlbGxvIHRoaXMgaXMgdGV4dDwvcD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455557</attachid>
            <date>2022-03-23 14:37:52 -0700</date>
            <delta_ts>2022-03-23 14:43:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237817-20220323143751.patch</filename>
            <type>text/plain</type>
            <size>24285</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI3ZDI2ZmQ4ODFkMDFk
ZTU1NjMzZjZhZTdhMjRjNzg5ODcyMjc2OC4uNTE2NWM0YTI0NTBlNDAzOWMzMWU3MGNkOTQ2NGEw
YjNiODNlOTAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIyLTAzLTIzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBS
RUdSRVNTSU9OKHIyODEyOTEpOiBXaGVuIGFjY2Vzc2liaWxpdHkgYm9sZCBpcyBlbmFibGVkLCBm
b250LWZhbWlseTpzeXN0ZW0tdWkgaXMgc3VwcG9zZWQgdG8gYmUgYm9sZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3ODE3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84ODI0OTI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBY2Nlc3NpYmlsaXR5IGJvbGQgaXMgc3VwcG9zZWQgdG8gY2F1c2UgdGhl
IHN5c3RlbSBmb250IHRvIGJlIHJlbmRlcmVkIGFzIGJvbGQsIGV2ZW4gaWYgdGhlCisgICAgICAg
IHZhbHVlIG9mIHRoZSBmb250LXdlaWdodCBwcm9wZXJ0eSBpcyBub3JtYWwuCisKKyAgICAgICAg
VGhlIHdheSB0aGlzIGlzIG9yaWdpbmFsbHkgc3VwcG9zZWQgdG8gd29yayBpcyB0aGF0LCB3aGVu
IGFjY2Vzc2liaWxpdHkgYm9sZCBpcyBlbmFibGVkIGFuZAorICAgICAgICBzb2Z0d2FyZSBhc2tz
IGZvciB0aGUgc3lzdGVtIGZvbnQsIHRoZSBmb250IHJlcG9ydHMgdG8gbm90IGJlIGJvbGQsIGJ1
dCB0aGUgbWV0cmljcy9jb250b3VycworICAgICAgICBlbmQgdXAgdmlzdWFsbHkgYm9sZCB0byB0
aGUgdXNlci4gRm9udCB2YXJpYXRpb25zLCBob3dldmVyLCBhcmUgYSBsb3dlci1sZXZlbCBpbnRl
cmZhY2UgdG8KKyAgICAgICAgdGhlIGZvbnQsIGFuZCBkb24ndCBhYmlkZSBieSB0aGUgZmFjYWRl
LiBTbywgYmVmb3JlIHIyODEyOTEsIHdlIHdlcmVuJ3QgYXBwbHlpbmcgZm9udCB2YXJpYXRpb25z
CisgICAgICAgIHRvIHRoZSBzeXN0ZW0gZm9udCwgc28gdGhlIGZhY2FkZSB3YXMgbWFpbnRhaW5l
ZCwgYnV0IHIyODEyOTEgc3RhcnRlZCBhcHBseWluZyB2YXJpYXRpb25zIHRvIHRoZQorICAgICAg
ICBzeXN0ZW0gZm9udCwgdGhlcmVieSBicmVha2luZyB0aGlzIGFjY2Vzc2liaWxpdHkgYm9sZCBz
ZXR0aW5nLgorCisgICAgICAgIFRoZSBzb2x1dGlvbiBpcyB0byByZS1pbXBsZW1lbnQgYWNjZXNz
aWJpbGl0eSBib2xkIHdoZW4gd2UgYXBwbHkgZm9udCB2YXJpYXRpb25zLiBBdCB0aGUgcG9pbnQK
KyAgICAgICAgd2hlcmUgd2UgYXBwbHkgdGhlIHdlaWdodCB2YXJpYXRpb24sIHdlIHNob3VsZCBk
ZXRlcm1pbmUgaWYgYWNjZXNzaWJpbGl0eSBib2xkIGlzIGluIGVmZmVjdCwgYW5kCisgICAgICAg
IGlmIGl0IGlzLCBhcnRpZmljaWFsbHkgaW5jcmVhc2UgdGhlIHdlaWdodCBvZiB0aGUgY3JlYXRl
ZCBmb250IGFjY29yZGluZyB0byB0aGUgcGxhdGZvcm0ncworICAgICAgICBpbmZsYXRpb24gYW1v
dW50LiBUaGVyZSBhcmUgYSBmZXcgU1BJIGZ1bmN0aW9ucyB3aGljaCBhaWQgaW4gdGhpcyBlbmRl
YXZvci4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmZvbnRJc1N5c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bm9ybWFsaXplR1hXZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6bm9ybWFsaXplQ1RXZWln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6ZGVub3JtYWxpemVHWFdlaWdodCk6CisgICAgICAgIChX
ZWJDb3JlOjpkZW5vcm1hbGl6ZUNUV2VpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Om92ZXJyaWRl
RW5oYW5jZVRleHRMZWdpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlRW5o
YW5jZVRleHRMZWdpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEVuaGFuY2VUZXh0
TGVnaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVwYXJlUGxhdGZvcm1Gb250KToKKyAg
ICAgICAgKFdlYkNvcmU6OmZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRp
b25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnBsYXRmb3JtSW5pdCk6
CisgICAgICAgIChXZWJDb3JlOjp2YXJpYXRpb25DYXBhYmlsaXRpZXNGb3JGb250RGVzY3JpcHRv
cik6CisgICAgICAgIChXZWJDb3JlOjpub3JtYWxpemVXZWlnaHQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZGVub3JtYWxpemVXZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0Lmg6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRPdmVycmlk
ZUVuaGFuY2VUZXh0TGVnaWJpbGl0eSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjItMDMtMjIgIEJyYW5kb24g
U3Rld2FydCAgPGJyYW5kb25zdGV3YXJ0QGFwcGxlLmNvbT4KIAogICAgICAgICBXQlIgZWxlbWVu
dCBzaG91bGQgc2V0IENsZWFyIHByb3BlcnR5IHRvIE5vbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4
IDg3ODhlZTk0ZWY3N2I1ZWFkYjk5MzMyN2Q3ZjQ0YmZiNTNkOWZkMmIuLjhjZWJkMDg3YjJjZWNh
YTkyMTk4ZjUwZWZkZjQwMWUzZmZkMzU3NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIyLTAzLTIzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CisKKyAgICAgICAgW0NvY29hXSBSRUdSRVNTSU9OKHIyODEyOTEpOiBXaGVuIGFjY2Vzc2li
aWxpdHkgYm9sZCBpcyBlbmFibGVkLCBmb250LWZhbWlseTpzeXN0ZW0tdWkgaXMgc3VwcG9zZWQg
dG8gYmUgYm9sZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM3ODE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84ODI0OTI0MT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY2YvQ29yZVRl
eHRTUEkuaDoKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJ
Lmg6CisKIDIwMjItMDMtMjEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBEdXN0IG9mZiBNYWMgQ01ha2UgYnVpbGQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmggYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jZi9Db3JlVGV4dFNQSS5oCmluZGV4IGYyNTdlMWE4ODRmZTMzY2E2NDU4
MTU4OGQyNDVkOGZkNTVlZGJmMmIuLjk4YTQ0NzJjNGJjMmU0NmNjMmFmNjJiYTlkNWE4YWU3ZGUx
ZWY0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NvcmVUZXh0
U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ29yZVRleHRTUEkuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjIgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMTQ5LDYgKzE0OSw3IEBAIENGQXJyYXlSZWYgQ1RGb250TWFuYWdlckNyZWF0ZUZvbnRE
ZXNjcmlwdG9yc0Zyb21EYXRhKENGRGF0YVJlZik7CiBib29sIENURm9udE1hbmFnZXJFbmFibGVB
bGxVc2VyRm9udHMoYm9vbCBwb3N0Rm9udENoYW5nZU5vdGlmaWNhdGlvbik7CiAKIHZvaWQgQ1RQ
YXJhZ3JhcGhTdHlsZVNldENvbXBvc2l0aW9uTGFuZ3VhZ2UoQ1RQYXJhZ3JhcGhTdHlsZVJlZiwg
Q1RDb21wb3NpdGlvbkxhbmd1YWdlKTsKK0NHRmxvYXQgQ1RGb250R2V0QWNjZXNzaWJpbGl0eUJv
bGRXZWlnaHRPZldlaWdodChDR0Zsb2F0KTsKIAogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtD
VEZvbnRDU1NXZWlnaHRBdHRyaWJ1dGU7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9u
dENTU1dpZHRoQXR0cmlidXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgKaW5kZXggZjJkM2MwY2ZmMzg2
NmI3ODY5ZThiOTJjYzg5OTM3NGZjNTU2ZThlNy4uNjE0YmY5YjJmMWJkYzUxZjg4NWMwOTMwODcx
YjkwMGM5YzcwMDI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDcsNiArNDcsOSBAQCBBWFNJ
c29sYXRlZFRyZWVNb2RlIF9BWFNJc29sYXRlZFRyZWVNb2RlKHZvaWQpOwogdm9pZCBfQVhTU2V0
SXNvbGF0ZWRUcmVlTW9kZShBWFNJc29sYXRlZFRyZWVNb2RlKTsKICNlbmRpZiAvLyBFTkFCTEUo
QUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQogCitleHRlcm4gQ0ZTdHJpbmdSZWYga0FYU0Vu
aGFuY2VUZXh0TGVnaWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb247CitCb29sZWFuIF9BWFNFbmhh
bmNlVGV4dExlZ2liaWxpdHlFbmFibGVkKHZvaWQpOworCiBXVEZfRVhURVJOX0NfRU5ECiAKICNl
bmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmlu
ZGV4IGU2MTc3OTgxZjFlNTgzZThmNGQ3MWIxMzFlYjE2MjcyYTU4ZTY3YjcuLmRlYWUzMjIzY2Iz
MTUzZmYzMWZlYmY2MzZkMTkwNTJjMjY1NDIzNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQu
aCIKICNpbmNsdWRlIDxDb3JlVGV4dC9TRk5UTGF5b3V0VHlwZXMuaD4KICNpbmNsdWRlIDxwYWwv
c3BpL2NmL0NvcmVUZXh0U1BJLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9BY2Nlc3NpYmls
aXR5U3VwcG9ydFNQSS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtMzUwLDcgKzM1MSw2IEBA
IFZhcmlhdGlvbkRlZmF1bHRzTWFwIGRlZmF1bHRWYXJpYXRpb25WYWx1ZXMoQ1RGb250UmVmIGZv
bnQsIFNob3VsZExvY2FsaXplQXhpc05hCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotI2lmIFVT
RShOT05fVkFSSUFCTEVfU1lTVEVNX0ZPTlQpCiBzdGF0aWMgaW5saW5lIGJvb2wgZm9udElzU3lz
dGVtRm9udChDVEZvbnRSZWYgZm9udCkKIHsKICAgICBpZiAoaXNTeXN0ZW1Gb250KGZvbnQpKQpA
QCAtMzU5LDI1ICszNTksNzAgQEAgc3RhdGljIGlubGluZSBib29sIGZvbnRJc1N5c3RlbUZvbnQo
Q1RGb250UmVmIGZvbnQpCiAgICAgYXV0byBuYW1lID0gYWRvcHRDRihDVEZvbnRDb3B5UG9zdFNj
cmlwdE5hbWUoZm9udCkpOwogICAgIHJldHVybiBmb250TmFtZUlzU3lzdGVtRm9udChuYW1lLmdl
dCgpKTsKIH0KLSNlbmRpZgogCiAvLyBUaGVzZSB2YWx1ZXMgd2VyZSBjYWxjdWxhdGVkIGJ5IHBl
cmZvcm1pbmcgYSBsaW5lYXIgcmVncmVzc2lvbiBvbiB0aGUgQ1NTIHdlaWdodHMvd2lkdGhzL3Ns
b3BlcyBhbmQgQ29yZSBUZXh0IHdlaWdodHMvd2lkdGhzL3Nsb3BlcyBvZiBTYW4gRnJhbmNpc2Nv
LgogLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8zMTMxMjYwMj4gR2V0IHRoZSByZWFsIHZhbHVl
cyBmcm9tIENvcmUgVGV4dC4KLXN0YXRpYyBpbmxpbmUgZmxvYXQgbm9ybWFsaXplV2VpZ2h0KGZs
b2F0IHZhbHVlKQorc3RhdGljIGlubGluZSBmbG9hdCBub3JtYWxpemVHWFdlaWdodChmbG9hdCB2
YWx1ZSkKIHsKICAgICByZXR1cm4gNTIzLjcgKiB2YWx1ZSAtIDEwOS4zOwogfQogCisvLyBUaGVz
ZSB2YWx1ZXMgd2VyZSBleHBlcmltZW50YWxseSBnYXRoZXJlZCBmcm9tIHRoZSB2YXJpb3VzIG5h
bWVkIHdlaWdodHMgb2YgU2FuIEZyYW5jaXNjby4KK3N0YXRpYyBzdHJ1Y3QgeworICAgIGZsb2F0
IGN0V2VpZ2h0OworICAgIGZsb2F0IGNzc1dlaWdodDsKK30ga2V5ZnJhbWVzW10gPSB7CisgICAg
eyAtMC44LCAzMCB9LAorICAgIHsgLTAuNCwgMjc0IH0sCisgICAgeyAwLCA0MDAgfSwKKyAgICB7
IDAuMjMsIDUxMCB9LAorICAgIHsgMC4zLCA1OTAgfSwKKyAgICB7IDAuNCwgNzAwIH0sCisgICAg
eyAwLjU2LCA4NjAgfSwKKyAgICB7IDAuNjIsIDEwMDAgfSwKK307CitzdGF0aWNfYXNzZXJ0KFdU
Rl9BUlJBWV9MRU5HVEgoa2V5ZnJhbWVzKSA+IDApOworCitzdGF0aWMgaW5saW5lIGZsb2F0IG5v
cm1hbGl6ZUNUV2VpZ2h0KGZsb2F0IHZhbHVlKQoreworICAgIGlmICh2YWx1ZSA8IGtleWZyYW1l
c1swXS5jdFdlaWdodCkKKyAgICAgICAgcmV0dXJuIGtleWZyYW1lc1swXS5jc3NXZWlnaHQ7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleWZyYW1lcykgLSAx
OyArK2kpIHsKKyAgICAgICAgYXV0byYgYmVmb3JlID0ga2V5ZnJhbWVzW2ldOworICAgICAgICBh
dXRvJiBhZnRlciA9IGtleWZyYW1lc1tpXTsKKyAgICAgICAgaWYgKHZhbHVlIDwgYmVmb3JlLmN0
V2VpZ2h0IHx8IHZhbHVlID4gYWZ0ZXIuY3RXZWlnaHQpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgZmxvYXQgcmF0aW8gPSAodmFsdWUgLSBiZWZvcmUuY3RXZWlnaHQpIC8gKGFmdGVy
LmN0V2VpZ2h0IC0gYmVmb3JlLmN0V2VpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHJhdGlvICogKGFm
dGVyLmNzc1dlaWdodCAtIGJlZm9yZS5jc3NXZWlnaHQpICsgYmVmb3JlLmNzc1dlaWdodDsKKyAg
ICB9CisgICAgcmV0dXJuIGtleWZyYW1lc1tXVEZfQVJSQVlfTEVOR1RIKGtleWZyYW1lcykgLSAx
XS5jc3NXZWlnaHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQgbm9ybWFsaXplU2xvcGUoZmxv
YXQgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlICogMzAwOwogfQogCi1zdGF0aWMgaW5saW5l
IGZsb2F0IGRlbm9ybWFsaXplV2VpZ2h0KGZsb2F0IHZhbHVlKQorc3RhdGljIGlubGluZSBmbG9h
dCBkZW5vcm1hbGl6ZUdYV2VpZ2h0KGZsb2F0IHZhbHVlKQogewogICAgIHJldHVybiAodmFsdWUg
KyAxMDkuMykgLyA1MjMuNzsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdCBkZW5vcm1hbGl6ZUNU
V2VpZ2h0KGZsb2F0IHZhbHVlKQoreworICAgIGlmICh2YWx1ZSA8IGtleWZyYW1lc1swXS5jc3NX
ZWlnaHQpCisgICAgICAgIHJldHVybiBrZXlmcmFtZXNbMF0uY3RXZWlnaHQ7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleWZyYW1lcykgLSAxOyArK2kpIHsK
KyAgICAgICAgYXV0byYgYmVmb3JlID0ga2V5ZnJhbWVzW2ldOworICAgICAgICBhdXRvJiBhZnRl
ciA9IGtleWZyYW1lc1tpXTsKKyAgICAgICAgaWYgKHZhbHVlIDwgYmVmb3JlLmNzc1dlaWdodCB8
fCB2YWx1ZSA+IGFmdGVyLmNzc1dlaWdodCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBmbG9hdCByYXRpbyA9ICh2YWx1ZSAtIGJlZm9yZS5jc3NXZWlnaHQpIC8gKGFmdGVyLmNzc1dl
aWdodCAtIGJlZm9yZS5jc3NXZWlnaHQpOworICAgICAgICByZXR1cm4gcmF0aW8gKiAoYWZ0ZXIu
Y3RXZWlnaHQgLSBiZWZvcmUuY3RXZWlnaHQpICsgYmVmb3JlLmN0V2VpZ2h0OworICAgIH0KKyAg
ICByZXR1cm4ga2V5ZnJhbWVzW1dURl9BUlJBWV9MRU5HVEgoa2V5ZnJhbWVzKSAtIDFdLmN0V2Vp
Z2h0OworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0IGRlbm9ybWFsaXplU2xvcGUoZmxvYXQgdmFs
dWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlIC8gMzAwOwpAQCAtNTIxLDYgKzU2NiwyMiBAQCBzdGF0
aWMgdm9pZCBhZGRBdHRyaWJ1dGVzRm9yRm9udFBhbGV0dGVzKENGTXV0YWJsZURpY3Rpb25hcnlS
ZWYgYXR0cmlidXRlcywgY29ucwogICAgIH0KIH0KIAorc3RhdGljIHN0ZDo6b3B0aW9uYWw8Ym9v
bD4mIG92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8c3RkOjpvcHRpb25hbDxib29sPj4gb3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxp
dHk7CisgICAgcmV0dXJuIG92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5LmdldCgpOworfQor
Cit2b2lkIHNldE92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5KGJvb2wgZW5oYW5jZSkKK3sK
KyAgICBvdmVycmlkZUVuaGFuY2VUZXh0TGVnaWJpbGl0eSgpID0gZW5oYW5jZTsKK30KKworc3Rh
dGljIGJvb2wgc2hvdWxkRW5oYW5jZVRleHRMZWdpYmlsaXR5KCkKK3sKKyAgICByZXR1cm4gb3Zl
cnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoKS52YWx1ZV9vcihfQVhTRW5oYW5jZVRleHRMZWdp
YmlsaXR5RW5hYmxlZCgpKTsKK30KKwogUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRm
b3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZv
bnREZXNjcmlwdGlvbiwgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYgZm9udENyZWF0aW9uQ29u
dGV4dCwgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zKQogewogICAgIGlmICgh
b3JpZ2luYWxGb250KQpAQCAtNjAzLDggKzY2NCwxMyBAQCBSZXRhaW5QdHI8Q1RGb250UmVmPiBw
cmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQsIGNvbnN0IEZvbnREZXNj
cgogICAgICAgICAgICAgd2lkdGggPSBzdGQ6Om1heChzdGQ6Om1pbih3aWR0aCwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KHdpZHRoVmFsdWUtPm1heGltdW0pKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHdpZHRo
VmFsdWUtPm1pbmltdW0pKTsKICAgICAgICAgaWYgKGF1dG8gc2xvcGVWYWx1ZSA9IGZvbnRDcmVh
dGlvbkNvbnRleHQuZm9udEZhY2VDYXBhYmlsaXRpZXMoKS53ZWlnaHQpCiAgICAgICAgICAgICBz
bG9wZSA9IHN0ZDo6bWF4KHN0ZDo6bWluKHNsb3BlLCBzdGF0aWNfY2FzdDxmbG9hdD4oc2xvcGVW
YWx1ZS0+bWF4aW11bSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oc2xvcGVWYWx1ZS0+bWluaW11bSkp
OworICAgICAgICBpZiAoZm9udElzU3lzdGVtRm9udChvcmlnaW5hbEZvbnQpICYmIHNob3VsZEVu
aGFuY2VUZXh0TGVnaWJpbGl0eSgpKSB7CisgICAgICAgICAgICBhdXRvIGN0V2VpZ2h0ID0gZGVu
b3JtYWxpemVDVFdlaWdodCh3ZWlnaHQpOworICAgICAgICAgICAgY3RXZWlnaHQgPSBDVEZvbnRH
ZXRBY2Nlc3NpYmlsaXR5Qm9sZFdlaWdodE9mV2VpZ2h0KGN0V2VpZ2h0KTsKKyAgICAgICAgICAg
IHdlaWdodCA9IG5vcm1hbGl6ZUNUV2VpZ2h0KGN0V2VpZ2h0KTsKKyAgICAgICAgfQogICAgICAg
ICBpZiAobmVlZHNDb252ZXJzaW9uKSB7Ci0gICAgICAgICAgICB3ZWlnaHQgPSBkZW5vcm1hbGl6
ZVdlaWdodCh3ZWlnaHQpOworICAgICAgICAgICAgd2VpZ2h0ID0gZGVub3JtYWxpemVHWFdlaWdo
dCh3ZWlnaHQpOwogICAgICAgICAgICAgd2lkdGggPSBkZW5vcm1hbGl6ZVZhcmlhdGlvbldpZHRo
KHdpZHRoKTsKICAgICAgICAgICAgIHNsb3BlID0gZGVub3JtYWxpemVTbG9wZShzbG9wZSk7CiAg
ICAgICAgIH0KQEAgLTc1Miw3ICs4MTgsNyBAQCBzdGF0aWMgZmxvYXQgc3RyZXRjaEZyb21Db3Jl
VGV4dFRyYWl0cyhDRkRpY3Rpb25hcnlSZWYgdHJhaXRzKQogCiBzdGF0aWMgdm9pZCBpbnZhbGlk
YXRlRm9udENhY2hlKCk7CiAKLXN0YXRpYyB2b2lkIGZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0No
YW5nZWROb3RpZmljYXRpb25DYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCog
b2JzZXJ2ZXIsIENGU3RyaW5nUmVmLCBjb25zdCB2b2lkICosIENGRGljdGlvbmFyeVJlZikKK3N0
YXRpYyB2b2lkIGZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRpb25DYWxs
YmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCogb2JzZXJ2ZXIsIENGU3RyaW5nUmVm
LCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmKQogewogICAgIEFTU0VSVF9VTlVTRUQob2Jz
ZXJ2ZXIsIGlzTWFpblRocmVhZCgpICYmIG9ic2VydmVyID09ICZGb250Q2FjaGU6OmZvckN1cnJl
bnRUaHJlYWQoKSk7CiAKQEAgLTc2Myw2ICs4MjksOCBAQCB2b2lkIEZvbnRDYWNoZTo6cGxhdGZv
cm1Jbml0KCkKIHsKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZp
Y2F0aW9uQ2VudGVyR2V0TG9jYWxDZW50ZXIoKSwgdGhpcywgJmZvbnRDYWNoZVJlZ2lzdGVyZWRG
b250c0NoYW5nZWROb3RpZmljYXRpb25DYWxsYmFjaywga0NURm9udE1hbmFnZXJSZWdpc3RlcmVk
Rm9udHNDaGFuZ2VkTm90aWZpY2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNp
b25CZWhhdmlvckRlbGl2ZXJJbW1lZGlhdGVseSk7CiAKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRl
ckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0TG9jYWxDZW50ZXIoKSwgdGhpcywg
JmZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRpb25DYWxsYmFjaywga0FY
U0VuaGFuY2VUZXh0TGVnaWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90
aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yRGVsaXZlckltbWVkaWF0ZWx5KTsKKwogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50ZXIgPSBDRk5vdGlm
aWNhdGlvbkNlbnRlckdldExvY2FsQ2VudGVyKCk7CiAgICAgY29uc3QgQ0ZTdHJpbmdSZWYgbm90
aWZpY2F0aW9uTmFtZSA9IGtDRkxvY2FsZUN1cnJlbnRMb2NhbGVEaWRDaGFuZ2VOb3RpZmljYXRp
b247CkBAIC0xMDYzLDExICsxMTMxLDExIEBAIHN0YXRpYyBWYXJpYXRpb25DYXBhYmlsaXRpZXMg
dmFyaWF0aW9uQ2FwYWJpbGl0aWVzRm9yRm9udERlc2NyaXB0b3IoQ1RGb250RGVzY3JpCiAKICAg
ICBpZiAoRm9udFR5cGUoZm9udC5nZXQoKSkudmFyaWF0aW9uVHlwZSA9PSBGb250VHlwZTo6VmFy
aWF0aW9uVHlwZTo6VHJ1ZVR5cGVHWCAmJiAhb3B0T3V0RnJvbUdYTm9ybWFsaXphdGlvbikgewog
ICAgICAgICBpZiAocmVzdWx0LndlaWdodCkKLSAgICAgICAgICAgIHJlc3VsdC53ZWlnaHQgPSB7
eyBub3JtYWxpemVXZWlnaHQocmVzdWx0LndlaWdodC52YWx1ZSgpLm1pbmltdW0pLCBub3JtYWxp
emVXZWlnaHQocmVzdWx0LndlaWdodC52YWx1ZSgpLm1heGltdW0pIH19OworICAgICAgICAgICAg
cmVzdWx0LndlaWdodCA9IHsgeyBub3JtYWxpemVHWFdlaWdodChyZXN1bHQud2VpZ2h0LnZhbHVl
KCkubWluaW11bSksIG5vcm1hbGl6ZUdYV2VpZ2h0KHJlc3VsdC53ZWlnaHQudmFsdWUoKS5tYXhp
bXVtKSB9IH07CiAgICAgICAgIGlmIChyZXN1bHQud2lkdGgpCi0gICAgICAgICAgICByZXN1bHQu
d2lkdGggPSB7eyBub3JtYWxpemVWYXJpYXRpb25XaWR0aChyZXN1bHQud2lkdGgudmFsdWUoKS5t
aW5pbXVtKSwgbm9ybWFsaXplVmFyaWF0aW9uV2lkdGgocmVzdWx0LndpZHRoLnZhbHVlKCkubWF4
aW11bSkgfX07CisgICAgICAgICAgICByZXN1bHQud2lkdGggPSB7IHsgbm9ybWFsaXplVmFyaWF0
aW9uV2lkdGgocmVzdWx0LndpZHRoLnZhbHVlKCkubWluaW11bSksIG5vcm1hbGl6ZVZhcmlhdGlv
bldpZHRoKHJlc3VsdC53aWR0aC52YWx1ZSgpLm1heGltdW0pIH0gfTsKICAgICAgICAgaWYgKHJl
c3VsdC5zbG9wZSkKLSAgICAgICAgICAgIHJlc3VsdC5zbG9wZSA9IHt7IG5vcm1hbGl6ZVNsb3Bl
KHJlc3VsdC5zbG9wZS52YWx1ZSgpLm1pbmltdW0pLCBub3JtYWxpemVTbG9wZShyZXN1bHQuc2xv
cGUudmFsdWUoKS5tYXhpbXVtKSB9fTsKKyAgICAgICAgICAgIHJlc3VsdC5zbG9wZSA9IHsgeyBu
b3JtYWxpemVTbG9wZShyZXN1bHQuc2xvcGUudmFsdWUoKS5taW5pbXVtKSwgbm9ybWFsaXplU2xv
cGUocmVzdWx0LnNsb3BlLnZhbHVlKCkubWF4aW11bSkgfSB9OwogICAgIH0KIAogICAgIGF1dG8g
bWluaW11bSA9IHN0YXRpY19jYXN0PGZsb2F0PihGb250U2VsZWN0aW9uVmFsdWU6Om1pbmltdW1W
YWx1ZSgpKTsKQEAgLTE2ODYsNCArMTc1NCw0IEBAIHZvaWQgRm9udENhY2hlOjpwcmV3YXJtR2xv
YmFsbHkoKQogI2VuZGlmCiB9CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVU
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVD
b3JlVGV4dC5oCmluZGV4IDAwMzVhYmExZDNmNDQ5ZTJlNGZhNzY1MzFmMGM0MDg5MDVmODVkOTYu
LjE2YzNlY2E0Y2U3NDdjNmFiMDdlYjAzNWNmMzcxM2Y5NDUzZWY2NWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29y
ZVRleHQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIw
MjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNzIsNiArNzIsNyBAQCBSZXRhaW5QdHI8Q1RGb250UmVmPiBjcmVhdGVG
b250Rm9ySW5zdGFsbGVkRm9udHMoQ1RGb250RGVzY3JpcHRvclJlZiwgQ0dGbG9hdCBzaQogUmV0
YWluUHRyPENURm9udFJlZj4gY3JlYXRlRm9udEZvckluc3RhbGxlZEZvbnRzKENURm9udFJlZiwg
QWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOwogdm9pZCBhZGRBdHRyaWJ1dGVzRm9yV2ViRm9udHMo
Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBBbGxvd1VzZXJJbnN0YWxsZWRGb250
cyk7CiBSZXRhaW5QdHI8Q0ZTZXRSZWY+IGluc3RhbGxlZEZvbnRNYW5kYXRvcnlBdHRyaWJ1dGVz
KEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKLQogVmFyaWF0aW9uRGVmYXVsdHNNYXAgZGVmYXVs
dFZhcmlhdGlvblZhbHVlcyhDVEZvbnRSZWYsIFNob3VsZExvY2FsaXplQXhpc05hbWVzKTsKLX0K
K1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoYm9v
bCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCA1NjcwYjZiZmE2N2UzZGI2ZGI3NjgyODk2NmI2MmZiNTExOGRjM2ExLi5lZGY0
M2MyYThmNTBmYmY5ODZmY2QxMDIyMzk4YmQ4NzE3OTdhYTA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEz
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNjIsNiArMzYyLDEwIEBACiAjaW5jbHVkZSAiVGV4dFJlY29n
bml0aW9uUmVzdWx0LmgiCiAjZW5kaWYKIAorI2lmIFVTRShDT1JFX1RFWFQpCisjaW5jbHVkZSAi
Rm9udENhY2hlQ29yZVRleHQuaCIKKyNlbmRpZgorCiB1c2luZyBKU0M6OkNhbGxEYXRhOwogdXNp
bmcgSlNDOjpDb2RlQmxvY2s7CiB1c2luZyBKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTsKQEAgLTE5
MDMsNiArMTkwNywxNSBAQCB2b2lkIEludGVybmFsczo6c2V0Rm9udFNtb290aGluZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQogICAgIEZvbnRDYXNjYWRlOjpzZXRTaG91bGRVc2VTbW9vdGhpbmcoZW5h
YmxlZCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRPdmVycmlkZUVuaGFuY2VUZXh0TGVnaWJp
bGl0eShib29sIGVuaGFuY2UpCit7CisjaWYgVVNFKENPUkVfVEVYVCkKKyAgICBXZWJDb3JlOjpz
ZXRPdmVycmlkZUVuaGFuY2VUZXh0TGVnaWJpbGl0eShlbmhhbmNlKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGVuaGFuY2UpOworI2VuZGlmCit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVy
bmFsczo6c2V0TG93UG93ZXJNb2RlRW5hYmxlZChib29sIGlzRW5hYmxlZCkKIHsKICAgICBhdXRv
KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKaW5kZXggOTczNDZkOWRiMjk1YzU0ZjJkNGUwNWFkMWUyZTA4YTYyYTZjODEyOS4uMGQ1Nzcx
NDc1OGZmODI5MzBmNTllZDU4MDE0OTI0NTQ5NmNmZDgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMTEsNiArMzExLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbnZhbGlk
YXRlRm9udENhY2hlKCk7CiAgICAgdm9pZCBzZXRGb250U21vb3RoaW5nRW5hYmxlZChib29sKTsK
KyAgICB2b2lkIHNldE92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5KGJvb2wpOwogCiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0TG93UG93ZXJNb2RlRW5hYmxlZChib29sKTsKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRPdXRzaWRlVmlld3BvcnRUaHJvdHRsaW5nRW5hYmxlZChib29sKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA0ODZlNWQxNTcwYTgyYjhlOGY5
Yzk0M2MwNTEwOTllOTUyMzFlZTZmLi4yZDFiYjZhNDQ0YTc4YjNkYThlMmQ4NTMxMjBlNWUxZWVm
MWNhYzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0xLDYgKzEsNiBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MTgsNiArNDE4
LDcgQEAgdHlwZWRlZiAoRmV0Y2hSZXF1ZXN0IG9yIEZldGNoUmVzcG9uc2UpIEZldGNoT2JqZWN0
OwogCiAgICAgdW5kZWZpbmVkIGludmFsaWRhdGVGb250Q2FjaGUoKTsKICAgICB1bmRlZmluZWQg
c2V0Rm9udFNtb290aGluZ0VuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKyAgICB1bmRlZmluZWQg
c2V0T3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoYm9vbGVhbiBlbmhhbmNlKTsKIAogICAg
IHVuZGVmaW5lZCBzZXRTY3JvbGxWaWV3UG9zaXRpb24obG9uZyB4LCBsb25nIHkpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNWNmN2QyMGI3ZjRjODNiM2JjY2M4MTExNmU4YjJjMTkwMTU2NWE2OC4uMzEwNzEwZGQ0MGZj
NGM0NjZhNDYyNWFhZTY4ZWQwMjE3MmUxNDNjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIy
LTAzLTIzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvY29hXSBSRUdSRVNTSU9OKHIyODEyOTEpOiBXaGVuIGFjY2Vzc2liaWxpdHkgYm9sZCBp
cyBlbmFibGVkLCBmb250LWZhbWlseTpzeXN0ZW0tdWkgaXMgc3VwcG9zZWQgdG8gYmUgYm9sZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3ODE3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84ODI0OTI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHRlc3QgaGFzIDwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgcnVuU2luZ2x5PXRydWUgXSAtLT4gc28gdGhlIHRlc3RpbmcKKyAgICAgICAgaW5m
cmFzdHJ1Y3R1cmUgZm9yIGFjY2Vzc2liaWxpdHkgYm9sZCBjYW4gYmUgd2ViLXByb2Nlc3MtZ2xv
YmFsLgorCisgICAgICAgICogZmFzdC90ZXh0L2FjY2Vzc2liaWxpdHktYm9sZC1leHBlY3RlZC1t
aXNtYXRjaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1i
b2xkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
OiBCZWNhdXNlIHRoaXMgdGVzdCByZWxpZXMgb24gYSB3ZWJraXQtdGVzdC1ydW5uZXIKKyAgICAg
ICAgICAgICAgaGVhZGVyLCBza2lwIGl0IG9uIFdLMS4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9uczogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0
RXhwZWN0YXRpb25zOiBNYXJrIGFzIFBBU1MuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9U
ZXN0RXhwZWN0YXRpb25zOiBEaXR0by4KKwogMjAyMi0wMy0yMyAgTWF0dGVvIEZsb3JlcyAgPG1h
dHRlb19mbG9yZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyBy
MjkxNzIxLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTRiYWY4YWZmYjQ0NzY2NzliNTgzNmMwYzg2
NGRhYjljZGY4YjA3OS4uZmJmNDZlNjZlMWEyNWVhMWQ3YjhhNWQyNGNiOTY5NDRiOWQyN2FlNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC01MTcyLDMgKzUxNzIsNiBAQCBmYXN0L2NhbnZhcy9sYXJn
ZS1nZXRJbWFnZURhdGEuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIzNzEwOCBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2V4dGVuc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzIzNzEwOCBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUt
ZnJhbWUtcGFyYW1ldGVyLmh0bWwgWyBGYWlsdXJlIF0gIyA8cmRhcjovL3Byb2JsZW0vMzM4NTAx
ODk+CiB3ZWJraXQub3JnL2IvMjM3MTA4IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aGFuZHNoYWtlLW9rLXdpdGgtbGVnYWN5LXNlYy13ZWJzb2NrZXQtcmVzcG9uc2UtaGVhZGVycy5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KKworIyBUaGlzIHRlc3QgaXMgb25seSByZWxldmFudCBvbiBB
cHBsZSBwbGF0Zm9ybXMuCitmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwgWyBQYXNz
IEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2Fj
Y2Vzc2liaWxpdHktYm9sZC1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2FjY2Vzc2liaWxpdHktYm9sZC1leHBlY3RlZC1taXNtYXRjaC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY2YzZiOTcwNWRhZTZmZGQxMTNmZWJkMjA4MmMwNTZmNmU1YWM1OGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLWV4cGVjdGVk
LW1pc21hdGNoLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBydW5TaW5nbHk9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMuaW52
YWxpZGF0ZUZvbnRDYWNoZSgpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0T3ZlcnJpZGVFbmhh
bmNlVGV4dExlZ2liaWxpdHkoZmFsc2UpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
K1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgYWNjZXNzaWJpbGl0eSBib2xkIGlzIGFwcGxpZWQg
dG8gZm9udC1mYW1pbHk6IHN5c3RlbS11aS4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSB0ZXh0IGJl
bG93IGlzIGJvbGQuCis8cCBzdHlsZT0iZm9udDogMjRweCBzeXN0ZW0tdWk7Ij5IZWxsbyB0aGlz
IGlzIHRleHQ8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
YWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ1Yzg5Mzg5Y2U1NWNjZTEzYjIw
MzY2Y2QyM2YwY2U1MDg3ZmQ0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC9hY2Nlc3NpYmlsaXR5LWJvbGQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUg
aHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHJ1blNpbmdseT10cnVlIF0gLS0+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgd2luZG93
LmludGVybmFscy5pbnZhbGlkYXRlRm9udENhY2hlKCk7CisgICAgd2luZG93LmludGVybmFscy5z
ZXRPdmVycmlkZUVuaGFuY2VUZXh0TGVnaWJpbGl0eSh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGFjY2Vzc2liaWxpdHkgYm9s
ZCBpcyBhcHBsaWVkIHRvIGZvbnQtZmFtaWx5OiBzeXN0ZW0tdWkuIFRoZSB0ZXN0IHBhc3NlcyBp
ZiB0aGUgdGV4dCBiZWxvdyBpcyBib2xkLgorPHAgc3R5bGU9ImZvbnQ6IDI0cHggc3lzdGVtLXVp
OyI+SGVsbG8gdGhpcyBpcyB0ZXh0PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDY3ZjEyMTNkYTVjYzdi
MjkxMGE0ZWUyYzkyOTgwYjAxOWJhZjQzODUuLjZjMWUyZWZjYTc0YjkxNDc2Y2RhZTg5ZDYxNTA0
NDE3YzkxNjllYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTIzMzMsNCArMjMzMyw2IEBAIGh0dHAvdGVzdHMvbW9kZWwvbW9kZWwtZG9j
dW1lbnQtaW50ZXJhY3RpdmUuaHRtbCBbIFNraXAgXQogYWNjZXNzaWJpbGl0eS9tb2RlbC1lbGVt
ZW50LWF0dHJpYnV0ZXMuaHRtbCBbIFNraXAgXQogbW9kZWwtZWxlbWVudC9tb2RlbC1lbGVtZW50
LWludGVyYWN0aXZlLmh0bWwgWyBTa2lwIF0KIAotd2Via2l0Lm9yZy9iLzIzNzM1OCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXRhcmdl
dC1tYXJnaW4tMDA1Lmh0bWwgWyBGYWlsdXJlIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cit3ZWJraXQub3JnL2IvMjM3MzU4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDUuaHRtbCBbIEZhaWx1cmUg
XQorCitmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzBkYWFkYTdjM2Q1ZmFhOTc2
NTQzY2QwYzUxZDk5MDExYTExYzE3ZS4uNGUxM2VjYjI3NmJlZWE3Mjc0MjY1MjliNmYyNWNmYTk5
MzgyNDYzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTM1NjQsMyArMzU2NCw2IEBAIHdlYmtpdC5vcmcvYi8yMzc0MzMgZWRpdGluZy9wYXN0ZWJvYXJk
LzQwNzYyNjctMy5odG1sIFsgVGltZW91dCBQYXNzIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIz
NzQzMyBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLmh0bWwgWyBUaW1lb3V0
IFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMzc5NTUgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wNDQuaHRtbCBbIEZhaWx1cmUgXQorCisjIGZhc3QvdGV4dC9hY2Nlc3NpYmls
aXR5LWJvbGQuaHRtbCByZXF1aXJlcyBXSzIuIFRoZSAqKiotd2syL1Rlc3RFeHBlY3RhdGlvbiBm
aWxlcyBtYXJrIGl0IGFzIFBBU1MuCitmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwg
WyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAxOGNiOTgyNjQ5ZmEzMjc1M2M5OTVkNzE4NTE3NjM5ZjE0ZmE2MWZiLi44NWUxNzUy
NjE3MDI5ZjcyMDM2Yzk1YjA1MjNmN2U4OWMxYzI0MjkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjk0LDMgKzE2OTQsNiBAQCB3ZWJr
aXQub3JnL2IvMjM2NDk2IGZhc3QvbWVkaWFzdHJlYW0vY2FwdHVyZVN0cmVhbS9jYW52YXMzZC5o
dG1sIFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMjM3MDk1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3MvbXVsdGlwbGUtd29ya2Vycy8wMDQuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMzcxNjUgWyBCaWdTdXIrIERlYnVnIF0g
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvZHluYW1pYy1t
YXJrdXAtaW5zZXJ0aW9uL29wZW5pbmctdGhlLWlucHV0LXN0cmVhbS9xdWlya3Mud2luZG93Lmh0
bWwgWyBQYXNzIENyYXNoIF0KKworIyBNb250ZXJleSBhbmQgbGF0ZXIgdXNlIHRoZSBzeXN0ZW0g
Zm9udCdzIHZhcmlhYmxlLW5lc3MuCitbIE1vbnRlcmV5KyBdIGZhc3QvdGV4dC9hY2Nlc3NpYmls
aXR5LWJvbGQuaHRtbCBbIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBjZGRkYmNlY2NiNzQzZjA0MDcxMzUzODc5N2IzNjU5YWM0YmZjYjU1Li5j
MDVhNjgzYTdhYjdkYTM5MGQxYjRhNzVlZDUxNmMxYzcxNDQwNTgwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQxMCwzICsyNDEwLDUgQEAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvZXZlbnQtdGltZW91dC1vcmRlci5hbnkud29y
a2VyLmh0bWwgWyBGYWlsdXIKIAogd2Via2l0Lm9yZy9iLzIzNzE2NiBbIEJpZ1N1cisgXSB3ZWJn
bC9wZW5kaW5nL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdGV4LWltYWdlLXZpZGVvLXJlcGVh
dGVkLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCisjIGZhc3QvdGV4dC9hY2Nlc3NpYmlsaXR5LWJv
bGQuaHRtbCByZXF1aXJlcyBXSzIuIFRoZSAqKiotd2syL1Rlc3RFeHBlY3RhdGlvbiBmaWxlcyBt
YXJrIGl0IGFzIFBBU1MuCitmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwgWyBTa2lw
IF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455561</attachid>
            <date>2022-03-23 14:44:01 -0700</date>
            <delta_ts>2022-03-23 23:45:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237817-20220323144401.patch</filename>
            <type>text/plain</type>
            <size>24228</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZiMzNhN2I0NWYzZjc4
NmY2MDE5ZjZmYzEyMTVjNWFiOWEzNWFmMC4uZTRjMWMxNTIyZjYxYWVhMmFmYjYxOTE5MTAxYTNl
YmRjNzdjMDUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIyLTAzLTIzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBS
RUdSRVNTSU9OKHIyODEyOTEpOiBXaGVuIGFjY2Vzc2liaWxpdHkgYm9sZCBpcyBlbmFibGVkLCBm
b250LWZhbWlseTpzeXN0ZW0tdWkgaXMgc3VwcG9zZWQgdG8gYmUgYm9sZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3ODE3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84ODI0OTI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBY2Nlc3NpYmlsaXR5IGJvbGQgaXMgc3VwcG9zZWQgdG8gY2F1c2UgdGhl
IHN5c3RlbSBmb250IHRvIGJlIHJlbmRlcmVkIGFzIGJvbGQsIGV2ZW4gaWYgdGhlCisgICAgICAg
IHZhbHVlIG9mIHRoZSBmb250LXdlaWdodCBwcm9wZXJ0eSBpcyBub3JtYWwuCisKKyAgICAgICAg
VGhlIHdheSB0aGlzIGlzIG9yaWdpbmFsbHkgc3VwcG9zZWQgdG8gd29yayBpcyB0aGF0LCB3aGVu
IGFjY2Vzc2liaWxpdHkgYm9sZCBpcyBlbmFibGVkIGFuZAorICAgICAgICBzb2Z0d2FyZSBhc2tz
IGZvciB0aGUgc3lzdGVtIGZvbnQsIHRoZSBmb250IHJlcG9ydHMgdG8gbm90IGJlIGJvbGQsIGJ1
dCB0aGUgbWV0cmljcy9jb250b3VycworICAgICAgICBlbmQgdXAgdmlzdWFsbHkgYm9sZCB0byB0
aGUgdXNlci4gRm9udCB2YXJpYXRpb25zLCBob3dldmVyLCBhcmUgYSBsb3dlci1sZXZlbCBpbnRl
cmZhY2UgdG8KKyAgICAgICAgdGhlIGZvbnQsIGFuZCBkb24ndCBhYmlkZSBieSB0aGUgZmFjYWRl
LiBTbywgYmVmb3JlIHIyODEyOTEsIHdlIHdlcmVuJ3QgYXBwbHlpbmcgZm9udCB2YXJpYXRpb25z
CisgICAgICAgIHRvIHRoZSBzeXN0ZW0gZm9udCwgc28gdGhlIGZhY2FkZSB3YXMgbWFpbnRhaW5l
ZCwgYnV0IHIyODEyOTEgc3RhcnRlZCBhcHBseWluZyB2YXJpYXRpb25zIHRvIHRoZQorICAgICAg
ICBzeXN0ZW0gZm9udCwgdGhlcmVieSBicmVha2luZyB0aGlzIGFjY2Vzc2liaWxpdHkgYm9sZCBz
ZXR0aW5nLgorCisgICAgICAgIFRoZSBzb2x1dGlvbiBpcyB0byByZS1pbXBsZW1lbnQgYWNjZXNz
aWJpbGl0eSBib2xkIHdoZW4gd2UgYXBwbHkgZm9udCB2YXJpYXRpb25zLiBBdCB0aGUgcG9pbnQK
KyAgICAgICAgd2hlcmUgd2UgYXBwbHkgdGhlIHdlaWdodCB2YXJpYXRpb24sIHdlIHNob3VsZCBk
ZXRlcm1pbmUgaWYgYWNjZXNzaWJpbGl0eSBib2xkIGlzIGluIGVmZmVjdCwgYW5kCisgICAgICAg
IGlmIGl0IGlzLCBhcnRpZmljaWFsbHkgaW5jcmVhc2UgdGhlIHdlaWdodCBvZiB0aGUgY3JlYXRl
ZCBmb250IGFjY29yZGluZyB0byB0aGUgcGxhdGZvcm0ncworICAgICAgICBpbmZsYXRpb24gYW1v
dW50LiBUaGVyZSBhcmUgYSBmZXcgU1BJIGZ1bmN0aW9ucyB3aGljaCBhaWQgaW4gdGhpcyBlbmRl
YXZvci4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmZvbnRJc1N5c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bm9ybWFsaXplR1hXZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6bm9ybWFsaXplQ1RXZWln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6ZGVub3JtYWxpemVHWFdlaWdodCk6CisgICAgICAgIChX
ZWJDb3JlOjpkZW5vcm1hbGl6ZUNUV2VpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Om92ZXJyaWRl
RW5oYW5jZVRleHRMZWdpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlRW5o
YW5jZVRleHRMZWdpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEVuaGFuY2VUZXh0
TGVnaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVwYXJlUGxhdGZvcm1Gb250KToKKyAg
ICAgICAgKFdlYkNvcmU6OmZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRp
b25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnBsYXRmb3JtSW5pdCk6
CisgICAgICAgIChXZWJDb3JlOjp2YXJpYXRpb25DYXBhYmlsaXRpZXNGb3JGb250RGVzY3JpcHRv
cik6CisgICAgICAgIChXZWJDb3JlOjpub3JtYWxpemVXZWlnaHQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZGVub3JtYWxpemVXZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0Lmg6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRPdmVycmlk
ZUVuaGFuY2VUZXh0TGVnaWJpbGl0eSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjItMDMtMjMgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBNU0UtYmFja2VkIHZp
ZGVvcyBmYWlsIHRvIHBsYXkgaW4gQ2FwdGl2ZSBQb3J0YWwgbW9kZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
aW5kZXggODc4OGVlOTRlZjc3YjVlYWRiOTkzMzI3ZDdmNDRiZmI1M2Q5ZmQyYi4uOGNlYmQwODdi
MmNlY2FhOTIxOThmNTBlZmRmNDAxZTNmZmQzNTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMjItMDMtMjMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJFR1JFU1NJT04ocjI4MTI5MSk6IFdoZW4gYWNj
ZXNzaWJpbGl0eSBib2xkIGlzIGVuYWJsZWQsIGZvbnQtZmFtaWx5OnN5c3RlbS11aSBpcyBzdXBw
b3NlZCB0byBiZSBib2xkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzc4MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg4MjQ5MjQxPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9jZi9D
b3JlVGV4dFNQSS5oOgorICAgICAgICAqIHBhbC9zcGkvY29jb2EvQWNjZXNzaWJpbGl0eVN1cHBv
cnRTUEkuaDoKKwogMjAyMi0wMy0yMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIER1c3Qgb2ZmIE1hYyBDTWFrZSBidWlsZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ29yZVRleHRTUEkuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmgKaW5kZXggZjI1N2UxYTg4NGZlMzNj
YTY0NTgxNTg4ZDI0NWQ4ZmQ1NWVkYmYyYi4uOThhNDQ3MmM0YmMyZTQ2Y2MyYWY2MmJhOWQ1YThh
ZTdkZTFlZjQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ29y
ZVRleHRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9Db3JlVGV4dFNQ
SS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMiBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0xNDksNiArMTQ5LDcgQEAgQ0ZBcnJheVJlZiBDVEZvbnRNYW5hZ2VyQ3JlYXRl
Rm9udERlc2NyaXB0b3JzRnJvbURhdGEoQ0ZEYXRhUmVmKTsKIGJvb2wgQ1RGb250TWFuYWdlckVu
YWJsZUFsbFVzZXJGb250cyhib29sIHBvc3RGb250Q2hhbmdlTm90aWZpY2F0aW9uKTsKIAogdm9p
ZCBDVFBhcmFncmFwaFN0eWxlU2V0Q29tcG9zaXRpb25MYW5ndWFnZShDVFBhcmFncmFwaFN0eWxl
UmVmLCBDVENvbXBvc2l0aW9uTGFuZ3VhZ2UpOworQ0dGbG9hdCBDVEZvbnRHZXRBY2Nlc3NpYmls
aXR5Qm9sZFdlaWdodE9mV2VpZ2h0KENHRmxvYXQpOwogCiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdS
ZWYga0NURm9udENTU1dlaWdodEF0dHJpYnV0ZTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBr
Q1RGb250Q1NTV2lkdGhBdHRyaWJ1dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jb2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaAppbmRleCBmMmQzYzBj
ZmYzODY2Yjc4NjllOGI5MmNjODk5Mzc0ZmM1NTZlOGU3Li42MTRiZjliMmYxYmRjNTFmODg1YzA5
MzA4NzFiOTAwYzljNzAwMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jb2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Nyw2ICs0Nyw5IEBA
IEFYU0lzb2xhdGVkVHJlZU1vZGUgX0FYU0lzb2xhdGVkVHJlZU1vZGUodm9pZCk7CiB2b2lkIF9B
WFNTZXRJc29sYXRlZFRyZWVNb2RlKEFYU0lzb2xhdGVkVHJlZU1vZGUpOwogI2VuZGlmIC8vIEVO
QUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCiAKK2V4dGVybiBDRlN0cmluZ1JlZiBr
QVhTRW5oYW5jZVRleHRMZWdpYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbjsKK0Jvb2xlYW4gX0FY
U0VuaGFuY2VUZXh0TGVnaWJpbGl0eUVuYWJsZWQodm9pZCk7CisKIFdURl9FWFRFUk5fQ19FTkQK
IAogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5j
cHAKaW5kZXggZTYxNzc5ODFmMWU1ODNlOGY0ZDcxYjEzMWViMTYyNzJhNThlNjdiNy4uZGVhZTMy
MjNjYjMxNTNmZjMxZmViZjYzNmQxOTA1MmMyNjU0MjM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTeXN0ZW1Gb250RGF0YWJhc2VDb3Jl
VGV4dC5oIgogI2luY2x1ZGUgPENvcmVUZXh0L1NGTlRMYXlvdXRUeXBlcy5oPgogI2luY2x1ZGUg
PHBhbC9zcGkvY2YvQ29yZVRleHRTUEkuaD4KKyNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0FjY2Vz
c2liaWxpdHlTdXBwb3J0U1BJLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC0zNTAsNyArMzUx
LDYgQEAgVmFyaWF0aW9uRGVmYXVsdHNNYXAgZGVmYXVsdFZhcmlhdGlvblZhbHVlcyhDVEZvbnRS
ZWYgZm9udCwgU2hvdWxkTG9jYWxpemVBeGlzTmEKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0j
aWYgVVNFKE5PTl9WQVJJQUJMRV9TWVNURU1fRk9OVCkKIHN0YXRpYyBpbmxpbmUgYm9vbCBmb250
SXNTeXN0ZW1Gb250KENURm9udFJlZiBmb250KQogewogICAgIGlmIChpc1N5c3RlbUZvbnQoZm9u
dCkpCkBAIC0zNTksMjUgKzM1OSw3MCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZm9udElzU3lzdGVt
Rm9udChDVEZvbnRSZWYgZm9udCkKICAgICBhdXRvIG5hbWUgPSBhZG9wdENGKENURm9udENvcHlQ
b3N0U2NyaXB0TmFtZShmb250KSk7CiAgICAgcmV0dXJuIGZvbnROYW1lSXNTeXN0ZW1Gb250KG5h
bWUuZ2V0KCkpOwogfQotI2VuZGlmCiAKIC8vIFRoZXNlIHZhbHVlcyB3ZXJlIGNhbGN1bGF0ZWQg
YnkgcGVyZm9ybWluZyBhIGxpbmVhciByZWdyZXNzaW9uIG9uIHRoZSBDU1Mgd2VpZ2h0cy93aWR0
aHMvc2xvcGVzIGFuZCBDb3JlIFRleHQgd2VpZ2h0cy93aWR0aHMvc2xvcGVzIG9mIFNhbiBGcmFu
Y2lzY28uCiAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzMxMzEyNjAyPiBHZXQgdGhlIHJlYWwg
dmFsdWVzIGZyb20gQ29yZSBUZXh0Lgotc3RhdGljIGlubGluZSBmbG9hdCBub3JtYWxpemVXZWln
aHQoZmxvYXQgdmFsdWUpCitzdGF0aWMgaW5saW5lIGZsb2F0IG5vcm1hbGl6ZUdYV2VpZ2h0KGZs
b2F0IHZhbHVlKQogewogICAgIHJldHVybiA1MjMuNyAqIHZhbHVlIC0gMTA5LjM7CiB9CiAKKy8v
IFRoZXNlIHZhbHVlcyB3ZXJlIGV4cGVyaW1lbnRhbGx5IGdhdGhlcmVkIGZyb20gdGhlIHZhcmlv
dXMgbmFtZWQgd2VpZ2h0cyBvZiBTYW4gRnJhbmNpc2NvLgorc3RhdGljIHN0cnVjdCB7CisgICAg
ZmxvYXQgY3RXZWlnaHQ7CisgICAgZmxvYXQgY3NzV2VpZ2h0OworfSBrZXlmcmFtZXNbXSA9IHsK
KyAgICB7IC0wLjgsIDMwIH0sCisgICAgeyAtMC40LCAyNzQgfSwKKyAgICB7IDAsIDQwMCB9LAor
ICAgIHsgMC4yMywgNTEwIH0sCisgICAgeyAwLjMsIDU5MCB9LAorICAgIHsgMC40LCA3MDAgfSwK
KyAgICB7IDAuNTYsIDg2MCB9LAorICAgIHsgMC42MiwgMTAwMCB9LAorfTsKK3N0YXRpY19hc3Nl
cnQoV1RGX0FSUkFZX0xFTkdUSChrZXlmcmFtZXMpID4gMCk7CisKK3N0YXRpYyBpbmxpbmUgZmxv
YXQgbm9ybWFsaXplQ1RXZWlnaHQoZmxvYXQgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlIDwga2V5
ZnJhbWVzWzBdLmN0V2VpZ2h0KQorICAgICAgICByZXR1cm4ga2V5ZnJhbWVzWzBdLmNzc1dlaWdo
dDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoa2V5ZnJhbWVz
KSAtIDE7ICsraSkgeworICAgICAgICBhdXRvJiBiZWZvcmUgPSBrZXlmcmFtZXNbaV07CisgICAg
ICAgIGF1dG8mIGFmdGVyID0ga2V5ZnJhbWVzW2ldOworICAgICAgICBpZiAodmFsdWUgPCBiZWZv
cmUuY3RXZWlnaHQgfHwgdmFsdWUgPiBhZnRlci5jdFdlaWdodCkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBmbG9hdCByYXRpbyA9ICh2YWx1ZSAtIGJlZm9yZS5jdFdlaWdodCkgLyAo
YWZ0ZXIuY3RXZWlnaHQgLSBiZWZvcmUuY3RXZWlnaHQpOworICAgICAgICByZXR1cm4gcmF0aW8g
KiAoYWZ0ZXIuY3NzV2VpZ2h0IC0gYmVmb3JlLmNzc1dlaWdodCkgKyBiZWZvcmUuY3NzV2VpZ2h0
OworICAgIH0KKyAgICByZXR1cm4ga2V5ZnJhbWVzW1dURl9BUlJBWV9MRU5HVEgoa2V5ZnJhbWVz
KSAtIDFdLmNzc1dlaWdodDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdCBub3JtYWxpemVTbG9w
ZShmbG9hdCB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgKiAzMDA7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgZmxvYXQgZGVub3JtYWxpemVXZWlnaHQoZmxvYXQgdmFsdWUpCitzdGF0aWMgaW5saW5l
IGZsb2F0IGRlbm9ybWFsaXplR1hXZWlnaHQoZmxvYXQgdmFsdWUpCiB7CiAgICAgcmV0dXJuICh2
YWx1ZSArIDEwOS4zKSAvIDUyMy43OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0IGRlbm9ybWFs
aXplQ1RXZWlnaHQoZmxvYXQgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlIDwga2V5ZnJhbWVzWzBd
LmNzc1dlaWdodCkKKyAgICAgICAgcmV0dXJuIGtleWZyYW1lc1swXS5jdFdlaWdodDsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoa2V5ZnJhbWVzKSAtIDE7ICsr
aSkgeworICAgICAgICBhdXRvJiBiZWZvcmUgPSBrZXlmcmFtZXNbaV07CisgICAgICAgIGF1dG8m
IGFmdGVyID0ga2V5ZnJhbWVzW2ldOworICAgICAgICBpZiAodmFsdWUgPCBiZWZvcmUuY3NzV2Vp
Z2h0IHx8IHZhbHVlID4gYWZ0ZXIuY3NzV2VpZ2h0KQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIGZsb2F0IHJhdGlvID0gKHZhbHVlIC0gYmVmb3JlLmNzc1dlaWdodCkgLyAoYWZ0ZXIu
Y3NzV2VpZ2h0IC0gYmVmb3JlLmNzc1dlaWdodCk7CisgICAgICAgIHJldHVybiByYXRpbyAqIChh
ZnRlci5jdFdlaWdodCAtIGJlZm9yZS5jdFdlaWdodCkgKyBiZWZvcmUuY3RXZWlnaHQ7CisgICAg
fQorICAgIHJldHVybiBrZXlmcmFtZXNbV1RGX0FSUkFZX0xFTkdUSChrZXlmcmFtZXMpIC0gMV0u
Y3RXZWlnaHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQgZGVub3JtYWxpemVTbG9wZShmbG9h
dCB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgLyAzMDA7CkBAIC01MjEsNiArNTY2LDIyIEBA
IHN0YXRpYyB2b2lkIGFkZEF0dHJpYnV0ZXNGb3JGb250UGFsZXR0ZXMoQ0ZNdXRhYmxlRGljdGlv
bmFyeVJlZiBhdHRyaWJ1dGVzLCBjb25zCiAgICAgfQogfQogCitzdGF0aWMgc3RkOjpvcHRpb25h
bDxib29sPiYgb3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxzdGQ6Om9wdGlvbmFsPGJvb2w+PiBvdmVycmlkZUVuaGFuY2VUZXh0TGVn
aWJpbGl0eTsKKyAgICByZXR1cm4gb3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkuZ2V0KCk7
Cit9CisKK3ZvaWQgc2V0T3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoYm9vbCBlbmhhbmNl
KQoreworICAgIG92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5KCkgPSBlbmhhbmNlOworfQor
CitzdGF0aWMgYm9vbCBzaG91bGRFbmhhbmNlVGV4dExlZ2liaWxpdHkoKQoreworICAgIHJldHVy
biBvdmVycmlkZUVuaGFuY2VUZXh0TGVnaWJpbGl0eSgpLnZhbHVlX29yKF9BWFNFbmhhbmNlVGV4
dExlZ2liaWxpdHlFbmFibGVkKCkpOworfQorCiBSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJl
UGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQsIGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRp
b25Db250ZXh0LCBib29sIGFwcGx5V2VpZ2h0V2lkdGhTbG9wZVZhcmlhdGlvbnMpCiB7CiAgICAg
aWYgKCFvcmlnaW5hbEZvbnQpCkBAIC02MDMsOCArNjY0LDEzIEBAIFJldGFpblB0cjxDVEZvbnRS
ZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwgY29uc3QgRm9u
dERlc2NyCiAgICAgICAgICAgICB3aWR0aCA9IHN0ZDo6bWF4KHN0ZDo6bWluKHdpZHRoLCBzdGF0
aWNfY2FzdDxmbG9hdD4od2lkdGhWYWx1ZS0+bWF4aW11bSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4o
d2lkdGhWYWx1ZS0+bWluaW11bSkpOwogICAgICAgICBpZiAoYXV0byBzbG9wZVZhbHVlID0gZm9u
dENyZWF0aW9uQ29udGV4dC5mb250RmFjZUNhcGFiaWxpdGllcygpLndlaWdodCkKICAgICAgICAg
ICAgIHNsb3BlID0gc3RkOjptYXgoc3RkOjptaW4oc2xvcGUsIHN0YXRpY19jYXN0PGZsb2F0Pihz
bG9wZVZhbHVlLT5tYXhpbXVtKSksIHN0YXRpY19jYXN0PGZsb2F0PihzbG9wZVZhbHVlLT5taW5p
bXVtKSk7CisgICAgICAgIGlmIChmb250SXNTeXN0ZW1Gb250KG9yaWdpbmFsRm9udCkgJiYgc2hv
dWxkRW5oYW5jZVRleHRMZWdpYmlsaXR5KCkpIHsKKyAgICAgICAgICAgIGF1dG8gY3RXZWlnaHQg
PSBkZW5vcm1hbGl6ZUNUV2VpZ2h0KHdlaWdodCk7CisgICAgICAgICAgICBjdFdlaWdodCA9IENU
Rm9udEdldEFjY2Vzc2liaWxpdHlCb2xkV2VpZ2h0T2ZXZWlnaHQoY3RXZWlnaHQpOworICAgICAg
ICAgICAgd2VpZ2h0ID0gbm9ybWFsaXplQ1RXZWlnaHQoY3RXZWlnaHQpOworICAgICAgICB9CiAg
ICAgICAgIGlmIChuZWVkc0NvbnZlcnNpb24pIHsKLSAgICAgICAgICAgIHdlaWdodCA9IGRlbm9y
bWFsaXplV2VpZ2h0KHdlaWdodCk7CisgICAgICAgICAgICB3ZWlnaHQgPSBkZW5vcm1hbGl6ZUdY
V2VpZ2h0KHdlaWdodCk7CiAgICAgICAgICAgICB3aWR0aCA9IGRlbm9ybWFsaXplVmFyaWF0aW9u
V2lkdGgod2lkdGgpOwogICAgICAgICAgICAgc2xvcGUgPSBkZW5vcm1hbGl6ZVNsb3BlKHNsb3Bl
KTsKICAgICAgICAgfQpAQCAtNzUyLDcgKzgxOCw3IEBAIHN0YXRpYyBmbG9hdCBzdHJldGNoRnJv
bUNvcmVUZXh0VHJhaXRzKENGRGljdGlvbmFyeVJlZiB0cmFpdHMpCiAKIHN0YXRpYyB2b2lkIGlu
dmFsaWRhdGVGb250Q2FjaGUoKTsKIAotc3RhdGljIHZvaWQgZm9udENhY2hlUmVnaXN0ZXJlZEZv
bnRzQ2hhbmdlZE5vdGlmaWNhdGlvbkNhbGxiYWNrKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2
b2lkKiBvYnNlcnZlciwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQgKiwgQ0ZEaWN0aW9uYXJ5UmVm
KQorc3RhdGljIHZvaWQgZm9udENhY2hlUmVnaXN0ZXJlZEZvbnRzQ2hhbmdlZE5vdGlmaWNhdGlv
bkNhbGxiYWNrKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiBvYnNlcnZlciwgQ0ZTdHJp
bmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYpCiB7CiAgICAgQVNTRVJUX1VOVVNF
RChvYnNlcnZlciwgaXNNYWluVGhyZWFkKCkgJiYgb2JzZXJ2ZXIgPT0gJkZvbnRDYWNoZTo6Zm9y
Q3VycmVudFRocmVhZCgpKTsKIApAQCAtNzYzLDYgKzgyOSw4IEBAIHZvaWQgRm9udENhY2hlOjpw
bGF0Zm9ybUluaXQoKQogewogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZO
b3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpLCB0aGlzLCAmZm9udENhY2hlUmVnaXN0
ZXJlZEZvbnRzQ2hhbmdlZE5vdGlmaWNhdGlvbkNhbGxiYWNrLCBrQ1RGb250TWFuYWdlclJlZ2lz
dGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3Vz
cGVuc2lvbkJlaGF2aW9yRGVsaXZlckltbWVkaWF0ZWx5KTsKIAorICAgIENGTm90aWZpY2F0aW9u
Q2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpLCB0
aGlzLCAmZm9udENhY2hlUmVnaXN0ZXJlZEZvbnRzQ2hhbmdlZE5vdGlmaWNhdGlvbkNhbGxiYWNr
LCBrQVhTRW5oYW5jZVRleHRMZWdpYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbiwgbnVsbHB0ciwg
Q0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JEZWxpdmVySW1tZWRpYXRlbHkpOworCiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVmIGNlbnRlciA9IENG
Tm90aWZpY2F0aW9uQ2VudGVyR2V0TG9jYWxDZW50ZXIoKTsKICAgICBjb25zdCBDRlN0cmluZ1Jl
ZiBub3RpZmljYXRpb25OYW1lID0ga0NGTG9jYWxlQ3VycmVudExvY2FsZURpZENoYW5nZU5vdGlm
aWNhdGlvbjsKQEAgLTEwNjMsMTEgKzExMzEsMTEgQEAgc3RhdGljIFZhcmlhdGlvbkNhcGFiaWxp
dGllcyB2YXJpYXRpb25DYXBhYmlsaXRpZXNGb3JGb250RGVzY3JpcHRvcihDVEZvbnREZXNjcmkK
IAogICAgIGlmIChGb250VHlwZShmb250LmdldCgpKS52YXJpYXRpb25UeXBlID09IEZvbnRUeXBl
OjpWYXJpYXRpb25UeXBlOjpUcnVlVHlwZUdYICYmICFvcHRPdXRGcm9tR1hOb3JtYWxpemF0aW9u
KSB7CiAgICAgICAgIGlmIChyZXN1bHQud2VpZ2h0KQotICAgICAgICAgICAgcmVzdWx0LndlaWdo
dCA9IHt7IG5vcm1hbGl6ZVdlaWdodChyZXN1bHQud2VpZ2h0LnZhbHVlKCkubWluaW11bSksIG5v
cm1hbGl6ZVdlaWdodChyZXN1bHQud2VpZ2h0LnZhbHVlKCkubWF4aW11bSkgfX07CisgICAgICAg
ICAgICByZXN1bHQud2VpZ2h0ID0geyB7IG5vcm1hbGl6ZUdYV2VpZ2h0KHJlc3VsdC53ZWlnaHQu
dmFsdWUoKS5taW5pbXVtKSwgbm9ybWFsaXplR1hXZWlnaHQocmVzdWx0LndlaWdodC52YWx1ZSgp
Lm1heGltdW0pIH0gfTsKICAgICAgICAgaWYgKHJlc3VsdC53aWR0aCkKLSAgICAgICAgICAgIHJl
c3VsdC53aWR0aCA9IHt7IG5vcm1hbGl6ZVZhcmlhdGlvbldpZHRoKHJlc3VsdC53aWR0aC52YWx1
ZSgpLm1pbmltdW0pLCBub3JtYWxpemVWYXJpYXRpb25XaWR0aChyZXN1bHQud2lkdGgudmFsdWUo
KS5tYXhpbXVtKSB9fTsKKyAgICAgICAgICAgIHJlc3VsdC53aWR0aCA9IHsgeyBub3JtYWxpemVW
YXJpYXRpb25XaWR0aChyZXN1bHQud2lkdGgudmFsdWUoKS5taW5pbXVtKSwgbm9ybWFsaXplVmFy
aWF0aW9uV2lkdGgocmVzdWx0LndpZHRoLnZhbHVlKCkubWF4aW11bSkgfSB9OwogICAgICAgICBp
ZiAocmVzdWx0LnNsb3BlKQotICAgICAgICAgICAgcmVzdWx0LnNsb3BlID0ge3sgbm9ybWFsaXpl
U2xvcGUocmVzdWx0LnNsb3BlLnZhbHVlKCkubWluaW11bSksIG5vcm1hbGl6ZVNsb3BlKHJlc3Vs
dC5zbG9wZS52YWx1ZSgpLm1heGltdW0pIH19OworICAgICAgICAgICAgcmVzdWx0LnNsb3BlID0g
eyB7IG5vcm1hbGl6ZVNsb3BlKHJlc3VsdC5zbG9wZS52YWx1ZSgpLm1pbmltdW0pLCBub3JtYWxp
emVTbG9wZShyZXN1bHQuc2xvcGUudmFsdWUoKS5tYXhpbXVtKSB9IH07CiAgICAgfQogCiAgICAg
YXV0byBtaW5pbXVtID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KEZvbnRTZWxlY3Rpb25WYWx1ZTo6bWlu
aW11bVZhbHVlKCkpOwpAQCAtMTY4Niw0ICsxNzU0LDQgQEAgdm9pZCBGb250Q2FjaGU6OnByZXdh
cm1HbG9iYWxseSgpCiAjZW5kaWYKIH0KIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRD
YWNoZUNvcmVUZXh0LmgKaW5kZXggMDAzNWFiYTFkM2Y0NDllMmU0ZmE3NjUzMWYwYzQwODkwNWY4
NWQ5Ni4uMTZjM2VjYTRjZTc0N2M2YWIwN2ViMDM1Y2YzNzEzZjk0NTNlZjY1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2Fj
aGVDb3JlVGV4dC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0y
MDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTctMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC03Miw2ICs3Miw3IEBAIFJldGFpblB0cjxDVEZvbnRSZWY+IGNy
ZWF0ZUZvbnRGb3JJbnN0YWxsZWRGb250cyhDVEZvbnREZXNjcmlwdG9yUmVmLCBDR0Zsb2F0IHNp
CiBSZXRhaW5QdHI8Q1RGb250UmVmPiBjcmVhdGVGb250Rm9ySW5zdGFsbGVkRm9udHMoQ1RGb250
UmVmLCBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CiB2b2lkIGFkZEF0dHJpYnV0ZXNGb3JXZWJG
b250cyhDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMsIEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzKTsKIFJldGFpblB0cjxDRlNldFJlZj4gaW5zdGFsbGVkRm9udE1hbmRhdG9yeUF0dHJp
YnV0ZXMoQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOwotCiBWYXJpYXRpb25EZWZhdWx0c01hcCBk
ZWZhdWx0VmFyaWF0aW9uVmFsdWVzKENURm9udFJlZiwgU2hvdWxkTG9jYWxpemVBeGlzTmFtZXMp
OwotfQorV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPdmVycmlkZUVuaGFuY2VUZXh0TGVnaWJpbGl0
eShib29sKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IDVhNmQzYWU4YjA1OGQ5NDM0Y2Y1MzQ0NmVlYjMzZTBhNDNmMDE5NGUu
Ljc1ODY2NzQ1YTFhZTc4YjhlZDA5NzcwYWMwMzFiMmUzMDdiODQ5NWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTMtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2Miw2ICszNjIsMTAgQEAKICNpbmNsdWRlICJUZXh0
UmVjb2duaXRpb25SZXN1bHQuaCIKICNlbmRpZgogCisjaWYgVVNFKENPUkVfVEVYVCkKKyNpbmNs
dWRlICJGb250Q2FjaGVDb3JlVGV4dC5oIgorI2VuZGlmCisKIHVzaW5nIEpTQzo6Q2FsbERhdGE7
CiB1c2luZyBKU0M6OkNvZGVCbG9jazsKIHVzaW5nIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOwpA
QCAtMTkwNCw2ICsxOTA4LDE1IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRGb250U21vb3RoaW5nRW5h
YmxlZChib29sIGVuYWJsZWQpCiAgICAgRm9udENhc2NhZGU6OnNldFNob3VsZFVzZVNtb290aGlu
ZyhlbmFibGVkKTsKIH0KIAordm9pZCBJbnRlcm5hbHM6OnNldE92ZXJyaWRlRW5oYW5jZVRleHRM
ZWdpYmlsaXR5KGJvb2wgZW5oYW5jZSkKK3sKKyNpZiBVU0UoQ09SRV9URVhUKQorICAgIFdlYkNv
cmU6OnNldE92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5KGVuaGFuY2UpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oZW5oYW5jZSk7CisjZW5kaWYKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4g
SW50ZXJuYWxzOjpzZXRMb3dQb3dlck1vZGVFbmFibGVkKGJvb2wgaXNFbmFibGVkKQogewogICAg
IGF1dG8qIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAppbmRleCBhNTNkMjhiOTkxNTU4MmI4ZWIwOWRmODI5ZmRjMGNkOGMxMDk4ZmI4Li5h
NWIwY2M1NzVjNWQwZGJmYTViNTFmYmY2ZTAyODdlOWVkZDdhMDk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMxNSw2ICszMTUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGlu
dmFsaWRhdGVGb250Q2FjaGUoKTsKICAgICB2b2lkIHNldEZvbnRTbW9vdGhpbmdFbmFibGVkKGJv
b2wpOworICAgIHZvaWQgc2V0T3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoYm9vbCk7CiAK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRMb3dQb3dlck1vZGVFbmFibGVkKGJvb2wpOwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE91dHNpZGVWaWV3cG9ydFRocm90dGxpbmdFbmFibGVkKGJv
b2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGI1ODIwMTI5NmM3YmIz
YTcyOTIzNjcyNDIxYWU1NjI2NGNjMTI4NWUuLjY0OThkYmRiNzkwMGU0MTA0ZmQxNmRmMjczN2Iz
MmI3N2Q1MDgxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQyOCw2
ICs0MjgsNyBAQCB0eXBlZGVmIChGZXRjaFJlcXVlc3Qgb3IgRmV0Y2hSZXNwb25zZSkgRmV0Y2hP
YmplY3Q7CiAKICAgICB1bmRlZmluZWQgaW52YWxpZGF0ZUZvbnRDYWNoZSgpOwogICAgIHVuZGVm
aW5lZCBzZXRGb250U21vb3RoaW5nRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOworICAgIHVuZGVm
aW5lZCBzZXRPdmVycmlkZUVuaGFuY2VUZXh0TGVnaWJpbGl0eShib29sZWFuIGVuaGFuY2UpOwog
CiAgICAgdW5kZWZpbmVkIHNldFNjcm9sbFZpZXdQb3NpdGlvbihsb25nIHgsIGxvbmcgeSk7CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZTgzNDU3ZTRhMWI4OWNlOWVjMzQ0YjE0ODgzY2JjZTQ2YTY1MzU1Li5iNDc1ZTRj
NDAwNTFhMTU0ZDc0YzFiZTY4MmJkNWE5YzQ2MzI2ZGY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMjItMDMtMjMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFJFR1JFU1NJT04ocjI4MTI5MSk6IFdoZW4gYWNjZXNzaWJpbGl0eSBi
b2xkIGlzIGVuYWJsZWQsIGZvbnQtZmFtaWx5OnN5c3RlbS11aSBpcyBzdXBwb3NlZCB0byBiZSBi
b2xkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4
MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg4MjQ5MjQxPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgdGVzdCBoYXMgPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBydW5TaW5nbHk9dHJ1ZSBdIC0tPiBzbyB0aGUgdGVzdGluZworICAgICAg
ICBpbmZyYXN0cnVjdHVyZSBmb3IgYWNjZXNzaWJpbGl0eSBib2xkIGNhbiBiZSB3ZWItcHJvY2Vz
cy1nbG9iYWwuCisKKyAgICAgICAgKiBmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLWV4cGVj
dGVkLW1pc21hdGNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9hY2Nlc3NpYmls
aXR5LWJvbGQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnM6IEJlY2F1c2UgdGhpcyB0ZXN0IHJlbGllcyBvbiBhIHdlYmtpdC10ZXN0LXJ1bm5lcgor
ICAgICAgICAgICAgICBoZWFkZXIsIHNraXAgaXQgb24gV0sxLgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sy
L1Rlc3RFeHBlY3RhdGlvbnM6IE1hcmsgYXMgUEFTUy4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mt
d2syL1Rlc3RFeHBlY3RhdGlvbnM6IERpdHRvLgorCiAyMDIyLTAzLTIzICBKb24gTGVlICA8am9u
bGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGZ1enp5IGdhcmRlbmluZy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGU0YmFmOGFmZmI0NDc2Njc5YjU4MzZjMGM4NjRkYWI5Y2RmOGIw
NzkuLmZiZjQ2ZTY2ZTFhMjVlYTFkN2I4YTVkMjRjYjk2OTQ0YjlkMjdhZTUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNTE3MiwzICs1MTcyLDYgQEAgZmFzdC9jYW52YXMvbGFyZ2UtZ2V0SW1hZ2VE
YXRhLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMzcxMDggaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9leHRlbnNpb25zLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8y
MzcxMDggaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZyYW1lLXBhcmFt
ZXRlci5odG1sIFsgRmFpbHVyZSBdICMgPHJkYXI6Ly9wcm9ibGVtLzMzODUwMTg5Pgogd2Via2l0
Lm9yZy9iLzIzNzEwOCBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1v
ay13aXRoLWxlZ2FjeS1zZWMtd2Vic29ja2V0LXJlc3BvbnNlLWhlYWRlcnMuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCisKKyMgVGhpcyB0ZXN0IGlzIG9ubHkgcmVsZXZhbnQgb24gQXBwbGUgcGxhdGZv
cm1zLgorZmFzdC90ZXh0L2FjY2Vzc2liaWxpdHktYm9sZC5odG1sIFsgUGFzcyBJbWFnZU9ubHlG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9hY2Nlc3NpYmlsaXR5
LWJvbGQtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9hY2Nl
c3NpYmlsaXR5LWJvbGQtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmM2Yjk3
MDVkYWU2ZmRkMTEzZmViZDIwODJjMDU2ZjZlNWFjNThkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2FjY2Vzc2liaWxpdHktYm9sZC1leHBlY3RlZC1taXNtYXRjaC5o
dG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgcnVuU2luZ2x5PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLmludmFsaWRhdGVGb250
Q2FjaGUoKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldE92ZXJyaWRlRW5oYW5jZVRleHRMZWdp
YmlsaXR5KGZhbHNlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3Qg
bWFrZXMgc3VyZSB0aGF0IGFjY2Vzc2liaWxpdHkgYm9sZCBpcyBhcHBsaWVkIHRvIGZvbnQtZmFt
aWx5OiBzeXN0ZW0tdWkuIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgdGV4dCBiZWxvdyBpcyBib2xk
LgorPHAgc3R5bGU9ImZvbnQ6IDI0cHggc3lzdGVtLXVpOyI+SGVsbG8gdGhpcyBpcyB0ZXh0PC9w
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2Fj
Y2Vzc2liaWxpdHktYm9sZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2FjY2Vzc2liaWxp
dHktYm9sZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0NWM4OTM4OWNlNTVjY2UxM2IyMDM2NmNkMjNmMGNl
NTA4N2ZkNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvYWNjZXNz
aWJpbGl0eS1ib2xkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBydW5TaW5nbHk9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMu
aW52YWxpZGF0ZUZvbnRDYWNoZSgpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0T3ZlcnJpZGVF
bmhhbmNlVGV4dExlZ2liaWxpdHkodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBhY2Nlc3NpYmlsaXR5IGJvbGQgaXMgYXBwbGll
ZCB0byBmb250LWZhbWlseTogc3lzdGVtLXVpLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHRleHQg
YmVsb3cgaXMgYm9sZC4KKzxwIHN0eWxlPSJmb250OiAyNHB4IHN5c3RlbS11aTsiPkhlbGxvIHRo
aXMgaXMgdGV4dDwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyZTk4ZTE1ODdlOTJkYTgxYjRlNTk4ODM3
ZThkMTBlNTg4OGYzYWYzLi5lYWUxOTcyZDNjOGYyNmFhMTQxMTk0MGY2ZDJlZmRkNmVmNTk4MmY2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBA
IC0yMzM1LDQgKzIzMzUsNiBAQCBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtaW50ZXJhY3Rp
dmUuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMjM3MzU4IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0w
MDUuaHRtbCBbIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMjM4MjgyIGVkaXRpbmcvZGVsZXRp
bmcvaW5zZXJ0LWluLW9ycGhhbmVkLXNlbGVjdGlvbi1jcmFzaC5odG1sIFsgRmFpbHVyZSBdClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0Lm9yZy9iLzIzODI4MiBlZGl0aW5nL2Rl
bGV0aW5nL2luc2VydC1pbi1vcnBoYW5lZC1zZWxlY3Rpb24tY3Jhc2guaHRtbCBbIEZhaWx1cmUg
XQorCitmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjA3MDg4ZGRkMWE4MGY4YzNk
YWNmYTI5MTI0ODA3NGUwNzhjZjdmMC4uMGU3YjQxZGE3NzI5YzEzNzA3Y2E0ZmFhZmM5MWY3Mzcx
N2JhOThhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTM1NjYsMyArMzU2Niw2IEBAIHdlYmtpdC5vcmcvYi8yMzc0MzMgZWRpdGluZy9wYXN0ZWJvYXJk
LzQwNzYyNjctMy5odG1sIFsgVGltZW91dCBQYXNzIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIz
NzQzMyBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLmh0bWwgWyBUaW1lb3V0
IFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMzc5NTUgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wNDQuaHRtbCBbIEZhaWx1cmUgXQorCisjIGZhc3QvdGV4dC9hY2Nlc3NpYmls
aXR5LWJvbGQuaHRtbCByZXF1aXJlcyBXSzIuIFRoZSAqKiotd2syL1Rlc3RFeHBlY3RhdGlvbiBm
aWxlcyBtYXJrIGl0IGFzIFBBU1MuCitmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwg
WyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAxOGNiOTgyNjQ5ZmEzMjc1M2M5OTVkNzE4NTE3NjM5ZjE0ZmE2MWZiLi44NWUxNzUy
NjE3MDI5ZjcyMDM2Yzk1YjA1MjNmN2U4OWMxYzI0MjkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjk0LDMgKzE2OTQsNiBAQCB3ZWJr
aXQub3JnL2IvMjM2NDk2IGZhc3QvbWVkaWFzdHJlYW0vY2FwdHVyZVN0cmVhbS9jYW52YXMzZC5o
dG1sIFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMjM3MDk1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3MvbXVsdGlwbGUtd29ya2Vycy8wMDQuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMzcxNjUgWyBCaWdTdXIrIERlYnVnIF0g
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvZHluYW1pYy1t
YXJrdXAtaW5zZXJ0aW9uL29wZW5pbmctdGhlLWlucHV0LXN0cmVhbS9xdWlya3Mud2luZG93Lmh0
bWwgWyBQYXNzIENyYXNoIF0KKworIyBNb250ZXJleSBhbmQgbGF0ZXIgdXNlIHRoZSBzeXN0ZW0g
Zm9udCdzIHZhcmlhYmxlLW5lc3MuCitbIE1vbnRlcmV5KyBdIGZhc3QvdGV4dC9hY2Nlc3NpYmls
aXR5LWJvbGQuaHRtbCBbIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBjZGRkYmNlY2NiNzQzZjA0MDcxMzUzODc5N2IzNjU5YWM0YmZjYjU1Li5j
MDVhNjgzYTdhYjdkYTM5MGQxYjRhNzVlZDUxNmMxYzcxNDQwNTgwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQxMCwzICsyNDEwLDUgQEAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvZXZlbnQtdGltZW91dC1vcmRlci5hbnkud29y
a2VyLmh0bWwgWyBGYWlsdXIKIAogd2Via2l0Lm9yZy9iLzIzNzE2NiBbIEJpZ1N1cisgXSB3ZWJn
bC9wZW5kaW5nL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdGV4LWltYWdlLXZpZGVvLXJlcGVh
dGVkLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCisjIGZhc3QvdGV4dC9hY2Nlc3NpYmlsaXR5LWJv
bGQuaHRtbCByZXF1aXJlcyBXSzIuIFRoZSAqKiotd2syL1Rlc3RFeHBlY3RhdGlvbiBmaWxlcyBt
YXJrIGl0IGFzIFBBU1MuCitmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwgWyBTa2lw
IF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455613</attachid>
            <date>2022-03-23 23:45:10 -0700</date>
            <delta_ts>2022-04-15 14:04:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237817-20220323234509.patch</filename>
            <type>text/plain</type>
            <size>24285</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmZhNzFhMjI1NTUwYzRl
NDZmNTkyNjkzNDQxYjJlNWY5ZTMwNjRkNC4uYzdhODNkZTkyOTZhMzYyZjk2N2JmNmZhYjk3YWZi
ZTM2ZTk0ZTdiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIyLTAzLTIzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBS
RUdSRVNTSU9OKHIyODEyOTEpOiBXaGVuIGFjY2Vzc2liaWxpdHkgYm9sZCBpcyBlbmFibGVkLCBm
b250LWZhbWlseTpzeXN0ZW0tdWkgaXMgc3VwcG9zZWQgdG8gYmUgYm9sZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3ODE3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84ODI0OTI0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBY2Nlc3NpYmlsaXR5IGJvbGQgaXMgc3VwcG9zZWQgdG8gY2F1c2UgdGhl
IHN5c3RlbSBmb250IHRvIGJlIHJlbmRlcmVkIGFzIGJvbGQsIGV2ZW4gaWYgdGhlCisgICAgICAg
IHZhbHVlIG9mIHRoZSBmb250LXdlaWdodCBwcm9wZXJ0eSBpcyBub3JtYWwuCisKKyAgICAgICAg
VGhlIHdheSB0aGlzIGlzIG9yaWdpbmFsbHkgc3VwcG9zZWQgdG8gd29yayBpcyB0aGF0LCB3aGVu
IGFjY2Vzc2liaWxpdHkgYm9sZCBpcyBlbmFibGVkIGFuZAorICAgICAgICBzb2Z0d2FyZSBhc2tz
IGZvciB0aGUgc3lzdGVtIGZvbnQsIHRoZSBmb250IHJlcG9ydHMgdG8gbm90IGJlIGJvbGQsIGJ1
dCB0aGUgbWV0cmljcy9jb250b3VycworICAgICAgICBlbmQgdXAgdmlzdWFsbHkgYm9sZCB0byB0
aGUgdXNlci4gRm9udCB2YXJpYXRpb25zLCBob3dldmVyLCBhcmUgYSBsb3dlci1sZXZlbCBpbnRl
cmZhY2UgdG8KKyAgICAgICAgdGhlIGZvbnQsIGFuZCBkb24ndCBhYmlkZSBieSB0aGUgZmFjYWRl
LiBTbywgYmVmb3JlIHIyODEyOTEsIHdlIHdlcmVuJ3QgYXBwbHlpbmcgZm9udCB2YXJpYXRpb25z
CisgICAgICAgIHRvIHRoZSBzeXN0ZW0gZm9udCwgc28gdGhlIGZhY2FkZSB3YXMgbWFpbnRhaW5l
ZCwgYnV0IHIyODEyOTEgc3RhcnRlZCBhcHBseWluZyB2YXJpYXRpb25zIHRvIHRoZQorICAgICAg
ICBzeXN0ZW0gZm9udCwgdGhlcmVieSBicmVha2luZyB0aGlzIGFjY2Vzc2liaWxpdHkgYm9sZCBz
ZXR0aW5nLgorCisgICAgICAgIFRoZSBzb2x1dGlvbiBpcyB0byByZS1pbXBsZW1lbnQgYWNjZXNz
aWJpbGl0eSBib2xkIHdoZW4gd2UgYXBwbHkgZm9udCB2YXJpYXRpb25zLiBBdCB0aGUgcG9pbnQK
KyAgICAgICAgd2hlcmUgd2UgYXBwbHkgdGhlIHdlaWdodCB2YXJpYXRpb24sIHdlIHNob3VsZCBk
ZXRlcm1pbmUgaWYgYWNjZXNzaWJpbGl0eSBib2xkIGlzIGluIGVmZmVjdCwgYW5kCisgICAgICAg
IGlmIGl0IGlzLCBhcnRpZmljaWFsbHkgaW5jcmVhc2UgdGhlIHdlaWdodCBvZiB0aGUgY3JlYXRl
ZCBmb250IGFjY29yZGluZyB0byB0aGUgcGxhdGZvcm0ncworICAgICAgICBpbmZsYXRpb24gYW1v
dW50LiBUaGVyZSBhcmUgYSBmZXcgU1BJIGZ1bmN0aW9ucyB3aGljaCBhaWQgaW4gdGhpcyBlbmRl
YXZvci4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmZvbnRJc1N5c3RlbUZvbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6bm9ybWFsaXplR1hXZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6bm9ybWFsaXplQ1RXZWln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6ZGVub3JtYWxpemVHWFdlaWdodCk6CisgICAgICAgIChX
ZWJDb3JlOjpkZW5vcm1hbGl6ZUNUV2VpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Om92ZXJyaWRl
RW5oYW5jZVRleHRMZWdpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlRW5o
YW5jZVRleHRMZWdpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEVuaGFuY2VUZXh0
TGVnaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVwYXJlUGxhdGZvcm1Gb250KToKKyAg
ICAgICAgKFdlYkNvcmU6OmZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRp
b25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnBsYXRmb3JtSW5pdCk6
CisgICAgICAgIChXZWJDb3JlOjp2YXJpYXRpb25DYXBhYmlsaXRpZXNGb3JGb250RGVzY3JpcHRv
cik6CisgICAgICAgIChXZWJDb3JlOjpub3JtYWxpemVXZWlnaHQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6ZGVub3JtYWxpemVXZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0Lmg6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRPdmVycmlk
ZUVuaGFuY2VUZXh0TGVnaWJpbGl0eSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjItMDMtMjMgIFJvYiBCdWlz
ICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBzZXROZWVkc0xheW91dCgpIHNob3VsZCBu
b3QgYmUgY2FsbGVkIHdoZW4gY2hhbmdpbmcgdGhlIFNWRyBwcm9wZXJ0aWVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwppbmRleCAxMjk4YzM0OGU4YjJmMTliZjI0Mzc4ZTA0NTc5MGQ3ZTA3NDQ1NzhjLi4yYmQ3
ODMwOWNlNTk5MmYzNjkzMDgxNjc4NzY2ODFiODYzY2QxMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMi0wMy0yMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gUkVHUkVTU0lPTihyMjgxMjkxKTogV2hl
biBhY2Nlc3NpYmlsaXR5IGJvbGQgaXMgZW5hYmxlZCwgZm9udC1mYW1pbHk6c3lzdGVtLXVpIGlz
IHN1cHBvc2VkIHRvIGJlIGJvbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNzgxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODgyNDkyNDE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NmL0NvcmVUZXh0U1BJLmg6CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9BY2Nlc3NpYmlsaXR5
U3VwcG9ydFNQSS5oOgorCiAyMDIyLTAzLTIzICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRvcHQgbmV3IEFWQ2FwdHVyZSBTUEkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9Db3JlVGV4dFNQSS5oCmluZGV4IGYyNTdlMWE4
ODRmZTMzY2E2NDU4MTU4OGQyNDVkOGZkNTVlZGJmMmIuLjk4YTQ0NzJjNGJjMmU0NmNjMmFmNjJi
YTlkNWE4YWU3ZGUxZWY0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NmL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ29y
ZVRleHRTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAy
MSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0
LTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMTQ5LDYgKzE0OSw3IEBAIENGQXJyYXlSZWYgQ1RGb250TWFuYWdl
ckNyZWF0ZUZvbnREZXNjcmlwdG9yc0Zyb21EYXRhKENGRGF0YVJlZik7CiBib29sIENURm9udE1h
bmFnZXJFbmFibGVBbGxVc2VyRm9udHMoYm9vbCBwb3N0Rm9udENoYW5nZU5vdGlmaWNhdGlvbik7
CiAKIHZvaWQgQ1RQYXJhZ3JhcGhTdHlsZVNldENvbXBvc2l0aW9uTGFuZ3VhZ2UoQ1RQYXJhZ3Jh
cGhTdHlsZVJlZiwgQ1RDb21wb3NpdGlvbkxhbmd1YWdlKTsKK0NHRmxvYXQgQ1RGb250R2V0QWNj
ZXNzaWJpbGl0eUJvbGRXZWlnaHRPZldlaWdodChDR0Zsb2F0KTsKIAogZXh0ZXJuIGNvbnN0IENG
U3RyaW5nUmVmIGtDVEZvbnRDU1NXZWlnaHRBdHRyaWJ1dGU7CiBleHRlcm4gY29uc3QgQ0ZTdHJp
bmdSZWYga0NURm9udENTU1dpZHRoQXR0cmlidXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgKaW5kZXgg
ZjJkM2MwY2ZmMzg2NmI3ODY5ZThiOTJjYzg5OTM3NGZjNTU2ZThlNy4uNjE0YmY5YjJmMWJkYzUx
Zjg4NWMwOTMwODcxYjkwMGM5YzcwMDI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDcsNiAr
NDcsOSBAQCBBWFNJc29sYXRlZFRyZWVNb2RlIF9BWFNJc29sYXRlZFRyZWVNb2RlKHZvaWQpOwog
dm9pZCBfQVhTU2V0SXNvbGF0ZWRUcmVlTW9kZShBWFNJc29sYXRlZFRyZWVNb2RlKTsKICNlbmRp
ZiAvLyBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQogCitleHRlcm4gQ0ZTdHJp
bmdSZWYga0FYU0VuaGFuY2VUZXh0TGVnaWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb247CitCb29s
ZWFuIF9BWFNFbmhhbmNlVGV4dExlZ2liaWxpdHlFbmFibGVkKHZvaWQpOworCiBXVEZfRVhURVJO
X0NfRU5ECiAKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29y
ZVRleHQuY3BwCmluZGV4IGU2MTc3OTgxZjFlNTgzZThmNGQ3MWIxMzFlYjE2MjcyYTU4ZTY3Yjcu
LmRlYWUzMjIzY2IzMTUzZmYzMWZlYmY2MzZkMTkwNTJjMjY1NDIzNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVD
b3JlVGV4dC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU3lzdGVtRm9udERhdGFi
YXNlQ29yZVRleHQuaCIKICNpbmNsdWRlIDxDb3JlVGV4dC9TRk5UTGF5b3V0VHlwZXMuaD4KICNp
bmNsdWRlIDxwYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmg+CisjaW5jbHVkZSA8cGFsL3NwaS9jb2Nv
YS9BY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtMzUw
LDcgKzM1MSw2IEBAIFZhcmlhdGlvbkRlZmF1bHRzTWFwIGRlZmF1bHRWYXJpYXRpb25WYWx1ZXMo
Q1RGb250UmVmIGZvbnQsIFNob3VsZExvY2FsaXplQXhpc05hCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotI2lmIFVTRShOT05fVkFSSUFCTEVfU1lTVEVNX0ZPTlQpCiBzdGF0aWMgaW5saW5lIGJv
b2wgZm9udElzU3lzdGVtRm9udChDVEZvbnRSZWYgZm9udCkKIHsKICAgICBpZiAoaXNTeXN0ZW1G
b250KGZvbnQpKQpAQCAtMzU5LDI1ICszNTksNzAgQEAgc3RhdGljIGlubGluZSBib29sIGZvbnRJ
c1N5c3RlbUZvbnQoQ1RGb250UmVmIGZvbnQpCiAgICAgYXV0byBuYW1lID0gYWRvcHRDRihDVEZv
bnRDb3B5UG9zdFNjcmlwdE5hbWUoZm9udCkpOwogICAgIHJldHVybiBmb250TmFtZUlzU3lzdGVt
Rm9udChuYW1lLmdldCgpKTsKIH0KLSNlbmRpZgogCiAvLyBUaGVzZSB2YWx1ZXMgd2VyZSBjYWxj
dWxhdGVkIGJ5IHBlcmZvcm1pbmcgYSBsaW5lYXIgcmVncmVzc2lvbiBvbiB0aGUgQ1NTIHdlaWdo
dHMvd2lkdGhzL3Nsb3BlcyBhbmQgQ29yZSBUZXh0IHdlaWdodHMvd2lkdGhzL3Nsb3BlcyBvZiBT
YW4gRnJhbmNpc2NvLgogLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8zMTMxMjYwMj4gR2V0IHRo
ZSByZWFsIHZhbHVlcyBmcm9tIENvcmUgVGV4dC4KLXN0YXRpYyBpbmxpbmUgZmxvYXQgbm9ybWFs
aXplV2VpZ2h0KGZsb2F0IHZhbHVlKQorc3RhdGljIGlubGluZSBmbG9hdCBub3JtYWxpemVHWFdl
aWdodChmbG9hdCB2YWx1ZSkKIHsKICAgICByZXR1cm4gNTIzLjcgKiB2YWx1ZSAtIDEwOS4zOwog
fQogCisvLyBUaGVzZSB2YWx1ZXMgd2VyZSBleHBlcmltZW50YWxseSBnYXRoZXJlZCBmcm9tIHRo
ZSB2YXJpb3VzIG5hbWVkIHdlaWdodHMgb2YgU2FuIEZyYW5jaXNjby4KK3N0YXRpYyBzdHJ1Y3Qg
eworICAgIGZsb2F0IGN0V2VpZ2h0OworICAgIGZsb2F0IGNzc1dlaWdodDsKK30ga2V5ZnJhbWVz
W10gPSB7CisgICAgeyAtMC44LCAzMCB9LAorICAgIHsgLTAuNCwgMjc0IH0sCisgICAgeyAwLCA0
MDAgfSwKKyAgICB7IDAuMjMsIDUxMCB9LAorICAgIHsgMC4zLCA1OTAgfSwKKyAgICB7IDAuNCwg
NzAwIH0sCisgICAgeyAwLjU2LCA4NjAgfSwKKyAgICB7IDAuNjIsIDEwMDAgfSwKK307CitzdGF0
aWNfYXNzZXJ0KFdURl9BUlJBWV9MRU5HVEgoa2V5ZnJhbWVzKSA+IDApOworCitzdGF0aWMgaW5s
aW5lIGZsb2F0IG5vcm1hbGl6ZUNUV2VpZ2h0KGZsb2F0IHZhbHVlKQoreworICAgIGlmICh2YWx1
ZSA8IGtleWZyYW1lc1swXS5jdFdlaWdodCkKKyAgICAgICAgcmV0dXJuIGtleWZyYW1lc1swXS5j
c3NXZWlnaHQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtl
eWZyYW1lcykgLSAxOyArK2kpIHsKKyAgICAgICAgYXV0byYgYmVmb3JlID0ga2V5ZnJhbWVzW2ld
OworICAgICAgICBhdXRvJiBhZnRlciA9IGtleWZyYW1lc1tpXTsKKyAgICAgICAgaWYgKHZhbHVl
IDwgYmVmb3JlLmN0V2VpZ2h0IHx8IHZhbHVlID4gYWZ0ZXIuY3RXZWlnaHQpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgZmxvYXQgcmF0aW8gPSAodmFsdWUgLSBiZWZvcmUuY3RXZWln
aHQpIC8gKGFmdGVyLmN0V2VpZ2h0IC0gYmVmb3JlLmN0V2VpZ2h0KTsKKyAgICAgICAgcmV0dXJu
IHJhdGlvICogKGFmdGVyLmNzc1dlaWdodCAtIGJlZm9yZS5jc3NXZWlnaHQpICsgYmVmb3JlLmNz
c1dlaWdodDsKKyAgICB9CisgICAgcmV0dXJuIGtleWZyYW1lc1tXVEZfQVJSQVlfTEVOR1RIKGtl
eWZyYW1lcykgLSAxXS5jc3NXZWlnaHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQgbm9ybWFs
aXplU2xvcGUoZmxvYXQgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlICogMzAwOwogfQogCi1z
dGF0aWMgaW5saW5lIGZsb2F0IGRlbm9ybWFsaXplV2VpZ2h0KGZsb2F0IHZhbHVlKQorc3RhdGlj
IGlubGluZSBmbG9hdCBkZW5vcm1hbGl6ZUdYV2VpZ2h0KGZsb2F0IHZhbHVlKQogewogICAgIHJl
dHVybiAodmFsdWUgKyAxMDkuMykgLyA1MjMuNzsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdCBk
ZW5vcm1hbGl6ZUNUV2VpZ2h0KGZsb2F0IHZhbHVlKQoreworICAgIGlmICh2YWx1ZSA8IGtleWZy
YW1lc1swXS5jc3NXZWlnaHQpCisgICAgICAgIHJldHVybiBrZXlmcmFtZXNbMF0uY3RXZWlnaHQ7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleWZyYW1lcykg
LSAxOyArK2kpIHsKKyAgICAgICAgYXV0byYgYmVmb3JlID0ga2V5ZnJhbWVzW2ldOworICAgICAg
ICBhdXRvJiBhZnRlciA9IGtleWZyYW1lc1tpXTsKKyAgICAgICAgaWYgKHZhbHVlIDwgYmVmb3Jl
LmNzc1dlaWdodCB8fCB2YWx1ZSA+IGFmdGVyLmNzc1dlaWdodCkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBmbG9hdCByYXRpbyA9ICh2YWx1ZSAtIGJlZm9yZS5jc3NXZWlnaHQpIC8g
KGFmdGVyLmNzc1dlaWdodCAtIGJlZm9yZS5jc3NXZWlnaHQpOworICAgICAgICByZXR1cm4gcmF0
aW8gKiAoYWZ0ZXIuY3RXZWlnaHQgLSBiZWZvcmUuY3RXZWlnaHQpICsgYmVmb3JlLmN0V2VpZ2h0
OworICAgIH0KKyAgICByZXR1cm4ga2V5ZnJhbWVzW1dURl9BUlJBWV9MRU5HVEgoa2V5ZnJhbWVz
KSAtIDFdLmN0V2VpZ2h0OworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0IGRlbm9ybWFsaXplU2xv
cGUoZmxvYXQgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlIC8gMzAwOwpAQCAtNTIxLDYgKzU2
NiwyMiBAQCBzdGF0aWMgdm9pZCBhZGRBdHRyaWJ1dGVzRm9yRm9udFBhbGV0dGVzKENGTXV0YWJs
ZURpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgY29ucwogICAgIH0KIH0KIAorc3RhdGljIHN0ZDo6
b3B0aW9uYWw8Ym9vbD4mIG92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5KCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjpvcHRpb25hbDxib29sPj4gb3ZlcnJpZGVFbmhhbmNl
VGV4dExlZ2liaWxpdHk7CisgICAgcmV0dXJuIG92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5
LmdldCgpOworfQorCit2b2lkIHNldE92ZXJyaWRlRW5oYW5jZVRleHRMZWdpYmlsaXR5KGJvb2wg
ZW5oYW5jZSkKK3sKKyAgICBvdmVycmlkZUVuaGFuY2VUZXh0TGVnaWJpbGl0eSgpID0gZW5oYW5j
ZTsKK30KKworc3RhdGljIGJvb2wgc2hvdWxkRW5oYW5jZVRleHRMZWdpYmlsaXR5KCkKK3sKKyAg
ICByZXR1cm4gb3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoKS52YWx1ZV9vcihfQVhTRW5o
YW5jZVRleHRMZWdpYmlsaXR5RW5hYmxlZCgpKTsKK30KKwogUmV0YWluUHRyPENURm9udFJlZj4g
cHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYgZm9u
dENyZWF0aW9uQ29udGV4dCwgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zKQog
ewogICAgIGlmICghb3JpZ2luYWxGb250KQpAQCAtNjAzLDggKzY2NCwxMyBAQCBSZXRhaW5QdHI8
Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQsIGNv
bnN0IEZvbnREZXNjcgogICAgICAgICAgICAgd2lkdGggPSBzdGQ6Om1heChzdGQ6Om1pbih3aWR0
aCwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHdpZHRoVmFsdWUtPm1heGltdW0pKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHdpZHRoVmFsdWUtPm1pbmltdW0pKTsKICAgICAgICAgaWYgKGF1dG8gc2xvcGVWYWx1
ZSA9IGZvbnRDcmVhdGlvbkNvbnRleHQuZm9udEZhY2VDYXBhYmlsaXRpZXMoKS53ZWlnaHQpCiAg
ICAgICAgICAgICBzbG9wZSA9IHN0ZDo6bWF4KHN0ZDo6bWluKHNsb3BlLCBzdGF0aWNfY2FzdDxm
bG9hdD4oc2xvcGVWYWx1ZS0+bWF4aW11bSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oc2xvcGVWYWx1
ZS0+bWluaW11bSkpOworICAgICAgICBpZiAoZm9udElzU3lzdGVtRm9udChvcmlnaW5hbEZvbnQp
ICYmIHNob3VsZEVuaGFuY2VUZXh0TGVnaWJpbGl0eSgpKSB7CisgICAgICAgICAgICBhdXRvIGN0
V2VpZ2h0ID0gZGVub3JtYWxpemVDVFdlaWdodCh3ZWlnaHQpOworICAgICAgICAgICAgY3RXZWln
aHQgPSBDVEZvbnRHZXRBY2Nlc3NpYmlsaXR5Qm9sZFdlaWdodE9mV2VpZ2h0KGN0V2VpZ2h0KTsK
KyAgICAgICAgICAgIHdlaWdodCA9IG5vcm1hbGl6ZUNUV2VpZ2h0KGN0V2VpZ2h0KTsKKyAgICAg
ICAgfQogICAgICAgICBpZiAobmVlZHNDb252ZXJzaW9uKSB7Ci0gICAgICAgICAgICB3ZWlnaHQg
PSBkZW5vcm1hbGl6ZVdlaWdodCh3ZWlnaHQpOworICAgICAgICAgICAgd2VpZ2h0ID0gZGVub3Jt
YWxpemVHWFdlaWdodCh3ZWlnaHQpOwogICAgICAgICAgICAgd2lkdGggPSBkZW5vcm1hbGl6ZVZh
cmlhdGlvbldpZHRoKHdpZHRoKTsKICAgICAgICAgICAgIHNsb3BlID0gZGVub3JtYWxpemVTbG9w
ZShzbG9wZSk7CiAgICAgICAgIH0KQEAgLTc1Miw3ICs4MTgsNyBAQCBzdGF0aWMgZmxvYXQgc3Ry
ZXRjaEZyb21Db3JlVGV4dFRyYWl0cyhDRkRpY3Rpb25hcnlSZWYgdHJhaXRzKQogCiBzdGF0aWMg
dm9pZCBpbnZhbGlkYXRlRm9udENhY2hlKCk7CiAKLXN0YXRpYyB2b2lkIGZvbnRDYWNoZVJlZ2lz
dGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRpb25DYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRl
clJlZiwgdm9pZCogb2JzZXJ2ZXIsIENGU3RyaW5nUmVmLCBjb25zdCB2b2lkICosIENGRGljdGlv
bmFyeVJlZikKK3N0YXRpYyB2b2lkIGZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0NoYW5nZWROb3Rp
ZmljYXRpb25DYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCogb2JzZXJ2ZXIs
IENGU3RyaW5nUmVmLCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmKQogewogICAgIEFTU0VS
VF9VTlVTRUQob2JzZXJ2ZXIsIGlzTWFpblRocmVhZCgpICYmIG9ic2VydmVyID09ICZGb250Q2Fj
aGU6OmZvckN1cnJlbnRUaHJlYWQoKSk7CiAKQEAgLTc2Myw2ICs4MjksOCBAQCB2b2lkIEZvbnRD
YWNoZTo6cGxhdGZvcm1Jbml0KCkKIHsKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2Vy
dmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0TG9jYWxDZW50ZXIoKSwgdGhpcywgJmZvbnRDYWNo
ZVJlZ2lzdGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRpb25DYWxsYmFjaywga0NURm9udE1hbmFn
ZXJSZWdpc3RlcmVkRm9udHNDaGFuZ2VkTm90aWZpY2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNh
dGlvblN1c3BlbnNpb25CZWhhdmlvckRlbGl2ZXJJbW1lZGlhdGVseSk7CiAKKyAgICBDRk5vdGlm
aWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0TG9jYWxDZW50
ZXIoKSwgdGhpcywgJmZvbnRDYWNoZVJlZ2lzdGVyZWRGb250c0NoYW5nZWROb3RpZmljYXRpb25D
YWxsYmFjaywga0FYU0VuaGFuY2VUZXh0TGVnaWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb24sIG51
bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yRGVsaXZlckltbWVkaWF0ZWx5
KTsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiBjZW50
ZXIgPSBDRk5vdGlmaWNhdGlvbkNlbnRlckdldExvY2FsQ2VudGVyKCk7CiAgICAgY29uc3QgQ0ZT
dHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSA9IGtDRkxvY2FsZUN1cnJlbnRMb2NhbGVEaWRDaGFu
Z2VOb3RpZmljYXRpb247CkBAIC0xMDYzLDExICsxMTMxLDExIEBAIHN0YXRpYyBWYXJpYXRpb25D
YXBhYmlsaXRpZXMgdmFyaWF0aW9uQ2FwYWJpbGl0aWVzRm9yRm9udERlc2NyaXB0b3IoQ1RGb250
RGVzY3JpCiAKICAgICBpZiAoRm9udFR5cGUoZm9udC5nZXQoKSkudmFyaWF0aW9uVHlwZSA9PSBG
b250VHlwZTo6VmFyaWF0aW9uVHlwZTo6VHJ1ZVR5cGVHWCAmJiAhb3B0T3V0RnJvbUdYTm9ybWFs
aXphdGlvbikgewogICAgICAgICBpZiAocmVzdWx0LndlaWdodCkKLSAgICAgICAgICAgIHJlc3Vs
dC53ZWlnaHQgPSB7eyBub3JtYWxpemVXZWlnaHQocmVzdWx0LndlaWdodC52YWx1ZSgpLm1pbmlt
dW0pLCBub3JtYWxpemVXZWlnaHQocmVzdWx0LndlaWdodC52YWx1ZSgpLm1heGltdW0pIH19Owor
ICAgICAgICAgICAgcmVzdWx0LndlaWdodCA9IHsgeyBub3JtYWxpemVHWFdlaWdodChyZXN1bHQu
d2VpZ2h0LnZhbHVlKCkubWluaW11bSksIG5vcm1hbGl6ZUdYV2VpZ2h0KHJlc3VsdC53ZWlnaHQu
dmFsdWUoKS5tYXhpbXVtKSB9IH07CiAgICAgICAgIGlmIChyZXN1bHQud2lkdGgpCi0gICAgICAg
ICAgICByZXN1bHQud2lkdGggPSB7eyBub3JtYWxpemVWYXJpYXRpb25XaWR0aChyZXN1bHQud2lk
dGgudmFsdWUoKS5taW5pbXVtKSwgbm9ybWFsaXplVmFyaWF0aW9uV2lkdGgocmVzdWx0LndpZHRo
LnZhbHVlKCkubWF4aW11bSkgfX07CisgICAgICAgICAgICByZXN1bHQud2lkdGggPSB7IHsgbm9y
bWFsaXplVmFyaWF0aW9uV2lkdGgocmVzdWx0LndpZHRoLnZhbHVlKCkubWluaW11bSksIG5vcm1h
bGl6ZVZhcmlhdGlvbldpZHRoKHJlc3VsdC53aWR0aC52YWx1ZSgpLm1heGltdW0pIH0gfTsKICAg
ICAgICAgaWYgKHJlc3VsdC5zbG9wZSkKLSAgICAgICAgICAgIHJlc3VsdC5zbG9wZSA9IHt7IG5v
cm1hbGl6ZVNsb3BlKHJlc3VsdC5zbG9wZS52YWx1ZSgpLm1pbmltdW0pLCBub3JtYWxpemVTbG9w
ZShyZXN1bHQuc2xvcGUudmFsdWUoKS5tYXhpbXVtKSB9fTsKKyAgICAgICAgICAgIHJlc3VsdC5z
bG9wZSA9IHsgeyBub3JtYWxpemVTbG9wZShyZXN1bHQuc2xvcGUudmFsdWUoKS5taW5pbXVtKSwg
bm9ybWFsaXplU2xvcGUocmVzdWx0LnNsb3BlLnZhbHVlKCkubWF4aW11bSkgfSB9OwogICAgIH0K
IAogICAgIGF1dG8gbWluaW11bSA9IHN0YXRpY19jYXN0PGZsb2F0PihGb250U2VsZWN0aW9uVmFs
dWU6Om1pbmltdW1WYWx1ZSgpKTsKQEAgLTE2ODYsNCArMTc1NCw0IEBAIHZvaWQgRm9udENhY2hl
OjpwcmV3YXJtR2xvYmFsbHkoKQogI2VuZGlmCiB9CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRDYWNoZUNvcmVUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250Q2FjaGVDb3JlVGV4dC5oCmluZGV4IDAwMzVhYmExZDNmNDQ5ZTJlNGZhNzY1MzFmMGM0
MDg5MDVmODVkOTYuLjE2YzNlY2E0Y2U3NDdjNmFiMDdlYjAzNWNmMzcxM2Y5NDUzZWY2NWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNo
ZUNvcmVUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udENhY2hlQ29yZVRleHQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTctMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE3LTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzIsNiArNzIsNyBAQCBSZXRhaW5QdHI8Q1RGb250
UmVmPiBjcmVhdGVGb250Rm9ySW5zdGFsbGVkRm9udHMoQ1RGb250RGVzY3JpcHRvclJlZiwgQ0dG
bG9hdCBzaQogUmV0YWluUHRyPENURm9udFJlZj4gY3JlYXRlRm9udEZvckluc3RhbGxlZEZvbnRz
KENURm9udFJlZiwgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOwogdm9pZCBhZGRBdHRyaWJ1dGVz
Rm9yV2ViRm9udHMoQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBBbGxvd1VzZXJJ
bnN0YWxsZWRGb250cyk7CiBSZXRhaW5QdHI8Q0ZTZXRSZWY+IGluc3RhbGxlZEZvbnRNYW5kYXRv
cnlBdHRyaWJ1dGVzKEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKLQogVmFyaWF0aW9uRGVmYXVs
dHNNYXAgZGVmYXVsdFZhcmlhdGlvblZhbHVlcyhDVEZvbnRSZWYsIFNob3VsZExvY2FsaXplQXhp
c05hbWVzKTsKLX0KK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3ZlcnJpZGVFbmhhbmNlVGV4dExl
Z2liaWxpdHkoYm9vbCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCA1YTZkM2FlOGIwNThkOTQzNGNmNTM0NDZlZWIzM2UwYTQz
ZjAxOTRlLi5hN2Y4YzM4OWMwZTE2ZDQ4ZTNlOGQ4ODBhOTJiZWVhNjRkNjQzNjJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNDYsNiArMzQ2LDcgQEAKICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiRm9udENhY2hlQ29yZVRleHQuaCIKICNp
bmNsdWRlICJTeXN0ZW1CYXR0ZXJ5LmgiCiAjaW5jbHVkZSAiVlA5VXRpbGl0aWVzQ29jb2EuaCIK
ICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NvcmVUZXh0U1BJLmg+CkBAIC0xOTA0LDYgKzE5MDUsMTUg
QEAgdm9pZCBJbnRlcm5hbHM6OnNldEZvbnRTbW9vdGhpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkK
ICAgICBGb250Q2FzY2FkZTo6c2V0U2hvdWxkVXNlU21vb3RoaW5nKGVuYWJsZWQpOwogfQogCit2
b2lkIEludGVybmFsczo6c2V0T3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoYm9vbCBlbmhh
bmNlKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OnNldE92ZXJyaWRlRW5o
YW5jZVRleHRMZWdpYmlsaXR5KGVuaGFuY2UpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5o
YW5jZSk7CisjZW5kaWYKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpzZXRMb3dQ
b3dlck1vZGVFbmFibGVkKGJvb2wgaXNFbmFibGVkKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0g
Y29udGV4dERvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBhNTNk
MjhiOTkxNTU4MmI4ZWIwOWRmODI5ZmRjMGNkOGMxMDk4ZmI4Li5hNWIwY2M1NzVjNWQwZGJmYTVi
NTFmYmY2ZTAyODdlOWVkZDdhMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMxNSw2ICszMTUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGludmFsaWRhdGVGb250Q2FjaGUo
KTsKICAgICB2b2lkIHNldEZvbnRTbW9vdGhpbmdFbmFibGVkKGJvb2wpOworICAgIHZvaWQgc2V0
T3ZlcnJpZGVFbmhhbmNlVGV4dExlZ2liaWxpdHkoYm9vbCk7CiAKICAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRMb3dQb3dlck1vZGVFbmFibGVkKGJvb2wpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldE91dHNpZGVWaWV3cG9ydFRocm90dGxpbmdFbmFibGVkKGJvb2wpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGI1ODIwMTI5NmM3YmIzYTcyOTIzNjcyNDIxYWU1NjI2
NGNjMTI4NWUuLjY0OThkYmRiNzkwMGU0MTA0ZmQxNmRmMjczN2IzMmI3N2Q1MDgxZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQyOCw2ICs0MjgsNyBAQCB0eXBlZGVm
IChGZXRjaFJlcXVlc3Qgb3IgRmV0Y2hSZXNwb25zZSkgRmV0Y2hPYmplY3Q7CiAKICAgICB1bmRl
ZmluZWQgaW52YWxpZGF0ZUZvbnRDYWNoZSgpOwogICAgIHVuZGVmaW5lZCBzZXRGb250U21vb3Ro
aW5nRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOworICAgIHVuZGVmaW5lZCBzZXRPdmVycmlkZUVu
aGFuY2VUZXh0TGVnaWJpbGl0eShib29sZWFuIGVuaGFuY2UpOwogCiAgICAgdW5kZWZpbmVkIHNl
dFNjcm9sbFZpZXdQb3NpdGlvbihsb25nIHgsIGxvbmcgeSk7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNThlMmMzYTBl
ZTU1MTcyODBhMjRiYmVkMTdlZGRmMDEyYTg2ODEzLi5kYWYzNDRlMDM0Y2MyYjg1OTY1NmY5Y2Rk
YTRiMDU2ZDYwYjViNmJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDMtMjMgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFJF
R1JFU1NJT04ocjI4MTI5MSk6IFdoZW4gYWNjZXNzaWJpbGl0eSBib2xkIGlzIGVuYWJsZWQsIGZv
bnQtZmFtaWx5OnN5c3RlbS11aSBpcyBzdXBwb3NlZCB0byBiZSBib2xkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4MTcKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzg4MjQ5MjQxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgdGVzdCBoYXMgPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBydW5T
aW5nbHk9dHJ1ZSBdIC0tPiBzbyB0aGUgdGVzdGluZworICAgICAgICBpbmZyYXN0cnVjdHVyZSBm
b3IgYWNjZXNzaWJpbGl0eSBib2xkIGNhbiBiZSB3ZWItcHJvY2Vzcy1nbG9iYWwuCisKKyAgICAg
ICAgKiBmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLWV4cGVjdGVkLW1pc21hdGNoLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9hY2Nlc3NpYmlsaXR5LWJvbGQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6IEJlY2F1c2UgdGhp
cyB0ZXN0IHJlbGllcyBvbiBhIHdlYmtpdC10ZXN0LXJ1bm5lcgorICAgICAgICAgICAgICBoZWFk
ZXIsIHNraXAgaXQgb24gV0sxLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6
IE1hcmsgYXMgUEFTUy4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnM6IERpdHRvLgorCiAyMDIyLTAzLTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFtpT1NdIE1haWwgY29tcG9zZSB3ZWIgdmlldyBubyBsb25nZXIg
c2Nyb2xscyB0byByZXZlYWwgc2VsZWN0aW9uIHVwb24gc2hvd2luZyB0aGUga2V5Ym9hcmQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGU0YmFmOGFmZmI0NDc2Njc5YjU4MzZjMGM4NjRkYWI5Y2RmOGIw
NzkuLmZiZjQ2ZTY2ZTFhMjVlYTFkN2I4YTVkMjRjYjk2OTQ0YjlkMjdhZTUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNTE3MiwzICs1MTcyLDYgQEAgZmFzdC9jYW52YXMvbGFyZ2UtZ2V0SW1hZ2VE
YXRhLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMzcxMDggaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9leHRlbnNpb25zLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8y
MzcxMDggaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZyYW1lLXBhcmFt
ZXRlci5odG1sIFsgRmFpbHVyZSBdICMgPHJkYXI6Ly9wcm9ibGVtLzMzODUwMTg5Pgogd2Via2l0
Lm9yZy9iLzIzNzEwOCBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1v
ay13aXRoLWxlZ2FjeS1zZWMtd2Vic29ja2V0LXJlc3BvbnNlLWhlYWRlcnMuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCisKKyMgVGhpcyB0ZXN0IGlzIG9ubHkgcmVsZXZhbnQgb24gQXBwbGUgcGxhdGZv
cm1zLgorZmFzdC90ZXh0L2FjY2Vzc2liaWxpdHktYm9sZC5odG1sIFsgUGFzcyBJbWFnZU9ubHlG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9hY2Nlc3NpYmlsaXR5
LWJvbGQtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9hY2Nl
c3NpYmlsaXR5LWJvbGQtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmM2Yjk3
MDVkYWU2ZmRkMTEzZmViZDIwODJjMDU2ZjZlNWFjNThkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L2FjY2Vzc2liaWxpdHktYm9sZC1leHBlY3RlZC1taXNtYXRjaC5o
dG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgcnVuU2luZ2x5PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLmludmFsaWRhdGVGb250
Q2FjaGUoKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldE92ZXJyaWRlRW5oYW5jZVRleHRMZWdp
YmlsaXR5KGZhbHNlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3Qg
bWFrZXMgc3VyZSB0aGF0IGFjY2Vzc2liaWxpdHkgYm9sZCBpcyBhcHBsaWVkIHRvIGZvbnQtZmFt
aWx5OiBzeXN0ZW0tdWkuIFRoZSB0ZXN0IHBhc3NlcyBpZiB0aGUgdGV4dCBiZWxvdyBpcyBib2xk
LgorPHAgc3R5bGU9ImZvbnQ6IDI0cHggc3lzdGVtLXVpOyI+SGVsbG8gdGhpcyBpcyB0ZXh0PC9w
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2Fj
Y2Vzc2liaWxpdHktYm9sZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2FjY2Vzc2liaWxp
dHktYm9sZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0NWM4OTM4OWNlNTVjY2UxM2IyMDM2NmNkMjNmMGNl
NTA4N2ZkNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvYWNjZXNz
aWJpbGl0eS1ib2xkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBydW5TaW5nbHk9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgeworICAgIHdpbmRvdy5pbnRlcm5hbHMu
aW52YWxpZGF0ZUZvbnRDYWNoZSgpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0T3ZlcnJpZGVF
bmhhbmNlVGV4dExlZ2liaWxpdHkodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBhY2Nlc3NpYmlsaXR5IGJvbGQgaXMgYXBwbGll
ZCB0byBmb250LWZhbWlseTogc3lzdGVtLXVpLiBUaGUgdGVzdCBwYXNzZXMgaWYgdGhlIHRleHQg
YmVsb3cgaXMgYm9sZC4KKzxwIHN0eWxlPSJmb250OiAyNHB4IHN5c3RlbS11aTsiPkhlbGxvIHRo
aXMgaXMgdGV4dDwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyZTk4ZTE1ODdlOTJkYTgxYjRlNTk4ODM3
ZThkMTBlNTg4OGYzYWYzLi5lYWUxOTcyZDNjOGYyNmFhMTQxMTk0MGY2ZDJlZmRkNmVmNTk4MmY2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBA
IC0yMzM1LDQgKzIzMzUsNiBAQCBtb2RlbC1lbGVtZW50L21vZGVsLWVsZW1lbnQtaW50ZXJhY3Rp
dmUuaHRtbCBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMjM3MzU4IGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0w
MDUuaHRtbCBbIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMjM4MjgyIGVkaXRpbmcvZGVsZXRp
bmcvaW5zZXJ0LWluLW9ycGhhbmVkLXNlbGVjdGlvbi1jcmFzaC5odG1sIFsgRmFpbHVyZSBdClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQord2Via2l0Lm9yZy9iLzIzODI4MiBlZGl0aW5nL2Rl
bGV0aW5nL2luc2VydC1pbi1vcnBoYW5lZC1zZWxlY3Rpb24tY3Jhc2guaHRtbCBbIEZhaWx1cmUg
XQorCitmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjA3MDg4ZGRkMWE4MGY4YzNk
YWNmYTI5MTI0ODA3NGUwNzhjZjdmMC4uMGU3YjQxZGE3NzI5YzEzNzA3Y2E0ZmFhZmM5MWY3Mzcx
N2JhOThhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTM1NjYsMyArMzU2Niw2IEBAIHdlYmtpdC5vcmcvYi8yMzc0MzMgZWRpdGluZy9wYXN0ZWJvYXJk
LzQwNzYyNjctMy5odG1sIFsgVGltZW91dCBQYXNzIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIz
NzQzMyBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLmh0bWwgWyBUaW1lb3V0
IFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMzc5NTUgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wNDQuaHRtbCBbIEZhaWx1cmUgXQorCisjIGZhc3QvdGV4dC9hY2Nlc3NpYmls
aXR5LWJvbGQuaHRtbCByZXF1aXJlcyBXSzIuIFRoZSAqKiotd2syL1Rlc3RFeHBlY3RhdGlvbiBm
aWxlcyBtYXJrIGl0IGFzIFBBU1MuCitmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwg
WyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAxOGNiOTgyNjQ5ZmEzMjc1M2M5OTVkNzE4NTE3NjM5ZjE0ZmE2MWZiLi44NWUxNzUy
NjE3MDI5ZjcyMDM2Yzk1YjA1MjNmN2U4OWMxYzI0MjkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjk0LDMgKzE2OTQsNiBAQCB3ZWJr
aXQub3JnL2IvMjM2NDk2IGZhc3QvbWVkaWFzdHJlYW0vY2FwdHVyZVN0cmVhbS9jYW52YXMzZC5o
dG1sIFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMjM3MDk1IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd29ya2Vycy9zZW1hbnRpY3MvbXVsdGlwbGUtd29ya2Vycy8wMDQuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMzcxNjUgWyBCaWdTdXIrIERlYnVnIF0g
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvZHluYW1pYy1t
YXJrdXAtaW5zZXJ0aW9uL29wZW5pbmctdGhlLWlucHV0LXN0cmVhbS9xdWlya3Mud2luZG93Lmh0
bWwgWyBQYXNzIENyYXNoIF0KKworIyBNb250ZXJleSBhbmQgbGF0ZXIgdXNlIHRoZSBzeXN0ZW0g
Zm9udCdzIHZhcmlhYmxlLW5lc3MuCitbIE1vbnRlcmV5KyBdIGZhc3QvdGV4dC9hY2Nlc3NpYmls
aXR5LWJvbGQuaHRtbCBbIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBjZGRkYmNlY2NiNzQzZjA0MDcxMzUzODc5N2IzNjU5YWM0YmZjYjU1Li5j
MDVhNjgzYTdhYjdkYTM5MGQxYjRhNzVlZDUxNmMxYzcxNDQwNTgwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQxMCwzICsyNDEwLDUgQEAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvZXZlbnQtdGltZW91dC1vcmRlci5hbnkud29y
a2VyLmh0bWwgWyBGYWlsdXIKIAogd2Via2l0Lm9yZy9iLzIzNzE2NiBbIEJpZ1N1cisgXSB3ZWJn
bC9wZW5kaW5nL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdGV4LWltYWdlLXZpZGVvLXJlcGVh
dGVkLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCisjIGZhc3QvdGV4dC9hY2Nlc3NpYmlsaXR5LWJv
bGQuaHRtbCByZXF1aXJlcyBXSzIuIFRoZSAqKiotd2syL1Rlc3RFeHBlY3RhdGlvbiBmaWxlcyBt
YXJrIGl0IGFzIFBBU1MuCitmYXN0L3RleHQvYWNjZXNzaWJpbGl0eS1ib2xkLmh0bWwgWyBTa2lw
IF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>