<?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>240363</bug_id>
          
          <creation_ts>2022-05-12 16:33:00 -0700</creation_ts>
          <short_desc>Simplify the usage of DrawGlyphsRecorder</short_desc>
          <delta_ts>2022-05-13 00:31:14 -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>Text</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1868575</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-12 16:33:00 -0700</bug_when>
    <thetext>Simplify the usage of DrawGlyphsRecorder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868577</commentid>
    <comment_count>1</comment_count>
      <attachid>459258</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-12 16:36:49 -0700</bug_when>
    <thetext>Created attachment 459258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868582</commentid>
    <comment_count>2</comment_count>
      <attachid>459260</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-12 16:49:08 -0700</bug_when>
    <thetext>Created attachment 459260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868583</commentid>
    <comment_count>3</comment_count>
      <attachid>459258</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-05-12 16:50:41 -0700</bug_when>
    <thetext>Comment on attachment 459258
Patch

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

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:168
&gt; +        if (!m_drawGlyphsRecorder)
&gt; +            m_drawGlyphsRecorder = makeUnique&lt;DrawGlyphsRecorder&gt;(*this, m_initialScale);

I still think an &quot;ensure&quot; function would make this more readable.

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:50
&gt; +enum class DeconstructDrawGlyphs : bool { No, Yes };

I generally like to put these things inside classes to not pollute the global namespace. This type is only meaningful inside the class anyway.

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h:38
&gt; -    WEBCORE_EXPORT RecorderImpl(DisplayList&amp;, const GraphicsContextState&amp;, const FloatRect&amp; initialClip, const AffineTransform&amp;, DrawGlyphsRecorder::DeconstructDrawGlyphs = DrawGlyphsRecorder::DeconstructDrawGlyphs::Yes);
&gt; +    WEBCORE_EXPORT RecorderImpl(DisplayList&amp;, const GraphicsContextState&amp;, const FloatRect&amp; initialClip, const AffineTransform&amp;, DeconstructDrawGlyphs = DeconstructDrawGlyphs::No);

Changing the default value is suspicious. Surely the default option should be the one which is more secure, right?

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:53
&gt; +    ASSERT(deconstructDrawGlyphs == DisplayList::DeconstructDrawGlyphs::Yes);

Why not just remove the parameter then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868584</commentid>
    <comment_count>4</comment_count>
      <attachid>459258</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-05-12 16:51:30 -0700</bug_when>
    <thetext>Comment on attachment 459258
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:50
&gt;&gt; +enum class DeconstructDrawGlyphs : bool { No, Yes };
&gt; 
&gt; I generally like to put these things inside classes to not pollute the global namespace. This type is only meaningful inside the class anyway.

s/inside the class/within the context of the class/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868586</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-12 17:04:21 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #3)
&gt; Comment on attachment 459258 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459258&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:168
&gt; &gt; +        if (!m_drawGlyphsRecorder)
&gt; &gt; +            m_drawGlyphsRecorder = makeUnique&lt;DrawGlyphsRecorder&gt;(*this, m_initialScale);
&gt; 
&gt; I still think an &quot;ensure&quot; function would make this more readable.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:50
&gt; &gt; +enum class DeconstructDrawGlyphs : bool { No, Yes };
&gt; 
&gt; I generally like to put these things inside classes to not pollute the
&gt; global namespace. This type is only meaningful inside the class anyway.

OK

&gt; &gt; Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h:38
&gt; &gt; -    WEBCORE_EXPORT RecorderImpl(DisplayList&amp;, const GraphicsContextState&amp;, const FloatRect&amp; initialClip, const AffineTransform&amp;, DrawGlyphsRecorder::DeconstructDrawGlyphs = DrawGlyphsRecorder::DeconstructDrawGlyphs::Yes);
&gt; &gt; +    WEBCORE_EXPORT RecorderImpl(DisplayList&amp;, const GraphicsContextState&amp;, const FloatRect&amp; initialClip, const AffineTransform&amp;, DeconstructDrawGlyphs = DeconstructDrawGlyphs::No);
&gt; 
&gt; Changing the default value is suspicious. Surely the default option should
&gt; be the one which is more secure, right?

But it&apos;s only relevant for the GPU Process. If it defaults to Yes, then we&apos;re doing the CGContext stuff when we don&apos;t need to in, WebKit1 for example.


&gt; &gt; Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:53
&gt; &gt; +    ASSERT(deconstructDrawGlyphs == DisplayList::DeconstructDrawGlyphs::Yes);
&gt; 
&gt; Why not just remove the parameter then?

Indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868588</commentid>
    <comment_count>6</comment_count>
      <attachid>459262</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-12 17:11:46 -0700</bug_when>
    <thetext>Created attachment 459262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868631</commentid>
    <comment_count>7</comment_count>
      <attachid>459272</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-12 20:59:30 -0700</bug_when>
    <thetext>Created attachment 459272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868669</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-13 00:30:18 -0700</bug_when>
    <thetext>Committed r294145 (250515@main): &lt;https://commits.webkit.org/250515@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459272.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868670</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-13 00:31:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/93230142&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459258</attachid>
            <date>2022-05-12 16:36:49 -0700</date>
            <delta_ts>2022-05-12 17:14:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240363-20220512163649.patch</filename>
            <type>text/plain</type>
            <size>18459</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE4ODljNDhhMzY3MWY0
OTI4YzViYTk4YjAyMmU4MDBjNzhjOGRhYy4uMjRlNzg3YWE2NmM5YTc0YTkwODAzZmYyYjdmZGZh
NTU0OWViM2U5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIyLTA1LTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IHRo
ZSB1c2FnZSBvZiBEcmF3R2x5cGhzUmVjb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDM2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIERlY29uc3RydWN0RHJhd0dseXBocyBzd2l0
Y2ggZnJvbSBpbnNpZGUgRHJhd0dseXBoc1JlY29yZGVyIHRvCisgICAgICAgIERpc3BsYXlMaXN0
OjpSZWNvcmRlciwgc28gdGhhdCBEcmF3R2x5cGhzUmVjb3JkZXIgaXMgb25seSBldmVyIHVzZWQg
d2hlbiBkZWNvbnN0cnVjdGluZworICAgICAgICBnbHlwaHMuCisgICAgICAgIAorICAgICAgICBB
bHNvLCBlbnN1cmUgdGhhdCB0aGUgb25seSB0aW1lIHRoYXQgZ2x5cGggZGVjb25zdHJ1Y3Rpb24g
aXMgZW5hYmxlZCBpcyB3aGVuCisgICAgICAgIHJlY29yZGluZyBkaXNwbGF5IGxpc3RzIHZpYSBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuIFRoZXJlJ3Mgbm8gcmVhc29uIGZvcgorICAg
ICAgICBwYWludEF0dGFjaG1lbnRUZXh0KCkgdG8gbmVlZCBnbHlwaCBkZWNvbnN0cnVjdGlvbi4K
KyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgYSBzbWFsbCBwZXJmIGltcHJvdmVtZW50IG9uIHRo
ZSBNb3Rpb25NYXJrIERlc2lnbiBzdWJ0ZXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvRHJhd0dseXBoc1JlY29yZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRlY29uc3RydWN0RHJhd0dseXBocyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1biBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZXRleHQvRHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYXdHbHlwaHNSZWNvcmRlcjo6ZHJhd05hdGl2ZVRleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0dseXBoc0FuZENhY2hl
Rm9udCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVySW1wbDo6UmVjb3JkZXJJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpwYWludEF0dGFj
aG1lbnRUZXh0KToKKwogMjAyMi0wNS0xMSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWlsIGNvbXBvc2U6IHJpZ2h0IGNsaWNraW5nIGFuIGlt
YWdlIGF0dGFjaG1lbnQgc2VsZWN0cyBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMWI2NGFmM2U3ZjYzNzg1Yzg3
MWFhYzFiODVhYTNjZjBmZWY3NzZjLi40MWE5MzE3ZWU2Y2QzYzRkOWVmNDllM2VlZmU0YTkyZTE0
MGJlNmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTA1LTEyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IHRoZSB1c2Fn
ZSBvZiBEcmF3R2x5cGhzUmVjb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI0MDM2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1vdmUgdGhlIERlY29uc3RydWN0RHJhd0dseXBocyBzd2l0Y2ggZnJv
bSBpbnNpZGUgRHJhd0dseXBoc1JlY29yZGVyIHRvCisgICAgICAgIERpc3BsYXlMaXN0OjpSZWNv
cmRlciwgc28gdGhhdCBEcmF3R2x5cGhzUmVjb3JkZXIgaXMgb25seSBldmVyIHVzZWQgd2hlbiBk
ZWNvbnN0cnVjdGluZworICAgICAgICBnbHlwaHMuCisgICAgICAgIAorICAgICAgICBBbHNvLCBl
bnN1cmUgdGhhdCB0aGUgb25seSB0aW1lIHRoYXQgZ2x5cGggZGVjb25zdHJ1Y3Rpb24gaXMgZW5h
YmxlZCBpcyB3aGVuCisgICAgICAgIHJlY29yZGluZyBkaXNwbGF5IGxpc3RzIHZpYSBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHkuIFRoZXJlJ3Mgbm8gcmVhc29uIGZvcgorICAgICAgICBw
YWludEF0dGFjaG1lbnRUZXh0KCkgdG8gbmVlZCBnbHlwaCBkZWNvbnN0cnVjdGlvbi4KKworICAg
ICAgICBUaGlzIGlzIGEgc21hbGwgcGVyZiBpbXByb3ZlbWVudCBvbiB0aGUgTW90aW9uTWFyayBE
ZXNpZ24gc3VidGVzdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6bV9yZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaDoKKwogMjAy
Mi0wNS0xMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbR1RLXVtXUEVdIERvIG5vdCByZXR1cm4gcG9pbnRlciB0byBkaXNwb3NlZCB0aW1lem9uZSBz
dHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0RyYXdH
bHlwaHNSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRHJhd0ds
eXBoc1JlY29yZGVyLmgKaW5kZXggNDE4MThkY2NjMjRiMjVjZmZkMGZiNmU2ODhjMDNmOTliZTlh
MGM3Mi4uNjg2ZWZjZTNiYTgxYjI3N2IxZGI2NDUzNjA0N2ViZGM0YjllZDRlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRHJhd0dseXBoc1JlY29yZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRHJhd0dseXBoc1JlY29yZGVy
LmgKQEAgLTU1LDkgKzU1LDggQEAgY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEcmF3R2x5cGhz
UmVjb3JkZXIpOwogcHVibGljOgotICAgIGVudW0gY2xhc3MgRGVjb25zdHJ1Y3REcmF3R2x5cGhz
IDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICBlbnVtIGNsYXNzIERlcml2ZUZvbnRGcm9tQ29udGV4
dCA6IGJvb2wgeyBObywgWWVzIH07Ci0gICAgZXhwbGljaXQgRHJhd0dseXBoc1JlY29yZGVyKEdy
YXBoaWNzQ29udGV4dCYsIGZsb2F0IHNjYWxlRmFjdG9yID0gMSwgRGVjb25zdHJ1Y3REcmF3R2x5
cGhzID0gRGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpObywgRGVyaXZlRm9udEZyb21Db250ZXh0ID0g
RGVyaXZlRm9udEZyb21Db250ZXh0OjpObyk7CisgICAgZXhwbGljaXQgRHJhd0dseXBoc1JlY29y
ZGVyKEdyYXBoaWNzQ29udGV4dCYsIGZsb2F0IHNjYWxlRmFjdG9yID0gMSwgRGVyaXZlRm9udEZy
b21Db250ZXh0ID0gRGVyaXZlRm9udEZyb21Db250ZXh0OjpObyk7CiAKICAgICB2b2lkIGRyYXdH
bHlwaHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBHbHlwaEJ1
ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hv
clBvaW50LCBGb250U21vb3RoaW5nTW9kZSk7CiAKQEAgLTcwLDggKzY5LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVm
LCBDR1JlY3QsIENHSW1hZ2VSZWYpOwogI2VuZGlmCiAKLSAgICBEZWNvbnN0cnVjdERyYXdHbHlw
aHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKCkgY29uc3QgeyByZXR1cm4gbV9kZWNvbnN0cnVjdERy
YXdHbHlwaHM7IH0KLQogcHJpdmF0ZToKICNpZiBVU0UoQ09SRV9URVhUKSAmJiAhUExBVEZPUk0o
V0lOKQogICAgIFVuaXF1ZVJlZjxHcmFwaGljc0NvbnRleHQ+IGNyZWF0ZUludGVybmFsQ29udGV4
dCgpOwpAQCAtMTA0LDE1ICsxMDEsMTYgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgR3JhcGhp
Y3NDb250ZXh0JiBtX293bmVyOwotICAgIERlY29uc3RydWN0RHJhd0dseXBocyBtX2RlY29uc3Ry
dWN0RHJhd0dseXBoczsKLSAgICBEZXJpdmVGb250RnJvbUNvbnRleHQgbV9kZXJpdmVGb250RnJv
bUNvbnRleHQ7CiAKICNpZiBVU0UoQ09SRV9URVhUKSAmJiAhUExBVEZPUk0oV0lOKQogICAgIFVu
aXF1ZVJlZjxHcmFwaGljc0NvbnRleHQ+IG1faW50ZXJuYWxDb250ZXh0OwogI2VuZGlmCiAKICAg
ICBjb25zdCBGb250KiBtX29yaWdpbmFsRm9udCB7IG51bGxwdHIgfTsKKworICAgIGNvbnN0IERl
cml2ZUZvbnRGcm9tQ29udGV4dCBtX2Rlcml2ZUZvbnRGcm9tQ29udGV4dDsKICAgICBGb250U21v
b3RoaW5nTW9kZSBtX3Ntb290aGluZ01vZGUgeyBGb250U21vb3RoaW5nTW9kZTo6QXV0b1Ntb290
aGluZyB9OworCiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxUZXh0TWF0cml4OwogCiAg
ICAgc3RydWN0IFN0YXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmNwcAppbmRleCBkMjk2YzUxYjdjMmQzOGMyOGQ4OGNhZmE2OGE3MWVhYThh
ODE5ZjQxLi4xMGU2ZmIyYjc3M2QxZDZjNGVjNWI1YzM4YzUyZTA5OTQ0MDZjNzQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC0y
MTMsNyArMjEzLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3Bs
YXlMaXN0PiBGb250Q2FzY2FkZTo6ZGlzcGxheUxpc3RGb3JUZXgKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgCiAgICAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURp
c3BsYXlMaXN0PiBkaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxheUxpc3Q6OkluTWVtb3J5
RGlzcGxheUxpc3Q+KCk7Ci0gICAgRGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbCByZWNvcmRpbmdD
b250ZXh0KCpkaXNwbGF5TGlzdCwgY29udGV4dC5zdGF0ZSgpLmNsb25lRm9yUmVjb3JkaW5nKCks
IEZsb2F0UmVjdCgpLCBBZmZpbmVUcmFuc2Zvcm0oKSwgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNv
bnN0cnVjdERyYXdHbHlwaHM6Ok5vKTsKKyAgICBEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsIHJl
Y29yZGluZ0NvbnRleHQoKmRpc3BsYXlMaXN0LCBjb250ZXh0LnN0YXRlKCkuY2xvbmVGb3JSZWNv
cmRpbmcoKSwgeyB9LCB7IH0pOwogICAgIAogICAgIEZsb2F0UG9pbnQgc3RhcnRQb2ludCA9IHRv
RmxvYXRQb2ludChXZWJDb3JlOjpzaXplKGdseXBoQnVmZmVyLmluaXRpYWxBZHZhbmNlKCkpKTsK
ICAgICBkcmF3R2x5cGhCdWZmZXIocmVjb3JkaW5nQ29udGV4dCwgZ2x5cGhCdWZmZXIsIHN0YXJ0
UG9pbnQsIGN1c3RvbUZvbnROb3RSZWFkeUFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9EcmF3R2x5
cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKaW5kZXggYjQxODUxZGU2NTAyMWEyZmJiZDAzMjY4ZmU0
MjQ5MGU0ODIxOGJhNy4uMjZhNzUxNWY5Y2VhOThhOTk0NWU1OGU1YWQ3NDJkNDEzNGQyNTcwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRHJh
d0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0RyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApAQCAtODYs
MTEgKzg2LDEwIEBAIFVuaXF1ZVJlZjxHcmFwaGljc0NvbnRleHQ+IERyYXdHbHlwaHNSZWNvcmRl
cjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KCkKICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxHcmFw
aGljc0NvbnRleHRDRz4oY29udGV4dC5nZXQoKSk7CiB9CiAKLURyYXdHbHlwaHNSZWNvcmRlcjo6
RHJhd0dseXBoc1JlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgb3duZXIsIGZsb2F0IHNjYWxlRmFj
dG9yLCBEZWNvbnN0cnVjdERyYXdHbHlwaHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzLCBEZXJpdmVG
b250RnJvbUNvbnRleHQgZGVyaXZlRm9udEZyb21Db250ZXh0KQorRHJhd0dseXBoc1JlY29yZGVy
OjpEcmF3R2x5cGhzUmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBvd25lciwgZmxvYXQgc2NhbGVG
YWN0b3IsIERlcml2ZUZvbnRGcm9tQ29udGV4dCBkZXJpdmVGb250RnJvbUNvbnRleHQpCiAgICAg
OiBtX293bmVyKG93bmVyKQotICAgICwgbV9kZWNvbnN0cnVjdERyYXdHbHlwaHMoZGVjb25zdHJ1
Y3REcmF3R2x5cGhzKQotICAgICwgbV9kZXJpdmVGb250RnJvbUNvbnRleHQoZGVyaXZlRm9udEZy
b21Db250ZXh0KQogICAgICwgbV9pbnRlcm5hbENvbnRleHQoY3JlYXRlSW50ZXJuYWxDb250ZXh0
KCkpCisgICAgLCBtX2Rlcml2ZUZvbnRGcm9tQ29udGV4dChkZXJpdmVGb250RnJvbUNvbnRleHQp
CiB7CiAgICAgbV9pbnRlcm5hbENvbnRleHQtPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVG
YWN0b3IpOwogfQpAQCAtMzk4LDIwICszOTcsMTEgQEAgdm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6
OmRyYXdCeVNwbGl0dGluZ0ludG9PVFNWR0FuZE5vbk9UU1ZHUnVucyhjb25zdCBGb250JiBmb24K
IAogdm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwg
Y29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2Uq
IGFkdmFuY2VzLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9p
bnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiB7Ci0gICAgaWYgKG1fZGVjb25z
dHJ1Y3REcmF3R2x5cGhzID09IERlY29uc3RydWN0RHJhd0dseXBoczo6Tm8pIHsKLSAgICAgICAg
bV9vd25lci5kcmF3R2x5cGhzQW5kQ2FjaGVGb250KGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51
bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBBU1NFUlQobV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgPT0gRGVjb25zdHJ1Y3RE
cmF3R2x5cGhzOjpZZXMpOwotCiAgICAgZHJhd0J5U3BsaXR0aW5nSW50b09UU1ZHQW5kTm9uT1RT
VkdSdW5zKGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywgc3RhcnRQb2ludCwgc21v
b3RoaW5nTW9kZSk7CiB9CiAKIHZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3TmF0aXZlVGV4
dChDVEZvbnRSZWYgZm9udCwgQ0dGbG9hdCBmb250U2l6ZSwgQ1RMaW5lUmVmIGxpbmUsIENHUmVj
dCBsaW5lUmVjdCkKIHsKLSAgICBBU1NFUlQobV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgPT0gRGVj
b25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOwotCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciBzYXZlcihtX293bmVyKTsKIAogICAgIG1fb3duZXIudHJhbnNsYXRlKGxpbmVSZWN0Lm9yaWdp
bi54LCBsaW5lUmVjdC5vcmlnaW4ueSArIGxpbmVSZWN0LnNpemUuaGVpZ2h0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCA0YWU3ZThhOGFiNDRjMjg3YzYz
NzM2OTcxODc5MGNjZWUxMzYxYzdiLi4wNzRiZjYwOTNlZDM3OGUxODExZmY4ZmM2Y2E1ZDA1N2I3
N2U5OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC00
Niw3ICs0Niw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3Qg
ewogCi1SZWNvcmRlcjo6UmVjb3JkZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRl
LCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGlu
aXRpYWxDVE0sIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29u
c3RydWN0RHJhd0dseXBocykKK1JlY29yZGVyOjpSZWNvcmRlcihjb25zdCBHcmFwaGljc0NvbnRl
eHRTdGF0ZSYgc3RhdGUsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0
RHJhd0dseXBocykKICAgICA6IEdyYXBoaWNzQ29udGV4dChzdGF0ZSkKICAgICAsIG1faW5pdGlh
bFNjYWxlKGluaXRpYWxDVE0ueFNjYWxlKCkpCiAgICAgLCBtX2RlY29uc3RydWN0RHJhd0dseXBo
cyhkZWNvbnN0cnVjdERyYXdHbHlwaHMpCkBAIC0xNjMsMTcgKzE2MywyMiBAQCB2b2lkIFJlY29y
ZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdAogCiB2b2lkIFJlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZv
bnQsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZh
bmNlKiBhZHZhbmNlcywgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFy
dFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQogewotICAgIGlmICghbV9k
cmF3R2x5cGhzUmVjb3JkZXIpCi0gICAgICAgIG1fZHJhd0dseXBoc1JlY29yZGVyID0gbWFrZVVu
aXF1ZTxEcmF3R2x5cGhzUmVjb3JkZXI+KCp0aGlzLCBtX2luaXRpYWxTY2FsZSwgbV9kZWNvbnN0
cnVjdERyYXdHbHlwaHMpOworICAgIGlmIChtX2RlY29uc3RydWN0RHJhd0dseXBocyA9PSBEZWNv
bnN0cnVjdERyYXdHbHlwaHM6OlllcykgeworICAgICAgICBpZiAoIW1fZHJhd0dseXBoc1JlY29y
ZGVyKQorICAgICAgICAgICAgbV9kcmF3R2x5cGhzUmVjb3JkZXIgPSBtYWtlVW5pcXVlPERyYXdH
bHlwaHNSZWNvcmRlcj4oKnRoaXMsIG1faW5pdGlhbFNjYWxlKTsKIAotICAgIG1fZHJhd0dseXBo
c1JlY29yZGVyLT5kcmF3R2x5cGhzKGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywg
c3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAgICAgIG1fZHJhd0dseXBoc1JlY29yZGVy
LT5kcmF3R2x5cGhzKGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywgc3RhcnRQb2lu
dCwgc21vb3RoaW5nTW9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkcmF3R2x5
cGhzQW5kQ2FjaGVGb250KGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywgc3RhcnRQ
b2ludCwgc21vb3RoaW5nTW9kZSk7CiB9CiAKLXZvaWQgUmVjb3JkZXI6OmRyYXdHbHlwaHNBbmRD
YWNoZUZvbnQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhz
LCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29u
c3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01v
ZGUpCit2b2lkIFJlY29yZGVyOjpkcmF3R2x5cGhzQW5kQ2FjaGVGb250KGNvbnN0IEZvbnQmIGZv
bnQsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZh
bmNlKiBhZHZhbmNlcywgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBsb2Nh
bEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKIHsKICAgICBhcHBlbmRT
dGF0ZUNoYW5nZUl0ZW1JZk5lY2Vzc2FyeSgpOwogICAgIHJlY29yZFJlc291cmNlVXNlKGNvbnN0
X2Nhc3Q8Rm9udCY+KGZvbnQpKTsKLSAgICByZWNvcmREcmF3R2x5cGhzKGZvbnQsIGdseXBocywg
YWR2YW5jZXMsIGNvdW50LCBsb2NhbEFuY2hvciwgc21vb3RoaW5nTW9kZSk7CisgICAgcmVjb3Jk
RHJhd0dseXBocyhmb250LCBnbHlwaHMsIGFkdmFuY2VzLCBudW1HbHlwaHMsIGxvY2FsQW5jaG9y
LCBzbW9vdGhpbmdNb2RlKTsKIH0KIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKElt
YWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDUyMjM0NzQ4ZDViOTFl
MzVjMGU2OTg2MDZjZGUzNjAwM2RjM2NiYmUuLjk4ZGU5MzQ4NmNmMjA4MmIyOWRjZjdhNjEwNWU2
YjU5ZWM5NjNjODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAt
NDcsMTEgKzQ3LDEzIEBAIHN0cnVjdCBJbWFnZVBhaW50aW5nT3B0aW9uczsKIAogbmFtZXNwYWNl
IERpc3BsYXlMaXN0IHsKIAorZW51bSBjbGFzcyBEZWNvbnN0cnVjdERyYXdHbHlwaHMgOiBib29s
IHsgTm8sIFllcyB9OworCiBjbGFzcyBSZWNvcmRlciA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFJlY29yZGVyKTsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRlcihjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5
cGhzID0gRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHM6Olllcyk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgUmVjb3JkZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBj
b25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBEZWNv
bnN0cnVjdERyYXdHbHlwaHMgPSBEZWNvbnN0cnVjdERyYXdHbHlwaHM6Ok5vKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIH5SZWNvcmRlcigpOwogCiAgICAgdmlydHVhbCB2b2lkIGNvbnZl
cnRUb0x1bWluYW5jZU1hc2soKSA9IDA7CkBAIC0yNzEsNyArMjczLDcgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8Q29udGV4dFN0YXRlLCA0PiBtX3N0YXRlU3RhY2s7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPERyYXdHbHlwaHNSZWNvcmRlcj4gbV9kcmF3R2x5cGhzUmVjb3JkZXI7CiAgICAgZmxvYXQg
bV9pbml0aWFsU2NhbGUgeyAxIH07Ci0gICAgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVj
dERyYXdHbHlwaHMgbV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgeyBEcmF3R2x5cGhzUmVjb3JkZXI6
OkRlY29uc3RydWN0RHJhd0dseXBoczo6Tm8gfTsKKyAgICBjb25zdCBEZWNvbnN0cnVjdERyYXdH
bHlwaHMgbV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgeyBEZWNvbnN0cnVjdERyYXdHbHlwaHM6Ok5v
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBEaXNwbGF5TGlzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAKaW5kZXggMmI2YjJhYTNlN2QwNmM0MjVkNTVm
NmUyMjU1ZTg4ZWVmNzc4NzAyZC4uM2RkMTE4ODcyMWZlMmU0NjcyZmY4NDA4MjVkNjk2ZmRjMDg4
ZWMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3Bw
CkBAIC00Miw3ICs0Miw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxh
eUxpc3QgewogCi1SZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNwbGF5TGlzdCYgZGlzcGxh
eUxpc3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0
JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBEcmF3R2x5
cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyBkZWNvbnN0cnVjdERyYXdHbHlwaHMp
CitSZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNv
bnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFs
Q2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBEZWNvbnN0cnVjdERyYXdH
bHlwaHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQogICAgIDogUmVjb3JkZXIoc3RhdGUsIGluaXRp
YWxDbGlwLCBpbml0aWFsQ1RNLCBkZWNvbnN0cnVjdERyYXdHbHlwaHMpCiAgICAgLCBtX2Rpc3Bs
YXlMaXN0KGRpc3BsYXlMaXN0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlckltcGwuaAppbmRleCA4Zjg5OWI5ZmQ0ODNjOGEwODIzMTk0ODU0Zjc1YjI1NjVkN2IwMzE0
Li40MjZhYjAzZjRiMDY2MjM4YmYzN2JlZjdhYmMyMzljNzRkMTk0MGRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFz
cyBSZWNvcmRlckltcGwgOiBwdWJsaWMgUmVjb3JkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlY29yZGVySW1wbCk7CiBwdWJsaWM6
Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVjb3JkZXJJbXBsKERpc3BsYXlMaXN0JiwgY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBo
cyA9IERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOworICAg
IFdFQkNPUkVfRVhQT1JUIFJlY29yZGVySW1wbChEaXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzID0gRGVjb25zdHJ1Y3REcmF3R2x5cGhz
OjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVjb3JkZXJJbXBsKCk7CiAKICAg
ICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlMaXN0LmlzRW1wdHkoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IDU3OTc3
ZjAwNWRmMjJiMmFkMjRjYTFhMTM3YTAzNGUxZjQ2YTQ1MjEuLjlkZjRjMzU4NzYyZDU2YzA4YzE1
NmY3YjBkMWNjODgxZjM5ZTY5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVJT1MubW0KQEAgLTE5MTksNyArMTkxOSw3IEBAIHN0YXRpYyB2b2lkIHBhaW50QXR0YWNo
bWVudEljb24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBSZW5kZXJBdHRhY2htZW50SW5mbyYK
IAogc3RhdGljIHZvaWQgcGFpbnRBdHRhY2htZW50VGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIFJlbmRlckF0dGFjaG1lbnRJbmZvJiBpbmZvKQogewotICAgIERyYXdHbHlwaHNSZWNvcmRl
ciByZWNvcmRlcihjb250ZXh0LCAxLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJh
d0dseXBoczo6WWVzLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlcml2ZUZvbnRGcm9tQ29udGV4dDo6
WWVzKTsKKyAgICBEcmF3R2x5cGhzUmVjb3JkZXIgcmVjb3JkZXIoY29udGV4dCwgMSwgRHJhd0ds
eXBoc1JlY29yZGVyOjpEZXJpdmVGb250RnJvbUNvbnRleHQ6Olllcyk7CiAKICAgICBmb3IgKGNv
bnN0IGF1dG8mIGxpbmUgOiBpbmZvLmxpbmVzKQogICAgICAgICByZWNvcmRlci5kcmF3TmF0aXZl
VGV4dChsaW5lLmZvbnQuZ2V0KCksIENURm9udEdldFNpemUobGluZS5mb250LmdldCgpKSwgbGlu
ZS5saW5lLmdldCgpLCBsaW5lLnJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkuY3BwCmluZGV4IDAxYzg2NWJlMTI3ODI4ODViNzExZTA2ZGZlYmUxYjBhYWE2
MTYzYmUuLmRjNDg2YzM4Y2JlMmE4N2U0YTcyOGE4ZmVkZDhhOWUwYzFiY2MxMWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKQEAgLTQ0LDEyICs0NCwx
MyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHkoSW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkm
IHJlbmRlcmluZ0JhY2tlbmQsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVj
dERyYXdHbHlwaHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQorUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkoSW1hZ2VCdWZmZXImIGlt
YWdlQnVmZmVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbmRlcmluZ0JhY2tlbmQs
IGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5p
dGlhbENUTSwgRGlzcGxheUxpc3Q6OkRlY29uc3RydWN0RHJhd0dseXBocyBkZWNvbnN0cnVjdERy
YXdHbHlwaHMpCiAgICAgOiBEaXNwbGF5TGlzdDo6UmVjb3JkZXIoeyB9LCBpbml0aWFsQ2xpcCwg
aW5pdGlhbENUTSwgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQogICAgICwgbV9kZXN0aW5hdGlvbkJ1
ZmZlcklkZW50aWZpZXIoaW1hZ2VCdWZmZXIucmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKCkp
CiAgICAgLCBtX2ltYWdlQnVmZmVyKGltYWdlQnVmZmVyKQogICAgICwgbV9yZW5kZXJpbmdCYWNr
ZW5kKHJlbmRlcmluZ0JhY2tlbmQpCiB7CisgICAgQVNTRVJUKGRlY29uc3RydWN0RHJhd0dseXBo
cyA9PSBEaXNwbGF5TGlzdDo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOwogfQogCiB2b2lk
IFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6Y29udmVydFRvTHVtaW5hbmNlTWFzaygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaAppbmRleCBkMzEyMzA3
YTBkNjY2YzRiOWRiZjc5Y2I0M2VhMzc3YjJlZGI0YTk5Li5mMmY0ZGJjY2JkMDk1NTAzMDM4N2Ey
OTYwNDNkYmJjYzBkNWMzNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5LmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OwogCiBjbGFzcyBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkgOiBwdWJsaWMgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyIHsKIHB1YmxpYzoKLSAgICBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHkoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25z
dCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBXZWJDb3JlOjpEcmF3R2x5cGhzUmVjb3JkZXI6
OkRlY29uc3RydWN0RHJhd0dseXBocyA9IFdlYkNvcmU6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RGVj
b25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOworICAgIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IFdlYkNvcmU6OkFm
ZmluZVRyYW5zZm9ybSYsIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEZWNvbnN0cnVjdERyYXdHbHlw
aHMgPSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOwog
ICAgIH5SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkoKSA9IGRlZmF1bHQ7CiAKICAgICB2
b2lkIHJlc2V0TmVlZHNGbHVzaCgpIHsgbV9uZWVkc0ZsdXNoID0gZmFsc2U7IH0K
</data>
<flag name="review"
          id="488297"
          type_id="1"
          status="+"
          setter="mmaxfield"
    />
    <flag name="commit-queue"
          id="488300"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459260</attachid>
            <date>2022-05-12 16:49:08 -0700</date>
            <delta_ts>2022-05-12 17:12:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240363-20220512164908.patch</filename>
            <type>text/plain</type>
            <size>19156</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE4ODljNDhhMzY3MWY0
OTI4YzViYTk4YjAyMmU4MDBjNzhjOGRhYy4uMjRlNzg3YWE2NmM5YTc0YTkwODAzZmYyYjdmZGZh
NTU0OWViM2U5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIyLTA1LTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IHRo
ZSB1c2FnZSBvZiBEcmF3R2x5cGhzUmVjb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDM2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIERlY29uc3RydWN0RHJhd0dseXBocyBzd2l0
Y2ggZnJvbSBpbnNpZGUgRHJhd0dseXBoc1JlY29yZGVyIHRvCisgICAgICAgIERpc3BsYXlMaXN0
OjpSZWNvcmRlciwgc28gdGhhdCBEcmF3R2x5cGhzUmVjb3JkZXIgaXMgb25seSBldmVyIHVzZWQg
d2hlbiBkZWNvbnN0cnVjdGluZworICAgICAgICBnbHlwaHMuCisgICAgICAgIAorICAgICAgICBB
bHNvLCBlbnN1cmUgdGhhdCB0aGUgb25seSB0aW1lIHRoYXQgZ2x5cGggZGVjb25zdHJ1Y3Rpb24g
aXMgZW5hYmxlZCBpcyB3aGVuCisgICAgICAgIHJlY29yZGluZyBkaXNwbGF5IGxpc3RzIHZpYSBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuIFRoZXJlJ3Mgbm8gcmVhc29uIGZvcgorICAg
ICAgICBwYWludEF0dGFjaG1lbnRUZXh0KCkgdG8gbmVlZCBnbHlwaCBkZWNvbnN0cnVjdGlvbi4K
KyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgYSBzbWFsbCBwZXJmIGltcHJvdmVtZW50IG9uIHRo
ZSBNb3Rpb25NYXJrIERlc2lnbiBzdWJ0ZXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvRHJhd0dseXBoc1JlY29yZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRlY29uc3RydWN0RHJhd0dseXBocyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1biBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZXRleHQvRHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYXdHbHlwaHNSZWNvcmRlcjo6ZHJhd05hdGl2ZVRleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0dseXBoc0FuZENhY2hl
Rm9udCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVySW1wbDo6UmVjb3JkZXJJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpwYWludEF0dGFj
aG1lbnRUZXh0KToKKwogMjAyMi0wNS0xMSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWlsIGNvbXBvc2U6IHJpZ2h0IGNsaWNraW5nIGFuIGlt
YWdlIGF0dGFjaG1lbnQgc2VsZWN0cyBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMWI2NGFmM2U3ZjYzNzg1Yzg3
MWFhYzFiODVhYTNjZjBmZWY3NzZjLi40MWE5MzE3ZWU2Y2QzYzRkOWVmNDllM2VlZmU0YTkyZTE0
MGJlNmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTA1LTEyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IHRoZSB1c2Fn
ZSBvZiBEcmF3R2x5cGhzUmVjb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI0MDM2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1vdmUgdGhlIERlY29uc3RydWN0RHJhd0dseXBocyBzd2l0Y2ggZnJv
bSBpbnNpZGUgRHJhd0dseXBoc1JlY29yZGVyIHRvCisgICAgICAgIERpc3BsYXlMaXN0OjpSZWNv
cmRlciwgc28gdGhhdCBEcmF3R2x5cGhzUmVjb3JkZXIgaXMgb25seSBldmVyIHVzZWQgd2hlbiBk
ZWNvbnN0cnVjdGluZworICAgICAgICBnbHlwaHMuCisgICAgICAgIAorICAgICAgICBBbHNvLCBl
bnN1cmUgdGhhdCB0aGUgb25seSB0aW1lIHRoYXQgZ2x5cGggZGVjb25zdHJ1Y3Rpb24gaXMgZW5h
YmxlZCBpcyB3aGVuCisgICAgICAgIHJlY29yZGluZyBkaXNwbGF5IGxpc3RzIHZpYSBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHkuIFRoZXJlJ3Mgbm8gcmVhc29uIGZvcgorICAgICAgICBw
YWludEF0dGFjaG1lbnRUZXh0KCkgdG8gbmVlZCBnbHlwaCBkZWNvbnN0cnVjdGlvbi4KKworICAg
ICAgICBUaGlzIGlzIGEgc21hbGwgcGVyZiBpbXByb3ZlbWVudCBvbiB0aGUgTW90aW9uTWFyayBE
ZXNpZ24gc3VidGVzdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6bV9yZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaDoKKwogMjAy
Mi0wNS0xMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbR1RLXVtXUEVdIERvIG5vdCByZXR1cm4gcG9pbnRlciB0byBkaXNwb3NlZCB0aW1lem9uZSBz
dHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0RyYXdH
bHlwaHNSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRHJhd0ds
eXBoc1JlY29yZGVyLmgKaW5kZXggNDE4MThkY2NjMjRiMjVjZmZkMGZiNmU2ODhjMDNmOTliZTlh
MGM3Mi4uNjg2ZWZjZTNiYTgxYjI3N2IxZGI2NDUzNjA0N2ViZGM0YjllZDRlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRHJhd0dseXBoc1JlY29yZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRHJhd0dseXBoc1JlY29yZGVy
LmgKQEAgLTU1LDkgKzU1LDggQEAgY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEcmF3R2x5cGhz
UmVjb3JkZXIpOwogcHVibGljOgotICAgIGVudW0gY2xhc3MgRGVjb25zdHJ1Y3REcmF3R2x5cGhz
IDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICBlbnVtIGNsYXNzIERlcml2ZUZvbnRGcm9tQ29udGV4
dCA6IGJvb2wgeyBObywgWWVzIH07Ci0gICAgZXhwbGljaXQgRHJhd0dseXBoc1JlY29yZGVyKEdy
YXBoaWNzQ29udGV4dCYsIGZsb2F0IHNjYWxlRmFjdG9yID0gMSwgRGVjb25zdHJ1Y3REcmF3R2x5
cGhzID0gRGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpObywgRGVyaXZlRm9udEZyb21Db250ZXh0ID0g
RGVyaXZlRm9udEZyb21Db250ZXh0OjpObyk7CisgICAgZXhwbGljaXQgRHJhd0dseXBoc1JlY29y
ZGVyKEdyYXBoaWNzQ29udGV4dCYsIGZsb2F0IHNjYWxlRmFjdG9yID0gMSwgRGVyaXZlRm9udEZy
b21Db250ZXh0ID0gRGVyaXZlRm9udEZyb21Db250ZXh0OjpObyk7CiAKICAgICB2b2lkIGRyYXdH
bHlwaHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBHbHlwaEJ1
ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hv
clBvaW50LCBGb250U21vb3RoaW5nTW9kZSk7CiAKQEAgLTcwLDggKzY5LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVm
LCBDR1JlY3QsIENHSW1hZ2VSZWYpOwogI2VuZGlmCiAKLSAgICBEZWNvbnN0cnVjdERyYXdHbHlw
aHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKCkgY29uc3QgeyByZXR1cm4gbV9kZWNvbnN0cnVjdERy
YXdHbHlwaHM7IH0KLQogcHJpdmF0ZToKICNpZiBVU0UoQ09SRV9URVhUKSAmJiAhUExBVEZPUk0o
V0lOKQogICAgIFVuaXF1ZVJlZjxHcmFwaGljc0NvbnRleHQ+IGNyZWF0ZUludGVybmFsQ29udGV4
dCgpOwpAQCAtMTA0LDE1ICsxMDEsMTYgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgR3JhcGhp
Y3NDb250ZXh0JiBtX293bmVyOwotICAgIERlY29uc3RydWN0RHJhd0dseXBocyBtX2RlY29uc3Ry
dWN0RHJhd0dseXBoczsKLSAgICBEZXJpdmVGb250RnJvbUNvbnRleHQgbV9kZXJpdmVGb250RnJv
bUNvbnRleHQ7CiAKICNpZiBVU0UoQ09SRV9URVhUKSAmJiAhUExBVEZPUk0oV0lOKQogICAgIFVu
aXF1ZVJlZjxHcmFwaGljc0NvbnRleHQ+IG1faW50ZXJuYWxDb250ZXh0OwogI2VuZGlmCiAKICAg
ICBjb25zdCBGb250KiBtX29yaWdpbmFsRm9udCB7IG51bGxwdHIgfTsKKworICAgIGNvbnN0IERl
cml2ZUZvbnRGcm9tQ29udGV4dCBtX2Rlcml2ZUZvbnRGcm9tQ29udGV4dDsKICAgICBGb250U21v
b3RoaW5nTW9kZSBtX3Ntb290aGluZ01vZGUgeyBGb250U21vb3RoaW5nTW9kZTo6QXV0b1Ntb290
aGluZyB9OworCiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxUZXh0TWF0cml4OwogCiAg
ICAgc3RydWN0IFN0YXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmNwcAppbmRleCBkMjk2YzUxYjdjMmQzOGMyOGQ4OGNhZmE2OGE3MWVhYThh
ODE5ZjQxLi4xMGU2ZmIyYjc3M2QxZDZjNGVjNWI1YzM4YzUyZTA5OTQ0MDZjNzQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC0y
MTMsNyArMjEzLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3Bs
YXlMaXN0PiBGb250Q2FzY2FkZTo6ZGlzcGxheUxpc3RGb3JUZXgKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgCiAgICAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURp
c3BsYXlMaXN0PiBkaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxheUxpc3Q6OkluTWVtb3J5
RGlzcGxheUxpc3Q+KCk7Ci0gICAgRGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbCByZWNvcmRpbmdD
b250ZXh0KCpkaXNwbGF5TGlzdCwgY29udGV4dC5zdGF0ZSgpLmNsb25lRm9yUmVjb3JkaW5nKCks
IEZsb2F0UmVjdCgpLCBBZmZpbmVUcmFuc2Zvcm0oKSwgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNv
bnN0cnVjdERyYXdHbHlwaHM6Ok5vKTsKKyAgICBEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsIHJl
Y29yZGluZ0NvbnRleHQoKmRpc3BsYXlMaXN0LCBjb250ZXh0LnN0YXRlKCkuY2xvbmVGb3JSZWNv
cmRpbmcoKSwgeyB9LCB7IH0pOwogICAgIAogICAgIEZsb2F0UG9pbnQgc3RhcnRQb2ludCA9IHRv
RmxvYXRQb2ludChXZWJDb3JlOjpzaXplKGdseXBoQnVmZmVyLmluaXRpYWxBZHZhbmNlKCkpKTsK
ICAgICBkcmF3R2x5cGhCdWZmZXIocmVjb3JkaW5nQ29udGV4dCwgZ2x5cGhCdWZmZXIsIHN0YXJ0
UG9pbnQsIGN1c3RvbUZvbnROb3RSZWFkeUFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9EcmF3R2x5
cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKaW5kZXggYjQxODUxZGU2NTAyMWEyZmJiZDAzMjY4ZmU0
MjQ5MGU0ODIxOGJhNy4uMjZhNzUxNWY5Y2VhOThhOTk0NWU1OGU1YWQ3NDJkNDEzNGQyNTcwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRHJh
d0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0RyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApAQCAtODYs
MTEgKzg2LDEwIEBAIFVuaXF1ZVJlZjxHcmFwaGljc0NvbnRleHQ+IERyYXdHbHlwaHNSZWNvcmRl
cjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KCkKICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxHcmFw
aGljc0NvbnRleHRDRz4oY29udGV4dC5nZXQoKSk7CiB9CiAKLURyYXdHbHlwaHNSZWNvcmRlcjo6
RHJhd0dseXBoc1JlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgb3duZXIsIGZsb2F0IHNjYWxlRmFj
dG9yLCBEZWNvbnN0cnVjdERyYXdHbHlwaHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzLCBEZXJpdmVG
b250RnJvbUNvbnRleHQgZGVyaXZlRm9udEZyb21Db250ZXh0KQorRHJhd0dseXBoc1JlY29yZGVy
OjpEcmF3R2x5cGhzUmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBvd25lciwgZmxvYXQgc2NhbGVG
YWN0b3IsIERlcml2ZUZvbnRGcm9tQ29udGV4dCBkZXJpdmVGb250RnJvbUNvbnRleHQpCiAgICAg
OiBtX293bmVyKG93bmVyKQotICAgICwgbV9kZWNvbnN0cnVjdERyYXdHbHlwaHMoZGVjb25zdHJ1
Y3REcmF3R2x5cGhzKQotICAgICwgbV9kZXJpdmVGb250RnJvbUNvbnRleHQoZGVyaXZlRm9udEZy
b21Db250ZXh0KQogICAgICwgbV9pbnRlcm5hbENvbnRleHQoY3JlYXRlSW50ZXJuYWxDb250ZXh0
KCkpCisgICAgLCBtX2Rlcml2ZUZvbnRGcm9tQ29udGV4dChkZXJpdmVGb250RnJvbUNvbnRleHQp
CiB7CiAgICAgbV9pbnRlcm5hbENvbnRleHQtPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVG
YWN0b3IpOwogfQpAQCAtMzk4LDIwICszOTcsMTEgQEAgdm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6
OmRyYXdCeVNwbGl0dGluZ0ludG9PVFNWR0FuZE5vbk9UU1ZHUnVucyhjb25zdCBGb250JiBmb24K
IAogdm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwg
Y29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2Uq
IGFkdmFuY2VzLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9p
bnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiB7Ci0gICAgaWYgKG1fZGVjb25z
dHJ1Y3REcmF3R2x5cGhzID09IERlY29uc3RydWN0RHJhd0dseXBoczo6Tm8pIHsKLSAgICAgICAg
bV9vd25lci5kcmF3R2x5cGhzQW5kQ2FjaGVGb250KGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51
bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBBU1NFUlQobV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgPT0gRGVjb25zdHJ1Y3RE
cmF3R2x5cGhzOjpZZXMpOwotCiAgICAgZHJhd0J5U3BsaXR0aW5nSW50b09UU1ZHQW5kTm9uT1RT
VkdSdW5zKGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywgc3RhcnRQb2ludCwgc21v
b3RoaW5nTW9kZSk7CiB9CiAKIHZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3TmF0aXZlVGV4
dChDVEZvbnRSZWYgZm9udCwgQ0dGbG9hdCBmb250U2l6ZSwgQ1RMaW5lUmVmIGxpbmUsIENHUmVj
dCBsaW5lUmVjdCkKIHsKLSAgICBBU1NFUlQobV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgPT0gRGVj
b25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOwotCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciBzYXZlcihtX293bmVyKTsKIAogICAgIG1fb3duZXIudHJhbnNsYXRlKGxpbmVSZWN0Lm9yaWdp
bi54LCBsaW5lUmVjdC5vcmlnaW4ueSArIGxpbmVSZWN0LnNpemUuaGVpZ2h0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCA0YWU3ZThhOGFiNDRjMjg3YzYz
NzM2OTcxODc5MGNjZWUxMzYxYzdiLi4wNzRiZjYwOTNlZDM3OGUxODExZmY4ZmM2Y2E1ZDA1N2I3
N2U5OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC00
Niw3ICs0Niw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3Qg
ewogCi1SZWNvcmRlcjo6UmVjb3JkZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRl
LCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGlu
aXRpYWxDVE0sIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29u
c3RydWN0RHJhd0dseXBocykKK1JlY29yZGVyOjpSZWNvcmRlcihjb25zdCBHcmFwaGljc0NvbnRl
eHRTdGF0ZSYgc3RhdGUsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0
RHJhd0dseXBocykKICAgICA6IEdyYXBoaWNzQ29udGV4dChzdGF0ZSkKICAgICAsIG1faW5pdGlh
bFNjYWxlKGluaXRpYWxDVE0ueFNjYWxlKCkpCiAgICAgLCBtX2RlY29uc3RydWN0RHJhd0dseXBo
cyhkZWNvbnN0cnVjdERyYXdHbHlwaHMpCkBAIC0xNjMsMTcgKzE2MywyMiBAQCB2b2lkIFJlY29y
ZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdAogCiB2b2lkIFJlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZv
bnQsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZh
bmNlKiBhZHZhbmNlcywgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFy
dFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQogewotICAgIGlmICghbV9k
cmF3R2x5cGhzUmVjb3JkZXIpCi0gICAgICAgIG1fZHJhd0dseXBoc1JlY29yZGVyID0gbWFrZVVu
aXF1ZTxEcmF3R2x5cGhzUmVjb3JkZXI+KCp0aGlzLCBtX2luaXRpYWxTY2FsZSwgbV9kZWNvbnN0
cnVjdERyYXdHbHlwaHMpOworICAgIGlmIChtX2RlY29uc3RydWN0RHJhd0dseXBocyA9PSBEZWNv
bnN0cnVjdERyYXdHbHlwaHM6OlllcykgeworICAgICAgICBpZiAoIW1fZHJhd0dseXBoc1JlY29y
ZGVyKQorICAgICAgICAgICAgbV9kcmF3R2x5cGhzUmVjb3JkZXIgPSBtYWtlVW5pcXVlPERyYXdH
bHlwaHNSZWNvcmRlcj4oKnRoaXMsIG1faW5pdGlhbFNjYWxlKTsKIAotICAgIG1fZHJhd0dseXBo
c1JlY29yZGVyLT5kcmF3R2x5cGhzKGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywg
c3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAgICAgIG1fZHJhd0dseXBoc1JlY29yZGVy
LT5kcmF3R2x5cGhzKGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywgc3RhcnRQb2lu
dCwgc21vb3RoaW5nTW9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkcmF3R2x5
cGhzQW5kQ2FjaGVGb250KGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywgc3RhcnRQ
b2ludCwgc21vb3RoaW5nTW9kZSk7CiB9CiAKLXZvaWQgUmVjb3JkZXI6OmRyYXdHbHlwaHNBbmRD
YWNoZUZvbnQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhz
LCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29u
c3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01v
ZGUpCit2b2lkIFJlY29yZGVyOjpkcmF3R2x5cGhzQW5kQ2FjaGVGb250KGNvbnN0IEZvbnQmIGZv
bnQsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZh
bmNlKiBhZHZhbmNlcywgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBsb2Nh
bEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKIHsKICAgICBhcHBlbmRT
dGF0ZUNoYW5nZUl0ZW1JZk5lY2Vzc2FyeSgpOwogICAgIHJlY29yZFJlc291cmNlVXNlKGNvbnN0
X2Nhc3Q8Rm9udCY+KGZvbnQpKTsKLSAgICByZWNvcmREcmF3R2x5cGhzKGZvbnQsIGdseXBocywg
YWR2YW5jZXMsIGNvdW50LCBsb2NhbEFuY2hvciwgc21vb3RoaW5nTW9kZSk7CisgICAgcmVjb3Jk
RHJhd0dseXBocyhmb250LCBnbHlwaHMsIGFkdmFuY2VzLCBudW1HbHlwaHMsIGxvY2FsQW5jaG9y
LCBzbW9vdGhpbmdNb2RlKTsKIH0KIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKElt
YWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDUyMjM0NzQ4ZDViOTFl
MzVjMGU2OTg2MDZjZGUzNjAwM2RjM2NiYmUuLjk4ZGU5MzQ4NmNmMjA4MmIyOWRjZjdhNjEwNWU2
YjU5ZWM5NjNjODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAt
NDcsMTEgKzQ3LDEzIEBAIHN0cnVjdCBJbWFnZVBhaW50aW5nT3B0aW9uczsKIAogbmFtZXNwYWNl
IERpc3BsYXlMaXN0IHsKIAorZW51bSBjbGFzcyBEZWNvbnN0cnVjdERyYXdHbHlwaHMgOiBib29s
IHsgTm8sIFllcyB9OworCiBjbGFzcyBSZWNvcmRlciA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFJlY29yZGVyKTsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRlcihjb25zdCBH
cmFwaGljc0NvbnRleHRTdGF0ZSYsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5
cGhzID0gRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHM6Olllcyk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgUmVjb3JkZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBj
b25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBEZWNv
bnN0cnVjdERyYXdHbHlwaHMgPSBEZWNvbnN0cnVjdERyYXdHbHlwaHM6Ok5vKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIH5SZWNvcmRlcigpOwogCiAgICAgdmlydHVhbCB2b2lkIGNvbnZl
cnRUb0x1bWluYW5jZU1hc2soKSA9IDA7CkBAIC0yNzEsNyArMjczLDcgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8Q29udGV4dFN0YXRlLCA0PiBtX3N0YXRlU3RhY2s7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPERyYXdHbHlwaHNSZWNvcmRlcj4gbV9kcmF3R2x5cGhzUmVjb3JkZXI7CiAgICAgZmxvYXQg
bV9pbml0aWFsU2NhbGUgeyAxIH07Ci0gICAgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVj
dERyYXdHbHlwaHMgbV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgeyBEcmF3R2x5cGhzUmVjb3JkZXI6
OkRlY29uc3RydWN0RHJhd0dseXBoczo6Tm8gfTsKKyAgICBjb25zdCBEZWNvbnN0cnVjdERyYXdH
bHlwaHMgbV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgeyBEZWNvbnN0cnVjdERyYXdHbHlwaHM6Ok5v
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBEaXNwbGF5TGlzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAKaW5kZXggMmI2YjJhYTNlN2QwNmM0MjVkNTVm
NmUyMjU1ZTg4ZWVmNzc4NzAyZC4uM2RkMTE4ODcyMWZlMmU0NjcyZmY4NDA4MjVkNjk2ZmRjMDg4
ZWMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3Bw
CkBAIC00Miw3ICs0Miw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxh
eUxpc3QgewogCi1SZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNwbGF5TGlzdCYgZGlzcGxh
eUxpc3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0
JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBEcmF3R2x5
cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyBkZWNvbnN0cnVjdERyYXdHbHlwaHMp
CitSZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNv
bnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFs
Q2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBEZWNvbnN0cnVjdERyYXdH
bHlwaHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQogICAgIDogUmVjb3JkZXIoc3RhdGUsIGluaXRp
YWxDbGlwLCBpbml0aWFsQ1RNLCBkZWNvbnN0cnVjdERyYXdHbHlwaHMpCiAgICAgLCBtX2Rpc3Bs
YXlMaXN0KGRpc3BsYXlMaXN0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlckltcGwuaAppbmRleCA4Zjg5OWI5ZmQ0ODNjOGEwODIzMTk0ODU0Zjc1YjI1NjVkN2IwMzE0
Li40MjZhYjAzZjRiMDY2MjM4YmYzN2JlZjdhYmMyMzljNzRkMTk0MGRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFz
cyBSZWNvcmRlckltcGwgOiBwdWJsaWMgUmVjb3JkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlY29yZGVySW1wbCk7CiBwdWJsaWM6
Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVjb3JkZXJJbXBsKERpc3BsYXlMaXN0JiwgY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBo
cyA9IERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOworICAg
IFdFQkNPUkVfRVhQT1JUIFJlY29yZGVySW1wbChEaXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzID0gRGVjb25zdHJ1Y3REcmF3R2x5cGhz
OjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVjb3JkZXJJbXBsKCk7CiAKICAg
ICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlMaXN0LmlzRW1wdHkoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enov
RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaGFyZmJ1enovRHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCmluZGV4IDAy
YzEwMDgxYTQwNjk5ZmIxNWExNjQ2MjNiOTBmNWE2N2EzYTM3ZDkuLmEwN2I2ZjQzYWNhOTY3ODlh
NzA5ZWE2MTcwOWZlNTFjZGQwZmM5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2hhcmZidXp6L0RyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9EcmF3R2x5cGhzUmVj
b3JkZXJIYXJmQnV6ei5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1EcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihHcmFwaGljc0NvbnRl
eHQmIG93bmVyLCBmbG9hdCwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzLCBEZXJpdmVGb250RnJvbUNv
bnRleHQpCitEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihHcmFwaGljc0Nv
bnRleHQmIG93bmVyLCBmbG9hdCwgRGVyaXZlRm9udEZyb21Db250ZXh0KQogICAgIDogbV9vd25l
cihvd25lcikKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5t
bQppbmRleCA1Nzk3N2YwMDVkZjIyYjJhZDI0Y2ExYTEzN2EwMzRlMWY0NmE0NTIxLi45ZGY0YzM1
ODc2MmQ1NmMwOGMxNTZmN2IwZDFjYzg4MWYzOWU2OWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xOTE5LDcgKzE5MTksNyBAQCBzdGF0aWMgdm9p
ZCBwYWludEF0dGFjaG1lbnRJY29uKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgUmVuZGVyQXR0
YWNobWVudEluZm8mCiAKIHN0YXRpYyB2b2lkIHBhaW50QXR0YWNobWVudFRleHQoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBSZW5kZXJBdHRhY2htZW50SW5mbyYgaW5mbykKIHsKLSAgICBEcmF3
R2x5cGhzUmVjb3JkZXIgcmVjb3JkZXIoY29udGV4dCwgMSwgRHJhd0dseXBoc1JlY29yZGVyOjpE
ZWNvbnN0cnVjdERyYXdHbHlwaHM6OlllcywgRHJhd0dseXBoc1JlY29yZGVyOjpEZXJpdmVGb250
RnJvbUNvbnRleHQ6Olllcyk7CisgICAgRHJhd0dseXBoc1JlY29yZGVyIHJlY29yZGVyKGNvbnRl
eHQsIDEsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVyaXZlRm9udEZyb21Db250ZXh0OjpZZXMpOwog
CiAgICAgZm9yIChjb25zdCBhdXRvJiBsaW5lIDogaW5mby5saW5lcykKICAgICAgICAgcmVjb3Jk
ZXIuZHJhd05hdGl2ZVRleHQobGluZS5mb250LmdldCgpLCBDVEZvbnRHZXRTaXplKGxpbmUuZm9u
dC5nZXQoKSksIGxpbmUubGluZS5nZXQoKSwgbGluZS5yZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
RGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcAppbmRleCAwMWM4NjViZTEyNzgyODg1YjcxMWUw
NmRmZWJlMWIwYWFhNjE2M2JlLi5kYzQ4NmMzOGNiZTJhODdlNGE3MjhhOGZlZGQ4YTllMGMxYmNj
MTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwCkBA
IC00NCwxMiArNDQsMTMgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLVJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlclByb3h5KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5JiByZW5kZXJpbmdCYWNrZW5kLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxD
bGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIERyYXdHbHlwaHNSZWNvcmRl
cjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0dseXBocykKK1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KElt
YWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW5k
ZXJpbmdCYWNrZW5kLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVU
cmFuc2Zvcm0mIGluaXRpYWxDVE0sIERpc3BsYXlMaXN0OjpEZWNvbnN0cnVjdERyYXdHbHlwaHMg
ZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQogICAgIDogRGlzcGxheUxpc3Q6OlJlY29yZGVyKHsgfSwg
aW5pdGlhbENsaXAsIGluaXRpYWxDVE0sIGRlY29uc3RydWN0RHJhd0dseXBocykKICAgICAsIG1f
ZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcigpKQogICAgICwgbV9pbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikKICAgICAsIG1f
cmVuZGVyaW5nQmFja2VuZChyZW5kZXJpbmdCYWNrZW5kKQogeworICAgIEFTU0VSVChkZWNvbnN0
cnVjdERyYXdHbHlwaHMgPT0gRGlzcGxheUxpc3Q6OkRlY29uc3RydWN0RHJhd0dseXBoczo6WWVz
KTsKIH0KIAogdm9pZCBSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OmNvbnZlcnRUb0x1
bWluYW5jZU1hc2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgK
aW5kZXggZDMxMjMwN2EwZDY2NmM0YjlkYmY3OWNiNDNlYTM3N2IyZWRiNGE5OS4uZjJmNGRiY2Ni
ZDA5NTUwMzAzODdhMjk2MDQzZGJiY2MwZDVjMzQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eS5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTsKIAogY2xhc3MgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
IDogcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlciB7CiBwdWJsaWM6Ci0gICAg
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KFdlYkNvcmU6OkltYWdlQnVmZmVyJiwgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBpbml0
aWFsQ2xpcCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgV2ViQ29yZTo6RHJhd0ds
eXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHMgPSBXZWJDb3JlOjpEcmF3R2x5cGhz
UmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBoczo6WWVzKTsKKyAgICBSZW1vdGVEaXNwbGF5
TGlzdFJlY29yZGVyUHJveHkoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25z
dCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mLCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGVjb25z
dHJ1Y3REcmF3R2x5cGhzID0gV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRlY29uc3RydWN0RHJhd0ds
eXBoczo6WWVzKTsKICAgICB+UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KCkgPSBkZWZh
dWx0OwogCiAgICAgdm9pZCByZXNldE5lZWRzRmx1c2goKSB7IG1fbmVlZHNGbHVzaCA9IGZhbHNl
OyB9Cg==
</data>
<flag name="commit-queue"
          id="488298"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459262</attachid>
            <date>2022-05-12 17:11:46 -0700</date>
            <delta_ts>2022-05-12 20:59:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240363-20220512171145.patch</filename>
            <type>text/plain</type>
            <size>18958</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE4ODljNDhhMzY3MWY0
OTI4YzViYTk4YjAyMmU4MDBjNzhjOGRhYy4uMmY3YjVjNGQ4ZTFlOTc5YjQwODNkMjhmZjgxNTJm
ZDgzYWFkMjYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIyLTA1LTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IHRo
ZSB1c2FnZSBvZiBEcmF3R2x5cGhzUmVjb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDM2MworCisgICAgICAgIFJldmlld2VkIGJ5IE15bGVz
IE1heGZpZWxkLgorCisgICAgICAgIE1vdmUgdGhlIERlY29uc3RydWN0RHJhd0dseXBocyBzd2l0
Y2ggZnJvbSBpbnNpZGUgRHJhd0dseXBoc1JlY29yZGVyIHRvCisgICAgICAgIERpc3BsYXlMaXN0
OjpSZWNvcmRlciwgc28gdGhhdCBEcmF3R2x5cGhzUmVjb3JkZXIgaXMgb25seSBldmVyIHVzZWQg
d2hlbiBkZWNvbnN0cnVjdGluZworICAgICAgICBnbHlwaHMuCisgICAgICAgIAorICAgICAgICBB
bHNvLCBlbnN1cmUgdGhhdCB0aGUgb25seSB0aW1lIHRoYXQgZ2x5cGggZGVjb25zdHJ1Y3Rpb24g
aXMgZW5hYmxlZCBpcyB3aGVuCisgICAgICAgIHJlY29yZGluZyBkaXNwbGF5IGxpc3RzIHZpYSBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuIFRoZXJlJ3Mgbm8gcmVhc29uIGZvcgorICAg
ICAgICBwYWludEF0dGFjaG1lbnRUZXh0KCkgdG8gbmVlZCBnbHlwaCBkZWNvbnN0cnVjdGlvbi4K
KyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgYSBzbWFsbCBwZXJmIGltcHJvdmVtZW50IG9uIHRo
ZSBNb3Rpb25NYXJrIERlc2lnbiBzdWJ0ZXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvRHJhd0dseXBoc1JlY29yZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRlY29uc3RydWN0RHJhd0dseXBocyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1biBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZXRleHQvRHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYXdHbHlwaHNSZWNvcmRlcjo6ZHJhd05hdGl2ZVRleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0dseXBoc0FuZENhY2hl
Rm9udCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVySW1wbDo6UmVjb3JkZXJJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpwYWludEF0dGFj
aG1lbnRUZXh0KToKKwogMjAyMi0wNS0xMSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWlsIGNvbXBvc2U6IHJpZ2h0IGNsaWNraW5nIGFuIGlt
YWdlIGF0dGFjaG1lbnQgc2VsZWN0cyBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMWI2NGFmM2U3ZjYzNzg1Yzg3
MWFhYzFiODVhYTNjZjBmZWY3NzZjLi41NzZhM2I3NWVhZjcwOGY0N2E2MTI1YzZlNDNkODJlOWMy
YTljZThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTA1LTEyICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IHRoZSB1c2Fn
ZSBvZiBEcmF3R2x5cGhzUmVjb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI0MDM2MworCisgICAgICAgIFJldmlld2VkIGJ5IE15bGVzIE1heGZp
ZWxkLgorCisgICAgICAgIE1vdmUgdGhlIERlY29uc3RydWN0RHJhd0dseXBocyBzd2l0Y2ggZnJv
bSBpbnNpZGUgRHJhd0dseXBoc1JlY29yZGVyIHRvCisgICAgICAgIERpc3BsYXlMaXN0OjpSZWNv
cmRlciwgc28gdGhhdCBEcmF3R2x5cGhzUmVjb3JkZXIgaXMgb25seSBldmVyIHVzZWQgd2hlbiBk
ZWNvbnN0cnVjdGluZworICAgICAgICBnbHlwaHMuCisgICAgICAgIAorICAgICAgICBBbHNvLCBl
bnN1cmUgdGhhdCB0aGUgb25seSB0aW1lIHRoYXQgZ2x5cGggZGVjb25zdHJ1Y3Rpb24gaXMgZW5h
YmxlZCBpcyB3aGVuCisgICAgICAgIHJlY29yZGluZyBkaXNwbGF5IGxpc3RzIHZpYSBSZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyUHJveHkuIFRoZXJlJ3Mgbm8gcmVhc29uIGZvcgorICAgICAgICBw
YWludEF0dGFjaG1lbnRUZXh0KCkgdG8gbmVlZCBnbHlwaCBkZWNvbnN0cnVjdGlvbi4KKworICAg
ICAgICBUaGlzIGlzIGEgc21hbGwgcGVyZiBpbXByb3ZlbWVudCBvbiB0aGUgTW90aW9uTWFyayBE
ZXNpZ24gc3VidGVzdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KToK
KyAgICAgICAgKFdlYktpdDo6bV9yZW5kZXJpbmdCYWNrZW5kKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaDoKKwogMjAy
Mi0wNS0xMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbR1RLXVtXUEVdIERvIG5vdCByZXR1cm4gcG9pbnRlciB0byBkaXNwb3NlZCB0aW1lem9uZSBz
dHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0RyYXdH
bHlwaHNSZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRHJhd0ds
eXBoc1JlY29yZGVyLmgKaW5kZXggNDE4MThkY2NjMjRiMjVjZmZkMGZiNmU2ODhjMDNmOTliZTlh
MGM3Mi4uNjg2ZWZjZTNiYTgxYjI3N2IxZGI2NDUzNjA0N2ViZGM0YjllZDRlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRHJhd0dseXBoc1JlY29yZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRHJhd0dseXBoc1JlY29yZGVy
LmgKQEAgLTU1LDkgKzU1LDggQEAgY2xhc3MgRHJhd0dseXBoc1JlY29yZGVyIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEcmF3R2x5cGhz
UmVjb3JkZXIpOwogcHVibGljOgotICAgIGVudW0gY2xhc3MgRGVjb25zdHJ1Y3REcmF3R2x5cGhz
IDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICBlbnVtIGNsYXNzIERlcml2ZUZvbnRGcm9tQ29udGV4
dCA6IGJvb2wgeyBObywgWWVzIH07Ci0gICAgZXhwbGljaXQgRHJhd0dseXBoc1JlY29yZGVyKEdy
YXBoaWNzQ29udGV4dCYsIGZsb2F0IHNjYWxlRmFjdG9yID0gMSwgRGVjb25zdHJ1Y3REcmF3R2x5
cGhzID0gRGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpObywgRGVyaXZlRm9udEZyb21Db250ZXh0ID0g
RGVyaXZlRm9udEZyb21Db250ZXh0OjpObyk7CisgICAgZXhwbGljaXQgRHJhd0dseXBoc1JlY29y
ZGVyKEdyYXBoaWNzQ29udGV4dCYsIGZsb2F0IHNjYWxlRmFjdG9yID0gMSwgRGVyaXZlRm9udEZy
b21Db250ZXh0ID0gRGVyaXZlRm9udEZyb21Db250ZXh0OjpObyk7CiAKICAgICB2b2lkIGRyYXdH
bHlwaHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqLCBjb25zdCBHbHlwaEJ1
ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hv
clBvaW50LCBGb250U21vb3RoaW5nTW9kZSk7CiAKQEAgLTcwLDggKzY5LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVjb3JkRHJhd0ltYWdlKENHUmVuZGVyaW5nU3RhdGVSZWYsIENHR1N0YXRlUmVm
LCBDR1JlY3QsIENHSW1hZ2VSZWYpOwogI2VuZGlmCiAKLSAgICBEZWNvbnN0cnVjdERyYXdHbHlw
aHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKCkgY29uc3QgeyByZXR1cm4gbV9kZWNvbnN0cnVjdERy
YXdHbHlwaHM7IH0KLQogcHJpdmF0ZToKICNpZiBVU0UoQ09SRV9URVhUKSAmJiAhUExBVEZPUk0o
V0lOKQogICAgIFVuaXF1ZVJlZjxHcmFwaGljc0NvbnRleHQ+IGNyZWF0ZUludGVybmFsQ29udGV4
dCgpOwpAQCAtMTA0LDE1ICsxMDEsMTYgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgR3JhcGhp
Y3NDb250ZXh0JiBtX293bmVyOwotICAgIERlY29uc3RydWN0RHJhd0dseXBocyBtX2RlY29uc3Ry
dWN0RHJhd0dseXBoczsKLSAgICBEZXJpdmVGb250RnJvbUNvbnRleHQgbV9kZXJpdmVGb250RnJv
bUNvbnRleHQ7CiAKICNpZiBVU0UoQ09SRV9URVhUKSAmJiAhUExBVEZPUk0oV0lOKQogICAgIFVu
aXF1ZVJlZjxHcmFwaGljc0NvbnRleHQ+IG1faW50ZXJuYWxDb250ZXh0OwogI2VuZGlmCiAKICAg
ICBjb25zdCBGb250KiBtX29yaWdpbmFsRm9udCB7IG51bGxwdHIgfTsKKworICAgIGNvbnN0IERl
cml2ZUZvbnRGcm9tQ29udGV4dCBtX2Rlcml2ZUZvbnRGcm9tQ29udGV4dDsKICAgICBGb250U21v
b3RoaW5nTW9kZSBtX3Ntb290aGluZ01vZGUgeyBGb250U21vb3RoaW5nTW9kZTo6QXV0b1Ntb290
aGluZyB9OworCiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fb3JpZ2luYWxUZXh0TWF0cml4OwogCiAg
ICAgc3RydWN0IFN0YXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmNwcAppbmRleCBkMjk2YzUxYjdjMmQzOGMyOGQ4OGNhZmE2OGE3MWVhYThh
ODE5ZjQxLi4xMGU2ZmIyYjc3M2QxZDZjNGVjNWI1YzM4YzUyZTA5OTQ0MDZjNzQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC0y
MTMsNyArMjEzLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3Bs
YXlMaXN0PiBGb250Q2FzY2FkZTo6ZGlzcGxheUxpc3RGb3JUZXgKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgCiAgICAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpJbk1lbW9yeURp
c3BsYXlMaXN0PiBkaXNwbGF5TGlzdCA9IG1ha2VVbmlxdWU8RGlzcGxheUxpc3Q6OkluTWVtb3J5
RGlzcGxheUxpc3Q+KCk7Ci0gICAgRGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbCByZWNvcmRpbmdD
b250ZXh0KCpkaXNwbGF5TGlzdCwgY29udGV4dC5zdGF0ZSgpLmNsb25lRm9yUmVjb3JkaW5nKCks
IEZsb2F0UmVjdCgpLCBBZmZpbmVUcmFuc2Zvcm0oKSwgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNv
bnN0cnVjdERyYXdHbHlwaHM6Ok5vKTsKKyAgICBEaXNwbGF5TGlzdDo6UmVjb3JkZXJJbXBsIHJl
Y29yZGluZ0NvbnRleHQoKmRpc3BsYXlMaXN0LCBjb250ZXh0LnN0YXRlKCkuY2xvbmVGb3JSZWNv
cmRpbmcoKSwgeyB9LCB7IH0pOwogICAgIAogICAgIEZsb2F0UG9pbnQgc3RhcnRQb2ludCA9IHRv
RmxvYXRQb2ludChXZWJDb3JlOjpzaXplKGdseXBoQnVmZmVyLmluaXRpYWxBZHZhbmNlKCkpKTsK
ICAgICBkcmF3R2x5cGhCdWZmZXIocmVjb3JkaW5nQ29udGV4dCwgZ2x5cGhCdWZmZXIsIHN0YXJ0
UG9pbnQsIGN1c3RvbUZvbnROb3RSZWFkeUFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9EcmF3R2x5cGhzUmVjb3JkZXJDb3JlVGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9EcmF3R2x5
cGhzUmVjb3JkZXJDb3JlVGV4dC5jcHAKaW5kZXggYjQxODUxZGU2NTAyMWEyZmJiZDAzMjY4ZmU0
MjQ5MGU0ODIxOGJhNy4uMjZhNzUxNWY5Y2VhOThhOTk0NWU1OGU1YWQ3NDJkNDEzNGQyNTcwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRHJh
d0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0RyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcApAQCAtODYs
MTEgKzg2LDEwIEBAIFVuaXF1ZVJlZjxHcmFwaGljc0NvbnRleHQ+IERyYXdHbHlwaHNSZWNvcmRl
cjo6Y3JlYXRlSW50ZXJuYWxDb250ZXh0KCkKICAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxHcmFw
aGljc0NvbnRleHRDRz4oY29udGV4dC5nZXQoKSk7CiB9CiAKLURyYXdHbHlwaHNSZWNvcmRlcjo6
RHJhd0dseXBoc1JlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYgb3duZXIsIGZsb2F0IHNjYWxlRmFj
dG9yLCBEZWNvbnN0cnVjdERyYXdHbHlwaHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzLCBEZXJpdmVG
b250RnJvbUNvbnRleHQgZGVyaXZlRm9udEZyb21Db250ZXh0KQorRHJhd0dseXBoc1JlY29yZGVy
OjpEcmF3R2x5cGhzUmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBvd25lciwgZmxvYXQgc2NhbGVG
YWN0b3IsIERlcml2ZUZvbnRGcm9tQ29udGV4dCBkZXJpdmVGb250RnJvbUNvbnRleHQpCiAgICAg
OiBtX293bmVyKG93bmVyKQotICAgICwgbV9kZWNvbnN0cnVjdERyYXdHbHlwaHMoZGVjb25zdHJ1
Y3REcmF3R2x5cGhzKQotICAgICwgbV9kZXJpdmVGb250RnJvbUNvbnRleHQoZGVyaXZlRm9udEZy
b21Db250ZXh0KQogICAgICwgbV9pbnRlcm5hbENvbnRleHQoY3JlYXRlSW50ZXJuYWxDb250ZXh0
KCkpCisgICAgLCBtX2Rlcml2ZUZvbnRGcm9tQ29udGV4dChkZXJpdmVGb250RnJvbUNvbnRleHQp
CiB7CiAgICAgbV9pbnRlcm5hbENvbnRleHQtPmFwcGx5RGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVG
YWN0b3IpOwogfQpAQCAtMzk4LDIwICszOTcsMTEgQEAgdm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6
OmRyYXdCeVNwbGl0dGluZ0ludG9PVFNWR0FuZE5vbk9UU1ZHUnVucyhjb25zdCBGb250JiBmb24K
IAogdm9pZCBEcmF3R2x5cGhzUmVjb3JkZXI6OmRyYXdHbHlwaHMoY29uc3QgRm9udCYgZm9udCwg
Y29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2Uq
IGFkdmFuY2VzLCB1bnNpZ25lZCBudW1HbHlwaHMsIGNvbnN0IEZsb2F0UG9pbnQmIHN0YXJ0UG9p
bnQsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01vZGUpCiB7Ci0gICAgaWYgKG1fZGVjb25z
dHJ1Y3REcmF3R2x5cGhzID09IERlY29uc3RydWN0RHJhd0dseXBoczo6Tm8pIHsKLSAgICAgICAg
bV9vd25lci5kcmF3R2x5cGhzQW5kQ2FjaGVGb250KGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51
bUdseXBocywgc3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBBU1NFUlQobV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgPT0gRGVjb25zdHJ1Y3RE
cmF3R2x5cGhzOjpZZXMpOwotCiAgICAgZHJhd0J5U3BsaXR0aW5nSW50b09UU1ZHQW5kTm9uT1RT
VkdSdW5zKGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywgc3RhcnRQb2ludCwgc21v
b3RoaW5nTW9kZSk7CiB9CiAKIHZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3TmF0aXZlVGV4
dChDVEZvbnRSZWYgZm9udCwgQ0dGbG9hdCBmb250U2l6ZSwgQ1RMaW5lUmVmIGxpbmUsIENHUmVj
dCBsaW5lUmVjdCkKIHsKLSAgICBBU1NFUlQobV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgPT0gRGVj
b25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOwotCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciBzYXZlcihtX293bmVyKTsKIAogICAgIG1fb3duZXIudHJhbnNsYXRlKGxpbmVSZWN0Lm9yaWdp
bi54LCBsaW5lUmVjdC5vcmlnaW4ueSArIGxpbmVSZWN0LnNpemUuaGVpZ2h0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCA0YWU3ZThhOGFiNDRjMjg3YzYz
NzM2OTcxODc5MGNjZWUxMzYxYzdiLi4wNzRiZjYwOTNlZDM3OGUxODExZmY4ZmM2Y2E1ZDA1N2I3
N2U5OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC00
Niw3ICs0Niw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxheUxpc3Qg
ewogCi1SZWNvcmRlcjo6UmVjb3JkZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRl
LCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGlu
aXRpYWxDVE0sIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29u
c3RydWN0RHJhd0dseXBocykKK1JlY29yZGVyOjpSZWNvcmRlcihjb25zdCBHcmFwaGljc0NvbnRl
eHRTdGF0ZSYgc3RhdGUsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgaW5pdGlhbENUTSwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0
RHJhd0dseXBocykKICAgICA6IEdyYXBoaWNzQ29udGV4dChzdGF0ZSkKICAgICAsIG1faW5pdGlh
bFNjYWxlKGluaXRpYWxDVE0ueFNjYWxlKCkpCiAgICAgLCBtX2RlY29uc3RydWN0RHJhd0dseXBo
cyhkZWNvbnN0cnVjdERyYXdHbHlwaHMpCkBAIC0xNjMsMTcgKzE2MywyMiBAQCB2b2lkIFJlY29y
ZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdAogCiB2b2lkIFJlY29yZGVyOjpkcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZv
bnQsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZh
bmNlKiBhZHZhbmNlcywgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBzdGFy
dFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQogewotICAgIGlmICghbV9k
cmF3R2x5cGhzUmVjb3JkZXIpCi0gICAgICAgIG1fZHJhd0dseXBoc1JlY29yZGVyID0gbWFrZVVu
aXF1ZTxEcmF3R2x5cGhzUmVjb3JkZXI+KCp0aGlzLCBtX2luaXRpYWxTY2FsZSwgbV9kZWNvbnN0
cnVjdERyYXdHbHlwaHMpOworICAgIGlmIChtX2RlY29uc3RydWN0RHJhd0dseXBocyA9PSBEZWNv
bnN0cnVjdERyYXdHbHlwaHM6OlllcykgeworICAgICAgICBpZiAoIW1fZHJhd0dseXBoc1JlY29y
ZGVyKQorICAgICAgICAgICAgbV9kcmF3R2x5cGhzUmVjb3JkZXIgPSBtYWtlVW5pcXVlPERyYXdH
bHlwaHNSZWNvcmRlcj4oKnRoaXMsIG1faW5pdGlhbFNjYWxlKTsKIAotICAgIG1fZHJhd0dseXBo
c1JlY29yZGVyLT5kcmF3R2x5cGhzKGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywg
c3RhcnRQb2ludCwgc21vb3RoaW5nTW9kZSk7CisgICAgICAgIG1fZHJhd0dseXBoc1JlY29yZGVy
LT5kcmF3R2x5cGhzKGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywgc3RhcnRQb2lu
dCwgc21vb3RoaW5nTW9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkcmF3R2x5
cGhzQW5kQ2FjaGVGb250KGZvbnQsIGdseXBocywgYWR2YW5jZXMsIG51bUdseXBocywgc3RhcnRQ
b2ludCwgc21vb3RoaW5nTW9kZSk7CiB9CiAKLXZvaWQgUmVjb3JkZXI6OmRyYXdHbHlwaHNBbmRD
YWNoZUZvbnQoY29uc3QgRm9udCYgZm9udCwgY29uc3QgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhz
LCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqIGFkdmFuY2VzLCB1bnNpZ25lZCBjb3VudCwgY29u
c3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01v
ZGUpCit2b2lkIFJlY29yZGVyOjpkcmF3R2x5cGhzQW5kQ2FjaGVGb250KGNvbnN0IEZvbnQmIGZv
bnQsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZh
bmNlKiBhZHZhbmNlcywgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25zdCBGbG9hdFBvaW50JiBsb2Nh
bEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5nTW9kZSkKIHsKICAgICBhcHBlbmRT
dGF0ZUNoYW5nZUl0ZW1JZk5lY2Vzc2FyeSgpOwogICAgIHJlY29yZFJlc291cmNlVXNlKGNvbnN0
X2Nhc3Q8Rm9udCY+KGZvbnQpKTsKLSAgICByZWNvcmREcmF3R2x5cGhzKGZvbnQsIGdseXBocywg
YWR2YW5jZXMsIGNvdW50LCBsb2NhbEFuY2hvciwgc21vb3RoaW5nTW9kZSk7CisgICAgcmVjb3Jk
RHJhd0dseXBocyhmb250LCBnbHlwaHMsIGFkdmFuY2VzLCBudW1HbHlwaHMsIGxvY2FsQW5jaG9y
LCBzbW9vdGhpbmdNb2RlKTsKIH0KIAogdm9pZCBSZWNvcmRlcjo6ZHJhd0ltYWdlQnVmZmVyKElt
YWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYgb3B0aW9ucykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IDUyMjM0NzQ4ZDViOTFl
MzVjMGU2OTg2MDZjZGUzNjAwM2RjM2NiYmUuLjYwMDQ4MzM2YTdmODA5MzgyZWRkMGQwMjc0NTVk
ODJmNDhmYmY4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAt
NTEsNyArNTEsOSBAQCBjbGFzcyBSZWNvcmRlciA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJl
Y29yZGVyKTsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRlcihjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZSYsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhz
ID0gRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHM6Olllcyk7CisgICAg
ZW51bSBjbGFzcyBEZWNvbnN0cnVjdERyYXdHbHlwaHMgOiBib29sIHsgTm8sIFllcyB9OworCisg
ICAgV0VCQ09SRV9FWFBPUlQgUmVjb3JkZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBj
b25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBEZWNv
bnN0cnVjdERyYXdHbHlwaHMgPSBEZWNvbnN0cnVjdERyYXdHbHlwaHM6Ok5vKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIH5SZWNvcmRlcigpOwogCiAgICAgdmlydHVhbCB2b2lkIGNvbnZl
cnRUb0x1bWluYW5jZU1hc2soKSA9IDA7CkBAIC0yNzEsNyArMjczLDcgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8Q29udGV4dFN0YXRlLCA0PiBtX3N0YXRlU3RhY2s7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPERyYXdHbHlwaHNSZWNvcmRlcj4gbV9kcmF3R2x5cGhzUmVjb3JkZXI7CiAgICAgZmxvYXQg
bV9pbml0aWFsU2NhbGUgeyAxIH07Ci0gICAgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVj
dERyYXdHbHlwaHMgbV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgeyBEcmF3R2x5cGhzUmVjb3JkZXI6
OkRlY29uc3RydWN0RHJhd0dseXBoczo6Tm8gfTsKKyAgICBjb25zdCBEZWNvbnN0cnVjdERyYXdH
bHlwaHMgbV9kZWNvbnN0cnVjdERyYXdHbHlwaHMgeyBEZWNvbnN0cnVjdERyYXdHbHlwaHM6Ok5v
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBEaXNwbGF5TGlzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3Jk
ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAKaW5kZXggMmI2YjJhYTNlN2QwNmM0MjVkNTVm
NmUyMjU1ZTg4ZWVmNzc4NzAyZC4uM2RkMTE4ODcyMWZlMmU0NjcyZmY4NDA4MjVkNjk2ZmRjMDg4
ZWMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3Bw
CkBAIC00Miw3ICs0Miw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlzcGxh
eUxpc3QgewogCi1SZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNwbGF5TGlzdCYgZGlzcGxh
eUxpc3QsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0
JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBEcmF3R2x5
cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyBkZWNvbnN0cnVjdERyYXdHbHlwaHMp
CitSZWNvcmRlckltcGw6OlJlY29yZGVySW1wbChEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIGNv
bnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFs
Q2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBEZWNvbnN0cnVjdERyYXdH
bHlwaHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQogICAgIDogUmVjb3JkZXIoc3RhdGUsIGluaXRp
YWxDbGlwLCBpbml0aWFsQ1RNLCBkZWNvbnN0cnVjdERyYXdHbHlwaHMpCiAgICAgLCBtX2Rpc3Bs
YXlMaXN0KGRpc3BsYXlMaXN0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNv
cmRlckltcGwuaAppbmRleCA4Zjg5OWI5ZmQ0ODNjOGEwODIzMTk0ODU0Zjc1YjI1NjVkN2IwMzE0
Li40MjZhYjAzZjRiMDY2MjM4YmYzN2JlZjdhYmMyMzljNzRkMTk0MGRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFz
cyBSZWNvcmRlckltcGwgOiBwdWJsaWMgUmVjb3JkZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlY29yZGVySW1wbCk7CiBwdWJsaWM6
Ci0gICAgV0VCQ09SRV9FWFBPUlQgUmVjb3JkZXJJbXBsKERpc3BsYXlMaXN0JiwgY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBo
cyA9IERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpOworICAg
IFdFQkNPUkVfRVhQT1JUIFJlY29yZGVySW1wbChEaXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNz
Q29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzID0gRGVjb25zdHJ1Y3REcmF3R2x5cGhz
OjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVjb3JkZXJJbXBsKCk7CiAKICAg
ICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlMaXN0LmlzRW1wdHkoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enov
RHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaGFyZmJ1enovRHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCmluZGV4IDAy
YzEwMDgxYTQwNjk5ZmIxNWExNjQ2MjNiOTBmNWE2N2EzYTM3ZDkuLmMzMjhiOGZiNjY3ZWJhYWFj
ZWZjMmRlZDUwZjk4ODQ3MjAwMGFmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2hhcmZidXp6L0RyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9EcmF3R2x5cGhzUmVj
b3JkZXJIYXJmQnV6ei5jcHAKQEAgLTMyLDggKzMyLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1EcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihHcmFwaGljc0NvbnRl
eHQmIG93bmVyLCBmbG9hdCwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzLCBEZXJpdmVGb250RnJvbUNv
bnRleHQpCitEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihHcmFwaGljc0Nv
bnRleHQmIG93bmVyLCBmbG9hdCwgRGVyaXZlRm9udEZyb21Db250ZXh0IGRlcml2ZUZvbnRGcm9t
Q29udGV4dCkKICAgICA6IG1fb3duZXIob3duZXIpCisgICAgLCBtX2Rlcml2ZUZvbnRGcm9tQ29u
dGV4dChkZXJpdmVGb250RnJvbUNvbnRleHQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCA1Nzk3N2YwMDVkZjIyYjJhZDI0Y2ExYTEzN2Ew
MzRlMWY0NmE0NTIxLi45ZGY0YzM1ODc2MmQ1NmMwOGMxNTZmN2IwZDFjYzg4MWYzOWU2OWYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xOTE5LDcg
KzE5MTksNyBAQCBzdGF0aWMgdm9pZCBwYWludEF0dGFjaG1lbnRJY29uKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgUmVuZGVyQXR0YWNobWVudEluZm8mCiAKIHN0YXRpYyB2b2lkIHBhaW50QXR0
YWNobWVudFRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBSZW5kZXJBdHRhY2htZW50SW5m
byYgaW5mbykKIHsKLSAgICBEcmF3R2x5cGhzUmVjb3JkZXIgcmVjb3JkZXIoY29udGV4dCwgMSwg
RHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHM6OlllcywgRHJhd0dseXBo
c1JlY29yZGVyOjpEZXJpdmVGb250RnJvbUNvbnRleHQ6Olllcyk7CisgICAgRHJhd0dseXBoc1Jl
Y29yZGVyIHJlY29yZGVyKGNvbnRleHQsIDEsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVyaXZlRm9u
dEZyb21Db250ZXh0OjpZZXMpOwogCiAgICAgZm9yIChjb25zdCBhdXRvJiBsaW5lIDogaW5mby5s
aW5lcykKICAgICAgICAgcmVjb3JkZXIuZHJhd05hdGl2ZVRleHQobGluZS5mb250LmdldCgpLCBD
VEZvbnRHZXRTaXplKGxpbmUuZm9udC5nZXQoKSksIGxpbmUubGluZS5nZXQoKSwgbGluZS5yZWN0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcAppbmRleCAw
MWM4NjViZTEyNzgyODg1YjcxMWUwNmRmZWJlMWIwYWFhNjE2M2JlLi4xNGYzNjg2NzJiOGM4MjE3
OGQ0NGI4MDYxYjI2NDBiN2ZmMTBmZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyUHJveHkuY3BwCkBAIC00NCw4ICs0NCw4IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJv
eHk6OlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eShJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZm
ZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgcmVuZGVyaW5nQmFja2VuZCwgY29uc3Qg
RmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RN
LCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBocyBkZWNvbnN0cnVjdERy
YXdHbHlwaHMpCi0gICAgOiBEaXNwbGF5TGlzdDo6UmVjb3JkZXIoeyB9LCBpbml0aWFsQ2xpcCwg
aW5pdGlhbENUTSwgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQorUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkoSW1hZ2VCdWZmZXImIGlt
YWdlQnVmZmVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbmRlcmluZ0JhY2tlbmQs
IGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5p
dGlhbENUTSkKKyAgICA6IERpc3BsYXlMaXN0OjpSZWNvcmRlcih7IH0sIGluaXRpYWxDbGlwLCBp
bml0aWFsQ1RNLCBEZWNvbnN0cnVjdERyYXdHbHlwaHM6OlllcykKICAgICAsIG1fZGVzdGluYXRp
b25CdWZmZXJJZGVudGlmaWVyKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cigpKQogICAgICwgbV9pbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlcikKICAgICAsIG1fcmVuZGVyaW5n
QmFja2VuZChyZW5kZXJpbmdCYWNrZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5LmgKaW5kZXggZDMxMjMwN2EwZDY2NmM0YjlkYmY3OWNiNDNlYTM3N2IyZWRiNGE5
OS4uNTdlNDc0MjEwY2Q3MGQ2NWJmZTNhY2YwY2M3YWE0N2Y5MTNkODViZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNz
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKIAogY2xhc3MgUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5IDogcHVibGljIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlciB7CiBw
dWJsaWM6Ci0gICAgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KFdlYkNvcmU6OkltYWdl
QnVmZmVyJiwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiwgV2Vi
Q29yZTo6RHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHMgPSBXZWJDb3Jl
OjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0RHJhd0dseXBoczo6WWVzKTsKKyAgICBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkoV2ViQ29yZTo6SW1hZ2VCdWZmZXImLCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGluaXRp
YWxDbGlwLCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mKTsKICAgICB+UmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlclByb3h5KCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCByZXNldE5lZWRz
Rmx1c2goKSB7IG1fbmVlZHNGbHVzaCA9IGZhbHNlOyB9Cg==
</data>
<flag name="commit-queue"
          id="488307"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459272</attachid>
            <date>2022-05-12 20:59:30 -0700</date>
            <delta_ts>2022-05-13 00:30:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240363-20220512205929.patch</filename>
            <type>text/plain</type>
            <size>19943</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE4ODljNDhhMzY3MWY0
OTI4YzViYTk4YjAyMmU4MDBjNzhjOGRhYy4uN2RjZWJhNWU3Nzg1YTg4NjU2ZGJlODhkNDlhNzBi
ZDU0NmI0MzE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIyLTA1LTEyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBsaWZ5IHRo
ZSB1c2FnZSBvZiBEcmF3R2x5cGhzUmVjb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDM2MworCisgICAgICAgIFJldmlld2VkIGJ5IE15bGVz
IE1heGZpZWxkLgorCisgICAgICAgIE1vdmUgdGhlIERlY29uc3RydWN0RHJhd0dseXBocyBzd2l0
Y2ggZnJvbSBpbnNpZGUgRHJhd0dseXBoc1JlY29yZGVyIHRvCisgICAgICAgIERpc3BsYXlMaXN0
OjpSZWNvcmRlciwgc28gdGhhdCBEcmF3R2x5cGhzUmVjb3JkZXIgaXMgb25seSBldmVyIHVzZWQg
d2hlbiBkZWNvbnN0cnVjdGluZworICAgICAgICBnbHlwaHMuCisgICAgICAgIAorICAgICAgICBB
bHNvLCBlbnN1cmUgdGhhdCB0aGUgb25seSB0aW1lIHRoYXQgZ2x5cGggZGVjb25zdHJ1Y3Rpb24g
aXMgZW5hYmxlZCBpcyB3aGVuCisgICAgICAgIHJlY29yZGluZyBkaXNwbGF5IGxpc3RzIHZpYSBS
ZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuIFRoZXJlJ3Mgbm8gcmVhc29uIGZvcgorICAg
ICAgICBwYWludEF0dGFjaG1lbnRUZXh0KCkgdG8gbmVlZCBnbHlwaCBkZWNvbnN0cnVjdGlvbi4K
KyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgYSBzbWFsbCBwZXJmIGltcHJvdmVtZW50IG9uIHRo
ZSBNb3Rpb25NYXJrIERlc2lnbiBzdWJ0ZXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvRHJhd0dseXBoc1JlY29yZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEcmF3R2x5cGhzUmVj
b3JkZXI6OmRlY29uc3RydWN0RHJhd0dseXBocyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9yVGV4dFJ1biBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29yZXRleHQvRHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3JkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYXdHbHlwaHNSZWNvcmRlcjo6ZHJhd05hdGl2ZVRleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6UmVjb3JkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjpkcmF3R2x5cGhzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0dseXBoc0FuZENhY2hl
Rm9udCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVySW1wbDo6UmVjb3JkZXJJbXBsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9EcmF3R2x5cGhzUmVjb3JkZXJIYXJmQnV6ei5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRl
cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0RyYXdHbHlwaHNSZWNvcmRlcldp
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNS
ZWNvcmRlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6cGFpbnRBdHRhY2htZW50VGV4dCk6CisKIDIwMjItMDUtMTEgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFpbCBjb21wb3Nl
OiByaWdodCBjbGlja2luZyBhbiBpbWFnZSBhdHRhY2htZW50IHNlbGVjdHMgaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggZjFiNjRhZjNlN2Y2Mzc4NWM4NzFhYWMxYjg1YWEzY2YwZmVmNzc2Yy4uNTc2YTNiNzVlYWY3
MDhmNDdhNjEyNWM2ZTQzZDgyZTljMmE5Y2U4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAyMi0wNS0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAg
ICAgICBTaW1wbGlmeSB0aGUgdXNhZ2Ugb2YgRHJhd0dseXBoc1JlY29yZGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAzNjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBNeWxlcyBNYXhmaWVsZC4KKworICAgICAgICBNb3ZlIHRoZSBEZWNvbnN0cnVj
dERyYXdHbHlwaHMgc3dpdGNoIGZyb20gaW5zaWRlIERyYXdHbHlwaHNSZWNvcmRlciB0bworICAg
ICAgICBEaXNwbGF5TGlzdDo6UmVjb3JkZXIsIHNvIHRoYXQgRHJhd0dseXBoc1JlY29yZGVyIGlz
IG9ubHkgZXZlciB1c2VkIHdoZW4gZGVjb25zdHJ1Y3RpbmcKKyAgICAgICAgZ2x5cGhzLgorICAg
ICAgICAKKyAgICAgICAgQWxzbywgZW5zdXJlIHRoYXQgdGhlIG9ubHkgdGltZSB0aGF0IGdseXBo
IGRlY29uc3RydWN0aW9uIGlzIGVuYWJsZWQgaXMgd2hlbgorICAgICAgICByZWNvcmRpbmcgZGlz
cGxheSBsaXN0cyB2aWEgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LiBUaGVyZSdzIG5v
IHJlYXNvbiBmb3IKKyAgICAgICAgcGFpbnRBdHRhY2htZW50VGV4dCgpIHRvIG5lZWQgZ2x5cGgg
ZGVjb25zdHJ1Y3Rpb24uCisKKyAgICAgICAgVGhpcyBpcyBhIHNtYWxsIHBlcmYgaW1wcm92ZW1l
bnQgb24gdGhlIE1vdGlvbk1hcmsgRGVzaWduIHN1YnRlc3QuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHk6OlJlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Om1fcmVuZGVyaW5nQmFja2Vu
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RS
ZWNvcmRlclByb3h5Lmg6CisKIDIwMjItMDUtMTIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0dUS11bV1BFXSBEbyBub3QgcmV0dXJuIHBvaW50ZXIg
dG8gZGlzcG9zZWQgdGltZXpvbmUgc3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9EcmF3R2x5cGhzUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0RyYXdHbHlwaHNSZWNvcmRlci5oCmluZGV4IDQxODE4ZGNjYzI0YjI1
Y2ZmZDBmYjZlNjg4YzAzZjk5YmU5YTBjNzIuLjY4NmVmY2UzYmE4MWIyNzdiMWRiNjQ1MzYwNDdl
YmRjNGI5ZWQ0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0RyYXdHbHlwaHNSZWNvcmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0RyYXdHbHlwaHNSZWNvcmRlci5oCkBAIC01NSw5ICs1NSw4IEBAIGNsYXNzIERyYXdHbHlw
aHNSZWNvcmRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoRHJhd0dseXBoc1JlY29yZGVyKTsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNz
IERlY29uc3RydWN0RHJhd0dseXBocyA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgZW51bSBjbGFz
cyBEZXJpdmVGb250RnJvbUNvbnRleHQgOiBib29sIHsgTm8sIFllcyB9OwotICAgIGV4cGxpY2l0
IERyYXdHbHlwaHNSZWNvcmRlcihHcmFwaGljc0NvbnRleHQmLCBmbG9hdCBzY2FsZUZhY3RvciA9
IDEsIERlY29uc3RydWN0RHJhd0dseXBocyA9IERlY29uc3RydWN0RHJhd0dseXBoczo6Tm8sIERl
cml2ZUZvbnRGcm9tQ29udGV4dCA9IERlcml2ZUZvbnRGcm9tQ29udGV4dDo6Tm8pOworICAgIGV4
cGxpY2l0IERyYXdHbHlwaHNSZWNvcmRlcihHcmFwaGljc0NvbnRleHQmLCBmbG9hdCBzY2FsZUZh
Y3RvciA9IDEsIERlcml2ZUZvbnRGcm9tQ29udGV4dCA9IERlcml2ZUZvbnRGcm9tQ29udGV4dDo6
Tm8pOwogCiAgICAgdm9pZCBkcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZl
ckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWduZWQgbnVtR2x5cGhzLCBj
b25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgRm9udFNtb290aGluZ01vZGUpOwogCkBAIC03
MCw4ICs2OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlY29yZERyYXdJbWFnZShDR1JlbmRlcmlu
Z1N0YXRlUmVmLCBDR0dTdGF0ZVJlZiwgQ0dSZWN0LCBDR0ltYWdlUmVmKTsKICNlbmRpZgogCi0g
ICAgRGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0dseXBocygpIGNvbnN0IHsg
cmV0dXJuIG1fZGVjb25zdHJ1Y3REcmF3R2x5cGhzOyB9Ci0KIHByaXZhdGU6CiAjaWYgVVNFKENP
UkVfVEVYVCkgJiYgIVBMQVRGT1JNKFdJTikKICAgICBVbmlxdWVSZWY8R3JhcGhpY3NDb250ZXh0
PiBjcmVhdGVJbnRlcm5hbENvbnRleHQoKTsKQEAgLTEwNCwxNSArMTAxLDE2IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgbV9vd25lcjsKLSAgICBEZWNvbnN0cnVj
dERyYXdHbHlwaHMgbV9kZWNvbnN0cnVjdERyYXdHbHlwaHM7Ci0gICAgRGVyaXZlRm9udEZyb21D
b250ZXh0IG1fZGVyaXZlRm9udEZyb21Db250ZXh0OwogCiAjaWYgVVNFKENPUkVfVEVYVCkgJiYg
IVBMQVRGT1JNKFdJTikKICAgICBVbmlxdWVSZWY8R3JhcGhpY3NDb250ZXh0PiBtX2ludGVybmFs
Q29udGV4dDsKICNlbmRpZgogCiAgICAgY29uc3QgRm9udCogbV9vcmlnaW5hbEZvbnQgeyBudWxs
cHRyIH07CisKKyAgICBjb25zdCBEZXJpdmVGb250RnJvbUNvbnRleHQgbV9kZXJpdmVGb250RnJv
bUNvbnRleHQ7CiAgICAgRm9udFNtb290aGluZ01vZGUgbV9zbW9vdGhpbmdNb2RlIHsgRm9udFNt
b290aGluZ01vZGU6OkF1dG9TbW9vdGhpbmcgfTsKKwogICAgIEFmZmluZVRyYW5zZm9ybSBtX29y
aWdpbmFsVGV4dE1hdHJpeDsKIAogICAgIHN0cnVjdCBTdGF0ZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKaW5kZXggZDI5NmM1MWI3YzJk
MzhjMjhkODhjYWZhNjhhNzFlYWE4YTgxOWY0MS4uMTBlNmZiMmI3NzNkMWQ2YzRlYzViNWMzOGM1
MmUwOTk0NDA2Yzc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhc2NhZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmNwcApAQCAtMjEzLDcgKzIxMyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEaXNw
bGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4gRm9udENhc2NhZGU6OmRpc3BsYXlMaXN0Rm9y
VGV4CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxE
aXNwbGF5TGlzdDo6SW5NZW1vcnlEaXNwbGF5TGlzdD4gZGlzcGxheUxpc3QgPSBtYWtlVW5pcXVl
PERpc3BsYXlMaXN0OjpJbk1lbW9yeURpc3BsYXlMaXN0PigpOwotICAgIERpc3BsYXlMaXN0OjpS
ZWNvcmRlckltcGwgcmVjb3JkaW5nQ29udGV4dCgqZGlzcGxheUxpc3QsIGNvbnRleHQuc3RhdGUo
KS5jbG9uZUZvclJlY29yZGluZygpLCBGbG9hdFJlY3QoKSwgQWZmaW5lVHJhbnNmb3JtKCksIERy
YXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpObyk7CisgICAgRGlzcGxh
eUxpc3Q6OlJlY29yZGVySW1wbCByZWNvcmRpbmdDb250ZXh0KCpkaXNwbGF5TGlzdCwgY29udGV4
dC5zdGF0ZSgpLmNsb25lRm9yUmVjb3JkaW5nKCksIHsgfSwgeyB9KTsKICAgICAKICAgICBGbG9h
dFBvaW50IHN0YXJ0UG9pbnQgPSB0b0Zsb2F0UG9pbnQoV2ViQ29yZTo6c2l6ZShnbHlwaEJ1ZmZl
ci5pbml0aWFsQWR2YW5jZSgpKSk7CiAgICAgZHJhd0dseXBoQnVmZmVyKHJlY29yZGluZ0NvbnRl
eHQsIGdseXBoQnVmZmVyLCBzdGFydFBvaW50LCBjdXN0b21Gb250Tm90UmVhZHlBY3Rpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRHJh
d0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29yZXRleHQvRHJhd0dseXBoc1JlY29yZGVyQ29yZVRleHQuY3BwCmluZGV4IGI0MTg1
MWRlNjUwMjFhMmZiYmQwMzI2OGZlNDI0OTBlNDgyMThiYTcuLjI2YTc1MTVmOWNlYTk4YTk5NDVl
NThlNWFkNzQyZDQxMzRkMjU3MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0RyYXdHbHlwaHNSZWNvcmRlckNvcmVUZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9EcmF3R2x5cGhzUmVjb3Jk
ZXJDb3JlVGV4dC5jcHAKQEAgLTg2LDExICs4NiwxMCBAQCBVbmlxdWVSZWY8R3JhcGhpY3NDb250
ZXh0PiBEcmF3R2x5cGhzUmVjb3JkZXI6OmNyZWF0ZUludGVybmFsQ29udGV4dCgpCiAgICAgcmV0
dXJuIG1ha2VVbmlxdWVSZWY8R3JhcGhpY3NDb250ZXh0Q0c+KGNvbnRleHQuZ2V0KCkpOwogfQog
Ci1EcmF3R2x5cGhzUmVjb3JkZXI6OkRyYXdHbHlwaHNSZWNvcmRlcihHcmFwaGljc0NvbnRleHQm
IG93bmVyLCBmbG9hdCBzY2FsZUZhY3RvciwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29uc3Ry
dWN0RHJhd0dseXBocywgRGVyaXZlRm9udEZyb21Db250ZXh0IGRlcml2ZUZvbnRGcm9tQ29udGV4
dCkKK0RyYXdHbHlwaHNSZWNvcmRlcjo6RHJhd0dseXBoc1JlY29yZGVyKEdyYXBoaWNzQ29udGV4
dCYgb3duZXIsIGZsb2F0IHNjYWxlRmFjdG9yLCBEZXJpdmVGb250RnJvbUNvbnRleHQgZGVyaXZl
Rm9udEZyb21Db250ZXh0KQogICAgIDogbV9vd25lcihvd25lcikKLSAgICAsIG1fZGVjb25zdHJ1
Y3REcmF3R2x5cGhzKGRlY29uc3RydWN0RHJhd0dseXBocykKLSAgICAsIG1fZGVyaXZlRm9udEZy
b21Db250ZXh0KGRlcml2ZUZvbnRGcm9tQ29udGV4dCkKICAgICAsIG1faW50ZXJuYWxDb250ZXh0
KGNyZWF0ZUludGVybmFsQ29udGV4dCgpKQorICAgICwgbV9kZXJpdmVGb250RnJvbUNvbnRleHQo
ZGVyaXZlRm9udEZyb21Db250ZXh0KQogewogICAgIG1faW50ZXJuYWxDb250ZXh0LT5hcHBseURl
dmljZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKTsKIH0KQEAgLTM5OCwyMCArMzk3LDExIEBAIHZv
aWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3QnlTcGxpdHRpbmdJbnRvT1RTVkdBbmROb25PVFNW
R1J1bnMoY29uc3QgRm9udCYgZm9uCiAKIHZvaWQgRHJhd0dseXBoc1JlY29yZGVyOjpkcmF3R2x5
cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29u
c3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHZhbmNlcywgdW5zaWduZWQgbnVtR2x5cGhzLCBjb25z
dCBGbG9hdFBvaW50JiBzdGFydFBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2Rl
KQogewotICAgIGlmIChtX2RlY29uc3RydWN0RHJhd0dseXBocyA9PSBEZWNvbnN0cnVjdERyYXdH
bHlwaHM6Ok5vKSB7Ci0gICAgICAgIG1fb3duZXIuZHJhd0dseXBoc0FuZENhY2hlRm9udChmb250
LCBnbHlwaHMsIGFkdmFuY2VzLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQVNTRVJUKG1fZGVjb25zdHJ1Y3REcmF3
R2x5cGhzID09IERlY29uc3RydWN0RHJhd0dseXBoczo6WWVzKTsKLQogICAgIGRyYXdCeVNwbGl0
dGluZ0ludG9PVFNWR0FuZE5vbk9UU1ZHUnVucyhmb250LCBnbHlwaHMsIGFkdmFuY2VzLCBudW1H
bHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwogfQogCiB2b2lkIERyYXdHbHlwaHNS
ZWNvcmRlcjo6ZHJhd05hdGl2ZVRleHQoQ1RGb250UmVmIGZvbnQsIENHRmxvYXQgZm9udFNpemUs
IENUTGluZVJlZiBsaW5lLCBDR1JlY3QgbGluZVJlY3QpCiB7Ci0gICAgQVNTRVJUKG1fZGVjb25z
dHJ1Y3REcmF3R2x5cGhzID09IERlY29uc3RydWN0RHJhd0dseXBoczo6WWVzKTsKLQogICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc2F2ZXIobV9vd25lcik7CiAKICAgICBtX293bmVyLnRy
YW5zbGF0ZShsaW5lUmVjdC5vcmlnaW4ueCwgbGluZVJlY3Qub3JpZ2luLnkgKyBsaW5lUmVjdC5z
aXplLmhlaWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5k
ZXggNGFlN2U4YThhYjQ0YzI4N2M2MzczNjk3MTg3OTBjY2VlMTM2MWM3Yi4uMDc0YmY2MDkzZWQz
NzhlMTgxMWZmOGZjNmNhNWQwNTdiNzdlOTk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmNwcApAQCAtNDYsNyArNDYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
bmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAotUmVjb3JkZXI6OlJlY29yZGVyKGNvbnN0IEdyYXBo
aWNzQ29udGV4dFN0YXRlJiBzdGF0ZSwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBpbml0aWFsQ1RNLCBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29u
c3RydWN0RHJhd0dseXBocyBkZWNvbnN0cnVjdERyYXdHbHlwaHMpCitSZWNvcmRlcjo6UmVjb3Jk
ZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlLCBjb25zdCBGbG9hdFJlY3QmIGlu
aXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0sIERlY29uc3RydWN0
RHJhd0dseXBocyBkZWNvbnN0cnVjdERyYXdHbHlwaHMpCiAgICAgOiBHcmFwaGljc0NvbnRleHQo
c3RhdGUpCiAgICAgLCBtX2luaXRpYWxTY2FsZShpbml0aWFsQ1RNLnhTY2FsZSgpKQogICAgICwg
bV9kZWNvbnN0cnVjdERyYXdHbHlwaHMoZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQpAQCAtMTYzLDE3
ICsxNjMsMjIgQEAgdm9pZCBSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoSW1hZ2VC
dWZmZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QKIAogdm9pZCBSZWNvcmRlcjo6ZHJh
d0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMs
IGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSogYWR2YW5jZXMsIHVuc2lnbmVkIG51bUdseXBocywg
Y29uc3QgRmxvYXRQb2ludCYgc3RhcnRQb2ludCwgRm9udFNtb290aGluZ01vZGUgc21vb3RoaW5n
TW9kZSkKIHsKLSAgICBpZiAoIW1fZHJhd0dseXBoc1JlY29yZGVyKQotICAgICAgICBtX2RyYXdH
bHlwaHNSZWNvcmRlciA9IG1ha2VVbmlxdWU8RHJhd0dseXBoc1JlY29yZGVyPigqdGhpcywgbV9p
bml0aWFsU2NhbGUsIG1fZGVjb25zdHJ1Y3REcmF3R2x5cGhzKTsKKyAgICBpZiAobV9kZWNvbnN0
cnVjdERyYXdHbHlwaHMgPT0gRGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpIHsKKyAgICAgICAg
aWYgKCFtX2RyYXdHbHlwaHNSZWNvcmRlcikKKyAgICAgICAgICAgIG1fZHJhd0dseXBoc1JlY29y
ZGVyID0gbWFrZVVuaXF1ZTxEcmF3R2x5cGhzUmVjb3JkZXI+KCp0aGlzLCBtX2luaXRpYWxTY2Fs
ZSk7CiAKLSAgICBtX2RyYXdHbHlwaHNSZWNvcmRlci0+ZHJhd0dseXBocyhmb250LCBnbHlwaHMs
IGFkdmFuY2VzLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOworICAgICAg
ICBtX2RyYXdHbHlwaHNSZWNvcmRlci0+ZHJhd0dseXBocyhmb250LCBnbHlwaHMsIGFkdmFuY2Vz
LCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgZHJhd0dseXBoc0FuZENhY2hlRm9udChmb250LCBnbHlwaHMsIGFkdmFu
Y2VzLCBudW1HbHlwaHMsIHN0YXJ0UG9pbnQsIHNtb290aGluZ01vZGUpOwogfQogCi12b2lkIFJl
Y29yZGVyOjpkcmF3R2x5cGhzQW5kQ2FjaGVGb250KGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEds
eXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHZhbmNl
cywgdW5zaWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsQW5jaG9yLCBGb250U21v
b3RoaW5nTW9kZSBzbW9vdGhpbmdNb2RlKQordm9pZCBSZWNvcmRlcjo6ZHJhd0dseXBoc0FuZENh
Y2hlRm9udChjb25zdCBGb250JiBmb250LCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMs
IGNvbnN0IEdseXBoQnVmZmVyQWR2YW5jZSogYWR2YW5jZXMsIHVuc2lnbmVkIG51bUdseXBocywg
Y29uc3QgRmxvYXRQb2ludCYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGlu
Z01vZGUpCiB7CiAgICAgYXBwZW5kU3RhdGVDaGFuZ2VJdGVtSWZOZWNlc3NhcnkoKTsKICAgICBy
ZWNvcmRSZXNvdXJjZVVzZShjb25zdF9jYXN0PEZvbnQmPihmb250KSk7Ci0gICAgcmVjb3JkRHJh
d0dseXBocyhmb250LCBnbHlwaHMsIGFkdmFuY2VzLCBjb3VudCwgbG9jYWxBbmNob3IsIHNtb290
aGluZ01vZGUpOworICAgIHJlY29yZERyYXdHbHlwaHMoZm9udCwgZ2x5cGhzLCBhZHZhbmNlcywg
bnVtR2x5cGhzLCBsb2NhbEFuY2hvciwgc21vb3RoaW5nTW9kZSk7CiB9CiAKIHZvaWQgUmVjb3Jk
ZXI6OmRyYXdJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgSW1hZ2VQYWlu
dGluZ09wdGlvbnMmIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIu
aAppbmRleCA1MjIzNDc0OGQ1YjkxZTM1YzBlNjk4NjA2Y2RlMzYwMDNkYzNjYmJlLi42MDA0ODMz
NmE3ZjgwOTM4MmVkZDBkMDI3NDU1ZDgyZjQ4ZmJmODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmgKQEAgLTUxLDcgKzUxLDkgQEAgY2xhc3MgUmVjb3JkZXIgOiBwdWJs
aWMgR3JhcGhpY3NDb250ZXh0IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShSZWNvcmRlcik7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgUmVjb3JkZXIoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBjb25zdCBGbG9hdFJlY3Qm
IGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBEcmF3R2x5cGhzUmVjb3JkZXI6
OkRlY29uc3RydWN0RHJhd0dseXBocyA9IERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3RE
cmF3R2x5cGhzOjpZZXMpOworICAgIGVudW0gY2xhc3MgRGVjb25zdHJ1Y3REcmF3R2x5cGhzIDog
Ym9vbCB7IE5vLCBZZXMgfTsKKworICAgIFdFQkNPUkVfRVhQT1JUIFJlY29yZGVyKGNvbnN0IEdy
YXBoaWNzQ29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzID0gRGVjb25zdHJ1Y3REcmF3
R2x5cGhzOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVjb3JkZXIoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCkgPSAwOwpAQCAtMjcxLDcg
KzI3Myw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENvbnRleHRTdGF0ZSwgND4gbV9zdGF0ZVN0
YWNrOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3R2x5cGhzUmVjb3JkZXI+IG1fZHJhd0dseXBo
c1JlY29yZGVyOwogICAgIGZsb2F0IG1faW5pdGlhbFNjYWxlIHsgMSB9OwotICAgIERyYXdHbHlw
aHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhzIG1fZGVjb25zdHJ1Y3REcmF3R2x5cGhz
IHsgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHM6Ok5vIH07CisgICAg
Y29uc3QgRGVjb25zdHJ1Y3REcmF3R2x5cGhzIG1fZGVjb25zdHJ1Y3REcmF3R2x5cGhzIHsgRGVj
b25zdHJ1Y3REcmF3R2x5cGhzOjpObyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxp
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlckltcGwuY3BwCmluZGV4
IDJiNmIyYWEzZTdkMDZjNDI1ZDU1ZjZlMjI1NWU4OGVlZjc3ODcwMmQuLjNkZDExODg3MjFmZTJl
NDY3MmZmODQwODI1ZDY5NmZkYzA4OGVjMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVySW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXJJbXBsLmNwcApAQCAtNDIsNyArNDIsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAotUmVjb3JkZXJJbXBsOjpSZWNvcmRlcklt
cGwoRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYg
c3RhdGUsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgaW5pdGlhbENUTSwgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlwaHMg
ZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQorUmVjb3JkZXJJbXBsOjpSZWNvcmRlckltcGwoRGlzcGxh
eUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIGNv
bnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgaW5pdGlh
bENUTSwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzIGRlY29uc3RydWN0RHJhd0dseXBocykKICAgICA6
IFJlY29yZGVyKHN0YXRlLCBpbml0aWFsQ2xpcCwgaW5pdGlhbENUTSwgZGVjb25zdHJ1Y3REcmF3
R2x5cGhzKQogICAgICwgbV9kaXNwbGF5TGlzdChkaXNwbGF5TGlzdCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dFJlY29yZGVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKaW5kZXggOGY4OTliOWZkNDgzYzhhMDgy
MzE5NDg1NGY3NWIyNTY1ZDdiMDMxNC4uNDI2YWIwM2Y0YjA2NjIzOGJmMzdiZWY3YWJjMjM5Yzc0
ZDE5NDBkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXJJbXBsLmgK
QEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgUmVjb3JkZXJJbXBsIDogcHVibGljIFJlY29yZGVyIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShS
ZWNvcmRlckltcGwpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFJlY29yZGVySW1wbChE
aXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0
JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgRHJhd0dseXBoc1JlY29yZGVy
OjpEZWNvbnN0cnVjdERyYXdHbHlwaHMgPSBEcmF3R2x5cGhzUmVjb3JkZXI6OkRlY29uc3RydWN0
RHJhd0dseXBoczo6WWVzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRlckltcGwoRGlzcGxh
eUxpc3QmLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIGNvbnN0IEZsb2F0UmVjdCYgaW5p
dGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIERlY29uc3RydWN0RHJhd0dseXBocyA9
IERlY29uc3RydWN0RHJhd0dseXBoczo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
flJlY29yZGVySW1wbCgpOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9k
aXNwbGF5TGlzdC5pc0VtcHR5KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2hhcmZidXp6L0RyYXdHbHlwaHNSZWNvcmRlckhhcmZCdXp6LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0RyYXdHbHlwaHNSZWNvcmRl
ckhhcmZCdXp6LmNwcAppbmRleCAwMmMxMDA4MWE0MDY5OWZiMTVhMTY0NjIzYjkwZjVhNjdhM2Ez
N2Q5Li5jMzI4YjhmYjY2N2ViYWFhY2VmYzJkZWQ1MGY5ODg0NzIwMDBhZjhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9EcmF3R2x5cGhzUmVj
b3JkZXJIYXJmQnV6ei5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
aGFyZmJ1enovRHJhd0dseXBoc1JlY29yZGVySGFyZkJ1enouY3BwCkBAIC0zMiw4ICszMiw5IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhz
UmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBvd25lciwgZmxvYXQsIERlY29uc3RydWN0RHJhd0ds
eXBocywgRGVyaXZlRm9udEZyb21Db250ZXh0KQorRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5
cGhzUmVjb3JkZXIoR3JhcGhpY3NDb250ZXh0JiBvd25lciwgZmxvYXQsIERlcml2ZUZvbnRGcm9t
Q29udGV4dCBkZXJpdmVGb250RnJvbUNvbnRleHQpCiAgICAgOiBtX293bmVyKG93bmVyKQorICAg
ICwgbV9kZXJpdmVGb250RnJvbUNvbnRleHQoZGVyaXZlRm9udEZyb21Db250ZXh0KQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRHJhd0ds
eXBoc1JlY29yZGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9EcmF3R2x5cGhzUmVjb3JkZXJXaW4uY3BwCmluZGV4IGZlZTQzYmI5MDE0NGFiYjQzNmVjZTgw
MjA5ZjU2MDZjZTRlZDkxMDYuLmFkNGJhMWQ2NDE3ZTcxODZjYzFlYWE1YjEzNWFlNWUxYTQ0NTc3
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9EcmF3
R2x5cGhzUmVjb3JkZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9EcmF3R2x5cGhzUmVjb3JkZXJXaW4uY3BwCkBAIC0zMiw4ICszMiw5IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVjb3Jk
ZXIoR3JhcGhpY3NDb250ZXh0JiBvd25lciwgZmxvYXQsIERlY29uc3RydWN0RHJhd0dseXBocywg
RGVyaXZlRm9udEZyb21Db250ZXh0KQorRHJhd0dseXBoc1JlY29yZGVyOjpEcmF3R2x5cGhzUmVj
b3JkZXIoR3JhcGhpY3NDb250ZXh0JiBvd25lciwgZmxvYXQsIERlcml2ZUZvbnRGcm9tQ29udGV4
dCBkZXJpdmVGb250RnJvbUNvbnRleHQpCiAgICAgOiBtX293bmVyKG93bmVyKQorICAgICwgbV9k
ZXJpdmVGb250RnJvbUNvbnRleHQoZGVyaXZlRm9udEZyb21Db250ZXh0KQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggNTc5NzdmMDA1ZGYy
MmIyYWQyNGNhMWExMzdhMDM0ZTFmNDZhNDUyMS4uOWRmNGMzNTg3NjJkNTZjMDhjMTU2ZjdiMGQx
Y2M4ODFmMzllNjlmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbQpAQCAtMTkxOSw3ICsxOTE5LDcgQEAgc3RhdGljIHZvaWQgcGFpbnRBdHRhY2htZW50SWNv
bihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFJlbmRlckF0dGFjaG1lbnRJbmZvJgogCiBzdGF0
aWMgdm9pZCBwYWludEF0dGFjaG1lbnRUZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgUmVu
ZGVyQXR0YWNobWVudEluZm8mIGluZm8pCiB7Ci0gICAgRHJhd0dseXBoc1JlY29yZGVyIHJlY29y
ZGVyKGNvbnRleHQsIDEsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3R2x5cGhz
OjpZZXMsIERyYXdHbHlwaHNSZWNvcmRlcjo6RGVyaXZlRm9udEZyb21Db250ZXh0OjpZZXMpOwor
ICAgIERyYXdHbHlwaHNSZWNvcmRlciByZWNvcmRlcihjb250ZXh0LCAxLCBEcmF3R2x5cGhzUmVj
b3JkZXI6OkRlcml2ZUZvbnRGcm9tQ29udGV4dDo6WWVzKTsKIAogICAgIGZvciAoY29uc3QgYXV0
byYgbGluZSA6IGluZm8ubGluZXMpCiAgICAgICAgIHJlY29yZGVyLmRyYXdOYXRpdmVUZXh0KGxp
bmUuZm9udC5nZXQoKSwgQ1RGb250R2V0U2l6ZShsaW5lLmZvbnQuZ2V0KCkpLCBsaW5lLmxpbmUu
Z2V0KCksIGxpbmUucmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQ
cm94eS5jcHAKaW5kZXggMDFjODY1YmUxMjc4Mjg4NWI3MTFlMDZkZmViZTFiMGFhYTYxNjNiZS4u
MTRmMzY4NjcyYjhjODIxNzhkNDRiODA2MWIyNjQwYjdmZjEwZmVhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29y
ZGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmNwcApAQCAtNDQsOCArNDQsOCBAQAogbmFt
ZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlclByb3h5OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkoSW1hZ2VC
dWZmZXImIGltYWdlQnVmZmVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmIHJlbmRlcmlu
Z0JhY2tlbmQsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYgaW5pdGlhbENUTSwgRHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlw
aHMgZGVjb25zdHJ1Y3REcmF3R2x5cGhzKQotICAgIDogRGlzcGxheUxpc3Q6OlJlY29yZGVyKHsg
fSwgaW5pdGlhbENsaXAsIGluaXRpYWxDVE0sIGRlY29uc3RydWN0RHJhd0dseXBocykKK1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eTo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5
KEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiBy
ZW5kZXJpbmdCYWNrZW5kLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIGluaXRpYWxDVE0pCisgICAgOiBEaXNwbGF5TGlzdDo6UmVjb3JkZXIoeyB9
LCBpbml0aWFsQ2xpcCwgaW5pdGlhbENUTSwgRGVjb25zdHJ1Y3REcmF3R2x5cGhzOjpZZXMpCiAg
ICAgLCBtX2Rlc3RpbmF0aW9uQnVmZmVySWRlbnRpZmllcihpbWFnZUJ1ZmZlci5yZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIoKSkKICAgICAsIG1faW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIpCiAg
ICAgLCBtX3JlbmRlcmluZ0JhY2tlbmQocmVuZGVyaW5nQmFja2VuZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNv
cmRlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eS5oCmluZGV4IGQzMTIzMDdhMGQ2NjZjNGI5ZGJmNzlj
YjQzZWEzNzdiMmVkYjRhOTkuLjU3ZTQ3NDIxMGNkNzBkNjViZmUzYWNmMGNjN2FhNDdmOTEzZDg1
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyUHJveHkuaApAQCAtMzks
NyArMzksNyBAQCBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiAKIGNsYXNzIFJl
bW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXIgewogcHVibGljOgotICAgIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94
eShXZWJDb3JlOjpJbWFnZUJ1ZmZlciYsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IFdlYkNvcmU6OkFmZmlu
ZVRyYW5zZm9ybSYsIFdlYkNvcmU6OkRyYXdHbHlwaHNSZWNvcmRlcjo6RGVjb25zdHJ1Y3REcmF3
R2x5cGhzID0gV2ViQ29yZTo6RHJhd0dseXBoc1JlY29yZGVyOjpEZWNvbnN0cnVjdERyYXdHbHlw
aHM6Olllcyk7CisgICAgUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlclByb3h5KFdlYkNvcmU6Oklt
YWdlQnVmZmVyJiwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJik7
CiAgICAgflJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJQcm94eSgpID0gZGVmYXVsdDsKIAogICAg
IHZvaWQgcmVzZXROZWVkc0ZsdXNoKCkgeyBtX25lZWRzRmx1c2ggPSBmYWxzZTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>