<?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>239555</bug_id>
          
          <creation_ts>2022-04-20 11:05:04 -0700</creation_ts>
          <short_desc>Avoid falling back to snapshots for transparent images when triggering batch text recognition</short_desc>
          <delta_ts>2022-04-20 18:52:21 -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>Platform</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>akeerthi</cc>
    
    <cc>andresg_22</cc>
    
    <cc>annulen</cc>
    
    <cc>apinheiro</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1862991</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-20 11:05:04 -0700</bug_when>
    <thetext>rdar://91622151</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863056</commentid>
    <comment_count>1</comment_count>
      <attachid>458015</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-20 14:20:25 -0700</bug_when>
    <thetext>Created attachment 458015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863059</commentid>
    <comment_count>2</comment_count>
      <attachid>458016</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-20 14:22:49 -0700</bug_when>
    <thetext>Created attachment 458016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863062</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-04-20 14:30:15 -0700</bug_when>
    <thetext>The content of attachment 458015 has been deleted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863079</commentid>
    <comment_count>4</comment_count>
      <attachid>458017</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-20 14:59:28 -0700</bug_when>
    <thetext>Created attachment 458017
Reupload</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863088</commentid>
    <comment_count>5</comment_count>
      <attachid>458017</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-20 15:18:24 -0700</bug_when>
    <thetext>Comment on attachment 458017
Reupload

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

&gt; Source/WebCore/platform/TextRecognitionOptions.h:32
&gt; +enum class AllowSnapshots : bool { No, Yes };

Consider moving this inside `TextRecognitionOptions` or renaming to something more specific.

`WebCore::AllowSnapshots` seems too generic to be defined in this header.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:107
&gt; +class CGImagePixelReader {

I wonder if we can share this logic with other tests – maybe leave a FIXME here? I think there are some PDF / GraphicsContext tests that also read pixels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863110</commentid>
    <comment_count>6</comment_count>
      <attachid>458017</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-20 15:48:42 -0700</bug_when>
    <thetext>Comment on attachment 458017
Reupload

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

Thanks for the review!

&gt;&gt; Source/WebCore/platform/TextRecognitionOptions.h:32
&gt;&gt; +enum class AllowSnapshots : bool { No, Yes };
&gt; 
&gt; Consider moving this inside `TextRecognitionOptions` or renaming to something more specific.
&gt; 
&gt; `WebCore::AllowSnapshots` seems too generic to be defined in this header.

Makes sense — I&apos;ll move it into TextRecognitionOptions, as TextRecognitionOptions::AllowSnapshots

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:107
&gt;&gt; +class CGImagePixelReader {
&gt; 
&gt; I wonder if we can share this logic with other tests – maybe leave a FIXME here? I think there are some PDF / GraphicsContext tests that also read pixels.

Good point! It seems the only effective difference between this and the logic in `TestPDFPage::colorAtPoint` is that the latter uses `CGContextDrawPDFPageWithAnnotations`. We could probably abstract this away by adding a constructor that takes a `PDFPage`. I think we could also deploy this in `DragAndDropTestsIOS.mm`, as well.

I&apos;ll add a FIXME for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863122</commentid>
    <comment_count>7</comment_count>
      <attachid>458019</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-20 16:06:27 -0700</bug_when>
    <thetext>Created attachment 458019
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863170</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-20 18:52:17 -0700</bug_when>
    <thetext>Committed r293137 (249836@main): &lt;https://commits.webkit.org/249836@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458019.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458017</attachid>
            <date>2022-04-20 14:59:28 -0700</date>
            <delta_ts>2022-04-20 16:05:50 -0700</delta_ts>
            <desc>Reupload</desc>
            <filename>bug-239555-20220420145927.patch</filename>
            <type>text/plain</type>
            <size>30645</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGU0MjlkMDNjNjg2MjE2
OTEwMWY3ODgxNGM4MTNjZjBlYWZkZGI5OC4uMjkzZDFlYmU4OWRlOWJlZjk5MDJiNjMxYTQ5MTQw
MTYwYTNiODA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIyLTA0LTIwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIGZhbGxp
bmcgYmFjayB0byBzbmFwc2hvdHMgZm9yIHRyYW5zcGFyZW50IGltYWdlcyB3aGVuIHRyaWdnZXJp
bmcgYmF0Y2ggdGV4dCByZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NTU1CisgICAgICAgIHJkYXI6Ly85MTYyMjE1MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBub3JtYWwgTGl2
ZSBUZXh0LCBvdXIgZXhpc3RpbmcgaGV1cmlzdGljcyBmYWxsIGJhY2sgdG8gYW5hbHl6aW5nIGEg
c25hcHNob3QgcmF0aGVyIHRoYW4gdGhlIGltYWdlIGRhdGEKKyAgICAgICAgaXRzZWxmIGZvciB0
cmFuc3BhcmVudCBpbWFnZSBlbGVtZW50cyAoZS5nLiBvbiBUd2l0dGVyKS4gSG93ZXZlciwgd2hl
biBpbnN0YWxsaW5nIGJsb2NrLXN0eWxlIGltYWdlIG92ZXJsYXkKKyAgICAgICAgY29udGVudCB1
c2luZyBgSW1hZ2VBbmFseXNpc1F1ZXVlYCwgaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHVzZSB0
aGlzIGNvbXBhdGliaWxpdHkgaGFjaywgc2luY2UgdGhpcyBmbGF2b3Igb2YKKyAgICAgICAgaW1h
Z2Ugb3ZlcmxheSBjb250ZW50IGlzIGRpcmVjdGx5IHZpc2libGUgdG8gdGhlIHVzZXIsIGFuZCB3
b3VsZCBzdGlsbCBzaG93IHVwIHVuZGVybmVhdGggZnVsbHkgdHJhbnNwYXJlbnQKKyAgICAgICAg
aW1hZ2UgZWxlbWVudHMsIGFzIGxvbmcgYXMgd2UncmUgYWJsZSB0byBhbmFseXplIHRoZSBvdGhl
ciAobm9uLWZ1bGx5LXRyYW5zcGFyZW50KSBpbWFnZSBlbGVtZW50IHVuZGVybmVhdGguCisKKyAg
ICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisKKyAgICAgICAgUGx1bWIgdGhlIG5ldyBgVGV4dFJl
Y29nbml0aW9uT3B0aW9uc2Agc3RydWN0IHRocm91Z2ggdGhpcyBjbGllbnQgbWV0aG9kLgorCisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6dGV4dFJlY29nbml0aW9uSG92ZXJUaW1lckZpcmVkKToKKyAgICAgICAgKiBwYWdl
L0ltYWdlQW5hbHlzaXNRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUFuYWx5c2lz
UXVldWU6OnJlc3VtZVByb2Nlc3NpbmcpOgorCisgICAgICAgIFVzZSB0aGUgcHJlc2VuY2Ugb2Yg
YW4gaWRlbnRpZmllciBhcyBhIGN1ZSB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3Qgd2Ugc2hv
dWxkIG9wdCBpbnRvIHRoZSBzbmFwc2hvdHRpbmcKKyAgICAgICAgZmFsbGJhY2sgYmVoYXZpb3Is
IGZvciB0aGUgdGltZSBiZWluZy4gSSBhbHNvIGNvbnNpZGVyZWQganVzdCBrZXlpbmcgdGhpcyBi
ZWhhdmlvciBvZmYgb2YgdGhlIGBpZGVudGlmaWVyYCBpbgorICAgICAgICBgV2ViUGFnZTo6cmVx
dWVzdFRleHRSZWNvZ25pdGlvbmAsIGJ1dCBjaG9zZSB0aGlzIGFwcHJvYWNoIGJlY2F1c2UgaXQg
c2VlbXMgZnJhZ2lsZSB0byBjb3VwbGUgdGhvc2UgdHdvCisgICAgICAgIGJlaGF2aW9ycy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL1RleHRSZWNvZ25pdGlvbk9wdGlvbnMuaDogQWRkZWQuCisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorCiAyMDIyLTA0LTE5ICBUaW0gTmd1eWVuICA8
bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgU1ZHcyBhZGRlZCBieSByMjkzMDM4
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGFjMWY2ZGRiMDZmOWU3YmI5M2Y2OGMwMzZhZTY0ZDE4ZGY3OGZlZGQuLmE5
NmU0ZGU5NzRjNzIxMmZlMmU2Yjg2MGI1MDRkNWViNTJjNjdhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMjItMDQtMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CisKKyAgICAgICAgQXZvaWQgZmFsbGluZyBiYWNrIHRvIHNuYXBzaG90cyBmb3IgdHJhbnNw
YXJlbnQgaW1hZ2VzIHdoZW4gdHJpZ2dlcmluZyBiYXRjaCB0ZXh0IHJlY29nbml0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk1NTUKKyAgICAg
ICAgcmRhcjovLzkxNjIyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVmYWN0b3IgYHJlcXVlc3RUZXh0UmVjb2duaXRpb24oKWAgdG8gdGFrZSBp
biBgVGV4dFJlY29nbml0aW9uT3B0aW9uc2AuCisgICAgICAgIFNlZSBXZWJDb3JlL0NoYW5nZUxv
ZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKwogMjAyMi0wNC0xOSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIElubGluZSBFbGVtZW50
OjpzaGFkb3dSb290KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDgwYmJlYThlNzIzNGYwNTVlZmQ2
ZTM0MDA3NTBiMzdmMzMxNzhjYWUuLmY4YmE5OTU3OWU2NTczNzAxMGNkNDc3NGIzZTQ5YzM0ZGI5
MTNjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTM1NSw2ICsxMzU1LDcgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1N1ZGRlblRlcm1pbmF0
aW9uLmgKICAgICBwbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCiAgICAgcGxhdGZvcm0vU3lzdGVt
U291bmREZWxlZ2F0ZS5oCisgICAgcGxhdGZvcm0vVGV4dFJlY29nbml0aW9uT3B0aW9ucy5oCiAg
ICAgcGxhdGZvcm0vVGhlbWVUeXBlcy5oCiAgICAgcGxhdGZvcm0vVGhyZWFkQ2hlY2suaAogICAg
IHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMyOTEzMGViYzc2N2U1NzgzOTk5Zjdk
MDY4N2IxZjExMjJlZDkyYjYuLjk4ZDhlZWEyYWZkODVkMTU4NjA2NmZiM2M3MDkyYjc2M2I1ZTcy
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTU1MzUsNiArNTUzNSw3IEBACiAJCUY0MDM0RkFDMjc1RUFENkUwMDNBODFGOCAv
KiBSZXF1ZXN0Q29va2llQ29uc2VudE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MDM0RjhGMjc1QzE2ODYwMDNBODFGOCAvKiBSZXF1ZXN0
Q29va2llQ29uc2VudE9wdGlvbnMuaCAqLzsgfTsKIAkJRjQwMzRGQUUyNzVFQUQ3NjAwM0E4MUY4
IC8qIE5hdmlnYXRvckNvb2tpZUNvbnNlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0MDM0RjhEMjc1QzA4N0IwMDNBODFGOCAvKiBOYXZpZ2F0b3JD
b29raWVDb25zZW50LmggKi87IH07CiAJCUY0MDNFNzg3MjM2M0I1OEMwMDA0NDU1MCAvKiBFbnRl
cktleUhpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0MDNFNzg1MjM2M0I1OEMwMDA0NDU1MCAvKiBFbnRlcktleUhpbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNDBCOEQ1QTI4MTA3MkI4MDAz
NDY0MTcgLyogVGV4dFJlY29nbml0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwQjhENTkyODEwNzJCODAwMzQ2NDE3IC8qIFRleHRS
ZWNvZ25pdGlvbk9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlGNDBEQUFFQzI1RDlGMjVFMDAxMUI0RkEgLyogUGFzdGVib2FyZENvbnRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MERB
QUVCMjVEOUYyNUUwMDExQjRGQSAvKiBQYXN0ZWJvYXJkQ29udGV4dC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0MERBQUVGMjVEOUYzQkYwMDEx
QjRGQSAvKiBQYWdlUGFzdGVib2FyZENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MERBQUVFMjVEOUYzQkYwMDExQjRGQSAvKiBQYWdlUGFz
dGVib2FyZENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlGNDIwRjAwQTI1RTQ3NzkxMDA5MjUxRUYgLyogUG9pbnRlckV2ZW50VHlwZU5h
bWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDIw
RjAwODI1RTQ3NzkxMDA5MjUxRUYgLyogUG9pbnRlckV2ZW50VHlwZU5hbWVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE3ODY4LDYgKzE3ODY5
LDcgQEAKIAkJRjQwMzRGOUMyNzVDNDc4MzAwM0E4MUY4IC8qIENvb2tpZUNvbnNlbnREZWNpc2lv
blJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDb29raWVDb25zZW50RGVjaXNpb25SZXN1bHQuaDsg
cGF0aCA9ICJjb29raWUtY29uc2VudC9Db29raWVDb25zZW50RGVjaXNpb25SZXN1bHQuaCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MDNFNzg1MjM2M0I1OEMwMDA0NDU1MCAvKiBF
bnRlcktleUhpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW50ZXJLZXlIaW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0MDNFNzg2MjM2M0I1OEMwMDA0NDU1MCAvKiBFbnRlcktleUhp
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW50ZXJLZXlIaW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjQwQjhENTkyODEwNzJCODAwMzQ2NDE3IC8qIFRleHRSZWNvZ25p
dGlvbk9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJlY29n
bml0aW9uT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDBEQUFFQjI1
RDlGMjVFMDAxMUI0RkEgLyogUGFzdGVib2FyZENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFz
dGVib2FyZENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQwREFBRUUy
NUQ5RjNCRjAwMTFCNEZBIC8qIFBhZ2VQYXN0ZWJvYXJkQ29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYWdlUGFzdGVib2FyZENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQyMEYwMDgyNUU0Nzc5MTAwOTI1MUVGIC8qIFBvaW50ZXJFdmVudFR5cGVOYW1lcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQb2ludGVyRXZlbnRUeXBlTmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMwMzczLDYgKzMwMzc1LDcgQEAKIAkJCQlFM0MwNDEzMjI1NENBNzExMDAyMUQw
RTYgLyogU3lzdGVtU291bmRNYW5hZ2VyLmNwcCAqLywKIAkJCQlFM0MwNDEyRDI1NENBMjlCMDAy
MUQwRTYgLyogU3lzdGVtU291bmRNYW5hZ2VyLmggKi8sCiAJCQkJN0NDNTY0QjYxOEJBQkVBNjAw
MUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9yLmggKi8sCisJCQkJRjQwQjhENTkyODEw
NzJCODAwMzQ2NDE3IC8qIFRleHRSZWNvZ25pdGlvbk9wdGlvbnMuaCAqLywKIAkJCQlGNDhCN0Q1
MjI1QzM0MUU2MDA5RTc1REQgLyogVGV4dFJlY29nbml0aW9uUmVzdWx0LmggKi8sCiAJCQkJQkNF
NjVEMzEwRUFEMTIxMTAwN0U0NTMzIC8qIFRoZW1lLmNwcCAqLywKIAkJCQlCQ0U2NThGRTBFQTky
NDhBMDA3RTQ1MzMgLyogVGhlbWUuaCAqLywKQEAgLTM3OTU3LDYgKzM3OTYwLDcgQEAKIAkJCQkx
QzE4REE1OTE4MUFGNkE1MDBDNEVGMjIgLyogVGV4dFBhaW50ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0QzkxQTBFMTgwMjM0MzEwMEExN0Y2RCAvKiBUZXh0UGFpbnRTdHlsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0UyMTIxNTgyNDBEQkVCOTAwNkVENDQzIC8qIFRleHRQbGFjZWhvbGRlckVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0MEI4RDVBMjgxMDcyQjgwMDM0NjQxNyAvKiBU
ZXh0UmVjb2duaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDhCN0Q1MzI1QzM0
MUU2MDA5RTc1REQgLyogVGV4dFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOThGNjA4MjQ1RTU5MDAxRTlBQkMgLyogVGV4dFJlc291cmNlRGVjb2Rlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgyNEI0NjUwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRSdW4uaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWElt
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKaW5kZXgg
MjYzYjc5NjkwYjk3MjkzNzAyNTc5Y2YwZDBlNzgyODBkMmZmZjdiNC4uNWFjYTgyMjMzMTc3MjJl
OTk1MDIxNDAzMjQyMWFjODIzNmNjMDFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYSW1hZ2UuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCisjaW5j
bHVkZSAiVGV4dFJlY29nbml0aW9uT3B0aW9ucy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGE5OGQxYjU5MGRjNzkyMTRjYTI5YWVm
MzNkNDlhNzI0ZjRmOWRmMWYuLjNjODBhZDkwMGY3YWU0NGE4MDlkYjMzZTIxZmU3MmVlZDFiOGFi
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTQxLDYgKzE0MSw3IEBAIHN0
cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogc3RydWN0IFNlY3VyaXR5
T3JpZ2luRGF0YTsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogc3RydWN0IFRleHRJ
bmRpY2F0b3JEYXRhOworc3RydWN0IFRleHRSZWNvZ25pdGlvbk9wdGlvbnM7CiBzdHJ1Y3QgVmll
d3BvcnRBcmd1bWVudHM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAKQEAgLTYwMCw3ICs2MDEs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihFbGVtZW50JiwgY29uc3QgU3RyaW5n
JiA9IHsgfSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVudD4mJik+JiYgY29t
cGxldGlvbiA9IHsgfSkKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihF
bGVtZW50JiwgVGV4dFJlY29nbml0aW9uT3B0aW9ucyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxFbGVtZW50PiYmKT4mJiBjb21wbGV0aW9uID0geyB9KQogICAgIHsKICAgICAgICAg
aWYgKGNvbXBsZXRpb24pCiAgICAgICAgICAgICBjb21wbGV0aW9uKHsgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjhlZWIxMjQzYjYzOTY3YzM5MzljZDRkNTJkM2Ew
OTdmZDJlOWViNy4uNjZmNGFkMmFlOTM5MzllYTkxYWJiYzc0OTAyZjBiNzI5MmQ2N2UyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTEzLDYgKzExMyw3IEBACiAjaW5j
bHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1
ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlRleHRSZWNvZ25pdGlvbk9wdGlvbnMuaCIK
ICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlVzZXJUeXBpbmdH
ZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCIK
QEAgLTM0OTIsNyArMzQ5Myw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp0ZXh0UmVjb2duaXRpb25I
b3ZlclRpbWVyRmlyZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoYXV0byogcGFnZSA9
IG1fZnJhbWUucGFnZSgpKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0
VGV4dFJlY29nbml0aW9uKCplbGVtZW50KTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkucmVxdWVzdFRleHRSZWNvZ25pdGlvbigqZWxlbWVudCwgeyB9KTsKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
SW1hZ2VBbmFseXNpc1F1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VBbmFseXNp
c1F1ZXVlLmNwcAppbmRleCBmZjg2OGVjNmIxZGZkY2I3ZDZhNDlmODA0ZjA3OWZkYjY4M2I1YTgw
Li44MDMzYjlkYjJhZjgxZmY0MTlmMjVjYTIxNTEzYWFhNGYyNzk5NTM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ltYWdlQW5hbHlzaXNRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9JbWFnZUFuYWx5c2lzUXVldWUuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiSW1hZ2VPdmVybGF5LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiVGV4dFJlY29nbml0aW9uT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExMiw3ICsxMTMsOCBA
QCB2b2lkIEltYWdlQW5hbHlzaXNRdWV1ZTo6cmVzdW1lUHJvY2Vzc2luZygpCiAKICAgICAgICAg
bV9wZW5kaW5nUmVxdWVzdENvdW50Kys7CiAgICAgICAgIG1fcGFnZS0+cmVzZXRUZXh0UmVjb2du
aXRpb25SZXN1bHQoKmVsZW1lbnQpOwotICAgICAgICBtX3BhZ2UtPmNocm9tZSgpLmNsaWVudCgp
LnJlcXVlc3RUZXh0UmVjb2duaXRpb24oKmVsZW1lbnQsIG1faWRlbnRpZmllciwgW3RoaXMsIHBh
Z2UgPSBtX3BhZ2VdIChhdXRvJiYpIHsKKyAgICAgICAgYXV0byBhbGxvd1NuYXBzaG90cyA9IG1f
aWRlbnRpZmllci5pc0VtcHR5KCkgPyBBbGxvd1NuYXBzaG90czo6WWVzIDogQWxsb3dTbmFwc2hv
dHM6Ok5vOworICAgICAgICBtX3BhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnJlcXVlc3RUZXh0UmVj
b2duaXRpb24oKmVsZW1lbnQsIHsgbV9pZGVudGlmaWVyLCBhbGxvd1NuYXBzaG90cyB9LCBbdGhp
cywgcGFnZSA9IG1fcGFnZV0gKGF1dG8mJikgewogICAgICAgICAgICAgaWYgKCFwYWdlIHx8IHBh
Z2UtPmltYWdlQW5hbHlzaXNRdWV1ZUlmRXhpc3RzKCkgIT0gdGhpcykKICAgICAgICAgICAgICAg
ICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHRSZWNv
Z25pdGlvbk9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHRSZWNvZ25pdGlv
bk9wdGlvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjRkNzk4N2RmZmQ5NzQ5ZTM4MzlmNTZiMTI3ODZhZWFk
NDJiZjM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dFJl
Y29nbml0aW9uT3B0aW9ucy5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSU1B
R0VfQU5BTFlTSVMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBBbGxvd1Nu
YXBzaG90cyA6IGJvb2wgeyBObywgWWVzIH07CisKK3N0cnVjdCBUZXh0UmVjb2duaXRpb25PcHRp
b25zIHsKKyAgICBTdHJpbmcgaWRlbnRpZmllcjsKKyAgICBBbGxvd1NuYXBzaG90cyBhbGxvd1Nu
YXBzaG90cyB7IEFsbG93U25hcHNob3RzOjpZZXMgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCBiNTIwMzA2M2UxNDZlMDc5MThlNzZjNjFkYzJjMDBhZDQx
NDQ1MzUwLi5kNzQyNTE4Yzk1OGI5YjdmOGVjOWVlZTVlNWY0YWNmOWUxZjFkMjBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yMTUsNiArMjE1LDcgQEAKICNpbmNsdWRl
ICJTeXN0ZW1Tb3VuZE1hbmFnZXIuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNs
dWRlICJUZXh0UGxhY2Vob2xkZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiVGV4dFJlY29nbml0aW9u
T3B0aW9ucy5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCIKICNpbmNsdWRl
ICJUcmVlU2NvcGUuaCIKICNpbmNsdWRlICJUeXBlQ29udmVyc2lvbnMuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKaW5kZXggMThkYTgzN2QxZDY3MjVkNmU4NDZlMWQyZjY5YTM2NjRjM2E1OWFjMy4u
OWQwYTEzNGNhMmUzM2ZmZWNlNWQzODU3ZGEyMDFiNjQwOWI0MTc3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1RleHRJbmRpY2F0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRSZWNvZ25pdGlvbk9w
dGlvbnMuaD4KIAogI2lmIEhBVkUoV0VCR1BVX0lNUExFTUVOVEFUSU9OKQogI2ltcG9ydCA8cGFs
L2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVUltcGwuaD4KQEAgLTE1MTQsOSArMTUxNSw5IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjaGFuZ2VVbml2ZXJzYWxBY2Nlc3Nab29tRm9jdXMoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgdmllCiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKEVsZW1lbnQmIGVs
ZW1lbnQsIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChS
ZWZQdHI8RWxlbWVudD4mJik+JiYgY29tcGxldGlvbikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpy
ZXF1ZXN0VGV4dFJlY29nbml0aW9uKEVsZW1lbnQmIGVsZW1lbnQsIFRleHRSZWNvZ25pdGlvbk9w
dGlvbnMmJiBvcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxFbGVtZW50PiYm
KT4mJiBjb21wbGV0aW9uKQogewotICAgIG1fcGFnZS5yZXF1ZXN0VGV4dFJlY29nbml0aW9uKGVs
ZW1lbnQsIGlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbikpOworICAgIG1fcGFnZS5yZXF1
ZXN0VGV4dFJlY29nbml0aW9uKGVsZW1lbnQsIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUoY29t
cGxldGlvbikpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBlNmZiYmFmODc2
NTA1Y2QzNGZmMDUzOGZiYmU5NzcwMGRjMmJiYmM2Li5hMGM0ZmJiZTNlZmU2MmI3NzZkMDA0OTZk
MTI3ZTNiNDk0ZGYwMzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNCw2ICszNCw3IEBAIGNs
YXNzIFJlZ2lzdHJhYmxlRG9tYWluOwogZW51bSBjbGFzcyBDb29raWVDb25zZW50RGVjaXNpb25S
ZXN1bHQgOiB1aW50OF90OwogZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24g
OiBib29sOwogZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCA6IGJvb2w7CitzdHJ1
Y3QgVGV4dFJlY29nbml0aW9uT3B0aW9uczsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00
MzUsNyArNDM2LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZ
U0lTKQotICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpFbGVtZW50Jiwg
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyID0geyB9LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
ZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYmKT4mJiA9IHsgfSkgZmluYWw7CisgICAgdm9pZCByZXF1
ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6OkVsZW1lbnQmLCBXZWJDb3JlOjpUZXh0UmVjb2du
aXRpb25PcHRpb25zJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6OkVs
ZW1lbnQ+JiYpPiYmID0geyB9KSBmaW5hbDsKICNlbmRpZgogCiAgICAgYm9vbCBuZWVkc0ltYWdl
T3ZlcmxheUNvbnRyb2xsZXJGb3JTZWxlY3Rpb25QYWludGluZygpIGNvbnN0IGZpbmFsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGYwZmM2ODA1
ZmRkN2Y4Yjk0OTMxOWZkMWYyZGY5YzY4NmRkOGYzYTcuLmM4MzRiYTFkYmNjMWQ0YzFiOWJmMzVm
YThlOGU5ZDE5MTViODFhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC0yNTYsNiArMjU2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZy
YW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRlRGF0YS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0UmVjb2du
aXRpb25PcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UcmFuc2xhdGlvbkNvbnRleHRNZW51
SW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgpAQCAtNzczMCw3ICs3NzMxLDcg
QEAgdm9pZCBXZWJQYWdlOjpyZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oTWVkaWFTZXNz
aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQog
Ci12b2lkIFdlYlBhZ2U6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24oRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxF
bGVtZW50PiYmKT4mJiBjb21wbGV0aW9uKQordm9pZCBXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29n
bml0aW9uKEVsZW1lbnQmIGVsZW1lbnQsIFRleHRSZWNvZ25pdGlvbk9wdGlvbnMmJiBvcHRpb25z
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxFbGVtZW50PiYmKT4mJiBjb21wbGV0aW9u
KQogewogICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+KGVsZW1lbnQpKSB7CiAgICAgICAgIGlmIChj
b21wbGV0aW9uKQpAQCAtNzc2Nyw3ICs3NzY4LDExIEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdFRl
eHRSZWNvZ25pdGlvbihFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIs
CiAgICAgfQogCiAgICAgYXV0byYgcmVuZGVySW1hZ2UgPSBkb3duY2FzdDxSZW5kZXJJbWFnZT4o
KnJlbmRlcmVyKTsKLSAgICBhdXRvIGJpdG1hcCA9IGNyZWF0ZVNoYXJlYWJsZUJpdG1hcChyZW5k
ZXJJbWFnZSwgeyBzdGQ6Om51bGxvcHQsIEFsbG93QW5pbWF0ZWRJbWFnZXM6Ok5vLCBVc2VTbmFw
c2hvdEZvclRyYW5zcGFyZW50SW1hZ2VzOjpZZXMgfSk7CisgICAgYXV0byBiaXRtYXAgPSBjcmVh
dGVTaGFyZWFibGVCaXRtYXAocmVuZGVySW1hZ2UsIHsKKyAgICAgICAgc3RkOjpudWxsb3B0LAor
ICAgICAgICBBbGxvd0FuaW1hdGVkSW1hZ2VzOjpObywKKyAgICAgICAgb3B0aW9ucy5hbGxvd1Nu
YXBzaG90cyA9PSBBbGxvd1NuYXBzaG90czo6WWVzID8gVXNlU25hcHNob3RGb3JUcmFuc3BhcmVu
dEltYWdlczo6WWVzIDogVXNlU25hcHNob3RGb3JUcmFuc3BhcmVudEltYWdlczo6Tm8KKyAgICB9
KTsKICAgICBpZiAoIWJpdG1hcCkgewogICAgICAgICBpZiAoY29tcGxldGlvbikKICAgICAgICAg
ICAgIGNvbXBsZXRpb24oeyB9KTsKQEAgLTc3ODksNyArNzc5NCw3IEBAIHZvaWQgV2ViUGFnZTo6
cmVxdWVzdFRleHRSZWNvZ25pdGlvbihFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIGlk
ZW50aWZpZXIsCiAKICAgICBhdXRvIGNhY2hlZEltYWdlID0gcmVuZGVySW1hZ2UuY2FjaGVkSW1h
Z2UoKTsKICAgICBhdXRvIGltYWdlVVJMID0gY2FjaGVkSW1hZ2UgPyBlbGVtZW50LmRvY3VtZW50
KCkuY29tcGxldGVVUkwoY2FjaGVkSW1hZ2UtPnVybCgpLnN0cmluZygpKSA6IFVSTCB7IH07Ci0g
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RUZXh0
UmVjb2duaXRpb24oV1RGTW92ZShpbWFnZVVSTCksIFdURk1vdmUoYml0bWFwSGFuZGxlKSwgaWRl
bnRpZmllciksIFt3ZWJQYWdlID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtFbGVtZW50ID0gV2Vh
a1B0ciB7IGVsZW1lbnQgfV0gKGF1dG8mJiByZXN1bHQpIHsKKyAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFRleHRSZWNvZ25pdGlvbihXVEZNb3Zl
KGltYWdlVVJMKSwgV1RGTW92ZShiaXRtYXBIYW5kbGUpLCBvcHRpb25zLmlkZW50aWZpZXIpLCBb
d2ViUGFnZSA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrRWxlbWVudCA9IFdlYWtQdHIgeyBlbGVt
ZW50IH1dIChhdXRvJiYgcmVzdWx0KSB7CiAgICAgICAgIFJlZlB0ciBwcm90ZWN0ZWRQYWdlIHsg
d2ViUGFnZS5nZXQoKSB9OwogICAgICAgICBpZiAoIXByb3RlY3RlZFBhZ2UpCiAgICAgICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggMGU4MmUxOTcxZmQxOTliYmZmYjc2YWU0YjE1YTMxYTBjMjBjYTgxNi4uNDM3MWZlNjg3NDhj
YTA5MzdhZmQzMDRlYWM0ZjYyZDZhMDIxYzZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjU2LDYgKzI1Niw3IEBAIHN0cnVjdCBQcm9taXNlZEF0
dGFjaG1lbnRJbmZvOwogc3RydWN0IFJlcXVlc3RTdG9yYWdlQWNjZXNzUmVzdWx0Owogc3RydWN0
IFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzOwogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKK3N0
cnVjdCBUZXh0UmVjb2duaXRpb25PcHRpb25zOwogc3RydWN0IFRleHRSZWNvZ25pdGlvblJlc3Vs
dDsKIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50czsKIApAQCAtMTQ1Miw3ICsxNDUzLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlck1lZGlhU3RhdGVGbGFncyk7CiAKICNpZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCi0gICAg
dm9pZCByZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6OkVsZW1lbnQmLCBjb25zdCBTdHJp
bmcmIGlkZW50aWZpZXIgPSB7IH0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNv
cmU6OkVsZW1lbnQ+JiYpPiYmID0geyB9KTsKKyAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRp
b24oV2ViQ29yZTo6RWxlbWVudCYsIFdlYkNvcmU6OlRleHRSZWNvZ25pdGlvbk9wdGlvbnMmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4mJik+JiYgPSB7
IH0pOwogICAgIHZvaWQgdXBkYXRlV2l0aFRleHRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBXZWJD
b3JlOjpUZXh0UmVjb2duaXRpb25SZXN1bHQmLCBjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4
dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdCk+JiYpOwogICAgIHZvaWQgc3RhcnRJ
bWFnZUFuYWx5c2lzKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcik7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3YjAyNTg0ZGIyY2Yz
ZTMzYTJlM2Q3ZmI0YmRkNjZjZTRiZDNlYzg3Li45NWNlODEwZmVlZTkzNGM0NDI3NzJkYTU1NjZm
YTEzODhjZWQ1YjQxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjItMDQtMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgZmFsbGluZyBiYWNrIHRvIHNuYXBz
aG90cyBmb3IgdHJhbnNwYXJlbnQgaW1hZ2VzIHdoZW4gdHJpZ2dlcmluZyBiYXRjaCB0ZXh0IHJl
Y29nbml0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzk1NTUKKyAgICAgICAgcmRhcjovLzkxNjIyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IHRvIGV4ZXJjaXNlIHRo
ZSBidWcsIGJ5IHRyaWdnZXJpbmcgYmF0Y2ggaW1hZ2UgYW5hbHlzaXMgb24gYW4gaW1hZ2Ugd2l0
aCBgb3BhY2l0eTogMDtgIHRoYXQKKyAgICAgICAgZmFkZXMgaW4gb24gYSB0aW1lci4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW1hZ2VBbmFs
eXNpc1Rlc3RzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q0dJbWFnZVBpeGVsUmVhZGVy
OjpDR0ltYWdlUGl4ZWxSZWFkZXIpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q0dJbWFnZVBp
eGVsUmVhZGVyOjppc1RyYW5zcGFyZW50QmxhY2sgY29uc3QpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6Q0dJbWFnZVBpeGVsUmVhZGVyOjphdCBjb25zdCk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpDR0ltYWdlUGl4ZWxSZWFkZXI6OndpZHRoIGNvbnN0KToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OkNHSW1hZ2VQaXhlbFJlYWRlcjo6aGVpZ2h0IGNvbnN0KToKKworICAgICAgICBBZGQg
YSBzaW1wbGUgaGVscGVyIGNsYXNzIHRvIHJlYWQgcGl4ZWwgdmFsdWVzIGF0IGEgZ2l2ZW4gbG9j
YXRpb24gaW4gYSBnaXZlbiBDR0ltYWdlOyB0aGlzIGhlbHBlciBjbGFzcyB3b3JrcworICAgICAg
ICBieSBmaXJzdCByZW5kZXJpbmcgdGhlIGdpdmVuIGltYWdlIGludG8gYSBwbGFpbiBTUkdCIGJp
dG1hcCBjb250ZXh0LCB3aGljaCB3ZSB0aGVuIHVzZSB0byByZWFkIGJhY2sgcGl4ZWwgZGF0YQor
ICAgICAgICBpbiBSR0JBIGZvcm1hdC4KKworICAgICAgICAoVGVzdFdlYktpdEFQSTo6cHJvY2Vz
c1JlcXVlc3RXaXRoRXJyb3IpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9mYWRlLWluLWltYWdlLmh0bWw6
IEFkZGVkLgorCiAyMDIyLTA0LTE5ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29t
PgogCiAgICAgICAgIFZhcmlvdXMgV2ViS2l0IHRvb2xzIG5lZWQgdG8gYmUgdG9sZCBhYm91dCB0
aGUgc3lzdGVtIGNvbnRlbnQgcGF0aApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZTE2ZTE0
YjIxOGRkZTViMjg4YzAyNmIxZjU1OTdiODBmNDc5YjZhLi5kNzVmYzE4MmZmZjI3OTdmNDg5NTQz
NjY3NDUyMTFiMWMyOTQzNjFkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAyNyw2ICsx
MDI3LDcgQEAKIAkJRjQwMzRGQTMyNzVENUFDNjAwM0E4MUY4IC8qIGNvb2tpZS1jb25zZW50LWJh
c2ljLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQwMzRGQTIyNzVENTQ0OTAwM0E4MUY4IC8qIGNvb2tpZS1jb25zZW50LWJhc2ljLmh0
bWwgKi87IH07CiAJCUY0MDdGRTM5MUYxRDBERkMwMDE3Q0YyNSAvKiBlbm9ybW91cy5zdmcgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwN0ZF
MzgxRjFEMERFNjAwMTdDRjI1IC8qIGVub3Jtb3VzLnN2ZyAqLzsgfTsKIAkJRjQwOTRDQzcyNTU0
NUJENTAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwOTRDQzYyNTU0NUJENTAwM0Q3M0UzIC8qIERp
c3BsYXlMaXN0VGVzdHMuY3BwICovOyB9OworCQlGNDBCOEQ1RTI4MTA4NkU1MDAzNDY0MTcgLyog
ZmFkZS1pbi1pbWFnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0MEI4RDVEMjgxMDg1NTkwMDM0NjQxNyAvKiBmYWRlLWluLWltYWdl
Lmh0bWwgKi87IH07CiAJCUY0MTUwODZEMURBMDQwQzUwMDQ0QkU5QiAvKiBwbGF5LWF1ZGlvLW9u
LWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQxNTA4NkMxREEwNDBDMTAwNDRCRTlCIC8qIHBsYXktYXVkaW8tb24tY2xpY2su
aHRtbCAqLzsgfTsKIAkJRjQxOEJFMTUxRjcxQjdEQzAwMTk3MEU2IC8qIFJvdW5kZWRSZWN0VGVz
dHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQx
OEJFMTQxRjcxQjdEQzAwMTk3MEU2IC8qIFJvdW5kZWRSZWN0VGVzdHMuY3BwICovOyB9OwogCQlG
NDE5NEFEMTFGNUEzMjAxMDBBREQ4M0YgLyogZHJvcC10YXJnZXRzLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxOTRBRDAxRjVBMkVB
NTAwQUREODNGIC8qIGRyb3AtdGFyZ2V0cy5odG1sICovOyB9OwpAQCAtMTM1OSw2ICsxMzYwLDcg
QEAKIAkJCQlDNUUxQUZGRTE2QjIyMUYxMDA2Q0MxRjIgLyogZXhlY0NvcHkuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQk3MjgzQTlEMjIyRkIxRTA2MDBCMjFDN0QgLyogZXhpZi1vcmll
bnRhdGlvbi04LWxsby5qcGcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0RBMjlCMkIyMEZE
MzU4NDAwRjE1Q0VEIC8qIEV4aXRGdWxsc2NyZWVuT25FbnRlclBpUC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAorCQkJCUY0MEI4RDVFMjgxMDg2RTUwMDM0NjQxNyAvKiBmYWRlLWluLWltYWdl
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTM1OEMzM0MyNzNFRDA3QjAwRjNCMzhD
IC8qIGZpbGUtc3lzdGVtLWFjY2Vzcy5zYWx0IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0
MUFCOUEzMUVGNDY5NkIwMDgzRkEwOCAvKiBmaWxlLXVwbG9hZGluZy5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCUJDMkQwMDY0MTJBQTA0Q0UwMEU3MzJBMyAvKiBmaWxlLXdpdGgtYW5j
aG9yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0zMDMzLDYgKzMwMzUsNyBAQAogCQlG
NDAzNEZBMjI3NUQ1NDQ5MDAzQTgxRjggLyogY29va2llLWNvbnNlbnQtYmFzaWMuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJjb29raWUtY29uc2VudC1iYXNpYy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQwN0ZFMzgxRjFEMERFNjAwMTdDRjI1IC8qIGVub3Jtb3VzLnN2ZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBl
bm9ybW91cy5zdmc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MDk0Q0M2MjU1NDVC
RDUwMDNENzNFMyAvKiBEaXNwbGF5TGlzdFRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERp
c3BsYXlMaXN0VGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDBCOEQ1
RDI4MTA4NTU5MDAzNDY0MTcgLyogZmFkZS1pbi1pbWFnZS5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImZhZGUt
aW4taW1hZ2UuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MTA2QzY4MjFB
Q0JGODQwMDRCODlBMSAvKiBXS1dlYlZpZXdGaXJzdFJlc3BvbmRlclRlc3RzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tXZWJWaWV3Rmlyc3RSZXNwb25kZXJUZXN0cy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQxNTA4NkMxREEwNDBDMTAwNDRCRTlCIC8qIHBsYXktYXVk
aW8tb24tY2xpY2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJwbGF5LWF1ZGlv
LW9uLWNsaWNrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDE4QkUxNDFG
NzFCN0RDMDAxOTcwRTYgLyogUm91bmRlZFJlY3RUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSb3VuZGVkUmVjdFRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQx
NzIsNiArNDE3NSw3IEBACiAJCQkJRjQwN0ZFMzgxRjFEMERFNjAwMTdDRjI1IC8qIGVub3Jtb3Vz
LnN2ZyAqLywKIAkJCQk3MjgzQTlEMTIyRkIxRDk3MDBCMjFDN0QgLyogZXhpZi1vcmllbnRhdGlv
bi04LWxsby5qcGcgKi8sCiAJCQkJQ0RBMjlCMkEyMEZEMzQ0RTAwRjE1Q0VEIC8qIEV4aXRGdWxs
c2NyZWVuT25FbnRlclBpUC5odG1sICovLAorCQkJCUY0MEI4RDVEMjgxMDg1NTkwMDM0NjQxNyAv
KiBmYWRlLWluLWltYWdlLmh0bWwgKi8sCiAJCQkJOTM1OEMzM0IyNzNFRDA2QTAwRjNCMzhDIC8q
IGZpbGUtc3lzdGVtLWFjY2Vzcy5zYWx0ICovLAogCQkJCUY0MUFCOTlCMUVGNDY5MkMwMDgzRkEw
OCAvKiBmaWxlLXVwbG9hZGluZy5odG1sICovLAogCQkJCTQ5RDJFNUMxMjczMUUzNzQwMEJDQ0FF
RCAvKiBmaWxlLXdpdGgtaWZyYW1lLmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ltYWdlQW5hbHlzaXNUZXN0cy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW1hZ2VBbmFseXNpc1Rlc3RzLm1tCmluZGV4
IDQ1YjU5MzdkMDhjNmI1NTZhNGIwZmFkMmRkMzgzMzdhNzMzNWRkNzcuLjE2ZGMzZTIxMDU5Y2I1
Yzk4YTFiZDg3ZTZhMmE2NmZhMzc1YjU5NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvSW1hZ2VBbmFseXNpc1Rlc3RzLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW1hZ2VBbmFseXNpc1Rlc3RzLm1tCkBAIC0z
Niw2ICszNiw3IEBACiAjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJVSUtpdFNQ
SS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorI2ltcG9ydCA8
V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdQcml2YXRlLmg+CkBAIC0xMDMsNiArMTA0LDQzIEBAIEBlbmQKIAogbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogCitjbGFzcyBDR0ltYWdlUGl4ZWxSZWFkZXIgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOyBXVEZfTUFLRV9OT05DT1BZQUJMRShDR0ltYWdlUGl4ZWxSZWFk
ZXIpOworcHVibGljOgorICAgIENHSW1hZ2VQaXhlbFJlYWRlcihDR0ltYWdlUmVmIGltYWdlKQor
ICAgICAgICA6IG1fd2lkdGgoQ0dJbWFnZUdldFdpZHRoKGltYWdlKSkKKyAgICAgICAgLCBtX2hl
aWdodChDR0ltYWdlR2V0SGVpZ2h0KGltYWdlKSkKKyAgICB7CisgICAgICAgIGF1dG8gY29sb3JT
cGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkpOworICAgICAgICBh
dXRvIGJ5dGVzUGVyUGl4ZWwgPSA0OworICAgICAgICBhdXRvIGJ5dGVzUGVyUm93ID0gYnl0ZXNQ
ZXJQaXhlbCAqIENHSW1hZ2VHZXRXaWR0aChpbWFnZSk7CisgICAgICAgIGF1dG8gYml0c1BlckNv
bXBvbmVudCA9IDg7CisgICAgICAgIGF1dG8gYml0bWFwSW5mbyA9IGtDR0ltYWdlQWxwaGFQcmVt
dWx0aXBsaWVkTGFzdCB8IGtDR0ltYWdlQnl0ZU9yZGVyMzJCaWc7CisgICAgICAgIG1fY29udGV4
dCA9IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlV2l0aERhdGEobnVsbHB0ciwgbV93aWR0
aCwgbV9oZWlnaHQsIGJpdHNQZXJDb21wb25lbnQsIGJ5dGVzUGVyUm93LCBjb2xvclNwYWNlLmdl
dCgpLCBiaXRtYXBJbmZvLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgICAgIENHQ29udGV4dERy
YXdJbWFnZShtX2NvbnRleHQuZ2V0KCksIENHUmVjdE1ha2UoMCwgMCwgbV93aWR0aCwgbV9oZWln
aHQpLCBpbWFnZSk7CisgICAgfQorCisgICAgYm9vbCBpc1RyYW5zcGFyZW50QmxhY2sodW5zaWdu
ZWQgeCwgdW5zaWduZWQgeSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBhdCh4LCB5KSA9
PSBXZWJDb3JlOjpDb2xvcjo6dHJhbnNwYXJlbnRCbGFjazsKKyAgICB9CisKKyAgICBXZWJDb3Jl
OjpDb2xvciBhdCh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KSBjb25zdAorICAgIHsKKyAgICAgICAg
YXV0byogZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KENHQml0bWFwQ29udGV4dEdl
dERhdGEobV9jb250ZXh0LmdldCgpKSk7CisgICAgICAgIGF1dG8gb2Zmc2V0ID0gNCAqICh3aWR0
aCgpICogeSArIHgpOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6bWFrZUZyb21Db21wb25lbnRz
Q2xhbXBpbmdFeGNlcHRBbHBoYTxXZWJDb3JlOjpTUkdCQTx1aW50OF90Pj4oZGF0YVtvZmZzZXRd
LCBkYXRhW29mZnNldCArIDFdLCBkYXRhW29mZnNldCArIDJdLCBkYXRhW29mZnNldCArIDNdKTsK
KyAgICB9CisKKyAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0K
KyAgICB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQorCitwcml2
YXRlOgorICAgIHVuc2lnbmVkIG1fd2lkdGggeyAwIH07CisgICAgdW5zaWduZWQgbV9oZWlnaHQg
eyAwIH07CisgICAgUmV0YWluUHRyPENHQ29udGV4dFJlZj4gbV9jb250ZXh0OworfTsKKwogc3Rh
dGljIFZlY3RvcjxSZXRhaW5QdHI8VktJbWFnZUFuYWx5emVyUmVxdWVzdD4+JiBwcm9jZXNzZWRS
ZXF1ZXN0cygpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIHJlcXVlc3RzID0gVmVjdG9y
PFJldGFpblB0cjxWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0Pj4geyB9OwpAQCAtMTIwLDYgKzE1OCwx
MyBAQCBzdGF0aWMgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IGNyZWF0ZVdlYlZpZXdXaXRoVGV4
dFJlY29nbml0aW9uRW5oYW5jZW1lbnRzKCkKICAgICByZXR1cm4gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiB9CiAKK3N0YXRpYyB2b2lkIHByb2Nl
c3NSZXF1ZXN0V2l0aEVycm9yKGlkLCBTRUwsIFZLSW1hZ2VBbmFseXplclJlcXVlc3QgKnJlcXVl
c3QsIHZvaWQgKF4pKGRvdWJsZSBwcm9ncmVzcyksIHZvaWQgKF5jb21wbGV0aW9uKShWS0ltYWdl
QW5hbHlzaXMgKmFuYWx5c2lzLCBOU0Vycm9yICplcnJvcikpCit7CisgICAgZ0RpZFByb2Nlc3NS
ZXF1ZXN0Q291bnQrKzsKKyAgICBwcm9jZXNzZWRSZXF1ZXN0cygpLmFwcGVuZCh7IHJlcXVlc3Qg
fSk7CisgICAgY29tcGxldGlvbihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpOU0NvY29h
RXJyb3JEb21haW4gY29kZToxIHVzZXJJbmZvOm5pbF0pOworfQorCiBzdGF0aWMgdm9pZCBwcm9j
ZXNzUmVxdWVzdFdpdGhSZXN1bHRzKGlkLCBTRUwsIFZLSW1hZ2VBbmFseXplclJlcXVlc3QgKnJl
cXVlc3QsIHZvaWQgKF4pKGRvdWJsZSBwcm9ncmVzcyksIHZvaWQgKF5jb21wbGV0aW9uKShWS0lt
YWdlQW5hbHlzaXMgKiwgTlNFcnJvciAqKSkKIHsKICAgICBnRGlkUHJvY2Vzc1JlcXVlc3RDb3Vu
dCsrOwpAQCAtMTQzLDEzICsxODgsNiBAQCBzdGQ6OnBhaXI8c3RkOjp1bmlxdWVfcHRyPEluc3Rh
bmNlTWV0aG9kU3dpenpsZXI+LCBzdGQ6OnVuaXF1ZV9wdHI8SW5zdGFuY2VNZXRobwogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKIAotc3RhdGljIHZvaWQgcHJvY2Vzc1JlcXVlc3RXaXRoRXJy
b3IoaWQsIFNFTCwgVktJbWFnZUFuYWx5emVyUmVxdWVzdCAqcmVxdWVzdCwgdm9pZCAoXikoZG91
YmxlIHByb2dyZXNzKSwgdm9pZCAoXmNvbXBsZXRpb24pKFZLSW1hZ2VBbmFseXNpcyAqYW5hbHlz
aXMsIE5TRXJyb3IgKmVycm9yKSkKLXsKLSAgICBnRGlkUHJvY2Vzc1JlcXVlc3RDb3VudCsrOwot
ICAgIHByb2Nlc3NlZFJlcXVlc3RzKCkuYXBwZW5kKHsgcmVxdWVzdCB9KTsKLSAgICBjb21wbGV0
aW9uKG5pbCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5TQ29jb2FFcnJvckRvbWFpbiBjb2Rl
OjEgdXNlckluZm86bmlsXSk7Ci19Ci0KIFRFU1QoSW1hZ2VBbmFseXNpc1Rlc3RzLCBEb05vdEFu
YWx5emVJbWFnZXNJbkVkaXRhYmxlQ29udGVudCkKIHsKICAgICBhdXRvIHJlcXVlc3RTd2l6emxl
ciA9IG1ha2VJbWFnZUFuYWx5c2lzUmVxdWVzdFN3aXp6bGVyKHByb2Nlc3NSZXF1ZXN0V2l0aEVy
cm9yKTsKQEAgLTI2Niw2ICszMDQsMjIgQEAgVEVTVChJbWFnZUFuYWx5c2lzVGVzdHMsIEltYWdl
QW5hbHlzaXNQcmlvcml0aXplc1Zpc2libGVJbWFnZXMpCiAgICAgRVhQRUNUX0VRKDQ1MFUsIENH
SW1hZ2VHZXRIZWlnaHQobGFzdFJlcXVlc3RlZEltYWdlKSk7CiB9CiAKK1RFU1QoSW1hZ2VBbmFs
eXNpc1Rlc3RzLCBJbWFnZUFuYWx5c2lzV2l0aFRyYW5zcGFyZW50SW1hZ2VzKQoreworICAgIGF1
dG8gcmVxdWVzdFN3aXp6bGVyID0gbWFrZUltYWdlQW5hbHlzaXNSZXF1ZXN0U3dpenpsZXIocHJv
Y2Vzc1JlcXVlc3RXaXRoRXJyb3IpOworICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0ZVdlYlZpZXdX
aXRoVGV4dFJlY29nbml0aW9uRW5oYW5jZW1lbnRzKCk7CisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiZmFkZS1pbi1pbWFnZSJdOworICAgIFt3ZWJWaWV3IF9z
dGFydEltYWdlQW5hbHlzaXM6bmlsXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9ySW1hZ2VBbmFseXNp
c1JlcXVlc3RzOjFdOworCisgICAgQ0dJbWFnZVBpeGVsUmVhZGVyIHJlYWRlciB7IFtwcm9jZXNz
ZWRSZXF1ZXN0cygpLmZpcnN0KCkgaW1hZ2VdIH07CisgICAgRVhQRUNUX1RSVUUocmVhZGVyLmlz
VHJhbnNwYXJlbnRCbGFjaygxLCAxKSk7CisgICAgRVhQRUNUX1RSVUUocmVhZGVyLmlzVHJhbnNw
YXJlbnRCbGFjayhyZWFkZXIud2lkdGgoKSAtIDEsIDEpKTsKKyAgICBFWFBFQ1RfVFJVRShyZWFk
ZXIuaXNUcmFuc3BhcmVudEJsYWNrKHJlYWRlci53aWR0aCgpIC0gMSwgcmVhZGVyLmhlaWdodCgp
IC0gMSkpOworICAgIEVYUEVDVF9UUlVFKHJlYWRlci5pc1RyYW5zcGFyZW50QmxhY2soMSwgcmVh
ZGVyLmhlaWdodCgpIC0gMSkpOworICAgIEVYUEVDVF9GQUxTRShyZWFkZXIuaXNUcmFuc3BhcmVu
dEJsYWNrKHJlYWRlci53aWR0aCgpIC8gMiwgcmVhZGVyLmhlaWdodCgpIC8gMikpOworfQorCiAj
aWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykgJiYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIAogVEVTVChJbWFnZUFuYWx5c2lzVGVzdHMsIE1lbnVDb250cm9sbGVySXRlbXMpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2ZhZGUtaW4t
aW1hZ2UuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvZmFkZS1p
bi1pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyNTA3OGU1ZWJmY2ZjMGRhZTgxZjllNTc3MDM0ZWUx
MTRlZGVmNzAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL2ZhZGUtaW4taW1hZ2UuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxoZWFkPgorPHN0eWxlPgorYm9keSwgaHRtbCB7
CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAxMDAlOworICAgIG1hcmdpbjogMDsKK30K
KworaW1nIHsKKyAgICBvcGFjaXR5OiAwOworICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMXMgZWFz
ZS1pbi1vdXQ7Cit9CisKK2RpdiwgaW1nIHsKKyAgICB3aWR0aDogMjE1cHg7CisgICAgaGVpZ2h0
OiAxNzRweDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6
IDA7Cit9CisKK2RpdiB7CisgICAgYmFja2dyb3VuZDogcmVkOworfQorPC9zdHlsZT4KKzxzY3Jp
cHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIHNldFRpbWVvdXQoKCkg
PT4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIikuc3R5bGUub3BhY2l0eSA9IDEsIDUwMCk7
Cit9KTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PjwvZGl2PgorPGltZyBzcmM9
Imljb24ucG5nIj48L2ltZz4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458019</attachid>
            <date>2022-04-20 16:06:27 -0700</date>
            <delta_ts>2022-04-20 18:52:19 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-239555-20220420160627.patch</filename>
            <type>text/plain</type>
            <size>30929</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGU0MjlkMDNjNjg2MjE2
OTEwMWY3ODgxNGM4MTNjZjBlYWZkZGI5OC4uZWYxNmIxMTg0YWIxZjFlMjE2NzA5MGQxYTE1Yzk0
NmIyNTE3MDk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIyLTA0LTIwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIGZhbGxp
bmcgYmFjayB0byBzbmFwc2hvdHMgZm9yIHRyYW5zcGFyZW50IGltYWdlcyB3aGVuIHRyaWdnZXJp
bmcgYmF0Y2ggdGV4dCByZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NTU1CisgICAgICAgIHJkYXI6Ly85MTYyMjE1MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFkaXR5YSBLZWVydGhpLgorCisgICAgICAgIEZvciBub3JtYWwgTGl2
ZSBUZXh0LCBvdXIgZXhpc3RpbmcgaGV1cmlzdGljcyBmYWxsIGJhY2sgdG8gYW5hbHl6aW5nIGEg
c25hcHNob3QgcmF0aGVyIHRoYW4gdGhlIGltYWdlIGRhdGEKKyAgICAgICAgaXRzZWxmIGZvciB0
cmFuc3BhcmVudCBpbWFnZSBlbGVtZW50cyAoZS5nLiBvbiBUd2l0dGVyKS4gSG93ZXZlciwgd2hl
biBpbnN0YWxsaW5nIGJsb2NrLXN0eWxlIGltYWdlIG92ZXJsYXkKKyAgICAgICAgY29udGVudCB1
c2luZyBgSW1hZ2VBbmFseXNpc1F1ZXVlYCwgaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHVzZSB0
aGlzIGNvbXBhdGliaWxpdHkgaGFjaywgc2luY2UgdGhpcyBmbGF2b3Igb2YKKyAgICAgICAgaW1h
Z2Ugb3ZlcmxheSBjb250ZW50IGlzIGRpcmVjdGx5IHZpc2libGUgdG8gdGhlIHVzZXIsIGFuZCB3
b3VsZCBzdGlsbCBzaG93IHVwIHVuZGVybmVhdGggZnVsbHkgdHJhbnNwYXJlbnQKKyAgICAgICAg
aW1hZ2UgZWxlbWVudHMsIGFzIGxvbmcgYXMgd2UncmUgYWJsZSB0byBhbmFseXplIHRoZSBvdGhl
ciAobm9uLWZ1bGx5LXRyYW5zcGFyZW50KSBpbWFnZSBlbGVtZW50IHVuZGVybmVhdGguCisKKyAg
ICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisKKyAgICAgICAgUGx1bWIgdGhlIG5ldyBgVGV4dFJl
Y29nbml0aW9uT3B0aW9uc2Agc3RydWN0IHRocm91Z2ggdGhpcyBjbGllbnQgbWV0aG9kLgorCisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6dGV4dFJlY29nbml0aW9uSG92ZXJUaW1lckZpcmVkKToKKyAgICAgICAgKiBwYWdl
L0ltYWdlQW5hbHlzaXNRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUFuYWx5c2lz
UXVldWU6OnJlc3VtZVByb2Nlc3NpbmcpOgorCisgICAgICAgIFVzZSB0aGUgcHJlc2VuY2Ugb2Yg
YW4gaWRlbnRpZmllciBhcyBhIGN1ZSB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3Qgd2Ugc2hv
dWxkIG9wdCBpbnRvIHRoZSBzbmFwc2hvdHRpbmcKKyAgICAgICAgZmFsbGJhY2sgYmVoYXZpb3Is
IGZvciB0aGUgdGltZSBiZWluZy4gSSBhbHNvIGNvbnNpZGVyZWQganVzdCBrZXlpbmcgdGhpcyBi
ZWhhdmlvciBvZmYgb2YgdGhlIGBpZGVudGlmaWVyYCBpbgorICAgICAgICBgV2ViUGFnZTo6cmVx
dWVzdFRleHRSZWNvZ25pdGlvbmAsIGJ1dCBjaG9zZSB0aGlzIGFwcHJvYWNoIGJlY2F1c2UgaXQg
c2VlbXMgZnJhZ2lsZSB0byBjb3VwbGUgdGhvc2UgdHdvCisgICAgICAgIGJlaGF2aW9ycy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL1RleHRSZWNvZ25pdGlvbk9wdGlvbnMuaDogQWRkZWQuCisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorCiAyMDIyLTA0LTE5ICBUaW0gTmd1eWVuICA8
bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgU1ZHcyBhZGRlZCBieSByMjkzMDM4
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGFjMWY2ZGRiMDZmOWU3YmI5M2Y2OGMwMzZhZTY0ZDE4ZGY3OGZlZGQuLmFl
OGY4YmQyYWUzNWY1ZjIwODViYTMzZDhlOTI4YTJhNDE2NDMxYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMjItMDQtMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CisKKyAgICAgICAgQXZvaWQgZmFsbGluZyBiYWNrIHRvIHNuYXBzaG90cyBmb3IgdHJhbnNw
YXJlbnQgaW1hZ2VzIHdoZW4gdHJpZ2dlcmluZyBiYXRjaCB0ZXh0IHJlY29nbml0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk1NTUKKyAgICAg
ICAgcmRhcjovLzkxNjIyMTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRpdHlhIEtlZXJ0aGku
CisKKyAgICAgICAgUmVmYWN0b3IgYHJlcXVlc3RUZXh0UmVjb2duaXRpb24oKWAgdG8gdGFrZSBp
biBgVGV4dFJlY29nbml0aW9uT3B0aW9uc2AuCisgICAgICAgIFNlZSBXZWJDb3JlL0NoYW5nZUxv
ZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnJlcXVlc3RUZXh0UmVjb2duaXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKToKKwogMjAyMi0wNC0xOSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIElubGluZSBFbGVtZW50
OjpzaGFkb3dSb290KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDgwYmJlYThlNzIzNGYwNTVlZmQ2
ZTM0MDA3NTBiMzdmMzMxNzhjYWUuLmY4YmE5OTU3OWU2NTczNzAxMGNkNDc3NGIzZTQ5YzM0ZGI5
MTNjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTM1NSw2ICsxMzU1LDcgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1N1ZGRlblRlcm1pbmF0
aW9uLmgKICAgICBwbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCiAgICAgcGxhdGZvcm0vU3lzdGVt
U291bmREZWxlZ2F0ZS5oCisgICAgcGxhdGZvcm0vVGV4dFJlY29nbml0aW9uT3B0aW9ucy5oCiAg
ICAgcGxhdGZvcm0vVGhlbWVUeXBlcy5oCiAgICAgcGxhdGZvcm0vVGhyZWFkQ2hlY2suaAogICAg
IHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMyOTEzMGViYzc2N2U1NzgzOTk5Zjdk
MDY4N2IxZjExMjJlZDkyYjYuLjk4ZDhlZWEyYWZkODVkMTU4NjA2NmZiM2M3MDkyYjc2M2I1ZTcy
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTU1MzUsNiArNTUzNSw3IEBACiAJCUY0MDM0RkFDMjc1RUFENkUwMDNBODFGOCAv
KiBSZXF1ZXN0Q29va2llQ29uc2VudE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MDM0RjhGMjc1QzE2ODYwMDNBODFGOCAvKiBSZXF1ZXN0
Q29va2llQ29uc2VudE9wdGlvbnMuaCAqLzsgfTsKIAkJRjQwMzRGQUUyNzVFQUQ3NjAwM0E4MUY4
IC8qIE5hdmlnYXRvckNvb2tpZUNvbnNlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0MDM0RjhEMjc1QzA4N0IwMDNBODFGOCAvKiBOYXZpZ2F0b3JD
b29raWVDb25zZW50LmggKi87IH07CiAJCUY0MDNFNzg3MjM2M0I1OEMwMDA0NDU1MCAvKiBFbnRl
cktleUhpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0MDNFNzg1MjM2M0I1OEMwMDA0NDU1MCAvKiBFbnRlcktleUhpbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNDBCOEQ1QTI4MTA3MkI4MDAz
NDY0MTcgLyogVGV4dFJlY29nbml0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwQjhENTkyODEwNzJCODAwMzQ2NDE3IC8qIFRleHRS
ZWNvZ25pdGlvbk9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlGNDBEQUFFQzI1RDlGMjVFMDAxMUI0RkEgLyogUGFzdGVib2FyZENvbnRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MERB
QUVCMjVEOUYyNUUwMDExQjRGQSAvKiBQYXN0ZWJvYXJkQ29udGV4dC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0MERBQUVGMjVEOUYzQkYwMDEx
QjRGQSAvKiBQYWdlUGFzdGVib2FyZENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MERBQUVFMjVEOUYzQkYwMDExQjRGQSAvKiBQYWdlUGFz
dGVib2FyZENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlGNDIwRjAwQTI1RTQ3NzkxMDA5MjUxRUYgLyogUG9pbnRlckV2ZW50VHlwZU5h
bWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDIw
RjAwODI1RTQ3NzkxMDA5MjUxRUYgLyogUG9pbnRlckV2ZW50VHlwZU5hbWVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE3ODY4LDYgKzE3ODY5
LDcgQEAKIAkJRjQwMzRGOUMyNzVDNDc4MzAwM0E4MUY4IC8qIENvb2tpZUNvbnNlbnREZWNpc2lv
blJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDb29raWVDb25zZW50RGVjaXNpb25SZXN1bHQuaDsg
cGF0aCA9ICJjb29raWUtY29uc2VudC9Db29raWVDb25zZW50RGVjaXNpb25SZXN1bHQuaCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MDNFNzg1MjM2M0I1OEMwMDA0NDU1MCAvKiBF
bnRlcktleUhpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW50ZXJLZXlIaW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0MDNFNzg2MjM2M0I1OEMwMDA0NDU1MCAvKiBFbnRlcktleUhp
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW50ZXJLZXlIaW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjQwQjhENTkyODEwNzJCODAwMzQ2NDE3IC8qIFRleHRSZWNvZ25p
dGlvbk9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJlY29n
bml0aW9uT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDBEQUFFQjI1
RDlGMjVFMDAxMUI0RkEgLyogUGFzdGVib2FyZENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFz
dGVib2FyZENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQwREFBRUUy
NUQ5RjNCRjAwMTFCNEZBIC8qIFBhZ2VQYXN0ZWJvYXJkQ29udGV4dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYWdlUGFzdGVib2FyZENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQyMEYwMDgyNUU0Nzc5MTAwOTI1MUVGIC8qIFBvaW50ZXJFdmVudFR5cGVOYW1lcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQb2ludGVyRXZlbnRUeXBlTmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMwMzczLDYgKzMwMzc1LDcgQEAKIAkJCQlFM0MwNDEzMjI1NENBNzExMDAyMUQw
RTYgLyogU3lzdGVtU291bmRNYW5hZ2VyLmNwcCAqLywKIAkJCQlFM0MwNDEyRDI1NENBMjlCMDAy
MUQwRTYgLyogU3lzdGVtU291bmRNYW5hZ2VyLmggKi8sCiAJCQkJN0NDNTY0QjYxOEJBQkVBNjAw
MUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9yLmggKi8sCisJCQkJRjQwQjhENTkyODEw
NzJCODAwMzQ2NDE3IC8qIFRleHRSZWNvZ25pdGlvbk9wdGlvbnMuaCAqLywKIAkJCQlGNDhCN0Q1
MjI1QzM0MUU2MDA5RTc1REQgLyogVGV4dFJlY29nbml0aW9uUmVzdWx0LmggKi8sCiAJCQkJQkNF
NjVEMzEwRUFEMTIxMTAwN0U0NTMzIC8qIFRoZW1lLmNwcCAqLywKIAkJCQlCQ0U2NThGRTBFQTky
NDhBMDA3RTQ1MzMgLyogVGhlbWUuaCAqLywKQEAgLTM3OTU3LDYgKzM3OTYwLDcgQEAKIAkJCQkx
QzE4REE1OTE4MUFGNkE1MDBDNEVGMjIgLyogVGV4dFBhaW50ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0QzkxQTBFMTgwMjM0MzEwMEExN0Y2RCAvKiBUZXh0UGFpbnRTdHlsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0UyMTIxNTgyNDBEQkVCOTAwNkVENDQzIC8qIFRleHRQbGFjZWhvbGRlckVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0MEI4RDVBMjgxMDcyQjgwMDM0NjQxNyAvKiBU
ZXh0UmVjb2duaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDhCN0Q1MzI1QzM0
MUU2MDA5RTc1REQgLyogVGV4dFJlY29nbml0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOThGNjA4MjQ1RTU5MDAxRTlBQkMgLyogVGV4dFJlc291cmNlRGVjb2Rlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgyNEI0NjUwRTJFRjJFQTAwODFBN0I3IC8qIFRleHRSdW4uaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWElt
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKaW5kZXgg
MjYzYjc5NjkwYjk3MjkzNzAyNTc5Y2YwZDBlNzgyODBkMmZmZjdiNC4uNWFjYTgyMjMzMTc3MjJl
OTk1MDIxNDAzMjQyMWFjODIzNmNjMDFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYSW1hZ2UuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJbmxpbmVzLmgiCisjaW5j
bHVkZSAiVGV4dFJlY29nbml0aW9uT3B0aW9ucy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGE5OGQxYjU5MGRjNzkyMTRjYTI5YWVm
MzNkNDlhNzI0ZjRmOWRmMWYuLjNjODBhZDkwMGY3YWU0NGE4MDlkYjMzZTIxZmU3MmVlZDFiOGFi
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTQxLDYgKzE0MSw3IEBAIHN0
cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogc3RydWN0IFNlY3VyaXR5
T3JpZ2luRGF0YTsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogc3RydWN0IFRleHRJ
bmRpY2F0b3JEYXRhOworc3RydWN0IFRleHRSZWNvZ25pdGlvbk9wdGlvbnM7CiBzdHJ1Y3QgVmll
d3BvcnRBcmd1bWVudHM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAKQEAgLTYwMCw3ICs2MDEs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKLSAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihFbGVtZW50JiwgY29uc3QgU3RyaW5n
JiA9IHsgfSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVudD4mJik+JiYgY29t
cGxldGlvbiA9IHsgfSkKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihF
bGVtZW50JiwgVGV4dFJlY29nbml0aW9uT3B0aW9ucyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxFbGVtZW50PiYmKT4mJiBjb21wbGV0aW9uID0geyB9KQogICAgIHsKICAgICAgICAg
aWYgKGNvbXBsZXRpb24pCiAgICAgICAgICAgICBjb21wbGV0aW9uKHsgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjhlZWIxMjQzYjYzOTY3YzM5MzljZDRkNTJkM2Ew
OTdmZDJlOWViNy4uNjZmNGFkMmFlOTM5MzllYTkxYWJiYzc0OTAyZjBiNzI5MmQ2N2UyMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTEzLDYgKzExMyw3IEBACiAjaW5j
bHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1
ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlRleHRSZWNvZ25pdGlvbk9wdGlvbnMuaCIK
ICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlVzZXJUeXBpbmdH
ZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCIK
QEAgLTM0OTIsNyArMzQ5Myw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp0ZXh0UmVjb2duaXRpb25I
b3ZlclRpbWVyRmlyZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoYXV0byogcGFnZSA9
IG1fZnJhbWUucGFnZSgpKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZXF1ZXN0
VGV4dFJlY29nbml0aW9uKCplbGVtZW50KTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkucmVxdWVzdFRleHRSZWNvZ25pdGlvbigqZWxlbWVudCwgeyB9KTsKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShJTUFHRV9BTkFMWVNJUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
SW1hZ2VBbmFseXNpc1F1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VBbmFseXNp
c1F1ZXVlLmNwcAppbmRleCBmZjg2OGVjNmIxZGZkY2I3ZDZhNDlmODA0ZjA3OWZkYjY4M2I1YTgw
Li45ZDRkZDZmNDliMWExOTkzZDlhZDhmYjkxMzQ3ZGIwMzBkNzUyMmU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ltYWdlQW5hbHlzaXNRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9JbWFnZUFuYWx5c2lzUXVldWUuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiSW1hZ2VPdmVybGF5LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiVGV4dFJlY29nbml0aW9uT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExMiw3ICsxMTMsOCBA
QCB2b2lkIEltYWdlQW5hbHlzaXNRdWV1ZTo6cmVzdW1lUHJvY2Vzc2luZygpCiAKICAgICAgICAg
bV9wZW5kaW5nUmVxdWVzdENvdW50Kys7CiAgICAgICAgIG1fcGFnZS0+cmVzZXRUZXh0UmVjb2du
aXRpb25SZXN1bHQoKmVsZW1lbnQpOwotICAgICAgICBtX3BhZ2UtPmNocm9tZSgpLmNsaWVudCgp
LnJlcXVlc3RUZXh0UmVjb2duaXRpb24oKmVsZW1lbnQsIG1faWRlbnRpZmllciwgW3RoaXMsIHBh
Z2UgPSBtX3BhZ2VdIChhdXRvJiYpIHsKKyAgICAgICAgYXV0byBhbGxvd1NuYXBzaG90cyA9IG1f
aWRlbnRpZmllci5pc0VtcHR5KCkgPyBUZXh0UmVjb2duaXRpb25PcHRpb25zOjpBbGxvd1NuYXBz
aG90czo6WWVzIDogVGV4dFJlY29nbml0aW9uT3B0aW9uczo6QWxsb3dTbmFwc2hvdHM6Ok5vOwor
ICAgICAgICBtX3BhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnJlcXVlc3RUZXh0UmVjb2duaXRpb24o
KmVsZW1lbnQsIHsgbV9pZGVudGlmaWVyLCBhbGxvd1NuYXBzaG90cyB9LCBbdGhpcywgcGFnZSA9
IG1fcGFnZV0gKGF1dG8mJikgewogICAgICAgICAgICAgaWYgKCFwYWdlIHx8IHBhZ2UtPmltYWdl
QW5hbHlzaXNRdWV1ZUlmRXhpc3RzKCkgIT0gdGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHRSZWNvZ25pdGlvbk9w
dGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RleHRSZWNvZ25pdGlvbk9wdGlvbnMu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNDJmMjkyMmU1YjcxY2M0OTc2N2JiYzUwYTNhMWRmNTk1ZGEyNDJlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dFJlY29nbml0aW9u
T3B0aW9ucy5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoSU1BR0VfQU5BTFlT
SVMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFRleHRSZWNvZ25pdGlvbk9wdGlv
bnMgeworICAgIFN0cmluZyBpZGVudGlmaWVyOworCisgICAgZW51bSBjbGFzcyBBbGxvd1NuYXBz
aG90cyA6IGJvb2wgeyBObywgWWVzIH07CisgICAgQWxsb3dTbmFwc2hvdHMgYWxsb3dTbmFwc2hv
dHMgeyBBbGxvd1NuYXBzaG90czo6WWVzIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU1BR0VfQU5BTFlTSVMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggYjUyMDMwNjNlMTQ2ZTA3OTE4ZTc2YzYxZGMyYzAwYWQ0MTQ0NTM1
MC4uZDc0MjUxOGM5NThiOWI3ZjhlYzllZWU1ZTVmNGFjZjllMWYxZDIwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjE1LDYgKzIxNSw3IEBACiAjaW5jbHVkZSAiU3lz
dGVtU291bmRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
VGV4dFBsYWNlaG9sZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHRSZWNvZ25pdGlvbk9wdGlv
bnMuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiVHJl
ZVNjb3BlLmgiCiAjaW5jbHVkZSAiVHlwZUNvbnZlcnNpb25zLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCmluZGV4IDE4ZGE4MzdkMWQ2NzI1ZDZlODQ2ZTFkMmY2OWEzNjY0YzNhNTlhYzMuLjlkMGEx
MzRjYTJlMzNmZmVjZTVkMzg1N2RhMjAxYjY0MDliNDE3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRh
dGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9U
ZXh0SW5kaWNhdG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0UmVjb2duaXRpb25PcHRpb25z
Lmg+CiAKICNpZiBIQVZFKFdFQkdQVV9JTVBMRU1FTlRBVElPTikKICNpbXBvcnQgPHBhbC9ncmFw
aGljcy9XZWJHUFUvSW1wbC9XZWJHUFVJbXBsLmg+CkBAIC0xNTE0LDkgKzE1MTUsOSBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6Y2hhbmdlVW5pdmVyc2FsQWNjZXNzWm9vbUZvY3VzKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHZpZQogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTKQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFRleHRSZWNvZ25pdGlvbihFbGVtZW50JiBlbGVtZW50
LCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRy
PEVsZW1lbnQ+JiYpPiYmIGNvbXBsZXRpb24pCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVz
dFRleHRSZWNvZ25pdGlvbihFbGVtZW50JiBlbGVtZW50LCBUZXh0UmVjb2duaXRpb25PcHRpb25z
JiYgb3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVudD4mJik+JiYg
Y29tcGxldGlvbikKIHsKLSAgICBtX3BhZ2UucmVxdWVzdFRleHRSZWNvZ25pdGlvbihlbGVtZW50
LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKKyAgICBtX3BhZ2UucmVxdWVzdFRl
eHRSZWNvZ25pdGlvbihlbGVtZW50LCBXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKGNvbXBsZXRp
b24pKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZTZmYmJhZjg3NjUwNWNk
MzRmZjA1MzhmYmJlOTc3MDBkYzJiYmJjNi4uYTBjNGZiYmUzZWZlNjJiNzc2ZDAwNDk2ZDEyN2Uz
YjQ5NGRmMDMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzQsNiArMzQsNyBAQCBjbGFzcyBS
ZWdpc3RyYWJsZURvbWFpbjsKIGVudW0gY2xhc3MgQ29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0
IDogdWludDhfdDsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIDogYm9v
bDsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgOiBib29sOworc3RydWN0IFRl
eHRSZWNvZ25pdGlvbk9wdGlvbnM7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDM1LDcg
KzQzNiw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykK
LSAgICB2b2lkIHJlcXVlc3RUZXh0UmVjb2duaXRpb24oV2ViQ29yZTo6RWxlbWVudCYsIGNvbnN0
IFN0cmluZyYgaWRlbnRpZmllciA9IHsgfSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8
V2ViQ29yZTo6RWxlbWVudD4mJik+JiYgPSB7IH0pIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFRl
eHRSZWNvZ25pdGlvbihXZWJDb3JlOjpFbGVtZW50JiwgV2ViQ29yZTo6VGV4dFJlY29nbml0aW9u
T3B0aW9ucyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50
PiYmKT4mJiA9IHsgfSkgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgbmVlZHNJbWFnZU92ZXJs
YXlDb250cm9sbGVyRm9yU2VsZWN0aW9uUGFpbnRpbmcoKSBjb25zdCBmaW5hbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmMGZjNjgwNWZkZDdm
OGI5NDkzMTlmZDFmMmRmOWM2ODZkZDhmM2E3Li4wNDg1ODYzNjgyMzUwZGJmYzFiZGVmYzJjZTA3
NjU4NGE1YTMzMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMjU2LDYgKzI1Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJmcmFtZUxv
YWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3Vic3RpdHV0ZURhdGEuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1RleHRJdGVyYXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dFJlY29nbml0aW9u
T3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVHJhbnNsYXRpb25Db250ZXh0TWVudUluZm8u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJDb250ZW50VVJMUGF0dGVybi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KQEAgLTc3MzAsNyArNzczMSw3IEBAIHZv
aWQgV2ViUGFnZTo6cmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKE1lZGlhU2Vzc2lvbklk
ZW50aWZpZXIgaWRlbnRpZmllcikKIAogI2lmIEVOQUJMRShJTUFHRV9BTkFMWVNJUykKIAotdm9p
ZCBXZWJQYWdlOjpyZXF1ZXN0VGV4dFJlY29nbml0aW9uKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0
IFN0cmluZyYgaWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVu
dD4mJik+JiYgY29tcGxldGlvbikKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFRleHRSZWNvZ25pdGlv
bihFbGVtZW50JiBlbGVtZW50LCBUZXh0UmVjb2duaXRpb25PcHRpb25zJiYgb3B0aW9ucywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8RWxlbWVudD4mJik+JiYgY29tcGxldGlvbikKIHsK
ICAgICBpZiAoIWlzPEhUTUxFbGVtZW50PihlbGVtZW50KSkgewogICAgICAgICBpZiAoY29tcGxl
dGlvbikKQEAgLTc3NjcsNyArNzc2OCwxMSBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RUZXh0UmVj
b2duaXRpb24oRWxlbWVudCYgZWxlbWVudCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLAogICAg
IH0KIAogICAgIGF1dG8mIHJlbmRlckltYWdlID0gZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5k
ZXJlcik7Ci0gICAgYXV0byBiaXRtYXAgPSBjcmVhdGVTaGFyZWFibGVCaXRtYXAocmVuZGVySW1h
Z2UsIHsgc3RkOjpudWxsb3B0LCBBbGxvd0FuaW1hdGVkSW1hZ2VzOjpObywgVXNlU25hcHNob3RG
b3JUcmFuc3BhcmVudEltYWdlczo6WWVzIH0pOworICAgIGF1dG8gYml0bWFwID0gY3JlYXRlU2hh
cmVhYmxlQml0bWFwKHJlbmRlckltYWdlLCB7CisgICAgICAgIHN0ZDo6bnVsbG9wdCwKKyAgICAg
ICAgQWxsb3dBbmltYXRlZEltYWdlczo6Tm8sCisgICAgICAgIG9wdGlvbnMuYWxsb3dTbmFwc2hv
dHMgPT0gVGV4dFJlY29nbml0aW9uT3B0aW9uczo6QWxsb3dTbmFwc2hvdHM6OlllcyA/IFVzZVNu
YXBzaG90Rm9yVHJhbnNwYXJlbnRJbWFnZXM6OlllcyA6IFVzZVNuYXBzaG90Rm9yVHJhbnNwYXJl
bnRJbWFnZXM6Ok5vCisgICAgfSk7CiAgICAgaWYgKCFiaXRtYXApIHsKICAgICAgICAgaWYgKGNv
bXBsZXRpb24pCiAgICAgICAgICAgICBjb21wbGV0aW9uKHsgfSk7CkBAIC03Nzg5LDcgKzc3OTQs
NyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RUZXh0UmVjb2duaXRpb24oRWxlbWVudCYgZWxlbWVu
dCwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLAogCiAgICAgYXV0byBjYWNoZWRJbWFnZSA9IHJl
bmRlckltYWdlLmNhY2hlZEltYWdlKCk7CiAgICAgYXV0byBpbWFnZVVSTCA9IGNhY2hlZEltYWdl
ID8gZWxlbWVudC5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKGNhY2hlZEltYWdlLT51cmwoKS5zdHJp
bmcoKSkgOiBVUkwgeyB9OwotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdURk1vdmUoaW1hZ2VVUkwpLCBXVEZNb3Zl
KGJpdG1hcEhhbmRsZSksIGlkZW50aWZpZXIpLCBbd2ViUGFnZSA9IFdlYWtQdHIgeyAqdGhpcyB9
LCB3ZWFrRWxlbWVudCA9IFdlYWtQdHIgeyBlbGVtZW50IH1dIChhdXRvJiYgcmVzdWx0KSB7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RUZXh0
UmVjb2duaXRpb24oV1RGTW92ZShpbWFnZVVSTCksIFdURk1vdmUoYml0bWFwSGFuZGxlKSwgb3B0
aW9ucy5pZGVudGlmaWVyKSwgW3dlYlBhZ2UgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha0VsZW1l
bnQgPSBXZWFrUHRyIHsgZWxlbWVudCB9XSAoYXV0byYmIHJlc3VsdCkgewogICAgICAgICBSZWZQ
dHIgcHJvdGVjdGVkUGFnZSB7IHdlYlBhZ2UuZ2V0KCkgfTsKICAgICAgICAgaWYgKCFwcm90ZWN0
ZWRQYWdlKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IDBlODJlMTk3MWZkMTk5YmJmZmI3NmFlNGIxNWEzMWEwYzIw
Y2E4MTYuLjQzNzFmZTY4NzQ4Y2EwOTM3YWZkMzA0ZWFjNGY2MmQ2YTAyMWM2ZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTI1Niw2ICsyNTYsNyBA
QCBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbzsKIHN0cnVjdCBSZXF1ZXN0U3RvcmFnZUFj
Y2Vzc1Jlc3VsdDsKIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVyczsKIHN0cnVjdCBUZXh0
Q2hlY2tpbmdSZXN1bHQ7CitzdHJ1Y3QgVGV4dFJlY29nbml0aW9uT3B0aW9uczsKIHN0cnVjdCBU
ZXh0UmVjb2duaXRpb25SZXN1bHQ7CiBzdHJ1Y3QgVmlld3BvcnRBcmd1bWVudHM7CiAKQEAgLTE0
NTIsNyArMTQ1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdl
KFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXJNZWRpYVN0YXRlRmxhZ3MpOwogCiAjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTKQotICAgIHZvaWQgcmVxdWVzdFRleHRSZWNvZ25pdGlvbihXZWJDb3JlOjpF
bGVtZW50JiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyID0geyB9LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYmKT4mJiA9IHsgfSk7CisgICAgdm9pZCBy
ZXF1ZXN0VGV4dFJlY29nbml0aW9uKFdlYkNvcmU6OkVsZW1lbnQmLCBXZWJDb3JlOjpUZXh0UmVj
b2duaXRpb25PcHRpb25zJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6
OkVsZW1lbnQ+JiYpPiYmID0geyB9KTsKICAgICB2b2lkIHVwZGF0ZVdpdGhUZXh0UmVjb2duaXRp
b25SZXN1bHQoY29uc3QgV2ViQ29yZTo6VGV4dFJlY29nbml0aW9uUmVzdWx0JiwgY29uc3QgV2Vi
Q29yZTo6RWxlbWVudENvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhdGlv
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQpPiYm
KTsKICAgICB2b2lkIHN0YXJ0SW1hZ2VBbmFseXNpcyhjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggN2IwMjU4NGRiMmNmM2UzM2EyZTNkN2ZiNGJkZDY2Y2U0YmQzZWM4Ny4uZDMxNzU1MWI1
YTU3N2Q4OTJjZjJmODg4NjFmMjUxZGFkZmNkYzVhMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTA0LTIwICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIGZh
bGxpbmcgYmFjayB0byBzbmFwc2hvdHMgZm9yIHRyYW5zcGFyZW50IGltYWdlcyB3aGVuIHRyaWdn
ZXJpbmcgYmF0Y2ggdGV4dCByZWNvZ25pdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NTU1CisgICAgICAgIHJkYXI6Ly85MTYyMjE1MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFkaXR5YSBLZWVydGhpLgorCisgICAgICAgIEFkZCBhbiBBUEkg
dGVzdCB0byBleGVyY2lzZSB0aGUgYnVnLCBieSB0cmlnZ2VyaW5nIGJhdGNoIGltYWdlIGFuYWx5
c2lzIG9uIGFuIGltYWdlIHdpdGggYG9wYWNpdHk6IDA7YCB0aGF0CisgICAgICAgIGZhZGVzIGlu
IG9uIGEgdGltZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0ltYWdlQW5hbHlzaXNUZXN0cy5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OkNHSW1hZ2VQaXhlbFJlYWRlcjo6Q0dJbWFnZVBpeGVsUmVhZGVyKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OkNHSW1hZ2VQaXhlbFJlYWRlcjo6aXNUcmFuc3BhcmVudEJsYWNrIGNvbnN0KToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNHSW1hZ2VQaXhlbFJlYWRlcjo6YXQgY29uc3QpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q0dJbWFnZVBpeGVsUmVhZGVyOjp3aWR0aCBjb25zdCk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpDR0ltYWdlUGl4ZWxSZWFkZXI6OmhlaWdodCBjb25z
dCk6CisKKyAgICAgICAgQWRkIGEgc2ltcGxlIGhlbHBlciBjbGFzcyB0byByZWFkIHBpeGVsIHZh
bHVlcyBhdCBhIGdpdmVuIGxvY2F0aW9uIGluIGEgZ2l2ZW4gQ0dJbWFnZTsgdGhpcyBoZWxwZXIg
Y2xhc3Mgd29ya3MKKyAgICAgICAgYnkgZmlyc3QgcmVuZGVyaW5nIHRoZSBnaXZlbiBpbWFnZSBp
bnRvIGEgcGxhaW4gU1JHQiBiaXRtYXAgY29udGV4dCwgd2hpY2ggd2UgdGhlbiB1c2UgdG8gcmVh
ZCBiYWNrIHBpeGVsIGRhdGEKKyAgICAgICAgaW4gUkdCQSBmb3JtYXQuCisKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OnByb2Nlc3NSZXF1ZXN0V2l0aEVycm9yKToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
ZmFkZS1pbi1pbWFnZS5odG1sOiBBZGRlZC4KKwogMjAyMi0wNC0xOSAgTWljaGFlbCBTYWJvZmYg
IDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBWYXJpb3VzIFdlYktpdCB0b29scyBuZWVk
IHRvIGJlIHRvbGQgYWJvdXQgdGhlIHN5c3RlbSBjb250ZW50IHBhdGgKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZGUxNmUxNGIyMThkZGU1YjI4OGMwMjZiMWY1NTk3YjgwZjQ3OWI2YS4uZDc1
ZmMxODJmZmYyNzk3ZjQ4OTU0MzY2NzQ1MjExYjFjMjk0MzYxZCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEwMjcsNiArMTAyNyw3IEBACiAJCUY0MDM0RkEzMjc1RDVBQzYwMDNBODFGOCAv
KiBjb29raWUtY29uc2VudC1iYXNpYy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MDM0RkEyMjc1RDU0NDkwMDNBODFGOCAvKiBjb29r
aWUtY29uc2VudC1iYXNpYy5odG1sICovOyB9OwogCQlGNDA3RkUzOTFGMUQwREZDMDAxN0NGMjUg
LyogZW5vcm1vdXMuc3ZnIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0MDdGRTM4MUYxRDBERTYwMDE3Q0YyNSAvKiBlbm9ybW91cy5zdmcgKi87
IH07CiAJCUY0MDk0Q0M3MjU1NDVCRDUwMDNENzNFMyAvKiBEaXNwbGF5TGlzdFRlc3RzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MDk0Q0M2MjU1
NDVCRDUwMDNENzNFMyAvKiBEaXNwbGF5TGlzdFRlc3RzLmNwcCAqLzsgfTsKKwkJRjQwQjhENUUy
ODEwODZFNTAwMzQ2NDE3IC8qIGZhZGUtaW4taW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDBCOEQ1RDI4MTA4NTU5MDAzNDY0
MTcgLyogZmFkZS1pbi1pbWFnZS5odG1sICovOyB9OwogCQlGNDE1MDg2RDFEQTA0MEM1MDA0NEJF
OUIgLyogcGxheS1hdWRpby1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MTUwODZDMURBMDQwQzEwMDQ0QkU5QiAvKiBw
bGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwgKi87IH07CiAJCUY0MThCRTE1MUY3MUI3REMwMDE5NzBF
NiAvKiBSb3VuZGVkUmVjdFRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0MThCRTE0MUY3MUI3REMwMDE5NzBFNiAvKiBSb3VuZGVkUmVjdFRl
c3RzLmNwcCAqLzsgfTsKIAkJRjQxOTRBRDExRjVBMzIwMTAwQUREODNGIC8qIGRyb3AtdGFyZ2V0
cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0MTk0QUQwMUY1QTJFQTUwMEFERDgzRiAvKiBkcm9wLXRhcmdldHMuaHRtbCAqLzsgfTsK
QEAgLTEzNTksNiArMTM2MCw3IEBACiAJCQkJQzVFMUFGRkUxNkIyMjFGMTAwNkNDMUYyIC8qIGV4
ZWNDb3B5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNzI4M0E5RDIyMkZCMUUwNjAw
QjIxQzdEIC8qIGV4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCUNEQTI5QjJCMjBGRDM1ODQwMEYxNUNFRCAvKiBFeGl0RnVsbHNjcmVlbk9uRW50ZXJQ
aVAuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlGNDBCOEQ1RTI4MTA4NkU1MDAzNDY0
MTcgLyogZmFkZS1pbi1pbWFnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTkzNThD
MzNDMjczRUQwN0IwMEYzQjM4QyAvKiBmaWxlLXN5c3RlbS1hY2Nlc3Muc2FsdCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlGNDFBQjlBMzFFRjQ2OTZCMDA4M0ZBMDggLyogZmlsZS11cGxvYWRp
bmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlCQzJEMDA2NDEyQUEwNENFMDBFNzMy
QTMgLyogZmlsZS13aXRoLWFuY2hvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMzAz
Myw2ICszMDM1LDcgQEAKIAkJRjQwMzRGQTIyNzVENTQ0OTAwM0E4MUY4IC8qIGNvb2tpZS1jb25z
ZW50LWJhc2ljLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiY29va2llLWNvbnNlbnQtYmFzaWMuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MDdGRTM4MUYxRDBERTYwMDE3Q0YyNSAvKiBl
bm9ybW91cy5zdmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gZW5vcm1vdXMuc3ZnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDA5NENDNjI1NTQ1QkQ1MDAzRDczRTMgLyogRGlzcGxheUxpc3RUZXN0cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGlzdFRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjQwQjhENUQyODEwODU1OTAwMzQ2NDE3IC8qIGZhZGUtaW4taW1hZ2UuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJmYWRlLWluLWltYWdlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDEwNkM2ODIxQUNCRjg0MDA0Qjg5QTEgLyogV0tXZWJWaWV3Rmlyc3RSZXNwb25k
ZXJUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0ZpcnN0UmVzcG9uZGVy
VGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MTUwODZDMURBMDQwQzEw
MDQ0QkU5QiAvKiBwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAicGxheS1hdWRpby1vbi1jbGljay5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQxOEJFMTQxRjcxQjdEQzAwMTk3MEU2IC8qIFJvdW5kZWRSZWN0VGVzdHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3RUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00MTcyLDYgKzQxNzUsNyBAQAogCQkJCUY0MDdGRTM4MUYxRDBERTYw
MDE3Q0YyNSAvKiBlbm9ybW91cy5zdmcgKi8sCiAJCQkJNzI4M0E5RDEyMkZCMUQ5NzAwQjIxQzdE
IC8qIGV4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnICovLAogCQkJCUNEQTI5QjJBMjBGRDM0NEUw
MEYxNUNFRCAvKiBFeGl0RnVsbHNjcmVlbk9uRW50ZXJQaVAuaHRtbCAqLywKKwkJCQlGNDBCOEQ1
RDI4MTA4NTU5MDAzNDY0MTcgLyogZmFkZS1pbi1pbWFnZS5odG1sICovLAogCQkJCTkzNThDMzNC
MjczRUQwNkEwMEYzQjM4QyAvKiBmaWxlLXN5c3RlbS1hY2Nlc3Muc2FsdCAqLywKIAkJCQlGNDFB
Qjk5QjFFRjQ2OTJDMDA4M0ZBMDggLyogZmlsZS11cGxvYWRpbmcuaHRtbCAqLywKIAkJCQk0OUQy
RTVDMTI3MzFFMzc0MDBCQ0NBRUQgLyogZmlsZS13aXRoLWlmcmFtZS5odG1sICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbWFnZUFuYWx5c2lz
VGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ltYWdlQW5h
bHlzaXNUZXN0cy5tbQppbmRleCA0NWI1OTM3ZDA4YzZiNTU2YTRiMGZhZDJkZDM4MzM3YTczMzVk
ZDc3Li5iZWQzZTA1ZjFiNTkyOWVlOWVkZjhjMmFkYTRkNGZhMmU0Y2VlMzNjIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ltYWdlQW5hbHlzaXNUZXN0
cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ltYWdlQW5h
bHlzaXNUZXN0cy5tbQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5o
IgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25F
eHRyYXMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9j
YWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgpAQCAtMTAzLDYgKzEwNCw0NSBA
QCBAZW5kCiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAorLy8gRklYTUU6IFdlIGNhbiB1
bmlmeSBtb3N0IG9mIHRoaXMgaGVscGVyIGNsYXNzIHdpdGggdGhlIGxvZ2ljIGluIGBUZXN0UERG
UGFnZTo6Y29sb3JBdFBvaW50YCwgYW5kIGRlcGxveSB0aGlzCisvLyBoZWxwZXIgY2xhc3MgaW4g
c2V2ZXJhbCBvdGhlciB0ZXN0cyB0aGF0IHJlYWQgcGl4ZWwgZGF0YSBmcm9tIENHSW1hZ2VzLgor
Y2xhc3MgQ0dJbWFnZVBpeGVsUmVhZGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsg
V1RGX01BS0VfTk9OQ09QWUFCTEUoQ0dJbWFnZVBpeGVsUmVhZGVyKTsKK3B1YmxpYzoKKyAgICBD
R0ltYWdlUGl4ZWxSZWFkZXIoQ0dJbWFnZVJlZiBpbWFnZSkKKyAgICAgICAgOiBtX3dpZHRoKENH
SW1hZ2VHZXRXaWR0aChpbWFnZSkpCisgICAgICAgICwgbV9oZWlnaHQoQ0dJbWFnZUdldEhlaWdo
dChpbWFnZSkpCisgICAgeworICAgICAgICBhdXRvIGNvbG9yU3BhY2UgPSBhZG9wdENGKENHQ29s
b3JTcGFjZUNyZWF0ZVdpdGhOYW1lKGtDR0NvbG9yU3BhY2VTUkdCKSk7CisgICAgICAgIGF1dG8g
Ynl0ZXNQZXJQaXhlbCA9IDQ7CisgICAgICAgIGF1dG8gYnl0ZXNQZXJSb3cgPSBieXRlc1BlclBp
eGVsICogQ0dJbWFnZUdldFdpZHRoKGltYWdlKTsKKyAgICAgICAgYXV0byBiaXRzUGVyQ29tcG9u
ZW50ID0gODsKKyAgICAgICAgYXV0byBiaXRtYXBJbmZvID0ga0NHSW1hZ2VBbHBoYVByZW11bHRp
cGxpZWRMYXN0IHwga0NHSW1hZ2VCeXRlT3JkZXIzMkJpZzsKKyAgICAgICAgbV9jb250ZXh0ID0g
YWRvcHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGVXaXRoRGF0YShudWxscHRyLCBtX3dpZHRoLCBt
X2hlaWdodCwgYml0c1BlckNvbXBvbmVudCwgYnl0ZXNQZXJSb3csIGNvbG9yU3BhY2UuZ2V0KCks
IGJpdG1hcEluZm8sIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICAgICAgQ0dDb250ZXh0RHJhd0lt
YWdlKG1fY29udGV4dC5nZXQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBtX3dpZHRoLCBtX2hlaWdodCks
IGltYWdlKTsKKyAgICB9CisKKyAgICBib29sIGlzVHJhbnNwYXJlbnRCbGFjayh1bnNpZ25lZCB4
LCB1bnNpZ25lZCB5KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGF0KHgsIHkpID09IFdl
YkNvcmU6OkNvbG9yOjp0cmFuc3BhcmVudEJsYWNrOworICAgIH0KKworICAgIFdlYkNvcmU6OkNv
bG9yIGF0KHVuc2lnbmVkIHgsIHVuc2lnbmVkIHkpIGNvbnN0CisgICAgeworICAgICAgICBhdXRv
KiBkYXRhID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oQ0dCaXRtYXBDb250ZXh0R2V0RGF0
YShtX2NvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBvZmZzZXQgPSA0ICogKHdpZHRoKCkg
KiB5ICsgeCk7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjptYWtlRnJvbUNvbXBvbmVudHNDbGFt
cGluZ0V4Y2VwdEFscGhhPFdlYkNvcmU6OlNSR0JBPHVpbnQ4X3Q+PihkYXRhW29mZnNldF0sIGRh
dGFbb2Zmc2V0ICsgMV0sIGRhdGFbb2Zmc2V0ICsgMl0sIGRhdGFbb2Zmc2V0ICsgM10pOworICAg
IH0KKworICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQorICAg
IHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CisKK3ByaXZhdGU6
CisgICAgdW5zaWduZWQgbV93aWR0aCB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX2hlaWdodCB7IDAg
fTsKKyAgICBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBtX2NvbnRleHQ7Cit9OworCiBzdGF0aWMg
VmVjdG9yPFJldGFpblB0cjxWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0Pj4mIHByb2Nlc3NlZFJlcXVl
c3RzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgcmVxdWVzdHMgPSBWZWN0b3I8UmV0
YWluUHRyPFZLSW1hZ2VBbmFseXplclJlcXVlc3Q+PiB7IH07CkBAIC0xMjAsNiArMTYwLDEzIEBA
IHN0YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gY3JlYXRlV2ViVmlld1dpdGhUZXh0UmVj
b2duaXRpb25FbmhhbmNlbWVudHMoKQogICAgIHJldHVybiBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKIH0KIAorc3RhdGljIHZvaWQgcHJvY2Vzc1Jl
cXVlc3RXaXRoRXJyb3IoaWQsIFNFTCwgVktJbWFnZUFuYWx5emVyUmVxdWVzdCAqcmVxdWVzdCwg
dm9pZCAoXikoZG91YmxlIHByb2dyZXNzKSwgdm9pZCAoXmNvbXBsZXRpb24pKFZLSW1hZ2VBbmFs
eXNpcyAqYW5hbHlzaXMsIE5TRXJyb3IgKmVycm9yKSkKK3sKKyAgICBnRGlkUHJvY2Vzc1JlcXVl
c3RDb3VudCsrOworICAgIHByb2Nlc3NlZFJlcXVlc3RzKCkuYXBwZW5kKHsgcmVxdWVzdCB9KTsK
KyAgICBjb21wbGV0aW9uKG5pbCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5TQ29jb2FFcnJv
ckRvbWFpbiBjb2RlOjEgdXNlckluZm86bmlsXSk7Cit9CisKIHN0YXRpYyB2b2lkIHByb2Nlc3NS
ZXF1ZXN0V2l0aFJlc3VsdHMoaWQsIFNFTCwgVktJbWFnZUFuYWx5emVyUmVxdWVzdCAqcmVxdWVz
dCwgdm9pZCAoXikoZG91YmxlIHByb2dyZXNzKSwgdm9pZCAoXmNvbXBsZXRpb24pKFZLSW1hZ2VB
bmFseXNpcyAqLCBOU0Vycm9yICopKQogewogICAgIGdEaWRQcm9jZXNzUmVxdWVzdENvdW50Kys7
CkBAIC0xNDMsMTMgKzE5MCw2IEBAIHN0ZDo6cGFpcjxzdGQ6OnVuaXF1ZV9wdHI8SW5zdGFuY2VN
ZXRob2RTd2l6emxlcj4sIHN0ZDo6dW5pcXVlX3B0cjxJbnN0YW5jZU1ldGhvCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogCi1zdGF0aWMgdm9pZCBwcm9jZXNzUmVxdWVzdFdpdGhFcnJvcihp
ZCwgU0VMLCBWS0ltYWdlQW5hbHl6ZXJSZXF1ZXN0ICpyZXF1ZXN0LCB2b2lkICheKShkb3VibGUg
cHJvZ3Jlc3MpLCB2b2lkICheY29tcGxldGlvbikoVktJbWFnZUFuYWx5c2lzICphbmFseXNpcywg
TlNFcnJvciAqZXJyb3IpKQotewotICAgIGdEaWRQcm9jZXNzUmVxdWVzdENvdW50Kys7Ci0gICAg
cHJvY2Vzc2VkUmVxdWVzdHMoKS5hcHBlbmQoeyByZXF1ZXN0IH0pOwotICAgIGNvbXBsZXRpb24o
bmlsLCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46TlNDb2NvYUVycm9yRG9tYWluIGNvZGU6MSB1
c2VySW5mbzpuaWxdKTsKLX0KLQogVEVTVChJbWFnZUFuYWx5c2lzVGVzdHMsIERvTm90QW5hbHl6
ZUltYWdlc0luRWRpdGFibGVDb250ZW50KQogewogICAgIGF1dG8gcmVxdWVzdFN3aXp6bGVyID0g
bWFrZUltYWdlQW5hbHlzaXNSZXF1ZXN0U3dpenpsZXIocHJvY2Vzc1JlcXVlc3RXaXRoRXJyb3Ip
OwpAQCAtMjY2LDYgKzMwNiwyMiBAQCBURVNUKEltYWdlQW5hbHlzaXNUZXN0cywgSW1hZ2VBbmFs
eXNpc1ByaW9yaXRpemVzVmlzaWJsZUltYWdlcykKICAgICBFWFBFQ1RfRVEoNDUwVSwgQ0dJbWFn
ZUdldEhlaWdodChsYXN0UmVxdWVzdGVkSW1hZ2UpKTsKIH0KIAorVEVTVChJbWFnZUFuYWx5c2lz
VGVzdHMsIEltYWdlQW5hbHlzaXNXaXRoVHJhbnNwYXJlbnRJbWFnZXMpCit7CisgICAgYXV0byBy
ZXF1ZXN0U3dpenpsZXIgPSBtYWtlSW1hZ2VBbmFseXNpc1JlcXVlc3RTd2l6emxlcihwcm9jZXNz
UmVxdWVzdFdpdGhFcnJvcik7CisgICAgYXV0byB3ZWJWaWV3ID0gY3JlYXRlV2ViVmlld1dpdGhU
ZXh0UmVjb2duaXRpb25FbmhhbmNlbWVudHMoKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZFRlc3RQYWdlTmFtZWQ6QCJmYWRlLWluLWltYWdlIl07CisgICAgW3dlYlZpZXcgX3N0YXJ0
SW1hZ2VBbmFseXNpczpAImZvbyJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JJbWFnZUFuYWx5c2lz
UmVxdWVzdHM6MV07CisKKyAgICBDR0ltYWdlUGl4ZWxSZWFkZXIgcmVhZGVyIHsgW3Byb2Nlc3Nl
ZFJlcXVlc3RzKCkuZmlyc3QoKSBpbWFnZV0gfTsKKyAgICBFWFBFQ1RfVFJVRShyZWFkZXIuaXNU
cmFuc3BhcmVudEJsYWNrKDEsIDEpKTsKKyAgICBFWFBFQ1RfVFJVRShyZWFkZXIuaXNUcmFuc3Bh
cmVudEJsYWNrKHJlYWRlci53aWR0aCgpIC0gMSwgMSkpOworICAgIEVYUEVDVF9UUlVFKHJlYWRl
ci5pc1RyYW5zcGFyZW50QmxhY2socmVhZGVyLndpZHRoKCkgLSAxLCByZWFkZXIuaGVpZ2h0KCkg
LSAxKSk7CisgICAgRVhQRUNUX1RSVUUocmVhZGVyLmlzVHJhbnNwYXJlbnRCbGFjaygxLCByZWFk
ZXIuaGVpZ2h0KCkgLSAxKSk7CisgICAgRVhQRUNUX0ZBTFNFKHJlYWRlci5pc1RyYW5zcGFyZW50
QmxhY2socmVhZGVyLndpZHRoKCkgLyAyLCByZWFkZXIuaGVpZ2h0KCkgLyAyKSk7Cit9CisKICNp
ZiBFTkFCTEUoSU1BR0VfQU5BTFlTSVNfRU5IQU5DRU1FTlRTKSAmJiBQTEFURk9STShJT1NfRkFN
SUxZKQogCiBURVNUKEltYWdlQW5hbHlzaXNUZXN0cywgTWVudUNvbnRyb2xsZXJJdGVtcykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvZmFkZS1pbi1p
bWFnZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9mYWRlLWlu
LWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI1MDc4ZTVlYmZjZmMwZGFlODFmOWU1NzcwMzRlZTEx
NGVkZWY3MAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvZmFkZS1pbi1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPGhlYWQ+Cis8c3R5bGU+Citib2R5LCBodG1sIHsK
KyAgICB3aWR0aDogMTAwJTsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAgbWFyZ2luOiAwOworfQor
CitpbWcgeworICAgIG9wYWNpdHk6IDA7CisgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBlYXNl
LWluLW91dDsKK30KKworZGl2LCBpbWcgeworICAgIHdpZHRoOiAyMTVweDsKKyAgICBoZWlnaHQ6
IDE3NHB4OworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDog
MDsKK30KKworZGl2IHsKKyAgICBiYWNrZ3JvdW5kOiByZWQ7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dD4KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgc2V0VGltZW91dCgoKSA9
PiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKS5zdHlsZS5vcGFjaXR5ID0gMSwgNTAwKTsK
K30pOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+PC9kaXY+Cis8aW1nIHNyYz0i
aWNvbi5wbmciPjwvaW1nPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>