<?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>193034</bug_id>
          
          <creation_ts>2018-12-25 21:43:48 -0800</creation_ts>
          <short_desc>Add support for using the current text selection as the find string on iOS</short_desc>
          <delta_ts>2019-01-02 20:19:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1490792</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-25 21:43:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/45138739&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490793</commentid>
    <comment_count>1</comment_count>
      <attachid>358074</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-25 21:51:56 -0800</bug_when>
    <thetext>Created attachment 358074
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490796</commentid>
    <comment_count>2</comment_count>
      <attachid>358076</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-25 23:04:13 -0800</bug_when>
    <thetext>Created attachment 358076
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490831</commentid>
    <comment_count>3</comment_count>
      <attachid>358082</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-26 12:50:44 -0800</bug_when>
    <thetext>Created attachment 358082
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490837</commentid>
    <comment_count>4</comment_count>
      <attachid>358085</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-26 13:55:57 -0800</bug_when>
    <thetext>Created attachment 358085
Fix 32-bit macOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490844</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-12-26 14:44:34 -0800</bug_when>
    <thetext>The name is ever so slightly weird to me; I think I would expect it to be the string you’re currently finding. Which it sometimes is, but not if you edit it in the UI or start a find some way other than Command-E?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490845</commentid>
    <comment_count>6</comment_count>
      <attachid>358085</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-12-26 15:14:35 -0800</bug_when>
    <thetext>Comment on attachment 358085
Fix 32-bit macOS build

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

&gt; Source/WebKit/UIProcess/Cocoa/FindInPageHelpers.mm:27
&gt; +#import &quot;FindInPageHelpers.h&quot;

&quot;Helpers&quot; is pretty unusual.

Who usually talks to FindController? Maybe it should have a UI-side compatriot and these messages should go through there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490848</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-26 16:53:47 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #5)
&gt; The name is ever so slightly weird to me; I think I would expect it to be
&gt; the string you’re currently finding. Which it sometimes is, but not if you
&gt; edit it in the UI or start a find some way other than Command-E?

That makes sense! I think a better name for what I currently have here would be _initialStringForFindInPage; that being said, the purpose of this string is to stand in for the system-wide find pasteboard that&apos;s present on macOS but not iOS. To this end, it should probably behave like it does on macOS and either allow external clients to update it (e.g. whenever the user edits the find string), or teach WebKit find-in-page API to automatically update it when the find string changes.

As such, I think _stringForFindInPage is actually the right name of the SPI we should expose — only, WebKit should also be updating it as the find string changes. What do you think about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490849</commentid>
    <comment_count>8</comment_count>
      <attachid>358085</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-26 16:53:57 -0800</bug_when>
    <thetext>Comment on attachment 358085
Fix 32-bit macOS build

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

&gt;&gt; Source/WebKit/UIProcess/Cocoa/FindInPageHelpers.mm:27
&gt;&gt; +#import &quot;FindInPageHelpers.h&quot;
&gt; 
&gt; &quot;Helpers&quot; is pretty unusual.
&gt; 
&gt; Who usually talks to FindController? Maybe it should have a UI-side compatriot and these messages should go through there?

The common flow of information for find-in-page seems to be: (Views or other UI-side entities…) → WebPageProxy → (IPC) → WebPage → FindController.

 I opted for a &quot;Helper&quot;-file approach because _stringForFindInPage is global state shared throughout the process, so it didn&apos;t make sense to tie it to any of the usual suspects (i.e. WebPageProxy, or even something like a FindControllerProxy). We could introduce a FindControllerProxy and add these as static functions on it, but it seems odd to introduce a new FindControllerProxy and either (1) not actually create any instance of it because all we need are the static helpers, or (2) create and keep track of FindControllerProxy, but not actually use it for anything.

Does this seem reasonable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490850</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-12-26 17:19:08 -0800</bug_when>
    <thetext>Sounds good on both counts!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490880</commentid>
    <comment_count>10</comment_count>
      <attachid>358097</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-26 20:54:50 -0800</bug_when>
    <thetext>Created attachment 358097
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490882</commentid>
    <comment_count>11</comment_count>
      <attachid>358099</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-26 21:17:57 -0800</bug_when>
    <thetext>Created attachment 358099
Patch v2 (fix macOS 10.12 builds)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491183</commentid>
    <comment_count>12</comment_count>
      <attachid>358099</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-02 11:17:55 -0800</bug_when>
    <thetext>Comment on attachment 358099
Patch v2 (fix macOS 10.12 builds)

This patch introduces the first (and first bunch) of the use of the phrase &quot;find in page&quot; in actual code (vs. tests and changelog entries). Other SPI just calls it &quot;find&quot;. I wonder if this patch should follow suit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491191</commentid>
    <comment_count>13</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-02 11:32:21 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #12)
&gt; Comment on attachment 358099 [details]
&gt; Patch v2 (fix macOS 10.12 builds)
&gt; 
&gt; This patch introduces the first (and first bunch) of the use of the phrase
&gt; &quot;find in page&quot; in actual code (vs. tests and changelog entries). Other SPI
&gt; just calls it &quot;find&quot;. I wonder if this patch should follow suit.

Good point! I&apos;ll follow suit and use &quot;find&quot; instead of &quot;findInPage&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491358</commentid>
    <comment_count>14</comment_count>
      <attachid>358242</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-02 19:08:31 -0800</bug_when>
    <thetext>Created attachment 358242
Rename FindInPage to Find</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1491365</commentid>
    <comment_count>15</comment_count>
      <attachid>358242</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-02 20:00:56 -0800</bug_when>
    <thetext>Comment on attachment 358242
Rename FindInPage to Find

Clearing flags on attachment: 358242

Committed r239584: &lt;https://trac.webkit.org/changeset/239584&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358074</attachid>
            <date>2018-12-25 21:51:56 -0800</date>
            <delta_ts>2018-12-25 22:09:49 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-193034-20181225215156.patch</filename>
            <type>text/plain</type>
            <size>39099</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVjZmVlMWQyYzlmNjE5
N2RmNzU4MjA5NjQwMTM1Yzg0MjM4MjhmMi4uZGU2MzkyZTEwMzg3N2QxMWM3ZWI3MTViMDE2YTg2
Zjk1MWI2MDlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTEyLTI1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB1c2luZyB0aGUgY3VycmVudCB0ZXh0IHNlbGVjdGlvbiBhcyB0aGUgZmluZCBzdHJpbmcg
b24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTMwMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTM4NzM5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdl
cyBjb25zdCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ29tbWFuZE1hcCk6
CisgICAgICAgICogZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0
aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNhbkNvcHlF
eGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgor
CiAyMDE4LTEyLTIyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbSGFyZkJ1enpdIFdpZHRoIG5vdCBjb3JyZWN0bHkgcmVwb3J0ZWQgYXMgMCBm
b3IgemVybyBmb250IHNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWZmYWM3MjQ3NjE2MTQ1MGM1NDVhM2Q5YThj
Mzc5ODI5MTEwOTFjMS4uZDM4ODRiZTJjOWNlNDU4NDc4NTIzYTJkOTE0Y2I5ZDAyYWEwYjZkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxOC0xMi0yNSAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNpbmcgdGhl
IGN1cnJlbnQgdGV4dCBzZWxlY3Rpb24gYXMgdGhlIGZpbmQgc3RyaW5nIG9uIGlPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMDM0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTEzODczOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfdGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uOl0pOgorICAgICAgICAoK1tXS1dlYlZpZXcgX3N0cmluZ0Zv
ckZpbmRJblBhZ2VdKToKKyAgICAgICAgKCtbV0tXZWJWaWV3IF9jbGVhclN0cmluZ0ZvckZpbmRJ
blBhZ2VdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL0dsb2JhbEZpbmRJblBhZ2VTdGF0
ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tLgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxTdHJp
bmdGb3JGaW5kSW5QYWdlKToKKyAgICAgICAgKFdlYktpdDo6dXBkYXRlU3RyaW5nRm9yRmluZElu
UGFnZSk6CisgICAgICAgIChXZWJLaXQ6OnN0cmluZ0ZvckZpbmRJblBhZ2UpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvR2xvYmFsRmluZEluUGFnZVN0YXRlLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9T
Lm1tLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UpOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1
cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKToKKwogMjAxOC0xMi0yMyAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBSZW1vdmUgc29tZSB1bm5l
Y2Vzc2FyeSBlZGl0aW5nIFNQSSBhZnRlciA8cmRhcjovL3Byb2JsZW0vNDYwNDc1NDY+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDQxYmIwOTMwZWQ5ZDliNmY2MDg2MGE3MzU0MzEw
NTkzNmY4NWVlZS4uOTEzZjZjY2FkM2Y4ZGJiN2NiYjY1N2YwN2ExZmE5MTgwM2I0ZTQ1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTEyLTI1ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciB1c2luZyB0aGUgY3VycmVudCB0ZXh0IHNlbGVjdGlvbiBhcyB0aGUgZmluZCBzdHJp
bmcgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTMwMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTM4NzM5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lmg6CisKIDIwMTgtMTItMjAgIFl1c3VrZSBTdXp1a2kgIDx5dXN1a2VzdXp1
a2lAc2xvd3N0YXJ0Lm9yZz4KIAogICAgICAgICBVc2UgUmVmPD4gYXMgbXVjaCBhcyBwb3NzaWJs
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGE1ZTg1ODRmNGFlODc3MjMxNGY2M2Yz
NDE3YmMwY2Q2ZTQ2MTc2ZmQuLjhkMTcxMzdiZmQ1NDc2YmNlYjRlOWJkNzJlMzcwZmE0ZjUzODE2
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTQyNTYsNCArNDI1NiwxMCBAQCBS
ZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gRWRpdG9yOjppbnNlcnRFZGl0YWJsZUltYWdlKCkKICAg
ICByZXR1cm4gSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6Omluc2VydEVkaXRhYmxlSW1hZ2Uo
ZG9jdW1lbnQoKSk7CiB9CiAKK2Jvb2wgRWRpdG9yOjpjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9u
ZUltYWdlcygpIGNvbnN0Cit7CisgICAgYXV0byYgc2VsZWN0aW9uID0gbV9mcmFtZS5zZWxlY3Rp
b24oKS5zZWxlY3Rpb24oKTsKKyAgICByZXR1cm4gc2VsZWN0aW9uLmlzUmFuZ2UoKSAmJiAhc2Vs
ZWN0aW9uLmlzSW5QYXNzd29yZEZpZWxkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDdjYWQyMjA5ODUyNjAwNmY5Y2M4OWMxY2UwZTI3
OTQyMmVjNzM4NWYuLjA1Y2MxYjgyYWVhYzE0MGI0MDkzMGRmNmYzN2VhNTQ5NTVjNjNmNDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDg1LDkgKzQ4NSw4IEBAIHB1YmxpYzoKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RyaW5nU2VsZWN0aW9u
Rm9yUGFzdGVib2FyZCgpOwogICAgIFN0cmluZyBzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJk
V2l0aEltYWdlQWx0VGV4dCgpOwotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGJvb2wg
Y2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJbWFnZXMoKTsKICAgICB2b2lkIHRha2VGaW5kU3Ry
aW5nRnJvbVNlbGVjdGlvbigpOworI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZU5vZGVGcm9t
UGFzdGVib2FyZChOb2RlKiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YVNlbGVjdGlvbkZvclBhc3RlYm9h
cmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CkBAIC00OTUsNiArNDk0LDggQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1
dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmluZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0g
TWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKKyAg
ICBib29sIGNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCkgY29uc3Q7CisKICAgICBT
dHJpbmcgY2xpZW50UmVwbGFjZW1lbnRVUkxGb3JSZXNvdXJjZShSZWY8U2hhcmVkQnVmZmVyPiYm
IHJlc291cmNlRGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKICNpZiAhUExBVEZPUk0o
V0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggOWZkYWMx
ZDYxMTk1MzhhY2UzZDRiZjhjMGVlMzE3OWY0N2M4YmQzMS4uMGIzYmJiOWJlNjk1NjllYjgyY2Yw
NTRkYzI0YzcxNWU3ZTRhZDQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1h
bmQuY3BwCkBAIC0xMTAyLDEzICsxMTAyLDE1IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVTd2FwV2l0
aE1hcmsoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09D
T0EpCisKIHN0YXRpYyBib29sIGV4ZWN1dGVUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oRnJh
bWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7
CiAgICAgZnJhbWUuZWRpdG9yKCkudGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKCk7CiAgICAg
cmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiBz
dGF0aWMgYm9vbCBleGVjdXRlVG9nZ2xlQm9sZChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9y
Q29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7CkBAIC0xMzY3LDEyICsxMzY5
LDE0IEBAIHN0YXRpYyBib29sIGVuYWJsZWRSZWRvKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0
b3JDb21tYW5kU291cmNlKQogICAgIHJldHVybiBmcmFtZS5lZGl0b3IoKS5jYW5SZWRvKCk7CiB9
CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09DT0EpCisKIHN0YXRpYyBib29s
IGVuYWJsZWRUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hbmRTb3VyY2UpCiB7CiAgICAgcmV0dXJuIGZyYW1lLmVkaXRvcigpLmNhbkNv
cHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCk7CiB9Ci0jZW5kaWYKKworI2VuZGlmIC8vIFBM
QVRGT1JNKENPQ09BKQogCiBzdGF0aWMgYm9vbCBlbmFibGVkVW5kbyhGcmFtZSYgZnJhbWUsIEV2
ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSkKIHsKQEAgLTE3MTgsNyArMTcyMiw3IEBAIHN0YXRp
YyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWFwKCkKICAgICAgICAgeyAiUGFzdGVH
bG9iYWxTZWxlY3Rpb24iLCB7IGV4ZWN1dGVQYXN0ZUdsb2JhbFNlbGVjdGlvbiwgc3VwcG9ydGVk
RnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRQYXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGws
IG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICB7ICJU
YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24iLCB7IGV4ZWN1dGVUYWtlRmluZFN0cmluZ0Zyb21T
ZWxlY3Rpb24sIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkVGFrZUZpbmRT
dHJpbmdGcm9tU2VsZWN0aW9uLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlv
biwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAjZW5kaWYKICAgICB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0KaW5kZXggNWRlNzE2
ZmExYWM0YTliNjljODVmMDk2NmJhMjkzYmZhYmIyNmJmYy4uYzE4MTNjODZhYTE2M2EzZWVkZTU0
ZTQ4ZDNlYjA1ODMwNDIwYmI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9FZGl0b3JDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0Vk
aXRvckNvY29hLm1tCkBAIC01NSw2ICs1NSw3IEBACiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nU1BJLmg+CiAjaW1wb3J0IDxwYWwv
c3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oPgorI2ltcG9ydCA8cGFsL3N5c3RlbS9Tb3Vu
ZC5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9j
b2NvYS9OU1VSTEV4dHJhcy5oPgogCkBAIC0yMjMsNCArMjI0LDI4IEBAIFJlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBFZGl0b3I6OndlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBw
YXN0ZWJvYXJkCiAgICAgcmV0dXJuIFdURk1vdmUocmVhZGVyLmZyYWdtZW50KTsKIH0KIAordm9p
ZCBFZGl0b3I6OnRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbigpCit7CisgICAgaWYgKCFjYW5D
b3B5RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpKSB7CisgICAgICAgIFBBTDo6c3lzdGVtQmVl
cCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBzdHJpbmdGcm9tU2VsZWN0
aW9uID0gbV9mcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHNlbGVjdGVkVGV4
dEZvckRhdGFUcmFuc2ZlcigpKTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgVmVjdG9yPFN0cmlu
Zz4gdHlwZXM7CisgICAgdHlwZXMuYXBwZW5kKFN0cmluZyhsZWdhY3lTdHJpbmdQYXN0ZWJvYXJk
VHlwZSgpKSk7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKyAgICBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldFR5cGVzKHR5cGVz
LCBOU0ZpbmRQYm9hcmQpOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3Ry
YXRlZ3koKS0+c2V0U3RyaW5nRm9yVHlwZShXVEZNb3ZlKHN0cmluZ0Zyb21TZWxlY3Rpb24pLCBs
ZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpLCBOU0ZpbmRQYm9hcmQpOworICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorI2Vsc2UKKyAgICBpZiAoYXV0byogY2xpZW50ID0g
dGhpcy0+Y2xpZW50KCkpIHsKKyAgICAgICAgLy8gU2luY2UgdGhlIGZpbmQgcGFzdGVib2FyZCBk
b2Vzbid0IGV4aXN0IG9uIGlPUywgV2ViS2l0IG1haW50YWlucyBpdHMgb3duIG5vdGlvbiBvZiB0
aGUgbGF0ZXN0IGZpbmQgc3RyaW5nLAorICAgICAgICAvLyB3aGljaCBTUEkgY2xpZW50cyBtYXkg
cmVzcGVjdCB3aGVuIHByZXNlbnRpbmcgZmluZC1pbi1wYWdlIFVJLgorICAgICAgICBjbGllbnQt
PnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2Uoc3RyaW5nRnJvbVNlbGVjdGlvbik7CisgICAgfQor
I2VuZGlmCit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0Vk
aXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQppbmRl
eCAzZmU2ZjRlN2U0NTIxMjViNTFmYTFmYzdkNDgwNjFjMmM0NmJiNzdkLi42OTcxZjAwOTc0Mzhi
ZWI0NDkzY2YyMTBkMjU1ZDA3MWQyNjA4YjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMv
RWRpdG9yTWFjLm1tCkBAIC01NSw3ICs1NSw2IEBACiAjaW1wb3J0ICJXZWJOU0F0dHJpYnV0ZWRT
dHJpbmdFeHRyYXMuaCIKICNpbXBvcnQgIm1hcmt1cC5oIgogI2ltcG9ydCA8QXBwS2l0L0FwcEtp
dC5oPgotI2ltcG9ydCA8cGFsL3N5c3RlbS9Tb3VuZC5oPgogI2ltcG9ydCA8d3RmL2NvY29hL05T
VVJMRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk4LDI3ICs5Nyw2IEBAIHZv
aWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIE9w
dGlvblNldDxQYXN0ZU9wdGlvbj4KICAgICBjbGllbnQoKS0+c2V0SW5zZXJ0aW9uUGFzdGVib2Fy
ZChTdHJpbmcoKSk7CiB9CiAKLWJvb2wgRWRpdG9yOjpjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9u
ZUltYWdlcygpCi17Ci0gICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uID0gbV9m
cmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKLSAgICByZXR1cm4gc2VsZWN0aW9uLmlzUmFu
Z2UoKSAmJiAhc2VsZWN0aW9uLmlzSW5QYXNzd29yZEZpZWxkKCk7Ci19Ci0KLXZvaWQgRWRpdG9y
Ojp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oKQotewotICAgIGlmICghY2FuQ29weUV4Y2x1
ZGluZ1N0YW5kYWxvbmVJbWFnZXMoKSkgewotICAgICAgICBQQUw6OnN5c3RlbUJlZXAoKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOwotICAgIHR5
cGVzLmFwcGVuZChTdHJpbmcobGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKSkpOwotICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgcGxhdGZvcm1TdHJhdGVnaWVz
KCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRUeXBlcyh0eXBlcywgTlNGaW5kUGJvYXJkKTsK
LSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldFN0cmlu
Z0ZvclR5cGUobV9mcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHNlbGVjdGVk
VGV4dEZvckRhdGFUcmFuc2ZlcigpKSwgbGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKSwgTlNG
aW5kUGJvYXJkKTsKLSAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLX0KLQog
dm9pZCBFZGl0b3I6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKQogewogICAgIFBhc3RlYm9hcmQgcGFzdGVib2FyZChwYXN0ZWJvYXJkTmFt
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGEyOGVjNjhjZDM5
ZDQ0NTE0Y2U3MjY2YTgzNzhiZjEzM2I2Y2FiZjIuLmZmNjlmY2MxOTVmZjE5Zjg4OWI1Y2IzNWMy
ZjhjNzEzNmQwMDgyYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBA
IC0yMTUsNiArMjE1LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291
bnQoKSBmaW5hbCB7IHJldHVybiAwOyB9CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRv
Y3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50KSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgYm9vbCBwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShEb2N1bWVudEZyYWdtZW50KikgZmluYWwg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29u
c3QgU3RyaW5nJikgZmluYWwgeyB9CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBE
cm9wKERvY3VtZW50RnJhZ21lbnQmLCBSYW5nZSYsIGJvb2wpIGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAppbmRleCBhNjVkODBjZWEwZjI3ZGFmNGJm
ZDI4YTVhZDA4ZWEwYTY0YzQ2NDhiLi40OGVkN2NlNDY4M2U5ODE0M2U1NWFmZDBhMDcxYzgyZWYy
NGU4ZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTEzNCw2ICsxMzQsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoKSA9IDA7
CiAgICAgdmlydHVhbCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFnbWVudEZy
b21EZWxlZ2F0ZShpbnQgaW5kZXgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybXNUd29T
dGVwUGFzdGUoRG9jdW1lbnRGcmFnbWVudCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
U3RyaW5nRm9yRmluZEluUGFnZShjb25zdCBTdHJpbmcmKSA9IDA7CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDlkN2NjNWNjNmM0ZTcxYzRi
YzYzY2QxZmJmMzQyNGRmNDdhM2ZjNGMuLjBhNWU5ODg2MDRkMzkyZjRkZTI5ODk3MTJiN2E5YzQ5
NWMyOWY2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTM3MSw2ICszNzEsNyBAQCBVSVBy
b2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQog
CiBVSVByb2Nlc3MvaW9zL0RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS5tbQogVUlQcm9jZXNzL2lv
cy9FZGl0YWJsZUltYWdlQ29udHJvbGxlci5tbQorVUlQcm9jZXNzL2lvcy9HbG9iYWxGaW5kSW5Q
YWdlU3RhdGUuY3BwCiBVSVByb2Nlc3MvaW9zL0lucHV0Vmlld1VwZGF0ZURlZmVycmVyLm1tCiBV
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCiBVSVByb2Nlc3MvaW9zL1BlbmNpbEtp
dFNvZnRMaW5rLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQppbmRleCA2ZDg5Mzk2NWViMzQ1Y2I2ODEzZGZlN2YwYzY0YzRkMzIxYjZkYTZiLi5h
MDMxZjEzMmE4MDhjMzJkYWIxOWZkZmQzYjNjYmQ5ZTkxZTk0YzhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbXBvcnQgIkZpbmRDbGllbnQuaCIKICNpbXBvcnQgIkZyb250Qm9hcmRTZXJ2aWNlc1NQSS5o
IgogI2ltcG9ydCAiRnVsbHNjcmVlbkNsaWVudC5oIgorI2ltcG9ydCAiR2xvYmFsRmluZEluUGFn
ZVN0YXRlLmgiCiAjaW1wb3J0ICJJY29uTG9hZGluZ0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJMZWdh
Y3lTZXNzaW9uU3RhdGVDb2RpbmcuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKQEAgLTQ0NDIsNiAr
NDQ0MywxNSBAQCAtICh2b2lkKV9zZXRFZGl0YWJsZTooQk9PTCllZGl0YWJsZQogI2VuZGlmCiB9
CiAKKy0gKHZvaWQpX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbjooaWQpc2VuZGVyCit7Cisj
aWYgUExBVEZPUk0oTUFDKQorICAgIFtzZWxmIHRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbjpz
ZW5kZXJdOworI2Vsc2UKKyAgICBfcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKCJUYWtlRmluZFN0
cmluZ0Zyb21TZWxlY3Rpb24iX3MpOworI2VuZGlmCit9CisKIC0gKF9XS1JlbW90ZU9iamVjdFJl
Z2lzdHJ5ICopX3JlbW90ZU9iamVjdFJlZ2lzdHJ5CiB7CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAt
NDcwMCw2ICs0NzEwLDE2IEBAIC0gKFVJVGV4dElucHV0QXNzaXN0YW50SXRlbSAqKWlucHV0QXNz
aXN0YW50SXRlbQogICAgIHJldHVybiBbX2NvbnRlbnRWaWV3IGlucHV0QXNzaXN0YW50SXRlbUZv
cldlYlZpZXddOwogfQogCisrIChOU1N0cmluZyAqKV9zdHJpbmdGb3JGaW5kSW5QYWdlCit7Cisg
ICAgcmV0dXJuIFdlYktpdDo6c3RyaW5nRm9yRmluZEluUGFnZSgpOworfQorCisrICh2b2lkKV9j
bGVhclN0cmluZ0ZvckZpbmRJblBhZ2UKK3sKKyAgICBXZWJLaXQ6OnVwZGF0ZVN0cmluZ0ZvckZp
bmRJblBhZ2UoZW1wdHlTdHJpbmcoKSk7Cit9CisKICNlbmRpZgogCiAtIChOU0RhdGEgKilfc2Vz
c2lvblN0YXRlRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggODhiNTYzNWJlOGZlNmEwYmIyZTVkM2NmNjJjN2Jm
NjJmNmM3ODZiZC4uYjdkNmJmYmFlNDFhOTExYTgzZjQ5YjEzYTAxMjRiNTY3M2JlY2I0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCkBAIC0yMTUsNiArMjE1LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIs
IF9XS1JlY3RFZGdlKSB7CiAtIChJQkFjdGlvbilfY2hhbmdlTGlzdFR5cGU6KGlkKXNlbmRlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0g
KElCQWN0aW9uKV9wYXN0ZUFzUXVvdGF0aW9uOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtIChJQkFjdGlvbilfcGFzdGVB
bmRNYXRjaFN0eWxlOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistIChJQkFjdGlvbilfdGFrZUZpbmRTdHJpbmdGcm9tU2Vs
ZWN0aW9uOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAKQEAgLTI1Niw2ICsyNTcs
OSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RHJhZ0ludGVyYWN0aW9uUG9saWN5OikgX1dL
RHJhZ0ludGVyYWN0aW9uUG9saWN5IF9kcmFnSW50ZXJhY3Rpb25Qb2xpY3kgV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTEuMCkpOwogCitAcHJvcGVydHkgKGNsYXNzLCBub25hdG9taWMsIHJlYWRvbmx5
KSBOU1N0cmluZyAqX3N0cmluZ0ZvckZpbmRJblBhZ2UgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tf
SU9TX1RCQSkpOworKyAodm9pZClfY2xlYXJTdHJpbmdGb3JGaW5kSW5QYWdlIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKwogLSAodm9pZClfYmVnaW5JbnRlcmFjdGl2ZU9ic2N1
cmVkSW5zZXRzQ2hhbmdlOwogLSAodm9pZClfZW5kSW50ZXJhY3RpdmVPYnNjdXJlZEluc2V0c0No
YW5nZTsKIC0gKHZvaWQpX2hpZGVDb250ZW50VW50aWxOZXh0VXBkYXRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAwMWJlYTUwZDRmMmYyODE5MDNkZDYxZjljZmU0
MDhkZmNjMDJiM2FkLi4wOTExZDY1MTc1MjBjMjhkOTYxYjA0YjgwNGJiZjAxMDgyZDVkOTFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTcyMCw2ICsxNzIwLDgg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGludGVycHJldEtleUV2ZW50KGNvbnN0IEVkaXRvclN0YXRl
JiwgYm9vbCBpc0NoYXJFdmVudCwgYm9vbCYgaGFuZGxlZCk7CiAgICAgdm9pZCBzaG93UGxheWJh
Y2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxl
bWVudFJlY3QsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSwgY29uc3QgU3RyaW5nJik7CiAg
ICAgdm9pZCBzZWxlY3Rpb25SZWN0c0NhbGxiYWNrKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWxl
Y3Rpb25SZWN0PiYsIENhbGxiYWNrSUQpOworCisgICAgdm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5k
SW5QYWdlKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHZv
aWQgcHJpbnRGaW5pc2hlZENhbGxiYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBD
YWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCAxZTQ1MThmNzFjNDFmZDFlNjI4ODg2ZmMwM2UzNTEyZjAxOGFhMWM5
Li40NjRjMDMzMjc3MWIyMWU5OTVkMmE1MDI3NTQ5YjY0MTVhMzNkMmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC00MTYsNiAr
NDE2LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogICAgIEVuYWJsZUluc3BlY3Rv
ck5vZGVTZWFyY2goKQogICAgIERpc2FibGVJbnNwZWN0b3JOb2RlU2VhcmNoKCkKKworICAgIFVw
ZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoU3RyaW5nIGZpbmRTdHJpbmcpCiAjZW5kaWYKIAogICAg
IERpZENoYW5nZUluc3BlY3RvckZyb250ZW5kQ291bnQodWludDY0X3QgY291bnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxYTE2MWFjYzQyMWJkM2Q5ZWE2
ZjE5ODE5ZWY1MDJmMWQ5YjQ0MjhmLi5iNDc2YjIzODFkYzNkM2ZkMTIxZDFlNTNjYWFkZGYyNDgz
YmRlMTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTQ3
NCw2ICs0NzQsMTEgQEAgcHVibGljOgogICAgIGJvb2wgc2FuZGJveEVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX3NhbmRib3hFbmFibGVkOyB9OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nRm9yRmluZEluUGFnZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RyaW5nRm9yRmluZEluUGFnZTsgfQorICAgIHZvaWQgc2V0U3RyaW5nRm9yRmlu
ZEluUGFnZShjb25zdCBTdHJpbmcmIHN0cmluZykgeyBtX3N0cmluZ0ZvckZpbmRJblBhZ2UgPSBz
dHJpbmc7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXpl
KCk7CiAKQEAgLTcyOSw2ICs3MzQsMTAgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkKICAgICBib29sIG1fc2FuZGJveEVuYWJsZWQgeyBmYWxzZSB9OwogI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFN0cmluZyBtX3N0cmluZ0ZvckZp
bmRJblBhZ2U7CisjZW5kaWYKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvR2xvYmFsRmluZEluUGFnZVN0YXRlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9HbG9iYWxGaW5kSW5QYWdlU3RhdGUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFiYmIxYTg4YzZmNGQwZjk1ZmMxNmRlODljM2E1NzE2ZGE5MmVhMWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvR2xvYmFsRmluZEluUGFn
ZVN0YXRlLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJHbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCIKKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisKKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RhdGljIFN0cmluZyYgZ2xvYmFsU3RyaW5nRm9yRmluZEluUGFnZSgpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc3RyaW5nOworICAgIHJldHVybiBz
dHJpbmcuZ2V0KCk7Cit9CisKK3ZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25zdCBT
dHJpbmcmIHN0cmluZykKK3sKKyAgICBnbG9iYWxTdHJpbmdGb3JGaW5kSW5QYWdlKCkgPSBzdHJp
bmc7Cit9CisKK2NvbnN0IFN0cmluZyYgc3RyaW5nRm9yRmluZEluUGFnZSgpCit7CisgICAgcmV0
dXJuIGdsb2JhbFN0cmluZ0ZvckZpbmRJblBhZ2UoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL0dsb2JhbEZpbmRJblBhZ2VTdGF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL0dsb2JhbEZpbmRJblBhZ2VTdGF0ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjll
OGI5ODViN2MyMzA4MzQ4ZDkxNGU1MWIxMGQ3NTk3M2Y3NDQ1MzUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvR2xvYmFsRmluZEluUGFnZVN0YXRlLmgKQEAg
LTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBTdHJpbmc7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCit2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgV1RG
OjpTdHJpbmcmKTsKK2NvbnN0IFdURjo6U3RyaW5nJiBzdHJpbmdGb3JGaW5kSW5QYWdlKCk7CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4
IGY2ZDMwNGI4MTA2MWI1YWQ0MTg4MDZiZDg5ZDZiNzY3YWY0ZGJiYzIuLmE1MjFiN2JjZDUxMjYy
ZTMzZjQxYTJjMjI2NGIyNzI4YzUyYzU5ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiQVBJ
VUlDbGllbnQuaCIKICNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKICNpbXBvcnQgIkVkaXRpbmdS
YW5nZS5oIgorI2ltcG9ydCAiR2xvYmFsRmluZEluUGFnZVN0YXRlLmgiCiAjaW1wb3J0ICJJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2lt
cG9ydCAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgpAQCAtMjI2LDYgKzIyNywxNCBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cmVzZW5kTGFzdFZpc2libGVDb250ZW50UmVjdHMoKQogICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6Vmlld1VwZGF0ZURpc3BhdGNoZXI6OlZpc2libGVDb250ZW50
UmVjdFVwZGF0ZShtX3BhZ2VJRCwgbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKSwgMCk7
CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBXZWJLaXQ6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2Uoc3RyaW5nKTsKK30KKwog
c3RhdGljIGlubGluZSBmbG9hdCBhZGp1c3RlZFVuZXhwb3NlZEVkZ2UoZmxvYXQgZG9jdW1lbnRF
ZGdlLCBmbG9hdCBleHBvc2VkUmVjdEVkZ2UsIGZsb2F0IGZhY3RvcikKIHsKICAgICBpZiAoZXhw
b3NlZFJlY3RFZGdlIDwgZG9jdW1lbnRFZGdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGRhMDJmYWI1MTI3YTFmNDY3N2Y5ZTIyMGUz
MTIzMDEwMzQ1YTM3YS4uOWI1MmQ4NGRhNjVmNDk4YWZhN2EyYjc5MDY4NjVhNmQwZTQ0NTA3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC03NSw5ICs3NSw5IEBACiAJCTAwNUQxNThGMThFNEM0RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAw
NUQxNThFMThFNEM0RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwMEI5NjYxNjE4RTI0Q0JBMDBD
RTFGODggLyogQVBJRmluZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDBCOTY2MTUxOEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGllbnQu
aCAqLzsgfTsKIAkJMDBCOTY2MUExOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAwQjk2NjE4MThFMjVB
RTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50LmggKi87IH07CisJCTA3Mjk3RjlGMUMxN0FBMUEwMTVG
MDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzMyMUY5RDFDMTdCQkVBMjIzRjA3MzUgLyogUGVyc2lzdGVuY3lV
dGlscy5oICovOyB9OwogCQkwNzI5N0Y5RjFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3Mjk3RjlEMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eS5oICovOyB9OwogCQkwNzI5N0Y5RjFDMTdCQkVBMDE1RjA3MzUgLyogRGV2aWNl
SWRIYXNoU2FsdFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3Mjk3RjlEMUMxN0JCRUEyMjNGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3Rv
cmFnZS5oICovOyB9OwotCQkwNzI5N0Y5RjFDMTdBQTFBMDE1RjA3MzUgLyogUGVyc2lzdGVuY3lV
dGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcz
MjFGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIFBlcnNpc3RlbmN5VXRpbHMuaCAqLzsgfTsKIAkJMDcy
OTdGQTMxQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI5N0ZBMTFDMTg2
QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzRFNzVGRTFERjIyMTE5MDBE
MzE4RUMgLyogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU3NUZCMURGMUZEMTMwMEQzMThFQyAvKiBVc2Vy
TWVkaWFQcm9jZXNzTWFuYWdlci5oICovOyB9OwogCQkwNzZFODg0RTFBMTNDQURGMDA1RTkwRkMg
LyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3NkU4ODREMUExM0NBREYwMDVFOTBGQyAvKiBBUElDb250ZXh0TWVu
dUNsaWVudC5oICovOyB9OwpAQCAtNzM4LDYgKzczOCw3IEBACiAJCTJFQTdCM0QxMjAyNkNFRjgw
MDlDRTVBQyAvKiBXS051bWJlclBhZFZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUE3QjNDRjIwMjZDRUY4MDA5Q0U1QUMgLyog
V0tOdW1iZXJQYWRWaWV3Q29udHJvbGxlci5oICovOyB9OwogCQkyRUE3QjNENTIwMjZDRjIzMDA5
Q0U1QUMgLyogV0tOdW1iZXJQYWRWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRUE3QjNEMzIwMjZDRjIzMDA5Q0U1QUMgLyogV0tOdW1iZXJQYWRW
aWV3LmggKi87IH07CiAJCTJFQjZGQzAxMjAzMDIxOTYwMDE3RTYxOSAvKiBXS1RpbWVQaWNrZXJW
aWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkVCNkZCRkYyMDMwMjE5NjAwMTdFNjE5IC8qIFdLVGltZVBpY2tlclZpZXdDb250cm9s
bGVyLmggKi87IH07CisJCTJFRTQwNTQ1MjFEMzAzNzkwMDE2NjJGOSAvKiBHbG9iYWxGaW5kSW5Q
YWdlU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFRTQwNTQzMjFEMzAzNzkwMDE2NjJGOSAvKiBHbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCAqLzsg
fTsKIAkJMkY4MzM2ODYxRkExMzlERjAwQzZFMDgwIC8qIFRvdWNoQmFyTWVudURhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJGRDQzQjkxMUZBMDA2
QTEwMDgzRjUxQyAvKiBUb3VjaEJhck1lbnVEYXRhLmggKi87IH07CiAJCTMxMDk5OUM3MTQ2QzlF
M0QwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTY4MTQ2QzcxRjUwMDI5REVCOSAvKiBX
ZWJOb3RpZmljYXRpb25DbGllbnQuaCAqLzsgfTsKIAkJMzEyQzBDNEExNDZEREM4QTAwMTZDOTEx
IC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNh
dGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTEwMzgsOCArMTAzOSw4IEBACiAJCTU3RENFREMzMjE0RjExNEMwMDE2Qjg0NyAv
KiBNb2NrTG9jYWxTZXJ2aWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1N0RDRURDMTIxNEYxMTRDMDAxNkI4NDcgLyogTW9ja0xvY2FsU2VydmljZS5o
ICovOyB9OwogCQk1N0RDRURDNzIxNEYxODMwMDAxNkI4NDcgLyogTW9ja0xvY2FsQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VE
QzUyMTRGMTgzMDAwMTZCODQ3IC8qIE1vY2tMb2NhbENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNTdE
Q0VEQ0IyMTRGNEU0MjAwMTZCODQ3IC8qIE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VEQzkyMTRGNEU0
MjAwMTZCODQ3IC8qIE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5oICovOyB9OwotCQk1OEU5NzdE
RjIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4RTk3N0REMjFDNDlBMDAw
MDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oICovOyB9OwogCQk1ODc3NDNB
NjIxQzMwQkJFMDBBRTkwODQgLyogSFRUUFNVcGdyYWRlTGlzdC5kYiBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTg3NzQzQTQyMUMzMEFEODAwQUU5MDg0
IC8qIEhUVFBTVXBncmFkZUxpc3QuZGIgKi87IH07CisJCTU4RTk3N0RGMjFDNDlBMDAwMDVEOTJB
NiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNThFOTc3REQyMUM0OUEwMDAwNUQ5MkE2IC8qIE5ldHdv
cmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggKi87IH07CiAJCTVDMEIxNzc4MUU3Qzg4MEUwMEU5MTIz
QyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMEIxNzc0MUU3Qzg3OUMwMEU5MTIz
QyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNUMw
QjE3NzkxRTdDODgyMTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzBCMTc3
NjFFN0M4NzlDMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LzsgfTsKIAkJNUMxNDI2RUQxQzIzRjgwOTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzE0MjZFMzFDMjNGODA1MDBENDExODMgLyogTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCAqLzsgfTsKQEAgLTE4NTYsMTQgKzE4NTcsMTQgQEAKIAkJMDBCOTY2MTUxOEUy
NENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVBJRmluZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
MEI5NjYxNzE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpbmRDbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTAwQjk2NjE4MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbmRDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDcyOTQ1NUMxQzE3MTFFQTAwM0YwNzM1IC8qIFBlcnNpc3RlbmN5
VXRpbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVyc2lzdGVu
Y3lVdGlscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RjlDMUMxNzEx
RUEwMDNGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RjlDMUMxN0JCRUEwMDNGMDczNSAvKiBVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RjlEMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2tQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
c2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzI5N0Y5RDFDMTdCQkVBMjIzRjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlSWRIYXNoU2FsdFN0b3Jh
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDcyOTQ1NUMxQzE3MTFFQTAwM0Yw
NzM1IC8qIFBlcnNpc3RlbmN5VXRpbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUGVyc2lzdGVuY3lVdGlscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTA3MzIxRjlEMUMxN0JCRUEyMjNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyOTdGQTAxQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcyOTdGQTExQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MzIxRjlEMUMx
N0JCRUEyMjNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc0RTc1RkIxREYxRkQxMzAwRDMxOEVDIC8qIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVByb2Nlc3NNYW5h
Z2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NEU3NUZDMURGMjAwMjQwMEQz
MThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3NEU3NjAwMURGNzA3NUQwMEQzMThFQyAvKiBNZWRpYURldmlj
ZVNhbmRib3hFeHRlbnNpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMjgxOCw2ICsyODE5LDggQEAKIAkJMkVBN0IzRDQyMDI2Q0YyMzAwOUNFNUFD
IC8qIFdLTnVtYmVyUGFkVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTnVtYmVyUGFk
Vmlldy5tbTsgcGF0aCA9IGlvcy9mb3Jtcy9XS051bWJlclBhZFZpZXcubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJFQjZGQkZGMjAzMDIxOTYwMDE3RTYxOSAvKiBXS1RpbWVQaWNr
ZXJWaWV3Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1RpbWVQaWNrZXJWaWV3Q29udHJv
bGxlci5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLVGltZVBpY2tlclZpZXdDb250cm9sbGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQjZGQzAwMjAzMDIxOTYwMDE3RTYxOSAvKiBX
S1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLVGlt
ZVBpY2tlclZpZXdDb250cm9sbGVyLm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLVGltZVBpY2tlclZp
ZXdDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUU0MDU0MjIx
RDMwMzc5MDAxNjYyRjkgLyogR2xvYmFsRmluZEluUGFnZVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEdsb2JhbEZpbmRJblBhZ2VTdGF0ZS5jcHA7IHBhdGgg
PSBpb3MvR2xvYmFsRmluZEluUGFnZVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkVFNDA1NDMyMUQzMDM3OTAwMTY2MkY5IC8qIEdsb2JhbEZpbmRJblBhZ2VTdGF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHbG9iYWxGaW5kSW5QYWdlU3RhdGUu
aDsgcGF0aCA9IGlvcy9HbG9iYWxGaW5kSW5QYWdlU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkY4MDlERDUxRkJEMUJDOTAwNUZFNjNBIC8qIFRvdWNoQmFyTWVudUl0ZW1E
YXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkY4MDlERDkxRkJEMUJGMjAwNUZFNjNBIC8qIFRv
dWNoQmFyTWVudUl0ZW1EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRvdWNoQmFyTWVudUl0ZW1EYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJGRDQzQjkxMUZBMDA2QTEwMDgzRjUx
QyAvKiBUb3VjaEJhck1lbnVEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFRvdWNoQmFyTWVudURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0MDYs
OSArMzQwOSw5IEBACiAJCTU3RENFREM2MjE0RjE4MzAwMDE2Qjg0NyAvKiBNb2NrTG9jYWxDb25u
ZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTW9ja0xvY2FsQ29ubmVjdGlvbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdEQ0VEQzkyMTRGNEU0MjAwMTZCODQ3IC8q
IE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2NrQXV0aGVudGlj
YXRvck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdEQ0VEQ0QyMTRG
NTE2ODAwMTZCODQ3IC8qIE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1ODc3NDNBNDIxQzMwQUQ4MDBBRTkwODQgLyog
SFRUUFNVcGdyYWRlTGlzdC5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBIVFRQU1VwZ3JhZGVMaXN0LmRiOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9IVFRQU1VwZ3JhZGVMaXN0LmRiOyBzb3VyY2VUcmVlID0gQlVJ
TFRfUFJPRFVDVFNfRElSOyB9OwogCQk1OEU5NzdEQzIxQzQ5OUZFMDA1RDkyQTYgLyogTmV0d29y
a0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1OEU5NzdERDIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hUVFBTVXBncmFk
ZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0hUVFBT
VXBncmFkZUNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTg3NzQzQTQy
MUMzMEFEODAwQUU5MDg0IC8qIEhUVFBTVXBncmFkZUxpc3QuZGIgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gSFRUUFNVcGdyYWRl
TGlzdC5kYjsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvSFRUUFNVcGdyYWRlTGlzdC5k
Yjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNUMwQjE3NzQxRTdDODc5
QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1NvY2tldFN0cmVhbU1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtTb2Nr
ZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1QzBCMTc3NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVh
bU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtTb2Nr
ZXRTdHJlYW1NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3Jr
U29ja2V0U3RyZWFtTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJNUMwQjE3NzYxRTdDODc5QzAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2Nr
ZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwpAQCAtNTgwNiw2ICs1ODA5LDggQEAKIAkJCQkyRDU4NzVCRDIxOUI1
MzE1MDA3MEI5QUEgLyogRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIuaCAqLywKIAkJCQkyRDU4NzVC
QjIxOUIyOEE1MDA3MEI5QUEgLyogRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4g
Ki8sCiAJCQkJMkQ1ODc1QkUyMTlCNTMxNTAwNzBCOUFBIC8qIEVkaXRhYmxlSW1hZ2VDb250cm9s
bGVyLm1tICovLAorCQkJCTJFRTQwNTQyMjFEMzAzNzkwMDE2NjJGOSAvKiBHbG9iYWxGaW5kSW5Q
YWdlU3RhdGUuY3BwICovLAorCQkJCTJFRTQwNTQzMjFEMzAzNzkwMDE2NjJGOSAvKiBHbG9iYWxG
aW5kSW5QYWdlU3RhdGUuaCAqLywKIAkJCQkyREQ0NUFEQzFFNUY4OTcyMDA2QzM1NUYgLyogSW5w
dXRWaWV3VXBkYXRlRGVmZXJyZXIuaCAqLywKIAkJCQkyREQ0NUFERDFFNUY4OTcyMDA2QzM1NUYg
LyogSW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIubW0gKi8sCiAJCQkJMEYwQzM2NUQxOEMxMTBBNTAw
RjYwN0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24ubW0gKi8sCkBAIC05MDE5LDYgKzkwMjQsNyBA
QAogCQkJCUJDMDZGNDRBMTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzA2RjQzQTEyREJDQ0ZC
MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggaW4g
SGVhZGVycyAqLywKKwkJCQkyRUU0MDU0NTIxRDMwMzc5MDAxNjYyRjkgLyogR2xvYmFsRmluZElu
UGFnZVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREEwNDlCODE4MENDRDBBMDBBQUZBOUUg
LyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMENFNzJBRDEy
NDdFNzhEMDBCQzBFQzQgLyogSGFuZGxlTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFD
NzVBMUIxQjMzNjgyNzAwNTY3NDVCIC8qIEhhbmdEZXRlY3Rpb25EaXNhYmxlci5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNGI1YTZkM2FkZGI0NDNlOTgwMGYwYTU1NDdi
Yjk3OWZjNjRkODBiYS4uMTY4MDRjYjg5OTA5ZWNjODcyNmQxZGI2NTA2OTc5YjY4NzE2M2NlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTczLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgaW50
IGdldFBhc3RlYm9hcmRJdGVtc0NvdW50KCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRv
Y3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSBm
aW5hbDsKICAgICBib29sIHBlcmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3VtZW50RnJh
Z21lbnQqKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3Qg
U3RyaW5nJikgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdl
YkNvcmU6OkRvY3VtZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYsIGJvb2wgaXNNb3ZlKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KaW5kZXggYzYwNDM4YzRlNWJj
YmI0YTQzYzgzYjg1ZDQ0MTkxMmVjNDc3NDYyNy4uMjIxMjMyNWUwZTZiNWJkNGI2OTY0OTY3MTRj
MzQyNzE5MmZkYTkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KQEAgLTg2
LDYgKzg2LDExIEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShX
ZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50KikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQg
V2ViRWRpdG9yQ2xpZW50Ojp1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFN0cmluZyYg
ZmluZFN0cmluZykKK3sKKyAgICBtX3BhZ2UtPnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoZmlu
ZFN0cmluZyk7Cit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpvdmVyZmxvd1Njcm9sbFBvc2l0
aW9uQ2hhbmdlZCgpCiB7CiAgICAgbV9wYWdlLT5kaWRDaGFuZ2VTZWxlY3Rpb24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmYzRlYTFkZmI5NDI2
NGNhMWI5N2JmZDg5NjUzMjBlNDAyZTA3MTExLi4zNGRkZmY1MTUwYjBhNjIxMmJhMmI2MDg3ZjVk
Nzk2YmM1NzA2NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC05MzksNiArOTM5LDggQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6OlZpZXdw
b3J0Q29uZmlndXJhdGlvbiYgdmlld3BvcnRDb25maWd1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV92aWV3cG9ydENvbmZpZ3VyYXRpb247IH0KIAogICAgIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2
YWlsYWJpbGl0eUNoYW5nZWQoKTsKKworICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZEluUGFn
ZShjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCmluZGV4IDkwNjU4MDU2Mzg5NzM3ZWY5Y2FhNWZmZDYxZThlZGFhZGY3OWNjZTkuLjYyOThj
ZTk1ZGM3NGEwYzViNmYxMGIxZTEwYTcwNTQ0NWE0MjRjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0zMTI1LDYgKzMx
MjUsMTEgQEAgdm9pZCBXZWJQYWdlOjpoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdl
ZCgpCiAgICAgICAgIGZvY3VzZWRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2Fwc0xvY2tTdGF0ZU1h
eUhhdmVDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlU3RyaW5nRm9yRmluZElu
UGFnZShjb25zdCBTdHJpbmcmIGZpbmRTdHJpbmcpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpVcGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGZpbmRTdHJpbmcpKTsKK30KKwog
I2lmIFVTRShRVUlDS19MT09LKQogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUGFzc3dvcmRGb3JR
dWlja0xvb2tEb2N1bWVudChjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAppbmRleCA4NDY0MDU5YzQ5NTJiOTZmNjE0YjdkNTQ1M2E3NTE1ODVkOGU0YWI1Li4wYTM2MjRl
NTdjNDcxYzYyNWEzMjY5NjQwMmMyM2JhNGU2NGI5OWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAt
MTQ0LDYgKzE0NCw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3RlYm9hcmRJdGVtc0NvdW50
KCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50
RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSBmaW5hbDsKICAgICBib29sIHBlcmZvcm1z
VHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqKSBmaW5hbDsKKyAgICB2b2lk
IHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAjZW5k
aWYKIAogICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21l
bnQmLCBXZWJDb3JlOjpSYW5nZSYgZGVzdGluYXRpb24sIGJvb2wgaXNNb3ZlKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358076</attachid>
            <date>2018-12-25 23:04:13 -0800</date>
            <delta_ts>2018-12-26 12:50:43 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-193034-20181225230412.patch</filename>
            <type>text/plain</type>
            <size>39433</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVjZmVlMWQyYzlmNjE5
N2RmNzU4MjA5NjQwMTM1Yzg0MjM4MjhmMi4uZGU2MzkyZTEwMzg3N2QxMWM3ZWI3MTViMDE2YTg2
Zjk1MWI2MDlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTEyLTI1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB1c2luZyB0aGUgY3VycmVudCB0ZXh0IHNlbGVjdGlvbiBhcyB0aGUgZmluZCBzdHJpbmcg
b24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTMwMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTM4NzM5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdl
cyBjb25zdCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ29tbWFuZE1hcCk6
CisgICAgICAgICogZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0
aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNhbkNvcHlF
eGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgor
CiAyMDE4LTEyLTIyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbSGFyZkJ1enpdIFdpZHRoIG5vdCBjb3JyZWN0bHkgcmVwb3J0ZWQgYXMgMCBm
b3IgemVybyBmb250IHNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWZmYWM3MjQ3NjE2MTQ1MGM1NDVhM2Q5YThj
Mzc5ODI5MTEwOTFjMS4uZDM4ODRiZTJjOWNlNDU4NDc4NTIzYTJkOTE0Y2I5ZDAyYWEwYjZkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxOC0xMi0yNSAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNpbmcgdGhl
IGN1cnJlbnQgdGV4dCBzZWxlY3Rpb24gYXMgdGhlIGZpbmQgc3RyaW5nIG9uIGlPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMDM0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTEzODczOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfdGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uOl0pOgorICAgICAgICAoK1tXS1dlYlZpZXcgX3N0cmluZ0Zv
ckZpbmRJblBhZ2VdKToKKyAgICAgICAgKCtbV0tXZWJWaWV3IF9jbGVhclN0cmluZ0ZvckZpbmRJ
blBhZ2VdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL0dsb2JhbEZpbmRJblBhZ2VTdGF0
ZS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tLgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxTdHJp
bmdGb3JGaW5kSW5QYWdlKToKKyAgICAgICAgKFdlYktpdDo6dXBkYXRlU3RyaW5nRm9yRmluZElu
UGFnZSk6CisgICAgICAgIChXZWJLaXQ6OnN0cmluZ0ZvckZpbmRJblBhZ2UpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvR2xvYmFsRmluZEluUGFnZVN0YXRlLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9T
Lm1tLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UpOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1
cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKToKKwogMjAxOC0xMi0yMyAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBSZW1vdmUgc29tZSB1bm5l
Y2Vzc2FyeSBlZGl0aW5nIFNQSSBhZnRlciA8cmRhcjovL3Byb2JsZW0vNDYwNDc1NDY+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNDQxYmIwOTMwZWQ5ZDliNmY2MDg2MGE3MzU0MzEw
NTkzNmY4NWVlZS4uOTEzZjZjY2FkM2Y4ZGJiN2NiYjY1N2YwN2ExZmE5MTgwM2I0ZTQ1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTEyLTI1ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciB1c2luZyB0aGUgY3VycmVudCB0ZXh0IHNlbGVjdGlvbiBhcyB0aGUgZmluZCBzdHJp
bmcgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTMwMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTM4NzM5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lmg6CisKIDIwMTgtMTItMjAgIFl1c3VrZSBTdXp1a2kgIDx5dXN1a2VzdXp1
a2lAc2xvd3N0YXJ0Lm9yZz4KIAogICAgICAgICBVc2UgUmVmPD4gYXMgbXVjaCBhcyBwb3NzaWJs
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGE1ZTg1ODRmNGFlODc3MjMxNGY2M2Yz
NDE3YmMwY2Q2ZTQ2MTc2ZmQuLjhkMTcxMzdiZmQ1NDc2YmNlYjRlOWJkNzJlMzcwZmE0ZjUzODE2
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTQyNTYsNCArNDI1NiwxMCBAQCBS
ZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gRWRpdG9yOjppbnNlcnRFZGl0YWJsZUltYWdlKCkKICAg
ICByZXR1cm4gSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6Omluc2VydEVkaXRhYmxlSW1hZ2Uo
ZG9jdW1lbnQoKSk7CiB9CiAKK2Jvb2wgRWRpdG9yOjpjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9u
ZUltYWdlcygpIGNvbnN0Cit7CisgICAgYXV0byYgc2VsZWN0aW9uID0gbV9mcmFtZS5zZWxlY3Rp
b24oKS5zZWxlY3Rpb24oKTsKKyAgICByZXR1cm4gc2VsZWN0aW9uLmlzUmFuZ2UoKSAmJiAhc2Vs
ZWN0aW9uLmlzSW5QYXNzd29yZEZpZWxkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDdjYWQyMjA5ODUyNjAwNmY5Y2M4OWMxY2UwZTI3
OTQyMmVjNzM4NWYuLjA1Y2MxYjgyYWVhYzE0MGI0MDkzMGRmNmYzN2VhNTQ5NTVjNjNmNDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDg1LDkgKzQ4NSw4IEBAIHB1YmxpYzoKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RyaW5nU2VsZWN0aW9u
Rm9yUGFzdGVib2FyZCgpOwogICAgIFN0cmluZyBzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJk
V2l0aEltYWdlQWx0VGV4dCgpOwotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGJvb2wg
Y2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJbWFnZXMoKTsKICAgICB2b2lkIHRha2VGaW5kU3Ry
aW5nRnJvbVNlbGVjdGlvbigpOworI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZU5vZGVGcm9t
UGFzdGVib2FyZChOb2RlKiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YVNlbGVjdGlvbkZvclBhc3RlYm9h
cmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CkBAIC00OTUsNiArNDk0LDggQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1
dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmluZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0g
TWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKKyAg
ICBib29sIGNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCkgY29uc3Q7CisKICAgICBT
dHJpbmcgY2xpZW50UmVwbGFjZW1lbnRVUkxGb3JSZXNvdXJjZShSZWY8U2hhcmVkQnVmZmVyPiYm
IHJlc291cmNlRGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKICNpZiAhUExBVEZPUk0o
V0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggOWZkYWMx
ZDYxMTk1MzhhY2UzZDRiZjhjMGVlMzE3OWY0N2M4YmQzMS4uMGIzYmJiOWJlNjk1NjllYjgyY2Yw
NTRkYzI0YzcxNWU3ZTRhZDQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1h
bmQuY3BwCkBAIC0xMTAyLDEzICsxMTAyLDE1IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVTd2FwV2l0
aE1hcmsoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09D
T0EpCisKIHN0YXRpYyBib29sIGV4ZWN1dGVUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oRnJh
bWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7
CiAgICAgZnJhbWUuZWRpdG9yKCkudGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKCk7CiAgICAg
cmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiBz
dGF0aWMgYm9vbCBleGVjdXRlVG9nZ2xlQm9sZChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9y
Q29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7CkBAIC0xMzY3LDEyICsxMzY5
LDE0IEBAIHN0YXRpYyBib29sIGVuYWJsZWRSZWRvKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0
b3JDb21tYW5kU291cmNlKQogICAgIHJldHVybiBmcmFtZS5lZGl0b3IoKS5jYW5SZWRvKCk7CiB9
CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09DT0EpCisKIHN0YXRpYyBib29s
IGVuYWJsZWRUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hbmRTb3VyY2UpCiB7CiAgICAgcmV0dXJuIGZyYW1lLmVkaXRvcigpLmNhbkNv
cHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCk7CiB9Ci0jZW5kaWYKKworI2VuZGlmIC8vIFBM
QVRGT1JNKENPQ09BKQogCiBzdGF0aWMgYm9vbCBlbmFibGVkVW5kbyhGcmFtZSYgZnJhbWUsIEV2
ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSkKIHsKQEAgLTE3MTgsNyArMTcyMiw3IEBAIHN0YXRp
YyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWFwKCkKICAgICAgICAgeyAiUGFzdGVH
bG9iYWxTZWxlY3Rpb24iLCB7IGV4ZWN1dGVQYXN0ZUdsb2JhbFNlbGVjdGlvbiwgc3VwcG9ydGVk
RnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRQYXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGws
IG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICNlbmRp
ZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICB7ICJU
YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24iLCB7IGV4ZWN1dGVUYWtlRmluZFN0cmluZ0Zyb21T
ZWxlY3Rpb24sIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkVGFrZUZpbmRT
dHJpbmdGcm9tU2VsZWN0aW9uLCBzdGF0ZU5vbmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlv
biwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAjZW5kaWYKICAgICB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0KaW5kZXggNWRlNzE2
ZmExYWM0YTliNjljODVmMDk2NmJhMjkzYmZhYmIyNmJmYy4uOTA2OWQ3OGJmNTk5ZTJkOGJiNWEy
YjE4YjMyNzhlYTAxNzc3ZDE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9FZGl0b3JDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0Vk
aXRvckNvY29hLm1tCkBAIC00NSw4ICs0NSwxMSBAQAogI2ltcG9ydCAiSFRNTENvbnZlcnRlci5o
IgogI2ltcG9ydCAiSFRNTEltYWdlRWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTFNwYW5FbGVtZW50
LmgiCisjaW1wb3J0ICJMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oIgogI2ltcG9ydCAiTGVnYWN5
V2ViQXJjaGl2ZS5oIgogI2ltcG9ydCAiUGFzdGVib2FyZC5oIgorI2ltcG9ydCAiUGFzdGVib2Fy
ZFN0cmF0ZWd5LmgiCisjaW1wb3J0ICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbXBvcnQgIlJl
bmRlckVsZW1lbnQuaCIKICNpbXBvcnQgIlJlbmRlclN0eWxlLmgiCiAjaW1wb3J0ICJTZXR0aW5n
cy5oIgpAQCAtNTUsNiArNTgsNyBAQAogI2ltcG9ydCAibWFya3VwLmgiCiAjaW1wb3J0IDxwYWwv
c3BpL2NvY29hL05TQXR0cmlidXRlZFN0cmluZ1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2Nv
YS9OU0tleWVkQXJjaGl2ZXJTUEkuaD4KKyNpbXBvcnQgPHBhbC9zeXN0ZW0vU291bmQuaD4KICNp
bXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvTlNV
UkxFeHRyYXMuaD4KIApAQCAtMjIzLDQgKzIyNywyOCBAQCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gRWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVib2Fy
ZAogICAgIHJldHVybiBXVEZNb3ZlKHJlYWRlci5mcmFnbWVudCk7CiB9CiAKK3ZvaWQgRWRpdG9y
Ojp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oKQoreworICAgIGlmICghY2FuQ29weUV4Y2x1
ZGluZ1N0YW5kYWxvbmVJbWFnZXMoKSkgeworICAgICAgICBQQUw6OnN5c3RlbUJlZXAoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc3RyaW5nRnJvbVNlbGVjdGlvbiA9IG1f
ZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhzZWxlY3RlZFRleHRGb3JEYXRh
VHJhbnNmZXIoKSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVz
OworICAgIHR5cGVzLmFwcGVuZChTdHJpbmcobGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKSkp
OworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgcGxhdGZvcm1T
dHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRUeXBlcyh0eXBlcywgTlNGaW5k
UGJvYXJkKTsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCkt
PnNldFN0cmluZ0ZvclR5cGUoV1RGTW92ZShzdHJpbmdGcm9tU2VsZWN0aW9uKSwgbGVnYWN5U3Ry
aW5nUGFzdGVib2FyZFR5cGUoKSwgTlNGaW5kUGJvYXJkKTsKKyAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKKyNlbHNlCisgICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNs
aWVudCgpKSB7CisgICAgICAgIC8vIFNpbmNlIHRoZSBmaW5kIHBhc3RlYm9hcmQgZG9lc24ndCBl
eGlzdCBvbiBpT1MsIFdlYktpdCBtYWludGFpbnMgaXRzIG93biBub3Rpb24gb2YgdGhlIGxhdGVz
dCBmaW5kIHN0cmluZywKKyAgICAgICAgLy8gd2hpY2ggU1BJIGNsaWVudHMgbWF5IHJlc3BlY3Qg
d2hlbiBwcmVzZW50aW5nIGZpbmQtaW4tcGFnZSBVSS4KKyAgICAgICAgY2xpZW50LT51cGRhdGVT
dHJpbmdGb3JGaW5kSW5QYWdlKHN0cmluZ0Zyb21TZWxlY3Rpb24pOworICAgIH0KKyNlbmRpZgor
fQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KaW5kZXggM2ZlNmY0
ZTdlNDUyMTI1YjUxZmExZmM3ZDQ4MDYxYzJjNDZiYjc3ZC4uNjk3MWYwMDk3NDM4YmViNDQ5M2Nm
MjEwZDI1NWQwNzFkMjYwOGIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1h
Yy5tbQpAQCAtNTUsNyArNTUsNiBAQAogI2ltcG9ydCAiV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0
cmFzLmgiCiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KLSNp
bXBvcnQgPHBhbC9zeXN0ZW0vU291bmQuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9OU1VSTEV4dHJh
cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05OCwyNyArOTcsNiBAQCB2b2lkIEVkaXRv
cjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBPcHRpb25TZXQ8
UGFzdGVPcHRpb24+CiAgICAgY2xpZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoU3RyaW5n
KCkpOwogfQogCi1ib29sIEVkaXRvcjo6Y2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJbWFnZXMo
KQotewotICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2Vs
ZWN0aW9uKCkuc2VsZWN0aW9uKCk7Ci0gICAgcmV0dXJuIHNlbGVjdGlvbi5pc1JhbmdlKCkgJiYg
IXNlbGVjdGlvbi5pc0luUGFzc3dvcmRGaWVsZCgpOwotfQotCi12b2lkIEVkaXRvcjo6dGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uKCkKLXsKLSAgICBpZiAoIWNhbkNvcHlFeGNsdWRpbmdTdGFu
ZGFsb25lSW1hZ2VzKCkpIHsKLSAgICAgICAgUEFMOjpzeXN0ZW1CZWVwKCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKLSAgICB0eXBlcy5hcHBl
bmQoU3RyaW5nKGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkpKTsKLSAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0
ZWJvYXJkU3RyYXRlZ3koKS0+c2V0VHlwZXModHlwZXMsIE5TRmluZFBib2FyZCk7Ci0gICAgcGxh
dGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRTdHJpbmdGb3JUeXBl
KG1fZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhzZWxlY3RlZFRleHRGb3JE
YXRhVHJhbnNmZXIoKSksIGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCksIE5TRmluZFBib2Fy
ZCk7Ci0gICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi19Ci0KIHZvaWQgRWRp
dG9yOjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSkKIHsKICAgICBQYXN0ZWJvYXJkIHBhc3RlYm9hcmQocGFzdGVib2FyZE5hbWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBhMjhlYzY4Y2QzOWQ0NDUxNGNl
NzI2NmE4Mzc4YmYxMzNiNmNhYmYyLi5mZjY5ZmNjMTk1ZmYxOWY4ODliNWNiMzVjMmY4YzcxMzZk
MDA4MmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMjE1LDYg
KzIxNSw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3RlYm9hcmRJdGVtc0NvdW50KCkgZmlu
YWwgeyByZXR1cm4gMDsgfQogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZy
YWdtZW50RnJvbURlbGVnYXRlKGludCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIGJv
b2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoRG9jdW1lbnRGcmFnbWVudCopIGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFN0cmlu
ZyYpIGZpbmFsIHsgfQogI2VuZGlmCiAKICAgICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChEb2N1
bWVudEZyYWdtZW50JiwgUmFuZ2UmLCBib29sKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKaW5kZXggYTY1ZDgwY2VhMGYyN2RhZjRiZmQyOGE1YWQw
OGVhMGE2NGM0NjQ4Yi4uNDhlZDdjZTQ2ODNlOTgxNDNlNTVhZmQwYTA3MWM4MmVmMjRlOGRjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBAIC0xMzQsNiArMTM0LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgaW50IGdldFBhc3RlYm9hcmRJdGVtc0NvdW50KCkgPSAwOwogICAgIHZp
cnR1YWwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdh
dGUoaW50IGluZGV4KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHBlcmZvcm1zVHdvU3RlcFBhc3Rl
KERvY3VtZW50RnJhZ21lbnQqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVN0cmluZ0Zv
ckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJikgPSAwOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShD
T0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA5ZDdjYzVjYzZjNGU3MWM0YmM2M2NkMWZi
ZjM0MjRkZjQ3YTNmYzRjLi4wYTVlOTg4NjA0ZDM5MmY0ZGUyOTg5NzEyYjdhOWM0OTVjMjlmNjM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zNzEsNiArMzcxLDcgQEAgVUlQcm9jZXNzL2lv
cy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KIAogVUlQcm9j
ZXNzL2lvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW0KIFVJUHJvY2Vzcy9pb3MvRWRpdGFi
bGVJbWFnZUNvbnRyb2xsZXIubW0KK1VJUHJvY2Vzcy9pb3MvR2xvYmFsRmluZEluUGFnZVN0YXRl
LmNwcAogVUlQcm9jZXNzL2lvcy9JbnB1dFZpZXdVcGRhdGVEZWZlcnJlci5tbQogVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQogVUlQcm9jZXNzL2lvcy9QZW5jaWxLaXRTb2Z0TGlu
ay5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
aW5kZXggNmQ4OTM5NjVlYjM0NWNiNjgxM2RmZTdmMGM2NGM0ZDMyMWI2ZGE2Yi4uYTAzMWYxMzJh
ODA4YzMyZGFiMTlmZGZkM2IzY2JkOWU5MWU5NGM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0
ICJGaW5kQ2xpZW50LmgiCiAjaW1wb3J0ICJGcm9udEJvYXJkU2VydmljZXNTUEkuaCIKICNpbXBv
cnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIKKyNpbXBvcnQgIkdsb2JhbEZpbmRJblBhZ2VTdGF0ZS5o
IgogI2ltcG9ydCAiSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiTGVnYWN5U2Vzc2lv
blN0YXRlQ29kaW5nLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC00NDQyLDYgKzQ0NDMsMTUg
QEAgLSAodm9pZClfc2V0RWRpdGFibGU6KEJPT0wpZWRpdGFibGUKICNlbmRpZgogfQogCistICh2
b2lkKV90YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246KGlkKXNlbmRlcgoreworI2lmIFBMQVRG
T1JNKE1BQykKKyAgICBbc2VsZiB0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246c2VuZGVyXTsK
KyNlbHNlCisgICAgX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZCgiVGFrZUZpbmRTdHJpbmdGcm9t
U2VsZWN0aW9uIl9zKTsKKyNlbmRpZgorfQorCiAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAq
KV9yZW1vdGVPYmplY3RSZWdpc3RyeQogewogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTQ3MDAsNiAr
NDcxMCwxNiBAQCAtIChVSVRleHRJbnB1dEFzc2lzdGFudEl0ZW0gKilpbnB1dEFzc2lzdGFudEl0
ZW0KICAgICByZXR1cm4gW19jb250ZW50VmlldyBpbnB1dEFzc2lzdGFudEl0ZW1Gb3JXZWJWaWV3
XTsKIH0KIAorKyAoTlNTdHJpbmcgKilfc3RyaW5nRm9yRmluZEluUGFnZQoreworICAgIHJldHVy
biBXZWJLaXQ6OnN0cmluZ0ZvckZpbmRJblBhZ2UoKTsKK30KKworKyAodm9pZClfY2xlYXJTdHJp
bmdGb3JGaW5kSW5QYWdlCit7CisgICAgV2ViS2l0Ojp1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdl
KGVtcHR5U3RyaW5nKCkpOworfQorCiAjZW5kaWYKIAogLSAoTlNEYXRhICopX3Nlc3Npb25TdGF0
ZURhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oCmluZGV4IDg4YjU2MzViZThmZTZhMGJiMmU1ZDNjZjYyYzdiZjYyZjZjNzg2
YmQuLmI3ZDZiZmJhZTQxYTkxMWE4M2Y0OWIxM2EwMTI0YjU2NzNiZWNiNDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApA
QCAtMjE1LDYgKzIxNSw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0
RWRnZSkgewogLSAoSUJBY3Rpb24pX2NoYW5nZUxpc3RUeXBlOihpZClzZW5kZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtIChJQkFjdGlv
bilfcGFzdGVBc1F1b3RhdGlvbjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAoSUJBY3Rpb24pX3Bhc3RlQW5kTWF0Y2hT
dHlsZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24pX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbjoo
aWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogCkBAIC0yNTYsNiArMjU3LDkgQEAgdHlw
ZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldERyYWdJbnRlcmFjdGlvblBvbGljeTopIF9XS0RyYWdJbnRl
cmFjdGlvblBvbGljeSBfZHJhZ0ludGVyYWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUoaW9z
KDExLjApKTsKIAorQHByb3BlcnR5IChjbGFzcywgbm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJp
bmcgKl9zdHJpbmdGb3JGaW5kSW5QYWdlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KTsKKysgKHZvaWQpX2NsZWFyU3RyaW5nRm9yRmluZEluUGFnZSBXS19BUElfQVZBSUxBQkxFKGlv
cyhXS19JT1NfVEJBKSk7CisKIC0gKHZvaWQpX2JlZ2luSW50ZXJhY3RpdmVPYnNjdXJlZEluc2V0
c0NoYW5nZTsKIC0gKHZvaWQpX2VuZEludGVyYWN0aXZlT2JzY3VyZWRJbnNldHNDaGFuZ2U7CiAt
ICh2b2lkKV9oaWRlQ29udGVudFVudGlsTmV4dFVwZGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggMDFiZWE1MGQ0ZjJmMjgxOTAzZGQ2MWY5Y2ZlNDA4ZGZjYzAy
YjNhZC4uMDkxMWQ2NTE3NTIwYzI4ZDk2MWIwNGI4MDRiYmYwMTA4MmQ1ZDkxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE3MjAsNiArMTcyMCw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBpbnRlcnByZXRLZXlFdmVudChjb25zdCBFZGl0b3JTdGF0ZSYsIGJvb2wg
aXNDaGFyRXZlbnQsIGJvb2wmIGhhbmRsZWQpOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0
UGlja2VyKGJvb2wgaGFzVmlkZW8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0
LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQg
c2VsZWN0aW9uUmVjdHNDYWxsYmFjayhjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uUmVj
dD4mLCBDYWxsYmFja0lEKTsKKworICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShj
b25zdCBTdHJpbmcmKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykKICAgICB2b2lkIHByaW50
RmluaXNoZWRDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ2FsbGJhY2tJ
RCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggMWU0NTE4ZjcxYzQxZmQxZTYyODg4NmZjMDNlMzUxMmYwMThhYTFjOS4uNDY0YzAz
MzI3NzFiMjFlOTk1ZDJhNTAyNzU0OWI2NDE1YTMzZDJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDE2LDYgKzQxNiw4IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBFbmFibGVJbnNwZWN0b3JOb2RlU2Vh
cmNoKCkKICAgICBEaXNhYmxlSW5zcGVjdG9yTm9kZVNlYXJjaCgpCisKKyAgICBVcGRhdGVTdHJp
bmdGb3JGaW5kSW5QYWdlKFN0cmluZyBmaW5kU3RyaW5nKQogI2VuZGlmCiAKICAgICBEaWRDaGFu
Z2VJbnNwZWN0b3JGcm9udGVuZENvdW50KHVpbnQ2NF90IGNvdW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMWExNjFhY2M0MjFiZDNkOWVhNmYxOTgxOWVm
NTAyZjFkOWI0NDI4Zi4uYjQ3NmIyMzgxZGMzZDNmZDEyMWQxZTUzY2FhZGRmMjQ4M2JkZTE5MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC00NzQsNiArNDc0
LDExIEBAIHB1YmxpYzoKICAgICBib29sIHNhbmRib3hFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9zYW5kYm94RW5hYmxlZDsgfTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBjb25zdCBTdHJpbmcmIHN0cmluZ0ZvckZpbmRJblBhZ2UoKSBjb25zdCB7IHJldHVybiBt
X3N0cmluZ0ZvckZpbmRJblBhZ2U7IH0KKyAgICB2b2lkIHNldFN0cmluZ0ZvckZpbmRJblBhZ2Uo
Y29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgbV9zdHJpbmdGb3JGaW5kSW5QYWdlID0gc3RyaW5nOyB9
CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCkBA
IC03MjksNiArNzM0LDEwIEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpCiAgICAgYm9vbCBtX3NhbmRib3hFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgorCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBTdHJpbmcgbV9zdHJpbmdGb3JGaW5kSW5QYWdl
OworI2VuZGlmCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL0dsb2JhbEZpbmRJblBhZ2VTdGF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvR2xvYmFsRmluZEluUGFnZVN0YXRlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xYmJiMWE4OGM2ZjRkMGY5NWZjMTZkZTg5YzNhNTcxNmRhOTJlYTFiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL0dsb2JhbEZpbmRJblBhZ2VTdGF0ZS5j
cHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiR2xvYmFsRmluZEluUGFnZVN0YXRlLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorCisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3N0YXRpYyBTdHJpbmcmIGdsb2JhbFN0cmluZ0ZvckZpbmRJblBhZ2UoKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHN0cmluZzsKKyAgICByZXR1cm4gc3RyaW5nLmdl
dCgpOworfQorCit2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCit7CisgICAgZ2xvYmFsU3RyaW5nRm9yRmluZEluUGFnZSgpID0gc3RyaW5nOworfQor
Citjb25zdCBTdHJpbmcmIHN0cmluZ0ZvckZpbmRJblBhZ2UoKQoreworICAgIHJldHVybiBnbG9i
YWxTdHJpbmdGb3JGaW5kSW5QYWdlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9HbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9HbG9iYWxGaW5kSW5QYWdlU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZThiOTg1Yjdj
MjMwODM0OGQ5MTRlNTFiMTBkNzU5NzNmNzQ0NTM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL0dsb2JhbEZpbmRJblBhZ2VTdGF0ZS5oCkBAIC0wLDAgKzEs
NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgU3RyaW5nOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFdURjo6U3RyaW5n
Jik7Citjb25zdCBXVEY6OlN0cmluZyYgc3RyaW5nRm9yRmluZEluUGFnZSgpOworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBmNmQzMDRi
ODEwNjFiNWFkNDE4ODA2YmQ4OWQ2Yjc2N2FmNGRiYmMyLi5hNTIxYjdiY2Q1MTI2MmUzM2Y0MWEy
YzIyNjRiMjcyOGM1MmM1OWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkFQSVVJQ2xpZW50
LmgiCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW1wb3J0ICJFZGl0aW5nUmFuZ2UuaCIK
KyNpbXBvcnQgIkdsb2JhbEZpbmRJblBhZ2VTdGF0ZS5oIgogI2ltcG9ydCAiSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5h
dGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKQEAgLTIyNiw2ICsyMjcsMTQgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnJlc2VuZExhc3RWaXNpYmxlQ29udGVudFJlY3RzKCkKICAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OlZpZXdVcGRhdGVEaXNwYXRjaGVyOjpWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGUobV9wYWdlSUQsIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZSksIDApOwogfQogCit2
b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25zdCBTdHJpbmcm
IHN0cmluZykKK3sKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
V2ViS2l0Ojp1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKHN0cmluZyk7Cit9CisKIHN0YXRpYyBp
bmxpbmUgZmxvYXQgYWRqdXN0ZWRVbmV4cG9zZWRFZGdlKGZsb2F0IGRvY3VtZW50RWRnZSwgZmxv
YXQgZXhwb3NlZFJlY3RFZGdlLCBmbG9hdCBmYWN0b3IpCiB7CiAgICAgaWYgKGV4cG9zZWRSZWN0
RWRnZSA8IGRvY3VtZW50RWRnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDRkYTAyZmFiNTEyN2ExZjQ2NzdmOWUyMjBlMzEyMzAxMDM0
NWEzN2EuLjliNTJkODRkYTY1ZjQ5OGFmYTdhMmI3OTA2ODY1YTZkMGU0NDUwN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzUsOSAr
NzUsOSBAQAogCQkwMDVEMTU4RjE4RTRDNEVCMDA3MzQ2MTkgLyogX1dLRmluZERlbGVnYXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMDVEMTU4RTE4
RTRDNEVCMDA3MzQ2MTkgLyogX1dLRmluZERlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDBCOTY2MTYxOEUyNENCQTAwQ0UxRjg4IC8q
IEFQSUZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggKi87IH07
CiAJCTAwQjk2NjFBMThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMEI5NjYxODE4RTI1QUUxMDBDRTFG
ODggLyogRmluZENsaWVudC5oICovOyB9OworCQkwNzI5N0Y5RjFDMTdBQTFBMDE1RjA3MzUgLyog
UGVyc2lzdGVuY3lVdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDczMjFGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIFBlcnNpc3RlbmN5VXRpbHMuaCAq
LzsgfTsKIAkJMDcyOTdGOUYxQzE3QkJFQTAwM0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzI5N0Y5RDFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHkuaCAqLzsgfTsKIAkJMDcyOTdGOUYxQzE3QkJFQTAxNUYwNzM1IC8qIERldmljZUlkSGFzaFNh
bHRTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzI5N0Y5RDFDMTdCQkVBMjIzRjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCAq
LzsgfTsKLQkJMDcyOTdGOUYxQzE3QUExQTAxNUYwNzM1IC8qIFBlcnNpc3RlbmN5VXRpbHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MzIxRjlEMUMx
N0JCRUEyMjNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggKi87IH07CiAJCTA3Mjk3RkEzMUMx
ODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGQTExQzE4NkFEQjAwM0Yw
NzM1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc0RTc1RkUxREYyMjExOTAwRDMxOEVDIC8q
IFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzRFNzVGQjFERjFGRDEzMDBEMzE4RUMgLyogVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIuaCAqLzsgfTsKIAkJMDc2RTg4NEUxQTEzQ0FERjAwNUU5MEZDIC8qIEFQSUNv
bnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwNzZFODg0RDFBMTNDQURGMDA1RTkwRkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQu
aCAqLzsgfTsKQEAgLTczOCw2ICs3MzgsNyBAQAogCQkyRUE3QjNEMTIwMjZDRUY4MDA5Q0U1QUMg
LyogV0tOdW1iZXJQYWRWaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBN0IzQ0YyMDI2Q0VGODAwOUNFNUFDIC8qIFdLTnVtYmVy
UGFkVmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJMkVBN0IzRDUyMDI2Q0YyMzAwOUNFNUFDIC8q
IFdLTnVtYmVyUGFkVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkVBN0IzRDMyMDI2Q0YyMzAwOUNFNUFDIC8qIFdLTnVtYmVyUGFkVmlldy5oICov
OyB9OwogCQkyRUI2RkMwMTIwMzAyMTk2MDAxN0U2MTkgLyogV0tUaW1lUGlja2VyVmlld0NvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJF
QjZGQkZGMjAzMDIxOTYwMDE3RTYxOSAvKiBXS1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5oICov
OyB9OworCQkyRUU0MDU0NTIxRDMwMzc5MDAxNjYyRjkgLyogR2xvYmFsRmluZEluUGFnZVN0YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUU0MDU0
MzIxRDMwMzc5MDAxNjYyRjkgLyogR2xvYmFsRmluZEluUGFnZVN0YXRlLmggKi87IH07CiAJCTJG
ODMzNjg2MUZBMTM5REYwMEM2RTA4MCAvKiBUb3VjaEJhck1lbnVEYXRhLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRkQ0M0I5MTFGQTAwNkExMDA4M0Y1
MUMgLyogVG91Y2hCYXJNZW51RGF0YS5oICovOyB9OwogCQkzMTA5OTlDNzE0NkM5RTNEMDAyOURF
QjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk2ODE0NkM3MUY1MDAyOURFQjkgLyogV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmggKi87IH07CiAJCTMxMkMwQzRBMTQ2RERDOEEwMDE2QzkxMSAvKiBXS05v
dGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTJDMEM0OTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3RpZmljYXRpb25Qcm92
aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0xMDM4LDggKzEwMzksOCBAQAogCQk1N0RDRURDMzIxNEYxMTRDMDAxNkI4NDcgLyogTW9ja0xv
Y2FsU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTdEQ0VEQzEyMTRGMTE0QzAwMTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCAqLzsgfTsK
IAkJNTdEQ0VEQzcyMTRGMTgzMDAwMTZCODQ3IC8qIE1vY2tMb2NhbENvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREM1MjE0RjE4
MzAwMDE2Qjg0NyAvKiBNb2NrTG9jYWxDb25uZWN0aW9uLmggKi87IH07CiAJCTU3RENFRENCMjE0
RjRFNDIwMDE2Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREM5MjE0RjRFNDIwMDE2Qjg0
NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCAqLzsgfTsKLQkJNThFOTc3REYyMUM0OUEw
MDAwNUQ5MkE2IC8qIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OEU5NzdERDIxQzQ5QTAwMDA1RDkyQTYg
LyogTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaCAqLzsgfTsKIAkJNTg3NzQzQTYyMUMzMEJC
RTAwQUU5MDg0IC8qIEhUVFBTVXBncmFkZUxpc3QuZGIgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4Nzc0M0E0MjFDMzBBRDgwMEFFOTA4NCAvKiBIVFRQ
U1VwZ3JhZGVMaXN0LmRiICovOyB9OworCQk1OEU5NzdERjIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0
d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU4RTk3N0REMjFDNDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNV
cGdyYWRlQ2hlY2tlci5oICovOyB9OwogCQk1QzBCMTc3ODFFN0M4ODBFMDBFOTEyM0MgLyogTmV0
d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzBCMTc3NDFFN0M4NzlDMDBFOTEyM0MgLyogTmV0
d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTVDMEIxNzc5MUU3
Qzg4MjEwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwQjE3NzYxRTdDODc5
QzAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJ
CTVDMTQyNkVEMUMyM0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMx
NDI2RTMxQzIzRjgwNTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmggKi87IH07CkBAIC0xODU2LDE0ICsxODU3LDE0IEBACiAJCTAwQjk2NjE1MThFMjRDQkEwMENF
MUY4OCAvKiBBUElGaW5kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFQSUZpbmRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTcx
OEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBGaW5kQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwMEI5NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3Mjk0NTVDMUMxNzExRUEwMDNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0Y5QzFDMTcxMUVBMDAzRjA3
MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzI5N0Y5QzFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzI5N0Y5RDFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcy
OTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA3Mjk0NTVDMUMxNzExRUEwMDNGMDczNSAvKiBQ
ZXJzaXN0ZW5jeVV0aWxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBlcnNpc3RlbmN5VXRpbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzMy
MUY5RDFDMTdCQkVBMjIzRjA3MzUgLyogUGVyc2lzdGVuY3lVdGlscy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQZXJzaXN0ZW5jeVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3Mjk3RkEwMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3Mjk3RkExMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25D
aGVjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzMyMUY5RDFDMTdCQkVBMjIz
RjA3MzUgLyogUGVyc2lzdGVuY3lVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQZXJzaXN0ZW5jeVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
NEU3NUZCMURGMUZEMTMwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzRFNzVGQzFERjIwMDI0MDBEMzE4RUMgLyog
VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzRFNzYwMDFERjcwNzVEMDBEMzE4RUMgLyogTWVkaWFEZXZpY2VTYW5kYm94
RXh0ZW5zaW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRp
YURldmljZVNhbmRib3hFeHRlbnNpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTI4MTgsNiArMjgxOSw4IEBACiAJCTJFQTdCM0Q0MjAyNkNGMjMwMDlDRTVBQyAvKiBXS051
bWJlclBhZFZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS051bWJlclBhZFZpZXcubW07
IHBhdGggPSBpb3MvZm9ybXMvV0tOdW1iZXJQYWRWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRUI2RkJGRjIwMzAyMTk2MDAxN0U2MTkgLyogV0tUaW1lUGlja2VyVmlld0Nv
bnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIuaDsg
cGF0aCA9IGlvcy9mb3Jtcy9XS1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRUI2RkMwMDIwMzAyMTk2MDAxN0U2MTkgLyogV0tUaW1lUGlj
a2VyVmlld0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1RpbWVQaWNrZXJW
aWV3Q29udHJvbGxlci5tbTsgcGF0aCA9IGlvcy9mb3Jtcy9XS1RpbWVQaWNrZXJWaWV3Q29udHJv
bGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVFNDA1NDIyMUQzMDM3OTAw
MTY2MkY5IC8qIEdsb2JhbEZpbmRJblBhZ2VTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBHbG9iYWxGaW5kSW5QYWdlU3RhdGUuY3BwOyBwYXRoID0gaW9zL0ds
b2JhbEZpbmRJblBhZ2VTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJF
RTQwNTQzMjFEMzAzNzkwMDE2NjJGOSAvKiBHbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gR2xvYmFsRmluZEluUGFnZVN0YXRlLmg7IHBhdGgg
PSBpb3MvR2xvYmFsRmluZEluUGFnZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJGODA5REQ1MUZCRDFCQzkwMDVGRTYzQSAvKiBUb3VjaEJhck1lbnVJdGVtRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUb3VjaEJhck1lbnVJdGVtRGF0YS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJGODA5REQ5MUZCRDFCRjIwMDVGRTYzQSAvKiBUb3VjaEJhck1l
bnVJdGVtRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUb3VjaEJhck1lbnVJdGVtRGF0YS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRkQ0M0I5MTFGQTAwNkExMDA4M0Y1MUMgLyogVG91
Y2hCYXJNZW51RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUb3VjaEJh
ck1lbnVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDA2LDkgKzM0MDks
OSBAQAogCQk1N0RDRURDNjIxNEYxODMwMDAxNkI4NDcgLyogTW9ja0xvY2FsQ29ubmVjdGlvbi5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1vY2tMb2NhbENvbm5lY3Rpb24ubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFREM5MjE0RjRFNDIwMDE2Qjg0NyAvKiBNb2NrQXV0
aGVudGljYXRvck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0F1dGhlbnRpY2F0b3JNYW5h
Z2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFRENEMjE0RjUxNjgwMDE2
Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTg3NzQzQTQyMUMzMEFEODAwQUU5MDg0IC8qIEhUVFBTVXBn
cmFkZUxpc3QuZGIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBmaWxlOyBuYW1lID0gSFRUUFNVcGdyYWRlTGlzdC5kYjsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvSFRUUFNVcGdyYWRlTGlzdC5kYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJNThFOTc3REMyMUM0OTlGRTAwNUQ5MkE2IC8qIE5ldHdvcmtIVFRQU1Vw
Z3JhZGVDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5l
dHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNThFOTc3REQyMUM0OUEwMDAwNUQ5MkE2IC8qIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtIVFRQU1VwZ3JhZGVD
aGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU4Nzc0M0E0MjFDMzBBRDgw
MEFFOTA4NCAvKiBIVFRQU1VwZ3JhZGVMaXN0LmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IEhUVFBTVXBncmFkZUxpc3QuZGI7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0hUVFBTVXBncmFkZUxpc3QuZGI7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTVDMEIxNzc0MUU3Qzg3OUMwMEU5MTIz
QyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2
ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrU29ja2V0U3RyZWFt
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJNUMwQjE3NzUxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrU29ja2V0U3RyZWFt
TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1NvY2tldFN0
cmVhbU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTVD
MEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViU29ja2V0U3RyZWFt
TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29j
a2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKQEAgLTU4MDYsNiArNTgwOSw4IEBACiAJCQkJMkQ1ODc1QkQyMTlCNTMxNTAwNzBC
OUFBIC8qIEVkaXRhYmxlSW1hZ2VDb250cm9sbGVyLmggKi8sCiAJCQkJMkQ1ODc1QkIyMTlCMjhB
NTAwNzBCOUFBIC8qIEVkaXRhYmxlSW1hZ2VDb250cm9sbGVyLm1lc3NhZ2VzLmluICovLAogCQkJ
CTJENTg3NUJFMjE5QjUzMTUwMDcwQjlBQSAvKiBFZGl0YWJsZUltYWdlQ29udHJvbGxlci5tbSAq
LywKKwkJCQkyRUU0MDU0MjIxRDMwMzc5MDAxNjYyRjkgLyogR2xvYmFsRmluZEluUGFnZVN0YXRl
LmNwcCAqLywKKwkJCQkyRUU0MDU0MzIxRDMwMzc5MDAxNjYyRjkgLyogR2xvYmFsRmluZEluUGFn
ZVN0YXRlLmggKi8sCiAJCQkJMkRENDVBREMxRTVGODk3MjAwNkMzNTVGIC8qIElucHV0Vmlld1Vw
ZGF0ZURlZmVycmVyLmggKi8sCiAJCQkJMkRENDVBREQxRTVGODk3MjAwNkMzNTVGIC8qIElucHV0
Vmlld1VwZGF0ZURlZmVycmVyLm1tICovLAogCQkJCTBGMEMzNjVEMThDMTEwQTUwMEY2MDdENyAv
KiBMYXllclJlcHJlc2VudGF0aW9uLm1tICovLApAQCAtOTAxOSw2ICs5MDI0LDcgQEAKIAkJCQlC
QzA2RjQ0QTEyREJEMUY1MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwNkY0M0ExMkRCQ0NGQjAwMkQ3OERF
IC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkRBOTQ0QTQxODg0RTRGMDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMkVFNDA1NDUyMUQzMDM3OTAwMTY2MkY5IC8qIEdsb2JhbEZpbmRJblBhZ2VTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRBMDQ5QjgxODBDQ0QwQTAwQUFGQTlFIC8qIEdyYXBo
aWNzTGF5ZXJDQVJlbW90ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzBDRTcyQUQxMjQ3RTc4RDAw
QkMwRUM0IC8qIEhhbmRsZU1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzc1QTFCMUIz
MzY4MjcwMDU2NzQ1QiAvKiBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCmluZGV4IDRiNWE2ZDNhZGRiNDQzZTk4MDBmMGE1NTQ3YmI5NzlmYzY0
ZDgwYmEuLjE2ODA0Y2I4OTkwOWVjYzg3MjZkMWRiNjUwNjk3OWI2ODcxNjNjZWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKQEAgLTE3Myw2ICsxNzMsNyBAQCBwcml2YXRlOgogICAgIGludCBnZXRQYXN0
ZWJvYXJkSXRlbXNDb3VudCgpIGZpbmFsOwogICAgIFJlZlB0cjxXZWJDb3JlOjpEb2N1bWVudEZy
YWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRlKGludCBpbmRleCkgZmluYWw7CiAg
ICAgYm9vbCBwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50Kikg
ZmluYWw7CisgICAgdm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFN0cmluZyYp
IGZpbmFsOwogI2VuZGlmCiAKICAgICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJDb3JlOjpE
b2N1bWVudEZyYWdtZW50JiwgV2ViQ29yZTo6UmFuZ2UmLCBib29sIGlzTW92ZSkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dl
YkVkaXRvckNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tCmluZGV4IGM2MDQzOGM0ZTViY2JiNGE0M2M4
M2I4NWQ0NDE5MTJlYzQ3NzQ2MjcuLjIyMTIzMjVlMGU2YjViZDRiNjk2NDk2NzE0YzM0MjcxOTJm
ZGE5MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tCkBAIC04Niw2ICs4Niwx
MSBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6cGVyZm9ybXNUd29TdGVwUGFzdGUoV2ViQ29yZTo6
RG9jdW1lbnRGcmFnbWVudCopCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFdlYkVkaXRv
ckNsaWVudDo6dXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25zdCBTdHJpbmcmIGZpbmRTdHJp
bmcpCit7CisgICAgbV9wYWdlLT51cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGZpbmRTdHJpbmcp
OworfQorCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6b3ZlcmZsb3dTY3JvbGxQb3NpdGlvbkNoYW5n
ZWQoKQogewogICAgIG1fcGFnZS0+ZGlkQ2hhbmdlU2VsZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZmM0ZWExZGZiOTQyNjRjYTFiOTdi
ZmQ4OTY1MzIwZTQwMmUwNzExMS4uMzRkZGZmNTE1MGIwYTYyMTJiYTJiNjA4N2Y1ZDc5NmJjNTcw
NjVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAt
OTM5LDYgKzkzOSw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpWaWV3cG9ydENvbmZp
Z3VyYXRpb24mIHZpZXdwb3J0Q29uZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3Bv
cnRDb25maWd1cmF0aW9uOyB9CiAKICAgICB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxp
dHlDaGFuZ2VkKCk7CisKKyAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3Qg
U3RyaW5nJik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRl
eCA5MDY1ODA1NjM4OTczN2VmOWNhYTVmZmQ2MWU4ZWRhYWRmNzljY2U5Li42Mjk4Y2U5NWRjNzRh
MGM1YjZmMTBiMWUxMGE3MDU0NDVhNDI0YzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMzEyNSw2ICszMTI1LDExIEBA
IHZvaWQgV2ViUGFnZTo6aGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQoKQogICAg
ICAgICBmb2N1c2VkRnJhbWUtPmV2ZW50SGFuZGxlcigpLmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hh
bmdlZCgpOwogfQogCit2b2lkIFdlYlBhZ2U6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29u
c3QgU3RyaW5nJiBmaW5kU3RyaW5nKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6VXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShmaW5kU3RyaW5nKSk7Cit9CisKICNpZiBVU0Uo
UVVJQ0tfTE9PSykKIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBhc3N3b3JkRm9yUXVpY2tMb29r
RG9jdW1lbnQoY29uc3QgU3RyaW5nJiBwYXNzd29yZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXgg
ODQ2NDA1OWM0OTUyYjk2ZjYxNGI3ZDU0NTNhNzUxNTg1ZDhlNGFiNS4uMGEzNjI0ZTU3YzQ3MWM2
MjVhMzI2OTY0MDJjMjNiYTRlNjRiOTlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE0NCw2ICsx
NDQsNyBAQCBwcml2YXRlOgogICAgIGludCBnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudCgpIGZpbmFs
OwogICAgIFJlZlB0cjxXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50
RnJvbURlbGVnYXRlKGludCBpbmRleCkgZmluYWw7CiAgICAgYm9vbCBwZXJmb3Jtc1R3b1N0ZXBQ
YXN0ZShXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50KikgZmluYWw7CisgICAgdm9pZCB1cGRhdGVT
dHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogI2VuZGlmCiAKICAg
ICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50JiwgV2Vi
Q29yZTo6UmFuZ2UmIGRlc3RpbmF0aW9uLCBib29sIGlzTW92ZSkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358082</attachid>
            <date>2018-12-26 12:50:44 -0800</date>
            <delta_ts>2018-12-26 13:55:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193034-20181226125044.patch</filename>
            <type>text/plain</type>
            <size>45865</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVjZmVlMWQyYzlmNjE5
N2RmNzU4MjA5NjQwMTM1Yzg0MjM4MjhmMi4uMDJlOThlYzlmMWQ3MGRmOTcxMDBkNmEzMDEzMTdj
MDY3M2Q1MzBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE4LTEyLTI1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB1c2luZyB0aGUgY3VycmVudCB0ZXh0IHNlbGVjdGlvbiBhcyB0aGUgZmluZCBzdHJpbmcg
b24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTMwMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTM4NzM5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciAiVGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uIiBvbiBpT1MuIFVubGlrZSBtYWNPUywgaU9TIGRvZXMgbm90
IGhhdmUgYSBub3Rpb24gb2YgYSAiZmluZAorICAgICAgICBwYXN0ZWJvYXJkIiBsaWtlIG1hY09T
OyBpbnN0ZWFkLCB3ZSBoYW5kbGUgdGhpcyBlZGl0aW5nIGNvbW1hbmQgYnkgc2VuZGluZyB0aGUg
c2VsZWN0aW9uIHN0cmluZyB0byB0aGUgVUkKKyAgICAgICAgcHJvY2Vzcywgd2hlcmUgaXQgaXMg
ZXhwb3NlZCB2aWEgV2ViS2l0IFNQSSBzbyB0aGF0IGNsaWVudHMgdGhhdCBwcmVzZW50IGZpbmQt
aW4tcGFnZSBVSSAoaS5lLiBNb2JpbGVTYWZhcmkpIGFyZQorICAgICAgICBhYmxlIHRvIHRyaWdn
ZXIgZmluZC1pbi1wYWdlIHdpdGggdGhpcyBzdHJpbmcuCisKKyAgICAgICAgVGVzdDogV2ViS2l0
LlVzZVNlbGVjdGlvbkFzRmluZFN0cmluZworCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUlt
YWdlcyBjb25zdCk6CisKKyAgICAgICAgTWFrZSB0aGlzIGhlbHBlciBmdW5jdGlvbiBjcm9zcy1w
bGF0Zm9ybS4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvbW1hbmRNYXAp
OgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbik6CisKKyAgICAgICAgTW92
ZSB0aGlzIGZyb20gRWRpdG9yTWFjIHRvIEVkaXRvckNvY29hLCBhbmQgaW1wbGVtZW50IGl0IG9u
IGlPUyBieSBjYWxsaW5nIGludG8gdGhlIGVkaXRvciBjbGllbnQgdG8gdXBkYXRlIHRoZQorICAg
ICAgICBmaW5kIHN0cmluZyAoc2VlIFdlYktpdC9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscyku
CisKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OmNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBwYWdl
L0VkaXRvckNsaWVudC5oOgorCisgICAgICAgIEFkZCBhIG5ldyBlZGl0b3IgY2xpZW50IG1ldGhv
ZCB0byBzZW5kIHRoZSBzdHJpbmcgZm9yIGZpbmQtaW4tcGFnZSB0byB0aGUgVUkgcHJvY2Vzcy4K
KwogMjAxOC0xMi0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0hhcmZCdXp6XSBXaWR0aCBub3QgY29ycmVjdGx5IHJlcG9ydGVkIGFzIDAg
Zm9yIHplcm8gZm9udCBzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmZmFjNzI0NzYxNjE0NTBjNTQ1YTNkOWE4
YzM3OTgyOTExMDkxYzEuLjhkNDM2Yzg4NTg3MTI4Nzc4NWU4YjhiMjhjNTVhYTAyYWVlOWFlODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTgtMTItMjYgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHVzaW5nIHRo
ZSBjdXJyZW50IHRleHQgc2VsZWN0aW9uIGFzIHRoZSBmaW5kIHN0cmluZyBvbiBpT1MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzAzNAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDUxMzg3Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Rha2VG
aW5kU3RyaW5nRnJvbVNlbGVjdGlvbjpdKToKKworICAgICAgICBQcm92aWRlcyBhIHdheSB0byBz
ZXQgdGhlIGZpbmQgc3RyaW5nIG9uIGlPUyBhbmQgbWFjT1MgKGFuIGFzaWRlOiB0YWtlRmluZFN0
cmluZ0Zyb21TZWxlY3Rpb246IGFscmVhZHkgZXhpc3RzIG9uCisgICAgICAgIG1hY09TLCBidXQg
dGhlcmUgaXMgbm8gZXF1aXZhbGVudCBwcm90b2NvbCBtZXRob2Qgb24gaU9TLCBzbyB0aGlzIG5l
dyBTUEkgYWN0cyBhcyBhIGNyb3NzLXBsYXRmb3JtIHdheSBmb3IKKyAgICAgICAgV2ViS2l0IGNs
aWVudHMgdG8gdGFrZSB0aGUgZmluZCBzdHJpbmcgZnJvbSB0aGUgc2VsZWN0aW9uIGFjcm9zcyBh
bGwgQ29jb2EgcGxhdGZvcm1zKS4KKworICAgICAgICAoK1tXS1dlYlZpZXcgX3N0cmluZ0ZvckZp
bmRJblBhZ2VdKToKKyAgICAgICAgKCtbV0tXZWJWaWV3IF9jbGVhclN0cmluZ0ZvckZpbmRJblBh
Z2VdKToKKworICAgICAgICBDYWxsIGludG8gZmluZC1pbi1wYWdlIGhlbHBlciBmdW5jdGlvbnMu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKwor
ICAgICAgICBBZGQgc29tZSBuZXcgY3Jvc3MtcGxhdGZvcm0gZmluZC1pbi1wYWdlIFNQSS4gU2Vl
IGFib3ZlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvRmlu
ZEluUGFnZUhlbHBlcnMuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0ZpbmRJ
blBhZ2VIZWxwZXJzLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6ZmluZFBhc3RlYm9hcmQp
OgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxTdHJpbmdGb3JGaW5kSW5QYWdlKToKKworICAgICAg
ICBGZXRjaCB0aGUgc3RyaW5nIHRvIHVzZSB3aGVuIGZpbmRpbmcgdGV4dCBpbiB0aGUgcGFnZS4g
T24gbWFjT1MsIHRoaXMgYWNjZXNzZXMgdGhlIEFwcEtpdCBmaW5kIHBhc3RlYm9hcmQ7IG9uCisg
ICAgICAgIGlPUywgdGhpcyBpbnN0ZWFkIHJldHVybnMgdGhlIGN1cnJlbnQgZ2xvYmFsIGZpbmQg
c3RyaW5nLgorCisgICAgICAgIChXZWJLaXQ6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UpOgor
CisgICAgICAgIFNldHMgdGhlIGdsb2JhbCBmaW5kIHN0cmluZy4gVXNlcyB0aGUgZmluZCBwYXN0
ZWJvYXJkIG9uIG1hY09TLCBhbmQgc2V0cyB0aGUgZ2xvYmFsIGZpbmQgc3RyaW5nIG9uIGlPUy4K
KworICAgICAgICAoV2ViS2l0OjpzdHJpbmdGb3JGaW5kSW5QYWdlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbjoKKworICAgICAgICBBZGQgcGx1bWJpbmcgdG8gYWxsb3cgV2ViRWRpdG9yQ2xp
ZW50IHRvIGRlbGl2ZXIgdGhlIHVwZGF0ZSB0aGUgZ2xvYmFsIGZpbmQgc3RyaW5nIGluIHRoZSBV
SSBwcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRlU3RyaW5nRm9yRmluZEluUGFn
ZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6dXBkYXRlU3RyaW5nRm9yRmluZEluUGFn
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UpOgorCiAyMDE4LTEyLTIzICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJlbW92ZSBz
b21lIHVubmVjZXNzYXJ5IGVkaXRpbmcgU1BJIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS80NjA0NzU0
Nj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA0NDFiYjA5MzBlZDlkOWI2ZjYwODYw
YTczNTQzMTA1OTM2Zjg1ZWVlLi5kMDI0ZDdiYjY2Y2I5ZWJjZmNiZGFmZmMwOTc1ZGQyZjk4YTE0
YzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgt
MTItMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBjdXJyZW50IHRleHQgc2VsZWN0aW9uIGFzIHRoZSBm
aW5kIHN0cmluZyBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MzAzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxMzg3Mzk+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbWV0aG9k
IHN0dWIgZm9yIFdlYktpdExlZ2FjeS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oOgorCiAyMDE4LTEyLTIwICBZdXN1a2UgU3V6dWtpICA8eXVzdWtlc3V6dWtp
QHNsb3dzdGFydC5vcmc+CiAKICAgICAgICAgVXNlIFJlZjw+IGFzIG11Y2ggYXMgcG9zc2libGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBhNWU4NTg0ZjRhZTg3NzIzMTRmNjNmMzQx
N2JjMGNkNmU0NjE3NmZkLi44ZDE3MTM3YmZkNTQ3NmJjZWI0ZTliZDcyZTM3MGZhNGY1MzgxNjBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00MjU2LDQgKzQyNTYsMTAgQEAgUmVm
UHRyPEhUTUxJbWFnZUVsZW1lbnQ+IEVkaXRvcjo6aW5zZXJ0RWRpdGFibGVJbWFnZSgpCiAgICAg
cmV0dXJuIEluc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kOjppbnNlcnRFZGl0YWJsZUltYWdlKGRv
Y3VtZW50KCkpOwogfQogCitib29sIEVkaXRvcjo6Y2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJ
bWFnZXMoKSBjb25zdAoreworICAgIGF1dG8mIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9u
KCkuc2VsZWN0aW9uKCk7CisgICAgcmV0dXJuIHNlbGVjdGlvbi5pc1JhbmdlKCkgJiYgIXNlbGVj
dGlvbi5pc0luUGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA3Y2FkMjIwOTg1MjYwMDZmOWNjODljMWNlMGUyNzk0
MjJlYzczODVmLi4wNWNjMWI4MmFlYWMxNDBiNDA5MzBkZjZmMzdlYTU0OTU1YzYzZjQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTQ4NSw5ICs0ODUsOCBAQCBwdWJsaWM6CiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHN0cmluZ1NlbGVjdGlvbkZv
clBhc3RlYm9hcmQoKTsKICAgICBTdHJpbmcgc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZFdp
dGhJbWFnZUFsdFRleHQoKTsKLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIGNh
bkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCk7CiAgICAgdm9pZCB0YWtlRmluZFN0cmlu
Z0Zyb21TZWxlY3Rpb24oKTsKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VOb2RlRnJvbVBh
c3RlYm9hcmQoTm9kZSosIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogICAgIFdFQkNP
UkVfRVhQT1JUIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJk
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwpAQCAtNDk1LDYgKzQ5NCw4IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoQXR0cmlidXRl
ZFN0cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1h
aWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKICNlbmRpZgogCisgICAg
Ym9vbCBjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpIGNvbnN0OworCiAgICAgU3Ry
aW5nIGNsaWVudFJlcGxhY2VtZW50VVJMRm9yUmVzb3VyY2UoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBy
ZXNvdXJjZURhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogCiAjaWYgIVBMQVRGT1JNKFdJ
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDlmZGFjMWQ2
MTE5NTM4YWNlM2Q0YmY4YzBlZTMxNzlmNDdjOGJkMzEuLjBiM2JiYjliZTY5NTY5ZWI4MmNmMDU0
ZGMyNGM3MTVlN2U0YWQ0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcApAQCAtMTEwMiwxMyArMTEwMiwxNSBAQCBzdGF0aWMgYm9vbCBleGVjdXRlU3dhcFdpdGhN
YXJrKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdAogICAg
IHJldHVybiB0cnVlOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09B
KQorCiBzdGF0aWMgYm9vbCBleGVjdXRlVGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKEZyYW1l
JiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewog
ICAgIGZyYW1lLmVkaXRvcigpLnRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbigpOwogICAgIHJl
dHVybiB0cnVlOwogfQotI2VuZGlmCisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAogc3Rh
dGljIGJvb2wgZXhlY3V0ZVRvZ2dsZUJvbGQoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNv
bW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBTdHJpbmcmKQogewpAQCAtMTM2NywxMiArMTM2OSwx
NCBAQCBzdGF0aWMgYm9vbCBlbmFibGVkUmVkbyhGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9y
Q29tbWFuZFNvdXJjZSkKICAgICByZXR1cm4gZnJhbWUuZWRpdG9yKCkuY2FuUmVkbygpOwogfQog
Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQorCiBzdGF0aWMgYm9vbCBl
bmFibGVkVGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBF
ZGl0b3JDb21tYW5kU291cmNlKQogewogICAgIHJldHVybiBmcmFtZS5lZGl0b3IoKS5jYW5Db3B5
RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpOwogfQotI2VuZGlmCisKKyNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkKIAogc3RhdGljIGJvb2wgZW5hYmxlZFVuZG8oRnJhbWUmIGZyYW1lLCBFdmVu
dCosIEVkaXRvckNvbW1hbmRTb3VyY2UpCiB7CkBAIC0xNzE4LDcgKzE3MjIsNyBAQCBzdGF0aWMg
Y29uc3QgQ29tbWFuZE1hcCYgY3JlYXRlQ29tbWFuZE1hcCgpCiAgICAgICAgIHsgIlBhc3RlR2xv
YmFsU2VsZWN0aW9uIiwgeyBleGVjdXRlUGFzdGVHbG9iYWxTZWxlY3Rpb24sIHN1cHBvcnRlZEZy
b21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkUGFzdGUsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBu
b3RUZXh0SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgeyAiVGFr
ZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uIiwgeyBleGVjdXRlVGFrZUZpbmRTdHJpbmdGcm9tU2Vs
ZWN0aW9uLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZFRha2VGaW5kU3Ry
aW5nRnJvbVNlbGVjdGlvbiwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24s
IGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogI2VuZGlmCiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCmluZGV4IDVkZTcxNmZh
MWFjNGE5YjY5Yzg1ZjA5NjZiYTI5M2JmYWJiMjZiZmMuLjkwNjlkNzhiZjU5OWUyZDhiYjVhMmIx
OGIzMjc4ZWEwMTc3N2QxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRWRpdG9yQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0
b3JDb2NvYS5tbQpAQCAtNDUsOCArNDUsMTEgQEAKICNpbXBvcnQgIkhUTUxDb252ZXJ0ZXIuaCIK
ICNpbXBvcnQgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxTcGFuRWxlbWVudC5o
IgorI2ltcG9ydCAiTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCIKICNpbXBvcnQgIkxlZ2FjeVdl
YkFyY2hpdmUuaCIKICNpbXBvcnQgIlBhc3RlYm9hcmQuaCIKKyNpbXBvcnQgIlBhc3RlYm9hcmRT
dHJhdGVneS5oIgorI2ltcG9ydCAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1wb3J0ICJSZW5k
ZXJFbGVtZW50LmgiCiAjaW1wb3J0ICJSZW5kZXJTdHlsZS5oIgogI2ltcG9ydCAiU2V0dGluZ3Mu
aCIKQEAgLTU1LDYgKzU4LDcgQEAKICNpbXBvcnQgIm1hcmt1cC5oIgogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
TlNLZXllZEFyY2hpdmVyU1BJLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL1NvdW5kLmg+CiAjaW1w
b3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL05TVVJM
RXh0cmFzLmg+CiAKQEAgLTIyMyw0ICsyMjcsMjggQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IEVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQK
ICAgICByZXR1cm4gV1RGTW92ZShyZWFkZXIuZnJhZ21lbnQpOwogfQogCit2b2lkIEVkaXRvcjo6
dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKCkKK3sKKyAgICBpZiAoIWNhbkNvcHlFeGNsdWRp
bmdTdGFuZGFsb25lSW1hZ2VzKCkpIHsKKyAgICAgICAgUEFMOjpzeXN0ZW1CZWVwKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHN0cmluZ0Zyb21TZWxlY3Rpb24gPSBtX2Zy
YW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc2VsZWN0ZWRUZXh0Rm9yRGF0YVRy
YW5zZmVyKCkpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsK
KyAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkpKTsK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0VHlwZXModHlwZXMsIE5TRmluZFBi
b2FyZCk7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5z
ZXRTdHJpbmdGb3JUeXBlKFdURk1vdmUoc3RyaW5nRnJvbVNlbGVjdGlvbiksIGxlZ2FjeVN0cmlu
Z1Bhc3RlYm9hcmRUeXBlKCksIE5TRmluZFBib2FyZCk7CisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECisjZWxzZQorICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGll
bnQoKSkgeworICAgICAgICAvLyBTaW5jZSB0aGUgZmluZCBwYXN0ZWJvYXJkIGRvZXNuJ3QgZXhp
c3Qgb24gaU9TLCBXZWJLaXQgbWFpbnRhaW5zIGl0cyBvd24gbm90aW9uIG9mIHRoZSBsYXRlc3Qg
ZmluZCBzdHJpbmcsCisgICAgICAgIC8vIHdoaWNoIFNQSSBjbGllbnRzIG1heSByZXNwZWN0IHdo
ZW4gcHJlc2VudGluZyBmaW5kLWluLXBhZ2UgVUkuCisgICAgICAgIGNsaWVudC0+dXBkYXRlU3Ry
aW5nRm9yRmluZEluUGFnZShzdHJpbmdGcm9tU2VsZWN0aW9uKTsKKyAgICB9CisjZW5kaWYKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCmluZGV4IDNmZTZmNGU3
ZTQ1MjEyNWI1MWZhMWZjN2Q0ODA2MWMyYzQ2YmI3N2QuLjY5NzFmMDA5NzQzOGJlYjQ0OTNjZjIx
MGQyNTVkMDcxZDI2MDhiMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0VkaXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMu
bW0KQEAgLTU1LDcgKzU1LDYgQEAKICNpbXBvcnQgIldlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJh
cy5oIgogI2ltcG9ydCAibWFya3VwLmgiCiAjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+Ci0jaW1w
b3J0IDxwYWwvc3lzdGVtL1NvdW5kLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvTlNVUkxFeHRyYXMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTgsMjcgKzk3LDYgQEAgdm9pZCBFZGl0b3I6
OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgT3B0aW9uU2V0PFBh
c3RlT3B0aW9uPgogICAgIGNsaWVudCgpLT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJkKFN0cmluZygp
KTsKIH0KIAotYm9vbCBFZGl0b3I6OmNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCkK
LXsKLSAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpOwotICAgIHJldHVybiBzZWxlY3Rpb24uaXNSYW5nZSgpICYmICFz
ZWxlY3Rpb24uaXNJblBhc3N3b3JkRmllbGQoKTsKLX0KLQotdm9pZCBFZGl0b3I6OnRha2VGaW5k
U3RyaW5nRnJvbVNlbGVjdGlvbigpCi17Ci0gICAgaWYgKCFjYW5Db3B5RXhjbHVkaW5nU3RhbmRh
bG9uZUltYWdlcygpKSB7Ci0gICAgICAgIFBBTDo6c3lzdGVtQmVlcCgpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7Ci0gICAgdHlwZXMuYXBwZW5k
KFN0cmluZyhsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpKSk7Ci0gICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVi
b2FyZFN0cmF0ZWd5KCktPnNldFR5cGVzKHR5cGVzLCBOU0ZpbmRQYm9hcmQpOwotICAgIHBsYXRm
b3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0U3RyaW5nRm9yVHlwZSht
X2ZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc2VsZWN0ZWRUZXh0Rm9yRGF0
YVRyYW5zZmVyKCkpLCBsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpLCBOU0ZpbmRQYm9hcmQp
OwotICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAotfQotCiB2b2lkIEVkaXRv
cjo6cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUpCiB7CiAgICAgUGFzdGVib2FyZCBwYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggYTI4ZWM2OGNkMzlkNDQ1MTRjZTcy
NjZhODM3OGJmMTMzYjZjYWJmMi4uZmY2OWZjYzE5NWZmMTlmODg5YjVjYjM1YzJmOGM3MTM2ZDAw
ODJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTIxNSw2ICsy
MTUsNyBAQCBwcml2YXRlOgogICAgIGludCBnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudCgpIGZpbmFs
IHsgcmV0dXJuIDA7IH0KICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFn
bWVudEZyb21EZWxlZ2F0ZShpbnQpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICBib29s
IHBlcmZvcm1zVHdvU3RlcFBhc3RlKERvY3VtZW50RnJhZ21lbnQqKSBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25zdCBTdHJpbmcm
KSBmaW5hbCB7IH0KICNlbmRpZgogCiAgICAgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoRG9jdW1l
bnRGcmFnbWVudCYsIFJhbmdlJiwgYm9vbCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IGE2NWQ4MGNlYTBmMjdkYWY0YmZkMjhhNWFkMDhl
YTBhNjRjNDY0OGIuLjQ4ZWQ3Y2U0NjgzZTk4MTQzZTU1YWZkMGEwNzFjODJlZjI0ZThkYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtMTM0LDYgKzEzNCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGludCBnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudCgpID0gMDsKICAgICB2aXJ0
dWFsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRl
KGludCBpbmRleCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShE
b2N1bWVudEZyYWdtZW50KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTdHJpbmdGb3JG
aW5kSW5QYWdlKGNvbnN0IFN0cmluZyYpID0gMDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggOWQ3Y2M1Y2M2YzRlNzFjNGJjNjNjZDFmYmYz
NDI0ZGY0N2EzZmM0Yy4uYWQ0OTNjZGMzYmJjODQ2OGU3NjU0M2U3ZTExYjE5ZmM5YTY4ZTYyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMzE2LDYgKzMxNiw3IEBAIFVJUHJvY2Vzcy9Db2Nv
YS9BdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5tbQogVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Lm1tCiBVSVByb2Nlc3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW0KIFVJUHJv
Y2Vzcy9Db2NvYS9GaW5kQ2xpZW50Lm1tCitVSVByb2Nlc3MvQ29jb2EvRmluZEluUGFnZUhlbHBl
cnMubW0KIFVJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50Lm1tCiBVSVByb2Nlc3MvQ29j
b2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbQogVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlckNsaWVudC5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNmQ4OTM5NjVlYjM0NWNiNjgxM2RmZTdmMGM2NGM0ZDMy
MWI2ZGE2Yi4uOTlkOTM5ODY0Yzk1YWFlNjUyYjcwNGVhYmIxNjdkYTJjZTRhOGFlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zNSw2
ICszNSw3IEBACiAjaW1wb3J0ICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2ltcG9ydCAi
RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZS5oIgogI2ltcG9ydCAiRmluZENsaWVudC5oIgorI2lt
cG9ydCAiRmluZEluUGFnZUhlbHBlcnMuaCIKICNpbXBvcnQgIkZyb250Qm9hcmRTZXJ2aWNlc1NQ
SS5oIgogI2ltcG9ydCAiRnVsbHNjcmVlbkNsaWVudC5oIgogI2ltcG9ydCAiSWNvbkxvYWRpbmdE
ZWxlZ2F0ZS5oIgpAQCAtNDQ0Miw2ICs0NDQzLDI1IEBAIC0gKHZvaWQpX3NldEVkaXRhYmxlOihC
T09MKWVkaXRhYmxlCiAjZW5kaWYKIH0KIAorLSAodm9pZClfdGFrZUZpbmRTdHJpbmdGcm9tU2Vs
ZWN0aW9uOihpZClzZW5kZXIKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgW3NlbGYgdGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uOnNlbmRlcl07CisjZWxzZQorICAgIF9wYWdlLT5leGVjdXRl
RWRpdENvbW1hbmQoIlRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbiJfcyk7CisjZW5kaWYKK30K
KworKyAoTlNTdHJpbmcgKilfc3RyaW5nRm9yRmluZEluUGFnZQoreworICAgIHJldHVybiBXZWJL
aXQ6OnN0cmluZ0ZvckZpbmRJblBhZ2UoKTsKK30KKworKyAodm9pZClfY2xlYXJTdHJpbmdGb3JG
aW5kSW5QYWdlCit7CisgICAgV2ViS2l0Ojp1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGVtcHR5
U3RyaW5nKCkpOworfQorCiAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVPYmpl
Y3RSZWdpc3RyeQogewogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDg4YjU2MzViZThm
ZTZhMGJiMmU1ZDNjZjYyYzdiZjYyZjZjNzg2YmQuLmY5NjAyMjA5YzIzZTc5MmUwZTMyZmIwYWE5
YWQ3ZmVkZTgxODU5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjE1LDYgKzIxNSwxMCBAQCB0eXBlZGVmIE5T
X09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKElCQWN0aW9uKV9jaGFuZ2VM
aXN0VHlwZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogLSAoSUJBY3Rpb24pX3Bhc3RlQXNRdW90YXRpb246KGlkKXNlbmRl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IC0gKElCQWN0aW9uKV9wYXN0ZUFuZE1hdGNoU3R5bGU6KGlkKXNlbmRlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKElCQWN0aW9uKV90
YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworQHByb3BlcnR5IChjbGFzcywg
bm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKl9zdHJpbmdGb3JGaW5kSW5QYWdlIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworKyAodm9p
ZClfY2xlYXJTdHJpbmdGb3JGaW5kSW5QYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9GaW5kSW5QYWdlSGVscGVycy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRmluZEluUGFnZUhlbHBlcnMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZDc5OTI4NWIzNTViYmY4Y2ZjZDgzZjA3NTUyZDRmZjAzMDFiOGRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRmluZEluUGFnZUhlbHBl
cnMuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBTdHJpbmc7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3Qg
V1RGOjpTdHJpbmcmKTsKK1dURjo6U3RyaW5nIHN0cmluZ0ZvckZpbmRJblBhZ2UoKTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0ZpbmRJblBhZ2VIZWxwZXJzLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRmluZEluUGFnZUhlbHBlcnMubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWM1ZTA3ZTFmMDZiODhkNWFjYzU2OTVhYmJmMmYwZWZlNmQyZWQyOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0ZpbmRJblBhZ2VIZWxwZXJz
Lm1tCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIkZpbmRJblBhZ2VIZWxwZXJzLmgiCisKKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8QXBwS2l0L05TUGFzdGVib2FyZC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgUExBVEZPUk0oTUFDKQorCitzdGF0aWMgTlNQYXN0
ZWJvYXJkICpmaW5kUGFzdGVib2FyZCgpCit7CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgorICAgIHJldHVybiBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpOU0Zp
bmRQYm9hcmRdOworQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECit9CisKKyNlbHNl
CisKK3N0YXRpYyBTdHJpbmcmIGdsb2JhbFN0cmluZ0ZvckZpbmRJblBhZ2UoKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHN0cmluZzsKKyAgICByZXR1cm4gc3RyaW5nLmdl
dCgpOworfQorCisjZW5kaWYKKwordm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBbZmluZFBhc3RlYm9h
cmQoKSBzZXRTdHJpbmc6c3RyaW5nIGZvclR5cGU6V2ViQ29yZTo6bGVnYWN5U3RyaW5nUGFzdGVi
b2FyZFR5cGUoKV07CisjZWxzZQorICAgIGdsb2JhbFN0cmluZ0ZvckZpbmRJblBhZ2UoKSA9IHN0
cmluZzsKKyNlbmRpZgorfQorCitTdHJpbmcgc3RyaW5nRm9yRmluZEluUGFnZSgpCit7CisjaWYg
UExBVEZPUk0oTUFDKQorICAgIHJldHVybiBbZmluZFBhc3RlYm9hcmQoKSBzdHJpbmdGb3JUeXBl
OldlYkNvcmU6OmxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCldOworI2Vsc2UKKyAgICByZXR1
cm4gZ2xvYmFsU3RyaW5nRm9yRmluZEluUGFnZSgpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAwMWJl
YTUwZDRmMmYyODE5MDNkZDYxZjljZmU0MDhkZmNjMDJiM2FkLi4wOTExZDY1MTc1MjBjMjhkOTYx
YjA0YjgwNGJiZjAxMDgyZDVkOTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTcyMCw2ICsxNzIwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGludGVycHJldEtl
eUV2ZW50KGNvbnN0IEVkaXRvclN0YXRlJiwgYm9vbCBpc0NoYXJFdmVudCwgYm9vbCYgaGFuZGxl
ZCk7CiAgICAgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1Bv
bGljeSwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZWxlY3Rpb25SZWN0c0NhbGxiYWNrKGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpTZWxlY3Rpb25SZWN0PiYsIENhbGxiYWNrSUQpOworCisgICAg
dm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAj
aWYgUExBVEZPUk0oR1RLKQogICAgIHZvaWQgcHJpbnRGaW5pc2hlZENhbGxiYWNrKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBDYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxZTQ1MThmNzFjNDFmZDFl
NjI4ODg2ZmMwM2UzNTEyZjAxOGFhMWM5Li40NjRjMDMzMjc3MWIyMWU5OTVkMmE1MDI3NTQ5YjY0
MTVhMzNkMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCkBAIC00MTYsNiArNDE2LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKIAogICAgIEVuYWJsZUluc3BlY3Rvck5vZGVTZWFyY2goKQogICAgIERpc2FibGVJbnNwZWN0
b3JOb2RlU2VhcmNoKCkKKworICAgIFVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoU3RyaW5nIGZp
bmRTdHJpbmcpCiAjZW5kaWYKIAogICAgIERpZENoYW5nZUluc3BlY3RvckZyb250ZW5kQ291bnQo
dWludDY0X3QgY291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbQppbmRleCBmNmQzMDRiODEwNjFiNWFkNDE4ODA2YmQ4OWQ2Yjc2N2FmNGRiYmMy
Li44M2IwZTRjNTAxYzZmNzc4MzRlOTU1MzQ3ZWQxMzU3MDgxODk3MzMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTMxLDYgKzMxLDcg
QEAKICNpbXBvcnQgIkFQSVVJQ2xpZW50LmgiCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCiAj
aW1wb3J0ICJFZGl0aW5nUmFuZ2UuaCIKKyNpbXBvcnQgIkZpbmRJblBhZ2VIZWxwZXJzLmgiCiAj
aW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgogI2ltcG9ydCAiTG9n
Z2luZy5oIgogI2ltcG9ydCAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgpAQCAtMjI2LDYgKzIy
NywxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVzZW5kTGFzdFZpc2libGVDb250ZW50UmVjdHMo
KQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6Vmlld1VwZGF0ZURpc3BhdGNoZXI6OlZp
c2libGVDb250ZW50UmVjdFVwZGF0ZShtX3BhZ2VJRCwgbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlKSwgMCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVTdHJpbmdGb3JGaW5k
SW5QYWdlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBXZWJLaXQ6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2Uoc3Ry
aW5nKTsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdCBhZGp1c3RlZFVuZXhwb3NlZEVkZ2UoZmxv
YXQgZG9jdW1lbnRFZGdlLCBmbG9hdCBleHBvc2VkUmVjdEVkZ2UsIGZsb2F0IGZhY3RvcikKIHsK
ICAgICBpZiAoZXhwb3NlZFJlY3RFZGdlIDwgZG9jdW1lbnRFZGdlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGRhMDJmYWI1MTI3YTFm
NDY3N2Y5ZTIyMGUzMTIzMDEwMzQ1YTM3YS4uMWY2MWFkZmQxM2JlNjlhMjY2YWM1M2Y3MmExZTM4
YWY3ZTIwMDA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC03NSw5ICs3NSw5IEBACiAJCTAwNUQxNThGMThFNEM0RUIwMDczNDYxOSAv
KiBfV0tGaW5kRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDAwNUQxNThFMThFNEM0RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVsZWdhdGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwMEI5NjYx
NjE4RTI0Q0JBMDBDRTFGODggLyogQVBJRmluZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDBCOTY2MTUxOEUyNENCQTAwQ0UxRjg4IC8qIEFQ
SUZpbmRDbGllbnQuaCAqLzsgfTsKIAkJMDBCOTY2MUExOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAw
Qjk2NjE4MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50LmggKi87IH07CisJCTA3Mjk3RjlG
MUMxN0FBMUEwMTVGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzMyMUY5RDFDMTdCQkVBMjIzRjA3MzUgLyog
UGVyc2lzdGVuY3lVdGlscy5oICovOyB9OwogCQkwNzI5N0Y5RjFDMTdCQkVBMDAzRjA3MzUgLyog
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjk3RjlEMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oICovOyB9OwogCQkwNzI5N0Y5RjFDMTdCQkVBMDE1RjA3
MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjk3RjlEMUMxN0JCRUEyMjNGMDczNSAvKiBEZXZpY2VJ
ZEhhc2hTYWx0U3RvcmFnZS5oICovOyB9OwotCQkwNzI5N0Y5RjFDMTdBQTFBMDE1RjA3MzUgLyog
UGVyc2lzdGVuY3lVdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDczMjFGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIFBlcnNpc3RlbmN5VXRpbHMuaCAq
LzsgfTsKIAkJMDcyOTdGQTMxQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzI5N0ZBMTFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzRFNzVG
RTFERjIyMTE5MDBEMzE4RUMgLyogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NEU3NUZCMURGMUZEMTMwMEQz
MThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oICovOyB9OwogCQkwNzZFODg0RTFBMTND
QURGMDA1RTkwRkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NkU4ODREMUExM0NBREYwMDVFOTBGQyAvKiBB
UElDb250ZXh0TWVudUNsaWVudC5oICovOyB9OwpAQCAtMTAzOCw4ICsxMDM4LDggQEAKIAkJNTdE
Q0VEQzMyMTRGMTE0QzAwMTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREMxMjE0RjExNEMwMDE2Qjg0
NyAvKiBNb2NrTG9jYWxTZXJ2aWNlLmggKi87IH07CiAJCTU3RENFREM3MjE0RjE4MzAwMDE2Qjg0
NyAvKiBNb2NrTG9jYWxDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1N0RDRURDNTIxNEYxODMwMDAxNkI4NDcgLyogTW9ja0xvY2FsQ29u
bmVjdGlvbi5oICovOyB9OwogCQk1N0RDRURDQjIxNEY0RTQyMDAxNkI4NDcgLyogTW9ja0F1dGhl
bnRpY2F0b3JNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1N0RDRURDOTIxNEY0RTQyMDAxNkI4NDcgLyogTW9ja0F1dGhlbnRpY2F0b3JNYW5h
Z2VyLmggKi87IH07Ci0JCTU4RTk3N0RGMjFDNDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNV
cGdyYWRlQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNThFOTc3REQyMUM0OUEwMDAwNUQ5MkE2IC8qIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVj
a2VyLmggKi87IH07CiAJCTU4Nzc0M0E2MjFDMzBCQkUwMEFFOTA4NCAvKiBIVFRQU1VwZ3JhZGVM
aXN0LmRiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
ODc3NDNBNDIxQzMwQUQ4MDBBRTkwODQgLyogSFRUUFNVcGdyYWRlTGlzdC5kYiAqLzsgfTsKKwkJ
NThFOTc3REYyMUM0OUEwMDAwNUQ5MkE2IC8qIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1OEU5NzdERDIx
QzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaCAqLzsgfTsKIAkJ
NUMwQjE3NzgxRTdDODgwRTAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUMwQjE3NzQxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwogCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0
U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1QzE0MjZFRDFDMjNGODA5MDBENDExODMg
LyogTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTQyNkUzMUMyM0Y4MDUwMEQ0MTE4MyAvKiBO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovOyB9OwpAQCAtMTg1NiwxNCArMTg1
NiwxNCBAQAogCQkwMEI5NjYxNTE4RTI0Q0JBMDBDRTFGODggLyogQVBJRmluZENsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElGaW5kQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTAwQjk2NjE3MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xp
ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmluZENsaWVu
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTgxOEUyNUFFMTAwQ0Ux
Rjg4IC8qIEZpbmRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlu
ZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzI5NDU1QzFDMTcxMUVB
MDAzRjA3MzUgLyogUGVyc2lzdGVuY3lVdGlscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQZXJzaXN0ZW5jeVV0aWxzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcyOTdGOUMxQzE3MTFFQTAwM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9y
YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZUlkSGFz
aFNhbHRTdG9yYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyOTdGOUMx
QzE3QkJFQTAwM0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyOTdGOUQxQzE3QkJF
QTAwM0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RjlEMUMxN0JCRUEyMjNGMDczNSAvKiBE
ZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwNzI5NDU1QzFDMTcxMUVBMDAzRjA3MzUgLyogUGVyc2lzdGVuY3lVdGlscy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZXJzaXN0ZW5jeVV0aWxzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDczMjFGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIFBl
cnNpc3RlbmN5VXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyc2lz
dGVuY3lVdGlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0ZBMDFDMTg2
QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0ZBMTFDMTg2QURCMDAzRjA3MzUg
LyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDczMjFGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIFBlcnNpc3RlbmN5VXRpbHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyc2lzdGVuY3lVdGlscy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzRFNzVGQjFERjFGRDEzMDBEMzE4RUMgLyog
VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDc0RTc1RkMxREYyMDAyNDAwRDMxOEVDIC8qIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0RTc2MDAxREY3MDc1
RDAwRDMxOEVDIC8qIE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODA1LDYgKzI4MDUsOCBAQAogCQky
REZDN0RCOTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViVmlld0ltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkRGQzdEQkExQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJbXBsLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlld0ltcGwubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERkY3QjZFMURBNENGQUYwMDgxNDYxNCAvKiBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkUxMzNCNEQyMUQ0MEE5NzAwRUQxQ0IyIC8qIEZpbmRJblBhZ2VIZWxwZXJzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmluZEluUGFnZUhlbHBlcnMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMTMzQjRFMjFENDBBOTgwMEVEMUNC
MiAvKiBGaW5kSW5QYWdlSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGaW5kSW5QYWdlSGVscGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTE2
QjZDQzIwMTdCN0FCMDA4OTk2RDYgLyogV0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGb2N1c2VkRm9ybUNvbnRyb2xW
aWV3Lm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9jdXNlZEZvcm1Db250cm9sVmlldy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxNkI2Q0QyMDE3QjdBQzAwODk5NkQ2IC8qIFdL
Rm9jdXNlZEZvcm1Db250cm9sVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS0ZvY3VzZWRG
b3JtQ29udHJvbFZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU1Qzc3MEMx
RkE3RDQyOTAwNTkzMkMzIC8qIEFQSUF0dGFjaG1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJQXR0
YWNobWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQwNiw5ICszNDA4LDkg
QEAKIAkJNTdEQ0VEQzYyMTRGMTgzMDAwMTZCODQ3IC8qIE1vY2tMb2NhbENvbm5lY3Rpb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNb2NrTG9jYWxDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1N0RDRURDOTIxNEY0RTQyMDAxNkI4NDcgLyogTW9ja0F1dGhl
bnRpY2F0b3JNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tBdXRoZW50aWNhdG9yTWFuYWdl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0RDRURDRDIxNEY1MTY4MDAxNkI4
NDcgLyogTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTU4Nzc0M0E0MjFDMzBBRDgwMEFFOTA4NCAvKiBIVFRQU1VwZ3Jh
ZGVMaXN0LmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gZmlsZTsgbmFtZSA9IEhUVFBTVXBncmFkZUxpc3QuZGI7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJLaXQyL0hUVFBTVXBncmFkZUxpc3QuZGI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTU4RTk3N0RDMjFDNDk5RkUwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdy
YWRlQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3
b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU4RTk3N0REMjFDNDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hl
Y2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1ODc3NDNBNDIxQzMwQUQ4MDBB
RTkwODQgLyogSFRUUFNVcGdyYWRlTGlzdC5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBIVFRQU1VwZ3JhZGVMaXN0LmRiOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9IVFRQU1VwZ3JhZGVMaXN0LmRiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1QzBCMTc3NDFFN0M4NzlDMDBFOTEyM0Mg
LyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVy
LmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1NvY2tldFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJ
CTVDMEIxNzc1MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1NvY2tldFN0cmVhbU1l
c3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtTb2NrZXRTdHJl
YW1NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1QzBC
MTc3NjFFN0M4NzlDMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tl
dFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CkBAIC01MzAxLDYgKzUzMDMsOCBAQAogCQkJCUExREY2MzEwMThFMEI3QzgwMDNBM0Uy
QSAvKiBEb3dubG9hZENsaWVudC5tbSAqLywKIAkJCQkwMEI5NjYxODE4RTI1QUUxMDBDRTFGODgg
LyogRmluZENsaWVudC5oICovLAogCQkJCTAwQjk2NjE3MThFMjVBRTEwMENFMUY4OCAvKiBGaW5k
Q2xpZW50Lm1tICovLAorCQkJCTJFMTMzQjRFMjFENDBBOTgwMEVEMUNCMiAvKiBGaW5kSW5QYWdl
SGVscGVycy5oICovLAorCQkJCTJFMTMzQjREMjFENDBBOTcwMEVEMUNCMiAvKiBGaW5kSW5QYWdl
SGVscGVycy5tbSAqLywKIAkJCQlDRDc4RTExMzFEQjdEN0VEMDAxNEEyREUgLyogRnVsbHNjcmVl
bkNsaWVudC5oICovLAogCQkJCUNENzhFMTEyMURCN0Q3RUQwMDE0QTJERSAvKiBGdWxsc2NyZWVu
Q2xpZW50Lm1tICovLAogCQkJCTUxQzBDOTcyMURERDc0RjAwMDMyQ0FEMyAvKiBJY29uTG9hZGlu
Z0RlbGVnYXRlLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNGI1YTZkM2FkZGI0NDNlOTgw
MGYwYTU1NDdiYjk3OWZjNjRkODBiYS4uMTY4MDRjYjg5OTA5ZWNjODcyNmQxZGI2NTA2OTc5YjY4
NzE2M2NlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTczLDYgKzE3Myw3IEBAIHByaXZhdGU6
CiAgICAgaW50IGdldFBhc3RlYm9hcmRJdGVtc0NvdW50KCkgZmluYWw7CiAgICAgUmVmUHRyPFdl
YkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50
IGluZGV4KSBmaW5hbDsKICAgICBib29sIHBlcmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRv
Y3VtZW50RnJhZ21lbnQqKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBh
Z2UoY29uc3QgU3RyaW5nJikgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVR3b1N0
ZXBEcm9wKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYsIGJvb2wg
aXNNb3ZlKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KaW5kZXggYzYw
NDM4YzRlNWJjYmI0YTQzYzgzYjg1ZDQ0MTkxMmVjNDc3NDYyNy4uMjIxMjMyNWUwZTZiNWJkNGI2
OTY0OTY3MTRjMzQyNzE5MmZkYTkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1Mu
bW0KQEAgLTg2LDYgKzg2LDExIEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpwZXJmb3Jtc1R3b1N0
ZXBQYXN0ZShXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50KikKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0
IFN0cmluZyYgZmluZFN0cmluZykKK3sKKyAgICBtX3BhZ2UtPnVwZGF0ZVN0cmluZ0ZvckZpbmRJ
blBhZ2UoZmluZFN0cmluZyk7Cit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpvdmVyZmxvd1Nj
cm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiB7CiAgICAgbV9wYWdlLT5kaWRDaGFuZ2VTZWxlY3Rpb24o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmYzRl
YTFkZmI5NDI2NGNhMWI5N2JmZDg5NjUzMjBlNDAyZTA3MTExLi4zNGRkZmY1MTUwYjBhNjIxMmJh
MmI2MDg3ZjVkNzk2YmM1NzA2NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC05MzksNiArOTM5LDggQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNv
cmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbiYgdmlld3BvcnRDb25maWd1cmF0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV92aWV3cG9ydENvbmZpZ3VyYXRpb247IH0KIAogICAgIHZvaWQgaGFyZHdhcmVL
ZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQoKTsKKworICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9y
RmluZEluUGFnZShjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VD
SF9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCmluZGV4IDkwNjU4MDU2Mzg5NzM3ZWY5Y2FhNWZmZDYxZThlZGFhZGY3OWNj
ZTkuLjYyOThjZTk1ZGM3NGEwYzViNmYxMGIxZTEwYTcwNTQ0NWE0MjRjMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0z
MTI1LDYgKzMxMjUsMTEgQEAgdm9pZCBXZWJQYWdlOjpoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmls
aXR5Q2hhbmdlZCgpCiAgICAgICAgIGZvY3VzZWRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2Fwc0xv
Y2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlU3RyaW5n
Rm9yRmluZEluUGFnZShjb25zdCBTdHJpbmcmIGZpbmRTdHJpbmcpCit7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpVcGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGZpbmRTdHJpbmcp
KTsKK30KKwogI2lmIFVTRShRVUlDS19MT09LKQogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUGFz
c3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudChjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaAppbmRleCA4NDY0MDU5YzQ5NTJiOTZmNjE0YjdkNTQ1M2E3NTE1ODVkOGU0YWI1
Li4wYTM2MjRlNTdjNDcxYzYyNWEzMjY5NjQwMmMyM2JhNGU2NGI5OWFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaApAQCAtMTQ0LDYgKzE0NCw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3RlYm9hcmRJ
dGVtc0NvdW50KCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ+
IGRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSBmaW5hbDsKICAgICBib29s
IHBlcmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqKSBmaW5hbDsK
KyAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJikgZmluYWwg
eyB9CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRvY3Vt
ZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYgZGVzdGluYXRpb24sIGJvb2wgaXNNb3ZlKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA4ZGNlZTFlNTI3MDBmYWUwYTczN2M1MDA4ZDVhODVmMGYxYThmMDYwLi5jZTcyYWY5YWRmMGYy
MTAyNTc2MGExYjNiM2NiOWExYjgzM2FiODliIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMTItMjYgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHVzaW5nIHRoZSBjdXJyZW50IHRleHQgc2VsZWN0aW9uIGFzIHRoZSBmaW5kIHN0cmluZyBv
biBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
MzAzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxMzg3Mzk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZl
cmlmeSB0aGF0IHRoZSBuZXcgV2ViS2l0IFNQSSAoX3N0cmluZ0ZvckZpbmRJblBhZ2UsIF90YWtl
RmluZFN0cmluZ0Zyb21TZWxlY3Rpb246LCBhbmQKKyAgICAgICAgX2NsZWFyU3RyaW5nRm9yRmlu
ZEluUGFnZSkgd29ya3MgYXMgZXhwZWN0ZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbTogQWRk
ZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxOC0xMi0yMiAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVy
OiB3YXJuIGFib3V0IG5vbiBleGlzdGluZyB0ZXN0cyB3aGVuIHBhcnNpbmcgZXhwZWN0YXRpb25z
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIzMTQzMjhmZWQ0ZWExMTE5ZmUzNWQxYTU5Y2Y1
NGRjYWVlZTkyMjcuLmJjZGQyY2Y5ODk3NGJkMjVmNDY4OWI2OTJhMmY3NDA4ZTM1N2NmMGQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTgsNiArMTE4LDcgQEAKIAkJMkU5MkI4RjcyMTY0
OTBENDAwNUI2NEYwIC8qIHJpY2gtdGV4dC1hdHRyaWJ1dGVzLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5MkI4RjYyMTY0OTBDMzAw
NUI2NEYwIC8qIHJpY2gtdGV4dC1hdHRyaWJ1dGVzLmh0bWwgKi87IH07CiAJCTJFOTJCOEZBMjE2
NEEwQzEwMDVCNjRGMCAvKiBGb250QXR0cmlidXRlcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTJCOEY4MjE2NDkwRUEwMDVCNjRGMCAvKiBGb250
QXR0cmlidXRlcy5tbSAqLzsgfTsKIAkJMkU5ODk2MTUxRDhGMDkzODAwNzM5ODkyIC8qIHRleHQt
YW5kLXBhc3N3b3JkLWlucHV0cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTg5NjE0MUQ4RjA5MkIwMDczOTg5MiAvKiB0ZXh0LWFu
ZC1wYXNzd29yZC1pbnB1dHMuaHRtbCAqLzsgfTsKKwkJMkVCMjQyQjgyMUQ0MTQwQjAwNTVDMUMw
IC8qIFVzZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMTMzQjRGMjFENDBBRjAwMEVEMUNCMiAvKiBVc2VTZWxl
Y3Rpb25Bc0ZpbmRTdHJpbmcubW0gKi87IH07CiAJCTJFQjI5RDVFMUY3NjJEQjkwMDIzQTVGMSAv
KiBkdW1wLWRhdGF0cmFuc2Zlci10eXBlcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQjI5RDVEMUY3NjJEQTUwMDIzQTVGMSAvKiBk
dW1wLWRhdGF0cmFuc2Zlci10eXBlcy5odG1sICovOyB9OwogCQkyRUJEOUQwQTIxMzQ3MzBEMDAy
REE3NTggLyogdmlkZW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwN0NEMzJGNzIwNjVCNzJBMDA2NEE0QkUgLyogdmlkZW8uaHRtbCAq
LzsgfTsKIAkJMkVDRkY1NTUxRDlCMTJGODAwQjU1Mzk0IC8qIE5vd1BsYXlpbmdDb250cm9sc1Rl
c3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVD
RkY1NTQxRDlCMTJGODAwQjU1Mzk0IC8qIE5vd1BsYXlpbmdDb250cm9sc1Rlc3RzLm1tICovOyB9
OwpAQCAtMTM5NSw2ICsxMzk2LDcgQEAKIAkJMkRFNzFBRkYxRDQ5QzJGMDAwOTA0MDk0IC8qIGJs
aW5raW5nLWRpdi5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImJsaW5raW5nLWRp
di5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGRjdCNkMxREE0ODdBRjAw
ODE0NjE0IC8qIFNuYXBzaG90U3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBTbmFwc2hvdFN0b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyRTEzMUMxNzFEODNBOTdFMDAxQkEzNkMgLyogd2lkZS1hdXRvcGxheWluZy12aWRlby13aXRo
LWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAid2lkZS1hdXRvcGxheWlu
Zy12aWRlby13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
RTEzM0I0RjIxRDQwQUYwMDBFRDFDQjIgLyogVXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVXNlU2VsZWN0aW9uQXNGaW5k
U3RyaW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTE0QTUyODFEM0ZFOEI4
MDAxMEYzNUIgLyogYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMUI3QUZGMUQ0MUE5NUYwMDc1NThCNCAvKiBs
YXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gImxhcmdlLXZpZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyRTFCN0IwMTFENDFCMUIzMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8t
aGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJsYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MzcsNiArMjUzOSw3IEBACiAJ
CQkJN0NDQjk5MjAxRDNCNDFGNjAwMzkyMkY2IC8qIFVzZXJJbml0aWF0ZWRBY3Rpb25Jbk5hdmln
YXRpb25BY3Rpb24ubW0gKi8sCiAJCQkJMDdFREVGQUMxRUI5NDAwQzAwRDQzMjkyIC8qIFVzZXJN
ZWRpYURpc2FibGVkLm1tICovLAogCQkJCTA3RjRFOTJEMjBBRjU4RDMwMDJFMzgwMyAvKiBVc2Vy
TWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0gKi8sCisJCQkJMkUxMzNCNEYyMUQ0MEFGMDAw
RUQxQ0IyIC8qIFVzZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbSAqLywKIAkJCQk5M0U5NDNGMTFD
RDNFODdFMDBBQzA4QzIgLyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gKi8sCiAJCQkJQ0QzMDY1
REYyMTY1NjgyRTAwRTg5NURGIC8qIFZpZGVvUXVhbGl0eURpc3BsYXlDb21wb3NpdGluZy5tbSAq
LywKIAkJCQk2MzU2RkIyMTFFQzRFMEJBMDA0NEJGMTggLyogVmlzaWJsZUNvbnRlbnRSZWN0Lm1t
ICovLApAQCAtNDE5MSw2ICs0MTk0LDcgQEAKIAkJCQkwNzk5QzM0OTFFQkEyRDdCMDAzQjc1MzIg
LyogVXNlck1lZGlhRGlzYWJsZWQubW0gaW4gU291cmNlcyAqLywKIAkJCQkwN0Y0RTkyRTIwQUY1
OUUyMDAyRTM4MDMgLyogVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0NDRTdGMTgxQTQxMUFFNjAwNDQ3QzRDIC8qIFVzZXJNZXNzYWdlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTJFQjI0MkI4MjFENDE0MEIwMDU1QzFDMCAvKiBVc2VTZWxlY3Rp
b25Bc0ZpbmRTdHJpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTAzQTFEMEE2MDI3MDBG
RUJDRjMgLyogVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDNjFE
MEE2NTRFMDBGRUJDRjMgLyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDRDMwNjVFMDIxNjU2ODJFMDBFODk1REYgLyogVmlkZW9RdWFsaXR5RGlzcGxheUNvbXBv
c2l0aW5nLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1VzZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkwZjQyYTc4ZmZlOTQxNjU3NmY5MzQ0MzY1ODU4ZmJkNjI3OGY2MjcKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Vz
ZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1w
b3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV2ViS2l0LCBVc2VTZWxlY3Rp
b25Bc0ZpbmRTdHJpbmcpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8Ym9keT5IZWxsbyA8
c3BhbiBpZD0ndGV4dCc+d29ybGQ8L3NwYW4+PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1
YXRlSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKHRleHQpIiBj
b21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFt3ZWJWaWV3IF90YWtlRmluZFN0cmluZ0Zyb21T
ZWxlY3Rpb246bmlsXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0
ZV07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ3b3JsZCIsIFtXS1dlYlZpZXcgX3N0cmluZ0ZvckZp
bmRJblBhZ2VdKTsKKyAgICBbV0tXZWJWaWV3IF9jbGVhclN0cmluZ0ZvckZpbmRJblBhZ2VdOwor
ICAgIEVYUEVDVF9XS19TVFJFUSgiIiwgW1dLV2ViVmlldyBfc3RyaW5nRm9yRmluZEluUGFnZV0p
OworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358085</attachid>
            <date>2018-12-26 13:55:57 -0800</date>
            <delta_ts>2018-12-26 16:54:05 -0800</delta_ts>
            <desc>Fix 32-bit macOS build</desc>
            <filename>bug-193034-20181226135556.patch</filename>
            <type>text/plain</type>
            <size>45923</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVjZmVlMWQyYzlmNjE5
N2RmNzU4MjA5NjQwMTM1Yzg0MjM4MjhmMi4uODQxNWJmZjI1ZjNlZDIyZDk1NTc4YWIwNTYyYjJi
YTAxYmMxNzQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE4LTEyLTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB1c2luZyB0aGUgY3VycmVudCB0ZXh0IHNlbGVjdGlvbiBhcyB0aGUgZmluZCBzdHJpbmcg
b24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTMwMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTM4NzM5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciAiVGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uIiBvbiBpT1MuIFVubGlrZSBtYWNPUywgaU9TIGRvZXMgbm90
IGhhdmUgYSBub3Rpb24gb2YgYSAiZmluZAorICAgICAgICBwYXN0ZWJvYXJkIiBsaWtlIG1hY09T
OyBpbnN0ZWFkLCB3ZSBoYW5kbGUgdGhpcyBlZGl0aW5nIGNvbW1hbmQgYnkgc2VuZGluZyB0aGUg
c2VsZWN0aW9uIHN0cmluZyB0byB0aGUgVUkKKyAgICAgICAgcHJvY2Vzcywgd2hlcmUgaXQgaXMg
ZXhwb3NlZCB2aWEgV2ViS2l0IFNQSSBzbyB0aGF0IGNsaWVudHMgdGhhdCBwcmVzZW50IGZpbmQt
aW4tcGFnZSBVSSAoaS5lLiBNb2JpbGVTYWZhcmkpIGFyZQorICAgICAgICBhYmxlIHRvIHRyaWdn
ZXIgZmluZC1pbi1wYWdlIHdpdGggdGhpcyBzdHJpbmcuCisKKyAgICAgICAgVGVzdDogV2ViS2l0
LlVzZVNlbGVjdGlvbkFzRmluZFN0cmluZworCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUlt
YWdlcyBjb25zdCk6CisKKyAgICAgICAgTWFrZSB0aGlzIGhlbHBlciBmdW5jdGlvbiBjcm9zcy1w
bGF0Zm9ybS4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvbW1hbmRNYXAp
OgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbik6CisKKyAgICAgICAgTW92
ZSB0aGlzIGZyb20gRWRpdG9yTWFjIHRvIEVkaXRvckNvY29hLCBhbmQgaW1wbGVtZW50IGl0IG9u
IGlPUyBieSBjYWxsaW5nIGludG8gdGhlIGVkaXRvciBjbGllbnQgdG8gdXBkYXRlIHRoZQorICAg
ICAgICBmaW5kIHN0cmluZyAoc2VlIFdlYktpdC9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscyku
CisKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OmNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBwYWdl
L0VkaXRvckNsaWVudC5oOgorCisgICAgICAgIEFkZCBhIG5ldyBlZGl0b3IgY2xpZW50IG1ldGhv
ZCB0byBzZW5kIHRoZSBzdHJpbmcgZm9yIGZpbmQtaW4tcGFnZSB0byB0aGUgVUkgcHJvY2Vzcy4K
KwogMjAxOC0xMi0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0hhcmZCdXp6XSBXaWR0aCBub3QgY29ycmVjdGx5IHJlcG9ydGVkIGFzIDAg
Zm9yIHplcm8gZm9udCBzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmZmFjNzI0NzYxNjE0NTBjNTQ1YTNkOWE4
YzM3OTgyOTExMDkxYzEuLjhkNDM2Yzg4NTg3MTI4Nzc4NWU4YjhiMjhjNTVhYTAyYWVlOWFlODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTgtMTItMjYgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHVzaW5nIHRo
ZSBjdXJyZW50IHRleHQgc2VsZWN0aW9uIGFzIHRoZSBmaW5kIHN0cmluZyBvbiBpT1MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzAzNAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDUxMzg3Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Rha2VG
aW5kU3RyaW5nRnJvbVNlbGVjdGlvbjpdKToKKworICAgICAgICBQcm92aWRlcyBhIHdheSB0byBz
ZXQgdGhlIGZpbmQgc3RyaW5nIG9uIGlPUyBhbmQgbWFjT1MgKGFuIGFzaWRlOiB0YWtlRmluZFN0
cmluZ0Zyb21TZWxlY3Rpb246IGFscmVhZHkgZXhpc3RzIG9uCisgICAgICAgIG1hY09TLCBidXQg
dGhlcmUgaXMgbm8gZXF1aXZhbGVudCBwcm90b2NvbCBtZXRob2Qgb24gaU9TLCBzbyB0aGlzIG5l
dyBTUEkgYWN0cyBhcyBhIGNyb3NzLXBsYXRmb3JtIHdheSBmb3IKKyAgICAgICAgV2ViS2l0IGNs
aWVudHMgdG8gdGFrZSB0aGUgZmluZCBzdHJpbmcgZnJvbSB0aGUgc2VsZWN0aW9uIGFjcm9zcyBh
bGwgQ29jb2EgcGxhdGZvcm1zKS4KKworICAgICAgICAoK1tXS1dlYlZpZXcgX3N0cmluZ0ZvckZp
bmRJblBhZ2VdKToKKyAgICAgICAgKCtbV0tXZWJWaWV3IF9jbGVhclN0cmluZ0ZvckZpbmRJblBh
Z2VdKToKKworICAgICAgICBDYWxsIGludG8gZmluZC1pbi1wYWdlIGhlbHBlciBmdW5jdGlvbnMu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKwor
ICAgICAgICBBZGQgc29tZSBuZXcgY3Jvc3MtcGxhdGZvcm0gZmluZC1pbi1wYWdlIFNQSS4gU2Vl
IGFib3ZlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvRmlu
ZEluUGFnZUhlbHBlcnMuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0ZpbmRJ
blBhZ2VIZWxwZXJzLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6ZmluZFBhc3RlYm9hcmQp
OgorICAgICAgICAoV2ViS2l0OjpnbG9iYWxTdHJpbmdGb3JGaW5kSW5QYWdlKToKKworICAgICAg
ICBGZXRjaCB0aGUgc3RyaW5nIHRvIHVzZSB3aGVuIGZpbmRpbmcgdGV4dCBpbiB0aGUgcGFnZS4g
T24gbWFjT1MsIHRoaXMgYWNjZXNzZXMgdGhlIEFwcEtpdCBmaW5kIHBhc3RlYm9hcmQ7IG9uCisg
ICAgICAgIGlPUywgdGhpcyBpbnN0ZWFkIHJldHVybnMgdGhlIGN1cnJlbnQgZ2xvYmFsIGZpbmQg
c3RyaW5nLgorCisgICAgICAgIChXZWJLaXQ6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UpOgor
CisgICAgICAgIFNldHMgdGhlIGdsb2JhbCBmaW5kIHN0cmluZy4gVXNlcyB0aGUgZmluZCBwYXN0
ZWJvYXJkIG9uIG1hY09TLCBhbmQgc2V0cyB0aGUgZ2xvYmFsIGZpbmQgc3RyaW5nIG9uIGlPUy4K
KworICAgICAgICAoV2ViS2l0OjpzdHJpbmdGb3JGaW5kSW5QYWdlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbjoKKworICAgICAgICBBZGQgcGx1bWJpbmcgdG8gYWxsb3cgV2ViRWRpdG9yQ2xp
ZW50IHRvIGRlbGl2ZXIgdGhlIHVwZGF0ZSB0aGUgZ2xvYmFsIGZpbmQgc3RyaW5nIGluIHRoZSBV
SSBwcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRlU3RyaW5nRm9yRmluZEluUGFn
ZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6dXBkYXRlU3RyaW5nRm9yRmluZEluUGFn
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UpOgorCiAyMDE4LTEyLTIzICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJlbW92ZSBz
b21lIHVubmVjZXNzYXJ5IGVkaXRpbmcgU1BJIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS80NjA0NzU0
Nj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA0NDFiYjA5MzBlZDlkOWI2ZjYwODYw
YTczNTQzMTA1OTM2Zjg1ZWVlLi5lMjNiYTA4NGZiZDBkMTlmNTZhNDlkNmI3ZGI3MjQxNWI4MzBm
ZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgt
MTItMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBjdXJyZW50IHRleHQgc2VsZWN0aW9uIGFzIHRoZSBm
aW5kIHN0cmluZyBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MzAzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxMzg3Mzk+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbWV0aG9k
IHN0dWIgZm9yIFdlYktpdExlZ2FjeS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oOgorCiAyMDE4LTEyLTIwICBZdXN1a2UgU3V6dWtpICA8eXVzdWtlc3V6dWtp
QHNsb3dzdGFydC5vcmc+CiAKICAgICAgICAgVXNlIFJlZjw+IGFzIG11Y2ggYXMgcG9zc2libGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBhNWU4NTg0ZjRhZTg3NzIzMTRmNjNmMzQx
N2JjMGNkNmU0NjE3NmZkLi44ZDE3MTM3YmZkNTQ3NmJjZWI0ZTliZDcyZTM3MGZhNGY1MzgxNjBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00MjU2LDQgKzQyNTYsMTAgQEAgUmVm
UHRyPEhUTUxJbWFnZUVsZW1lbnQ+IEVkaXRvcjo6aW5zZXJ0RWRpdGFibGVJbWFnZSgpCiAgICAg
cmV0dXJuIEluc2VydEVkaXRhYmxlSW1hZ2VDb21tYW5kOjppbnNlcnRFZGl0YWJsZUltYWdlKGRv
Y3VtZW50KCkpOwogfQogCitib29sIEVkaXRvcjo6Y2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJ
bWFnZXMoKSBjb25zdAoreworICAgIGF1dG8mIHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9u
KCkuc2VsZWN0aW9uKCk7CisgICAgcmV0dXJuIHNlbGVjdGlvbi5pc1JhbmdlKCkgJiYgIXNlbGVj
dGlvbi5pc0luUGFzc3dvcmRGaWVsZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA3Y2FkMjIwOTg1MjYwMDZmOWNjODljMWNlMGUyNzk0
MjJlYzczODVmLi4wNWNjMWI4MmFlYWMxNDBiNDA5MzBkZjZmMzdlYTU0OTU1YzYzZjQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTQ4NSw5ICs0ODUsOCBAQCBwdWJsaWM6CiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHN0cmluZ1NlbGVjdGlvbkZv
clBhc3RlYm9hcmQoKTsKICAgICBTdHJpbmcgc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZFdp
dGhJbWFnZUFsdFRleHQoKTsKLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIGNh
bkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCk7CiAgICAgdm9pZCB0YWtlRmluZFN0cmlu
Z0Zyb21TZWxlY3Rpb24oKTsKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VOb2RlRnJvbVBh
c3RlYm9hcmQoTm9kZSosIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogICAgIFdFQkNP
UkVfRVhQT1JUIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJk
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwpAQCAtNDk1LDYgKzQ5NCw4IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoQXR0cmlidXRl
ZFN0cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1h
aWxCbG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKICNlbmRpZgogCisgICAg
Ym9vbCBjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpIGNvbnN0OworCiAgICAgU3Ry
aW5nIGNsaWVudFJlcGxhY2VtZW50VVJMRm9yUmVzb3VyY2UoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBy
ZXNvdXJjZURhdGEsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogCiAjaWYgIVBMQVRGT1JNKFdJ
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IDlmZGFjMWQ2
MTE5NTM4YWNlM2Q0YmY4YzBlZTMxNzlmNDdjOGJkMzEuLjBiM2JiYjliZTY5NTY5ZWI4MmNmMDU0
ZGMyNGM3MTVlN2U0YWQ0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcApAQCAtMTEwMiwxMyArMTEwMiwxNSBAQCBzdGF0aWMgYm9vbCBleGVjdXRlU3dhcFdpdGhN
YXJrKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdAogICAg
IHJldHVybiB0cnVlOwogfQogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09B
KQorCiBzdGF0aWMgYm9vbCBleGVjdXRlVGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKEZyYW1l
JiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewog
ICAgIGZyYW1lLmVkaXRvcigpLnRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbigpOwogICAgIHJl
dHVybiB0cnVlOwogfQotI2VuZGlmCisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKIAogc3Rh
dGljIGJvb2wgZXhlY3V0ZVRvZ2dsZUJvbGQoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNv
bW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBTdHJpbmcmKQogewpAQCAtMTM2NywxMiArMTM2OSwx
NCBAQCBzdGF0aWMgYm9vbCBlbmFibGVkUmVkbyhGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9y
Q29tbWFuZFNvdXJjZSkKICAgICByZXR1cm4gZnJhbWUuZWRpdG9yKCkuY2FuUmVkbygpOwogfQog
Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQorCiBzdGF0aWMgYm9vbCBl
bmFibGVkVGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBF
ZGl0b3JDb21tYW5kU291cmNlKQogewogICAgIHJldHVybiBmcmFtZS5lZGl0b3IoKS5jYW5Db3B5
RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpOwogfQotI2VuZGlmCisKKyNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkKIAogc3RhdGljIGJvb2wgZW5hYmxlZFVuZG8oRnJhbWUmIGZyYW1lLCBFdmVu
dCosIEVkaXRvckNvbW1hbmRTb3VyY2UpCiB7CkBAIC0xNzE4LDcgKzE3MjIsNyBAQCBzdGF0aWMg
Y29uc3QgQ29tbWFuZE1hcCYgY3JlYXRlQ29tbWFuZE1hcCgpCiAgICAgICAgIHsgIlBhc3RlR2xv
YmFsU2VsZWN0aW9uIiwgeyBleGVjdXRlUGFzdGVHbG9iYWxTZWxlY3Rpb24sIHN1cHBvcnRlZEZy
b21NZW51T3JLZXlCaW5kaW5nLCBlbmFibGVkUGFzdGUsIHN0YXRlTm9uZSwgdmFsdWVOdWxsLCBu
b3RUZXh0SW5zZXJ0aW9uLCBhbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0sCiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgeyAiVGFr
ZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uIiwgeyBleGVjdXRlVGFrZUZpbmRTdHJpbmdGcm9tU2Vs
ZWN0aW9uLCBzdXBwb3J0ZWRGcm9tTWVudU9yS2V5QmluZGluZywgZW5hYmxlZFRha2VGaW5kU3Ry
aW5nRnJvbVNlbGVjdGlvbiwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24s
IGRvTm90QWxsb3dFeGVjdXRpb25XaGVuRGlzYWJsZWQgfSB9LAogI2VuZGlmCiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCmluZGV4IDVkZTcxNmZh
MWFjNGE5YjY5Yzg1ZjA5NjZiYTI5M2JmYWJiMjZiZmMuLjkwNjlkNzhiZjU5OWUyZDhiYjVhMmIx
OGIzMjc4ZWEwMTc3N2QxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRWRpdG9yQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0
b3JDb2NvYS5tbQpAQCAtNDUsOCArNDUsMTEgQEAKICNpbXBvcnQgIkhUTUxDb252ZXJ0ZXIuaCIK
ICNpbXBvcnQgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxTcGFuRWxlbWVudC5o
IgorI2ltcG9ydCAiTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaCIKICNpbXBvcnQgIkxlZ2FjeVdl
YkFyY2hpdmUuaCIKICNpbXBvcnQgIlBhc3RlYm9hcmQuaCIKKyNpbXBvcnQgIlBhc3RlYm9hcmRT
dHJhdGVneS5oIgorI2ltcG9ydCAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW1wb3J0ICJSZW5k
ZXJFbGVtZW50LmgiCiAjaW1wb3J0ICJSZW5kZXJTdHlsZS5oIgogI2ltcG9ydCAiU2V0dGluZ3Mu
aCIKQEAgLTU1LDYgKzU4LDcgQEAKICNpbXBvcnQgIm1hcmt1cC5oIgogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
TlNLZXllZEFyY2hpdmVyU1BJLmg+CisjaW1wb3J0IDxwYWwvc3lzdGVtL1NvdW5kLmg+CiAjaW1w
b3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL05TVVJM
RXh0cmFzLmg+CiAKQEAgLTIyMyw0ICsyMjcsMjggQEAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IEVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQK
ICAgICByZXR1cm4gV1RGTW92ZShyZWFkZXIuZnJhZ21lbnQpOwogfQogCit2b2lkIEVkaXRvcjo6
dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKCkKK3sKKyAgICBpZiAoIWNhbkNvcHlFeGNsdWRp
bmdTdGFuZGFsb25lSW1hZ2VzKCkpIHsKKyAgICAgICAgUEFMOjpzeXN0ZW1CZWVwKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHN0cmluZ0Zyb21TZWxlY3Rpb24gPSBtX2Zy
YW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc2VsZWN0ZWRUZXh0Rm9yRGF0YVRy
YW5zZmVyKCkpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsK
KyAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkpKTsK
KyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0VHlwZXModHlwZXMsIE5TRmluZFBi
b2FyZCk7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5z
ZXRTdHJpbmdGb3JUeXBlKFdURk1vdmUoc3RyaW5nRnJvbVNlbGVjdGlvbiksIGxlZ2FjeVN0cmlu
Z1Bhc3RlYm9hcmRUeXBlKCksIE5TRmluZFBib2FyZCk7CisgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECisjZWxzZQorICAgIGlmIChhdXRvKiBjbGllbnQgPSB0aGlzLT5jbGll
bnQoKSkgeworICAgICAgICAvLyBTaW5jZSB0aGUgZmluZCBwYXN0ZWJvYXJkIGRvZXNuJ3QgZXhp
c3Qgb24gaU9TLCBXZWJLaXQgbWFpbnRhaW5zIGl0cyBvd24gbm90aW9uIG9mIHRoZSBsYXRlc3Qg
ZmluZCBzdHJpbmcsCisgICAgICAgIC8vIHdoaWNoIFNQSSBjbGllbnRzIG1heSByZXNwZWN0IHdo
ZW4gcHJlc2VudGluZyBmaW5kLWluLXBhZ2UgVUkuCisgICAgICAgIGNsaWVudC0+dXBkYXRlU3Ry
aW5nRm9yRmluZEluUGFnZShzdHJpbmdGcm9tU2VsZWN0aW9uKTsKKyAgICB9CisjZW5kaWYKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCmluZGV4IDNmZTZmNGU3
ZTQ1MjEyNWI1MWZhMWZjN2Q0ODA2MWMyYzQ2YmI3N2QuLjY5NzFmMDA5NzQzOGJlYjQ0OTNjZjIx
MGQyNTVkMDcxZDI2MDhiMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0VkaXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMu
bW0KQEAgLTU1LDcgKzU1LDYgQEAKICNpbXBvcnQgIldlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJh
cy5oIgogI2ltcG9ydCAibWFya3VwLmgiCiAjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+Ci0jaW1w
b3J0IDxwYWwvc3lzdGVtL1NvdW5kLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvTlNVUkxFeHRyYXMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTgsMjcgKzk3LDYgQEAgdm9pZCBFZGl0b3I6
OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgT3B0aW9uU2V0PFBh
c3RlT3B0aW9uPgogICAgIGNsaWVudCgpLT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJkKFN0cmluZygp
KTsKIH0KIAotYm9vbCBFZGl0b3I6OmNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCkK
LXsKLSAgICBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24gPSBtX2ZyYW1lLnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpOwotICAgIHJldHVybiBzZWxlY3Rpb24uaXNSYW5nZSgpICYmICFz
ZWxlY3Rpb24uaXNJblBhc3N3b3JkRmllbGQoKTsKLX0KLQotdm9pZCBFZGl0b3I6OnRha2VGaW5k
U3RyaW5nRnJvbVNlbGVjdGlvbigpCi17Ci0gICAgaWYgKCFjYW5Db3B5RXhjbHVkaW5nU3RhbmRh
bG9uZUltYWdlcygpKSB7Ci0gICAgICAgIFBBTDo6c3lzdGVtQmVlcCgpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7Ci0gICAgdHlwZXMuYXBwZW5k
KFN0cmluZyhsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpKSk7Ci0gICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVi
b2FyZFN0cmF0ZWd5KCktPnNldFR5cGVzKHR5cGVzLCBOU0ZpbmRQYm9hcmQpOwotICAgIHBsYXRm
b3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0U3RyaW5nRm9yVHlwZSht
X2ZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc2VsZWN0ZWRUZXh0Rm9yRGF0
YVRyYW5zZmVyKCkpLCBsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpLCBOU0ZpbmRQYm9hcmQp
OwotICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAotfQotCiB2b2lkIEVkaXRv
cjo6cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUpCiB7CiAgICAgUGFzdGVib2FyZCBwYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggYTI4ZWM2OGNkMzlkNDQ1MTRjZTcy
NjZhODM3OGJmMTMzYjZjYWJmMi4uZmY2OWZjYzE5NWZmMTlmODg5YjVjYjM1YzJmOGM3MTM2ZDAw
ODJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTIxNSw2ICsy
MTUsNyBAQCBwcml2YXRlOgogICAgIGludCBnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudCgpIGZpbmFs
IHsgcmV0dXJuIDA7IH0KICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFn
bWVudEZyb21EZWxlZ2F0ZShpbnQpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICBib29s
IHBlcmZvcm1zVHdvU3RlcFBhc3RlKERvY3VtZW50RnJhZ21lbnQqKSBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25zdCBTdHJpbmcm
KSBmaW5hbCB7IH0KICNlbmRpZgogCiAgICAgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoRG9jdW1l
bnRGcmFnbWVudCYsIFJhbmdlJiwgYm9vbCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IGE2NWQ4MGNlYTBmMjdkYWY0YmZkMjhhNWFkMDhl
YTBhNjRjNDY0OGIuLjQ4ZWQ3Y2U0NjgzZTk4MTQzZTU1YWZkMGEwNzFjODJlZjI0ZThkYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtMTM0LDYgKzEzNCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGludCBnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudCgpID0gMDsKICAgICB2aXJ0
dWFsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRl
KGludCBpbmRleCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShE
b2N1bWVudEZyYWdtZW50KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTdHJpbmdGb3JG
aW5kSW5QYWdlKGNvbnN0IFN0cmluZyYpID0gMDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggOWQ3Y2M1Y2M2YzRlNzFjNGJjNjNjZDFmYmYz
NDI0ZGY0N2EzZmM0Yy4uYWQ0OTNjZGMzYmJjODQ2OGU3NjU0M2U3ZTExYjE5ZmM5YTY4ZTYyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMzE2LDYgKzMxNiw3IEBAIFVJUHJvY2Vzcy9Db2Nv
YS9BdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5tbQogVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Lm1tCiBVSVByb2Nlc3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW0KIFVJUHJv
Y2Vzcy9Db2NvYS9GaW5kQ2xpZW50Lm1tCitVSVByb2Nlc3MvQ29jb2EvRmluZEluUGFnZUhlbHBl
cnMubW0KIFVJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50Lm1tCiBVSVByb2Nlc3MvQ29j
b2EvSWNvbkxvYWRpbmdEZWxlZ2F0ZS5tbQogVUlQcm9jZXNzL0NvY29hL0xlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlckNsaWVudC5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNmQ4OTM5NjVlYjM0NWNiNjgxM2RmZTdmMGM2NGM0ZDMy
MWI2ZGE2Yi4uOTlkOTM5ODY0Yzk1YWFlNjUyYjcwNGVhYmIxNjdkYTJjZTRhOGFlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zNSw2
ICszNSw3IEBACiAjaW1wb3J0ICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2ltcG9ydCAi
RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZS5oIgogI2ltcG9ydCAiRmluZENsaWVudC5oIgorI2lt
cG9ydCAiRmluZEluUGFnZUhlbHBlcnMuaCIKICNpbXBvcnQgIkZyb250Qm9hcmRTZXJ2aWNlc1NQ
SS5oIgogI2ltcG9ydCAiRnVsbHNjcmVlbkNsaWVudC5oIgogI2ltcG9ydCAiSWNvbkxvYWRpbmdE
ZWxlZ2F0ZS5oIgpAQCAtNDQ0Miw2ICs0NDQzLDI1IEBAIC0gKHZvaWQpX3NldEVkaXRhYmxlOihC
T09MKWVkaXRhYmxlCiAjZW5kaWYKIH0KIAorLSAodm9pZClfdGFrZUZpbmRTdHJpbmdGcm9tU2Vs
ZWN0aW9uOihpZClzZW5kZXIKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgW3NlbGYgdGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uOnNlbmRlcl07CisjZWxzZQorICAgIF9wYWdlLT5leGVjdXRl
RWRpdENvbW1hbmQoIlRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbiJfcyk7CisjZW5kaWYKK30K
KworKyAoTlNTdHJpbmcgKilfc3RyaW5nRm9yRmluZEluUGFnZQoreworICAgIHJldHVybiBXZWJL
aXQ6OnN0cmluZ0ZvckZpbmRJblBhZ2UoKTsKK30KKworKyAodm9pZClfY2xlYXJTdHJpbmdGb3JG
aW5kSW5QYWdlCit7CisgICAgV2ViS2l0Ojp1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGVtcHR5
U3RyaW5nKCkpOworfQorCiAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVPYmpl
Y3RSZWdpc3RyeQogewogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDg4YjU2MzViZThm
ZTZhMGJiMmU1ZDNjZjYyYzdiZjYyZjZjNzg2YmQuLmY5NjAyMjA5YzIzZTc5MmUwZTMyZmIwYWE5
YWQ3ZmVkZTgxODU5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjE1LDYgKzIxNSwxMCBAQCB0eXBlZGVmIE5T
X09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIC0gKElCQWN0aW9uKV9jaGFuZ2VM
aXN0VHlwZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogLSAoSUJBY3Rpb24pX3Bhc3RlQXNRdW90YXRpb246KGlkKXNlbmRl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IC0gKElCQWN0aW9uKV9wYXN0ZUFuZE1hdGNoU3R5bGU6KGlkKXNlbmRlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKElCQWN0aW9uKV90
YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246KGlkKXNlbmRlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworQHByb3BlcnR5IChjbGFzcywg
bm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKl9zdHJpbmdGb3JGaW5kSW5QYWdlIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworKyAodm9p
ZClfY2xlYXJTdHJpbmdGb3JGaW5kSW5QYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9GaW5kSW5QYWdlSGVscGVycy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRmluZEluUGFnZUhlbHBlcnMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZDc5OTI4NWIzNTViYmY4Y2ZjZDgzZjA3NTUyZDRmZjAzMDFiOGRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRmluZEluUGFnZUhlbHBl
cnMuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBTdHJpbmc7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3Qg
V1RGOjpTdHJpbmcmKTsKK1dURjo6U3RyaW5nIHN0cmluZ0ZvckZpbmRJblBhZ2UoKTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0ZpbmRJblBhZ2VIZWxwZXJzLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvRmluZEluUGFnZUhlbHBlcnMubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzhlNGFiNWM2YjNhODllMTIxY2QzOTY3ODhhNmM4MWM3MTU4ZGU5NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0ZpbmRJblBhZ2VIZWxwZXJz
Lm1tCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIkZpbmRJblBhZ2VIZWxwZXJzLmgiCisKKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCisjaWYgUExBVEZPUk0oTUFDKQorI2ltcG9ydCA8QXBwS2l0L05TUGFzdGVib2FyZC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgUExBVEZPUk0oTUFDKQorCitzdGF0aWMgTlNQYXN0
ZWJvYXJkICpmaW5kUGFzdGVib2FyZCgpCit7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KKyAgICByZXR1cm4gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6
TlNGaW5kUGJvYXJkXTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKK30K
KworI2Vsc2UKKworc3RhdGljIFN0cmluZyYgZ2xvYmFsU3RyaW5nRm9yRmluZEluUGFnZSgpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc3RyaW5nOworICAgIHJldHVybiBz
dHJpbmcuZ2V0KCk7Cit9CisKKyNlbmRpZgorCit2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBh
Z2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIFtmaW5k
UGFzdGVib2FyZCgpIHNldFN0cmluZzpzdHJpbmcgZm9yVHlwZTpXZWJDb3JlOjpsZWdhY3lTdHJp
bmdQYXN0ZWJvYXJkVHlwZSgpXTsKKyNlbHNlCisgICAgZ2xvYmFsU3RyaW5nRm9yRmluZEluUGFn
ZSgpID0gc3RyaW5nOworI2VuZGlmCit9CisKK1N0cmluZyBzdHJpbmdGb3JGaW5kSW5QYWdlKCkK
K3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgcmV0dXJuIFtmaW5kUGFzdGVib2FyZCgpIHN0cmlu
Z0ZvclR5cGU6V2ViQ29yZTo6bGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKV07CisjZWxzZQor
ICAgIHJldHVybiBnbG9iYWxTdHJpbmdGb3JGaW5kSW5QYWdlKCk7CisjZW5kaWYKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDAxYmVhNTBkNGYyZjI4MTkwM2RkNjFmOWNmZTQwOGRmY2MwMmIzYWQuLjA5MTFkNjUxNzUy
MGMyOGQ5NjFiMDRiODA0YmJmMDEwODJkNWQ5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCkBAIC0xNzIwLDYgKzE3MjAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgaW50
ZXJwcmV0S2V5RXZlbnQoY29uc3QgRWRpdG9yU3RhdGUmLCBib29sIGlzQ2hhckV2ZW50LCBib29s
JiBoYW5kbGVkKTsKICAgICB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihib29sIGhhc1Zp
ZGVvLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgV2ViQ29yZTo6Um91dGVT
aGFyaW5nUG9saWN5LCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNlbGVjdGlvblJlY3RzQ2Fs
bGJhY2soY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlvblJlY3Q+JiwgQ2FsbGJhY2tJRCk7
CisKKyAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJik7CiAj
ZW5kaWYKICNpZiBQTEFURk9STShHVEspCiAgICAgdm9pZCBwcmludEZpbmlzaGVkQ2FsbGJhY2so
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDFlNDUxOGY3
MWM0MWZkMWU2Mjg4ODZmYzAzZTM1MTJmMDE4YWExYzkuLjQ2NGMwMzMyNzcxYjIxZTk5NWQyYTUw
Mjc1NDliNjQxNWEzM2QyZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQxNiw2ICs0MTYsOCBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogCiAgICAgRW5hYmxlSW5zcGVjdG9yTm9kZVNlYXJjaCgpCiAgICAgRGlzYWJs
ZUluc3BlY3Rvck5vZGVTZWFyY2goKQorCisgICAgVXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShT
dHJpbmcgZmluZFN0cmluZykKICNlbmRpZgogCiAgICAgRGlkQ2hhbmdlSW5zcGVjdG9yRnJvbnRl
bmRDb3VudCh1aW50NjRfdCBjb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGY2ZDMwNGI4MTA2MWI1YWQ0MTg4MDZiZDg5ZDZiNzY3
YWY0ZGJiYzIuLjgzYjBlNGM1MDFjNmY3NzgzNGU5NTUzNDdlZDEzNTcwODE4OTczMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMzEs
NiArMzEsNyBAQAogI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKICNpbXBvcnQgIkRhdGFSZWZlcmVu
Y2UuaCIKICNpbXBvcnQgIkVkaXRpbmdSYW5nZS5oIgorI2ltcG9ydCAiRmluZEluUGFnZUhlbHBl
cnMuaCIKICNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCiAjaW1w
b3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCkBAIC0y
MjYsNiArMjI3LDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNlbmRMYXN0VmlzaWJsZUNvbnRl
bnRSZWN0cygpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpWaWV3VXBkYXRlRGlzcGF0
Y2hlcjo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKG1fcGFnZUlELCBtX2xhc3RWaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGUpLCAwKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVN0cmlu
Z0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgaWYgKCFpc1ZhbGlk
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYktpdDo6dXBkYXRlU3RyaW5nRm9yRmluZElu
UGFnZShzdHJpbmcpOworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0IGFkanVzdGVkVW5leHBvc2Vk
RWRnZShmbG9hdCBkb2N1bWVudEVkZ2UsIGZsb2F0IGV4cG9zZWRSZWN0RWRnZSwgZmxvYXQgZmFj
dG9yKQogewogICAgIGlmIChleHBvc2VkUmVjdEVkZ2UgPCBkb2N1bWVudEVkZ2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0ZGEwMmZh
YjUxMjdhMWY0Njc3ZjllMjIwZTMxMjMwMTAzNDVhMzdhLi4xZjYxYWRmZDEzYmU2OWEyNjZhYzUz
ZjcyYTFlMzhhZjdlMjAwMDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTc1LDkgKzc1LDkgQEAKIAkJMDA1RDE1OEYxOEU0QzRFQjAw
NzM0NjE5IC8qIF9XS0ZpbmREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDA1RDE1OEUxOEU0QzRFQjAwNzM0NjE5IC8qIF9XS0ZpbmREZWxl
Z2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTAwQjk2NjE2MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMEI5NjYxNTE4RTI0Q0JBMDBDRTFG
ODggLyogQVBJRmluZENsaWVudC5oICovOyB9OwogCQkwMEI5NjYxQTE4RTI1QUUxMDBDRTFGODgg
LyogRmluZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDBCOTY2MTgxOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQuaCAqLzsgfTsKKwkJ
MDcyOTdGOUYxQzE3QUExQTAxNUYwNzM1IC8qIFBlcnNpc3RlbmN5VXRpbHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MzIxRjlEMUMxN0JCRUEyMjNG
MDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JCRUEwMDNG
MDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTAwM0YwNzM1IC8q
IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JC
RUEwMTVGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8q
IERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi87IH07Ci0JCTA3Mjk3RjlGMUMxN0FBMUEwMTVG
MDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwNzMyMUY5RDFDMTdCQkVBMjIzRjA3MzUgLyogUGVyc2lzdGVuY3lV
dGlscy5oICovOyB9OwogCQkwNzI5N0ZBMzFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3Mjk3RkExMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25D
aGVjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTA3NEU3NUZFMURGMjIxMTkwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0RTc1RkIxREYx
RkQxMzAwRDMxOEVDIC8qIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmggKi87IH07CiAJCTA3NkU4
ODRFMUExM0NBREYwMDVFOTBGQyAvKiBBUElDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RTg4NEQxQTEzQ0FERjAwNUU5
MEZDIC8qIEFQSUNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CkBAIC0xMDM4LDggKzEwMzgsOCBA
QAogCQk1N0RDRURDMzIxNEYxMTRDMDAxNkI4NDcgLyogTW9ja0xvY2FsU2VydmljZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VEQzEyMTRGMTE0
QzAwMTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCAqLzsgfTsKIAkJNTdEQ0VEQzcyMTRGMTgz
MDAwMTZCODQ3IC8qIE1vY2tMb2NhbENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREM1MjE0RjE4MzAwMDE2Qjg0NyAvKiBNb2Nr
TG9jYWxDb25uZWN0aW9uLmggKi87IH07CiAJCTU3RENFRENCMjE0RjRFNDIwMDE2Qjg0NyAvKiBN
b2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3RENFREM5MjE0RjRFNDIwMDE2Qjg0NyAvKiBNb2NrQXV0aGVudGlj
YXRvck1hbmFnZXIuaCAqLzsgfTsKLQkJNThFOTc3REYyMUM0OUEwMDAwNUQ5MkE2IC8qIE5ldHdv
cmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1OEU5NzdERDIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hUVFBTVXBn
cmFkZUNoZWNrZXIuaCAqLzsgfTsKIAkJNTg3NzQzQTYyMUMzMEJCRTAwQUU5MDg0IC8qIEhUVFBT
VXBncmFkZUxpc3QuZGIgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU4Nzc0M0E0MjFDMzBBRDgwMEFFOTA4NCAvKiBIVFRQU1VwZ3JhZGVMaXN0LmRiICov
OyB9OworCQk1OEU5NzdERjIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hUVFBTVXBncmFkZUNo
ZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU4
RTk3N0REMjFDNDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5oICov
OyB9OwogCQk1QzBCMTc3ODFFN0M4ODBFMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1QzBCMTc3NDFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTVDMEIxNzc5MUU3Qzg4MjEwMEU5MTIzQyAvKiBX
ZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwQjE3NzYxRTdDODc5QzAwRTkxMjNDIC8qIFdlYlNv
Y2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTVDMTQyNkVEMUMyM0Y4MDkw
MEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNDI2RTMxQzIzRjgwNTAwRDQx
MTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi87IH07CkBAIC0xODU2
LDE0ICsxODU2LDE0IEBACiAJCTAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUZpbmRDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTcxOEUyNUFFMTAwQ0UxRjg4IC8q
IEZpbmRDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBG
aW5kQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMEI5NjYxODE4RTI1
QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3Mjk0NTVD
MUMxNzExRUEwMDNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzI5N0Y5QzFDMTcxMUVBMDAzRjA3MzUgLyogRGV2aWNlSWRIYXNo
U2FsdFN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2
aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzI5N0Y5QzFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0Y5
RDFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyOTdGOUQxQzE3QkJFQTIyM0Yw
NzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTA3Mjk0NTVDMUMxNzExRUEwMDNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzMyMUY5RDFDMTdCQkVBMjIzRjA3
MzUgLyogUGVyc2lzdGVuY3lVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQZXJzaXN0ZW5jeVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3
RkEwMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25D
aGVjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RkExMUMxODZBREIw
MDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwNzMyMUY5RDFDMTdCQkVBMjIzRjA3MzUgLyogUGVyc2lzdGVu
Y3lVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJzaXN0ZW5jeVV0
aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NEU3NUZCMURGMUZEMTMwMEQz
MThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzRFNzVGQzFERjIwMDI0MDBEMzE4RUMgLyogVXNlck1lZGlhUHJvY2Vzc01h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlh
UHJvY2Vzc01hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzRFNzYw
MDFERjcwNzVEMDBEMzE4RUMgLyogTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYURldmljZVNhbmRib3hFeHRl
bnNpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MDUsNiArMjgwNSw4
IEBACiAJCTJERkM3REI5MUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWV3SW1wbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyREZDN0RCQTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJWaWV3SW1wbC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRGRjdCNkUxREE0Q0ZBRjAwODE0NjE0IC8q
IFdLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tCYWNrRm9yd2FyZExpc3RJdGVtUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyRTEzM0I0RDIxRDQwQTk3MDBFRDFDQjIgLyogRmluZEluUGFnZUhlbHBl
cnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGaW5kSW5QYWdl
SGVscGVycy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkUxMzNCNEUyMUQ0MEE5
ODAwRUQxQ0IyIC8qIEZpbmRJblBhZ2VIZWxwZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbmRJblBhZ2VIZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJFMTZCNkNDMjAxN0I3QUIwMDg5OTZENiAvKiBXS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0ZvY3VzZWRGb3Jt
Q29udHJvbFZpZXcubW07IHBhdGggPSBpb3MvZm9ybXMvV0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTE2QjZDRDIwMTdCN0FDMDA4OTk2
RDYgLyogV0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdLRm9jdXNlZEZvcm1Db250cm9sVmlldy5oOyBwYXRoID0gaW9zL2Zvcm1zL1dL
Rm9jdXNlZEZvcm1Db250cm9sVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
RTVDNzcwQzFGQTdENDI5MDA1OTMyQzMgLyogQVBJQXR0YWNobWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBUElBdHRhY2htZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDA2LDkg
KzM0MDgsOSBAQAogCQk1N0RDRURDNjIxNEYxODMwMDAxNkI4NDcgLyogTW9ja0xvY2FsQ29ubmVj
dGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1vY2tMb2NhbENvbm5lY3Rpb24ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFREM5MjE0RjRFNDIwMDE2Qjg0NyAvKiBN
b2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFRENEMjE0RjUx
NjgwMDE2Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTg3NzQzQTQyMUMzMEFEODAwQUU5MDg0IC8qIEhU
VFBTVXBncmFkZUxpc3QuZGIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gSFRUUFNVcGdyYWRlTGlzdC5kYjsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvSFRUUFNVcGdyYWRlTGlzdC5kYjsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJNThFOTc3REMyMUM0OTlGRTAwNUQ5MkE2IC8qIE5ldHdvcmtI
VFRQU1VwZ3JhZGVDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNThFOTc3REQyMUM0OUEwMDAwNUQ5MkE2IC8qIE5ldHdvcmtIVFRQU1VwZ3JhZGVD
aGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtIVFRQU1Vw
Z3JhZGVDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU4Nzc0M0E0MjFD
MzBBRDgwMEFFOTA4NCAvKiBIVFRQU1VwZ3JhZGVMaXN0LmRiICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IEhUVFBTVXBncmFkZUxp
c3QuZGI7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0hUVFBTVXBncmFkZUxpc3QuZGI7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTVDMEIxNzc0MUU3Qzg3OUMw
MEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdl
UmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrU29ja2V0
U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNUMwQjE3NzUxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1N
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrU29ja2V0
U3RyZWFtTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1Nv
Y2tldFN0cmVhbU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViU29ja2V0
U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKQEAgLTUzMDEsNiArNTMwMyw4IEBACiAJCQkJQTFERjYzMTAxOEUwQjdD
ODAwM0EzRTJBIC8qIERvd25sb2FkQ2xpZW50Lm1tICovLAogCQkJCTAwQjk2NjE4MThFMjVBRTEw
MENFMUY4OCAvKiBGaW5kQ2xpZW50LmggKi8sCiAJCQkJMDBCOTY2MTcxOEUyNUFFMTAwQ0UxRjg4
IC8qIEZpbmRDbGllbnQubW0gKi8sCisJCQkJMkUxMzNCNEUyMUQ0MEE5ODAwRUQxQ0IyIC8qIEZp
bmRJblBhZ2VIZWxwZXJzLmggKi8sCisJCQkJMkUxMzNCNEQyMUQ0MEE5NzAwRUQxQ0IyIC8qIEZp
bmRJblBhZ2VIZWxwZXJzLm1tICovLAogCQkJCUNENzhFMTEzMURCN0Q3RUQwMDE0QTJERSAvKiBG
dWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJQ0Q3OEUxMTIxREI3RDdFRDAwMTRBMkRFIC8qIEZ1
bGxzY3JlZW5DbGllbnQubW0gKi8sCiAJCQkJNTFDMEM5NzIxRERENzRGMDAwMzJDQUQzIC8qIElj
b25Mb2FkaW5nRGVsZWdhdGUuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCA0YjVhNmQzYWRk
YjQ0M2U5ODAwZjBhNTU0N2JiOTc5ZmM2NGQ4MGJhLi4xNjgwNGNiODk5MDllY2M4NzI2ZDFkYjY1
MDY5NzliNjg3MTYzY2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xNzMsNiArMTczLDcgQEAg
cHJpdmF0ZToKICAgICBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoKSBmaW5hbDsKICAgICBS
ZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFnbWVudEZyb21EZWxl
Z2F0ZShpbnQgaW5kZXgpIGZpbmFsOwogICAgIGJvb2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoV2Vi
Q29yZTo6RG9jdW1lbnRGcmFnbWVudCopIGZpbmFsOworICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9y
RmluZEluUGFnZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKICNlbmRpZgogCiAgICAgYm9vbCBwZXJm
b3JtVHdvU3RlcERyb3AoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudCYsIFdlYkNvcmU6OlJhbmdl
JiwgYm9vbCBpc01vdmUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQpp
bmRleCBjNjA0MzhjNGU1YmNiYjRhNDNjODNiODVkNDQxOTEyZWM0Nzc0NjI3Li4yMjEyMzI1ZTBl
NmI1YmQ0YjY5NjQ5NjcxNGMzNDI3MTkyZmRhOTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNs
aWVudElPUy5tbQpAQCAtODYsNiArODYsMTEgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnBlcmZv
cm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqKQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBh
Z2UoY29uc3QgU3RyaW5nJiBmaW5kU3RyaW5nKQoreworICAgIG1fcGFnZS0+dXBkYXRlU3RyaW5n
Rm9yRmluZEluUGFnZShmaW5kU3RyaW5nKTsKK30KKwogdm9pZCBXZWJFZGl0b3JDbGllbnQ6Om92
ZXJmbG93U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKIHsKICAgICBtX3BhZ2UtPmRpZENoYW5nZVNl
bGVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IGZjNGVhMWRmYjk0MjY0Y2ExYjk3YmZkODk2NTMyMGU0MDJlMDcxMTEuLjM0ZGRmZjUxNTBi
MGE2MjEyYmEyYjYwODdmNWQ3OTZiYzU3MDY1ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTkzOSw2ICs5MzksOCBAQCBwdWJsaWM6CiAgICAgY29u
c3QgV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uJiB2aWV3cG9ydENvbmZpZ3VyYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbjsgfQogCiAgICAgdm9pZCBo
YXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpOworCisgICAgdm9pZCB1cGRhdGVT
dHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
SU9TX1RPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggOTA2NTgwNTYzODk3MzdlZjljYWE1ZmZkNjFlOGVk
YWFkZjc5Y2NlOS4uNjI5OGNlOTVkYzc0YTBjNWI2ZjEwYjFlMTBhNzA1NDQ1YTQyNGMwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KQEAgLTMxMjUsNiArMzEyNSwxMSBAQCB2b2lkIFdlYlBhZ2U6OmhhcmR3YXJlS2V5Ym9hcmRB
dmFpbGFiaWxpdHlDaGFuZ2VkKCkKICAgICAgICAgZm9jdXNlZEZyYW1lLT5ldmVudEhhbmRsZXIo
KS5jYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsKIH0KIAordm9pZCBXZWJQYWdlOjp1cGRh
dGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFN0cmluZyYgZmluZFN0cmluZykKK3sKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoZmlu
ZFN0cmluZykpOworfQorCiAjaWYgVVNFKFFVSUNLX0xPT0spCiB2b2lkIFdlYlBhZ2U6OmRpZFJl
Y2VpdmVQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50KGNvbnN0IFN0cmluZyYgcGFzc3dvcmQp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDg0NjQwNTljNDk1MmI5NmY2MTRiN2Q1NDUzYTc1MTU4
NWQ4ZTRhYjUuLjBhMzYyNGU1N2M0NzFjNjI1YTMyNjk2NDAyYzIzYmE0ZTY0Yjk5YWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCkBAIC0xNDQsNiArMTQ0LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgZ2V0UGFz
dGVib2FyZEl0ZW1zQ291bnQoKSBmaW5hbDsKICAgICBSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRG
cmFnbWVudD4gZG9jdW1lbnRGcmFnbWVudEZyb21EZWxlZ2F0ZShpbnQgaW5kZXgpIGZpbmFsOwog
ICAgIGJvb2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudCop
IGZpbmFsOworICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25zdCBTdHJpbmcm
KSBmaW5hbCB7IH0KICNlbmRpZgogCiAgICAgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoV2ViQ29y
ZTo6RG9jdW1lbnRGcmFnbWVudCYsIFdlYkNvcmU6OlJhbmdlJiBkZXN0aW5hdGlvbiwgYm9vbCBp
c01vdmUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDhkY2VlMWU1MjcwMGZhZTBhNzM3YzUwMDhkNWE4NWYwZjFhOGYwNjAuLmNlNzJh
ZjlhZGYwZjIxMDI1NzYwYTFiM2IzY2I5YTFiODMzYWI4OWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0xMi0y
NiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgdXNpbmcgdGhlIGN1cnJlbnQgdGV4dCBzZWxlY3Rpb24gYXMgdGhlIGZpbmQg
c3RyaW5nIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkzMDM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTEzODczOT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgQVBJIHRl
c3QgdG8gdmVyaWZ5IHRoYXQgdGhlIG5ldyBXZWJLaXQgU1BJIChfc3RyaW5nRm9yRmluZEluUGFn
ZSwgX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbjosIGFuZAorICAgICAgICBfY2xlYXJTdHJp
bmdGb3JGaW5kSW5QYWdlKSB3b3JrcyBhcyBleHBlY3RlZC4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5n
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE4LTEyLTIy
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBX
ZWJEcml2ZXI6IHdhcm4gYWJvdXQgbm9uIGV4aXN0aW5nIHRlc3RzIHdoZW4gcGFyc2luZyBleHBl
Y3RhdGlvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjMxNDMyOGZlZDRlYTExMTlmZTM1
ZDFhNTljZjU0ZGNhZWVlOTIyNy4uYmNkZDJjZjk4OTc0YmQyNWY0Njg5YjY5MmEyZjc0MDhlMzU3
Y2YwZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExOCw2ICsxMTgsNyBAQAogCQkyRTky
QjhGNzIxNjQ5MEQ0MDA1QjY0RjAgLyogcmljaC10ZXh0LWF0dHJpYnV0ZXMuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTkyQjhGNjIx
NjQ5MEMzMDA1QjY0RjAgLyogcmljaC10ZXh0LWF0dHJpYnV0ZXMuaHRtbCAqLzsgfTsKIAkJMkU5
MkI4RkEyMTY0QTBDMTAwNUI2NEYwIC8qIEZvbnRBdHRyaWJ1dGVzLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5MkI4RjgyMTY0OTBFQTAwNUI2NEYw
IC8qIEZvbnRBdHRyaWJ1dGVzLm1tICovOyB9OwogCQkyRTk4OTYxNTFEOEYwOTM4MDA3Mzk4OTIg
LyogdGV4dC1hbmQtcGFzc3dvcmQtaW5wdXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5ODk2MTQxRDhGMDkyQjAwNzM5ODkyIC8q
IHRleHQtYW5kLXBhc3N3b3JkLWlucHV0cy5odG1sICovOyB9OworCQkyRUIyNDJCODIxRDQxNDBC
MDA1NUMxQzAgLyogVXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxMzNCNEYyMUQ0MEFGMDAwRUQxQ0IyIC8q
IFVzZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbSAqLzsgfTsKIAkJMkVCMjlENUUxRjc2MkRCOTAw
MjNBNUYxIC8qIGR1bXAtZGF0YXRyYW5zZmVyLXR5cGVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVCMjlENUQxRjc2MkRBNTAwMjNB
NUYxIC8qIGR1bXAtZGF0YXRyYW5zZmVyLXR5cGVzLmh0bWwgKi87IH07CiAJCTJFQkQ5RDBBMjEz
NDczMEQwMDJEQTc1OCAvKiB2aWRlby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Q0QzMkY3MjA2NUI3MkEwMDY0QTRCRSAvKiB2aWRl
by5odG1sICovOyB9OwogCQkyRUNGRjU1NTFEOUIxMkY4MDBCNTUzOTQgLyogTm93UGxheWluZ0Nv
bnRyb2xzVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRUNGRjU1NDFEOUIxMkY4MDBCNTUzOTQgLyogTm93UGxheWluZ0NvbnRyb2xzVGVzdHMu
bW0gKi87IH07CkBAIC0xMzk1LDYgKzEzOTYsNyBAQAogCQkyREU3MUFGRjFENDlDMkYwMDA5MDQw
OTQgLyogYmxpbmtpbmctZGl2Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYmxp
bmtpbmctZGl2Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREZGN0I2QzFE
QTQ4N0FGMDA4MTQ2MTQgLyogU25hcHNob3RTdG9yZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFNuYXBzaG90U3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJFMTMxQzE3MUQ4M0E5N0UwMDFCQTM2QyAvKiB3aWRlLWF1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3aWRlLWF1
dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJFMTMzQjRGMjFENDBBRjAwMEVEMUNCMiAvKiBVc2VTZWxlY3Rpb25Bc0ZpbmRTdHJp
bmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVc2VTZWxlY3Rp
b25Bc0ZpbmRTdHJpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMTRBNTI4
MUQzRkU4QjgwMDEwRjM1QiAvKiBhdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxQjdBRkYxRDQxQTk1RjAwNzU1
OEI0IC8qIGxhcmdlLXZpZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMUI3QjAxMUQ0MUIxQjMwMDc1NThCNCAvKiBsYXJn
ZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWst
dG8tZW5kLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUzNyw2ICsyNTM5
LDcgQEAKIAkJCQk3Q0NCOTkyMDFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlv
bkluTmF2aWdhdGlvbkFjdGlvbi5tbSAqLywKIAkJCQkwN0VERUZBQzFFQjk0MDBDMDBENDMyOTIg
LyogVXNlck1lZGlhRGlzYWJsZWQubW0gKi8sCiAJCQkJMDdGNEU5MkQyMEFGNThEMzAwMkUzODAz
IC8qIFVzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbSAqLywKKwkJCQkyRTEzM0I0RjIx
RDQwQUYwMDBFRDFDQjIgLyogVXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tICovLAogCQkJCTkz
RTk0M0YxMUNEM0U4N0UwMEFDMDhDMiAvKiBWaWRlb0NvbnRyb2xzTWFuYWdlci5tbSAqLywKIAkJ
CQlDRDMwNjVERjIxNjU2ODJFMDBFODk1REYgLyogVmlkZW9RdWFsaXR5RGlzcGxheUNvbXBvc2l0
aW5nLm1tICovLAogCQkJCTYzNTZGQjIxMUVDNEUwQkEwMDQ0QkYxOCAvKiBWaXNpYmxlQ29udGVu
dFJlY3QubW0gKi8sCkBAIC00MTkxLDYgKzQxOTQsNyBAQAogCQkJCTA3OTlDMzQ5MUVCQTJEN0Iw
MDNCNzUzMiAvKiBVc2VyTWVkaWFEaXNhYmxlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3RjRF
OTJFMjBBRjU5RTIwMDJFMzgwMyAvKiBVc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YxODFBNDExQUU2MDA0NDdDNEMgLyogVXNlck1lc3Nh
Z2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkVCMjQyQjgyMUQ0MTQwQjAwNTVDMUMwIC8qIFVz
ZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMDNBMUQw
QTYwMjcwMEZFQkNGMyAvKiBVdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdD
ODNFMEM2MUQwQTY1NEUwMEZFQkNGMyAvKiBWaWRlb0NvbnRyb2xzTWFuYWdlci5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUNEMzA2NUUwMjE2NTY4MkUwMEU4OTVERiAvKiBWaWRlb1F1YWxpdHlEaXNw
bGF5Q29tcG9zaXRpbmcubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VTZWxlY3Rpb25Bc0ZpbmRT
dHJpbmcubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjgwZDUzMjQwOGE2ZjQ2YmUxMWM4NmE1NDY1MmYwYTNkZDUz
YjAwYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvVXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1w
b3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CisKK1RFU1QoV2ViS2l0LCBVc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcpCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZEhUTUxTdHJpbmc6QCI8Ym9keT5IZWxsbyA8c3BhbiBpZD0ndGV4dCc+d29ybGQ8L3NwYW4+
PC9ib2R5PiJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImdldFNlbGVjdGlv
bigpLnNlbGVjdEFsbENoaWxkcmVuKHRleHQpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAg
IFt3ZWJWaWV3IF90YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246bmlsXTsKKyAgICBbd2ViVmll
dyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ3
b3JsZCIsIFtXS1dlYlZpZXcgX3N0cmluZ0ZvckZpbmRJblBhZ2VdKTsKKyAgICBbV0tXZWJWaWV3
IF9jbGVhclN0cmluZ0ZvckZpbmRJblBhZ2VdOworICAgIEVYUEVDVF9XS19TVFJFUSgiIiwgW1dL
V2ViVmlldyBfc3RyaW5nRm9yRmluZEluUGFnZV0pOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358097</attachid>
            <date>2018-12-26 20:54:50 -0800</date>
            <delta_ts>2018-12-26 21:17:56 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-193034-20181226205449.patch</filename>
            <type>text/plain</type>
            <size>47286</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVjZmVlMWQyYzlmNjE5
N2RmNzU4MjA5NjQwMTM1Yzg0MjM4MjhmMi4uODQxNWJmZjI1ZjNlZDIyZDk1NTc4YWIwNTYyYjJi
YTAxYmMxNzQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE4LTEyLTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB1c2luZyB0aGUgY3VycmVudCB0ZXh0IHNlbGVjdGlvbiBhcyB0aGUgZmluZCBzdHJpbmcg
b24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTMwMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTM4NzM5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciAiVGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uIiBvbiBpT1MuIFVubGlrZSBtYWNPUywgaU9TIGRvZXMgbm90
IGhhdmUgYSBub3Rpb24gb2YgYSAiZmluZAorICAgICAgICBwYXN0ZWJvYXJkIiBsaWtlIG1hY09T
OyBpbnN0ZWFkLCB3ZSBoYW5kbGUgdGhpcyBlZGl0aW5nIGNvbW1hbmQgYnkgc2VuZGluZyB0aGUg
c2VsZWN0aW9uIHN0cmluZyB0byB0aGUgVUkKKyAgICAgICAgcHJvY2Vzcywgd2hlcmUgaXQgaXMg
ZXhwb3NlZCB2aWEgV2ViS2l0IFNQSSBzbyB0aGF0IGNsaWVudHMgdGhhdCBwcmVzZW50IGZpbmQt
aW4tcGFnZSBVSSAoaS5lLiBNb2JpbGVTYWZhcmkpIGFyZQorICAgICAgICBhYmxlIHRvIHRyaWdn
ZXIgZmluZC1pbi1wYWdlIHdpdGggdGhpcyBzdHJpbmcuCisKKyAgICAgICAgVGVzdDogV2ViS2l0
LlVzZVNlbGVjdGlvbkFzRmluZFN0cmluZworCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUlt
YWdlcyBjb25zdCk6CisKKyAgICAgICAgTWFrZSB0aGlzIGhlbHBlciBmdW5jdGlvbiBjcm9zcy1w
bGF0Zm9ybS4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvbW1hbmRNYXAp
OgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbik6CisKKyAgICAgICAgTW92
ZSB0aGlzIGZyb20gRWRpdG9yTWFjIHRvIEVkaXRvckNvY29hLCBhbmQgaW1wbGVtZW50IGl0IG9u
IGlPUyBieSBjYWxsaW5nIGludG8gdGhlIGVkaXRvciBjbGllbnQgdG8gdXBkYXRlIHRoZQorICAg
ICAgICBmaW5kIHN0cmluZyAoc2VlIFdlYktpdC9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscyku
CisKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OmNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBwYWdl
L0VkaXRvckNsaWVudC5oOgorCisgICAgICAgIEFkZCBhIG5ldyBlZGl0b3IgY2xpZW50IG1ldGhv
ZCB0byBzZW5kIHRoZSBzdHJpbmcgZm9yIGZpbmQtaW4tcGFnZSB0byB0aGUgVUkgcHJvY2Vzcy4K
KwogMjAxOC0xMi0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0hhcmZCdXp6XSBXaWR0aCBub3QgY29ycmVjdGx5IHJlcG9ydGVkIGFzIDAg
Zm9yIHplcm8gZm9udCBzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmZmFjNzI0NzYxNjE0NTBjNTQ1YTNkOWE4
YzM3OTgyOTExMDkxYzEuLmE3NmFkZjQyNjc1NTRkZTZlY2RhNGI4NzUwZjZlNzc0YjVkZDIxNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTgtMTItMjYgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHVzaW5nIHRo
ZSBjdXJyZW50IHRleHQgc2VsZWN0aW9uIGFzIHRoZSBmaW5kIHN0cmluZyBvbiBpT1MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzAzNAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDUxMzg3Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Rha2VG
aW5kU3RyaW5nRnJvbVNlbGVjdGlvbjpdKToKKworICAgICAgICBQcm92aWRlcyBhIHdheSB0byBz
ZXQgdGhlIGZpbmQgc3RyaW5nIG9uIGlPUyBhbmQgbWFjT1MgKGFuIGFzaWRlOiB0YWtlRmluZFN0
cmluZ0Zyb21TZWxlY3Rpb246IGFscmVhZHkgZXhpc3RzIG9uCisgICAgICAgIG1hY09TLCBidXQg
dGhlcmUgaXMgbm8gZXF1aXZhbGVudCBwcm90b2NvbCBtZXRob2Qgb24gaU9TLCBzbyB0aGlzIG5l
dyBTUEkgYWN0cyBhcyBhIGNyb3NzLXBsYXRmb3JtIHdheSBmb3IKKyAgICAgICAgV2ViS2l0IGNs
aWVudHMgdG8gdGFrZSB0aGUgZmluZCBzdHJpbmcgZnJvbSB0aGUgc2VsZWN0aW9uIGFjcm9zcyBh
bGwgQ29jb2EgcGxhdGZvcm1zKS4KKworICAgICAgICAoK1tXS1dlYlZpZXcgX3N0cmluZ0ZvckZp
bmRJblBhZ2VdKToKKyAgICAgICAgKCtbV0tXZWJWaWV3IF9zZXRTdHJpbmdGb3JGaW5kSW5QYWdl
Ol0pOgorCisgICAgICAgIENhbGwgaW50byBmaW5kLWluLXBhZ2UgaGVscGVyIGZ1bmN0aW9ucy4K
KworICAgICAgICAoLVtXS1dlYlZpZXcgX2ZpbmRTdHJpbmc6b3B0aW9uczptYXhDb3VudDpdKToK
KworICAgICAgICBPbiBpT1MsIGFkZGl0aW9uYWxseSB1cGRhdGUgdGhlIGZpbmQtaW4tcGFnZSBz
dHJpbmcgd2hlbiBleGVyY2lzaW5nIHRoZSBfZmluZFN0cmluZzpvcHRpb25zOm1heENvdW50OiBT
UEkuIFRoaXMKKyAgICAgICAgbWlycm9ycyBtYWNPUyBiZWhhdmlvciBvZiB1cGRhdGluZyB0aGUg
ZmluZCBwYXN0ZWJvYXJkIGV2ZXJ5IHRpbWUgdGhlIGZpbmQgc3RyaW5nIGNoYW5nZXM7IGhvd2V2
ZXIsIG9uIG1hY09TLAorICAgICAgICB0aGlzIGlzIGltcGxlbWVudGVkIGJ5IHRoZSBwbGF0Zm9y
bSAoaW4gQXBwS2l0KSwgd2hlcmVhcyB0aGVyZSdzIG5vIHBsYXRmb3JtIGZpbmQgcGFzdGVib2Fy
ZCBvbiBpT1MsIGxldCBhbG9uZQorICAgICAgICBsb2dpYyB0byB1cGRhdGUgaXQgaW4gVUlLaXQu
IEFzIHN1Y2gsIHdlIGRpcmVjdGx5IGRyaXZlIHVwZGF0ZXMgdG8gdGhlIGZpbmQgc3RyaW5nIHdp
dGhpbiBXZWJLaXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKworICAgICAgICBBZGQgc29tZSBuZXcgY3Jvc3MtcGxhdGZvcm0gZmluZC1pbi1w
YWdlIFNQSS4gU2VlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUubW06IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpmaW5kUGFzdGVib2FyZCk6CisgICAgICAgIChXZWJLaXQ6Omdsb2JhbFN0cmluZ0ZvckZp
bmRJblBhZ2UpOgorCisgICAgICAgIEZldGNoIHRoZSBzdHJpbmcgdG8gdXNlIHdoZW4gZmluZGlu
ZyB0ZXh0IGluIHRoZSBwYWdlLiBPbiBtYWNPUywgdGhpcyBhY2Nlc3NlcyB0aGUgQXBwS2l0IGZp
bmQgcGFzdGVib2FyZDsgb24KKyAgICAgICAgaU9TLCB0aGlzIGluc3RlYWQgcmV0dXJucyB0aGUg
Y3VycmVudCBnbG9iYWwgZmluZCBzdHJpbmcuCisKKyAgICAgICAgKFdlYktpdDo6dXBkYXRlU3Ry
aW5nRm9yRmluZEluUGFnZSk6CisKKyAgICAgICAgU2V0cyB0aGUgZ2xvYmFsIGZpbmQgc3RyaW5n
LiBVc2VzIHRoZSBmaW5kIHBhc3RlYm9hcmQgb24gbWFjT1MsIGFuZCBzZXRzIHRoZSBnbG9iYWwg
ZmluZCBzdHJpbmcgb24gaU9TLgorCisgICAgICAgIChXZWJLaXQ6OnN0cmluZ0ZvckZpbmRJblBh
Z2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFkZCBwbHVtYmluZyB0
byBhbGxvdyBXZWJFZGl0b3JDbGllbnQgdG8gZGVsaXZlciB0aGUgdXBkYXRlIHRoZSBnbG9iYWwg
ZmluZCBzdHJpbmcgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRh
dGVTdHJpbmdGb3JGaW5kSW5QYWdlKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVk
aXRvckNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp1cGRh
dGVTdHJpbmdGb3JGaW5kSW5QYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZSk6CisK
IDIwMTgtMTItMjMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gUmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgZWRpdGluZyBTUEkgYWZ0ZXIgPHJk
YXI6Ly9wcm9ibGVtLzQ2MDQ3NTQ2PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDQ0
MWJiMDkzMGVkOWQ5YjZmNjA4NjBhNzM1NDMxMDU5MzZmODVlZWUuLmUyM2JhMDg0ZmJkMGQxOWY1
NmE0OWQ2YjdkYjcyNDE1YjgzMGZmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxOC0xMi0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNpbmcgdGhlIGN1cnJlbnQgdGV4
dCBzZWxlY3Rpb24gYXMgdGhlIGZpbmQgc3RyaW5nIG9uIGlPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMDM0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80NTEzODczOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSBtZXRob2Qgc3R1YiBmb3IgV2ViS2l0TGVnYWN5LgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTgtMTItMjAgIFl1c3VrZSBT
dXp1a2kgIDx5dXN1a2VzdXp1a2lAc2xvd3N0YXJ0Lm9yZz4KIAogICAgICAgICBVc2UgUmVmPD4g
YXMgbXVjaCBhcyBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGE1ZTg1
ODRmNGFlODc3MjMxNGY2M2YzNDE3YmMwY2Q2ZTQ2MTc2ZmQuLjhkMTcxMzdiZmQ1NDc2YmNlYjRl
OWJkNzJlMzcwZmE0ZjUzODE2MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTQy
NTYsNCArNDI1NiwxMCBAQCBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gRWRpdG9yOjppbnNlcnRF
ZGl0YWJsZUltYWdlKCkKICAgICByZXR1cm4gSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6Omlu
c2VydEVkaXRhYmxlSW1hZ2UoZG9jdW1lbnQoKSk7CiB9CiAKK2Jvb2wgRWRpdG9yOjpjYW5Db3B5
RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpIGNvbnN0Cit7CisgICAgYXV0byYgc2VsZWN0aW9u
ID0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKKyAgICByZXR1cm4gc2VsZWN0aW9u
LmlzUmFuZ2UoKSAmJiAhc2VsZWN0aW9uLmlzSW5QYXNzd29yZEZpZWxkKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDdjYWQyMjA5ODUy
NjAwNmY5Y2M4OWMxY2UwZTI3OTQyMmVjNzM4NWYuLjA1Y2MxYjgyYWVhYzE0MGI0MDkzMGRmNmYz
N2VhNTQ5NTVjNjNmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDg1LDkgKzQ4NSw4
IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCgpOwogICAgIFN0cmluZyBzdHJpbmdTZWxl
Y3Rpb25Gb3JQYXN0ZWJvYXJkV2l0aEltYWdlQWx0VGV4dCgpOwotI2lmICFQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIGJvb2wgY2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJbWFnZXMoKTsKICAg
ICB2b2lkIHRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbigpOworI2lmICFQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJv
YXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZChOb2RlKiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YVNl
bGVjdGlvbkZvclBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CkBAIC00
OTUsNiArNDk0LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNl
bGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmluZyAqLCBNYWlsQmxv
Y2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVv
dGUpOwogI2VuZGlmCiAKKyAgICBib29sIGNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2Vz
KCkgY29uc3Q7CisKICAgICBTdHJpbmcgY2xpZW50UmVwbGFjZW1lbnRVUkxGb3JSZXNvdXJjZShS
ZWY8U2hhcmVkQnVmZmVyPiYmIHJlc291cmNlRGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7
CiAKICNpZiAhUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFu
ZC5jcHAKaW5kZXggOWZkYWMxZDYxMTk1MzhhY2UzZDRiZjhjMGVlMzE3OWY0N2M4YmQzMS4uMGIz
YmJiOWJlNjk1NjllYjgyY2YwNTRkYzI0YzcxNWU3ZTRhZDQzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xMTAyLDEzICsxMTAyLDE1IEBAIHN0YXRpYyBi
b29sIGV4ZWN1dGVTd2FwV2l0aE1hcmsoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1h
bmRTb3VyY2UsIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBQTEFURk9STShNQUMp
CisjaWYgUExBVEZPUk0oQ09DT0EpCisKIHN0YXRpYyBib29sIGV4ZWN1dGVUYWtlRmluZFN0cmlu
Z0Zyb21TZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Us
IGNvbnN0IFN0cmluZyYpCiB7CiAgICAgZnJhbWUuZWRpdG9yKCkudGFrZUZpbmRTdHJpbmdGcm9t
U2VsZWN0aW9uKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKKworI2VuZGlmIC8vIFBM
QVRGT1JNKENPQ09BKQogCiBzdGF0aWMgYm9vbCBleGVjdXRlVG9nZ2xlQm9sZChGcmFtZSYgZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7
CkBAIC0xMzY3LDEyICsxMzY5LDE0IEBAIHN0YXRpYyBib29sIGVuYWJsZWRSZWRvKEZyYW1lJiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlKQogICAgIHJldHVybiBmcmFtZS5lZGl0
b3IoKS5jYW5SZWRvKCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09D
T0EpCisKIHN0YXRpYyBib29sIGVuYWJsZWRUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oRnJh
bWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UpCiB7CiAgICAgcmV0dXJuIGZy
YW1lLmVkaXRvcigpLmNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCk7CiB9Ci0jZW5k
aWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiBzdGF0aWMgYm9vbCBlbmFibGVkVW5k
byhGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSkKIHsKQEAgLTE3MTgs
NyArMTcyMiw3IEBAIHN0YXRpYyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWFwKCkK
ICAgICAgICAgeyAiUGFzdGVHbG9iYWxTZWxlY3Rpb24iLCB7IGV4ZWN1dGVQYXN0ZUdsb2JhbFNl
bGVjdGlvbiwgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRQYXN0ZSwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRp
c2FibGVkIH0gfSwKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgICAgICB7ICJUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24iLCB7IGV4ZWN1dGVU
YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24sIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5n
LCBlbmFibGVkVGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uLCBzdGF0ZU5vbmUsIHZhbHVlTnVs
bCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0s
CiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9FZGl0b3JDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29j
b2EubW0KaW5kZXggNWRlNzE2ZmExYWM0YTliNjljODVmMDk2NmJhMjkzYmZhYmIyNmJmYy4uOTA2
OWQ3OGJmNTk5ZTJkOGJiNWEyYjE4YjMyNzhlYTAxNzc3ZDE5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCkBAIC00NSw4ICs0NSwxMSBAQAogI2ltcG9y
dCAiSFRNTENvbnZlcnRlci5oIgogI2ltcG9ydCAiSFRNTEltYWdlRWxlbWVudC5oIgogI2ltcG9y
dCAiSFRNTFNwYW5FbGVtZW50LmgiCisjaW1wb3J0ICJMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5o
IgogI2ltcG9ydCAiTGVnYWN5V2ViQXJjaGl2ZS5oIgogI2ltcG9ydCAiUGFzdGVib2FyZC5oIgor
I2ltcG9ydCAiUGFzdGVib2FyZFN0cmF0ZWd5LmgiCisjaW1wb3J0ICJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCIKICNpbXBvcnQgIlJlbmRlckVsZW1lbnQuaCIKICNpbXBvcnQgIlJlbmRlclN0eWxlLmgi
CiAjaW1wb3J0ICJTZXR0aW5ncy5oIgpAQCAtNTUsNiArNTgsNyBAQAogI2ltcG9ydCAibWFya3Vw
LmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQXR0cmlidXRlZFN0cmluZ1NQSS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaD4KKyNpbXBvcnQgPHBhbC9z
eXN0ZW0vU291bmQuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1w
b3J0IDx3dGYvY29jb2EvTlNVUkxFeHRyYXMuaD4KIApAQCAtMjIzLDQgKzIyNywyOCBAQCBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gRWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoUGFz
dGVib2FyZCYgcGFzdGVib2FyZAogICAgIHJldHVybiBXVEZNb3ZlKHJlYWRlci5mcmFnbWVudCk7
CiB9CiAKK3ZvaWQgRWRpdG9yOjp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oKQoreworICAg
IGlmICghY2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJbWFnZXMoKSkgeworICAgICAgICBQQUw6
OnN5c3RlbUJlZXAoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc3RyaW5n
RnJvbVNlbGVjdGlvbiA9IG1fZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhz
ZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIFZl
Y3RvcjxTdHJpbmc+IHR5cGVzOworICAgIHR5cGVzLmFwcGVuZChTdHJpbmcobGVnYWN5U3RyaW5n
UGFzdGVib2FyZFR5cGUoKSkpOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRU
eXBlcyh0eXBlcywgTlNGaW5kUGJvYXJkKTsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFz
dGVib2FyZFN0cmF0ZWd5KCktPnNldFN0cmluZ0ZvclR5cGUoV1RGTW92ZShzdHJpbmdGcm9tU2Vs
ZWN0aW9uKSwgbGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKSwgTlNGaW5kUGJvYXJkKTsKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKyNlbHNlCisgICAgaWYgKGF1dG8q
IGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKSB7CisgICAgICAgIC8vIFNpbmNlIHRoZSBmaW5kIHBh
c3RlYm9hcmQgZG9lc24ndCBleGlzdCBvbiBpT1MsIFdlYktpdCBtYWludGFpbnMgaXRzIG93biBu
b3Rpb24gb2YgdGhlIGxhdGVzdCBmaW5kIHN0cmluZywKKyAgICAgICAgLy8gd2hpY2ggU1BJIGNs
aWVudHMgbWF5IHJlc3BlY3Qgd2hlbiBwcmVzZW50aW5nIGZpbmQtaW4tcGFnZSBVSS4KKyAgICAg
ICAgY2xpZW50LT51cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKHN0cmluZ0Zyb21TZWxlY3Rpb24p
OworICAgIH0KKyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JN
YWMubW0KaW5kZXggM2ZlNmY0ZTdlNDUyMTI1YjUxZmExZmM3ZDQ4MDYxYzJjNDZiYjc3ZC4uNjk3
MWYwMDk3NDM4YmViNDQ5M2NmMjEwZDI1NWQwNzFkMjYwOGIwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAtNTUsNyArNTUsNiBAQAogI2ltcG9ydCAiV2ViTlNB
dHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmgiCiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPEFw
cEtpdC9BcHBLaXQuaD4KLSNpbXBvcnQgPHBhbC9zeXN0ZW0vU291bmQuaD4KICNpbXBvcnQgPHd0
Zi9jb2NvYS9OU1VSTEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05OCwyNyAr
OTcsNiBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0
ZWJvYXJkLCBPcHRpb25TZXQ8UGFzdGVPcHRpb24+CiAgICAgY2xpZW50KCktPnNldEluc2VydGlv
blBhc3RlYm9hcmQoU3RyaW5nKCkpOwogfQogCi1ib29sIEVkaXRvcjo6Y2FuQ29weUV4Y2x1ZGlu
Z1N0YW5kYWxvbmVJbWFnZXMoKQotewotICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7Ci0gICAgcmV0dXJuIHNlbGVj
dGlvbi5pc1JhbmdlKCkgJiYgIXNlbGVjdGlvbi5pc0luUGFzc3dvcmRGaWVsZCgpOwotfQotCi12
b2lkIEVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKCkKLXsKLSAgICBpZiAoIWNh
bkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCkpIHsKLSAgICAgICAgUEFMOjpzeXN0ZW1C
ZWVwKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiB0eXBl
czsKLSAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkp
KTsKLSAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0VHlwZXModHlwZXMsIE5TRmlu
ZFBib2FyZCk7Ci0gICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgp
LT5zZXRTdHJpbmdGb3JUeXBlKG1fZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGlu
ZyhzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKSksIGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRU
eXBlKCksIE5TRmluZFBib2FyZCk7Ci0gICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECi19Ci0KIHZvaWQgRWRpdG9yOjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsKICAgICBQYXN0ZWJvYXJkIHBhc3RlYm9hcmQocGFz
dGVib2FyZE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBh
MjhlYzY4Y2QzOWQ0NDUxNGNlNzI2NmE4Mzc4YmYxMzNiNmNhYmYyLi5mZjY5ZmNjMTk1ZmYxOWY4
ODliNWNiMzVjMmY4YzcxMzZkMDA4MmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtMjE1LDYgKzIxNSw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3RlYm9h
cmRJdGVtc0NvdW50KCkgZmluYWwgeyByZXR1cm4gMDsgfQogICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRlKGludCkgZmluYWwgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIGJvb2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoRG9jdW1lbnRGcmFnbWVu
dCopIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5k
SW5QYWdlKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogI2VuZGlmCiAKICAgICBib29sIHBlcmZv
cm1Ud29TdGVwRHJvcChEb2N1bWVudEZyYWdtZW50JiwgUmFuZ2UmLCBib29sKSBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKaW5kZXggYTY1ZDgwY2Vh
MGYyN2RhZjRiZmQyOGE1YWQwOGVhMGE2NGM0NjQ4Yi4uNDhlZDdjZTQ2ODNlOTgxNDNlNTVhZmQw
YTA3MWM4MmVmMjRlOGRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBAIC0xMzQs
NiArMTM0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IGdldFBhc3RlYm9hcmRJdGVtc0Nv
dW50KCkgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50
RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHBl
cmZvcm1zVHdvU3RlcFBhc3RlKERvY3VtZW50RnJhZ21lbnQqKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJikgPSAwOwogI2VuZGlm
CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA5ZDdjYzVj
YzZjNGU3MWM0YmM2M2NkMWZiZjM0MjRkZjQ3YTNmYzRjLi4zMjAxNzNmYTdiMTI2MGYyYjRjY2Nj
MzY5ZDE5Zjc0N2NhNDIzNGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zMTcsNiArMzE3
LDcgQEAgVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tCiBVSVByb2Nl
c3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW0KIFVJUHJvY2Vzcy9Db2NvYS9GaW5kQ2xpZW50Lm1t
CiBVSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbQorVUlQcm9jZXNzL0NvY29hL0ds
b2JhbEZpbmRJblBhZ2VTdGF0ZS5tbQogVUlQcm9jZXNzL0NvY29hL0ljb25Mb2FkaW5nRGVsZWdh
dGUubW0KIFVJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQu
bW0KIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDZkODkzOTY1ZWIzNDVjYjY4
MTNkZmU3ZjBjNjRjNGQzMjFiNmRhNmIuLjM5ZjlhYjc4ZTcwMWEyMTg3NzZlZDVkNDJmOTE4MDBm
MjBmMWExZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiRmluZENsaWVudC5oIgogI2ltcG9y
dCAiRnJvbnRCb2FyZFNlcnZpY2VzU1BJLmgiCiAjaW1wb3J0ICJGdWxsc2NyZWVuQ2xpZW50Lmgi
CisjaW1wb3J0ICJHbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCIKICNpbXBvcnQgIkljb25Mb2FkaW5n
RGVsZWdhdGUuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIgogI2ltcG9y
dCAiTG9nZ2luZy5oIgpAQCAtNDQ0Miw2ICs0NDQzLDI1IEBAIC0gKHZvaWQpX3NldEVkaXRhYmxl
OihCT09MKWVkaXRhYmxlCiAjZW5kaWYKIH0KIAorLSAodm9pZClfdGFrZUZpbmRTdHJpbmdGcm9t
U2VsZWN0aW9uOihpZClzZW5kZXIKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgW3NlbGYgdGFr
ZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uOnNlbmRlcl07CisjZWxzZQorICAgIF9wYWdlLT5leGVj
dXRlRWRpdENvbW1hbmQoIlRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbiJfcyk7CisjZW5kaWYK
K30KKworKyAoTlNTdHJpbmcgKilfc3RyaW5nRm9yRmluZEluUGFnZQoreworICAgIHJldHVybiBX
ZWJLaXQ6OnN0cmluZ0ZvckZpbmRJblBhZ2UoKTsKK30KKworKyAodm9pZClfc2V0U3RyaW5nRm9y
RmluZEluUGFnZTooTlNTdHJpbmcgKilmaW5kU3RyaW5nCit7CisgICAgV2ViS2l0Ojp1cGRhdGVT
dHJpbmdGb3JGaW5kSW5QYWdlKGZpbmRTdHJpbmcpOworfQorCiAtIChfV0tSZW1vdGVPYmplY3RS
ZWdpc3RyeSAqKV9yZW1vdGVPYmplY3RSZWdpc3RyeQogewogI2lmIFBMQVRGT1JNKE1BQykKQEAg
LTUxNzcsNiArNTE5NywxMSBAQCAtICh2b2lkKV9jb3VudFN0cmluZ01hdGNoZXM6KE5TU3RyaW5n
ICopc3RyaW5nIG9wdGlvbnM6KF9XS0ZpbmRPcHRpb25zKW9wdGlvbnMgbQogLSAodm9pZClfZmlu
ZFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgb3B0aW9uczooX1dLRmluZE9wdGlvbnMpb3B0aW9u
cyBtYXhDb3VudDooTlNVSW50ZWdlciltYXhDb3VudAogewogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgLy8gV2hpbGUgQXBwS2l0IGNvbnRhaW5zIGxvZ2ljIGluIE5TQmFyVGV4dEZpbmRl
ciB0byBhdXRvbWF0aWNhbGx5IHVwZGF0ZSB0aGUgZmluZCBwYXN0ZWJvYXJkCisgICAgLy8gd2hl
biB0aGUgZmluZCBzdHJpbmcgY2hhbmdlcywgdGhpcyAoYWxvbmcgd2l0aCB0aGUgZmluZCBwYXN0
ZWJvYXJkIGl0c2VsZikgYXJlIGJvdGggbWlzc2luZworICAgIC8vIGZyb20gaU9TOyB0aHVzLCBv
biBpT1MsIHdlIHVwZGF0ZSB0aGUgY3VycmVudCBmaW5kLWluLXBhZ2Ugc3RyaW5nIGhlcmUuCisg
ICAgV2ViS2l0Ojp1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKHN0cmluZyk7CisKICAgICBpZiAo
X2N1c3RvbUNvbnRlbnRWaWV3KSB7CiAgICAgICAgIFtfY3VzdG9tQ29udGVudFZpZXcgd2ViX2Zp
bmRTdHJpbmc6c3RyaW5nIG9wdGlvbnM6b3B0aW9ucyBtYXhDb3VudDptYXhDb3VudF07CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDg4YjU2MzViZThmZTZhMGJiMmU1ZDNjZjYyYzdiZjYy
ZjZjNzg2YmQuLjA5ZmFkNzc5Mjg5NDcwYzRjZTIwYmE4ZGE3YWNkYmZhY2Q3MWIzODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaApAQCAtMjE1LDYgKzIxNSw5IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBf
V0tSZWN0RWRnZSkgewogLSAoSUJBY3Rpb24pX2NoYW5nZUxpc3RUeXBlOihpZClzZW5kZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtIChJ
QkFjdGlvbilfcGFzdGVBc1F1b3RhdGlvbjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAoSUJBY3Rpb24pX3Bhc3RlQW5k
TWF0Y2hTdHlsZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24pX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVj
dGlvbjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworCitAcHJvcGVydHkgKGNsYXNzLCBub25hdG9taWMsIGNvcHksIHNldHRl
cj1fc2V0U3RyaW5nRm9yRmluZEluUGFnZTopIE5TU3RyaW5nICpfc3RyaW5nRm9yRmluZEluUGFn
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDc5OTI4NWIz
NTViYmY4Y2ZjZDgzZjA3NTUyZDRmZjAzMDFiOGRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLmgKQEAgLTAsMCAr
MSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgU3RyaW5nOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFdURjo6U3RyaW5nJik7
CitXVEY6OlN0cmluZyBzdHJpbmdGb3JGaW5kSW5QYWdlKCk7CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTYxN2VhMWZkNGFjMDE2NTFjZmJmYmVhOTVjY2UwNzEzZTE5M2M3OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dsb2JhbEZpbmRJblBhZ2VTdGF0ZS5t
bQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJHbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCIKKworI2ltcG9ydCA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKKyNpZiBQTEFURk9STShNQUMpCisjaW1wb3J0IDxBcHBLaXQvTlNQYXN0ZWJvYXJk
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmg+CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBQTEFURk9STShNQUMpCisKK3N0YXRpYyBOU1Bh
c3RlYm9hcmQgKmZpbmRQYXN0ZWJvYXJkKCkKK3sKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgorICAgIHJldHVybiBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFt
ZTpOU0ZpbmRQYm9hcmRdOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAor
fQorCisjZWxzZQorCitzdGF0aWMgU3RyaW5nJiBnbG9iYWxTdHJpbmdGb3JGaW5kSW5QYWdlKCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzdHJpbmc7CisgICAgcmV0dXJu
IHN0cmluZy5nZXQoKTsKK30KKworI2VuZGlmCisKK3ZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZElu
UGFnZShjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgW2Zp
bmRQYXN0ZWJvYXJkKCkgc2V0U3RyaW5nOnN0cmluZyBmb3JUeXBlOldlYkNvcmU6OmxlZ2FjeVN0
cmluZ1Bhc3RlYm9hcmRUeXBlKCldOworI2Vsc2UKKyAgICBnbG9iYWxTdHJpbmdGb3JGaW5kSW5Q
YWdlKCkgPSBzdHJpbmc7CisjZW5kaWYKK30KKworU3RyaW5nIHN0cmluZ0ZvckZpbmRJblBhZ2Uo
KQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICByZXR1cm4gW2ZpbmRQYXN0ZWJvYXJkKCkgc3Ry
aW5nRm9yVHlwZTpXZWJDb3JlOjpsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpXTsKKyNlbHNl
CisgICAgcmV0dXJuIGdsb2JhbFN0cmluZ0ZvckZpbmRJblBhZ2UoKTsKKyNlbmRpZgorfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggMDFiZWE1MGQ0ZjJmMjgxOTAzZGQ2MWY5Y2ZlNDA4ZGZjYzAyYjNhZC4uMDkxMWQ2NTE3
NTIwYzI4ZDk2MWIwNGI4MDRiYmYwMTA4MmQ1ZDkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTE3MjAsNiArMTcyMCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBp
bnRlcnByZXRLZXlFdmVudChjb25zdCBFZGl0b3JTdGF0ZSYsIGJvb2wgaXNDaGFyRXZlbnQsIGJv
b2wmIGhhbmRsZWQpOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGJvb2wgaGFz
VmlkZW8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBXZWJDb3JlOjpSb3V0
ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2VsZWN0aW9uUmVjdHND
YWxsYmFjayhjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uUmVjdD4mLCBDYWxsYmFja0lE
KTsKKworICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25zdCBTdHJpbmcmKTsK
ICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykKICAgICB2b2lkIHByaW50RmluaXNoZWRDYWxsYmFj
ayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ2FsbGJhY2tJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMWU0NTE4
ZjcxYzQxZmQxZTYyODg4NmZjMDNlMzUxMmYwMThhYTFjOS4uNDY0YzAzMzI3NzFiMjFlOTk1ZDJh
NTAyNzU0OWI2NDE1YTMzZDJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDE2LDYgKzQxNiw4IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAKICAgICBFbmFibGVJbnNwZWN0b3JOb2RlU2VhcmNoKCkKICAgICBEaXNh
YmxlSW5zcGVjdG9yTm9kZVNlYXJjaCgpCisKKyAgICBVcGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdl
KFN0cmluZyBmaW5kU3RyaW5nKQogI2VuZGlmCiAKICAgICBEaWRDaGFuZ2VJbnNwZWN0b3JGcm9u
dGVuZENvdW50KHVpbnQ2NF90IGNvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggZjZkMzA0YjgxMDYxYjVhZDQxODgwNmJkODlkNmI3
NjdhZjRkYmJjMi4uYTUyMWI3YmNkNTEyNjJlMzNmNDFhMmMyMjY0YjI3MjhjNTJjNTlkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0z
MSw2ICszMSw3IEBACiAjaW1wb3J0ICJBUElVSUNsaWVudC5oIgogI2ltcG9ydCAiRGF0YVJlZmVy
ZW5jZS5oIgogI2ltcG9ydCAiRWRpdGluZ1JhbmdlLmgiCisjaW1wb3J0ICJHbG9iYWxGaW5kSW5Q
YWdlU3RhdGUuaCIKICNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgi
CiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmgi
CkBAIC0yMjYsNiArMjI3LDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNlbmRMYXN0VmlzaWJs
ZUNvbnRlbnRSZWN0cygpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpWaWV3VXBkYXRl
RGlzcGF0Y2hlcjo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKG1fcGFnZUlELCBtX2xhc3RWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGUpLCAwKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0
ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgaWYgKCFp
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYktpdDo6dXBkYXRlU3RyaW5nRm9y
RmluZEluUGFnZShzdHJpbmcpOworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0IGFkanVzdGVkVW5l
eHBvc2VkRWRnZShmbG9hdCBkb2N1bWVudEVkZ2UsIGZsb2F0IGV4cG9zZWRSZWN0RWRnZSwgZmxv
YXQgZmFjdG9yKQogewogICAgIGlmIChleHBvc2VkUmVjdEVkZ2UgPCBkb2N1bWVudEVkZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
ZGEwMmZhYjUxMjdhMWY0Njc3ZjllMjIwZTMxMjMwMTAzNDVhMzdhLi5jYjIyNTIwNjVkNDViZjRi
M2M1M2MxNWI5Njk5OWZkZDBhMjNkNGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc1LDkgKzc1LDkgQEAKIAkJMDA1RDE1OEYxOEU0
QzRFQjAwNzM0NjE5IC8qIF9XS0ZpbmREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDA1RDE1OEUxOEU0QzRFQjAwNzM0NjE5IC8qIF9XS0Zp
bmREZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTAwQjk2NjE2MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMEI5NjYxNTE4RTI0Q0JB
MDBDRTFGODggLyogQVBJRmluZENsaWVudC5oICovOyB9OwogCQkwMEI5NjYxQTE4RTI1QUUxMDBD
RTFGODggLyogRmluZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDBCOTY2MTgxOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQuaCAqLzsg
fTsKKwkJMDcyOTdGOUYxQzE3QUExQTAxNUYwNzM1IC8qIFBlcnNpc3RlbmN5VXRpbHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MzIxRjlEMUMxN0JC
RUEyMjNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JC
RUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTAwM0Yw
NzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggKi87IH07CiAJCTA3Mjk3RjlG
MUMxN0JCRUEwMTVGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTIyM0Yw
NzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi87IH07Ci0JCTA3Mjk3RjlGMUMxN0FB
MUEwMTVGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzMyMUY5RDFDMTdCQkVBMjIzRjA3MzUgLyogUGVyc2lz
dGVuY3lVdGlscy5oICovOyB9OwogCQkwNzI5N0ZBMzFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3Mjk3RkExMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTA3NEU3NUZFMURGMjIxMTkwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0RTc1
RkIxREYxRkQxMzAwRDMxOEVDIC8qIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmggKi87IH07CiAJ
CTA3NkU4ODRFMUExM0NBREYwMDVFOTBGQyAvKiBBUElDb250ZXh0TWVudUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RTg4NEQxQTEzQ0FE
RjAwNUU5MEZDIC8qIEFQSUNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CkBAIC0xMDM4LDggKzEw
MzgsOCBAQAogCQk1N0RDRURDMzIxNEYxMTRDMDAxNkI4NDcgLyogTW9ja0xvY2FsU2VydmljZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VEQzEy
MTRGMTE0QzAwMTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCAqLzsgfTsKIAkJNTdEQ0VEQzcy
MTRGMTgzMDAwMTZCODQ3IC8qIE1vY2tMb2NhbENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREM1MjE0RjE4MzAwMDE2Qjg0NyAv
KiBNb2NrTG9jYWxDb25uZWN0aW9uLmggKi87IH07CiAJCTU3RENFRENCMjE0RjRFNDIwMDE2Qjg0
NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREM5MjE0RjRFNDIwMDE2Qjg0NyAvKiBNb2NrQXV0
aGVudGljYXRvck1hbmFnZXIuaCAqLzsgfTsKLQkJNThFOTc3REYyMUM0OUEwMDAwNUQ5MkE2IC8q
IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1OEU5NzdERDIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hU
VFBTVXBncmFkZUNoZWNrZXIuaCAqLzsgfTsKIAkJNTg3NzQzQTYyMUMzMEJCRTAwQUU5MDg0IC8q
IEhUVFBTVXBncmFkZUxpc3QuZGIgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU4Nzc0M0E0MjFDMzBBRDgwMEFFOTA4NCAvKiBIVFRQU1VwZ3JhZGVMaXN0
LmRiICovOyB9OworCQk1OEU5NzdERjIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hUVFBTVXBn
cmFkZUNoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU4RTk3N0REMjFDNDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tl
ci5oICovOyB9OwogCQk1QzBCMTc3ODFFN0M4ODBFMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0
cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzBCMTc3NDFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0
cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTVDMEIxNzc5MUU3Qzg4MjEwMEU5MTIz
QyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwQjE3NzYxRTdDODc5QzAwRTkxMjNDIC8q
IFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTVDMTQyNkVEMUMy
M0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNDI2RTMxQzIzRjgw
NTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi87IH07CkBA
IC0xODU2LDE0ICsxODU2LDE0IEBACiAJCTAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBBUElG
aW5kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUZpbmRDbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTcxOEUyNUFFMTAwQ0Ux
Rjg4IC8qIEZpbmRDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBGaW5kQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMEI5NjYx
ODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3
Mjk0NTVDMUMxNzExRUEwMDNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0Y5QzFDMTcxMUVBMDAzRjA3MzUgLyogRGV2aWNl
SWRIYXNoU2FsdFN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzI5N0Y5QzFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzI5N0Y5RDFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyOTdGOUQxQzE3QkJF
QTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTA3Mjk0NTVDMUMxNzExRUEwMDNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0
aWxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcnNpc3RlbmN5
VXRpbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzMyMUY5RDFDMTdCQkVB
MjIzRjA3MzUgLyogUGVyc2lzdGVuY3lVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQZXJzaXN0ZW5jeVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3Mjk3RkEwMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RkExMUMx
ODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzMyMUY5RDFDMTdCQkVBMjIzRjA3MzUgLyogUGVy
c2lzdGVuY3lVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJzaXN0
ZW5jeVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NEU3NUZCMURGMUZE
MTMwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzRFNzVGQzFERjIwMDI0MDBEMzE4RUMgLyogVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzRFNzYwMDFERjcwNzVEMDBEMzE4RUMgLyogTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYURldmljZVNhbmRi
b3hFeHRlbnNpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MDcsNiAr
MjgwNyw4IEBACiAJCTJERkY3QjZFMURBNENGQUYwMDgxNDYxNCAvKiBXS0JhY2tGb3J3YXJkTGlz
dEl0ZW1Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQmFja0Zv
cndhcmRMaXN0SXRlbVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUx
NkI2Q0MyMDE3QjdBQjAwODk5NkQ2IC8qIFdLRm9jdXNlZEZvcm1Db250cm9sVmlldy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLRm9jdXNlZEZvcm1Db250cm9s
Vmlldy5tbTsgcGF0aCA9IGlvcy9mb3Jtcy9XS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMTZCNkNEMjAxN0I3QUMwMDg5OTZENiAvKiBX
S0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3Lmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGb2N1c2Vk
Rm9ybUNvbnRyb2xWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkIzQkEz
MjFENDg3OTAwMDUzOEVERiAvKiBHbG9iYWxGaW5kSW5QYWdlU3RhdGUubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHbG9iYWxGaW5kSW5QYWdlU3RhdGUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkIzQkE0MjFENDg3OTAwMDUzOEVERiAvKiBH
bG9iYWxGaW5kSW5QYWdlU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R2xvYmFsRmluZEluUGFnZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJF
NUM3NzBDMUZBN0Q0MjkwMDU5MzJDMyAvKiBBUElBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFQSUF0dGFjaG1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU1Qzc3MEQx
RkE3RDQyOTAwNTkzMkMzIC8qIEFQSUF0dGFjaG1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QVBJQXR0YWNobWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFN0E5NDQ5
MUJCRDk1QzYwMDk0NTU0NyAvKiBfV0tGb2N1c2VkRWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zNDA2LDkgKzM0MDgsOSBAQAogCQk1N0RDRURDNjIxNEYxODMwMDAxNkI4NDcgLyogTW9ja0xv
Y2FsQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1vY2tMb2NhbENvbm5lY3Rp
b24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFREM5MjE0RjRFNDIwMDE2
Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENF
RENEMjE0RjUxNjgwMDE2Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTg3NzQzQTQyMUMzMEFEODAwQUU5
MDg0IC8qIEhUVFBTVXBncmFkZUxpc3QuZGIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gSFRUUFNVcGdyYWRlTGlzdC5kYjsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvSFRUUFNVcGdyYWRlTGlzdC5kYjsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNThFOTc3REMyMUM0OTlGRTAwNUQ5MkE2IC8q
IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNThFOTc3REQyMUM0OUEwMDAwNUQ5MkE2IC8qIE5ldHdvcmtIVFRQ
U1VwZ3JhZGVDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdv
cmtIVFRQU1VwZ3JhZGVDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU4
Nzc0M0E0MjFDMzBBRDgwMEFFOTA4NCAvKiBIVFRQU1VwZ3JhZGVMaXN0LmRiICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IEhUVFBT
VXBncmFkZUxpc3QuZGI7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0hUVFBTVXBncmFk
ZUxpc3QuZGI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTVDMEIxNzc0
MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtTb2NrZXRTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3
b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJNUMwQjE3NzUxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2Nr
ZXRTdHJlYW1NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3
b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
TmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
V2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTUzMDMsNiArNTMwNSw4IEBACiAJCQkJMDBCOTY2
MTcxOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQubW0gKi8sCiAJCQkJQ0Q3OEUxMTMxREI3
RDdFRDAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5DbGllbnQuaCAqLywKIAkJCQlDRDc4RTExMjFEQjdE
N0VEMDAxNEEyREUgLyogRnVsbHNjcmVlbkNsaWVudC5tbSAqLywKKwkJCQkyRTJCM0JBNDIxRDQ4
NzkwMDA1MzhFREYgLyogR2xvYmFsRmluZEluUGFnZVN0YXRlLmggKi8sCisJCQkJMkUyQjNCQTMy
MUQ0ODc5MDAwNTM4RURGIC8qIEdsb2JhbEZpbmRJblBhZ2VTdGF0ZS5tbSAqLywKIAkJCQk1MUMw
Qzk3MjFEREQ3NEYwMDAzMkNBRDMgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oICovLAogCQkJCTUx
QzBDOTczMURERDc0RjAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLm1tICovLAogCQkJ
CTBGMEMzNjU5MThDMDU1NTgwMEY2MDdENyAvKiBMYXllclJlcHJlc2VudGF0aW9uLmggKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKaW5kZXggNGI1YTZkM2FkZGI0NDNlOTgwMGYwYTU1NDdiYjk3OWZjNjRk
ODBiYS4uMTY4MDRjYjg5OTA5ZWNjODcyNmQxZGI2NTA2OTc5YjY4NzE2M2NlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaApAQCAtMTczLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3Rl
Ym9hcmRJdGVtc0NvdW50KCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50RnJh
Z21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSBmaW5hbDsKICAg
ICBib29sIHBlcmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqKSBm
aW5hbDsKKyAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJikg
ZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRv
Y3VtZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYsIGJvb2wgaXNNb3ZlKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2Vi
RWRpdG9yQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KaW5kZXggYzYwNDM4YzRlNWJjYmI0YTQzYzgz
Yjg1ZDQ0MTkxMmVjNDc3NDYyNy4uMjIxMjMyNWUwZTZiNWJkNGI2OTY0OTY3MTRjMzQyNzE5MmZk
YTkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KQEAgLTg2LDYgKzg2LDEx
IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShXZWJDb3JlOjpE
b2N1bWVudEZyYWdtZW50KikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgV2ViRWRpdG9y
Q2xpZW50Ojp1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFN0cmluZyYgZmluZFN0cmlu
ZykKK3sKKyAgICBtX3BhZ2UtPnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoZmluZFN0cmluZyk7
Cit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpvdmVyZmxvd1Njcm9sbFBvc2l0aW9uQ2hhbmdl
ZCgpCiB7CiAgICAgbV9wYWdlLT5kaWRDaGFuZ2VTZWxlY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmYzRlYTFkZmI5NDI2NGNhMWI5N2Jm
ZDg5NjUzMjBlNDAyZTA3MTExLi4zNGRkZmY1MTUwYjBhNjIxMmJhMmI2MDg3ZjVkNzk2YmM1NzA2
NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05
MzksNiArOTM5LDggQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0Q29uZmln
dXJhdGlvbiYgdmlld3BvcnRDb25maWd1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9y
dENvbmZpZ3VyYXRpb247IH0KIAogICAgIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0
eUNoYW5nZWQoKTsKKworICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25zdCBT
dHJpbmcmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IDkwNjU4MDU2Mzg5NzM3ZWY5Y2FhNWZmZDYxZThlZGFhZGY3OWNjZTkuLjYyOThjZTk1ZGM3NGEw
YzViNmYxMGIxZTEwYTcwNTQ0NWE0MjRjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0zMTI1LDYgKzMxMjUsMTEgQEAg
dm9pZCBXZWJQYWdlOjpoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpCiAgICAg
ICAgIGZvY3VzZWRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFu
Z2VkKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25z
dCBTdHJpbmcmIGZpbmRTdHJpbmcpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpVcGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGZpbmRTdHJpbmcpKTsKK30KKwogI2lmIFVTRShR
VUlDS19MT09LKQogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUGFzc3dvcmRGb3JRdWlja0xvb2tE
b2N1bWVudChjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCA4
NDY0MDU5YzQ5NTJiOTZmNjE0YjdkNTQ1M2E3NTE1ODVkOGU0YWI1Li4wYTM2MjRlNTdjNDcxYzYy
NWEzMjY5NjQwMmMyM2JhNGU2NGI5OWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTQ0LDYgKzE0
NCw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3RlYm9hcmRJdGVtc0NvdW50KCkgZmluYWw7
CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRG
cm9tRGVsZWdhdGUoaW50IGluZGV4KSBmaW5hbDsKICAgICBib29sIHBlcmZvcm1zVHdvU3RlcFBh
c3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVN0
cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAjZW5kaWYKIAogICAg
IGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQmLCBXZWJD
b3JlOjpSYW5nZSYgZGVzdGluYXRpb24sIGJvb2wgaXNNb3ZlKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4ZGNlZTFlNTI3MDBmYWUw
YTczN2M1MDA4ZDVhODVmMGYxYThmMDYwLi41ODc4MmQzOTZmZWYxYzc1ODAyN2RjZDQ2YTkwOWQx
ZGQzMWNmMGNlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTItMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBjdXJy
ZW50IHRleHQgc2VsZWN0aW9uIGFzIHRoZSBmaW5kIHN0cmluZyBvbiBpT1MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzAzNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDUxMzg3Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSBuZXcg
V2ViS2l0IFNQSSAoX3N0cmluZ0ZvckZpbmRJblBhZ2UsIF90YWtlRmluZFN0cmluZ0Zyb21TZWxl
Y3Rpb246LCBhbmQKKyAgICAgICAgX2NsZWFyU3RyaW5nRm9yRmluZEluUGFnZSkgd29ya3MgYXMg
ZXhwZWN0ZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1VzZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbTogQWRkZWQuCisKIDIwMTgtMTItMjIg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFdl
YkRyaXZlcjogd2FybiBhYm91dCBub24gZXhpc3RpbmcgdGVzdHMgd2hlbiBwYXJzaW5nIGV4cGVj
dGF0aW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMzE0MzI4ZmVkNGVhMTExOWZlMzVk
MWE1OWNmNTRkY2FlZWU5MjI3Li5iY2RkMmNmOTg5NzRiZDI1ZjQ2ODliNjkyYTJmNzQwOGUzNTdj
ZjBkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE4LDYgKzExOCw3IEBACiAJCTJFOTJC
OEY3MjE2NDkwRDQwMDVCNjRGMCAvKiByaWNoLXRleHQtYXR0cmlidXRlcy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTJCOEY2MjE2
NDkwQzMwMDVCNjRGMCAvKiByaWNoLXRleHQtYXR0cmlidXRlcy5odG1sICovOyB9OwogCQkyRTky
QjhGQTIxNjRBMEMxMDA1QjY0RjAgLyogRm9udEF0dHJpYnV0ZXMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTkyQjhGODIxNjQ5MEVBMDA1QjY0RjAg
LyogRm9udEF0dHJpYnV0ZXMubW0gKi87IH07CiAJCTJFOTg5NjE1MUQ4RjA5MzgwMDczOTg5MiAv
KiB0ZXh0LWFuZC1wYXNzd29yZC1pbnB1dHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk4OTYxNDFEOEYwOTJCMDA3Mzk4OTIgLyog
dGV4dC1hbmQtcGFzc3dvcmQtaW5wdXRzLmh0bWwgKi87IH07CisJCTJFQjI0MkI4MjFENDE0MEIw
MDU1QzFDMCAvKiBVc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTEzM0I0RjIxRDQwQUYwMDBFRDFDQjIgLyog
VXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tICovOyB9OwogCQkyRUIyOUQ1RTFGNzYyREI5MDAy
M0E1RjEgLyogZHVtcC1kYXRhdHJhbnNmZXItdHlwZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUIyOUQ1RDFGNzYyREE1MDAyM0E1
RjEgLyogZHVtcC1kYXRhdHJhbnNmZXItdHlwZXMuaHRtbCAqLzsgfTsKIAkJMkVCRDlEMEEyMTM0
NzMwRDAwMkRBNzU4IC8qIHZpZGVvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDRDMyRjcyMDY1QjcyQTAwNjRBNEJFIC8qIHZpZGVv
Lmh0bWwgKi87IH07CiAJCTJFQ0ZGNTU1MUQ5QjEyRjgwMEI1NTM5NCAvKiBOb3dQbGF5aW5nQ29u
dHJvbHNUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFQ0ZGNTU0MUQ5QjEyRjgwMEI1NTM5NCAvKiBOb3dQbGF5aW5nQ29udHJvbHNUZXN0cy5t
bSAqLzsgfTsKQEAgLTEzOTUsNiArMTM5Niw3IEBACiAJCTJERTcxQUZGMUQ0OUMyRjAwMDkwNDA5
NCAvKiBibGlua2luZy1kaXYuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJibGlu
a2luZy1kaXYuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERkY3QjZDMURB
NDg3QUYwMDgxNDYxNCAvKiBTbmFwc2hvdFN0b3JlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gU25hcHNob3RTdG9yZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkUxMzFDMTcxRDgzQTk3RTAwMUJBMzZDIC8qIHdpZGUtYXV0b3BsYXlpbmctdmlk
ZW8td2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndpZGUtYXV0
b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkUxMzNCNEYyMUQ0MEFGMDAwRUQxQ0IyIC8qIFVzZVNlbGVjdGlvbkFzRmluZFN0cmlu
Zy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZVNlbGVjdGlv
bkFzRmluZFN0cmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxNEE1Mjgx
RDNGRThCODAwMTBGMzVCIC8qIGF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTFCN0FGRjFENDFBOTVGMDA3NTU4
QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxQjdCMDExRDQxQjFCMzAwNzU1OEI0IC8qIGxhcmdl
LXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10
by1lbmQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTM3LDYgKzI1Mzks
NyBAQAogCQkJCTdDQ0I5OTIwMUQzQjQxRjYwMDM5MjJGNiAvKiBVc2VySW5pdGlhdGVkQWN0aW9u
SW5OYXZpZ2F0aW9uQWN0aW9uLm1tICovLAogCQkJCTA3RURFRkFDMUVCOTQwMEMwMEQ0MzI5MiAv
KiBVc2VyTWVkaWFEaXNhYmxlZC5tbSAqLywKIAkJCQkwN0Y0RTkyRDIwQUY1OEQzMDAyRTM4MDMg
LyogVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tICovLAorCQkJCTJFMTMzQjRGMjFE
NDBBRjAwMEVEMUNCMiAvKiBVc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0gKi8sCiAJCQkJOTNF
OTQzRjExQ0QzRTg3RTAwQUMwOEMyIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tICovLAogCQkJ
CUNEMzA2NURGMjE2NTY4MkUwMEU4OTVERiAvKiBWaWRlb1F1YWxpdHlEaXNwbGF5Q29tcG9zaXRp
bmcubW0gKi8sCiAJCQkJNjM1NkZCMjExRUM0RTBCQTAwNDRCRjE4IC8qIFZpc2libGVDb250ZW50
UmVjdC5tbSAqLywKQEAgLTQxOTEsNiArNDE5NCw3IEBACiAJCQkJMDc5OUMzNDkxRUJBMkQ3QjAw
M0I3NTMyIC8qIFVzZXJNZWRpYURpc2FibGVkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdGNEU5
MkUyMEFGNTlFMjAwMkUzODAzIC8qIFVzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjE4MUE0MTFBRTYwMDQ0N0M0QyAvKiBVc2VyTWVzc2Fn
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRUIyNDJCODIxRDQxNDBCMDA1NUMxQzAgLyogVXNl
U2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwM0ExRDBB
NjAyNzAwRkVCQ0YzIC8qIFV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4
M0UwQzYxRDBBNjU0RTAwRkVCQ0YzIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0QzMDY1RTAyMTY1NjgyRTAwRTg5NURGIC8qIFZpZGVvUXVhbGl0eURpc3Bs
YXlDb21wb3NpdGluZy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZVNlbGVjdGlvbkFzRmluZFN0
cmluZy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42ZjI3Yjc3N2YxNTNjN2ZmYTYzNTk4N2ZiOWFhY2RkMWE5NjFl
ZTRmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Vc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0KQEAgLTAsMCArMSw1NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBv
cnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKworVEVTVChXZWJLaXQsIFVzZVNlbGVjdGlvbkFzRmluZFN0cmluZykKK3sKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkSFRNTFN0cmluZzpAIjxib2R5PkhlbGxvIDxzcGFuIGlkPSd0ZXh0Jz53b3JsZDwvc3Bhbj48
L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9u
KCkuc2VsZWN0QWxsQ2hpbGRyZW4odGV4dCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAg
W3dlYlZpZXcgX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbjpuaWxdOworICAgIFt3ZWJWaWV3
IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIndv
cmxkIiwgV0tXZWJWaWV3Ll9zdHJpbmdGb3JGaW5kSW5QYWdlKTsKKyAgICBXS1dlYlZpZXcuX3N0
cmluZ0ZvckZpbmRJblBhZ2UgPSBAInRlc3RpbmciOworICAgIEVYUEVDVF9XS19TVFJFUSgidGVz
dGluZyIsIFtXS1dlYlZpZXcgX3N0cmluZ0ZvckZpbmRJblBhZ2VdKTsKKworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgW3dlYlZpZXcgX2ZpbmRTdHJpbmc6QCJmb28iIG9wdGlvbnM6MCBt
YXhDb3VudDoxMF07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJmb28iLCBbV0tXZWJWaWV3IF9zdHJp
bmdGb3JGaW5kSW5QYWdlXSk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSQorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358099</attachid>
            <date>2018-12-26 21:17:57 -0800</date>
            <delta_ts>2019-01-02 11:17:55 -0800</delta_ts>
            <desc>Patch v2 (fix macOS 10.12 builds)</desc>
            <filename>bug-193034-20181226211757.patch</filename>
            <type>text/plain</type>
            <size>47289</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVjZmVlMWQyYzlmNjE5
N2RmNzU4MjA5NjQwMTM1Yzg0MjM4MjhmMi4uODQxNWJmZjI1ZjNlZDIyZDk1NTc4YWIwNTYyYjJi
YTAxYmMxNzQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE4LTEyLTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB1c2luZyB0aGUgY3VycmVudCB0ZXh0IHNlbGVjdGlvbiBhcyB0aGUgZmluZCBzdHJpbmcg
b24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTMwMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTM4NzM5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciAiVGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uIiBvbiBpT1MuIFVubGlrZSBtYWNPUywgaU9TIGRvZXMgbm90
IGhhdmUgYSBub3Rpb24gb2YgYSAiZmluZAorICAgICAgICBwYXN0ZWJvYXJkIiBsaWtlIG1hY09T
OyBpbnN0ZWFkLCB3ZSBoYW5kbGUgdGhpcyBlZGl0aW5nIGNvbW1hbmQgYnkgc2VuZGluZyB0aGUg
c2VsZWN0aW9uIHN0cmluZyB0byB0aGUgVUkKKyAgICAgICAgcHJvY2Vzcywgd2hlcmUgaXQgaXMg
ZXhwb3NlZCB2aWEgV2ViS2l0IFNQSSBzbyB0aGF0IGNsaWVudHMgdGhhdCBwcmVzZW50IGZpbmQt
aW4tcGFnZSBVSSAoaS5lLiBNb2JpbGVTYWZhcmkpIGFyZQorICAgICAgICBhYmxlIHRvIHRyaWdn
ZXIgZmluZC1pbi1wYWdlIHdpdGggdGhpcyBzdHJpbmcuCisKKyAgICAgICAgVGVzdDogV2ViS2l0
LlVzZVNlbGVjdGlvbkFzRmluZFN0cmluZworCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUlt
YWdlcyBjb25zdCk6CisKKyAgICAgICAgTWFrZSB0aGlzIGhlbHBlciBmdW5jdGlvbiBjcm9zcy1w
bGF0Zm9ybS4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNvbW1hbmRNYXAp
OgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW06CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbik6CisKKyAgICAgICAgTW92
ZSB0aGlzIGZyb20gRWRpdG9yTWFjIHRvIEVkaXRvckNvY29hLCBhbmQgaW1wbGVtZW50IGl0IG9u
IGlPUyBieSBjYWxsaW5nIGludG8gdGhlIGVkaXRvciBjbGllbnQgdG8gdXBkYXRlIHRoZQorICAg
ICAgICBmaW5kIHN0cmluZyAoc2VlIFdlYktpdC9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscyku
CisKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OmNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBwYWdl
L0VkaXRvckNsaWVudC5oOgorCisgICAgICAgIEFkZCBhIG5ldyBlZGl0b3IgY2xpZW50IG1ldGhv
ZCB0byBzZW5kIHRoZSBzdHJpbmcgZm9yIGZpbmQtaW4tcGFnZSB0byB0aGUgVUkgcHJvY2Vzcy4K
KwogMjAxOC0xMi0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0hhcmZCdXp6XSBXaWR0aCBub3QgY29ycmVjdGx5IHJlcG9ydGVkIGFzIDAg
Zm9yIHplcm8gZm9udCBzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmZmFjNzI0NzYxNjE0NTBjNTQ1YTNkOWE4
YzM3OTgyOTExMDkxYzEuLmE3NmFkZjQyNjc1NTRkZTZlY2RhNGI4NzUwZjZlNzc0YjVkZDIxNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTgtMTItMjYgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHVzaW5nIHRo
ZSBjdXJyZW50IHRleHQgc2VsZWN0aW9uIGFzIHRoZSBmaW5kIHN0cmluZyBvbiBpT1MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzAzNAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDUxMzg3Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Rha2VG
aW5kU3RyaW5nRnJvbVNlbGVjdGlvbjpdKToKKworICAgICAgICBQcm92aWRlcyBhIHdheSB0byBz
ZXQgdGhlIGZpbmQgc3RyaW5nIG9uIGlPUyBhbmQgbWFjT1MgKGFuIGFzaWRlOiB0YWtlRmluZFN0
cmluZ0Zyb21TZWxlY3Rpb246IGFscmVhZHkgZXhpc3RzIG9uCisgICAgICAgIG1hY09TLCBidXQg
dGhlcmUgaXMgbm8gZXF1aXZhbGVudCBwcm90b2NvbCBtZXRob2Qgb24gaU9TLCBzbyB0aGlzIG5l
dyBTUEkgYWN0cyBhcyBhIGNyb3NzLXBsYXRmb3JtIHdheSBmb3IKKyAgICAgICAgV2ViS2l0IGNs
aWVudHMgdG8gdGFrZSB0aGUgZmluZCBzdHJpbmcgZnJvbSB0aGUgc2VsZWN0aW9uIGFjcm9zcyBh
bGwgQ29jb2EgcGxhdGZvcm1zKS4KKworICAgICAgICAoK1tXS1dlYlZpZXcgX3N0cmluZ0ZvckZp
bmRJblBhZ2VdKToKKyAgICAgICAgKCtbV0tXZWJWaWV3IF9zZXRTdHJpbmdGb3JGaW5kSW5QYWdl
Ol0pOgorCisgICAgICAgIENhbGwgaW50byBmaW5kLWluLXBhZ2UgaGVscGVyIGZ1bmN0aW9ucy4K
KworICAgICAgICAoLVtXS1dlYlZpZXcgX2ZpbmRTdHJpbmc6b3B0aW9uczptYXhDb3VudDpdKToK
KworICAgICAgICBPbiBpT1MsIGFkZGl0aW9uYWxseSB1cGRhdGUgdGhlIGZpbmQtaW4tcGFnZSBz
dHJpbmcgd2hlbiBleGVyY2lzaW5nIHRoZSBfZmluZFN0cmluZzpvcHRpb25zOm1heENvdW50OiBT
UEkuIFRoaXMKKyAgICAgICAgbWlycm9ycyBtYWNPUyBiZWhhdmlvciBvZiB1cGRhdGluZyB0aGUg
ZmluZCBwYXN0ZWJvYXJkIGV2ZXJ5IHRpbWUgdGhlIGZpbmQgc3RyaW5nIGNoYW5nZXM7IGhvd2V2
ZXIsIG9uIG1hY09TLAorICAgICAgICB0aGlzIGlzIGltcGxlbWVudGVkIGJ5IHRoZSBwbGF0Zm9y
bSAoaW4gQXBwS2l0KSwgd2hlcmVhcyB0aGVyZSdzIG5vIHBsYXRmb3JtIGZpbmQgcGFzdGVib2Fy
ZCBvbiBpT1MsIGxldCBhbG9uZQorICAgICAgICBsb2dpYyB0byB1cGRhdGUgaXQgaW4gVUlLaXQu
IEFzIHN1Y2gsIHdlIGRpcmVjdGx5IGRyaXZlIHVwZGF0ZXMgdG8gdGhlIGZpbmQgc3RyaW5nIHdp
dGhpbiBXZWJLaXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaDoKKworICAgICAgICBBZGQgc29tZSBuZXcgY3Jvc3MtcGxhdGZvcm0gZmluZC1pbi1w
YWdlIFNQSS4gU2VlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUubW06IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpmaW5kUGFzdGVib2FyZCk6CisgICAgICAgIChXZWJLaXQ6Omdsb2JhbFN0cmluZ0ZvckZp
bmRJblBhZ2UpOgorCisgICAgICAgIEZldGNoIHRoZSBzdHJpbmcgdG8gdXNlIHdoZW4gZmluZGlu
ZyB0ZXh0IGluIHRoZSBwYWdlLiBPbiBtYWNPUywgdGhpcyBhY2Nlc3NlcyB0aGUgQXBwS2l0IGZp
bmQgcGFzdGVib2FyZDsgb24KKyAgICAgICAgaU9TLCB0aGlzIGluc3RlYWQgcmV0dXJucyB0aGUg
Y3VycmVudCBnbG9iYWwgZmluZCBzdHJpbmcuCisKKyAgICAgICAgKFdlYktpdDo6dXBkYXRlU3Ry
aW5nRm9yRmluZEluUGFnZSk6CisKKyAgICAgICAgU2V0cyB0aGUgZ2xvYmFsIGZpbmQgc3RyaW5n
LiBVc2VzIHRoZSBmaW5kIHBhc3RlYm9hcmQgb24gbWFjT1MsIGFuZCBzZXRzIHRoZSBnbG9iYWwg
ZmluZCBzdHJpbmcgb24gaU9TLgorCisgICAgICAgIChXZWJLaXQ6OnN0cmluZ0ZvckZpbmRJblBh
Z2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFkZCBwbHVtYmluZyB0
byBhbGxvdyBXZWJFZGl0b3JDbGllbnQgdG8gZGVsaXZlciB0aGUgdXBkYXRlIHRoZSBnbG9iYWwg
ZmluZCBzdHJpbmcgaW4gdGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRh
dGVTdHJpbmdGb3JGaW5kSW5QYWdlKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVk
aXRvckNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp1cGRh
dGVTdHJpbmdGb3JGaW5kSW5QYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZSk6CisK
IDIwMTgtMTItMjMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gUmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgZWRpdGluZyBTUEkgYWZ0ZXIgPHJk
YXI6Ly9wcm9ibGVtLzQ2MDQ3NTQ2PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDQ0
MWJiMDkzMGVkOWQ5YjZmNjA4NjBhNzM1NDMxMDU5MzZmODVlZWUuLmUyM2JhMDg0ZmJkMGQxOWY1
NmE0OWQ2YjdkYjcyNDE1YjgzMGZmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxOC0xMi0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdXNpbmcgdGhlIGN1cnJlbnQgdGV4
dCBzZWxlY3Rpb24gYXMgdGhlIGZpbmQgc3RyaW5nIG9uIGlPUworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMDM0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80NTEzODczOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSBtZXRob2Qgc3R1YiBmb3IgV2ViS2l0TGVnYWN5LgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTgtMTItMjAgIFl1c3VrZSBT
dXp1a2kgIDx5dXN1a2VzdXp1a2lAc2xvd3N0YXJ0Lm9yZz4KIAogICAgICAgICBVc2UgUmVmPD4g
YXMgbXVjaCBhcyBwb3NzaWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGE1ZTg1
ODRmNGFlODc3MjMxNGY2M2YzNDE3YmMwY2Q2ZTQ2MTc2ZmQuLjhkMTcxMzdiZmQ1NDc2YmNlYjRl
OWJkNzJlMzcwZmE0ZjUzODE2MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTQy
NTYsNCArNDI1NiwxMCBAQCBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gRWRpdG9yOjppbnNlcnRF
ZGl0YWJsZUltYWdlKCkKICAgICByZXR1cm4gSW5zZXJ0RWRpdGFibGVJbWFnZUNvbW1hbmQ6Omlu
c2VydEVkaXRhYmxlSW1hZ2UoZG9jdW1lbnQoKSk7CiB9CiAKK2Jvb2wgRWRpdG9yOjpjYW5Db3B5
RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpIGNvbnN0Cit7CisgICAgYXV0byYgc2VsZWN0aW9u
ID0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKKyAgICByZXR1cm4gc2VsZWN0aW9u
LmlzUmFuZ2UoKSAmJiAhc2VsZWN0aW9uLmlzSW5QYXNzd29yZEZpZWxkKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDdjYWQyMjA5ODUy
NjAwNmY5Y2M4OWMxY2UwZTI3OTQyMmVjNzM4NWYuLjA1Y2MxYjgyYWVhYzE0MGI0MDkzMGRmNmYz
N2VhNTQ5NTVjNjNmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDg1LDkgKzQ4NSw4
IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCgpOwogICAgIFN0cmluZyBzdHJpbmdTZWxl
Y3Rpb25Gb3JQYXN0ZWJvYXJkV2l0aEltYWdlQWx0VGV4dCgpOwotI2lmICFQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIGJvb2wgY2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJbWFnZXMoKTsKICAg
ICB2b2lkIHRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbigpOworI2lmICFQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJv
YXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZChOb2RlKiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YVNl
bGVjdGlvbkZvclBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CkBAIC00
OTUsNiArNDk0LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVwbGFjZVNl
bGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmluZyAqLCBNYWlsQmxv
Y2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVzcGVjdEJsb2NrcXVv
dGUpOwogI2VuZGlmCiAKKyAgICBib29sIGNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2Vz
KCkgY29uc3Q7CisKICAgICBTdHJpbmcgY2xpZW50UmVwbGFjZW1lbnRVUkxGb3JSZXNvdXJjZShS
ZWY8U2hhcmVkQnVmZmVyPiYmIHJlc291cmNlRGF0YSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7
CiAKICNpZiAhUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFu
ZC5jcHAKaW5kZXggOWZkYWMxZDYxMTk1MzhhY2UzZDRiZjhjMGVlMzE3OWY0N2M4YmQzMS4uMGIz
YmJiOWJlNjk1NjllYjgyY2YwNTRkYzI0YzcxNWU3ZTRhZDQzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xMTAyLDEzICsxMTAyLDE1IEBAIHN0YXRpYyBi
b29sIGV4ZWN1dGVTd2FwV2l0aE1hcmsoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1h
bmRTb3VyY2UsIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBQTEFURk9STShNQUMp
CisjaWYgUExBVEZPUk0oQ09DT0EpCisKIHN0YXRpYyBib29sIGV4ZWN1dGVUYWtlRmluZFN0cmlu
Z0Zyb21TZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Us
IGNvbnN0IFN0cmluZyYpCiB7CiAgICAgZnJhbWUuZWRpdG9yKCkudGFrZUZpbmRTdHJpbmdGcm9t
U2VsZWN0aW9uKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKKworI2VuZGlmIC8vIFBM
QVRGT1JNKENPQ09BKQogCiBzdGF0aWMgYm9vbCBleGVjdXRlVG9nZ2xlQm9sZChGcmFtZSYgZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7
CkBAIC0xMzY3LDEyICsxMzY5LDE0IEBAIHN0YXRpYyBib29sIGVuYWJsZWRSZWRvKEZyYW1lJiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlKQogICAgIHJldHVybiBmcmFtZS5lZGl0
b3IoKS5jYW5SZWRvKCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09D
T0EpCisKIHN0YXRpYyBib29sIGVuYWJsZWRUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oRnJh
bWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UpCiB7CiAgICAgcmV0dXJuIGZy
YW1lLmVkaXRvcigpLmNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCk7CiB9Ci0jZW5k
aWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiBzdGF0aWMgYm9vbCBlbmFibGVkVW5k
byhGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSkKIHsKQEAgLTE3MTgs
NyArMTcyMiw3IEBAIHN0YXRpYyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVDb21tYW5kTWFwKCkK
ICAgICAgICAgeyAiUGFzdGVHbG9iYWxTZWxlY3Rpb24iLCB7IGV4ZWN1dGVQYXN0ZUdsb2JhbFNl
bGVjdGlvbiwgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJsZWRQYXN0ZSwgc3Rh
dGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhlY3V0aW9uV2hlbkRp
c2FibGVkIH0gfSwKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgICAgICB7ICJUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24iLCB7IGV4ZWN1dGVU
YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24sIHN1cHBvcnRlZEZyb21NZW51T3JLZXlCaW5kaW5n
LCBlbmFibGVkVGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uLCBzdGF0ZU5vbmUsIHZhbHVlTnVs
bCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZCB9IH0s
CiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9FZGl0b3JDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29j
b2EubW0KaW5kZXggNWRlNzE2ZmExYWM0YTliNjljODVmMDk2NmJhMjkzYmZhYmIyNmJmYy4uOTA2
OWQ3OGJmNTk5ZTJkOGJiNWEyYjE4YjMyNzhlYTAxNzc3ZDE5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCkBAIC00NSw4ICs0NSwxMSBAQAogI2ltcG9y
dCAiSFRNTENvbnZlcnRlci5oIgogI2ltcG9ydCAiSFRNTEltYWdlRWxlbWVudC5oIgogI2ltcG9y
dCAiSFRNTFNwYW5FbGVtZW50LmgiCisjaW1wb3J0ICJMZWdhY3lOU1Bhc3RlYm9hcmRUeXBlcy5o
IgogI2ltcG9ydCAiTGVnYWN5V2ViQXJjaGl2ZS5oIgogI2ltcG9ydCAiUGFzdGVib2FyZC5oIgor
I2ltcG9ydCAiUGFzdGVib2FyZFN0cmF0ZWd5LmgiCisjaW1wb3J0ICJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCIKICNpbXBvcnQgIlJlbmRlckVsZW1lbnQuaCIKICNpbXBvcnQgIlJlbmRlclN0eWxlLmgi
CiAjaW1wb3J0ICJTZXR0aW5ncy5oIgpAQCAtNTUsNiArNTgsNyBAQAogI2ltcG9ydCAibWFya3Vw
LmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQXR0cmlidXRlZFN0cmluZ1NQSS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaD4KKyNpbXBvcnQgPHBhbC9z
eXN0ZW0vU291bmQuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1w
b3J0IDx3dGYvY29jb2EvTlNVUkxFeHRyYXMuaD4KIApAQCAtMjIzLDQgKzIyNywyOCBAQCBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gRWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoUGFz
dGVib2FyZCYgcGFzdGVib2FyZAogICAgIHJldHVybiBXVEZNb3ZlKHJlYWRlci5mcmFnbWVudCk7
CiB9CiAKK3ZvaWQgRWRpdG9yOjp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oKQoreworICAg
IGlmICghY2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJbWFnZXMoKSkgeworICAgICAgICBQQUw6
OnN5c3RlbUJlZXAoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc3RyaW5n
RnJvbVNlbGVjdGlvbiA9IG1fZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhz
ZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIFZl
Y3RvcjxTdHJpbmc+IHR5cGVzOworICAgIHR5cGVzLmFwcGVuZChTdHJpbmcobGVnYWN5U3RyaW5n
UGFzdGVib2FyZFR5cGUoKSkpOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRU
eXBlcyh0eXBlcywgTlNGaW5kUGJvYXJkKTsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFz
dGVib2FyZFN0cmF0ZWd5KCktPnNldFN0cmluZ0ZvclR5cGUoV1RGTW92ZShzdHJpbmdGcm9tU2Vs
ZWN0aW9uKSwgbGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKSwgTlNGaW5kUGJvYXJkKTsKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKyNlbHNlCisgICAgaWYgKGF1dG8q
IGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKSB7CisgICAgICAgIC8vIFNpbmNlIHRoZSBmaW5kIHBh
c3RlYm9hcmQgZG9lc24ndCBleGlzdCBvbiBpT1MsIFdlYktpdCBtYWludGFpbnMgaXRzIG93biBu
b3Rpb24gb2YgdGhlIGxhdGVzdCBmaW5kIHN0cmluZywKKyAgICAgICAgLy8gd2hpY2ggU1BJIGNs
aWVudHMgbWF5IHJlc3BlY3Qgd2hlbiBwcmVzZW50aW5nIGZpbmQtaW4tcGFnZSBVSS4KKyAgICAg
ICAgY2xpZW50LT51cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKHN0cmluZ0Zyb21TZWxlY3Rpb24p
OworICAgIH0KKyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JN
YWMubW0KaW5kZXggM2ZlNmY0ZTdlNDUyMTI1YjUxZmExZmM3ZDQ4MDYxYzJjNDZiYjc3ZC4uNjk3
MWYwMDk3NDM4YmViNDQ5M2NmMjEwZDI1NWQwNzFkMjYwOGIwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAtNTUsNyArNTUsNiBAQAogI2ltcG9ydCAiV2ViTlNB
dHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmgiCiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBvcnQgPEFw
cEtpdC9BcHBLaXQuaD4KLSNpbXBvcnQgPHBhbC9zeXN0ZW0vU291bmQuaD4KICNpbXBvcnQgPHd0
Zi9jb2NvYS9OU1VSTEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05OCwyNyAr
OTcsNiBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKiBwYXN0
ZWJvYXJkLCBPcHRpb25TZXQ8UGFzdGVPcHRpb24+CiAgICAgY2xpZW50KCktPnNldEluc2VydGlv
blBhc3RlYm9hcmQoU3RyaW5nKCkpOwogfQogCi1ib29sIEVkaXRvcjo6Y2FuQ29weUV4Y2x1ZGlu
Z1N0YW5kYWxvbmVJbWFnZXMoKQotewotICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7Ci0gICAgcmV0dXJuIHNlbGVj
dGlvbi5pc1JhbmdlKCkgJiYgIXNlbGVjdGlvbi5pc0luUGFzc3dvcmRGaWVsZCgpOwotfQotCi12
b2lkIEVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKCkKLXsKLSAgICBpZiAoIWNh
bkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCkpIHsKLSAgICAgICAgUEFMOjpzeXN0ZW1C
ZWVwKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiB0eXBl
czsKLSAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRUeXBlKCkp
KTsKLSAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0VHlwZXModHlwZXMsIE5TRmlu
ZFBib2FyZCk7Ci0gICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgp
LT5zZXRTdHJpbmdGb3JUeXBlKG1fZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGlu
ZyhzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKSksIGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRU
eXBlKCksIE5TRmluZFBib2FyZCk7Ci0gICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECi19Ci0KIHZvaWQgRWRpdG9yOjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsKICAgICBQYXN0ZWJvYXJkIHBhc3RlYm9hcmQocGFz
dGVib2FyZE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBh
MjhlYzY4Y2QzOWQ0NDUxNGNlNzI2NmE4Mzc4YmYxMzNiNmNhYmYyLi5mZjY5ZmNjMTk1ZmYxOWY4
ODliNWNiMzVjMmY4YzcxMzZkMDA4MmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtMjE1LDYgKzIxNSw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3RlYm9h
cmRJdGVtc0NvdW50KCkgZmluYWwgeyByZXR1cm4gMDsgfQogICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRlKGludCkgZmluYWwgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIGJvb2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoRG9jdW1lbnRGcmFnbWVu
dCopIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5k
SW5QYWdlKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogI2VuZGlmCiAKICAgICBib29sIHBlcmZv
cm1Ud29TdGVwRHJvcChEb2N1bWVudEZyYWdtZW50JiwgUmFuZ2UmLCBib29sKSBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKaW5kZXggYTY1ZDgwY2Vh
MGYyN2RhZjRiZmQyOGE1YWQwOGVhMGE2NGM0NjQ4Yi4uNDhlZDdjZTQ2ODNlOTgxNDNlNTVhZmQw
YTA3MWM4MmVmMjRlOGRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBAIC0xMzQs
NiArMTM0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IGdldFBhc3RlYm9hcmRJdGVtc0Nv
dW50KCkgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50
RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHBl
cmZvcm1zVHdvU3RlcFBhc3RlKERvY3VtZW50RnJhZ21lbnQqKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJikgPSAwOwogI2VuZGlm
CiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA5ZDdjYzVj
YzZjNGU3MWM0YmM2M2NkMWZiZjM0MjRkZjQ3YTNmYzRjLi4zMjAxNzNmYTdiMTI2MGYyYjRjY2Nj
MzY5ZDE5Zjc0N2NhNDIzNGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zMTcsNiArMzE3
LDcgQEAgVUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tCiBVSVByb2Nl
c3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW0KIFVJUHJvY2Vzcy9Db2NvYS9GaW5kQ2xpZW50Lm1t
CiBVSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbQorVUlQcm9jZXNzL0NvY29hL0ds
b2JhbEZpbmRJblBhZ2VTdGF0ZS5tbQogVUlQcm9jZXNzL0NvY29hL0ljb25Mb2FkaW5nRGVsZWdh
dGUubW0KIFVJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQu
bW0KIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDZkODkzOTY1ZWIzNDVjYjY4
MTNkZmU3ZjBjNjRjNGQzMjFiNmRhNmIuLjM5ZjlhYjc4ZTcwMWEyMTg3NzZlZDVkNDJmOTE4MDBm
MjBmMWExZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiRmluZENsaWVudC5oIgogI2ltcG9y
dCAiRnJvbnRCb2FyZFNlcnZpY2VzU1BJLmgiCiAjaW1wb3J0ICJGdWxsc2NyZWVuQ2xpZW50Lmgi
CisjaW1wb3J0ICJHbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCIKICNpbXBvcnQgIkljb25Mb2FkaW5n
RGVsZWdhdGUuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIgogI2ltcG9y
dCAiTG9nZ2luZy5oIgpAQCAtNDQ0Miw2ICs0NDQzLDI1IEBAIC0gKHZvaWQpX3NldEVkaXRhYmxl
OihCT09MKWVkaXRhYmxlCiAjZW5kaWYKIH0KIAorLSAodm9pZClfdGFrZUZpbmRTdHJpbmdGcm9t
U2VsZWN0aW9uOihpZClzZW5kZXIKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgW3NlbGYgdGFr
ZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uOnNlbmRlcl07CisjZWxzZQorICAgIF9wYWdlLT5leGVj
dXRlRWRpdENvbW1hbmQoIlRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbiJfcyk7CisjZW5kaWYK
K30KKworKyAoTlNTdHJpbmcgKilfc3RyaW5nRm9yRmluZEluUGFnZQoreworICAgIHJldHVybiBX
ZWJLaXQ6OnN0cmluZ0ZvckZpbmRJblBhZ2UoKTsKK30KKworKyAodm9pZClfc2V0U3RyaW5nRm9y
RmluZEluUGFnZTooTlNTdHJpbmcgKilmaW5kU3RyaW5nCit7CisgICAgV2ViS2l0Ojp1cGRhdGVT
dHJpbmdGb3JGaW5kSW5QYWdlKGZpbmRTdHJpbmcpOworfQorCiAtIChfV0tSZW1vdGVPYmplY3RS
ZWdpc3RyeSAqKV9yZW1vdGVPYmplY3RSZWdpc3RyeQogewogI2lmIFBMQVRGT1JNKE1BQykKQEAg
LTUxNzcsNiArNTE5NywxMSBAQCAtICh2b2lkKV9jb3VudFN0cmluZ01hdGNoZXM6KE5TU3RyaW5n
ICopc3RyaW5nIG9wdGlvbnM6KF9XS0ZpbmRPcHRpb25zKW9wdGlvbnMgbQogLSAodm9pZClfZmlu
ZFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgb3B0aW9uczooX1dLRmluZE9wdGlvbnMpb3B0aW9u
cyBtYXhDb3VudDooTlNVSW50ZWdlciltYXhDb3VudAogewogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgLy8gV2hpbGUgQXBwS2l0IGNvbnRhaW5zIGxvZ2ljIGluIE5TQmFyVGV4dEZpbmRl
ciB0byBhdXRvbWF0aWNhbGx5IHVwZGF0ZSB0aGUgZmluZCBwYXN0ZWJvYXJkCisgICAgLy8gd2hl
biB0aGUgZmluZCBzdHJpbmcgY2hhbmdlcywgdGhpcyAoYWxvbmcgd2l0aCB0aGUgZmluZCBwYXN0
ZWJvYXJkIGl0c2VsZikgYXJlIGJvdGggbWlzc2luZworICAgIC8vIGZyb20gaU9TOyB0aHVzLCBv
biBpT1MsIHdlIHVwZGF0ZSB0aGUgY3VycmVudCBmaW5kLWluLXBhZ2Ugc3RyaW5nIGhlcmUuCisg
ICAgV2ViS2l0Ojp1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKHN0cmluZyk7CisKICAgICBpZiAo
X2N1c3RvbUNvbnRlbnRWaWV3KSB7CiAgICAgICAgIFtfY3VzdG9tQ29udGVudFZpZXcgd2ViX2Zp
bmRTdHJpbmc6c3RyaW5nIG9wdGlvbnM6b3B0aW9ucyBtYXhDb3VudDptYXhDb3VudF07CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDg4YjU2MzViZThmZTZhMGJiMmU1ZDNjZjYyYzdiZjYy
ZjZjNzg2YmQuLjA5ZmFkNzc5Mjg5NDcwYzRjZTIwYmE4ZGE3YWNkYmZhY2Q3MWIzODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaApAQCAtMjE1LDYgKzIxNSw5IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBf
V0tSZWN0RWRnZSkgewogLSAoSUJBY3Rpb24pX2NoYW5nZUxpc3RUeXBlOihpZClzZW5kZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtIChJ
QkFjdGlvbilfcGFzdGVBc1F1b3RhdGlvbjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAoSUJBY3Rpb24pX3Bhc3RlQW5k
TWF0Y2hTdHlsZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24pX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVj
dGlvbjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworCitAcHJvcGVydHkgKGNsYXNzLCBub25hdG9taWMsIGNvcHksIHNldHRl
cj1fc2V0U3RyaW5nRm9yRmluZEluUGFnZTopIE5TU3RyaW5nICpfc3RyaW5nRm9yRmluZEluUGFn
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDc5OTI4NWIz
NTViYmY4Y2ZjZDgzZjA3NTUyZDRmZjAzMDFiOGRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLmgKQEAgLTAsMCAr
MSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgU3RyaW5nOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFdURjo6U3RyaW5nJik7
CitXVEY6OlN0cmluZyBzdHJpbmdGb3JGaW5kSW5QYWdlKCk7CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTYxN2VhMWZkNGFjMDE2NTFjZmJmYmVhOTVjY2UwNzEzZTE5M2M3OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dsb2JhbEZpbmRJblBhZ2VTdGF0ZS5t
bQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJHbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCIKKworI2ltcG9ydCA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKKyNpZiBQTEFURk9STShNQUMpCisjaW1wb3J0IDxBcHBLaXQvTlNQYXN0ZWJvYXJk
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmg+CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBQTEFURk9STShNQUMpCisKK3N0YXRpYyBOU1Bh
c3RlYm9hcmQgKmZpbmRQYXN0ZWJvYXJkKCkKK3sKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgorICAgIHJldHVybiBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFt
ZTpOU0ZpbmRQYm9hcmRdOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAor
fQorCisjZWxzZQorCitzdGF0aWMgU3RyaW5nJiBnbG9iYWxTdHJpbmdGb3JGaW5kSW5QYWdlKCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzdHJpbmc7CisgICAgcmV0dXJu
IHN0cmluZy5nZXQoKTsKK30KKworI2VuZGlmCisKK3ZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZElu
UGFnZShjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgW2Zp
bmRQYXN0ZWJvYXJkKCkgc2V0U3RyaW5nOnN0cmluZyBmb3JUeXBlOldlYkNvcmU6OmxlZ2FjeVN0
cmluZ1Bhc3RlYm9hcmRUeXBlKCldOworI2Vsc2UKKyAgICBnbG9iYWxTdHJpbmdGb3JGaW5kSW5Q
YWdlKCkgPSBzdHJpbmc7CisjZW5kaWYKK30KKworU3RyaW5nIHN0cmluZ0ZvckZpbmRJblBhZ2Uo
KQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICByZXR1cm4gW2ZpbmRQYXN0ZWJvYXJkKCkgc3Ry
aW5nRm9yVHlwZTpXZWJDb3JlOjpsZWdhY3lTdHJpbmdQYXN0ZWJvYXJkVHlwZSgpXTsKKyNlbHNl
CisgICAgcmV0dXJuIGdsb2JhbFN0cmluZ0ZvckZpbmRJblBhZ2UoKTsKKyNlbmRpZgorfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggMDFiZWE1MGQ0ZjJmMjgxOTAzZGQ2MWY5Y2ZlNDA4ZGZjYzAyYjNhZC4uMDkxMWQ2NTE3
NTIwYzI4ZDk2MWIwNGI4MDRiYmYwMTA4MmQ1ZDkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTE3MjAsNiArMTcyMCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBp
bnRlcnByZXRLZXlFdmVudChjb25zdCBFZGl0b3JTdGF0ZSYsIGJvb2wgaXNDaGFyRXZlbnQsIGJv
b2wmIGhhbmRsZWQpOwogICAgIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKGJvb2wgaGFz
VmlkZW8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVsZW1lbnRSZWN0LCBXZWJDb3JlOjpSb3V0
ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2VsZWN0aW9uUmVjdHND
YWxsYmFjayhjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uUmVjdD4mLCBDYWxsYmFja0lE
KTsKKworICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25zdCBTdHJpbmcmKTsK
ICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykKICAgICB2b2lkIHByaW50RmluaXNoZWRDYWxsYmFj
ayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ2FsbGJhY2tJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMWU0NTE4
ZjcxYzQxZmQxZTYyODg4NmZjMDNlMzUxMmYwMThhYTFjOS4uNDY0YzAzMzI3NzFiMjFlOTk1ZDJh
NTAyNzU0OWI2NDE1YTMzZDJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDE2LDYgKzQxNiw4IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAKICAgICBFbmFibGVJbnNwZWN0b3JOb2RlU2VhcmNoKCkKICAgICBEaXNh
YmxlSW5zcGVjdG9yTm9kZVNlYXJjaCgpCisKKyAgICBVcGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdl
KFN0cmluZyBmaW5kU3RyaW5nKQogI2VuZGlmCiAKICAgICBEaWRDaGFuZ2VJbnNwZWN0b3JGcm9u
dGVuZENvdW50KHVpbnQ2NF90IGNvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggZjZkMzA0YjgxMDYxYjVhZDQxODgwNmJkODlkNmI3
NjdhZjRkYmJjMi4uYTUyMWI3YmNkNTEyNjJlMzNmNDFhMmMyMjY0YjI3MjhjNTJjNTlkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0z
MSw2ICszMSw3IEBACiAjaW1wb3J0ICJBUElVSUNsaWVudC5oIgogI2ltcG9ydCAiRGF0YVJlZmVy
ZW5jZS5oIgogI2ltcG9ydCAiRWRpdGluZ1JhbmdlLmgiCisjaW1wb3J0ICJHbG9iYWxGaW5kSW5Q
YWdlU3RhdGUuaCIKICNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgi
CiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmgi
CkBAIC0yMjYsNiArMjI3LDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNlbmRMYXN0VmlzaWJs
ZUNvbnRlbnRSZWN0cygpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpWaWV3VXBkYXRl
RGlzcGF0Y2hlcjo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKG1fcGFnZUlELCBtX2xhc3RWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGUpLCAwKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0
ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgaWYgKCFp
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYktpdDo6dXBkYXRlU3RyaW5nRm9y
RmluZEluUGFnZShzdHJpbmcpOworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0IGFkanVzdGVkVW5l
eHBvc2VkRWRnZShmbG9hdCBkb2N1bWVudEVkZ2UsIGZsb2F0IGV4cG9zZWRSZWN0RWRnZSwgZmxv
YXQgZmFjdG9yKQogewogICAgIGlmIChleHBvc2VkUmVjdEVkZ2UgPCBkb2N1bWVudEVkZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
ZGEwMmZhYjUxMjdhMWY0Njc3ZjllMjIwZTMxMjMwMTAzNDVhMzdhLi5jYjIyNTIwNjVkNDViZjRi
M2M1M2MxNWI5Njk5OWZkZDBhMjNkNGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc1LDkgKzc1LDkgQEAKIAkJMDA1RDE1OEYxOEU0
QzRFQjAwNzM0NjE5IC8qIF9XS0ZpbmREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDA1RDE1OEUxOEU0QzRFQjAwNzM0NjE5IC8qIF9XS0Zp
bmREZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTAwQjk2NjE2MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMEI5NjYxNTE4RTI0Q0JB
MDBDRTFGODggLyogQVBJRmluZENsaWVudC5oICovOyB9OwogCQkwMEI5NjYxQTE4RTI1QUUxMDBD
RTFGODggLyogRmluZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDBCOTY2MTgxOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQuaCAqLzsg
fTsKKwkJMDcyOTdGOUYxQzE3QUExQTAxNUYwNzM1IC8qIFBlcnNpc3RlbmN5VXRpbHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MzIxRjlEMUMxN0JC
RUEyMjNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JC
RUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTAwM0Yw
NzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggKi87IH07CiAJCTA3Mjk3RjlG
MUMxN0JCRUEwMTVGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTIyM0Yw
NzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi87IH07Ci0JCTA3Mjk3RjlGMUMxN0FB
MUEwMTVGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzMyMUY5RDFDMTdCQkVBMjIzRjA3MzUgLyogUGVyc2lz
dGVuY3lVdGlscy5oICovOyB9OwogCQkwNzI5N0ZBMzFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3Mjk3RkExMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTA3NEU3NUZFMURGMjIxMTkwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0RTc1
RkIxREYxRkQxMzAwRDMxOEVDIC8qIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmggKi87IH07CiAJ
CTA3NkU4ODRFMUExM0NBREYwMDVFOTBGQyAvKiBBUElDb250ZXh0TWVudUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RTg4NEQxQTEzQ0FE
RjAwNUU5MEZDIC8qIEFQSUNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CkBAIC0xMDM4LDggKzEw
MzgsOCBAQAogCQk1N0RDRURDMzIxNEYxMTRDMDAxNkI4NDcgLyogTW9ja0xvY2FsU2VydmljZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VEQzEy
MTRGMTE0QzAwMTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCAqLzsgfTsKIAkJNTdEQ0VEQzcy
MTRGMTgzMDAwMTZCODQ3IC8qIE1vY2tMb2NhbENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREM1MjE0RjE4MzAwMDE2Qjg0NyAv
KiBNb2NrTG9jYWxDb25uZWN0aW9uLmggKi87IH07CiAJCTU3RENFRENCMjE0RjRFNDIwMDE2Qjg0
NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREM5MjE0RjRFNDIwMDE2Qjg0NyAvKiBNb2NrQXV0
aGVudGljYXRvck1hbmFnZXIuaCAqLzsgfTsKLQkJNThFOTc3REYyMUM0OUEwMDAwNUQ5MkE2IC8q
IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1OEU5NzdERDIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hU
VFBTVXBncmFkZUNoZWNrZXIuaCAqLzsgfTsKIAkJNTg3NzQzQTYyMUMzMEJCRTAwQUU5MDg0IC8q
IEhUVFBTVXBncmFkZUxpc3QuZGIgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU4Nzc0M0E0MjFDMzBBRDgwMEFFOTA4NCAvKiBIVFRQU1VwZ3JhZGVMaXN0
LmRiICovOyB9OworCQk1OEU5NzdERjIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hUVFBTVXBn
cmFkZUNoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU4RTk3N0REMjFDNDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tl
ci5oICovOyB9OwogCQk1QzBCMTc3ODFFN0M4ODBFMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0
cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzBCMTc3NDFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0
cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTVDMEIxNzc5MUU3Qzg4MjEwMEU5MTIz
QyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwQjE3NzYxRTdDODc5QzAwRTkxMjNDIC8q
IFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTVDMTQyNkVEMUMy
M0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNDI2RTMxQzIzRjgw
NTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi87IH07CkBA
IC0xODU2LDE0ICsxODU2LDE0IEBACiAJCTAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBBUElG
aW5kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUZpbmRDbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTcxOEUyNUFFMTAwQ0Ux
Rjg4IC8qIEZpbmRDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBGaW5kQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMEI5NjYx
ODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3
Mjk0NTVDMUMxNzExRUEwMDNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0Y5QzFDMTcxMUVBMDAzRjA3MzUgLyogRGV2aWNl
SWRIYXNoU2FsdFN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzI5N0Y5QzFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzI5N0Y5RDFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyOTdGOUQxQzE3QkJF
QTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTA3Mjk0NTVDMUMxNzExRUEwMDNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0
aWxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcnNpc3RlbmN5
VXRpbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzMyMUY5RDFDMTdCQkVB
MjIzRjA3MzUgLyogUGVyc2lzdGVuY3lVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQZXJzaXN0ZW5jeVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3Mjk3RkEwMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RkExMUMx
ODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzMyMUY5RDFDMTdCQkVBMjIzRjA3MzUgLyogUGVy
c2lzdGVuY3lVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJzaXN0
ZW5jeVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NEU3NUZCMURGMUZE
MTMwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzRFNzVGQzFERjIwMDI0MDBEMzE4RUMgLyogVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzRFNzYwMDFERjcwNzVEMDBEMzE4RUMgLyogTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYURldmljZVNhbmRi
b3hFeHRlbnNpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MDcsNiAr
MjgwNyw4IEBACiAJCTJERkY3QjZFMURBNENGQUYwMDgxNDYxNCAvKiBXS0JhY2tGb3J3YXJkTGlz
dEl0ZW1Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQmFja0Zv
cndhcmRMaXN0SXRlbVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUx
NkI2Q0MyMDE3QjdBQjAwODk5NkQ2IC8qIFdLRm9jdXNlZEZvcm1Db250cm9sVmlldy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLRm9jdXNlZEZvcm1Db250cm9s
Vmlldy5tbTsgcGF0aCA9IGlvcy9mb3Jtcy9XS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMTZCNkNEMjAxN0I3QUMwMDg5OTZENiAvKiBX
S0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3Lmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGb2N1c2Vk
Rm9ybUNvbnRyb2xWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkIzQkEz
MjFENDg3OTAwMDUzOEVERiAvKiBHbG9iYWxGaW5kSW5QYWdlU3RhdGUubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHbG9iYWxGaW5kSW5QYWdlU3RhdGUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkIzQkE0MjFENDg3OTAwMDUzOEVERiAvKiBH
bG9iYWxGaW5kSW5QYWdlU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R2xvYmFsRmluZEluUGFnZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJF
NUM3NzBDMUZBN0Q0MjkwMDU5MzJDMyAvKiBBUElBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFQSUF0dGFjaG1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU1Qzc3MEQx
RkE3RDQyOTAwNTkzMkMzIC8qIEFQSUF0dGFjaG1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QVBJQXR0YWNobWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFN0E5NDQ5
MUJCRDk1QzYwMDk0NTU0NyAvKiBfV0tGb2N1c2VkRWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zNDA2LDkgKzM0MDgsOSBAQAogCQk1N0RDRURDNjIxNEYxODMwMDAxNkI4NDcgLyogTW9ja0xv
Y2FsQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1vY2tMb2NhbENvbm5lY3Rp
b24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFREM5MjE0RjRFNDIwMDE2
Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENF
RENEMjE0RjUxNjgwMDE2Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTg3NzQzQTQyMUMzMEFEODAwQUU5
MDg0IC8qIEhUVFBTVXBncmFkZUxpc3QuZGIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gSFRUUFNVcGdyYWRlTGlzdC5kYjsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvSFRUUFNVcGdyYWRlTGlzdC5kYjsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNThFOTc3REMyMUM0OTlGRTAwNUQ5MkE2IC8q
IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNThFOTc3REQyMUM0OUEwMDAwNUQ5MkE2IC8qIE5ldHdvcmtIVFRQ
U1VwZ3JhZGVDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdv
cmtIVFRQU1VwZ3JhZGVDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU4
Nzc0M0E0MjFDMzBBRDgwMEFFOTA4NCAvKiBIVFRQU1VwZ3JhZGVMaXN0LmRiICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IEhUVFBT
VXBncmFkZUxpc3QuZGI7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0hUVFBTVXBncmFk
ZUxpc3QuZGI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTVDMEIxNzc0
MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtTb2NrZXRTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3
b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJNUMwQjE3NzUxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2Nr
ZXRTdHJlYW1NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3
b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
TmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
V2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTUzMDMsNiArNTMwNSw4IEBACiAJCQkJMDBCOTY2
MTcxOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQubW0gKi8sCiAJCQkJQ0Q3OEUxMTMxREI3
RDdFRDAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5DbGllbnQuaCAqLywKIAkJCQlDRDc4RTExMjFEQjdE
N0VEMDAxNEEyREUgLyogRnVsbHNjcmVlbkNsaWVudC5tbSAqLywKKwkJCQkyRTJCM0JBNDIxRDQ4
NzkwMDA1MzhFREYgLyogR2xvYmFsRmluZEluUGFnZVN0YXRlLmggKi8sCisJCQkJMkUyQjNCQTMy
MUQ0ODc5MDAwNTM4RURGIC8qIEdsb2JhbEZpbmRJblBhZ2VTdGF0ZS5tbSAqLywKIAkJCQk1MUMw
Qzk3MjFEREQ3NEYwMDAzMkNBRDMgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oICovLAogCQkJCTUx
QzBDOTczMURERDc0RjAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLm1tICovLAogCQkJ
CTBGMEMzNjU5MThDMDU1NTgwMEY2MDdENyAvKiBMYXllclJlcHJlc2VudGF0aW9uLmggKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKaW5kZXggNGI1YTZkM2FkZGI0NDNlOTgwMGYwYTU1NDdiYjk3OWZjNjRk
ODBiYS4uMTY4MDRjYjg5OTA5ZWNjODcyNmQxZGI2NTA2OTc5YjY4NzE2M2NlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaApAQCAtMTczLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3Rl
Ym9hcmRJdGVtc0NvdW50KCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50RnJh
Z21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSBmaW5hbDsKICAg
ICBib29sIHBlcmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqKSBm
aW5hbDsKKyAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJikg
ZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRv
Y3VtZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYsIGJvb2wgaXNNb3ZlKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2Vi
RWRpdG9yQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KaW5kZXggYzYwNDM4YzRlNWJjYmI0YTQzYzgz
Yjg1ZDQ0MTkxMmVjNDc3NDYyNy4uMjIxMjMyNWUwZTZiNWJkNGI2OTY0OTY3MTRjMzQyNzE5MmZk
YTkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KQEAgLTg2LDYgKzg2LDEx
IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShXZWJDb3JlOjpE
b2N1bWVudEZyYWdtZW50KikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgV2ViRWRpdG9y
Q2xpZW50Ojp1cGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGNvbnN0IFN0cmluZyYgZmluZFN0cmlu
ZykKK3sKKyAgICBtX3BhZ2UtPnVwZGF0ZVN0cmluZ0ZvckZpbmRJblBhZ2UoZmluZFN0cmluZyk7
Cit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpvdmVyZmxvd1Njcm9sbFBvc2l0aW9uQ2hhbmdl
ZCgpCiB7CiAgICAgbV9wYWdlLT5kaWRDaGFuZ2VTZWxlY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmYzRlYTFkZmI5NDI2NGNhMWI5N2Jm
ZDg5NjUzMjBlNDAyZTA3MTExLi4zNGRkZmY1MTUwYjBhNjIxMmJhMmI2MDg3ZjVkNzk2YmM1NzA2
NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05
MzksNiArOTM5LDggQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0Q29uZmln
dXJhdGlvbiYgdmlld3BvcnRDb25maWd1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9y
dENvbmZpZ3VyYXRpb247IH0KIAogICAgIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0
eUNoYW5nZWQoKTsKKworICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25zdCBT
dHJpbmcmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IDkwNjU4MDU2Mzg5NzM3ZWY5Y2FhNWZmZDYxZThlZGFhZGY3OWNjZTkuLjYyOThjZTk1ZGM3NGEw
YzViNmYxMGIxZTEwYTcwNTQ0NWE0MjRjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0zMTI1LDYgKzMxMjUsMTEgQEAg
dm9pZCBXZWJQYWdlOjpoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpCiAgICAg
ICAgIGZvY3VzZWRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFu
Z2VkKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlU3RyaW5nRm9yRmluZEluUGFnZShjb25z
dCBTdHJpbmcmIGZpbmRTdHJpbmcpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpVcGRhdGVTdHJpbmdGb3JGaW5kSW5QYWdlKGZpbmRTdHJpbmcpKTsKK30KKwogI2lmIFVTRShR
VUlDS19MT09LKQogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUGFzc3dvcmRGb3JRdWlja0xvb2tE
b2N1bWVudChjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCA4
NDY0MDU5YzQ5NTJiOTZmNjE0YjdkNTQ1M2E3NTE1ODVkOGU0YWI1Li4wYTM2MjRlNTdjNDcxYzYy
NWEzMjY5NjQwMmMyM2JhNGU2NGI5OWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTQ0LDYgKzE0
NCw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3RlYm9hcmRJdGVtc0NvdW50KCkgZmluYWw7
CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRG
cm9tRGVsZWdhdGUoaW50IGluZGV4KSBmaW5hbDsKICAgICBib29sIHBlcmZvcm1zVHdvU3RlcFBh
c3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVN0
cmluZ0ZvckZpbmRJblBhZ2UoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAjZW5kaWYKIAogICAg
IGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQmLCBXZWJD
b3JlOjpSYW5nZSYgZGVzdGluYXRpb24sIGJvb2wgaXNNb3ZlKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4ZGNlZTFlNTI3MDBmYWUw
YTczN2M1MDA4ZDVhODVmMGYxYThmMDYwLi41ODc4MmQzOTZmZWYxYzc1ODAyN2RjZDQ2YTkwOWQx
ZGQzMWNmMGNlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTItMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBjdXJy
ZW50IHRleHQgc2VsZWN0aW9uIGFzIHRoZSBmaW5kIHN0cmluZyBvbiBpT1MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzAzNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDUxMzg3Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSBuZXcg
V2ViS2l0IFNQSSAoX3N0cmluZ0ZvckZpbmRJblBhZ2UsIF90YWtlRmluZFN0cmluZ0Zyb21TZWxl
Y3Rpb246LCBhbmQKKyAgICAgICAgX2NsZWFyU3RyaW5nRm9yRmluZEluUGFnZSkgd29ya3MgYXMg
ZXhwZWN0ZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1VzZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbTogQWRkZWQuCisKIDIwMTgtMTItMjIg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFdl
YkRyaXZlcjogd2FybiBhYm91dCBub24gZXhpc3RpbmcgdGVzdHMgd2hlbiBwYXJzaW5nIGV4cGVj
dGF0aW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMzE0MzI4ZmVkNGVhMTExOWZlMzVk
MWE1OWNmNTRkY2FlZWU5MjI3Li5iY2RkMmNmOTg5NzRiZDI1ZjQ2ODliNjkyYTJmNzQwOGUzNTdj
ZjBkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE4LDYgKzExOCw3IEBACiAJCTJFOTJC
OEY3MjE2NDkwRDQwMDVCNjRGMCAvKiByaWNoLXRleHQtYXR0cmlidXRlcy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTJCOEY2MjE2
NDkwQzMwMDVCNjRGMCAvKiByaWNoLXRleHQtYXR0cmlidXRlcy5odG1sICovOyB9OwogCQkyRTky
QjhGQTIxNjRBMEMxMDA1QjY0RjAgLyogRm9udEF0dHJpYnV0ZXMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTkyQjhGODIxNjQ5MEVBMDA1QjY0RjAg
LyogRm9udEF0dHJpYnV0ZXMubW0gKi87IH07CiAJCTJFOTg5NjE1MUQ4RjA5MzgwMDczOTg5MiAv
KiB0ZXh0LWFuZC1wYXNzd29yZC1pbnB1dHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk4OTYxNDFEOEYwOTJCMDA3Mzk4OTIgLyog
dGV4dC1hbmQtcGFzc3dvcmQtaW5wdXRzLmh0bWwgKi87IH07CisJCTJFQjI0MkI4MjFENDE0MEIw
MDU1QzFDMCAvKiBVc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTEzM0I0RjIxRDQwQUYwMDBFRDFDQjIgLyog
VXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tICovOyB9OwogCQkyRUIyOUQ1RTFGNzYyREI5MDAy
M0E1RjEgLyogZHVtcC1kYXRhdHJhbnNmZXItdHlwZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUIyOUQ1RDFGNzYyREE1MDAyM0E1
RjEgLyogZHVtcC1kYXRhdHJhbnNmZXItdHlwZXMuaHRtbCAqLzsgfTsKIAkJMkVCRDlEMEEyMTM0
NzMwRDAwMkRBNzU4IC8qIHZpZGVvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdDRDMyRjcyMDY1QjcyQTAwNjRBNEJFIC8qIHZpZGVv
Lmh0bWwgKi87IH07CiAJCTJFQ0ZGNTU1MUQ5QjEyRjgwMEI1NTM5NCAvKiBOb3dQbGF5aW5nQ29u
dHJvbHNUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFQ0ZGNTU0MUQ5QjEyRjgwMEI1NTM5NCAvKiBOb3dQbGF5aW5nQ29udHJvbHNUZXN0cy5t
bSAqLzsgfTsKQEAgLTEzOTUsNiArMTM5Niw3IEBACiAJCTJERTcxQUZGMUQ0OUMyRjAwMDkwNDA5
NCAvKiBibGlua2luZy1kaXYuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJibGlu
a2luZy1kaXYuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERkY3QjZDMURB
NDg3QUYwMDgxNDYxNCAvKiBTbmFwc2hvdFN0b3JlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gU25hcHNob3RTdG9yZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkUxMzFDMTcxRDgzQTk3RTAwMUJBMzZDIC8qIHdpZGUtYXV0b3BsYXlpbmctdmlk
ZW8td2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIndpZGUtYXV0
b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkUxMzNCNEYyMUQ0MEFGMDAwRUQxQ0IyIC8qIFVzZVNlbGVjdGlvbkFzRmluZFN0cmlu
Zy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZVNlbGVjdGlv
bkFzRmluZFN0cmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxNEE1Mjgx
RDNGRThCODAwMTBGMzVCIC8qIGF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJhdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTFCN0FGRjFENDFBOTVGMDA3NTU4
QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby1zZWVrLWFmdGVyLWVuZGluZy5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxQjdCMDExRDQxQjFCMzAwNzU1OEI0IC8qIGxhcmdl
LXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10
by1lbmQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTM3LDYgKzI1Mzks
NyBAQAogCQkJCTdDQ0I5OTIwMUQzQjQxRjYwMDM5MjJGNiAvKiBVc2VySW5pdGlhdGVkQWN0aW9u
SW5OYXZpZ2F0aW9uQWN0aW9uLm1tICovLAogCQkJCTA3RURFRkFDMUVCOTQwMEMwMEQ0MzI5MiAv
KiBVc2VyTWVkaWFEaXNhYmxlZC5tbSAqLywKIAkJCQkwN0Y0RTkyRDIwQUY1OEQzMDAyRTM4MDMg
LyogVXNlck1lZGlhU2ltdWxhdGVGYWlsZWRTYW5kYm94Lm1tICovLAorCQkJCTJFMTMzQjRGMjFE
NDBBRjAwMEVEMUNCMiAvKiBVc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0gKi8sCiAJCQkJOTNF
OTQzRjExQ0QzRTg3RTAwQUMwOEMyIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tICovLAogCQkJ
CUNEMzA2NURGMjE2NTY4MkUwMEU4OTVERiAvKiBWaWRlb1F1YWxpdHlEaXNwbGF5Q29tcG9zaXRp
bmcubW0gKi8sCiAJCQkJNjM1NkZCMjExRUM0RTBCQTAwNDRCRjE4IC8qIFZpc2libGVDb250ZW50
UmVjdC5tbSAqLywKQEAgLTQxOTEsNiArNDE5NCw3IEBACiAJCQkJMDc5OUMzNDkxRUJBMkQ3QjAw
M0I3NTMyIC8qIFVzZXJNZWRpYURpc2FibGVkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDdGNEU5
MkUyMEFGNTlFMjAwMkUzODAzIC8qIFVzZXJNZWRpYVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjE4MUE0MTFBRTYwMDQ0N0M0QyAvKiBVc2VyTWVzc2Fn
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRUIyNDJCODIxRDQxNDBCMDA1NUMxQzAgLyogVXNl
U2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwM0ExRDBB
NjAyNzAwRkVCQ0YzIC8qIFV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4
M0UwQzYxRDBBNjU0RTAwRkVCQ0YzIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQ0QzMDY1RTAyMTY1NjgyRTAwRTg5NURGIC8qIFZpZGVvUXVhbGl0eURpc3Bs
YXlDb21wb3NpdGluZy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZVNlbGVjdGlvbkFzRmluZFN0
cmluZy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xNTA1MGQwNzZlZjBlMzNhY2UyODExZDRhYTQzZjk2MDBmY2U3
MWRiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Vc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0KQEAgLTAsMCArMSw1NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBv
cnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKworVEVTVChXZWJLaXQsIFVzZVNlbGVjdGlvbkFzRmluZFN0cmluZykKK3sKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkSFRNTFN0cmluZzpAIjxib2R5PkhlbGxvIDxzcGFuIGlkPSd0ZXh0Jz53b3JsZDwvc3Bhbj48
L2JvZHk+Il07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9u
KCkuc2VsZWN0QWxsQ2hpbGRyZW4odGV4dCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAg
W3dlYlZpZXcgX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbjpuaWxdOworICAgIFt3ZWJWaWV3
IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIndv
cmxkIiwgV0tXZWJWaWV3Ll9zdHJpbmdGb3JGaW5kSW5QYWdlKTsKKyAgICBbV0tXZWJWaWV3IF9z
ZXRTdHJpbmdGb3JGaW5kSW5QYWdlOkAidGVzdGluZyJdOworICAgIEVYUEVDVF9XS19TVFJFUSgi
dGVzdGluZyIsIFtXS1dlYlZpZXcgX3N0cmluZ0ZvckZpbmRJblBhZ2VdKTsKKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgW3dlYlZpZXcgX2ZpbmRTdHJpbmc6QCJmb28iIG9wdGlvbnM6
MCBtYXhDb3VudDoxMF07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJmb28iLCBbV0tXZWJWaWV3IF9z
dHJpbmdGb3JGaW5kSW5QYWdlXSk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
</data>
<flag name="review"
          id="374960"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358242</attachid>
            <date>2019-01-02 19:08:31 -0800</date>
            <delta_ts>2019-01-02 20:00:56 -0800</delta_ts>
            <desc>Rename FindInPage to Find</desc>
            <filename>bug-193034-20190102190830.patch</filename>
            <type>text/plain</type>
            <size>47026</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY3ZGNjMTE5MDI3MDJm
MDc1NWEwYzkzZTRiODRlYjg2ZDFlYjk1Yi4uMDNlYzVjZTAyNDBjZjQ5NDE2ODhhYjg5ZjU5MWQ1
OGRhMDBjYmMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE4LTEyLTI5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB1c2luZyB0aGUgY3VycmVudCB0ZXh0IHNlbGVjdGlvbiBhcyB0aGUgZmluZCBzdHJpbmcg
b24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTMwMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTM4NzM5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yICJUYWtlRmluZFN0
cmluZ0Zyb21TZWxlY3Rpb24iIG9uIGlPUy4gVW5saWtlIG1hY09TLCBpT1MgZG9lcyBub3QgaGF2
ZSBhIG5vdGlvbiBvZiBhICJmaW5kCisgICAgICAgIHBhc3RlYm9hcmQiIGxpa2UgbWFjT1M7IGlu
c3RlYWQsIHdlIGhhbmRsZSB0aGlzIGVkaXRpbmcgY29tbWFuZCBieSBzZW5kaW5nIHRoZSBzZWxl
Y3Rpb24gc3RyaW5nIHRvIHRoZSBVSQorICAgICAgICBwcm9jZXNzLCB3aGVyZSBpdCBpcyBleHBv
c2VkIHZpYSBXZWJLaXQgU1BJIHNvIHRoYXQgY2xpZW50cyB0aGF0IHByZXNlbnQgZmluZC1pbi1w
YWdlIFVJIChpLmUuIE1vYmlsZVNhZmFyaSkgYXJlCisgICAgICAgIGFibGUgdG8gdHJpZ2dlciBm
aW5kLWluLXBhZ2Ugd2l0aCB0aGlzIHN0cmluZy4KKworICAgICAgICBUZXN0OiBXZWJLaXQuVXNl
U2VsZWN0aW9uQXNGaW5kU3RyaW5nCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2Vz
IGNvbnN0KToKKworICAgICAgICBNYWtlIHRoaXMgaGVscGVyIGZ1bmN0aW9uIGNyb3NzLXBsYXRm
b3JtLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0Vk
aXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ29tbWFuZE1hcCk6Cisg
ICAgICAgICogZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKToKKworICAgICAgICBNb3ZlIHRo
aXMgZnJvbSBFZGl0b3JNYWMgdG8gRWRpdG9yQ29jb2EsIGFuZCBpbXBsZW1lbnQgaXQgb24gaU9T
IGJ5IGNhbGxpbmcgaW50byB0aGUgZWRpdG9yIGNsaWVudCB0byB1cGRhdGUgdGhlCisgICAgICAg
IGZpbmQgc3RyaW5nIChzZWUgV2ViS2l0L0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzKS4KKwor
ICAgICAgICAqIGVkaXRpbmcvbWFjL0VkaXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6Y2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJbWFnZXMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24pOiBEZWxldGVk
LgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBhZ2UvRWRp
dG9yQ2xpZW50Lmg6CisKKyAgICAgICAgQWRkIGEgbmV3IGVkaXRvciBjbGllbnQgbWV0aG9kIHRv
IHNlbmQgdGhlIHN0cmluZyBmb3IgZmluZC1pbi1wYWdlIHRvIHRoZSBVSSBwcm9jZXNzLgorCiAy
MDE5LTAxLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFN1cHBvcnQgY3NzLWNvbG9yLTQgcmdiIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzMjA3Yjk1
ZGQ5OTdkYTE3YzM1YmFhZGRjNzNjMTE4NWZmZDk4YjRmLi40YWQ3NjYwZjYzNDQ3MWFhNDk2YmZj
MWE0ODAwYTVjZGE2NThlM2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE4LTEyLTI5
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciB1c2luZyB0aGUgY3VycmVudCB0ZXh0IHNlbGVjdGlvbiBhcyB0aGUgZmluZCBz
dHJpbmcgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTMwMzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTM4NzM5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX3Rha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbjpdKToKKworICAgICAgICBQcm92
aWRlcyBhIHdheSB0byBzZXQgdGhlIGZpbmQgc3RyaW5nIG9uIGlPUyBhbmQgbWFjT1MgKGFuIGFz
aWRlOiB0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246IGFscmVhZHkgZXhpc3RzIG9uCisgICAg
ICAgIG1hY09TLCBidXQgdGhlcmUgaXMgbm8gZXF1aXZhbGVudCBwcm90b2NvbCBtZXRob2Qgb24g
aU9TLCBzbyB0aGlzIG5ldyBTUEkgYWN0cyBhcyBhIGNyb3NzLXBsYXRmb3JtIHdheSBmb3IKKyAg
ICAgICAgV2ViS2l0IGNsaWVudHMgdG8gdGFrZSB0aGUgZmluZCBzdHJpbmcgZnJvbSB0aGUgc2Vs
ZWN0aW9uIGFjcm9zcyBhbGwgQ29jb2EgcGxhdGZvcm1zKS4KKworICAgICAgICAoK1tXS1dlYlZp
ZXcgX3N0cmluZ0ZvckZpbmRdKToKKyAgICAgICAgKCtbV0tXZWJWaWV3IF9zZXRTdHJpbmdGb3JG
aW5kOl0pOgorCisgICAgICAgIENhbGwgaW50byBmaW5kLWluLXBhZ2UgaGVscGVyIGZ1bmN0aW9u
cy4KKworICAgICAgICAoLVtXS1dlYlZpZXcgX2ZpbmRTdHJpbmc6b3B0aW9uczptYXhDb3VudDpd
KToKKworICAgICAgICBPbiBpT1MsIGFkZGl0aW9uYWxseSB1cGRhdGUgdGhlIGZpbmQtaW4tcGFn
ZSBzdHJpbmcgd2hlbiBleGVyY2lzaW5nIHRoZSBfZmluZFN0cmluZzpvcHRpb25zOm1heENvdW50
OiBTUEkuIFRoaXMKKyAgICAgICAgbWlycm9ycyBtYWNPUyBiZWhhdmlvciBvZiB1cGRhdGluZyB0
aGUgZmluZCBwYXN0ZWJvYXJkIGV2ZXJ5IHRpbWUgdGhlIGZpbmQgc3RyaW5nIGNoYW5nZXM7IGhv
d2V2ZXIsIG9uIG1hY09TLAorICAgICAgICB0aGlzIGlzIGltcGxlbWVudGVkIGJ5IHRoZSBwbGF0
Zm9ybSAoaW4gQXBwS2l0KSwgd2hlcmVhcyB0aGVyZSdzIG5vIHBsYXRmb3JtIGZpbmQgcGFzdGVi
b2FyZCBvbiBpT1MsIGxldCBhbG9uZQorICAgICAgICBsb2dpYyB0byB1cGRhdGUgaXQgaW4gVUlL
aXQuIEFzIHN1Y2gsIHdlIGRpcmVjdGx5IGRyaXZlIHVwZGF0ZXMgdG8gdGhlIGZpbmQgc3RyaW5n
IHdpdGhpbiBXZWJLaXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaDoKKworICAgICAgICBBZGQgc29tZSBuZXcgY3Jvc3MtcGxhdGZvcm0gZmluZC1p
bi1wYWdlIFNQSS4gU2VlIGFib3ZlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUubW06IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpmaW5kUGFzdGVib2FyZCk6CisgICAgICAgIChXZWJLaXQ6Omdsb2JhbFN0cmluZ0Zv
ckZpbmQpOgorCisgICAgICAgIEZldGNoIHRoZSBzdHJpbmcgdG8gdXNlIHdoZW4gZmluZGluZyB0
ZXh0IGluIHRoZSBwYWdlLiBPbiBtYWNPUywgdGhpcyBhY2Nlc3NlcyB0aGUgQXBwS2l0IGZpbmQg
cGFzdGVib2FyZDsgb24KKyAgICAgICAgaU9TLCB0aGlzIGluc3RlYWQgcmV0dXJucyB0aGUgY3Vy
cmVudCBnbG9iYWwgZmluZCBzdHJpbmcuCisKKyAgICAgICAgKFdlYktpdDo6dXBkYXRlU3RyaW5n
Rm9yRmluZCk6CisKKyAgICAgICAgU2V0cyB0aGUgZ2xvYmFsIGZpbmQgc3RyaW5nLiBVc2VzIHRo
ZSBmaW5kIHBhc3RlYm9hcmQgb24gbWFjT1MsIGFuZCBzZXRzIHRoZSBnbG9iYWwgZmluZCBzdHJp
bmcgb24gaU9TLgorCisgICAgICAgIChXZWJLaXQ6OnN0cmluZ0ZvckZpbmQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFkZCBwbHVtYmluZyB0byBhbGxvdyBXZWJFZGl0
b3JDbGllbnQgdG8gZGVsaXZlciB0aGUgdXBkYXRlIHRoZSBnbG9iYWwgZmluZCBzdHJpbmcgaW4g
dGhlIFVJIHByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVTdHJpbmdGb3JGaW5k
KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp1cGRhdGVTdHJpbmdGb3JGaW5kKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
dXBkYXRlU3RyaW5nRm9yRmluZCk6CisKIDIwMTktMDEtMDIgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIzOTQ0MSk6IFtpT1Nd
IFNlbGVjdGlvbiBVSSBzb21ldGltZXMgZG9lc24ndCBjaGFuZ2UgYWZ0ZXIgdGFwcGluZyAic2Vs
ZWN0IGFsbCIgaW4gdGhlIGNhbGxvdXQgYmFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggM2ViZmNjODY5MmI3ZWY5MjJjNTQ4ZDFhNWVhYTQ5Zjk1ZWRkN2RmYy4uNzgyNThmZTNkNTZj
Y2NjNzU1N2RjODQ4NjI3Y2QxNGY1MDUxOTU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTEyLTI5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB1c2luZyB0aGUgY3VycmVu
dCB0ZXh0IHNlbGVjdGlvbiBhcyB0aGUgZmluZCBzdHJpbmcgb24gaU9TCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTMwMzQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQ1MTM4NzM5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisK
KyAgICAgICAgQWRkIGEgbWV0aG9kIHN0dWIgZm9yIFdlYktpdExlZ2FjeS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDE5LTAxLTAxICBKZWZmIE1p
bGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdXNlci12aXNpYmxlIGNv
cHlyaWdodCBzdHJpbmdzIHRvIGluY2x1ZGUgMjAxOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CmluZGV4IGE1ZTg1ODRmNGFlODc3MjMxNGY2M2YzNDE3YmMwY2Q2ZTQ2MTc2ZmQuLjhkMTcxMzdi
ZmQ1NDc2YmNlYjRlOWJkNzJlMzcwZmE0ZjUzODE2MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKQEAgLTQyNTYsNCArNDI1NiwxMCBAQCBSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gRWRp
dG9yOjppbnNlcnRFZGl0YWJsZUltYWdlKCkKICAgICByZXR1cm4gSW5zZXJ0RWRpdGFibGVJbWFn
ZUNvbW1hbmQ6Omluc2VydEVkaXRhYmxlSW1hZ2UoZG9jdW1lbnQoKSk7CiB9CiAKK2Jvb2wgRWRp
dG9yOjpjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpIGNvbnN0Cit7CisgICAgYXV0
byYgc2VsZWN0aW9uID0gbV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKKyAgICByZXR1
cm4gc2VsZWN0aW9uLmlzUmFuZ2UoKSAmJiAhc2VsZWN0aW9uLmlzSW5QYXNzd29yZEZpZWxkKCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4
IDdjYWQyMjA5ODUyNjAwNmY5Y2M4OWMxY2UwZTI3OTQyMmVjNzM4NWYuLjA1Y2MxYjgyYWVhYzE0
MGI0MDkzMGRmNmYzN2VhNTQ5NTVjNjNmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAt
NDg1LDkgKzQ4NSw4IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBXRUJDT1JF
X0VYUE9SVCBTdHJpbmcgc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCgpOwogICAgIFN0cmlu
ZyBzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkV2l0aEltYWdlQWx0VGV4dCgpOwotI2lmICFQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIGJvb2wgY2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJ
bWFnZXMoKTsKICAgICB2b2lkIHRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbigpOworI2lmICFQ
TEFURk9STShJT1NfRkFNSUxZKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVhZFNlbGVjdGlv
bkZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZChOb2RlKiwgY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gZGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSk7CkBAIC00OTUsNiArNDk0LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmlu
ZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVz
cGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKKyAgICBib29sIGNhbkNvcHlFeGNsdWRpbmdTdGFu
ZGFsb25lSW1hZ2VzKCkgY29uc3Q7CisKICAgICBTdHJpbmcgY2xpZW50UmVwbGFjZW1lbnRVUkxG
b3JSZXNvdXJjZShSZWY8U2hhcmVkQnVmZmVyPiYmIHJlc291cmNlRGF0YSwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSk7CiAKICNpZiAhUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggOWZkYWMxZDYxMTk1MzhhY2UzZDRiZjhjMGVlMzE3OWY0
N2M4YmQzMS4uMGIzYmJiOWJlNjk1NjllYjgyY2YwNTRkYzI0YzcxNWU3ZTRhZDQzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0xMTAyLDEzICsxMTAyLDE1
IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVTd2FwV2l0aE1hcmsoRnJhbWUmIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBQ
TEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oQ09DT0EpCisKIHN0YXRpYyBib29sIGV4ZWN1dGVU
YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNv
bW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgZnJhbWUuZWRpdG9yKCkudGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci0jZW5kaWYKKwor
I2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiBzdGF0aWMgYm9vbCBleGVjdXRlVG9nZ2xlQm9s
ZChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0
IFN0cmluZyYpCiB7CkBAIC0xMzY3LDEyICsxMzY5LDE0IEBAIHN0YXRpYyBib29sIGVuYWJsZWRS
ZWRvKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlKQogICAgIHJldHVy
biBmcmFtZS5lZGl0b3IoKS5jYW5SZWRvKCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYg
UExBVEZPUk0oQ09DT0EpCisKIHN0YXRpYyBib29sIGVuYWJsZWRUYWtlRmluZFN0cmluZ0Zyb21T
ZWxlY3Rpb24oRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UpCiB7CiAg
ICAgcmV0dXJuIGZyYW1lLmVkaXRvcigpLmNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2Vz
KCk7CiB9Ci0jZW5kaWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiBzdGF0aWMgYm9v
bCBlbmFibGVkVW5kbyhGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSkK
IHsKQEAgLTE3MTgsNyArMTcyMiw3IEBAIHN0YXRpYyBjb25zdCBDb21tYW5kTWFwJiBjcmVhdGVD
b21tYW5kTWFwKCkKICAgICAgICAgeyAiUGFzdGVHbG9iYWxTZWxlY3Rpb24iLCB7IGV4ZWN1dGVQ
YXN0ZUdsb2JhbFNlbGVjdGlvbiwgc3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcsIGVuYWJs
ZWRQYXN0ZSwgc3RhdGVOb25lLCB2YWx1ZU51bGwsIG5vdFRleHRJbnNlcnRpb24sIGFsbG93RXhl
Y3V0aW9uV2hlbkRpc2FibGVkIH0gfSwKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgICAgICB7ICJUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24i
LCB7IGV4ZWN1dGVUYWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24sIHN1cHBvcnRlZEZyb21NZW51
T3JLZXlCaW5kaW5nLCBlbmFibGVkVGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uLCBzdGF0ZU5v
bmUsIHZhbHVlTnVsbCwgbm90VGV4dEluc2VydGlvbiwgZG9Ob3RBbGxvd0V4ZWN1dGlvbldoZW5E
aXNhYmxlZCB9IH0sCiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRWRpdG9yQ29jb2EubW0KaW5kZXggNWRlNzE2ZmExYWM0YTliNjljODVmMDk2NmJhMjkzYmZh
YmIyNmJmYy4uOTQ5YjFhOTU4NzcyZjY4YTE3OTk1YmFkNDQ0ZWFmMDgwYjA1ZjI0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tCkBAIC00NSw4ICs0NSwx
MSBAQAogI2ltcG9ydCAiSFRNTENvbnZlcnRlci5oIgogI2ltcG9ydCAiSFRNTEltYWdlRWxlbWVu
dC5oIgogI2ltcG9ydCAiSFRNTFNwYW5FbGVtZW50LmgiCisjaW1wb3J0ICJMZWdhY3lOU1Bhc3Rl
Ym9hcmRUeXBlcy5oIgogI2ltcG9ydCAiTGVnYWN5V2ViQXJjaGl2ZS5oIgogI2ltcG9ydCAiUGFz
dGVib2FyZC5oIgorI2ltcG9ydCAiUGFzdGVib2FyZFN0cmF0ZWd5LmgiCisjaW1wb3J0ICJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbXBvcnQgIlJlbmRlckVsZW1lbnQuaCIKICNpbXBvcnQgIlJl
bmRlclN0eWxlLmgiCiAjaW1wb3J0ICJTZXR0aW5ncy5oIgpAQCAtNTUsNiArNTgsNyBAQAogI2lt
cG9ydCAibWFya3VwLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQXR0cmlidXRlZFN0cmlu
Z1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaD4KKyNp
bXBvcnQgPHBhbC9zeXN0ZW0vU291bmQuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRp
b25zLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvTlNVUkxFeHRyYXMuaD4KIApAQCAtMjIzLDQgKzIy
NywyOCBAQCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRWRpdG9yOjp3ZWJDb250ZW50RnJvbVBh
c3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVib2FyZAogICAgIHJldHVybiBXVEZNb3ZlKHJlYWRl
ci5mcmFnbWVudCk7CiB9CiAKK3ZvaWQgRWRpdG9yOjp0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rp
b24oKQoreworICAgIGlmICghY2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJbWFnZXMoKSkgewor
ICAgICAgICBQQUw6OnN5c3RlbUJlZXAoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGF1dG8gc3RyaW5nRnJvbVNlbGVjdGlvbiA9IG1fZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVk
QnlFbmNvZGluZyhzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKSk7CisjaWYgUExBVEZPUk0o
TUFDKQorICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOworICAgIHR5cGVzLmFwcGVuZChTdHJpbmco
bGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKSkpOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0JFR0lOCisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJh
dGVneSgpLT5zZXRUeXBlcyh0eXBlcywgTlNGaW5kUGJvYXJkKTsKKyAgICBwbGF0Zm9ybVN0cmF0
ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldFN0cmluZ0ZvclR5cGUoV1RGTW92ZShz
dHJpbmdGcm9tU2VsZWN0aW9uKSwgbGVnYWN5U3RyaW5nUGFzdGVib2FyZFR5cGUoKSwgTlNGaW5k
UGJvYXJkKTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKyNlbHNlCisg
ICAgaWYgKGF1dG8qIGNsaWVudCA9IHRoaXMtPmNsaWVudCgpKSB7CisgICAgICAgIC8vIFNpbmNl
IHRoZSBmaW5kIHBhc3RlYm9hcmQgZG9lc24ndCBleGlzdCBvbiBpT1MsIFdlYktpdCBtYWludGFp
bnMgaXRzIG93biBub3Rpb24gb2YgdGhlIGxhdGVzdCBmaW5kIHN0cmluZywKKyAgICAgICAgLy8g
d2hpY2ggU1BJIGNsaWVudHMgbWF5IHJlc3BlY3Qgd2hlbiBwcmVzZW50aW5nIGZpbmQtaW4tcGFn
ZSBVSS4KKyAgICAgICAgY2xpZW50LT51cGRhdGVTdHJpbmdGb3JGaW5kKHN0cmluZ0Zyb21TZWxl
Y3Rpb24pOworICAgIH0KKyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9F
ZGl0b3JNYWMubW0KaW5kZXggM2ZlNmY0ZTdlNDUyMTI1YjUxZmExZmM3ZDQ4MDYxYzJjNDZiYjc3
ZC4uNjk3MWYwMDk3NDM4YmViNDQ5M2NmMjEwZDI1NWQwNzFkMjYwOGIwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQpAQCAtNTUsNyArNTUsNiBAQAogI2ltcG9ydCAi
V2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmgiCiAjaW1wb3J0ICJtYXJrdXAuaCIKICNpbXBv
cnQgPEFwcEtpdC9BcHBLaXQuaD4KLSNpbXBvcnQgPHBhbC9zeXN0ZW0vU291bmQuaD4KICNpbXBv
cnQgPHd0Zi9jb2NvYS9OU1VSTEV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05
OCwyNyArOTcsNiBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJk
KiBwYXN0ZWJvYXJkLCBPcHRpb25TZXQ8UGFzdGVPcHRpb24+CiAgICAgY2xpZW50KCktPnNldElu
c2VydGlvblBhc3RlYm9hcmQoU3RyaW5nKCkpOwogfQogCi1ib29sIEVkaXRvcjo6Y2FuQ29weUV4
Y2x1ZGluZ1N0YW5kYWxvbmVJbWFnZXMoKQotewotICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGVjdGlvbiA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7Ci0gICAgcmV0dXJu
IHNlbGVjdGlvbi5pc1JhbmdlKCkgJiYgIXNlbGVjdGlvbi5pc0luUGFzc3dvcmRGaWVsZCgpOwot
fQotCi12b2lkIEVkaXRvcjo6dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKCkKLXsKLSAgICBp
ZiAoIWNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCkpIHsKLSAgICAgICAgUEFMOjpz
eXN0ZW1CZWVwKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5n
PiB0eXBlczsKLSAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKGxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRU
eXBlKCkpKTsKLSAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgIHBs
YXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0VHlwZXModHlwZXMs
IE5TRmluZFBib2FyZCk7Ci0gICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJh
dGVneSgpLT5zZXRTdHJpbmdGb3JUeXBlKG1fZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlF
bmNvZGluZyhzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKSksIGxlZ2FjeVN0cmluZ1Bhc3Rl
Ym9hcmRUeXBlKCksIE5TRmluZFBib2FyZCk7Ci0gICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECi19Ci0KIHZvaWQgRWRpdG9yOjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsKICAgICBQYXN0ZWJvYXJkIHBhc3RlYm9h
cmQocGFzdGVib2FyZE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCBhMjhlYzY4Y2QzOWQ0NDUxNGNlNzI2NmE4Mzc4YmYxMzNiNmNhYmYyLi40OTI1MjRiMjNl
ZWQ4MWZlZGY2OGVkNjViN2FlODg4N2I1NWFjMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtMjE1LDYgKzIxNSw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBh
c3RlYm9hcmRJdGVtc0NvdW50KCkgZmluYWwgeyByZXR1cm4gMDsgfQogICAgIFJlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRlKGludCkgZmluYWwgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogICAgIGJvb2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoRG9jdW1lbnRG
cmFnbWVudCopIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCB1cGRhdGVTdHJpbmdG
b3JGaW5kKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogI2VuZGlmCiAKICAgICBib29sIHBlcmZv
cm1Ud29TdGVwRHJvcChEb2N1bWVudEZyYWdtZW50JiwgUmFuZ2UmLCBib29sKSBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKaW5kZXggYTY1ZDgwY2Vh
MGYyN2RhZjRiZmQyOGE1YWQwOGVhMGE2NGM0NjQ4Yi4uMzdiZjE4MjNhOThjMmQ5ZTUyZjNkMDJj
YmY1YmNmZmFlZTM1OGM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBAIC0xMzQs
NiArMTM0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IGdldFBhc3RlYm9hcmRJdGVtc0Nv
dW50KCkgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50
RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHBl
cmZvcm1zVHdvU3RlcFBhc3RlKERvY3VtZW50RnJhZ21lbnQqKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmQoY29uc3QgU3RyaW5nJikgPSAwOwogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA4NDU5NzUwZGEzNGE2
Mjc0YWRjYTg5NDkwMTU2OTg5MDlkZTU1ZWI2Li41NmYzYzQ1YzQxMTllN2RjZmM4ZGI0YjA5ZTUz
ZDJiMDA1ODAxZTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zMTcsNiArMzE3LDcgQEAg
VUlQcm9jZXNzL0NvY29hL0RpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lm1tCiBVSVByb2Nlc3MvQ29j
b2EvRG93bmxvYWRDbGllbnQubW0KIFVJUHJvY2Vzcy9Db2NvYS9GaW5kQ2xpZW50Lm1tCiBVSVBy
b2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbQorVUlQcm9jZXNzL0NvY29hL0dsb2JhbEZp
bmRJblBhZ2VTdGF0ZS5tbQogVUlQcm9jZXNzL0NvY29hL0ljb25Mb2FkaW5nRGVsZWdhdGUubW0K
IFVJUHJvY2Vzcy9Db2NvYS9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0KIFVJ
UHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDZkODkzOTY1ZWIzNDVjYjY4MTNkZmU3
ZjBjNjRjNGQzMjFiNmRhNmIuLjNjNWJlYmYyN2I0MmZiOTQ1NmZlZGQwZTlhZTEzM2U3NWJkYTZk
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiRmluZENsaWVudC5oIgogI2ltcG9ydCAiRnJv
bnRCb2FyZFNlcnZpY2VzU1BJLmgiCiAjaW1wb3J0ICJGdWxsc2NyZWVuQ2xpZW50LmgiCisjaW1w
b3J0ICJHbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCIKICNpbXBvcnQgIkljb25Mb2FkaW5nRGVsZWdh
dGUuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIgogI2ltcG9ydCAiTG9n
Z2luZy5oIgpAQCAtNDQ0Miw2ICs0NDQzLDI1IEBAIC0gKHZvaWQpX3NldEVkaXRhYmxlOihCT09M
KWVkaXRhYmxlCiAjZW5kaWYKIH0KIAorLSAodm9pZClfdGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0
aW9uOihpZClzZW5kZXIKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgW3NlbGYgdGFrZUZpbmRT
dHJpbmdGcm9tU2VsZWN0aW9uOnNlbmRlcl07CisjZWxzZQorICAgIF9wYWdlLT5leGVjdXRlRWRp
dENvbW1hbmQoIlRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbiJfcyk7CisjZW5kaWYKK30KKwor
KyAoTlNTdHJpbmcgKilfc3RyaW5nRm9yRmluZAoreworICAgIHJldHVybiBXZWJLaXQ6OnN0cmlu
Z0ZvckZpbmQoKTsKK30KKworKyAodm9pZClfc2V0U3RyaW5nRm9yRmluZDooTlNTdHJpbmcgKilm
aW5kU3RyaW5nCit7CisgICAgV2ViS2l0Ojp1cGRhdGVTdHJpbmdGb3JGaW5kKGZpbmRTdHJpbmcp
OworfQorCiAtIChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVPYmplY3RSZWdpc3Ry
eQogewogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTUxNzcsNiArNTE5NywxMSBAQCAtICh2b2lkKV9j
b3VudFN0cmluZ01hdGNoZXM6KE5TU3RyaW5nICopc3RyaW5nIG9wdGlvbnM6KF9XS0ZpbmRPcHRp
b25zKW9wdGlvbnMgbQogLSAodm9pZClfZmluZFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgb3B0
aW9uczooX1dLRmluZE9wdGlvbnMpb3B0aW9ucyBtYXhDb3VudDooTlNVSW50ZWdlciltYXhDb3Vu
dAogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLy8gV2hpbGUgQXBwS2l0IGNvbnRh
aW5zIGxvZ2ljIGluIE5TQmFyVGV4dEZpbmRlciB0byBhdXRvbWF0aWNhbGx5IHVwZGF0ZSB0aGUg
ZmluZCBwYXN0ZWJvYXJkCisgICAgLy8gd2hlbiB0aGUgZmluZCBzdHJpbmcgY2hhbmdlcywgdGhp
cyAoYWxvbmcgd2l0aCB0aGUgZmluZCBwYXN0ZWJvYXJkIGl0c2VsZikgYXJlIGJvdGggbWlzc2lu
ZworICAgIC8vIGZyb20gaU9TOyB0aHVzLCBvbiBpT1MsIHdlIHVwZGF0ZSB0aGUgY3VycmVudCBm
aW5kLWluLXBhZ2Ugc3RyaW5nIGhlcmUuCisgICAgV2ViS2l0Ojp1cGRhdGVTdHJpbmdGb3JGaW5k
KHN0cmluZyk7CisKICAgICBpZiAoX2N1c3RvbUNvbnRlbnRWaWV3KSB7CiAgICAgICAgIFtfY3Vz
dG9tQ29udGVudFZpZXcgd2ViX2ZpbmRTdHJpbmc6c3RyaW5nIG9wdGlvbnM6b3B0aW9ucyBtYXhD
b3VudDptYXhDb3VudF07CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDg4YjU2MzViZThm
ZTZhMGJiMmU1ZDNjZjYyYzdiZjYyZjZjNzg2YmQuLmU3MDk0MDlmYjRhNjY4MzRmNWNiMmZhMzk2
N2EzOTNhZjU5ODYwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtMjE1LDYgKzIxNSw5IEBAIHR5cGVkZWYgTlNf
T1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewogLSAoSUJBY3Rpb24pX2NoYW5nZUxp
c3RUeXBlOihpZClzZW5kZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAtIChJQkFjdGlvbilfcGFzdGVBc1F1b3RhdGlvbjooaWQpc2VuZGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
LSAoSUJBY3Rpb24pX3Bhc3RlQW5kTWF0Y2hTdHlsZTooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoSUJBY3Rpb24pX3Rh
a2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbjooaWQpc2VuZGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCitAcHJvcGVydHkgKGNsYXNzLCBu
b25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0U3RyaW5nRm9yRmluZDopIE5TU3RyaW5nICpfc3Ry
aW5nRm9yRmluZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ZWFhNTgxNzFkZWVhYzY3ZjJmN2Y3ZWE4M2Q3NWU2ZjY1MmNmOGI1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvR2xvYmFsRmluZEluUGFnZVN0YXRlLmgK
QEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgU3RyaW5nOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5kKGNvbnN0IFdURjo6U3RyaW5n
Jik7CitXVEY6OlN0cmluZyBzdHJpbmdGb3JGaW5kKCk7CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9HbG9iYWxGaW5kSW5QYWdlU3RhdGUubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Zm
NjllZWNkYWFjZWRiNzEzZjM1YmVlOGVhYTJkOWQ4NjAzMjVmMAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0dsb2JhbEZpbmRJblBhZ2VTdGF0ZS5tbQpA
QCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJHbG9iYWxGaW5kSW5QYWdlU3RhdGUuaCIKKworI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKKyNpZiBQTEFURk9STShNQUMpCisjaW1wb3J0IDxBcHBLaXQvTlNQYXN0ZWJvYXJkLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeU5TUGFzdGVib2FyZFR5cGVzLmg+CisjZW5kaWYKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBQTEFURk9STShNQUMpCisKK3N0YXRpYyBOU1Bhc3Rl
Ym9hcmQgKmZpbmRQYXN0ZWJvYXJkKCkKK3sKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgorICAgIHJldHVybiBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFtZTpO
U0ZpbmRQYm9hcmRdOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorfQor
CisjZWxzZQorCitzdGF0aWMgU3RyaW5nJiBnbG9iYWxTdHJpbmdGb3JGaW5kKCkKK3sKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzdHJpbmc7CisgICAgcmV0dXJuIHN0cmluZy5n
ZXQoKTsKK30KKworI2VuZGlmCisKK3ZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZChjb25zdCBTdHJp
bmcmIHN0cmluZykKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgW2ZpbmRQYXN0ZWJvYXJkKCkg
c2V0U3RyaW5nOnN0cmluZyBmb3JUeXBlOldlYkNvcmU6OmxlZ2FjeVN0cmluZ1Bhc3RlYm9hcmRU
eXBlKCldOworI2Vsc2UKKyAgICBnbG9iYWxTdHJpbmdGb3JGaW5kKCkgPSBzdHJpbmc7CisjZW5k
aWYKK30KKworU3RyaW5nIHN0cmluZ0ZvckZpbmQoKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICByZXR1cm4gW2ZpbmRQYXN0ZWJvYXJkKCkgc3RyaW5nRm9yVHlwZTpXZWJDb3JlOjpsZWdhY3lT
dHJpbmdQYXN0ZWJvYXJkVHlwZSgpXTsKKyNlbHNlCisgICAgcmV0dXJuIGdsb2JhbFN0cmluZ0Zv
ckZpbmQoKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMDFiZWE1MGQ0ZjJmMjgxOTAzZGQ2MWY5Y2Zl
NDA4ZGZjYzAyYjNhZC4uNTI4MzRlNmQ2ZWY4YzVhNGQ0MWVkYjc3OGJiM2ExNmFmZWJhOWZhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE3MjAsNiArMTcyMCw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnRlcnByZXRLZXlFdmVudChjb25zdCBFZGl0b3JTdGF0
ZSYsIGJvb2wgaXNDaGFyRXZlbnQsIGJvb2wmIGhhbmRsZWQpOwogICAgIHZvaWQgc2hvd1BsYXli
YWNrVGFyZ2V0UGlja2VyKGJvb2wgaGFzVmlkZW8sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGVs
ZW1lbnRSZWN0LCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3ksIGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgc2VsZWN0aW9uUmVjdHNDYWxsYmFjayhjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2Vs
ZWN0aW9uUmVjdD4mLCBDYWxsYmFja0lEKTsKKworICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmlu
ZChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykKICAgICB2b2lkIHBy
aW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ2FsbGJh
Y2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggMWU0NTE4ZjcxYzQxZmQxZTYyODg4NmZjMDNlMzUxMmYwMThhYTFjOS4uY2Y0
MGZkY2IwZTVkMWVkMGUxNzZkYjI5NmMyMzAzMTNlY2JkYzliNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDE2LDYgKzQxNiw4
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBFbmFibGVJbnNwZWN0b3JOb2Rl
U2VhcmNoKCkKICAgICBEaXNhYmxlSW5zcGVjdG9yTm9kZVNlYXJjaCgpCisKKyAgICBVcGRhdGVT
dHJpbmdGb3JGaW5kKFN0cmluZyBmaW5kU3RyaW5nKQogI2VuZGlmCiAKICAgICBEaWRDaGFuZ2VJ
bnNwZWN0b3JGcm9udGVuZENvdW50KHVpbnQ2NF90IGNvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggZjZkMzA0YjgxMDYxYjVhZDQx
ODgwNmJkODlkNmI3NjdhZjRkYmJjMi4uZDMzMjYzZDU0NzE1N2FhNWYzOTcxYmU4OWNkOTkwOTFm
ZDAwMmRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJBUElVSUNsaWVudC5oIgogI2ltcG9y
dCAiRGF0YVJlZmVyZW5jZS5oIgogI2ltcG9ydCAiRWRpdGluZ1JhbmdlLmgiCisjaW1wb3J0ICJH
bG9iYWxGaW5kSW5QYWdlU3RhdGUuaCIKICNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJLZXli
b2FyZEV2ZW50LmgiCkBAIC0yMjYsNiArMjI3LDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNl
bmRMYXN0VmlzaWJsZUNvbnRlbnRSZWN0cygpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpWaWV3VXBkYXRlRGlzcGF0Y2hlcjo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKG1fcGFnZUlE
LCBtX2xhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUpLCAwKTsKIH0KIAordm9pZCBXZWJQYWdl
UHJveHk6OnVwZGF0ZVN0cmluZ0ZvckZpbmQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAg
aWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYktpdDo6dXBkYXRlU3Ry
aW5nRm9yRmluZChzdHJpbmcpOworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0IGFkanVzdGVkVW5l
eHBvc2VkRWRnZShmbG9hdCBkb2N1bWVudEVkZ2UsIGZsb2F0IGV4cG9zZWRSZWN0RWRnZSwgZmxv
YXQgZmFjdG9yKQogewogICAgIGlmIChleHBvc2VkUmVjdEVkZ2UgPCBkb2N1bWVudEVkZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAy
MjNhN2JmOGZiNmUwMzRjNmFiOTdmYzU2NzJiYjE5MzNmNmNmYjM5Li43NDNkMDEyODUzNzI1Yzhj
YTllN2I1ZDAwYmNiZDVkM2Y0NGRhOTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc1LDkgKzc1LDkgQEAKIAkJMDA1RDE1OEYxOEU0
QzRFQjAwNzM0NjE5IC8qIF9XS0ZpbmREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDA1RDE1OEUxOEU0QzRFQjAwNzM0NjE5IC8qIF9XS0Zp
bmREZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTAwQjk2NjE2MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMEI5NjYxNTE4RTI0Q0JB
MDBDRTFGODggLyogQVBJRmluZENsaWVudC5oICovOyB9OwogCQkwMEI5NjYxQTE4RTI1QUUxMDBD
RTFGODggLyogRmluZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDBCOTY2MTgxOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQuaCAqLzsg
fTsKKwkJMDcyOTdGOUYxQzE3QUExQTAxNUYwNzM1IC8qIFBlcnNpc3RlbmN5VXRpbHMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MzIxRjlEMUMxN0JC
RUEyMjNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JC
RUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTAwM0Yw
NzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggKi87IH07CiAJCTA3Mjk3RjlG
MUMxN0JCRUEwMTVGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTIyM0Yw
NzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi87IH07Ci0JCTA3Mjk3RjlGMUMxN0FB
MUEwMTVGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzMyMUY5RDFDMTdCQkVBMjIzRjA3MzUgLyogUGVyc2lz
dGVuY3lVdGlscy5oICovOyB9OwogCQkwNzI5N0ZBMzFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3Mjk3RkExMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTA3NEU3NUZFMURGMjIxMTkwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc0RTc1
RkIxREYxRkQxMzAwRDMxOEVDIC8qIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmggKi87IH07CiAJ
CTA3NkU4ODRFMUExM0NBREYwMDVFOTBGQyAvKiBBUElDb250ZXh0TWVudUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2RTg4NEQxQTEzQ0FE
RjAwNUU5MEZDIC8qIEFQSUNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CkBAIC0xMDM5LDggKzEw
MzksOCBAQAogCQk1N0RDRURDMzIxNEYxMTRDMDAxNkI4NDcgLyogTW9ja0xvY2FsU2VydmljZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEQ0VEQzEy
MTRGMTE0QzAwMTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCAqLzsgfTsKIAkJNTdEQ0VEQzcy
MTRGMTgzMDAwMTZCODQ3IC8qIE1vY2tMb2NhbENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREM1MjE0RjE4MzAwMDE2Qjg0NyAv
KiBNb2NrTG9jYWxDb25uZWN0aW9uLmggKi87IH07CiAJCTU3RENFRENCMjE0RjRFNDIwMDE2Qjg0
NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RENFREM5MjE0RjRFNDIwMDE2Qjg0NyAvKiBNb2NrQXV0
aGVudGljYXRvck1hbmFnZXIuaCAqLzsgfTsKLQkJNThFOTc3REYyMUM0OUEwMDAwNUQ5MkE2IC8q
IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1OEU5NzdERDIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hU
VFBTVXBncmFkZUNoZWNrZXIuaCAqLzsgfTsKIAkJNTg3NzQzQTYyMUMzMEJCRTAwQUU5MDg0IC8q
IEhUVFBTVXBncmFkZUxpc3QuZGIgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU4Nzc0M0E0MjFDMzBBRDgwMEFFOTA4NCAvKiBIVFRQU1VwZ3JhZGVMaXN0
LmRiICovOyB9OworCQk1OEU5NzdERjIxQzQ5QTAwMDA1RDkyQTYgLyogTmV0d29ya0hUVFBTVXBn
cmFkZUNoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU4RTk3N0REMjFDNDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tl
ci5oICovOyB9OwogCQk1QzBCMTc3ODFFN0M4ODBFMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0
cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzBCMTc3NDFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0
cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTVDMEIxNzc5MUU3Qzg4MjEwMEU5MTIz
QyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwQjE3NzYxRTdDODc5QzAwRTkxMjNDIC8q
IFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTVDMTQyNkVEMUMy
M0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNDI2RTMxQzIzRjgw
NTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi87IH07CkBA
IC0xODU3LDE0ICsxODU3LDE0IEBACiAJCTAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBBUElG
aW5kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUZpbmRDbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTcxOEUyNUFFMTAwQ0Ux
Rjg4IC8qIEZpbmRDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBGaW5kQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMEI5NjYx
ODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3
Mjk0NTVDMUMxNzExRUEwMDNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0aWxzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcnNpc3RlbmN5VXRpbHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0Y5QzFDMTcxMUVBMDAzRjA3MzUgLyogRGV2aWNl
SWRIYXNoU2FsdFN0b3JhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzI5N0Y5QzFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzI5N0Y5RDFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyOTdGOUQxQzE3QkJF
QTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTA3Mjk0NTVDMUMxNzExRUEwMDNGMDczNSAvKiBQZXJzaXN0ZW5jeVV0
aWxzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcnNpc3RlbmN5
VXRpbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwNzMyMUY5RDFDMTdCQkVB
MjIzRjA3MzUgLyogUGVyc2lzdGVuY3lVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQZXJzaXN0ZW5jeVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3Mjk3RkEwMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RkExMUMx
ODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzMyMUY5RDFDMTdCQkVBMjIzRjA3MzUgLyogUGVy
c2lzdGVuY3lVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJzaXN0
ZW5jeVV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NEU3NUZCMURGMUZE
MTMwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwNzRFNzVGQzFERjIwMDI0MDBEMzE4RUMgLyogVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
NzRFNzYwMDFERjcwNzVEMDBEMzE4RUMgLyogTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYURldmljZVNhbmRi
b3hFeHRlbnNpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MDgsNiAr
MjgwOCw4IEBACiAJCTJERkY3QjZFMURBNENGQUYwMDgxNDYxNCAvKiBXS0JhY2tGb3J3YXJkTGlz
dEl0ZW1Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQmFja0Zv
cndhcmRMaXN0SXRlbVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUx
NkI2Q0MyMDE3QjdBQjAwODk5NkQ2IC8qIFdLRm9jdXNlZEZvcm1Db250cm9sVmlldy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLRm9jdXNlZEZvcm1Db250cm9s
Vmlldy5tbTsgcGF0aCA9IGlvcy9mb3Jtcy9XS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMTZCNkNEMjAxN0I3QUMwMDg5OTZENiAvKiBX
S0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3Lmg7IHBhdGggPSBpb3MvZm9ybXMvV0tGb2N1c2Vk
Rm9ybUNvbnRyb2xWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkIzQkEz
MjFENDg3OTAwMDUzOEVERiAvKiBHbG9iYWxGaW5kSW5QYWdlU3RhdGUubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHbG9iYWxGaW5kSW5QYWdlU3RhdGUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkIzQkE0MjFENDg3OTAwMDUzOEVERiAvKiBH
bG9iYWxGaW5kSW5QYWdlU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R2xvYmFsRmluZEluUGFnZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJF
NUM3NzBDMUZBN0Q0MjkwMDU5MzJDMyAvKiBBUElBdHRhY2htZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFQSUF0dGFjaG1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU1Qzc3MEQx
RkE3RDQyOTAwNTkzMkMzIC8qIEFQSUF0dGFjaG1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QVBJQXR0YWNobWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFN0E5NDQ5
MUJCRDk1QzYwMDk0NTU0NyAvKiBfV0tGb2N1c2VkRWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zNDA5LDkgKzM0MTEsOSBAQAogCQk1N0RDRURDNjIxNEYxODMwMDAxNkI4NDcgLyogTW9ja0xv
Y2FsQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1vY2tMb2NhbENvbm5lY3Rp
b24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENFREM5MjE0RjRFNDIwMDE2
Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RENF
RENEMjE0RjUxNjgwMDE2Qjg0NyAvKiBNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTg3NzQzQTQyMUMzMEFEODAwQUU5
MDg0IC8qIEhUVFBTVXBncmFkZUxpc3QuZGIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gSFRUUFNVcGdyYWRlTGlzdC5kYjsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvSFRUUFNVcGdyYWRlTGlzdC5kYjsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNThFOTc3REMyMUM0OTlGRTAwNUQ5MkE2IC8q
IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNThFOTc3REQyMUM0OUEwMDAwNUQ5MkE2IC8qIE5ldHdvcmtIVFRQ
U1VwZ3JhZGVDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdv
cmtIVFRQU1VwZ3JhZGVDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU4
Nzc0M0E0MjFDMzBBRDgwMEFFOTA4NCAvKiBIVFRQU1VwZ3JhZGVMaXN0LmRiICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IEhUVFBT
VXBncmFkZUxpc3QuZGI7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL0hUVFBTVXBncmFk
ZUxpc3QuZGI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTVDMEIxNzc0
MUU3Qzg3OUMwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtTb2NrZXRTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3
b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJNUMwQjE3NzUxRTdDODc5QzAwRTkxMjNDIC8qIE5ldHdvcmtTb2Nr
ZXRTdHJlYW1NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3
b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
TmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
V2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTUzMDYsNiArNTMwOCw4IEBACiAJCQkJMDBCOTY2
MTcxOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQubW0gKi8sCiAJCQkJQ0Q3OEUxMTMxREI3
RDdFRDAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5DbGllbnQuaCAqLywKIAkJCQlDRDc4RTExMjFEQjdE
N0VEMDAxNEEyREUgLyogRnVsbHNjcmVlbkNsaWVudC5tbSAqLywKKwkJCQkyRTJCM0JBNDIxRDQ4
NzkwMDA1MzhFREYgLyogR2xvYmFsRmluZEluUGFnZVN0YXRlLmggKi8sCisJCQkJMkUyQjNCQTMy
MUQ0ODc5MDAwNTM4RURGIC8qIEdsb2JhbEZpbmRJblBhZ2VTdGF0ZS5tbSAqLywKIAkJCQk1MUMw
Qzk3MjFEREQ3NEYwMDAzMkNBRDMgLyogSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oICovLAogCQkJCTUx
QzBDOTczMURERDc0RjAwMDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLm1tICovLAogCQkJ
CTBGMEMzNjU5MThDMDU1NTgwMEY2MDdENyAvKiBMYXllclJlcHJlc2VudGF0aW9uLmggKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKaW5kZXggNGI1YTZkM2FkZGI0NDNlOTgwMGYwYTU1NDdiYjk3OWZjNjRk
ODBiYS4uNDcyMGI3MTE3NTQxMmE1OWEyMjliYzQ3MTA2ZGFiMmRhM2M4NzU2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaApAQCAtMTczLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3Rl
Ym9hcmRJdGVtc0NvdW50KCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50RnJh
Z21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSBmaW5hbDsKICAg
ICBib29sIHBlcmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqKSBm
aW5hbDsKKyAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmQoY29uc3QgU3RyaW5nJikgZmluYWw7
CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRvY3VtZW50
RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYsIGJvb2wgaXNNb3ZlKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9y
Q2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lv
cy9XZWJFZGl0b3JDbGllbnRJT1MubW0KaW5kZXggYzYwNDM4YzRlNWJjYmI0YTQzYzgzYjg1ZDQ0
MTkxMmVjNDc3NDYyNy4uMDBiODcxZTlkZGZjMDk0NTQ4ZDIwMTViNjUwYTljMmQ2ZmIxNDRjZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9X
ZWJFZGl0b3JDbGllbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0KQEAgLTg2LDYgKzg2LDExIEBAIGJv
b2wgV2ViRWRpdG9yQ2xpZW50OjpwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShXZWJDb3JlOjpEb2N1bWVu
dEZyYWdtZW50KikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50
Ojp1cGRhdGVTdHJpbmdGb3JGaW5kKGNvbnN0IFN0cmluZyYgZmluZFN0cmluZykKK3sKKyAgICBt
X3BhZ2UtPnVwZGF0ZVN0cmluZ0ZvckZpbmQoZmluZFN0cmluZyk7Cit9CisKIHZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpvdmVyZmxvd1Njcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiB7CiAgICAgbV9wYWdl
LT5kaWRDaGFuZ2VTZWxlY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCAyNjdhOTgzZTgxODAwY2NlZTU3OTE2Yzc0NzM1NGUyNGE3YjI2MDU4
Li5kOGI4YjMwZTU3YWE5NjZiNmViNmRhNWQ5ZDc0ODc4MjNiZGJmNmYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05MzksNiArOTM5LDggQEAgcHVi
bGljOgogICAgIGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbiYgdmlld3BvcnRD
b25maWd1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydENvbmZpZ3VyYXRpb247IH0K
IAogICAgIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQoKTsKKworICAg
IHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDkwNjU4MDU2Mzg5NzM3ZWY5Y2FhNWZm
ZDYxZThlZGFhZGY3OWNjZTkuLmIwZjJkMThjODdhNTUxNWVjNmVhMWQzNTNjMjI1NWQzNzkxYWVl
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tCkBAIC0zMTI1LDYgKzMxMjUsMTEgQEAgdm9pZCBXZWJQYWdlOjpoYXJkd2FyZUtl
eWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpCiAgICAgICAgIGZvY3VzZWRGcmFtZS0+ZXZlbnRI
YW5kbGVyKCkuY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgV2ViUGFn
ZTo6dXBkYXRlU3RyaW5nRm9yRmluZChjb25zdCBTdHJpbmcmIGZpbmRTdHJpbmcpCit7CisgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVcGRhdGVTdHJpbmdGb3JGaW5kKGZpbmRTdHJp
bmcpKTsKK30KKwogI2lmIFVTRShRVUlDS19MT09LKQogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZl
UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudChjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAppbmRleCA4NDY0MDU5YzQ5NTJiOTZmNjE0YjdkNTQ1M2E3NTE1ODVkOGU0
YWI1Li5mMGY5NjhiN2UyYjY2Yzg5MWRjMTRiNmMxZmFhZjBiOGJiZTFkMTllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaApAQCAtMTQ0LDYgKzE0NCw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3RlYm9h
cmRJdGVtc0NvdW50KCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50RnJhZ21l
bnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSBmaW5hbDsKICAgICBi
b29sIHBlcmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqKSBmaW5h
bDsKKyAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmQoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9
CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRvY3VtZW50
RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYgZGVzdGluYXRpb24sIGJvb2wgaXNNb3ZlKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBj
ZWYzNTZlYmUwODVjNjlmODg1ODA3OThhMWFiNTk3MDJiMmRhZTBhLi5jNTQ3MGUyNjIwODVlMjcx
YzZjOTBmMzU1OTExZGUwN2IzODUzZTllIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTItMjkgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHVzaW5nIHRoZSBjdXJyZW50IHRleHQgc2VsZWN0aW9uIGFzIHRoZSBmaW5kIHN0cmluZyBvbiBp
T1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzAz
NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxMzg3Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGQgYSBuZXcgQVBJIHRlc3QgdG8gdmVyaWZ5IHRo
YXQgdGhlIG5ldyBXZWJLaXQgU1BJIChfc3RyaW5nRm9yRmluZCwgX3Rha2VGaW5kU3RyaW5nRnJv
bVNlbGVjdGlvbjosIGFuZAorICAgICAgICBfc2V0U3RyaW5nRm9yRmluZCkgd29ya3MgYXMgZXhw
ZWN0ZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1VzZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbTogQWRkZWQuCisKIDIwMTktMDEtMDIgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtsbGRiLXdlYmtpdF0g
UmVtb3ZlIGJyb2tlbiBjb2RlIHRvIHByaW50IFdURjo6T3B0aW9uU2V0OjptX3N0b3JhZ2UKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjMxNDMyOGZlZDRlYTExMTlmZTM1ZDFhNTljZjU0ZGNh
ZWVlOTIyNy4uYmNkZDJjZjk4OTc0YmQyNWY0Njg5YjY5MmEyZjc0MDhlMzU3Y2YwZCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTExOCw2ICsxMTgsNyBAQAogCQkyRTkyQjhGNzIxNjQ5MEQ0
MDA1QjY0RjAgLyogcmljaC10ZXh0LWF0dHJpYnV0ZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTkyQjhGNjIxNjQ5MEMzMDA1QjY0
RjAgLyogcmljaC10ZXh0LWF0dHJpYnV0ZXMuaHRtbCAqLzsgfTsKIAkJMkU5MkI4RkEyMTY0QTBD
MTAwNUI2NEYwIC8qIEZvbnRBdHRyaWJ1dGVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5MkI4RjgyMTY0OTBFQTAwNUI2NEYwIC8qIEZvbnRBdHRy
aWJ1dGVzLm1tICovOyB9OwogCQkyRTk4OTYxNTFEOEYwOTM4MDA3Mzk4OTIgLyogdGV4dC1hbmQt
cGFzc3dvcmQtaW5wdXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkU5ODk2MTQxRDhGMDkyQjAwNzM5ODkyIC8qIHRleHQtYW5kLXBh
c3N3b3JkLWlucHV0cy5odG1sICovOyB9OworCQkyRUIyNDJCODIxRDQxNDBCMDA1NUMxQzAgLyog
VXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkUxMzNCNEYyMUQ0MEFGMDAwRUQxQ0IyIC8qIFVzZVNlbGVjdGlv
bkFzRmluZFN0cmluZy5tbSAqLzsgfTsKIAkJMkVCMjlENUUxRjc2MkRCOTAwMjNBNUYxIC8qIGR1
bXAtZGF0YXRyYW5zZmVyLXR5cGVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVCMjlENUQxRjc2MkRBNTAwMjNBNUYxIC8qIGR1bXAt
ZGF0YXRyYW5zZmVyLXR5cGVzLmh0bWwgKi87IH07CiAJCTJFQkQ5RDBBMjEzNDczMEQwMDJEQTc1
OCAvKiB2aWRlby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3Q0QzMkY3MjA2NUI3MkEwMDY0QTRCRSAvKiB2aWRlby5odG1sICovOyB9
OwogCQkyRUNGRjU1NTFEOUIxMkY4MDBCNTUzOTQgLyogTm93UGxheWluZ0NvbnRyb2xzVGVzdHMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUNGRjU1
NDFEOUIxMkY4MDBCNTUzOTQgLyogTm93UGxheWluZ0NvbnRyb2xzVGVzdHMubW0gKi87IH07CkBA
IC0xMzk1LDYgKzEzOTYsNyBAQAogCQkyREU3MUFGRjFENDlDMkYwMDA5MDQwOTQgLyogYmxpbmtp
bmctZGl2Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYmxpbmtpbmctZGl2Lmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREZGN0I2QzFEQTQ4N0FGMDA4MTQ2
MTQgLyogU25hcHNob3RTdG9yZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFNuYXBzaG90U3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJF
MTMxQzE3MUQ4M0E5N0UwMDFCQTM2QyAvKiB3aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVk
aW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ3aWRlLWF1dG9wbGF5aW5nLXZp
ZGVvLXdpdGgtYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMTMz
QjRGMjFENDBBRjAwMEVEMUNCMiAvKiBVc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVc2VTZWxlY3Rpb25Bc0ZpbmRTdHJp
bmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFMTRBNTI4MUQzRkU4QjgwMDEw
RjM1QiAvKiBhdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAiYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxQjdBRkYxRDQxQTk1RjAwNzU1OEI0IC8qIGxhcmdl
LXZpZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAibGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJFMUI3QjAxMUQ0MUIxQjMwMDc1NThCNCAvKiBsYXJnZS12aWRlby1oaWRl
cy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gImxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUzNyw2ICsyNTM5LDcgQEAKIAkJCQk3
Q0NCOTkyMDFEM0I0MUY2MDAzOTIyRjYgLyogVXNlckluaXRpYXRlZEFjdGlvbkluTmF2aWdhdGlv
bkFjdGlvbi5tbSAqLywKIAkJCQkwN0VERUZBQzFFQjk0MDBDMDBENDMyOTIgLyogVXNlck1lZGlh
RGlzYWJsZWQubW0gKi8sCiAJCQkJMDdGNEU5MkQyMEFGNThEMzAwMkUzODAzIC8qIFVzZXJNZWRp
YVNpbXVsYXRlRmFpbGVkU2FuZGJveC5tbSAqLywKKwkJCQkyRTEzM0I0RjIxRDQwQUYwMDBFRDFD
QjIgLyogVXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tICovLAogCQkJCTkzRTk0M0YxMUNEM0U4
N0UwMEFDMDhDMiAvKiBWaWRlb0NvbnRyb2xzTWFuYWdlci5tbSAqLywKIAkJCQlDRDMwNjVERjIx
NjU2ODJFMDBFODk1REYgLyogVmlkZW9RdWFsaXR5RGlzcGxheUNvbXBvc2l0aW5nLm1tICovLAog
CQkJCTYzNTZGQjIxMUVDNEUwQkEwMDQ0QkYxOCAvKiBWaXNpYmxlQ29udGVudFJlY3QubW0gKi8s
CkBAIC00MTkxLDYgKzQxOTQsNyBAQAogCQkJCTA3OTlDMzQ5MUVCQTJEN0IwMDNCNzUzMiAvKiBV
c2VyTWVkaWFEaXNhYmxlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3RjRFOTJFMjBBRjU5RTIw
MDJFMzgwMyAvKiBVc2VyTWVkaWFTaW11bGF0ZUZhaWxlZFNhbmRib3gubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0YxODFBNDExQUU2MDA0NDdDNEMgLyogVXNlck1lc3NhZ2UuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMkVCMjQyQjgyMUQ0MTQwQjAwNTVDMUMwIC8qIFVzZVNlbGVjdGlvbkFz
RmluZFN0cmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMDNBMUQwQTYwMjcwMEZFQkNG
MyAvKiBVdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEM2MUQwQTY1
NEUwMEZFQkNGMyAvKiBWaWRlb0NvbnRyb2xzTWFuYWdlci5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUNEMzA2NUUwMjE2NTY4MkUwMEU4OTVERiAvKiBWaWRlb1F1YWxpdHlEaXNwbGF5Q29tcG9zaXRp
bmcubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvVXNlU2VsZWN0aW9uQXNGaW5kU3RyaW5nLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzk4Y2VjYTMwZTg2N2I5ZDVlN2U5Nzg0MGI5YjBjMzNlMzcwZWEwZAotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlU2Vs
ZWN0aW9uQXNGaW5kU3RyaW5nLm1tCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIlBsYXRmb3Jt
VXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3UHJpdmF0ZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1Qo
V2ViS2l0LCBVc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcpCit7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCI8Ym9keT5IZWxsbyA8c3BhbiBpZD0ndGV4dCc+d29ybGQ8L3NwYW4+PC9ib2R5PiJdOwor
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNlbGVjdEFs
bENoaWxkcmVuKHRleHQpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFt3ZWJWaWV3IF90
YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb246bmlsXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4
dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJ3b3JsZCIsIFdLV2Vi
Vmlldy5fc3RyaW5nRm9yRmluZCk7CisgICAgW1dLV2ViVmlldyBfc2V0U3RyaW5nRm9yRmluZDpA
InRlc3RpbmciXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoInRlc3RpbmciLCBbV0tXZWJWaWV3IF9z
dHJpbmdGb3JGaW5kXSk7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFt3ZWJWaWV3
IF9maW5kU3RyaW5nOkAiZm9vIiBvcHRpb25zOjAgbWF4Q291bnQ6MTBdOworICAgIEVYUEVDVF9X
S19TVFJFUSgiZm9vIiwgW1dLV2ViVmlldyBfc3RyaW5nRm9yRmluZF0pOworI2VuZGlmCit9CisK
K30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVE
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>