<?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>221868</bug_id>
          
          <creation_ts>2021-02-13 12:04:04 -0800</creation_ts>
          <short_desc>Reduce requirements for color types to only conversion to their reference color</short_desc>
          <delta_ts>2021-02-13 16:07:14 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>darin</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1728934</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-13 12:04:04 -0800</bug_when>
    <thetext>We currently require every new color type to define a conversion to/from xyz and then perhaps some more conversions to reference colors to avoid unnecessary trips through XYZ. For example, if every conversion from HSL to SRGB went through XYZ it would be very silly and inefficient, and the fact that we require the boiler plate for HSL -&gt; XYZ, even though it&apos;s always going to convert to SRGB first seems unfortunate. We can do better.

At first I thought we could model color conversion as DAG, with XYZ at the root, and each color type declaring a &quot;reference color&quot; that would get them closer to XYZ. So, HSL would have a &quot;reference color&quot; of sRGB, sRGB would have a &quot;reference color&quot; of linearSRGB, and linearSRGB would have a reference color XYZ. Then, as long as there was a defined conversion to/from the &quot;reference color&quot;, we could do a least common ancestor graph search between the two color types being converted between to find the optimal set of conversions needed.

That almost works, but the relationships between the four color types that make up each RGB type (bounded-gamma-encoded, bounded-linear-encoded, extended-gamma-encoded, extended-linear-encoded) make it not quite ideal, since a conversion from something like sRGB to extendedSRGB would wind up going through XYZ (since the reference color for sRGB is linearSRGB and the reference color for extendedSRGB is linearExtendedSRGB, and both either reference colors are XYZ). 

Ultimately, the depth of the type graph is not all that large (though the ascii art I made is quite big, though I did remove A98RGB and Rec2020 as they are same as DisplayP3 here):

                ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┼ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐
                 Matrix Conversions    ┌───────────┐│┌───────────┐
                │                      │ XYZ (D50) │││ XYZ (D65) │                                                      │
                                       └─────▲─────┘│└─────▲─────┘
                │                            │      │      │                                                            │
       ┌─────────────────────────┬───────────┘      │      └───────────┬───────────────────────────────┐
       │        │                │                  │                  │                               │                │
       │                         │                  │                  │                               │               
       │        │                │                  │                  │                               │                │
       │          ProPhotoRGB───────────────────┐   │   SRGB──────────────────────────┐ DisplayP3─────────────────────┐
       │        │ │┌────────┐ ┌────────────────┐│   │   │┌────────┐ ┌────────────────┐│ │┌────────┐ ┌────────────────┐│ │
       │          ││ Linear │ │ LinearExtended ││   │   ││ Linear │ │ LinearExtended ││ ││ Linear │ │ LinearExtended ││
       │        │ │└────────┘ └────────────────┘│   │   │└────────┘ └────────────────┘│ │└────────┘ └────────────────┘│ │
       │         ─│─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│─ ─│─ ─│─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│─│─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│─
 ┌───────────┐    │┌────────┐ ┌────────────────┐│   │   │┌────────┐ ┌────────────────┐│ │┌────────┐ ┌────────────────┐│
 │    Lab    │    ││ Gamma  │ │ GammaExtended  ││   │   ││ Gamma  │ │ GammaExtended  ││ ││ Gamma  │ │ GammaExtended  ││
 └─────▲─────┘    │└────────┘ └────────────────┘│   │   │└────▲───┘ └────────────────┘│ │└────────┘ └────────────────┘│
       │          └─────────────────────────────┘   │   └─────┼───────────────────────┘ └─────────────────────────────┘
       │                                            │      ┌──┴──────────┬─────────────┐
       │                                            │      │             │             │
 ┌───────────┐                                      │┌───────────┐ ┌───────────┐┌─────────────┐
 │    LCH    │                                      ││    HSL    │ │    HWB    ││SRGB&lt;uint8_t&gt;│
 └───────────┘                                      │└───────────┘ └───────────┘└─────────────┘

From this, it turns out you can handle all the cases in about 5 steps, with most peeling off a conversion from the front or back or the path and using recursion to continue on. It ultimately leaves a final step where only matrix conversions remain, which can potentially be further optimized in another patch to concatenate the matrices at compile time.

1. Handle the special case SRGBA&lt;uint8_t&gt; for Input and Output, and recursively call conversion.

2. Handle all color types that are not IsRGBType&lt;T&gt; or IsXYZA&lt;T&gt; for Input and Output. For all
   these other color types, we can uncondtionally convert them to their &quot;reference&quot; color, as
   either they have already been handled by a ColorConversion specialization or this will
   get us closer to the final conversion, and recursively call conversion.

3. Handle conversions within a RGBFamily (e.g. all have the same descriptor). This will conclude
   the conversion.

4. Handle any gamma conversions for the Input and Output, recursively call conversion

5. At this point, Input and Output are each either Linear-RGB types (of different familes) or XYZA
   and therefore all additional conversion can happen via matrix transformation. This will conclude
   the conversion.


With these steps, we group the color types into 3 distinct groups.

1. RGB types.

These inherit from the RGBType struct and are defined in terms of their xyzToLinear / linearToXYZ matrices, their transfer function, whether they are bounded or extended and their white point. New RGB color types can be added without any new conversion code being required, as long as they specify those properties.

2. The XYZ type.

This is the root type, and only varies on its white point. If other white points beside D50 and D65 are ever needed, we will need to extend the ChromaticAdapation specializations to also have conversion matrices between those.

3. All other types.

All other types (e.g. Lab, LCHA, HSLA, HWBA are the set currently) have their conversions defined in terms of single reference color and require explicit specialization of the ColorConversion struct to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728935</commentid>
    <comment_count>1</comment_count>
      <attachid>420222</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-13 12:11:05 -0800</bug_when>
    <thetext>Created attachment 420222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728936</commentid>
    <comment_count>2</comment_count>
      <attachid>420223</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-13 12:14:10 -0800</bug_when>
    <thetext>Created attachment 420223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728945</commentid>
    <comment_count>3</comment_count>
      <attachid>420223</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-13 13:26:12 -0800</bug_when>
    <thetext>Comment on attachment 420223
Patch

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

&gt; Source/WebCore/ChangeLog:30
&gt; +                        â â â â â â â â â â â â â â â â â â â¼ â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â

&quot;ASCII art&quot; that uses UTF-8, eh?

&gt; Source/WebCore/platform/graphics/ColorConversion.h:269
&gt; +        // results (due to floating point effects) so if this optimation is considered we should ensure we

Typo in &quot;optimization&quot; here.

&gt; Source/WebCore/platform/graphics/ColorMatrix.h:56
&gt; +template&lt;size_t Columns, size_t Rows&gt;

I prefer not to name counts as if they were objects. &quot;Columns&quot; sounds like it is a collection of columns. Maybe ColumnCount?

This comes up a lot in argument names, not just template arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728946</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-13 13:40:34 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 420223 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=420223&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:30
&gt; &gt; +                        â â â â â â â â â â â â â â â â â â â¼ â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â
&gt; 
&gt; &quot;ASCII art&quot; that uses UTF-8, eh?

Term of art ;).

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/ColorConversion.h:269
&gt; &gt; +        // results (due to floating point effects) so if this optimation is considered we should ensure we
&gt; 
&gt; Typo in &quot;optimization&quot; here.

Fixed.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/ColorMatrix.h:56
&gt; &gt; +template&lt;size_t Columns, size_t Rows&gt;
&gt; 
&gt; I prefer not to name counts as if they were objects. &quot;Columns&quot; sounds like
&gt; it is a collection of columns. Maybe ColumnCount?
&gt; 
&gt; This comes up a lot in argument names, not just template arguments.

I&apos;ll go with ColumnCount/RowCount.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728947</commentid>
    <comment_count>5</comment_count>
      <attachid>420226</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-13 13:41:42 -0800</bug_when>
    <thetext>Created attachment 420226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728948</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-13 14:29:38 -0800</bug_when>
    <thetext>Patch 420226 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728951</commentid>
    <comment_count>7</comment_count>
      <attachid>420227</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-13 15:26:56 -0800</bug_when>
    <thetext>Created attachment 420227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728957</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-13 16:06:03 -0800</bug_when>
    <thetext>Committed r272837: &lt;https://commits.webkit.org/r272837&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420227.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728958</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-13 16:07:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/74315634&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420222</attachid>
            <date>2021-02-13 12:11:05 -0800</date>
            <delta_ts>2021-02-13 12:14:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221868-20210213121104.patch</filename>
            <type>text/plain</type>
            <size>66580</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MjgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0OCBAQAorMjAyMS0wMi0xMyAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHJlcXVpcmVtZW50cyBm
b3IgY29sb3IgdHlwZXMgdG8gb25seSBjb252ZXJzaW9uIHRvIHRoZWlyIHJlZmVyZW5jZSBjb2xv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxODY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3Vy
cmVudGx5IHJlcXVpcmUgZXZlcnkgbmV3IGNvbG9yIHR5cGUgdG8gZGVmaW5lIGEgY29udmVyc2lv
biB0by9mcm9tIHh5eiBhbmQgdGhlbiBwZXJoYXBzCisgICAgICAgIHNvbWUgbW9yZSBjb252ZXJz
aW9ucyB0byByZWZlcmVuY2UgY29sb3JzIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHRyaXBzIHRocm91
Z2ggWFlaLiBGb3IgZXhhbXBsZSwKKyAgICAgICAgaWYgZXZlcnkgY29udmVyc2lvbiBmcm9tIEhT
TCB0byBzUkdCIHdlbnQgdGhyb3VnaCBYWVogaXQgd291bGQgYmUgdmVyeSBzaWxseSBhbmQgaW5l
ZmZpY2llbnQsCisgICAgICAgIGFuZCB0aGUgZmFjdCB0aGF0IHdlIHJlcXVpcmUgdGhlIGJvaWxl
ciBwbGF0ZSBmb3IgSFNMIC0+IFhZWiwgZXZlbiB0aG91Z2ggaXQncyBhbHdheXMgZ29pbmcgdG8K
KyAgICAgICAgY29udmVydCB0byBTUkdCIGZpcnN0IHNlZW1zIHVuZm9ydHVuYXRlLiBXZSBjYW4g
ZG8gYmV0dGVyLgorCisgICAgICAgIEF0IGZpcnN0IEkgdGhvdWdodCB3ZSBjb3VsZCBtb2RlbCBj
b2xvciBjb252ZXJzaW9uIGFzIERBRywgd2l0aCBYWVogYXQgdGhlIHJvb3QsIGFuZCBlYWNoIGNv
bG9yCisgICAgICAgIHR5cGUgZGVjbGFyaW5nIGEgInJlZmVyZW5jZSBjb2xvciIgdGhhdCB3b3Vs
ZCBnZXQgdGhlbSBjbG9zZXIgdG8gWFlaLiBTbywgSFNMIHdvdWxkIGhhdmUgYQorICAgICAgICAi
cmVmZXJlbmNlIGNvbG9yIiBvZiBzUkdCLCBzUkdCIHdvdWxkIGhhdmUgYSAicmVmZXJlbmNlIGNv
bG9yIiBvZiBsaW5lYXJTUkdCLCBhbmQgbGluZWFyU1JHQiAKKyAgICAgICAgd291bGQgaGF2ZSBh
ICJyZWZlcmVuY2UgY29sb3IiIFhZWi4gVGhlbiwgYXMgbG9uZyBhcyB0aGVyZSB3YXMgYSBkZWZp
bmVkIGNvbnZlcnNpb24gdG8vZnJvbSB0aGUKKyAgICAgICAgInJlZmVyZW5jZSBjb2xvciIsIHdl
IGNvdWxkIGRvIGEgbGVhc3QgY29tbW9uIGFuY2VzdG9yIGdyYXBoIHNlYXJjaCBiZXR3ZWVuIHRo
ZSB0d28gY29sb3IgdHlwZXMKKyAgICAgICAgYmVpbmcgY29udmVydGVkIGJldHdlZW4gdG8gZmlu
ZCB0aGUgb3B0aW1hbCBzZXQgb2YgY29udmVyc2lvbnMgbmVlZGVkLgorCisgICAgICAgIFRoYXQg
YWxtb3N0IHdvcmtzLCBidXQgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZm91ciBjb2xv
ciB0eXBlcyB0aGF0IG1ha2UgdXAgZWFjaCBSR0IgdHlwZQorICAgICAgICAoYm91bmRlZC1nYW1t
YS1lbmNvZGVkLCBib3VuZGVkLWxpbmVhci1lbmNvZGVkLCBleHRlbmRlZC1nYW1tYS1lbmNvZGVk
LCBleHRlbmRlZC1saW5lYXItZW5jb2RlZCkKKyAgICAgICAgbWFrZSBpdCBub3QgcXVpdGUgaWRl
YWwsIHNpbmNlIGEgY29udmVyc2lvbiBmcm9tIHNvbWV0aGluZyBsaWtlIHNSR0IgdG8gRXh0ZW5k
ZWRTUkdCIHdvdWxkIHdpbmQKKyAgICAgICAgdXAgZ29pbmcgdGhyb3VnaCBYWVogKHNpbmNlIHRo
ZSAicmVmZXJlbmNlIGNvbG9yIiBmb3Igc1JHQiBpcyBMaW5lYXJTUkdCIGFuZCB0aGUgInJlZmVy
ZW5jZSBjb2xvciIKKyAgICAgICAgZm9yIEV4dGVuZGVkU1JHQiBpcyBMaW5lYXJFeHRlbmRlZFNS
R0IsIGFuZCBib3RoIGVpdGhlciAicmVmZXJlbmNlIGNvbG9ycyIgYXJlIFhZWikuIAorCisgICAg
ICAgIFVsdGltYXRlbHksIHRoZSBkZXB0aCBvZiB0aGUgdHlwZSBncmFwaCBpcyBub3QgYWxsIHRo
YXQgbGFyZ2UgKHRob3VnaCB0aGUgQVNDSUkgYXJ0IEkgbWFkZSBpcworICAgICAgICBxdWl0ZSBi
aWcsIHRob3VnaCBJIGRpZCByZW1vdmUgQTk4UkdCIGFuZCBSZWMyMDIwIGFzIHRoZXkgYXJlIHNh
bWUgYXMgRGlzcGxheVAzIGhlcmUpOgorCisgICAgICAgICAgICAgICAgICAgICAgICDilIwg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilLwg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSQCisgICAgICAgICAgICAgICAgICAgICAg
ICAgTWF0cml4IENvbnZlcnNpb25zICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUkOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAg
ICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgIOKUgiBYWVogKEQ1MCkg
4pSC4pSC4pSCIFhZWiAoRDY1KSDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICDilIIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSY4pSC
4pSU4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSYCisgICAgICAgICAgICAgICAg
ICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAg4pSCICAgICAg
4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAg4pSCCisgICAgICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICDilIIgICAgICDilJTilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilJAKKyAgICAgICAgICAgICAgIOKUgiAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKU
giAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCCisgICAgICAgICAgICAgICDi
lIIgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAgICAg
ICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAg4pSCICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSC
ICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICDilIIKKyAgICAgICAgICAgICAgIOKU
giAgICAgICAgICBQcm9QaG90b1JHQuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAgIOKUgiAgIFNSR0LilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJAgRGlzcGxheVAz4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisgICAgICAgICAgICAgICDilIIgICAgICAgIOKUgiDi
lILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCICAg4pSCICAg4pSC4pSM4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUkOKUgiDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKU
ggorICAgICAgICAgICAgICAg4pSCICAgICAgICAgIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5l
YXJFeHRlbmRlZCDilILilIIgICDilIIgICDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0
ZW5kZWQg4pSC4pSCIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIK
KyAgICAgICAgICAgICAgIOKUgiAgICAgICAg4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJjilIIgICDilIIgICDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUguKU
lOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSCCisgICAgICAgICAgICAgICDilIIgICAg
ICAgICDilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSA4pSC4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIDilILilIDilILilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgAor
ICAgICAgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAgIOKUguKU
jOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJDilIIgICDilIIgICDilILilIzilIDilIDilIDilIDi
lIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIKKyAgICAg
ICAgIOKUgiAgICBMYWIgICAg4pSCICAgIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVu
ZGVkICDilILilIIgICDilIIgICDilILilIIgR2FtbWEgIOKUgiDilIIgR2FtbWFFeHRlbmRlZCAg
4pSC4pSCIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVuZGVkICDilILilIIKKyAgICAg
ICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKWsuKUgOKUgOKUgOKUgOKUgOKUmCAgICDilILilJTilIDi
lIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCICAg4pSCICAg4pSC4pSU4pSA4pSA4pSA4pSA4pay4pSA
4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCCisgICAgICAgICAg
ICAgICDilIIgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAg
4pSCICAg4pSU4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUmAorICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICDilIzilIDilIDilLTilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilJAKKyAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAg4pSCICAgICAg4pSCICAgICAgICAgICAgIOKUgiAgICAgICAgICAg
ICDilIIKKyAgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSC4pSM4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUkOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAg
ICAg4pSCICAgIExDSCAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IOKUguKUgiAgICBIU0wgICAg4pSCIOKUgiAgICBIV0IgICAg4pSC4pSCU1JHQjx1aW50OF90PuKU
ggorICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilILilJTilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY
4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCisKKyAgICAgICAg
RnJvbSB0aGlzLCBpdCB0dXJucyBvdXQgeW91IGNhbiBoYW5kbGUgYWxsIHRoZSBjYXNlcyBpbiBh
Ym91dCA1IHN0ZXBzLCB3aXRoIG1vc3QgcGVlbGluZyBvZmYgYQorICAgICAgICBjb252ZXJzaW9u
IGZyb20gdGhlIGZyb250IG9yIGJhY2sgb3IgdGhlIHBhdGggYW5kIHVzaW5nIHJlY3Vyc2lvbiB0
byBjb250aW51ZSBvbi4gSXQgdWx0aW1hdGVseSAKKyAgICAgICAgbGVhdmVzIGEgZmluYWwgc3Rl
cCB3aGVyZSBvbmx5IG1hdHJpeCBjb252ZXJzaW9ucyByZW1haW4sIHdoaWNoIGNhbiBwb3RlbnRp
YWxseSBiZSBmdXJ0aGVyCisgICAgICAgIG9wdGltaXplZCBpbiBhbm90aGVyIHBhdGNoIHRvIGNv
bmNhdGVuYXRlIHRoZSBtYXRyaWNlcyBhdCBjb21waWxlIHRpbWUuCisKKyAgICAgICAgMS4gSGFu
ZGxlIHRoZSBzcGVjaWFsIGNhc2UgU1JHQkE8dWludDhfdD4gZm9yIElucHV0IGFuZCBPdXRwdXQs
IGFuZCByZWN1cnNpdmVseSBjYWxsIGNvbnZlcnNpb24uCisKKyAgICAgICAgMi4gSGFuZGxlIGFs
bCBjb2xvciB0eXBlcyB0aGF0IGFyZSBub3QgSXNSR0JUeXBlPFQ+IG9yIElzWFlaQTxUPiBmb3Ig
SW5wdXQgYW5kIE91dHB1dC4gRm9yIGFsbAorICAgICAgICAgICB0aGVzZSBvdGhlciBjb2xvciB0
eXBlcywgd2UgY2FuIHVuY29uZHRpb25hbGx5IGNvbnZlcnQgdGhlbSB0byB0aGVpciAicmVmZXJl
bmNlIiBjb2xvciwgYXMKKyAgICAgICAgICAgZWl0aGVyIHRoZXkgaGF2ZSBhbHJlYWR5IGJlZW4g
aGFuZGxlZCBieSBhIENvbG9yQ29udmVyc2lvbiBzcGVjaWFsaXphdGlvbiBvciB0aGlzIHdpbGwK
KyAgICAgICAgICAgZ2V0IHVzIGNsb3NlciB0byB0aGUgZmluYWwgY29udmVyc2lvbiwgYW5kIHJl
Y3Vyc2l2ZWx5IGNhbGwgY29udmVyc2lvbi4KKworICAgICAgICAzLiBIYW5kbGUgY29udmVyc2lv
bnMgd2l0aGluIGEgUkdCRmFtaWx5IChlLmcuIGFsbCBoYXZlIHRoZSBzYW1lIGRlc2NyaXB0b3Ip
LiBUaGlzIHdpbGwgY29uY2x1ZGUKKyAgICAgICAgICAgdGhlIGNvbnZlcnNpb24uCisKKyAgICAg
ICAgNC4gSGFuZGxlIGFueSBnYW1tYSBjb252ZXJzaW9ucyBmb3IgdGhlIElucHV0IGFuZCBPdXRw
dXQsIHJlY3Vyc2l2ZWx5IGNhbGwgY29udmVyc2lvbgorCisgICAgICAgIDUuIEF0IHRoaXMgcG9p
bnQsIElucHV0IGFuZCBPdXRwdXQgYXJlIGVhY2ggZWl0aGVyIExpbmVhci1SR0IgdHlwZXMgKG9m
IGRpZmZlcmVudCBmYW1pbGVzKSBvciBYWVpBCisgICAgICAgICAgIGFuZCB0aGVyZWZvcmUgYWxs
IGFkZGl0aW9uYWwgY29udmVyc2lvbiBjYW4gaGFwcGVuIHZpYSBtYXRyaXggdHJhbnNmb3JtYXRp
b24uIFRoaXMgd2lsbCBjb25jbHVkZQorICAgICAgICAgICB0aGUgY29udmVyc2lvbi4KKworICAg
ICAgICBXaXRoIHRoZXNlIHN0ZXBzLCB3ZSBncm91cCB0aGUgY29sb3IgdHlwZXMgaW50byAzIGRp
c3RpbmN0IGdyb3Vwcy4KKworICAgICAgICAxLiBSR0IgdHlwZXMuCisKKyAgICAgICAgICAgIFRo
ZXNlIGluaGVyaXQgZnJvbSB0aGUgUkdCVHlwZSBzdHJ1Y3QgYW5kIGFyZSBkZWZpbmVkIGluIHRl
cm1zIG9mIHRoZWlyIHh5elRvTGluZWFyIC8gbGluZWFyVG9YWVogCisgICAgICAgICAgICBtYXRy
aWNlcywgdGhlaXIgdHJhbnNmZXIgZnVuY3Rpb24sIHdoZXRoZXIgdGhleSBhcmUgYm91bmRlZCBv
ciBleHRlbmRlZCBhbmQgdGhlaXIgd2hpdGUgcG9pbnQuIE5ldyAKKyAgICAgICAgICAgIFJHQiBj
b2xvciB0eXBlcyBjYW4gYmUgYWRkZWQgd2l0aG91dCBhbnkgbmV3IGNvbnZlcnNpb24gY29kZSBi
ZWluZyByZXF1aXJlZCwgYXMgbG9uZyBhcyB0aGV5IHNwZWNpZnkKKyAgICAgICAgICAgIHRob3Nl
IHByb3BlcnRpZXMuCisKKyAgICAgICAgMi4gVGhlIFhZWiB0eXBlLgorCisgICAgICAgICAgICBU
aGlzIGlzIHRoZSByb290IHR5cGUsIGFuZCBvbmx5IHZhcmllcyBvbiBpdHMgd2hpdGUgcG9pbnQu
IElmIG90aGVyIHdoaXRlIHBvaW50cyBiZXNpZGUgRDUwIGFuZCBENjUgCisgICAgICAgICAgICBh
cmUgZXZlciBuZWVkZWQsIHdlIHdpbGwgbmVlZCB0byBleHRlbmQgdGhlIENocm9tYXRpY0FkYXBh
dGlvbiBzcGVjaWFsaXphdGlvbnMgdG8gYWxzbyBoYXZlIGNvbnZlcnNpb24KKyAgICAgICAgICAg
IG1hdHJpY2VzIGJldHdlZW4gdGhvc2UuCisKKyAgICAgICAgMy4gQWxsIG90aGVyIHR5cGVzLgor
CisgICAgICAgICAgICBBbGwgb3RoZXIgdHlwZXMgKGUuZy4gTGFiLCBMQ0hBLCBIU0xBLCBIV0JB
IChhbmQgU1JHQkE8dWludDhfdD4sIGtpbmQgb2YsIGl0J3MgYSBzcGVjaWFsIGZsb3dlcikgYXJl
CisgICAgICAgICAgICB0aGUgc2V0IGN1cnJlbnRseSkgaGF2ZSB0aGVpciBjb252ZXJzaW9ucyBk
ZWZpbmVkIGluIHRlcm1zIG9mIHNpbmdsZSByZWZlcmVuY2UgY29sb3IgYW5kIHJlcXVpcmUKKyAg
ICAgICAgICAgIGV4cGxpY2l0IHNwZWNpYWxpemF0aW9uIG9mIHRoZSBDb2xvckNvbnZlcnNpb24g
c3RydWN0IHRvIHdvcmsuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZl
cnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGFiPGZsb2F0Pj46OmNvbnZlcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2hpdGVQb2ludDo6RDUwPj46OmNvbnZlcnQpOgorICAgICAgICAoKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldoaXRlUG9pbnQ6OkQ2NT4+Ojpjb252ZXJ0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvTGluZWFyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OnRvR2FtbWFFbmNvZGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkE5
OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxpbmVh
ckE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okxp
bmVhckRpc3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+Ojpjb252ZXJ0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYzIwMjA8ZmxvYXQ+Pjo6Y29udmVydCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJSZWMyMDIwPGZsb2F0Pj46OmNvbnZlcnQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGluZWFyU1JHQkE8ZmxvYXQ+Pjo6Y29udmVy
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjp4eXpUb0xpbmVhcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpsaW5lYXJUb1hZWik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpYWVpGb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8Zmxv
YXQ+Pj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPExpbmVh
clByb1Bob3RvUkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+Pjo6Y29udmVydCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj46OmNvbnZl
cnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+
Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8RXh0ZW5kZWRT
UkdCQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpG
b3I8SFNMQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpY
WVpGb3I8SFdCQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpYWVpGb3I8TENIQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6WFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPFNSR0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbG9yQ29udmVyc2lvbjo6Y29udmVydCk6CisgICAgICAgIChXZWJD
b3JlOjpDb2xvckNvbnZlcnNpb246OnRvTGluZWFyRW5jb2RlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvckNvbnZlcnNpb246OnRvR2FtbWFFbmNvZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bG9yQ29udmVyc2lvbjo6dG9FeHRlbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNvbnZl
cnNpb246OnRvQm91bmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNvbnZlcnNpb246Omhh
bmRsZVJHQkZhbWlseUNvbnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDb252ZXJz
aW9uOjpoYW5kbGVNYXRyaXhDb252ZXJzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvck1hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChXZWJDb3JlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5TWF0cmljZXNU
b0NvbG9yQ29tcG9uZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBl
cy5oOgorCiAyMDIxLTAyLTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXByb3ZlIGNvbXB1dGVkIHN0eWxlIGhhbmRsaW5nIGluIGRlZ2VuZXJhdGUgZ3JpZCBj
YXNlcywgc2l6ZXMgYW5kIGxlbmd0aHMgb2YgemVybwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCShyZXZpc2lvbiAy
NzI4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwyMDQgKzMwLDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0vLyBDaHJvbWF0aWMgQWRhcHRhdGlvbiBNYXRyaWNlcy4KLQotLy8gaHR0cDov
L3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCi1z
dGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ1MFRvRDY1TWF0cml4IHsKLSAgICAg
MC45NTU1NzY2ZiwgLTAuMDIzMDM5M2YsIDAuMDYzMTYzNmYsCi0gICAgLTAuMDI4Mjg5NWYsICAx
LjAwOTk0MTZmLCAwLjAyMTAwNzdmLAotICAgICAwLjAxMjI5ODJmLCAtMC4wMjA0ODMwZiwgMS4z
Mjk5MDk4ZgotfTsKLQotLy8gaHR0cDovL3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRt
bD9FcW5fQ2hyb21BZGFwdC5odG1sCi1zdGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+
IEQ2NVRvRDUwTWF0cml4IHsKLSAgICAgMS4wNDc4MTEyZiwgMC4wMjI4ODY2ZiwgLTAuMDUwMTI3
MGYsCi0gICAgIDAuMDI5NTQyNGYsIDAuOTkwNDg0NGYsIC0wLjAxNzA0OTFmLAotICAgIC0wLjAw
OTIzNDVmLCAwLjAxNTA0MzZmLCAgMC43NTIxMzE2ZgotfTsKLQotLy8gTUFSSzogQ2hyb21hdGlj
IEFkYXB0YXRpb24gY29udmVyc2lvbnMuCi0KLVhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4g
Q29sb3JDb252ZXJzaW9uPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4sIFhZWkE8ZmxvYXQs
IFdoaXRlUG9pbnQ6OkQ1MD4+Ojpjb252ZXJ0KGNvbnN0IFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6
OkQ1MD4mIGNvbG9yKQotewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZ0V4
Y2VwdEFscGhhPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4+KEQ1MFRvRDY1TWF0cml4LnRy
YW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOwotfQot
Ci1YWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+IENvbG9yQ29udmVyc2lvbjxYWVpBPGZsb2F0
LCBXaGl0ZVBvaW50OjpENTA+LCBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+Pjo6Y29udmVy
dChjb25zdCBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+JiBjb2xvcikKLXsKLSAgICByZXR1
cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdFeGNlcHRBbHBoYTxYWVpBPGZsb2F0LCBXaGl0
ZVBvaW50OjpENTA+PihENjVUb0Q1ME1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhh
c0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKLX0KLQotLy8gTUFSSzogR2FtbWEgY29udmVyc2lv
bnMuCi0KLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gc3RhdGljIGF1dG8gdG9MaW5lYXIo
Y29uc3QgQ29sb3JUeXBlJiBjb2xvcikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpMaW5lYXJDb3Vu
dGVycGFydAotewotICAgIGF1dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOwotICAgIHJl
dHVybiB7IENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9MaW5lYXIoYzEpLCBDb2xvclR5
cGU6OlRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFyKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1
bmN0aW9uOjp0b0xpbmVhcihjMyksIGFscGhhIH07Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIENv
bG9yVHlwZT4gc3RhdGljIGF1dG8gdG9HYW1tYUVuY29kZWQoY29uc3QgQ29sb3JUeXBlJiBjb2xv
cikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpHYW1tYUVuY29kZWRDb3VudGVycGFydAotewotICAg
IGF1dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOwotICAgIHJldHVybiB7IENvbG9yVHlw
ZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9HYW1tYUVuY29kZWQoYzEpLCBDb2xvclR5cGU6OlRyYW5z
ZmVyRnVuY3Rpb246OnRvR2FtbWFFbmNvZGVkKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0
aW9uOjp0b0dhbW1hRW5jb2RlZChjMyksIGFscGhhIH07Ci19Ci0KLS8vIEE5OFJHQiA8LT4gTGlu
ZWFyQTk4UkdCIGNvbnZlcnNpb25zLgotCi1MaW5lYXJBOThSR0I8ZmxvYXQ+IENvbG9yQ29udmVy
c2lvbjxMaW5lYXJBOThSR0I8ZmxvYXQ+LCBBOThSR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBB
OThSR0I8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9MaW5lYXIoY29sb3IpOwotfQot
Ci1BOThSR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+LCBMaW5lYXJBOThS
R0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJBOThSR0I8ZmxvYXQ+JiBjb2xvcikKLXsK
LSAgICByZXR1cm4gdG9HYW1tYUVuY29kZWQoY29sb3IpOwotfQotCi0vLyBEaXNwbGF5UDMgPC0+
IExpbmVhckRpc3BsYXlQMyBjb252ZXJzaW9ucy4KLQotTGluZWFyRGlzcGxheVAzPGZsb2F0PiBD
b2xvckNvbnZlcnNpb248TGluZWFyRGlzcGxheVAzPGZsb2F0PiwgRGlzcGxheVAzPGZsb2F0Pj46
OmNvbnZlcnQoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRv
TGluZWFyKGNvbG9yKTsKLX0KLQotRGlzcGxheVAzPGZsb2F0PiBDb2xvckNvbnZlcnNpb248RGlz
cGxheVAzPGZsb2F0PiwgTGluZWFyRGlzcGxheVAzPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgTGlu
ZWFyRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVk
KGNvbG9yKTsKLX0KLQotLy8gRXh0ZW5kZWRTUkdCQSA8LT4gTGluZWFyRXh0ZW5kZWRTUkdCQSBj
b252ZXJzaW9ucy4KLQotTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9u
PExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBFeHRlbmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZl
cnQoY29uc3QgRXh0ZW5kZWRTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiB0b0xp
bmVhcihjb2xvcik7Ci19Ci0KLUV4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxF
eHRlbmRlZFNSR0JBPGZsb2F0PiwgTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0
KGNvbnN0IExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4g
dG9HYW1tYUVuY29kZWQoY29sb3IpOwotfQotCi0vLyBQcm9QaG90b1JHQiA8LT4gTGluZWFyUHJv
UGhvdG9SR0IgY29udmVyc2lvbnMuCi0KLUxpbmVhclByb1Bob3RvUkdCPGZsb2F0PiBDb2xvckNv
bnZlcnNpb248TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+LCBQcm9QaG90b1JHQjxmbG9hdD4+Ojpj
b252ZXJ0KGNvbnN0IFByb1Bob3RvUkdCPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRv
TGluZWFyKGNvbG9yKTsKLX0KLQotUHJvUGhvdG9SR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxQ
cm9QaG90b1JHQjxmbG9hdD4sIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQoY29u
c3QgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9HYW1t
YUVuY29kZWQoY29sb3IpOwotfQotCi0vLyBSZWMyMDIwIDwtPiBMaW5lYXJSZWMyMDIwIGNvbnZl
cnNpb25zLgotCi1MaW5lYXJSZWMyMDIwPGZsb2F0PiBDb2xvckNvbnZlcnNpb248TGluZWFyUmVj
MjAyMDxmbG9hdD4sIFJlYzIwMjA8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBSZWMyMDIwPGZsb2F0
PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRvTGluZWFyKGNvbG9yKTsKLX0KLQotUmVjMjAyMDxm
bG9hdD4gQ29sb3JDb252ZXJzaW9uPFJlYzIwMjA8ZmxvYXQ+LCBMaW5lYXJSZWMyMDIwPGZsb2F0
Pj46OmNvbnZlcnQoY29uc3QgTGluZWFyUmVjMjAyMDxmbG9hdD4mIGNvbG9yKQotewotICAgIHJl
dHVybiB0b0dhbW1hRW5jb2RlZChjb2xvcik7Ci19Ci0KLS8vIFNSR0JBIDwtPiBMaW5lYXJTUkdC
QSBjb252ZXJzaW9ucy4KLQotTGluZWFyU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5l
YXJTUkdCQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+
JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9MaW5lYXIoY29sb3IpOwotfQotCi1TUkdCQTxmbG9h
dD4gQ29sb3JDb252ZXJzaW9uPFNSR0JBPGZsb2F0PiwgTGluZWFyU1JHQkE8ZmxvYXQ+Pjo6Y29u
dmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiB0b0dh
bW1hRW5jb2RlZChjb2xvcik7Ci19Ci0KLS8vIE1BUks6IE1hdHJpeCBjb252ZXJzaW9ucyAodG8g
YW5kIGZyb20gWFlaIGZvciBhbGwgbGluZWFyIGNvbG9yIHR5cGVzKS4KLQotdGVtcGxhdGU8dHlw
ZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgYXV0byB4eXpUb0xpbmVhcihjb25zdCBYWVpGb3I8Q29s
b3JUeXBlPiYgY29sb3IpIC0+IENvbG9yVHlwZQotewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBv
bmVudHNDbGFtcGluZ0V4Y2VwdEFscGhhPENvbG9yVHlwZT4oQ29sb3JUeXBlOjp4eXpUb0xpbmVh
ci50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsK
LX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgYXV0byBsaW5lYXJUb1hZ
Wihjb25zdCBDb2xvclR5cGUmIGNvbG9yKSAtPiBYWVpGb3I8Q29sb3JUeXBlPgotewotICAgIHJl
dHVybiBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZ0V4Y2VwdEFscGhhPFhZWkZvcjxDb2xvclR5
cGU+PihDb2xvclR5cGU6OmxpbmVhclRvWFlaLnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGFz
Q29sb3JDb21wb25lbnRzKGNvbG9yKSkpOwotfQotCi0vLyAtIExpbmVhckE5OFJHQiBtYXRyaXgg
Y29udmVyc2lvbnMuCi0KLUxpbmVhckE5OFJHQjxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVh
ckE5OFJHQjxmbG9hdD4sIFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+Pj46OmNvbnZlcnQoY29u
c3QgWFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4geHl6
VG9MaW5lYXI8TGluZWFyQTk4UkdCPGZsb2F0Pj4oY29sb3IpOwotfQotCi1YWVpGb3I8TGluZWFy
QTk4UkdCPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+
PiwgTGluZWFyQTk4UkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgTGluZWFyQTk4UkdCPGZsb2F0
PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVhckE5OFJHQjxmbG9hdD4+
KGNvbG9yKTsKLX0KLQotLy8gLSBMaW5lYXJEaXNwbGF5UDMgbWF0cml4IGNvbnZlcnNpb25zLgot
Ci1MaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8
ZmxvYXQ+LCBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZ
WkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHh5elRv
TGluZWFyPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+KGNvbG9yKTsKLX0KLQotWFlaRm9yPExpbmVh
ckRpc3BsYXlQMzxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyRGlzcGxheVAz
PGZsb2F0Pj4sIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckRp
c3BsYXlQMzxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5lYXJE
aXNwbGF5UDM8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLS8vIC0gTGluZWFyRXh0ZW5kZWRTUkdCQSBt
YXRyaXggY29udmVyc2lvbnMuCi0KLUxpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29u
dmVyc2lvbjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0PiwgWFlaRm9yPExpbmVhckV4dGVuZGVk
U1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8
ZmxvYXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHh5elRvTGluZWFyPExpbmVhckV4dGVuZGVk
U1JHQkE8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLVhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZs
b2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4s
IExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJFeHRlbmRl
ZFNSR0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVhckV4
dGVuZGVkU1JHQkE8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLS8vIC0gTGluZWFyUHJvUGhvdG9SR0Ig
bWF0cml4IGNvbnZlcnNpb25zLgotCi1MaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4gQ29sb3JDb252
ZXJzaW9uPExpbmVhclByb1Bob3RvUkdCPGZsb2F0PiwgWFlaRm9yPExpbmVhclByb1Bob3RvUkdC
PGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+
JiBjb2xvcikKLXsKLSAgICByZXR1cm4geHl6VG9MaW5lYXI8TGluZWFyUHJvUGhvdG9SR0I8Zmxv
YXQ+Pihjb2xvcik7Ci19Ci0KLVhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+IENvbG9y
Q29udmVyc2lvbjxYWVpGb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiwgTGluZWFyUHJvUGhv
dG9SR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4mIGNv
bG9yKQotewotICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+
KGNvbG9yKTsKLX0KLQotLy8gLSBMaW5lYXJSZWMyMDIwIG1hdHJpeCBjb252ZXJzaW9ucy4KLQot
TGluZWFyUmVjMjAyMDxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhclJlYzIwMjA8ZmxvYXQ+
LCBYWVpGb3I8TGluZWFyUmVjMjAyMDxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8TGlu
ZWFyUmVjMjAyMDxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4geHl6VG9MaW5lYXI8TGlu
ZWFyUmVjMjAyMDxmbG9hdD4+KGNvbG9yKTsKLX0KLQotWFlaRm9yPExpbmVhclJlYzIwMjA8Zmxv
YXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+PiwgTGluZWFy
UmVjMjAyMDxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+JiBjb2xv
cikKLXsKLSAgICByZXR1cm4gbGluZWFyVG9YWVo8TGluZWFyUmVjMjAyMDxmbG9hdD4+KGNvbG9y
KTsKLX0KLQotLy8gLSBMaW5lYXJTUkdCQSBtYXRyaXggY29udmVyc2lvbnMuCi0KLUxpbmVhclNS
R0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248TGluZWFyU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8TGlu
ZWFyU1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0
Pj4mIGNvbG9yKQotewotICAgIHJldHVybiB4eXpUb0xpbmVhcjxMaW5lYXJTUkdCQTxmbG9hdD4+
KGNvbG9yKTsKLX0KLQotWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9u
PFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+LCBMaW5lYXJTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0
KGNvbnN0IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRv
WFlaPExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpOwotfQotCiAvLyBNQVJLOiBIU0wgY29udmVy
c2lvbnMuCiAKIHN0cnVjdCBIU0xIdWVDYWxjdWxhdGlvblJlc3VsdCB7CkBAIC0zODEsNyArMTgz
LDcgQEAgc3RhdGljIGNvbnN0ZXhwciBmbG9hdCBMQUJlID0gMjE2LjBmIC8gMgogc3RhdGljIGNv
bnN0ZXhwciBmbG9hdCBMQUJrID0gMjQzODkuMGYgLyAyNy4wZjsKIHN0YXRpYyBjb25zdGV4cHIg
ZmxvYXQgRDUwV2hpdGVWYWx1ZXNbXSA9IHsgMC45NjQyMmYsIDEuMGYsIDAuODI1MjFmIH07CiAK
LVhZWkZvcjxMYWI8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9yPExhYjxmbG9hdD4+LCBM
YWI8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK1hZWkE8ZmxvYXQs
IFdoaXRlUG9pbnQ6OkQ1MD4gQ29sb3JDb252ZXJzaW9uPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6
OkQ1MD4sIExhYjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQogewog
ICAgIGZsb2F0IGYxID0gKGNvbG9yLmxpZ2h0bmVzcyArIDE2LjBmKSAvIDExNi4wZjsKICAgICBm
bG9hdCBmMCA9IGYxICsgKGNvbG9yLmEgLyA1MDAuMGYpOwpAQCAtNDExLDcgKzIxMyw3IEBAIFhZ
WkZvcjxMYWI8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm8KICAgICByZXR1cm4geyB4LCB5
LCB6LCBjb2xvci5hbHBoYSB9OwogfQogCi1MYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8
ZmxvYXQ+LCBYWVpGb3I8TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMYWI8Zmxv
YXQ+PiYgY29sb3IpCitMYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8ZmxvYXQ+LCBYWVpB
PGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+Pjo6Y29udmVydChjb25zdCBYWVpBPGZsb2F0LCBXaGl0
ZVBvaW50OjpENTA+JiBjb2xvcikKIHsKICAgICBmbG9hdCB4ID0gY29sb3IueCAvIEQ1MFdoaXRl
VmFsdWVzWzBdOwogICAgIGZsb2F0IHkgPSBjb2xvci55IC8gRDUwV2hpdGVWYWx1ZXNbMV07CkBA
IC00NjEsMTE3ICsyNjMsNyBAQCBMYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8ZmxvYXQ+
LCBMCiAgICAgfTsKIH0KIAotLy8gTUFSSzogQ29tYmluYXRpb24gY29udmVyc2lvbnMgKGNvbnN0
cnVjdGVkIGZyb20gbW9yZSBiYXNpYyBjb252ZXJzaW9ucyBhYm92ZSkuCi0KLS8vIC0gQTk4UkdC
IGNvbWJpbmF0aW9uIGZ1bmN0aW9ucy4KLQotWFlaRm9yPEE5OFJHQjxmbG9hdD4+IENvbG9yQ29u
dmVyc2lvbjxYWVpGb3I8QTk4UkdCPGZsb2F0Pj4sIEE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNv
bnN0IEE5OFJHQjxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFla
Rm9yPEE5OFJHQjxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4oY29s
b3IpKTsKLX0KLQotQTk4UkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248QTk4UkdCPGZsb2F0Piwg
WFlaRm9yPEE5OFJHQjxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8QTk4UkdCPGZsb2F0
Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8QTk4UkdCPGZsb2F0Pj4oY29u
dmVydENvbG9yPExpbmVhckE5OFJHQjxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gRGlzcGxh
eVAzIGNvbWJpbmF0aW9uIGZ1bmN0aW9ucy4KLQotWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+IENv
bG9yQ29udmVyc2lvbjxYWVpGb3I8RGlzcGxheVAzPGZsb2F0Pj4sIERpc3BsYXlQMzxmbG9hdD4+
Ojpjb252ZXJ0KGNvbnN0IERpc3BsYXlQMzxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBj
b252ZXJ0Q29sb3I8WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8TGluZWFy
RGlzcGxheVAzPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotRGlzcGxheVAzPGZsb2F0PiBDb2xvckNv
bnZlcnNpb248RGlzcGxheVAzPGZsb2F0PiwgWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+Pjo6Y29u
dmVydChjb25zdCBYWVpGb3I8RGlzcGxheVAzPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVy
biBjb252ZXJ0Q29sb3I8RGlzcGxheVAzPGZsb2F0Pj4oY29udmVydENvbG9yPExpbmVhckRpc3Bs
YXlQMzxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gRXh0ZW5kZWRTUkdCIGNvbWJpbmF0aW9u
IGZ1bmN0aW9ucy4KLQotWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNp
b248WFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiwgRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpj
b252ZXJ0KGNvbnN0IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4g
Y29udmVydENvbG9yPFhZWkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4+KGNvbnZlcnRDb2xvcjxM
aW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotRXh0ZW5kZWRTUkdCQTxm
bG9hdD4gQ29sb3JDb252ZXJzaW9uPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8RXh0ZW5k
ZWRTUkdCQTxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8RXh0ZW5kZWRTUkdCQTxmbG9h
dD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gY29udmVydENvbG9yPEV4dGVuZGVkU1JHQkE8Zmxv
YXQ+Pihjb252ZXJ0Q29sb3I8TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci19
Ci0KLS8vIC0gSFNMQSBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxIU0xBPGZsb2F0
Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxIU0xBPGZsb2F0Pj4sIEhTTEE8ZmxvYXQ+Pjo6Y29u
dmVydChjb25zdCBIU0xBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xv
cjxYWVpGb3I8SFNMQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+Pihjb2xvcikp
OwotfQotCi1IU0xBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248SFNMQTxmbG9hdD4sIFhZWkZvcjxI
U0xBPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxIU0xBPGZsb2F0Pj4mIGNvbG9yKQot
ewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8SFNMQTxmbG9hdD4+KGNvbnZlcnRDb2xvcjxTUkdC
QTxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gSFdCQSBjb21iaW5hdGlvbiBmdW5jdGlvbnMu
Ci0KLVhZWkZvcjxIV0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxIV0JBPGZsb2F0
Pj4sIEhXQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBIV0JBPGZsb2F0PiYgY29sb3IpCi17Ci0g
ICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8SFdCQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8
U1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwotfQotCi1IV0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248
SFdCQTxmbG9hdD4sIFhZWkZvcjxIV0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxI
V0JBPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8SFdCQTxmbG9h
dD4+KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gTENIQSBj
b21iaW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxMQ0hBPGZsb2F0Pj4gQ29sb3JDb252ZXJz
aW9uPFhZWkZvcjxMQ0hBPGZsb2F0Pj4sIExDSEE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMQ0hB
PGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8TENIQTxm
bG9hdD4+Pihjb252ZXJ0Q29sb3I8TGFiPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotTENIQTxmbG9h
dD4gQ29sb3JDb252ZXJzaW9uPExDSEE8ZmxvYXQ+LCBYWVpGb3I8TENIQTxmbG9hdD4+Pjo6Y29u
dmVydChjb25zdCBYWVpGb3I8TENIQTxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gY29u
dmVydENvbG9yPExDSEE8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGFiPGZsb2F0Pj4oY29sb3IpKTsK
LX0KLQotLy8gLSBQcm9QaG90b1JHQiBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxQ
cm9QaG90b1JHQjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8UHJvUGhvdG9SR0I8Zmxv
YXQ+PiwgUHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBQcm9QaG90b1JHQjxmbG9h
dD4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9yPFByb1Bob3RvUkdC
PGZsb2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNvbG9yKSk7
Ci19Ci0KLVByb1Bob3RvUkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248UHJvUGhvdG9SR0I8Zmxv
YXQ+LCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPFBy
b1Bob3RvUkdCPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8UHJv
UGhvdG9SR0I8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Pihj
b2xvcikpOwotfQotCi0vLyAtIFJlYzIwMjAgY29tYmluYXRpb24gZnVuY3Rpb25zLgotCi1YWVpG
b3I8UmVjMjAyMDxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8UmVjMjAyMDxmbG9hdD4+
LCBSZWMyMDIwPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgUmVjMjAyMDxmbG9hdD4mIGNvbG9yKQot
ewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj4oY29udmVy
dENvbG9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+Pihjb2xvcikpOwotfQotCi1SZWMyMDIwPGZsb2F0
PiBDb2xvckNvbnZlcnNpb248UmVjMjAyMDxmbG9hdD4sIFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4+
Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJl
dHVybiBjb252ZXJ0Q29sb3I8UmVjMjAyMDxmbG9hdD4+KGNvbnZlcnRDb2xvcjxMaW5lYXJSZWMy
MDIwPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotLy8gLSBTUkdCIGNvbWJpbmF0aW9uIGZ1bmN0aW9u
cy4KLQotWFlaRm9yPFNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxTUkdCQTxm
bG9hdD4+LCBTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYgY29sb3Ip
Ci17Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8U1JHQkE8ZmxvYXQ+Pj4oY29udmVy
dENvbG9yPExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotU1JHQkE8ZmxvYXQ+IENv
bG9yQ29udmVyc2lvbjxTUkdCQTxmbG9hdD4sIFhZWkZvcjxTUkdCQTxmbG9hdD4+Pjo6Y29udmVy
dChjb25zdCBYWVpGb3I8U1JHQkE8ZmxvYXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZl
cnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbnZlcnRDb2xvcjxMaW5lYXJTUkdCQTxmbG9hdD4+KGNv
bG9yKSk7Ci19Ci0KLS8vIE1BUks6IFNSR0JBPHVpbnQ4X3Q+IGNvbXBvbmVudCB0eXBlIGNvbnZl
cnNpb25zLgorLy8gTUFSSzogU1JHQkE8dWludDhfdD4gY29udmVyc2lvbnMuCiAKIFNSR0JBPGZs
b2F0PiBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBTUkdCQTx1aW50OF90Pj46OmNvbnZl
cnQoY29uc3QgU1JHQkE8dWludDhfdD4mIGNvbG9yKQogewpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgJKHJldmlzaW9uIDI3
MjgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lv
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyOTkgKzI2LDkyIEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIkNvbG9yVHlwZXMuaCIKLSNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEFsbCBjb2xvciB0eXBlcyBtdXN0IGF0IGxlYXN0IGlt
cGxlbWVudCB0aGUgZm9sbG93aW5nIGNvbnZlcnNpb25zIHRvIGFuZCBmcm9tIHRoZWlyIHJlZmVy
ZW5jZSBYWVogY29sb3Igc3BhY2UKKy8vIEFsbCBjb2xvciB0eXBlcywgb3RoZXIgdGhhbiBYWVpB
IG9yIHRob3NlIGluaGVyaXRpbmcgZnJvbSBSR0JUeXBlLCBtdXN0IGltcGxlbWVudAorLy8gdGhl
IGZvbGxvd2luZyBjb252ZXJzaW9ucyB0byBhbmQgZnJvbSB0aGVpciAiUmVmZXJlbmNlIiBjb2xv
ci4KIC8vCi0vLyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPGBD
b2xvclR5cGVgPGZsb2F0Pj4sIGBDb2xvclR5cGVgPGZsb2F0Pj4gewotLy8gICAgICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8YENvbG9yVHlwZWA8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0
IGBDb2xvclR5cGVgPGZsb2F0PiYpOworLy8gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPGBDb2xvclR5cGVgPGZsb2F0Pjo6UmVmZXJlbmNlLCBgQ29sb3JUeXBlYDxmbG9hdD4+
IHsKKy8vICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYENvbG9yVHlwZWA8ZmxvYXQ+OjpS
ZWZlcmVuY2UgY29udmVydChjb25zdCBgQ29sb3JUeXBlYDxmbG9hdD4mKTsKIC8vICAgIH07CiAv
LyAgICAKLS8vICAgIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxgQ29sb3JUeXBl
YDxmbG9hdD4sIFhZWkZvcjxgQ29sb3JUeXBlYDxmbG9hdD4+PiB7Ci0vLyAgICAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIGBDb2xvclR5cGVgPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxg
Q29sb3JUeXBlYDxmbG9hdD4+Jik7CisvLyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZl
cnNpb248YENvbG9yVHlwZWA8ZmxvYXQ+LCBgQ29sb3JUeXBlYDxmbG9hdD46OlJlZmVyZW5jZT4g
eworLy8gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBgQ29sb3JUeXBlYDxmbG9hdD4gY29u
dmVydChjb25zdCBgQ29sb3JUeXBlYDxmbG9hdD46OlJlZmVyZW5jZSYpOwogLy8gICAgfTsKIC8v
Ci0vLyBBbnkgYWRkaXRpb25hbCBjb252ZXJzaW9ucyBjYW4gYmUgdGhvdWdodCBvZiBhcyBvcHRp
bWl6YXRpb25zLCBzaG9ydGN1dHRpbmcgdW5uZWNlc3Nhcnkgc3RlcHMsIHRob3VnaAotLy8gc29t
ZSBtYXkgYmUgaW50ZWdyYWwgdG8gdGhlIGJhc2UgY29udmVyc2lvbi4KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgQ29sb3JUeXBlPiB1c2luZyBYWVpGb3IgPSBYWVpBPHR5cGVuYW1lIENvbG9yVHlwZTo6
Q29tcG9uZW50VHlwZSwgQ29sb3JUeXBlOjp3aGl0ZVBvaW50PjsKLQotdGVtcGxhdGU8dHlwZW5h
bWUgT3V0cHV0LCB0eXBlbmFtZSBJbnB1dD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjsKK3RlbXBs
YXRlPHR5cGVuYW1lIE91dHB1dCwgdHlwZW5hbWUgSW5wdXQsIHR5cGVuYW1lPXZvaWQ+IHN0cnVj
dCBDb2xvckNvbnZlcnNpb247CiAKIHRlbXBsYXRlPHR5cGVuYW1lIE91dHB1dCwgdHlwZW5hbWUg
SW5wdXQ+IGlubGluZSBPdXRwdXQgY29udmVydENvbG9yKGNvbnN0IElucHV0JiBjb2xvcikKIHsK
ICAgICByZXR1cm4gQ29sb3JDb252ZXJzaW9uPE91dHB1dCwgSW5wdXQ+Ojpjb252ZXJ0KGNvbG9y
KTsKIH0KIAotLy8gQTk4UkdCCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFla
Rm9yPEE5OFJHQjxmbG9hdD4+LCBBOThSR0I8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFhZWkZvcjxBOThSR0I8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IEE5OFJHQjxmbG9hdD4m
KTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+
LCBYWVpGb3I8QTk4UkdCPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQTk4
UkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxBOThSR0I8ZmxvYXQ+PiYpOwotfTsKLQot
Ly8gQWRkaXRpb25zCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyQTk4
UkdCPGZsb2F0PiwgQTk4UkdCPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBM
aW5lYXJBOThSR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgQTk4UkdCPGZsb2F0PiYpOwotfTsKLQot
Ci0vLyBEaXNwbGF5UDMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8
RGlzcGxheVAzPGZsb2F0Pj4sIERpc3BsYXlQMzxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+IGNvbnZlcnQoY29uc3QgRGlzcGxheVAz
PGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPERpc3Bs
YXlQMzxmbG9hdD4sIFhZWkZvcjxEaXNwbGF5UDM8ZmxvYXQ+Pj4gewotICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBEaXNwbGF5UDM8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPERpc3BsYXlQ
MzxmbG9hdD4+Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9y
Q29udmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+LCBEaXNwbGF5UDM8ZmxvYXQ+PiB7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhckRpc3BsYXlQMzxmbG9hdD4gY29udmVydChj
b25zdCBEaXNwbGF5UDM8ZmxvYXQ+Jik7Ci19OwotCi0KLS8vIEV4dGVuZGVkU1JHQkEKLXRlbXBs
YXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8RXh0ZW5kZWRTUkdCQTxmbG9hdD4+
LCBFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpG
b3I8RXh0ZW5kZWRTUkdCQTxmbG9hdD4+IGNvbnZlcnQoY29uc3QgRXh0ZW5kZWRTUkdCQTxmbG9h
dD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxFeHRlbmRlZFNS
R0JBPGZsb2F0PiwgWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pj4gewotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBFeHRlbmRlZFNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxF
eHRlbmRlZFNSR0JBPGZsb2F0Pj4mKTsKLX07CiAKLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBz
dHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBFeHRlbmRl
ZFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMaW5lYXJFeHRlbmRl
ZFNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+Jik7Ci19Owor
Ly8gTUFSSzogQ2hyb21hdGljIEFkYXB0YXRpb24gY29udmVyc2lvbnMuCiAKKy8vIGh0dHA6Ly93
d3cuYnJ1Y2VsaW5kYmxvb20uY29tL2luZGV4Lmh0bWw/RXFuX0Nocm9tQWRhcHQuaHRtbAordGVt
cGxhdGU8V2hpdGVQb2ludCBGcm9tLCBXaGl0ZVBvaW50IFRvPiBzdHJ1Y3QgQ2hyb21hdGljQWRh
cGF0aW9uOwogCi0vLyBIU0xBCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFla
Rm9yPEhTTEE8ZmxvYXQ+PiwgSFNMQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgWFlaRm9yPEhTTEE8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IEhTTEE8ZmxvYXQ+Jik7Cit0ZW1w
bGF0ZTw+IHN0cnVjdCBDaHJvbWF0aWNBZGFwYXRpb248V2hpdGVQb2ludDo6RDY1LCBXaGl0ZVBv
aW50OjpENTA+IHsKKyAgICBzdGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IG1hdHJp
eCB7CisgICAgICAgICAxLjA0NzgxMTJmLCAwLjAyMjg4NjZmLCAtMC4wNTAxMjcwZiwKKyAgICAg
ICAgIDAuMDI5NTQyNGYsIDAuOTkwNDg0NGYsIC0wLjAxNzA0OTFmLAorICAgICAgICAtMC4wMDky
MzQ1ZiwgMC4wMTUwNDM2ZiwgIDAuNzUyMTMxNmYKKyAgICB9OwogfTsKIAotdGVtcGxhdGU8PiBz
dHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhTTEE8ZmxvYXQ+LCBYWVpGb3I8SFNMQTxmbG9hdD4+PiB7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhTTEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFla
Rm9yPEhTTEE8ZmxvYXQ+PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ2hyb21hdGljQWRhcGF0aW9u
PFdoaXRlUG9pbnQ6OkQ1MCwgV2hpdGVQb2ludDo6RDY1PiB7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBDb2xvck1hdHJpeDwzLCAzPiBtYXRyaXggeworICAgICAgICAgMC45NTU1NzY2ZiwgLTAuMDIz
MDM5M2YsIDAuMDYzMTYzNmYsCisgICAgICAgIC0wLjAyODI4OTVmLCAgMS4wMDk5NDE2ZiwgMC4w
MjEwMDc3ZiwKKyAgICAgICAgIDAuMDEyMjk4MmYsIC0wLjAyMDQ4MzBmLCAxLjMyOTkwOThmCisg
ICAgfTsKIH07CiAKLS8vIEFkZGl0aW9ucworLy8gTUFSSzogSFNMQQogdGVtcGxhdGU8PiBzdHJ1
Y3QgQ29sb3JDb252ZXJzaW9uPFNSR0JBPGZsb2F0PiwgSFNMQTxmbG9hdD4+IHsKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgU1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgSFNMQTxmbG9hdD4m
KTsKIH07Ci0KLQotLy8gSFdCQQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZ
WkZvcjxIV0JBPGZsb2F0Pj4sIEhXQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFhZWkZvcjxIV0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBIV0JBPGZsb2F0PiYpOwotfTsK
LQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhXQkE8ZmxvYXQ+LCBYWVpGb3I8
SFdCQTxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhXQkE8ZmxvYXQ+IGNv
bnZlcnQoY29uc3QgWFlaRm9yPEhXQkE8ZmxvYXQ+PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29s
b3JDb252ZXJzaW9uPEhTTEE8ZmxvYXQ+LCBTUkdCQTxmbG9hdD4+IHsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgSFNMQTxmbG9hdD4gY29udmVydChjb25zdCBTUkdCQTxmbG9hdD4mKTsKIH07
CiAKLS8vIEFkZGl0aW9ucworLy8gTUFSSzogSFdCQQogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uPFNSR0JBPGZsb2F0PiwgSFdCQTxmbG9hdD4+IHsKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgU1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgSFdCQTxmbG9hdD4mKTsKIH07Ci0K
LQotLy8gTENIQQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMQ0hB
PGZsb2F0Pj4sIExDSEE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZv
cjxMQ0hBPGZsb2F0Pj4gY29udmVydChjb25zdCBMQ0hBPGZsb2F0PiYpOwotfTsKLQotdGVtcGxh
dGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExDSEE8ZmxvYXQ+LCBYWVpGb3I8TENIQTxmbG9h
dD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExDSEE8ZmxvYXQ+IGNvbnZlcnQoY29u
c3QgWFlaRm9yPExDSEE8ZmxvYXQ+PiYpOwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPEhXQkE8ZmxvYXQ+LCBTUkdCQTxmbG9hdD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgSFdCQTxmbG9hdD4gY29udmVydChjb25zdCBTUkdCQTxmbG9hdD4mKTsKIH07CiAKLS8vIEFk
ZGl0aW9ucworLy8gTUFSSzogTENIQQogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PExhYjxmbG9hdD4sIExDSEE8ZmxvYXQ+PiB7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExh
YjxmbG9hdD4gY29udmVydChjb25zdCBMQ0hBPGZsb2F0PiYpOwogfTsKLQotCi0vLyBMYWIKLXRl
bXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGFiPGZsb2F0Pj4sIExhYjxm
bG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9yPExhYjxmbG9hdD4+IGNv
bnZlcnQoY29uc3QgTGFiPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uPExhYjxmbG9hdD4sIFhZWkZvcjxMYWI8ZmxvYXQ+Pj4gewotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBMYWI8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExhYjxmbG9hdD4+
Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lv
bjxMQ0hBPGZsb2F0PiwgTGFiPGZsb2F0Pj4gewogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBM
Q0hBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IExhYjxmbG9hdD4mKTsKIH07CiAKLQotLy8gTGluZWFy
QTk4UkdCCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPExpbmVhckE5
OFJHQjxmbG9hdD4+LCBMaW5lYXJBOThSR0I8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExpbmVhckE5
OFJHQjxmbG9hdD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxM
aW5lYXJBOThSR0I8ZmxvYXQ+LCBYWVpGb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4+IHsKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyQTk4UkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZ
WkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+PiYpOwotfTsKLQotLy8gQWRkaXRpb25zCi10ZW1wbGF0
ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248QTk4UkdCPGZsb2F0PiwgTGluZWFyQTk4UkdCPGZs
b2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBOThSR0I8ZmxvYXQ+IGNvbnZlcnQo
Y29uc3QgTGluZWFyQTk4UkdCPGZsb2F0PiYpOwotfTsKLQotCi0vLyBMaW5lYXJEaXNwbGF5UDMK
LXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyRGlzcGxheVAz
PGZsb2F0Pj4sIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgWFlaRm9yPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+IGNvbnZlcnQoY29uc3QgTGluZWFy
RGlzcGxheVAzPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPExpbmVhckRpc3BsYXlQMzxmbG9hdD4sIFhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+
Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IGNv
bnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+Jik7CisvLyBNQVJLOiBM
YWIKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpBPGZsb2F0LCBXaGl0ZVBv
aW50OjpENTA+LCBMYWI8ZmxvYXQ+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkE8
ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ1MD4gY29udmVydChjb25zdCBMYWI8ZmxvYXQ+Jik7CiB9Owot
Ci0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxEaXNwbGF5
UDM8ZmxvYXQ+LCBMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIERpc3BsYXlQMzxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJEaXNwbGF5UDM8Zmxv
YXQ+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGFiPGZsb2F0PiwgWFla
QTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBM
YWI8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPiYpOwog
fTsKIAotCi0vLyBMaW5lYXJFeHRlbmRlZFNSR0JBCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNv
bnZlcnNpb248WFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiwgTGluZWFyRXh0ZW5k
ZWRTUkdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9yPExpbmVh
ckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExpbmVhckV4dGVuZGVkU1JHQkE8
ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFy
RXh0ZW5kZWRTUkdCQTxmbG9hdD4sIFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4+
IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4g
Y29udmVydChjb25zdCBYWVpGb3I8TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Jik7Ci19Owot
Ci0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxFeHRlbmRl
ZFNSR0JBPGZsb2F0PiwgTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgRXh0ZW5kZWRTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJF
eHRlbmRlZFNSR0JBPGZsb2F0PiYpOwotfTsKLQotCi0vLyBMaW5lYXJQcm9QaG90b1JHQgotdGVt
cGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxm
bG9hdD4+LCBMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgWFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5l
YXJQcm9QaG90b1JHQjxmbG9hdD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29u
dmVyc2lvbjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4sIFhZWkZvcjxMaW5lYXJQcm9QaG90b1JH
QjxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhclByb1Bob3RvUkdC
PGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+Jik7
Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxQ
cm9QaG90b1JHQjxmbG9hdD4sIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4gewotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBQcm9QaG90b1JHQjxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJQ
cm9QaG90b1JHQjxmbG9hdD4mKTsKLX07Ci0KLQotLy8gTGluZWFyUmVjMjAyMAotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4sIExp
bmVhclJlYzIwMjA8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxM
aW5lYXJSZWMyMDIwPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJSZWMyMDIwPGZsb2F0PiYp
OwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhclJlYzIwMjA8
ZmxvYXQ+LCBYWVpGb3I8TGluZWFyUmVjMjAyMDxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIExpbmVhclJlYzIwMjA8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVh
clJlYzIwMjA8ZmxvYXQ+PiYpOwotfTsKLQotLy8gQWRkaXRpb25zCi10ZW1wbGF0ZTw+IHN0cnVj
dCBDb2xvckNvbnZlcnNpb248UmVjMjAyMDxmbG9hdD4sIExpbmVhclJlYzIwMjA8ZmxvYXQ+PiB7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlYzIwMjA8ZmxvYXQ+IGNvbnZlcnQoY29uc3Qg
TGluZWFyUmVjMjAyMDxmbG9hdD4mKTsKLX07Ci0KLQotLy8gTGluZWFyU1JHQkEKLXRlbXBsYXRl
PD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyU1JHQkE8ZmxvYXQ+PiwgTGlu
ZWFyU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxMaW5l
YXJTUkdCQTxmbG9hdD4+IGNvbnZlcnQoY29uc3QgTGluZWFyU1JHQkE8ZmxvYXQ+Jik7Ci19Owot
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyU1JHQkE8ZmxvYXQ+LCBY
WVpGb3I8TGluZWFyU1JHQkE8ZmxvYXQ+Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBM
aW5lYXJTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8TGluZWFyU1JHQkE8ZmxvYXQ+
PiYpOwotfTsKLQotLy8gQWRkaXRpb25zCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248U1JHQkE8ZmxvYXQ+LCBMaW5lYXJTUkdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgU1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgTGluZWFyU1JHQkE8ZmxvYXQ+Jik7
Ci19OwotCi0KLS8vIFByb1Bob3RvUkdCCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248WFlaRm9yPFByb1Bob3RvUkdCPGZsb2F0Pj4sIFByb1Bob3RvUkdCPGZsb2F0Pj4gewotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiBjb252ZXJ0
KGNvbnN0IFByb1Bob3RvUkdCPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29s
b3JDb252ZXJzaW9uPFByb1Bob3RvUkdCPGZsb2F0PiwgWFlaRm9yPFByb1Bob3RvUkdCPGZsb2F0
Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUHJvUGhvdG9SR0I8ZmxvYXQ+IGNvbnZl
cnQoY29uc3QgWFlaRm9yPFByb1Bob3RvUkdCPGZsb2F0Pj4mKTsKLX07Ci0KLS8vIEFkZGl0aW9u
cwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhclByb1Bob3RvUkdCPGZs
b2F0PiwgUHJvUGhvdG9SR0I8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExp
bmVhclByb1Bob3RvUkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFByb1Bob3RvUkdCPGZsb2F0PiYp
OwotfTsKLQotCi0vLyBSZWMyMDIwCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248
WFlaRm9yPFJlYzIwMjA8ZmxvYXQ+PiwgUmVjMjAyMDxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgWFlaRm9yPFJlYzIwMjA8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IFJlYzIwMjA8
ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248UmVjMjAy
MDxmbG9hdD4sIFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8UmVjMjAyMDxmbG9hdD4+
Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lv
bjxMaW5lYXJSZWMyMDIwPGZsb2F0PiwgUmVjMjAyMDxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgTGluZWFyUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25zdCBSZWMyMDIwPGZs
b2F0PiYpOwotfTsKLQotCi0vLyBTUkdCQQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPFhZWkZvcjxTUkdCQTxmbG9hdD4+LCBTUkdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgWFlaRm9yPFNSR0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBTUkdCQTxmbG9h
dD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxTUkdCQTxmbG9h
dD4sIFhZWkZvcjxTUkdCQTxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNS
R0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxTUkdCQTxmbG9hdD4+Jik7Ci19OwotCi0v
LyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJTUkdC
QTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMaW5l
YXJTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBTUkdCQTxmbG9hdD4mKTsKLX07Ci0KLXRlbXBs
YXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxIU0xBPGZsb2F0PiwgU1JHQkE8ZmxvYXQ+PiB7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhTTEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgU1JH
QkE8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248SFdC
QTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBIV0JB
PGZsb2F0PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYpOwotfTsKLQotLy8gU3BlY2lhbCBj
YXNlcyBmb3IgU1JHQkE8dWludDhfdD4uIE9ubHkgc1JHQiBzdXBwb3J0cyBub24tZmxvYXRpbmcg
cG9pbnQgY29tcG9uZW50IHR5cGVzLgorLy8gTUFSSzogU1JHQkE8dWludDhfdD4KKy8vIE9ubHkg
c1JHQiBzdXBwb3J0cyBub24tZmxvYXRpbmcgcG9pbnQgY29tcG9uZW50IHR5cGVzLgogdGVtcGxh
dGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFNSR0JBPGZsb2F0PiwgU1JHQkE8dWludDhfdD4+
IHsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3Qg
U1JHQkE8dWludDhfdD4mKTsKIH07Ci0KIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lv
bjxTUkdCQTx1aW50OF90PiwgU1JHQkE8ZmxvYXQ+PiB7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFNSR0JBPHVpbnQ4X3Q+IGNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+Jik7CiB9OwogCiAK
LS8vIFhZWkEgQ2hyb21hdGljIEFkYXB0YXRpb24gY29udmVyc2lvbnMuCi10ZW1wbGF0ZTw+IHN0
cnVjdCBDb2xvckNvbnZlcnNpb248WFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDY1PiwgWFlaQTxm
bG9hdCwgV2hpdGVQb2ludDo6RDUwPj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpB
PGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+IGNvbnZlcnQoY29uc3QgWFlaQTxmbG9hdCwgV2hpdGVQ
b2ludDo6RDUwPiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZ
WkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ1MD4sIFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4+
IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDUw
PiBjb252ZXJ0KGNvbnN0IFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4mKTsKLX07Ci0KLQog
Ly8gSWRlbnRpdHkgY29udmVyc2lvbi4KIAogdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBz
dHJ1Y3QgQ29sb3JDb252ZXJzaW9uPENvbG9yVHlwZSwgQ29sb3JUeXBlPiB7CkBAIC0zMjgsNTYg
KzEyMSwxODAgQEAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBzdHJ1Y3QgQ29sbwogICAg
IH0KIH07CiAKLS8vIEZhbGxiYWNrIGNvbnZlcnNpb24uCiAKLS8vIEFsbCB0eXBlcyBhcmUgcmVx
dWlyZWQgdG8gaGF2ZSBhIGNvbnZlcnNpb24gdG8gdGhlaXIgcmVmZXJlbmNlIFhZWiBzcGFjZSwg
c28gdGhpcyBpcyBndWFyYW50ZWVkCi0vLyB0byB3b3JrIGlmIGFub3RoZXIgc3BlY2lhbGl6YXRp
b24gaXMgbm90IGFscmVhZHkgcHJvdmlkZWQuCi0KLS8vIEZJWE1FOiBSYXRoZXIgdGhhbiBhbHdh
eXMgY29udmVydGluZyB0aHJvdWdoIHJlZmVyZW5jZSBYWVogY29sb3Igc3BhY2UKLS8vIHdlIHNo
b3VsZCBpbnN0ZWFkIHN3aXRjaCB0byBjb21wdXRpbmcgdGhlIGxlYXN0IGNvbW1vbiByZWZlcmVu
Y2UgYW5jZXN0b3IKLS8vIHR5cGUgd2hlcmUgZWFjaCBjb2xvciB0eXBlIGRlZmluZXMgaXRzIHJl
ZmVyZW5jZSB0eXBlIGFzIHRoZSBjb2xvciBpdCBuZWVkcwotLy8gdG8gZ2V0IG9uZSBzdGVwIGNs
b3NlciB0byB0aGUgcmVmZXJlbmNlIFhZWiBjb2xvciBzcGFjZS4gRm9yIGluc3RhbmNlLAotLy8g
dGhlIHJlZmVyZW5jZSB0eXBlIG9mIFNSR0JBIGlzIExpbmVhclNSR0JBLCBhbmQgdGhlIHJlZmVy
ZW5jZSB0eXBlIG9mIExDSEEKLS8vIGlzIExhYi4gVG9nZXRoZXIsIHRoZSBjb2xvciB0eXBlcyBt
YWtlIGEgdHJlZSB3aXRoIFhZWiBhdCB0aGUgcm9vdC4gVGhlCi0vLyBjb252ZXJzaW9uIHNob3Vs
ZCBlbmQgdXAgbG9va2luZyBzb21ldGhpbmcgbGlrZToKLS8vCi0vLyAgIHVzaW5nIExDQSA9IExl
YXN0Q29tbW9uQW5jZXN0b3I8T3V0cHV0LCBJbnB1dD46OlR5cGU7Ci0vLyAgIHJldHVybiBjb252
ZXJ0Q29sb3I8T3V0cHV0Pihjb252ZXJ0Q29sb3I8TENBPihjb2xvcikpOwotLy8KLS8vIEFuIGV4
YW1wbGUgb2Ygd2hlcmUgdGhpcyB3b3VsZCBiZSBtb3JlIGVmZmljaWVudCBpcyB3aGVuIGNvbnZl
cnRpbmcgZnJvbQotLy8gSFNMQTxmbG9hdD4gdG8gSFdCQTxmbG9hdD4uIExDQSBmb3IgdGhpcyBw
YWlyIGlzIFNSR0JBPGZsb2F0PiBzbyBjb252ZXJzaW9uCi0vLyB0aHJvdWdoIFhZWiBpcyB3YXN0
ZWZ1bC4gVGhpcyBtb2RlbCB3b3VsZCBhbHNvIGFsbG93IHVzIHRvIHJlbW92ZSB0aGUKLS8vIGNv
bWJpbmF0aW9uIGNvbnZlcnNpb25zLCByZWR1Y2luZyB0aGUgbnVtYmVyIG9mIHRoaW5ncyBlYWNo
IG5ldyBjb2xvciB0eXBlCi0vLyByZXF1aXJlcy4KLS8vCi0vLyBGSVhNRTogUmVkdWNlIHRvdGFs
IG51bWJlciBvZiBtYXRyaXggdHJhbmZvcm1zIGJ5IGNvbmNhdGVuYXRpbmcgdGhlIG1hdHJpY2Vz
Ci0vLyBvZiBzZXF1ZW50aWFsIG1hdHJpeCB0cmFuc2Zvcm1zIGF0IGNvbXBpbGUgdGltZS4gVGFr
ZSB0aGUgY29udmVyc2lvbiBmcm9tCi0vLyBQcm9QaG90b1JHQjxmbG9hdD4gdG8gU1JHQkE8Zmxv
YXQ+IGFzIGFuIGV4YW1wbGU6Ci0vLwotLy8gICAxLiBQcm9QaG90b1JHQjxmbG9hdD4gLT4gTGlu
ZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+ICAgICAgICAgICAgICAgICAgKHRyYW5zZmVyIGZ1bmN0aW9u
IHRyYW5zZm9ybSwgbm90IG1hdHJpeCkKLS8vICAgMi4gTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+
IC0+IFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ1MD4gICAgICAgIE1BVFJJWCBUUkFOU0ZPUk0K
LS8vICAgMy4gWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPiAtPiBYWVpBPGZsb2F0LCBXaGl0
ZVBvaW50OjpENjU+ICAgIE1BVFJJWCBUUkFOU0ZPUk0KLS8vICAgNC4gWFlaQTxmbG9hdCwgV2hp
dGVQb2ludDo6RDY1PiAtPiBMaW5lYXJTUkdCQTxmbG9hdD4gICAgICAgICAgICAgIE1BVFJJWCBU
UkFOU0ZPUk0KLS8vICAgNS4gTGluZWFyU1JHQkE8ZmxvYXQ+IC0+IFNSR0JBPGZsb2F0PiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuc2ZlciBmdW5jdGlvbiB0cmFuc2Zvcm0sIG5v
dCBtYXRyaXgpCi0vLwotLy8gU3RlcHMgMiwgMywgYW5kIDQgY2FuIGJlIGNvbWJpbmVkIGludG8g
b25lIHNpbmdsZSBtYXRyaXggaWYgd2UgbGluZWFybHkKLS8vIGNvbmNhdGVudGVkIHRoZSB0aHJl
ZSBtYXRyaWNlcy4gVG8gZG8gdGhpcywgd2Ugd2lsbCBoYXZlIHRvIHRhZyB3aGljaCBjb252ZXJz
aW9ucwotLy8gYXJlIG1hdHJpeCBiYXNlZCwgZXhwb3NlIHRoZSBtYXRyaWNlcywgYWRkIHN1cHBv
cnQgZm9yIGNvbnN0ZXhwciBjb25jYXRlbnRpbmcKLS8vIG9mIENvbG9yTWF0cml4IGFuZCBmaW5k
IGEgd2F5IHRvIG1lcmdlIHRoZSBjb252ZXJzaW9ucy4KKy8vIE1haW4gY29udmVyc2lvbi4KIAot
dGVtcGxhdGU8dHlwZW5hbWUgT3V0cHV0LCB0eXBlbmFtZSBJbnB1dD4gc3RydWN0IENvbG9yQ29u
dmVyc2lvbiB7Ci0gICAgc3RhdGljIE91dHB1dCBjb252ZXJ0KGNvbnN0IElucHV0JiBjb2xvcikK
Ky8vICAgICAgICAgICAgICAgIOKUjCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUvCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUkAorLy8gICAgICAgICAgICAgICAgIE1hdHJpeCBDb252ZXJzaW9ucyAg
ICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilILilIzilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJAKKy8vICAgICAgICAgICAgICAgIOKUgiAgICAgICAg
ICAgICAgICAgICAgICDilIIgWFlaIChENTApIOKUguKUguKUgiBYWVogKEQ2NSkg4pSCICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKU
ggorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilJTilIDilIDilIDi
lIDilIDilrLilIDilIDilIDilIDilIDilJjilILilJTilIDilIDilIDilIDilIDilrLilIDilIDi
lIDilIDilIDilJgKKy8vICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICDilIIgICAgICDilIIgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCCisvLyAgICAgICDilIzilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAg
ICDilIIgICAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAKKy8v
ICAgICAgIOKUgiAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAg
IOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDi
lIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICDilIIKKy8vICAgICAgIOKUgiAgICAgICAgICAg
ICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICDi
lIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIKKy8vICAgICAg
IOKUgiAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAg
ICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIOKUgiAgICAgICAgICAgICAgICDilIIKKy8vICAgICAgIOKUgiAgICAgICAgICBQcm9QaG90
b1JHQuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUkCAgIOKUgiAgIFNSR0LilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgRGlzcGxheVAz4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSQIEE5OFJHQuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCBSZWMyMDIw4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisv
LyAgICAgICDilIIgICAgICAgIOKUgiDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg
4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSC
ICAg4pSCICAg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUgiDilILilIzilIDilIDi
lIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDi
lIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIg
4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUgiDilIIKKy8vICAgICAgIOKUgiAgICAg
ICAgICDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC4pSCICAg4pSCICAg
4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4dGVuZGVkIOKUguKUgiDilILilIIgTGluZWFy
IOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC4pSCIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5l
YXJFeHRlbmRlZCDilILilIIg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4dGVuZGVkIOKU
guKUggorLy8gICAgICAg4pSCICAgICAgICDilIIg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUmOKUgiAgIOKUgiAgIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSC4pSU
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDi
lIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSY4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSCCisvLyAgICAgICDi
lIIgICAgICAgICDilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSA4pSC4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIDilILilIDilILilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKU
guKUgOKUguKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSA4pSC4pSA4pSC4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIDilILilIAKKy8vIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUkCAgICDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCICAg4pSC
ICAg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUgiDilILilIzilIDilIDilIDilIDi
lIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIg4pSC4pSM
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUggorLy8g4pSCICAgIExhYiAgICDilIIgICAg4pSC
4pSCIEdhbW1hICDilIIg4pSCIEdhbW1hRXh0ZW5kZWQgIOKUguKUgiAgIOKUgiAgIOKUguKUgiBH
YW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVuZGVkICDilILilIIg4pSC4pSCIEdhbW1hICDilIIg4pSC
IEdhbW1hRXh0ZW5kZWQgIOKUguKUgiDilILilIIgR2FtbWEgIOKUgiDilIIgR2FtbWFFeHRlbmRl
ZCAg4pSC4pSCIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVuZGVkICDilILilIIKKy8v
IOKUlOKUgOKUgOKUgOKUgOKUgOKWsuKUgOKUgOKUgOKUgOKUgOKUmCAgICDilILilJTilIDilIDi
lIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSY4pSCICAg4pSCICAg4pSC4pSU4pSA4pSA4pSA4pSA4pay4pSA4pSA
4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUguKUlOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilJjilIIg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKU
lOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUggor
Ly8gICAgICAg4pSCICAgICAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
mCAgIOKUgiAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmAorLy8gICAgICAg4pSC
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICDilIzi
lIDilIDilLTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJAKKy8vICAgICAgIOKUgiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAg4pSCICAgICAgICAgICAgIOKUgiAg
ICAgICAgICAgICDilIIKKy8vIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
kCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSC4pSM4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUkOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorLy8g
4pSCICAgIExDSCAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKU
guKUgiAgICBIU0wgICAg4pSCIOKUgiAgICBIV0IgICAg4pSC4pSCU1JHQjx1aW50OF90PuKUggor
Ly8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSU4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCisKK3RlbXBsYXRlPHR5cGVuYW1l
IE91dHB1dCwgdHlwZW5hbWUgSW5wdXQsIHR5cGVuYW1lPiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHByIE91dHB1dCBjb252ZXJ0KGNvbnN0IElu
cHV0JiBjb2xvcikKICAgICB7Ci0gICAgICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19zYW1lX3Y8
SW5wdXQsIFNSR0JBPHVpbnQ4X3Q+PikKKyAgICAgICAgLy8gMS4gSGFuZGxlIHRoZSBzcGVjaWFs
IGNhc2UgU1JHQkE8dWludDhfdD4gZm9yIElucHV0IGFuZCBPdXRwdXQuCisgICAgICAgIGlmIGNv
bnN0ZXhwciAoc3RkOjppc19zYW1lX3Y8SW5wdXQsIFNSR0JBPHVpbnQ4X3Q+PiB8fCBzdGQ6Omlz
X3NhbWVfdjxPdXRwdXQsIFNSR0JBPHVpbnQ4X3Q+PikKICAgICAgICAgICAgIHJldHVybiBjb252
ZXJ0Q29sb3I8T3V0cHV0Pihjb252ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwotICAg
ICAgICBlbHNlIGlmIGNvbnN0ZXhwciAoc3RkOjppc19zYW1lX3Y8T3V0cHV0LCBTUkdCQTx1aW50
OF90Pj4pCi0gICAgICAgICAgICByZXR1cm4gY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+Pihj
b252ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgIGF1dG8geHl6MSA9IGNvbnZlcnRDb2xvcjxYWVpGb3I8SW5wdXQ+Pihjb2xvcik7Ci0g
ICAgICAgICAgICBhdXRvIHh5ejIgPSBjb252ZXJ0Q29sb3I8WFlaRm9yPE91dHB1dD4+KHh5ejEp
OwotICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxPdXRwdXQ+KHh5ejIpOworCisgICAg
ICAgIC8vIDIuIEhhbmRsZSBhbGwgY29sb3IgdHlwZXMgdGhhdCBhcmUgbm90IElzUkdCVHlwZTxU
PiBvciBJc1hZWkE8VD4gZm9yIElucHV0IGFuZCBPdXRwdXQuIEZvciBhbGwKKyAgICAgICAgLy8g
ICAgdGhlc2Ugb3RoZXIgY29sb3IgdHlwZXMsIHdlIGNhbiB1bmNvbmR0aW9uYWxseSBjb252ZXJ0
IHRoZW0gdG8gdGhlaXIgInJlZmVyZW5jZSIgY29sb3IsIGFzCisgICAgICAgIC8vICAgIGVpdGhl
ciB0aGV5IGhhdmUgYWxyZWFkeSBiZWVuIGhhbmRsZWQgYnkgYSBDb2xvckNvbnZlcnNpb24gc3Bl
Y2lhbGl6YXRpb24gb3IgdGhpcyB3aWxsCisgICAgICAgIC8vICAgIGdldCB1cyBjbG9zZXIgdG8g
dGhlIGZpbmFsIGNvbnZlcnNpb24uCisgICAgICAgIGVsc2UgaWYgY29uc3RleHByICghSXNSR0JU
eXBlPElucHV0PiAmJiAhSXNYWVpBPElucHV0PikKKyAgICAgICAgICAgIHJldHVybiBjb252ZXJ0
Q29sb3I8T3V0cHV0Pihjb252ZXJ0Q29sb3I8dHlwZW5hbWUgSW5wdXQ6OlJlZmVyZW5jZT4oY29s
b3IpKTsKKyAgICAgICAgZWxzZSBpZiBjb25zdGV4cHIgKCFJc1JHQlR5cGU8T3V0cHV0PiAmJiAh
SXNYWVpBPE91dHB1dD4pCisgICAgICAgICAgICByZXR1cm4gY29udmVydENvbG9yPE91dHB1dD4o
Y29udmVydENvbG9yPHR5cGVuYW1lIE91dHB1dDo6UmVmZXJlbmNlPihjb2xvcikpOworCisgICAg
ICAgIC8vIDMuIEhhbmRsZSBjb252ZXJzaW9ucyB3aXRoaW4gYSBSR0JGYW1pbHkgKGUuZy4gYWxs
IGhhdmUgdGhlIHNhbWUgZGVzY3JpcHRvcikuCisgICAgICAgIGVsc2UgaWYgY29uc3RleHByIChJ
c1NhbWVSR0JUeXBlRmFtaWx5PE91dHB1dCwgSW5wdXQ+KQorICAgICAgICAgICAgcmV0dXJuIGhh
bmRsZVJHQkZhbWlseUNvbnZlcnNpb24oY29sb3IpOworCisgICAgICAgIC8vIDQuIEhhbmRsZSBh
bnkgZ2FtbWEgY29udmVyc2lvbnMgZm9yIHRoZSBJbnB1dCBhbmQgT3V0cHV0LgorICAgICAgICBl
bHNlIGlmIGNvbnN0ZXhwciAoSXNSR0JHYW1tYUVuY29kZWRUeXBlPElucHV0PikKKyAgICAgICAg
ICAgIHJldHVybiBjb252ZXJ0Q29sb3I8T3V0cHV0Pihjb252ZXJ0Q29sb3I8dHlwZW5hbWUgSW5w
dXQ6OkxpbmVhckNvdW50ZXJwYXJ0Pihjb2xvcikpOworICAgICAgICBlbHNlIGlmIGNvbnN0ZXhw
ciAoSXNSR0JHYW1tYUVuY29kZWRUeXBlPE91dHB1dD4pCisgICAgICAgICAgICByZXR1cm4gY29u
dmVydENvbG9yPE91dHB1dD4oY29udmVydENvbG9yPHR5cGVuYW1lIE91dHB1dDo6TGluZWFyQ291
bnRlcnBhcnQ+KGNvbG9yKSk7CisKKyAgICAgICAgLy8gNS4gQXQgdGhpcyBwb2ludCwgSW5wdXQg
YW5kIE91dHB1dCBhcmUgZWFjaCBlaXRoZXIgTGluZWFyLVJHQiB0eXBlcyAob2YgZGlmZmVyZW50
IGZhbWlsZXMpIG9yIFhZWkEKKyAgICAgICAgLy8gICAgYW5kIHRoZXJlZm9yZSBhbGwgYWRkaXRp
b25hbCBjb252ZXJzaW9uIGNhbiBoYXBwZW4gdmlhIG1hdHJpeCB0cmFuc2Zvcm1hdGlvbi4KKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGhhbmRsZU1hdHJpeENvbnZlcnNpb24oY29s
b3IpOworICAgIH0KKworcHJpdmF0ZToKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+
IHN0YXRpYyBpbmxpbmUgY29uc3RleHByIGF1dG8gdG9MaW5lYXJFbmNvZGVkKGNvbnN0IENvbG9y
VHlwZSYgY29sb3IpIC0+IHR5cGVuYW1lIENvbG9yVHlwZTo6TGluZWFyQ291bnRlcnBhcnQKKyAg
ICB7CisgICAgICAgIGF1dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOworICAgICAgICBy
ZXR1cm4geyBDb2xvclR5cGU6OlRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFyKGMxKSwgQ29sb3JU
eXBlOjpUcmFuc2ZlckZ1bmN0aW9uOjp0b0xpbmVhcihjMiksIENvbG9yVHlwZTo6VHJhbnNmZXJG
dW5jdGlvbjo6dG9MaW5lYXIoYzMpLCBhbHBoYSB9OworICAgIH0KKworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIENvbG9yVHlwZT4gc3RhdGljIGlubGluZSBjb25zdGV4cHIgYXV0byB0b0dhbW1hRW5j
b2RlZChjb25zdCBDb2xvclR5cGUmIGNvbG9yKSAtPiB0eXBlbmFtZSBDb2xvclR5cGU6OkdhbW1h
RW5jb2RlZENvdW50ZXJwYXJ0CisgICAgeworICAgICAgICBhdXRvIFtjMSwgYzIsIGMzLCBhbHBo
YV0gPSBjb2xvcjsKKyAgICAgICAgcmV0dXJuIHsgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0aW9u
Ojp0b0dhbW1hRW5jb2RlZChjMSksIENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9HYW1t
YUVuY29kZWQoYzIpLCBDb2xvclR5cGU6OlRyYW5zZmVyRnVuY3Rpb246OnRvR2FtbWFFbmNvZGVk
KGMzKSwgYWxwaGEgfTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+
IHN0YXRpYyBpbmxpbmUgY29uc3RleHByIGF1dG8gdG9FeHRlbmRlZChjb25zdCBDb2xvclR5cGUm
IGNvbG9yKSAtPiB0eXBlbmFtZSBDb2xvclR5cGU6OkV4dGVuZGVkQ291bnRlcnBhcnQKKyAgICB7
CisgICAgICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVudHM8dHlwZW5hbWUgQ29sb3JUeXBlOjpF
eHRlbmRlZENvdW50ZXJwYXJ0Pihhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpOworICAgIH0KKwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gc3RhdGljIGlubGluZSBjb25zdGV4cHIg
YXV0byB0b0JvdW5kZWQoY29uc3QgQ29sb3JUeXBlJiBjb2xvcikgLT4gdHlwZW5hbWUgQ29sb3JU
eXBlOjpCb3VuZGVkQ291bnRlcnBhcnQKKyAgICB7CisgICAgICAgIHJldHVybiBtYWtlRnJvbUNv
bXBvbmVudHNDbGFtcGluZ0V4Y2VwdEFscGhhPHR5cGVuYW1lIENvbG9yVHlwZTo6Qm91bmRlZENv
dW50ZXJwYXJ0Pihhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpOworICAgIH0KKworICAgIHN0YXRp
YyBpbmxpbmUgY29uc3RleHByIE91dHB1dCBoYW5kbGVSR0JGYW1pbHlDb252ZXJzaW9uKGNvbnN0
IElucHV0JiBjb2xvcikKKyAgICB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoSXNTYW1lUkdCVHlw
ZUZhbWlseTxPdXRwdXQsIElucHV0Pik7CisKKyAgICAgICAgLy8gIFJHQiBGYW1pbHnilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAK
KyAgICAgICAgLy8gIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIKKyAgICAgICAg
Ly8gIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIKKyAgICAgICAg
Ly8gIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJjilIIKKyAgICAgICAgLy8gIOKUguKU
jOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJDilIIKKyAgICAgICAgLy8gIOKUguKUgiBHYW1tYSAg
4pSCIOKUgiBHYW1tYUV4dGVuZGVkICDilILilIIKKyAgICAgICAgLy8gIOKUguKUlOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilJjilIIKKyAgICAgICAgLy8gIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUmAorCisgICAgICAgIC8vIFRoaXMgaGFuZGxlcyBjb252ZXJzaW9ucyBiZXR3
ZWVuIGFueSB0d28gb2YgdGhlc2Ugd2l0aGluIHRoZSBzYW1lIGZhbWlseSwgc28gU1JHQkxpbmVh
ciAtPiBTUkdCLCBidXQgbm90CisgICAgICAgIC8vIFNSR0JMaW5lYXIgLT4gQTk4UkdCLgorCisg
ICAgICAgIGF1dG8gYm91bmRzQ29udmVyc2lvbiA9IFtdKGF1dG8gY29sb3IpIHsKKyAgICAgICAg
ICAgIGlmIGNvbnN0ZXhwciAoSXNSR0JFeHRlbmRlZFR5cGU8T3V0cHV0PiAmJiBJc1JHQkJvdW5k
ZWRUeXBlPElucHV0PikKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9FeHRlbmRlZChjb2xvcik7
CisgICAgICAgICAgICBlbHNlIGlmIGNvbnN0ZXhwciAoSXNSR0JCb3VuZGVkVHlwZTxPdXRwdXQ+
ICYmIElzUkdCRXh0ZW5kZWRUeXBlPElucHV0PikKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9C
b3VuZGVkKGNvbG9yKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4g
Y29sb3I7CisgICAgICAgIH07CisKKyAgICAgICAgYXV0byBnYW1tYUNvbnZlcnNpb24gPSBbXShh
dXRvIGNvbG9yKSB7CisgICAgICAgICAgICBpZiBjb25zdGV4cHIgKElzUkdCR2FtbWFFbmNvZGVk
VHlwZTxPdXRwdXQ+ICYmIElzUkdCTGluZWFyRW5jb2RlZFR5cGU8SW5wdXQ+KQorICAgICAgICAg
ICAgICAgIHJldHVybiB0b0dhbW1hRW5jb2RlZChjb2xvcik7CisgICAgICAgICAgICBlbHNlIGlm
IGNvbnN0ZXhwciAoSXNSR0JMaW5lYXJFbmNvZGVkVHlwZTxPdXRwdXQ+ICYmIElzUkdCR2FtbWFF
bmNvZGVkVHlwZTxJbnB1dD4pCisgICAgICAgICAgICAgICAgcmV0dXJuIHRvTGluZWFyRW5jb2Rl
ZChjb2xvcik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbG9y
OworICAgICAgICB9OworCisgICAgICAgIHJldHVybiBib3VuZHNDb252ZXJzaW9uKGdhbW1hQ29u
dmVyc2lvbihjb2xvcikpOworICAgIH0KKworICAgIHN0YXRpYyBpbmxpbmUgY29uc3RleHByIE91
dHB1dCBoYW5kbGVNYXRyaXhDb252ZXJzaW9uKGNvbnN0IElucHV0JiBjb2xvcikKKyAgICB7Cisg
ICAgICAgIHN0YXRpY19hc3NlcnQoSXNSR0JMaW5lYXJFbmNvZGVkVHlwZTxJbnB1dD4gfHwgSXNY
WVpBPElucHV0Pik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoSXNSR0JMaW5lYXJFbmNvZGVkVHlw
ZTxPdXRwdXQ+IHx8IElzWFlaQTxPdXRwdXQ+KTsKKworICAgICAgICAvLyAg4pSMIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pS8IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSQCisgICAgICAgIC8vICAg
TWF0cml4IENvbnZlcnNpb25zICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUkOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAgICAv
LyAg4pSCICAgICAgICAgICAgICAgICAgICAgIOKUgiBYWVogKEQ1MCkg4pSC4pSC4pSCIFhZWiAo
RDY1KSDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAg4pSCCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgIOKUlOKU
gOKUgOKUgOKUgOKUgOKWsuKUgOKUgOKUgOKUgOKUgOKUmOKUguKUlOKUgOKUgOKUgOKUgOKUgOKW
suKUgOKUgOKUgOKUgOKUgOKUmAorICAgICAgICAvLyAg4pSCICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIOKUgiAgICAgIOKUgiAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIKKyAgICAgICAgLy8gICAg
ICAgICAgICAgICAgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAg
ICAg4pSCICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisg
ICAgICAgIC8vICDilIIgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAg
ICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAg4pSCICAgICAgICAgICAgICAgIOKUggorICAgICAgICAvLyAgICAgICAgICAgICAgICAgICDi
lIIgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIKKyAgICAgICAgLy8gIOKUgiAgICAgICAg
ICAgICAgICDilIIgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICDilIIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAg
4pSCCisgICAgICAgIC8vICAgIFByb1Bob3RvUkdC4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAg4pSCICAgU1JHQuKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUkCBEaXNwbGF5UDPilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgQTk4UkdC4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ
IFJlYzIwMjDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilJAKKyAgICAgICAgLy8gIOKUgiDilILilIzilIDilIDilIDi
lIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSQ4pSCICAg4pSCICAg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
kOKUgiDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilJDilIIg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUgiDilIIK
KyAgICAgICAgLy8gICAg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4dGVuZGVkIOKUguKU
giAgIOKUgiAgIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIg4pSC
4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4dGVuZGVkIOKUguKUgiDilILilIIgTGluZWFyIOKU
giDilIIgTGluZWFyRXh0ZW5kZWQg4pSC4pSCIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJF
eHRlbmRlZCDilILilIIKKyAgICAgICAgLy8gIOKUgiDilILilJTilIDilIDilIDilIDilIDilIDi
lIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSY4pSCICAg4pSCICAg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUgiDilILi
lJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJjilIIg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUgiDilIIKKyAgICAgICAg
Ly8gICDilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSA4pSC4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIDilILilIDilILilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgOKU
guKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSA4pSC4pSA4pSC4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIDilILilIAKKworICAgICAgICAvLyBUaGlzIGhhbmRsZXMgY29udmVyc2lv
bnMgYmV0d2VlbiBsaW5lYXIgY29sb3IgdHlwZXMgdGhhdCBjYW4gYmUgY29udmVydGVkIHVzaW5n
IHByZS1kZWZpbmVkCisgICAgICAgIC8vIDN4MyBtYXRyaWNlcy4KKyAgICAgICAgCisgICAgICAg
IC8vIEZJWE1FOiBQcmUtY29tcHV0ZSAodXNpbmcgY29uc3RleHByKSB0aGUgY29uY2F0ZW5hdGlv
biBvZiB0aGUgbWF0cmljZXMgcHJpb3IgdG8gYXBwbHlpbmcgdGhlbQorICAgICAgICAvLyB0byBy
ZWR1Y2UgbnVtYmVyIG9mIG1hdHJpeCBtdWx0aXBsaWNhdGlvbnMgdG8gYSBtaW5pbXVtLiBUaGlz
IHdpbGwgbGlrZWx5IGdpdmUgc3VidGx5IGRpZmZlcmVudAorICAgICAgICAvLyByZXN1bHRzIChk
dWUgdG8gZmxvYXRpbmcgcG9pbnQgZWZmZWN0cykgc28gaWYgdGhpcyBvcHRpbWF0aW9uIGlzIGNv
bnNpZGVyZWQgd2Ugc2hvdWxkIGVuc3VyZSB3ZQorICAgICAgICAvLyBoYXZlIHN1ZmZpY2llbnQg
dGVzdGluZyBjb3ZlcmFnZSB0byBub3RpY2UgYW55IGFkdmVyc2UgZWZmZWN0cy4KKworICAgICAg
ICBhdXRvIGFwcGx5TWF0cmljZXMgPSBbXShjb25zdCBJbnB1dCYgY29sb3IsIGF1dG8uLi4gbWF0
cmljZXMpIHsKKyAgICAgICAgICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZ0V4
Y2VwdEFscGhhPE91dHB1dD4oYXBwbHlNYXRyaWNlc1RvQ29sb3JDb21wb25lbnRzKGFzQ29sb3JD
b21wb25lbnRzKGNvbG9yKSwgbWF0cmljZXMuLi4pKTsKKyAgICAgICAgfTsKKworICAgICAgICBp
ZiBjb25zdGV4cHIgKElucHV0Ojp3aGl0ZVBvaW50ID09IE91dHB1dDo6d2hpdGVQb2ludCkgewor
ICAgICAgICAgICAgaWYgY29uc3RleHByIChJc1hZWkE8SW5wdXQ+KSB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGFwcGx5TWF0cmljZXMoY29sb3IsIE91dHB1dDo6eHl6VG9MaW5lYXIpOworICAg
ICAgICAgICAgfSBlbHNlIGlmIGNvbnN0ZXhwciAoSXNYWVpBPE91dHB1dD4pIHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gYXBwbHlNYXRyaWNlcyhjb2xvciwgSW5wdXQ6OmxpbmVhclRvWFlaKTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5TWF0cmlj
ZXMoY29sb3IsIElucHV0OjpsaW5lYXJUb1hZWiwgT3V0cHV0Ojp4eXpUb0xpbmVhcik7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiBjb25zdGV4cHIgKElz
WFlaQTxJbnB1dD4gJiYgSXNYWVpBPE91dHB1dD4pIHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
YXBwbHlNYXRyaWNlcyhjb2xvciwgQ2hyb21hdGljQWRhcGF0aW9uPElucHV0Ojp3aGl0ZVBvaW50
LCBPdXRwdXQ6OndoaXRlUG9pbnQ+OjptYXRyaXgpOworICAgICAgICAgICAgfSBlbHNlIGlmIGNv
bnN0ZXhwciAoSXNYWVpBPElucHV0PikgeworICAgICAgICAgICAgICAgIHJldHVybiBhcHBseU1h
dHJpY2VzKGNvbG9yLCBDaHJvbWF0aWNBZGFwYXRpb248SW5wdXQ6OndoaXRlUG9pbnQsIE91dHB1
dDo6d2hpdGVQb2ludD46Om1hdHJpeCwgT3V0cHV0Ojp4eXpUb0xpbmVhcik7CisgICAgICAgICAg
ICB9IGVsc2UgaWYgY29uc3RleHByIChJc1hZWkE8T3V0cHV0PikgeworICAgICAgICAgICAgICAg
IHJldHVybiBhcHBseU1hdHJpY2VzKGNvbG9yLCBJbnB1dDo6bGluZWFyVG9YWVosIENocm9tYXRp
Y0FkYXBhdGlvbjxJbnB1dDo6d2hpdGVQb2ludCwgT3V0cHV0Ojp3aGl0ZVBvaW50Pjo6bWF0cml4
KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5TWF0
cmljZXMoY29sb3IsIElucHV0OjpsaW5lYXJUb1hZWiwgQ2hyb21hdGljQWRhcGF0aW9uPElucHV0
Ojp3aGl0ZVBvaW50LCBPdXRwdXQ6OndoaXRlUG9pbnQ+OjptYXRyaXgsIE91dHB1dDo6eHl6VG9M
aW5lYXIpOworICAgICAgICAgICAgfQogICAgICAgICB9CisKICAgICB9CisKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yTWF0cml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JNYXRyaXguaAkocmV2aXNpb24gMjcyODM1KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JNYXRyaXguaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiAr
NTMsMjUgQEAgcHJpdmF0ZToKICAgICBzdGQ6OmFycmF5PGZsb2F0LCBSb3dzICogQ29sdW1ucz4g
bV9tYXRyaXg7CiB9OwogCit0ZW1wbGF0ZTxzaXplX3QgQ29sdW1ucywgc2l6ZV90IFJvd3M+Citj
b25zdGV4cHIgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENvbG9yTWF0cml4PENvbHVtbnMsIFJvd3M+
JiBhLCBjb25zdCBDb2xvck1hdHJpeDxDb2x1bW5zLCBSb3dzPiYgYikKK3sKKyAgICBmb3IgKHNp
emVfdCByb3cgPSAwOyByb3cgPCBSb3dzOyArK3JvdykgeworICAgICAgICBmb3IgKHNpemVfdCBj
b2x1bW4gPSAwOyBjb2x1bW4gPCBDb2x1bW5zOyArK2NvbHVtbikgeworICAgICAgICAgICAgaWYg
KGEuYXQocm93LCBjb2x1bW4pICE9IGIuYXQocm93LCBjb2x1bW4pKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
dGVtcGxhdGU8c2l6ZV90IENvbHVtbnMsIHNpemVfdCBSb3dzPgorY29uc3RleHByIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBDb2xvck1hdHJpeDxDb2x1bW5zLCBSb3dzPiYgYSwgY29uc3QgQ29sb3JN
YXRyaXg8Q29sdW1ucywgUm93cz4mIGIpCit7CisgICAgcmV0dXJuICEoYSA9PSBiKTsKK30KKwor
CiAvLyBGSVhNRTogVGhlc2UgYXJlIG9ubHkgdXNlZCBpbiBGaWx0ZXJPcGVyYXRpb25zLmNwcC4g
Q29uc2lkZXIgbW92aW5nIHRoZW0gdGhlcmUuCiBjb25zdGV4cHIgQ29sb3JNYXRyaXg8MywgMz4g
Z3JheXNjYWxlQ29sb3JNYXRyaXgoZmxvYXQgYW1vdW50KQogewpAQCAtMTI1LDQgKzE0NCwxNCBA
QCBjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPGZsb2F0PiBDb2xvck1hCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTT4gaW5saW5lIGNvbnN0
ZXhwciBhdXRvIGFwcGx5TWF0cmljZXNUb0NvbG9yQ29tcG9uZW50cyhjb25zdCBDb2xvckNvbXBv
bmVudHM8VD4mIGNvbXBvbmVudHMsIE0gbWF0cml4KSAtPiBDb2xvckNvbXBvbmVudHM8VD4KK3sK
KyAgICByZXR1cm4gbWF0cml4LnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGNvbXBvbmVudHMp
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBNLCB0eXBlbmFtZS4uLiBNYXRy
aWNlcz4gaW5saW5lIGNvbnN0ZXhwciBhdXRvIGFwcGx5TWF0cmljZXNUb0NvbG9yQ29tcG9uZW50
cyhjb25zdCBDb2xvckNvbXBvbmVudHM8VD4mIGNvbXBvbmVudHMsIE0gbWF0cml4LCBNYXRyaWNl
cy4uLiBtYXRyaWNlcykgLT4gQ29sb3JDb21wb25lbnRzPFQ+Cit7CisgICAgcmV0dXJuIGFwcGx5
TWF0cmljZXNUb0NvbG9yQ29tcG9uZW50cyhtYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVu
dHMoY29tcG9uZW50cyksIG1hdHJpY2VzLi4uKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVHlwZXMu
aAkocmV2aXNpb24gMjcyODM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODksNiArMTg5LDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgRCwgdHlwZW5hbQogICAgIHVzaW5nIENvbXBvbmVudFR5cGUg
PSBUOwogICAgIHVzaW5nIE1vZGVsID0gTTsKICAgICB1c2luZyBUcmFuc2ZlckZ1bmN0aW9uID0g
VEY7CisgICAgdXNpbmcgRGVzY3JpcHRvciA9IEQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBXaGl0
ZVBvaW50IHdoaXRlUG9pbnQgPSBEOjp3aGl0ZVBvaW50OwogCiAgICAgY29uc3RleHByIFJHQkFU
eXBlKFQgcmVkLCBUIGdyZWVuLCBUIGJsdWUsIFQgYWxwaGEgPSBBbHBoYVRyYWl0czxUPjo6b3Bh
cXVlKQpAQCAtMjU3LDYgKzI1OCwzMSBAQCBzdHJ1Y3QgRXh0ZW5kZWRMaW5lYXJFbmNvZGVkIDog
UkdCQVR5cGU8CiAgICAgdXNpbmcgUmVmZXJlbmNlID0gWFlaQTxULCBEOjp3aGl0ZVBvaW50PjsK
IH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IHZvaWQ+IGlubGluZSBjb25zdGV4
cHIgYm9vbCBIYXNEZXNjcmlwdG9yTWVtYmVyID0gZmFsc2U7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xvclR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNEZXNjcmlwdG9yTWVtYmVyPENvbG9y
VHlwZSwgc3RkOjp2b2lkX3Q8dHlwZW5hbWUgQ29sb3JUeXBlOjpEZXNjcmlwdG9yPj4gPSB0cnVl
OworCit0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBpbmxpbmUgY29uc3RleHBy
IGJvb2wgSGFzRXh0ZW5kZWRDb3VudGVycGFydE1lbWJlciA9IGZhbHNlOwordGVtcGxhdGU8dHlw
ZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzRXh0ZW5kZWRDb3VudGVy
cGFydE1lbWJlcjxDb2xvclR5cGUsIHN0ZDo6dm9pZF90PHR5cGVuYW1lIENvbG9yVHlwZTo6RXh0
ZW5kZWRDb3VudGVycGFydD4+ID0gdHJ1ZTsKKwordGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1l
ID0gdm9pZD4gaW5saW5lIGNvbnN0ZXhwciBib29sIEhhc0JvdW5kZWRDb3VudGVycGFydE1lbWJl
ciA9IGZhbHNlOwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHBy
IGJvb2wgSGFzQm91bmRlZENvdW50ZXJwYXJ0TWVtYmVyPENvbG9yVHlwZSwgc3RkOjp2b2lkX3Q8
dHlwZW5hbWUgQ29sb3JUeXBlOjpCb3VuZGVkQ291bnRlcnBhcnQ+PiA9IHRydWU7CisKK3RlbXBs
YXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IHZvaWQ+IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNH
YW1tYUVuY29kZWRDb3VudGVycGFydE1lbWJlciA9IGZhbHNlOwordGVtcGxhdGU8dHlwZW5hbWUg
Q29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzR2FtbWFFbmNvZGVkQ291bnRlcnBh
cnRNZW1iZXI8Q29sb3JUeXBlLCBzdGQ6OnZvaWRfdDx0eXBlbmFtZSBDb2xvclR5cGU6OkdhbW1h
RW5jb2RlZENvdW50ZXJwYXJ0Pj4gPSB0cnVlOworCit0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5h
bWUgPSB2b2lkPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzTGluZWFyQ291bnRlcnBhcnRNZW1i
ZXIgPSBmYWxzZTsKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGNvbnN0ZXhw
ciBib29sIEhhc0xpbmVhckNvdW50ZXJwYXJ0TWVtYmVyPENvbG9yVHlwZSwgc3RkOjp2b2lkX3Q8
dHlwZW5hbWUgQ29sb3JUeXBlOjpMaW5lYXJDb3VudGVycGFydD4+ID0gdHJ1ZTsKKwordGVtcGxh
dGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNSR0JUeXBlID0g
SGFzRGVzY3JpcHRvck1lbWJlcjxDb2xvclR5cGU+OwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JU
eXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNSR0JFeHRlbmRlZFR5cGUgPSBJc1JHQlR5cGU8
Q29sb3JUeXBlPiAmJiBIYXNCb3VuZGVkQ291bnRlcnBhcnRNZW1iZXI8Q29sb3JUeXBlPjsKK3Rl
bXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGNvbnN0ZXhwciBib29sIElzUkdCQm91
bmRlZFR5cGUgPSBJc1JHQlR5cGU8Q29sb3JUeXBlPiAmJiBIYXNFeHRlbmRlZENvdW50ZXJwYXJ0
TWVtYmVyPENvbG9yVHlwZT47Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGlubGluZSBj
b25zdGV4cHIgYm9vbCBJc1JHQkdhbW1hRW5jb2RlZFR5cGUgPSBJc1JHQlR5cGU8Q29sb3JUeXBl
PiAmJiBIYXNMaW5lYXJDb3VudGVycGFydE1lbWJlcjxDb2xvclR5cGU+OwordGVtcGxhdGU8dHlw
ZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNSR0JMaW5lYXJFbmNvZGVk
VHlwZSA9IElzUkdCVHlwZTxDb2xvclR5cGU+ICYmIEhhc0dhbW1hRW5jb2RlZENvdW50ZXJwYXJ0
TWVtYmVyPENvbG9yVHlwZT47CisKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZTEsIHR5cGVu
YW1lIENvbG9yVHlwZTIsIGJvb2wgZW5hYmxlZD4gaW5saW5lIGNvbnN0ZXhwciBib29sIElzU2Ft
ZVJHQlR5cGVGYW1pbHlWYWx1ZSA9IGZhbHNlOwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBl
MSwgdHlwZW5hbWUgQ29sb3JUeXBlMj4gaW5saW5lIGNvbnN0ZXhwciBib29sIElzU2FtZVJHQlR5
cGVGYW1pbHlWYWx1ZTxDb2xvclR5cGUxLCBDb2xvclR5cGUyLCB0cnVlPiA9IHN0ZDo6aXNfc2Ft
ZV92PHR5cGVuYW1lIENvbG9yVHlwZTE6OkRlc2NyaXB0b3IsIHR5cGVuYW1lIENvbG9yVHlwZTI6
OkRlc2NyaXB0b3I+OwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlMSwgdHlwZW5hbWUgQ29s
b3JUeXBlMj4gaW5saW5lIGNvbnN0ZXhwciBib29sIElzU2FtZVJHQlR5cGVGYW1pbHkgPSBJc1Nh
bWVSR0JUeXBlRmFtaWx5VmFsdWU8Q29sb3JUeXBlMSwgQ29sb3JUeXBlMiwgSXNSR0JUeXBlPENv
bG9yVHlwZTE+ICYmIElzUkdCVHlwZTxDb2xvclR5cGUyPj47CisKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBTUkdCQURlc2NyaXB0b3IgewogICAgIHRlbXBsYXRlPFRyYW5zZmVyRnVuY3Rp
b25Nb2RlIE1vZGU+IHVzaW5nIFRyYW5zZmVyRnVuY3Rpb24gPSBTUkdCVHJhbnNmZXJGdW5jdGlv
bjxULCBNb2RlPjsKICAgICBzdGF0aWMgY29uc3RleHByIFdoaXRlUG9pbnQgd2hpdGVQb2ludCA9
IFdoaXRlUG9pbnQ6OkQ2NTsKQEAgLTM5Nyw2ICs0MjMsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjb25zdGV4cHIgQ29sb3JDb21wCiAgICAgcmV0dXJuIHsgYy5saWdodG5lc3MsIGMuYSwgYy5i
LCBjLmFscGhhIH07CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGNv
bnN0ZXhwciBib29sIElzTGFiID0gc3RkOjppc19zYW1lX3Y8TGFiPHR5cGVuYW1lIENvbG9yVHlw
ZTo6Q29tcG9uZW50VHlwZT4sIENvbG9yVHlwZT47CisKIC8vIE1BUks6IC0gTENIQSBDb2xvciBU
eXBlLgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgTENIQSA6IENvbG9yV2l0aEFscGhh
SGVscGVyPExDSEE8VD4+IHsKQEAgLTQzMCw2ICs0NTgsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjb25zdGV4cHIgQ29sb3JDb21wCiAgICAgcmV0dXJuIHsgYy5saWdodG5lc3MsIGMuY2hyb21h
LCBjLmh1ZSwgYy5hbHBoYSB9OwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGlu
bGluZSBjb25zdGV4cHIgYm9vbCBJc0xDSEEgPSBzdGQ6OmlzX3NhbWVfdjxMQ0hBPHR5cGVuYW1l
IENvbG9yVHlwZTo6Q29tcG9uZW50VHlwZT4sIENvbG9yVHlwZT47CisKIAogLy8gTUFSSzogLSBI
U0xBIENvbG9yIFR5cGUuCiAKQEAgLTQ2NCw2ICs0OTQsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjb25zdGV4cHIgQ29sb3JDb21wCiAgICAgcmV0dXJuIHsgYy5odWUsIGMuc2F0dXJhdGlvbiwg
Yy5saWdodG5lc3MsIGMuYWxwaGEgfTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBl
PiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNIU0xBID0gc3RkOjppc19zYW1lX3Y8SFNMQTx0eXBl
bmFtZSBDb2xvclR5cGU6OkNvbXBvbmVudFR5cGU+LCBDb2xvclR5cGU+OworCiAvLyBNQVJLOiAt
IEhXQkEgQ29sb3IgVHlwZS4KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhXQkEgOiBD
b2xvcldpdGhBbHBoYUhlbHBlcjxIV0JBPFQ+PiB7CkBAIC00OTcsNiArNTI5LDggQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gY29uc3RleHByIENvbG9yQ29tcAogICAgIHJldHVybiB7IGMuaHVlLCBj
LndoaXRlbmVzcywgYy5ibGFja25lc3MsIGMuYWxwaGEgfTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNIV0JBID0gc3RkOjppc19zYW1l
X3Y8SFdCQTx0eXBlbmFtZSBDb2xvclR5cGU6OkNvbXBvbmVudFR5cGU+LCBDb2xvclR5cGU+Owor
CiAvLyBNQVJLOiAtIFhZWiBDb2xvciBUeXBlLgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBXaGl0
ZVBvaW50IFc+IHN0cnVjdCBYWVpBIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8WFlaQTxULCBXPj4g
ewpAQCAtNTMwLDYgKzU2NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIFdoaXRlUG9pbnQgVz4g
Y29uc3QKICAgICByZXR1cm4geyBjLngsIGMueSwgYy56LCBjLmFscGhhIH07CiB9CiAKK3RlbXBs
YXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGNvbnN0ZXhwciBib29sIElzWFlaQSA9IHN0
ZDo6aXNfc2FtZV92PFhZWkE8dHlwZW5hbWUgQ29sb3JUeXBlOjpDb21wb25lbnRUeXBlLCBDb2xv
clR5cGU6OndoaXRlUG9pbnQ+LCBDb2xvclR5cGU+OwogCiAvLyBQYWNrZWQgQ29sb3IgRm9ybWF0
cwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420223</attachid>
            <date>2021-02-13 12:14:10 -0800</date>
            <delta_ts>2021-02-13 13:41:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221868-20210213121409.patch</filename>
            <type>text/plain</type>
            <size>66528</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MjgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0OCBAQAorMjAyMS0wMi0xMyAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHJlcXVpcmVtZW50cyBm
b3IgY29sb3IgdHlwZXMgdG8gb25seSBjb252ZXJzaW9uIHRvIHRoZWlyIHJlZmVyZW5jZSBjb2xv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxODY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgY3Vy
cmVudGx5IHJlcXVpcmUgZXZlcnkgbmV3IGNvbG9yIHR5cGUgdG8gZGVmaW5lIGEgY29udmVyc2lv
biB0by9mcm9tIHh5eiBhbmQgdGhlbiBwZXJoYXBzCisgICAgICAgIHNvbWUgbW9yZSBjb252ZXJz
aW9ucyB0byByZWZlcmVuY2UgY29sb3JzIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHRyaXBzIHRocm91
Z2ggWFlaLiBGb3IgZXhhbXBsZSwKKyAgICAgICAgaWYgZXZlcnkgY29udmVyc2lvbiBmcm9tIEhT
TCB0byBzUkdCIHdlbnQgdGhyb3VnaCBYWVogaXQgd291bGQgYmUgdmVyeSBzaWxseSBhbmQgaW5l
ZmZpY2llbnQsCisgICAgICAgIGFuZCB0aGUgZmFjdCB0aGF0IHdlIHJlcXVpcmUgdGhlIGJvaWxl
ciBwbGF0ZSBmb3IgSFNMIC0+IFhZWiwgZXZlbiB0aG91Z2ggaXQncyBhbHdheXMgZ29pbmcgdG8K
KyAgICAgICAgY29udmVydCB0byBTUkdCIGZpcnN0IHNlZW1zIHVuZm9ydHVuYXRlLiBXZSBjYW4g
ZG8gYmV0dGVyLgorCisgICAgICAgIEF0IGZpcnN0IEkgdGhvdWdodCB3ZSBjb3VsZCBtb2RlbCBj
b2xvciBjb252ZXJzaW9uIGFzIERBRywgd2l0aCBYWVogYXQgdGhlIHJvb3QsIGFuZCBlYWNoIGNv
bG9yCisgICAgICAgIHR5cGUgZGVjbGFyaW5nIGEgInJlZmVyZW5jZSBjb2xvciIgdGhhdCB3b3Vs
ZCBnZXQgdGhlbSBjbG9zZXIgdG8gWFlaLiBTbywgSFNMIHdvdWxkIGhhdmUgYQorICAgICAgICAi
cmVmZXJlbmNlIGNvbG9yIiBvZiBzUkdCLCBzUkdCIHdvdWxkIGhhdmUgYSAicmVmZXJlbmNlIGNv
bG9yIiBvZiBsaW5lYXJTUkdCLCBhbmQgbGluZWFyU1JHQiAKKyAgICAgICAgd291bGQgaGF2ZSBh
ICJyZWZlcmVuY2UgY29sb3IiIFhZWi4gVGhlbiwgYXMgbG9uZyBhcyB0aGVyZSB3YXMgYSBkZWZp
bmVkIGNvbnZlcnNpb24gdG8vZnJvbSB0aGUKKyAgICAgICAgInJlZmVyZW5jZSBjb2xvciIsIHdl
IGNvdWxkIGRvIGEgbGVhc3QgY29tbW9uIGFuY2VzdG9yIGdyYXBoIHNlYXJjaCBiZXR3ZWVuIHRo
ZSB0d28gY29sb3IgdHlwZXMKKyAgICAgICAgYmVpbmcgY29udmVydGVkIGJldHdlZW4gdG8gZmlu
ZCB0aGUgb3B0aW1hbCBzZXQgb2YgY29udmVyc2lvbnMgbmVlZGVkLgorCisgICAgICAgIFRoYXQg
YWxtb3N0IHdvcmtzLCBidXQgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZm91ciBjb2xv
ciB0eXBlcyB0aGF0IG1ha2UgdXAgZWFjaCBSR0IgdHlwZQorICAgICAgICAoYm91bmRlZC1nYW1t
YS1lbmNvZGVkLCBib3VuZGVkLWxpbmVhci1lbmNvZGVkLCBleHRlbmRlZC1nYW1tYS1lbmNvZGVk
LCBleHRlbmRlZC1saW5lYXItZW5jb2RlZCkKKyAgICAgICAgbWFrZSBpdCBub3QgcXVpdGUgaWRl
YWwsIHNpbmNlIGEgY29udmVyc2lvbiBmcm9tIHNvbWV0aGluZyBsaWtlIHNSR0IgdG8gRXh0ZW5k
ZWRTUkdCIHdvdWxkIHdpbmQKKyAgICAgICAgdXAgZ29pbmcgdGhyb3VnaCBYWVogKHNpbmNlIHRo
ZSAicmVmZXJlbmNlIGNvbG9yIiBmb3Igc1JHQiBpcyBMaW5lYXJTUkdCIGFuZCB0aGUgInJlZmVy
ZW5jZSBjb2xvciIKKyAgICAgICAgZm9yIEV4dGVuZGVkU1JHQiBpcyBMaW5lYXJFeHRlbmRlZFNS
R0IsIGFuZCBib3RoIGVpdGhlciAicmVmZXJlbmNlIGNvbG9ycyIgYXJlIFhZWikuIAorCisgICAg
ICAgIFVsdGltYXRlbHksIHRoZSBkZXB0aCBvZiB0aGUgdHlwZSBncmFwaCBpcyBub3QgYWxsIHRo
YXQgbGFyZ2UgKHRob3VnaCB0aGUgQVNDSUkgYXJ0IEkgbWFkZSBpcworICAgICAgICBxdWl0ZSBi
aWcsIHRob3VnaCBJIGRpZCByZW1vdmUgQTk4UkdCIGFuZCBSZWMyMDIwIGFzIHRoZXkgYXJlIHNh
bWUgYXMgRGlzcGxheVAzIGhlcmUpOgorCisgICAgICAgICAgICAgICAgICAgICAgICDilIwg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilLwg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSQCisgICAgICAgICAgICAgICAgICAgICAg
ICAgTWF0cml4IENvbnZlcnNpb25zICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUkOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAg
ICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgIOKUgiBYWVogKEQ1MCkg
4pSC4pSC4pSCIFhZWiAoRDY1KSDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICDilIIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSY4pSC
4pSU4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSYCisgICAgICAgICAgICAgICAg
ICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAg4pSCICAgICAg
4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAg4pSCCisgICAgICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICDilIIgICAgICDilJTilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilJAKKyAgICAgICAgICAgICAgIOKUgiAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKU
giAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCCisgICAgICAgICAgICAgICDi
lIIgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAgICAg
ICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAg4pSCICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSC
ICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICDilIIKKyAgICAgICAgICAgICAgIOKU
giAgICAgICAgICBQcm9QaG90b1JHQuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAgIOKUgiAgIFNSR0LilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJAgRGlzcGxheVAz4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisgICAgICAgICAgICAgICDilIIgICAgICAgIOKUgiDi
lILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCICAg4pSCICAg4pSC4pSM4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUkOKUgiDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKU
ggorICAgICAgICAgICAgICAg4pSCICAgICAgICAgIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5l
YXJFeHRlbmRlZCDilILilIIgICDilIIgICDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0
ZW5kZWQg4pSC4pSCIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIK
KyAgICAgICAgICAgICAgIOKUgiAgICAgICAg4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJjilIIgICDilIIgICDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUguKU
lOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSCCisgICAgICAgICAgICAgICDilIIgICAg
ICAgICDilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSA4pSC4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIDilILilIDilILilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgAor
ICAgICAgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAgIOKUguKU
jOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJDilIIgICDilIIgICDilILilIzilIDilIDilIDilIDi
lIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIKKyAgICAg
ICAgIOKUgiAgICBMYWIgICAg4pSCICAgIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVu
ZGVkICDilILilIIgICDilIIgICDilILilIIgR2FtbWEgIOKUgiDilIIgR2FtbWFFeHRlbmRlZCAg
4pSC4pSCIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVuZGVkICDilILilIIKKyAgICAg
ICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKWsuKUgOKUgOKUgOKUgOKUgOKUmCAgICDilILilJTilIDi
lIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCICAg4pSCICAg4pSC4pSU4pSA4pSA4pSA4pSA4pay4pSA
4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCCisgICAgICAgICAg
ICAgICDilIIgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAg
4pSCICAg4pSU4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUmAorICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICDilIzilIDilIDilLTilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilJAKKyAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAg4pSCICAgICAg4pSCICAgICAgICAgICAgIOKUgiAgICAgICAgICAg
ICDilIIKKyAgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSC4pSM4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUkOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAg
ICAg4pSCICAgIExDSCAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IOKUguKUgiAgICBIU0wgICAg4pSCIOKUgiAgICBIV0IgICAg4pSC4pSCU1JHQjx1aW50OF90PuKU
ggorICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilILilJTilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY
4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCisKKyAgICAgICAg
RnJvbSB0aGlzLCBpdCB0dXJucyBvdXQgeW91IGNhbiBoYW5kbGUgYWxsIHRoZSBjYXNlcyBpbiBh
Ym91dCA1IHN0ZXBzLCB3aXRoIG1vc3QgcGVlbGluZyBvZmYgYQorICAgICAgICBjb252ZXJzaW9u
IGZyb20gdGhlIGZyb250IG9yIGJhY2sgb3IgdGhlIHBhdGggYW5kIHVzaW5nIHJlY3Vyc2lvbiB0
byBjb250aW51ZSBvbi4gSXQgdWx0aW1hdGVseSAKKyAgICAgICAgbGVhdmVzIGEgZmluYWwgc3Rl
cCB3aGVyZSBvbmx5IG1hdHJpeCBjb252ZXJzaW9ucyByZW1haW4sIHdoaWNoIGNhbiBwb3RlbnRp
YWxseSBiZSBmdXJ0aGVyCisgICAgICAgIG9wdGltaXplZCBpbiBhbm90aGVyIHBhdGNoIHRvIGNv
bmNhdGVuYXRlIHRoZSBtYXRyaWNlcyBhdCBjb21waWxlIHRpbWUuCisKKyAgICAgICAgMS4gSGFu
ZGxlIHRoZSBzcGVjaWFsIGNhc2UgU1JHQkE8dWludDhfdD4gZm9yIElucHV0IGFuZCBPdXRwdXQs
IGFuZCByZWN1cnNpdmVseSBjYWxsIGNvbnZlcnNpb24uCisKKyAgICAgICAgMi4gSGFuZGxlIGFs
bCBjb2xvciB0eXBlcyB0aGF0IGFyZSBub3QgSXNSR0JUeXBlPFQ+IG9yIElzWFlaQTxUPiBmb3Ig
SW5wdXQgYW5kIE91dHB1dC4gRm9yIGFsbAorICAgICAgICAgICB0aGVzZSBvdGhlciBjb2xvciB0
eXBlcywgd2UgY2FuIHVuY29uZHRpb25hbGx5IGNvbnZlcnQgdGhlbSB0byB0aGVpciAicmVmZXJl
bmNlIiBjb2xvciwgYXMKKyAgICAgICAgICAgZWl0aGVyIHRoZXkgaGF2ZSBhbHJlYWR5IGJlZW4g
aGFuZGxlZCBieSBhIENvbG9yQ29udmVyc2lvbiBzcGVjaWFsaXphdGlvbiBvciB0aGlzIHdpbGwK
KyAgICAgICAgICAgZ2V0IHVzIGNsb3NlciB0byB0aGUgZmluYWwgY29udmVyc2lvbiwgYW5kIHJl
Y3Vyc2l2ZWx5IGNhbGwgY29udmVyc2lvbi4KKworICAgICAgICAzLiBIYW5kbGUgY29udmVyc2lv
bnMgd2l0aGluIGEgUkdCRmFtaWx5IChlLmcuIGFsbCBoYXZlIHRoZSBzYW1lIGRlc2NyaXB0b3Ip
LiBUaGlzIHdpbGwgY29uY2x1ZGUKKyAgICAgICAgICAgdGhlIGNvbnZlcnNpb24uCisKKyAgICAg
ICAgNC4gSGFuZGxlIGFueSBnYW1tYSBjb252ZXJzaW9ucyBmb3IgdGhlIElucHV0IGFuZCBPdXRw
dXQsIHJlY3Vyc2l2ZWx5IGNhbGwgY29udmVyc2lvbgorCisgICAgICAgIDUuIEF0IHRoaXMgcG9p
bnQsIElucHV0IGFuZCBPdXRwdXQgYXJlIGVhY2ggZWl0aGVyIExpbmVhci1SR0IgdHlwZXMgKG9m
IGRpZmZlcmVudCBmYW1pbGVzKSBvciBYWVpBCisgICAgICAgICAgIGFuZCB0aGVyZWZvcmUgYWxs
IGFkZGl0aW9uYWwgY29udmVyc2lvbiBjYW4gaGFwcGVuIHZpYSBtYXRyaXggdHJhbnNmb3JtYXRp
b24uIFRoaXMgd2lsbCBjb25jbHVkZQorICAgICAgICAgICB0aGUgY29udmVyc2lvbi4KKworICAg
ICAgICBXaXRoIHRoZXNlIHN0ZXBzLCB3ZSBncm91cCB0aGUgY29sb3IgdHlwZXMgaW50byAzIGRp
c3RpbmN0IGdyb3Vwcy4KKworICAgICAgICAxLiBSR0IgdHlwZXMuCisKKyAgICAgICAgICAgIFRo
ZXNlIGluaGVyaXQgZnJvbSB0aGUgUkdCVHlwZSBzdHJ1Y3QgYW5kIGFyZSBkZWZpbmVkIGluIHRl
cm1zIG9mIHRoZWlyIHh5elRvTGluZWFyIC8gbGluZWFyVG9YWVogCisgICAgICAgICAgICBtYXRy
aWNlcywgdGhlaXIgdHJhbnNmZXIgZnVuY3Rpb24sIHdoZXRoZXIgdGhleSBhcmUgYm91bmRlZCBv
ciBleHRlbmRlZCBhbmQgdGhlaXIgd2hpdGUgcG9pbnQuIE5ldyAKKyAgICAgICAgICAgIFJHQiBj
b2xvciB0eXBlcyBjYW4gYmUgYWRkZWQgd2l0aG91dCBhbnkgbmV3IGNvbnZlcnNpb24gY29kZSBi
ZWluZyByZXF1aXJlZCwgYXMgbG9uZyBhcyB0aGV5IHNwZWNpZnkKKyAgICAgICAgICAgIHRob3Nl
IHByb3BlcnRpZXMuCisKKyAgICAgICAgMi4gVGhlIFhZWiB0eXBlLgorCisgICAgICAgICAgICBU
aGlzIGlzIHRoZSByb290IHR5cGUsIGFuZCBvbmx5IHZhcmllcyBvbiBpdHMgd2hpdGUgcG9pbnQu
IElmIG90aGVyIHdoaXRlIHBvaW50cyBiZXNpZGUgRDUwIGFuZCBENjUgCisgICAgICAgICAgICBh
cmUgZXZlciBuZWVkZWQsIHdlIHdpbGwgbmVlZCB0byBleHRlbmQgdGhlIENocm9tYXRpY0FkYXBh
dGlvbiBzcGVjaWFsaXphdGlvbnMgdG8gYWxzbyBoYXZlIGNvbnZlcnNpb24KKyAgICAgICAgICAg
IG1hdHJpY2VzIGJldHdlZW4gdGhvc2UuCisKKyAgICAgICAgMy4gQWxsIG90aGVyIHR5cGVzLgor
CisgICAgICAgICAgICBBbGwgb3RoZXIgdHlwZXMgKGUuZy4gTGFiLCBMQ0hBLCBIU0xBLCBIV0JB
IChhbmQgU1JHQkE8dWludDhfdD4sIGtpbmQgb2YsIGl0J3MgYSBzcGVjaWFsIGZsb3dlcikgYXJl
CisgICAgICAgICAgICB0aGUgc2V0IGN1cnJlbnRseSkgaGF2ZSB0aGVpciBjb252ZXJzaW9ucyBk
ZWZpbmVkIGluIHRlcm1zIG9mIHNpbmdsZSByZWZlcmVuY2UgY29sb3IgYW5kIHJlcXVpcmUKKyAg
ICAgICAgICAgIGV4cGxpY2l0IHNwZWNpYWxpemF0aW9uIG9mIHRoZSBDb2xvckNvbnZlcnNpb24g
c3RydWN0IHRvIHdvcmsuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZl
cnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGFiPGZsb2F0Pj46OmNvbnZlcnQpOgorICAg
ICAgICAoV2ViQ29yZTo6V2hpdGVQb2ludDo6RDUwPj46OmNvbnZlcnQpOgorICAgICAgICAoKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldoaXRlUG9pbnQ6OkQ2NT4+Ojpjb252ZXJ0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvTGluZWFyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OnRvR2FtbWFFbmNvZGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkE5
OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxpbmVh
ckE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okxp
bmVhckRpc3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+Ojpjb252ZXJ0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYzIwMjA8ZmxvYXQ+Pjo6Y29udmVydCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJSZWMyMDIwPGZsb2F0Pj46OmNvbnZlcnQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGluZWFyU1JHQkE8ZmxvYXQ+Pjo6Y29udmVy
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjp4eXpUb0xpbmVhcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpsaW5lYXJUb1hZWik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpYWVpGb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8Zmxv
YXQ+Pj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPExpbmVh
clByb1Bob3RvUkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+Pjo6Y29udmVydCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj46OmNvbnZl
cnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+
Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8RXh0ZW5kZWRT
UkdCQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpG
b3I8SFNMQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpY
WVpGb3I8SFdCQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpYWVpGb3I8TENIQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6WFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPFNSR0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbG9yQ29udmVyc2lvbjo6Y29udmVydCk6CisgICAgICAgIChXZWJD
b3JlOjpDb2xvckNvbnZlcnNpb246OnRvTGluZWFyRW5jb2RlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvckNvbnZlcnNpb246OnRvR2FtbWFFbmNvZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bG9yQ29udmVyc2lvbjo6dG9FeHRlbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNvbnZl
cnNpb246OnRvQm91bmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNvbnZlcnNpb246Omhh
bmRsZVJHQkZhbWlseUNvbnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDb252ZXJz
aW9uOjpoYW5kbGVNYXRyaXhDb252ZXJzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvck1hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChXZWJDb3JlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5TWF0cmljZXNU
b0NvbG9yQ29tcG9uZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBl
cy5oOgorCiAyMDIxLTAyLTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXByb3ZlIGNvbXB1dGVkIHN0eWxlIGhhbmRsaW5nIGluIGRlZ2VuZXJhdGUgZ3JpZCBj
YXNlcywgc2l6ZXMgYW5kIGxlbmd0aHMgb2YgemVybwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCShyZXZpc2lvbiAy
NzI4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwyMDQgKzMwLDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0vLyBDaHJvbWF0aWMgQWRhcHRhdGlvbiBNYXRyaWNlcy4KLQotLy8gaHR0cDov
L3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCi1z
dGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ1MFRvRDY1TWF0cml4IHsKLSAgICAg
MC45NTU1NzY2ZiwgLTAuMDIzMDM5M2YsIDAuMDYzMTYzNmYsCi0gICAgLTAuMDI4Mjg5NWYsICAx
LjAwOTk0MTZmLCAwLjAyMTAwNzdmLAotICAgICAwLjAxMjI5ODJmLCAtMC4wMjA0ODMwZiwgMS4z
Mjk5MDk4ZgotfTsKLQotLy8gaHR0cDovL3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRt
bD9FcW5fQ2hyb21BZGFwdC5odG1sCi1zdGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+
IEQ2NVRvRDUwTWF0cml4IHsKLSAgICAgMS4wNDc4MTEyZiwgMC4wMjI4ODY2ZiwgLTAuMDUwMTI3
MGYsCi0gICAgIDAuMDI5NTQyNGYsIDAuOTkwNDg0NGYsIC0wLjAxNzA0OTFmLAotICAgIC0wLjAw
OTIzNDVmLCAwLjAxNTA0MzZmLCAgMC43NTIxMzE2ZgotfTsKLQotLy8gTUFSSzogQ2hyb21hdGlj
IEFkYXB0YXRpb24gY29udmVyc2lvbnMuCi0KLVhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4g
Q29sb3JDb252ZXJzaW9uPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4sIFhZWkE8ZmxvYXQs
IFdoaXRlUG9pbnQ6OkQ1MD4+Ojpjb252ZXJ0KGNvbnN0IFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6
OkQ1MD4mIGNvbG9yKQotewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZ0V4
Y2VwdEFscGhhPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4+KEQ1MFRvRDY1TWF0cml4LnRy
YW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOwotfQot
Ci1YWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+IENvbG9yQ29udmVyc2lvbjxYWVpBPGZsb2F0
LCBXaGl0ZVBvaW50OjpENTA+LCBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+Pjo6Y29udmVy
dChjb25zdCBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+JiBjb2xvcikKLXsKLSAgICByZXR1
cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdFeGNlcHRBbHBoYTxYWVpBPGZsb2F0LCBXaGl0
ZVBvaW50OjpENTA+PihENjVUb0Q1ME1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhh
c0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKLX0KLQotLy8gTUFSSzogR2FtbWEgY29udmVyc2lv
bnMuCi0KLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gc3RhdGljIGF1dG8gdG9MaW5lYXIo
Y29uc3QgQ29sb3JUeXBlJiBjb2xvcikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpMaW5lYXJDb3Vu
dGVycGFydAotewotICAgIGF1dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOwotICAgIHJl
dHVybiB7IENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9MaW5lYXIoYzEpLCBDb2xvclR5
cGU6OlRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFyKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1
bmN0aW9uOjp0b0xpbmVhcihjMyksIGFscGhhIH07Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIENv
bG9yVHlwZT4gc3RhdGljIGF1dG8gdG9HYW1tYUVuY29kZWQoY29uc3QgQ29sb3JUeXBlJiBjb2xv
cikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpHYW1tYUVuY29kZWRDb3VudGVycGFydAotewotICAg
IGF1dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOwotICAgIHJldHVybiB7IENvbG9yVHlw
ZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9HYW1tYUVuY29kZWQoYzEpLCBDb2xvclR5cGU6OlRyYW5z
ZmVyRnVuY3Rpb246OnRvR2FtbWFFbmNvZGVkKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0
aW9uOjp0b0dhbW1hRW5jb2RlZChjMyksIGFscGhhIH07Ci19Ci0KLS8vIEE5OFJHQiA8LT4gTGlu
ZWFyQTk4UkdCIGNvbnZlcnNpb25zLgotCi1MaW5lYXJBOThSR0I8ZmxvYXQ+IENvbG9yQ29udmVy
c2lvbjxMaW5lYXJBOThSR0I8ZmxvYXQ+LCBBOThSR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBB
OThSR0I8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9MaW5lYXIoY29sb3IpOwotfQot
Ci1BOThSR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+LCBMaW5lYXJBOThS
R0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJBOThSR0I8ZmxvYXQ+JiBjb2xvcikKLXsK
LSAgICByZXR1cm4gdG9HYW1tYUVuY29kZWQoY29sb3IpOwotfQotCi0vLyBEaXNwbGF5UDMgPC0+
IExpbmVhckRpc3BsYXlQMyBjb252ZXJzaW9ucy4KLQotTGluZWFyRGlzcGxheVAzPGZsb2F0PiBD
b2xvckNvbnZlcnNpb248TGluZWFyRGlzcGxheVAzPGZsb2F0PiwgRGlzcGxheVAzPGZsb2F0Pj46
OmNvbnZlcnQoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRv
TGluZWFyKGNvbG9yKTsKLX0KLQotRGlzcGxheVAzPGZsb2F0PiBDb2xvckNvbnZlcnNpb248RGlz
cGxheVAzPGZsb2F0PiwgTGluZWFyRGlzcGxheVAzPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgTGlu
ZWFyRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVk
KGNvbG9yKTsKLX0KLQotLy8gRXh0ZW5kZWRTUkdCQSA8LT4gTGluZWFyRXh0ZW5kZWRTUkdCQSBj
b252ZXJzaW9ucy4KLQotTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9u
PExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBFeHRlbmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZl
cnQoY29uc3QgRXh0ZW5kZWRTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiB0b0xp
bmVhcihjb2xvcik7Ci19Ci0KLUV4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxF
eHRlbmRlZFNSR0JBPGZsb2F0PiwgTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0
KGNvbnN0IExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4g
dG9HYW1tYUVuY29kZWQoY29sb3IpOwotfQotCi0vLyBQcm9QaG90b1JHQiA8LT4gTGluZWFyUHJv
UGhvdG9SR0IgY29udmVyc2lvbnMuCi0KLUxpbmVhclByb1Bob3RvUkdCPGZsb2F0PiBDb2xvckNv
bnZlcnNpb248TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+LCBQcm9QaG90b1JHQjxmbG9hdD4+Ojpj
b252ZXJ0KGNvbnN0IFByb1Bob3RvUkdCPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRv
TGluZWFyKGNvbG9yKTsKLX0KLQotUHJvUGhvdG9SR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxQ
cm9QaG90b1JHQjxmbG9hdD4sIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQoY29u
c3QgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9HYW1t
YUVuY29kZWQoY29sb3IpOwotfQotCi0vLyBSZWMyMDIwIDwtPiBMaW5lYXJSZWMyMDIwIGNvbnZl
cnNpb25zLgotCi1MaW5lYXJSZWMyMDIwPGZsb2F0PiBDb2xvckNvbnZlcnNpb248TGluZWFyUmVj
MjAyMDxmbG9hdD4sIFJlYzIwMjA8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBSZWMyMDIwPGZsb2F0
PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRvTGluZWFyKGNvbG9yKTsKLX0KLQotUmVjMjAyMDxm
bG9hdD4gQ29sb3JDb252ZXJzaW9uPFJlYzIwMjA8ZmxvYXQ+LCBMaW5lYXJSZWMyMDIwPGZsb2F0
Pj46OmNvbnZlcnQoY29uc3QgTGluZWFyUmVjMjAyMDxmbG9hdD4mIGNvbG9yKQotewotICAgIHJl
dHVybiB0b0dhbW1hRW5jb2RlZChjb2xvcik7Ci19Ci0KLS8vIFNSR0JBIDwtPiBMaW5lYXJTUkdC
QSBjb252ZXJzaW9ucy4KLQotTGluZWFyU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5l
YXJTUkdCQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+
JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9MaW5lYXIoY29sb3IpOwotfQotCi1TUkdCQTxmbG9h
dD4gQ29sb3JDb252ZXJzaW9uPFNSR0JBPGZsb2F0PiwgTGluZWFyU1JHQkE8ZmxvYXQ+Pjo6Y29u
dmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiB0b0dh
bW1hRW5jb2RlZChjb2xvcik7Ci19Ci0KLS8vIE1BUks6IE1hdHJpeCBjb252ZXJzaW9ucyAodG8g
YW5kIGZyb20gWFlaIGZvciBhbGwgbGluZWFyIGNvbG9yIHR5cGVzKS4KLQotdGVtcGxhdGU8dHlw
ZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgYXV0byB4eXpUb0xpbmVhcihjb25zdCBYWVpGb3I8Q29s
b3JUeXBlPiYgY29sb3IpIC0+IENvbG9yVHlwZQotewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBv
bmVudHNDbGFtcGluZ0V4Y2VwdEFscGhhPENvbG9yVHlwZT4oQ29sb3JUeXBlOjp4eXpUb0xpbmVh
ci50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsK
LX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgYXV0byBsaW5lYXJUb1hZ
Wihjb25zdCBDb2xvclR5cGUmIGNvbG9yKSAtPiBYWVpGb3I8Q29sb3JUeXBlPgotewotICAgIHJl
dHVybiBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZ0V4Y2VwdEFscGhhPFhZWkZvcjxDb2xvclR5
cGU+PihDb2xvclR5cGU6OmxpbmVhclRvWFlaLnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGFz
Q29sb3JDb21wb25lbnRzKGNvbG9yKSkpOwotfQotCi0vLyAtIExpbmVhckE5OFJHQiBtYXRyaXgg
Y29udmVyc2lvbnMuCi0KLUxpbmVhckE5OFJHQjxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVh
ckE5OFJHQjxmbG9hdD4sIFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+Pj46OmNvbnZlcnQoY29u
c3QgWFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4geHl6
VG9MaW5lYXI8TGluZWFyQTk4UkdCPGZsb2F0Pj4oY29sb3IpOwotfQotCi1YWVpGb3I8TGluZWFy
QTk4UkdCPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+
PiwgTGluZWFyQTk4UkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgTGluZWFyQTk4UkdCPGZsb2F0
PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVhckE5OFJHQjxmbG9hdD4+
KGNvbG9yKTsKLX0KLQotLy8gLSBMaW5lYXJEaXNwbGF5UDMgbWF0cml4IGNvbnZlcnNpb25zLgot
Ci1MaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8
ZmxvYXQ+LCBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZ
WkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHh5elRv
TGluZWFyPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+KGNvbG9yKTsKLX0KLQotWFlaRm9yPExpbmVh
ckRpc3BsYXlQMzxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyRGlzcGxheVAz
PGZsb2F0Pj4sIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckRp
c3BsYXlQMzxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5lYXJE
aXNwbGF5UDM8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLS8vIC0gTGluZWFyRXh0ZW5kZWRTUkdCQSBt
YXRyaXggY29udmVyc2lvbnMuCi0KLUxpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29u
dmVyc2lvbjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0PiwgWFlaRm9yPExpbmVhckV4dGVuZGVk
U1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8
ZmxvYXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHh5elRvTGluZWFyPExpbmVhckV4dGVuZGVk
U1JHQkE8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLVhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZs
b2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4s
IExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJFeHRlbmRl
ZFNSR0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVhckV4
dGVuZGVkU1JHQkE8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLS8vIC0gTGluZWFyUHJvUGhvdG9SR0Ig
bWF0cml4IGNvbnZlcnNpb25zLgotCi1MaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4gQ29sb3JDb252
ZXJzaW9uPExpbmVhclByb1Bob3RvUkdCPGZsb2F0PiwgWFlaRm9yPExpbmVhclByb1Bob3RvUkdC
PGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+
JiBjb2xvcikKLXsKLSAgICByZXR1cm4geHl6VG9MaW5lYXI8TGluZWFyUHJvUGhvdG9SR0I8Zmxv
YXQ+Pihjb2xvcik7Ci19Ci0KLVhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+IENvbG9y
Q29udmVyc2lvbjxYWVpGb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiwgTGluZWFyUHJvUGhv
dG9SR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4mIGNv
bG9yKQotewotICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+
KGNvbG9yKTsKLX0KLQotLy8gLSBMaW5lYXJSZWMyMDIwIG1hdHJpeCBjb252ZXJzaW9ucy4KLQot
TGluZWFyUmVjMjAyMDxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhclJlYzIwMjA8ZmxvYXQ+
LCBYWVpGb3I8TGluZWFyUmVjMjAyMDxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8TGlu
ZWFyUmVjMjAyMDxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4geHl6VG9MaW5lYXI8TGlu
ZWFyUmVjMjAyMDxmbG9hdD4+KGNvbG9yKTsKLX0KLQotWFlaRm9yPExpbmVhclJlYzIwMjA8Zmxv
YXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+PiwgTGluZWFy
UmVjMjAyMDxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+JiBjb2xv
cikKLXsKLSAgICByZXR1cm4gbGluZWFyVG9YWVo8TGluZWFyUmVjMjAyMDxmbG9hdD4+KGNvbG9y
KTsKLX0KLQotLy8gLSBMaW5lYXJTUkdCQSBtYXRyaXggY29udmVyc2lvbnMuCi0KLUxpbmVhclNS
R0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248TGluZWFyU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8TGlu
ZWFyU1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0
Pj4mIGNvbG9yKQotewotICAgIHJldHVybiB4eXpUb0xpbmVhcjxMaW5lYXJTUkdCQTxmbG9hdD4+
KGNvbG9yKTsKLX0KLQotWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9u
PFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+LCBMaW5lYXJTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0
KGNvbnN0IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRv
WFlaPExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpOwotfQotCiAvLyBNQVJLOiBIU0wgY29udmVy
c2lvbnMuCiAKIHN0cnVjdCBIU0xIdWVDYWxjdWxhdGlvblJlc3VsdCB7CkBAIC0zODEsNyArMTgz
LDcgQEAgc3RhdGljIGNvbnN0ZXhwciBmbG9hdCBMQUJlID0gMjE2LjBmIC8gMgogc3RhdGljIGNv
bnN0ZXhwciBmbG9hdCBMQUJrID0gMjQzODkuMGYgLyAyNy4wZjsKIHN0YXRpYyBjb25zdGV4cHIg
ZmxvYXQgRDUwV2hpdGVWYWx1ZXNbXSA9IHsgMC45NjQyMmYsIDEuMGYsIDAuODI1MjFmIH07CiAK
LVhZWkZvcjxMYWI8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9yPExhYjxmbG9hdD4+LCBM
YWI8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK1hZWkE8ZmxvYXQs
IFdoaXRlUG9pbnQ6OkQ1MD4gQ29sb3JDb252ZXJzaW9uPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6
OkQ1MD4sIExhYjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQogewog
ICAgIGZsb2F0IGYxID0gKGNvbG9yLmxpZ2h0bmVzcyArIDE2LjBmKSAvIDExNi4wZjsKICAgICBm
bG9hdCBmMCA9IGYxICsgKGNvbG9yLmEgLyA1MDAuMGYpOwpAQCAtNDExLDcgKzIxMyw3IEBAIFhZ
WkZvcjxMYWI8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm8KICAgICByZXR1cm4geyB4LCB5
LCB6LCBjb2xvci5hbHBoYSB9OwogfQogCi1MYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8
ZmxvYXQ+LCBYWVpGb3I8TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMYWI8Zmxv
YXQ+PiYgY29sb3IpCitMYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8ZmxvYXQ+LCBYWVpB
PGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+Pjo6Y29udmVydChjb25zdCBYWVpBPGZsb2F0LCBXaGl0
ZVBvaW50OjpENTA+JiBjb2xvcikKIHsKICAgICBmbG9hdCB4ID0gY29sb3IueCAvIEQ1MFdoaXRl
VmFsdWVzWzBdOwogICAgIGZsb2F0IHkgPSBjb2xvci55IC8gRDUwV2hpdGVWYWx1ZXNbMV07CkBA
IC00NjEsMTE3ICsyNjMsNyBAQCBMYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8ZmxvYXQ+
LCBMCiAgICAgfTsKIH0KIAotLy8gTUFSSzogQ29tYmluYXRpb24gY29udmVyc2lvbnMgKGNvbnN0
cnVjdGVkIGZyb20gbW9yZSBiYXNpYyBjb252ZXJzaW9ucyBhYm92ZSkuCi0KLS8vIC0gQTk4UkdC
IGNvbWJpbmF0aW9uIGZ1bmN0aW9ucy4KLQotWFlaRm9yPEE5OFJHQjxmbG9hdD4+IENvbG9yQ29u
dmVyc2lvbjxYWVpGb3I8QTk4UkdCPGZsb2F0Pj4sIEE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNv
bnN0IEE5OFJHQjxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFla
Rm9yPEE5OFJHQjxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4oY29s
b3IpKTsKLX0KLQotQTk4UkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248QTk4UkdCPGZsb2F0Piwg
WFlaRm9yPEE5OFJHQjxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8QTk4UkdCPGZsb2F0
Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8QTk4UkdCPGZsb2F0Pj4oY29u
dmVydENvbG9yPExpbmVhckE5OFJHQjxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gRGlzcGxh
eVAzIGNvbWJpbmF0aW9uIGZ1bmN0aW9ucy4KLQotWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+IENv
bG9yQ29udmVyc2lvbjxYWVpGb3I8RGlzcGxheVAzPGZsb2F0Pj4sIERpc3BsYXlQMzxmbG9hdD4+
Ojpjb252ZXJ0KGNvbnN0IERpc3BsYXlQMzxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBj
b252ZXJ0Q29sb3I8WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8TGluZWFy
RGlzcGxheVAzPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotRGlzcGxheVAzPGZsb2F0PiBDb2xvckNv
bnZlcnNpb248RGlzcGxheVAzPGZsb2F0PiwgWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+Pjo6Y29u
dmVydChjb25zdCBYWVpGb3I8RGlzcGxheVAzPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVy
biBjb252ZXJ0Q29sb3I8RGlzcGxheVAzPGZsb2F0Pj4oY29udmVydENvbG9yPExpbmVhckRpc3Bs
YXlQMzxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gRXh0ZW5kZWRTUkdCIGNvbWJpbmF0aW9u
IGZ1bmN0aW9ucy4KLQotWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNp
b248WFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiwgRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpj
b252ZXJ0KGNvbnN0IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4g
Y29udmVydENvbG9yPFhZWkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4+KGNvbnZlcnRDb2xvcjxM
aW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotRXh0ZW5kZWRTUkdCQTxm
bG9hdD4gQ29sb3JDb252ZXJzaW9uPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8RXh0ZW5k
ZWRTUkdCQTxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8RXh0ZW5kZWRTUkdCQTxmbG9h
dD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gY29udmVydENvbG9yPEV4dGVuZGVkU1JHQkE8Zmxv
YXQ+Pihjb252ZXJ0Q29sb3I8TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci19
Ci0KLS8vIC0gSFNMQSBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxIU0xBPGZsb2F0
Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxIU0xBPGZsb2F0Pj4sIEhTTEE8ZmxvYXQ+Pjo6Y29u
dmVydChjb25zdCBIU0xBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xv
cjxYWVpGb3I8SFNMQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+Pihjb2xvcikp
OwotfQotCi1IU0xBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248SFNMQTxmbG9hdD4sIFhZWkZvcjxI
U0xBPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxIU0xBPGZsb2F0Pj4mIGNvbG9yKQot
ewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8SFNMQTxmbG9hdD4+KGNvbnZlcnRDb2xvcjxTUkdC
QTxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gSFdCQSBjb21iaW5hdGlvbiBmdW5jdGlvbnMu
Ci0KLVhZWkZvcjxIV0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxIV0JBPGZsb2F0
Pj4sIEhXQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBIV0JBPGZsb2F0PiYgY29sb3IpCi17Ci0g
ICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8SFdCQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8
U1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwotfQotCi1IV0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248
SFdCQTxmbG9hdD4sIFhZWkZvcjxIV0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxI
V0JBPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8SFdCQTxmbG9h
dD4+KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gTENIQSBj
b21iaW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxMQ0hBPGZsb2F0Pj4gQ29sb3JDb252ZXJz
aW9uPFhZWkZvcjxMQ0hBPGZsb2F0Pj4sIExDSEE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMQ0hB
PGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8TENIQTxm
bG9hdD4+Pihjb252ZXJ0Q29sb3I8TGFiPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotTENIQTxmbG9h
dD4gQ29sb3JDb252ZXJzaW9uPExDSEE8ZmxvYXQ+LCBYWVpGb3I8TENIQTxmbG9hdD4+Pjo6Y29u
dmVydChjb25zdCBYWVpGb3I8TENIQTxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gY29u
dmVydENvbG9yPExDSEE8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGFiPGZsb2F0Pj4oY29sb3IpKTsK
LX0KLQotLy8gLSBQcm9QaG90b1JHQiBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxQ
cm9QaG90b1JHQjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8UHJvUGhvdG9SR0I8Zmxv
YXQ+PiwgUHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBQcm9QaG90b1JHQjxmbG9h
dD4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9yPFByb1Bob3RvUkdC
PGZsb2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNvbG9yKSk7
Ci19Ci0KLVByb1Bob3RvUkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248UHJvUGhvdG9SR0I8Zmxv
YXQ+LCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPFBy
b1Bob3RvUkdCPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8UHJv
UGhvdG9SR0I8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Pihj
b2xvcikpOwotfQotCi0vLyAtIFJlYzIwMjAgY29tYmluYXRpb24gZnVuY3Rpb25zLgotCi1YWVpG
b3I8UmVjMjAyMDxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8UmVjMjAyMDxmbG9hdD4+
LCBSZWMyMDIwPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgUmVjMjAyMDxmbG9hdD4mIGNvbG9yKQot
ewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj4oY29udmVy
dENvbG9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+Pihjb2xvcikpOwotfQotCi1SZWMyMDIwPGZsb2F0
PiBDb2xvckNvbnZlcnNpb248UmVjMjAyMDxmbG9hdD4sIFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4+
Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJl
dHVybiBjb252ZXJ0Q29sb3I8UmVjMjAyMDxmbG9hdD4+KGNvbnZlcnRDb2xvcjxMaW5lYXJSZWMy
MDIwPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotLy8gLSBTUkdCIGNvbWJpbmF0aW9uIGZ1bmN0aW9u
cy4KLQotWFlaRm9yPFNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxTUkdCQTxm
bG9hdD4+LCBTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYgY29sb3Ip
Ci17Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8U1JHQkE8ZmxvYXQ+Pj4oY29udmVy
dENvbG9yPExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotU1JHQkE8ZmxvYXQ+IENv
bG9yQ29udmVyc2lvbjxTUkdCQTxmbG9hdD4sIFhZWkZvcjxTUkdCQTxmbG9hdD4+Pjo6Y29udmVy
dChjb25zdCBYWVpGb3I8U1JHQkE8ZmxvYXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZl
cnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbnZlcnRDb2xvcjxMaW5lYXJTUkdCQTxmbG9hdD4+KGNv
bG9yKSk7Ci19Ci0KLS8vIE1BUks6IFNSR0JBPHVpbnQ4X3Q+IGNvbXBvbmVudCB0eXBlIGNvbnZl
cnNpb25zLgorLy8gTUFSSzogU1JHQkE8dWludDhfdD4gY29udmVyc2lvbnMuCiAKIFNSR0JBPGZs
b2F0PiBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBTUkdCQTx1aW50OF90Pj46OmNvbnZl
cnQoY29uc3QgU1JHQkE8dWludDhfdD4mIGNvbG9yKQogewpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgJKHJldmlzaW9uIDI3
MjgzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lv
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyOTkgKzI2LDkyIEBACiAjcHJhZ21hIG9uY2UKIAog
I2luY2x1ZGUgIkNvbG9yVHlwZXMuaCIKLSNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEFsbCBjb2xvciB0eXBlcyBtdXN0IGF0IGxlYXN0IGlt
cGxlbWVudCB0aGUgZm9sbG93aW5nIGNvbnZlcnNpb25zIHRvIGFuZCBmcm9tIHRoZWlyIHJlZmVy
ZW5jZSBYWVogY29sb3Igc3BhY2UKKy8vIEFsbCBjb2xvciB0eXBlcywgb3RoZXIgdGhhbiBYWVpB
IG9yIHRob3NlIGluaGVyaXRpbmcgZnJvbSBSR0JUeXBlLCBtdXN0IGltcGxlbWVudAorLy8gdGhl
IGZvbGxvd2luZyBjb252ZXJzaW9ucyB0byBhbmQgZnJvbSB0aGVpciAiUmVmZXJlbmNlIiBjb2xv
ci4KIC8vCi0vLyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPGBD
b2xvclR5cGVgPGZsb2F0Pj4sIGBDb2xvclR5cGVgPGZsb2F0Pj4gewotLy8gICAgICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8YENvbG9yVHlwZWA8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0
IGBDb2xvclR5cGVgPGZsb2F0PiYpOworLy8gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPGBDb2xvclR5cGVgPGZsb2F0Pjo6UmVmZXJlbmNlLCBgQ29sb3JUeXBlYDxmbG9hdD4+
IHsKKy8vICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYENvbG9yVHlwZWA8ZmxvYXQ+OjpS
ZWZlcmVuY2UgY29udmVydChjb25zdCBgQ29sb3JUeXBlYDxmbG9hdD4mKTsKIC8vICAgIH07CiAv
LyAgICAKLS8vICAgIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxgQ29sb3JUeXBl
YDxmbG9hdD4sIFhZWkZvcjxgQ29sb3JUeXBlYDxmbG9hdD4+PiB7Ci0vLyAgICAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIGBDb2xvclR5cGVgPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxg
Q29sb3JUeXBlYDxmbG9hdD4+Jik7CisvLyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZl
cnNpb248YENvbG9yVHlwZWA8ZmxvYXQ+LCBgQ29sb3JUeXBlYDxmbG9hdD46OlJlZmVyZW5jZT4g
eworLy8gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBgQ29sb3JUeXBlYDxmbG9hdD4gY29u
dmVydChjb25zdCBgQ29sb3JUeXBlYDxmbG9hdD46OlJlZmVyZW5jZSYpOwogLy8gICAgfTsKIC8v
Ci0vLyBBbnkgYWRkaXRpb25hbCBjb252ZXJzaW9ucyBjYW4gYmUgdGhvdWdodCBvZiBhcyBvcHRp
bWl6YXRpb25zLCBzaG9ydGN1dHRpbmcgdW5uZWNlc3Nhcnkgc3RlcHMsIHRob3VnaAotLy8gc29t
ZSBtYXkgYmUgaW50ZWdyYWwgdG8gdGhlIGJhc2UgY29udmVyc2lvbi4KIAotdGVtcGxhdGU8dHlw
ZW5hbWUgQ29sb3JUeXBlPiB1c2luZyBYWVpGb3IgPSBYWVpBPHR5cGVuYW1lIENvbG9yVHlwZTo6
Q29tcG9uZW50VHlwZSwgQ29sb3JUeXBlOjp3aGl0ZVBvaW50PjsKLQotdGVtcGxhdGU8dHlwZW5h
bWUgT3V0cHV0LCB0eXBlbmFtZSBJbnB1dD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjsKK3RlbXBs
YXRlPHR5cGVuYW1lIE91dHB1dCwgdHlwZW5hbWUgSW5wdXQsIHR5cGVuYW1lID0gdm9pZD4gc3Ry
dWN0IENvbG9yQ29udmVyc2lvbjsKIAogdGVtcGxhdGU8dHlwZW5hbWUgT3V0cHV0LCB0eXBlbmFt
ZSBJbnB1dD4gaW5saW5lIE91dHB1dCBjb252ZXJ0Q29sb3IoY29uc3QgSW5wdXQmIGNvbG9yKQog
ewogICAgIHJldHVybiBDb2xvckNvbnZlcnNpb248T3V0cHV0LCBJbnB1dD46OmNvbnZlcnQoY29s
b3IpOwogfQogCi0vLyBBOThSR0IKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxY
WVpGb3I8QTk4UkdCPGZsb2F0Pj4sIEE5OFJHQjxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgWFlaRm9yPEE5OFJHQjxmbG9hdD4+IGNvbnZlcnQoY29uc3QgQTk4UkdCPGZsb2F0
PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEE5OFJHQjxmbG9h
dD4sIFhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBB
OThSR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPEE5OFJHQjxmbG9hdD4+Jik7Ci19Owot
Ci0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJB
OThSR0I8ZmxvYXQ+LCBBOThSR0I8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IExpbmVhckE5OFJHQjxmbG9hdD4gY29udmVydChjb25zdCBBOThSR0I8ZmxvYXQ+Jik7Ci19Owot
Ci0KLS8vIERpc3BsYXlQMwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZv
cjxEaXNwbGF5UDM8ZmxvYXQ+PiwgRGlzcGxheVAzPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBYWVpGb3I8RGlzcGxheVAzPGZsb2F0Pj4gY29udmVydChjb25zdCBEaXNwbGF5
UDM8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248RGlz
cGxheVAzPGZsb2F0PiwgWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIERpc3BsYXlQMzxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8RGlzcGxh
eVAzPGZsb2F0Pj4mKTsKLX07Ci0KLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29s
b3JDb252ZXJzaW9uPExpbmVhckRpc3BsYXlQMzxmbG9hdD4sIERpc3BsYXlQMzxmbG9hdD4+IHsK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyRGlzcGxheVAzPGZsb2F0PiBjb252ZXJ0
KGNvbnN0IERpc3BsYXlQMzxmbG9hdD4mKTsKLX07Ci0KLQotLy8gRXh0ZW5kZWRTUkdCQQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0
Pj4sIEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZ
WkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBFeHRlbmRlZFNSR0JBPGZs
b2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEV4dGVuZGVk
U1JHQkE8ZmxvYXQ+LCBYWVpGb3I8RXh0ZW5kZWRTUkdCQTxmbG9hdD4+PiB7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIEV4dGVuZGVkU1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9y
PEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiYpOwotfTsKIAotLy8gQWRkaXRpb25zCi10ZW1wbGF0ZTw+
IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4sIEV4dGVu
ZGVkU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhckV4dGVu
ZGVkU1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgRXh0ZW5kZWRTUkdCQTxmbG9hdD4mKTsKLX07
CisvLyBNQVJLOiBDaHJvbWF0aWMgQWRhcHRhdGlvbiBjb252ZXJzaW9ucy4KIAorLy8gaHR0cDov
L3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCit0
ZW1wbGF0ZTxXaGl0ZVBvaW50IEZyb20sIFdoaXRlUG9pbnQgVG8+IHN0cnVjdCBDaHJvbWF0aWNB
ZGFwYXRpb247CiAKLS8vIEhTTEEKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxY
WVpGb3I8SFNMQTxmbG9hdD4+LCBIU0xBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBYWVpGb3I8SFNMQTxmbG9hdD4+IGNvbnZlcnQoY29uc3QgSFNMQTxmbG9hdD4mKTsKK3Rl
bXBsYXRlPD4gc3RydWN0IENocm9tYXRpY0FkYXBhdGlvbjxXaGl0ZVBvaW50OjpENjUsIFdoaXRl
UG9pbnQ6OkQ1MD4geworICAgIHN0YXRpYyBjb25zdGV4cHIgQ29sb3JNYXRyaXg8MywgMz4gbWF0
cml4IHsKKyAgICAgICAgIDEuMDQ3ODExMmYsIDAuMDIyODg2NmYsIC0wLjA1MDEyNzBmLAorICAg
ICAgICAgMC4wMjk1NDI0ZiwgMC45OTA0ODQ0ZiwgLTAuMDE3MDQ5MWYsCisgICAgICAgIC0wLjAw
OTIzNDVmLCAwLjAxNTA0MzZmLCAgMC43NTIxMzE2ZgorICAgIH07CiB9OwogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBDb2xvckNvbnZlcnNpb248SFNMQTxmbG9hdD4sIFhZWkZvcjxIU0xBPGZsb2F0Pj4+
IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSFNMQTxmbG9hdD4gY29udmVydChjb25zdCBY
WVpGb3I8SFNMQTxmbG9hdD4+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDaHJvbWF0aWNBZGFwYXRp
b248V2hpdGVQb2ludDo6RDUwLCBXaGl0ZVBvaW50OjpENjU+IHsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIENvbG9yTWF0cml4PDMsIDM+IG1hdHJpeCB7CisgICAgICAgICAwLjk1NTU3NjZmLCAtMC4w
MjMwMzkzZiwgMC4wNjMxNjM2ZiwKKyAgICAgICAgLTAuMDI4Mjg5NWYsICAxLjAwOTk0MTZmLCAw
LjAyMTAwNzdmLAorICAgICAgICAgMC4wMTIyOTgyZiwgLTAuMDIwNDgzMGYsIDEuMzI5OTA5OGYK
KyAgICB9OwogfTsKIAotLy8gQWRkaXRpb25zCisvLyBNQVJLOiBIU0xBCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBIU0xBPGZsb2F0Pj4gewogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBIU0xBPGZsb2F0
PiYpOwogfTsKLQotCi0vLyBIV0JBCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248
WFlaRm9yPEhXQkE8ZmxvYXQ+PiwgSFdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgWFlaRm9yPEhXQkE8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IEhXQkE8ZmxvYXQ+Jik7Ci19
OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248SFdCQTxmbG9hdD4sIFhZWkZv
cjxIV0JBPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSFdCQTxmbG9hdD4g
Y29udmVydChjb25zdCBYWVpGb3I8SFdCQTxmbG9hdD4+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBD
b2xvckNvbnZlcnNpb248SFNMQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj4geworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBIU0xBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYpOwog
fTsKIAotLy8gQWRkaXRpb25zCisvLyBNQVJLOiBIV0JBCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBIV0JBPGZsb2F0Pj4gewogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBIV0JBPGZsb2F0PiYpOwogfTsK
LQotCi0vLyBMQ0hBCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPExD
SEE8ZmxvYXQ+PiwgTENIQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFla
Rm9yPExDSEE8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExDSEE8ZmxvYXQ+Jik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TENIQTxmbG9hdD4sIFhZWkZvcjxMQ0hBPGZs
b2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTENIQTxmbG9hdD4gY29udmVydChj
b25zdCBYWVpGb3I8TENIQTxmbG9hdD4+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZl
cnNpb248SFdCQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBIV0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYpOwogfTsKIAotLy8g
QWRkaXRpb25zCisvLyBNQVJLOiBMQ0hBCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248TGFiPGZsb2F0PiwgTENIQTxmbG9hdD4+IHsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
TGFiPGZsb2F0PiBjb252ZXJ0KGNvbnN0IExDSEE8ZmxvYXQ+Jik7CiB9OwotCi0KLS8vIExhYgot
dGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMYWI8ZmxvYXQ+PiwgTGFi
PGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8TGFiPGZsb2F0Pj4g
Y29udmVydChjb25zdCBMYWI8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248TGFiPGZsb2F0PiwgWFlaRm9yPExhYjxmbG9hdD4+PiB7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIExhYjxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8TGFiPGZsb2F0
Pj4mKTsKLX07Ci0KLS8vIEFkZGl0aW9ucwogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPExDSEE8ZmxvYXQ+LCBMYWI8ZmxvYXQ+PiB7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IExDSEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgTGFiPGZsb2F0PiYpOwogfTsKIAotCi0vLyBMaW5l
YXJBOThSR0IKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFy
QTk4UkdCPGZsb2F0Pj4sIExpbmVhckE5OFJHQjxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgWFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+IGNvbnZlcnQoY29uc3QgTGluZWFy
QTk4UkdCPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PExpbmVhckE5OFJHQjxmbG9hdD4sIFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+Pj4gewotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMaW5lYXJBOThSR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3Qg
WFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBs
YXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+LCBMaW5lYXJBOThSR0I8
ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEE5OFJHQjxmbG9hdD4gY29udmVy
dChjb25zdCBMaW5lYXJBOThSR0I8ZmxvYXQ+Jik7Ci19OwotCi0KLS8vIExpbmVhckRpc3BsYXlQ
MwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJEaXNwbGF5
UDM8ZmxvYXQ+PiwgTGluZWFyRGlzcGxheVAzPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5l
YXJEaXNwbGF5UDM8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZl
cnNpb248TGluZWFyRGlzcGxheVAzPGZsb2F0PiwgWFlaRm9yPExpbmVhckRpc3BsYXlQMzxmbG9h
dD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhckRpc3BsYXlQMzxmbG9hdD4g
Y29udmVydChjb25zdCBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4mKTsKKy8vIE1BUks6
IExhYgordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkE8ZmxvYXQsIFdoaXRl
UG9pbnQ6OkQ1MD4sIExhYjxmbG9hdD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFla
QTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPiBjb252ZXJ0KGNvbnN0IExhYjxmbG9hdD4mKTsKIH07
Ci0KLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPERpc3Bs
YXlQMzxmbG9hdD4sIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgRGlzcGxheVAzPGZsb2F0PiBjb252ZXJ0KGNvbnN0IExpbmVhckRpc3BsYXlQMzxm
bG9hdD4mKTsKK3RlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMYWI8ZmxvYXQ+LCBY
WVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+PiB7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IExhYjxmbG9hdD4gY29udmVydChjb25zdCBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+Jik7
CiB9OwogCi0KLS8vIExpbmVhckV4dGVuZGVkU1JHQkEKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9y
Q29udmVyc2lvbjxYWVpGb3I8TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+LCBMaW5lYXJFeHRl
bmRlZFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8TGlu
ZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+IGNvbnZlcnQoY29uc3QgTGluZWFyRXh0ZW5kZWRTUkdC
QTxmbG9hdD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5l
YXJFeHRlbmRlZFNSR0JBPGZsb2F0PiwgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+
Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0
PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4mKTsKLX07
Ci0KLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEV4dGVu
ZGVkU1JHQkE8ZmxvYXQ+LCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBFeHRlbmRlZFNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IExpbmVh
ckV4dGVuZGVkU1JHQkE8ZmxvYXQ+Jik7Ci19OwotCi0KLS8vIExpbmVhclByb1Bob3RvUkdCCi10
ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPExpbmVhclByb1Bob3RvUkdC
PGZsb2F0Pj4sIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBYWVpGb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExp
bmVhclByb1Bob3RvUkdCPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uPExpbmVhclByb1Bob3RvUkdCPGZsb2F0PiwgWFlaRm9yPExpbmVhclByb1Bob3Rv
UkdCPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyUHJvUGhvdG9S
R0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4m
KTsKLX07Ci0KLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PFByb1Bob3RvUkdCPGZsb2F0PiwgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiB7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFByb1Bob3RvUkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0IExpbmVh
clByb1Bob3RvUkdCPGZsb2F0PiYpOwotfTsKLQotCi0vLyBMaW5lYXJSZWMyMDIwCi10ZW1wbGF0
ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+Piwg
TGluZWFyUmVjMjAyMDxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9y
PExpbmVhclJlYzIwMjA8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+
Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyUmVjMjAy
MDxmbG9hdD4sIFhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgTGluZWFyUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8TGlu
ZWFyUmVjMjAyMDxmbG9hdD4+Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3Ry
dWN0IENvbG9yQ29udmVyc2lvbjxSZWMyMDIwPGZsb2F0PiwgTGluZWFyUmVjMjAyMDxmbG9hdD4+
IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25z
dCBMaW5lYXJSZWMyMDIwPGZsb2F0PiYpOwotfTsKLQotCi0vLyBMaW5lYXJTUkdCQQotdGVtcGxh
dGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+LCBM
aW5lYXJTUkdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9yPExp
bmVhclNSR0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mKTsKLX07
Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJTUkdCQTxmbG9hdD4s
IFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IExpbmVhclNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9h
dD4+Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVy
c2lvbjxTUkdCQTxmbG9hdD4sIExpbmVhclNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4m
KTsKLX07Ci0KLQotLy8gUHJvUGhvdG9SR0IKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVy
c2lvbjxYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiwgUHJvUGhvdG9SR0I8ZmxvYXQ+PiB7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxQcm9QaG90b1JHQjxmbG9hdD4+IGNvbnZl
cnQoY29uc3QgUHJvUGhvdG9SR0I8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBD
b2xvckNvbnZlcnNpb248UHJvUGhvdG9SR0I8ZmxvYXQ+LCBYWVpGb3I8UHJvUGhvdG9SR0I8Zmxv
YXQ+Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQcm9QaG90b1JHQjxmbG9hdD4gY29u
dmVydChjb25zdCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiYpOwotfTsKLQotLy8gQWRkaXRp
b25zCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyUHJvUGhvdG9SR0I8
ZmxvYXQ+LCBQcm9QaG90b1JHQjxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgUHJvUGhvdG9SR0I8ZmxvYXQ+
Jik7Ci19OwotCi0KLS8vIFJlYzIwMjAKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lv
bjxYWVpGb3I8UmVjMjAyMDxmbG9hdD4+LCBSZWMyMDIwPGZsb2F0Pj4gewotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBYWVpGb3I8UmVjMjAyMDxmbG9hdD4+IGNvbnZlcnQoY29uc3QgUmVjMjAy
MDxmbG9hdD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxSZWMy
MDIwPGZsb2F0PiwgWFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj4gewotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBSZWMyMDIwPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxSZWMyMDIwPGZsb2F0
Pj4mKTsKLX07Ci0KLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPExpbmVhclJlYzIwMjA8ZmxvYXQ+LCBSZWMyMDIwPGZsb2F0Pj4gewotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBMaW5lYXJSZWMyMDIwPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFJlYzIwMjA8
ZmxvYXQ+Jik7Ci19OwotCi0KLS8vIFNSR0JBCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZl
cnNpb248WFlaRm9yPFNSR0JBPGZsb2F0Pj4sIFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBYWVpGb3I8U1JHQkE8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZs
b2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFNSR0JBPGZs
b2F0PiwgWFlaRm9yPFNSR0JBPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
U1JHQkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPFNSR0JBPGZsb2F0Pj4mKTsKLX07Ci0K
LS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhclNS
R0JBPGZsb2F0PiwgU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExp
bmVhclNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYpOwotfTsKLQotdGVt
cGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhTTEE8ZmxvYXQ+LCBTUkdCQTxmbG9hdD4+
IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSFNMQTxmbG9hdD4gY29udmVydChjb25zdCBT
UkdCQTxmbG9hdD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxI
V0JBPGZsb2F0PiwgU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhX
QkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+Jik7Ci19OwotCi0vLyBTcGVjaWFs
IGNhc2VzIGZvciBTUkdCQTx1aW50OF90Pi4gT25seSBzUkdCIHN1cHBvcnRzIG5vbi1mbG9hdGlu
ZyBwb2ludCBjb21wb25lbnQgdHlwZXMuCisvLyBNQVJLOiBTUkdCQTx1aW50OF90PgorLy8gT25s
eSBzUkdCIHN1cHBvcnRzIG5vbi1mbG9hdGluZyBwb2ludCBjb21wb25lbnQgdHlwZXMuCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBTUkdCQTx1aW50OF90
Pj4gewogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25z
dCBTUkdCQTx1aW50OF90PiYpOwogfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPFNSR0JBPHVpbnQ4X3Q+LCBTUkdCQTxmbG9hdD4+IHsKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgU1JHQkE8dWludDhfdD4gY29udmVydChjb25zdCBTUkdCQTxmbG9hdD4mKTsKIH07CiAK
IAotLy8gWFlaQSBDaHJvbWF0aWMgQWRhcHRhdGlvbiBjb252ZXJzaW9ucy4KLXRlbXBsYXRlPD4g
c3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+LCBYWVpB
PGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZ
WkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4gY29udmVydChjb25zdCBYWVpBPGZsb2F0LCBXaGl0
ZVBvaW50OjpENTA+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248
WFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPiwgWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDY1
Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpE
NTA+IGNvbnZlcnQoY29uc3QgWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDY1PiYpOwotfTsKLQot
CiAvLyBJZGVudGl0eSBjb252ZXJzaW9uLgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+
IHN0cnVjdCBDb2xvckNvbnZlcnNpb248Q29sb3JUeXBlLCBDb2xvclR5cGU+IHsKQEAgLTMyOCw1
NiArMTIxLDE3OCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IHN0cnVjdCBDb2xvCiAg
ICAgfQogfTsKIAotLy8gRmFsbGJhY2sgY29udmVyc2lvbi4KIAotLy8gQWxsIHR5cGVzIGFyZSBy
ZXF1aXJlZCB0byBoYXZlIGEgY29udmVyc2lvbiB0byB0aGVpciByZWZlcmVuY2UgWFlaIHNwYWNl
LCBzbyB0aGlzIGlzIGd1YXJhbnRlZWQKLS8vIHRvIHdvcmsgaWYgYW5vdGhlciBzcGVjaWFsaXph
dGlvbiBpcyBub3QgYWxyZWFkeSBwcm92aWRlZC4KLQotLy8gRklYTUU6IFJhdGhlciB0aGFuIGFs
d2F5cyBjb252ZXJ0aW5nIHRocm91Z2ggcmVmZXJlbmNlIFhZWiBjb2xvciBzcGFjZQotLy8gd2Ug
c2hvdWxkIGluc3RlYWQgc3dpdGNoIHRvIGNvbXB1dGluZyB0aGUgbGVhc3QgY29tbW9uIHJlZmVy
ZW5jZSBhbmNlc3RvcgotLy8gdHlwZSB3aGVyZSBlYWNoIGNvbG9yIHR5cGUgZGVmaW5lcyBpdHMg
cmVmZXJlbmNlIHR5cGUgYXMgdGhlIGNvbG9yIGl0IG5lZWRzCi0vLyB0byBnZXQgb25lIHN0ZXAg
Y2xvc2VyIHRvIHRoZSByZWZlcmVuY2UgWFlaIGNvbG9yIHNwYWNlLiBGb3IgaW5zdGFuY2UsCi0v
LyB0aGUgcmVmZXJlbmNlIHR5cGUgb2YgU1JHQkEgaXMgTGluZWFyU1JHQkEsIGFuZCB0aGUgcmVm
ZXJlbmNlIHR5cGUgb2YgTENIQQotLy8gaXMgTGFiLiBUb2dldGhlciwgdGhlIGNvbG9yIHR5cGVz
IG1ha2UgYSB0cmVlIHdpdGggWFlaIGF0IHRoZSByb290LiBUaGUKLS8vIGNvbnZlcnNpb24gc2hv
dWxkIGVuZCB1cCBsb29raW5nIHNvbWV0aGluZyBsaWtlOgotLy8KLS8vICAgdXNpbmcgTENBID0g
TGVhc3RDb21tb25BbmNlc3RvcjxPdXRwdXQsIElucHV0Pjo6VHlwZTsKLS8vICAgcmV0dXJuIGNv
bnZlcnRDb2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjxMQ0E+KGNvbG9yKSk7Ci0vLwotLy8gQW4g
ZXhhbXBsZSBvZiB3aGVyZSB0aGlzIHdvdWxkIGJlIG1vcmUgZWZmaWNpZW50IGlzIHdoZW4gY29u
dmVydGluZyBmcm9tCi0vLyBIU0xBPGZsb2F0PiB0byBIV0JBPGZsb2F0Pi4gTENBIGZvciB0aGlz
IHBhaXIgaXMgU1JHQkE8ZmxvYXQ+IHNvIGNvbnZlcnNpb24KLS8vIHRocm91Z2ggWFlaIGlzIHdh
c3RlZnVsLiBUaGlzIG1vZGVsIHdvdWxkIGFsc28gYWxsb3cgdXMgdG8gcmVtb3ZlIHRoZQotLy8g
Y29tYmluYXRpb24gY29udmVyc2lvbnMsIHJlZHVjaW5nIHRoZSBudW1iZXIgb2YgdGhpbmdzIGVh
Y2ggbmV3IGNvbG9yIHR5cGUKLS8vIHJlcXVpcmVzLgotLy8KLS8vIEZJWE1FOiBSZWR1Y2UgdG90
YWwgbnVtYmVyIG9mIG1hdHJpeCB0cmFuZm9ybXMgYnkgY29uY2F0ZW5hdGluZyB0aGUgbWF0cmlj
ZXMKLS8vIG9mIHNlcXVlbnRpYWwgbWF0cml4IHRyYW5zZm9ybXMgYXQgY29tcGlsZSB0aW1lLiBU
YWtlIHRoZSBjb252ZXJzaW9uIGZyb20KLS8vIFByb1Bob3RvUkdCPGZsb2F0PiB0byBTUkdCQTxm
bG9hdD4gYXMgYW4gZXhhbXBsZToKLS8vCi0vLyAgIDEuIFByb1Bob3RvUkdCPGZsb2F0PiAtPiBM
aW5lYXJQcm9QaG90b1JHQjxmbG9hdD4gICAgICAgICAgICAgICAgICAodHJhbnNmZXIgZnVuY3Rp
b24gdHJhbnNmb3JtLCBub3QgbWF0cml4KQotLy8gICAyLiBMaW5lYXJQcm9QaG90b1JHQjxmbG9h
dD4gLT4gWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPiAgICAgICAgTUFUUklYIFRSQU5TRk9S
TQotLy8gICAzLiBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+IC0+IFhZWkE8ZmxvYXQsIFdo
aXRlUG9pbnQ6OkQ2NT4gICAgTUFUUklYIFRSQU5TRk9STQotLy8gICA0LiBYWVpBPGZsb2F0LCBX
aGl0ZVBvaW50OjpENjU+IC0+IExpbmVhclNSR0JBPGZsb2F0PiAgICAgICAgICAgICAgTUFUUklY
IFRSQU5TRk9STQotLy8gICA1LiBMaW5lYXJTUkdCQTxmbG9hdD4gLT4gU1JHQkE8ZmxvYXQ+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5zZmVyIGZ1bmN0aW9uIHRyYW5zZm9ybSwg
bm90IG1hdHJpeCkKLS8vCi0vLyBTdGVwcyAyLCAzLCBhbmQgNCBjYW4gYmUgY29tYmluZWQgaW50
byBvbmUgc2luZ2xlIG1hdHJpeCBpZiB3ZSBsaW5lYXJseQotLy8gY29uY2F0ZW50ZWQgdGhlIHRo
cmVlIG1hdHJpY2VzLiBUbyBkbyB0aGlzLCB3ZSB3aWxsIGhhdmUgdG8gdGFnIHdoaWNoIGNvbnZl
cnNpb25zCi0vLyBhcmUgbWF0cml4IGJhc2VkLCBleHBvc2UgdGhlIG1hdHJpY2VzLCBhZGQgc3Vw
cG9ydCBmb3IgY29uc3RleHByIGNvbmNhdGVudGluZwotLy8gb2YgQ29sb3JNYXRyaXggYW5kIGZp
bmQgYSB3YXkgdG8gbWVyZ2UgdGhlIGNvbnZlcnNpb25zLgorLy8gTWFpbiBjb252ZXJzaW9uLgog
Ci10ZW1wbGF0ZTx0eXBlbmFtZSBPdXRwdXQsIHR5cGVuYW1lIElucHV0PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uIHsKLSAgICBzdGF0aWMgT3V0cHV0IGNvbnZlcnQoY29uc3QgSW5wdXQmIGNvbG9y
KQorLy8gICAgICAgICAgICAgICAg4pSMIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pS8IOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSQCisvLyAgICAgICAgICAgICAgICAgTWF0cml4IENvbnZlcnNpb25z
ICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUguKUjOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorLy8gICAgICAgICAgICAgICAg4pSCICAgICAg
ICAgICAgICAgICAgICAgIOKUgiBYWVogKEQ1MCkg4pSC4pSC4pSCIFhZWiAoRDY1KSDilIIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
4pSCCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUlOKUgOKUgOKU
gOKUgOKUgOKWsuKUgOKUgOKUgOKUgOKUgOKUmOKUguKUlOKUgOKUgOKUgOKUgOKUgOKWsuKUgOKU
gOKUgOKUgOKUgOKUmAorLy8gICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIOKUgiAgICAgIOKUgiAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIKKy8vICAgICAgIOKUjOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAg
ICAgIOKUgiAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAor
Ly8gICAgICAg4pSCICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAg
ICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUggorLy8gICAgICAg4pSCICAgICAgICAg
ICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAg
IOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggorLy8gICAg
ICAg4pSCICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSC
ICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAg4pSCICAgICAgICAgICAgICAgIOKUggorLy8gICAgICAg4pSCICAgICAgICAgIFByb1Bo
b3RvUkdC4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSQICAg4pSCICAgU1JHQuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCBEaXNwbGF5UDPi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilJAgQTk4UkdC4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIFJlYzIwMjDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAK
Ky8vICAgICAgIOKUgiAgICAgICAg4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
kCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDi
lIIgICDilIIgICDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilJDilIIg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ
IOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKU
giDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUggorLy8gICAgICAg4pSCICAg
ICAgICAgIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIgICDilIIg
ICDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC4pSCIOKUguKUgiBMaW5l
YXIg4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIg4pSC4pSCIExpbmVhciDilIIg4pSCIExp
bmVhckV4dGVuZGVkIOKUguKUgiDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg
4pSC4pSCCisvLyAgICAgICDilIIgICAgICAgIOKUgiDilILilJTilIDilIDilIDilIDilIDilIDi
lIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSY4pSCICAg4pSCICAg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUgiDilILi
lJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJjilIIg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUgiDilIIKKy8vICAgICAg
IOKUgiAgICAgICAgIOKUgOKUguKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSA4pSC4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgOKUguKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
4pSC4pSA4pSC4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIDilILilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgAorLy8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSQICAgIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIgICDi
lIIgICDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilJDilIIg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUgiDilILi
lIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCCisvLyDilIIgICAgTGFiICAgIOKUgiAgICDi
lILilIIgR2FtbWEgIOKUgiDilIIgR2FtbWFFeHRlbmRlZCAg4pSC4pSCICAg4pSCICAg4pSC4pSC
IEdhbW1hICDilIIg4pSCIEdhbW1hRXh0ZW5kZWQgIOKUguKUgiDilILilIIgR2FtbWEgIOKUgiDi
lIIgR2FtbWFFeHRlbmRlZCAg4pSC4pSCIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVu
ZGVkICDilILilIIg4pSC4pSCIEdhbW1hICDilIIg4pSCIEdhbW1hRXh0ZW5kZWQgIOKUguKUggor
Ly8g4pSU4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSYICAgIOKUguKUlOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilJjilIIgICDilIIgICDilILilJTilIDilIDilIDilIDilrLilIDi
lIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSY4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSC4pSU4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg
4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSC
CisvLyAgICAgICDilIIgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSYICAg4pSCICAg4pSU4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCisvLyAgICAgICDi
lIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgIOKU
jOKUgOKUgOKUtOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorLy8gICAgICAg4pSCICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICDilIIgICAgICAgICAgICAg4pSC
ICAgICAgICAgICAgIOKUggorLy8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilILilIzilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSQ4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisv
LyDilIIgICAgTENIICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
4pSC4pSCICAgIEhTTCAgICDilIIg4pSCICAgIEhXQiAgICDilILilIJTUkdCPHVpbnQ4X3Q+4pSC
CisvLyDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJjilJTilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJgKKwordGVtcGxhdGU8dHlwZW5h
bWUgT3V0cHV0LCB0eXBlbmFtZSBJbnB1dCwgdHlwZW5hbWU+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b24geworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgT3V0cHV0IGNvbnZlcnQoY29uc3Qg
SW5wdXQmIGNvbG9yKQogICAgIHsKLSAgICAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX3NhbWVf
djxJbnB1dCwgU1JHQkE8dWludDhfdD4+KQorICAgICAgICAvLyAxLiBIYW5kbGUgdGhlIHNwZWNp
YWwgY2FzZSBTUkdCQTx1aW50OF90PiBmb3IgSW5wdXQgYW5kIE91dHB1dC4KKyAgICAgICAgaWYg
Y29uc3RleHByIChzdGQ6OmlzX3NhbWVfdjxJbnB1dCwgU1JHQkE8dWludDhfdD4+IHx8IHN0ZDo6
aXNfc2FtZV92PE91dHB1dCwgU1JHQkE8dWludDhfdD4+KQogICAgICAgICAgICAgcmV0dXJuIGNv
bnZlcnRDb2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci0g
ICAgICAgIGVsc2UgaWYgY29uc3RleHByIChzdGQ6OmlzX3NhbWVfdjxPdXRwdXQsIFNSR0JBPHVp
bnQ4X3Q+PikKLSAgICAgICAgICAgIHJldHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+
KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci0gICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgYXV0byB4eXoxID0gY29udmVydENvbG9yPFhZWkZvcjxJbnB1dD4+KGNvbG9yKTsK
LSAgICAgICAgICAgIGF1dG8geHl6MiA9IGNvbnZlcnRDb2xvcjxYWVpGb3I8T3V0cHV0Pj4oeHl6
MSk7Ci0gICAgICAgICAgICByZXR1cm4gY29udmVydENvbG9yPE91dHB1dD4oeHl6Mik7CisKKyAg
ICAgICAgLy8gMi4gSGFuZGxlIGFsbCBjb2xvciB0eXBlcyB0aGF0IGFyZSBub3QgSXNSR0JUeXBl
PFQ+IG9yIElzWFlaQTxUPiBmb3IgSW5wdXQgYW5kIE91dHB1dC4gRm9yIGFsbAorICAgICAgICAv
LyAgICB0aGVzZSBvdGhlciBjb2xvciB0eXBlcywgd2UgY2FuIHVuY29uZHRpb25hbGx5IGNvbnZl
cnQgdGhlbSB0byB0aGVpciAicmVmZXJlbmNlIiBjb2xvciwgYXMKKyAgICAgICAgLy8gICAgZWl0
aGVyIHRoZXkgaGF2ZSBhbHJlYWR5IGJlZW4gaGFuZGxlZCBieSBhIENvbG9yQ29udmVyc2lvbiBz
cGVjaWFsaXphdGlvbiBvciB0aGlzIHdpbGwKKyAgICAgICAgLy8gICAgZ2V0IHVzIGNsb3NlciB0
byB0aGUgZmluYWwgY29udmVyc2lvbi4KKyAgICAgICAgZWxzZSBpZiBjb25zdGV4cHIgKCFJc1JH
QlR5cGU8SW5wdXQ+ICYmICFJc1hZWkE8SW5wdXQ+KQorICAgICAgICAgICAgcmV0dXJuIGNvbnZl
cnRDb2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjx0eXBlbmFtZSBJbnB1dDo6UmVmZXJlbmNlPihj
b2xvcikpOworICAgICAgICBlbHNlIGlmIGNvbnN0ZXhwciAoIUlzUkdCVHlwZTxPdXRwdXQ+ICYm
ICFJc1hZWkE8T3V0cHV0PikKKyAgICAgICAgICAgIHJldHVybiBjb252ZXJ0Q29sb3I8T3V0cHV0
Pihjb252ZXJ0Q29sb3I8dHlwZW5hbWUgT3V0cHV0OjpSZWZlcmVuY2U+KGNvbG9yKSk7CisKKyAg
ICAgICAgLy8gMy4gSGFuZGxlIGNvbnZlcnNpb25zIHdpdGhpbiBhIFJHQkZhbWlseSAoZS5nLiBh
bGwgaGF2ZSB0aGUgc2FtZSBkZXNjcmlwdG9yKS4KKyAgICAgICAgZWxzZSBpZiBjb25zdGV4cHIg
KElzU2FtZVJHQlR5cGVGYW1pbHk8T3V0cHV0LCBJbnB1dD4pCisgICAgICAgICAgICByZXR1cm4g
aGFuZGxlUkdCRmFtaWx5Q29udmVyc2lvbihjb2xvcik7CisKKyAgICAgICAgLy8gNC4gSGFuZGxl
IGFueSBnYW1tYSBjb252ZXJzaW9ucyBmb3IgdGhlIElucHV0IGFuZCBPdXRwdXQuCisgICAgICAg
IGVsc2UgaWYgY29uc3RleHByIChJc1JHQkdhbW1hRW5jb2RlZFR5cGU8SW5wdXQ+KQorICAgICAg
ICAgICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjx0eXBlbmFtZSBJ
bnB1dDo6TGluZWFyQ291bnRlcnBhcnQ+KGNvbG9yKSk7CisgICAgICAgIGVsc2UgaWYgY29uc3Rl
eHByIChJc1JHQkdhbW1hRW5jb2RlZFR5cGU8T3V0cHV0PikKKyAgICAgICAgICAgIHJldHVybiBj
b252ZXJ0Q29sb3I8T3V0cHV0Pihjb252ZXJ0Q29sb3I8dHlwZW5hbWUgT3V0cHV0OjpMaW5lYXJD
b3VudGVycGFydD4oY29sb3IpKTsKKworICAgICAgICAvLyA1LiBBdCB0aGlzIHBvaW50LCBJbnB1
dCBhbmQgT3V0cHV0IGFyZSBlYWNoIGVpdGhlciBMaW5lYXItUkdCIHR5cGVzIChvZiBkaWZmZXJl
bnQgZmFtaWxlcykgb3IgWFlaQQorICAgICAgICAvLyAgICBhbmQgdGhlcmVmb3JlIGFsbCBhZGRp
dGlvbmFsIGNvbnZlcnNpb24gY2FuIGhhcHBlbiB2aWEgbWF0cml4IHRyYW5zZm9ybWF0aW9uLgor
ICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gaGFuZGxlTWF0cml4Q29udmVyc2lvbihj
b2xvcik7CisgICAgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlw
ZT4gc3RhdGljIGlubGluZSBjb25zdGV4cHIgYXV0byB0b0xpbmVhckVuY29kZWQoY29uc3QgQ29s
b3JUeXBlJiBjb2xvcikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpMaW5lYXJDb3VudGVycGFydAor
ICAgIHsKKyAgICAgICAgYXV0byBbYzEsIGMyLCBjMywgYWxwaGFdID0gY29sb3I7CisgICAgICAg
IHJldHVybiB7IENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9MaW5lYXIoYzEpLCBDb2xv
clR5cGU6OlRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFyKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2Zl
ckZ1bmN0aW9uOjp0b0xpbmVhcihjMyksIGFscGhhIH07CisgICAgfQorCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgaW5saW5lIGNvbnN0ZXhwciBhdXRvIHRvR2FtbWFF
bmNvZGVkKGNvbnN0IENvbG9yVHlwZSYgY29sb3IpIC0+IHR5cGVuYW1lIENvbG9yVHlwZTo6R2Ft
bWFFbmNvZGVkQ291bnRlcnBhcnQKKyAgICB7CisgICAgICAgIGF1dG8gW2MxLCBjMiwgYzMsIGFs
cGhhXSA9IGNvbG9yOworICAgICAgICByZXR1cm4geyBDb2xvclR5cGU6OlRyYW5zZmVyRnVuY3Rp
b246OnRvR2FtbWFFbmNvZGVkKGMxKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0aW9uOjp0b0dh
bW1hRW5jb2RlZChjMiksIENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9HYW1tYUVuY29k
ZWQoYzMpLCBhbHBoYSB9OworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlw
ZT4gc3RhdGljIGlubGluZSBjb25zdGV4cHIgYXV0byB0b0V4dGVuZGVkKGNvbnN0IENvbG9yVHlw
ZSYgY29sb3IpIC0+IHR5cGVuYW1lIENvbG9yVHlwZTo6RXh0ZW5kZWRDb3VudGVycGFydAorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1ha2VGcm9tQ29tcG9uZW50czx0eXBlbmFtZSBDb2xvclR5cGU6
OkV4dGVuZGVkQ291bnRlcnBhcnQ+KGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSk7CisgICAgfQor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgaW5saW5lIGNvbnN0ZXhw
ciBhdXRvIHRvQm91bmRlZChjb25zdCBDb2xvclR5cGUmIGNvbG9yKSAtPiB0eXBlbmFtZSBDb2xv
clR5cGU6OkJvdW5kZWRDb3VudGVycGFydAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1ha2VGcm9t
Q29tcG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8dHlwZW5hbWUgQ29sb3JUeXBlOjpCb3VuZGVk
Q291bnRlcnBhcnQ+KGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSk7CisgICAgfQorCisgICAgc3Rh
dGljIGlubGluZSBjb25zdGV4cHIgT3V0cHV0IGhhbmRsZVJHQkZhbWlseUNvbnZlcnNpb24oY29u
c3QgSW5wdXQmIGNvbG9yKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChJc1NhbWVSR0JU
eXBlRmFtaWx5PE91dHB1dCwgSW5wdXQ+KTsKKworICAgICAgICAvLyAgUkdCIEZhbWlseeKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
kAorICAgICAgICAvLyAg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUggorICAgICAg
ICAvLyAg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4dGVuZGVkIOKUguKUggorICAgICAg
ICAvLyAg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUggorICAgICAgICAvLyAg4pSC
4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUggorICAgICAgICAvLyAg4pSC4pSCIEdhbW1h
ICDilIIg4pSCIEdhbW1hRXh0ZW5kZWQgIOKUguKUggorICAgICAgICAvLyAg4pSC4pSU4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUmOKUggorICAgICAgICAvLyAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSYCisKKyAgICAgICAgLy8gVGhpcyBoYW5kbGVzIGNvbnZlcnNpb25zIGJl
dHdlZW4gYW55IHR3byBvZiB0aGVzZSB3aXRoaW4gdGhlIHNhbWUgZmFtaWx5LCBzbyBTUkdCTGlu
ZWFyIC0+IFNSR0IsIGJ1dCBub3QKKyAgICAgICAgLy8gU1JHQkxpbmVhciAtPiBBOThSR0IuCisK
KyAgICAgICAgYXV0byBib3VuZHNDb252ZXJzaW9uID0gW10oYXV0byBjb2xvcikgeworICAgICAg
ICAgICAgaWYgY29uc3RleHByIChJc1JHQkV4dGVuZGVkVHlwZTxPdXRwdXQ+ICYmIElzUkdCQm91
bmRlZFR5cGU8SW5wdXQ+KQorICAgICAgICAgICAgICAgIHJldHVybiB0b0V4dGVuZGVkKGNvbG9y
KTsKKyAgICAgICAgICAgIGVsc2UgaWYgY29uc3RleHByIChJc1JHQkJvdW5kZWRUeXBlPE91dHB1
dD4gJiYgSXNSR0JFeHRlbmRlZFR5cGU8SW5wdXQ+KQorICAgICAgICAgICAgICAgIHJldHVybiB0
b0JvdW5kZWQoY29sb3IpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVy
biBjb2xvcjsKKyAgICAgICAgfTsKKworICAgICAgICBhdXRvIGdhbW1hQ29udmVyc2lvbiA9IFtd
KGF1dG8gY29sb3IpIHsKKyAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAoSXNSR0JHYW1tYUVuY29k
ZWRUeXBlPE91dHB1dD4gJiYgSXNSR0JMaW5lYXJFbmNvZGVkVHlwZTxJbnB1dD4pCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVkKGNvbG9yKTsKKyAgICAgICAgICAgIGVsc2Ug
aWYgY29uc3RleHByIChJc1JHQkxpbmVhckVuY29kZWRUeXBlPE91dHB1dD4gJiYgSXNSR0JHYW1t
YUVuY29kZWRUeXBlPElucHV0PikKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9MaW5lYXJFbmNv
ZGVkKGNvbG9yKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gY29s
b3I7CisgICAgICAgIH07CisKKyAgICAgICAgcmV0dXJuIGJvdW5kc0NvbnZlcnNpb24oZ2FtbWFD
b252ZXJzaW9uKGNvbG9yKSk7CisgICAgfQorCisgICAgc3RhdGljIGlubGluZSBjb25zdGV4cHIg
T3V0cHV0IGhhbmRsZU1hdHJpeENvbnZlcnNpb24oY29uc3QgSW5wdXQmIGNvbG9yKQorICAgIHsK
KyAgICAgICAgc3RhdGljX2Fzc2VydChJc1JHQkxpbmVhckVuY29kZWRUeXBlPElucHV0PiB8fCBJ
c1hZWkE8SW5wdXQ+KTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChJc1JHQkxpbmVhckVuY29kZWRU
eXBlPE91dHB1dD4gfHwgSXNYWVpBPE91dHB1dD4pOworCisgICAgICAgIC8vICDilIwg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilLwg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilJAKKyAgICAgICAgLy8g
ICBNYXRyaXggQ29udmVyc2lvbnMgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSQ4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisgICAgICAg
IC8vICDilIIgICAgICAgICAgICAgICAgICAgICAg4pSCIFhZWiAoRDUwKSDilILilILilIIgWFla
IChENjUpIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICDilIIKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAg4pSU
4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSY4pSC4pSU4pSA4pSA4pSA4pSA4pSA
4pay4pSA4pSA4pSA4pSA4pSA4pSYCisgICAgICAgIC8vICDilIIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAg4pSCICAgICAg4pSCICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggorICAgICAgICAvLyAg
ICAgICAgICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJgg
ICAgICDilIIgICAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAK
KyAgICAgICAgLy8gIOKUgiAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICDilIIg
ICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICDilIIgICAgICAgICAgICAgICAg4pSCCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAg
IOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSC
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggorICAgICAgICAvLyAg4pSCICAgICAg
ICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAg
ICDilIIKKyAgICAgICAgLy8gICAgUHJvUGhvdG9SR0LilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgICDilIIgICBTUkdC4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSQIERpc3BsYXlQM+KUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCBBOThSR0LilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lJAgUmVjMjAyMOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAgICAvLyAg4pSCIOKUguKUjOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilJDilIIgICDilIIgICDilILilIzilIDilIDilIDilIDilIDilIDilIDi
lIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSQ4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIg4pSC4pSM4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUkOKUgiDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKU
ggorICAgICAgICAvLyAgICDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC
4pSCICAg4pSCICAg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4dGVuZGVkIOKUguKUgiDi
lILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC4pSCIOKUguKUgiBMaW5lYXIg
4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVh
ckV4dGVuZGVkIOKUguKUggorICAgICAgICAvLyAg4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilJjilIIgICDilIIgICDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKU
guKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUggorICAgICAg
ICAvLyAgIOKUgOKUguKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSA4pSC4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgOKUguKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA4pSC4pSA
4pSC4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIDilILilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgOKUguKUgAorCisgICAgICAgIC8vIFRoaXMgaGFuZGxlcyBjb252ZXJz
aW9ucyBiZXR3ZWVuIGxpbmVhciBjb2xvciB0eXBlcyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdXNp
bmcgcHJlLWRlZmluZWQKKyAgICAgICAgLy8gM3gzIG1hdHJpY2VzLgorICAgICAgICAKKyAgICAg
ICAgLy8gRklYTUU6IFByZS1jb21wdXRlICh1c2luZyBjb25zdGV4cHIpIHRoZSBjb25jYXRlbmF0
aW9uIG9mIHRoZSBtYXRyaWNlcyBwcmlvciB0byBhcHBseWluZyB0aGVtCisgICAgICAgIC8vIHRv
IHJlZHVjZSBudW1iZXIgb2YgbWF0cml4IG11bHRpcGxpY2F0aW9ucyB0byBhIG1pbmltdW0uIFRo
aXMgd2lsbCBsaWtlbHkgZ2l2ZSBzdWJ0bHkgZGlmZmVyZW50CisgICAgICAgIC8vIHJlc3VsdHMg
KGR1ZSB0byBmbG9hdGluZyBwb2ludCBlZmZlY3RzKSBzbyBpZiB0aGlzIG9wdGltYXRpb24gaXMg
Y29uc2lkZXJlZCB3ZSBzaG91bGQgZW5zdXJlIHdlCisgICAgICAgIC8vIGhhdmUgc3VmZmljaWVu
dCB0ZXN0aW5nIGNvdmVyYWdlIHRvIG5vdGljZSBhbnkgYWR2ZXJzZSBlZmZlY3RzLgorCisgICAg
ICAgIGF1dG8gYXBwbHlNYXRyaWNlcyA9IFtdKGNvbnN0IElucHV0JiBjb2xvciwgYXV0by4uLiBt
YXRyaWNlcykgeworICAgICAgICAgICAgcmV0dXJuIG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5n
RXhjZXB0QWxwaGE8T3V0cHV0PihhcHBseU1hdHJpY2VzVG9Db2xvckNvbXBvbmVudHMoYXNDb2xv
ckNvbXBvbmVudHMoY29sb3IpLCBtYXRyaWNlcy4uLikpOworICAgICAgICB9OworCisgICAgICAg
IGlmIGNvbnN0ZXhwciAoSW5wdXQ6OndoaXRlUG9pbnQgPT0gT3V0cHV0Ojp3aGl0ZVBvaW50KSB7
CisgICAgICAgICAgICBpZiBjb25zdGV4cHIgKElzWFlaQTxJbnB1dD4pCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGFwcGx5TWF0cmljZXMoY29sb3IsIE91dHB1dDo6eHl6VG9MaW5lYXIpOworICAg
ICAgICAgICAgZWxzZSBpZiBjb25zdGV4cHIgKElzWFlaQTxPdXRwdXQ+KQorICAgICAgICAgICAg
ICAgIHJldHVybiBhcHBseU1hdHJpY2VzKGNvbG9yLCBJbnB1dDo6bGluZWFyVG9YWVopOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBhcHBseU1hdHJpY2VzKGNvbG9y
LCBJbnB1dDo6bGluZWFyVG9YWVosIE91dHB1dDo6eHl6VG9MaW5lYXIpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgaWYgY29uc3RleHByIChJc1hZWkE8SW5wdXQ+ICYmIElzWFlaQTxP
dXRwdXQ+KQorICAgICAgICAgICAgICAgIHJldHVybiBhcHBseU1hdHJpY2VzKGNvbG9yLCBDaHJv
bWF0aWNBZGFwYXRpb248SW5wdXQ6OndoaXRlUG9pbnQsIE91dHB1dDo6d2hpdGVQb2ludD46Om1h
dHJpeCk7CisgICAgICAgICAgICBlbHNlIGlmIGNvbnN0ZXhwciAoSXNYWVpBPElucHV0PikKKyAg
ICAgICAgICAgICAgICByZXR1cm4gYXBwbHlNYXRyaWNlcyhjb2xvciwgQ2hyb21hdGljQWRhcGF0
aW9uPElucHV0Ojp3aGl0ZVBvaW50LCBPdXRwdXQ6OndoaXRlUG9pbnQ+OjptYXRyaXgsIE91dHB1
dDo6eHl6VG9MaW5lYXIpOworICAgICAgICAgICAgZWxzZSBpZiBjb25zdGV4cHIgKElzWFlaQTxP
dXRwdXQ+KQorICAgICAgICAgICAgICAgIHJldHVybiBhcHBseU1hdHJpY2VzKGNvbG9yLCBJbnB1
dDo6bGluZWFyVG9YWVosIENocm9tYXRpY0FkYXBhdGlvbjxJbnB1dDo6d2hpdGVQb2ludCwgT3V0
cHV0Ojp3aGl0ZVBvaW50Pjo6bWF0cml4KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICByZXR1cm4gYXBwbHlNYXRyaWNlcyhjb2xvciwgSW5wdXQ6OmxpbmVhclRvWFlaLCBDaHJv
bWF0aWNBZGFwYXRpb248SW5wdXQ6OndoaXRlUG9pbnQsIE91dHB1dDo6d2hpdGVQb2ludD46Om1h
dHJpeCwgT3V0cHV0Ojp4eXpUb0xpbmVhcik7CiAgICAgICAgIH0KKwogICAgIH0KKwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JNYXRyaXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvck1hdHJpeC5oCShyZXZpc2lvbiAyNzI4MzUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvck1hdHJpeC5oCSh3b3JraW5nIGNvcHkpCkBAIC01
Myw2ICs1MywyNSBAQCBwcml2YXRlOgogICAgIHN0ZDo6YXJyYXk8ZmxvYXQsIFJvd3MgKiBDb2x1
bW5zPiBtX21hdHJpeDsKIH07CiAKK3RlbXBsYXRlPHNpemVfdCBDb2x1bW5zLCBzaXplX3QgUm93
cz4KK2NvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29sb3JNYXRyaXg8Q29sdW1ucywg
Um93cz4mIGEsIGNvbnN0IENvbG9yTWF0cml4PENvbHVtbnMsIFJvd3M+JiBiKQoreworICAgIGZv
ciAoc2l6ZV90IHJvdyA9IDA7IHJvdyA8IFJvd3M7ICsrcm93KSB7CisgICAgICAgIGZvciAoc2l6
ZV90IGNvbHVtbiA9IDA7IGNvbHVtbiA8IENvbHVtbnM7ICsrY29sdW1uKSB7CisgICAgICAgICAg
ICBpZiAoYS5hdChyb3csIGNvbHVtbikgIT0gYi5hdChyb3csIGNvbHVtbikpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOwor
fQorCit0ZW1wbGF0ZTxzaXplX3QgQ29sdW1ucywgc2l6ZV90IFJvd3M+Citjb25zdGV4cHIgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IENvbG9yTWF0cml4PENvbHVtbnMsIFJvd3M+JiBhLCBjb25zdCBD
b2xvck1hdHJpeDxDb2x1bW5zLCBSb3dzPiYgYikKK3sKKyAgICByZXR1cm4gIShhID09IGIpOwor
fQorCisKIC8vIEZJWE1FOiBUaGVzZSBhcmUgb25seSB1c2VkIGluIEZpbHRlck9wZXJhdGlvbnMu
Y3BwLiBDb25zaWRlciBtb3ZpbmcgdGhlbSB0aGVyZS4KIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwz
LCAzPiBncmF5c2NhbGVDb2xvck1hdHJpeChmbG9hdCBhbW91bnQpCiB7CkBAIC0xMjUsNCArMTQ0
LDE0IEBAIGNvbnN0ZXhwciBDb2xvckNvbXBvbmVudHM8ZmxvYXQ+IENvbG9yTWEKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBNPiBpbmxpbmUg
Y29uc3RleHByIGF1dG8gYXBwbHlNYXRyaWNlc1RvQ29sb3JDb21wb25lbnRzKGNvbnN0IENvbG9y
Q29tcG9uZW50czxUPiYgY29tcG9uZW50cywgTSBtYXRyaXgpIC0+IENvbG9yQ29tcG9uZW50czxU
PgoreworICAgIHJldHVybiBtYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoY29tcG9u
ZW50cyk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIE0sIHR5cGVuYW1lLi4u
IE1hdHJpY2VzPiBpbmxpbmUgY29uc3RleHByIGF1dG8gYXBwbHlNYXRyaWNlc1RvQ29sb3JDb21w
b25lbnRzKGNvbnN0IENvbG9yQ29tcG9uZW50czxUPiYgY29tcG9uZW50cywgTSBtYXRyaXgsIE1h
dHJpY2VzLi4uIG1hdHJpY2VzKSAtPiBDb2xvckNvbXBvbmVudHM8VD4KK3sKKyAgICByZXR1cm4g
YXBwbHlNYXRyaWNlc1RvQ29sb3JDb21wb25lbnRzKG1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29t
cG9uZW50cyhjb21wb25lbnRzKSwgbWF0cmljZXMuLi4pOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JU
eXBlcy5oCShyZXZpc2lvbiAyNzI4MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvclR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OSw2ICsxODksNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBELCB0eXBlbmFtCiAgICAgdXNpbmcgQ29tcG9uZW50
VHlwZSA9IFQ7CiAgICAgdXNpbmcgTW9kZWwgPSBNOwogICAgIHVzaW5nIFRyYW5zZmVyRnVuY3Rp
b24gPSBURjsKKyAgICB1c2luZyBEZXNjcmlwdG9yID0gRDsKICAgICBzdGF0aWMgY29uc3RleHBy
IFdoaXRlUG9pbnQgd2hpdGVQb2ludCA9IEQ6OndoaXRlUG9pbnQ7CiAKICAgICBjb25zdGV4cHIg
UkdCQVR5cGUoVCByZWQsIFQgZ3JlZW4sIFQgYmx1ZSwgVCBhbHBoYSA9IEFscGhhVHJhaXRzPFQ+
OjpvcGFxdWUpCkBAIC0yNTcsNiArMjU4LDMxIEBAIHN0cnVjdCBFeHRlbmRlZExpbmVhckVuY29k
ZWQgOiBSR0JBVHlwZTwKICAgICB1c2luZyBSZWZlcmVuY2UgPSBYWVpBPFQsIEQ6OndoaXRlUG9p
bnQ+OwogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lID0gdm9pZD4gaW5saW5lIGNv
bnN0ZXhwciBib29sIEhhc0Rlc2NyaXB0b3JNZW1iZXIgPSBmYWxzZTsKK3RlbXBsYXRlPHR5cGVu
YW1lIENvbG9yVHlwZT4gaW5saW5lIGNvbnN0ZXhwciBib29sIEhhc0Rlc2NyaXB0b3JNZW1iZXI8
Q29sb3JUeXBlLCBzdGQ6OnZvaWRfdDx0eXBlbmFtZSBDb2xvclR5cGU6OkRlc2NyaXB0b3I+PiA9
IHRydWU7CisKK3RlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IHZvaWQ+IGlubGluZSBjb25z
dGV4cHIgYm9vbCBIYXNFeHRlbmRlZENvdW50ZXJwYXJ0TWVtYmVyID0gZmFsc2U7Cit0ZW1wbGF0
ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNFeHRlbmRlZENv
dW50ZXJwYXJ0TWVtYmVyPENvbG9yVHlwZSwgc3RkOjp2b2lkX3Q8dHlwZW5hbWUgQ29sb3JUeXBl
OjpFeHRlbmRlZENvdW50ZXJwYXJ0Pj4gPSB0cnVlOworCit0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlw
ZW5hbWUgPSB2b2lkPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzQm91bmRlZENvdW50ZXJwYXJ0
TWVtYmVyID0gZmFsc2U7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGlubGluZSBjb25z
dGV4cHIgYm9vbCBIYXNCb3VuZGVkQ291bnRlcnBhcnRNZW1iZXI8Q29sb3JUeXBlLCBzdGQ6OnZv
aWRfdDx0eXBlbmFtZSBDb2xvclR5cGU6OkJvdW5kZWRDb3VudGVycGFydD4+ID0gdHJ1ZTsKKwor
dGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lID0gdm9pZD4gaW5saW5lIGNvbnN0ZXhwciBib29s
IEhhc0dhbW1hRW5jb2RlZENvdW50ZXJwYXJ0TWVtYmVyID0gZmFsc2U7Cit0ZW1wbGF0ZTx0eXBl
bmFtZSBDb2xvclR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNHYW1tYUVuY29kZWRDb3Vu
dGVycGFydE1lbWJlcjxDb2xvclR5cGUsIHN0ZDo6dm9pZF90PHR5cGVuYW1lIENvbG9yVHlwZTo6
R2FtbWFFbmNvZGVkQ291bnRlcnBhcnQ+PiA9IHRydWU7CisKK3RlbXBsYXRlPHR5cGVuYW1lLCB0
eXBlbmFtZSA9IHZvaWQ+IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNMaW5lYXJDb3VudGVycGFy
dE1lbWJlciA9IGZhbHNlOwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUgY29u
c3RleHByIGJvb2wgSGFzTGluZWFyQ291bnRlcnBhcnRNZW1iZXI8Q29sb3JUeXBlLCBzdGQ6OnZv
aWRfdDx0eXBlbmFtZSBDb2xvclR5cGU6OkxpbmVhckNvdW50ZXJwYXJ0Pj4gPSB0cnVlOworCit0
ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBJc1JHQlR5
cGUgPSBIYXNEZXNjcmlwdG9yTWVtYmVyPENvbG9yVHlwZT47Cit0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xvclR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBJc1JHQkV4dGVuZGVkVHlwZSA9IElzUkdC
VHlwZTxDb2xvclR5cGU+ICYmIEhhc0JvdW5kZWRDb3VudGVycGFydE1lbWJlcjxDb2xvclR5cGU+
OwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNS
R0JCb3VuZGVkVHlwZSA9IElzUkdCVHlwZTxDb2xvclR5cGU+ICYmIEhhc0V4dGVuZGVkQ291bnRl
cnBhcnRNZW1iZXI8Q29sb3JUeXBlPjsKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5s
aW5lIGNvbnN0ZXhwciBib29sIElzUkdCR2FtbWFFbmNvZGVkVHlwZSA9IElzUkdCVHlwZTxDb2xv
clR5cGU+ICYmIEhhc0xpbmVhckNvdW50ZXJwYXJ0TWVtYmVyPENvbG9yVHlwZT47Cit0ZW1wbGF0
ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBJc1JHQkxpbmVhckVu
Y29kZWRUeXBlID0gSXNSR0JUeXBlPENvbG9yVHlwZT4gJiYgSGFzR2FtbWFFbmNvZGVkQ291bnRl
cnBhcnRNZW1iZXI8Q29sb3JUeXBlPjsKKwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlMSwg
dHlwZW5hbWUgQ29sb3JUeXBlMiwgYm9vbCBlbmFibGVkPiBpbmxpbmUgY29uc3RleHByIGJvb2wg
SXNTYW1lUkdCVHlwZUZhbWlseVZhbHVlID0gZmFsc2U7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xv
clR5cGUxLCB0eXBlbmFtZSBDb2xvclR5cGUyPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNTYW1l
UkdCVHlwZUZhbWlseVZhbHVlPENvbG9yVHlwZTEsIENvbG9yVHlwZTIsIHRydWU+ID0gc3RkOjpp
c19zYW1lX3Y8dHlwZW5hbWUgQ29sb3JUeXBlMTo6RGVzY3JpcHRvciwgdHlwZW5hbWUgQ29sb3JU
eXBlMjo6RGVzY3JpcHRvcj47Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGUxLCB0eXBlbmFt
ZSBDb2xvclR5cGUyPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNTYW1lUkdCVHlwZUZhbWlseSA9
IElzU2FtZVJHQlR5cGVGYW1pbHlWYWx1ZTxDb2xvclR5cGUxLCBDb2xvclR5cGUyLCBJc1JHQlR5
cGU8Q29sb3JUeXBlMT4gJiYgSXNSR0JUeXBlPENvbG9yVHlwZTI+PjsKKwogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gc3RydWN0IFNSR0JBRGVzY3JpcHRvciB7CiAgICAgdGVtcGxhdGU8VHJhbnNmZXJG
dW5jdGlvbk1vZGUgTW9kZT4gdXNpbmcgVHJhbnNmZXJGdW5jdGlvbiA9IFNSR0JUcmFuc2ZlckZ1
bmN0aW9uPFQsIE1vZGU+OwogICAgIHN0YXRpYyBjb25zdGV4cHIgV2hpdGVQb2ludCB3aGl0ZVBv
aW50ID0gV2hpdGVQb2ludDo6RDY1OwpAQCAtMzk3LDYgKzQyMyw4IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNvbnN0ZXhwciBDb2xvckNvbXAKICAgICByZXR1cm4geyBjLmxpZ2h0bmVzcywgYy5h
LCBjLmIsIGMuYWxwaGEgfTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBpbmxp
bmUgY29uc3RleHByIGJvb2wgSXNMYWIgPSBzdGQ6OmlzX3NhbWVfdjxMYWI8dHlwZW5hbWUgQ29s
b3JUeXBlOjpDb21wb25lbnRUeXBlPiwgQ29sb3JUeXBlPjsKKwogLy8gTUFSSzogLSBMQ0hBIENv
bG9yIFR5cGUuCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBMQ0hBIDogQ29sb3JXaXRo
QWxwaGFIZWxwZXI8TENIQTxUPj4gewpAQCAtNDMwLDYgKzQ1OCw4IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNvbnN0ZXhwciBDb2xvckNvbXAKICAgICByZXR1cm4geyBjLmxpZ2h0bmVzcywgYy5j
aHJvbWEsIGMuaHVlLCBjLmFscGhhIH07CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlw
ZT4gaW5saW5lIGNvbnN0ZXhwciBib29sIElzTENIQSA9IHN0ZDo6aXNfc2FtZV92PExDSEE8dHlw
ZW5hbWUgQ29sb3JUeXBlOjpDb21wb25lbnRUeXBlPiwgQ29sb3JUeXBlPjsKKwogCiAvLyBNQVJL
OiAtIEhTTEEgQ29sb3IgVHlwZS4KIApAQCAtNDY0LDYgKzQ5NCw4IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNvbnN0ZXhwciBDb2xvckNvbXAKICAgICByZXR1cm4geyBjLmh1ZSwgYy5zYXR1cmF0
aW9uLCBjLmxpZ2h0bmVzcywgYy5hbHBoYSB9OwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xv
clR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBJc0hTTEEgPSBzdGQ6OmlzX3NhbWVfdjxIU0xB
PHR5cGVuYW1lIENvbG9yVHlwZTo6Q29tcG9uZW50VHlwZT4sIENvbG9yVHlwZT47CisKIC8vIE1B
Uks6IC0gSFdCQSBDb2xvciBUeXBlLgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSFdC
QSA6IENvbG9yV2l0aEFscGhhSGVscGVyPEhXQkE8VD4+IHsKQEAgLTQ5Nyw2ICs1MjksOCBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgQ29sb3JDb21wCiAgICAgcmV0dXJuIHsgYy5o
dWUsIGMud2hpdGVuZXNzLCBjLmJsYWNrbmVzcywgYy5hbHBoYSB9OwogfQogCit0ZW1wbGF0ZTx0
eXBlbmFtZSBDb2xvclR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBJc0hXQkEgPSBzdGQ6Omlz
X3NhbWVfdjxIV0JBPHR5cGVuYW1lIENvbG9yVHlwZTo6Q29tcG9uZW50VHlwZT4sIENvbG9yVHlw
ZT47CisKIC8vIE1BUks6IC0gWFlaIENvbG9yIFR5cGUuCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IFdoaXRlUG9pbnQgVz4gc3RydWN0IFhZWkEgOiBDb2xvcldpdGhBbHBoYUhlbHBlcjxYWVpBPFQs
IFc+PiB7CkBAIC01MzAsNiArNTY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgV2hpdGVQb2lu
dCBXPiBjb25zdAogICAgIHJldHVybiB7IGMueCwgYy55LCBjLnosIGMuYWxwaGEgfTsKIH0KIAor
dGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNYWVpB
ID0gc3RkOjppc19zYW1lX3Y8WFlaQTx0eXBlbmFtZSBDb2xvclR5cGU6OkNvbXBvbmVudFR5cGUs
IENvbG9yVHlwZTo6d2hpdGVQb2ludD4sIENvbG9yVHlwZT47CiAKIC8vIFBhY2tlZCBDb2xvciBG
b3JtYXRzCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420226</attachid>
            <date>2021-02-13 13:41:42 -0800</date>
            <delta_ts>2021-02-13 15:26:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221868-20210213134141.patch</filename>
            <type>text/plain</type>
            <size>69364</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MjgzNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0OCBAQAorMjAyMS0wMi0xMyAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHJlcXVpcmVtZW50cyBm
b3IgY29sb3IgdHlwZXMgdG8gb25seSBjb252ZXJzaW9uIHRvIHRoZWlyIHJlZmVyZW5jZSBjb2xv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxODY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgV2UgY3VycmVu
dGx5IHJlcXVpcmUgZXZlcnkgbmV3IGNvbG9yIHR5cGUgdG8gZGVmaW5lIGEgY29udmVyc2lvbiB0
by9mcm9tIHh5eiBhbmQgdGhlbiBwZXJoYXBzCisgICAgICAgIHNvbWUgbW9yZSBjb252ZXJzaW9u
cyB0byByZWZlcmVuY2UgY29sb3JzIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHRyaXBzIHRocm91Z2gg
WFlaLiBGb3IgZXhhbXBsZSwKKyAgICAgICAgaWYgZXZlcnkgY29udmVyc2lvbiBmcm9tIEhTTCB0
byBzUkdCIHdlbnQgdGhyb3VnaCBYWVogaXQgd291bGQgYmUgdmVyeSBzaWxseSBhbmQgaW5lZmZp
Y2llbnQsCisgICAgICAgIGFuZCB0aGUgZmFjdCB0aGF0IHdlIHJlcXVpcmUgdGhlIGJvaWxlciBw
bGF0ZSBmb3IgSFNMIC0+IFhZWiwgZXZlbiB0aG91Z2ggaXQncyBhbHdheXMgZ29pbmcgdG8KKyAg
ICAgICAgY29udmVydCB0byBTUkdCIGZpcnN0IHNlZW1zIHVuZm9ydHVuYXRlLiBXZSBjYW4gZG8g
YmV0dGVyLgorCisgICAgICAgIEF0IGZpcnN0IEkgdGhvdWdodCB3ZSBjb3VsZCBtb2RlbCBjb2xv
ciBjb252ZXJzaW9uIGFzIERBRywgd2l0aCBYWVogYXQgdGhlIHJvb3QsIGFuZCBlYWNoIGNvbG9y
CisgICAgICAgIHR5cGUgZGVjbGFyaW5nIGEgInJlZmVyZW5jZSBjb2xvciIgdGhhdCB3b3VsZCBn
ZXQgdGhlbSBjbG9zZXIgdG8gWFlaLiBTbywgSFNMIHdvdWxkIGhhdmUgYQorICAgICAgICAicmVm
ZXJlbmNlIGNvbG9yIiBvZiBzUkdCLCBzUkdCIHdvdWxkIGhhdmUgYSAicmVmZXJlbmNlIGNvbG9y
IiBvZiBsaW5lYXJTUkdCLCBhbmQgbGluZWFyU1JHQiAKKyAgICAgICAgd291bGQgaGF2ZSBhICJy
ZWZlcmVuY2UgY29sb3IiIFhZWi4gVGhlbiwgYXMgbG9uZyBhcyB0aGVyZSB3YXMgYSBkZWZpbmVk
IGNvbnZlcnNpb24gdG8vZnJvbSB0aGUKKyAgICAgICAgInJlZmVyZW5jZSBjb2xvciIsIHdlIGNv
dWxkIGRvIGEgbGVhc3QgY29tbW9uIGFuY2VzdG9yIGdyYXBoIHNlYXJjaCBiZXR3ZWVuIHRoZSB0
d28gY29sb3IgdHlwZXMKKyAgICAgICAgYmVpbmcgY29udmVydGVkIGJldHdlZW4gdG8gZmluZCB0
aGUgb3B0aW1hbCBzZXQgb2YgY29udmVyc2lvbnMgbmVlZGVkLgorCisgICAgICAgIFRoYXQgYWxt
b3N0IHdvcmtzLCBidXQgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZm91ciBjb2xvciB0
eXBlcyB0aGF0IG1ha2UgdXAgZWFjaCBSR0IgdHlwZQorICAgICAgICAoYm91bmRlZC1nYW1tYS1l
bmNvZGVkLCBib3VuZGVkLWxpbmVhci1lbmNvZGVkLCBleHRlbmRlZC1nYW1tYS1lbmNvZGVkLCBl
eHRlbmRlZC1saW5lYXItZW5jb2RlZCkKKyAgICAgICAgbWFrZSBpdCBub3QgcXVpdGUgaWRlYWws
IHNpbmNlIGEgY29udmVyc2lvbiBmcm9tIHNvbWV0aGluZyBsaWtlIHNSR0IgdG8gRXh0ZW5kZWRT
UkdCIHdvdWxkIHdpbmQKKyAgICAgICAgdXAgZ29pbmcgdGhyb3VnaCBYWVogKHNpbmNlIHRoZSAi
cmVmZXJlbmNlIGNvbG9yIiBmb3Igc1JHQiBpcyBMaW5lYXJTUkdCIGFuZCB0aGUgInJlZmVyZW5j
ZSBjb2xvciIKKyAgICAgICAgZm9yIEV4dGVuZGVkU1JHQiBpcyBMaW5lYXJFeHRlbmRlZFNSR0Is
IGFuZCBib3RoIGVpdGhlciAicmVmZXJlbmNlIGNvbG9ycyIgYXJlIFhZWikuIAorCisgICAgICAg
IFVsdGltYXRlbHksIHRoZSBkZXB0aCBvZiB0aGUgdHlwZSBncmFwaCBpcyBub3QgYWxsIHRoYXQg
bGFyZ2UgKHRob3VnaCB0aGUgQVNDSUkgYXJ0IEkgbWFkZSBpcworICAgICAgICBxdWl0ZSBiaWcs
IHRob3VnaCBJIGRpZCByZW1vdmUgQTk4UkdCIGFuZCBSZWMyMDIwIGFzIHRoZXkgYXJlIHNhbWUg
YXMgRGlzcGxheVAzIGhlcmUpOgorCisgICAgICAgICAgICAgICAgICAgICAgICDilIwg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilLwg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSQCisgICAgICAgICAgICAgICAgICAgICAgICAg
TWF0cml4IENvbnZlcnNpb25zICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUkOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAgICAg
ICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgIOKUgiBYWVogKEQ1MCkg4pSC
4pSC4pSCIFhZWiAoRDY1KSDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICDilIIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSY4pSC4pSU
4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSYCisgICAgICAgICAgICAgICAgICAg
ICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAg4pSCICAgICAg4pSC
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAg4pSCCisgICAgICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICDilIIgICAgICDilJTilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJAKKyAgICAgICAgICAgICAgIOKUgiAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUgiAg
ICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCCisgICAgICAgICAgICAgICDilIIg
ICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAg
ICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAg4pSCICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCICAg
ICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICDilIIKKyAgICAgICAgICAgICAgIOKUgiAg
ICAgICAgICBQcm9QaG90b1JHQuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAgIOKUgiAgIFNSR0LilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lJAgRGlzcGxheVAz4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisgICAgICAgICAgICAgICDilIIgICAgICAgIOKUgiDilILi
lIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCICAg4pSCICAg4pSC4pSM4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUkOKUgiDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUggor
ICAgICAgICAgICAgICAg4pSCICAgICAgICAgIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJF
eHRlbmRlZCDilILilIIgICDilIIgICDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5k
ZWQg4pSC4pSCIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIKKyAg
ICAgICAgICAgICAgIOKUgiAgICAgICAg4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lJjilIIgICDilIIgICDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUguKUlOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSCCisgICAgICAgICAgICAgICDilIIgICAgICAg
ICDilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSA4pSC4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIDilILilIDilILilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgAorICAg
ICAgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAgIOKUguKUjOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilJDilIIgICDilIIgICDilILilIzilIDilIDilIDilIDilIDi
lIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIKKyAgICAgICAg
IOKUgiAgICBMYWIgICAg4pSCICAgIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVuZGVk
ICDilILilIIgICDilIIgICDilILilIIgR2FtbWEgIOKUgiDilIIgR2FtbWFFeHRlbmRlZCAg4pSC
4pSCIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVuZGVkICDilILilIIKKyAgICAgICAg
IOKUlOKUgOKUgOKUgOKUgOKUgOKWsuKUgOKUgOKUgOKUgOKUgOKUmCAgICDilILilJTilIDilIDi
lIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSY4pSCICAg4pSCICAg4pSC4pSU4pSA4pSA4pSA4pSA4pay4pSA4pSA
4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCCisgICAgICAgICAgICAg
ICDilIIgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAg4pSC
ICAg4pSU4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUmAorICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICDilIzilIDilIDilLTilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilJAKKyAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAg4pSCICAgICAg4pSCICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICDi
lIIKKyAgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
kOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAgICAg
4pSCICAgIExDSCAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKU
guKUgiAgICBIU0wgICAg4pSCIOKUgiAgICBIV0IgICAg4pSC4pSCU1JHQjx1aW50OF90PuKUggor
ICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilILilJTilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSU
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCisKKyAgICAgICAgRnJv
bSB0aGlzLCBpdCB0dXJucyBvdXQgeW91IGNhbiBoYW5kbGUgYWxsIHRoZSBjYXNlcyBpbiBhYm91
dCA1IHN0ZXBzLCB3aXRoIG1vc3QgcGVlbGluZyBvZmYgYQorICAgICAgICBjb252ZXJzaW9uIGZy
b20gdGhlIGZyb250IG9yIGJhY2sgb3IgdGhlIHBhdGggYW5kIHVzaW5nIHJlY3Vyc2lvbiB0byBj
b250aW51ZSBvbi4gSXQgdWx0aW1hdGVseSAKKyAgICAgICAgbGVhdmVzIGEgZmluYWwgc3RlcCB3
aGVyZSBvbmx5IG1hdHJpeCBjb252ZXJzaW9ucyByZW1haW4sIHdoaWNoIGNhbiBwb3RlbnRpYWxs
eSBiZSBmdXJ0aGVyCisgICAgICAgIG9wdGltaXplZCBpbiBhbm90aGVyIHBhdGNoIHRvIGNvbmNh
dGVuYXRlIHRoZSBtYXRyaWNlcyBhdCBjb21waWxlIHRpbWUuCisKKyAgICAgICAgMS4gSGFuZGxl
IHRoZSBzcGVjaWFsIGNhc2UgU1JHQkE8dWludDhfdD4gZm9yIElucHV0IGFuZCBPdXRwdXQsIGFu
ZCByZWN1cnNpdmVseSBjYWxsIGNvbnZlcnNpb24uCisKKyAgICAgICAgMi4gSGFuZGxlIGFsbCBj
b2xvciB0eXBlcyB0aGF0IGFyZSBub3QgSXNSR0JUeXBlPFQ+IG9yIElzWFlaQTxUPiBmb3IgSW5w
dXQgYW5kIE91dHB1dC4gRm9yIGFsbAorICAgICAgICAgICB0aGVzZSBvdGhlciBjb2xvciB0eXBl
cywgd2UgY2FuIHVuY29uZHRpb25hbGx5IGNvbnZlcnQgdGhlbSB0byB0aGVpciAicmVmZXJlbmNl
IiBjb2xvciwgYXMKKyAgICAgICAgICAgZWl0aGVyIHRoZXkgaGF2ZSBhbHJlYWR5IGJlZW4gaGFu
ZGxlZCBieSBhIENvbG9yQ29udmVyc2lvbiBzcGVjaWFsaXphdGlvbiBvciB0aGlzIHdpbGwKKyAg
ICAgICAgICAgZ2V0IHVzIGNsb3NlciB0byB0aGUgZmluYWwgY29udmVyc2lvbiwgYW5kIHJlY3Vy
c2l2ZWx5IGNhbGwgY29udmVyc2lvbi4KKworICAgICAgICAzLiBIYW5kbGUgY29udmVyc2lvbnMg
d2l0aGluIGEgUkdCRmFtaWx5IChlLmcuIGFsbCBoYXZlIHRoZSBzYW1lIGRlc2NyaXB0b3IpLiBU
aGlzIHdpbGwgY29uY2x1ZGUKKyAgICAgICAgICAgdGhlIGNvbnZlcnNpb24uCisKKyAgICAgICAg
NC4gSGFuZGxlIGFueSBnYW1tYSBjb252ZXJzaW9ucyBmb3IgdGhlIElucHV0IGFuZCBPdXRwdXQs
IHJlY3Vyc2l2ZWx5IGNhbGwgY29udmVyc2lvbgorCisgICAgICAgIDUuIEF0IHRoaXMgcG9pbnQs
IElucHV0IGFuZCBPdXRwdXQgYXJlIGVhY2ggZWl0aGVyIExpbmVhci1SR0IgdHlwZXMgKG9mIGRp
ZmZlcmVudCBmYW1pbGVzKSBvciBYWVpBCisgICAgICAgICAgIGFuZCB0aGVyZWZvcmUgYWxsIGFk
ZGl0aW9uYWwgY29udmVyc2lvbiBjYW4gaGFwcGVuIHZpYSBtYXRyaXggdHJhbnNmb3JtYXRpb24u
IFRoaXMgd2lsbCBjb25jbHVkZQorICAgICAgICAgICB0aGUgY29udmVyc2lvbi4KKworICAgICAg
ICBXaXRoIHRoZXNlIHN0ZXBzLCB3ZSBncm91cCB0aGUgY29sb3IgdHlwZXMgaW50byAzIGRpc3Rp
bmN0IGdyb3Vwcy4KKworICAgICAgICAxLiBSR0IgdHlwZXMuCisKKyAgICAgICAgICAgIFRoZXNl
IGluaGVyaXQgZnJvbSB0aGUgUkdCVHlwZSBzdHJ1Y3QgYW5kIGFyZSBkZWZpbmVkIGluIHRlcm1z
IG9mIHRoZWlyIHh5elRvTGluZWFyIC8gbGluZWFyVG9YWVogCisgICAgICAgICAgICBtYXRyaWNl
cywgdGhlaXIgdHJhbnNmZXIgZnVuY3Rpb24sIHdoZXRoZXIgdGhleSBhcmUgYm91bmRlZCBvciBl
eHRlbmRlZCBhbmQgdGhlaXIgd2hpdGUgcG9pbnQuIE5ldyAKKyAgICAgICAgICAgIFJHQiBjb2xv
ciB0eXBlcyBjYW4gYmUgYWRkZWQgd2l0aG91dCBhbnkgbmV3IGNvbnZlcnNpb24gY29kZSBiZWlu
ZyByZXF1aXJlZCwgYXMgbG9uZyBhcyB0aGV5IHNwZWNpZnkKKyAgICAgICAgICAgIHRob3NlIHBy
b3BlcnRpZXMuCisKKyAgICAgICAgMi4gVGhlIFhZWiB0eXBlLgorCisgICAgICAgICAgICBUaGlz
IGlzIHRoZSByb290IHR5cGUsIGFuZCBvbmx5IHZhcmllcyBvbiBpdHMgd2hpdGUgcG9pbnQuIElm
IG90aGVyIHdoaXRlIHBvaW50cyBiZXNpZGUgRDUwIGFuZCBENjUgCisgICAgICAgICAgICBhcmUg
ZXZlciBuZWVkZWQsIHdlIHdpbGwgbmVlZCB0byBleHRlbmQgdGhlIENocm9tYXRpY0FkYXBhdGlv
biBzcGVjaWFsaXphdGlvbnMgdG8gYWxzbyBoYXZlIGNvbnZlcnNpb24KKyAgICAgICAgICAgIG1h
dHJpY2VzIGJldHdlZW4gdGhvc2UuCisKKyAgICAgICAgMy4gQWxsIG90aGVyIHR5cGVzLgorCisg
ICAgICAgICAgICBBbGwgb3RoZXIgdHlwZXMgKGUuZy4gTGFiLCBMQ0hBLCBIU0xBLCBIV0JBIChh
bmQgU1JHQkE8dWludDhfdD4sIGtpbmQgb2YsIGl0J3MgYSBzcGVjaWFsIGZsb3dlcikgYXJlCisg
ICAgICAgICAgICB0aGUgc2V0IGN1cnJlbnRseSkgaGF2ZSB0aGVpciBjb252ZXJzaW9ucyBkZWZp
bmVkIGluIHRlcm1zIG9mIHNpbmdsZSByZWZlcmVuY2UgY29sb3IgYW5kIHJlcXVpcmUKKyAgICAg
ICAgICAgIGV4cGxpY2l0IHNwZWNpYWxpemF0aW9uIG9mIHRoZSBDb2xvckNvbnZlcnNpb24gc3Ry
dWN0IHRvIHdvcmsuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGFiPGZsb2F0Pj46OmNvbnZlcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6V2hpdGVQb2ludDo6RDUwPj46OmNvbnZlcnQpOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldoaXRlUG9pbnQ6OkQ2NT4+Ojpjb252ZXJ0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvTGluZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OnRvR2FtbWFFbmNvZGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkE5OFJH
QjxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxpbmVhckE5
OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlQMzxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxpbmVh
ckRpc3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+Ojpjb252ZXJ0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYzIwMjA8ZmxvYXQ+Pjo6Y29udmVydCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJSZWMyMDIwPGZsb2F0Pj46OmNvbnZlcnQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGluZWFyU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjp4eXpUb0xpbmVhcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpsaW5lYXJUb1hZWik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpY
WVpGb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+
Pj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPExpbmVhclBy
b1Bob3RvUkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj46OmNvbnZlcnQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+Pjo6
Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8RXh0ZW5kZWRTUkdC
QTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8
SFNMQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpG
b3I8SFdCQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpY
WVpGb3I8TENIQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6WFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPFNSR0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbG9yQ29udmVyc2lvbjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvckNvbnZlcnNpb246OnRvTGluZWFyRW5jb2RlZCk6CisgICAgICAgIChXZWJDb3JlOjpD
b2xvckNvbnZlcnNpb246OnRvR2FtbWFFbmNvZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9y
Q29udmVyc2lvbjo6dG9FeHRlbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNvbnZlcnNp
b246OnRvQm91bmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNvbnZlcnNpb246OmhhbmRs
ZVJHQkZhbWlseUNvbnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDb252ZXJzaW9u
OjpoYW5kbGVNYXRyaXhDb252ZXJzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b2xvck1hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChX
ZWJDb3JlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5TWF0cmljZXNUb0Nv
bG9yQ29tcG9uZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5o
OgorCiAyMDIxLTAyLTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBJbXByb3ZlIGNvbXB1dGVkIHN0eWxlIGhhbmRsaW5nIGluIGRlZ2VuZXJhdGUgZ3JpZCBjYXNl
cywgc2l6ZXMgYW5kIGxlbmd0aHMgb2YgemVybwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCShyZXZpc2lvbiAyNzI4
MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwyMDQgKzMwLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0vLyBDaHJvbWF0aWMgQWRhcHRhdGlvbiBNYXRyaWNlcy4KLQotLy8gaHR0cDovL3d3
dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCi1zdGF0
aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ1MFRvRDY1TWF0cml4IHsKLSAgICAgMC45
NTU1NzY2ZiwgLTAuMDIzMDM5M2YsIDAuMDYzMTYzNmYsCi0gICAgLTAuMDI4Mjg5NWYsICAxLjAw
OTk0MTZmLCAwLjAyMTAwNzdmLAotICAgICAwLjAxMjI5ODJmLCAtMC4wMjA0ODMwZiwgMS4zMjk5
MDk4ZgotfTsKLQotLy8gaHR0cDovL3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9F
cW5fQ2hyb21BZGFwdC5odG1sCi1zdGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ2
NVRvRDUwTWF0cml4IHsKLSAgICAgMS4wNDc4MTEyZiwgMC4wMjI4ODY2ZiwgLTAuMDUwMTI3MGYs
Ci0gICAgIDAuMDI5NTQyNGYsIDAuOTkwNDg0NGYsIC0wLjAxNzA0OTFmLAotICAgIC0wLjAwOTIz
NDVmLCAwLjAxNTA0MzZmLCAgMC43NTIxMzE2ZgotfTsKLQotLy8gTUFSSzogQ2hyb21hdGljIEFk
YXB0YXRpb24gY29udmVyc2lvbnMuCi0KLVhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4gQ29s
b3JDb252ZXJzaW9uPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4sIFhZWkE8ZmxvYXQsIFdo
aXRlUG9pbnQ6OkQ1MD4+Ojpjb252ZXJ0KGNvbnN0IFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ1
MD4mIGNvbG9yKQotewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZ0V4Y2Vw
dEFscGhhPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4+KEQ1MFRvRDY1TWF0cml4LnRyYW5z
Zm9ybWVkQ29sb3JDb21wb25lbnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOwotfQotCi1Y
WVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+IENvbG9yQ29udmVyc2lvbjxYWVpBPGZsb2F0LCBX
aGl0ZVBvaW50OjpENTA+LCBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+Pjo6Y29udmVydChj
b25zdCBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+JiBjb2xvcikKLXsKLSAgICByZXR1cm4g
bWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdFeGNlcHRBbHBoYTxYWVpBPGZsb2F0LCBXaGl0ZVBv
aW50OjpENTA+PihENjVUb0Q1ME1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0Nv
bG9yQ29tcG9uZW50cyhjb2xvcikpKTsKLX0KLQotLy8gTUFSSzogR2FtbWEgY29udmVyc2lvbnMu
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gc3RhdGljIGF1dG8gdG9MaW5lYXIoY29u
c3QgQ29sb3JUeXBlJiBjb2xvcikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpMaW5lYXJDb3VudGVy
cGFydAotewotICAgIGF1dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOwotICAgIHJldHVy
biB7IENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9MaW5lYXIoYzEpLCBDb2xvclR5cGU6
OlRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFyKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0
aW9uOjp0b0xpbmVhcihjMyksIGFscGhhIH07Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9y
VHlwZT4gc3RhdGljIGF1dG8gdG9HYW1tYUVuY29kZWQoY29uc3QgQ29sb3JUeXBlJiBjb2xvcikg
LT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpHYW1tYUVuY29kZWRDb3VudGVycGFydAotewotICAgIGF1
dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOwotICAgIHJldHVybiB7IENvbG9yVHlwZTo6
VHJhbnNmZXJGdW5jdGlvbjo6dG9HYW1tYUVuY29kZWQoYzEpLCBDb2xvclR5cGU6OlRyYW5zZmVy
RnVuY3Rpb246OnRvR2FtbWFFbmNvZGVkKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0aW9u
Ojp0b0dhbW1hRW5jb2RlZChjMyksIGFscGhhIH07Ci19Ci0KLS8vIEE5OFJHQiA8LT4gTGluZWFy
QTk4UkdCIGNvbnZlcnNpb25zLgotCi1MaW5lYXJBOThSR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lv
bjxMaW5lYXJBOThSR0I8ZmxvYXQ+LCBBOThSR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBBOThS
R0I8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9MaW5lYXIoY29sb3IpOwotfQotCi1B
OThSR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+LCBMaW5lYXJBOThSR0I8
ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJBOThSR0I8ZmxvYXQ+JiBjb2xvcikKLXsKLSAg
ICByZXR1cm4gdG9HYW1tYUVuY29kZWQoY29sb3IpOwotfQotCi0vLyBEaXNwbGF5UDMgPC0+IExp
bmVhckRpc3BsYXlQMyBjb252ZXJzaW9ucy4KLQotTGluZWFyRGlzcGxheVAzPGZsb2F0PiBDb2xv
ckNvbnZlcnNpb248TGluZWFyRGlzcGxheVAzPGZsb2F0PiwgRGlzcGxheVAzPGZsb2F0Pj46OmNv
bnZlcnQoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRvTGlu
ZWFyKGNvbG9yKTsKLX0KLQotRGlzcGxheVAzPGZsb2F0PiBDb2xvckNvbnZlcnNpb248RGlzcGxh
eVAzPGZsb2F0PiwgTGluZWFyRGlzcGxheVAzPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgTGluZWFy
RGlzcGxheVAzPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVkKGNv
bG9yKTsKLX0KLQotLy8gRXh0ZW5kZWRTUkdCQSA8LT4gTGluZWFyRXh0ZW5kZWRTUkdCQSBjb252
ZXJzaW9ucy4KLQotTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExp
bmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBFeHRlbmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQo
Y29uc3QgRXh0ZW5kZWRTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiB0b0xpbmVh
cihjb2xvcik7Ci19Ci0KLUV4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxFeHRl
bmRlZFNSR0JBPGZsb2F0PiwgTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNv
bnN0IExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9H
YW1tYUVuY29kZWQoY29sb3IpOwotfQotCi0vLyBQcm9QaG90b1JHQiA8LT4gTGluZWFyUHJvUGhv
dG9SR0IgY29udmVyc2lvbnMuCi0KLUxpbmVhclByb1Bob3RvUkdCPGZsb2F0PiBDb2xvckNvbnZl
cnNpb248TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+LCBQcm9QaG90b1JHQjxmbG9hdD4+Ojpjb252
ZXJ0KGNvbnN0IFByb1Bob3RvUkdCPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRvTGlu
ZWFyKGNvbG9yKTsKLX0KLQotUHJvUGhvdG9SR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxQcm9Q
aG90b1JHQjxmbG9hdD4sIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3Qg
TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9HYW1tYUVu
Y29kZWQoY29sb3IpOwotfQotCi0vLyBSZWMyMDIwIDwtPiBMaW5lYXJSZWMyMDIwIGNvbnZlcnNp
b25zLgotCi1MaW5lYXJSZWMyMDIwPGZsb2F0PiBDb2xvckNvbnZlcnNpb248TGluZWFyUmVjMjAy
MDxmbG9hdD4sIFJlYzIwMjA8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBSZWMyMDIwPGZsb2F0PiYg
Y29sb3IpCi17Ci0gICAgcmV0dXJuIHRvTGluZWFyKGNvbG9yKTsKLX0KLQotUmVjMjAyMDxmbG9h
dD4gQ29sb3JDb252ZXJzaW9uPFJlYzIwMjA8ZmxvYXQ+LCBMaW5lYXJSZWMyMDIwPGZsb2F0Pj46
OmNvbnZlcnQoY29uc3QgTGluZWFyUmVjMjAyMDxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVy
biB0b0dhbW1hRW5jb2RlZChjb2xvcik7Ci19Ci0KLS8vIFNSR0JBIDwtPiBMaW5lYXJTUkdCQSBj
b252ZXJzaW9ucy4KLQotTGluZWFyU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJT
UkdCQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+JiBj
b2xvcikKLXsKLSAgICByZXR1cm4gdG9MaW5lYXIoY29sb3IpOwotfQotCi1TUkdCQTxmbG9hdD4g
Q29sb3JDb252ZXJzaW9uPFNSR0JBPGZsb2F0PiwgTGluZWFyU1JHQkE8ZmxvYXQ+Pjo6Y29udmVy
dChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiB0b0dhbW1h
RW5jb2RlZChjb2xvcik7Ci19Ci0KLS8vIE1BUks6IE1hdHJpeCBjb252ZXJzaW9ucyAodG8gYW5k
IGZyb20gWFlaIGZvciBhbGwgbGluZWFyIGNvbG9yIHR5cGVzKS4KLQotdGVtcGxhdGU8dHlwZW5h
bWUgQ29sb3JUeXBlPiBzdGF0aWMgYXV0byB4eXpUb0xpbmVhcihjb25zdCBYWVpGb3I8Q29sb3JU
eXBlPiYgY29sb3IpIC0+IENvbG9yVHlwZQotewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVu
dHNDbGFtcGluZ0V4Y2VwdEFscGhhPENvbG9yVHlwZT4oQ29sb3JUeXBlOjp4eXpUb0xpbmVhci50
cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKLX0K
LQotdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgYXV0byBsaW5lYXJUb1hZWihj
b25zdCBDb2xvclR5cGUmIGNvbG9yKSAtPiBYWVpGb3I8Q29sb3JUeXBlPgotewotICAgIHJldHVy
biBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZ0V4Y2VwdEFscGhhPFhZWkZvcjxDb2xvclR5cGU+
PihDb2xvclR5cGU6OmxpbmVhclRvWFlaLnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGFzQ29s
b3JDb21wb25lbnRzKGNvbG9yKSkpOwotfQotCi0vLyAtIExpbmVhckE5OFJHQiBtYXRyaXggY29u
dmVyc2lvbnMuCi0KLUxpbmVhckE5OFJHQjxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhckE5
OFJHQjxmbG9hdD4sIFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3Qg
WFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4geHl6VG9M
aW5lYXI8TGluZWFyQTk4UkdCPGZsb2F0Pj4oY29sb3IpOwotfQotCi1YWVpGb3I8TGluZWFyQTk4
UkdCPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+Piwg
TGluZWFyQTk4UkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgTGluZWFyQTk4UkdCPGZsb2F0PiYg
Y29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVhckE5OFJHQjxmbG9hdD4+KGNv
bG9yKTsKLX0KLQotLy8gLSBMaW5lYXJEaXNwbGF5UDMgbWF0cml4IGNvbnZlcnNpb25zLgotCi1M
aW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8Zmxv
YXQ+LCBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZv
cjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHh5elRvTGlu
ZWFyPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+KGNvbG9yKTsKLX0KLQotWFlaRm9yPExpbmVhckRp
c3BsYXlQMzxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZs
b2F0Pj4sIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckRpc3Bs
YXlQMzxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5lYXJEaXNw
bGF5UDM8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLS8vIC0gTGluZWFyRXh0ZW5kZWRTUkdCQSBtYXRy
aXggY29udmVyc2lvbnMuCi0KLUxpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVy
c2lvbjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0PiwgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JH
QkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8Zmxv
YXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHh5elRvTGluZWFyPExpbmVhckV4dGVuZGVkU1JH
QkE8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLVhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0
Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4sIExp
bmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJFeHRlbmRlZFNS
R0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVhckV4dGVu
ZGVkU1JHQkE8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLS8vIC0gTGluZWFyUHJvUGhvdG9SR0IgbWF0
cml4IGNvbnZlcnNpb25zLgotCi1MaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4gQ29sb3JDb252ZXJz
aW9uPExpbmVhclByb1Bob3RvUkdCPGZsb2F0PiwgWFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZs
b2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+JiBj
b2xvcikKLXsKLSAgICByZXR1cm4geHl6VG9MaW5lYXI8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+
Pihjb2xvcik7Ci19Ci0KLVhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+IENvbG9yQ29u
dmVyc2lvbjxYWVpGb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiwgTGluZWFyUHJvUGhvdG9S
R0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4mIGNvbG9y
KQotewotICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNv
bG9yKTsKLX0KLQotLy8gLSBMaW5lYXJSZWMyMDIwIG1hdHJpeCBjb252ZXJzaW9ucy4KLQotTGlu
ZWFyUmVjMjAyMDxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhclJlYzIwMjA8ZmxvYXQ+LCBY
WVpGb3I8TGluZWFyUmVjMjAyMDxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8TGluZWFy
UmVjMjAyMDxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4geHl6VG9MaW5lYXI8TGluZWFy
UmVjMjAyMDxmbG9hdD4+KGNvbG9yKTsKLX0KLQotWFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+
PiBDb2xvckNvbnZlcnNpb248WFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+PiwgTGluZWFyUmVj
MjAyMDxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+JiBjb2xvcikK
LXsKLSAgICByZXR1cm4gbGluZWFyVG9YWVo8TGluZWFyUmVjMjAyMDxmbG9hdD4+KGNvbG9yKTsK
LX0KLQotLy8gLSBMaW5lYXJTUkdCQSBtYXRyaXggY29udmVyc2lvbnMuCi0KLUxpbmVhclNSR0JB
PGZsb2F0PiBDb2xvckNvbnZlcnNpb248TGluZWFyU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8TGluZWFy
U1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0Pj4m
IGNvbG9yKQotewotICAgIHJldHVybiB4eXpUb0xpbmVhcjxMaW5lYXJTUkdCQTxmbG9hdD4+KGNv
bG9yKTsKLX0KLQotWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZ
WkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+LCBMaW5lYXJTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNv
bnN0IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRvWFla
PExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpOwotfQotCiAvLyBNQVJLOiBIU0wgY29udmVyc2lv
bnMuCiAKIHN0cnVjdCBIU0xIdWVDYWxjdWxhdGlvblJlc3VsdCB7CkBAIC0zODEsNyArMTgzLDcg
QEAgc3RhdGljIGNvbnN0ZXhwciBmbG9hdCBMQUJlID0gMjE2LjBmIC8gMgogc3RhdGljIGNvbnN0
ZXhwciBmbG9hdCBMQUJrID0gMjQzODkuMGYgLyAyNy4wZjsKIHN0YXRpYyBjb25zdGV4cHIgZmxv
YXQgRDUwV2hpdGVWYWx1ZXNbXSA9IHsgMC45NjQyMmYsIDEuMGYsIDAuODI1MjFmIH07CiAKLVhZ
WkZvcjxMYWI8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9yPExhYjxmbG9hdD4+LCBMYWI8
ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK1hZWkE8ZmxvYXQsIFdo
aXRlUG9pbnQ6OkQ1MD4gQ29sb3JDb252ZXJzaW9uPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ1
MD4sIExhYjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQogewogICAg
IGZsb2F0IGYxID0gKGNvbG9yLmxpZ2h0bmVzcyArIDE2LjBmKSAvIDExNi4wZjsKICAgICBmbG9h
dCBmMCA9IGYxICsgKGNvbG9yLmEgLyA1MDAuMGYpOwpAQCAtNDExLDcgKzIxMyw3IEBAIFhZWkZv
cjxMYWI8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm8KICAgICByZXR1cm4geyB4LCB5LCB6
LCBjb2xvci5hbHBoYSB9OwogfQogCi1MYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8Zmxv
YXQ+LCBYWVpGb3I8TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMYWI8ZmxvYXQ+
PiYgY29sb3IpCitMYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8ZmxvYXQ+LCBYWVpBPGZs
b2F0LCBXaGl0ZVBvaW50OjpENTA+Pjo6Y29udmVydChjb25zdCBYWVpBPGZsb2F0LCBXaGl0ZVBv
aW50OjpENTA+JiBjb2xvcikKIHsKICAgICBmbG9hdCB4ID0gY29sb3IueCAvIEQ1MFdoaXRlVmFs
dWVzWzBdOwogICAgIGZsb2F0IHkgPSBjb2xvci55IC8gRDUwV2hpdGVWYWx1ZXNbMV07CkBAIC00
NjEsMTE3ICsyNjMsNyBAQCBMYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8ZmxvYXQ+LCBM
CiAgICAgfTsKIH0KIAotLy8gTUFSSzogQ29tYmluYXRpb24gY29udmVyc2lvbnMgKGNvbnN0cnVj
dGVkIGZyb20gbW9yZSBiYXNpYyBjb252ZXJzaW9ucyBhYm92ZSkuCi0KLS8vIC0gQTk4UkdCIGNv
bWJpbmF0aW9uIGZ1bmN0aW9ucy4KLQotWFlaRm9yPEE5OFJHQjxmbG9hdD4+IENvbG9yQ29udmVy
c2lvbjxYWVpGb3I8QTk4UkdCPGZsb2F0Pj4sIEE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0
IEE5OFJHQjxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9y
PEE5OFJHQjxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4oY29sb3Ip
KTsKLX0KLQotQTk4UkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248QTk4UkdCPGZsb2F0PiwgWFla
Rm9yPEE5OFJHQjxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8QTk4UkdCPGZsb2F0Pj4m
IGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8QTk4UkdCPGZsb2F0Pj4oY29udmVy
dENvbG9yPExpbmVhckE5OFJHQjxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gRGlzcGxheVAz
IGNvbWJpbmF0aW9uIGZ1bmN0aW9ucy4KLQotWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+IENvbG9y
Q29udmVyc2lvbjxYWVpGb3I8RGlzcGxheVAzPGZsb2F0Pj4sIERpc3BsYXlQMzxmbG9hdD4+Ojpj
b252ZXJ0KGNvbnN0IERpc3BsYXlQMzxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252
ZXJ0Q29sb3I8WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8TGluZWFyRGlz
cGxheVAzPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotRGlzcGxheVAzPGZsb2F0PiBDb2xvckNvbnZl
cnNpb248RGlzcGxheVAzPGZsb2F0PiwgWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+Pjo6Y29udmVy
dChjb25zdCBYWVpGb3I8RGlzcGxheVAzPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBj
b252ZXJ0Q29sb3I8RGlzcGxheVAzPGZsb2F0Pj4oY29udmVydENvbG9yPExpbmVhckRpc3BsYXlQ
MzxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gRXh0ZW5kZWRTUkdCIGNvbWJpbmF0aW9uIGZ1
bmN0aW9ucy4KLQotWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248
WFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiwgRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpjb252
ZXJ0KGNvbnN0IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gY29u
dmVydENvbG9yPFhZWkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5l
YXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotRXh0ZW5kZWRTUkdCQTxmbG9h
dD4gQ29sb3JDb252ZXJzaW9uPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8RXh0ZW5kZWRT
UkdCQTxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8RXh0ZW5kZWRTUkdCQTxmbG9hdD4+
JiBjb2xvcikKLXsKLSAgICByZXR1cm4gY29udmVydENvbG9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+
Pihjb252ZXJ0Q29sb3I8TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0K
LS8vIC0gSFNMQSBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxIU0xBPGZsb2F0Pj4g
Q29sb3JDb252ZXJzaW9uPFhZWkZvcjxIU0xBPGZsb2F0Pj4sIEhTTEE8ZmxvYXQ+Pjo6Y29udmVy
dChjb25zdCBIU0xBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxY
WVpGb3I8SFNMQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwot
fQotCi1IU0xBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248SFNMQTxmbG9hdD4sIFhZWkZvcjxIU0xB
PGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxIU0xBPGZsb2F0Pj4mIGNvbG9yKQotewot
ICAgIHJldHVybiBjb252ZXJ0Q29sb3I8SFNMQTxmbG9hdD4+KGNvbnZlcnRDb2xvcjxTUkdCQTxm
bG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gSFdCQSBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCi0K
LVhZWkZvcjxIV0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxIV0JBPGZsb2F0Pj4s
IEhXQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBIV0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAg
cmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8SFdCQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8U1JH
QkE8ZmxvYXQ+Pihjb2xvcikpOwotfQotCi1IV0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248SFdC
QTxmbG9hdD4sIFhZWkZvcjxIV0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxIV0JB
PGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8SFdCQTxmbG9hdD4+
KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gTENIQSBjb21i
aW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxMQ0hBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9u
PFhZWkZvcjxMQ0hBPGZsb2F0Pj4sIExDSEE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMQ0hBPGZs
b2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8TENIQTxmbG9h
dD4+Pihjb252ZXJ0Q29sb3I8TGFiPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotTENIQTxmbG9hdD4g
Q29sb3JDb252ZXJzaW9uPExDSEE8ZmxvYXQ+LCBYWVpGb3I8TENIQTxmbG9hdD4+Pjo6Y29udmVy
dChjb25zdCBYWVpGb3I8TENIQTxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gY29udmVy
dENvbG9yPExDSEE8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGFiPGZsb2F0Pj4oY29sb3IpKTsKLX0K
LQotLy8gLSBQcm9QaG90b1JHQiBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxQcm9Q
aG90b1JHQjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+
PiwgUHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBQcm9QaG90b1JHQjxmbG9hdD4m
IGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9yPFByb1Bob3RvUkdCPGZs
b2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNvbG9yKSk7Ci19
Ci0KLVByb1Bob3RvUkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248UHJvUGhvdG9SR0I8ZmxvYXQ+
LCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPFByb1Bo
b3RvUkdCPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8UHJvUGhv
dG9SR0I8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Pihjb2xv
cikpOwotfQotCi0vLyAtIFJlYzIwMjAgY29tYmluYXRpb24gZnVuY3Rpb25zLgotCi1YWVpGb3I8
UmVjMjAyMDxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8UmVjMjAyMDxmbG9hdD4+LCBS
ZWMyMDIwPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgUmVjMjAyMDxmbG9hdD4mIGNvbG9yKQotewot
ICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj4oY29udmVydENv
bG9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+Pihjb2xvcikpOwotfQotCi1SZWMyMDIwPGZsb2F0PiBD
b2xvckNvbnZlcnNpb248UmVjMjAyMDxmbG9hdD4sIFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4+Ojpj
b252ZXJ0KGNvbnN0IFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVy
biBjb252ZXJ0Q29sb3I8UmVjMjAyMDxmbG9hdD4+KGNvbnZlcnRDb2xvcjxMaW5lYXJSZWMyMDIw
PGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotLy8gLSBTUkdCIGNvbWJpbmF0aW9uIGZ1bmN0aW9ucy4K
LQotWFlaRm9yPFNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxTUkdCQTxmbG9h
dD4+LCBTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYgY29sb3IpCi17
Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8U1JHQkE8ZmxvYXQ+Pj4oY29udmVydENv
bG9yPExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotU1JHQkE8ZmxvYXQ+IENvbG9y
Q29udmVyc2lvbjxTUkdCQTxmbG9hdD4sIFhZWkZvcjxTUkdCQTxmbG9hdD4+Pjo6Y29udmVydChj
b25zdCBYWVpGb3I8U1JHQkE8ZmxvYXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZlcnRD
b2xvcjxTUkdCQTxmbG9hdD4+KGNvbnZlcnRDb2xvcjxMaW5lYXJTUkdCQTxmbG9hdD4+KGNvbG9y
KSk7Ci19Ci0KLS8vIE1BUks6IFNSR0JBPHVpbnQ4X3Q+IGNvbXBvbmVudCB0eXBlIGNvbnZlcnNp
b25zLgorLy8gTUFSSzogU1JHQkE8dWludDhfdD4gY29udmVyc2lvbnMuCiAKIFNSR0JBPGZsb2F0
PiBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBTUkdCQTx1aW50OF90Pj46OmNvbnZlcnQo
Y29uc3QgU1JHQkE8dWludDhfdD4mIGNvbG9yKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgJKHJldmlzaW9uIDI3Mjgz
NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyOTkgKzI2LDkyIEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNvbG9yVHlwZXMuaCIKLSNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLS8vIEFsbCBjb2xvciB0eXBlcyBtdXN0IGF0IGxlYXN0IGltcGxl
bWVudCB0aGUgZm9sbG93aW5nIGNvbnZlcnNpb25zIHRvIGFuZCBmcm9tIHRoZWlyIHJlZmVyZW5j
ZSBYWVogY29sb3Igc3BhY2UKKy8vIEFsbCBjb2xvciB0eXBlcywgb3RoZXIgdGhhbiBYWVpBIG9y
IHRob3NlIGluaGVyaXRpbmcgZnJvbSBSR0JUeXBlLCBtdXN0IGltcGxlbWVudAorLy8gdGhlIGZv
bGxvd2luZyBjb252ZXJzaW9ucyB0byBhbmQgZnJvbSB0aGVpciAiUmVmZXJlbmNlIiBjb2xvci4K
IC8vCi0vLyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPGBDb2xv
clR5cGVgPGZsb2F0Pj4sIGBDb2xvclR5cGVgPGZsb2F0Pj4gewotLy8gICAgICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBYWVpGb3I8YENvbG9yVHlwZWA8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IGBD
b2xvclR5cGVgPGZsb2F0PiYpOworLy8gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPGBDb2xvclR5cGVgPGZsb2F0Pjo6UmVmZXJlbmNlLCBgQ29sb3JUeXBlYDxmbG9hdD4+IHsK
Ky8vICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYENvbG9yVHlwZWA8ZmxvYXQ+OjpSZWZl
cmVuY2UgY29udmVydChjb25zdCBgQ29sb3JUeXBlYDxmbG9hdD4mKTsKIC8vICAgIH07CiAvLyAg
ICAKLS8vICAgIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxgQ29sb3JUeXBlYDxm
bG9hdD4sIFhZWkZvcjxgQ29sb3JUeXBlYDxmbG9hdD4+PiB7Ci0vLyAgICAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIGBDb2xvclR5cGVgPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxgQ29s
b3JUeXBlYDxmbG9hdD4+Jik7CisvLyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248YENvbG9yVHlwZWA8ZmxvYXQ+LCBgQ29sb3JUeXBlYDxmbG9hdD46OlJlZmVyZW5jZT4gewor
Ly8gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBgQ29sb3JUeXBlYDxmbG9hdD4gY29udmVy
dChjb25zdCBgQ29sb3JUeXBlYDxmbG9hdD46OlJlZmVyZW5jZSYpOwogLy8gICAgfTsKIC8vCi0v
LyBBbnkgYWRkaXRpb25hbCBjb252ZXJzaW9ucyBjYW4gYmUgdGhvdWdodCBvZiBhcyBvcHRpbWl6
YXRpb25zLCBzaG9ydGN1dHRpbmcgdW5uZWNlc3Nhcnkgc3RlcHMsIHRob3VnaAotLy8gc29tZSBt
YXkgYmUgaW50ZWdyYWwgdG8gdGhlIGJhc2UgY29udmVyc2lvbi4KIAotdGVtcGxhdGU8dHlwZW5h
bWUgQ29sb3JUeXBlPiB1c2luZyBYWVpGb3IgPSBYWVpBPHR5cGVuYW1lIENvbG9yVHlwZTo6Q29t
cG9uZW50VHlwZSwgQ29sb3JUeXBlOjp3aGl0ZVBvaW50PjsKLQotdGVtcGxhdGU8dHlwZW5hbWUg
T3V0cHV0LCB0eXBlbmFtZSBJbnB1dD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjsKK3RlbXBsYXRl
PHR5cGVuYW1lIE91dHB1dCwgdHlwZW5hbWUgSW5wdXQsIHR5cGVuYW1lID0gdm9pZD4gc3RydWN0
IENvbG9yQ29udmVyc2lvbjsKIAogdGVtcGxhdGU8dHlwZW5hbWUgT3V0cHV0LCB0eXBlbmFtZSBJ
bnB1dD4gaW5saW5lIE91dHB1dCBjb252ZXJ0Q29sb3IoY29uc3QgSW5wdXQmIGNvbG9yKQogewog
ICAgIHJldHVybiBDb2xvckNvbnZlcnNpb248T3V0cHV0LCBJbnB1dD46OmNvbnZlcnQoY29sb3Ip
OwogfQogCi0vLyBBOThSR0IKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpG
b3I8QTk4UkdCPGZsb2F0Pj4sIEE5OFJHQjxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgWFlaRm9yPEE5OFJHQjxmbG9hdD4+IGNvbnZlcnQoY29uc3QgQTk4UkdCPGZsb2F0PiYp
OwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEE5OFJHQjxmbG9hdD4s
IFhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBOThS
R0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPEE5OFJHQjxmbG9hdD4+Jik7Ci19OwotCi0v
LyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJBOThS
R0I8ZmxvYXQ+LCBBOThSR0I8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExp
bmVhckE5OFJHQjxmbG9hdD4gY29udmVydChjb25zdCBBOThSR0I8ZmxvYXQ+Jik7Ci19OwotCi0K
LS8vIERpc3BsYXlQMwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxE
aXNwbGF5UDM8ZmxvYXQ+PiwgRGlzcGxheVAzPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBYWVpGb3I8RGlzcGxheVAzPGZsb2F0Pj4gY29udmVydChjb25zdCBEaXNwbGF5UDM8
ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248RGlzcGxh
eVAzPGZsb2F0PiwgWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIERpc3BsYXlQMzxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8RGlzcGxheVAz
PGZsb2F0Pj4mKTsKLX07CiAKLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uPExpbmVhckRpc3BsYXlQMzxmbG9hdD4sIERpc3BsYXlQMzxmbG9hdD4+IHsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyRGlzcGxheVAzPGZsb2F0PiBjb252ZXJ0KGNv
bnN0IERpc3BsYXlQMzxmbG9hdD4mKTsKLX07CisvLyBNQVJLOiBDaHJvbWF0aWMgQWRhcHRhdGlv
biBjb252ZXJzaW9ucy4KIAorLy8gaHR0cDovL3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXgu
aHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCit0ZW1wbGF0ZTxXaGl0ZVBvaW50IEZyb20sIFdoaXRl
UG9pbnQgVG8+IHN0cnVjdCBDaHJvbWF0aWNBZGFwYXRpb247CiAKLS8vIEV4dGVuZGVkU1JHQkEK
LXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8RXh0ZW5kZWRTUkdCQTxm
bG9hdD4+LCBFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBYWVpGb3I8RXh0ZW5kZWRTUkdCQTxmbG9hdD4+IGNvbnZlcnQoY29uc3QgRXh0ZW5kZWRTUkdC
QTxmbG9hdD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxFeHRl
bmRlZFNSR0JBPGZsb2F0PiwgWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pj4gewotICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBFeHRlbmRlZFNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZ
WkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4mKTsKK3RlbXBsYXRlPD4gc3RydWN0IENocm9tYXRp
Y0FkYXBhdGlvbjxXaGl0ZVBvaW50OjpENjUsIFdoaXRlUG9pbnQ6OkQ1MD4geworICAgIHN0YXRp
YyBjb25zdGV4cHIgQ29sb3JNYXRyaXg8MywgMz4gbWF0cml4IHsKKyAgICAgICAgIDEuMDQ3ODEx
MmYsIDAuMDIyODg2NmYsIC0wLjA1MDEyNzBmLAorICAgICAgICAgMC4wMjk1NDI0ZiwgMC45OTA0
ODQ0ZiwgLTAuMDE3MDQ5MWYsCisgICAgICAgIC0wLjAwOTIzNDVmLCAwLjAxNTA0MzZmLCAgMC43
NTIxMzE2ZgorICAgIH07CiB9OwogCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENv
bG9yQ29udmVyc2lvbjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0PiwgRXh0ZW5kZWRTUkdCQTxm
bG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyRXh0ZW5kZWRTUkdCQTxm
bG9hdD4gY29udmVydChjb25zdCBFeHRlbmRlZFNSR0JBPGZsb2F0PiYpOwordGVtcGxhdGU8PiBz
dHJ1Y3QgQ2hyb21hdGljQWRhcGF0aW9uPFdoaXRlUG9pbnQ6OkQ1MCwgV2hpdGVQb2ludDo6RDY1
PiB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiBtYXRyaXggeworICAg
ICAgICAgMC45NTU1NzY2ZiwgLTAuMDIzMDM5M2YsIDAuMDYzMTYzNmYsCisgICAgICAgIC0wLjAy
ODI4OTVmLCAgMS4wMDk5NDE2ZiwgMC4wMjEwMDc3ZiwKKyAgICAgICAgIDAuMDEyMjk4MmYsIC0w
LjAyMDQ4MzBmLCAxLjMyOTkwOThmCisgICAgfTsKIH07CiAKLQotLy8gSFNMQQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxIU0xBPGZsb2F0Pj4sIEhTTEE8ZmxvYXQ+
PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxIU0xBPGZsb2F0Pj4gY29udmVy
dChjb25zdCBIU0xBPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPEhTTEE8ZmxvYXQ+LCBYWVpGb3I8SFNMQTxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIEhTTEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPEhTTEE8ZmxvYXQ+
PiYpOwotfTsKLQotLy8gQWRkaXRpb25zCisvLyBNQVJLOiBIU0xBCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBIU0xBPGZsb2F0Pj4gewogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBIU0xBPGZsb2F0PiYp
OwogfTsKLQotCi0vLyBIV0JBCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFla
Rm9yPEhXQkE8ZmxvYXQ+PiwgSFdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgWFlaRm9yPEhXQkE8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IEhXQkE8ZmxvYXQ+Jik7Ci19Owot
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248SFdCQTxmbG9hdD4sIFhZWkZvcjxI
V0JBPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSFdCQTxmbG9hdD4gY29u
dmVydChjb25zdCBYWVpGb3I8SFdCQTxmbG9hdD4+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248SFNMQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj4geworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBIU0xBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYpOwogfTsK
IAotLy8gQWRkaXRpb25zCisvLyBNQVJLOiBIV0JBCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNv
bnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBIV0JBPGZsb2F0Pj4gewogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBIV0JBPGZsb2F0PiYpOwogfTsKLQot
Ci0vLyBMQ0hBCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPExDSEE8
ZmxvYXQ+PiwgTENIQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9y
PExDSEE8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExDSEE8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TENIQTxmbG9hdD4sIFhZWkZvcjxMQ0hBPGZsb2F0
Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTENIQTxmbG9hdD4gY29udmVydChjb25z
dCBYWVpGb3I8TENIQTxmbG9hdD4+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248SFdCQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBIV0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYpOwogfTsKIAotLy8gQWRk
aXRpb25zCisvLyBNQVJLOiBMQ0hBCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248
TGFiPGZsb2F0PiwgTENIQTxmbG9hdD4+IHsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGFi
PGZsb2F0PiBjb252ZXJ0KGNvbnN0IExDSEE8ZmxvYXQ+Jik7CiB9OwotCi0KLS8vIExhYgotdGVt
cGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMYWI8ZmxvYXQ+PiwgTGFiPGZs
b2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8TGFiPGZsb2F0Pj4gY29u
dmVydChjb25zdCBMYWI8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNv
bnZlcnNpb248TGFiPGZsb2F0PiwgWFlaRm9yPExhYjxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIExhYjxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8TGFiPGZsb2F0Pj4m
KTsKLX07Ci0KLS8vIEFkZGl0aW9ucwogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PExDSEE8ZmxvYXQ+LCBMYWI8ZmxvYXQ+PiB7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExD
SEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgTGFiPGZsb2F0PiYpOwogfTsKIAotCi0vLyBMaW5lYXJB
OThSR0IKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyQTk4
UkdCPGZsb2F0Pj4sIExpbmVhckE5OFJHQjxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgWFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+IGNvbnZlcnQoY29uc3QgTGluZWFyQTk4
UkdCPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExp
bmVhckE5OFJHQjxmbG9hdD4sIFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+Pj4gewotICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBMaW5lYXJBOThSR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFla
Rm9yPExpbmVhckE5OFJHQjxmbG9hdD4+Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRl
PD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+LCBMaW5lYXJBOThSR0I8Zmxv
YXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEE5OFJHQjxmbG9hdD4gY29udmVydChj
b25zdCBMaW5lYXJBOThSR0I8ZmxvYXQ+Jik7Ci19OwotCi0KLS8vIExpbmVhckRpc3BsYXlQMwot
dGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8
ZmxvYXQ+PiwgTGluZWFyRGlzcGxheVAzPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJE
aXNwbGF5UDM8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248TGluZWFyRGlzcGxheVAzPGZsb2F0PiwgWFlaRm9yPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+
PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhckRpc3BsYXlQMzxmbG9hdD4gY29u
dmVydChjb25zdCBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4mKTsKLX07Ci0KLS8vIEFk
ZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPERpc3BsYXlQMzxmbG9h
dD4sIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
RGlzcGxheVAzPGZsb2F0PiBjb252ZXJ0KGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD4mKTsK
Ky8vIE1BUks6IExhYgordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkE8Zmxv
YXQsIFdoaXRlUG9pbnQ6OkQ1MD4sIExhYjxmbG9hdD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPiBjb252ZXJ0KGNvbnN0IExhYjxmbG9h
dD4mKTsKIH07Ci0KLQotLy8gTGluZWFyRXh0ZW5kZWRTUkdCQQotdGVtcGxhdGU8PiBzdHJ1Y3Qg
Q29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4sIExpbmVh
ckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZv
cjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJFeHRlbmRl
ZFNSR0JBPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8TGluZWFyRXh0ZW5kZWRTUkdCQTxm
bG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhckV4dGVuZGVkU1JHQkE8
ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiYp
OwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExhYjxmbG9hdD4sIFhZWkE8Zmxv
YXQsIFdoaXRlUG9pbnQ6OkQ1MD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGFiPGZs
b2F0PiBjb252ZXJ0KGNvbnN0IFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ1MD4mKTsKIH07CiAK
LS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEV4dGVuZGVk
U1JHQkE8ZmxvYXQ+LCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBFeHRlbmRlZFNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IExpbmVhckV4
dGVuZGVkU1JHQkE8ZmxvYXQ+Jik7Ci19OwotCi0KLS8vIExpbmVhclByb1Bob3RvUkdCCi10ZW1w
bGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZs
b2F0Pj4sIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBYWVpGb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExpbmVh
clByb1Bob3RvUkdCPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPExpbmVhclByb1Bob3RvUkdCPGZsb2F0PiwgWFlaRm9yPExpbmVhclByb1Bob3RvUkdC
PGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyUHJvUGhvdG9SR0I8
ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4mKTsK
LX07Ci0KLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFBy
b1Bob3RvUkdCPGZsb2F0PiwgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFByb1Bob3RvUkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0IExpbmVhclBy
b1Bob3RvUkdCPGZsb2F0PiYpOwotfTsKLQotCi0vLyBMaW5lYXJSZWMyMDIwCi10ZW1wbGF0ZTw+
IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+PiwgTGlu
ZWFyUmVjMjAyMDxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9yPExp
bmVhclJlYzIwMjA8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+Jik7
Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyUmVjMjAyMDxm
bG9hdD4sIFhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgTGluZWFyUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8TGluZWFy
UmVjMjAyMDxmbG9hdD4+Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0
IENvbG9yQ29udmVyc2lvbjxSZWMyMDIwPGZsb2F0PiwgTGluZWFyUmVjMjAyMDxmbG9hdD4+IHsK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25zdCBM
aW5lYXJSZWMyMDIwPGZsb2F0PiYpOwotfTsKLQotCi0vLyBMaW5lYXJTUkdCQQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+LCBMaW5l
YXJTUkdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9yPExpbmVh
clNSR0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mKTsKLX07Ci0K
LXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJTUkdCQTxmbG9hdD4sIFhZ
WkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExp
bmVhclNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+
Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lv
bjxTUkdCQTxmbG9hdD4sIExpbmVhclNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mKTsK
LX07Ci0KLQotLy8gUHJvUGhvdG9SR0IKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lv
bjxYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiwgUHJvUGhvdG9SR0I8ZmxvYXQ+PiB7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxQcm9QaG90b1JHQjxmbG9hdD4+IGNvbnZlcnQo
Y29uc3QgUHJvUGhvdG9SR0I8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248UHJvUGhvdG9SR0I8ZmxvYXQ+LCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+
Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQcm9QaG90b1JHQjxmbG9hdD4gY29udmVy
dChjb25zdCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiYpOwotfTsKLQotLy8gQWRkaXRpb25z
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyUHJvUGhvdG9SR0I8Zmxv
YXQ+LCBQcm9QaG90b1JHQjxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGlu
ZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgUHJvUGhvdG9SR0I8ZmxvYXQ+Jik7
Ci19OwotCi0KLS8vIFJlYzIwMjAKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxY
WVpGb3I8UmVjMjAyMDxmbG9hdD4+LCBSZWMyMDIwPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBYWVpGb3I8UmVjMjAyMDxmbG9hdD4+IGNvbnZlcnQoY29uc3QgUmVjMjAyMDxm
bG9hdD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxSZWMyMDIw
PGZsb2F0PiwgWFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWMyMDIwPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4m
KTsKLX07Ci0KLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PExpbmVhclJlYzIwMjA8ZmxvYXQ+LCBSZWMyMDIwPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBMaW5lYXJSZWMyMDIwPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFJlYzIwMjA8Zmxv
YXQ+Jik7Ci19OwotCi0KLS8vIFNSR0JBCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248WFlaRm9yPFNSR0JBPGZsb2F0Pj4sIFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBYWVpGb3I8U1JHQkE8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0
PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFNSR0JBPGZsb2F0
PiwgWFlaRm9yPFNSR0JBPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU1JH
QkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPFNSR0JBPGZsb2F0Pj4mKTsKLX07Ci0KLS8v
IEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhclNSR0JB
PGZsb2F0PiwgU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVh
clNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYpOwotfTsKLQotdGVtcGxh
dGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhTTEE8ZmxvYXQ+LCBTUkdCQTxmbG9hdD4+IHsK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSFNMQTxmbG9hdD4gY29udmVydChjb25zdCBTUkdC
QTxmbG9hdD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxIV0JB
PGZsb2F0PiwgU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhXQkE8
ZmxvYXQ+IGNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+Jik7Ci19OwotCi0vLyBTcGVjaWFsIGNh
c2VzIGZvciBTUkdCQTx1aW50OF90Pi4gT25seSBzUkdCIHN1cHBvcnRzIG5vbi1mbG9hdGluZyBw
b2ludCBjb21wb25lbnQgdHlwZXMuCisvLyBNQVJLOiBTUkdCQTx1aW50OF90PgorLy8gT25seSBz
UkdCIHN1cHBvcnRzIG5vbi1mbG9hdGluZyBwb2ludCBjb21wb25lbnQgdHlwZXMuCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBTUkdCQTx1aW50OF90Pj4g
ewogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBT
UkdCQTx1aW50OF90PiYpOwogfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PFNSR0JBPHVpbnQ4X3Q+LCBTUkdCQTxmbG9hdD4+IHsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgU1JHQkE8dWludDhfdD4gY29udmVydChjb25zdCBTUkdCQTxmbG9hdD4mKTsKIH07CiAKIAot
Ly8gWFlaQSBDaHJvbWF0aWMgQWRhcHRhdGlvbiBjb252ZXJzaW9ucy4KLXRlbXBsYXRlPD4gc3Ry
dWN0IENvbG9yQ29udmVyc2lvbjxYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+LCBYWVpBPGZs
b2F0LCBXaGl0ZVBvaW50OjpENTA+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkE8
ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4gY29udmVydChjb25zdCBYWVpBPGZsb2F0LCBXaGl0ZVBv
aW50OjpENTA+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFla
QTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPiwgWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDY1Pj4g
ewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+
IGNvbnZlcnQoY29uc3QgWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDY1PiYpOwotfTsKLQotCiAv
LyBJZGVudGl0eSBjb252ZXJzaW9uLgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IHN0
cnVjdCBDb2xvckNvbnZlcnNpb248Q29sb3JUeXBlLCBDb2xvclR5cGU+IHsKQEAgLTMyOCw1NCAr
MTIxLDE3NCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IHN0cnVjdCBDb2xvCiAgICAg
fQogfTsKIAotLy8gRmFsbGJhY2sgY29udmVyc2lvbi4KIAotLy8gQWxsIHR5cGVzIGFyZSByZXF1
aXJlZCB0byBoYXZlIGEgY29udmVyc2lvbiB0byB0aGVpciByZWZlcmVuY2UgWFlaIHNwYWNlLCBz
byB0aGlzIGlzIGd1YXJhbnRlZWQKLS8vIHRvIHdvcmsgaWYgYW5vdGhlciBzcGVjaWFsaXphdGlv
biBpcyBub3QgYWxyZWFkeSBwcm92aWRlZC4KKy8vIE1haW4gY29udmVyc2lvbi4KIAotLy8gRklY
TUU6IFJhdGhlciB0aGFuIGFsd2F5cyBjb252ZXJ0aW5nIHRocm91Z2ggcmVmZXJlbmNlIFhZWiBj
b2xvciBzcGFjZQotLy8gd2Ugc2hvdWxkIGluc3RlYWQgc3dpdGNoIHRvIGNvbXB1dGluZyB0aGUg
bGVhc3QgY29tbW9uIHJlZmVyZW5jZSBhbmNlc3RvcgotLy8gdHlwZSB3aGVyZSBlYWNoIGNvbG9y
IHR5cGUgZGVmaW5lcyBpdHMgcmVmZXJlbmNlIHR5cGUgYXMgdGhlIGNvbG9yIGl0IG5lZWRzCi0v
LyB0byBnZXQgb25lIHN0ZXAgY2xvc2VyIHRvIHRoZSByZWZlcmVuY2UgWFlaIGNvbG9yIHNwYWNl
LiBGb3IgaW5zdGFuY2UsCi0vLyB0aGUgcmVmZXJlbmNlIHR5cGUgb2YgU1JHQkEgaXMgTGluZWFy
U1JHQkEsIGFuZCB0aGUgcmVmZXJlbmNlIHR5cGUgb2YgTENIQQotLy8gaXMgTGFiLiBUb2dldGhl
ciwgdGhlIGNvbG9yIHR5cGVzIG1ha2UgYSB0cmVlIHdpdGggWFlaIGF0IHRoZSByb290LiBUaGUK
LS8vIGNvbnZlcnNpb24gc2hvdWxkIGVuZCB1cCBsb29raW5nIHNvbWV0aGluZyBsaWtlOgotLy8K
LS8vICAgdXNpbmcgTENBID0gTGVhc3RDb21tb25BbmNlc3RvcjxPdXRwdXQsIElucHV0Pjo6VHlw
ZTsKLS8vICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjxMQ0E+KGNv
bG9yKSk7Ci0vLwotLy8gQW4gZXhhbXBsZSBvZiB3aGVyZSB0aGlzIHdvdWxkIGJlIG1vcmUgZWZm
aWNpZW50IGlzIHdoZW4gY29udmVydGluZyBmcm9tCi0vLyBIU0xBPGZsb2F0PiB0byBIV0JBPGZs
b2F0Pi4gTENBIGZvciB0aGlzIHBhaXIgaXMgU1JHQkE8ZmxvYXQ+IHNvIGNvbnZlcnNpb24KLS8v
IHRocm91Z2ggWFlaIGlzIHdhc3RlZnVsLiBUaGlzIG1vZGVsIHdvdWxkIGFsc28gYWxsb3cgdXMg
dG8gcmVtb3ZlIHRoZQotLy8gY29tYmluYXRpb24gY29udmVyc2lvbnMsIHJlZHVjaW5nIHRoZSBu
dW1iZXIgb2YgdGhpbmdzIGVhY2ggbmV3IGNvbG9yIHR5cGUKLS8vIHJlcXVpcmVzLgotLy8KLS8v
IEZJWE1FOiBSZWR1Y2UgdG90YWwgbnVtYmVyIG9mIG1hdHJpeCB0cmFuZm9ybXMgYnkgY29uY2F0
ZW5hdGluZyB0aGUgbWF0cmljZXMKLS8vIG9mIHNlcXVlbnRpYWwgbWF0cml4IHRyYW5zZm9ybXMg
YXQgY29tcGlsZSB0aW1lLiBUYWtlIHRoZSBjb252ZXJzaW9uIGZyb20KLS8vIFByb1Bob3RvUkdC
PGZsb2F0PiB0byBTUkdCQTxmbG9hdD4gYXMgYW4gZXhhbXBsZToKLS8vCi0vLyAgIDEuIFByb1Bo
b3RvUkdCPGZsb2F0PiAtPiBMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4gICAgICAgICAgICAgICAg
ICAodHJhbnNmZXIgZnVuY3Rpb24gdHJhbnNmb3JtLCBub3QgbWF0cml4KQotLy8gICAyLiBMaW5l
YXJQcm9QaG90b1JHQjxmbG9hdD4gLT4gWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPiAgICAg
ICAgTUFUUklYIFRSQU5TRk9STQotLy8gICAzLiBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+
IC0+IFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4gICAgTUFUUklYIFRSQU5TRk9STQotLy8g
ICA0LiBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+IC0+IExpbmVhclNSR0JBPGZsb2F0PiAg
ICAgICAgICAgICAgTUFUUklYIFRSQU5TRk9STQotLy8gICA1LiBMaW5lYXJTUkdCQTxmbG9hdD4g
LT4gU1JHQkE8ZmxvYXQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5zZmVyIGZ1
bmN0aW9uIHRyYW5zZm9ybSwgbm90IG1hdHJpeCkKLS8vCi0vLyBTdGVwcyAyLCAzLCBhbmQgNCBj
YW4gYmUgY29tYmluZWQgaW50byBvbmUgc2luZ2xlIG1hdHJpeCBpZiB3ZSBsaW5lYXJseQotLy8g
Y29uY2F0ZW50ZWQgdGhlIHRocmVlIG1hdHJpY2VzLiBUbyBkbyB0aGlzLCB3ZSB3aWxsIGhhdmUg
dG8gdGFnIHdoaWNoIGNvbnZlcnNpb25zCi0vLyBhcmUgbWF0cml4IGJhc2VkLCBleHBvc2UgdGhl
IG1hdHJpY2VzLCBhZGQgc3VwcG9ydCBmb3IgY29uc3RleHByIGNvbmNhdGVudGluZwotLy8gb2Yg
Q29sb3JNYXRyaXggYW5kIGZpbmQgYSB3YXkgdG8gbWVyZ2UgdGhlIGNvbnZlcnNpb25zLgotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBPdXRwdXQsIHR5cGVuYW1lIElucHV0PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uIHsKLSAgICBzdGF0aWMgT3V0cHV0IGNvbnZlcnQoY29uc3QgSW5wdXQmIGNvbG9yKQor
Ly8gICAgICAgICAgICAgICAg4pSMIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pS8IOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSQCisvLyAgICAgICAgICAgICAgICAgTWF0cml4IENvbnZlcnNpb25zICAg
IOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUguKUjOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorLy8gICAgICAgICAgICAgICAg4pSCICAgICAgICAg
ICAgICAgICAgICAgIOKUgiBYWVogKEQ1MCkg4pSC4pSC4pSCIFhZWiAoRDY1KSDilIIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSC
CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUlOKUgOKUgOKUgOKU
gOKUgOKWsuKUgOKUgOKUgOKUgOKUgOKUmOKUguKUlOKUgOKUgOKUgOKUgOKUgOKWsuKUgOKUgOKU
gOKUgOKUgOKUmAorLy8gICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIOKUgiAgICAgIOKUgiAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIKKy8vICAgICAgIOKUjOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAgICAg
IOKUgiAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorLy8g
ICAgICAg4pSCICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg
4pSCICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKU
giAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUggorLy8gICAgICAg4pSCICAgICAgICAgICAg
ICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKU
giAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggorLy8gICAgICAg
4pSCICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAg
ICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAg4pSCICAgICAgICAgICAgICAgIOKUggorLy8gICAgICAg4pSCICAgICAgICAgIFByb1Bob3Rv
UkdC4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSQICAg4pSCICAgU1JHQuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCBEaXNwbGF5UDPilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJAgQTk4UkdC4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIFJlYzIwMjDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAKKy8v
ICAgICAgIOKUgiAgICAgICAg4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDi
lIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIg
ICDilIIgICDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilJDilIIg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKU
jOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUgiDi
lILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUggorLy8gICAgICAg4pSCICAgICAg
ICAgIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIgICDilIIgICDi
lILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC4pSCIOKUguKUgiBMaW5lYXIg
4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVh
ckV4dGVuZGVkIOKUguKUgiDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC
4pSCCisvLyAgICAgICDilIIgICAgICAgIOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDi
lIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSY4pSCICAg4pSCICAg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUgiDilILilJTi
lIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lJjilIIg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUgiDilIIKKy8vICAgICAgIOKU
giAgICAgICAgIOKUgOKUguKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSA4pSC4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgOKUguKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA4pSC
4pSA4pSC4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIDilILilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgAorLy8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSQICAgIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIgICDilIIg
ICDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilJDilIIg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUgiDilILilIzi
lIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCCisvLyDilIIgICAgTGFiICAgIOKUgiAgICDilILi
lIIgR2FtbWEgIOKUgiDilIIgR2FtbWFFeHRlbmRlZCAg4pSC4pSCICAg4pSCICAg4pSC4pSCIEdh
bW1hICDilIIg4pSCIEdhbW1hRXh0ZW5kZWQgIOKUguKUgiDilILilIIgR2FtbWEgIOKUgiDilIIg
R2FtbWFFeHRlbmRlZCAg4pSC4pSCIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVuZGVk
ICDilILilIIg4pSC4pSCIEdhbW1hICDilIIg4pSCIEdhbW1hRXh0ZW5kZWQgIOKUguKUggorLy8g
4pSU4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSYICAgIOKUguKUlOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilJjilIIgICDilIIgICDilILilJTilIDilIDilIDilIDilrLilIDilIDi
lIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSY4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSC4pSU4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCCisv
LyAgICAgICDilIIgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY
ICAg4pSCICAg4pSU4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCisvLyAgICAgICDilIIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgIOKUjOKU
gOKUgOKUtOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorLy8gICAgICAg4pSCICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICDilIIgICAgICAgICAgICAg4pSCICAg
ICAgICAgICAgIOKUggorLy8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilILilIzilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSQ4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisvLyDi
lIIgICAgTENIICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSC
4pSCICAgIEhTTCAgICDilIIg4pSCICAgIEhXQiAgICDilILilIJTUkdCPHVpbnQ4X3Q+4pSCCisv
LyDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJjilJTilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJgKKwordGVtcGxhdGU8dHlwZW5hbWUg
T3V0cHV0LCB0eXBlbmFtZSBJbnB1dCwgdHlwZW5hbWU+IHN0cnVjdCBDb2xvckNvbnZlcnNpb24g
eworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgT3V0cHV0IGNvbnZlcnQoY29uc3QgSW5w
dXQmIGNvbG9yKQogICAgIHsKLSAgICAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX3NhbWVfdjxJ
bnB1dCwgU1JHQkE8dWludDhfdD4+KQorICAgICAgICAvLyAxLiBIYW5kbGUgdGhlIHNwZWNpYWwg
Y2FzZSBTUkdCQTx1aW50OF90PiBmb3IgSW5wdXQgYW5kIE91dHB1dC4KKyAgICAgICAgaWYgY29u
c3RleHByIChzdGQ6OmlzX3NhbWVfdjxJbnB1dCwgU1JHQkE8dWludDhfdD4+IHx8IHN0ZDo6aXNf
c2FtZV92PE91dHB1dCwgU1JHQkE8dWludDhfdD4+KQogICAgICAgICAgICAgcmV0dXJuIGNvbnZl
cnRDb2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci0gICAg
ICAgIGVsc2UgaWYgY29uc3RleHByIChzdGQ6OmlzX3NhbWVfdjxPdXRwdXQsIFNSR0JBPHVpbnQ4
X3Q+PikKLSAgICAgICAgICAgIHJldHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+KGNv
bnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgYXV0byB4eXoxID0gY29udmVydENvbG9yPFhZWkZvcjxJbnB1dD4+KGNvbG9yKTsKLSAg
ICAgICAgICAgIGF1dG8geHl6MiA9IGNvbnZlcnRDb2xvcjxYWVpGb3I8T3V0cHV0Pj4oeHl6MSk7
Ci0gICAgICAgICAgICByZXR1cm4gY29udmVydENvbG9yPE91dHB1dD4oeHl6Mik7CisKKyAgICAg
ICAgLy8gMi4gSGFuZGxlIGFsbCBjb2xvciB0eXBlcyB0aGF0IGFyZSBub3QgSXNSR0JUeXBlPFQ+
IG9yIElzWFlaQTxUPiBmb3IgSW5wdXQgYW5kIE91dHB1dC4gRm9yIGFsbAorICAgICAgICAvLyAg
ICB0aGVzZSBvdGhlciBjb2xvciB0eXBlcywgd2UgY2FuIHVuY29uZHRpb25hbGx5IGNvbnZlcnQg
dGhlbSB0byB0aGVpciAicmVmZXJlbmNlIiBjb2xvciwgYXMKKyAgICAgICAgLy8gICAgZWl0aGVy
IHRoZXkgaGF2ZSBhbHJlYWR5IGJlZW4gaGFuZGxlZCBieSBhIENvbG9yQ29udmVyc2lvbiBzcGVj
aWFsaXphdGlvbiBvciB0aGlzIHdpbGwKKyAgICAgICAgLy8gICAgZ2V0IHVzIGNsb3NlciB0byB0
aGUgZmluYWwgY29udmVyc2lvbi4KKyAgICAgICAgZWxzZSBpZiBjb25zdGV4cHIgKCFJc1JHQlR5
cGU8SW5wdXQ+ICYmICFJc1hZWkE8SW5wdXQ+KQorICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRD
b2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjx0eXBlbmFtZSBJbnB1dDo6UmVmZXJlbmNlPihjb2xv
cikpOworICAgICAgICBlbHNlIGlmIGNvbnN0ZXhwciAoIUlzUkdCVHlwZTxPdXRwdXQ+ICYmICFJ
c1hZWkE8T3V0cHV0PikKKyAgICAgICAgICAgIHJldHVybiBjb252ZXJ0Q29sb3I8T3V0cHV0Pihj
b252ZXJ0Q29sb3I8dHlwZW5hbWUgT3V0cHV0OjpSZWZlcmVuY2U+KGNvbG9yKSk7CisKKyAgICAg
ICAgLy8gMy4gSGFuZGxlIGNvbnZlcnNpb25zIHdpdGhpbiBhIFJHQkZhbWlseSAoZS5nLiBhbGwg
aGF2ZSB0aGUgc2FtZSBkZXNjcmlwdG9yKS4KKyAgICAgICAgZWxzZSBpZiBjb25zdGV4cHIgKElz
U2FtZVJHQlR5cGVGYW1pbHk8T3V0cHV0LCBJbnB1dD4pCisgICAgICAgICAgICByZXR1cm4gaGFu
ZGxlUkdCRmFtaWx5Q29udmVyc2lvbihjb2xvcik7CisKKyAgICAgICAgLy8gNC4gSGFuZGxlIGFu
eSBnYW1tYSBjb252ZXJzaW9ucyBmb3IgdGhlIElucHV0IGFuZCBPdXRwdXQuCisgICAgICAgIGVs
c2UgaWYgY29uc3RleHByIChJc1JHQkdhbW1hRW5jb2RlZFR5cGU8SW5wdXQ+KQorICAgICAgICAg
ICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjx0eXBlbmFtZSBJbnB1
dDo6TGluZWFyQ291bnRlcnBhcnQ+KGNvbG9yKSk7CisgICAgICAgIGVsc2UgaWYgY29uc3RleHBy
IChJc1JHQkdhbW1hRW5jb2RlZFR5cGU8T3V0cHV0PikKKyAgICAgICAgICAgIHJldHVybiBjb252
ZXJ0Q29sb3I8T3V0cHV0Pihjb252ZXJ0Q29sb3I8dHlwZW5hbWUgT3V0cHV0OjpMaW5lYXJDb3Vu
dGVycGFydD4oY29sb3IpKTsKKworICAgICAgICAvLyA1LiBBdCB0aGlzIHBvaW50LCBJbnB1dCBh
bmQgT3V0cHV0IGFyZSBlYWNoIGVpdGhlciBMaW5lYXItUkdCIHR5cGVzIChvZiBkaWZmZXJlbnQg
ZmFtaWxlcykgb3IgWFlaQQorICAgICAgICAvLyAgICBhbmQgdGhlcmVmb3JlIGFsbCBhZGRpdGlv
bmFsIGNvbnZlcnNpb24gY2FuIGhhcHBlbiB2aWEgbWF0cml4IHRyYW5zZm9ybWF0aW9uLgorICAg
ICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gaGFuZGxlTWF0cml4Q29udmVyc2lvbihjb2xv
cik7CisgICAgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4g
c3RhdGljIGlubGluZSBjb25zdGV4cHIgYXV0byB0b0xpbmVhckVuY29kZWQoY29uc3QgQ29sb3JU
eXBlJiBjb2xvcikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpMaW5lYXJDb3VudGVycGFydAorICAg
IHsKKyAgICAgICAgYXV0byBbYzEsIGMyLCBjMywgYWxwaGFdID0gY29sb3I7CisgICAgICAgIHJl
dHVybiB7IENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9MaW5lYXIoYzEpLCBDb2xvclR5
cGU6OlRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFyKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1
bmN0aW9uOjp0b0xpbmVhcihjMyksIGFscGhhIH07CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgaW5saW5lIGNvbnN0ZXhwciBhdXRvIHRvR2FtbWFFbmNv
ZGVkKGNvbnN0IENvbG9yVHlwZSYgY29sb3IpIC0+IHR5cGVuYW1lIENvbG9yVHlwZTo6R2FtbWFF
bmNvZGVkQ291bnRlcnBhcnQKKyAgICB7CisgICAgICAgIGF1dG8gW2MxLCBjMiwgYzMsIGFscGhh
XSA9IGNvbG9yOworICAgICAgICByZXR1cm4geyBDb2xvclR5cGU6OlRyYW5zZmVyRnVuY3Rpb246
OnRvR2FtbWFFbmNvZGVkKGMxKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0aW9uOjp0b0dhbW1h
RW5jb2RlZChjMiksIENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9HYW1tYUVuY29kZWQo
YzMpLCBhbHBoYSB9OworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4g
c3RhdGljIGlubGluZSBjb25zdGV4cHIgYXV0byB0b0V4dGVuZGVkKGNvbnN0IENvbG9yVHlwZSYg
Y29sb3IpIC0+IHR5cGVuYW1lIENvbG9yVHlwZTo6RXh0ZW5kZWRDb3VudGVycGFydAorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1ha2VGcm9tQ29tcG9uZW50czx0eXBlbmFtZSBDb2xvclR5cGU6OkV4
dGVuZGVkQ291bnRlcnBhcnQ+KGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgaW5saW5lIGNvbnN0ZXhwciBh
dXRvIHRvQm91bmRlZChjb25zdCBDb2xvclR5cGUmIGNvbG9yKSAtPiB0eXBlbmFtZSBDb2xvclR5
cGU6OkJvdW5kZWRDb3VudGVycGFydAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1ha2VGcm9tQ29t
cG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8dHlwZW5hbWUgQ29sb3JUeXBlOjpCb3VuZGVkQ291
bnRlcnBhcnQ+KGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSk7CisgICAgfQorCisgICAgc3RhdGlj
IGlubGluZSBjb25zdGV4cHIgT3V0cHV0IGhhbmRsZVJHQkZhbWlseUNvbnZlcnNpb24oY29uc3Qg
SW5wdXQmIGNvbG9yKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChJc1NhbWVSR0JUeXBl
RmFtaWx5PE91dHB1dCwgSW5wdXQ+KTsKKworICAgICAgICAvLyAgUkdCIEZhbWlseeKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAor
ICAgICAgICAvLyAg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUggorICAgICAgICAv
LyAg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4dGVuZGVkIOKUguKUggorICAgICAgICAv
LyAg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUggorICAgICAgICAvLyAg4pSC4pSM
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUggorICAgICAgICAvLyAg4pSC4pSCIEdhbW1hICDi
lIIg4pSCIEdhbW1hRXh0ZW5kZWQgIOKUguKUggorICAgICAgICAvLyAg4pSC4pSU4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUmOKUggorICAgICAgICAvLyAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSYCisKKyAgICAgICAgLy8gVGhpcyBoYW5kbGVzIGNvbnZlcnNpb25zIGJldHdl
ZW4gYW55IHR3byBvZiB0aGVzZSB3aXRoaW4gdGhlIHNhbWUgZmFtaWx5LCBzbyBTUkdCTGluZWFy
IC0+IFNSR0IsIGJ1dCBub3QKKyAgICAgICAgLy8gU1JHQkxpbmVhciAtPiBBOThSR0IuCisKKyAg
ICAgICAgYXV0byBib3VuZHNDb252ZXJzaW9uID0gW10oYXV0byBjb2xvcikgeworICAgICAgICAg
ICAgaWYgY29uc3RleHByIChJc1JHQkV4dGVuZGVkVHlwZTxPdXRwdXQ+ICYmIElzUkdCQm91bmRl
ZFR5cGU8SW5wdXQ+KQorICAgICAgICAgICAgICAgIHJldHVybiB0b0V4dGVuZGVkKGNvbG9yKTsK
KyAgICAgICAgICAgIGVsc2UgaWYgY29uc3RleHByIChJc1JHQkJvdW5kZWRUeXBlPE91dHB1dD4g
JiYgSXNSR0JFeHRlbmRlZFR5cGU8SW5wdXQ+KQorICAgICAgICAgICAgICAgIHJldHVybiB0b0Jv
dW5kZWQoY29sb3IpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBj
b2xvcjsKKyAgICAgICAgfTsKKworICAgICAgICBhdXRvIGdhbW1hQ29udmVyc2lvbiA9IFtdKGF1
dG8gY29sb3IpIHsKKyAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAoSXNSR0JHYW1tYUVuY29kZWRU
eXBlPE91dHB1dD4gJiYgSXNSR0JMaW5lYXJFbmNvZGVkVHlwZTxJbnB1dD4pCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVkKGNvbG9yKTsKKyAgICAgICAgICAgIGVsc2UgaWYg
Y29uc3RleHByIChJc1JHQkxpbmVhckVuY29kZWRUeXBlPE91dHB1dD4gJiYgSXNSR0JHYW1tYUVu
Y29kZWRUeXBlPElucHV0PikKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9MaW5lYXJFbmNvZGVk
KGNvbG9yKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gY29sb3I7
CisgICAgICAgIH07CisKKyAgICAgICAgcmV0dXJuIGJvdW5kc0NvbnZlcnNpb24oZ2FtbWFDb252
ZXJzaW9uKGNvbG9yKSk7CisgICAgfQorCisgICAgc3RhdGljIGlubGluZSBjb25zdGV4cHIgT3V0
cHV0IGhhbmRsZU1hdHJpeENvbnZlcnNpb24oY29uc3QgSW5wdXQmIGNvbG9yKQorICAgIHsKKyAg
ICAgICAgc3RhdGljX2Fzc2VydChJc1JHQkxpbmVhckVuY29kZWRUeXBlPElucHV0PiB8fCBJc1hZ
WkE8SW5wdXQ+KTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChJc1JHQkxpbmVhckVuY29kZWRUeXBl
PE91dHB1dD4gfHwgSXNYWVpBPE91dHB1dD4pOworCisgICAgICAgIC8vICDilIwg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilLwg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilJAKKyAgICAgICAgLy8gICBN
YXRyaXggQ29udmVyc2lvbnMgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSQ4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisgICAgICAgIC8v
ICDilIIgICAgICAgICAgICAgICAgICAgICAg4pSCIFhZWiAoRDUwKSDilILilILilIIgWFlaIChE
NjUpIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICDilIIKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAg4pSU4pSA
4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSY4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pay
4pSA4pSA4pSA4pSA4pSA4pSYCisgICAgICAgIC8vICDilIIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAg4pSCICAgICAg4pSCICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggorICAgICAgICAvLyAgICAg
ICAgICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAg
ICDilIIgICAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAKKyAg
ICAgICAgLy8gIOKUgiAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICDilIIgICAg
ICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICDilIIgICAgICAgICAgICAgICAg4pSCCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgIOKU
giAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggorICAgICAgICAvLyAg4pSCICAgICAgICAg
ICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICDi
lIIKKyAgICAgICAgLy8gICAgUHJvUGhvdG9SR0LilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgICDilIIgICBTUkdC4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSQIERpc3BsYXlQM+KUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCBBOThSR0LilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAg
UmVjMjAyMOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAgICAvLyAg4pSCIOKUguKUjOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilJDilIIgICDilIIgICDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDi
lJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ
4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIg4pSC4pSM4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUkOKUgiDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUggor
ICAgICAgICAvLyAgICDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC4pSC
ICAg4pSCICAg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4dGVuZGVkIOKUguKUgiDilILi
lIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC4pSCIOKUguKUgiBMaW5lYXIg4pSC
IOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4
dGVuZGVkIOKUguKUggorICAgICAgICAvLyAg4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJjilIIgICDilIIgICDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUguKU
lOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUggorICAgICAgICAv
LyAgIOKUgOKUguKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSA4pSC4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgOKUguKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA4pSC4pSA4pSC
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIDilILilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgOKUguKUgAorCisgICAgICAgIC8vIFRoaXMgaGFuZGxlcyBjb252ZXJzaW9u
cyBiZXR3ZWVuIGxpbmVhciBjb2xvciB0eXBlcyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdXNpbmcg
cHJlLWRlZmluZWQKKyAgICAgICAgLy8gM3gzIG1hdHJpY2VzLgorICAgICAgICAKKyAgICAgICAg
Ly8gRklYTUU6IFByZS1jb21wdXRlICh1c2luZyBjb25zdGV4cHIpIHRoZSBjb25jYXRlbmF0aW9u
IG9mIHRoZSBtYXRyaWNlcyBwcmlvciB0byBhcHBseWluZyB0aGVtCisgICAgICAgIC8vIHRvIHJl
ZHVjZSBudW1iZXIgb2YgbWF0cml4IG11bHRpcGxpY2F0aW9ucyB0byBhIG1pbmltdW0uIFRoaXMg
d2lsbCBsaWtlbHkgZ2l2ZSBzdWJ0bHkgZGlmZmVyZW50CisgICAgICAgIC8vIHJlc3VsdHMgKGR1
ZSB0byBmbG9hdGluZyBwb2ludCBlZmZlY3RzKSBzbyBpZiB0aGlzIG9wdGltaXphdGlvbiBpcyBj
b25zaWRlcmVkIHdlIHNob3VsZCBlbnN1cmUgd2UKKyAgICAgICAgLy8gaGF2ZSBzdWZmaWNpZW50
IHRlc3RpbmcgY292ZXJhZ2UgdG8gbm90aWNlIGFueSBhZHZlcnNlIGVmZmVjdHMuCisKKyAgICAg
ICAgYXV0byBhcHBseU1hdHJpY2VzID0gW10oY29uc3QgSW5wdXQmIGNvbG9yLCBhdXRvLi4uIG1h
dHJpY2VzKSB7CisgICAgICAgICAgICByZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdF
eGNlcHRBbHBoYTxPdXRwdXQ+KGFwcGx5TWF0cmljZXNUb0NvbG9yQ29tcG9uZW50cyhhc0NvbG9y
Q29tcG9uZW50cyhjb2xvciksIG1hdHJpY2VzLi4uKSk7CisgICAgICAgIH07CisKKyAgICAgICAg
aWYgY29uc3RleHByIChJbnB1dDo6d2hpdGVQb2ludCA9PSBPdXRwdXQ6OndoaXRlUG9pbnQpIHsK
KyAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAoSXNYWVpBPElucHV0PikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gYXBwbHlNYXRyaWNlcyhjb2xvciwgT3V0cHV0Ojp4eXpUb0xpbmVhcik7CisgICAg
ICAgICAgICBlbHNlIGlmIGNvbnN0ZXhwciAoSXNYWVpBPE91dHB1dD4pCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGFwcGx5TWF0cmljZXMoY29sb3IsIElucHV0OjpsaW5lYXJUb1hZWik7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5TWF0cmljZXMoY29sb3Is
IElucHV0OjpsaW5lYXJUb1hZWiwgT3V0cHV0Ojp4eXpUb0xpbmVhcik7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBpZiBjb25zdGV4cHIgKElzWFlaQTxJbnB1dD4gJiYgSXNYWVpBPE91
dHB1dD4pCisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5TWF0cmljZXMoY29sb3IsIENocm9t
YXRpY0FkYXBhdGlvbjxJbnB1dDo6d2hpdGVQb2ludCwgT3V0cHV0Ojp3aGl0ZVBvaW50Pjo6bWF0
cml4KTsKKyAgICAgICAgICAgIGVsc2UgaWYgY29uc3RleHByIChJc1hZWkE8SW5wdXQ+KQorICAg
ICAgICAgICAgICAgIHJldHVybiBhcHBseU1hdHJpY2VzKGNvbG9yLCBDaHJvbWF0aWNBZGFwYXRp
b248SW5wdXQ6OndoaXRlUG9pbnQsIE91dHB1dDo6d2hpdGVQb2ludD46Om1hdHJpeCwgT3V0cHV0
Ojp4eXpUb0xpbmVhcik7CisgICAgICAgICAgICBlbHNlIGlmIGNvbnN0ZXhwciAoSXNYWVpBPE91
dHB1dD4pCisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5TWF0cmljZXMoY29sb3IsIElucHV0
OjpsaW5lYXJUb1hZWiwgQ2hyb21hdGljQWRhcGF0aW9uPElucHV0Ojp3aGl0ZVBvaW50LCBPdXRw
dXQ6OndoaXRlUG9pbnQ+OjptYXRyaXgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHJldHVybiBhcHBseU1hdHJpY2VzKGNvbG9yLCBJbnB1dDo6bGluZWFyVG9YWVosIENocm9t
YXRpY0FkYXBhdGlvbjxJbnB1dDo6d2hpdGVQb2ludCwgT3V0cHV0Ojp3aGl0ZVBvaW50Pjo6bWF0
cml4LCBPdXRwdXQ6Onh5elRvTGluZWFyKTsKICAgICAgICAgfQogICAgIH0KIH07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvck1hdHJpeC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yTWF0cml4LmgJKHJldmlz
aW9uIDI3MjgzNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yTWF0
cml4LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDI3ICszMiw0NiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgQ29sb3JDb21wb25lbnRzOwogCi10ZW1w
bGF0ZTxzaXplX3QgQ29sdW1ucywgc2l6ZV90IFJvd3M+Cit0ZW1wbGF0ZTxzaXplX3QgQ29sdW1u
Q291bnQsIHNpemVfdCBSb3dDb3VudD4KIGNsYXNzIENvbG9yTWF0cml4IHsKIHB1YmxpYzoKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSAuLi5Ucz4KICAgICBleHBsaWNpdCBjb25zdGV4cHIgQ29sb3JN
YXRyaXgoVHMgLi4uaW5wdXQpCiAgICAgICAgIDogbV9tYXRyaXgge3sgaW5wdXQgLi4uIH19CiAg
ICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZi4uLihUcykgPT0gUm93cyAqIENvbHVt
bnMpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZi4uLihUcykgPT0gUm93Q291bnQgKiBD
b2x1bW5Db3VudCk7CiAgICAgfQogCiAgICAgY29uc3RleHByIENvbG9yQ29tcG9uZW50czxmbG9h
dD4gdHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoY29uc3QgQ29sb3JDb21wb25lbnRzPGZsb2F0
PiYpIGNvbnN0OwogCiAgICAgY29uc3RleHByIGZsb2F0IGF0KHNpemVfdCByb3csIHNpemVfdCBj
b2x1bW4pIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9tYXRyaXhbKHJvdyAqIENvbHVt
bnMpICsgY29sdW1uXTsKKyAgICAgICAgcmV0dXJuIG1fbWF0cml4Wyhyb3cgKiBDb2x1bW5Db3Vu
dCkgKyBjb2x1bW5dOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBzdGQ6OmFycmF5PGZsb2F0LCBS
b3dzICogQ29sdW1ucz4gbV9tYXRyaXg7CisgICAgc3RkOjphcnJheTxmbG9hdCwgUm93Q291bnQg
KiBDb2x1bW5Db3VudD4gbV9tYXRyaXg7CiB9OwogCit0ZW1wbGF0ZTxzaXplX3QgQ29sdW1uQ291
bnQsIHNpemVfdCBSb3dDb3VudD4KK2NvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29s
b3JNYXRyaXg8Q29sdW1uQ291bnQsIFJvd0NvdW50PiYgYSwgY29uc3QgQ29sb3JNYXRyaXg8Q29s
dW1uQ291bnQsIFJvd0NvdW50PiYgYikKK3sKKyAgICBmb3IgKHNpemVfdCByb3cgPSAwOyByb3cg
PCBSb3dDb3VudDsgKytyb3cpIHsKKyAgICAgICAgZm9yIChzaXplX3QgY29sdW1uID0gMDsgY29s
dW1uIDwgQ29sdW1uQ291bnQ7ICsrY29sdW1uKSB7CisgICAgICAgICAgICBpZiAoYS5hdChyb3cs
IGNvbHVtbikgIT0gYi5hdChyb3csIGNvbHVtbikpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit0ZW1wbGF0ZTxz
aXplX3QgQ29sdW1uQ291bnQsIHNpemVfdCBSb3dDb3VudD4KK2NvbnN0ZXhwciBib29sIG9wZXJh
dG9yIT0oY29uc3QgQ29sb3JNYXRyaXg8Q29sdW1uQ291bnQsIFJvd0NvdW50PiYgYSwgY29uc3Qg
Q29sb3JNYXRyaXg8Q29sdW1uQ291bnQsIFJvd0NvdW50PiYgYikKK3sKKyAgICByZXR1cm4gIShh
ID09IGIpOworfQorCisKIC8vIEZJWE1FOiBUaGVzZSBhcmUgb25seSB1c2VkIGluIEZpbHRlck9w
ZXJhdGlvbnMuY3BwLiBDb25zaWRlciBtb3ZpbmcgdGhlbSB0aGVyZS4KIGNvbnN0ZXhwciBDb2xv
ck1hdHJpeDwzLCAzPiBncmF5c2NhbGVDb2xvck1hdHJpeChmbG9hdCBhbW91bnQpCiB7CkBAIC0x
MDAsMjkgKzExOSwzOSBAQCBpbmxpbmUgQ29sb3JNYXRyaXg8MywgMz4gaHVlUm90YXRlQ29sb3JN
CiAgICAgfTsKIH0KIAotdGVtcGxhdGU8c2l6ZV90IENvbHVtbnMsIHNpemVfdCBSb3dzPgotY29u
c3RleHByIENvbG9yQ29tcG9uZW50czxmbG9hdD4gQ29sb3JNYXRyaXg8Q29sdW1ucywgUm93cz46
OnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGNvbnN0IENvbG9yQ29tcG9uZW50czxmbG9hdD4m
IGlucHV0VmVjdG9yKSBjb25zdAordGVtcGxhdGU8c2l6ZV90IENvbHVtbkNvdW50LCBzaXplX3Qg
Um93Q291bnQ+Citjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPGZsb2F0PiBDb2xvck1hdHJpeDxD
b2x1bW5Db3VudCwgUm93Q291bnQ+Ojp0cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhjb25zdCBD
b2xvckNvbXBvbmVudHM8ZmxvYXQ+JiBpbnB1dFZlY3RvcikgY29uc3QKIHsKLSAgICBzdGF0aWNf
YXNzZXJ0KENvbG9yQ29tcG9uZW50czxmbG9hdD46OlNpemUgPj0gUm93cyk7CisgICAgc3RhdGlj
X2Fzc2VydChDb2xvckNvbXBvbmVudHM8ZmxvYXQ+OjpTaXplID49IFJvd0NvdW50KTsKICAgICAK
ICAgICBDb2xvckNvbXBvbmVudHM8ZmxvYXQ+IHJlc3VsdDsKLSAgICBmb3IgKHNpemVfdCByb3cg
PSAwOyByb3cgPCBSb3dzOyArK3JvdykgewotICAgICAgICBpZiBjb25zdGV4cHIgKENvbHVtbnMg
PD0gQ29sb3JDb21wb25lbnRzPGZsb2F0Pjo6U2l6ZSkgewotICAgICAgICAgICAgZm9yIChzaXpl
X3QgY29sdW1uID0gMDsgY29sdW1uIDwgQ29sdW1uczsgKytjb2x1bW4pCisgICAgZm9yIChzaXpl
X3Qgcm93ID0gMDsgcm93IDwgUm93Q291bnQ7ICsrcm93KSB7CisgICAgICAgIGlmIGNvbnN0ZXhw
ciAoQ29sdW1uQ291bnQgPD0gQ29sb3JDb21wb25lbnRzPGZsb2F0Pjo6U2l6ZSkgeworICAgICAg
ICAgICAgZm9yIChzaXplX3QgY29sdW1uID0gMDsgY29sdW1uIDwgQ29sdW1uQ291bnQ7ICsrY29s
dW1uKQogICAgICAgICAgICAgICAgIHJlc3VsdFtyb3ddICs9IGF0KHJvdywgY29sdW1uKSAqIGlu
cHV0VmVjdG9yW2NvbHVtbl07Ci0gICAgICAgIH0gZWxzZSBpZiBjb25zdGV4cHIgKENvbHVtbnMg
PiBDb2xvckNvbXBvbmVudHM8ZmxvYXQ+OjpTaXplKSB7CisgICAgICAgIH0gZWxzZSBpZiBjb25z
dGV4cHIgKENvbHVtbkNvdW50ID4gQ29sb3JDb21wb25lbnRzPGZsb2F0Pjo6U2l6ZSkgewogICAg
ICAgICAgICAgZm9yIChzaXplX3QgY29sdW1uID0gMDsgY29sdW1uIDwgQ29sb3JDb21wb25lbnRz
PGZsb2F0Pjo6U2l6ZTsgKytjb2x1bW4pCiAgICAgICAgICAgICAgICAgcmVzdWx0W3Jvd10gKz0g
YXQocm93LCBjb2x1bW4pICogaW5wdXRWZWN0b3JbY29sdW1uXTsKLSAgICAgICAgICAgIGZvciAo
c2l6ZV90IGFkZGl0aW9uYWxDb2x1bW4gPSBDb2xvckNvbXBvbmVudHM8ZmxvYXQ+OjpTaXplOyBh
ZGRpdGlvbmFsQ29sdW1uIDwgQ29sdW1uczsgKythZGRpdGlvbmFsQ29sdW1uKQorICAgICAgICAg
ICAgZm9yIChzaXplX3QgYWRkaXRpb25hbENvbHVtbiA9IENvbG9yQ29tcG9uZW50czxmbG9hdD46
OlNpemU7IGFkZGl0aW9uYWxDb2x1bW4gPCBDb2x1bW5Db3VudHM7ICsrYWRkaXRpb25hbENvbHVt
bikKICAgICAgICAgICAgICAgICByZXN1bHRbcm93XSArPSBhdChyb3csIGFkZGl0aW9uYWxDb2x1
bW4pOwogICAgICAgICB9CiAgICAgfQotICAgIGlmIGNvbnN0ZXhwciAoQ29sb3JDb21wb25lbnRz
PGZsb2F0Pjo6U2l6ZSA+IFJvd3MpIHsKLSAgICAgICAgZm9yIChzaXplX3QgYWRkaXRpb25hbFJv
dyA9IFJvd3M7IGFkZGl0aW9uYWxSb3cgPCBDb2xvckNvbXBvbmVudHM8ZmxvYXQ+OjpTaXplOyAr
K2FkZGl0aW9uYWxSb3cpCisgICAgaWYgY29uc3RleHByIChDb2xvckNvbXBvbmVudHM8ZmxvYXQ+
OjpTaXplID4gUm93Q291bnQpIHsKKyAgICAgICAgZm9yIChzaXplX3QgYWRkaXRpb25hbFJvdyA9
IFJvd0NvdW50OyBhZGRpdGlvbmFsUm93IDwgQ29sb3JDb21wb25lbnRzPGZsb2F0Pjo6U2l6ZTsg
KythZGRpdGlvbmFsUm93KQogICAgICAgICAgICAgcmVzdWx0W2FkZGl0aW9uYWxSb3ddID0gaW5w
dXRWZWN0b3JbYWRkaXRpb25hbFJvd107CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTT4gaW5saW5lIGNvbnN0ZXhwciBhdXRv
IGFwcGx5TWF0cmljZXNUb0NvbG9yQ29tcG9uZW50cyhjb25zdCBDb2xvckNvbXBvbmVudHM8VD4m
IGNvbXBvbmVudHMsIE0gbWF0cml4KSAtPiBDb2xvckNvbXBvbmVudHM8VD4KK3sKKyAgICByZXR1
cm4gbWF0cml4LnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGNvbXBvbmVudHMpOworfQorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBNLCB0eXBlbmFtZS4uLiBNYXRyaWNlcz4gaW5s
aW5lIGNvbnN0ZXhwciBhdXRvIGFwcGx5TWF0cmljZXNUb0NvbG9yQ29tcG9uZW50cyhjb25zdCBD
b2xvckNvbXBvbmVudHM8VD4mIGNvbXBvbmVudHMsIE0gbWF0cml4LCBNYXRyaWNlcy4uLiBtYXRy
aWNlcykgLT4gQ29sb3JDb21wb25lbnRzPFQ+Cit7CisgICAgcmV0dXJuIGFwcGx5TWF0cmljZXNU
b0NvbG9yQ29tcG9uZW50cyhtYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoY29tcG9u
ZW50cyksIG1hdHJpY2VzLi4uKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVHlwZXMuaAkocmV2aXNp
b24gMjcyODM2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBl
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODksNiArMTg5LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUgRCwgdHlwZW5hbQogICAgIHVzaW5nIENvbXBvbmVudFR5cGUgPSBUOwogICAg
IHVzaW5nIE1vZGVsID0gTTsKICAgICB1c2luZyBUcmFuc2ZlckZ1bmN0aW9uID0gVEY7CisgICAg
dXNpbmcgRGVzY3JpcHRvciA9IEQ7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBXaGl0ZVBvaW50IHdo
aXRlUG9pbnQgPSBEOjp3aGl0ZVBvaW50OwogCiAgICAgY29uc3RleHByIFJHQkFUeXBlKFQgcmVk
LCBUIGdyZWVuLCBUIGJsdWUsIFQgYWxwaGEgPSBBbHBoYVRyYWl0czxUPjo6b3BhcXVlKQpAQCAt
MjU3LDYgKzI1OCwzMSBAQCBzdHJ1Y3QgRXh0ZW5kZWRMaW5lYXJFbmNvZGVkIDogUkdCQVR5cGU8
CiAgICAgdXNpbmcgUmVmZXJlbmNlID0gWFlaQTxULCBEOjp3aGl0ZVBvaW50PjsKIH07CiAKK3Rl
bXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IHZvaWQ+IGlubGluZSBjb25zdGV4cHIgYm9vbCBI
YXNEZXNjcmlwdG9yTWVtYmVyID0gZmFsc2U7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+
IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNEZXNjcmlwdG9yTWVtYmVyPENvbG9yVHlwZSwgc3Rk
Ojp2b2lkX3Q8dHlwZW5hbWUgQ29sb3JUeXBlOjpEZXNjcmlwdG9yPj4gPSB0cnVlOworCit0ZW1w
bGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFz
RXh0ZW5kZWRDb3VudGVycGFydE1lbWJlciA9IGZhbHNlOwordGVtcGxhdGU8dHlwZW5hbWUgQ29s
b3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzRXh0ZW5kZWRDb3VudGVycGFydE1lbWJl
cjxDb2xvclR5cGUsIHN0ZDo6dm9pZF90PHR5cGVuYW1lIENvbG9yVHlwZTo6RXh0ZW5kZWRDb3Vu
dGVycGFydD4+ID0gdHJ1ZTsKKwordGVtcGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lID0gdm9pZD4g
aW5saW5lIGNvbnN0ZXhwciBib29sIEhhc0JvdW5kZWRDb3VudGVycGFydE1lbWJlciA9IGZhbHNl
OwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFz
Qm91bmRlZENvdW50ZXJwYXJ0TWVtYmVyPENvbG9yVHlwZSwgc3RkOjp2b2lkX3Q8dHlwZW5hbWUg
Q29sb3JUeXBlOjpCb3VuZGVkQ291bnRlcnBhcnQ+PiA9IHRydWU7CisKK3RlbXBsYXRlPHR5cGVu
YW1lLCB0eXBlbmFtZSA9IHZvaWQ+IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNHYW1tYUVuY29k
ZWRDb3VudGVycGFydE1lbWJlciA9IGZhbHNlOwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBl
PiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzR2FtbWFFbmNvZGVkQ291bnRlcnBhcnRNZW1iZXI8
Q29sb3JUeXBlLCBzdGQ6OnZvaWRfdDx0eXBlbmFtZSBDb2xvclR5cGU6OkdhbW1hRW5jb2RlZENv
dW50ZXJwYXJ0Pj4gPSB0cnVlOworCit0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lk
PiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFzTGluZWFyQ291bnRlcnBhcnRNZW1iZXIgPSBmYWxz
ZTsKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGNvbnN0ZXhwciBib29sIEhh
c0xpbmVhckNvdW50ZXJwYXJ0TWVtYmVyPENvbG9yVHlwZSwgc3RkOjp2b2lkX3Q8dHlwZW5hbWUg
Q29sb3JUeXBlOjpMaW5lYXJDb3VudGVycGFydD4+ID0gdHJ1ZTsKKwordGVtcGxhdGU8dHlwZW5h
bWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNSR0JUeXBlID0gSGFzRGVzY3Jp
cHRvck1lbWJlcjxDb2xvclR5cGU+OwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBpbmxp
bmUgY29uc3RleHByIGJvb2wgSXNSR0JFeHRlbmRlZFR5cGUgPSBJc1JHQlR5cGU8Q29sb3JUeXBl
PiAmJiBIYXNCb3VuZGVkQ291bnRlcnBhcnRNZW1iZXI8Q29sb3JUeXBlPjsKK3RlbXBsYXRlPHR5
cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGNvbnN0ZXhwciBib29sIElzUkdCQm91bmRlZFR5cGUg
PSBJc1JHQlR5cGU8Q29sb3JUeXBlPiAmJiBIYXNFeHRlbmRlZENvdW50ZXJwYXJ0TWVtYmVyPENv
bG9yVHlwZT47Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGlubGluZSBjb25zdGV4cHIg
Ym9vbCBJc1JHQkdhbW1hRW5jb2RlZFR5cGUgPSBJc1JHQlR5cGU8Q29sb3JUeXBlPiAmJiBIYXNM
aW5lYXJDb3VudGVycGFydE1lbWJlcjxDb2xvclR5cGU+OwordGVtcGxhdGU8dHlwZW5hbWUgQ29s
b3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNSR0JMaW5lYXJFbmNvZGVkVHlwZSA9IElz
UkdCVHlwZTxDb2xvclR5cGU+ICYmIEhhc0dhbW1hRW5jb2RlZENvdW50ZXJwYXJ0TWVtYmVyPENv
bG9yVHlwZT47CisKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZTEsIHR5cGVuYW1lIENvbG9y
VHlwZTIsIGJvb2wgZW5hYmxlZD4gaW5saW5lIGNvbnN0ZXhwciBib29sIElzU2FtZVJHQlR5cGVG
YW1pbHlWYWx1ZSA9IGZhbHNlOwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlMSwgdHlwZW5h
bWUgQ29sb3JUeXBlMj4gaW5saW5lIGNvbnN0ZXhwciBib29sIElzU2FtZVJHQlR5cGVGYW1pbHlW
YWx1ZTxDb2xvclR5cGUxLCBDb2xvclR5cGUyLCB0cnVlPiA9IHN0ZDo6aXNfc2FtZV92PHR5cGVu
YW1lIENvbG9yVHlwZTE6OkRlc2NyaXB0b3IsIHR5cGVuYW1lIENvbG9yVHlwZTI6OkRlc2NyaXB0
b3I+OwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlMSwgdHlwZW5hbWUgQ29sb3JUeXBlMj4g
aW5saW5lIGNvbnN0ZXhwciBib29sIElzU2FtZVJHQlR5cGVGYW1pbHkgPSBJc1NhbWVSR0JUeXBl
RmFtaWx5VmFsdWU8Q29sb3JUeXBlMSwgQ29sb3JUeXBlMiwgSXNSR0JUeXBlPENvbG9yVHlwZTE+
ICYmIElzUkdCVHlwZTxDb2xvclR5cGUyPj47CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBTUkdCQURlc2NyaXB0b3IgewogICAgIHRlbXBsYXRlPFRyYW5zZmVyRnVuY3Rpb25Nb2RlIE1v
ZGU+IHVzaW5nIFRyYW5zZmVyRnVuY3Rpb24gPSBTUkdCVHJhbnNmZXJGdW5jdGlvbjxULCBNb2Rl
PjsKICAgICBzdGF0aWMgY29uc3RleHByIFdoaXRlUG9pbnQgd2hpdGVQb2ludCA9IFdoaXRlUG9p
bnQ6OkQ2NTsKQEAgLTM5Nyw2ICs0MjMsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4
cHIgQ29sb3JDb21wCiAgICAgcmV0dXJuIHsgYy5saWdodG5lc3MsIGMuYSwgYy5iLCBjLmFscGhh
IH07CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGNvbnN0ZXhwciBi
b29sIElzTGFiID0gc3RkOjppc19zYW1lX3Y8TGFiPHR5cGVuYW1lIENvbG9yVHlwZTo6Q29tcG9u
ZW50VHlwZT4sIENvbG9yVHlwZT47CisKIC8vIE1BUks6IC0gTENIQSBDb2xvciBUeXBlLgogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgTENIQSA6IENvbG9yV2l0aEFscGhhSGVscGVyPExD
SEE8VD4+IHsKQEAgLTQzMCw2ICs0NTgsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4
cHIgQ29sb3JDb21wCiAgICAgcmV0dXJuIHsgYy5saWdodG5lc3MsIGMuY2hyb21hLCBjLmh1ZSwg
Yy5hbHBoYSB9OwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGlubGluZSBjb25z
dGV4cHIgYm9vbCBJc0xDSEEgPSBzdGQ6OmlzX3NhbWVfdjxMQ0hBPHR5cGVuYW1lIENvbG9yVHlw
ZTo6Q29tcG9uZW50VHlwZT4sIENvbG9yVHlwZT47CisKIAogLy8gTUFSSzogLSBIU0xBIENvbG9y
IFR5cGUuCiAKQEAgLTQ2NCw2ICs0OTQsOCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4
cHIgQ29sb3JDb21wCiAgICAgcmV0dXJuIHsgYy5odWUsIGMuc2F0dXJhdGlvbiwgYy5saWdodG5l
c3MsIGMuYWxwaGEgfTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUg
Y29uc3RleHByIGJvb2wgSXNIU0xBID0gc3RkOjppc19zYW1lX3Y8SFNMQTx0eXBlbmFtZSBDb2xv
clR5cGU6OkNvbXBvbmVudFR5cGU+LCBDb2xvclR5cGU+OworCiAvLyBNQVJLOiAtIEhXQkEgQ29s
b3IgVHlwZS4KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEhXQkEgOiBDb2xvcldpdGhB
bHBoYUhlbHBlcjxIV0JBPFQ+PiB7CkBAIC00OTcsNiArNTI5LDggQEAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gY29uc3RleHByIENvbG9yQ29tcAogICAgIHJldHVybiB7IGMuaHVlLCBjLndoaXRlbmVz
cywgYy5ibGFja25lc3MsIGMuYWxwaGEgfTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JU
eXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNIV0JBID0gc3RkOjppc19zYW1lX3Y8SFdCQTx0
eXBlbmFtZSBDb2xvclR5cGU6OkNvbXBvbmVudFR5cGU+LCBDb2xvclR5cGU+OworCiAvLyBNQVJL
OiAtIFhZWiBDb2xvciBUeXBlLgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBXaGl0ZVBvaW50IFc+
IHN0cnVjdCBYWVpBIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8WFlaQTxULCBXPj4gewpAQCAtNTMw
LDYgKzU2NCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIFdoaXRlUG9pbnQgVz4gY29uc3QKICAg
ICByZXR1cm4geyBjLngsIGMueSwgYy56LCBjLmFscGhhIH07CiB9CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIENvbG9yVHlwZT4gaW5saW5lIGNvbnN0ZXhwciBib29sIElzWFlaQSA9IHN0ZDo6aXNfc2Ft
ZV92PFhZWkE8dHlwZW5hbWUgQ29sb3JUeXBlOjpDb21wb25lbnRUeXBlLCBDb2xvclR5cGU6Ondo
aXRlUG9pbnQ+LCBDb2xvclR5cGU+OwogCiAvLyBQYWNrZWQgQ29sb3IgRm9ybWF0cwogCg==
</data>
<flag name="commit-queue"
          id="438676"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420227</attachid>
            <date>2021-02-13 15:26:56 -0800</date>
            <delta_ts>2021-02-13 16:06:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221868-20210213134141.patch</filename>
            <type>text/plain</type>
            <size>69363</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MjgzNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0OCBAQAorMjAyMS0wMi0xMyAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIHJlcXVpcmVtZW50cyBm
b3IgY29sb3IgdHlwZXMgdG8gb25seSBjb252ZXJzaW9uIHRvIHRoZWlyIHJlZmVyZW5jZSBjb2xv
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxODY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgV2UgY3VycmVu
dGx5IHJlcXVpcmUgZXZlcnkgbmV3IGNvbG9yIHR5cGUgdG8gZGVmaW5lIGEgY29udmVyc2lvbiB0
by9mcm9tIHh5eiBhbmQgdGhlbiBwZXJoYXBzCisgICAgICAgIHNvbWUgbW9yZSBjb252ZXJzaW9u
cyB0byByZWZlcmVuY2UgY29sb3JzIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHRyaXBzIHRocm91Z2gg
WFlaLiBGb3IgZXhhbXBsZSwKKyAgICAgICAgaWYgZXZlcnkgY29udmVyc2lvbiBmcm9tIEhTTCB0
byBzUkdCIHdlbnQgdGhyb3VnaCBYWVogaXQgd291bGQgYmUgdmVyeSBzaWxseSBhbmQgaW5lZmZp
Y2llbnQsCisgICAgICAgIGFuZCB0aGUgZmFjdCB0aGF0IHdlIHJlcXVpcmUgdGhlIGJvaWxlciBw
bGF0ZSBmb3IgSFNMIC0+IFhZWiwgZXZlbiB0aG91Z2ggaXQncyBhbHdheXMgZ29pbmcgdG8KKyAg
ICAgICAgY29udmVydCB0byBTUkdCIGZpcnN0IHNlZW1zIHVuZm9ydHVuYXRlLiBXZSBjYW4gZG8g
YmV0dGVyLgorCisgICAgICAgIEF0IGZpcnN0IEkgdGhvdWdodCB3ZSBjb3VsZCBtb2RlbCBjb2xv
ciBjb252ZXJzaW9uIGFzIERBRywgd2l0aCBYWVogYXQgdGhlIHJvb3QsIGFuZCBlYWNoIGNvbG9y
CisgICAgICAgIHR5cGUgZGVjbGFyaW5nIGEgInJlZmVyZW5jZSBjb2xvciIgdGhhdCB3b3VsZCBn
ZXQgdGhlbSBjbG9zZXIgdG8gWFlaLiBTbywgSFNMIHdvdWxkIGhhdmUgYQorICAgICAgICAicmVm
ZXJlbmNlIGNvbG9yIiBvZiBzUkdCLCBzUkdCIHdvdWxkIGhhdmUgYSAicmVmZXJlbmNlIGNvbG9y
IiBvZiBsaW5lYXJTUkdCLCBhbmQgbGluZWFyU1JHQiAKKyAgICAgICAgd291bGQgaGF2ZSBhICJy
ZWZlcmVuY2UgY29sb3IiIFhZWi4gVGhlbiwgYXMgbG9uZyBhcyB0aGVyZSB3YXMgYSBkZWZpbmVk
IGNvbnZlcnNpb24gdG8vZnJvbSB0aGUKKyAgICAgICAgInJlZmVyZW5jZSBjb2xvciIsIHdlIGNv
dWxkIGRvIGEgbGVhc3QgY29tbW9uIGFuY2VzdG9yIGdyYXBoIHNlYXJjaCBiZXR3ZWVuIHRoZSB0
d28gY29sb3IgdHlwZXMKKyAgICAgICAgYmVpbmcgY29udmVydGVkIGJldHdlZW4gdG8gZmluZCB0
aGUgb3B0aW1hbCBzZXQgb2YgY29udmVyc2lvbnMgbmVlZGVkLgorCisgICAgICAgIFRoYXQgYWxt
b3N0IHdvcmtzLCBidXQgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZm91ciBjb2xvciB0
eXBlcyB0aGF0IG1ha2UgdXAgZWFjaCBSR0IgdHlwZQorICAgICAgICAoYm91bmRlZC1nYW1tYS1l
bmNvZGVkLCBib3VuZGVkLWxpbmVhci1lbmNvZGVkLCBleHRlbmRlZC1nYW1tYS1lbmNvZGVkLCBl
eHRlbmRlZC1saW5lYXItZW5jb2RlZCkKKyAgICAgICAgbWFrZSBpdCBub3QgcXVpdGUgaWRlYWws
IHNpbmNlIGEgY29udmVyc2lvbiBmcm9tIHNvbWV0aGluZyBsaWtlIHNSR0IgdG8gRXh0ZW5kZWRT
UkdCIHdvdWxkIHdpbmQKKyAgICAgICAgdXAgZ29pbmcgdGhyb3VnaCBYWVogKHNpbmNlIHRoZSAi
cmVmZXJlbmNlIGNvbG9yIiBmb3Igc1JHQiBpcyBMaW5lYXJTUkdCIGFuZCB0aGUgInJlZmVyZW5j
ZSBjb2xvciIKKyAgICAgICAgZm9yIEV4dGVuZGVkU1JHQiBpcyBMaW5lYXJFeHRlbmRlZFNSR0Is
IGFuZCBib3RoIGVpdGhlciAicmVmZXJlbmNlIGNvbG9ycyIgYXJlIFhZWikuIAorCisgICAgICAg
IFVsdGltYXRlbHksIHRoZSBkZXB0aCBvZiB0aGUgdHlwZSBncmFwaCBpcyBub3QgYWxsIHRoYXQg
bGFyZ2UgKHRob3VnaCB0aGUgQVNDSUkgYXJ0IEkgbWFkZSBpcworICAgICAgICBxdWl0ZSBiaWcs
IHRob3VnaCBJIGRpZCByZW1vdmUgQTk4UkdCIGFuZCBSZWMyMDIwIGFzIHRoZXkgYXJlIHNhbWUg
YXMgRGlzcGxheVAzIGhlcmUpOgorCisgICAgICAgICAgICAgICAgICAgICAgICDilIwg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilLwg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSQCisgICAgICAgICAgICAgICAgICAgICAgICAg
TWF0cml4IENvbnZlcnNpb25zICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUkOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAgICAg
ICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgIOKUgiBYWVogKEQ1MCkg4pSC
4pSC4pSCIFhZWiAoRDY1KSDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICDilIIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSY4pSC4pSU
4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSYCisgICAgICAgICAgICAgICAgICAg
ICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAg4pSCICAgICAg4pSC
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAg4pSCCisgICAgICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICDilIIgICAgICDilJTilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJAKKyAgICAgICAgICAgICAgIOKUgiAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUgiAg
ICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCCisgICAgICAgICAgICAgICDilIIg
ICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAg
ICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAg4pSCICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCICAg
ICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICDilIIKKyAgICAgICAgICAgICAgIOKUgiAg
ICAgICAgICBQcm9QaG90b1JHQuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAgIOKUgiAgIFNSR0LilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lJAgRGlzcGxheVAz4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisgICAgICAgICAgICAgICDilIIgICAgICAgIOKUgiDilILi
lIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCICAg4pSCICAg4pSC4pSM4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUkOKUgiDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUggor
ICAgICAgICAgICAgICAg4pSCICAgICAgICAgIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJF
eHRlbmRlZCDilILilIIgICDilIIgICDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5k
ZWQg4pSC4pSCIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIKKyAg
ICAgICAgICAgICAgIOKUgiAgICAgICAg4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lJjilIIgICDilIIgICDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUguKUlOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSCCisgICAgICAgICAgICAgICDilIIgICAgICAg
ICDilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSA4pSC4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIDilILilIDilILilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgAorICAg
ICAgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAgIOKUguKUjOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilJDilIIgICDilIIgICDilILilIzilIDilIDilIDilIDilIDi
lIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIKKyAgICAgICAg
IOKUgiAgICBMYWIgICAg4pSCICAgIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVuZGVk
ICDilILilIIgICDilIIgICDilILilIIgR2FtbWEgIOKUgiDilIIgR2FtbWFFeHRlbmRlZCAg4pSC
4pSCIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVuZGVkICDilILilIIKKyAgICAgICAg
IOKUlOKUgOKUgOKUgOKUgOKUgOKWsuKUgOKUgOKUgOKUgOKUgOKUmCAgICDilILilJTilIDilIDi
lIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSY4pSCICAg4pSCICAg4pSC4pSU4pSA4pSA4pSA4pSA4pay4pSA4pSA
4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCCisgICAgICAgICAgICAg
ICDilIIgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAg4pSC
ICAg4pSU4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUmAorICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICDilIzilIDilIDilLTilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilJAKKyAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAg4pSCICAgICAg4pSCICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICDi
lIIKKyAgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
kOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAgICAg
4pSCICAgIExDSCAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKU
guKUgiAgICBIU0wgICAg4pSCIOKUgiAgICBIV0IgICAg4pSC4pSCU1JHQjx1aW50OF90PuKUggor
ICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilILilJTilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSU
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCisKKyAgICAgICAgRnJv
bSB0aGlzLCBpdCB0dXJucyBvdXQgeW91IGNhbiBoYW5kbGUgYWxsIHRoZSBjYXNlcyBpbiBhYm91
dCA1IHN0ZXBzLCB3aXRoIG1vc3QgcGVlbGluZyBvZmYgYQorICAgICAgICBjb252ZXJzaW9uIGZy
b20gdGhlIGZyb250IG9yIGJhY2sgb3IgdGhlIHBhdGggYW5kIHVzaW5nIHJlY3Vyc2lvbiB0byBj
b250aW51ZSBvbi4gSXQgdWx0aW1hdGVseSAKKyAgICAgICAgbGVhdmVzIGEgZmluYWwgc3RlcCB3
aGVyZSBvbmx5IG1hdHJpeCBjb252ZXJzaW9ucyByZW1haW4sIHdoaWNoIGNhbiBwb3RlbnRpYWxs
eSBiZSBmdXJ0aGVyCisgICAgICAgIG9wdGltaXplZCBpbiBhbm90aGVyIHBhdGNoIHRvIGNvbmNh
dGVuYXRlIHRoZSBtYXRyaWNlcyBhdCBjb21waWxlIHRpbWUuCisKKyAgICAgICAgMS4gSGFuZGxl
IHRoZSBzcGVjaWFsIGNhc2UgU1JHQkE8dWludDhfdD4gZm9yIElucHV0IGFuZCBPdXRwdXQsIGFu
ZCByZWN1cnNpdmVseSBjYWxsIGNvbnZlcnNpb24uCisKKyAgICAgICAgMi4gSGFuZGxlIGFsbCBj
b2xvciB0eXBlcyB0aGF0IGFyZSBub3QgSXNSR0JUeXBlPFQ+IG9yIElzWFlaQTxUPiBmb3IgSW5w
dXQgYW5kIE91dHB1dC4gRm9yIGFsbAorICAgICAgICAgICB0aGVzZSBvdGhlciBjb2xvciB0eXBl
cywgd2UgY2FuIHVuY29uZHRpb25hbGx5IGNvbnZlcnQgdGhlbSB0byB0aGVpciAicmVmZXJlbmNl
IiBjb2xvciwgYXMKKyAgICAgICAgICAgZWl0aGVyIHRoZXkgaGF2ZSBhbHJlYWR5IGJlZW4gaGFu
ZGxlZCBieSBhIENvbG9yQ29udmVyc2lvbiBzcGVjaWFsaXphdGlvbiBvciB0aGlzIHdpbGwKKyAg
ICAgICAgICAgZ2V0IHVzIGNsb3NlciB0byB0aGUgZmluYWwgY29udmVyc2lvbiwgYW5kIHJlY3Vy
c2l2ZWx5IGNhbGwgY29udmVyc2lvbi4KKworICAgICAgICAzLiBIYW5kbGUgY29udmVyc2lvbnMg
d2l0aGluIGEgUkdCRmFtaWx5IChlLmcuIGFsbCBoYXZlIHRoZSBzYW1lIGRlc2NyaXB0b3IpLiBU
aGlzIHdpbGwgY29uY2x1ZGUKKyAgICAgICAgICAgdGhlIGNvbnZlcnNpb24uCisKKyAgICAgICAg
NC4gSGFuZGxlIGFueSBnYW1tYSBjb252ZXJzaW9ucyBmb3IgdGhlIElucHV0IGFuZCBPdXRwdXQs
IHJlY3Vyc2l2ZWx5IGNhbGwgY29udmVyc2lvbgorCisgICAgICAgIDUuIEF0IHRoaXMgcG9pbnQs
IElucHV0IGFuZCBPdXRwdXQgYXJlIGVhY2ggZWl0aGVyIExpbmVhci1SR0IgdHlwZXMgKG9mIGRp
ZmZlcmVudCBmYW1pbGVzKSBvciBYWVpBCisgICAgICAgICAgIGFuZCB0aGVyZWZvcmUgYWxsIGFk
ZGl0aW9uYWwgY29udmVyc2lvbiBjYW4gaGFwcGVuIHZpYSBtYXRyaXggdHJhbnNmb3JtYXRpb24u
IFRoaXMgd2lsbCBjb25jbHVkZQorICAgICAgICAgICB0aGUgY29udmVyc2lvbi4KKworICAgICAg
ICBXaXRoIHRoZXNlIHN0ZXBzLCB3ZSBncm91cCB0aGUgY29sb3IgdHlwZXMgaW50byAzIGRpc3Rp
bmN0IGdyb3Vwcy4KKworICAgICAgICAxLiBSR0IgdHlwZXMuCisKKyAgICAgICAgICAgIFRoZXNl
IGluaGVyaXQgZnJvbSB0aGUgUkdCVHlwZSBzdHJ1Y3QgYW5kIGFyZSBkZWZpbmVkIGluIHRlcm1z
IG9mIHRoZWlyIHh5elRvTGluZWFyIC8gbGluZWFyVG9YWVogCisgICAgICAgICAgICBtYXRyaWNl
cywgdGhlaXIgdHJhbnNmZXIgZnVuY3Rpb24sIHdoZXRoZXIgdGhleSBhcmUgYm91bmRlZCBvciBl
eHRlbmRlZCBhbmQgdGhlaXIgd2hpdGUgcG9pbnQuIE5ldyAKKyAgICAgICAgICAgIFJHQiBjb2xv
ciB0eXBlcyBjYW4gYmUgYWRkZWQgd2l0aG91dCBhbnkgbmV3IGNvbnZlcnNpb24gY29kZSBiZWlu
ZyByZXF1aXJlZCwgYXMgbG9uZyBhcyB0aGV5IHNwZWNpZnkKKyAgICAgICAgICAgIHRob3NlIHBy
b3BlcnRpZXMuCisKKyAgICAgICAgMi4gVGhlIFhZWiB0eXBlLgorCisgICAgICAgICAgICBUaGlz
IGlzIHRoZSByb290IHR5cGUsIGFuZCBvbmx5IHZhcmllcyBvbiBpdHMgd2hpdGUgcG9pbnQuIElm
IG90aGVyIHdoaXRlIHBvaW50cyBiZXNpZGUgRDUwIGFuZCBENjUgCisgICAgICAgICAgICBhcmUg
ZXZlciBuZWVkZWQsIHdlIHdpbGwgbmVlZCB0byBleHRlbmQgdGhlIENocm9tYXRpY0FkYXBhdGlv
biBzcGVjaWFsaXphdGlvbnMgdG8gYWxzbyBoYXZlIGNvbnZlcnNpb24KKyAgICAgICAgICAgIG1h
dHJpY2VzIGJldHdlZW4gdGhvc2UuCisKKyAgICAgICAgMy4gQWxsIG90aGVyIHR5cGVzLgorCisg
ICAgICAgICAgICBBbGwgb3RoZXIgdHlwZXMgKGUuZy4gTGFiLCBMQ0hBLCBIU0xBLCBIV0JBIChh
bmQgU1JHQkE8dWludDhfdD4sIGtpbmQgb2YsIGl0J3MgYSBzcGVjaWFsIGZsb3dlcikgYXJlCisg
ICAgICAgICAgICB0aGUgc2V0IGN1cnJlbnRseSkgaGF2ZSB0aGVpciBjb252ZXJzaW9ucyBkZWZp
bmVkIGluIHRlcm1zIG9mIHNpbmdsZSByZWZlcmVuY2UgY29sb3IgYW5kIHJlcXVpcmUKKyAgICAg
ICAgICAgIGV4cGxpY2l0IHNwZWNpYWxpemF0aW9uIG9mIHRoZSBDb2xvckNvbnZlcnNpb24gc3Ry
dWN0IHRvIHdvcmsuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGFiPGZsb2F0Pj46OmNvbnZlcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6V2hpdGVQb2ludDo6RDUwPj46OmNvbnZlcnQpOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldoaXRlUG9pbnQ6OkQ2NT4+Ojpjb252ZXJ0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvTGluZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OnRvR2FtbWFFbmNvZGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkE5OFJH
QjxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxpbmVhckE5
OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlQMzxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxpbmVh
ckRpc3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+Ojpjb252ZXJ0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYzIwMjA8ZmxvYXQ+Pjo6Y29udmVydCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpMaW5lYXJSZWMyMDIwPGZsb2F0Pj46OmNvbnZlcnQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGluZWFyU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjp4eXpUb0xpbmVhcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpsaW5lYXJUb1hZWik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpY
WVpGb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+
Pj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPExpbmVhclBy
b1Bob3RvUkdCPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj46OmNvbnZlcnQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+Pjo6
Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8RXh0ZW5kZWRTUkdC
QTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpGb3I8
SFNMQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpYWVpG
b3I8SFdCQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpY
WVpGb3I8TENIQTxmbG9hdD4+Pjo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6WFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj46OmNvbnZlcnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6WFlaRm9yPFNSR0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbG9yQ29udmVyc2lvbjo6Y29udmVydCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvckNvbnZlcnNpb246OnRvTGluZWFyRW5jb2RlZCk6CisgICAgICAgIChXZWJDb3JlOjpD
b2xvckNvbnZlcnNpb246OnRvR2FtbWFFbmNvZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9y
Q29udmVyc2lvbjo6dG9FeHRlbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNvbnZlcnNp
b246OnRvQm91bmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNvbnZlcnNpb246OmhhbmRs
ZVJHQkZhbWlseUNvbnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDb252ZXJzaW9u
OjpoYW5kbGVNYXRyaXhDb252ZXJzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b2xvck1hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChX
ZWJDb3JlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5TWF0cmljZXNUb0Nv
bG9yQ29tcG9uZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5o
OgorCiAyMDIxLTAyLTEyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBJbXByb3ZlIGNvbXB1dGVkIHN0eWxlIGhhbmRsaW5nIGluIGRlZ2VuZXJhdGUgZ3JpZCBjYXNl
cywgc2l6ZXMgYW5kIGxlbmd0aHMgb2YgemVybwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCShyZXZpc2lvbiAyNzI4
MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwyMDQgKzMwLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0vLyBDaHJvbWF0aWMgQWRhcHRhdGlvbiBNYXRyaWNlcy4KLQotLy8gaHR0cDovL3d3
dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCi1zdGF0
aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ1MFRvRDY1TWF0cml4IHsKLSAgICAgMC45
NTU1NzY2ZiwgLTAuMDIzMDM5M2YsIDAuMDYzMTYzNmYsCi0gICAgLTAuMDI4Mjg5NWYsICAxLjAw
OTk0MTZmLCAwLjAyMTAwNzdmLAotICAgICAwLjAxMjI5ODJmLCAtMC4wMjA0ODMwZiwgMS4zMjk5
MDk4ZgotfTsKLQotLy8gaHR0cDovL3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXguaHRtbD9F
cW5fQ2hyb21BZGFwdC5odG1sCi1zdGF0aWMgY29uc3RleHByIENvbG9yTWF0cml4PDMsIDM+IEQ2
NVRvRDUwTWF0cml4IHsKLSAgICAgMS4wNDc4MTEyZiwgMC4wMjI4ODY2ZiwgLTAuMDUwMTI3MGYs
Ci0gICAgIDAuMDI5NTQyNGYsIDAuOTkwNDg0NGYsIC0wLjAxNzA0OTFmLAotICAgIC0wLjAwOTIz
NDVmLCAwLjAxNTA0MzZmLCAgMC43NTIxMzE2ZgotfTsKLQotLy8gTUFSSzogQ2hyb21hdGljIEFk
YXB0YXRpb24gY29udmVyc2lvbnMuCi0KLVhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4gQ29s
b3JDb252ZXJzaW9uPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4sIFhZWkE8ZmxvYXQsIFdo
aXRlUG9pbnQ6OkQ1MD4+Ojpjb252ZXJ0KGNvbnN0IFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ1
MD4mIGNvbG9yKQotewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZ0V4Y2Vw
dEFscGhhPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4+KEQ1MFRvRDY1TWF0cml4LnRyYW5z
Zm9ybWVkQ29sb3JDb21wb25lbnRzKGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSkpOwotfQotCi1Y
WVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+IENvbG9yQ29udmVyc2lvbjxYWVpBPGZsb2F0LCBX
aGl0ZVBvaW50OjpENTA+LCBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+Pjo6Y29udmVydChj
b25zdCBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+JiBjb2xvcikKLXsKLSAgICByZXR1cm4g
bWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdFeGNlcHRBbHBoYTxYWVpBPGZsb2F0LCBXaGl0ZVBv
aW50OjpENTA+PihENjVUb0Q1ME1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0Nv
bG9yQ29tcG9uZW50cyhjb2xvcikpKTsKLX0KLQotLy8gTUFSSzogR2FtbWEgY29udmVyc2lvbnMu
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gc3RhdGljIGF1dG8gdG9MaW5lYXIoY29u
c3QgQ29sb3JUeXBlJiBjb2xvcikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpMaW5lYXJDb3VudGVy
cGFydAotewotICAgIGF1dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOwotICAgIHJldHVy
biB7IENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9MaW5lYXIoYzEpLCBDb2xvclR5cGU6
OlRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFyKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0
aW9uOjp0b0xpbmVhcihjMyksIGFscGhhIH07Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIENvbG9y
VHlwZT4gc3RhdGljIGF1dG8gdG9HYW1tYUVuY29kZWQoY29uc3QgQ29sb3JUeXBlJiBjb2xvcikg
LT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpHYW1tYUVuY29kZWRDb3VudGVycGFydAotewotICAgIGF1
dG8gW2MxLCBjMiwgYzMsIGFscGhhXSA9IGNvbG9yOwotICAgIHJldHVybiB7IENvbG9yVHlwZTo6
VHJhbnNmZXJGdW5jdGlvbjo6dG9HYW1tYUVuY29kZWQoYzEpLCBDb2xvclR5cGU6OlRyYW5zZmVy
RnVuY3Rpb246OnRvR2FtbWFFbmNvZGVkKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0aW9u
Ojp0b0dhbW1hRW5jb2RlZChjMyksIGFscGhhIH07Ci19Ci0KLS8vIEE5OFJHQiA8LT4gTGluZWFy
QTk4UkdCIGNvbnZlcnNpb25zLgotCi1MaW5lYXJBOThSR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lv
bjxMaW5lYXJBOThSR0I8ZmxvYXQ+LCBBOThSR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBBOThS
R0I8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9MaW5lYXIoY29sb3IpOwotfQotCi1B
OThSR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+LCBMaW5lYXJBOThSR0I8
ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJBOThSR0I8ZmxvYXQ+JiBjb2xvcikKLXsKLSAg
ICByZXR1cm4gdG9HYW1tYUVuY29kZWQoY29sb3IpOwotfQotCi0vLyBEaXNwbGF5UDMgPC0+IExp
bmVhckRpc3BsYXlQMyBjb252ZXJzaW9ucy4KLQotTGluZWFyRGlzcGxheVAzPGZsb2F0PiBDb2xv
ckNvbnZlcnNpb248TGluZWFyRGlzcGxheVAzPGZsb2F0PiwgRGlzcGxheVAzPGZsb2F0Pj46OmNv
bnZlcnQoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRvTGlu
ZWFyKGNvbG9yKTsKLX0KLQotRGlzcGxheVAzPGZsb2F0PiBDb2xvckNvbnZlcnNpb248RGlzcGxh
eVAzPGZsb2F0PiwgTGluZWFyRGlzcGxheVAzPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgTGluZWFy
RGlzcGxheVAzPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVkKGNv
bG9yKTsKLX0KLQotLy8gRXh0ZW5kZWRTUkdCQSA8LT4gTGluZWFyRXh0ZW5kZWRTUkdCQSBjb252
ZXJzaW9ucy4KLQotTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExp
bmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBFeHRlbmRlZFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQo
Y29uc3QgRXh0ZW5kZWRTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiB0b0xpbmVh
cihjb2xvcik7Ci19Ci0KLUV4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxFeHRl
bmRlZFNSR0JBPGZsb2F0PiwgTGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNv
bnN0IExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9H
YW1tYUVuY29kZWQoY29sb3IpOwotfQotCi0vLyBQcm9QaG90b1JHQiA8LT4gTGluZWFyUHJvUGhv
dG9SR0IgY29udmVyc2lvbnMuCi0KLUxpbmVhclByb1Bob3RvUkdCPGZsb2F0PiBDb2xvckNvbnZl
cnNpb248TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+LCBQcm9QaG90b1JHQjxmbG9hdD4+Ojpjb252
ZXJ0KGNvbnN0IFByb1Bob3RvUkdCPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHRvTGlu
ZWFyKGNvbG9yKTsKLX0KLQotUHJvUGhvdG9SR0I8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxQcm9Q
aG90b1JHQjxmbG9hdD4sIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3Qg
TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gdG9HYW1tYUVu
Y29kZWQoY29sb3IpOwotfQotCi0vLyBSZWMyMDIwIDwtPiBMaW5lYXJSZWMyMDIwIGNvbnZlcnNp
b25zLgotCi1MaW5lYXJSZWMyMDIwPGZsb2F0PiBDb2xvckNvbnZlcnNpb248TGluZWFyUmVjMjAy
MDxmbG9hdD4sIFJlYzIwMjA8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBSZWMyMDIwPGZsb2F0PiYg
Y29sb3IpCi17Ci0gICAgcmV0dXJuIHRvTGluZWFyKGNvbG9yKTsKLX0KLQotUmVjMjAyMDxmbG9h
dD4gQ29sb3JDb252ZXJzaW9uPFJlYzIwMjA8ZmxvYXQ+LCBMaW5lYXJSZWMyMDIwPGZsb2F0Pj46
OmNvbnZlcnQoY29uc3QgTGluZWFyUmVjMjAyMDxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVy
biB0b0dhbW1hRW5jb2RlZChjb2xvcik7Ci19Ci0KLS8vIFNSR0JBIDwtPiBMaW5lYXJTUkdCQSBj
b252ZXJzaW9ucy4KLQotTGluZWFyU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJT
UkdCQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+JiBj
b2xvcikKLXsKLSAgICByZXR1cm4gdG9MaW5lYXIoY29sb3IpOwotfQotCi1TUkdCQTxmbG9hdD4g
Q29sb3JDb252ZXJzaW9uPFNSR0JBPGZsb2F0PiwgTGluZWFyU1JHQkE8ZmxvYXQ+Pjo6Y29udmVy
dChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiB0b0dhbW1h
RW5jb2RlZChjb2xvcik7Ci19Ci0KLS8vIE1BUks6IE1hdHJpeCBjb252ZXJzaW9ucyAodG8gYW5k
IGZyb20gWFlaIGZvciBhbGwgbGluZWFyIGNvbG9yIHR5cGVzKS4KLQotdGVtcGxhdGU8dHlwZW5h
bWUgQ29sb3JUeXBlPiBzdGF0aWMgYXV0byB4eXpUb0xpbmVhcihjb25zdCBYWVpGb3I8Q29sb3JU
eXBlPiYgY29sb3IpIC0+IENvbG9yVHlwZQotewotICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVu
dHNDbGFtcGluZ0V4Y2VwdEFscGhhPENvbG9yVHlwZT4oQ29sb3JUeXBlOjp4eXpUb0xpbmVhci50
cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhhc0NvbG9yQ29tcG9uZW50cyhjb2xvcikpKTsKLX0K
LQotdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgYXV0byBsaW5lYXJUb1hZWihj
b25zdCBDb2xvclR5cGUmIGNvbG9yKSAtPiBYWVpGb3I8Q29sb3JUeXBlPgotewotICAgIHJldHVy
biBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZ0V4Y2VwdEFscGhhPFhZWkZvcjxDb2xvclR5cGU+
PihDb2xvclR5cGU6OmxpbmVhclRvWFlaLnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGFzQ29s
b3JDb21wb25lbnRzKGNvbG9yKSkpOwotfQotCi0vLyAtIExpbmVhckE5OFJHQiBtYXRyaXggY29u
dmVyc2lvbnMuCi0KLUxpbmVhckE5OFJHQjxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhckE5
OFJHQjxmbG9hdD4sIFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3Qg
WFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4geHl6VG9M
aW5lYXI8TGluZWFyQTk4UkdCPGZsb2F0Pj4oY29sb3IpOwotfQotCi1YWVpGb3I8TGluZWFyQTk4
UkdCPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+Piwg
TGluZWFyQTk4UkdCPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgTGluZWFyQTk4UkdCPGZsb2F0PiYg
Y29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVhckE5OFJHQjxmbG9hdD4+KGNv
bG9yKTsKLX0KLQotLy8gLSBMaW5lYXJEaXNwbGF5UDMgbWF0cml4IGNvbnZlcnNpb25zLgotCi1M
aW5lYXJEaXNwbGF5UDM8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMaW5lYXJEaXNwbGF5UDM8Zmxv
YXQ+LCBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZv
cjxMaW5lYXJEaXNwbGF5UDM8ZmxvYXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHh5elRvTGlu
ZWFyPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+KGNvbG9yKTsKLX0KLQotWFlaRm9yPExpbmVhckRp
c3BsYXlQMzxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZs
b2F0Pj4sIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhckRpc3Bs
YXlQMzxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5lYXJEaXNw
bGF5UDM8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLS8vIC0gTGluZWFyRXh0ZW5kZWRTUkdCQSBtYXRy
aXggY29udmVyc2lvbnMuCi0KLUxpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+IENvbG9yQ29udmVy
c2lvbjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0PiwgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JH
QkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8Zmxv
YXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIHh5elRvTGluZWFyPExpbmVhckV4dGVuZGVkU1JH
QkE8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLVhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0
Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4sIExp
bmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJFeHRlbmRlZFNS
R0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRvWFlaPExpbmVhckV4dGVu
ZGVkU1JHQkE8ZmxvYXQ+Pihjb2xvcik7Ci19Ci0KLS8vIC0gTGluZWFyUHJvUGhvdG9SR0IgbWF0
cml4IGNvbnZlcnNpb25zLgotCi1MaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4gQ29sb3JDb252ZXJz
aW9uPExpbmVhclByb1Bob3RvUkdCPGZsb2F0PiwgWFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZs
b2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+JiBj
b2xvcikKLXsKLSAgICByZXR1cm4geHl6VG9MaW5lYXI8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+
Pihjb2xvcik7Ci19Ci0KLVhZWkZvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+IENvbG9yQ29u
dmVyc2lvbjxYWVpGb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiwgTGluZWFyUHJvUGhvdG9S
R0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4mIGNvbG9y
KQotewotICAgIHJldHVybiBsaW5lYXJUb1hZWjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNv
bG9yKTsKLX0KLQotLy8gLSBMaW5lYXJSZWMyMDIwIG1hdHJpeCBjb252ZXJzaW9ucy4KLQotTGlu
ZWFyUmVjMjAyMDxmbG9hdD4gQ29sb3JDb252ZXJzaW9uPExpbmVhclJlYzIwMjA8ZmxvYXQ+LCBY
WVpGb3I8TGluZWFyUmVjMjAyMDxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8TGluZWFy
UmVjMjAyMDxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4geHl6VG9MaW5lYXI8TGluZWFy
UmVjMjAyMDxmbG9hdD4+KGNvbG9yKTsKLX0KLQotWFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+
PiBDb2xvckNvbnZlcnNpb248WFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+PiwgTGluZWFyUmVj
MjAyMDxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+JiBjb2xvcikK
LXsKLSAgICByZXR1cm4gbGluZWFyVG9YWVo8TGluZWFyUmVjMjAyMDxmbG9hdD4+KGNvbG9yKTsK
LX0KLQotLy8gLSBMaW5lYXJTUkdCQSBtYXRyaXggY29udmVyc2lvbnMuCi0KLUxpbmVhclNSR0JB
PGZsb2F0PiBDb2xvckNvbnZlcnNpb248TGluZWFyU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8TGluZWFy
U1JHQkE8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0Pj4m
IGNvbG9yKQotewotICAgIHJldHVybiB4eXpUb0xpbmVhcjxMaW5lYXJTUkdCQTxmbG9hdD4+KGNv
bG9yKTsKLX0KLQotWFlaRm9yPExpbmVhclNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZ
WkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+LCBMaW5lYXJTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNv
bnN0IExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGxpbmVhclRvWFla
PExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpOwotfQotCiAvLyBNQVJLOiBIU0wgY29udmVyc2lv
bnMuCiAKIHN0cnVjdCBIU0xIdWVDYWxjdWxhdGlvblJlc3VsdCB7CkBAIC0zODEsNyArMTgzLDcg
QEAgc3RhdGljIGNvbnN0ZXhwciBmbG9hdCBMQUJlID0gMjE2LjBmIC8gMgogc3RhdGljIGNvbnN0
ZXhwciBmbG9hdCBMQUJrID0gMjQzODkuMGYgLyAyNy4wZjsKIHN0YXRpYyBjb25zdGV4cHIgZmxv
YXQgRDUwV2hpdGVWYWx1ZXNbXSA9IHsgMC45NjQyMmYsIDEuMGYsIDAuODI1MjFmIH07CiAKLVhZ
WkZvcjxMYWI8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm9yPExhYjxmbG9hdD4+LCBMYWI8
ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMYWI8ZmxvYXQ+JiBjb2xvcikKK1hZWkE8ZmxvYXQsIFdo
aXRlUG9pbnQ6OkQ1MD4gQ29sb3JDb252ZXJzaW9uPFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ1
MD4sIExhYjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IExhYjxmbG9hdD4mIGNvbG9yKQogewogICAg
IGZsb2F0IGYxID0gKGNvbG9yLmxpZ2h0bmVzcyArIDE2LjBmKSAvIDExNi4wZjsKICAgICBmbG9h
dCBmMCA9IGYxICsgKGNvbG9yLmEgLyA1MDAuMGYpOwpAQCAtNDExLDcgKzIxMyw3IEBAIFhZWkZv
cjxMYWI8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248WFlaRm8KICAgICByZXR1cm4geyB4LCB5LCB6
LCBjb2xvci5hbHBoYSB9OwogfQogCi1MYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8Zmxv
YXQ+LCBYWVpGb3I8TGFiPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxMYWI8ZmxvYXQ+
PiYgY29sb3IpCitMYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8ZmxvYXQ+LCBYWVpBPGZs
b2F0LCBXaGl0ZVBvaW50OjpENTA+Pjo6Y29udmVydChjb25zdCBYWVpBPGZsb2F0LCBXaGl0ZVBv
aW50OjpENTA+JiBjb2xvcikKIHsKICAgICBmbG9hdCB4ID0gY29sb3IueCAvIEQ1MFdoaXRlVmFs
dWVzWzBdOwogICAgIGZsb2F0IHkgPSBjb2xvci55IC8gRDUwV2hpdGVWYWx1ZXNbMV07CkBAIC00
NjEsMTE3ICsyNjMsNyBAQCBMYWI8ZmxvYXQ+IENvbG9yQ29udmVyc2lvbjxMYWI8ZmxvYXQ+LCBM
CiAgICAgfTsKIH0KIAotLy8gTUFSSzogQ29tYmluYXRpb24gY29udmVyc2lvbnMgKGNvbnN0cnVj
dGVkIGZyb20gbW9yZSBiYXNpYyBjb252ZXJzaW9ucyBhYm92ZSkuCi0KLS8vIC0gQTk4UkdCIGNv
bWJpbmF0aW9uIGZ1bmN0aW9ucy4KLQotWFlaRm9yPEE5OFJHQjxmbG9hdD4+IENvbG9yQ29udmVy
c2lvbjxYWVpGb3I8QTk4UkdCPGZsb2F0Pj4sIEE5OFJHQjxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0
IEE5OFJHQjxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9y
PEE5OFJHQjxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8TGluZWFyQTk4UkdCPGZsb2F0Pj4oY29sb3Ip
KTsKLX0KLQotQTk4UkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248QTk4UkdCPGZsb2F0PiwgWFla
Rm9yPEE5OFJHQjxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8QTk4UkdCPGZsb2F0Pj4m
IGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8QTk4UkdCPGZsb2F0Pj4oY29udmVy
dENvbG9yPExpbmVhckE5OFJHQjxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gRGlzcGxheVAz
IGNvbWJpbmF0aW9uIGZ1bmN0aW9ucy4KLQotWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+IENvbG9y
Q29udmVyc2lvbjxYWVpGb3I8RGlzcGxheVAzPGZsb2F0Pj4sIERpc3BsYXlQMzxmbG9hdD4+Ojpj
b252ZXJ0KGNvbnN0IERpc3BsYXlQMzxmbG9hdD4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252
ZXJ0Q29sb3I8WFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8TGluZWFyRGlz
cGxheVAzPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotRGlzcGxheVAzPGZsb2F0PiBDb2xvckNvbnZl
cnNpb248RGlzcGxheVAzPGZsb2F0PiwgWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+Pjo6Y29udmVy
dChjb25zdCBYWVpGb3I8RGlzcGxheVAzPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBj
b252ZXJ0Q29sb3I8RGlzcGxheVAzPGZsb2F0Pj4oY29udmVydENvbG9yPExpbmVhckRpc3BsYXlQ
MzxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gRXh0ZW5kZWRTUkdCIGNvbWJpbmF0aW9uIGZ1
bmN0aW9ucy4KLQotWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiBDb2xvckNvbnZlcnNpb248
WFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiwgRXh0ZW5kZWRTUkdCQTxmbG9hdD4+Ojpjb252
ZXJ0KGNvbnN0IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gY29u
dmVydENvbG9yPFhZWkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5l
YXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotRXh0ZW5kZWRTUkdCQTxmbG9h
dD4gQ29sb3JDb252ZXJzaW9uPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8RXh0ZW5kZWRT
UkdCQTxmbG9hdD4+Pjo6Y29udmVydChjb25zdCBYWVpGb3I8RXh0ZW5kZWRTUkdCQTxmbG9hdD4+
JiBjb2xvcikKLXsKLSAgICByZXR1cm4gY29udmVydENvbG9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+
Pihjb252ZXJ0Q29sb3I8TGluZWFyRXh0ZW5kZWRTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0K
LS8vIC0gSFNMQSBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxIU0xBPGZsb2F0Pj4g
Q29sb3JDb252ZXJzaW9uPFhZWkZvcjxIU0xBPGZsb2F0Pj4sIEhTTEE8ZmxvYXQ+Pjo6Y29udmVy
dChjb25zdCBIU0xBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxY
WVpGb3I8SFNMQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+Pihjb2xvcikpOwot
fQotCi1IU0xBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248SFNMQTxmbG9hdD4sIFhZWkZvcjxIU0xB
PGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxIU0xBPGZsb2F0Pj4mIGNvbG9yKQotewot
ICAgIHJldHVybiBjb252ZXJ0Q29sb3I8SFNMQTxmbG9hdD4+KGNvbnZlcnRDb2xvcjxTUkdCQTxm
bG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gSFdCQSBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCi0K
LVhZWkZvcjxIV0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxIV0JBPGZsb2F0Pj4s
IEhXQkE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBIV0JBPGZsb2F0PiYgY29sb3IpCi17Ci0gICAg
cmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8SFdCQTxmbG9hdD4+Pihjb252ZXJ0Q29sb3I8U1JH
QkE8ZmxvYXQ+Pihjb2xvcikpOwotfQotCi1IV0JBPGZsb2F0PiBDb2xvckNvbnZlcnNpb248SFdC
QTxmbG9hdD4sIFhZWkZvcjxIV0JBPGZsb2F0Pj4+Ojpjb252ZXJ0KGNvbnN0IFhZWkZvcjxIV0JB
PGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8SFdCQTxmbG9hdD4+
KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci19Ci0KLS8vIC0gTENIQSBjb21i
aW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxMQ0hBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9u
PFhZWkZvcjxMQ0hBPGZsb2F0Pj4sIExDSEE8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBMQ0hBPGZs
b2F0PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8TENIQTxmbG9h
dD4+Pihjb252ZXJ0Q29sb3I8TGFiPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotTENIQTxmbG9hdD4g
Q29sb3JDb252ZXJzaW9uPExDSEE8ZmxvYXQ+LCBYWVpGb3I8TENIQTxmbG9hdD4+Pjo6Y29udmVy
dChjb25zdCBYWVpGb3I8TENIQTxmbG9hdD4+JiBjb2xvcikKLXsKLSAgICByZXR1cm4gY29udmVy
dENvbG9yPExDSEE8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGFiPGZsb2F0Pj4oY29sb3IpKTsKLX0K
LQotLy8gLSBQcm9QaG90b1JHQiBjb21iaW5hdGlvbiBmdW5jdGlvbnMuCi0KLVhZWkZvcjxQcm9Q
aG90b1JHQjxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+
PiwgUHJvUGhvdG9SR0I8ZmxvYXQ+Pjo6Y29udmVydChjb25zdCBQcm9QaG90b1JHQjxmbG9hdD4m
IGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9yPFByb1Bob3RvUkdCPGZs
b2F0Pj4+KGNvbnZlcnRDb2xvcjxMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4+KGNvbG9yKSk7Ci19
Ci0KLVByb1Bob3RvUkdCPGZsb2F0PiBDb2xvckNvbnZlcnNpb248UHJvUGhvdG9SR0I8ZmxvYXQ+
LCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+Pj46OmNvbnZlcnQoY29uc3QgWFlaRm9yPFByb1Bo
b3RvUkdCPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVybiBjb252ZXJ0Q29sb3I8UHJvUGhv
dG9SR0I8ZmxvYXQ+Pihjb252ZXJ0Q29sb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+Pihjb2xv
cikpOwotfQotCi0vLyAtIFJlYzIwMjAgY29tYmluYXRpb24gZnVuY3Rpb25zLgotCi1YWVpGb3I8
UmVjMjAyMDxmbG9hdD4+IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8UmVjMjAyMDxmbG9hdD4+LCBS
ZWMyMDIwPGZsb2F0Pj46OmNvbnZlcnQoY29uc3QgUmVjMjAyMDxmbG9hdD4mIGNvbG9yKQotewot
ICAgIHJldHVybiBjb252ZXJ0Q29sb3I8WFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj4oY29udmVydENv
bG9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+Pihjb2xvcikpOwotfQotCi1SZWMyMDIwPGZsb2F0PiBD
b2xvckNvbnZlcnNpb248UmVjMjAyMDxmbG9hdD4sIFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4+Ojpj
b252ZXJ0KGNvbnN0IFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4mIGNvbG9yKQotewotICAgIHJldHVy
biBjb252ZXJ0Q29sb3I8UmVjMjAyMDxmbG9hdD4+KGNvbnZlcnRDb2xvcjxMaW5lYXJSZWMyMDIw
PGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotLy8gLSBTUkdCIGNvbWJpbmF0aW9uIGZ1bmN0aW9ucy4K
LQotWFlaRm9yPFNSR0JBPGZsb2F0Pj4gQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxTUkdCQTxmbG9h
dD4+LCBTUkdCQTxmbG9hdD4+Ojpjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYgY29sb3IpCi17
Ci0gICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxYWVpGb3I8U1JHQkE8ZmxvYXQ+Pj4oY29udmVydENv
bG9yPExpbmVhclNSR0JBPGZsb2F0Pj4oY29sb3IpKTsKLX0KLQotU1JHQkE8ZmxvYXQ+IENvbG9y
Q29udmVyc2lvbjxTUkdCQTxmbG9hdD4sIFhZWkZvcjxTUkdCQTxmbG9hdD4+Pjo6Y29udmVydChj
b25zdCBYWVpGb3I8U1JHQkE8ZmxvYXQ+PiYgY29sb3IpCi17Ci0gICAgcmV0dXJuIGNvbnZlcnRD
b2xvcjxTUkdCQTxmbG9hdD4+KGNvbnZlcnRDb2xvcjxMaW5lYXJTUkdCQTxmbG9hdD4+KGNvbG9y
KSk7Ci19Ci0KLS8vIE1BUks6IFNSR0JBPHVpbnQ4X3Q+IGNvbXBvbmVudCB0eXBlIGNvbnZlcnNp
b25zLgorLy8gTUFSSzogU1JHQkE8dWludDhfdD4gY29udmVyc2lvbnMuCiAKIFNSR0JBPGZsb2F0
PiBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBTUkdCQTx1aW50OF90Pj46OmNvbnZlcnQo
Y29uc3QgU1JHQkE8dWludDhfdD4mIGNvbG9yKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgJKHJldmlzaW9uIDI3Mjgz
NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVyc2lvbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyOTkgKzI2LDkyIEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNvbG9yVHlwZXMuaCIKLSNpbmNsdWRlICJDb2xvclV0aWxpdGllcy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLS8vIEFsbCBjb2xvciB0eXBlcyBtdXN0IGF0IGxlYXN0IGltcGxl
bWVudCB0aGUgZm9sbG93aW5nIGNvbnZlcnNpb25zIHRvIGFuZCBmcm9tIHRoZWlyIHJlZmVyZW5j
ZSBYWVogY29sb3Igc3BhY2UKKy8vIEFsbCBjb2xvciB0eXBlcywgb3RoZXIgdGhhbiBYWVpBIG9y
IHRob3NlIGluaGVyaXRpbmcgZnJvbSBSR0JUeXBlLCBtdXN0IGltcGxlbWVudAorLy8gdGhlIGZv
bGxvd2luZyBjb252ZXJzaW9ucyB0byBhbmQgZnJvbSB0aGVpciAiUmVmZXJlbmNlIiBjb2xvci4K
IC8vCi0vLyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPGBDb2xv
clR5cGVgPGZsb2F0Pj4sIGBDb2xvclR5cGVgPGZsb2F0Pj4gewotLy8gICAgICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBYWVpGb3I8YENvbG9yVHlwZWA8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IGBD
b2xvclR5cGVgPGZsb2F0PiYpOworLy8gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJz
aW9uPGBDb2xvclR5cGVgPGZsb2F0Pjo6UmVmZXJlbmNlLCBgQ29sb3JUeXBlYDxmbG9hdD4+IHsK
Ky8vICAgICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYENvbG9yVHlwZWA8ZmxvYXQ+OjpSZWZl
cmVuY2UgY29udmVydChjb25zdCBgQ29sb3JUeXBlYDxmbG9hdD4mKTsKIC8vICAgIH07CiAvLyAg
ICAKLS8vICAgIHRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxgQ29sb3JUeXBlYDxm
bG9hdD4sIFhZWkZvcjxgQ29sb3JUeXBlYDxmbG9hdD4+PiB7Ci0vLyAgICAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIGBDb2xvclR5cGVgPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxgQ29s
b3JUeXBlYDxmbG9hdD4+Jik7CisvLyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248YENvbG9yVHlwZWA8ZmxvYXQ+LCBgQ29sb3JUeXBlYDxmbG9hdD46OlJlZmVyZW5jZT4gewor
Ly8gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBgQ29sb3JUeXBlYDxmbG9hdD4gY29udmVy
dChjb25zdCBgQ29sb3JUeXBlYDxmbG9hdD46OlJlZmVyZW5jZSYpOwogLy8gICAgfTsKIC8vCi0v
LyBBbnkgYWRkaXRpb25hbCBjb252ZXJzaW9ucyBjYW4gYmUgdGhvdWdodCBvZiBhcyBvcHRpbWl6
YXRpb25zLCBzaG9ydGN1dHRpbmcgdW5uZWNlc3Nhcnkgc3RlcHMsIHRob3VnaAotLy8gc29tZSBt
YXkgYmUgaW50ZWdyYWwgdG8gdGhlIGJhc2UgY29udmVyc2lvbi4KIAotdGVtcGxhdGU8dHlwZW5h
bWUgQ29sb3JUeXBlPiB1c2luZyBYWVpGb3IgPSBYWVpBPHR5cGVuYW1lIENvbG9yVHlwZTo6Q29t
cG9uZW50VHlwZSwgQ29sb3JUeXBlOjp3aGl0ZVBvaW50PjsKLQotdGVtcGxhdGU8dHlwZW5hbWUg
T3V0cHV0LCB0eXBlbmFtZSBJbnB1dD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjsKK3RlbXBsYXRl
PHR5cGVuYW1lIE91dHB1dCwgdHlwZW5hbWUgSW5wdXQsIHR5cGVuYW1lID0gdm9pZD4gc3RydWN0
IENvbG9yQ29udmVyc2lvbjsKIAogdGVtcGxhdGU8dHlwZW5hbWUgT3V0cHV0LCB0eXBlbmFtZSBJ
bnB1dD4gaW5saW5lIE91dHB1dCBjb252ZXJ0Q29sb3IoY29uc3QgSW5wdXQmIGNvbG9yKQogewog
ICAgIHJldHVybiBDb2xvckNvbnZlcnNpb248T3V0cHV0LCBJbnB1dD46OmNvbnZlcnQoY29sb3Ip
OwogfQogCi0vLyBBOThSR0IKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpG
b3I8QTk4UkdCPGZsb2F0Pj4sIEE5OFJHQjxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgWFlaRm9yPEE5OFJHQjxmbG9hdD4+IGNvbnZlcnQoY29uc3QgQTk4UkdCPGZsb2F0PiYp
OwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEE5OFJHQjxmbG9hdD4s
IFhZWkZvcjxBOThSR0I8ZmxvYXQ+Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBOThS
R0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPEE5OFJHQjxmbG9hdD4+Jik7Ci19OwotCi0v
LyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJBOThS
R0I8ZmxvYXQ+LCBBOThSR0I8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExp
bmVhckE5OFJHQjxmbG9hdD4gY29udmVydChjb25zdCBBOThSR0I8ZmxvYXQ+Jik7Ci19OwotCi0K
LS8vIERpc3BsYXlQMwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxE
aXNwbGF5UDM8ZmxvYXQ+PiwgRGlzcGxheVAzPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBYWVpGb3I8RGlzcGxheVAzPGZsb2F0Pj4gY29udmVydChjb25zdCBEaXNwbGF5UDM8
ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248RGlzcGxh
eVAzPGZsb2F0PiwgWFlaRm9yPERpc3BsYXlQMzxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIERpc3BsYXlQMzxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8RGlzcGxheVAz
PGZsb2F0Pj4mKTsKLX07CiAKLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JD
b252ZXJzaW9uPExpbmVhckRpc3BsYXlQMzxmbG9hdD4sIERpc3BsYXlQMzxmbG9hdD4+IHsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyRGlzcGxheVAzPGZsb2F0PiBjb252ZXJ0KGNv
bnN0IERpc3BsYXlQMzxmbG9hdD4mKTsKLX07CisvLyBNQVJLOiBDaHJvbWF0aWMgQWRhcHRhdGlv
biBjb252ZXJzaW9ucy4KIAorLy8gaHR0cDovL3d3dy5icnVjZWxpbmRibG9vbS5jb20vaW5kZXgu
aHRtbD9FcW5fQ2hyb21BZGFwdC5odG1sCit0ZW1wbGF0ZTxXaGl0ZVBvaW50IEZyb20sIFdoaXRl
UG9pbnQgVG8+IHN0cnVjdCBDaHJvbWF0aWNBZGFwYXRpb247CiAKLS8vIEV4dGVuZGVkU1JHQkEK
LXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8RXh0ZW5kZWRTUkdCQTxm
bG9hdD4+LCBFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBYWVpGb3I8RXh0ZW5kZWRTUkdCQTxmbG9hdD4+IGNvbnZlcnQoY29uc3QgRXh0ZW5kZWRTUkdC
QTxmbG9hdD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxFeHRl
bmRlZFNSR0JBPGZsb2F0PiwgWFlaRm9yPEV4dGVuZGVkU1JHQkE8ZmxvYXQ+Pj4gewotICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBFeHRlbmRlZFNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZ
WkZvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4mKTsKK3RlbXBsYXRlPD4gc3RydWN0IENocm9tYXRp
Y0FkYXBhdGlvbjxXaGl0ZVBvaW50OjpENjUsIFdoaXRlUG9pbnQ6OkQ1MD4geworICAgIHN0YXRp
YyBjb25zdGV4cHIgQ29sb3JNYXRyaXg8MywgMz4gbWF0cml4IHsKKyAgICAgICAgIDEuMDQ3ODEx
MmYsIDAuMDIyODg2NmYsIC0wLjA1MDEyNzBmLAorICAgICAgICAgMC4wMjk1NDI0ZiwgMC45OTA0
ODQ0ZiwgLTAuMDE3MDQ5MWYsCisgICAgICAgIC0wLjAwOTIzNDVmLCAwLjAxNTA0MzZmLCAgMC43
NTIxMzE2ZgorICAgIH07CiB9OwogCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENv
bG9yQ29udmVyc2lvbjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0PiwgRXh0ZW5kZWRTUkdCQTxm
bG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyRXh0ZW5kZWRTUkdCQTxm
bG9hdD4gY29udmVydChjb25zdCBFeHRlbmRlZFNSR0JBPGZsb2F0PiYpOwordGVtcGxhdGU8PiBz
dHJ1Y3QgQ2hyb21hdGljQWRhcGF0aW9uPFdoaXRlUG9pbnQ6OkQ1MCwgV2hpdGVQb2ludDo6RDY1
PiB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBDb2xvck1hdHJpeDwzLCAzPiBtYXRyaXggeworICAg
ICAgICAgMC45NTU1NzY2ZiwgLTAuMDIzMDM5M2YsIDAuMDYzMTYzNmYsCisgICAgICAgIC0wLjAy
ODI4OTVmLCAgMS4wMDk5NDE2ZiwgMC4wMjEwMDc3ZiwKKyAgICAgICAgIDAuMDEyMjk4MmYsIC0w
LjAyMDQ4MzBmLCAxLjMyOTkwOThmCisgICAgfTsKIH07CiAKLQotLy8gSFNMQQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxIU0xBPGZsb2F0Pj4sIEhTTEE8ZmxvYXQ+
PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxIU0xBPGZsb2F0Pj4gY29udmVy
dChjb25zdCBIU0xBPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPEhTTEE8ZmxvYXQ+LCBYWVpGb3I8SFNMQTxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIEhTTEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPEhTTEE8ZmxvYXQ+
PiYpOwotfTsKLQotLy8gQWRkaXRpb25zCisvLyBNQVJLOiBIU0xBCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBIU0xBPGZsb2F0Pj4gewogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBIU0xBPGZsb2F0PiYp
OwogfTsKLQotCi0vLyBIV0JBCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFla
Rm9yPEhXQkE8ZmxvYXQ+PiwgSFdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgWFlaRm9yPEhXQkE8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IEhXQkE8ZmxvYXQ+Jik7Ci19Owot
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248SFdCQTxmbG9hdD4sIFhZWkZvcjxI
V0JBPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSFdCQTxmbG9hdD4gY29u
dmVydChjb25zdCBYWVpGb3I8SFdCQTxmbG9hdD4+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248SFNMQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj4geworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBIU0xBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYpOwogfTsK
IAotLy8gQWRkaXRpb25zCisvLyBNQVJLOiBIV0JBCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNv
bnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBIV0JBPGZsb2F0Pj4gewogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBIV0JBPGZsb2F0PiYpOwogfTsKLQot
Ci0vLyBMQ0hBCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPExDSEE8
ZmxvYXQ+PiwgTENIQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9y
PExDSEE8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExDSEE8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TENIQTxmbG9hdD4sIFhZWkZvcjxMQ0hBPGZsb2F0
Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTENIQTxmbG9hdD4gY29udmVydChjb25z
dCBYWVpGb3I8TENIQTxmbG9hdD4+Jik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248SFdCQTxmbG9hdD4sIFNSR0JBPGZsb2F0Pj4geworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBIV0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYpOwogfTsKIAotLy8gQWRk
aXRpb25zCisvLyBNQVJLOiBMQ0hBCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248
TGFiPGZsb2F0PiwgTENIQTxmbG9hdD4+IHsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGFi
PGZsb2F0PiBjb252ZXJ0KGNvbnN0IExDSEE8ZmxvYXQ+Jik7CiB9OwotCi0KLS8vIExhYgotdGVt
cGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMYWI8ZmxvYXQ+PiwgTGFiPGZs
b2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpGb3I8TGFiPGZsb2F0Pj4gY29u
dmVydChjb25zdCBMYWI8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNv
bnZlcnNpb248TGFiPGZsb2F0PiwgWFlaRm9yPExhYjxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIExhYjxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8TGFiPGZsb2F0Pj4m
KTsKLX07Ci0KLS8vIEFkZGl0aW9ucwogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PExDSEE8ZmxvYXQ+LCBMYWI8ZmxvYXQ+PiB7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExD
SEE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgTGFiPGZsb2F0PiYpOwogfTsKIAotCi0vLyBMaW5lYXJB
OThSR0IKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxYWVpGb3I8TGluZWFyQTk4
UkdCPGZsb2F0Pj4sIExpbmVhckE5OFJHQjxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgWFlaRm9yPExpbmVhckE5OFJHQjxmbG9hdD4+IGNvbnZlcnQoY29uc3QgTGluZWFyQTk4
UkdCPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExp
bmVhckE5OFJHQjxmbG9hdD4sIFhZWkZvcjxMaW5lYXJBOThSR0I8ZmxvYXQ+Pj4gewotICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBMaW5lYXJBOThSR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFla
Rm9yPExpbmVhckE5OFJHQjxmbG9hdD4+Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRl
PD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxBOThSR0I8ZmxvYXQ+LCBMaW5lYXJBOThSR0I8Zmxv
YXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEE5OFJHQjxmbG9hdD4gY29udmVydChj
b25zdCBMaW5lYXJBOThSR0I8ZmxvYXQ+Jik7Ci19OwotCi0KLS8vIExpbmVhckRpc3BsYXlQMwot
dGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJEaXNwbGF5UDM8
ZmxvYXQ+PiwgTGluZWFyRGlzcGxheVAzPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJE
aXNwbGF5UDM8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248TGluZWFyRGlzcGxheVAzPGZsb2F0PiwgWFlaRm9yPExpbmVhckRpc3BsYXlQMzxmbG9hdD4+
PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhckRpc3BsYXlQMzxmbG9hdD4gY29u
dmVydChjb25zdCBYWVpGb3I8TGluZWFyRGlzcGxheVAzPGZsb2F0Pj4mKTsKLX07Ci0KLS8vIEFk
ZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPERpc3BsYXlQMzxmbG9h
dD4sIExpbmVhckRpc3BsYXlQMzxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
RGlzcGxheVAzPGZsb2F0PiBjb252ZXJ0KGNvbnN0IExpbmVhckRpc3BsYXlQMzxmbG9hdD4mKTsK
Ky8vIE1BUks6IExhYgordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkE8Zmxv
YXQsIFdoaXRlUG9pbnQ6OkQ1MD4sIExhYjxmbG9hdD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPiBjb252ZXJ0KGNvbnN0IExhYjxmbG9h
dD4mKTsKIH07Ci0KLQotLy8gTGluZWFyRXh0ZW5kZWRTUkdCQQotdGVtcGxhdGU8PiBzdHJ1Y3Qg
Q29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4sIExpbmVh
ckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZv
cjxMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJFeHRlbmRl
ZFNSR0JBPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+LCBYWVpGb3I8TGluZWFyRXh0ZW5kZWRTUkdCQTxm
bG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVhckV4dGVuZGVkU1JHQkE8
ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhckV4dGVuZGVkU1JHQkE8ZmxvYXQ+PiYp
OwordGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExhYjxmbG9hdD4sIFhZWkE8Zmxv
YXQsIFdoaXRlUG9pbnQ6OkQ1MD4+IHsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGFiPGZs
b2F0PiBjb252ZXJ0KGNvbnN0IFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ1MD4mKTsKIH07CiAK
LS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEV4dGVuZGVk
U1JHQkE8ZmxvYXQ+LCBMaW5lYXJFeHRlbmRlZFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBFeHRlbmRlZFNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IExpbmVhckV4
dGVuZGVkU1JHQkE8ZmxvYXQ+Jik7Ci19OwotCi0KLS8vIExpbmVhclByb1Bob3RvUkdCCi10ZW1w
bGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZs
b2F0Pj4sIExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBYWVpGb3I8TGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExpbmVh
clByb1Bob3RvUkdCPGZsb2F0PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uPExpbmVhclByb1Bob3RvUkdCPGZsb2F0PiwgWFlaRm9yPExpbmVhclByb1Bob3RvUkdC
PGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGluZWFyUHJvUGhvdG9SR0I8
ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPExpbmVhclByb1Bob3RvUkdCPGZsb2F0Pj4mKTsK
LX07Ci0KLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFBy
b1Bob3RvUkdCPGZsb2F0PiwgTGluZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFByb1Bob3RvUkdCPGZsb2F0PiBjb252ZXJ0KGNvbnN0IExpbmVhclBy
b1Bob3RvUkdCPGZsb2F0PiYpOwotfTsKLQotCi0vLyBMaW5lYXJSZWMyMDIwCi10ZW1wbGF0ZTw+
IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFlaRm9yPExpbmVhclJlYzIwMjA8ZmxvYXQ+PiwgTGlu
ZWFyUmVjMjAyMDxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9yPExp
bmVhclJlYzIwMjA8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IExpbmVhclJlYzIwMjA8ZmxvYXQ+Jik7
Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyUmVjMjAyMDxm
bG9hdD4sIFhZWkZvcjxMaW5lYXJSZWMyMDIwPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgTGluZWFyUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25zdCBYWVpGb3I8TGluZWFy
UmVjMjAyMDxmbG9hdD4+Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0
IENvbG9yQ29udmVyc2lvbjxSZWMyMDIwPGZsb2F0PiwgTGluZWFyUmVjMjAyMDxmbG9hdD4+IHsK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVjMjAyMDxmbG9hdD4gY29udmVydChjb25zdCBM
aW5lYXJSZWMyMDIwPGZsb2F0PiYpOwotfTsKLQotCi0vLyBMaW5lYXJTUkdCQQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+LCBMaW5l
YXJTUkdCQTxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgWFlaRm9yPExpbmVh
clNSR0JBPGZsb2F0Pj4gY29udmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mKTsKLX07Ci0K
LXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxMaW5lYXJTUkdCQTxmbG9hdD4sIFhZ
WkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExp
bmVhclNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxMaW5lYXJTUkdCQTxmbG9hdD4+
Jik7Ci19OwotCi0vLyBBZGRpdGlvbnMKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lv
bjxTUkdCQTxmbG9hdD4sIExpbmVhclNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBMaW5lYXJTUkdCQTxmbG9hdD4mKTsK
LX07Ci0KLQotLy8gUHJvUGhvdG9SR0IKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lv
bjxYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiwgUHJvUGhvdG9SR0I8ZmxvYXQ+PiB7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkZvcjxQcm9QaG90b1JHQjxmbG9hdD4+IGNvbnZlcnQo
Y29uc3QgUHJvUGhvdG9SR0I8ZmxvYXQ+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xv
ckNvbnZlcnNpb248UHJvUGhvdG9SR0I8ZmxvYXQ+LCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+
Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQcm9QaG90b1JHQjxmbG9hdD4gY29udmVy
dChjb25zdCBYWVpGb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+PiYpOwotfTsKLQotLy8gQWRkaXRpb25z
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248TGluZWFyUHJvUGhvdG9SR0I8Zmxv
YXQ+LCBQcm9QaG90b1JHQjxmbG9hdD4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGlu
ZWFyUHJvUGhvdG9SR0I8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgUHJvUGhvdG9SR0I8ZmxvYXQ+Jik7
Ci19OwotCi0KLS8vIFJlYzIwMjAKLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxY
WVpGb3I8UmVjMjAyMDxmbG9hdD4+LCBSZWMyMDIwPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBYWVpGb3I8UmVjMjAyMDxmbG9hdD4+IGNvbnZlcnQoY29uc3QgUmVjMjAyMDxm
bG9hdD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxSZWMyMDIw
PGZsb2F0PiwgWFlaRm9yPFJlYzIwMjA8ZmxvYXQ+Pj4gewotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWMyMDIwPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFhZWkZvcjxSZWMyMDIwPGZsb2F0Pj4m
KTsKLX07Ci0KLS8vIEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PExpbmVhclJlYzIwMjA8ZmxvYXQ+LCBSZWMyMDIwPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBMaW5lYXJSZWMyMDIwPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFJlYzIwMjA8Zmxv
YXQ+Jik7Ci19OwotCi0KLS8vIFNSR0JBCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNp
b248WFlaRm9yPFNSR0JBPGZsb2F0Pj4sIFNSR0JBPGZsb2F0Pj4gewotICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBYWVpGb3I8U1JHQkE8ZmxvYXQ+PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0
PiYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPFNSR0JBPGZsb2F0
PiwgWFlaRm9yPFNSR0JBPGZsb2F0Pj4+IHsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU1JH
QkE8ZmxvYXQ+IGNvbnZlcnQoY29uc3QgWFlaRm9yPFNSR0JBPGZsb2F0Pj4mKTsKLX07Ci0KLS8v
IEFkZGl0aW9ucwotdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPExpbmVhclNSR0JB
PGZsb2F0PiwgU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExpbmVh
clNSR0JBPGZsb2F0PiBjb252ZXJ0KGNvbnN0IFNSR0JBPGZsb2F0PiYpOwotfTsKLQotdGVtcGxh
dGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9uPEhTTEE8ZmxvYXQ+LCBTUkdCQTxmbG9hdD4+IHsK
LSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSFNMQTxmbG9hdD4gY29udmVydChjb25zdCBTUkdC
QTxmbG9hdD4mKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IENvbG9yQ29udmVyc2lvbjxIV0JB
PGZsb2F0PiwgU1JHQkE8ZmxvYXQ+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhXQkE8
ZmxvYXQ+IGNvbnZlcnQoY29uc3QgU1JHQkE8ZmxvYXQ+Jik7Ci19OwotCi0vLyBTcGVjaWFsIGNh
c2VzIGZvciBTUkdCQTx1aW50OF90Pi4gT25seSBzUkdCIHN1cHBvcnRzIG5vbi1mbG9hdGluZyBw
b2ludCBjb21wb25lbnQgdHlwZXMuCisvLyBNQVJLOiBTUkdCQTx1aW50OF90PgorLy8gT25seSBz
UkdCIHN1cHBvcnRzIG5vbi1mbG9hdGluZyBwb2ludCBjb21wb25lbnQgdHlwZXMuCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248U1JHQkE8ZmxvYXQ+LCBTUkdCQTx1aW50OF90Pj4g
ewogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTUkdCQTxmbG9hdD4gY29udmVydChjb25zdCBT
UkdCQTx1aW50OF90PiYpOwogfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQ29sb3JDb252ZXJzaW9u
PFNSR0JBPHVpbnQ4X3Q+LCBTUkdCQTxmbG9hdD4+IHsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgU1JHQkE8dWludDhfdD4gY29udmVydChjb25zdCBTUkdCQTxmbG9hdD4mKTsKIH07CiAKIAot
Ly8gWFlaQSBDaHJvbWF0aWMgQWRhcHRhdGlvbiBjb252ZXJzaW9ucy4KLXRlbXBsYXRlPD4gc3Ry
dWN0IENvbG9yQ29udmVyc2lvbjxYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+LCBYWVpBPGZs
b2F0LCBXaGl0ZVBvaW50OjpENTA+PiB7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFhZWkE8
ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4gY29udmVydChjb25zdCBYWVpBPGZsb2F0LCBXaGl0ZVBv
aW50OjpENTA+Jik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDb2xvckNvbnZlcnNpb248WFla
QTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPiwgWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDY1Pj4g
ewotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+
IGNvbnZlcnQoY29uc3QgWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDY1PiYpOwotfTsKLQotCiAv
LyBJZGVudGl0eSBjb252ZXJzaW9uLgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IHN0
cnVjdCBDb2xvckNvbnZlcnNpb248Q29sb3JUeXBlLCBDb2xvclR5cGU+IHsKQEAgLTMyOCw1NCAr
MTIxLDE3NCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IHN0cnVjdCBDb2xvCiAgICAg
fQogfTsKIAotLy8gRmFsbGJhY2sgY29udmVyc2lvbi4KIAotLy8gQWxsIHR5cGVzIGFyZSByZXF1
aXJlZCB0byBoYXZlIGEgY29udmVyc2lvbiB0byB0aGVpciByZWZlcmVuY2UgWFlaIHNwYWNlLCBz
byB0aGlzIGlzIGd1YXJhbnRlZWQKLS8vIHRvIHdvcmsgaWYgYW5vdGhlciBzcGVjaWFsaXphdGlv
biBpcyBub3QgYWxyZWFkeSBwcm92aWRlZC4KKy8vIE1haW4gY29udmVyc2lvbi4KIAotLy8gRklY
TUU6IFJhdGhlciB0aGFuIGFsd2F5cyBjb252ZXJ0aW5nIHRocm91Z2ggcmVmZXJlbmNlIFhZWiBj
b2xvciBzcGFjZQotLy8gd2Ugc2hvdWxkIGluc3RlYWQgc3dpdGNoIHRvIGNvbXB1dGluZyB0aGUg
bGVhc3QgY29tbW9uIHJlZmVyZW5jZSBhbmNlc3RvcgotLy8gdHlwZSB3aGVyZSBlYWNoIGNvbG9y
IHR5cGUgZGVmaW5lcyBpdHMgcmVmZXJlbmNlIHR5cGUgYXMgdGhlIGNvbG9yIGl0IG5lZWRzCi0v
LyB0byBnZXQgb25lIHN0ZXAgY2xvc2VyIHRvIHRoZSByZWZlcmVuY2UgWFlaIGNvbG9yIHNwYWNl
LiBGb3IgaW5zdGFuY2UsCi0vLyB0aGUgcmVmZXJlbmNlIHR5cGUgb2YgU1JHQkEgaXMgTGluZWFy
U1JHQkEsIGFuZCB0aGUgcmVmZXJlbmNlIHR5cGUgb2YgTENIQQotLy8gaXMgTGFiLiBUb2dldGhl
ciwgdGhlIGNvbG9yIHR5cGVzIG1ha2UgYSB0cmVlIHdpdGggWFlaIGF0IHRoZSByb290LiBUaGUK
LS8vIGNvbnZlcnNpb24gc2hvdWxkIGVuZCB1cCBsb29raW5nIHNvbWV0aGluZyBsaWtlOgotLy8K
LS8vICAgdXNpbmcgTENBID0gTGVhc3RDb21tb25BbmNlc3RvcjxPdXRwdXQsIElucHV0Pjo6VHlw
ZTsKLS8vICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjxMQ0E+KGNv
bG9yKSk7Ci0vLwotLy8gQW4gZXhhbXBsZSBvZiB3aGVyZSB0aGlzIHdvdWxkIGJlIG1vcmUgZWZm
aWNpZW50IGlzIHdoZW4gY29udmVydGluZyBmcm9tCi0vLyBIU0xBPGZsb2F0PiB0byBIV0JBPGZs
b2F0Pi4gTENBIGZvciB0aGlzIHBhaXIgaXMgU1JHQkE8ZmxvYXQ+IHNvIGNvbnZlcnNpb24KLS8v
IHRocm91Z2ggWFlaIGlzIHdhc3RlZnVsLiBUaGlzIG1vZGVsIHdvdWxkIGFsc28gYWxsb3cgdXMg
dG8gcmVtb3ZlIHRoZQotLy8gY29tYmluYXRpb24gY29udmVyc2lvbnMsIHJlZHVjaW5nIHRoZSBu
dW1iZXIgb2YgdGhpbmdzIGVhY2ggbmV3IGNvbG9yIHR5cGUKLS8vIHJlcXVpcmVzLgotLy8KLS8v
IEZJWE1FOiBSZWR1Y2UgdG90YWwgbnVtYmVyIG9mIG1hdHJpeCB0cmFuZm9ybXMgYnkgY29uY2F0
ZW5hdGluZyB0aGUgbWF0cmljZXMKLS8vIG9mIHNlcXVlbnRpYWwgbWF0cml4IHRyYW5zZm9ybXMg
YXQgY29tcGlsZSB0aW1lLiBUYWtlIHRoZSBjb252ZXJzaW9uIGZyb20KLS8vIFByb1Bob3RvUkdC
PGZsb2F0PiB0byBTUkdCQTxmbG9hdD4gYXMgYW4gZXhhbXBsZToKLS8vCi0vLyAgIDEuIFByb1Bo
b3RvUkdCPGZsb2F0PiAtPiBMaW5lYXJQcm9QaG90b1JHQjxmbG9hdD4gICAgICAgICAgICAgICAg
ICAodHJhbnNmZXIgZnVuY3Rpb24gdHJhbnNmb3JtLCBub3QgbWF0cml4KQotLy8gICAyLiBMaW5l
YXJQcm9QaG90b1JHQjxmbG9hdD4gLT4gWFlaQTxmbG9hdCwgV2hpdGVQb2ludDo6RDUwPiAgICAg
ICAgTUFUUklYIFRSQU5TRk9STQotLy8gICAzLiBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENTA+
IC0+IFhZWkE8ZmxvYXQsIFdoaXRlUG9pbnQ6OkQ2NT4gICAgTUFUUklYIFRSQU5TRk9STQotLy8g
ICA0LiBYWVpBPGZsb2F0LCBXaGl0ZVBvaW50OjpENjU+IC0+IExpbmVhclNSR0JBPGZsb2F0PiAg
ICAgICAgICAgICAgTUFUUklYIFRSQU5TRk9STQotLy8gICA1LiBMaW5lYXJTUkdCQTxmbG9hdD4g
LT4gU1JHQkE8ZmxvYXQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5zZmVyIGZ1
bmN0aW9uIHRyYW5zZm9ybSwgbm90IG1hdHJpeCkKLS8vCi0vLyBTdGVwcyAyLCAzLCBhbmQgNCBj
YW4gYmUgY29tYmluZWQgaW50byBvbmUgc2luZ2xlIG1hdHJpeCBpZiB3ZSBsaW5lYXJseQotLy8g
Y29uY2F0ZW50ZWQgdGhlIHRocmVlIG1hdHJpY2VzLiBUbyBkbyB0aGlzLCB3ZSB3aWxsIGhhdmUg
dG8gdGFnIHdoaWNoIGNvbnZlcnNpb25zCi0vLyBhcmUgbWF0cml4IGJhc2VkLCBleHBvc2UgdGhl
IG1hdHJpY2VzLCBhZGQgc3VwcG9ydCBmb3IgY29uc3RleHByIGNvbmNhdGVudGluZwotLy8gb2Yg
Q29sb3JNYXRyaXggYW5kIGZpbmQgYSB3YXkgdG8gbWVyZ2UgdGhlIGNvbnZlcnNpb25zLgotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBPdXRwdXQsIHR5cGVuYW1lIElucHV0PiBzdHJ1Y3QgQ29sb3JDb252
ZXJzaW9uIHsKLSAgICBzdGF0aWMgT3V0cHV0IGNvbnZlcnQoY29uc3QgSW5wdXQmIGNvbG9yKQor
Ly8gICAgICAgICAgICAgICAg4pSMIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pS8IOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSQCisvLyAgICAgICAgICAgICAgICAgTWF0cml4IENvbnZlcnNpb25zICAg
IOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUguKUjOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorLy8gICAgICAgICAgICAgICAg4pSCICAgICAgICAg
ICAgICAgICAgICAgIOKUgiBYWVogKEQ1MCkg4pSC4pSC4pSCIFhZWiAoRDY1KSDilIIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSC
CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUlOKUgOKUgOKUgOKU
gOKUgOKWsuKUgOKUgOKUgOKUgOKUgOKUmOKUguKUlOKUgOKUgOKUgOKUgOKUgOKWsuKUgOKUgOKU
gOKUgOKUgOKUmAorLy8gICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIOKUgiAgICAgIOKUgiAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIKKy8vICAgICAgIOKUjOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCAgICAg
IOKUgiAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorLy8g
ICAgICAg4pSCICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg
4pSCICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKU
giAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAg4pSCICAgICAgICAgICAgICAgIOKUggorLy8gICAgICAg4pSCICAgICAgICAgICAg
ICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKU
giAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggorLy8gICAgICAg
4pSCICAgICAgICDilIIgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAg4pSCICAg
ICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAg4pSCICAgICAgICAgICAgICAgIOKUggorLy8gICAgICAg4pSCICAgICAgICAgIFByb1Bob3Rv
UkdC4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSQICAg4pSCICAgU1JHQuKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCBEaXNwbGF5UDPilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJAgQTk4UkdC4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIFJlYzIwMjDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAKKy8v
ICAgICAgIOKUgiAgICAgICAg4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDi
lIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIg
ICDilIIgICDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilJDilIIg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKU
jOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUgiDi
lILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUggorLy8gICAgICAg4pSCICAgICAg
ICAgIOKUguKUgiBMaW5lYXIg4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIgICDilIIgICDi
lILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC4pSCIOKUguKUgiBMaW5lYXIg
4pSCIOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVh
ckV4dGVuZGVkIOKUguKUgiDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC
4pSCCisvLyAgICAgICDilIIgICAgICAgIOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDi
lIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSY4pSCICAg4pSCICAg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUgiDilILilJTi
lIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lJjilIIg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUgiDilIIKKy8vICAgICAgIOKU
giAgICAgICAgIOKUgOKUguKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSA4pSC4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgOKUguKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA4pSC
4pSA4pSC4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIDilILilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgAorLy8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSQICAgIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIgICDilIIg
ICDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilJDilIIg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUgiDilILilIzi
lIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCCisvLyDilIIgICAgTGFiICAgIOKUgiAgICDilILi
lIIgR2FtbWEgIOKUgiDilIIgR2FtbWFFeHRlbmRlZCAg4pSC4pSCICAg4pSCICAg4pSC4pSCIEdh
bW1hICDilIIg4pSCIEdhbW1hRXh0ZW5kZWQgIOKUguKUgiDilILilIIgR2FtbWEgIOKUgiDilIIg
R2FtbWFFeHRlbmRlZCAg4pSC4pSCIOKUguKUgiBHYW1tYSAg4pSCIOKUgiBHYW1tYUV4dGVuZGVk
ICDilILilIIg4pSC4pSCIEdhbW1hICDilIIg4pSCIEdhbW1hRXh0ZW5kZWQgIOKUguKUggorLy8g
4pSU4pSA4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSYICAgIOKUguKUlOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilJjilIIgICDilIIgICDilILilJTilIDilIDilIDilIDilrLilIDilIDi
lIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSY4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSC4pSU4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCCisv
LyAgICAgICDilIIgICAgICAgICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY
ICAg4pSCICAg4pSU4pSA4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJgg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCisvLyAgICAgICDilIIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgIOKUjOKU
gOKUgOKUtOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorLy8gICAgICAg4pSCICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICDilIIgICAgICAgICAgICAg4pSCICAg
ICAgICAgICAgIOKUggorLy8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilILilIzilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSQ4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisvLyDi
lIIgICAgTENIICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSC
4pSCICAgIEhTTCAgICDilIIg4pSCICAgIEhXQiAgICDilILilIJTUkdCPHVpbnQ4X3Q+4pSCCisv
LyDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJjilJTilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJgKKwordGVtcGxhdGU8dHlwZW5hbWUg
T3V0cHV0LCB0eXBlbmFtZSBJbnB1dCwgdHlwZW5hbWU+IHN0cnVjdCBDb2xvckNvbnZlcnNpb24g
eworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgT3V0cHV0IGNvbnZlcnQoY29uc3QgSW5w
dXQmIGNvbG9yKQogICAgIHsKLSAgICAgICAgaWYgY29uc3RleHByIChzdGQ6OmlzX3NhbWVfdjxJ
bnB1dCwgU1JHQkE8dWludDhfdD4+KQorICAgICAgICAvLyAxLiBIYW5kbGUgdGhlIHNwZWNpYWwg
Y2FzZSBTUkdCQTx1aW50OF90PiBmb3IgSW5wdXQgYW5kIE91dHB1dC4KKyAgICAgICAgaWYgY29u
c3RleHByIChzdGQ6OmlzX3NhbWVfdjxJbnB1dCwgU1JHQkE8dWludDhfdD4+IHx8IHN0ZDo6aXNf
c2FtZV92PE91dHB1dCwgU1JHQkE8dWludDhfdD4+KQogICAgICAgICAgICAgcmV0dXJuIGNvbnZl
cnRDb2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci0gICAg
ICAgIGVsc2UgaWYgY29uc3RleHByIChzdGQ6OmlzX3NhbWVfdjxPdXRwdXQsIFNSR0JBPHVpbnQ4
X3Q+PikKLSAgICAgICAgICAgIHJldHVybiBjb252ZXJ0Q29sb3I8U1JHQkE8dWludDhfdD4+KGNv
bnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+KGNvbG9yKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgYXV0byB4eXoxID0gY29udmVydENvbG9yPFhZWkZvcjxJbnB1dD4+KGNvbG9yKTsKLSAg
ICAgICAgICAgIGF1dG8geHl6MiA9IGNvbnZlcnRDb2xvcjxYWVpGb3I8T3V0cHV0Pj4oeHl6MSk7
Ci0gICAgICAgICAgICByZXR1cm4gY29udmVydENvbG9yPE91dHB1dD4oeHl6Mik7CisKKyAgICAg
ICAgLy8gMi4gSGFuZGxlIGFsbCBjb2xvciB0eXBlcyB0aGF0IGFyZSBub3QgSXNSR0JUeXBlPFQ+
IG9yIElzWFlaQTxUPiBmb3IgSW5wdXQgYW5kIE91dHB1dC4gRm9yIGFsbAorICAgICAgICAvLyAg
ICB0aGVzZSBvdGhlciBjb2xvciB0eXBlcywgd2UgY2FuIHVuY29uZHRpb25hbGx5IGNvbnZlcnQg
dGhlbSB0byB0aGVpciAicmVmZXJlbmNlIiBjb2xvciwgYXMKKyAgICAgICAgLy8gICAgZWl0aGVy
IHRoZXkgaGF2ZSBhbHJlYWR5IGJlZW4gaGFuZGxlZCBieSBhIENvbG9yQ29udmVyc2lvbiBzcGVj
aWFsaXphdGlvbiBvciB0aGlzIHdpbGwKKyAgICAgICAgLy8gICAgZ2V0IHVzIGNsb3NlciB0byB0
aGUgZmluYWwgY29udmVyc2lvbi4KKyAgICAgICAgZWxzZSBpZiBjb25zdGV4cHIgKCFJc1JHQlR5
cGU8SW5wdXQ+ICYmICFJc1hZWkE8SW5wdXQ+KQorICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRD
b2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjx0eXBlbmFtZSBJbnB1dDo6UmVmZXJlbmNlPihjb2xv
cikpOworICAgICAgICBlbHNlIGlmIGNvbnN0ZXhwciAoIUlzUkdCVHlwZTxPdXRwdXQ+ICYmICFJ
c1hZWkE8T3V0cHV0PikKKyAgICAgICAgICAgIHJldHVybiBjb252ZXJ0Q29sb3I8T3V0cHV0Pihj
b252ZXJ0Q29sb3I8dHlwZW5hbWUgT3V0cHV0OjpSZWZlcmVuY2U+KGNvbG9yKSk7CisKKyAgICAg
ICAgLy8gMy4gSGFuZGxlIGNvbnZlcnNpb25zIHdpdGhpbiBhIFJHQkZhbWlseSAoZS5nLiBhbGwg
aGF2ZSB0aGUgc2FtZSBkZXNjcmlwdG9yKS4KKyAgICAgICAgZWxzZSBpZiBjb25zdGV4cHIgKElz
U2FtZVJHQlR5cGVGYW1pbHk8T3V0cHV0LCBJbnB1dD4pCisgICAgICAgICAgICByZXR1cm4gaGFu
ZGxlUkdCRmFtaWx5Q29udmVyc2lvbihjb2xvcik7CisKKyAgICAgICAgLy8gNC4gSGFuZGxlIGFu
eSBnYW1tYSBjb252ZXJzaW9ucyBmb3IgdGhlIElucHV0IGFuZCBPdXRwdXQuCisgICAgICAgIGVs
c2UgaWYgY29uc3RleHByIChJc1JHQkdhbW1hRW5jb2RlZFR5cGU8SW5wdXQ+KQorICAgICAgICAg
ICAgcmV0dXJuIGNvbnZlcnRDb2xvcjxPdXRwdXQ+KGNvbnZlcnRDb2xvcjx0eXBlbmFtZSBJbnB1
dDo6TGluZWFyQ291bnRlcnBhcnQ+KGNvbG9yKSk7CisgICAgICAgIGVsc2UgaWYgY29uc3RleHBy
IChJc1JHQkdhbW1hRW5jb2RlZFR5cGU8T3V0cHV0PikKKyAgICAgICAgICAgIHJldHVybiBjb252
ZXJ0Q29sb3I8T3V0cHV0Pihjb252ZXJ0Q29sb3I8dHlwZW5hbWUgT3V0cHV0OjpMaW5lYXJDb3Vu
dGVycGFydD4oY29sb3IpKTsKKworICAgICAgICAvLyA1LiBBdCB0aGlzIHBvaW50LCBJbnB1dCBh
bmQgT3V0cHV0IGFyZSBlYWNoIGVpdGhlciBMaW5lYXItUkdCIHR5cGVzIChvZiBkaWZmZXJlbnQg
ZmFtaWxlcykgb3IgWFlaQQorICAgICAgICAvLyAgICBhbmQgdGhlcmVmb3JlIGFsbCBhZGRpdGlv
bmFsIGNvbnZlcnNpb24gY2FuIGhhcHBlbiB2aWEgbWF0cml4IHRyYW5zZm9ybWF0aW9uLgorICAg
ICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gaGFuZGxlTWF0cml4Q29udmVyc2lvbihjb2xv
cik7CisgICAgfQorCitwcml2YXRlOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4g
c3RhdGljIGlubGluZSBjb25zdGV4cHIgYXV0byB0b0xpbmVhckVuY29kZWQoY29uc3QgQ29sb3JU
eXBlJiBjb2xvcikgLT4gdHlwZW5hbWUgQ29sb3JUeXBlOjpMaW5lYXJDb3VudGVycGFydAorICAg
IHsKKyAgICAgICAgYXV0byBbYzEsIGMyLCBjMywgYWxwaGFdID0gY29sb3I7CisgICAgICAgIHJl
dHVybiB7IENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9MaW5lYXIoYzEpLCBDb2xvclR5
cGU6OlRyYW5zZmVyRnVuY3Rpb246OnRvTGluZWFyKGMyKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1
bmN0aW9uOjp0b0xpbmVhcihjMyksIGFscGhhIH07CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgaW5saW5lIGNvbnN0ZXhwciBhdXRvIHRvR2FtbWFFbmNv
ZGVkKGNvbnN0IENvbG9yVHlwZSYgY29sb3IpIC0+IHR5cGVuYW1lIENvbG9yVHlwZTo6R2FtbWFF
bmNvZGVkQ291bnRlcnBhcnQKKyAgICB7CisgICAgICAgIGF1dG8gW2MxLCBjMiwgYzMsIGFscGhh
XSA9IGNvbG9yOworICAgICAgICByZXR1cm4geyBDb2xvclR5cGU6OlRyYW5zZmVyRnVuY3Rpb246
OnRvR2FtbWFFbmNvZGVkKGMxKSwgQ29sb3JUeXBlOjpUcmFuc2ZlckZ1bmN0aW9uOjp0b0dhbW1h
RW5jb2RlZChjMiksIENvbG9yVHlwZTo6VHJhbnNmZXJGdW5jdGlvbjo6dG9HYW1tYUVuY29kZWQo
YzMpLCBhbHBoYSB9OworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4g
c3RhdGljIGlubGluZSBjb25zdGV4cHIgYXV0byB0b0V4dGVuZGVkKGNvbnN0IENvbG9yVHlwZSYg
Y29sb3IpIC0+IHR5cGVuYW1lIENvbG9yVHlwZTo6RXh0ZW5kZWRDb3VudGVycGFydAorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1ha2VGcm9tQ29tcG9uZW50czx0eXBlbmFtZSBDb2xvclR5cGU6OkV4
dGVuZGVkQ291bnRlcnBhcnQ+KGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSk7CisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBzdGF0aWMgaW5saW5lIGNvbnN0ZXhwciBh
dXRvIHRvQm91bmRlZChjb25zdCBDb2xvclR5cGUmIGNvbG9yKSAtPiB0eXBlbmFtZSBDb2xvclR5
cGU6OkJvdW5kZWRDb3VudGVycGFydAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1ha2VGcm9tQ29t
cG9uZW50c0NsYW1waW5nRXhjZXB0QWxwaGE8dHlwZW5hbWUgQ29sb3JUeXBlOjpCb3VuZGVkQ291
bnRlcnBhcnQ+KGFzQ29sb3JDb21wb25lbnRzKGNvbG9yKSk7CisgICAgfQorCisgICAgc3RhdGlj
IGlubGluZSBjb25zdGV4cHIgT3V0cHV0IGhhbmRsZVJHQkZhbWlseUNvbnZlcnNpb24oY29uc3Qg
SW5wdXQmIGNvbG9yKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChJc1NhbWVSR0JUeXBl
RmFtaWx5PE91dHB1dCwgSW5wdXQ+KTsKKworICAgICAgICAvLyAgUkdCIEZhbWlseeKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAor
ICAgICAgICAvLyAg4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUggorICAgICAgICAv
LyAg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4dGVuZGVkIOKUguKUggorICAgICAgICAv
LyAg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmOKUggorICAgICAgICAvLyAg4pSC4pSM
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkOKUggorICAgICAgICAvLyAg4pSC4pSCIEdhbW1hICDi
lIIg4pSCIEdhbW1hRXh0ZW5kZWQgIOKUguKUggorICAgICAgICAvLyAg4pSC4pSU4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUmOKUggorICAgICAgICAvLyAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSYCisKKyAgICAgICAgLy8gVGhpcyBoYW5kbGVzIGNvbnZlcnNpb25zIGJldHdl
ZW4gYW55IHR3byBvZiB0aGVzZSB3aXRoaW4gdGhlIHNhbWUgZmFtaWx5LCBzbyBTUkdCTGluZWFy
IC0+IFNSR0IsIGJ1dCBub3QKKyAgICAgICAgLy8gU1JHQkxpbmVhciAtPiBBOThSR0IuCisKKyAg
ICAgICAgYXV0byBib3VuZHNDb252ZXJzaW9uID0gW10oYXV0byBjb2xvcikgeworICAgICAgICAg
ICAgaWYgY29uc3RleHByIChJc1JHQkV4dGVuZGVkVHlwZTxPdXRwdXQ+ICYmIElzUkdCQm91bmRl
ZFR5cGU8SW5wdXQ+KQorICAgICAgICAgICAgICAgIHJldHVybiB0b0V4dGVuZGVkKGNvbG9yKTsK
KyAgICAgICAgICAgIGVsc2UgaWYgY29uc3RleHByIChJc1JHQkJvdW5kZWRUeXBlPE91dHB1dD4g
JiYgSXNSR0JFeHRlbmRlZFR5cGU8SW5wdXQ+KQorICAgICAgICAgICAgICAgIHJldHVybiB0b0Jv
dW5kZWQoY29sb3IpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBj
b2xvcjsKKyAgICAgICAgfTsKKworICAgICAgICBhdXRvIGdhbW1hQ29udmVyc2lvbiA9IFtdKGF1
dG8gY29sb3IpIHsKKyAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAoSXNSR0JHYW1tYUVuY29kZWRU
eXBlPE91dHB1dD4gJiYgSXNSR0JMaW5lYXJFbmNvZGVkVHlwZTxJbnB1dD4pCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHRvR2FtbWFFbmNvZGVkKGNvbG9yKTsKKyAgICAgICAgICAgIGVsc2UgaWYg
Y29uc3RleHByIChJc1JHQkxpbmVhckVuY29kZWRUeXBlPE91dHB1dD4gJiYgSXNSR0JHYW1tYUVu
Y29kZWRUeXBlPElucHV0PikKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9MaW5lYXJFbmNvZGVk
KGNvbG9yKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gY29sb3I7
CisgICAgICAgIH07CisKKyAgICAgICAgcmV0dXJuIGJvdW5kc0NvbnZlcnNpb24oZ2FtbWFDb252
ZXJzaW9uKGNvbG9yKSk7CisgICAgfQorCisgICAgc3RhdGljIGlubGluZSBjb25zdGV4cHIgT3V0
cHV0IGhhbmRsZU1hdHJpeENvbnZlcnNpb24oY29uc3QgSW5wdXQmIGNvbG9yKQorICAgIHsKKyAg
ICAgICAgc3RhdGljX2Fzc2VydChJc1JHQkxpbmVhckVuY29kZWRUeXBlPElucHV0PiB8fCBJc1hZ
WkE8SW5wdXQ+KTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChJc1JHQkxpbmVhckVuY29kZWRUeXBl
PE91dHB1dD4gfHwgSXNYWVpBPE91dHB1dD4pOworCisgICAgICAgIC8vICDilIwg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilLwg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilJAKKyAgICAgICAgLy8gICBN
YXRyaXggQ29udmVyc2lvbnMgICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSQ4pSC4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCisgICAgICAgIC8v
ICDilIIgICAgICAgICAgICAgICAgICAgICAg4pSCIFhZWiAoRDUwKSDilILilILilIIgWFlaIChE
NjUpIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICDilIIKKyAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAg4pSU4pSA
4pSA4pSA4pSA4pSA4pay4pSA4pSA4pSA4pSA4pSA4pSY4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pay
4pSA4pSA4pSA4pSA4pSA4pSYCisgICAgICAgIC8vICDilIIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAg4pSCICAgICAg4pSCICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggorICAgICAgICAvLyAgICAg
ICAgICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAg
ICDilIIgICAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAKKyAg
ICAgICAgLy8gIOKUgiAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICDilIIgICAg
ICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICDilIIgICAgICAgICAgICAgICAg4pSCCisgICAgICAgIC8vICAgICAgICAgICAgICAgICAgIOKU
giAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUggorICAgICAgICAvLyAg4pSCICAgICAgICAg
ICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICAgIOKUgiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICAgICAgICDi
lIIKKyAgICAgICAgLy8gICAgUHJvUGhvdG9SR0LilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAgICDilIIgICBTUkdC4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSQIERpc3BsYXlQM+KUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCBBOThSR0LilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAg
UmVjMjAyMOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUgOKUgOKUkAorICAgICAgICAvLyAg4pSCIOKUguKUjOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilJDilIIgICDilIIgICDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDi
lJAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ
4pSCIOKUguKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCDilIzilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJDilIIg4pSC4pSM4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSQIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUgOKUgOKUkOKUgiDilILilIzilIDilIDilIDilIDilIDilIDilIDilIDilJAg4pSM4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQ4pSCIOKUggor
ICAgICAgICAvLyAgICDilILilIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC4pSC
ICAg4pSCICAg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4dGVuZGVkIOKUguKUgiDilILi
lIIgTGluZWFyIOKUgiDilIIgTGluZWFyRXh0ZW5kZWQg4pSC4pSCIOKUguKUgiBMaW5lYXIg4pSC
IOKUgiBMaW5lYXJFeHRlbmRlZCDilILilIIg4pSC4pSCIExpbmVhciDilIIg4pSCIExpbmVhckV4
dGVuZGVkIOKUguKUggorICAgICAgICAvLyAg4pSCIOKUguKUlOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilJjilIIgICDilIIgICDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUguKU
lOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmCDilJTilIDilIDilIDilIDilIDilIDilIDilIDi
lIDilIDilIDilIDilIDilIDilIDilIDilJjilIIg4pSC4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA
4pSA4pSYIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU
gOKUmOKUgiDilILilJTilIDilIDilIDilIDilIDilIDilIDilIDilJgg4pSU4pSA4pSA4pSA4pSA
4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSY4pSCIOKUggorICAgICAgICAv
LyAgIOKUgOKUguKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA
IOKUgCDilIAg4pSA4pSC4pSAIOKUgOKUguKUgCDilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgOKUguKUgOKUguKUgCDilIAg4pSA
IOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSA4pSC4pSA4pSC
4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDi
lIDilILilIDilILilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKUgCDilIAg4pSAIOKU
gCDilIAg4pSAIOKUgOKUguKUgAorCisgICAgICAgIC8vIFRoaXMgaGFuZGxlcyBjb252ZXJzaW9u
cyBiZXR3ZWVuIGxpbmVhciBjb2xvciB0eXBlcyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdXNpbmcg
cHJlLWRlZmluZWQKKyAgICAgICAgLy8gM3gzIG1hdHJpY2VzLgorICAgICAgICAKKyAgICAgICAg
Ly8gRklYTUU6IFByZS1jb21wdXRlICh1c2luZyBjb25zdGV4cHIpIHRoZSBjb25jYXRlbmF0aW9u
IG9mIHRoZSBtYXRyaWNlcyBwcmlvciB0byBhcHBseWluZyB0aGVtCisgICAgICAgIC8vIHRvIHJl
ZHVjZSBudW1iZXIgb2YgbWF0cml4IG11bHRpcGxpY2F0aW9ucyB0byBhIG1pbmltdW0uIFRoaXMg
d2lsbCBsaWtlbHkgZ2l2ZSBzdWJ0bHkgZGlmZmVyZW50CisgICAgICAgIC8vIHJlc3VsdHMgKGR1
ZSB0byBmbG9hdGluZyBwb2ludCBlZmZlY3RzKSBzbyBpZiB0aGlzIG9wdGltaXphdGlvbiBpcyBj
b25zaWRlcmVkIHdlIHNob3VsZCBlbnN1cmUgd2UKKyAgICAgICAgLy8gaGF2ZSBzdWZmaWNpZW50
IHRlc3RpbmcgY292ZXJhZ2UgdG8gbm90aWNlIGFueSBhZHZlcnNlIGVmZmVjdHMuCisKKyAgICAg
ICAgYXV0byBhcHBseU1hdHJpY2VzID0gW10oY29uc3QgSW5wdXQmIGNvbG9yLCBhdXRvLi4uIG1h
dHJpY2VzKSB7CisgICAgICAgICAgICByZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xhbXBpbmdF
eGNlcHRBbHBoYTxPdXRwdXQ+KGFwcGx5TWF0cmljZXNUb0NvbG9yQ29tcG9uZW50cyhhc0NvbG9y
Q29tcG9uZW50cyhjb2xvciksIG1hdHJpY2VzLi4uKSk7CisgICAgICAgIH07CisKKyAgICAgICAg
aWYgY29uc3RleHByIChJbnB1dDo6d2hpdGVQb2ludCA9PSBPdXRwdXQ6OndoaXRlUG9pbnQpIHsK
KyAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAoSXNYWVpBPElucHV0PikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gYXBwbHlNYXRyaWNlcyhjb2xvciwgT3V0cHV0Ojp4eXpUb0xpbmVhcik7CisgICAg
ICAgICAgICBlbHNlIGlmIGNvbnN0ZXhwciAoSXNYWVpBPE91dHB1dD4pCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGFwcGx5TWF0cmljZXMoY29sb3IsIElucHV0OjpsaW5lYXJUb1hZWik7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5TWF0cmljZXMoY29sb3Is
IElucHV0OjpsaW5lYXJUb1hZWiwgT3V0cHV0Ojp4eXpUb0xpbmVhcik7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBpZiBjb25zdGV4cHIgKElzWFlaQTxJbnB1dD4gJiYgSXNYWVpBPE91
dHB1dD4pCisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5TWF0cmljZXMoY29sb3IsIENocm9t
YXRpY0FkYXBhdGlvbjxJbnB1dDo6d2hpdGVQb2ludCwgT3V0cHV0Ojp3aGl0ZVBvaW50Pjo6bWF0
cml4KTsKKyAgICAgICAgICAgIGVsc2UgaWYgY29uc3RleHByIChJc1hZWkE8SW5wdXQ+KQorICAg
ICAgICAgICAgICAgIHJldHVybiBhcHBseU1hdHJpY2VzKGNvbG9yLCBDaHJvbWF0aWNBZGFwYXRp
b248SW5wdXQ6OndoaXRlUG9pbnQsIE91dHB1dDo6d2hpdGVQb2ludD46Om1hdHJpeCwgT3V0cHV0
Ojp4eXpUb0xpbmVhcik7CisgICAgICAgICAgICBlbHNlIGlmIGNvbnN0ZXhwciAoSXNYWVpBPE91
dHB1dD4pCisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5TWF0cmljZXMoY29sb3IsIElucHV0
OjpsaW5lYXJUb1hZWiwgQ2hyb21hdGljQWRhcGF0aW9uPElucHV0Ojp3aGl0ZVBvaW50LCBPdXRw
dXQ6OndoaXRlUG9pbnQ+OjptYXRyaXgpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHJldHVybiBhcHBseU1hdHJpY2VzKGNvbG9yLCBJbnB1dDo6bGluZWFyVG9YWVosIENocm9t
YXRpY0FkYXBhdGlvbjxJbnB1dDo6d2hpdGVQb2ludCwgT3V0cHV0Ojp3aGl0ZVBvaW50Pjo6bWF0
cml4LCBPdXRwdXQ6Onh5elRvTGluZWFyKTsKICAgICAgICAgfQogICAgIH0KIH07CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvck1hdHJpeC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yTWF0cml4LmgJKHJldmlz
aW9uIDI3MjgzNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yTWF0
cml4LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDI3ICszMiw0NiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgQ29sb3JDb21wb25lbnRzOwogCi10ZW1w
bGF0ZTxzaXplX3QgQ29sdW1ucywgc2l6ZV90IFJvd3M+Cit0ZW1wbGF0ZTxzaXplX3QgQ29sdW1u
Q291bnQsIHNpemVfdCBSb3dDb3VudD4KIGNsYXNzIENvbG9yTWF0cml4IHsKIHB1YmxpYzoKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSAuLi5Ucz4KICAgICBleHBsaWNpdCBjb25zdGV4cHIgQ29sb3JN
YXRyaXgoVHMgLi4uaW5wdXQpCiAgICAgICAgIDogbV9tYXRyaXgge3sgaW5wdXQgLi4uIH19CiAg
ICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZi4uLihUcykgPT0gUm93cyAqIENvbHVt
bnMpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZi4uLihUcykgPT0gUm93Q291bnQgKiBD
b2x1bW5Db3VudCk7CiAgICAgfQogCiAgICAgY29uc3RleHByIENvbG9yQ29tcG9uZW50czxmbG9h
dD4gdHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoY29uc3QgQ29sb3JDb21wb25lbnRzPGZsb2F0
PiYpIGNvbnN0OwogCiAgICAgY29uc3RleHByIGZsb2F0IGF0KHNpemVfdCByb3csIHNpemVfdCBj
b2x1bW4pIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV9tYXRyaXhbKHJvdyAqIENvbHVt
bnMpICsgY29sdW1uXTsKKyAgICAgICAgcmV0dXJuIG1fbWF0cml4Wyhyb3cgKiBDb2x1bW5Db3Vu
dCkgKyBjb2x1bW5dOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBzdGQ6OmFycmF5PGZsb2F0LCBS
b3dzICogQ29sdW1ucz4gbV9tYXRyaXg7CisgICAgc3RkOjphcnJheTxmbG9hdCwgUm93Q291bnQg
KiBDb2x1bW5Db3VudD4gbV9tYXRyaXg7CiB9OwogCit0ZW1wbGF0ZTxzaXplX3QgQ29sdW1uQ291
bnQsIHNpemVfdCBSb3dDb3VudD4KK2NvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29s
b3JNYXRyaXg8Q29sdW1uQ291bnQsIFJvd0NvdW50PiYgYSwgY29uc3QgQ29sb3JNYXRyaXg8Q29s
dW1uQ291bnQsIFJvd0NvdW50PiYgYikKK3sKKyAgICBmb3IgKHNpemVfdCByb3cgPSAwOyByb3cg
PCBSb3dDb3VudDsgKytyb3cpIHsKKyAgICAgICAgZm9yIChzaXplX3QgY29sdW1uID0gMDsgY29s
dW1uIDwgQ29sdW1uQ291bnQ7ICsrY29sdW1uKSB7CisgICAgICAgICAgICBpZiAoYS5hdChyb3cs
IGNvbHVtbikgIT0gYi5hdChyb3csIGNvbHVtbikpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit0ZW1wbGF0ZTxz
aXplX3QgQ29sdW1uQ291bnQsIHNpemVfdCBSb3dDb3VudD4KK2NvbnN0ZXhwciBib29sIG9wZXJh
dG9yIT0oY29uc3QgQ29sb3JNYXRyaXg8Q29sdW1uQ291bnQsIFJvd0NvdW50PiYgYSwgY29uc3Qg
Q29sb3JNYXRyaXg8Q29sdW1uQ291bnQsIFJvd0NvdW50PiYgYikKK3sKKyAgICByZXR1cm4gIShh
ID09IGIpOworfQorCisKIC8vIEZJWE1FOiBUaGVzZSBhcmUgb25seSB1c2VkIGluIEZpbHRlck9w
ZXJhdGlvbnMuY3BwLiBDb25zaWRlciBtb3ZpbmcgdGhlbSB0aGVyZS4KIGNvbnN0ZXhwciBDb2xv
ck1hdHJpeDwzLCAzPiBncmF5c2NhbGVDb2xvck1hdHJpeChmbG9hdCBhbW91bnQpCiB7CkBAIC0x
MDAsMjkgKzExOSwzOSBAQCBpbmxpbmUgQ29sb3JNYXRyaXg8MywgMz4gaHVlUm90YXRlQ29sb3JN
CiAgICAgfTsKIH0KIAotdGVtcGxhdGU8c2l6ZV90IENvbHVtbnMsIHNpemVfdCBSb3dzPgotY29u
c3RleHByIENvbG9yQ29tcG9uZW50czxmbG9hdD4gQ29sb3JNYXRyaXg8Q29sdW1ucywgUm93cz46
OnRyYW5zZm9ybWVkQ29sb3JDb21wb25lbnRzKGNvbnN0IENvbG9yQ29tcG9uZW50czxmbG9hdD4m
IGlucHV0VmVjdG9yKSBjb25zdAordGVtcGxhdGU8c2l6ZV90IENvbHVtbkNvdW50LCBzaXplX3Qg
Um93Q291bnQ+Citjb25zdGV4cHIgQ29sb3JDb21wb25lbnRzPGZsb2F0PiBDb2xvck1hdHJpeDxD
b2x1bW5Db3VudCwgUm93Q291bnQ+Ojp0cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhjb25zdCBD
b2xvckNvbXBvbmVudHM8ZmxvYXQ+JiBpbnB1dFZlY3RvcikgY29uc3QKIHsKLSAgICBzdGF0aWNf
YXNzZXJ0KENvbG9yQ29tcG9uZW50czxmbG9hdD46OlNpemUgPj0gUm93cyk7CisgICAgc3RhdGlj
X2Fzc2VydChDb2xvckNvbXBvbmVudHM8ZmxvYXQ+OjpTaXplID49IFJvd0NvdW50KTsKICAgICAK
ICAgICBDb2xvckNvbXBvbmVudHM8ZmxvYXQ+IHJlc3VsdDsKLSAgICBmb3IgKHNpemVfdCByb3cg
PSAwOyByb3cgPCBSb3dzOyArK3JvdykgewotICAgICAgICBpZiBjb25zdGV4cHIgKENvbHVtbnMg
PD0gQ29sb3JDb21wb25lbnRzPGZsb2F0Pjo6U2l6ZSkgewotICAgICAgICAgICAgZm9yIChzaXpl
X3QgY29sdW1uID0gMDsgY29sdW1uIDwgQ29sdW1uczsgKytjb2x1bW4pCisgICAgZm9yIChzaXpl
X3Qgcm93ID0gMDsgcm93IDwgUm93Q291bnQ7ICsrcm93KSB7CisgICAgICAgIGlmIGNvbnN0ZXhw
ciAoQ29sdW1uQ291bnQgPD0gQ29sb3JDb21wb25lbnRzPGZsb2F0Pjo6U2l6ZSkgeworICAgICAg
ICAgICAgZm9yIChzaXplX3QgY29sdW1uID0gMDsgY29sdW1uIDwgQ29sdW1uQ291bnQ7ICsrY29s
dW1uKQogICAgICAgICAgICAgICAgIHJlc3VsdFtyb3ddICs9IGF0KHJvdywgY29sdW1uKSAqIGlu
cHV0VmVjdG9yW2NvbHVtbl07Ci0gICAgICAgIH0gZWxzZSBpZiBjb25zdGV4cHIgKENvbHVtbnMg
PiBDb2xvckNvbXBvbmVudHM8ZmxvYXQ+OjpTaXplKSB7CisgICAgICAgIH0gZWxzZSBpZiBjb25z
dGV4cHIgKENvbHVtbkNvdW50ID4gQ29sb3JDb21wb25lbnRzPGZsb2F0Pjo6U2l6ZSkgewogICAg
ICAgICAgICAgZm9yIChzaXplX3QgY29sdW1uID0gMDsgY29sdW1uIDwgQ29sb3JDb21wb25lbnRz
PGZsb2F0Pjo6U2l6ZTsgKytjb2x1bW4pCiAgICAgICAgICAgICAgICAgcmVzdWx0W3Jvd10gKz0g
YXQocm93LCBjb2x1bW4pICogaW5wdXRWZWN0b3JbY29sdW1uXTsKLSAgICAgICAgICAgIGZvciAo
c2l6ZV90IGFkZGl0aW9uYWxDb2x1bW4gPSBDb2xvckNvbXBvbmVudHM8ZmxvYXQ+OjpTaXplOyBh
ZGRpdGlvbmFsQ29sdW1uIDwgQ29sdW1uczsgKythZGRpdGlvbmFsQ29sdW1uKQorICAgICAgICAg
ICAgZm9yIChzaXplX3QgYWRkaXRpb25hbENvbHVtbiA9IENvbG9yQ29tcG9uZW50czxmbG9hdD46
OlNpemU7IGFkZGl0aW9uYWxDb2x1bW4gPCBDb2x1bW5Db3VudDsgKythZGRpdGlvbmFsQ29sdW1u
KQogICAgICAgICAgICAgICAgIHJlc3VsdFtyb3ddICs9IGF0KHJvdywgYWRkaXRpb25hbENvbHVt
bik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgaWYgY29uc3RleHByIChDb2xvckNvbXBvbmVudHM8
ZmxvYXQ+OjpTaXplID4gUm93cykgewotICAgICAgICBmb3IgKHNpemVfdCBhZGRpdGlvbmFsUm93
ID0gUm93czsgYWRkaXRpb25hbFJvdyA8IENvbG9yQ29tcG9uZW50czxmbG9hdD46OlNpemU7ICsr
YWRkaXRpb25hbFJvdykKKyAgICBpZiBjb25zdGV4cHIgKENvbG9yQ29tcG9uZW50czxmbG9hdD46
OlNpemUgPiBSb3dDb3VudCkgeworICAgICAgICBmb3IgKHNpemVfdCBhZGRpdGlvbmFsUm93ID0g
Um93Q291bnQ7IGFkZGl0aW9uYWxSb3cgPCBDb2xvckNvbXBvbmVudHM8ZmxvYXQ+OjpTaXplOyAr
K2FkZGl0aW9uYWxSb3cpCiAgICAgICAgICAgICByZXN1bHRbYWRkaXRpb25hbFJvd10gPSBpbnB1
dFZlY3RvclthZGRpdGlvbmFsUm93XTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBNPiBpbmxpbmUgY29uc3RleHByIGF1dG8g
YXBwbHlNYXRyaWNlc1RvQ29sb3JDb21wb25lbnRzKGNvbnN0IENvbG9yQ29tcG9uZW50czxUPiYg
Y29tcG9uZW50cywgTSBtYXRyaXgpIC0+IENvbG9yQ29tcG9uZW50czxUPgoreworICAgIHJldHVy
biBtYXRyaXgudHJhbnNmb3JtZWRDb2xvckNvbXBvbmVudHMoY29tcG9uZW50cyk7Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIE0sIHR5cGVuYW1lLi4uIE1hdHJpY2VzPiBpbmxp
bmUgY29uc3RleHByIGF1dG8gYXBwbHlNYXRyaWNlc1RvQ29sb3JDb21wb25lbnRzKGNvbnN0IENv
bG9yQ29tcG9uZW50czxUPiYgY29tcG9uZW50cywgTSBtYXRyaXgsIE1hdHJpY2VzLi4uIG1hdHJp
Y2VzKSAtPiBDb2xvckNvbXBvbmVudHM8VD4KK3sKKyAgICByZXR1cm4gYXBwbHlNYXRyaWNlc1Rv
Q29sb3JDb21wb25lbnRzKG1hdHJpeC50cmFuc2Zvcm1lZENvbG9yQ29tcG9uZW50cyhjb21wb25l
bnRzKSwgbWF0cmljZXMuLi4pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JUeXBlcy5oCShyZXZpc2lv
biAyNzI4MzYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OSw2ICsxODksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBELCB0eXBlbmFtCiAgICAgdXNpbmcgQ29tcG9uZW50VHlwZSA9IFQ7CiAgICAg
dXNpbmcgTW9kZWwgPSBNOwogICAgIHVzaW5nIFRyYW5zZmVyRnVuY3Rpb24gPSBURjsKKyAgICB1
c2luZyBEZXNjcmlwdG9yID0gRDsKICAgICBzdGF0aWMgY29uc3RleHByIFdoaXRlUG9pbnQgd2hp
dGVQb2ludCA9IEQ6OndoaXRlUG9pbnQ7CiAKICAgICBjb25zdGV4cHIgUkdCQVR5cGUoVCByZWQs
IFQgZ3JlZW4sIFQgYmx1ZSwgVCBhbHBoYSA9IEFscGhhVHJhaXRzPFQ+OjpvcGFxdWUpCkBAIC0y
NTcsNiArMjU4LDMxIEBAIHN0cnVjdCBFeHRlbmRlZExpbmVhckVuY29kZWQgOiBSR0JBVHlwZTwK
ICAgICB1c2luZyBSZWZlcmVuY2UgPSBYWVpBPFQsIEQ6OndoaXRlUG9pbnQ+OwogfTsKIAordGVt
cGxhdGU8dHlwZW5hbWUsIHR5cGVuYW1lID0gdm9pZD4gaW5saW5lIGNvbnN0ZXhwciBib29sIEhh
c0Rlc2NyaXB0b3JNZW1iZXIgPSBmYWxzZTsKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4g
aW5saW5lIGNvbnN0ZXhwciBib29sIEhhc0Rlc2NyaXB0b3JNZW1iZXI8Q29sb3JUeXBlLCBzdGQ6
OnZvaWRfdDx0eXBlbmFtZSBDb2xvclR5cGU6OkRlc2NyaXB0b3I+PiA9IHRydWU7CisKK3RlbXBs
YXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IHZvaWQ+IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNF
eHRlbmRlZENvdW50ZXJwYXJ0TWVtYmVyID0gZmFsc2U7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xv
clR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNFeHRlbmRlZENvdW50ZXJwYXJ0TWVtYmVy
PENvbG9yVHlwZSwgc3RkOjp2b2lkX3Q8dHlwZW5hbWUgQ29sb3JUeXBlOjpFeHRlbmRlZENvdW50
ZXJwYXJ0Pj4gPSB0cnVlOworCit0ZW1wbGF0ZTx0eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBp
bmxpbmUgY29uc3RleHByIGJvb2wgSGFzQm91bmRlZENvdW50ZXJwYXJ0TWVtYmVyID0gZmFsc2U7
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNC
b3VuZGVkQ291bnRlcnBhcnRNZW1iZXI8Q29sb3JUeXBlLCBzdGQ6OnZvaWRfdDx0eXBlbmFtZSBD
b2xvclR5cGU6OkJvdW5kZWRDb3VudGVycGFydD4+ID0gdHJ1ZTsKKwordGVtcGxhdGU8dHlwZW5h
bWUsIHR5cGVuYW1lID0gdm9pZD4gaW5saW5lIGNvbnN0ZXhwciBib29sIEhhc0dhbW1hRW5jb2Rl
ZENvdW50ZXJwYXJ0TWVtYmVyID0gZmFsc2U7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+
IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNHYW1tYUVuY29kZWRDb3VudGVycGFydE1lbWJlcjxD
b2xvclR5cGUsIHN0ZDo6dm9pZF90PHR5cGVuYW1lIENvbG9yVHlwZTo6R2FtbWFFbmNvZGVkQ291
bnRlcnBhcnQ+PiA9IHRydWU7CisKK3RlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IHZvaWQ+
IGlubGluZSBjb25zdGV4cHIgYm9vbCBIYXNMaW5lYXJDb3VudGVycGFydE1lbWJlciA9IGZhbHNl
OwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSGFz
TGluZWFyQ291bnRlcnBhcnRNZW1iZXI8Q29sb3JUeXBlLCBzdGQ6OnZvaWRfdDx0eXBlbmFtZSBD
b2xvclR5cGU6OkxpbmVhckNvdW50ZXJwYXJ0Pj4gPSB0cnVlOworCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBDb2xvclR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBJc1JHQlR5cGUgPSBIYXNEZXNjcmlw
dG9yTWVtYmVyPENvbG9yVHlwZT47Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGlubGlu
ZSBjb25zdGV4cHIgYm9vbCBJc1JHQkV4dGVuZGVkVHlwZSA9IElzUkdCVHlwZTxDb2xvclR5cGU+
ICYmIEhhc0JvdW5kZWRDb3VudGVycGFydE1lbWJlcjxDb2xvclR5cGU+OwordGVtcGxhdGU8dHlw
ZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNSR0JCb3VuZGVkVHlwZSA9
IElzUkdCVHlwZTxDb2xvclR5cGU+ICYmIEhhc0V4dGVuZGVkQ291bnRlcnBhcnRNZW1iZXI8Q29s
b3JUeXBlPjsKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGNvbnN0ZXhwciBi
b29sIElzUkdCR2FtbWFFbmNvZGVkVHlwZSA9IElzUkdCVHlwZTxDb2xvclR5cGU+ICYmIEhhc0xp
bmVhckNvdW50ZXJwYXJ0TWVtYmVyPENvbG9yVHlwZT47Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xv
clR5cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBJc1JHQkxpbmVhckVuY29kZWRUeXBlID0gSXNS
R0JUeXBlPENvbG9yVHlwZT4gJiYgSGFzR2FtbWFFbmNvZGVkQ291bnRlcnBhcnRNZW1iZXI8Q29s
b3JUeXBlPjsKKwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlMSwgdHlwZW5hbWUgQ29sb3JU
eXBlMiwgYm9vbCBlbmFibGVkPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNTYW1lUkdCVHlwZUZh
bWlseVZhbHVlID0gZmFsc2U7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGUxLCB0eXBlbmFt
ZSBDb2xvclR5cGUyPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNTYW1lUkdCVHlwZUZhbWlseVZh
bHVlPENvbG9yVHlwZTEsIENvbG9yVHlwZTIsIHRydWU+ID0gc3RkOjppc19zYW1lX3Y8dHlwZW5h
bWUgQ29sb3JUeXBlMTo6RGVzY3JpcHRvciwgdHlwZW5hbWUgQ29sb3JUeXBlMjo6RGVzY3JpcHRv
cj47Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGUxLCB0eXBlbmFtZSBDb2xvclR5cGUyPiBp
bmxpbmUgY29uc3RleHByIGJvb2wgSXNTYW1lUkdCVHlwZUZhbWlseSA9IElzU2FtZVJHQlR5cGVG
YW1pbHlWYWx1ZTxDb2xvclR5cGUxLCBDb2xvclR5cGUyLCBJc1JHQlR5cGU8Q29sb3JUeXBlMT4g
JiYgSXNSR0JUeXBlPENvbG9yVHlwZTI+PjsKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IFNSR0JBRGVzY3JpcHRvciB7CiAgICAgdGVtcGxhdGU8VHJhbnNmZXJGdW5jdGlvbk1vZGUgTW9k
ZT4gdXNpbmcgVHJhbnNmZXJGdW5jdGlvbiA9IFNSR0JUcmFuc2ZlckZ1bmN0aW9uPFQsIE1vZGU+
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgV2hpdGVQb2ludCB3aGl0ZVBvaW50ID0gV2hpdGVQb2lu
dDo6RDY1OwpAQCAtMzk3LDYgKzQyMyw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhw
ciBDb2xvckNvbXAKICAgICByZXR1cm4geyBjLmxpZ2h0bmVzcywgYy5hLCBjLmIsIGMuYWxwaGEg
fTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJv
b2wgSXNMYWIgPSBzdGQ6OmlzX3NhbWVfdjxMYWI8dHlwZW5hbWUgQ29sb3JUeXBlOjpDb21wb25l
bnRUeXBlPiwgQ29sb3JUeXBlPjsKKwogLy8gTUFSSzogLSBMQ0hBIENvbG9yIFR5cGUuCiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBMQ0hBIDogQ29sb3JXaXRoQWxwaGFIZWxwZXI8TENI
QTxUPj4gewpAQCAtNDMwLDYgKzQ1OCw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhw
ciBDb2xvckNvbXAKICAgICByZXR1cm4geyBjLmxpZ2h0bmVzcywgYy5jaHJvbWEsIGMuaHVlLCBj
LmFscGhhIH07CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZT4gaW5saW5lIGNvbnN0
ZXhwciBib29sIElzTENIQSA9IHN0ZDo6aXNfc2FtZV92PExDSEE8dHlwZW5hbWUgQ29sb3JUeXBl
OjpDb21wb25lbnRUeXBlPiwgQ29sb3JUeXBlPjsKKwogCiAvLyBNQVJLOiAtIEhTTEEgQ29sb3Ig
VHlwZS4KIApAQCAtNDY0LDYgKzQ5NCw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0ZXhw
ciBDb2xvckNvbXAKICAgICByZXR1cm4geyBjLmh1ZSwgYy5zYXR1cmF0aW9uLCBjLmxpZ2h0bmVz
cywgYy5hbHBoYSB9OwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGU+IGlubGluZSBj
b25zdGV4cHIgYm9vbCBJc0hTTEEgPSBzdGQ6OmlzX3NhbWVfdjxIU0xBPHR5cGVuYW1lIENvbG9y
VHlwZTo6Q29tcG9uZW50VHlwZT4sIENvbG9yVHlwZT47CisKIC8vIE1BUks6IC0gSFdCQSBDb2xv
ciBUeXBlLgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSFdCQSA6IENvbG9yV2l0aEFs
cGhhSGVscGVyPEhXQkE8VD4+IHsKQEAgLTQ5Nyw2ICs1MjksOCBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBjb25zdGV4cHIgQ29sb3JDb21wCiAgICAgcmV0dXJuIHsgYy5odWUsIGMud2hpdGVuZXNz
LCBjLmJsYWNrbmVzcywgYy5hbHBoYSB9OwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5
cGU+IGlubGluZSBjb25zdGV4cHIgYm9vbCBJc0hXQkEgPSBzdGQ6OmlzX3NhbWVfdjxIV0JBPHR5
cGVuYW1lIENvbG9yVHlwZTo6Q29tcG9uZW50VHlwZT4sIENvbG9yVHlwZT47CisKIC8vIE1BUks6
IC0gWFlaIENvbG9yIFR5cGUuCiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIFdoaXRlUG9pbnQgVz4g
c3RydWN0IFhZWkEgOiBDb2xvcldpdGhBbHBoYUhlbHBlcjxYWVpBPFQsIFc+PiB7CkBAIC01MzAs
NiArNTY0LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgV2hpdGVQb2ludCBXPiBjb25zdAogICAg
IHJldHVybiB7IGMueCwgYy55LCBjLnosIGMuYWxwaGEgfTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgQ29sb3JUeXBlPiBpbmxpbmUgY29uc3RleHByIGJvb2wgSXNYWVpBID0gc3RkOjppc19zYW1l
X3Y8WFlaQTx0eXBlbmFtZSBDb2xvclR5cGU6OkNvbXBvbmVudFR5cGUsIENvbG9yVHlwZTo6d2hp
dGVQb2ludD4sIENvbG9yVHlwZT47CiAKIC8vIFBhY2tlZCBDb2xvciBGb3JtYXRzCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>