<?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>162544</bug_id>
          
          <creation_ts>2016-09-26 00:10:29 -0700</creation_ts>
          <short_desc>[DOMJIT] Introducing DOM binding JIT</short_desc>
          <delta_ts>2016-11-10 20:18:21 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>163226</dependson>
    
    <dependson>163315</dependson>
    
    <dependson>163458</dependson>
    
    <dependson>163841</dependson>
    
    <dependson>164074</dependson>
    
    <dependson>164115</dependson>
    
    <dependson>164362</dependson>
    
    <dependson>164408</dependson>
    
    <dependson>162916</dependson>
    
    <dependson>162941</dependson>
    
    <dependson>162978</dependson>
    
    <dependson>162980</dependson>
    
    <dependson>163005</dependson>
    
    <dependson>163223</dependson>
    
    <dependson>163224</dependson>
    
    <dependson>163245</dependson>
    
    <dependson>163457</dependson>
    
    <dependson>163657</dependson>
    
    <dependson>163864</dependson>
    
    <dependson>163900</dependson>
    
    <dependson>164004</dependson>
    
    <dependson>164113</dependson>
    
    <dependson>164356</dependson>
    
    <dependson>164627</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>cdumez</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1233320</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-26 00:10:29 -0700</bug_when>
    <thetext>Some DOM operations are very tiny operation. For example, firstChild just looks up the stored member from Node*.
In these cases, DOM binding code itself occupies large part of execution time.

We would like to optimize DOM binding further by implementing DOM binding code in special IR.
And this IR will be handled in JSC DFG, and they should be correctly inlined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233321</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-26 00:18:59 -0700</bug_when>
    <thetext>Currently I&apos;m planning to introduce binding JIT for DOM accessors first.
In particular, first, I&apos;m planning to implement firstChild etc. (DOM traversal) operations by hand. And later, generalizing them and producing framework to handle DOM accessors.

Why I would like to focus on DOM accessors first is,

1. DOM accessors are typically tiny.

Some DOM accessors are very tiny operations. For example, firstChild just looks up the member field of Node* (Of course, it also has type checking of `this`).
As a result, large part of operation is occupied by DOM binding code.
If DOM operation itself is heavy, DOM binding does not occupy large part of it, and benefit of DOM binding JIT becomes small.

2. We can implement whole the DOM binding logic in JIT

If a DOM operation is complex, while we can implement DOM binding code in JIT, in the middle of JIT code, we still need to call C runtime function to invoke an actual operation. This limits the benefit of DOM binding JIT.

If we can implement whole the logic in JIT code, we can inline DOM operations. And DOM accessors are good example we can easily implement it in JIT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233326</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-26 00:52:12 -0700</bug_when>
    <thetext>To check the benefit, I&apos;ll prototype firstChild in DFG intrinsic first.
And after checking performance benefit, I&apos;ll consider the way to generalize it.
The target benchmark is Dromaeo dom-traversal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234015</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-27 12:21:25 -0700</bug_when>
    <thetext>OK, initial plan is,

1. Introducing some intrinsic system for CustomAccessorGetter
2. Introduce some DFG node, like, DOMAttributeGet
3. Inline DOM getter into several DFG nodes. If OSRExit occurs, we just fall back to a simple custom getter function call (First, we target such a getter, no side effect).

In (3) case, maybe, we will emit nodes for firstChild such as,

1: node
2: Check(node@1, JSElementType)
3: DOMNodeFlagCheck(node@1, ContainerNode) (Or, we can introduce SpecContainerNode)
4: DOMAttributeGet(node@1, offset to firstChild) (Here, we would like to use heap prediction)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234077</commentid>
    <comment_count>4</comment_count>
      <attachid>290008</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-27 14:29:07 -0700</bug_when>
    <thetext>Created attachment 290008
Prototype

WIP: Moving WebCore DOM types into JSC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234257</commentid>
    <comment_count>5</comment_count>
      <attachid>290058</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-27 22:48:04 -0700</bug_when>
    <thetext>Created attachment 290058
Prototype rev2

WIP: Introduce naive DOMJIT generation. Not using it actually yet. Not considering about layering violation since this is a prototype.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234270</commentid>
    <comment_count>6</comment_count>
      <attachid>290063</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-27 23:51:15 -0700</bug_when>
    <thetext>Created attachment 290063
Prototype rev3

WIP: Adding DFG path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234271</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-27 23:56:07 -0700</bug_when>
    <thetext>Figure out the necessary operation in firstChild.

1: node
2: Check DOMNodeUse, @1
3: GetDOMWrapped @1 =&gt; OpaquePointer (We should support such a type in DFG / FTL)
4: CheckDOMNodeFlags @3, IsContainerFlag
5: GetDOMAttributeValue @3, offset, sizeof(Node*) =&gt; OpaquePointer
6: GetGlobalObject @1
7: ToDOMWrapper @6, @5, Node =&gt; JSNode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234272</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-28 00:01:30 -0700</bug_when>
    <thetext>Currently, we take super naive approach since it is a prototype. We directly use DFG::SpeculativeJIT from WebCore (That&apos;s bad).
After measuring the performance, we will introduce DOMJIT IR, like the following.

1: node
2: Check DOMNodeUse, @1
3: GetDOMWrapped @1 =&gt; OpaquePointer (We should support such a type in DFG / FTL)
4: CheckDOMNodeFlags @3, IsContainerFlag
5: GetDOMAttributeValue @3, offset, sizeof(Node*) =&gt; OpaquePointer
6: GetGlobalObject @1
7: ToDOMWrapper @6, @5, Node =&gt; JSNode

And pass the data to DFG. And DFG converts this IR to DFG Nodes.

In our first implementation, we leave C++ binding code for LLInt and Baseline. Along with it, DOMJIT attributes has the above IR data.
And when handling these attributes accesses in DFG, we will use the IR to inline it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234725</commentid>
    <comment_count>9</comment_count>
      <attachid>290181</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-28 23:26:33 -0700</bug_when>
    <thetext>Created attachment 290181
Prototype rev4

WIP: Add DOMJIT IR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234731</commentid>
    <comment_count>10</comment_count>
      <attachid>290184</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-28 23:42:24 -0700</bug_when>
    <thetext>Created attachment 290184
Prototype rev5

WIP: Fix more things</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234847</commentid>
    <comment_count>11</comment_count>
      <attachid>290215</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-29 10:31:08 -0700</bug_when>
    <thetext>Created attachment 290215
Prototype rev6

WIP: Fix more things</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234984</commentid>
    <comment_count>12</comment_count>
      <attachid>290245</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-29 14:40:15 -0700</bug_when>
    <thetext>Created attachment 290245
Prototype rev7

WIP: Fix more things</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235310</commentid>
    <comment_count>13</comment_count>
      <attachid>290357</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-30 11:37:21 -0700</bug_when>
    <thetext>Created attachment 290357
Prototype rev8

WIP: Fix more things!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235365</commentid>
    <comment_count>14</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-30 13:01:07 -0700</bug_when>
    <thetext>Anyway, moving JSElementTypes into JSC would us to use these edge filters easily.
It should help if we would like to recognize type signatures in DFG and inline type checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235766</commentid>
    <comment_count>15</comment_count>
      <attachid>290482</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-03 02:41:58 -0700</bug_when>
    <thetext>Created attachment 290482
Patch

WIP: Updating</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235767</commentid>
    <comment_count>16</comment_count>
      <attachid>290483</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-03 02:53:45 -0700</bug_when>
    <thetext>Created attachment 290483
Patch

WIP: Updating</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235827</commentid>
    <comment_count>17</comment_count>
      <attachid>290496</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-03 11:22:13 -0700</bug_when>
    <thetext>Created attachment 290496
Prototype rev9

WIP: Introduce DOMJIT::Patchpoint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236067</commentid>
    <comment_count>18</comment_count>
      <attachid>290567</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-03 22:17:21 -0700</bug_when>
    <thetext>Created attachment 290567
Prototype rev10, CheckDOM becomes very effective

WIP: Introduce DOMJIT::Patchpoint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236081</commentid>
    <comment_count>19</comment_count>
      <attachid>290571</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-03 23:32:28 -0700</bug_when>
    <thetext>Created attachment 290571
Prototype rev11, more clean up

WIP: Introduce DOMJIT::Patchpoint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237516</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-10-07 00:23:48 -0700</bug_when>
    <thetext>We will offer 2 types of DOMJIT

1. Hand written DOM inlining.

We inject DOMJIT::Patchpoint compiler into JSC. And JSC uses this to inline DOM operation, and drop type checks.
Since the operation is fully inlined, potentially it has large performance boost.
Some super stupid tiny micro benchmark (that repeatedly accesses document.body.firstChild) shows 40% improvement.
On the other hand, since we wrote it by hand, this way does not scale well.
We will apply this method to only super hot accessors like parentNode etc.

Note that CSS Selector JIT compiler already does the similar things: accessing parentNode etc. directly by using offsets.

2. Exposing signature information.

We will offer function type signature by some representation and pass it to JSC.
JSC will use to drop type checks. Since IDL code generator already knows this,
we can automatically generate such a information. Since we don&apos;t perform any inlining,
the performance boost may be limited. But it&apos;s worth doing.
For example, if you write like,

document.getElementById(&quot;...&quot;);

DFG knows,

1. argument count is 1
2. argument is definitely String
3. |this| is document object. We already emit CheckStructure when performing `document.getElementById` GetById ops!

Above 3 things effectively drop many checks of binding code.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290008</attachid>
            <date>2016-09-27 14:29:07 -0700</date>
            <delta_ts>2016-09-27 22:48:00 -0700</delta_ts>
            <desc>Prototype</desc>
            <filename>bug-162544-20160927142608.patch</filename>
            <type>text/plain</type>
            <size>33003</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NjIxZDM4MjdkNjJiN2JmNDkxMDM3NjFjNzFmOWQ4NjMyNDAyNGY5Li42Mjc2ZDM0NDUyMDUxYjdm
MWRiOTJmYmU0YmE3YWNhYzQ3ZjgzMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAxNi0wOS0yNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbQmluZGluZ10gSW50cm9kdWNpbmcgRE9NIGJpbmRpbmcgSklUCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1NDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJ5dGVjb2Rl
L1NwZWN1bGF0ZWRUeXBlLmNwcDoKKyAgICAgICAgKEpTQzo6ZHVtcFNwZWN1bGF0aW9uKToKKyAg
ICAgICAgKEpTQzo6c3BlY3VsYXRpb25Gcm9tU3RydWN0dXJlKToKKyAgICAgICAgKiBieXRlY29k
ZS9TcGVjdWxhdGVkVHlwZS5oOgorICAgICAgICAoSlNDOjppc0RPTU5vZGVTcGVjdWxhdGlvbik6
CisgICAgICAgIChKU0M6OmlzRE9NRWxlbWVudFNwZWN1bGF0aW9uKToKKyAgICAgICAgKEpTQzo6
aXNET01Eb2N1bWVudFdyYXBwZXJTcGVjdWxhdGlvbik6CisgICAgICAgICogZGZnL0RGR05vZGUu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpzaG91bGRTcGVjdWxhdGVET01Ob2RlKToKKyAg
ICAgICAgKEpTQzo6REZHOjpOb2RlOjpzaG91bGRTcGVjdWxhdGVET01FbGVtZW50KToKKyAgICAg
ICAgKEpTQzo6REZHOjpOb2RlOjpzaG91bGRTcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIpOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZUFycmF5KTogRGVsZXRlZC4K
KyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhl
Y3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OlNhZmVUb0V4ZWN1dGVFZGdlOjpvcGVyYXRvcigp
KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Ob2RlKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRWxlbWVudCk6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcik6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZSk6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAg
ICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAg
ICAgICAoSlNDOjpERkc6OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2Vs
bCk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZSk6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90RE9NTm9kZSk6CisgICAgICAgIChKU0M6
OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmlzTm90RE9NRWxlbWVudCk6CisgICAgICAgIChKU0M6
OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZURPTU5vZGUpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVET01FbGVtZW50KToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVy
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlU2V0T2Jq
ZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAg
IChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZET01Ob2RlKToKKyAgICAgICAgKEpTQzo6
QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdERPTU5vZGUpOgorICAgICAgICAoSlNDOjpBc3Nl
bWJseUhlbHBlcnM6OmJyYW5jaElmRE9NRWxlbWVudCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5
SGVscGVyczo6YnJhbmNoSWZOb3RET01FbGVtZW50KToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlI
ZWxwZXJzOjpicmFuY2hJZk5vdE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9K
U1R5cGUuaDoKKwogMjAxNi0wOS0yNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgZGVwcmVjYXRlZCBFTkNSWVBURURfTUVESUEgaW1wbGVtZW50YXRp
b24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNjA4MzU2Mzk2ZjA1MjBhM2ZkODYzODQ2ZGFiOGQ5YjViZDE1NDQ5
Zi4uMDgxMmM0OTA3NTMwYmU4NWExODEzNGFjNTAxNzcwNmQwMjA1NjA4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIzIEBACisyMDE2LTA5LTI3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFtCaW5kaW5nXSBJbnRyb2R1Y2luZyBET00gYmluZGluZyBK
SVQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmg6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oOgorICAgICAgICAoV2Vi
Q29yZTo6anNEb2N1bWVudENhc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRWxlbWVudEN1
c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6anNFbGVtZW50Q2FzdCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpqc05vZGVDYXN0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAg
KEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Tm9kZS5oOgorCiAyMDE2LTA5LTI3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZv
Lm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFtHVEtdIEhhbmRsZSBXYXlsYW5k
ICYgWDExIGNvcnJlY3RseSBmb3IgR1NUX0dMCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAppbmRleCA3MTlkOGYyNzI4M2Y1ZDEyM2NlNTc3
MTU0NWU0NjliZjgxYWZmMjI3Li4xZmQwNGI1NTc0YmZlMDcwMjA1ZmUyYmEzMzBiZTJjNWU0MDlh
ZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRl
ZFR5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVk
VHlwZS5jcHAKQEAgLTE3MCw2ICsxNzAsMjEgQEAgdm9pZCBkdW1wU3BlY3VsYXRpb24oUHJpbnRT
dHJlYW0mIG91dCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAgICAgICAgICAgICAgbXlPdXQu
cHJpbnQoIkRlcml2ZWRhcnJheSIpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IGlzVG9wID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNET01Eb2N1bWVu
dFdyYXBwZXIpCisgICAgICAgICAgICAgICAgbXlPdXQucHJpbnQoIkRvbWRvY3VtZW50d3JhcHBl
ciIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CisK
KyAgICAgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNET01FbGVtZW50KQorICAgICAgICAgICAgICAg
IG15T3V0LnByaW50KCJEb21lbGVtZW50Iik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgaXNUb3AgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHZhbHVlICYgU3BlY0RPTU90
aGVyTm9kZSkKKyAgICAgICAgICAgICAgICBteU91dC5wcmludCgiRG9tb3RoZXJub2RlIik7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaXNUb3AgPSBmYWxzZTsKICAgICAgICAg
fQogCiAgICAgICAgIGlmICgodmFsdWUgJiBTcGVjU3RyaW5nKSA9PSBTcGVjU3RyaW5nKQpAQCAt
Mzk0LDEyICs0MDksMjUgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZv
KGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogCiBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlv
bkZyb21TdHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7Ci0gICAgaWYgKHN0cnVjdHVy
ZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gU3RyaW5nVHlwZSkKKyAgICBKU1R5cGUgdHlwZSA9IHN0
cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCk7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2Fz
ZSBTdHJpbmdUeXBlOgogICAgICAgICByZXR1cm4gU3BlY1N0cmluZzsKLSAgICBpZiAoc3RydWN0
dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBTeW1ib2xUeXBlKQorICAgIGNhc2UgU3ltYm9sVHlw
ZToKICAgICAgICAgcmV0dXJuIFNwZWNTeW1ib2w7Ci0gICAgaWYgKHN0cnVjdHVyZS0+dHlwZUlu
Zm8oKS50eXBlKCkgPT0gRGVyaXZlZEFycmF5VHlwZSkKKyAgICBjYXNlIERlcml2ZWRBcnJheVR5
cGU6CiAgICAgICAgIHJldHVybiBTcGVjRGVyaXZlZEFycmF5OworICAgIGNhc2UgRE9NRG9jdW1l
bnRXcmFwcGVyVHlwZToKKyAgICAgICAgcmV0dXJuIFNwZWNET01Eb2N1bWVudFdyYXBwZXI7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKHR5cGUgPj0gRE9N
RWxlbWVudFR5cGUpCisgICAgICAgIHJldHVybiBTcGVjRE9NRWxlbWVudDsKKyAgICBpZiAodHlw
ZSA+PSBET01Ob2RlVHlwZSkKKyAgICAgICAgcmV0dXJuIFNwZWNET01PdGhlck5vZGU7CisKICAg
ICByZXR1cm4gc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3Vs
YXRlZFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlw
ZS5oCmluZGV4IDJiMjIxOGE2N2M3YjQ5OWM4NTQ5OWEyZjczMzI1NGYzNzkwODBlZTYuLmIzOWFj
NzE4ODM4MWVjYjhiZTBhMjM2ZThlNDY0ZjFlMzJhNDY3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCkBAIC02MCwyNCArNjAsMjggQEAg
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgPSAxdWxs
IDw8IDE2OyAvLyBJdCdzIGRlZmluaXQKIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
U2V0T2JqZWN0ICAgICAgICAgID0gMXVsbCA8PCAxNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2V0
IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY1Byb3h5T2JqZWN0ICAgICAgICA9IDF1bGwgPDwgMTg7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIFByb3h5IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCiBzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAgICA9IDF1bGwgPDwgMTk7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3QuCi1zdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY09iamVjdE90aGVyICAgICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhbiBvYmplY3QgYnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBK
U0Z1bmN0aW9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3QgICAgICAg
ICAgICAgPSBTcGVjRmluYWxPYmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVj
VHlwZWRBcnJheVZpZXcgfCBTcGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50
cyB8IFNwZWNTdHJpbmdPYmplY3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8
IFNwZWNTZXRPYmplY3QgfCBTcGVjUHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3Bl
Y09iamVjdE90aGVyOyAvLyBCaXRtYXNrIHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9m
IG9iamVjdCBwcmVkaWN0aW9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJp
bmdJZGVudCAgICAgICAgPSAxdWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmlu
ZywgYW5kIGl0J3MgYW4gaWRlbnRpZmllci4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjU3RyaW5nVmFyICAgICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
SlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNET01Eb2N1bWVudFdyYXBwZXIgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBET00gZG9jdW1lbnQgd3JhcHBlciBvYmplY3QuCitzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0RPTUVsZW1lbnQgICAgICAgICA9IDF1bGwgPDwgMjE7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIERPTSBlbGVtZW50IG9iamVjdC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjRE9NT3RoZXJOb2RlICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgRE9NIE5vZGUgb2JqZWN0IGJ1dCBub3QgRG9jdW1lbnRXcmFwcGVyIGFuZCBFbGVtZW50
Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNET01Ob2RlICAgICAgICAgICAgPSBT
cGVjRE9NRG9jdW1lbnRXcmFwcGVyIHwgU3BlY0RPTUVsZW1lbnQgfCBTcGVjRE9NT3RoZXJOb2Rl
Oworc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgPSAx
dWxsIDw8IDIzOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9i
amVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjT2JqZWN0ICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5IHwg
U3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8
IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVj
dCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3Bl
Y0Rlcml2ZWRBcnJheSB8IFNwZWNET01Ob2RlIHwgU3BlY09iamVjdE90aGVyOyAvLyBCaXRtYXNr
IHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9mIG9iamVjdCBwcmVkaWN0aW9uLgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdJZGVudCAgICAgICAgPSAxdWxsIDw8
IDI0OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3MgYW4gaWRlbnRpZmll
ci4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAgID0g
MXVsbCA8PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBh
biBpZGVudGlmaWVyLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmcgICAg
ICAgICAgICAgPSBTcGVjU3RyaW5nSWRlbnQgfCBTcGVjU3RyaW5nVmFyOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBKU1N0cmluZy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3ltYm9s
ICAgICAgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3ltYm9sLgot
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIgICAgICAgICAgPSAxdWxs
IDw8IDI0OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9m
IEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3RyaW5nIG9yIGEgU3ltYm9sLiBGSVhN
RTogVGhpcyBzaG91bGRuJ3QgYmUgcGFydCBvZiBoZWFwLXRvcCBvciBieXRlY29kZS10b3AuIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwNzgKK3N0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgID0gMXVsbCA8PCAyNjsgLy8g
SXQncyBkZWZpbml0ZWx5IGEgU3ltYm9sLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNDZWxsT3RoZXIgICAgICAgICAgPSAxdWxsIDw8IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBK
U0NlbGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBh
IEpTU3RyaW5nIG9yIGEgU3ltYm9sLiBGSVhNRTogVGhpcyBzaG91bGRuJ3QgYmUgcGFydCBvZiBo
ZWFwLXRvcCBvciBieXRlY29kZS10b3AuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzMwNzgKIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbCAgICAg
ICAgICAgICAgID0gU3BlY09iamVjdCB8IFNwZWNTdHJpbmcgfCBTcGVjU3ltYm9sIHwgU3BlY0Nl
bGxPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJdCdzIGRl
ZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICA9IDF1bGwgPDwgMjY7IC8vIEl0J3MgZGVm
aW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgPSAxdWxsIDw8IDI4OyAv
LyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCitzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICA9IDF1bGwgPDwgMjk7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgog
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMk9ubHkgICAgICAgICAgPSBTcGVj
Qm9vbEludDMyIHwgU3BlY05vbkJvb2xJbnQzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMy
Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ1Mk9ubHkgICAgICAgICAgPSAx
dWxsIDw8IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIHdlIGludGVuZCBpdCB0
byB1bmJveCBpdC4gSXQncyBhbHNvIGRlZmluaXRlbHkgbm90IGFuIEludDMyLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ1Mk9ubHkgICAgICAgICAgPSAxdWxsIDw8IDMwOyAv
LyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIHdlIGludGVuZCBpdCB0byB1bmJveCBpdC4g
SXQncyBhbHNvIGRlZmluaXRlbHkgbm90IGFuIEludDMyLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNBbnlJbnQgICAgICAgICAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0ludDUy
T25seTsgLy8gSXQncyBzb21ldGhpbmcgdGhhdCB3ZSBjYW4gZG8gbWFjaGluZSBpbnQgYXJpdGht
ZXRpYyBvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50QXNEb3VibGUg
ICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdzIGlu
c2lkZSBhIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNE
b3VibGUgICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQ1MiBi
dXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgorc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDMxOyAvLyBJdCdz
IGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDMyOyAv
LyBJdCdzIGRlZmluaXRlbHkgbm90IGFuIEludDUyIGJ1dCBpdCdzIGEgcmVhbCBudW1iZXIgYW5k
IGl0J3MgYSBkb3VibGUuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVJl
YWwgICAgICAgICA9IFNwZWNOb25JbnRBc0RvdWJsZSB8IFNwZWNBbnlJbnRBc0RvdWJsZTsgLy8g
SXQncyBkZWZpbml0ZWx5IGEgbm9uLU5hTiBkb3VibGUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAgICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIE5hTiB0aGF0IGlzIHNhZSB0byB0YWcgKGkuZS4gcHVyZSkuCi1zdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5hTiAgICA9IDF1bGwgPDwgMzE7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4gaW1wdXJlKS4K
K3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUHVyZU5hTiAgICAgID0gMXVs
bCA8PCAzMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FlIHRvIHRhZyAoaS5l
LiBwdXJlKS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFO
ICAgID0gMXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZl
IHRvIHRhZyAoaS5lLiBpbXB1cmUpLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNE
b3VibGVOYU4gICAgICAgICAgPSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNEb3VibGVJbXB1cmVO
YU47IC8vIEl0J3MgZGVmaW5pdGVseSBzb21lIGtpbmQgb2YgTmFOLgogc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZURvdWJsZSAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNw
ZWNEb3VibGVQdXJlTmFOOyAvLyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91Ymxl
LCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdCBpbXB1cmUgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNGdWxsRG91YmxlICAgICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNE
b3VibGVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUuCkBAIC04
NSwxMiArODksMTIgQEAgc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVJl
YWxOdW1iZXIgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0RvdWJsZVIKIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRnVsbFJlYWxOdW1iZXIgICAgID0gU3BlY0FueUludCB8IFNwZWNEb3Vi
bGVSZWFsOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZVJlYWwsIG9yIGEgSW50
NTIuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlTnVtYmVyICAgICA9
IFNwZWNJbnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIElu
dDMyIG9yIGEgRG91YmxlLCBhbmQgdGhlIERvdWJsZSBjYW5ub3QgYmUgYW4gaW1wdXJlIE5hTi4K
IHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbE51bWJlciAgICAgICAgID0gU3Bl
Y0FueUludCB8IFNwZWNGdWxsRG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiwgSW50NTIs
IG9yIGEgRG91YmxlLCBhbmQgdGhlIERvdWJsZSBjYW4gYmUgaW1wdXJlIE5hTi4KLXN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbGVhbiAgICAgICAgICAgID0gMXVsbCA8PCAzMjsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjT3RoZXIgICAgICAgICAgICAgID0gMXVsbCA8PCAzMzsgLy8gSXQncyBkZWZpbml0ZWx5
IGVpdGhlciBOdWxsIG9yIFVuZGVmaW5lZC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjQm9vbGVhbiAgICAgICAgICAgID0gMXVsbCA8PCAzNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
Qm9vbGVhbi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAgICAgICAg
ICAgID0gMXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVuZGVm
aW5lZC4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAg
ID0gU3BlY0Jvb2xlYW4gfCBTcGVjT3RoZXI7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgYSBi
b29sZWFuLCBOdWxsLCBvciBVbmRlZmluZWQuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0hlYXBUb3AgICAgICAgICAgICA9IFNwZWNDZWxsIHwgU3BlY0J5dGVjb2RlTnVtYmVyIHwg
U3BlY01pc2M7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJ
bnQ1Mk9ubHkgYW5kIFNwZWNEb3VibGVJbXB1cmVOYU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY1ByaW1pdGl2ZSAgICAgICAgICA9IFNwZWNTdHJpbmcgfCBTcGVjU3ltYm9sIHwg
U3BlY0J5dGVjb2RlTnVtYmVyIHwgU3BlY01pc2M7IC8vIEl0J3MgYW55IG5vbi1PYmplY3QgSlNW
YWx1ZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAg
ID0gMXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4K
K3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgID0gMXVs
bCA8PCAzNzsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KIHN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVUb3AgICAgICAgID0gU3BlY0hlYXBU
b3AgfCBTcGVjRW1wdHk7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9y
IFNwZWNJbnQ1Mk9ubHkgYW5kIFNwZWNEb3VibGVJbXB1cmVOYU4uIENvcnJlc3BvbmRzIHRvIHdo
YXQgY291bGQgYmUgZm91bmQgaW4gYSBieXRlY29kZSBsb2NhbC4KIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRnVsbFRvcCAgICAgICAgICAgID0gU3BlY0J5dGVjb2RlVG9wIHwgU3Bl
Y0Z1bGxOdW1iZXI7IC8vIEl0IGNhbiBiZSBhbnl0aGluZyB0aGF0IGJ5dGVjb2RlIGNvdWxkIHNl
ZSBwbHVzIGV4b3RpYyBlbmNvZGluZ3Mgb2YgbnVtYmVycy4KIApAQCAtNDE5LDYgKzQyMywyMSBA
QCBpbmxpbmUgYm9vbCBpc1VudHlwZWRTcGVjdWxhdGlvbkZvckJpdE9wcyhTcGVjdWxhdGVkVHlw
ZSB2YWx1ZSkKICAgICByZXR1cm4gISEodmFsdWUgJiB+KFNwZWNGdWxsTnVtYmVyIHwgU3BlY0Jv
b2xlYW4gfCBTcGVjT3RoZXIpKTsKIH0KIAoraW5saW5lIGJvb2wgaXNET01Ob2RlU3BlY3VsYXRp
b24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuICEhKHZhbHVlICYgU3BlY0RP
TU5vZGUpICYmICEodmFsdWUgJiB+U3BlY0RPTU5vZGUpOworfQorCitpbmxpbmUgYm9vbCBpc0RP
TUVsZW1lbnRTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4g
dmFsdWUgPT0gU3BlY0RPTUVsZW1lbnQ7Cit9CisKK2lubGluZSBib29sIGlzRE9NRG9jdW1lbnRX
cmFwcGVyU3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuIHZh
bHVlID09IFNwZWNET01Eb2N1bWVudFdyYXBwZXI7Cit9CisKIHZvaWQgZHVtcFNwZWN1bGF0aW9u
KFByaW50U3RyZWFtJiwgU3BlY3VsYXRlZFR5cGUpOwogdm9pZCBkdW1wU3BlY3VsYXRpb25BYmJy
ZXZpYXRlZChQcmludFN0cmVhbSYsIFNwZWN1bGF0ZWRUeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGUuaAppbmRleCA2OWUzZWI5MDY2ZDQ2ZTdmNWVjZDQ4ZWIzMzM4ZGNlODZiMWY5
MTY3Li5kN2JlNWQxMzlmODVlNmE4ODMwNmM2MGJiYjU0Y2U5NzA5YjNlMWI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMjI2MCw2ICsyMjYwLDIxIEBAIHN0cnVjdCBOb2Rl
IHsKICAgICB7CiAgICAgICAgIHJldHVybiBvcDEtPnNob3VsZFNwZWN1bGF0ZUFycmF5KCkgJiYg
b3AyLT5zaG91bGRTcGVjdWxhdGVBcnJheSgpOwogICAgIH0KKworICAgIGJvb2wgc2hvdWxkU3Bl
Y3VsYXRlRE9NTm9kZSgpCisgICAgeworICAgICAgICByZXR1cm4gaXNET01Ob2RlU3BlY3VsYXRp
b24ocHJlZGljdGlvbigpKTsKKyAgICB9CisKKyAgICBib29sIHNob3VsZFNwZWN1bGF0ZURPTUVs
ZW1lbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzRE9NRWxlbWVudFNwZWN1bGF0aW9uKHBy
ZWRpY3Rpb24oKSk7CisgICAgfQorCisgICAgYm9vbCBzaG91bGRTcGVjdWxhdGVET01Eb2N1bWVu
dFdyYXBwZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzRE9NRG9jdW1lbnRXcmFwcGVyU3Bl
Y3VsYXRpb24ocHJlZGljdGlvbigpKTsKKyAgICB9CiAgICAgCiAgICAgYm9vbCBjYW5TcGVjdWxh
dGVJbnQzMihSYXJlQ2FzZVByb2ZpbGluZ1NvdXJjZSBzb3VyY2UpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDFmMzVlYjJkOTAzYjQ2NmMyNDE4YzNk
YzFiNjE4NTNlYmU1ZDY5NzkuLmM1MmViNmQ5MTdiMTYyNDUyOWJlNmRhMTg5MjY2ZDc1ZmRlMjg4
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTM5NCw2ICsz
OTQsOSBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oR2V0TWFw
QnVja2V0LCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhMb2FkRnJvbUpTTWFwQnVja2V0LCBO
b2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhJc05vbkVtcHR5TWFwQnVja2V0LCBOb2RlUmVzdWx0
Qm9vbGVhbikgXAorICAgIC8qIE5vZGVzIGZvciBET00gSklUICovXAorICAgIG1hY3JvKERPTUF0
dHJpYnV0ZUdldCwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRKUykgXAorICAgIG1hY3Jv
KENoZWNrRE9NTm9kZUZsYWdzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAKIC8vIFRoaXMgZW51bSBn
ZW5lcmF0ZXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgaWQgZm9yIGFsbCBOb2RlIHR5cGVz
LAogLy8gYW5kIGlzIHVzZWQgYnkgdGhlIHN1YnNlcXVlbnQgZW51bSB0byBmaWxsIG91dCB0aGUg
aWQgKGFzIGFjY2Vzc2VkIHZpYSB0aGUgTm9kZUlkTWFzaykuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDIyYjkzNDAwNTgzYWM2ZGY4NjNiMGJl
MzhmNmI4MzM2YTUwNDE5YWMuLjE5ODE5OWE2NmQ3NmQzZTZjMjJlOTQ3MDliMTUyMTM0YjdiNmZl
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBA
IC02MCw2ICs2MCw5IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBG
aW5hbE9iamVjdFVzZToKICAgICAgICAgY2FzZSBSZWdFeHBPYmplY3RVc2U6CiAgICAgICAgIGNh
c2UgUHJveHlPYmplY3RVc2U6CisgICAgICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAgY2Fz
ZSBET01FbGVtZW50VXNlOgorICAgICAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKICAg
ICAgICAgY2FzZSBEZXJpdmVkQXJyYXlVc2U6CiAgICAgICAgIGNhc2UgTWFwT2JqZWN0VXNlOgog
ICAgICAgICBjYXNlIFNldE9iamVjdFVzZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggNzc3MWE5NTExYjJhODVhMjBjODg5MTZmYTQx
OTMxNDc3YmM3NjA1Ny4uM2E4MDQ1M2I0OTYyMGQ5MjVlY2Y0MGRkMzk2ZDk1MTA2NmQ3OWEzNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
QEAgLTc1MDAsNiArNzUwMCw0OCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTZXRP
YmplY3QoRWRnZSBlZGdlKQogICAgIHNwZWN1bGF0ZVNldE9iamVjdChlZGdlLCBvcGVyYW5kLmdw
cigpKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NTm9kZShFZGdlIGVk
Z2UsIEdQUlJlZyBjZWxsKQoreworICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVu
Ym94ZWRDZWxsKGNlbGwpLCBlZGdlLCBTcGVjRE9NTm9kZSwgbV9qaXQuYnJhbmNoSWZOb3RET01O
b2RlKGNlbGwpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NTm9kZShF
ZGdlIGVkZ2UpCit7CisgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjRE9NTm9kZSkp
CisgICAgICAgIHJldHVybjsKKworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhp
cywgZWRnZSk7CisgICAgc3BlY3VsYXRlRE9NTm9kZShlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30K
Kwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRWxlbWVudChFZGdlIGVkZ2UsIEdQ
UlJlZyBjZWxsKQoreworICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRD
ZWxsKGNlbGwpLCBlZGdlLCBTcGVjRE9NRWxlbWVudCwgbV9qaXQuYnJhbmNoSWZOb3RET01FbGVt
ZW50KGNlbGwpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRWxlbWVu
dChFZGdlIGVkZ2UpCit7CisgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjRE9NRWxl
bWVudCkpCisgICAgICAgIHJldHVybjsKKworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJh
bmQodGhpcywgZWRnZSk7CisgICAgc3BlY3VsYXRlRE9NRWxlbWVudChlZGdlLCBvcGVyYW5kLmdw
cigpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFw
cGVyKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRn
ZSwgY2VsbCwgU3BlY0RPTURvY3VtZW50V3JhcHBlciwgRE9NRG9jdW1lbnRXcmFwcGVyVHlwZSk7
Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihF
ZGdlIGVkZ2UpCit7CisgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjRE9NRG9jdW1l
bnRXcmFwcGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQg
b3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoZWRn
ZSwgb3BlcmFuZC5ncHIoKSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU9i
amVjdE9yT3RoZXIoRWRnZSBlZGdlKQogewogICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwg
U3BlY09iamVjdCB8IFNwZWNPdGhlcikpCkBAIC03ODA1LDYgKzc4NDcsMTUgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2FzZSBPYmplY3RP
ck90aGVyVXNlOgogICAgICAgICBzcGVjdWxhdGVPYmplY3RPck90aGVyKGVkZ2UpOwogICAgICAg
ICBicmVhazsKKyAgICBjYXNlIERPTU5vZGVVc2U6CisgICAgICAgIHNwZWN1bGF0ZURPTU5vZGUo
ZWRnZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICAgICAg
c3BlY3VsYXRlRE9NRWxlbWVudChlZGdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01E
b2N1bWVudFdyYXBwZXJVc2U6CisgICAgICAgIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihl
ZGdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAg
c3BlY3VsYXRlU3RyaW5nSWRlbnQoZWRnZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IGU3YTI5YjQzMzQ2YjI0
ODIzYTk5ODlmZWU5NWQ2NDA1YzMxOGRhNzMuLmQzMTg4NWY2ODk0NmNkOGE2M2Y0MDgwYzIyMGVh
MmY1NjE1OWFlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmgKQEAgLTI2OTgsNiArMjY5OCwxMiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAg
ICAgdm9pZCBzcGVjdWxhdGVNYXBPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQg
c3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU2V0T2JqZWN0KEVk
Z2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTU5vZGUoRWRnZSk7CisgICAg
dm9pZCBzcGVjdWxhdGVET01Ob2RlKEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1
bGF0ZURPTUVsZW1lbnQoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVET01FbGVtZW50KEVkZ2Us
IEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdl
KTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlLCBHUFJSZWcgY2Vs
bCk7CiAgICAgdm9pZCBzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3Bl
Y3VsYXRlU3RyaW5nKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRl
U3RyaW5nSWRlbnRBbmRMb2FkU3RvcmFnZShFZGdlIGVkZ2UsIEdQUlJlZyBzdHJpbmcsIEdQUlJl
ZyBzdG9yYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNl
S2luZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCmluZGV4
IGU4MzgyOWI3MTMwNjE3M2RlOTViMDEwODhiZjNlOWNkODRmZGY2ZWMuLjIwMjBhNTVmZGNkODhh
ZDY2NzBjYzU1YTExYTFiNGUzYmQyOTgzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdVc2VLaW5kLmNwcApAQCAtMTEyLDYgKzExMiwxNSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJp
bnRTdHJlYW0mIG91dCwgVXNlS2luZCB1c2VLaW5kKQogICAgIGNhc2UgT2JqZWN0T3JPdGhlclVz
ZToKICAgICAgICAgb3V0LnByaW50KCJPYmplY3RPck90aGVyIik7CiAgICAgICAgIHJldHVybjsK
KyAgICBjYXNlIERPTU5vZGVVc2U6CisgICAgICAgIG91dC5wcmludCgiRE9NTm9kZSIpOworICAg
ICAgICByZXR1cm47CisgICAgY2FzZSBET01FbGVtZW50VXNlOgorICAgICAgICBvdXQucHJpbnQo
IkRPTUVsZW1lbnQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFw
cGVyVXNlOgorICAgICAgICBvdXQucHJpbnQoIkRPTURvY3VtZW50V3JhcHBlciIpOworICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgb3V0LnByaW50KCJT
dHJpbmdJZGVudCIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VXNlS2luZC5oCmluZGV4IGY3MjBhNGRiZTk0NTk5OTJlMDIwNDE0Njg2NmJjNzhhMzQ1ZjRlZWYu
LjRmZDA4ODNmYmYxNTliMDQ3MWIxMzVmYmIzYTUwYzAwZTljN2MwYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVXNlS2luZC5oCkBAIC03NCw2ICs3NCw5IEBAIGVudW0gVXNlS2luZCB7
CiAgICAgTm90Q2VsbFVzZSwKICAgICBPdGhlclVzZSwKICAgICBNaXNjVXNlLAorICAgIERPTU5v
ZGVVc2UsCisgICAgRE9NRWxlbWVudFVzZSwKKyAgICBET01Eb2N1bWVudFdyYXBwZXJVc2UsCiAK
ICAgICAvLyAyLiBUaGUgRG91YmxlIHJlcHJlc2VudGF0aW9uIGZvciBhbiB1bmJveGVkIGRvdWJs
ZSB2YWx1ZSB0aGF0IG11c3QgYmUgc3RvcmVkCiAgICAgLy8gICAgaW4gYW4gRlAgcmVnaXN0ZXIu
CkBAIC0xNjEsNiArMTY0LDEyIEBAIGlubGluZSBTcGVjdWxhdGVkVHlwZSB0eXBlRmlsdGVyRm9y
KFVzZUtpbmQgdXNlS2luZCkKICAgICAgICAgcmV0dXJuIFNwZWNPdGhlcjsKICAgICBjYXNlIE1p
c2NVc2U6CiAgICAgICAgIHJldHVybiBTcGVjTWlzYzsKKyAgICBjYXNlIERPTU5vZGVVc2U6Cisg
ICAgICAgIHJldHVybiBTcGVjRE9NTm9kZTsKKyAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAg
ICAgIHJldHVybiBTcGVjRE9NRWxlbWVudDsKKyAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVz
ZToKKyAgICAgICAgcmV0dXJuIFNwZWNET01Eb2N1bWVudFdyYXBwZXI7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIFNw
ZWNGdWxsVG9wOwpAQCAtMjQxLDYgKzI1MCw5IEBAIGlubGluZSBib29sIGlzQ2VsbChVc2VLaW5k
IGtpbmQpCiAgICAgY2FzZSBTdHJpbmdPclN0cmluZ09iamVjdFVzZToKICAgICBjYXNlIE1hcE9i
amVjdFVzZToKICAgICBjYXNlIFNldE9iamVjdFVzZToKKyAgICBjYXNlIERPTU5vZGVVc2U6Cisg
ICAgY2FzZSBET01FbGVtZW50VXNlOgorICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXgg
Y2FkNDVmZGJhYmU5MGY0NDkzNGQxNGE0YmUzYmQxMGZjODI3NjQ0OS4uNWViNTI4ODQ3YjUwNDli
OTQ4NzNlNTdiYmQ3Y2ViOTc5OGE5M2Y1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtNDQ0LDYgKzQ0NCw5IEBAIENhcGFiaWxpdHlMZXZl
bCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIE5vdFN0cmlu
Z1ZhclVzZToKICAgICAgICAgICAgICAgICBjYXNlIEFueUludFVzZToKICAgICAgICAgICAgICAg
ICBjYXNlIERvdWJsZVJlcEFueUludFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIERPTU5vZGVV
c2U6CisgICAgICAgICAgICAgICAgY2FzZSBET01FbGVtZW50VXNlOgorICAgICAgICAgICAgICAg
IGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgogICAgICAgICAgICAgICAgICAgICAvLyBUaGVz
ZSBhcmUgT0suCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
aW5kZXggOWY4ODViODcxMzgzOTIwYjliZDRmMzg1ZTk5MjI0NzJmOWYyMzA2Zi4uYmI1NDQ2YjU1
ZDkzZDc3YzYwODE1YTZjMmVhZGMzNzc4OWYxYTUyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTA3OTUsNiArMTA3OTUsMTUgQEAgY2xh
c3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAgICAg
ICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBET01Ob2RlVXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlRE9NTm9kZShlZGdlKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAgICAgICAg
ICBzcGVjdWxhdGVET01FbGVtZW50KGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlRE9NRG9j
dW1lbnRXcmFwcGVyKGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3Ry
aW5nVXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKGVkZ2UpOwogICAgICAgICAgICAg
YnJlYWs7CkBAIC0xMDkyMyw2ICsxMDkzMiwyNCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAg
ICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihPYmplY3RUeXBlKSk7CiAgICAgfQogCisgICAgTFZh
bHVlIGlzTm90RE9NTm9kZShMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNG
dWxsVG9wKQorICAgIHsKKyAgICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVl
KHR5cGUgJiBTcGVjQ2VsbCwgflNwZWNET01Ob2RlKSkKKyAgICAgICAgICAgIHJldHVybiBwcm92
ZW47CisgICAgICAgIHJldHVybiBtX291dC5iZWxvdygKKyAgICAgICAgICAgIG1fb3V0LmxvYWQ4
WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCisgICAgICAgICAg
ICBtX291dC5jb25zdEludDMyKERPTU5vZGVUeXBlKSk7CisgICAgfQorCisgICAgTFZhbHVlIGlz
Tm90RE9NRWxlbWVudChMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNGdWxs
VG9wKQorICAgIHsKKyAgICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVlKHR5
cGUgJiBTcGVjQ2VsbCwgflNwZWNET01FbGVtZW50KSkKKyAgICAgICAgICAgIHJldHVybiBwcm92
ZW47CisgICAgICAgIHJldHVybiBtX291dC5iZWxvdygKKyAgICAgICAgICAgIG1fb3V0LmxvYWQ4
WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCisgICAgICAgICAg
ICBtX291dC5jb25zdEludDMyKERPTUVsZW1lbnRUeXBlKSk7CisgICAgfQorCiAgICAgTFZhbHVl
IGlzTm90U3RyaW5nKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxU
b3ApCiAgICAgewogICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlw
ZSAmIFNwZWNDZWxsLCB+U3BlY1N0cmluZykpCkBAIC0xMTE2OSw2ICsxMTE5NiwzNyBAQCBjbGFz
cyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2Us
IGxvd0NlbGwoZWRnZSkpOwogICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlRE9NTm9kZShFZGdl
IGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1
ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjRE9NRWxlbWVudCwgaXNOb3RET01Ob2RlKGNlbGwpKTsK
KyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURPTU5vZGUoRWRnZSBlZGdlKQorICAgIHsKKyAg
ICAgICAgc3BlY3VsYXRlRE9NTm9kZShlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9CisKKyAg
ICB2b2lkIHNwZWN1bGF0ZURPTUVsZW1lbnQoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7
CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY0RP
TUVsZW1lbnQsIGlzTm90RE9NRWxlbWVudChjZWxsKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVj
dWxhdGVET01FbGVtZW50KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZURPTUVs
ZW1lbnQoZWRnZSwgbG93Q2VsbChlZGdlKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVE
T01Eb2N1bWVudFdyYXBwZXIoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAg
IEZUTF9UWVBFX0NIRUNLKAorICAgICAgICAgICAganNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBT
cGVjRGVyaXZlZEFycmF5LCBpc05vdFR5cGUoY2VsbCwgRE9NRG9jdW1lbnRXcmFwcGVyVHlwZSkp
OworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKEVkZ2UgZWRn
ZSkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihlZGdlLCBsb3dD
ZWxsKGVkZ2UpKTsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmcoRWRnZSBl
ZGdlLCBMVmFsdWUgY2VsbCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaAppbmRleCA4NjY4YTZiMTgwYzg5MmYxNjk5MjU1MThkN2E3NTJjZGEzMDg1
NTExLi44YjQ4M2JjNTdmMWU2ODMyNzM0NTVkYThmNzBjNTM5MzQ4MTM1NjdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTg1NSw2ICs4NTUsMzAg
QEAgY2xhc3MgQXNzZW1ibHlIZWxwZXJzIDogcHVibGljIE1hY3JvQXNzZW1ibGVyIHsKICAgICAg
ICAgcmV0dXJuIGJyYW5jaDgoCiAgICAgICAgICAgICBCZWxvdywgQWRkcmVzcyhjZWxsR1BSLCBK
U0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKE9iamVjdFR5cGUpKTsK
ICAgICB9CisKKyAgICBKdW1wIGJyYW5jaElmRE9NTm9kZShHUFJSZWcgY2VsbEdQUikKKyAgICB7
CisgICAgICAgIHJldHVybiBicmFuY2g4KAorICAgICAgICAgICAgQWJvdmVPckVxdWFsLCBBZGRy
ZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIo
RE9NTm9kZVR5cGUpKTsKKyAgICB9CisKKyAgICBKdW1wIGJyYW5jaElmTm90RE9NTm9kZShHUFJS
ZWcgY2VsbEdQUikKKyAgICB7CisgICAgICAgIHJldHVybiBicmFuY2g4KAorICAgICAgICAgICAg
QmVsb3csIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRy
dXN0ZWRJbW0zMihET01Ob2RlVHlwZSkpOworICAgIH0KKworICAgIEp1bXAgYnJhbmNoSWZET01F
bGVtZW50KEdQUlJlZyBjZWxsR1BSKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgoCisg
ICAgICAgICAgICBBYm92ZU9yRXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5m
b1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihET01FbGVtZW50VHlwZSkpOworICAgIH0KKwor
ICAgIEp1bXAgYnJhbmNoSWZOb3RET01FbGVtZW50KEdQUlJlZyBjZWxsR1BSKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGJyYW5jaDgoCisgICAgICAgICAgICBCZWxvdywgQWRkcmVzcyhjZWxsR1BS
LCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKERPTUVsZW1lbnRU
eXBlKSk7CisgICAgfQogICAgIAogICAgIEp1bXAgYnJhbmNoSWZUeXBlKEdQUlJlZyBjZWxsR1BS
LCBKU1R5cGUgdHlwZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5o
CmluZGV4IDBkZjc0ZjI5ZDEyN2Y1NTNmNzUxNDNkMDUyM2U0Yzk0YjliZWEyNjYuLmE1OGY0YTY1
ZTgxMmFiN2Y1MjVlZTc1NmY4YzUxYTYzODFlYTM2ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVHlwZS5oCkBAIC04Nyw3ICs4NywxMyBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3Qg
ewogICAgIEpTTWFwVHlwZSwKICAgICBKU1NldFR5cGUsCiAKLSAgICBMYXN0SlNDT2JqZWN0VHlw
ZSA9IEpTU2V0VHlwZSwKKyAgICAvLyBUaGUgRE9NTm9kZVR5cGUgdmFsdWUgbXVzdCBjb21lIGJl
Zm9yZSBhbnkgSlNUeXBlIHRoYXQgaXMgYSBzdWJjbGFzcyBvZiBKU05vZGUuCisgICAgRE9NTm9k
ZVR5cGUsCisgICAgRE9NRG9jdW1lbnRXcmFwcGVyVHlwZSwKKyAgICAvLyBUaGUgRE9NRWxlbWVu
dFR5cGUgdmFsdWUgbXVzdCBjb21lIGJlZm9yZSBhbnkgSlNUeXBlIHRoYXQgaXMgYSBzdWJjbGFz
cyBvZiBKU0VsZW1lbnQuCisgICAgRE9NRWxlbWVudFR5cGUsCisKKyAgICBMYXN0SlNDT2JqZWN0
VHlwZSA9IERPTUVsZW1lbnRUeXBlLAogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEpTVHlw
ZSkgPT0gc2l6ZW9mKHVpbnQ4X3QpLCBzaXplb2ZfanN0eXBlX2lzX29uZV9ieXRlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKaW5kZXggY2Q1MGFlZjgwMWI4NTky
OWQ2NzM4NmFlNjI2YzdjYWU1ODcyZjRhNC4uMzNkMTVmMjhiMzlmYjM5MTA4OTg5ODNiZGUzNmQ4
Y2YzOWNkZjQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
cmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgK
QEAgLTMwLDEwICszMCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEpTRE9NV2luZG93
OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotc3RhdGljIGNvbnN0IHVpbnQ4X3Qg
SlNOb2RlVHlwZSA9IEpTQzo6TGFzdEpTQ09iamVjdFR5cGUgKyAxOwotc3RhdGljIGNvbnN0IHVp
bnQ4X3QgSlNEb2N1bWVudFdyYXBwZXJUeXBlID0gSlNDOjpMYXN0SlNDT2JqZWN0VHlwZSArIDI7
Ci1zdGF0aWMgY29uc3QgdWludDhfdCBKU0VsZW1lbnRUeXBlID0gSlNDOjpMYXN0SlNDT2JqZWN0
VHlwZSArIDM7Ci0KIGNsYXNzIEpTRE9NT2JqZWN0IDogcHVibGljIEpTQzo6SlNEZXN0cnVjdGli
bGVPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVj
dCBCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVu
dEN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5o
CmluZGV4IDY5YzRjYTgyODkxOWM5YjEzYWJhYjFjODNiNmJhYTAyYTlkNmJjMmEuLmYwYWM3Yzc0
MThiMDU4ZTVjMTBkMTY4YjAxMjM2NTA5ZDIzNTEyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmgKQEAgLTM1LDcgKzM1LDcgQEAgQUxXQVlTX0lO
TElORSBKU0RvY3VtZW50KiBqc0RvY3VtZW50Q2FzdChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc0NlbGwoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEpTRG9jdW1lbnRXcmFwcGVy
VHlwZSA/IEpTQzo6anNDYXN0PEpTRG9jdW1lbnQqPih2YWx1ZSkgOiBudWxscHRyOworICAgIHJl
dHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEpTQzo6RE9NRG9jdW1lbnRXcmFwcGVyVHlw
ZSA/IEpTQzo6anNDYXN0PEpTRG9jdW1lbnQqPih2YWx1ZSkgOiBudWxscHRyOwogfQogCiBKU0M6
OkpTT2JqZWN0KiBjYWNoZWREb2N1bWVudFdyYXBwZXIoSlNDOjpFeGVjU3RhdGUmLCBKU0RPTUds
b2JhbE9iamVjdCYsIERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RWxlbWVudEN1c3RvbS5oCmluZGV4IDJhMWJhMDE4MDMyNGQwODRiNGFjNWI2YjJjOTU3ZWRjMzlh
Nzk2ZjcuLmYyYmEwZDliYWNjNTAyNjA5YmM2MmE3MWJmOTVjYmFhN2NmYTQ5NTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oCkBAIC0zNSw3ICszNSw3
IEBAIEFMV0FZU19JTkxJTkUgSlNFbGVtZW50KiBqc0VsZW1lbnRDYXN0KEpTQzo6SlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBpZiAoVU5MSUtFTFkoIXZhbHVlLmlzQ2VsbCgpKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPj0gSlNFbGVt
ZW50VHlwZSA/IEpTQzo6anNDYXN0PEpTRWxlbWVudCo+KHZhbHVlKSA6IG51bGxwdHI7CisgICAg
cmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPj0gSlNDOjpET01FbGVtZW50VHlwZSA/IEpT
Qzo6anNDYXN0PEpTRWxlbWVudCo+KHZhbHVlKSA6IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKaW5k
ZXggYWI2MzYxYzY1M2VlMTg2ZTA3NGJjZTIzNTJkNTJjYmI4NmY3MTNmMC4uNTAxNDlmODI5ODlj
OGFhOWNiMTI2NjdjNWQyM2Q2ODQ2ZTY3MDdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOb2RlQ3VzdG9tLmgKQEAgLTgyLDcgKzgyLDcgQEAgQUxXQVlTX0lOTElORSBKU05vZGUq
IGpzTm9kZUNhc3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChVTkxJS0VMWSghdmFs
dWUuaXNDZWxsKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gdmFsdWUu
YXNDZWxsKCktPnR5cGUoKSA+PSBKU05vZGVUeXBlID8gSlNDOjpqc0Nhc3Q8SlNOb2RlKj4odmFs
dWUpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA+PSBKU0M6
OkRPTU5vZGVUeXBlID8gSlNDOjpqc0Nhc3Q8SlNOb2RlKj4odmFsdWUpIDogbnVsbHB0cjsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBmZWIxNWRlZWY0NjNjYWRkZmE3OThk
ZTMyMmJkNDJjZDExZjQ5NTAwLi5iZWE4ZGUwY2RkN2MyY2FiNzQxMmNmMjc3NDkzOGY5YmUxYTA2
ZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQpAQCAtMTI4NSwxMSArMTI4NSwxMSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAg
ICBpZiAoSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6R2xvYmFsT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5l
cmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJEb2N1bWVudCIpKSB7Ci0gICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkpT
VHlwZShKU0RvY3VtZW50V3JhcHBlclR5cGUpLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4i
KTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6RE9NRG9jdW1lbnRXcmFwcGVyVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xu
Iik7CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRl
cmZhY2UsICJFbGVtZW50IikpIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6SlNUeXBlKEpTRWxlbWVudFR5cGUpLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6RE9NRWxlbWVudFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTtcbiIpOwogICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVy
ZmFjZSgkaW50ZXJmYWNlLCAiTm9kZSIpKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkpTVHlwZShKU05vZGVUeXBlKSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkRPTU5vZGVUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7XG4iKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaAppbmRleCA0YTMwY2ViNTk0YzZhYjA4ZDAw
ZDQ5NTY2MWYzYmI2NjAzMzJhMGQzLi5lYmM3MmI4YTJhZjNkMDdkODkwMzY4YjQ2OTYzNjk3NmU5
YjBmY2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROb2RlLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgV0VCQ09SRV9URVNUU1VQ
UE9SVF9FWFBPUlQgSlNUZXN0Tm9kZSA6IHB1YmxpYyBKU05vZGUgewogCiAgICAgc3RhdGljIEpT
Qzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkpTVHlwZShKU05vZGVUeXBlKSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpET01Ob2RlVHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFs
dWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290058</attachid>
            <date>2016-09-27 22:48:04 -0700</date>
            <delta_ts>2016-09-27 23:51:12 -0700</delta_ts>
            <desc>Prototype rev2</desc>
            <filename>bug-162544-20160927224504.patch</filename>
            <type>text/plain</type>
            <size>83549</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NjIxZDM4MjdkNjJiN2JmNDkxMDM3NjFjNzFmOWQ4NjMyNDAyNGY5Li4zNWVlY2I0MDBkMTE0NjQ3
YTE0NDIwODhmMzg0YTBkMWI2NTBjMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5OSBAQAorMjAxNi0wOS0yNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbQmluZGluZ10gSW50cm9kdWNpbmcgRE9NIGJpbmRpbmcgSklUCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1NDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIGJ5dGVjb2RlL0RPTUpJVC5jcHA6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oLgorICAgICAgICAoSlNDOjpE
T01KSVQ6OmVkZ2VGaWx0ZXIpOgorICAgICAgICAqIGJ5dGVjb2RlL0RPTUpJVC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmguCisgICAg
ICAgIChKU0M6OkRPTUpJVDo6RE9NSklUKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpzcGVjdWxh
dGVkQ2hpbGRUeXBlKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpnZXR0ZXIpOgorICAgICAgICAo
SlNDOjpET01KSVQ6OnNldHRlcik6CisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nl
c3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZXQpOgorICAgICAgICAoSlNDOjpB
Y2Nlc3NDYXNlOjpjbG9uZSk6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OnZpc2l0V2Vhayk6
CisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaDoKKyAgICAgICAgKiBieXRl
Y29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgIChKU0M6OmR1bXBTcGVjdWxhdGlvbik6
CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJvbVN0cnVjdHVyZSk6CisgICAgICAgICogYnl0
ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoKKyAgICAgICAgKEpTQzo6aXNET01Ob2RlU3BlY3VsYXRp
b24pOgorICAgICAgICAoSlNDOjppc0RPTUVsZW1lbnRTcGVjdWxhdGlvbik6CisgICAgICAgIChK
U0M6OmlzRE9NRG9jdW1lbnRXcmFwcGVyU3BlY3VsYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0
SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAg
ICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToK
KyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlND
OjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBk
ZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAq
IGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpm
aXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6
Tm9kZTo6aGFzSGVhcFByZWRpY3Rpb24pOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnNob3Vs
ZFNwZWN1bGF0ZURPTU5vZGUpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1
bGF0ZURPTUVsZW1lbnQpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0
ZURPTURvY3VtZW50V3JhcHBlcik6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzRE9NSklU
KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpkb21KSVQpOgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZUFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZH
OjpOb2RlOjpiYXNpY0Jsb2NrTG9jYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdO
b2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHA6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZH
OjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6c2Fm
ZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NTm9kZSk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURPTUVsZW1lbnQpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRE9NR2V0QXR0cmlidXRlKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdVc2VLaW5k
LmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAgICAgICogZGZnL0RGR1Vz
ZUtpbmQuaDoKKyAgICAgICAgKEpTQzo6REZHOjp0eXBlRmlsdGVyRm9yKToKKyAgICAgICAgKEpT
Qzo6REZHOjppc0NlbGwpOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAg
ICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1Rv
QjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGUp
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjppc05vdERPTU5vZGUpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjppc05vdERPTUVsZW1lbnQpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVET01Ob2RlKToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlRE9NRWxlbWVu
dCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZURPTURv
Y3VtZW50V3JhcHBlcik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNw
ZWN1bGF0ZVNldE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVy
cy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRE9NTm9kZSk6Cisg
ICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RET01Ob2RlKToKKyAgICAg
ICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkRPTUVsZW1lbnQpOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90RE9NRWxlbWVudCk6CisgICAgICAgIChK
U0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RPYmplY3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L1JlcGF0Y2guY3BwOgorICAg
ICAgICAoSlNDOjp0cnlDYWNoZUdldEJ5SUQpOgorICAgICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0
dGVyU2V0dGVyLmg6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTVHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChK
U0M6Okhhc2hUYWJsZVZhbHVlOjpkb21KSVQpOgorICAgICAgICAoSlNDOjpwdXRFbnRyeSk6Cisg
ICAgICAgIChKU0M6OnJlaWZ5U3RhdGljUHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvUHJv
cGVydHlTbG90Lmg6CisKIDIwMTYtMDktMjcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIGRlcHJlY2F0ZWQgRU5DUllQVEVEX01FRElBIGltcGxlbWVu
dGF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCA2NWM2M2MyMjg1OWU0YWRlNWU0ZWVhNGRjNTZiODA3MTM1NDQwYmEwLi5m
MWQ3YzllMWFjMTE3M2YwYjM1ZWMyMDY3MTU2NTRmNTBhMWQ3M2I5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDE2LTA5LTI3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgor
CisgICAgICAgIFtCaW5kaW5nXSBJbnRyb2R1Y2luZyBET00gYmluZGluZyBKSVQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU0NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1N0ZExpYkV4dHJh
cy5oOgorCiAyMDE2LTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBkZXByZWNhdGVkIEVOQ1JZUFRFRF9NRURJQSBpbXBsZW1lbnRhdGlvbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2MDgzNTYzOTZmMDUyMGEzZmQ4NjM4NDZkYWI4ZDliNWJkMTU0NDlmLi4z
MjM0YjI2NmUxYzg1MjRiNTA4MDcyZGQ2YzNlOTFmOThlYjM4ZTc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDMgQEAKKzIwMTYtMDktMjcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBGb3J3
YXJkaW5nSGVhZGVycy9ieXRlY29kZS9ET01KSVQuaDogQWRkZWQuCisgICAgICAgICogRm9yd2Fy
ZGluZ0hlYWRlcnMvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAq
IEZvcndhcmRpbmdIZWFkZXJzL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NV3JhcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XcmFwcGVyOjpvZmZz
ZXRPZldyYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XcmFwcGVyOjp3cmFwcGVkKTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmg6CisgICAg
ICAgIChXZWJDb3JlOjpqc0RvY3VtZW50Q2FzdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNF
bGVtZW50Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpqc0VsZW1lbnRDYXN0KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmpzTm9k
ZUNhc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjpvZmZzZXRPZldyYXBwZXIpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2V0SlNDQXR0
cmlidXRlc0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAg
IChHZW5lcmF0ZVByb3BlcnRpZXNIYXNoVGFibGUpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUhhc2hUYWJsZVZhbHVlQXJyYXkpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaDoKKyAgICAgICAgKiBkb20vTm9kZS5oOgor
ICAgICAgICAqIGRvbS9Ob2RlLmlkbDoKKyAgICAgICAgKiBkb21qaXQvRE9NSklUSGVscGVyLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RE9NSklUSGVscGVyOjpET01KSVRIZWxwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NSklUSGVscGVyOjpicmFuY2hJZk5vdENvbnRhaW5lck5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6RE9NSklUSGVscGVyOjp0b0pTUmVzdWx0KToKKwogMjAxNi0w
OS0yNyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5j
by51az4KIAogICAgICAgICBbR1RLXSBIYW5kbGUgV2F5bGFuZCAmIFgxMSBjb3JyZWN0bHkgZm9y
IEdTVF9HTApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDljOTFkZWM1ODVi
ZDM4M2ZjNjI5Y2EwOTE3ZWExODc1Zjk5NTU0NDQuLjc0MDE0ZjZkOTA2N2ZmMDFlMTNlZTY3YTAz
N2U2OTcxMDFmM2EwMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5
OCw2ICsxOTgsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGJ5dGVjb2RlL0Nv
ZGVPcmlnaW4uY3BwCiAgICAgYnl0ZWNvZGUvQ29kZVR5cGUuY3BwCiAgICAgYnl0ZWNvZGUvQ29t
cGxleEdldFN0YXR1cy5jcHAKKyAgICBieXRlY29kZS9ET01KSVQuY3BwCiAgICAgYnl0ZWNvZGUv
RGF0YUZvcm1hdC5jcHAKICAgICBieXRlY29kZS9ERkdFeGl0UHJvZmlsZS5jcHAKICAgICBieXRl
Y29kZS9EZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRE9NSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9ET01KSVQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyYjA2Mjg0YjVhMTNlYjQ1MWE4ZTcx
OWQwMzJjZDg5ZjVjZmEzYTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvRE9NSklULmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkRPTUpJVC5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFjZSBKU0Mgewor
CitERkc6OlVzZUtpbmQgRE9NSklUOjplZGdlRmlsdGVyKCkKK3sKKyAgICBpZiAoaXNET01Eb2N1
bWVudFdyYXBwZXJTcGVjdWxhdGlvbihtX3NwZWN1bGF0ZWRDaGlsZFR5cGUpKQorICAgICAgICBy
ZXR1cm4gREZHOjpET01Eb2N1bWVudFdyYXBwZXJVc2U7CisgICAgaWYgKGlzRE9NRWxlbWVudFNw
ZWN1bGF0aW9uKG1fc3BlY3VsYXRlZENoaWxkVHlwZSkpCisgICAgICAgIHJldHVybiBERkc6OkRP
TUVsZW1lbnRVc2U7CisgICAgaWYgKGlzRE9NTm9kZVNwZWN1bGF0aW9uKG1fc3BlY3VsYXRlZENo
aWxkVHlwZSkpCisgICAgICAgIHJldHVybiBERkc6OkRPTU5vZGVVc2U7CisgICAgcmV0dXJuIERG
Rzo6VW50eXBlZFVzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBFTkFC
TEUoREZHX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9E
T01KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9ET01KSVQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wYTA4MjU1MThmYmY5NjBhMGM5MTc1YTAyYWZmNmE1OTRiODE4ZThkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RPTUpJVC5oCkBAIC0wLDAg
KzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlByb3BlcnR5U2xvdC5oIgorI2luY2x1ZGUgIlB1dFBy
b3BlcnR5U2xvdC5oIgorI2luY2x1ZGUgIlNwZWN1bGF0ZWRUeXBlLmgiCisKKyNpZiBFTkFCTEUo
REZHX0pJVCkKKyNpbmNsdWRlICJERkdVc2VLaW5kLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBTcGVjdWxhdGl2ZUpJVDsKK2NsYXNzIE5vZGU7
CisKK30KKworY2xhc3MgRE9NSklUIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jIEN1c3RvbUdldHRlcjsKKyAgICB0eXBlZGVmIFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jIEN1c3RvbVNldHRlcjsKKworICAgIERPTUpJVChDdXN0b21HZXR0ZXIg
Z2V0dGVyLCBDdXN0b21TZXR0ZXIgc2V0dGVyLCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGVkQ2hp
bGRUeXBlKQorICAgICAgICA6IG1fZ2V0dGVyKGdldHRlcikKKyAgICAgICAgLCBtX3NldHRlcihz
ZXR0ZXIpCisgICAgICAgICwgbV9zcGVjdWxhdGVkQ2hpbGRUeXBlKHNwZWN1bGF0ZWRDaGlsZFR5
cGUpCisgICAgeworICAgIH0KKworICAgIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0ZWRDaGlsZFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3NwZWN1bGF0ZWRDaGlsZFR5cGU7IH0KKyAgICBDdXN0b21H
ZXR0ZXIgZ2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9nZXR0ZXI7IH0KKyAgICBDdXN0b21TZXR0
ZXIgc2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0ZXI7IH0KKworI2lmIEVOQUJMRShERkdf
SklUKQorICAgIERGRzo6VXNlS2luZCBlZGdlRmlsdGVyKCk7CisgICAgdmlydHVhbCB2b2lkIGNv
bXBpbGVET01HZXRBdHRyaWJ1dGUoREZHOjpTcGVjdWxhdGl2ZUpJVCosIERGRzo6Tm9kZSopOwor
I2VuZGlmCisKK3ByaXZhdGU6CisgICAgQ3VzdG9tR2V0dGVyIG1fZ2V0dGVyOworICAgIEN1c3Rv
bVNldHRlciBtX3NldHRlcjsKKyAgICBTcGVjdWxhdGVkVHlwZSBtX3NwZWN1bGF0ZWRDaGlsZFR5
cGU7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
UG9seW1vcnBoaWNBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Bv
bHltb3JwaGljQWNjZXNzLmNwcAppbmRleCAyNTZjYTQzNjE3ZjdlNTE0ZjAxYmQ5MzRlNWQzNGFj
OTkzMWU4MWZlLi41ZjM0MTA4YTE1MGY1NzI1NDA4NTRjMTIwZTQ1ZWIwZDVhZjc5ZWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vz
cy5jcHAKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNj
ZXNzQ2FzZTo6dHJ5R2V0KAogc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6
OmdldCgKICAgICBWTSYgdm0sIEpTQ2VsbCogb3duZXIsIEFjY2Vzc1R5cGUgdHlwZSwgUHJvcGVy
dHlPZmZzZXQgb2Zmc2V0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwKICAgICBjb25zdCBPYmplY3RQ
cm9wZXJ0eUNvbmRpdGlvblNldCYgY29uZGl0aW9uU2V0LCBib29sIHZpYVByb3h5LCBXYXRjaHBv
aW50U2V0KiBhZGRpdGlvbmFsU2V0LAotICAgIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIGN1
c3RvbUdldHRlciwgSlNPYmplY3QqIGN1c3RvbVNsb3RCYXNlKQorICAgIFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jIGN1c3RvbUdldHRlciwgSlNPYmplY3QqIGN1c3RvbVNsb3RCYXNlLCBDdXN0
b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlcikKIHsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8QWNjZXNzQ2FzZT4gcmVzdWx0KG5ldyBBY2Nlc3NDYXNlKCkpOwogCkBAIC0yMjksMTIgKzIy
OSwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Z2V0KAogICAg
IHJlc3VsdC0+bV9zdHJ1Y3R1cmUuc2V0KHZtLCBvd25lciwgc3RydWN0dXJlKTsKICAgICByZXN1
bHQtPm1fY29uZGl0aW9uU2V0ID0gY29uZGl0aW9uU2V0OwogCi0gICAgaWYgKHZpYVByb3h5IHx8
IGFkZGl0aW9uYWxTZXQgfHwgcmVzdWx0LT5kb2VzQ2FsbHMoKSB8fCBjdXN0b21HZXR0ZXIgfHwg
Y3VzdG9tU2xvdEJhc2UpIHsKKyAgICBpZiAodmlhUHJveHkgfHwgYWRkaXRpb25hbFNldCB8fCBy
ZXN1bHQtPmRvZXNDYWxscygpIHx8IGN1c3RvbUdldHRlciB8fCBjdXN0b21TbG90QmFzZSB8fCBj
dXN0b21HZXR0ZXJTZXR0ZXIpIHsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhID0gc3RkOjpt
YWtlX3VuaXF1ZTxSYXJlRGF0YT4oKTsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT52aWFQ
cm94eSA9IHZpYVByb3h5OwogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmFkZGl0aW9uYWxT
ZXQgPSBhZGRpdGlvbmFsU2V0OwogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmN1c3RvbUFj
Y2Vzc29yLmdldHRlciA9IGN1c3RvbUdldHRlcjsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRh
LT5jdXN0b21TbG90QmFzZS5zZXRNYXlCZU51bGwodm0sIG93bmVyLCBjdXN0b21TbG90QmFzZSk7
CisgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+Y3VzdG9tR2V0dGVyU2V0dGVyLnNldE1heUJl
TnVsbCh2bSwgb3duZXIsIGN1c3RvbUdldHRlclNldHRlcik7CiAgICAgfQogCiAgICAgcmV0dXJu
IHJlc3VsdDsKQEAgLTM4NSw2ICszODYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4g
QWNjZXNzQ2FzZTo6Y2xvbmUoKSBjb25zdAogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmN1
c3RvbUFjY2Vzc29yLm9wYXF1ZSA9IHJhcmVEYXRhLT5jdXN0b21BY2Nlc3Nvci5vcGFxdWU7CiAg
ICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+Y3VzdG9tU2xvdEJhc2UgPSByYXJlRGF0YS0+Y3Vz
dG9tU2xvdEJhc2U7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+aW50cmluc2ljRnVuY3Rp
b24gPSByYXJlRGF0YS0+aW50cmluc2ljRnVuY3Rpb247CisgICAgICAgIHJlc3VsdC0+bV9yYXJl
RGF0YS0+Y3VzdG9tR2V0dGVyU2V0dGVyID0gcmFyZURhdGEtPmN1c3RvbUdldHRlclNldHRlcjsK
ICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTU0Miw2ICs1NDQsOCBAQCBib29sIEFj
Y2Vzc0Nhc2U6OnZpc2l0V2VhayhWTSYgdm0pIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIGlmIChtX3JhcmVEYXRhLT5pbnRyaW5zaWNGdW5jdGlvbiAmJiAhSGVhcDo6
aXNNYXJrZWQobV9yYXJlRGF0YS0+aW50cmluc2ljRnVuY3Rpb24uZ2V0KCkpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAobV9yYXJlRGF0YS0+Y3VzdG9tR2V0dGVyU2V0
dGVyICYmICFIZWFwOjppc01hcmtlZChtX3JhcmVEYXRhLT5jdXN0b21HZXR0ZXJTZXR0ZXIuZ2V0
KCkpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhp
Y0FjY2Vzcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNj
ZXNzLmgKaW5kZXggMmNhNGFkY2ZjMGI0Nzc0YjNiNGRlZDRlMGM3MDA4YjMyNTlkOTAzOC4uZjRj
MjI3ZTVkODZjYTc0MTFjMTk2MThmMzAyMTdlNTc5NTA0ODNiMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmgKQEAgLTI5LDYgKzI5
LDcgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgorI2luY2x1
ZGUgIkN1c3RvbUdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkpJVFN0dWJSb3V0aW5lLmgiCiAj
aW5jbHVkZSAiSlNGdW5jdGlvbklubGluZXMuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5o
IgpAQCAtMTMxLDcgKzEzMiw4IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICBib29sIHZp
YVByb3h5ID0gZmFsc2UsCiAgICAgICAgIFdhdGNocG9pbnRTZXQqIGFkZGl0aW9uYWxTZXQgPSBu
dWxscHRyLAogICAgICAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyA9IG51bGxwdHIsCi0g
ICAgICAgIEpTT2JqZWN0KiBjdXN0b21TbG90QmFzZSA9IG51bGxwdHIpOworICAgICAgICBKU09i
amVjdCogY3VzdG9tU2xvdEJhc2UgPSBudWxscHRyLAorICAgICAgICBDdXN0b21HZXR0ZXJTZXR0
ZXIqID0gbnVsbHB0cik7CiAgICAgCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3ND
YXNlPiBtZWdhbW9ycGhpY0xvYWQoVk0mLCBKU0NlbGwqIG93bmVyKTsKICAgICAKQEAgLTMwMSw2
ICszMDMsNyBAQCBjbGFzcyBBY2Nlc3NDYXNlIHsKICAgICAgICAgfSBjdXN0b21BY2Nlc3NvcjsK
ICAgICAgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBjdXN0b21TbG90QmFzZTsKICAgICAgICAg
V3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IGludHJpbnNpY0Z1bmN0aW9uOworICAgICAgICBXcml0
ZUJhcnJpZXI8Q3VzdG9tR2V0dGVyU2V0dGVyPiBjdXN0b21HZXR0ZXJTZXR0ZXI7CiAgICAgfTsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSYXJlRGF0YT4gbV9yYXJlRGF0YTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCmluZGV4IDcxOWQ4
ZjI3MjgzZjVkMTIzY2U1NzcxNTQ1ZTQ2OWJmODFhZmYyMjcuLjFmZDA0YjU1NzRiZmUwNzAyMDVm
ZTJiYTMzMGJlMmM1ZTQwOWFkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcApAQCAtMTcwLDYgKzE3MCwyMSBAQCB2b2lkIGR1bXBT
cGVjdWxhdGlvbihQcmludFN0cmVhbSYgb3V0LCBTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKICAgICAg
ICAgICAgICAgICBteU91dC5wcmludCgiRGVyaXZlZGFycmF5Iik7CiAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgaXNUb3AgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHZhbHVl
ICYgU3BlY0RPTURvY3VtZW50V3JhcHBlcikKKyAgICAgICAgICAgICAgICBteU91dC5wcmludCgi
RG9tZG9jdW1lbnR3cmFwcGVyIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
aXNUb3AgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHZhbHVlICYgU3BlY0RPTUVsZW1lbnQp
CisgICAgICAgICAgICAgICAgbXlPdXQucHJpbnQoIkRvbWVsZW1lbnQiKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNlOworCisgICAgICAgICAgICBpZiAo
dmFsdWUgJiBTcGVjRE9NT3RoZXJOb2RlKQorICAgICAgICAgICAgICAgIG15T3V0LnByaW50KCJE
b21vdGhlcm5vZGUiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpc1RvcCA9
IGZhbHNlOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCh2YWx1ZSAmIFNwZWNTdHJpbmcpID09
IFNwZWNTdHJpbmcpCkBAIC0zOTQsMTIgKzQwOSwyNSBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxh
dGlvbkZyb21DbGFzc0luZm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAKIFNwZWN1bGF0
ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbVN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsK
LSAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBTdHJpbmdUeXBlKQorICAg
IEpTVHlwZSB0eXBlID0gc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKTsKKyAgICBzd2l0Y2gg
KHR5cGUpIHsKKyAgICBjYXNlIFN0cmluZ1R5cGU6CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5n
OwotICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IFN5bWJvbFR5cGUpCisg
ICAgY2FzZSBTeW1ib2xUeXBlOgogICAgICAgICByZXR1cm4gU3BlY1N5bWJvbDsKLSAgICBpZiAo
c3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBEZXJpdmVkQXJyYXlUeXBlKQorICAgIGNh
c2UgRGVyaXZlZEFycmF5VHlwZToKICAgICAgICAgcmV0dXJuIFNwZWNEZXJpdmVkQXJyYXk7Cisg
ICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJUeXBlOgorICAgICAgICByZXR1cm4gU3BlY0RPTURv
Y3VtZW50V3JhcHBlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAg
ICBpZiAodHlwZSA+PSBET01FbGVtZW50VHlwZSkKKyAgICAgICAgcmV0dXJuIFNwZWNET01FbGVt
ZW50OworICAgIGlmICh0eXBlID49IERPTU5vZGVUeXBlKQorICAgICAgICByZXR1cm4gU3BlY0RP
TU90aGVyTm9kZTsKKwogICAgIHJldHVybiBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oc3RydWN0
dXJlLT5jbGFzc0luZm8oKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1NwZWN1bGF0ZWRUeXBlLmgKaW5kZXggMmIyMjE4YTY3YzdiNDk5Yzg1NDk5YTJmNzMzMjU0
ZjM3OTA4MGVlNi4uYjM5YWM3MTg4MzgxZWNiOGJlMGEyMzZlOGU0NjRmMWUzMmE0Njc1MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAg
LTYwLDI0ICs2MCwyOCBAQCBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY01hcE9iamVj
dCAgICAgICAgICA9IDF1bGwgPDwgMTY7IC8vIEl0J3MgZGVmaW5pdAogc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNTZXRPYmplY3QgICAgICAgICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdz
IGRlZmluaXRlbHkgYSBTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KIHN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgID0gMXVsbCA8PCAx
ODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJveHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xh
c3Nlcy4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRGVyaXZlZEFycmF5ICAgICAg
ID0gMXVsbCA8PCAxOTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4K
LXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgID0gMXVs
bCA8PCAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmpl
Y3QsIEpTQXJyYXksIG9yIEpTRnVuY3Rpb24uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY09iamVjdCAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJheSB8IFNw
ZWNGdW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBT
cGVjU2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNwZWNSZWdFeHBPYmplY3Qg
fCBTcGVjTWFwT2JqZWN0IHwgU3BlY1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNE
ZXJpdmVkQXJyYXkgfCBTcGVjT2JqZWN0T3RoZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGlu
ZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICA9IDF1bGwgPDwgMjE7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgotc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZpZXIuCitz
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RPTURvY3VtZW50V3JhcHBlciA9IDF1bGwg
PDwgMjA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERPTSBkb2N1bWVudCB3cmFwcGVyIG9iamVjdC4K
K3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRE9NRWxlbWVudCAgICAgICAgID0gMXVs
bCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRE9NIGVsZW1lbnQgb2JqZWN0Lgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNET01PdGhlck5vZGUgICAgICAgPSAxdWxsIDw8IDIy
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBET00gTm9kZSBvYmplY3QgYnV0IG5vdCBEb2N1bWVudFdy
YXBwZXIgYW5kIEVsZW1lbnQuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RPTU5v
ZGUgICAgICAgICAgICA9IFNwZWNET01Eb2N1bWVudFdyYXBwZXIgfCBTcGVjRE9NRWxlbWVudCB8
IFNwZWNET01PdGhlck5vZGU7CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVj
dE90aGVyICAgICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3Qg
YnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0aW9uLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgPSBTcGVjRmluYWxPYmpl
Y3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBTcGVj
RGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmplY3Qg
fCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVj
UHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3BlY0RPTU5vZGUgfCBTcGVjT2JqZWN0
T3RoZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0
IHByZWRpY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50
ICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQg
aXQncyBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJp
bmdWYXIgICAgICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmlu
ZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZpZXIuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY1N0cmluZyAgICAgICAgICAgICA9IFNwZWNTdHJpbmdJZGVudCB8IFNwZWNTdHJpbmdW
YXI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgPSAxdWxsIDw8IDIzOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBTeW1ib2wuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhl
ciAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQg
bm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5kIGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcg
b3IgYSBTeW1ib2wuIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBiZSBwYXJ0IG9mIGhlYXAtdG9wIG9y
IGJ5dGVjb2RlLXRvcC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MzA3OAorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAg
PSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5k
IGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcgb3IgYSBTeW1ib2wuIEZJWE1FOiBUaGlzIHNob3Vs
ZG4ndCBiZSBwYXJ0IG9mIGhlYXAtdG9wIG9yIGJ5dGVjb2RlLXRvcC4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzA3OAogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgPSBTcGVjT2JqZWN0IHwgU3BlY1N0cmluZyB8IFNw
ZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwuCi1z
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAgICA9IDF1bGwg
PDwgMjU7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3IgMS4KLXN0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uQm9vbEludDMyICAgICAgID0gMXVsbCA8
PCAyNjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgb3RoZXIgdGhhbiAw
IG9yIDEuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAg
ICA9IDF1bGwgPDwgMjg7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAg
b3IgMS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uQm9vbEludDMyICAgICAg
ID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgb3Ro
ZXIgdGhhbiAwIG9yIDEuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyT25s
eSAgICAgICAgICA9IFNwZWNCb29sSW50MzIgfCBTcGVjTm9uQm9vbEludDMyOyAvLyBJdCdzIGRl
ZmluaXRlbHkgYW4gSW50MzIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUy
T25seSAgICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBh
bmQgd2UgaW50ZW5kIGl0IHRvIHVuYm94IGl0LiBJdCdzIGFsc28gZGVmaW5pdGVseSBub3QgYW4g
SW50MzIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUyT25seSAgICAgICAg
ICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgd2UgaW50ZW5k
IGl0IHRvIHVuYm94IGl0LiBJdCdzIGFsc28gZGVmaW5pdGVseSBub3QgYW4gSW50MzIuCiBzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludCAgICAgICAgICAgICA9IFNwZWNJbnQz
Mk9ubHkgfCBTcGVjSW50NTJPbmx5OyAvLyBJdCdzIHNvbWV0aGluZyB0aGF0IHdlIGNhbiBkbyBt
YWNoaW5lIGludCBhcml0aG1ldGljIG9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNBbnlJbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4g
SW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRlZmluaXRl
bHkgbm90IGFuIEludDUyIGJ1dCBpdCdzIGEgcmVhbCBudW1iZXIgYW5kIGl0J3MgYSBkb3VibGUu
CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAgICA9IDF1
bGwgPDwgMzE7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBk
b3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAg
ICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4gSW50NTIgYnV0IGl0J3Mg
YSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAgID0gU3BlY05vbkludEFzRG91YmxlIHwgU3BlY0Fu
eUludEFzRG91YmxlOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBub24tTmFOIGRvdWJsZS4KLXN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUHVyZU5hTiAgICAgID0gMXVsbCA8PCAz
MDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FlIHRvIHRhZyAoaS5lLiBwdXJl
KS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgID0g
MXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRh
ZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVQ
dXJlTmFOICAgICAgPSAxdWxsIDw8IDMzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBp
cyBzYWUgdG8gdGFnIChpLmUuIHB1cmUpLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNEb3VibGVJbXB1cmVOYU4gICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBO
YU4gdGhhdCBpcyB1bnNhZmUgdG8gdGFnIChpLmUuIGltcHVyZSkuCiBzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0RvdWJsZU5hTiAgICAgICAgICA9IFNwZWNEb3VibGVQdXJlTmFOIHwg
U3BlY0RvdWJsZUltcHVyZU5hTjsgLy8gSXQncyBkZWZpbml0ZWx5IHNvbWUga2luZCBvZiBOYU4u
CiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlRG91YmxlICAgICA9IFNw
ZWNEb3VibGVSZWFsIHwgU3BlY0RvdWJsZVB1cmVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5h
TiBvciBhIE5hTiBkb3VibGUsIGJ1dCBpdCdzIGRlZmluaXRlbHkgbm90IGltcHVyZSBOYU4uCiBz
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxEb3VibGUgICAgICAgICA9IFNwZWNE
b3VibGVSZWFsIHwgU3BlY0RvdWJsZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEg
TmFOIGRvdWJsZS4KQEAgLTg1LDEyICs4OSwxMiBAQCBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0J5dGVjb2RlUmVhbE51bWJlciA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjRG91YmxlUgog
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsUmVhbE51bWJlciAgICAgPSBTcGVj
QW55SW50IHwgU3BlY0RvdWJsZVJlYWw7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91
YmxlUmVhbCwgb3IgYSBJbnQ1Mi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0
ZWNvZGVOdW1iZXIgICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNCeXRlY29kZURvdWJsZTsgLy8g
SXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGUsIGFuZCB0aGUgRG91YmxlIGNhbm5vdCBi
ZSBhbiBpbXB1cmUgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsTnVt
YmVyICAgICAgICAgPSBTcGVjQW55SW50IHwgU3BlY0Z1bGxEb3VibGU7IC8vIEl0J3MgZWl0aGVy
IGFuIEludDMyLCBJbnQ1Miwgb3IgYSBEb3VibGUsIGFuZCB0aGUgRG91YmxlIGNhbiBiZSBpbXB1
cmUgTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAg
ICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgPSAxdWxsIDw8IDMzOyAv
LyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVkLgorc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICAgPSAxdWxsIDw8IDM1OyAvLyBJ
dCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNPdGhlciAgICAgICAgICAgICAgPSAxdWxsIDw8IDM2OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0
aGVyIE51bGwgb3IgVW5kZWZpbmVkLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNN
aXNjICAgICAgICAgICAgICAgPSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBkZWZp
bml0ZWx5IGVpdGhlciBhIGJvb2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KIHN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjSGVhcFRvcCAgICAgICAgICAgID0gU3BlY0NlbGwgfCBTcGVj
Qnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYzsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUs
IGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVyZU5hTi4KIHN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUHJpbWl0aXZlICAgICAgICAgID0gU3BlY1N0cmlu
ZyB8IFNwZWNTeW1ib2wgfCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYzsgLy8gSXQncyBh
bnkgbm9uLU9iamVjdCBKU1ZhbHVlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNF
bXB0eSAgICAgICAgICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gZW1w
dHkgdmFsdWUgbWFya2VyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNFbXB0eSAg
ICAgICAgICAgICAgPSAxdWxsIDw8IDM3OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gZW1wdHkgdmFs
dWUgbWFya2VyLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVRvcCAg
ICAgICAgPSBTcGVjSGVhcFRvcCB8IFNwZWNFbXB0eTsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUg
YWJvdmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVyZU5hTi4g
Q29ycmVzcG9uZHMgdG8gd2hhdCBjb3VsZCBiZSBmb3VuZCBpbiBhIGJ5dGVjb2RlIGxvY2FsLgog
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsVG9wICAgICAgICAgICAgPSBTcGVj
Qnl0ZWNvZGVUb3AgfCBTcGVjRnVsbE51bWJlcjsgLy8gSXQgY2FuIGJlIGFueXRoaW5nIHRoYXQg
Ynl0ZWNvZGUgY291bGQgc2VlIHBsdXMgZXhvdGljIGVuY29kaW5ncyBvZiBudW1iZXJzLgogCkBA
IC00MTksNiArNDIzLDIxIEBAIGlubGluZSBib29sIGlzVW50eXBlZFNwZWN1bGF0aW9uRm9yQml0
T3BzKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogICAgIHJldHVybiAhISh2YWx1ZSAmIH4oU3BlY0Z1
bGxOdW1iZXIgfCBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcikpOwogfQogCitpbmxpbmUgYm9vbCBp
c0RPTU5vZGVTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4g
ISEodmFsdWUgJiBTcGVjRE9NTm9kZSkgJiYgISh2YWx1ZSAmIH5TcGVjRE9NTm9kZSk7Cit9CisK
K2lubGluZSBib29sIGlzRE9NRWxlbWVudFNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVl
KQoreworICAgIHJldHVybiB2YWx1ZSA9PSBTcGVjRE9NRWxlbWVudDsKK30KKworaW5saW5lIGJv
b2wgaXNET01Eb2N1bWVudFdyYXBwZXJTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkK
K3sKKyAgICByZXR1cm4gdmFsdWUgPT0gU3BlY0RPTURvY3VtZW50V3JhcHBlcjsKK30KKwogdm9p
ZCBkdW1wU3BlY3VsYXRpb24oUHJpbnRTdHJlYW0mLCBTcGVjdWxhdGVkVHlwZSk7CiB2b2lkIGR1
bXBTcGVjdWxhdGlvbkFiYnJldmlhdGVkKFByaW50U3RyZWFtJiwgU3BlY3VsYXRlZFR5cGUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJw
cmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggOGM3NDEyNjYyNjVjODE0ODA2ZjFmMGZiNzE0ODM3ZTIz
YzUwZGM4ZC4uMzFlZjMzYzY0NzIwODBmYTcwNjFkZTI2MTlhNWMwYWY1ZTNiZWI1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaApAQCAtMjE0OCw2ICsyMTQ4LDExIEBAIGJvb2wgQWJzdHJhY3RJbnRlcnBy
ZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJM
aW1pCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiBNb2RlbCBpdCBwcmVj
aXNlbHkuCisgICAgY2FzZSBET01HZXRBdHRyaWJ1dGU6CisgICAgICAgIGNsb2JiZXJXb3JsZChu
b2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7CisgICAgICAgIGJyZWFrOworCiAg
ICAgY2FzZSBHZXRCeVZhbFdpdGhUaGlzOgogICAgIGNhc2UgR2V0QnlJZFdpdGhUaGlzOgogICAg
ICAgICBjbG9iYmVyV29ybGQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBjbG9iYmVyTGltaXQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCBjMWMzZmRkZGI3
YTdhNjBiNDY1MmExN2NhZTFhOTgzZjhjYWU5NjExLi4xMzkwNDA5MGI5YjY5MDYwNzdiYzA1NjAx
ZDJhMGYxMDlhZjhjMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJp
emUuaApAQCAtNTA3LDYgKzUwNyw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgY2Fz
ZSBHZXREeW5hbWljVmFyOgogICAgIGNhc2UgUHV0RHluYW1pY1ZhcjoKICAgICBjYXNlIFJlc29s
dmVTY29wZToKKyAgICBjYXNlIERPTUdldEF0dHJpYnV0ZTogLy8gRklYTUU6IE1vZGVsIGl0IHBy
ZWNpc2VseS4KICAgICAgICAgcmVhZChXb3JsZCk7CiAgICAgICAgIHdyaXRlKEhlYXApOwogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IDVkNjMyOWQyOGY1ZmYzYmY2NWExY2ZjYTQ3YWE2
Nzc0MTY5MzVlMmYuLjNhNDE4OGIxNWY5MTVkN2QzM2NmNDc0ZmRlMTM4Njk2MmQwYWEyNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhh
c2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5n
UGhhc2UuY3BwCkBAIC00NzUsNiArNDc1LDExIEBAIGNsYXNzIENvbnN0YW50Rm9sZGluZ1BoYXNl
IDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2FzZSBET01H
ZXRBdHRyaWJ1dGU6IHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGl0Lgor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICAgICAgY2FzZSBQdXRCeUlkRGlyZWN0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDJkY2Y1NWQyZWQy
OGFhZTYwYjZiOGI3YjliZjZkYTA3MTlkOTJkZDUuLjYxOGRmMmExMzYyYWQ3ZWJiYmU1YmQ0NGRl
OWI3N2QzZTgwZGUzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAK
QEAgLTI1NCw2ICsyNTQsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUp
CiAgICAgY2FzZSBHZXREeW5hbWljVmFyOgogICAgIGNhc2UgUHV0RHluYW1pY1ZhcjoKICAgICBj
YXNlIFJlc29sdmVTY29wZToKKyAgICBjYXNlIERPTUdldEF0dHJpYnV0ZToKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgY2FzZSBDcmVhdGVBY3RpdmF0aW9uOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggNmVlNTE0MmY3OGY2MGJmMTA5Njgz
YzhiODljMTVkMGU0NThiM2ZlMC4uYjY0MjI0ZDBmMWM0MTg0MDNlMmE0ZWVlZjJhY2JkNDEzZGRh
YjE0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBA
IC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiREZHUGhhc2UuaCIKICNpbmNsdWRlICJERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5oIgogI2luY2x1ZGUgIkRGR1ZhcmlhYmxlQWNjZXNzRGF0
YUR1bXAuaCIKKyNpbmNsdWRlICJET01KSVQuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiVHlwZUxvY2F0aW9uLmgiCiAKQEAgLTE2MDIsNiArMTYwMywxMyBAQCBjbGFzcyBG
aXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVz
ZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBE
T01HZXRBdHRyaWJ1dGU6IHsKKyAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUo
CisgICAgICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNOb25lLCBDaGVjaywgbm9kZS0+
b3JpZ2luLAorICAgICAgICAgICAgICAgIEVkZ2Uobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBub2Rl
LT5kb21KSVQoKS0+ZWRnZUZpbHRlcigpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgICAgICAvLyBIYXZlIHRoZXNlIG5vLW9wIGNh
c2VzIGhlcmUgdG8gZW5zdXJlIHRoYXQgbm9ib2R5IGZvcmdldHMgdG8gYWRkIGhhbmRsZXJzIGZv
ciBuZXcgb3Bjb2Rlcy4KICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmgKaW5kZXggNjllM2ViOTA2NmQ0NmU3ZjVlY2Q0OGViMzMzOGRjZTg2YjFm
OTE2Ny4uNTI5NzU3MGQyMzIxZjkxZTc0ZmE1ZDQ3NzJjMGM4ZDEzZDVmOTA5NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTU5LDYgKzU5LDggQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKK2NsYXNzIERPTUpJVDsKKwogbmFtZXNwYWNlIFByb2ZpbGVyIHsKIGNsYXNzIEV4ZWN1
dGlvbkNvdW50ZXI7CiB9CkBAIC0xNDIwLDYgKzE0MjIsNyBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAg
ICAgIGNhc2UgVHJ5R2V0QnlJZDoKICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAgICAgY2Fz
ZSBHZXRCeVZhbFdpdGhUaGlzOgorICAgICAgICBjYXNlIERPTUdldEF0dHJpYnV0ZToKICAgICAg
ICAgY2FzZSBDYWxsOgogICAgICAgICBjYXNlIFRhaWxDYWxsSW5saW5lZENhbGxlcjoKICAgICAg
ICAgY2FzZSBDb25zdHJ1Y3Q6CkBAIC0yMjYwLDYgKzIyNjMsMjEgQEAgc3RydWN0IE5vZGUgewog
ICAgIHsKICAgICAgICAgcmV0dXJuIG9wMS0+c2hvdWxkU3BlY3VsYXRlQXJyYXkoKSAmJiBvcDIt
PnNob3VsZFNwZWN1bGF0ZUFycmF5KCk7CiAgICAgfQorCisgICAgYm9vbCBzaG91bGRTcGVjdWxh
dGVET01Ob2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc0RPTU5vZGVTcGVjdWxhdGlvbihw
cmVkaWN0aW9uKCkpOworICAgIH0KKworICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlRE9NRWxlbWVu
dCgpCisgICAgeworICAgICAgICByZXR1cm4gaXNET01FbGVtZW50U3BlY3VsYXRpb24ocHJlZGlj
dGlvbigpKTsKKyAgICB9CisKKyAgICBib29sIHNob3VsZFNwZWN1bGF0ZURPTURvY3VtZW50V3Jh
cHBlcigpCisgICAgeworICAgICAgICByZXR1cm4gaXNET01Eb2N1bWVudFdyYXBwZXJTcGVjdWxh
dGlvbihwcmVkaWN0aW9uKCkpOworICAgIH0KICAgICAKICAgICBib29sIGNhblNwZWN1bGF0ZUlu
dDMyKFJhcmVDYXNlUHJvZmlsaW5nU291cmNlIHNvdXJjZSkKICAgICB7CkBAIC0yMzA5LDYgKzIz
MjcsMTcgQEAgc3RydWN0IE5vZGUgewogICAgICAgICBBU1NFUlQoaGFzQmFzaWNCbG9ja0xvY2F0
aW9uKCkpOwogICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8QmFzaWNCbG9ja0xvY2F0aW9uKj4o
KTsKICAgICB9CisKKyAgICBib29sIGhhc0RPTUpJVCgpCisgICAgeworICAgICAgICByZXR1cm4g
b3AoKSA9PSBET01HZXRBdHRyaWJ1dGU7CisgICAgfQorCisgICAgRE9NSklUKiBkb21KSVQoKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc0RPTUpJVCgpKTsKKyAgICAgICAgcmV0dXJuIG1fb3BJ
bmZvLmFzPERPTUpJVCo+KCk7CisgICAgfQogICAgIAogICAgIE5vZGUqIHJlcGxhY2VtZW50KCkg
Y29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXgg
MWYzNWViMmQ5MDNiNDY2YzI0MThjM2RjMWI2MTg1M2ViZTVkNjk3OS4uMjgyMmI2N2U3MmI0Y2Rj
NTM3ODZhMjQzYTc4ODZiMTE1ZGY5MDJiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaApAQCAtMzk0LDYgKzM5NCw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKICAgICBtYWNybyhHZXRNYXBCdWNrZXQsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3Jv
KExvYWRGcm9tSlNNYXBCdWNrZXQsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKElzTm9uRW1w
dHlNYXBCdWNrZXQsIE5vZGVSZXN1bHRCb29sZWFuKSBcCisgICAgLyogTm9kZXMgZm9yIERPTSBK
SVQgKi9cCisgICAgbWFjcm8oRE9NR2V0QXR0cmlidXRlLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9k
ZVJlc3VsdEpTKSBcCiAKIC8vIFRoaXMgZW51bSBnZW5lcmF0ZXMgYSBtb25vdG9uaWNhbGx5IGlu
Y3JlYXNpbmcgaWQgZm9yIGFsbCBOb2RlIHR5cGVzLAogLy8gYW5kIGlzIHVzZWQgYnkgdGhlIHN1
YnNlcXVlbnQgZW51bSB0byBmaWxsIG91dCB0aGUgaWQgKGFzIGFjY2Vzc2VkIHZpYSB0aGUgTm9k
ZUlkTWFzaykuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDA2ZGI0MGViNjc2NjcyNDZkMzQ5
MDkwNTkxOWJmNWFiZDAwZWI5OWUuLmM1ZmNjNTdiZDA2YzU0ZDljZDIzNTUyYmQxMzdmODRlZjNh
NTJlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC02ODQsNiArNjg0LDcgQEAgY2xhc3Mg
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNl
IEdldEJ5T2Zmc2V0OgogICAgICAgICBjYXNlIE11bHRpR2V0QnlPZmZzZXQ6CiAgICAgICAgIGNh
c2UgR2V0RGlyZWN0UG5hbWU6CisgICAgICAgIGNhc2UgRE9NR2V0QXR0cmlidXRlOgogICAgICAg
ICBjYXNlIENhbGw6CiAgICAgICAgIGNhc2UgVGFpbENhbGxJbmxpbmVkQ2FsbGVyOgogICAgICAg
ICBjYXNlIENvbnN0cnVjdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9F
eGVjdXRlLmgKaW5kZXggMjJiOTM0MDA1ODNhYzZkZjg2M2IwYmUzOGY2YjgzMzZhNTA0MTlhYy4u
MmNjOTNmYmJhYjljNjE0ZGZkMTY5YWJhY2UwZjg2OWNhM2FhOWZhZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTYwLDYgKzYwLDkgQEAgY2xh
c3MgU2FmZVRvRXhlY3V0ZUVkZ2UgewogICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNlOgogICAg
ICAgICBjYXNlIFJlZ0V4cE9iamVjdFVzZToKICAgICAgICAgY2FzZSBQcm94eU9iamVjdFVzZToK
KyAgICAgICAgY2FzZSBET01Ob2RlVXNlOgorICAgICAgICBjYXNlIERPTUVsZW1lbnRVc2U6Cisg
ICAgICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgogICAgICAgICBjYXNlIERlcml2ZWRB
cnJheVVzZToKICAgICAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgU2V0T2Jq
ZWN0VXNlOgpAQCAtMjA0LDYgKzIwNyw3IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0
YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEdldEJ5
SWRXaXRoVGhpczoKICAgICBjYXNlIEdldEJ5VmFsV2l0aFRoaXM6CiAgICAgY2FzZSBHZXRCeUlk
Rmx1c2g6CisgICAgY2FzZSBET01HZXRBdHRyaWJ1dGU6CiAgICAgY2FzZSBQdXRCeUlkOgogICAg
IGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0QnlJZFdpdGhUaGlzOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA3NzcxYTk1
MTFiMmE4NWEyMGM4ODkxNmZhNDE5MzE0NzdiYzc2MDU3Li41ZGFkYzgxYTFiYzRkY2I5NmE0OTA3
NDczNmU5YjUwZGE2OGU1YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRGR09TUkV4
aXRGdXp6LmgiCiAjaW5jbHVkZSAiREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0
b3IuaCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkRPTUpJ
VC5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkpJVEFkZEdlbmVy
YXRvci5oIgogI2luY2x1ZGUgIkpJVEJpdEFuZEdlbmVyYXRvci5oIgpAQCAtNzUwMCw2ICs3NTAx
LDQ4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVNldE9iamVjdChFZGdlIGVkZ2Up
CiAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOwogfQogCit2b2lk
IFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Ob2RlKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwp
Cit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCks
IGVkZ2UsIFNwZWNET01Ob2RlLCBtX2ppdC5icmFuY2hJZk5vdERPTU5vZGUoY2VsbCkpOworfQor
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Ob2RlKEVkZ2UgZWRnZSkKK3sKKyAg
ICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNET01Ob2RlKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBz
cGVjdWxhdGVET01Ob2RlKGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOworfQorCit2b2lkIFNwZWN1bGF0
aXZlSklUOjpzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7Cisg
ICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2Us
IFNwZWNET01FbGVtZW50LCBtX2ppdC5icmFuY2hJZk5vdERPTUVsZW1lbnQoY2VsbCkpOworfQor
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UgZWRnZSkKK3sK
KyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNET01FbGVtZW50KSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsK
KyAgICBzcGVjdWxhdGVET01FbGVtZW50KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOworfQorCit2b2lk
IFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoRWRnZSBlZGdlLCBH
UFJSZWcgY2VsbCkKK3sKKyAgICBzcGVjdWxhdGVDZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjRE9N
RG9jdW1lbnRXcmFwcGVyLCBET01Eb2N1bWVudFdyYXBwZXJUeXBlKTsKK30KKwordm9pZCBTcGVj
dWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKEVkZ2UgZWRnZSkKK3sKKyAg
ICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNET01Eb2N1bWVudFdyYXBwZXIpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVk
Z2UpOworICAgIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihlZGdlLCBvcGVyYW5kLmdwcigp
KTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlT2JqZWN0T3JPdGhlcihFZGdl
IGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjT2JqZWN0IHwgU3Bl
Y090aGVyKSkKQEAgLTc4MDUsNiArNzg0OCwxNSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVj
dWxhdGUoTm9kZSosIEVkZ2UgZWRnZSkKICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAg
ICAgIHNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoZWRnZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRE9NTm9kZVVzZToKKyAgICAgICAgc3BlY3VsYXRlRE9NTm9kZShlZGdlKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBET01FbGVtZW50VXNlOgorICAgICAgICBzcGVjdWxhdGVET01FbGVt
ZW50KGVkZ2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVz
ZToKKyAgICAgICAgc3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKGVkZ2UpOworICAgICAgICBi
cmVhazsKICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmdJ
ZGVudChlZGdlKTsKICAgICAgICAgYnJlYWs7CkBAIC04NjM5LDYgKzg2OTEsMTEgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNvbXBhcmVFcVB0cihOb2RlKiBub2RlKQogICAgIGJsZXNz
ZWRCb29sZWFuUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVET01HZXRBdHRyaWJ1dGUoTm9kZSogbm9kZSkKK3sKKyAgICBub2RlLT5kb21K
SVQoKS0+Y29tcGlsZURPTUdldEF0dHJpYnV0ZSh0aGlzLCBub2RlKTsKK30KKwogfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBlN2EyOWI0MzM0NmIyNDgyM2E5OTg5ZmVlOTVkNjQw
NWMzMThkYTczLi4yNzZhNmNjNjUwN2U3YjhhMGRiOWNjNjg0ZjFjNWQxMTczNzBmZDg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xMzM0
LDYgKzEzMzQsMTEgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1c3RlZEltbVB0cih1aWQpKTsK
ICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwog
ICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9u
X0VXZ1duIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcy
KQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEs
IGFyZzIpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJl
c3VsdCk7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRP
cGVyYXRpb25fRUpKSkkgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJl
ZyBhcmczLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMsIFRydXN0ZWRJbW1QdHIo
dWlkKSk7CkBAIC0xNzc4LDYgKzE3ODMsMTEgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9B
UkcgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzIucGF5bG9hZEdQUigpLCBh
cmcyLnRhZ0dQUigpLCBUcnVzdGVkSW1tUHRyKHVpZCkpOwogICAgICAgICByZXR1cm4gYXBwZW5k
Q2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdC5wYXlsb2FkR1BSKCksIHJlc3VsdC50YWdH
UFIoKSk7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRP
cGVyYXRpb25fRVdnV24gb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBhcmcx
LCBHUFJSZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQo
b3BlcmF0aW9uLCByZXN1bHQucGF5bG9hZEdQUigpLCByZXN1bHQudGFnR1BSKCkpOworICAgIH0K
ICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKSkpJ
IG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJlZ3MgYXJnMiwgSlNWYWx1ZVJl
Z3MgYXJnMywgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKICAgICB7CiAgICAgICAgIG1faml0LnNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxLnBheWxv
YWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BSKCksIGFyZzIudGFnR1BSKCks
IGFyZzMucGF5bG9hZEdQUigpLCBhcmczLnRhZ0dQUigpLCBUcnVzdGVkSW1tUHRyKHVpZCkpOwpA
QCAtMjU3OSw2ICsyNTg5LDcgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgY29t
cGlsZUdldER5bmFtaWNWYXIoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVB1dER5bmFtaWNWYXIo
Tm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNvbXBhcmVFcVB0cihOb2RlKik7CisgICAgdm9pZCBj
b21waWxlRE9NR2V0QXR0cmlidXRlKE5vZGUqKTsKIAogICAgIHZvaWQgbW92ZVRydWVUbyhHUFJS
ZWcpOwogICAgIHZvaWQgbW92ZUZhbHNlVG8oR1BSUmVnKTsKQEAgLTI2OTgsNiArMjcwOSwxMiBA
QCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBzcGVjdWxhdGVNYXBPYmplY3QoRWRn
ZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2UpOwogICAg
IHZvaWQgc3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNw
ZWN1bGF0ZURPTU5vZGUoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVET01Ob2RlKEVkZ2UsIEdQ
UlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTUVsZW1lbnQoRWRnZSk7CisgICAgdm9p
ZCBzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1
bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3Vt
ZW50V3JhcHBlcihFZGdlLCBHUFJSZWcgY2VsbCk7CiAgICAgdm9pZCBzcGVjdWxhdGVPYmplY3RP
ck90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nKEVkZ2UgZWRnZSwgR1BSUmVn
IGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nSWRlbnRBbmRMb2FkU3RvcmFnZShFZGdl
IGVkZ2UsIEdQUlJlZyBzdHJpbmcsIEdQUlJlZyBzdG9yYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IGEyMmRi
ZWFkZTcxMDhmNzU1OTY2NmI5M2Y5YWVjN2VmNTBjMTM5NWIuLjg4NDdiYzYyZDQ2Njc4OGNkMTRl
MzdjYmYyMTVhNWMwMmMyNTI3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNDI0MCw2ICs0MjQwLDEwIEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZUdl
dEFycmF5TGVuZ3RoKG5vZGUpOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgRE9NR2V0QXR0
cmlidXRlOgorICAgICAgICBjb21waWxlRE9NR2V0QXR0cmlidXRlKG5vZGUpOworICAgICAgICBi
cmVhazsKKwogICAgIGNhc2UgRGVsZXRlQnlJZDogewogICAgICAgICBjb21waWxlRGVsZXRlQnlJ
ZChub2RlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA4Y2Q1ZDcxMzhmMDdjZGRkYzJjMmU3MGQ2
ZjZkZjNjMWZiMWFkYjZlLi5kMGJlNmJmYjE2ZjU2ZjE0OTA0MDk0NGIwZTViMjA5ZmI1MzE3ZTMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTQyMDMsNiArNDIwMywxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVHZXRBcnJheUxlbmd0aChub2RlKTsKICAgICAg
ICAgYnJlYWs7CiAKKyAgICBjYXNlIERPTUdldEF0dHJpYnV0ZToKKyAgICAgICAgY29tcGlsZURP
TUdldEF0dHJpYnV0ZShub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIERlbGV0ZUJ5
SWQ6IHsKICAgICAgICAgY29tcGlsZURlbGV0ZUJ5SWQobm9kZSk7CiAgICAgICAgIGJyZWFrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKaW5kZXggZTgzODI5YjcxMzA2
MTczZGU5NWIwMTA4OGJmM2U5Y2Q4NGZkZjZlYy4uMjAyMGE1NWZkY2Q4OGFkNjY3MGNjNTVhMTFh
MWI0ZTNiZDI5ODM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdV
c2VLaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3Bw
CkBAIC0xMTIsNiArMTEyLDE1IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBVc2VLaW5kIHVzZUtpbmQpCiAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICBv
dXQucHJpbnQoIk9iamVjdE9yT3RoZXIiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRE9N
Tm9kZVVzZToKKyAgICAgICAgb3V0LnByaW50KCJET01Ob2RlIik7CisgICAgICAgIHJldHVybjsK
KyAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAgICAgIG91dC5wcmludCgiRE9NRWxlbWVudCIp
OworICAgICAgICByZXR1cm47CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CisgICAg
ICAgIG91dC5wcmludCgiRE9NRG9jdW1lbnRXcmFwcGVyIik7CisgICAgICAgIHJldHVybjsKICAg
ICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBvdXQucHJpbnQoIlN0cmluZ0lkZW50Iik7
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5k
ZXggZjcyMGE0ZGJlOTQ1OTk5MmUwMjA0MTQ2ODY2YmM3OGEzNDVmNGVlZi4uNGZkMDg4M2ZiZjE1
OWIwNDcxYjEzNWZiYjNhNTBjMDBlOWM3YzBiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdVc2VLaW5kLmgKQEAgLTc0LDYgKzc0LDkgQEAgZW51bSBVc2VLaW5kIHsKICAgICBOb3RDZWxs
VXNlLAogICAgIE90aGVyVXNlLAogICAgIE1pc2NVc2UsCisgICAgRE9NTm9kZVVzZSwKKyAgICBE
T01FbGVtZW50VXNlLAorICAgIERPTURvY3VtZW50V3JhcHBlclVzZSwKIAogICAgIC8vIDIuIFRo
ZSBEb3VibGUgcmVwcmVzZW50YXRpb24gZm9yIGFuIHVuYm94ZWQgZG91YmxlIHZhbHVlIHRoYXQg
bXVzdCBiZSBzdG9yZWQKICAgICAvLyAgICBpbiBhbiBGUCByZWdpc3Rlci4KQEAgLTE2MSw2ICsx
NjQsMTIgQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VL
aW5kKQogICAgICAgICByZXR1cm4gU3BlY090aGVyOwogICAgIGNhc2UgTWlzY1VzZToKICAgICAg
ICAgcmV0dXJuIFNwZWNNaXNjOworICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAgcmV0dXJu
IFNwZWNET01Ob2RlOworICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICAgICAgcmV0dXJuIFNw
ZWNET01FbGVtZW50OworICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgorICAgICAgICBy
ZXR1cm4gU3BlY0RPTURvY3VtZW50V3JhcHBlcjsKICAgICBkZWZhdWx0OgogICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gU3BlY0Z1bGxUb3A7CkBA
IC0yNDEsNiArMjUwLDkgQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkKICAgICBj
YXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAg
IGNhc2UgU2V0T2JqZWN0VXNlOgorICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICBjYXNlIERPTUVs
ZW1lbnRVc2U6CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBjYWQ0NWZkYmFiZTkw
ZjQ0OTM0ZDE0YTRiZTNiZDEwZmM4Mjc2NDQ5Li41ZWI1Mjg4NDdiNTA0OWI5NDg3M2U1N2JiZDdj
ZWI5Nzk4YTkzZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmls
aXRpZXMuY3BwCkBAIC00NDQsNiArNDQ0LDkgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUo
R3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAgIGNhc2UgTm90U3RyaW5nVmFyVXNlOgogICAg
ICAgICAgICAgICAgIGNhc2UgQW55SW50VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgRG91Ymxl
UmVwQW55SW50VXNlOgorICAgICAgICAgICAgICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAg
ICAgICAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBET01Eb2N1
bWVudFdyYXBwZXJVc2U6CiAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA5Zjg4NWI4
NzEzODM5MjBiOWJkNGYzODVlOTkyMjQ3MmY5ZjIzMDZmLi5iYjU0NDZiNTVkOTNkNzdjNjA4MTVh
NmMyZWFkYzM3Nzg5ZjFhNTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCkBAIC0xMDc5NSw2ICsxMDc5NSwxNSBAQCBjbGFzcyBMb3dlckRGR1Rv
QjMgewogICAgICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVNl
dE9iamVjdChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPTU5vZGVV
c2U6CisgICAgICAgICAgICBzcGVjdWxhdGVET01Ob2RlKGVkZ2UpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZURP
TUVsZW1lbnQoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET01Eb2N1
bWVudFdyYXBwZXJVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIo
ZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAg
ICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEw
OTIzLDYgKzEwOTMyLDI0IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBtX291
dC5jb25zdEludDMyKE9iamVjdFR5cGUpKTsKICAgICB9CiAKKyAgICBMVmFsdWUgaXNOb3RET01O
b2RlKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCisgICAg
eworICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAmIFNwZWND
ZWxsLCB+U3BlY0RPTU5vZGUpKQorICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsKKyAgICAgICAg
cmV0dXJuIG1fb3V0LmJlbG93KAorICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2Vs
bCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0
SW50MzIoRE9NTm9kZVR5cGUpKTsKKyAgICB9CisKKyAgICBMVmFsdWUgaXNOb3RET01FbGVtZW50
KExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCisgICAgewor
ICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAmIFNwZWNDZWxs
LCB+U3BlY0RPTUVsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsKKyAgICAgICAg
cmV0dXJuIG1fb3V0LmJlbG93KAorICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2Vs
bCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0
SW50MzIoRE9NRWxlbWVudFR5cGUpKTsKKyAgICB9CisKICAgICBMVmFsdWUgaXNOb3RTdHJpbmco
TFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKICAgICB7CiAg
ICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGws
IH5TcGVjU3RyaW5nKSkKQEAgLTExMTY5LDYgKzExMTk2LDM3IEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAgICAgewogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSwgbG93Q2VsbChlZGdl
KSk7CiAgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVET01Ob2RlKEVkZ2UgZWRnZSwgTFZhbHVl
IGNlbGwpCisgICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2VsbCks
IGVkZ2UsIFNwZWNET01FbGVtZW50LCBpc05vdERPTU5vZGUoY2VsbCkpOworICAgIH0KKworICAg
IHZvaWQgc3BlY3VsYXRlRE9NTm9kZShFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxh
dGVET01Ob2RlKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3Vs
YXRlRE9NRWxlbWVudChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRM
X1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjRE9NRWxlbWVudCwgaXNO
b3RET01FbGVtZW50KGNlbGwpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURPTUVsZW1l
bnQoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlRE9NRWxlbWVudChlZGdlLCBs
b3dDZWxsKGVkZ2UpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50V3Jh
cHBlcihFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hF
Q0soCisgICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNEZXJpdmVkQXJy
YXksIGlzTm90VHlwZShjZWxsLCBET01Eb2N1bWVudFdyYXBwZXJUeXBlKSk7CisgICAgfQorCisg
ICAgdm9pZCBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoRWRnZSBlZGdlKQorICAgIHsKKyAg
ICAgICAgc3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOwor
ICAgIH0KICAgICAKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZyhFZGdlIGVkZ2UsIExWYWx1ZSBj
ZWxsKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5o
CmluZGV4IDg2NjhhNmIxODBjODkyZjE2OTkyNTUxOGQ3YTc1MmNkYTMwODU1MTEuLjhiNDgzYmM1
N2YxZTY4MzI3MzQ1NWRhOGY3MGM1MzkzNDgxMzU2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtODU1LDYgKzg1NSwzMCBAQCBjbGFzcyBBc3Nl
bWJseUhlbHBlcnMgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXIgewogICAgICAgICByZXR1cm4gYnJh
bmNoOCgKICAgICAgICAgICAgIEJlbG93LCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUlu
Zm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoT2JqZWN0VHlwZSkpOwogICAgIH0KKworICAg
IEp1bXAgYnJhbmNoSWZET01Ob2RlKEdQUlJlZyBjZWxsR1BSKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGJyYW5jaDgoCisgICAgICAgICAgICBBYm92ZU9yRXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwg
SlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihET01Ob2RlVHlwZSkp
OworICAgIH0KKworICAgIEp1bXAgYnJhbmNoSWZOb3RET01Ob2RlKEdQUlJlZyBjZWxsR1BSKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgoCisgICAgICAgICAgICBCZWxvdywgQWRkcmVz
cyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKERP
TU5vZGVUeXBlKSk7CisgICAgfQorCisgICAgSnVtcCBicmFuY2hJZkRPTUVsZW1lbnQoR1BSUmVn
IGNlbGxHUFIpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoOCgKKyAgICAgICAgICAgIEFi
b3ZlT3JFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgp
KSwgVHJ1c3RlZEltbTMyKERPTUVsZW1lbnRUeXBlKSk7CisgICAgfQorCisgICAgSnVtcCBicmFu
Y2hJZk5vdERPTUVsZW1lbnQoR1BSUmVnIGNlbGxHUFIpCisgICAgeworICAgICAgICByZXR1cm4g
YnJhbmNoOCgKKyAgICAgICAgICAgIEJlbG93LCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlw
ZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoRE9NRWxlbWVudFR5cGUpKTsKKyAgICB9
CiAgICAgCiAgICAgSnVtcCBicmFuY2hJZlR5cGUoR1BSUmVnIGNlbGxHUFIsIEpTVHlwZSB0eXBl
KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXgg
OTM1YzRmYWIxOWQyZDc3OWE1MGViNGU3N2YzNTE4NjFiMjExYTNmNi4uOTIyOTI1OTNiMjIyN2Ni
ZjIxYjI4OWJiNjJiYWNjNTQ2OTA5NGRmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmgKQEAgLTM2LDYgKzM2LDExIEBACiAjaW5jbHVkZSA8d3RmL1BsYXRmb3Jt
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVW5pcXVlZFN0cmluZ0ltcGwuaD4KIAorbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgTm9kZTsKK2NsYXNzIEpTRE9NR2xvYmFsT2JqZWN0OworfQorCiBu
YW1lc3BhY2UgSlNDIHsKIAogdHlwZWRlZiBpbnQ2NF90IEVuY29kZWRKU1ZhbHVlOwpAQCAtMTE3
LDYgKzEyMiw4IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIFdzOiBXYXRjaHBvaW50
U2V0KgogICAgIFo6IGludDMyX3QKICAgICBVaTogdWludDMyX3QKKyAgICBXbjogV2ViQ29yZTo6
Tm9kZSoKKyAgICBXZzogV2ViQ29yZTo6SlNET01HbG9iYWxPYmplY3QqCiAqLwogCiB0eXBlZGVm
IENhbGxGcmFtZSogKEpJVF9PUEVSQVRJT04gKkZfSklUT3BlcmF0aW9uX0VGSlpaKShFeGVjU3Rh
dGUqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJfdCk7CkBAIC0x
NzEsNiArMTc4LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9K
SVRPcGVyYXRpb25fRVpaKShFeGVjU3RhdGUqLCBpbnQzMl90LAogdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRVpTeW10YWJKKShFeGVjU3RhdGUq
LCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9uX0VPSVVpKShFeGVjU3RhdGUq
LCBKU09iamVjdCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgdWludDMyX3QpOwogdHlwZWRlZiBFbmNv
ZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRUpKSSkoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopOwor
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRVdn
V24pKEV4ZWNTdGF0ZSosIFdlYkNvcmU6OkpTRE9NR2xvYmFsT2JqZWN0KiwgV2ViQ29yZTo6Tm9k
ZSopOwogdHlwZWRlZiBKU0NlbGwqIChKSVRfT1BFUkFUSU9OICpDX0pJVE9wZXJhdGlvbl9FKShF
eGVjU3RhdGUqKTsKIHR5cGVkZWYgSlNDZWxsKiAoSklUX09QRVJBVElPTiAqQ19KSVRPcGVyYXRp
b25fRVopKEV4ZWNTdGF0ZSosIGludDMyX3QpOwogdHlwZWRlZiBKU0NlbGwqIChKSVRfT1BFUkFU
SU9OICpDX0pJVE9wZXJhdGlvbl9FQykoRXhlY1N0YXRlKiwgSlNDZWxsKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmNwcAppbmRleCBkNDU5MzljNTk1OWE4MDdkNDUwNWI5NGVhM2Nl
YTE1NWZmZjVjNGI4Li5mMmNhZWQwOGEwMzE0YTIyOTRkNjljODdmYmVjYTdhMDcyNTAxYjU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKQEAgLTI2MCw2ICsyNjAsMTAgQEAg
c3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgYmFzZVZhbHVlLCBjb24KICAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVHZXR0
ZXIoKSkKICAgICAgICAgICAgIGdldHRlciA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KHNs
b3QuZ2V0dGVyU2V0dGVyKCktPmdldHRlcigpKTsKIAorICAgICAgICBDdXN0b21HZXR0ZXJTZXR0
ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IG51bGxwdHI7CisgICAgICAgIGlmICgoc2xvdC5hdHRy
aWJ1dGVzKCkgJiBDdXN0b21BY2Nlc3NvcikgJiYgc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpICYm
IHNsb3QuY3VzdG9tR2V0dGVyU2V0dGVyKCktPmVtaXR0ZXIoKSkKKyAgICAgICAgICAgIGN1c3Rv
bUdldHRlclNldHRlciA9IHNsb3QuY3VzdG9tR2V0dGVyU2V0dGVyKCk7CisKICAgICAgICAgaWYg
KGtpbmQgPT0gR2V0QnlJREtpbmQ6OlB1cmUpIHsKICAgICAgICAgICAgIEFjY2Vzc0Nhc2U6OkFj
Y2Vzc1R5cGUgdHlwZTsKICAgICAgICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKSkK
QEAgLTI5MCw3ICsyOTQsOCBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVHZXRC
eUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbgogICAgICAgICAgICAg
bmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmdldCgKICAgICAgICAgICAgICAgICB2bSwgY29kZUJsb2Nr
LCB0eXBlLCBvZmZzZXQsIHN0cnVjdHVyZSwgY29uZGl0aW9uU2V0LCBsb2FkVGFyZ2V0RnJvbVBy
b3h5LAogICAgICAgICAgICAgICAgIHNsb3Qud2F0Y2hwb2ludFNldCgpLCBzbG90LmlzQ2FjaGVh
YmxlQ3VzdG9tKCkgPyBzbG90LmN1c3RvbUdldHRlcigpIDogbnVsbHB0ciwKLSAgICAgICAgICAg
ICAgICBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgPyBzbG90LnNsb3RCYXNlKCkgOiBudWxscHRy
KTsKKyAgICAgICAgICAgICAgICBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgPyBzbG90LnNsb3RC
YXNlKCkgOiBudWxscHRyLAorICAgICAgICAgICAgICAgIGN1c3RvbUdldHRlclNldHRlcik7CiAg
ICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0N1c3RvbUdldHRlclNldHRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q3VzdG9tR2V0dGVyU2V0dGVyLmgKaW5kZXggMjRiZmY4ODRlMGJlODBkODBlMmFhOWRmYmU1YjEy
NmYzZmM5YjdiZi4uN2FiNmRjOWU5NWVlZmMxMDk4NmU1NTJmZDc4YmVhYWZmZDliMzIzNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVy
LmgKQEAgLTMzLDYgKzMzLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIERPTUpJVDsK
KwogY2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiBwdWJs
aWM6CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKQEAgLTQxLDE1ICs0MywxNiBAQCBjbGFzcyBD
dXN0b21HZXR0ZXJTZXR0ZXIgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICB0eXBlZGVmIFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIEN1c3RvbUdldHRlcjsKICAgICB0eXBlZGVmIFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jIEN1c3RvbVNldHRlcjsKIAotICAgIHN0YXRpYyBDdXN0
b21HZXR0ZXJTZXR0ZXIqIGNyZWF0ZShWTSYgdm0sIEN1c3RvbUdldHRlciBjdXN0b21HZXR0ZXIs
IEN1c3RvbVNldHRlciBjdXN0b21TZXR0ZXIpCisgICAgc3RhdGljIEN1c3RvbUdldHRlclNldHRl
ciogY3JlYXRlKFZNJiB2bSwgQ3VzdG9tR2V0dGVyIGN1c3RvbUdldHRlciwgQ3VzdG9tU2V0dGVy
IGN1c3RvbVNldHRlciwgRE9NSklUKiBlbWl0dGVyID0gbnVsbHB0cikKICAgICB7Ci0gICAgICAg
IEN1c3RvbUdldHRlclNldHRlciogY3VzdG9tR2V0dGVyU2V0dGVyID0gbmV3IChOb3ROdWxsLCBh
bGxvY2F0ZUNlbGw8Q3VzdG9tR2V0dGVyU2V0dGVyPih2bS5oZWFwKSkgQ3VzdG9tR2V0dGVyU2V0
dGVyKHZtLCBjdXN0b21HZXR0ZXIsIGN1c3RvbVNldHRlcik7CisgICAgICAgIEN1c3RvbUdldHRl
clNldHRlciogY3VzdG9tR2V0dGVyU2V0dGVyID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8
Q3VzdG9tR2V0dGVyU2V0dGVyPih2bS5oZWFwKSkgQ3VzdG9tR2V0dGVyU2V0dGVyKHZtLCBjdXN0
b21HZXR0ZXIsIGN1c3RvbVNldHRlciwgZW1pdHRlcik7CiAgICAgICAgIGN1c3RvbUdldHRlclNl
dHRlci0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAgICByZXR1cm4gY3VzdG9tR2V0dGVyU2V0
dGVyOwogICAgIH0KIAogICAgIEN1c3RvbUdldHRlclNldHRlcjo6Q3VzdG9tR2V0dGVyIGdldHRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fZ2V0dGVyOyB9CiAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyOjpD
dXN0b21TZXR0ZXIgc2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0ZXI7IH0KKyAgICBET01K
SVQqIGVtaXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX2VtaXR0ZXI7IH0KIAogICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTU5LDE1ICs2MiwxNyBAQCBjbGFz
cyBDdXN0b21HZXR0ZXJTZXR0ZXIgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICBERUNMQVJF
X0VYUE9SVF9JTkZPOwogCiBwcml2YXRlOgotICAgIEN1c3RvbUdldHRlclNldHRlcihWTSYgdm0s
IEN1c3RvbUdldHRlciBnZXR0ZXIsIEN1c3RvbVNldHRlciBzZXR0ZXIpCisgICAgQ3VzdG9tR2V0
dGVyU2V0dGVyKFZNJiB2bSwgQ3VzdG9tR2V0dGVyIGdldHRlciwgQ3VzdG9tU2V0dGVyIHNldHRl
ciwgRE9NSklUKiBlbWl0dGVyKQogICAgICAgICA6IEpTQ2VsbCh2bSwgdm0uY3VzdG9tR2V0dGVy
U2V0dGVyU3RydWN0dXJlLmdldCgpKQogICAgICAgICAsIG1fZ2V0dGVyKGdldHRlcikKICAgICAg
ICAgLCBtX3NldHRlcihzZXR0ZXIpCisgICAgICAgICwgbV9lbWl0dGVyKGVtaXR0ZXIpCiAgICAg
ewogICAgIH0KIAogICAgIEN1c3RvbUdldHRlciBtX2dldHRlcjsKICAgICBDdXN0b21TZXR0ZXIg
bV9zZXR0ZXI7CisgICAgRE9NSklUKiBtX2VtaXR0ZXI7CiB9OwogCiBKU19FWFBPUlRfUFJJVkFU
RSBib29sIGNhbGxDdXN0b21TZXR0ZXIoRXhlY1N0YXRlKiwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpD
dXN0b21TZXR0ZXIsIGJvb2wgaXNBY2Nlc3NvciwgSlNWYWx1ZSB0aGlzVmFsdWUsIEpTVmFsdWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAppbmRleCBkYTcxM2Zm
ODczYThjMzI5MDRiODFlZTg4ZDE2NDlmZGZiY2RjZTRhLi44MWE5YTgyNzg1YzJjODJjOTE2ZGI4
OTllZDEzNjRiMGUzMTBhNTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRyaW5zaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRy
aW5zaWMuaApAQCAtNzEsNiArNzEsNyBAQCBlbnVtIEpTX0VYUE9SVF9QUklWQVRFIEludHJpbnNp
YyB7CiAgICAgVHlwZWRBcnJheUxlbmd0aEludHJpbnNpYywKICAgICBUeXBlZEFycmF5Qnl0ZUxl
bmd0aEludHJpbnNpYywKICAgICBUeXBlZEFycmF5Qnl0ZU9mZnNldEludHJpbnNpYywKKyAgICBE
T01Ob2RlRmlyc3RDaGlsZEludHJpbnNpYywKIAogICAgIC8vIERlYnVnZ2luZyBpbnRyaW5zaWNz
LiBUaGVzZSBhcmUgbWVhbnQgdG8gYmUgdXNlZCBhcyB0ZXN0aW5nIGhhY2tzIHdpdGhpbgogICAg
IC8vIGpzYy5jcHAgYW5kIHNob3VsZCBuZXZlciBiZSBleHBvc2VkIHRvIHVzZXJzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAppbmRleCAwZGY3NGYyOWQxMjdmNTUzZjc1MTQz
ZDA1MjNlNGM5NGI5YmVhMjY2Li5hNThmNGE2NWU4MTJhYjdmNTI1ZWU3NTZmOGM1MWE2MzgxZWEz
NmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaApAQCAtODcsNyArODcs
MTMgQEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKICAgICBKU01hcFR5cGUsCiAgICAgSlNTZXRU
eXBlLAogCi0gICAgTGFzdEpTQ09iamVjdFR5cGUgPSBKU1NldFR5cGUsCisgICAgLy8gVGhlIERP
TU5vZGVUeXBlIHZhbHVlIG11c3QgY29tZSBiZWZvcmUgYW55IEpTVHlwZSB0aGF0IGlzIGEgc3Vi
Y2xhc3Mgb2YgSlNOb2RlLgorICAgIERPTU5vZGVUeXBlLAorICAgIERPTURvY3VtZW50V3JhcHBl
clR5cGUsCisgICAgLy8gVGhlIERPTUVsZW1lbnRUeXBlIHZhbHVlIG11c3QgY29tZSBiZWZvcmUg
YW55IEpTVHlwZSB0aGF0IGlzIGEgc3ViY2xhc3Mgb2YgSlNFbGVtZW50LgorICAgIERPTUVsZW1l
bnRUeXBlLAorCisgICAgTGFzdEpTQ09iamVjdFR5cGUgPSBET01FbGVtZW50VHlwZSwKIH07CiAK
IENPTVBJTEVfQVNTRVJUKHNpemVvZihKU1R5cGUpID09IHNpemVvZih1aW50OF90KSwgc2l6ZW9m
X2pzdHlwZV9pc19vbmVfYnl0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Mb29rdXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5o
CmluZGV4IDViMmM0YTQ2YmQ4NmYyMDkxNjE4MGI0OTVlZTkyN2I3N2I0NGE4NGEuLjI1OGI2YmY5
MmMwNjg1NDk3NmIyZDFjOTVmYjA3NDJjODQwNjBmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0xvb2t1cC5oCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQmF0Y2hlZFRyYW5z
aXRpb25PcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDdXN0
b21HZXR0ZXJTZXR0ZXIuaCIKKyNpbmNsdWRlICJET01KSVQuaCIKICNpbmNsdWRlICJJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllcklubGluZXMuaCIKICNpbmNsdWRlICJJbnRyaW5z
aWMuaCIKQEAgLTc5LDYgKzgwLDggQEAgc3RydWN0IEhhc2hUYWJsZVZhbHVlIHsKICAgICBHZXRG
dW5jdGlvbiBwcm9wZXJ0eUdldHRlcigpIGNvbnN0IHsgQVNTRVJUKCEobV9hdHRyaWJ1dGVzICYg
QnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29yT3JMYXp5UHJvcGVydHlPckNvbnN0YW50KSk7IHJl
dHVybiByZWludGVycHJldF9jYXN0PEdldEZ1bmN0aW9uPihtX3ZhbHVlcy52YWx1ZTEpOyB9CiAg
ICAgUHV0RnVuY3Rpb24gcHJvcGVydHlQdXR0ZXIoKSBjb25zdCB7IEFTU0VSVCghKG1fYXR0cmli
dXRlcyAmIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6eVByb3BlcnR5T3JDb25zdGFu
dCkpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQdXRGdW5jdGlvbj4obV92YWx1ZXMudmFsdWUy
KTsgfQogCisgICAgRE9NSklUKiBkb21KSVQoKSBjb25zdCB7IEFTU0VSVChtX2F0dHJpYnV0ZXMg
JiBET01KSVRBdHRyaWJ1dGUpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxET01KSVQqPihtX3Zh
bHVlcy52YWx1ZTEpOyB9CisKICAgICBOYXRpdmVGdW5jdGlvbiBhY2Nlc3NvckdldHRlcigpIGNv
bnN0IHsgQVNTRVJUKG1fYXR0cmlidXRlcyAmIEFjY2Vzc29yKTsgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KG1fdmFsdWVzLnZhbHVlMSk7IH0KICAgICBOYXRpdmVGdW5j
dGlvbiBhY2Nlc3NvclNldHRlcigpIGNvbnN0IHsgQVNTRVJUKG1fYXR0cmlidXRlcyAmIEFjY2Vz
c29yKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KG1fdmFsdWVzLnZh
bHVlMik7IH0KICAgICBCdWlsdGluR2VuZXJhdG9yIGJ1aWx0aW5BY2Nlc3NvckdldHRlckdlbmVy
YXRvcigpIGNvbnN0OwpAQCAtMjYwLDYgKzI2Myw3IEBAIGlubGluZSBib29sIHB1dEVudHJ5KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSGFzaFRhYmxlVmFsdWUqIGVudHJ5LCBKU09iamVjdCogYmFz
CiAgICAgICAgIHJldHVybiByZWplY3QoZXhlYywgc2xvdC5pc1N0cmljdE1vZGUoKSwgU3RyaWN0
TW9kZVJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKTsKIAogICAgIGlmICghKGVudHJ5LT5hdHRy
aWJ1dGVzKCkgJiBSZWFkT25seSkpIHsKKyAgICAgICAgQVNTRVJUKCEoZW50cnktPmF0dHJpYnV0
ZXMoKSAmIERPTUpJVEF0dHJpYnV0ZSkpOwogICAgICAgICBib29sIGlzQWNjZXNzb3IgPSBlbnRy
eS0+YXR0cmlidXRlcygpICYgQ3VzdG9tQWNjZXNzb3I7CiAgICAgICAgIEpTVmFsdWUgdXBkYXRl
VGhpc1ZhbHVlID0gZW50cnktPmF0dHJpYnV0ZXMoKSAmIEN1c3RvbUFjY2Vzc29yID8gc2xvdC50
aGlzVmFsdWUoKSA6IEpTVmFsdWUoYmFzZSk7CiAgICAgICAgIGJvb2wgcmVzdWx0ID0gY2FsbEN1
c3RvbVNldHRlcihleGVjLCBlbnRyeS0+cHJvcGVydHlQdXR0ZXIoKSwgaXNBY2Nlc3NvciwgdXBk
YXRlVGhpc1ZhbHVlLCB2YWx1ZSk7CkBAIC0zMzcsNiArMzQxLDEzIEBAIGlubGluZSB2b2lkIHJl
aWZ5U3RhdGljUHJvcGVydHkoVk0mIHZtLCBjb25zdCBQcm9wZXJ0eU5hbWUmIHByb3BlcnR5TmFt
ZSwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmICh2YWx1ZS5hdHRyaWJ1
dGVzKCkgJiBET01KSVRBdHRyaWJ1dGUpIHsKKyAgICAgICAgRE9NSklUKiBkb21KSVQgPSB2YWx1
ZS5kb21KSVQoKTsKKyAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0
ZXIgPSBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZG9tSklULT5nZXR0ZXIoKSwgZG9t
SklULT5zZXR0ZXIoKSwgZG9tSklUKTsKKyAgICAgICAgdGhpc09iai5wdXREaXJlY3RDdXN0b21B
Y2Nlc3Nvcih2bSwgcHJvcGVydHlOYW1lLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIGF0dHJpYnV0ZXNG
b3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmlidXRlcygpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IEN1c3RvbUdl
dHRlclNldHRlcjo6Y3JlYXRlKHZtLCB2YWx1ZS5wcm9wZXJ0eUdldHRlcigpLCB2YWx1ZS5wcm9w
ZXJ0eVB1dHRlcigpKTsKICAgICB0aGlzT2JqLnB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBw
cm9wZXJ0eU5hbWUsIGN1c3RvbUdldHRlclNldHRlciwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSh2
YWx1ZS5hdHRyaWJ1dGVzKCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJvcGVydHlTbG90LmgKaW5kZXggNDBlOTMxZjYwZTZhYjAxZjhiM2E1NTI1ODExZWU1NGVjZGI4
M2MxYi4uYTk0MzliMTA4YzMxNTgwMjQwNmU2ZDM5YWNjMmQxZTY5YjMwMDUxNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKQEAgLTQ5LDYgKzQ5LDcg
QEAgZW51bSBBdHRyaWJ1dGUgewogICAgIENlbGxQcm9wZXJ0eSAgICAgID0gMSA8PCAxMSwgLy8g
cHJvcGVydHkgaXMgYSBsYXp5IHByb3BlcnR5IC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFi
bGVzCiAgICAgQ2xhc3NTdHJ1Y3R1cmUgICAgPSAxIDw8IDEyLCAvLyBwcm9wZXJ0eSBpcyBhIGxh
enkgY2xhc3Mgc3RydWN0dXJlIC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAg
UHJvcGVydHlDYWxsYmFjayAgPSAxIDw8IDEzLCAvLyBwcm9wZXJ0eSB0aGF0IGlzIGEgbGF6eSBw
cm9wZXJ0eSBjYWxsYmFjayAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcworICAgIERP
TUpJVEF0dHJpYnV0ZSAgID0gMSA8PCAxNCwgLy8gcHJvcGVydHkgaXMgYSBET00gSklUIGF0dHJp
YnV0ZSAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0
aW9uID0gQnVpbHRpbiB8IEZ1bmN0aW9uLCAvLyBoZWxwZXIgb25seSB1c2VkIGJ5IHN0YXRpYyBo
YXNodGFibGVzCiAgICAgQnVpbHRpbk9yRnVuY3Rpb25PckxhenlQcm9wZXJ0eSA9IEJ1aWx0aW4g
fCBGdW5jdGlvbiB8IENlbGxQcm9wZXJ0eSB8IENsYXNzU3RydWN0dXJlIHwgUHJvcGVydHlDYWxs
YmFjaywgLy8gaGVscGVyIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0
aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6eVByb3BlcnR5ID0gQnVpbHRpbiB8IEZ1bmN0aW9u
IHwgQWNjZXNzb3IgfCBDZWxsUHJvcGVydHkgfCBDbGFzc1N0cnVjdHVyZSB8IFByb3BlcnR5Q2Fs
bGJhY2ssIC8vIGhlbHBlciBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oIGIvU291cmNlL1dURi93dGYvU3RkTGli
RXh0cmFzLmgKaW5kZXggZWJlMzBjOTYxZjI2Yzg5ZmI4MmZhYmI2OTlhNGI1MTM2MjVlNDM4Ny4u
MGNiMTNhOGNlN2IwMWNmZGU4ZWYxYTIwMjJhYjg4ZTEyNWYxZTczNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYvU3RkTGliRXh0
cmFzLmgKQEAgLTY4LDYgKzY4LDggQEAKIC8vIE5VTEwgY2FuIGNhdXNlIGNvbXBpbGVyIHByb2Js
ZW1zLCBlc3BlY2lhbGx5IGluIGNhc2VzIG9mIG11bHRpcGxlIGluaGVyaXRhbmNlLgogI2RlZmlu
ZSBPQkpFQ1RfT0ZGU0VUT0YoY2xhc3MsIGZpZWxkKSAocmVpbnRlcnByZXRfY2FzdDxwdHJkaWZm
X3Q+KCYocmVpbnRlcnByZXRfY2FzdDxjbGFzcyo+KDB4NDAwMCktPmZpZWxkKSkgLSAweDQwMDAp
CiAKKyNkZWZpbmUgQ0FTVF9PRkZTRVQoZnJvbSwgdG8pIChyZWludGVycHJldF9jYXN0PHVpbnRw
dHJfdD4oc3RhdGljX2Nhc3Q8dG8+KChyZWludGVycHJldF9jYXN0PGZyb20+KDB4NDAwMCkpKSkg
LSAweDQwMDApCisKIC8vIFNUUklOR0laRTogQ2FuIGNvbnZlcnQgYW55IHZhbHVlIHRvIHF1b3Rl
ZCBzdHJpbmcsIGV2ZW4gZXhwYW5kYWJsZSBtYWNyb3MKICNkZWZpbmUgU1RSSU5HSVpFKGV4cCkg
I2V4cAogI2RlZmluZSBTVFJJTkdJWkVfVkFMVUVfT0YoZXhwKSBTVFJJTkdJWkUoZXhwKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBkNzc2ZTBkN2M0NTNmNmJmZWRkMDllYmJjNDBlNGEzYmJkNDBh
NGM1Li40YjVhZWNkNDlhMTJlZTkwNjQyNzdiYTY1NjEzMzJiNTg2YmI0M2VlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtNDgsNiArNDgsNyBAQCBzZXQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2Nzc2ppdCIKICAgICAiJHtXRUJDT1JFX0RJUn0vZG9t
IgogICAgICIke1dFQkNPUkVfRElSfS9kb20vZGVmYXVsdCIKKyAgICAiJHtXRUJDT1JFX0RJUn0v
ZG9taml0IgogICAgICIke1dFQkNPUkVfRElSfS9lZGl0aW5nIgogICAgICIke1dFQkNPUkVfRElS
fS9maWxlYXBpIgogICAgICIke1dFQkNPUkVfRElSfS9oaXN0b3J5IgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUvRE9NSklULmggYi9Tb3VyY2Uv
V2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9ET01KSVQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
Y2RiZjMwMjIxZDRmZWQyNTNlMjg1ZjkxOGNiYzMxNDIzYTQyM2IxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUvRE9NSklULmgKQEAg
LTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0RPTUpJVF9oCisjZGVmaW5lIFdlYkNv
cmVfRldEX0RPTUpJVF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRE9NSklULmg+CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2RmZy9ERkdT
bG93UGF0aEdlbmVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvZGZn
L0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2YxMWE5ZGM2MzgxZmMwNThiMDY2
MTM3NjRkZTkyMjkyMTE1MmMxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oCkBAIC0wLDAgKzEsNCBA
QAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9ERkdTbG93UGF0aEdlbmVyYXRvcl9oCisjZGVmaW5lIFdl
YkNvcmVfRldEX0RGR1Nsb3dQYXRoR2VuZXJhdG9yX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9ERkdTbG93UGF0aEdlbmVyYXRvci5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIzNTBhNmI3NTllMTA0MWJjZTljMDNkMWYwNzlmNDM0MDZiODc3MmYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfREZHU3BlY3VsYXRp
dmVKSVRfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9ERkdTcGVjdWxhdGl2ZUpJVF9oCisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvREZHU3BlY3VsYXRpdmVKSVQuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggZDQwYzQzZjYz
ZDU3ZTdlNTk3MGM3ZTYyZWZhODU2YWU2NGUzMmYyOS4uMTE2ZDVkZGY1MTk5MzdmYzY2MTM1NWEy
Yzg5YmViYjM4MDViYzJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5oCkBAIC03Miw2ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkKCkgeyByZXR1cm4gbV93b3JsZC5nZXQoKTsg
fQogICAgICAgICBib29sIHdvcmxkSXNOb3JtYWwoKSBjb25zdCB7IHJldHVybiBtX3dvcmxkSXNO
b3JtYWw7IH0KKyAgICAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldvcmxkSXNOb3JtYWwo
KSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNET01HbG9iYWxPYmplY3QsIG1fd29ybGRJc05v
cm1hbCk7IH0KIAogICAgICAgICBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucyYgYnVpbHRpbklu
dGVybmFsRnVuY3Rpb25zKCkgeyByZXR1cm4gbV9idWlsdGluSW50ZXJuYWxGdW5jdGlvbnM7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAppbmRleCBjZDUwYWVm
ODAxYjg1OTI5ZDY3Mzg2YWU2MjZjN2NhZTU4NzJmNGE0Li5jZWM2YjhkNmJkN2Y2NDUwYzRkMGE5
ZDcxNzNiM2E1YzkwZjM5NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdy
YXBwZXIuaApAQCAtMzAsMTAgKzMwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSlNE
T01XaW5kb3c7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1zdGF0aWMgY29uc3Qg
dWludDhfdCBKU05vZGVUeXBlID0gSlNDOjpMYXN0SlNDT2JqZWN0VHlwZSArIDE7Ci1zdGF0aWMg
Y29uc3QgdWludDhfdCBKU0RvY3VtZW50V3JhcHBlclR5cGUgPSBKU0M6Okxhc3RKU0NPYmplY3RU
eXBlICsgMjsKLXN0YXRpYyBjb25zdCB1aW50OF90IEpTRWxlbWVudFR5cGUgPSBKU0M6Okxhc3RK
U0NPYmplY3RUeXBlICsgMzsKLQogY2xhc3MgSlNET01PYmplY3QgOiBwdWJsaWMgSlNDOjpKU0Rl
c3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0M6OkpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0IEJhc2U7CkBAIC01OSw2ICs1NSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEltcGxl
bWVudGF0aW9uQ2xhc3M+IGNsYXNzIEpTRE9NV3JhcHBlciA6IHB1YmxpYyBKU0RPTU9iamVjdCB7
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRE9NV3JhcHBlciA9IHRydWU7CiAKICAgICBJ
bXBsZW1lbnRhdGlvbkNsYXNzJiB3cmFwcGVkKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxJ
bXBsZW1lbnRhdGlvbkNsYXNzJj4obV93cmFwcGVkLmdldCgpKTsgfQorICAgIHN0YXRpYyBwdHJk
aWZmX3Qgb2Zmc2V0T2ZXcmFwcGVkKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTRE9NV3Jh
cHBlcjxJbXBsZW1lbnRhdGlvbkNsYXNzPiwgbV93cmFwcGVkKTsgfQogCiBwcm90ZWN0ZWQ6CiAg
ICAgSlNET01XcmFwcGVyKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTQzo6SlNHbG9iYWxP
YmplY3QmIGdsb2JhbE9iamVjdCwgUmVmPEltcGxlbWVudGF0aW9uQ2xhc3M+JiYgaW1wbCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaAppbmRleCA2OWM0
Y2E4Mjg5MTljOWIxM2FiYWIxYzgzYjZiYWEwMmE5ZDZiYzJhLi5mMGFjN2M3NDE4YjA1OGU1YzEw
ZDE2OGIwMTIzNjUwOWQyMzUxMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RvY3VtZW50Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEb2N1bWVudEN1c3RvbS5oCkBAIC0zNSw3ICszNSw3IEBAIEFMV0FZU19JTkxJTkUgSlNEb2N1
bWVudCoganNEb2N1bWVudENhc3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChVTkxJ
S0VMWSghdmFsdWUuaXNDZWxsKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1
cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA9PSBKU0RvY3VtZW50V3JhcHBlclR5cGUgPyBKU0M6
OmpzQ2FzdDxKU0RvY3VtZW50Kj4odmFsdWUpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gdmFsdWUu
YXNDZWxsKCktPnR5cGUoKSA9PSBKU0M6OkRPTURvY3VtZW50V3JhcHBlclR5cGUgPyBKU0M6Ompz
Q2FzdDxKU0RvY3VtZW50Kj4odmFsdWUpIDogbnVsbHB0cjsKIH0KIAogSlNDOjpKU09iamVjdCog
Y2FjaGVkRG9jdW1lbnRXcmFwcGVyKEpTQzo6RXhlY1N0YXRlJiwgSlNET01HbG9iYWxPYmplY3Qm
LCBEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
bGVtZW50Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0
b20uaAppbmRleCAyYTFiYTAxODAzMjRkMDg0YjRhYzViNmIyYzk1N2VkYzM5YTc5NmY3Li5mMmJh
MGQ5YmFjYzUwMjYwOWJjNjJhNzFiZjk1Y2JhYTdjZmE0OTUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaApAQCAtMzUsNyArMzUsNyBAQCBBTFdBWVNf
SU5MSU5FIEpTRWxlbWVudCoganNFbGVtZW50Q2FzdChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc0NlbGwoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID49IEpTRWxlbWVudFR5cGUgPyBK
U0M6OmpzQ2FzdDxKU0VsZW1lbnQqPih2YWx1ZSkgOiBudWxscHRyOworICAgIHJldHVybiB2YWx1
ZS5hc0NlbGwoKS0+dHlwZSgpID49IEpTQzo6RE9NRWxlbWVudFR5cGUgPyBKU0M6OmpzQ2FzdDxK
U0VsZW1lbnQqPih2YWx1ZSkgOiBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCmluZGV4IGFiNjM2MWM2
NTNlZTE4NmUwNzRiY2UyMzUyZDUyY2JiODZmNzEzZjAuLjUwMTQ5ZjgyOTg5YzhhYTljYjEyNjY3
YzVkMjNkNjg0NmU2NzA3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1
c3RvbS5oCkBAIC04Miw3ICs4Miw3IEBAIEFMV0FZU19JTkxJTkUgSlNOb2RlKiBqc05vZGVDYXN0
KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoVU5MSUtFTFkoIXZhbHVlLmlzQ2VsbCgp
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50
eXBlKCkgPj0gSlNOb2RlVHlwZSA/IEpTQzo6anNDYXN0PEpTTm9kZSo+KHZhbHVlKSA6IG51bGxw
dHI7CisgICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPj0gSlNDOjpET01Ob2RlVHlw
ZSA/IEpTQzo6anNDYXN0PEpTTm9kZSo+KHZhbHVlKSA6IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFdyYXBwYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBh
YmxlLmgKaW5kZXggNWQ5MzI2MTE0YWE2ZjBjMWQ0ZjBiN2JjZTE2NGExMjM4ZTI2YTkwYy4uMmU1
ODJiYjUwYmM5OWVhYjNiMDg2MWRjZTBmODk3OGI3YmM5NTRlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3Mg
U2NyaXB0V3JhcHBhYmxlIHsKICAgICBKU0RPTU9iamVjdCogd3JhcHBlcigpIGNvbnN0OwogICAg
IHZvaWQgc2V0V3JhcHBlcihKU0RPTU9iamVjdCosIEpTQzo6V2Vha0hhbmRsZU93bmVyKiwgdm9p
ZCopOwogICAgIHZvaWQgY2xlYXJXcmFwcGVyKEpTRE9NT2JqZWN0Kik7CisgICAgc3RhdGljIHB0
cmRpZmZfdCBvZmZzZXRPZldyYXBwZXIoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU2NyaXB0
V3JhcHBhYmxlLCBtX3dyYXBwZXIpOyB9CiAKIHByb3RlY3RlZDoKICAgICB+U2NyaXB0V3JhcHBh
YmxlKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCmluZGV4IGZlYjE1ZGVlZjQ2M2NhZGRmYTc5OGRlMzIyYmQ0MmNkMTFmNDk1
MDAuLmQ4M2JjYTkyNzE2YmQ3ZGI0YjI4OWYwYjhhYjhmOWM1NGJiNzE3NGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02
MjYsNiArNjI2LDcgQEAgc3ViIEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1dGUKICAgICBwdXNo
KEBzcGVjaWFscywgIkRvbnRFbnVtIikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1lcmFibGUifSB8fCAkaXNfZ2xvYmFsX2NvbnN0cnVjdG9y
KTsKICAgICBwdXNoKEBzcGVjaWFscywgIlJlYWRPbmx5IikgaWYgSXNSZWFkb25seSgkYXR0cmli
dXRlKTsKICAgICBwdXNoKEBzcGVjaWFscywgIkN1c3RvbUFjY2Vzc29yIikgdW5sZXNzICRpc19n
bG9iYWxfY29uc3RydWN0b3Igb3IgSXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7
CisgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifTsKICAgICBwdXNoKEBzcGVj
aWFscywgIkFjY2Vzc29yIHwgQnVpbHRpbiIpIGlmICBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAk
YXR0cmlidXRlKTsKICAgICByZXR1cm4gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNw
ZWNpYWxzKSA6ICIwIjsKIH0KQEAgLTEyODUsMTEgKzEyODYsMTEgQEAgc3ViIEdlbmVyYXRlSGVh
ZGVyCiAgICAgaWYgKElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Okdsb2JhbE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOwogICAgIH0gZWxzaWYgKCRj
b2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiRG9jdW1lbnQiKSkg
ewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8o
SlNDOjpKU1R5cGUoSlNEb2N1bWVudFdyYXBwZXJUeXBlKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6OkRPTURvY3VtZW50V3JhcHBlclR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTtcbiIpOwogICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFj
ZSgkaW50ZXJmYWNlLCAiRWxlbWVudCIpKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkpTVHlwZShKU0VsZW1lbnRUeXBlKSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkRPTUVsZW1lbnRUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7XG4iKTsKICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJp
dHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIk5vZGUiKSkgewotICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpKU1R5cGUoSlNOb2RlVHlwZSks
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpET01Ob2RlVHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfQpAQCAtMTM0Nyw2ICsxMzQ4LDggQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgbXkgJGhhc0ZvcndhcmREZWNsYXJpbmdGdW5jdGlvbnMgPSAw
OwogICAgIG15ICRoYXNGb3J3YXJkRGVjbGFyaW5nQXR0cmlidXRlcyA9IDA7CiAKKyAgICBteSAk
aGFzRE9NSklUQXR0cmlidXRlcyA9IDA7CisKICAgICAjIEF0dHJpYnV0ZSBhbmQgZnVuY3Rpb24g
ZW51bXMKICAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7CiAgICAgICAgIGZvcmVhY2ggKEB7
JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKQEAgLTEzNjEsNiArMTM2NCw3IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgICAgICAgICAgICAgICRuZWVkc1Zpc2l0Q2hpbGRyZW4gPSAxOwogICAg
ICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRp
b25hbFN0cmluZzsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRoYXNET01KSVRBdHRyaWJ1
dGVzID0gMSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
T01KSVQifTsKIAogICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkZvcndhcmREZWNsYXJlSW5IZWFkZXIifSkgewogICAgICAgICAgICAg
ICAgICRoYXNGb3J3YXJkRGVjbGFyaW5nQXR0cmlidXRlcyA9IDE7CkBAIC0xNTc4LDYgKzE1ODIs
MTUgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAoJGhh
c0RPTUpJVEF0dHJpYnV0ZXMpIHsKKyAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8Ynl0ZWNvZGUv
RE9NSklULmg+In0gPSAxOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCIvLyBET01KSVQg
ZW1pdHRlcnMgZm9yIGF0dHJpYnV0ZXNcblxuIik7CisgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJp
YnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICAgICAgbmV4dCB1bmxl
c3MgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07
CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpET01KSVQqIGRvbUpJVEVt
aXR0ZXJGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAiKHZvaWQpO1xuIik7CisgICAgICAgIH0K
KyAgICB9CisKICAgICBpZiAoSGFzQ3VzdG9tQ29uc3RydWN0b3IoJGludGVyZmFjZSkpIHsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIi8vIEN1c3RvbSBjb25zdHJ1Y3RvclxuIik7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0JHtjbGFzc05hbWV9KEpTQzo6RXhlY1N0YXRlJik7XG5cbiIpOwpAQCAt
MTY1NCwxNCArMTY2NywxOSBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0aWVzSGFzaFRhYmxlCiAgICAg
ICAgIG15ICRzcGVjaWFsID0gR2V0SlNDQXR0cmlidXRlc0ZvckF0dHJpYnV0ZSgkaW50ZXJmYWNl
LCAkYXR0cmlidXRlKTsKICAgICAgICAgcHVzaChAJGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOwog
Ci0gICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2Us
ICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMSwgJGdl
dHRlcik7Ci0KLSAgICAgICAgaWYgKElzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKKyAgICAgICAg
aWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9
KSB7CisgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMSwgImRvbUpJVEVtaXR0ZXJGb3IiIC4g
JGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+bmFtZSkgLiAiKCkiKTsKICAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUy
LCAiMCIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0
dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0g
ICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMiwgJHNldHRlcik7CisgICAgICAgICAgICBteSAk
Z2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAk
YXR0cmlidXRlKTsKKyAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKKwor
ICAgICAgICAgICAgaWYgKElzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgICAg
ICBwdXNoKEAkaGFzaFZhbHVlMiwgIjAiKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwg
JGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1
ZTIsICRzZXR0ZXIpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgbXkgJGNv
bmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q29uZGl0aW9uYWwifTsKQEAgLTI0NTEsMTcgKzI0NjksMjMgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgICAgIG15IEBzcGVjaWFscyA9ICgpOwogICAgICAgICAgICAgcHVz
aChAc3BlY2lhbHMsICJEb250RGVsZXRlIikgdW5sZXNzICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGV0YWJsZSJ9OwogICAgICAgICAgICAgcHVzaChAc3Bl
Y2lhbHMsICJSZWFkT25seSIpIGlmIElzUmVhZG9ubHkoJGF0dHJpYnV0ZSk7CisgICAgICAgICAg
ICBwdXNoKEBzcGVjaWFscywgIkRPTUpJVEF0dHJpYnV0ZSIpIGlmICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9OwogICAgICAgICAgICAgbXkgJHNw
ZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwog
ICAgICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7CiAKLSAgICAgICAgICAg
IG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05h
bWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGdldHRlcik7
Ci0KLSAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAg
ICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklU
In0pIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAiZG9tSklURW1pdHRlckZv
ciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSAuICIoKSIpOwogICAgICAgICAgICAgICAgIHB1c2goQGhh
c2hWYWx1ZTIsICIwIik7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG15
ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUs
ICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRzZXR0ZXIp
OworICAgICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRp
bnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIHB1c2go
QGhhc2hWYWx1ZTEsICRnZXR0ZXIpOworCisgICAgICAgICAgICAgICAgaWYgKElzUmVhZG9ubHko
JGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgIjAi
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBteSAkc2V0
dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0
cmlidXRlKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJHNldHRlcik7
CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBteSAkY29u
ZGl0aW9uYWwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
b25kaXRpb25hbCJ9OwpAQCAtMzAzMSw2ICszMDU1LDQ5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAorICAg
ICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkRPTUpJVCJ9KSB7CisgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPiJ9ID0gMTsKKyAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01KSVRI
ZWxwZXIuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICBteSAkZG9tSklUQ2xhc3NOYW1lID0gIkRP
TUpJVCIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBteSAkZ2V0dGVyID0g
R2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRl
KTsKKyAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gSXNSZWFkb25seSgkYXR0cmlidXRlKSA/
ICJudWxscHRyIiA6IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFt
ZSwgJGF0dHJpYnV0ZSk7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImNs
YXNzICRkb21KSVRDbGFzc05hbWUgOiBwdWJsaWMgSlNDOjpET01KSVQge1xuIik7CisgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJwdWJsaWM6XG4iKTsKKyAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkZG9tSklUQ2xhc3NOYW1lKClcbiIpOworICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICA6IEpTQzo6RE9NSklUKCRnZXR0
ZXIsICRzZXR0ZXIsIEpTQzo6U3BlY0RPTU5vZGUpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxu
Iik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdm9pZCBjb21waWxl
RE9NR2V0QXR0cmlidXRlKERGRzo6U3BlY3VsYXRpdmVKSVQqIGppdCwgREZHOjpOb2RlKiBub2Rl
KSBvdmVycmlkZVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
e1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIERPTUpJ
VEhlbHBlciBoZWxwZXIoaml0KTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICBERkc6OlNwZWN1bGF0ZUNlbGxPcGVyYW5kIHdyYXBwZXIoaml0LCBub2Rl
LT5jaGlsZDEoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAgICAgREZHOjpHUFJUZW1wb3Jhcnkgd3JhcHBlZChqaXQpO1xuIik7CisgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIERGRzo6SlNWYWx1ZVJlZ3NUZW1wb3Jhcnkg
cmVzdWx0KGppdCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxu
Iik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIEdQUlJlZyB3
cmFwcGVyUmVnID0gd3JhcHBlci5ncHIoKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICBHUFJSZWcgd3JhcHBlZFJlZyA9IHdyYXBwZWQuZ3ByKCk7XG4i
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSlNWYWx1ZVJl
Z3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgaml0LT5zcGVjdWxhdGVET01Ob2RlKG5vZGUtPmNoaWxk
MSgpLCB3cmFwcGVyUmVnKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaml0
LT5tX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHdyYXBwZXJSZWcsIEpTTm9k
ZTo6b2Zmc2V0T2ZXcmFwcGVkKCkpLCB3cmFwcGVkUmVnKTtcbiIpOworICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBqaXQtPnNwZWN1bGF0aW9uQ2hlY2soQmFkVHlw
ZSwgSlNDOjpKU1ZhbHVlUmVncygpLCBudWxscHRyLCBoZWxwZXIuYnJhbmNoSWZOb3RDb250YWlu
ZXJOb2RlKHdyYXBwZWRSZWcpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7Cisg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGppdC0+bV9qaXQubG9h
ZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh3cmFwcGVkUmVnLCBDQVNUX09GRlNFVChOb2Rl
KiwgQ29udGFpbmVyTm9kZSopICsgQ29udGFpbmVyTm9kZTo6Zmlyc3RDaGlsZE1lbW9yeU9mZnNl
dCgpKSwgd3JhcHBlZFJlZyk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIlxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGhl
bHBlci50b0pTUmVzdWx0PEpTTm9kZT4obm9kZSwgd3JhcHBlclJlZywgd3JhcHBlZFJlZywgcmVz
dWx0UmVncyk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9
XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn07XG5cbiIpOworCisg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkRPTUpJVCogZG9tSklURW1p
dHRlckZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3Qo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSAuICIoKVxuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8JGRvbUpJVENsYXNzTmFtZT4gZW1pdHRl
cjtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAm
ZW1pdHRlci5nZXQoKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
fVxuXG4iKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIjZW5kaWZcbiIpIGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKIAogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIpOwpAQCAtNDk2NiwxMiArNTAzMywxNCBAQCBzdWIg
R2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBl
ID0gInN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+IjsKICAgICAgICAgfSBlbHNpZiAoIkAk
c3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0YW50SW50ZWdlci8pIHsKICAgICAgICAgICAgICRmaXJz
dFRhcmdldFR5cGUgPSAiIjsKKyAgICAgICAgfSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBt
L0RPTUpJVEF0dHJpYnV0ZS8pIHsKKyAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3Rh
dGljX2Nhc3Q8SlNDOjpET01KSVQqPiI7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAk
Zmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
PiI7CiAgICAgICAgICAgICAkc2Vjb25kVGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4iOwogICAgICAgICAgICAgJGhhc1NldHRlciA9ICJ0cnVl
IjsKICAgICAgICAgfQotICAgICAgICBpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0YW50
SW50ZWdlci8pIHsKKyAgICAgICAgaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9Db25zdGFudElu
dGVnZXJ8RE9NSklUQXR0cmlidXRlLykgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgeyBcIiRrZXlcIiwgQCRzcGVjaWFsc1skaV0sIE5vSW50cmluc2ljLCB7IChsb25nIGxv
bmcpIiAuICRmaXJzdFRhcmdldFR5cGUgLiAiKEAkdmFsdWUxWyRpXSkgfSB9LFxuIik7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB7IFwiJGtl
eVwiLCBAJHNwZWNpYWxzWyRpXSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KSIgLiAkZmlyc3RU
YXJnZXRUeXBlIC4gIihAJHZhbHVlMVskaV0pLCAoaW50cHRyX3QpICIgLiAkc2Vjb25kVGFyZ2V0
VHlwZSAuICIoQCR2YWx1ZTJbJGldKSB9IH0sXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IGQyODg1YTg0MmQ3NDQwOTkx
YzYzODM5NzBjYzdkOWIyYTY1ZjQyNmQuLmZjZWZiMGU4ODc0NzI4YTEwMjM1ZjFkMzQ5NGI5MDZh
ZDczNTQ5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExB
dHRyaWJ1dGVzLnR4dApAQCAtNTQsNiArNTQsNyBAQCBDdXN0b21SZXR1cm4KIEN1c3RvbVNldFBy
b3RvdHlwZQogQ3VzdG9tU2V0dGVyCiBDdXN0b21Ub0pTT2JqZWN0CitET01KSVQKIERlbGV0YWJs
ZQogRG9Ob3RDaGVja0NvbnN0YW50cwogRG9Ob3RDaGVja1NlY3VyaXR5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaAppbmRleCA0
YTMwY2ViNTk0YzZhYjA4ZDAwZDQ5NTY2MWYzYmI2NjAzMzJhMGQzLi5lYmM3MmI4YTJhZjNkMDdk
ODkwMzY4YjQ2OTYzNjk3NmU5YjBmY2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xh
c3MgV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgSlNUZXN0Tm9kZSA6IHB1YmxpYyBKU05vZGUg
ewogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkpTVHlwZShKU05vZGVU
eXBlKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8o
SlNDOjpET01Ob2RlVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogICAg
IHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGUyNmMzMzI5ZWRkMjJkMDg4MDEyNWJl
MjJmYmQxNjJiNmU3YWE5YmEuLmEzM2YxYmMzMjJiYTgzZGFhMzFhMWMyZDU3ZmI5YjZiOWIzOThm
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaApAQCAtNDEsNiArNDEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBDb250YWluZXJOb2RlOworY2xhc3MgRE9NSklUSGVscGVyOwogY2xhc3MgRG9jdW1l
bnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRmxvYXRQb2ludDsKQEAgLTk0LDYgKzk1LDcgQEAg
Y2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7CiAgICAgZnJpZW5kIGNsYXNzIERvY3Vt
ZW50OwogICAgIGZyaWVuZCBjbGFzcyBUcmVlU2NvcGU7CiAgICAgZnJpZW5kIGNsYXNzIFRyZWVT
Y29wZUFkb3B0ZXI7CisgICAgZnJpZW5kIGNsYXNzIERPTUpJVEhlbHBlcjsKIHB1YmxpYzoKICAg
ICBlbnVtIE5vZGVUeXBlIHsKICAgICAgICAgRUxFTUVOVF9OT0RFID0gMSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlk
bAppbmRleCAxMWQxZTZmMzYyM2QwMTAzNzk2M2YxMmNjY2MwNjhlZTRlNTAxZWJiLi40Y2U1YTg0
ZTNmNDBmZjgwZDcwYTc4NDQxZTMyMDgwMDQ3NjJmMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCkBAIC00
OSw3ICs0OSw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IG5vZGVU
eXBlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwYXJlbnROb2RlOwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBjaGlsZE5vZGVzOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBOb2RlPyBmaXJzdENoaWxkOworICAgIFtET01KSVRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2Rl
PyBmaXJzdENoaWxkOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBsYXN0Q2hpbGQ7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHByZXZpb3VzU2libGluZzsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZT8gbmV4dFNpYmxpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb21qaXQvRE9NSklUSGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb21qaXQvRE9NSklUSGVs
cGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDc2ZWZhYjkxMmJjYTM5MWY5NmZjYzkzNjJhMDNkYjk5MGU5Yjky
OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbWppdC9ET01KSVRIZWxwZXIu
aApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJOb2RlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvREZHU2xvd1BhdGhHZW5lcmF0b3Iu
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9ERkdTcGVjdWxhdGl2ZUpJVC5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oPgorCituYW1lc3BhY2Ug
SlNDIHsKK2NsYXNzIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjsKK2NsYXNzIFZNOworfQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUpJVEhlbHBlciB7CitwdWJsaWM6CisgICAgdHlw
ZWRlZiBKU0M6Ok1hY3JvQXNzZW1ibGVyIE1hY3JvQXNzZW1ibGVyOworCisgICAgRE9NSklUSGVs
cGVyKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVCogaml0KQorICAgICAgICA6IG1faml0KGppdCkK
KyAgICB7CisgICAgfQorCisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYnJhbmNoSWZOb3RDb250
YWluZXJOb2RlKEpTQzo6R1BSUmVnIHdyYXBwZWQpCisgICAgeworICAgICAgICByZXR1cm4gbV9q
aXQtPm1faml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Mod3JhcHBlZCwgTm9kZTo6bm9kZUZsYWdzTWVtb3J5T2Zmc2V0KCkpLCBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKE5vZGU6OklzQ29udGFpbmVyRmxhZykpOworICAgIH0K
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXI+CisgICAgdm9pZCB0b0pTUmVzdWx0KEpT
Qzo6REZHOjpOb2RlKiBub2RlLCBKU0M6OkdQUlJlZyB3cmFwcGVyUmVnLCBKU0M6OkdQUlJlZyB3
cmFwcGVkUmVzdWx0UmVnLCBKU0M6OkpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MpCisgICAgeworICAg
ICAgICBKU0M6OkRGRzo6R1BSVGVtcG9yYXJ5IHZhbHVlKG1faml0KTsKKyAgICAgICAgSlNDOjpE
Rkc6OkdQUlRlbXBvcmFyeSBzY3JhdGNoKG1faml0KTsKKworICAgICAgICBKU0M6OkdQUlJlZyBn
bG9iYWxPYmplY3RSZWcgPSB2YWx1ZS5ncHIoKTsKKyAgICAgICAgSlNDOjpHUFJSZWcgc2NyYXRj
aFJlZyA9IHNjcmF0Y2guZ3ByKCk7CisKKyAgICAgICAgYXV0byBub3ROdWxsID0gbV9qaXQtPm1f
aml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIHdyYXBwZWRSZXN1bHRS
ZWcpOworICAgICAgICBtX2ppdC0+bV9qaXQubW92ZVRydXN0ZWRWYWx1ZShKU0M6OmpzTnVsbCgp
LCByZXN1bHRSZWdzKTsKKyAgICAgICAgYXV0byBkb25lID0gbV9qaXQtPm1faml0Lmp1bXAoKTsK
KworICAgICAgICBub3ROdWxsLmxpbmsoJm1faml0LT5tX2ppdCk7CisKKyAgICAgICAgbV9qaXQt
Pm1faml0LmVtaXRMb2FkU3RydWN0dXJlKHdyYXBwZXJSZWcsIGdsb2JhbE9iamVjdFJlZywgc2Ny
YXRjaFJlZyk7CisgICAgICAgIG1faml0LT5tX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKGdsb2JhbE9iamVjdFJlZywgSlNDOjpTdHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNl
dCgpKSwgZ2xvYmFsT2JqZWN0UmVnKTsKKworICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExp
c3Qgc2xvd0Nhc2VzOworCisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQtPm1faml0LmJy
YW5jaFRlc3Q4KE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhn
bG9iYWxPYmplY3RSZWcsIEpTRE9NR2xvYmFsT2JqZWN0OjpvZmZzZXRPZldvcmxkSXNOb3JtYWwo
KSkpKTsKKworICAgICAgICBtX2ppdC0+bV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyh3cmFwcGVkUmVzdWx0UmVnLCBDQVNUX09GRlNFVChOb2RlKiwgU2NyaXB0V3JhcHBhYmxl
KikgKyBTY3JpcHRXcmFwcGFibGU6Om9mZnNldE9mV3JhcHBlcigpKSwgc2NyYXRjaFJlZyk7Cisg
ICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQtPm1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9B
c3NlbWJsZXI6Olplcm8sIHNjcmF0Y2hSZWcpKTsKKworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisg
ICAgICAgIG1faml0LT5tX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6Q2VsbFRhZyksIHJlc3VsdFJlZ3MudGFnR1BSKCkpOworI2VuZGlmCisgICAgICAgIG1f
aml0LT5tX2ppdC5tb3ZlKHNjcmF0Y2hSZWcsIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKKwor
ICAgICAgICBKU0M6OkVuY29kZWRKU1ZhbHVlICgqZnVuY3Rpb24pKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqLCBOb2RlKikgPSBbXShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9kZSogbm9kZSkgeworICAgICAgICAgICAg
cmV0dXJuIEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAqbm9k
ZSkpOworICAgICAgICB9OworICAgICAgICBtX2ppdC0+YWRkU2xvd1BhdGhHZW5lcmF0b3IoSlND
OjpERkc6OnNsb3dQYXRoQ2FsbChzbG93Q2FzZXMsIG1faml0LCBmdW5jdGlvbiwgcmVzdWx0UmVn
cywgZ2xvYmFsT2JqZWN0UmVnLCB3cmFwcGVkUmVzdWx0UmVnKSk7CisKKyAgICAgICAgZG9uZS5s
aW5rKCZtX2ppdC0+bV9qaXQpOworCisgICAgICAgIG1faml0LT5qc1ZhbHVlUmVzdWx0KHJlc3Vs
dFJlZ3MsIG5vZGUpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQqIG1faml0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290063</attachid>
            <date>2016-09-27 23:51:15 -0700</date>
            <delta_ts>2016-09-28 23:26:29 -0700</delta_ts>
            <desc>Prototype rev3</desc>
            <filename>bug-162544-20160927234816.patch</filename>
            <type>text/plain</type>
            <size>97190</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NjIxZDM4MjdkNjJiN2JmNDkxMDM3NjFjNzFmOWQ4NjMyNDAyNGY5Li5iMGFhMDMxMzNjMDAyODVm
NTcxZThlODJkMGY1NjQ3NTMzNzMwYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMDMgQEAKKzIwMTYtMDktMjcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBieXRlY29kZS9ET01KSVQuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaC4KKyAgICAgICAgKEpTQzo6
RE9NSklUOjplZGdlRmlsdGVyKToKKyAgICAgICAgKiBieXRlY29kZS9ET01KSVQuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oLgorICAg
ICAgICAoSlNDOjpET01KSVQ6OkRPTUpJVCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6c3BlY3Vs
YXRlZENoaWxkVHlwZSk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6Z2V0dGVyKToKKyAgICAgICAg
KEpTQzo6RE9NSklUOjpzZXR0ZXIpOgorICAgICAgICAqIGJ5dGVjb2RlL1BvbHltb3JwaGljQWNj
ZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Z2V0KToKKyAgICAgICAgKEpTQzo6
QWNjZXNzQ2FzZTo6Y2xvbmUpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjp2aXNpdFdlYWsp
OgorICAgICAgICAqIGJ5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmg6CisgICAgICAgICogYnl0
ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwOgorICAgICAgICAoSlNDOjpkdW1wU3BlY3VsYXRpb24p
OgorICAgICAgICAoSlNDOjpzcGVjdWxhdGlvbkZyb21TdHJ1Y3R1cmUpOgorICAgICAgICAqIGJ5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6CisgICAgICAgIChKU0M6OmlzRE9NTm9kZVNwZWN1bGF0
aW9uKToKKyAgICAgICAgKEpTQzo6aXNET01FbGVtZW50U3BlY3VsYXRpb24pOgorICAgICAgICAo
SlNDOjppc0RPTURvY3VtZW50V3JhcHBlclNwZWN1bGF0aW9uKToKKyAgICAgICAgKiBkZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFj
dEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAg
ICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6
CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6CisgICAgICAgICog
ZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAg
KiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6
Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpzaG91
bGRTcGVjdWxhdGVET01Ob2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpzaG91bGRTcGVj
dWxhdGVET01FbGVtZW50KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpzaG91bGRTcGVjdWxh
dGVET01Eb2N1bWVudFdyYXBwZXIpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc0RPTUpJ
VCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6REZH
OjpOb2RlOjpzaG91bGRTcGVjdWxhdGVBcnJheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6YmFzaWNCbG9ja0xvY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZH
Tm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6U2FmZVRvRXhlY3V0ZUVkZ2U6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpERkc6OnNh
ZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURPTU5vZGUpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01FbGVtZW50KToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVy
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURPTUdldEF0dHJpYnV0ZSk6Cisg
ICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2lu
ZC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdV
c2VLaW5kLmg6CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6CisgICAgICAgIChK
U0M6OkRGRzo6aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAg
ICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdU
b0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRl
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNOb3RET01Ob2RlKToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNOb3RET01FbGVtZW50KToK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlRE9NTm9kZSk6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZURPTUVsZW1l
bnQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVET01E
b2N1bWVudFdyYXBwZXIpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpz
cGVjdWxhdGVTZXRPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBl
cnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkRPTU5vZGUpOgor
ICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90RE9NTm9kZSk6CisgICAg
ICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZET01FbGVtZW50KToKKyAgICAgICAg
KEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdERPTUVsZW1lbnQpOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90T2JqZWN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAg
ICAgICAgKEpTQzo6dHJ5Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKiBydW50aW1lL0N1c3RvbUdl
dHRlclNldHRlci5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50cmluc2ljLmg6CisgICAgICAgICog
cnVudGltZS9KU1R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0xvb2t1cC5oOgorICAgICAgICAo
SlNDOjpIYXNoVGFibGVWYWx1ZTo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6cHV0RW50cnkpOgor
ICAgICAgICAoSlNDOjpyZWlmeVN0YXRpY1Byb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1lL1By
b3BlcnR5U2xvdC5oOgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogYnl0
ZWNvZGUvRE9NSklULmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFbGVtZW50Q3VzdG9tLmguCisgICAgICAgIChKU0M6OkRPTUpJVDo6ZWRnZUZpbHRlcik6Cisg
ICAgICAgICogYnl0ZWNvZGUvRE9NSklULmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaC4KKyAgICAgICAgKEpTQzo6RE9NSklUOjpET01K
SVQpOgorICAgICAgICAoSlNDOjpET01KSVQ6OnNwZWN1bGF0ZWRDaGlsZFR5cGUpOgorICAgICAg
ICAoSlNDOjpET01KSVQ6OmdldHRlcik6CisgICAgICAgIChKU0M6OkRPTUpJVDo6c2V0dGVyKToK
KyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0
QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2spOgor
ICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmNwcDoKKyAgICAgICAgKEpTQzo6R2V0
QnlJZFZhcmlhbnQ6OkdldEJ5SWRWYXJpYW50KToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlh
bnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChKU0M6OkdldEJ5SWRWYXJpYW50OjphdHRlbXB0VG9N
ZXJnZSk6CisgICAgICAgIChKU0M6OkdldEJ5SWRWYXJpYW50OjpkdW1wSW5Db250ZXh0KToKKyAg
ICAgICAgKiBieXRlY29kZS9HZXRCeUlkVmFyaWFudC5oOgorICAgICAgICAoSlNDOjpHZXRCeUlk
VmFyaWFudDo6Y3VzdG9tR2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlh
bnQ6OmRvbUpJVCk6CisgICAgICAgIChKU0M6OkdldEJ5SWRWYXJpYW50OjppbnRyaW5zaWMpOiBE
ZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcDoKKyAgICAg
ICAgKEpTQzo6QWNjZXNzQ2FzZTo6Z2V0KToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Y2xv
bmUpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjp2aXNpdFdlYWspOgorICAgICAgICAqIGJ5
dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmg6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmN1
c3RvbUdldHRlclNldHRlcik6CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpkdW1wU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjpzcGVjdWxh
dGlvbkZyb21TdHJ1Y3R1cmUpOgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmg6
CisgICAgICAgIChKU0M6OmlzRE9NTm9kZVNwZWN1bGF0aW9uKToKKyAgICAgICAgKEpTQzo6aXNE
T01FbGVtZW50U3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjppc0RPTURvY3VtZW50V3JhcHBl
clNwZWN1bGF0aW9uKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3Rh
dGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZURPTUpJVEdl
dHRlcik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQp
OgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xv
YmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFzZTo6Zm9sZENvbnN0YW50cyk6Cisg
ICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKToK
KyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4
dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6Omhhc0hlYXBQcmVkaWN0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpO
b2RlOjpzaG91bGRTcGVjdWxhdGVET01Ob2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpz
aG91bGRTcGVjdWxhdGVET01FbGVtZW50KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpzaG91
bGRTcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIpOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6
Omhhc0RPTUpJVCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6ZG9tSklUKToKKyAgICAgICAg
KEpTQzo6REZHOjpOb2RlOjpzaG91bGRTcGVjdWxhdGVBcnJheSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkRGRzo6Tm9kZTo6YmFzaWNCbG9ja0xvY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAg
IChKU0M6OkRGRzo6U2FmZVRvRXhlY3V0ZUVkZ2U6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlND
OjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURPTU5vZGUp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01FbGVtZW50
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRG9jdW1l
bnRXcmFwcGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRl
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURPTUdldEF0dHJp
YnV0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcv
REZHVXNlS2luZC5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAq
IGRmZy9ERkdVc2VLaW5kLmg6CisgICAgICAgIChKU0M6OkRGRzo6dHlwZUZpbHRlckZvcik6Cisg
ICAgICAgIChKU0M6OkRGRzo6aXNDZWxsKToKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVz
LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRM
TG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
c3BlY3VsYXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNOb3RE
T01Ob2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNOb3RET01F
bGVtZW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRl
RE9NTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0
ZURPTUVsZW1lbnQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVj
dWxhdGVET01Eb2N1bWVudFdyYXBwZXIpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjpzcGVjdWxhdGVTZXRPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9Bc3Nl
bWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkRP
TU5vZGUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90RE9NTm9k
ZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZET01FbGVtZW50KToK
KyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdERPTUVsZW1lbnQpOgor
ICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90T2JqZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGppdC9SZXBhdGNo
LmNwcDoKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKiBydW50aW1l
L0N1c3RvbUdldHRlclNldHRlci5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50cmluc2ljLmg6Cisg
ICAgICAgICogcnVudGltZS9KU1R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0xvb2t1cC5oOgor
ICAgICAgICAoSlNDOjpIYXNoVGFibGVWYWx1ZTo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6cHV0
RW50cnkpOgorICAgICAgICAoSlNDOjpyZWlmeVN0YXRpY1Byb3BlcnR5KToKKyAgICAgICAgKiBy
dW50aW1lL1Byb3BlcnR5U2xvdC5oOgorCiAyMDE2LTA5LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBkZXByZWNhdGVkIEVOQ1JZUFRFRF9NRURJ
QSBpbXBsZW1lbnRhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNjVjNjNjMjI4NTllNGFkZTVlNGVlYTRkYzU2YjgwNzEz
NTQ0MGJhMC4uZjFkN2M5ZTFhYzExNzNmMGIzNWVjMjA2NzE1NjU0ZjUwYTFkNzNiOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxNi0wOS0yNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KKworICAgICAgICBbQmluZGluZ10gSW50cm9kdWNpbmcgRE9NIGJpbmRpbmcgSklU
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1NDQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9T
dGRMaWJFeHRyYXMuaDoKKwogMjAxNi0wOS0yNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgZGVwcmVjYXRlZCBFTkNSWVBURURfTUVESUEgaW1wbGVt
ZW50YXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA4MzU2Mzk2ZjA1MjBhM2ZkODYzODQ2ZGFiOGQ5YjVi
ZDE1NDQ5Zi4uMWMzOGUwNTNlMjM4OTQwYTM0NzE0MDIxZDcxOTAyYzU2YjdiZGFiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE2LTA5LTI3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtCaW5kaW5nXSBJbnRyb2R1Y2luZyBET00gYmlu
ZGluZyBKSVQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MjU0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUv
RE9NSklULmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2RmZy9ERkdTbG93
UGF0aEdlbmVyYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6b2Zmc2V0T2ZXcmFwcGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6d3JhcHBlZCk6IERlbGV0ZWQuCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6anNEb2N1bWVu
dENhc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oOgorICAgICAg
ICAoV2ViQ29yZTo6anNFbGVtZW50Q2FzdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpqc05vZGVDYXN0KToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFdyYXBw
YWJsZTo6b2Zmc2V0T2ZXcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1dGUpOgor
ICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVQcm9wZXJ0aWVzSGFz
aFRhYmxlKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lE
TEF0dHJpYnV0ZXMudHh0OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb2RlLmg6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vTm9kZS5pZGw6
CisgICAgICAgICogZG9taml0L0RPTUpJVEhlbHBlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTUpJVEhlbHBlcjo6RE9NSklUSGVscGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUpJ
VEhlbHBlcjo6YnJhbmNoSWZOb3RDb250YWluZXJOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUpJVEhlbHBlcjo6dG9KU1Jlc3VsdCk6CisKIDIwMTYtMDktMjcgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgW0dUS10g
SGFuZGxlIFdheWxhbmQgJiBYMTEgY29ycmVjdGx5IGZvciBHU1RfR0wKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YzkxZGVjNTg1YmQzODNmYzYyOWNhMDkxN2VhMTg3NWY5
OTU1NDQ0Li43NDAxNGY2ZDkwNjdmZjAxZTEzZWU2N2EwMzdlNjk3MTAxZjNhMDFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xOTgsNiArMTk4LDcgQEAgc2V0KEphdmFT
Y3JpcHRDb3JlX1NPVVJDRVMKICAgICBieXRlY29kZS9Db2RlT3JpZ2luLmNwcAogICAgIGJ5dGVj
b2RlL0NvZGVUeXBlLmNwcAogICAgIGJ5dGVjb2RlL0NvbXBsZXhHZXRTdGF0dXMuY3BwCisgICAg
Ynl0ZWNvZGUvRE9NSklULmNwcAogICAgIGJ5dGVjb2RlL0RhdGFGb3JtYXQuY3BwCiAgICAgYnl0
ZWNvZGUvREZHRXhpdFByb2ZpbGUuY3BwCiAgICAgYnl0ZWNvZGUvRGVmZXJyZWRDb21waWxhdGlv
bkNhbGxiYWNrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0RPTUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRE9NSklULmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMmIwNjI4NGI1YTEzZWI0NTFhOGU3MTlkMDMyY2Q4OWY1Y2ZhM2E1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RPTUpJVC5jcHAK
QEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJET01KSVQuaCIKKworI2lmIEVO
QUJMRShERkdfSklUKQorCituYW1lc3BhY2UgSlNDIHsKKworREZHOjpVc2VLaW5kIERPTUpJVDo6
ZWRnZUZpbHRlcigpCit7CisgICAgaWYgKGlzRE9NRG9jdW1lbnRXcmFwcGVyU3BlY3VsYXRpb24o
bV9zcGVjdWxhdGVkQ2hpbGRUeXBlKSkKKyAgICAgICAgcmV0dXJuIERGRzo6RE9NRG9jdW1lbnRX
cmFwcGVyVXNlOworICAgIGlmIChpc0RPTUVsZW1lbnRTcGVjdWxhdGlvbihtX3NwZWN1bGF0ZWRD
aGlsZFR5cGUpKQorICAgICAgICByZXR1cm4gREZHOjpET01FbGVtZW50VXNlOworICAgIGlmIChp
c0RPTU5vZGVTcGVjdWxhdGlvbihtX3NwZWN1bGF0ZWRDaGlsZFR5cGUpKQorICAgICAgICByZXR1
cm4gREZHOjpET01Ob2RlVXNlOworICAgIHJldHVybiBERkc6OlVudHlwZWRVc2U7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRE9NSklULmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvRE9NSklULmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGVhNDg1ZDllZjk0MTA1NGM3
NzM1NWRiOGQ0YTA0ZmRiMjlmODY5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9ET01KSVQuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJQcm9wZXJ0eVNsb3QuaCIKKyNpbmNsdWRlICJQdXRQcm9wZXJ0eVNsb3QuaCIKKyNpbmNsdWRl
ICJTcGVjdWxhdGVkVHlwZS5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisjaW5jbHVkZSAiREZH
VXNlS2luZC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKKwor
Y2xhc3MgU3BlY3VsYXRpdmVKSVQ7CitzdHJ1Y3QgTm9kZTsKKworfQorCitjbGFzcyBET01KSVQg
eworcHVibGljOgorICAgIHR5cGVkZWYgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgQ3VzdG9t
R2V0dGVyOworICAgIHR5cGVkZWYgUHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmMgQ3VzdG9t
U2V0dGVyOworCisgICAgRE9NSklUKEN1c3RvbUdldHRlciBnZXR0ZXIsIEN1c3RvbVNldHRlciBz
ZXR0ZXIsIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0ZWRDaGlsZFR5cGUpCisgICAgICAgIDogbV9n
ZXR0ZXIoZ2V0dGVyKQorICAgICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAgICAgICAgLCBtX3Nw
ZWN1bGF0ZWRDaGlsZFR5cGUoc3BlY3VsYXRlZENoaWxkVHlwZSkKKyAgICB7CisgICAgfQorCisg
ICAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRlZENoaWxkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3BlY3VsYXRlZENoaWxkVHlwZTsgfQorICAgIEN1c3RvbUdldHRlciBnZXR0ZXIoKSBjb25zdCB7
IHJldHVybiBtX2dldHRlcjsgfQorICAgIEN1c3RvbVNldHRlciBzZXR0ZXIoKSBjb25zdCB7IHJl
dHVybiBtX3NldHRlcjsgfQorCisjaWYgRU5BQkxFKERGR19KSVQpCisgICAgREZHOjpVc2VLaW5k
IGVkZ2VGaWx0ZXIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcGlsZURPTUdldEF0dHJpYnV0ZShE
Rkc6OlNwZWN1bGF0aXZlSklUKiwgREZHOjpOb2RlKik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAg
ICBDdXN0b21HZXR0ZXIgbV9nZXR0ZXI7CisgICAgQ3VzdG9tU2V0dGVyIG1fc2V0dGVyOworICAg
IFNwZWN1bGF0ZWRUeXBlIG1fc3BlY3VsYXRlZENoaWxkVHlwZTsKK307CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAppbmRleCAxNWIz
YzgxM2NiOGJlODA3MzNlM2I0MTVmNmE5OGU3ZjlhYzhkZDRmLi4xYzY1ZDhmMWRjYzEyNjhhNWQx
ZjBhM2I3ZTk2ZmE2YTJhNjNlMjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCkBAIC0yMTUsNiArMjE1LDcgQEAgR2V0QnlJZFN0YXR1
cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFj
aygKICAgICAgICAgICAgIGNhc2UgQ29tcGxleEdldFN0YXR1czo6SW5saW5lYWJsZTogewogICAg
ICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0YXR1cz4gY2FsbExpbmtTdGF0
dXM7CiAgICAgICAgICAgICAgICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rpb24gPSBudWxs
cHRyOworICAgICAgICAgICAgICAgIEN1c3RvbUdldHRlclNldHRlciogY3VzdG9tR2V0dGVyU2V0
dGVyID0gbnVsbHB0cjsKIAogICAgICAgICAgICAgICAgIHN3aXRjaCAoYWNjZXNzLnR5cGUoKSkg
ewogICAgICAgICAgICAgICAgIGNhc2UgQWNjZXNzQ2FzZTo6TG9hZDoKQEAgLTIzNCw2ICsyMzUs
MTIgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRo
b3V0RXhpdFNpdGVGZWVkYmFjaygKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBB
Y2Nlc3NDYXNlOjpDdXN0b21BY2Nlc3NvckdldHRlcjogeworICAgICAgICAgICAgICAgICAgICBj
dXN0b21HZXR0ZXJTZXR0ZXIgPSBhY2Nlc3MuY3VzdG9tR2V0dGVyU2V0dGVyKCk7CisgICAgICAg
ICAgICAgICAgICAgIGlmICghY3VzdG9tR2V0dGVyU2V0dGVyLT5lbWl0dGVyKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhzbG93UGF0aFN0YXRlLCB0cnVl
KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEl0IHdv
dWxkIGJlIHRvdGFsbHkgc3dlZXQgdG8gc3VwcG9ydCBtb3JlIG9mIHRoZXNlIGF0IHNvbWUgcG9p
bnQgaW4gdGhlCiAgICAgICAgICAgICAgICAgICAgIC8vIGZ1dHVyZS4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzA1MgpAQCAtMjQ0LDcgKzI1MSw4IEBAIEdldEJ5
SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRl
RmVlZGJhY2soCiAgICAgICAgICAgICAgICAgR2V0QnlJZFZhcmlhbnQgdmFyaWFudCgKICAgICAg
ICAgICAgICAgICAgICAgU3RydWN0dXJlU2V0KHN0cnVjdHVyZSksIGNvbXBsZXhHZXRTdGF0dXMu
b2Zmc2V0KCksCiAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXhHZXRTdGF0dXMuY29uZGl0aW9u
U2V0KCksIFdURk1vdmUoY2FsbExpbmtTdGF0dXMpLAotICAgICAgICAgICAgICAgICAgICBpbnRy
aW5zaWNGdW5jdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGludHJpbnNpY0Z1bmN0aW9uLAor
ICAgICAgICAgICAgICAgICAgICBjdXN0b21HZXR0ZXJTZXR0ZXIpOwogCiAgICAgICAgICAgICAg
ICAgaWYgKCFyZXN1bHQuYXBwZW5kVmFyaWFudCh2YXJpYW50KSkKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoc2xvd1BhdGhTdGF0ZSwgdHJ1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmNwcAppbmRleCBhODY5
ZDRhMWM5NGU3ZTQ3NTczMTc0NGM3YjMwM2Q1MDY1ZTBmNDMxLi5iYTYzZjQ0YTUwZWMyNjM3MDlk
MjU2N2U2NmJjZjc5NjMyZDcxODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9HZXRCeUlkVmFyaWFudC5jcHAKQEAgLTM2LDEyICszNiwxNCBAQCBHZXRCeUlkVmFy
aWFudDo6R2V0QnlJZFZhcmlhbnQoCiAgICAgY29uc3QgU3RydWN0dXJlU2V0JiBzdHJ1Y3R1cmVT
ZXQsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCwKICAgICBjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRp
dGlvblNldCYgY29uZGl0aW9uU2V0LAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0YXR1
cz4gY2FsbExpbmtTdGF0dXMsCi0gICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rpb24pCisg
ICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rpb24sCisgICAgQ3VzdG9tR2V0dGVyU2V0dGVy
KiBjdXN0b21HZXR0ZXJTZXR0ZXIpCiAgICAgOiBtX3N0cnVjdHVyZVNldChzdHJ1Y3R1cmVTZXQp
CiAgICAgLCBtX2NvbmRpdGlvblNldChjb25kaXRpb25TZXQpCiAgICAgLCBtX29mZnNldChvZmZz
ZXQpCiAgICAgLCBtX2NhbGxMaW5rU3RhdHVzKFdURk1vdmUoY2FsbExpbmtTdGF0dXMpKQogICAg
ICwgbV9pbnRyaW5zaWNGdW5jdGlvbihpbnRyaW5zaWNGdW5jdGlvbikKKyAgICAsIG1fY3VzdG9t
R2V0dGVyU2V0dGVyKGN1c3RvbUdldHRlclNldHRlcikKIHsKICAgICBpZiAoIXN0cnVjdHVyZVNl
dC5zaXplKCkpIHsKICAgICAgICAgQVNTRVJUKG9mZnNldCA9PSBpbnZhbGlkT2Zmc2V0KTsKQEAg
LTY1LDYgKzY3LDcgQEAgR2V0QnlJZFZhcmlhbnQmIEdldEJ5SWRWYXJpYW50OjpvcGVyYXRvcj0o
Y29uc3QgR2V0QnlJZFZhcmlhbnQmIG90aGVyKQogICAgIG1fY29uZGl0aW9uU2V0ID0gb3RoZXIu
bV9jb25kaXRpb25TZXQ7CiAgICAgbV9vZmZzZXQgPSBvdGhlci5tX29mZnNldDsKICAgICBtX2lu
dHJpbnNpY0Z1bmN0aW9uID0gb3RoZXIubV9pbnRyaW5zaWNGdW5jdGlvbjsKKyAgICBtX2N1c3Rv
bUdldHRlclNldHRlciA9IG90aGVyLm1fY3VzdG9tR2V0dGVyU2V0dGVyOwogICAgIGlmIChvdGhl
ci5tX2NhbGxMaW5rU3RhdHVzKQogICAgICAgICBtX2NhbGxMaW5rU3RhdHVzID0gc3RkOjptYWtl
X3VuaXF1ZTxDYWxsTGlua1N0YXR1cz4oKm90aGVyLm1fY2FsbExpbmtTdGF0dXMpOwogICAgIGVs
c2UKQEAgLTEwMyw2ICsxMDYsOSBAQCBib29sIEdldEJ5SWRWYXJpYW50OjphdHRlbXB0VG9NZXJn
ZShjb25zdCBHZXRCeUlkVmFyaWFudCYgb3RoZXIpCiAgICAgaWYgKCFjYW5NZXJnZUludHJpbnNp
Y1N0cnVjdHVyZXMob3RoZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9j
dXN0b21HZXR0ZXJTZXR0ZXIgIT0gb3RoZXIubV9jdXN0b21HZXR0ZXJTZXR0ZXIpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgIGlmIChtX2NvbmRpdGlvblNldC5pc0VtcHR5KCkgIT0gb3Ro
ZXIubV9jb25kaXRpb25TZXQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
CkBAIC0xMzgsNiArMTQ0LDggQEAgdm9pZCBHZXRCeUlkVmFyaWFudDo6ZHVtcEluQ29udGV4dChQ
cmludFN0cmVhbSYgb3V0LCBEdW1wQ29udGV4dCogY29udGV4dCkgY29uc3QKICAgICAgICAgb3V0
LnByaW50KCIsIGNhbGwgPSAiLCAqbV9jYWxsTGlua1N0YXR1cyk7CiAgICAgaWYgKG1faW50cmlu
c2ljRnVuY3Rpb24pCiAgICAgICAgIG91dC5wcmludCgiLCBpbnRyaW5zaWMgPSAiLCAqbV9pbnRy
aW5zaWNGdW5jdGlvbik7CisgICAgaWYgKG1fY3VzdG9tR2V0dGVyU2V0dGVyKQorICAgICAgICBv
dXQucHJpbnQoIiwgY3VzdG9tID0gIiwgKm1fY3VzdG9tR2V0dGVyU2V0dGVyKTsKICAgICBvdXQu
cHJpbnQoIj4iKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0dldEJ5SWRWYXJpYW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0
QnlJZFZhcmlhbnQuaAppbmRleCBmMmQ4Y2FmYTdkZjBiNTIwMzRkZWI5MWQ5ZWYzMDg4M2I1NTgy
YzcwLi5iMzc4NTVhNjQwNTU4NjllZDIxYmQzMmY2Nzg3OGVjZTY1NjI3MDlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuaApAQCAtNDQsNyAr
NDQsOCBAQCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7CiAgICAgICAgIGNvbnN0IFN0cnVjdHVyZVNl
dCYgc3RydWN0dXJlU2V0ID0gU3RydWN0dXJlU2V0KCksIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9
IGludmFsaWRPZmZzZXQsCiAgICAgICAgIGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0
JiA9IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0KCksCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxDYWxsTGlua1N0YXR1cz4gPSBudWxscHRyLAotICAgICAgICBKU0Z1bmN0aW9uKiA9IG51bGxw
dHIpOworICAgICAgICBKU0Z1bmN0aW9uKiA9IG51bGxwdHIsCisgICAgICAgIEN1c3RvbUdldHRl
clNldHRlciogPSBudWxscHRyKTsKIAogICAgIH5HZXRCeUlkVmFyaWFudCgpOwogICAgIApAQCAt
NjMsNiArNjQsOCBAQCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7CiAgICAgQ2FsbExpbmtTdGF0dXMq
IGNhbGxMaW5rU3RhdHVzKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsTGlua1N0YXR1cy5nZXQoKTsg
fQogICAgIEpTRnVuY3Rpb24qIGludHJpbnNpY0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9p
bnRyaW5zaWNGdW5jdGlvbjsgfQogICAgIEludHJpbnNpYyBpbnRyaW5zaWMoKSBjb25zdCB7IHJl
dHVybiBtX2ludHJpbnNpY0Z1bmN0aW9uID8gbV9pbnRyaW5zaWNGdW5jdGlvbi0+aW50cmluc2lj
KCkgOiBOb0ludHJpbnNpYzsgfQorICAgIEN1c3RvbUdldHRlclNldHRlciogY3VzdG9tR2V0dGVy
U2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21HZXR0ZXJTZXR0ZXI7IH0KKyAgICBET01K
SVQqIGRvbUpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tR2V0dGVyU2V0dGVyID8gbV9jdXN0
b21HZXR0ZXJTZXR0ZXItPmVtaXR0ZXIoKSA6IG51bGxwdHI7IH0KIAogICAgIGJvb2wgaXNQcm9w
ZXJ0eVVuc2V0KCkgY29uc3QgeyByZXR1cm4gb2Zmc2V0KCkgPT0gaW52YWxpZE9mZnNldDsgfQog
CkBAIC04MSw2ICs4NCw3IEBAIGNsYXNzIEdldEJ5SWRWYXJpYW50IHsKICAgICBQcm9wZXJ0eU9m
ZnNldCBtX29mZnNldDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtTdGF0dXM+IG1fY2Fs
bExpbmtTdGF0dXM7CiAgICAgSlNGdW5jdGlvbiogbV9pbnRyaW5zaWNGdW5jdGlvbjsKKyAgICBD
dXN0b21HZXR0ZXJTZXR0ZXIqIG1fY3VzdG9tR2V0dGVyU2V0dGVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9s
eW1vcnBoaWNBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHlt
b3JwaGljQWNjZXNzLmNwcAppbmRleCAyNTZjYTQzNjE3ZjdlNTE0ZjAxYmQ5MzRlNWQzNGFjOTkz
MWU4MWZlLi41ZjM0MTA4YTE1MGY1NzI1NDA4NTRjMTIwZTQ1ZWIwZDVhZjc5ZWFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5j
cHAKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNz
Q2FzZTo6dHJ5R2V0KAogc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6Omdl
dCgKICAgICBWTSYgdm0sIEpTQ2VsbCogb3duZXIsIEFjY2Vzc1R5cGUgdHlwZSwgUHJvcGVydHlP
ZmZzZXQgb2Zmc2V0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwKICAgICBjb25zdCBPYmplY3RQcm9w
ZXJ0eUNvbmRpdGlvblNldCYgY29uZGl0aW9uU2V0LCBib29sIHZpYVByb3h5LCBXYXRjaHBvaW50
U2V0KiBhZGRpdGlvbmFsU2V0LAotICAgIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIGN1c3Rv
bUdldHRlciwgSlNPYmplY3QqIGN1c3RvbVNsb3RCYXNlKQorICAgIFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jIGN1c3RvbUdldHRlciwgSlNPYmplY3QqIGN1c3RvbVNsb3RCYXNlLCBDdXN0b21H
ZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlcikKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
QWNjZXNzQ2FzZT4gcmVzdWx0KG5ldyBBY2Nlc3NDYXNlKCkpOwogCkBAIC0yMjksMTIgKzIyOSwx
MyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Z2V0KAogICAgIHJl
c3VsdC0+bV9zdHJ1Y3R1cmUuc2V0KHZtLCBvd25lciwgc3RydWN0dXJlKTsKICAgICByZXN1bHQt
Pm1fY29uZGl0aW9uU2V0ID0gY29uZGl0aW9uU2V0OwogCi0gICAgaWYgKHZpYVByb3h5IHx8IGFk
ZGl0aW9uYWxTZXQgfHwgcmVzdWx0LT5kb2VzQ2FsbHMoKSB8fCBjdXN0b21HZXR0ZXIgfHwgY3Vz
dG9tU2xvdEJhc2UpIHsKKyAgICBpZiAodmlhUHJveHkgfHwgYWRkaXRpb25hbFNldCB8fCByZXN1
bHQtPmRvZXNDYWxscygpIHx8IGN1c3RvbUdldHRlciB8fCBjdXN0b21TbG90QmFzZSB8fCBjdXN0
b21HZXR0ZXJTZXR0ZXIpIHsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhID0gc3RkOjptYWtl
X3VuaXF1ZTxSYXJlRGF0YT4oKTsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT52aWFQcm94
eSA9IHZpYVByb3h5OwogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmFkZGl0aW9uYWxTZXQg
PSBhZGRpdGlvbmFsU2V0OwogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmN1c3RvbUFjY2Vz
c29yLmdldHRlciA9IGN1c3RvbUdldHRlcjsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5j
dXN0b21TbG90QmFzZS5zZXRNYXlCZU51bGwodm0sIG93bmVyLCBjdXN0b21TbG90QmFzZSk7Cisg
ICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+Y3VzdG9tR2V0dGVyU2V0dGVyLnNldE1heUJlTnVs
bCh2bSwgb3duZXIsIGN1c3RvbUdldHRlclNldHRlcik7CiAgICAgfQogCiAgICAgcmV0dXJuIHJl
c3VsdDsKQEAgLTM4NSw2ICszODYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNj
ZXNzQ2FzZTo6Y2xvbmUoKSBjb25zdAogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmN1c3Rv
bUFjY2Vzc29yLm9wYXF1ZSA9IHJhcmVEYXRhLT5jdXN0b21BY2Nlc3Nvci5vcGFxdWU7CiAgICAg
ICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+Y3VzdG9tU2xvdEJhc2UgPSByYXJlRGF0YS0+Y3VzdG9t
U2xvdEJhc2U7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+aW50cmluc2ljRnVuY3Rpb24g
PSByYXJlRGF0YS0+aW50cmluc2ljRnVuY3Rpb247CisgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0
YS0+Y3VzdG9tR2V0dGVyU2V0dGVyID0gcmFyZURhdGEtPmN1c3RvbUdldHRlclNldHRlcjsKICAg
ICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTU0Miw2ICs1NDQsOCBAQCBib29sIEFjY2Vz
c0Nhc2U6OnZpc2l0V2VhayhWTSYgdm0pIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIGlmIChtX3JhcmVEYXRhLT5pbnRyaW5zaWNGdW5jdGlvbiAmJiAhSGVhcDo6aXNN
YXJrZWQobV9yYXJlRGF0YS0+aW50cmluc2ljRnVuY3Rpb24uZ2V0KCkpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBpZiAobV9yYXJlRGF0YS0+Y3VzdG9tR2V0dGVyU2V0dGVy
ICYmICFIZWFwOjppc01hcmtlZChtX3JhcmVEYXRhLT5jdXN0b21HZXR0ZXJTZXR0ZXIuZ2V0KCkp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0Fj
Y2Vzcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNz
LmgKaW5kZXggMmNhNGFkY2ZjMGI0Nzc0YjNiNGRlZDRlMGM3MDA4YjMyNTlkOTAzOC4uMGM4YTc1
N2YwZjE2YjVmZmFhMzM2OWRlOTU1MGI5MjI1YmQ3MWI1OSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmgKQEAgLTI5LDYgKzI5LDcg
QEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVkZSAiQ29kZU9yaWdpbi5oIgorI2luY2x1ZGUg
IkN1c3RvbUdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkpJVFN0dWJSb3V0aW5lLmgiCiAjaW5j
bHVkZSAiSlNGdW5jdGlvbklubGluZXMuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgpA
QCAtMTMxLDcgKzEzMiw4IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICBib29sIHZpYVBy
b3h5ID0gZmFsc2UsCiAgICAgICAgIFdhdGNocG9pbnRTZXQqIGFkZGl0aW9uYWxTZXQgPSBudWxs
cHRyLAogICAgICAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyA9IG51bGxwdHIsCi0gICAg
ICAgIEpTT2JqZWN0KiBjdXN0b21TbG90QmFzZSA9IG51bGxwdHIpOworICAgICAgICBKU09iamVj
dCogY3VzdG9tU2xvdEJhc2UgPSBudWxscHRyLAorICAgICAgICBDdXN0b21HZXR0ZXJTZXR0ZXIq
ID0gbnVsbHB0cik7CiAgICAgCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNl
PiBtZWdhbW9ycGhpY0xvYWQoVk0mLCBKU0NlbGwqIG93bmVyKTsKICAgICAKQEAgLTE4Nyw2ICsx
ODksMTIgQEAgY2xhc3MgQWNjZXNzQ2FzZSB7CiAgICAgICAgIHJldHVybiBpbnRyaW5zaWNGdW5j
dGlvbigpLT5pbnRyaW5zaWMoKTsKICAgICB9CiAKKyAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1
c3RvbUdldHRlclNldHRlcigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9yYXJlRGF0
YSk7CisgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5jdXN0b21HZXR0ZXJTZXR0ZXIuZ2V0KCk7
CisgICAgfQorCiAgICAgV2F0Y2hwb2ludFNldCogYWRkaXRpb25hbFNldCgpIGNvbnN0CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9yYXJlRGF0YSA/IG1fcmFyZURhdGEtPmFkZGl0aW9uYWxTZXQu
Z2V0KCkgOiBudWxscHRyOwpAQCAtMzAxLDYgKzMwOSw3IEBAIGNsYXNzIEFjY2Vzc0Nhc2Ugewog
ICAgICAgICB9IGN1c3RvbUFjY2Vzc29yOwogICAgICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+
IGN1c3RvbVNsb3RCYXNlOwogICAgICAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gaW50cmlu
c2ljRnVuY3Rpb247CisgICAgICAgIFdyaXRlQmFycmllcjxDdXN0b21HZXR0ZXJTZXR0ZXI+IGN1
c3RvbUdldHRlclNldHRlcjsKICAgICB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJhcmVEYXRh
PiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1NwZWN1bGF0ZWRUeXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVj
dWxhdGVkVHlwZS5jcHAKaW5kZXggNzE5ZDhmMjcyODNmNWQxMjNjZTU3NzE1NDVlNDY5YmY4MWFm
ZjIyNy4uMWZkMDRiNTU3NGJmZTA3MDIwNWZlMmJhMzMwYmUyYzVlNDA5YWQxZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCkBAIC0x
NzAsNiArMTcwLDIxIEBAIHZvaWQgZHVtcFNwZWN1bGF0aW9uKFByaW50U3RyZWFtJiBvdXQsIFNw
ZWN1bGF0ZWRUeXBlIHZhbHVlKQogICAgICAgICAgICAgICAgIG15T3V0LnByaW50KCJEZXJpdmVk
YXJyYXkiKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNl
OworCisgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyKQorICAg
ICAgICAgICAgICAgIG15T3V0LnByaW50KCJEb21kb2N1bWVudHdyYXBwZXIiKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNlOworCisgICAgICAgICAgICBp
ZiAodmFsdWUgJiBTcGVjRE9NRWxlbWVudCkKKyAgICAgICAgICAgICAgICBteU91dC5wcmludCgi
RG9tZWxlbWVudCIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlzVG9wID0g
ZmFsc2U7CisKKyAgICAgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNET01PdGhlck5vZGUpCisgICAg
ICAgICAgICAgICAgbXlPdXQucHJpbnQoIkRvbW90aGVybm9kZSIpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAoKHZhbHVlICYgU3BlY1N0cmluZykgPT0gU3BlY1N0cmluZykKQEAgLTM5NCwxMiArNDA5LDI1
IEBAIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyhjb25zdCBDbGFzc0lu
Zm8qIGNsYXNzSW5mbykKIAogU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tU3RydWN0dXJl
KFN0cnVjdHVyZSogc3RydWN0dXJlKQogewotICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCku
dHlwZSgpID09IFN0cmluZ1R5cGUpCisgICAgSlNUeXBlIHR5cGUgPSBzdHJ1Y3R1cmUtPnR5cGVJ
bmZvKCkudHlwZSgpOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgU3RyaW5nVHlwZToK
ICAgICAgICAgcmV0dXJuIFNwZWNTdHJpbmc7Ci0gICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8o
KS50eXBlKCkgPT0gU3ltYm9sVHlwZSkKKyAgICBjYXNlIFN5bWJvbFR5cGU6CiAgICAgICAgIHJl
dHVybiBTcGVjU3ltYm9sOwotICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09
IERlcml2ZWRBcnJheVR5cGUpCisgICAgY2FzZSBEZXJpdmVkQXJyYXlUeXBlOgogICAgICAgICBy
ZXR1cm4gU3BlY0Rlcml2ZWRBcnJheTsKKyAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclR5cGU6
CisgICAgICAgIHJldHVybiBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmICh0eXBlID49IERPTUVsZW1lbnRUeXBlKQor
ICAgICAgICByZXR1cm4gU3BlY0RPTUVsZW1lbnQ7CisgICAgaWYgKHR5cGUgPj0gRE9NTm9kZVR5
cGUpCisgICAgICAgIHJldHVybiBTcGVjRE9NT3RoZXJOb2RlOworCiAgICAgcmV0dXJuIHNwZWN1
bGF0aW9uRnJvbUNsYXNzSW5mbyhzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAppbmRleCAyYjIy
MThhNjdjN2I0OTljODU0OTlhMmY3MzMyNTRmMzc5MDgwZWU2Li5iMzlhYzcxODgzODFlY2I4YmUw
YTIzNmU4ZTQ2NGYxZTMyYTQ2NzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaApAQCAtNjAsMjQgKzYwLDI4IEBAIHN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjTWFwT2JqZWN0ICAgICAgICAgID0gMXVsbCA8PCAxNjsgLy8gSXQn
cyBkZWZpbml0CiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1NldE9iamVjdCAgICAg
ICAgICA9IDF1bGwgPDwgMTc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25l
IG9mIGl0cyBzdWJjbGFzc2VzLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94
eU9iamVjdCAgICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBv
YmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNEZXJpdmVkQXJyYXkgICAgICAgPSAxdWxsIDw8IDE5OyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBEZXJpdmVkQXJyYXkgb2JqZWN0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNPYmplY3RPdGhlciAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4g
b2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KLXN0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgID0gU3BlY0Zp
bmFsT2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3
IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5n
T2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0
IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlcjsg
Ly8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGlj
dGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAg
ID0gMXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFu
IGlkZW50aWZpZXIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAg
ICAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQg
aXQncyBub3QgYW4gaWRlbnRpZmllci4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RE9NRG9jdW1lbnRXcmFwcGVyID0gMXVsbCA8PCAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRE9N
IGRvY3VtZW50IHdyYXBwZXIgb2JqZWN0Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNET01FbGVtZW50ICAgICAgICAgPSAxdWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBE
T00gZWxlbWVudCBvYmplY3QuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RPTU90
aGVyTm9kZSAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERPTSBOb2Rl
IG9iamVjdCBidXQgbm90IERvY3VtZW50V3JhcHBlciBhbmQgRWxlbWVudC4KK3N0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjRE9NTm9kZSAgICAgICAgICAgID0gU3BlY0RPTURvY3VtZW50
V3JhcHBlciB8IFNwZWNET01FbGVtZW50IHwgU3BlY0RPTU90aGVyTm9kZTsKK3N0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgID0gMXVsbCA8PCAyMzsgLy8g
SXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmplY3QsIEpTQXJyYXks
IG9yIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdCAg
ICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlvbiB8
IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBTcGVjU2NvcGVkQXJn
dW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNwZWNSZWdFeHBPYmplY3QgfCBTcGVjTWFwT2Jq
ZWN0IHwgU3BlY1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkg
fCBTcGVjRE9NTm9kZSB8IFNwZWNPYmplY3RPdGhlcjsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0
aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgID0gMXVsbCA8PCAyNDsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAgICAgICA9IDF1bGwgPDwgMjU7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBub3QgYW4gaWRlbnRpZmllci4K
IHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nICAgICAgICAgICAgID0gU3Bl
Y1N0cmluZ0lkZW50IHwgU3BlY1N0cmluZ1ZhcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJp
bmcuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N5bWJvbCAgICAgICAgICAgICA9
IDF1bGwgPDwgMjM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN5bWJvbC4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAgICAgID0gMXVsbCA8PCAyNDsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQg
ZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZyBvciBhIFN5bWJvbC4gRklYTUU6IFRoaXMgc2hvdWxk
bid0IGJlIHBhcnQgb2YgaGVhcC10b3Agb3IgYnl0ZWNvZGUtdG9wLiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDc4CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY1N5bWJvbCAgICAgICAgICAgICA9IDF1bGwgPDwgMjY7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIFN5bWJvbC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAg
ICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3Qg
YSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZyBvciBh
IFN5bWJvbC4gRklYTUU6IFRoaXMgc2hvdWxkbid0IGJlIHBhcnQgb2YgaGVhcC10b3Agb3IgYnl0
ZWNvZGUtdG9wLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDc4
CiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAgICAgICAgICA9IFNw
ZWNPYmplY3QgfCBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNDZWxsT3RoZXI7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIEpTQ2VsbC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
Qm9vbEludDMyICAgICAgICAgID0gMXVsbCA8PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIElu
dDMyIHdpdGggdmFsdWUgMCBvciAxLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNO
b25Cb29sSW50MzIgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50
MzIgd2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjQm9vbEludDMyICAgICAgICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0
ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgMCBvciAxLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNOb25Cb29sSW50MzIgICAgICAgPSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gSW50MzIgd2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KIHN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjSW50MzJPbmx5ICAgICAgICAgID0gU3BlY0Jvb2xJbnQzMiB8IFNw
ZWNOb25Cb29sSW50MzI7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMi4KLXN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50NTJPbmx5ICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8g
SXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCB3ZSBpbnRlbmQgaXQgdG8gdW5ib3ggaXQuIEl0
J3MgYWxzbyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQzMi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjSW50NTJPbmx5ICAgICAgICAgID0gMXVsbCA8PCAzMDsgLy8gSXQncyBkZWZpbml0
ZWx5IGFuIEludDUyIGFuZCB3ZSBpbnRlbmQgaXQgdG8gdW5ib3ggaXQuIEl0J3MgYWxzbyBkZWZp
bml0ZWx5IG5vdCBhbiBJbnQzMi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55
SW50ICAgICAgICAgICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNJbnQ1Mk9ubHk7IC8vIEl0J3Mg
c29tZXRoaW5nIHRoYXQgd2UgY2FuIGRvIG1hY2hpbmUgaW50IGFyaXRobWV0aWMgb24uCi1zdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAgICA9IDF1bGwgPDwg
Mjg7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUu
Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAgICA9IDF1
bGwgPDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4gSW50NTIgYnV0IGl0J3MgYSByZWFs
IG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjQW55SW50QXNEb3VibGUgICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IGFu
IEludDUyIGFuZCBpdCdzIGluc2lkZSBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjTm9uSW50QXNEb3VibGUgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBkZWZpbml0
ZWx5IG5vdCBhbiBJbnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91Ymxl
Lgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICAgPSBT
cGVjTm9uSW50QXNEb3VibGUgfCBTcGVjQW55SW50QXNEb3VibGU7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIG5vbi1OYU4gZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3Vi
bGVQdXJlTmFOICAgICAgPSAxdWxsIDw8IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhh
dCBpcyBzYWUgdG8gdGFnIChpLmUuIHB1cmUpLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNEb3VibGVJbXB1cmVOYU4gICAgPSAxdWxsIDw8IDMxOyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBOYU4gdGhhdCBpcyB1bnNhZmUgdG8gdGFnIChpLmUuIGltcHVyZSkuCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAgICA9IDF1bGwgPDwgMzM7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZSB0byB0YWcgKGkuZS4gcHVyZSkuCitzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5hTiAgICA9IDF1bGwgPDwg
MzQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4g
aW1wdXJlKS4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlTmFOICAgICAg
ICAgID0gU3BlY0RvdWJsZVB1cmVOYU4gfCBTcGVjRG91YmxlSW1wdXJlTmFOOyAvLyBJdCdzIGRl
ZmluaXRlbHkgc29tZSBraW5kIG9mIE5hTi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjQnl0ZWNvZGVEb3VibGUgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlUHVyZU5h
TjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZSwgYnV0IGl0J3MgZGVm
aW5pdGVseSBub3QgaW1wdXJlIE5hTi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RnVsbERvdWJsZSAgICAgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlTmFOOyAvLyBJ
dCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLgpAQCAtODUsMTIgKzg5LDEyIEBA
IHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVSZWFsTnVtYmVyID0gU3Bl
Y0ludDMyT25seSB8IFNwZWNEb3VibGVSCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0Z1bGxSZWFsTnVtYmVyICAgICA9IFNwZWNBbnlJbnQgfCBTcGVjRG91YmxlUmVhbDsgLy8gSXQn
cyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGVSZWFsLCBvciBhIEludDUyLgogc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZU51bWJlciAgICAgPSBTcGVjSW50MzJPbmx5
IHwgU3BlY0J5dGVjb2RlRG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJs
ZSwgYW5kIHRoZSBEb3VibGUgY2Fubm90IGJlIGFuIGltcHVyZSBOYU4uCiBzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxOdW1iZXIgICAgICAgICA9IFNwZWNBbnlJbnQgfCBTcGVj
RnVsbERvdWJsZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIsIEludDUyLCBvciBhIERvdWJsZSwg
YW5kIHRoZSBEb3VibGUgY2FuIGJlIGltcHVyZSBOYU4uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIEJvb2xlYW4uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAg
ICAgICAgICAgICA9IDF1bGwgPDwgMzM7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBv
ciBVbmRlZmluZWQuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAg
ICAgICAgICA9IDF1bGwgPDwgMzU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCitzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAgICAgICAgICAgICA9IDF1bGwgPDwg
MzY7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBvciBVbmRlZmluZWQuCiBzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY01pc2MgICAgICAgICAgICAgICA9IFNwZWNCb29sZWFu
IHwgU3BlY090aGVyOyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIGEgYm9vbGVhbiwgTnVsbCwg
b3IgVW5kZWZpbmVkLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAg
ICAgICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJ
dCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBT
cGVjRG91YmxlSW1wdXJlTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmlt
aXRpdmUgICAgICAgICAgPSBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51
bWJlciB8IFNwZWNNaXNjOyAvLyBJdCdzIGFueSBub24tT2JqZWN0IEpTVmFsdWUuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzQ7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzc7IC8vIEl0
J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCiBzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0J5dGVjb2RlVG9wICAgICAgICA9IFNwZWNIZWFwVG9wIHwgU3BlY0VtcHR5
OyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5
IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLiBDb3JyZXNwb25kcyB0byB3aGF0IGNvdWxkIGJlIGZv
dW5kIGluIGEgYnl0ZWNvZGUgbG9jYWwuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0Z1bGxUb3AgICAgICAgICAgICA9IFNwZWNCeXRlY29kZVRvcCB8IFNwZWNGdWxsTnVtYmVyOyAv
LyBJdCBjYW4gYmUgYW55dGhpbmcgdGhhdCBieXRlY29kZSBjb3VsZCBzZWUgcGx1cyBleG90aWMg
ZW5jb2RpbmdzIG9mIG51bWJlcnMuCiAKQEAgLTQxOSw2ICs0MjMsMjEgQEAgaW5saW5lIGJvb2wg
aXNVbnR5cGVkU3BlY3VsYXRpb25Gb3JCaXRPcHMoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAg
cmV0dXJuICEhKHZhbHVlICYgfihTcGVjRnVsbE51bWJlciB8IFNwZWNCb29sZWFuIHwgU3BlY090
aGVyKSk7CiB9CiAKK2lubGluZSBib29sIGlzRE9NTm9kZVNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRU
eXBlIHZhbHVlKQoreworICAgIHJldHVybiAhISh2YWx1ZSAmIFNwZWNET01Ob2RlKSAmJiAhKHZh
bHVlICYgflNwZWNET01Ob2RlKTsKK30KKworaW5saW5lIGJvb2wgaXNET01FbGVtZW50U3BlY3Vs
YXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVlID09IFNwZWNE
T01FbGVtZW50OworfQorCitpbmxpbmUgYm9vbCBpc0RPTURvY3VtZW50V3JhcHBlclNwZWN1bGF0
aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSBTcGVjRE9N
RG9jdW1lbnRXcmFwcGVyOworfQorCiB2b2lkIGR1bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYs
IFNwZWN1bGF0ZWRUeXBlKTsKIHZvaWQgZHVtcFNwZWN1bGF0aW9uQWJicmV2aWF0ZWQoUHJpbnRT
dHJlYW0mLCBTcGVjdWxhdGVkVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCA4Yzc0MTI2
NjI2NWM4MTQ4MDZmMWYwZmI3MTQ4MzdlMjNjNTBkYzhkLi4zMWVmMzNjNjQ3MjA4MGZhNzA2MWRl
MjYxOWE1YzBhZjVlM2JlYjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0yMTQ4LDYgKzIxNDgs
MTEgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0
ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisg
ICAgLy8gRklYTUU6IE1vZGVsIGl0IHByZWNpc2VseS4KKyAgICBjYXNlIERPTUdldEF0dHJpYnV0
ZToKKyAgICAgICAgY2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2xvYmJlckxp
bWl0KTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIEdldEJ5VmFsV2l0aFRoaXM6CiAgICAg
Y2FzZSBHZXRCeUlkV2l0aFRoaXM6CiAgICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4u
c2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDA0NTIyODBkZDI2ZjQwYjBiY2E0NWQzODUxZDEx
MGRmNDE2YTBmYTcuLjRlMzZkYmM0MjEzZWJhZGFmZDQ0YTM3NjFjOTQzMzk4ZGI1M2EyZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBA
IC0yMTksNiArMjE5LDggQEAgY2xhc3MgQnl0ZUNvZGVQYXJzZXIgewogICAgIGJvb2wgaGFuZGxl
Q29uc3RhbnRJbnRlcm5hbEZ1bmN0aW9uKE5vZGUqIGNhbGxUYXJnZXROb2RlLCBpbnQgcmVzdWx0
T3BlcmFuZCwgSW50ZXJuYWxGdW5jdGlvbiosIGludCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCBTcGVjdWxhdGVk
VHlwZSwgY29uc3QgQ2hlY2tzRnVuY3RvciYgaW5zZXJ0Q2hlY2tzKTsKICAgICBOb2RlKiBoYW5k
bGVQdXRCeU9mZnNldChOb2RlKiBiYXNlLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0eU9m
ZnNldCwgY29uc3QgSW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9yJiwgTm9kZSogdmFsdWUpOwogICAg
IE5vZGUqIGhhbmRsZUdldEJ5T2Zmc2V0KFNwZWN1bGF0ZWRUeXBlLCBOb2RlKiBiYXNlLCB1bnNp
Z25lZCBpZGVudGlmaWVyTnVtYmVyLCBQcm9wZXJ0eU9mZnNldCwgY29uc3QgSW5mZXJyZWRUeXBl
OjpEZXNjcmlwdG9yJiwgTm9kZVR5cGUgPSBHZXRCeU9mZnNldCk7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ2hlY2tzRnVuY3Rvcj4KKyAgICBib29sIGhhbmRsZURPTUpJVEdldHRlcihpbnQgcmVz
dWx0T3BlcmFuZCwgY29uc3QgR2V0QnlJZFZhcmlhbnQmIHZhcmlhbnQsIE5vZGUqIHRoaXNOb2Rl
LCBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uLCBjb25zdCBDaGVja3NGdW5jdG9yJiBpbnNlcnRD
aGVja3MpOwogCiAgICAgLy8gQ3JlYXRlIGEgcHJlc2VuY2UgT2JqZWN0UHJvcGVydHlDb25kaXRp
b24gYmFzZWQgb24gc29tZSBrbm93biBvZmZzZXQgYW5kIHN0cnVjdHVyZSBzZXQuIERvZXMgbm90
CiAgICAgLy8gY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBjb25kaXRpb24sIGJ1dCBpdCBtYXkg
cmV0dXJuIGEgbnVsbCBvbmUgaWYgaXQgZW5jb3VudGVycyBhIGNvbnRyYWRpY3Rpb24uCkBAIC0y
NjYwLDYgKzI2NjIsMjMgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljR2V0
dGVyKGludCByZXN1bHRPcGVyYW5kLCBjb25zdCBHZXRCeUlkVmFyaWEKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgQ2hlY2tzRnVuY3Rvcj4KK2Jvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZURPTUpJ
VEdldHRlcihpbnQgcmVzdWx0T3BlcmFuZCwgY29uc3QgR2V0QnlJZFZhcmlhbnQmIHZhcmlhbnQs
IE5vZGUqIHRoaXNOb2RlLCBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uLCBjb25zdCBDaGVja3NG
dW5jdG9yJiBpbnNlcnRDaGVja3MpCit7CisgICAgaWYgKCF2YXJpYW50LmN1c3RvbUdldHRlclNl
dHRlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV9pbmxpbmVTdGFja1Rv
cC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkVHlwZSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQ
cm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDZWxsKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaW5zZXJ0Q2hlY2tzKCk7CisgICAgc2V0KFZpcnR1YWxSZWdpc3Rl
cihyZXN1bHRPcGVyYW5kKSwgYWRkVG9HcmFwaChET01HZXRBdHRyaWJ1dGUsIE9wSW5mbyh2YXJp
YW50LmN1c3RvbUdldHRlclNldHRlcigpLT5lbWl0dGVyKCkpLCBPcEluZm8ocHJlZGljdGlvbiks
IHRoaXNOb2RlKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIENo
ZWNrc0Z1bmN0b3I+CiBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVUeXBlZEFycmF5Q29uc3Ry
dWN0b3IoCiAgICAgaW50IHJlc3VsdE9wZXJhbmQsIEludGVybmFsRnVuY3Rpb24qIGZ1bmN0aW9u
LCBpbnQgcmVnaXN0ZXJPZmZzZXQsCiAgICAgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
LCBUeXBlZEFycmF5VHlwZSB0eXBlLCBjb25zdCBDaGVja3NGdW5jdG9yJiBpbnNlcnRDaGVja3Mp
CkBAIC0zMzI0LDYgKzMzNDMsMjAgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlR2V0QnlJ
ZCgKICAgICAgICAgbV9ncmFwaC5jb21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkR2V0QnlJZCgp
OwogCiAgICAgQVNTRVJUKHR5cGUgPT0gQWNjZXNzVHlwZTo6R2V0IHx8ICF2YXJpYW50LmNhbGxM
aW5rU3RhdHVzKCkpOworCisgICAgaWYgKHZhcmlhbnQuY3VzdG9tR2V0dGVyU2V0dGVyKCkpIHsK
KyAgICAgICAgaWYgKGhhbmRsZURPTUpJVEdldHRlcihkZXN0aW5hdGlvbk9wZXJhbmQsIHZhcmlh
bnQsIGJhc2UsIHByZWRpY3Rpb24sCisgICAgICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja0NlbGwsIE9wSW5mbyhtX2dyYXBoLmZyZWV6ZSh2
YXJpYW50LmN1c3RvbUdldHRlclNldHRlcigpKSksIGxvYWRlZFZhbHVlLCBiYXNlKTsKKyAgICAg
ICAgICAgICAgICB9KSkgeworICAgICAgICAgICAgYWRkVG9HcmFwaChQaGFudG9tLCBsb2FkZWRW
YWx1ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc2V0KFZpcnR1
YWxSZWdpc3RlcihkZXN0aW5hdGlvbk9wZXJhbmQpLAorICAgICAgICAgICAgYWRkVG9HcmFwaChn
ZXRCeUlkLCBPcEluZm8oaWRlbnRpZmllck51bWJlciksIE9wSW5mbyhwcmVkaWN0aW9uKSwgYmFz
ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKCF2YXJpYW50LmNhbGxMaW5r
U3RhdHVzKCkgJiYgdmFyaWFudC5pbnRyaW5zaWMoKSA9PSBOb0ludHJpbnNpYykgewogICAgICAg
ICBzZXQoVmlydHVhbFJlZ2lzdGVyKGRlc3RpbmF0aW9uT3BlcmFuZCksIGxvYWRlZFZhbHVlKTsK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAppbmRleCBjMWMzZmRkZGI3YTdhNjBiNDY1MmExN2NhZTFhOTgzZjhjYWU5NjExLi4xMzkwNDA5
MGI5YjY5MDYwNzdiYzA1NjAxZDJhMGYxMDlhZjhjMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtNTA3LDYgKzUwNyw3IEBAIHZvaWQgY2xvYmJlcml6
ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25z
dCBXcml0ZUZ1CiAgICAgY2FzZSBHZXREeW5hbWljVmFyOgogICAgIGNhc2UgUHV0RHluYW1pY1Zh
cjoKICAgICBjYXNlIFJlc29sdmVTY29wZToKKyAgICBjYXNlIERPTUdldEF0dHJpYnV0ZTogLy8g
RklYTUU6IE1vZGVsIGl0IHByZWNpc2VseS4KICAgICAgICAgcmVhZChXb3JsZCk7CiAgICAgICAg
IHdyaXRlKEhlYXApOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IDVkNjMyOWQyOGY1
ZmYzYmY2NWExY2ZjYTQ3YWE2Nzc0MTY5MzVlMmYuLjNhNDE4OGIxNWY5MTVkN2QzM2NmNDc0ZmRl
MTM4Njk2MmQwYWEyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCkBAIC00NzUsNiArNDc1LDExIEBAIGNsYXNzIENv
bnN0YW50Rm9sZGluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICBjaGFu
Z2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgY2FzZSBET01HZXRBdHRyaWJ1dGU6IHsKKyAgICAgICAgICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGl0LgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICAgICAg
Y2FzZSBQdXRCeUlkRGlyZWN0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
CmluZGV4IDJkY2Y1NWQyZWQyOGFhZTYwYjZiOGI3YjliZjZkYTA3MTlkOTJkZDUuLjYxOGRmMmEx
MzYyYWQ3ZWJiYmU1YmQ0NGRlOWI3N2QzZTgwZGUzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTI1NCw2ICsyNTQsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBHZXREeW5hbWljVmFyOgogICAgIGNhc2UgUHV0
RHluYW1pY1ZhcjoKICAgICBjYXNlIFJlc29sdmVTY29wZToKKyAgICBjYXNlIERPTUdldEF0dHJp
YnV0ZToKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY2FzZSBDcmVhdGVBY3RpdmF0aW9u
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggNmVl
NTE0MmY3OGY2MGJmMTA5NjgzYzhiODljMTVkMGU0NThiM2ZlMC4uYjY0MjI0ZDBmMWM0MTg0MDNl
MmE0ZWVlZjJhY2JkNDEzZGRhYjE0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiREZHUGhhc2UuaCIK
ICNpbmNsdWRlICJERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5oIgogI2luY2x1ZGUgIkRG
R1ZhcmlhYmxlQWNjZXNzRGF0YUR1bXAuaCIKKyNpbmNsdWRlICJET01KSVQuaCIKICNpbmNsdWRl
ICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiVHlwZUxvY2F0aW9uLmgiCiAKQEAgLTE2MDIsNiAr
MTYwMywxMyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAg
IGZpeEVkZ2U8VW50eXBlZFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7
CiAKKyAgICAgICAgY2FzZSBET01HZXRBdHRyaWJ1dGU6IHsKKyAgICAgICAgICAgIG1faW5zZXJ0
aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAgbV9pbmRleEluQmxvY2ssIFNwZWNO
b25lLCBDaGVjaywgbm9kZS0+b3JpZ2luLAorICAgICAgICAgICAgICAgIEVkZ2Uobm9kZS0+Y2hp
bGQxKCkubm9kZSgpLCBub2RlLT5kb21KSVQoKS0+ZWRnZUZpbHRlcigpKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgICAgICAvLyBI
YXZlIHRoZXNlIG5vLW9wIGNhc2VzIGhlcmUgdG8gZW5zdXJlIHRoYXQgbm9ib2R5IGZvcmdldHMg
dG8gYWRkIGhhbmRsZXJzIGZvciBuZXcgb3Bjb2Rlcy4KICAgICAgICAgY2FzZSBTZXRBcmd1bWVu
dDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggNjllM2ViOTA2NmQ0NmU3ZjVl
Y2Q0OGViMzMzOGRjZTg2YjFmOTE2Ny4uNTI5NzU3MGQyMzIxZjkxZTc0ZmE1ZDQ3NzJjMGM4ZDEz
ZDVmOTA5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTU5LDYgKzU5LDgg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NsYXNzIERPTUpJVDsKKwogbmFtZXNwYWNlIFByb2Zp
bGVyIHsKIGNsYXNzIEV4ZWN1dGlvbkNvdW50ZXI7CiB9CkBAIC0xNDIwLDYgKzE0MjIsNyBAQCBz
dHJ1Y3QgTm9kZSB7CiAgICAgICAgIGNhc2UgVHJ5R2V0QnlJZDoKICAgICAgICAgY2FzZSBHZXRC
eVZhbDoKICAgICAgICAgY2FzZSBHZXRCeVZhbFdpdGhUaGlzOgorICAgICAgICBjYXNlIERPTUdl
dEF0dHJpYnV0ZToKICAgICAgICAgY2FzZSBDYWxsOgogICAgICAgICBjYXNlIFRhaWxDYWxsSW5s
aW5lZENhbGxlcjoKICAgICAgICAgY2FzZSBDb25zdHJ1Y3Q6CkBAIC0yMjYwLDYgKzIyNjMsMjEg
QEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgcmV0dXJuIG9wMS0+c2hvdWxkU3BlY3Vs
YXRlQXJyYXkoKSAmJiBvcDItPnNob3VsZFNwZWN1bGF0ZUFycmF5KCk7CiAgICAgfQorCisgICAg
Ym9vbCBzaG91bGRTcGVjdWxhdGVET01Ob2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc0RP
TU5vZGVTcGVjdWxhdGlvbihwcmVkaWN0aW9uKCkpOworICAgIH0KKworICAgIGJvb2wgc2hvdWxk
U3BlY3VsYXRlRE9NRWxlbWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gaXNET01FbGVtZW50
U3BlY3VsYXRpb24ocHJlZGljdGlvbigpKTsKKyAgICB9CisKKyAgICBib29sIHNob3VsZFNwZWN1
bGF0ZURPTURvY3VtZW50V3JhcHBlcigpCisgICAgeworICAgICAgICByZXR1cm4gaXNET01Eb2N1
bWVudFdyYXBwZXJTcGVjdWxhdGlvbihwcmVkaWN0aW9uKCkpOworICAgIH0KICAgICAKICAgICBi
b29sIGNhblNwZWN1bGF0ZUludDMyKFJhcmVDYXNlUHJvZmlsaW5nU291cmNlIHNvdXJjZSkKICAg
ICB7CkBAIC0yMzA5LDYgKzIzMjcsMTcgQEAgc3RydWN0IE5vZGUgewogICAgICAgICBBU1NFUlQo
aGFzQmFzaWNCbG9ja0xvY2F0aW9uKCkpOwogICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8QmFz
aWNCbG9ja0xvY2F0aW9uKj4oKTsKICAgICB9CisKKyAgICBib29sIGhhc0RPTUpJVCgpCisgICAg
eworICAgICAgICByZXR1cm4gb3AoKSA9PSBET01HZXRBdHRyaWJ1dGU7CisgICAgfQorCisgICAg
RE9NSklUKiBkb21KSVQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc0RPTUpJVCgpKTsKKyAg
ICAgICAgcmV0dXJuIG1fb3BJbmZvLmFzPERPTUpJVCo+KCk7CisgICAgfQogICAgIAogICAgIE5v
ZGUqIHJlcGxhY2VtZW50KCkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVUeXBlLmgKaW5kZXggMWYzNWViMmQ5MDNiNDY2YzI0MThjM2RjMWI2MTg1M2ViZTVkNjk3
OS4uMjgyMmI2N2U3MmI0Y2RjNTM3ODZhMjQzYTc4ODZiMTE1ZGY5MDJiNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtMzk0LDYgKzM5NCw4IEBAIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhHZXRNYXBCdWNrZXQsIE5vZGVSZXN1
bHRKUykgXAogICAgIG1hY3JvKExvYWRGcm9tSlNNYXBCdWNrZXQsIE5vZGVSZXN1bHRKUykgXAog
ICAgIG1hY3JvKElzTm9uRW1wdHlNYXBCdWNrZXQsIE5vZGVSZXN1bHRCb29sZWFuKSBcCisgICAg
LyogTm9kZXMgZm9yIERPTSBKSVQgKi9cCisgICAgbWFjcm8oRE9NR2V0QXR0cmlidXRlLCBOb2Rl
TXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEpTKSBcCiAKIC8vIFRoaXMgZW51bSBnZW5lcmF0ZXMg
YSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgaWQgZm9yIGFsbCBOb2RlIHR5cGVzLAogLy8gYW5k
IGlzIHVzZWQgYnkgdGhlIHN1YnNlcXVlbnQgZW51bSB0byBmaWxsIG91dCB0aGUgaWQgKGFzIGFj
Y2Vzc2VkIHZpYSB0aGUgTm9kZUlkTWFzaykuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDA2
ZGI0MGViNjc2NjcyNDZkMzQ5MDkwNTkxOWJmNWFiZDAwZWI5OWUuLmM1ZmNjNTdiZDA2YzU0ZDlj
ZDIzNTUyYmQxMzdmODRlZjNhNTJlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC02ODQs
NiArNjg0LDcgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhh
c2UgewogICAgICAgICBjYXNlIEdldEJ5T2Zmc2V0OgogICAgICAgICBjYXNlIE11bHRpR2V0QnlP
ZmZzZXQ6CiAgICAgICAgIGNhc2UgR2V0RGlyZWN0UG5hbWU6CisgICAgICAgIGNhc2UgRE9NR2V0
QXR0cmlidXRlOgogICAgICAgICBjYXNlIENhbGw6CiAgICAgICAgIGNhc2UgVGFpbENhbGxJbmxp
bmVkQ2FsbGVyOgogICAgICAgICBjYXNlIENvbnN0cnVjdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggMjJiOTM0MDA1ODNhYzZkZjg2M2IwYmUz
OGY2YjgzMzZhNTA0MTlhYy4uMmNjOTNmYmJhYjljNjE0ZGZkMTY5YWJhY2UwZjg2OWNhM2FhOWZh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAg
LTYwLDYgKzYwLDkgQEAgY2xhc3MgU2FmZVRvRXhlY3V0ZUVkZ2UgewogICAgICAgICBjYXNlIEZp
bmFsT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFJlZ0V4cE9iamVjdFVzZToKICAgICAgICAgY2Fz
ZSBQcm94eU9iamVjdFVzZToKKyAgICAgICAgY2FzZSBET01Ob2RlVXNlOgorICAgICAgICBjYXNl
IERPTUVsZW1lbnRVc2U6CisgICAgICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgogICAg
ICAgICBjYXNlIERlcml2ZWRBcnJheVVzZToKICAgICAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAg
ICAgICAgIGNhc2UgU2V0T2JqZWN0VXNlOgpAQCAtMjA0LDYgKzIwNyw3IEBAIGJvb2wgc2FmZVRv
RXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSkKICAgICBjYXNlIEdldEJ5SWRXaXRoVGhpczoKICAgICBjYXNlIEdldEJ5VmFsV2l0aFRoaXM6
CiAgICAgY2FzZSBHZXRCeUlkRmx1c2g6CisgICAgY2FzZSBET01HZXRBdHRyaWJ1dGU6CiAgICAg
Y2FzZSBQdXRCeUlkOgogICAgIGNhc2UgUHV0QnlJZEZsdXNoOgogICAgIGNhc2UgUHV0QnlJZFdp
dGhUaGlzOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAppbmRleCA3NzcxYTk1MTFiMmE4NWEyMGM4ODkxNmZhNDE5MzE0NzdiYzc2MDU3Li41ZGFk
YzgxYTFiYzRkY2I5NmE0OTA3NDczNmU5YjUwZGE2OGU1YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMzgsNiArMzgsNyBAQAog
I2luY2x1ZGUgIkRGR09TUkV4aXRGdXp6LmgiCiAjaW5jbHVkZSAiREZHU2FuZVN0cmluZ0dldEJ5
VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5o
IgorI2luY2x1ZGUgIkRPTUpJVC5oIgogI2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5oIgogI2lu
Y2x1ZGUgIkpJVEFkZEdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkpJVEJpdEFuZEdlbmVyYXRvci5o
IgpAQCAtNzUwMCw2ICs3NTAxLDQ4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVNl
dE9iamVjdChFZGdlIGVkZ2UpCiAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UsIG9wZXJhbmQu
Z3ByKCkpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Ob2RlKEVkZ2Ug
ZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6
dW5ib3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNET01Ob2RlLCBtX2ppdC5icmFuY2hJZk5vdERP
TU5vZGUoY2VsbCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Ob2Rl
KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNET01Ob2Rl
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0
aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVET01Ob2RlKGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOwor
fQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UgZWRnZSwg
R1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hl
ZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNET01FbGVtZW50LCBtX2ppdC5icmFuY2hJZk5vdERPTUVs
ZW1lbnQoY2VsbCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01FbGVt
ZW50KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNET01F
bGVtZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3Bl
cmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVET01FbGVtZW50KGVkZ2UsIG9wZXJhbmQu
Z3ByKCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Eb2N1bWVudFdy
YXBwZXIoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCkKK3sKKyAgICBzcGVjdWxhdGVDZWxsVHlwZShl
ZGdlLCBjZWxsLCBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyLCBET01Eb2N1bWVudFdyYXBwZXJUeXBl
KTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVy
KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNET01Eb2N1
bWVudFdyYXBwZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihl
ZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRl
T2JqZWN0T3JPdGhlcihFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdl
LCBTcGVjT2JqZWN0IHwgU3BlY090aGVyKSkKQEAgLTc4MDUsNiArNzg0OCwxNSBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUoTm9kZSosIEVkZ2UgZWRnZSkKICAgICBjYXNlIE9iamVj
dE9yT3RoZXJVc2U6CiAgICAgICAgIHNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoZWRnZSk7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAgc3BlY3VsYXRlRE9NTm9k
ZShlZGdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01FbGVtZW50VXNlOgorICAgICAg
ICBzcGVjdWxhdGVET01FbGVtZW50KGVkZ2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERP
TURvY3VtZW50V3JhcHBlclVzZToKKyAgICAgICAgc3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVy
KGVkZ2UpOworICAgICAgICBicmVhazsKICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAg
ICBzcGVjdWxhdGVTdHJpbmdJZGVudChlZGdlKTsKICAgICAgICAgYnJlYWs7CkBAIC04NjM5LDYg
Kzg2OTEsMTEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNvbXBhcmVFcVB0cihOb2Rl
KiBub2RlKQogICAgIGJsZXNzZWRCb29sZWFuUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9CiAK
K3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVET01HZXRBdHRyaWJ1dGUoTm9kZSogbm9kZSkK
K3sKKyAgICBub2RlLT5kb21KSVQoKS0+Y29tcGlsZURPTUdldEF0dHJpYnV0ZSh0aGlzLCBub2Rl
KTsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBlN2EyOWI0MzM0NmIy
NDgyM2E5OTg5ZmVlOTVkNjQwNWMzMThkYTczLi4yNzZhNmNjNjUwN2U3YjhhMGRiOWNjNjg0ZjFj
NWQxMTczNzBmZDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCkBAIC0xMzM0LDYgKzEzMzQsMTEgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewog
ICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgVHJ1
c3RlZEltbVB0cih1aWQpKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3Bl
cmF0aW9uLCByZXN1bHQpOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0
aW9uKEpfSklUT3BlcmF0aW9uX0VXZ1duIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVn
IGFyZzEsIEdQUlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNX
aXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJl
c3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpKSkkgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSwg
R1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQogICAgIHsK
ICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFy
ZzMsIFRydXN0ZWRJbW1QdHIodWlkKSk7CkBAIC0xNzc4LDYgKzE3ODMsMTEgQEAgY2xhc3MgU3Bl
Y3VsYXRpdmVKSVQgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
RUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFy
ZzIucGF5bG9hZEdQUigpLCBhcmcyLnRhZ0dQUigpLCBUcnVzdGVkSW1tUHRyKHVpZCkpOwogICAg
ICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdC5wYXlsb2Fk
R1BSKCksIHJlc3VsdC50YWdHUFIoKSk7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVdnV24gb3BlcmF0aW9uLCBKU1ZhbHVlUmVncyBy
ZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAgICAgICAgcmV0dXJuIGFw
cGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQucGF5bG9hZEdQUigpLCByZXN1bHQu
dGFnR1BSKCkpOworICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZf
SklUT3BlcmF0aW9uX0VKSkpJIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgYXJnMSwgSlNWYWx1ZVJl
Z3MgYXJnMiwgSlNWYWx1ZVJlZ3MgYXJnMywgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKICAgICB7
CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RV
TU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSwgYXJnMi5wYXlsb2FkR1BS
KCksIGFyZzIudGFnR1BSKCksIGFyZzMucGF5bG9hZEdQUigpLCBhcmczLnRhZ0dQUigpLCBUcnVz
dGVkSW1tUHRyKHVpZCkpOwpAQCAtMjU3OSw2ICsyNTg5LDcgQEAgY2xhc3MgU3BlY3VsYXRpdmVK
SVQgewogICAgIHZvaWQgY29tcGlsZUdldER5bmFtaWNWYXIoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZVB1dER5bmFtaWNWYXIoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNvbXBhcmVFcVB0cihO
b2RlKik7CisgICAgdm9pZCBjb21waWxlRE9NR2V0QXR0cmlidXRlKE5vZGUqKTsKIAogICAgIHZv
aWQgbW92ZVRydWVUbyhHUFJSZWcpOwogICAgIHZvaWQgbW92ZUZhbHNlVG8oR1BSUmVnKTsKQEAg
LTI2OTgsNiArMjcwOSwxMiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBzcGVj
dWxhdGVNYXBPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlU2V0
T2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2UsIEdQUlJlZyBj
ZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTU5vZGUoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxh
dGVET01Ob2RlKEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTUVsZW1l
bnQoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UsIEdQUlJlZyBjZWxs
KTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlKTsKKyAgICB2b2lk
IHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlLCBHUFJSZWcgY2VsbCk7CiAgICAgdm9p
ZCBzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5n
KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nSWRlbnRB
bmRMb2FkU3RvcmFnZShFZGdlIGVkZ2UsIEdQUlJlZyBzdHJpbmcsIEdQUlJlZyBzdG9yYWdlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCmluZGV4IGEyMmRiZWFkZTcxMDhmNzU1OTY2NmI5M2Y5YWVjN2VmNTBjMTM5NWIuLjg4
NDdiYzYyZDQ2Njc4OGNkMTRlMzdjYmYyMTVhNWMwMmMyNTI3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNDI0
MCw2ICs0MjQwLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICAgICAgY29tcGlsZUdldEFycmF5TGVuZ3RoKG5vZGUpOwogICAgICAgICBicmVhazsKIAor
ICAgIGNhc2UgRE9NR2V0QXR0cmlidXRlOgorICAgICAgICBjb21waWxlRE9NR2V0QXR0cmlidXRl
KG5vZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgRGVsZXRlQnlJZDogewogICAgICAg
ICBjb21waWxlRGVsZXRlQnlJZChub2RlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA4Y2Q1ZDcx
MzhmMDdjZGRkYzJjMmU3MGQ2ZjZkZjNjMWZiMWFkYjZlLi5kMGJlNmJmYjE2ZjU2ZjE0OTA0MDk0
NGIwZTViMjA5ZmI1MzE3ZTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQyMDMsNiArNDIwMywxMCBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVHZXRBcnJheUxl
bmd0aChub2RlKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIERPTUdldEF0dHJpYnV0ZToK
KyAgICAgICAgY29tcGlsZURPTUdldEF0dHJpYnV0ZShub2RlKTsKKyAgICAgICAgYnJlYWs7CisK
ICAgICBjYXNlIERlbGV0ZUJ5SWQ6IHsKICAgICAgICAgY29tcGlsZURlbGV0ZUJ5SWQobm9kZSk7
CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdVc2VLaW5kLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAK
aW5kZXggZTgzODI5YjcxMzA2MTczZGU5NWIwMTA4OGJmM2U5Y2Q4NGZkZjZlYy4uMjAyMGE1NWZk
Y2Q4OGFkNjY3MGNjNTVhMTFhMWI0ZTNiZDI5ODM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1VzZUtpbmQuY3BwCkBAIC0xMTIsNiArMTEyLDE1IEBAIHZvaWQgcHJpbnRJbnRlcm5h
bChQcmludFN0cmVhbSYgb3V0LCBVc2VLaW5kIHVzZUtpbmQpCiAgICAgY2FzZSBPYmplY3RPck90
aGVyVXNlOgogICAgICAgICBvdXQucHJpbnQoIk9iamVjdE9yT3RoZXIiKTsKICAgICAgICAgcmV0
dXJuOworICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAgb3V0LnByaW50KCJET01Ob2RlIik7
CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAgICAgIG91dC5w
cmludCgiRE9NRWxlbWVudCIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBET01Eb2N1bWVu
dFdyYXBwZXJVc2U6CisgICAgICAgIG91dC5wcmludCgiRE9NRG9jdW1lbnRXcmFwcGVyIik7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBvdXQucHJp
bnQoIlN0cmluZ0lkZW50Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdVc2VLaW5kLmgKaW5kZXggZjcyMGE0ZGJlOTQ1OTk5MmUwMjA0MTQ2ODY2YmM3OGEzNDVm
NGVlZi4uNGZkMDg4M2ZiZjE1OWIwNDcxYjEzNWZiYjNhNTBjMDBlOWM3YzBiMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKQEAgLTc0LDYgKzc0LDkgQEAgZW51bSBVc2VL
aW5kIHsKICAgICBOb3RDZWxsVXNlLAogICAgIE90aGVyVXNlLAogICAgIE1pc2NVc2UsCisgICAg
RE9NTm9kZVVzZSwKKyAgICBET01FbGVtZW50VXNlLAorICAgIERPTURvY3VtZW50V3JhcHBlclVz
ZSwKIAogICAgIC8vIDIuIFRoZSBEb3VibGUgcmVwcmVzZW50YXRpb24gZm9yIGFuIHVuYm94ZWQg
ZG91YmxlIHZhbHVlIHRoYXQgbXVzdCBiZSBzdG9yZWQKICAgICAvLyAgICBpbiBhbiBGUCByZWdp
c3Rlci4KQEAgLTE2MSw2ICsxNjQsMTIgQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0
ZXJGb3IoVXNlS2luZCB1c2VLaW5kKQogICAgICAgICByZXR1cm4gU3BlY090aGVyOwogICAgIGNh
c2UgTWlzY1VzZToKICAgICAgICAgcmV0dXJuIFNwZWNNaXNjOworICAgIGNhc2UgRE9NTm9kZVVz
ZToKKyAgICAgICAgcmV0dXJuIFNwZWNET01Ob2RlOworICAgIGNhc2UgRE9NRWxlbWVudFVzZToK
KyAgICAgICAgcmV0dXJuIFNwZWNET01FbGVtZW50OworICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFw
cGVyVXNlOgorICAgICAgICByZXR1cm4gU3BlY0RPTURvY3VtZW50V3JhcHBlcjsKICAgICBkZWZh
dWx0OgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1
cm4gU3BlY0Z1bGxUb3A7CkBAIC0yNDEsNiArMjUwLDkgQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVz
ZUtpbmQga2luZCkKICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgIGNhc2Ug
TWFwT2JqZWN0VXNlOgogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgorICAgIGNhc2UgRE9NTm9kZVVz
ZToKKyAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJV
c2U6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApp
bmRleCBjYWQ0NWZkYmFiZTkwZjQ0OTM0ZDE0YTRiZTNiZDEwZmM4Mjc2NDQ5Li41ZWI1Mjg4NDdi
NTA0OWI5NDg3M2U1N2JiZDdjZWI5Nzk4YTkzZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC00NDQsNiArNDQ0LDkgQEAgQ2FwYWJpbGl0
eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAgICAgICAgIGNhc2UgTm90
U3RyaW5nVmFyVXNlOgogICAgICAgICAgICAgICAgIGNhc2UgQW55SW50VXNlOgogICAgICAgICAg
ICAgICAgIGNhc2UgRG91YmxlUmVwQW55SW50VXNlOgorICAgICAgICAgICAgICAgIGNhc2UgRE9N
Tm9kZVVzZToKKyAgICAgICAgICAgICAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAgICAgICAg
ICAgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CiAgICAgICAgICAgICAgICAgICAgIC8v
IFRoZXNlIGFyZSBPSy4KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcAppbmRleCA5Zjg4NWI4NzEzODM5MjBiOWJkNGYzODVlOTkyMjQ3MmY5ZjIzMDZmLi5iYjU0
NDZiNTVkOTNkNzdjNjA4MTVhNmMyZWFkYzM3Nzg5ZjFhNTIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMDc5NSw2ICsxMDc5NSwxNSBA
QCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAg
ICAgICAgIHNwZWN1bGF0ZVNldE9iamVjdChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIERPTU5vZGVVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVET01Ob2RlKGVkZ2Up
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICAg
ICAgICAgIHNwZWN1bGF0ZURPTUVsZW1lbnQoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVE
T01Eb2N1bWVudFdyYXBwZXIoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBTdHJpbmdVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTEwOTIzLDYgKzEwOTMyLDI0IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7
CiAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKE9iamVjdFR5cGUpKTsKICAgICB9CiAKKyAg
ICBMVmFsdWUgaXNOb3RET01Ob2RlKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0g
U3BlY0Z1bGxUb3ApCisgICAgeworICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVu
VmFsdWUodHlwZSAmIFNwZWNDZWxsLCB+U3BlY0RPTU5vZGUpKQorICAgICAgICAgICAgcmV0dXJu
IHByb3ZlbjsKKyAgICAgICAgcmV0dXJuIG1fb3V0LmJlbG93KAorICAgICAgICAgICAgbV9vdXQu
bG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKKyAgICAg
ICAgICAgIG1fb3V0LmNvbnN0SW50MzIoRE9NTm9kZVR5cGUpKTsKKyAgICB9CisKKyAgICBMVmFs
dWUgaXNOb3RET01FbGVtZW50KExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3Bl
Y0Z1bGxUb3ApCisgICAgeworICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFs
dWUodHlwZSAmIFNwZWNDZWxsLCB+U3BlY0RPTUVsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJu
IHByb3ZlbjsKKyAgICAgICAgcmV0dXJuIG1fb3V0LmJlbG93KAorICAgICAgICAgICAgbV9vdXQu
bG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKKyAgICAg
ICAgICAgIG1fb3V0LmNvbnN0SW50MzIoRE9NRWxlbWVudFR5cGUpKTsKKyAgICB9CisKICAgICBM
VmFsdWUgaXNOb3RTdHJpbmcoTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVj
RnVsbFRvcCkKICAgICB7CiAgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1
ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVjU3RyaW5nKSkKQEAgLTExMTY5LDYgKzExMTk2LDM3IEBA
IGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgewogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3Qo
ZWRnZSwgbG93Q2VsbChlZGdlKSk7CiAgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVET01Ob2Rl
KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSyhq
c1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNET01FbGVtZW50LCBpc05vdERPTU5vZGUoY2Vs
bCkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlRE9NTm9kZShFZGdlIGVkZ2UpCisgICAg
eworICAgICAgICBzcGVjdWxhdGVET01Ob2RlKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0K
KworICAgIHZvaWQgc3BlY3VsYXRlRE9NRWxlbWVudChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQor
ICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBT
cGVjRE9NRWxlbWVudCwgaXNOb3RET01FbGVtZW50KGNlbGwpKTsKKyAgICB9CisKKyAgICB2b2lk
IHNwZWN1bGF0ZURPTUVsZW1lbnQoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRl
RE9NRWxlbWVudChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1
bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAg
ICAgICAgRlRMX1RZUEVfQ0hFQ0soCisgICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVk
Z2UsIFNwZWNEZXJpdmVkQXJyYXksIGlzTm90VHlwZShjZWxsLCBET01Eb2N1bWVudFdyYXBwZXJU
eXBlKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoRWRn
ZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKGVkZ2Us
IGxvd0NlbGwoZWRnZSkpOworICAgIH0KICAgICAKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZyhF
ZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDg2NjhhNmIxODBjODkyZjE2OTkyNTUxOGQ3YTc1MmNk
YTMwODU1MTEuLjhiNDgzYmM1N2YxZTY4MzI3MzQ1NWRhOGY3MGM1MzkzNDgxMzU2N2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtODU1LDYgKzg1
NSwzMCBAQCBjbGFzcyBBc3NlbWJseUhlbHBlcnMgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXIgewog
ICAgICAgICByZXR1cm4gYnJhbmNoOCgKICAgICAgICAgICAgIEJlbG93LCBBZGRyZXNzKGNlbGxH
UFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoT2JqZWN0VHlw
ZSkpOwogICAgIH0KKworICAgIEp1bXAgYnJhbmNoSWZET01Ob2RlKEdQUlJlZyBjZWxsR1BSKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgoCisgICAgICAgICAgICBBYm92ZU9yRXF1YWws
IEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJ
bW0zMihET01Ob2RlVHlwZSkpOworICAgIH0KKworICAgIEp1bXAgYnJhbmNoSWZOb3RET01Ob2Rl
KEdQUlJlZyBjZWxsR1BSKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgoCisgICAgICAg
ICAgICBCZWxvdywgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgp
KSwgVHJ1c3RlZEltbTMyKERPTU5vZGVUeXBlKSk7CisgICAgfQorCisgICAgSnVtcCBicmFuY2hJ
ZkRPTUVsZW1lbnQoR1BSUmVnIGNlbGxHUFIpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNo
OCgKKyAgICAgICAgICAgIEFib3ZlT3JFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5
cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKERPTUVsZW1lbnRUeXBlKSk7CisgICAg
fQorCisgICAgSnVtcCBicmFuY2hJZk5vdERPTUVsZW1lbnQoR1BSUmVnIGNlbGxHUFIpCisgICAg
eworICAgICAgICByZXR1cm4gYnJhbmNoOCgKKyAgICAgICAgICAgIEJlbG93LCBBZGRyZXNzKGNl
bGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoRE9NRWxl
bWVudFR5cGUpKTsKKyAgICB9CiAgICAgCiAgICAgSnVtcCBicmFuY2hJZlR5cGUoR1BSUmVnIGNl
bGxHUFIsIEpTVHlwZSB0eXBlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmgKaW5kZXggOTM1YzRmYWIxOWQyZDc3OWE1MGViNGU3N2YzNTE4NjFiMjExYTNm
Ni4uOTIyOTI1OTNiMjIyN2NiZjIxYjI4OWJiNjJiYWNjNTQ2OTA5NGRmMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTM2LDYgKzM2LDExIEBACiAjaW5j
bHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVW5pcXVlZFN0cmluZ0lt
cGwuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTm9kZTsKK2NsYXNzIEpTRE9NR2xv
YmFsT2JqZWN0OworfQorCiBuYW1lc3BhY2UgSlNDIHsKIAogdHlwZWRlZiBpbnQ2NF90IEVuY29k
ZWRKU1ZhbHVlOwpAQCAtMTE3LDYgKzEyMiw4IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwog
ICAgIFdzOiBXYXRjaHBvaW50U2V0KgogICAgIFo6IGludDMyX3QKICAgICBVaTogdWludDMyX3QK
KyAgICBXbjogV2ViQ29yZTo6Tm9kZSoKKyAgICBXZzogV2ViQ29yZTo6SlNET01HbG9iYWxPYmpl
Y3QqCiAqLwogCiB0eXBlZGVmIENhbGxGcmFtZSogKEpJVF9PUEVSQVRJT04gKkZfSklUT3BlcmF0
aW9uX0VGSlpaKShFeGVjU3RhdGUqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJf
dCwgaW50MzJfdCk7CkBAIC0xNzEsNiArMTc4LDcgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAo
SklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRVpaKShFeGVjU3RhdGUqLCBpbnQzMl90LAog
dHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRpb25fRVpT
eW10YWJKKShFeGVjU3RhdGUqLCBpbnQzMl90LCBTeW1ib2xUYWJsZSosIEVuY29kZWRKU1ZhbHVl
KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpJVF9PUEVSQVRJT04gKkpfSklUT3BlcmF0aW9u
X0VPSVVpKShFeGVjU3RhdGUqLCBKU09iamVjdCosIFVuaXF1ZWRTdHJpbmdJbXBsKiwgdWludDMy
X3QpOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAqSl9KSVRPcGVyYXRp
b25fRUpKSSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBVbmlx
dWVkU3RyaW5nSW1wbCopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSklUX09QRVJBVElPTiAq
Sl9KSVRPcGVyYXRpb25fRVdnV24pKEV4ZWNTdGF0ZSosIFdlYkNvcmU6OkpTRE9NR2xvYmFsT2Jq
ZWN0KiwgV2ViQ29yZTo6Tm9kZSopOwogdHlwZWRlZiBKU0NlbGwqIChKSVRfT1BFUkFUSU9OICpD
X0pJVE9wZXJhdGlvbl9FKShFeGVjU3RhdGUqKTsKIHR5cGVkZWYgSlNDZWxsKiAoSklUX09QRVJB
VElPTiAqQ19KSVRPcGVyYXRpb25fRVopKEV4ZWNTdGF0ZSosIGludDMyX3QpOwogdHlwZWRlZiBK
U0NlbGwqIChKSVRfT1BFUkFUSU9OICpDX0pJVE9wZXJhdGlvbl9FQykoRXhlY1N0YXRlKiwgSlND
ZWxsKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAppbmRleCBkNDU5MzljNTk1
OWE4MDdkNDUwNWI5NGVhM2NlYTE1NWZmZjVjNGI4Li5mMmNhZWQwOGEwMzE0YTIyOTRkNjljODdm
YmVjYTdhMDcyNTAxYjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
cGF0Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKQEAg
LTI2MCw2ICsyNjAsMTAgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJ
RChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb24KICAgICAgICAgaWYgKHNs
b3QuaXNDYWNoZWFibGVHZXR0ZXIoKSkKICAgICAgICAgICAgIGdldHRlciA9IGpzRHluYW1pY0Nh
c3Q8SlNGdW5jdGlvbio+KHNsb3QuZ2V0dGVyU2V0dGVyKCktPmdldHRlcigpKTsKIAorICAgICAg
ICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IG51bGxwdHI7CisgICAg
ICAgIGlmICgoc2xvdC5hdHRyaWJ1dGVzKCkgJiBDdXN0b21BY2Nlc3NvcikgJiYgc2xvdC5pc0Nh
Y2hlYWJsZUN1c3RvbSgpICYmIHNsb3QuY3VzdG9tR2V0dGVyU2V0dGVyKCktPmVtaXR0ZXIoKSkK
KyAgICAgICAgICAgIGN1c3RvbUdldHRlclNldHRlciA9IHNsb3QuY3VzdG9tR2V0dGVyU2V0dGVy
KCk7CisKICAgICAgICAgaWYgKGtpbmQgPT0gR2V0QnlJREtpbmQ6OlB1cmUpIHsKICAgICAgICAg
ICAgIEFjY2Vzc0Nhc2U6OkFjY2Vzc1R5cGUgdHlwZTsKICAgICAgICAgICAgIGlmIChzbG90Lmlz
Q2FjaGVhYmxlVmFsdWUoKSkKQEAgLTI5MCw3ICsyOTQsOCBAQCBzdGF0aWMgSW5saW5lQ2FjaGVB
Y3Rpb24gdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUs
IGNvbgogICAgICAgICAgICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmdldCgKICAgICAgICAgICAg
ICAgICB2bSwgY29kZUJsb2NrLCB0eXBlLCBvZmZzZXQsIHN0cnVjdHVyZSwgY29uZGl0aW9uU2V0
LCBsb2FkVGFyZ2V0RnJvbVByb3h5LAogICAgICAgICAgICAgICAgIHNsb3Qud2F0Y2hwb2ludFNl
dCgpLCBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgPyBzbG90LmN1c3RvbUdldHRlcigpIDogbnVs
bHB0ciwKLSAgICAgICAgICAgICAgICBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgPyBzbG90LnNs
b3RCYXNlKCkgOiBudWxscHRyKTsKKyAgICAgICAgICAgICAgICBzbG90LmlzQ2FjaGVhYmxlQ3Vz
dG9tKCkgPyBzbG90LnNsb3RCYXNlKCkgOiBudWxscHRyLAorICAgICAgICAgICAgICAgIGN1c3Rv
bUdldHRlclNldHRlcik7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmgKaW5kZXggMjRiZmY4ODRlMGJl
ODBkODBlMmFhOWRmYmU1YjEyNmYzZmM5YjdiZi4uN2FiNmRjOWU5NWVlZmMxMDk4NmU1NTJmZDc4
YmVhYWZmZDliMzIzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q3VzdG9tR2V0dGVyU2V0dGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q3VzdG9tR2V0dGVyU2V0dGVyLmgKQEAgLTMzLDYgKzMzLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKK2NsYXNzIERPTUpJVDsKKwogY2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKQEAgLTQxLDE1
ICs0MywxNiBAQCBjbGFzcyBDdXN0b21HZXR0ZXJTZXR0ZXIgZmluYWwgOiBwdWJsaWMgSlNDZWxs
IHsKICAgICB0eXBlZGVmIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIEN1c3RvbUdldHRlcjsK
ICAgICB0eXBlZGVmIFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jIEN1c3RvbVNldHRlcjsK
IAotICAgIHN0YXRpYyBDdXN0b21HZXR0ZXJTZXR0ZXIqIGNyZWF0ZShWTSYgdm0sIEN1c3RvbUdl
dHRlciBjdXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlciBjdXN0b21TZXR0ZXIpCisgICAgc3RhdGlj
IEN1c3RvbUdldHRlclNldHRlciogY3JlYXRlKFZNJiB2bSwgQ3VzdG9tR2V0dGVyIGN1c3RvbUdl
dHRlciwgQ3VzdG9tU2V0dGVyIGN1c3RvbVNldHRlciwgRE9NSklUKiBlbWl0dGVyID0gbnVsbHB0
cikKICAgICB7Ci0gICAgICAgIEN1c3RvbUdldHRlclNldHRlciogY3VzdG9tR2V0dGVyU2V0dGVy
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8Q3VzdG9tR2V0dGVyU2V0dGVyPih2bS5oZWFw
KSkgQ3VzdG9tR2V0dGVyU2V0dGVyKHZtLCBjdXN0b21HZXR0ZXIsIGN1c3RvbVNldHRlcik7Cisg
ICAgICAgIEN1c3RvbUdldHRlclNldHRlciogY3VzdG9tR2V0dGVyU2V0dGVyID0gbmV3IChOb3RO
dWxsLCBhbGxvY2F0ZUNlbGw8Q3VzdG9tR2V0dGVyU2V0dGVyPih2bS5oZWFwKSkgQ3VzdG9tR2V0
dGVyU2V0dGVyKHZtLCBjdXN0b21HZXR0ZXIsIGN1c3RvbVNldHRlciwgZW1pdHRlcik7CiAgICAg
ICAgIGN1c3RvbUdldHRlclNldHRlci0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAgICByZXR1
cm4gY3VzdG9tR2V0dGVyU2V0dGVyOwogICAgIH0KIAogICAgIEN1c3RvbUdldHRlclNldHRlcjo6
Q3VzdG9tR2V0dGVyIGdldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2V0dGVyOyB9CiAgICAgQ3Vz
dG9tR2V0dGVyU2V0dGVyOjpDdXN0b21TZXR0ZXIgc2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXR0ZXI7IH0KKyAgICBET01KSVQqIGVtaXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX2VtaXR0ZXI7
IH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTU5
LDE1ICs2MiwxNyBAQCBjbGFzcyBDdXN0b21HZXR0ZXJTZXR0ZXIgZmluYWwgOiBwdWJsaWMgSlND
ZWxsIHsKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwogCiBwcml2YXRlOgotICAgIEN1c3RvbUdl
dHRlclNldHRlcihWTSYgdm0sIEN1c3RvbUdldHRlciBnZXR0ZXIsIEN1c3RvbVNldHRlciBzZXR0
ZXIpCisgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKFZNJiB2bSwgQ3VzdG9tR2V0dGVyIGdldHRlciwg
Q3VzdG9tU2V0dGVyIHNldHRlciwgRE9NSklUKiBlbWl0dGVyKQogICAgICAgICA6IEpTQ2VsbCh2
bSwgdm0uY3VzdG9tR2V0dGVyU2V0dGVyU3RydWN0dXJlLmdldCgpKQogICAgICAgICAsIG1fZ2V0
dGVyKGdldHRlcikKICAgICAgICAgLCBtX3NldHRlcihzZXR0ZXIpCisgICAgICAgICwgbV9lbWl0
dGVyKGVtaXR0ZXIpCiAgICAgewogICAgIH0KIAogICAgIEN1c3RvbUdldHRlciBtX2dldHRlcjsK
ICAgICBDdXN0b21TZXR0ZXIgbV9zZXR0ZXI7CisgICAgRE9NSklUKiBtX2VtaXR0ZXI7CiB9Owog
CiBKU19FWFBPUlRfUFJJVkFURSBib29sIGNhbGxDdXN0b21TZXR0ZXIoRXhlY1N0YXRlKiwgQ3Vz
dG9tR2V0dGVyU2V0dGVyOjpDdXN0b21TZXR0ZXIsIGJvb2wgaXNBY2Nlc3NvciwgSlNWYWx1ZSB0
aGlzVmFsdWUsIEpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50cmluc2ljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5z
aWMuaAppbmRleCBkYTcxM2ZmODczYThjMzI5MDRiODFlZTg4ZDE2NDlmZGZiY2RjZTRhLi44MWE5
YTgyNzg1YzJjODJjOTE2ZGI4OTllZDEzNjRiMGUzMTBhNTZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRyaW5zaWMuaApAQCAtNzEsNiArNzEsNyBAQCBlbnVtIEpTX0VYUE9S
VF9QUklWQVRFIEludHJpbnNpYyB7CiAgICAgVHlwZWRBcnJheUxlbmd0aEludHJpbnNpYywKICAg
ICBUeXBlZEFycmF5Qnl0ZUxlbmd0aEludHJpbnNpYywKICAgICBUeXBlZEFycmF5Qnl0ZU9mZnNl
dEludHJpbnNpYywKKyAgICBET01Ob2RlRmlyc3RDaGlsZEludHJpbnNpYywKIAogICAgIC8vIERl
YnVnZ2luZyBpbnRyaW5zaWNzLiBUaGVzZSBhcmUgbWVhbnQgdG8gYmUgdXNlZCBhcyB0ZXN0aW5n
IGhhY2tzIHdpdGhpbgogICAgIC8vIGpzYy5jcHAgYW5kIHNob3VsZCBuZXZlciBiZSBleHBvc2Vk
IHRvIHVzZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNU
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAppbmRleCAwZGY3
NGYyOWQxMjdmNTUzZjc1MTQzZDA1MjNlNGM5NGI5YmVhMjY2Li5hNThmNGE2NWU4MTJhYjdmNTI1
ZWU3NTZmOGM1MWE2MzgxZWEzNmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGUuaApAQCAtODcsNyArODcsMTMgQEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKICAgICBKU01h
cFR5cGUsCiAgICAgSlNTZXRUeXBlLAogCi0gICAgTGFzdEpTQ09iamVjdFR5cGUgPSBKU1NldFR5
cGUsCisgICAgLy8gVGhlIERPTU5vZGVUeXBlIHZhbHVlIG11c3QgY29tZSBiZWZvcmUgYW55IEpT
VHlwZSB0aGF0IGlzIGEgc3ViY2xhc3Mgb2YgSlNOb2RlLgorICAgIERPTU5vZGVUeXBlLAorICAg
IERPTURvY3VtZW50V3JhcHBlclR5cGUsCisgICAgLy8gVGhlIERPTUVsZW1lbnRUeXBlIHZhbHVl
IG11c3QgY29tZSBiZWZvcmUgYW55IEpTVHlwZSB0aGF0IGlzIGEgc3ViY2xhc3Mgb2YgSlNFbGVt
ZW50LgorICAgIERPTUVsZW1lbnRUeXBlLAorCisgICAgTGFzdEpTQ09iamVjdFR5cGUgPSBET01F
bGVtZW50VHlwZSwKIH07CiAKIENPTVBJTEVfQVNTRVJUKHNpemVvZihKU1R5cGUpID09IHNpemVv
Zih1aW50OF90KSwgc2l6ZW9mX2pzdHlwZV9pc19vbmVfYnl0ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xvb2t1cC5oCmluZGV4IDViMmM0YTQ2YmQ4NmYyMDkxNjE4MGI0OTVlZTkyN2I3
N2I0NGE4NGEuLjI1OGI2YmY5MmMwNjg1NDk3NmIyZDFjOTVmYjA3NDJjODQwNjBmZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5j
bHVkZSAiQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUu
aCIKICNpbmNsdWRlICJDdXN0b21HZXR0ZXJTZXR0ZXIuaCIKKyNpbmNsdWRlICJET01KSVQuaCIK
ICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllcklubGluZXMuaCIK
ICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKQEAgLTc5LDYgKzgwLDggQEAgc3RydWN0IEhhc2hUYWJs
ZVZhbHVlIHsKICAgICBHZXRGdW5jdGlvbiBwcm9wZXJ0eUdldHRlcigpIGNvbnN0IHsgQVNTRVJU
KCEobV9hdHRyaWJ1dGVzICYgQnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29yT3JMYXp5UHJvcGVy
dHlPckNvbnN0YW50KSk7IHJldHVybiByZWludGVycHJldF9jYXN0PEdldEZ1bmN0aW9uPihtX3Zh
bHVlcy52YWx1ZTEpOyB9CiAgICAgUHV0RnVuY3Rpb24gcHJvcGVydHlQdXR0ZXIoKSBjb25zdCB7
IEFTU0VSVCghKG1fYXR0cmlidXRlcyAmIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6
eVByb3BlcnR5T3JDb25zdGFudCkpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQdXRGdW5jdGlv
bj4obV92YWx1ZXMudmFsdWUyKTsgfQogCisgICAgRE9NSklUKiBkb21KSVQoKSBjb25zdCB7IEFT
U0VSVChtX2F0dHJpYnV0ZXMgJiBET01KSVRBdHRyaWJ1dGUpOyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxET01KSVQqPihtX3ZhbHVlcy52YWx1ZTEpOyB9CisKICAgICBOYXRpdmVGdW5jdGlvbiBh
Y2Nlc3NvckdldHRlcigpIGNvbnN0IHsgQVNTRVJUKG1fYXR0cmlidXRlcyAmIEFjY2Vzc29yKTsg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KG1fdmFsdWVzLnZhbHVlMSk7
IH0KICAgICBOYXRpdmVGdW5jdGlvbiBhY2Nlc3NvclNldHRlcigpIGNvbnN0IHsgQVNTRVJUKG1f
YXR0cmlidXRlcyAmIEFjY2Vzc29yKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KG1fdmFsdWVzLnZhbHVlMik7IH0KICAgICBCdWlsdGluR2VuZXJhdG9yIGJ1aWx0aW5B
Y2Nlc3NvckdldHRlckdlbmVyYXRvcigpIGNvbnN0OwpAQCAtMjYwLDYgKzI2Myw3IEBAIGlubGlu
ZSBib29sIHB1dEVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSGFzaFRhYmxlVmFsdWUqIGVu
dHJ5LCBKU09iamVjdCogYmFzCiAgICAgICAgIHJldHVybiByZWplY3QoZXhlYywgc2xvdC5pc1N0
cmljdE1vZGUoKSwgU3RyaWN0TW9kZVJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKTsKIAogICAg
IGlmICghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBSZWFkT25seSkpIHsKKyAgICAgICAgQVNTRVJU
KCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIERPTUpJVEF0dHJpYnV0ZSkpOwogICAgICAgICBib29s
IGlzQWNjZXNzb3IgPSBlbnRyeS0+YXR0cmlidXRlcygpICYgQ3VzdG9tQWNjZXNzb3I7CiAgICAg
ICAgIEpTVmFsdWUgdXBkYXRlVGhpc1ZhbHVlID0gZW50cnktPmF0dHJpYnV0ZXMoKSAmIEN1c3Rv
bUFjY2Vzc29yID8gc2xvdC50aGlzVmFsdWUoKSA6IEpTVmFsdWUoYmFzZSk7CiAgICAgICAgIGJv
b2wgcmVzdWx0ID0gY2FsbEN1c3RvbVNldHRlcihleGVjLCBlbnRyeS0+cHJvcGVydHlQdXR0ZXIo
KSwgaXNBY2Nlc3NvciwgdXBkYXRlVGhpc1ZhbHVlLCB2YWx1ZSk7CkBAIC0zMzcsNiArMzQxLDEz
IEBAIGlubGluZSB2b2lkIHJlaWZ5U3RhdGljUHJvcGVydHkoVk0mIHZtLCBjb25zdCBQcm9wZXJ0
eU5hbWUmIHByb3BlcnR5TmFtZSwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IGlmICh2YWx1ZS5hdHRyaWJ1dGVzKCkgJiBET01KSVRBdHRyaWJ1dGUpIHsKKyAgICAgICAgRE9N
SklUKiBkb21KSVQgPSB2YWx1ZS5kb21KSVQoKTsKKyAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVy
KiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZG9t
SklULT5nZXR0ZXIoKSwgZG9tSklULT5zZXR0ZXIoKSwgZG9tSklUKTsKKyAgICAgICAgdGhpc09i
ai5wdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgcHJvcGVydHlOYW1lLCBjdXN0b21HZXR0ZXJT
ZXR0ZXIsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmlidXRlcygpKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRl
clNldHRlciA9IEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCB2YWx1ZS5wcm9wZXJ0eUdl
dHRlcigpLCB2YWx1ZS5wcm9wZXJ0eVB1dHRlcigpKTsKICAgICB0aGlzT2JqLnB1dERpcmVjdEN1
c3RvbUFjY2Vzc29yKHZtLCBwcm9wZXJ0eU5hbWUsIGN1c3RvbUdldHRlclNldHRlciwgYXR0cmli
dXRlc0ZvclN0cnVjdHVyZSh2YWx1ZS5hdHRyaWJ1dGVzKCkpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKaW5kZXggNDBlOTMxZjYwZTZhYjAxZjhi
M2E1NTI1ODExZWU1NGVjZGI4M2MxYi4uYTk0MzliMTA4YzMxNTgwMjQwNmU2ZDM5YWNjMmQxZTY5
YjMwMDUxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlTbG90LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90
LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgZW51bSBBdHRyaWJ1dGUgewogICAgIENlbGxQcm9wZXJ0eSAg
ICAgID0gMSA8PCAxMSwgLy8gcHJvcGVydHkgaXMgYSBsYXp5IHByb3BlcnR5IC0gb25seSB1c2Vk
IGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQ2xhc3NTdHJ1Y3R1cmUgICAgPSAxIDw8IDEyLCAv
LyBwcm9wZXJ0eSBpcyBhIGxhenkgY2xhc3Mgc3RydWN0dXJlIC0gb25seSB1c2VkIGJ5IHN0YXRp
YyBoYXNodGFibGVzCiAgICAgUHJvcGVydHlDYWxsYmFjayAgPSAxIDw8IDEzLCAvLyBwcm9wZXJ0
eSB0aGF0IGlzIGEgbGF6eSBwcm9wZXJ0eSBjYWxsYmFjayAtIG9ubHkgdXNlZCBieSBzdGF0aWMg
aGFzaHRhYmxlcworICAgIERPTUpJVEF0dHJpYnV0ZSAgID0gMSA8PCAxNCwgLy8gcHJvcGVydHkg
aXMgYSBET00gSklUIGF0dHJpYnV0ZSAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwog
ICAgIEJ1aWx0aW5PckZ1bmN0aW9uID0gQnVpbHRpbiB8IEZ1bmN0aW9uLCAvLyBoZWxwZXIgb25s
eSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRpbk9yRnVuY3Rpb25PckxhenlQ
cm9wZXJ0eSA9IEJ1aWx0aW4gfCBGdW5jdGlvbiB8IENlbGxQcm9wZXJ0eSB8IENsYXNzU3RydWN0
dXJlIHwgUHJvcGVydHlDYWxsYmFjaywgLy8gaGVscGVyIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFz
aHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6eVByb3BlcnR5ID0g
QnVpbHRpbiB8IEZ1bmN0aW9uIHwgQWNjZXNzb3IgfCBDZWxsUHJvcGVydHkgfCBDbGFzc1N0cnVj
dHVyZSB8IFByb3BlcnR5Q2FsbGJhY2ssIC8vIGhlbHBlciBvbmx5IHVzZWQgYnkgc3RhdGljIGhh
c2h0YWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oIGIvU291
cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKaW5kZXggZWJlMzBjOTYxZjI2Yzg5ZmI4MmZhYmI2
OTlhNGI1MTM2MjVlNDM4Ny4uMGNiMTNhOGNlN2IwMWNmZGU4ZWYxYTIwMjJhYjg4ZTEyNWYxZTcz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKKysrIGIvU291cmNl
L1dURi93dGYvU3RkTGliRXh0cmFzLmgKQEAgLTY4LDYgKzY4LDggQEAKIC8vIE5VTEwgY2FuIGNh
dXNlIGNvbXBpbGVyIHByb2JsZW1zLCBlc3BlY2lhbGx5IGluIGNhc2VzIG9mIG11bHRpcGxlIGlu
aGVyaXRhbmNlLgogI2RlZmluZSBPQkpFQ1RfT0ZGU0VUT0YoY2xhc3MsIGZpZWxkKSAocmVpbnRl
cnByZXRfY2FzdDxwdHJkaWZmX3Q+KCYocmVpbnRlcnByZXRfY2FzdDxjbGFzcyo+KDB4NDAwMCkt
PmZpZWxkKSkgLSAweDQwMDApCiAKKyNkZWZpbmUgQ0FTVF9PRkZTRVQoZnJvbSwgdG8pIChyZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oc3RhdGljX2Nhc3Q8dG8+KChyZWludGVycHJldF9jYXN0
PGZyb20+KDB4NDAwMCkpKSkgLSAweDQwMDApCisKIC8vIFNUUklOR0laRTogQ2FuIGNvbnZlcnQg
YW55IHZhbHVlIHRvIHF1b3RlZCBzdHJpbmcsIGV2ZW4gZXhwYW5kYWJsZSBtYWNyb3MKICNkZWZp
bmUgU1RSSU5HSVpFKGV4cCkgI2V4cAogI2RlZmluZSBTVFJJTkdJWkVfVkFMVUVfT0YoZXhwKSBT
VFJJTkdJWkUoZXhwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNzc2ZTBkN2M0NTNmNmJmZWRk
MDllYmJjNDBlNGEzYmJkNDBhNGM1Li40YjVhZWNkNDlhMTJlZTkwNjQyNzdiYTY1NjEzMzJiNTg2
YmI0M2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDgsNiArNDgsNyBAQCBzZXQoV2ViQ29y
ZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2Nzc2ppdCIKICAgICAi
JHtXRUJDT1JFX0RJUn0vZG9tIgogICAgICIke1dFQkNPUkVfRElSfS9kb20vZGVmYXVsdCIKKyAg
ICAiJHtXRUJDT1JFX0RJUn0vZG9taml0IgogICAgICIke1dFQkNPUkVfRElSfS9lZGl0aW5nIgog
ICAgICIke1dFQkNPUkVfRElSfS9maWxlYXBpIgogICAgICIke1dFQkNPUkVfRElSfS9oaXN0b3J5
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUv
RE9NSklULmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZS9ET01K
SVQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jY2RiZjMwMjIxZDRmZWQyNTNlMjg1ZjkxOGNiYzMxNDIzYTQyM2Ix
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvYnl0
ZWNvZGUvRE9NSklULmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0RPTUpJ
VF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0RPTUpJVF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvRE9NSklULmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Yx
MWE5ZGM2MzgxZmMwNThiMDY2MTM3NjRkZTkyMjkyMTE1MmMxNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRv
ci5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBXZWJDb3JlX0ZXRF9ERkdTbG93UGF0aEdlbmVy
YXRvcl9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0RGR1Nsb3dQYXRoR2VuZXJhdG9yX2gKKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9ERkdTbG93UGF0aEdlbmVyYXRvci5oPgorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzNTBhNmI3NTllMTA0MWJjZTljMDNkMWYwNzlmNDM0MDZi
ODc3MmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29y
ZV9GV0RfREZHU3BlY3VsYXRpdmVKSVRfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9ERkdTcGVjdWxh
dGl2ZUpJVF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvREZHU3BlY3VsYXRpdmVKSVQuaD4K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0
LmgKaW5kZXggZDQwYzQzZjYzZDU3ZTdlNTk3MGM3ZTYyZWZhODU2YWU2NGUzMmYyOS4uMTE2ZDVk
ZGY1MTk5MzdmYzY2MTM1NWEyYzg5YmViYjM4MDViYzJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC03Miw2ICs3Miw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkKCkgeyByZXR1
cm4gbV93b3JsZC5nZXQoKTsgfQogICAgICAgICBib29sIHdvcmxkSXNOb3JtYWwoKSBjb25zdCB7
IHJldHVybiBtX3dvcmxkSXNOb3JtYWw7IH0KKyAgICAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZz
ZXRPZldvcmxkSXNOb3JtYWwoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNET01HbG9iYWxP
YmplY3QsIG1fd29ybGRJc05vcm1hbCk7IH0KIAogICAgICAgICBKU0J1aWx0aW5JbnRlcm5hbEZ1
bmN0aW9ucyYgYnVpbHRpbkludGVybmFsRnVuY3Rpb25zKCkgeyByZXR1cm4gbV9idWlsdGluSW50
ZXJuYWxGdW5jdGlvbnM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBw
ZXIuaAppbmRleCBjZDUwYWVmODAxYjg1OTI5ZDY3Mzg2YWU2MjZjN2NhZTU4NzJmNGE0Li5jZWM2
YjhkNmJkN2Y2NDUwYzRkMGE5ZDcxNzNiM2E1YzkwZjM5NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApAQCAtMzAsMTAgKzMwLDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgSlNET01XaW5kb3c7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OwogCi1zdGF0aWMgY29uc3QgdWludDhfdCBKU05vZGVUeXBlID0gSlNDOjpMYXN0SlNDT2JqZWN0
VHlwZSArIDE7Ci1zdGF0aWMgY29uc3QgdWludDhfdCBKU0RvY3VtZW50V3JhcHBlclR5cGUgPSBK
U0M6Okxhc3RKU0NPYmplY3RUeXBlICsgMjsKLXN0YXRpYyBjb25zdCB1aW50OF90IEpTRWxlbWVu
dFR5cGUgPSBKU0M6Okxhc3RKU0NPYmplY3RUeXBlICsgMzsKLQogY2xhc3MgSlNET01PYmplY3Qg
OiBwdWJsaWMgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7CkBAIC01OSw2ICs1NSw3IEBAIHRlbXBs
YXRlPHR5cGVuYW1lIEltcGxlbWVudGF0aW9uQ2xhc3M+IGNsYXNzIEpTRE9NV3JhcHBlciA6IHB1
YmxpYyBKU0RPTU9iamVjdCB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRE9NV3JhcHBl
ciA9IHRydWU7CiAKICAgICBJbXBsZW1lbnRhdGlvbkNsYXNzJiB3cmFwcGVkKCkgY29uc3QgeyBy
ZXR1cm4gY29uc3RfY2FzdDxJbXBsZW1lbnRhdGlvbkNsYXNzJj4obV93cmFwcGVkLmdldCgpKTsg
fQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXcmFwcGVkKCkgeyByZXR1cm4gT0JKRUNU
X09GRlNFVE9GKEpTRE9NV3JhcHBlcjxJbXBsZW1lbnRhdGlvbkNsYXNzPiwgbV93cmFwcGVkKTsg
fQogCiBwcm90ZWN0ZWQ6CiAgICAgSlNET01XcmFwcGVyKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgUmVmPEltcGxlbWVudGF0aW9u
Q2xhc3M+JiYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RG9jdW1lbnRDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRD
dXN0b20uaAppbmRleCA2OWM0Y2E4Mjg5MTljOWIxM2FiYWIxYzgzYjZiYWEwMmE5ZDZiYzJhLi5m
MGFjN2M3NDE4YjA1OGU1YzEwZDE2OGIwMTIzNjUwOWQyMzUxMmU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oCkBAIC0zNSw3ICszNSw3IEBAIEFM
V0FZU19JTkxJTkUgSlNEb2N1bWVudCoganNEb2N1bWVudENhc3QoSlNDOjpKU1ZhbHVlIHZhbHVl
KQogewogICAgIGlmIChVTkxJS0VMWSghdmFsdWUuaXNDZWxsKCkpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICByZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA9PSBKU0RvY3VtZW50
V3JhcHBlclR5cGUgPyBKU0M6OmpzQ2FzdDxKU0RvY3VtZW50Kj4odmFsdWUpIDogbnVsbHB0cjsK
KyAgICByZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA9PSBKU0M6OkRPTURvY3VtZW50V3Jh
cHBlclR5cGUgPyBKU0M6OmpzQ2FzdDxKU0RvY3VtZW50Kj4odmFsdWUpIDogbnVsbHB0cjsKIH0K
IAogSlNDOjpKU09iamVjdCogY2FjaGVkRG9jdW1lbnRXcmFwcGVyKEpTQzo6RXhlY1N0YXRlJiwg
SlNET01HbG9iYWxPYmplY3QmLCBEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0VsZW1lbnRDdXN0b20uaAppbmRleCAyYTFiYTAxODAzMjRkMDg0YjRhYzViNmIyYzk1
N2VkYzM5YTc5NmY3Li5mMmJhMGQ5YmFjYzUwMjYwOWJjNjJhNzFiZjk1Y2JhYTdjZmE0OTUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaApAQCAtMzUs
NyArMzUsNyBAQCBBTFdBWVNfSU5MSU5FIEpTRWxlbWVudCoganNFbGVtZW50Q2FzdChKU0M6OkpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc0NlbGwoKSkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID49
IEpTRWxlbWVudFR5cGUgPyBKU0M6OmpzQ2FzdDxKU0VsZW1lbnQqPih2YWx1ZSkgOiBudWxscHRy
OworICAgIHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID49IEpTQzo6RE9NRWxlbWVudFR5
cGUgPyBKU0M6OmpzQ2FzdDxKU0VsZW1lbnQqPih2YWx1ZSkgOiBudWxscHRyOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU05vZGVDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3Rv
bS5oCmluZGV4IGFiNjM2MWM2NTNlZTE4NmUwNzRiY2UyMzUyZDUyY2JiODZmNzEzZjAuLjUwMTQ5
ZjgyOTg5YzhhYTljYjEyNjY3YzVkMjNkNjg0NmU2NzA3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCkBAIC04Miw3ICs4Miw3IEBAIEFMV0FZU19JTkxJTkUg
SlNOb2RlKiBqc05vZGVDYXN0KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoVU5MSUtF
TFkoIXZhbHVlLmlzQ2VsbCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJu
IHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPj0gSlNOb2RlVHlwZSA/IEpTQzo6anNDYXN0PEpTTm9k
ZSo+KHZhbHVlKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkg
Pj0gSlNDOjpET01Ob2RlVHlwZSA/IEpTQzo6anNDYXN0PEpTTm9kZSo+KHZhbHVlKSA6IG51bGxw
dHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKaW5kZXggNWQ5MzI2MTE0YWE2ZjBjMWQ0ZjBiN2JjZTE2
NGExMjM4ZTI2YTkwYy4uMmU1ODJiYjUwYmM5OWVhYjNiMDg2MWRjZTBmODk3OGI3YmM5NTRlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKQEAgLTQ3
LDYgKzQ3LDcgQEAgY2xhc3MgU2NyaXB0V3JhcHBhYmxlIHsKICAgICBKU0RPTU9iamVjdCogd3Jh
cHBlcigpIGNvbnN0OwogICAgIHZvaWQgc2V0V3JhcHBlcihKU0RPTU9iamVjdCosIEpTQzo6V2Vh
a0hhbmRsZU93bmVyKiwgdm9pZCopOwogICAgIHZvaWQgY2xlYXJXcmFwcGVyKEpTRE9NT2JqZWN0
Kik7CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldyYXBwZXIoKSB7IHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoU2NyaXB0V3JhcHBhYmxlLCBtX3dyYXBwZXIpOyB9CiAKIHByb3RlY3RlZDoK
ICAgICB+U2NyaXB0V3JhcHBhYmxlKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGZlYjE1ZGVlZjQ2M2NhZGRmYTc5
OGRlMzIyYmQ0MmNkMTFmNDk1MDAuLmQ4M2JjYTkyNzE2YmQ3ZGI0YjI4OWYwYjhhYjhmOWM1NGJi
NzE3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC02MjYsNiArNjI2LDcgQEAgc3ViIEdldEpTQ0F0dHJpYnV0ZXNGb3JB
dHRyaWJ1dGUKICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVtIikgaWYgKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1lcmFibGUifSB8fCAkaXNf
Z2xvYmFsX2NvbnN0cnVjdG9yKTsKICAgICBwdXNoKEBzcGVjaWFscywgIlJlYWRPbmx5IikgaWYg
SXNSZWFkb25seSgkYXR0cmlidXRlKTsKICAgICBwdXNoKEBzcGVjaWFscywgIkN1c3RvbUFjY2Vz
c29yIikgdW5sZXNzICRpc19nbG9iYWxfY29uc3RydWN0b3Igb3IgSXNKU0J1aWx0aW4oJGludGVy
ZmFjZSwgJGF0dHJpYnV0ZSk7CisgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1dGUi
KSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQi
fTsKICAgICBwdXNoKEBzcGVjaWFscywgIkFjY2Vzc29yIHwgQnVpbHRpbiIpIGlmICBJc0pTQnVp
bHRpbigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAgICByZXR1cm4gKEBzcGVjaWFscyA+IDAp
ID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKIH0KQEAgLTEyODUsMTEgKzEyODYsMTEg
QEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZh
Y2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6
OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBl
SW5mbyhKU0M6Okdsb2JhbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIp
OwogICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJm
YWNlLCAiRG9jdW1lbnQiKSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpKU1R5cGUoSlNEb2N1bWVudFdyYXBwZXJUeXBlKSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkRPTURvY3VtZW50V3JhcHBlclR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOwogICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiRWxlbWVudCIpKSB7Ci0gICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkpTVHlwZShK
U0VsZW1lbnRUeXBlKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CisgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkRPTUVsZW1l
bnRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKICAgICB9IGVsc2lmICgkY29k
ZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIk5vZGUiKSkgewotICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpK
U1R5cGUoSlNOb2RlVHlwZSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOworICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpET01O
b2RlVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfQpAQCAtMTM0
Nyw2ICsxMzQ4LDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgbXkgJGhhc0ZvcndhcmREZWNs
YXJpbmdGdW5jdGlvbnMgPSAwOwogICAgIG15ICRoYXNGb3J3YXJkRGVjbGFyaW5nQXR0cmlidXRl
cyA9IDA7CiAKKyAgICBteSAkaGFzRE9NSklUQXR0cmlidXRlcyA9IDA7CisKICAgICAjIEF0dHJp
YnV0ZSBhbmQgZnVuY3Rpb24gZW51bXMKICAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7CiAg
ICAgICAgIGZvcmVhY2ggKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKQEAgLTEzNjEsNiAr
MTM2NCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgICAgICRuZWVkc1Zpc2l0
Q2hpbGRyZW4gPSAxOwogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5k
aWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICRoYXNET01KSVRBdHRyaWJ1dGVzID0gMSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJET01KSVQifTsKIAogICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkZvcndhcmREZWNsYXJlSW5IZWFkZXIi
fSkgewogICAgICAgICAgICAgICAgICRoYXNGb3J3YXJkRGVjbGFyaW5nQXR0cmlidXRlcyA9IDE7
CkBAIC0xNTc4LDYgKzE1ODIsMTUgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0KICAg
ICB9CiAKKyAgICBpZiAoJGhhc0RPTUpJVEF0dHJpYnV0ZXMpIHsKKyAgICAgICAgJGhlYWRlcklu
Y2x1ZGVzeyI8Ynl0ZWNvZGUvRE9NSklULmg+In0gPSAxOworICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCIvLyBET01KSVQgZW1pdHRlcnMgZm9yIGF0dHJpYnV0ZXNcblxuIik7CisgICAgICAg
IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgeworICAg
ICAgICAgICAgbmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiRE9NSklUIn07CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlND
OjpET01KSVQqIGRvbUpJVEVtaXR0ZXJGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2Vu
ZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAiKHZvaWQp
O1xuIik7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoSGFzQ3VzdG9tQ29uc3RydWN0b3Io
JGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIi8vIEN1c3RvbSBj
b25zdHJ1Y3RvclxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0JHtjbGFzc05hbWV9KEpTQzo6RXhlY1N0
YXRlJik7XG5cbiIpOwpAQCAtMTY1NCwxNCArMTY2NywxOSBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0
aWVzSGFzaFRhYmxlCiAgICAgICAgIG15ICRzcGVjaWFsID0gR2V0SlNDQXR0cmlidXRlc0ZvckF0
dHJpYnV0ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAgICAgICAgcHVzaChAJGhhc2hTcGVj
aWFscywgJHNwZWNpYWwpOwogCi0gICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0
ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICBwdXNo
KEAkaGFzaFZhbHVlMSwgJGdldHRlcik7Ci0KLSAgICAgICAgaWYgKElzUmVhZG9ubHkoJGF0dHJp
YnV0ZSkpIHsKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkRPTUpJVCJ9KSB7CisgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMSwgImRv
bUpJVEVtaXR0ZXJGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191
Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAiKCkiKTsKICAgICAgICAgICAg
IHB1c2goQCRoYXNoVmFsdWUyLCAiMCIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
bXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFt
ZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMiwgJHNldHRlcik7
CisgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJm
YWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgIHB1c2goQCRoYXNoVmFs
dWUxLCAkZ2V0dGVyKTsKKworICAgICAgICAgICAgaWYgKElzUmVhZG9ubHkoJGF0dHJpYnV0ZSkp
IHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMiwgIjAiKTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRl
ck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAg
ICAgcHVzaChAJGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAgICAgICAgfQogICAgICAgICB9
CiAKICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKQEAgLTI0NTEsMTcgKzI0NjksMjMgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15IEBzcGVjaWFscyA9ICgp
OwogICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVsZXRlIikgdW5sZXNzICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGV0YWJsZSJ9OwogICAg
ICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJSZWFkT25seSIpIGlmIElzUmVhZG9ubHkoJGF0dHJp
YnV0ZSk7CisgICAgICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRPTUpJVEF0dHJpYnV0ZSIpIGlm
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9Owog
ICAgICAgICAgICAgbXkgJHNwZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBA
c3BlY2lhbHMpIDogIjAiOwogICAgICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCAkc3BlY2lh
bCk7CiAKLSAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRp
bnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaGFz
aFZhbHVlMSwgJGdldHRlcik7Ci0KLSAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1
dGUpKSB7CisgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiRE9NSklUIn0pIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUx
LCAiZG9tSklURW1pdHRlckZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVHZW5lcmF0b3It
PldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSAuICIoKSIpOwogICAgICAg
ICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7CiAgICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRl
cmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgICAgIHB1c2goQGhh
c2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRy
aWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAg
ICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTEsICRnZXR0ZXIpOworCisgICAgICAgICAgICAg
ICAgaWYgKElzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAaGFzaFZhbHVlMiwgIjAiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNl
LCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaGFz
aFZhbHVlMiwgJHNldHRlcik7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9OwpAQCAtMzAzMSw2ICszMDU1LDQ5IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKIAorICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9KSB7CisgICAgICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3siPHd0Zi9OZXZlckRlc3Ryb3llZC5oPiJ9ID0gMTsKKyAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJET01KSVRIZWxwZXIuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICBteSAkZG9t
SklUQ2xhc3NOYW1lID0gIkRPTUpJVCIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVHZW5lcmF0
b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgICAg
ICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xh
c3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gSXNSZWFk
b25seSgkYXR0cmlidXRlKSA/ICJudWxscHRyIiA6IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGlu
dGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgImNsYXNzICRkb21KSVRDbGFzc05hbWUgOiBwdWJsaWMgSlNDOjpET01K
SVQge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJwdWJsaWM6XG4i
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkZG9tSklUQ2xhc3NO
YW1lKClcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICA6
IEpTQzo6RE9NSklUKCRnZXR0ZXIsICRzZXR0ZXIsIEpTQzo6U3BlY0RPTU5vZGUpXG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB7XG4iKTsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIlxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgdm9pZCBjb21waWxlRE9NR2V0QXR0cmlidXRlKERGRzo6U3BlY3VsYXRpdmVKSVQqIGpp
dCwgREZHOjpOb2RlKiBub2RlKSBvdmVycmlkZVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIERPTUpJVEhlbHBlciBoZWxwZXIoaml0KTtcbiIpOworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBERkc6OlNwZWN1bGF0ZUNlbGxPcGVyYW5k
IHdyYXBwZXIoaml0LCBub2RlLT5jaGlsZDEoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgREZHOjpHUFJUZW1wb3Jhcnkgd3JhcHBlZChqaXQpO1xu
Iik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIERGRzo6SlNW
YWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KGppdCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIlxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIEdQUlJlZyB3cmFwcGVyUmVnID0gd3JhcHBlci5ncHIoKTtcbiIpOworICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBHUFJSZWcgd3JhcHBlZFJlZyA9
IHdyYXBwZWQuZ3ByKCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7XG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgaml0LT5zcGVjdWxhdGVE
T01Ob2RlKG5vZGUtPmNoaWxkMSgpLCB3cmFwcGVyUmVnKTtcbiIpOworICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgaml0LT5tX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KHdyYXBwZXJSZWcsIEpTTm9kZTo6b2Zmc2V0T2ZXcmFwcGVkKCkpLCB3cmFwcGVkUmVnKTtcbiIp
OworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBqaXQtPnNwZWN1
bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNDOjpKU1ZhbHVlUmVncygpLCBudWxscHRyLCBoZWxwZXIu
YnJhbmNoSWZOb3RDb250YWluZXJOb2RlKHdyYXBwZWRSZWcpKTtcbiIpOworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIlxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIGppdC0+bV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh3cmFwcGVkUmVn
LCBDQVNUX09GRlNFVChOb2RlKiwgQ29udGFpbmVyTm9kZSopICsgQ29udGFpbmVyTm9kZTo6Zmly
c3RDaGlsZE1lbW9yeU9mZnNldCgpKSwgd3JhcHBlZFJlZyk7XG4iKTsKKyAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIGhlbHBlci50b0pTUmVzdWx0PEpTTm9kZT4obm9kZSwgd3JhcHBlclJl
Zywgd3JhcHBlZFJlZywgcmVzdWx0UmVncyk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn07XG5cbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6
OkRPTUpJVCogZG9tSklURW1pdHRlckZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVHZW5l
cmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSAuICIoKVxuIik7
CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8JGRvbUpJ
VENsYXNzTmFtZT4gZW1pdHRlcjtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJldHVybiAmZW1pdHRlci5nZXQoKTtcbiIpOworICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0
cmluZzsKIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIpOwpAQCAtNDk2Niwx
MiArNTAzMywxNCBAQCBzdWIgR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5CiAgICAgICAgICAg
ICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+IjsKICAg
ICAgICAgfSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0YW50SW50ZWdlci8pIHsK
ICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAiIjsKKyAgICAgICAgfSBlbHNpZiAoIkAk
c3BlY2lhbHNbJGldIiA9fiBtL0RPTUpJVEF0dHJpYnV0ZS8pIHsKKyAgICAgICAgICAgICRmaXJz
dFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8SlNDOjpET01KSVQqPiI7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPiI7CiAgICAgICAgICAgICAkc2Vjb25kVGFyZ2V0VHlwZSA9ICJz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4iOwogICAgICAgICAgICAg
JGhhc1NldHRlciA9ICJ0cnVlIjsKICAgICAgICAgfQotICAgICAgICBpZiAoIkAkc3BlY2lhbHNb
JGldIiA9fiBtL0NvbnN0YW50SW50ZWdlci8pIHsKKyAgICAgICAgaWYgKCJAJHNwZWNpYWxzWyRp
XSIgPX4gbS9Db25zdGFudEludGVnZXJ8RE9NSklUQXR0cmlidXRlLykgewogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgeyBcIiRrZXlcIiwgQCRzcGVjaWFsc1skaV0sIE5vSW50
cmluc2ljLCB7IChsb25nIGxvbmcpIiAuICRmaXJzdFRhcmdldFR5cGUgLiAiKEAkdmFsdWUxWyRp
XSkgfSB9LFxuIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICB7IFwiJGtleVwiLCBAJHNwZWNpYWxzWyRpXSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KSIgLiAkZmlyc3RUYXJnZXRUeXBlIC4gIihAJHZhbHVlMVskaV0pLCAoaW50cHRyX3Qp
ICIgLiAkc2Vjb25kVGFyZ2V0VHlwZSAuICIoQCR2YWx1ZTJbJGldKSB9IH0sXG4iKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4
IGQyODg1YTg0MmQ3NDQwOTkxYzYzODM5NzBjYzdkOWIyYTY1ZjQyNmQuLmZjZWZiMGU4ODc0NzI4
YTEwMjM1ZjFkMzQ5NGI5MDZhZDczNTQ5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dApAQCAtNTQsNiArNTQsNyBAQCBDdXN0b21S
ZXR1cm4KIEN1c3RvbVNldFByb3RvdHlwZQogQ3VzdG9tU2V0dGVyCiBDdXN0b21Ub0pTT2JqZWN0
CitET01KSVQKIERlbGV0YWJsZQogRG9Ob3RDaGVja0NvbnN0YW50cwogRG9Ob3RDaGVja1NlY3Vy
aXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vZGUuaAppbmRleCA0YTMwY2ViNTk0YzZhYjA4ZDAwZDQ5NTY2MWYzYmI2NjAzMzJhMGQz
Li5lYmM3MmI4YTJhZjNkMDdkODkwMzY4YjQ2OTYzNjk3NmU5YjBmY2EyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKQEAg
LTQzLDcgKzQzLDcgQEAgY2xhc3MgV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgSlNUZXN0Tm9k
ZSA6IHB1YmxpYyBKU05vZGUgewogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6OkpTVHlwZShKU05vZGVUeXBlKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAg
ICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpET01Ob2RlVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlND
OjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGUyNmMz
MzI5ZWRkMjJkMDg4MDEyNWJlMjJmYmQxNjJiNmU3YWE5YmEuLmEzM2YxYmMzMjJiYTgzZGFhMzFh
MWMyZDU3ZmI5YjZiOWIzOThmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNDEsNiArNDEsNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250YWluZXJOb2RlOworY2xhc3MgRE9NSklUSGVs
cGVyOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRmxvYXRQb2ludDsK
QEAgLTk0LDYgKzk1LDcgQEAgY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7CiAgICAg
ZnJpZW5kIGNsYXNzIERvY3VtZW50OwogICAgIGZyaWVuZCBjbGFzcyBUcmVlU2NvcGU7CiAgICAg
ZnJpZW5kIGNsYXNzIFRyZWVTY29wZUFkb3B0ZXI7CisgICAgZnJpZW5kIGNsYXNzIERPTUpJVEhl
bHBlcjsKIHB1YmxpYzoKICAgICBlbnVtIE5vZGVUeXBlIHsKICAgICAgICAgRUxFTUVOVF9OT0RF
ID0gMSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmlkbAppbmRleCAxMWQxZTZmMzYyM2QwMTAzNzk2M2YxMmNjY2MwNjhl
ZTRlNTAxZWJiLi40Y2U1YTg0ZTNmNDBmZjgwZDcwYTc4NDQxZTMyMDgwMDQ3NjJmMzA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaWRsCkBAIC00OSw3ICs0OSw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIHNob3J0IG5vZGVUeXBlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwYXJl
bnROb2RlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBjaGlsZE5vZGVzOwotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBmaXJzdENoaWxkOworICAgIFtET01KSVRdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBOb2RlPyBmaXJzdENoaWxkOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBO
b2RlPyBsYXN0Q2hpbGQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHByZXZpb3VzU2li
bGluZzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gbmV4dFNpYmxpbmc7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb21qaXQvRE9NSklUSGVscGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb21qaXQvRE9NSklUSGVscGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc2ZWZhYjkxMmJjYTM5MWY5NmZj
YzkzNjJhMDNkYjk5MGU5YjkyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bWppdC9ET01KSVRIZWxwZXIuaApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvREZH
U2xvd1BhdGhHZW5lcmF0b3IuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9ERkdTcGVjdWxh
dGl2ZUpJVC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01hY3JvQXNzZW1ibGVyQ29kZVJl
Zi5oPgorCituYW1lc3BhY2UgSlNDIHsKK2NsYXNzIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjsKK2Ns
YXNzIFZNOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUpJVEhlbHBlciB7
CitwdWJsaWM6CisgICAgdHlwZWRlZiBKU0M6Ok1hY3JvQXNzZW1ibGVyIE1hY3JvQXNzZW1ibGVy
OworCisgICAgRE9NSklUSGVscGVyKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVCogaml0KQorICAg
ICAgICA6IG1faml0KGppdCkKKyAgICB7CisgICAgfQorCisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgYnJhbmNoSWZOb3RDb250YWluZXJOb2RlKEpTQzo6R1BSUmVnIHdyYXBwZWQpCisgICAgewor
ICAgICAgICByZXR1cm4gbV9qaXQtPm1faml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6
WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mod3JhcHBlZCwgTm9kZTo6bm9kZUZsYWdzTWVt
b3J5T2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKE5vZGU6OklzQ29udGFp
bmVyRmxhZykpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXI+CisgICAg
dm9pZCB0b0pTUmVzdWx0KEpTQzo6REZHOjpOb2RlKiBub2RlLCBKU0M6OkdQUlJlZyB3cmFwcGVy
UmVnLCBKU0M6OkdQUlJlZyB3cmFwcGVkUmVzdWx0UmVnLCBKU0M6OkpTVmFsdWVSZWdzIHJlc3Vs
dFJlZ3MpCisgICAgeworICAgICAgICBKU0M6OkRGRzo6R1BSVGVtcG9yYXJ5IHZhbHVlKG1faml0
KTsKKyAgICAgICAgSlNDOjpERkc6OkdQUlRlbXBvcmFyeSBzY3JhdGNoKG1faml0KTsKKworICAg
ICAgICBKU0M6OkdQUlJlZyBnbG9iYWxPYmplY3RSZWcgPSB2YWx1ZS5ncHIoKTsKKyAgICAgICAg
SlNDOjpHUFJSZWcgc2NyYXRjaFJlZyA9IHNjcmF0Y2guZ3ByKCk7CisKKyAgICAgICAgYXV0byBu
b3ROdWxsID0gbV9qaXQtPm1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Ok5vblpl
cm8sIHdyYXBwZWRSZXN1bHRSZWcpOworICAgICAgICBtX2ppdC0+bV9qaXQubW92ZVRydXN0ZWRW
YWx1ZShKU0M6OmpzTnVsbCgpLCByZXN1bHRSZWdzKTsKKyAgICAgICAgYXV0byBkb25lID0gbV9q
aXQtPm1faml0Lmp1bXAoKTsKKworICAgICAgICBub3ROdWxsLmxpbmsoJm1faml0LT5tX2ppdCk7
CisKKyAgICAgICAgbV9qaXQtPm1faml0LmVtaXRMb2FkU3RydWN0dXJlKHdyYXBwZXJSZWcsIGds
b2JhbE9iamVjdFJlZywgc2NyYXRjaFJlZyk7CisgICAgICAgIG1faml0LT5tX2ppdC5sb2FkUHRy
KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGdsb2JhbE9iamVjdFJlZywgSlNDOjpTdHJ1Y3R1cmU6
Omdsb2JhbE9iamVjdE9mZnNldCgpKSwgZ2xvYmFsT2JqZWN0UmVnKTsKKworICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgICAgIHNsb3dDYXNlcy5hcHBl
bmQobV9qaXQtPm1faml0LmJyYW5jaFRlc3Q4KE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhnbG9iYWxPYmplY3RSZWcsIEpTRE9NR2xvYmFsT2JqZWN0OjpvZmZz
ZXRPZldvcmxkSXNOb3JtYWwoKSkpKTsKKworICAgICAgICBtX2ppdC0+bV9qaXQubG9hZFB0cihN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyh3cmFwcGVkUmVzdWx0UmVnLCBDQVNUX09GRlNFVChOb2Rl
KiwgU2NyaXB0V3JhcHBhYmxlKikgKyBTY3JpcHRXcmFwcGFibGU6Om9mZnNldE9mV3JhcHBlcigp
KSwgc2NyYXRjaFJlZyk7CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQtPm1faml0LmJy
YW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHNjcmF0Y2hSZWcpKTsKKworI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCisgICAgICAgIG1faml0LT5tX2ppdC5tb3ZlKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHJlc3VsdFJlZ3MudGFnR1BSKCkpOwor
I2VuZGlmCisgICAgICAgIG1faml0LT5tX2ppdC5tb3ZlKHNjcmF0Y2hSZWcsIHJlc3VsdFJlZ3Mu
cGF5bG9hZEdQUigpKTsKKworICAgICAgICBKU0M6OkVuY29kZWRKU1ZhbHVlICgqZnVuY3Rpb24p
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBOb2RlKikgPSBbXShKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9kZSogbm9k
ZSkgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0LCAqbm9kZSkpOworICAgICAgICB9OworICAgICAgICBtX2ppdC0+YWRkU2xv
d1BhdGhHZW5lcmF0b3IoSlNDOjpERkc6OnNsb3dQYXRoQ2FsbChzbG93Q2FzZXMsIG1faml0LCBm
dW5jdGlvbiwgcmVzdWx0UmVncywgZ2xvYmFsT2JqZWN0UmVnLCB3cmFwcGVkUmVzdWx0UmVnKSk7
CisKKyAgICAgICAgZG9uZS5saW5rKCZtX2ppdC0+bV9qaXQpOworCisgICAgICAgIG1faml0LT5q
c1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQqIG1faml0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290181</attachid>
            <date>2016-09-28 23:26:33 -0700</date>
            <delta_ts>2016-09-28 23:42:21 -0700</delta_ts>
            <desc>Prototype rev4</desc>
            <filename>bug-162544-20160928232332.patch</filename>
            <type>text/plain</type>
            <size>145058</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YzI5ZjVkOGZhNTE1ZjA0MjRhZmNkNTEzZWI1ZDFmZDE1ODZlYzZiLi5kZDk4ZmVkYWFhMGY4NGJm
ZjExOTFhNjQ4MmRhY2QxNmU0YzRjNzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNjggQEAKKzIwMTYtMDktMjggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0RhdGFGb3JtYXQuaDoKKyAgICAgICAgKiBieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2spOgorICAgICAgICAqIGJ5dGVjb2Rl
L0dldEJ5SWRWYXJpYW50LmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OkdldEJ5
SWRWYXJpYW50KToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6Om9wZXJhdG9yPSk6Cisg
ICAgICAgIChKU0M6OkdldEJ5SWRWYXJpYW50OjphdHRlbXB0VG9NZXJnZSk6CisgICAgICAgIChK
U0M6OkdldEJ5SWRWYXJpYW50OjpkdW1wSW5Db250ZXh0KToKKyAgICAgICAgKiBieXRlY29kZS9H
ZXRCeUlkVmFyaWFudC5oOgorICAgICAgICAoSlNDOjpHZXRCeUlkVmFyaWFudDo6ZG9tSklUKToK
KyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmludHJpbnNpYyk6IERlbGV0ZWQuCisgICAg
ICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nl
c3NDYXNlOjpnZXQpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpjbG9uZSk6CisgICAgICAg
ICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2Fz
ZTo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6UmFyZURhdGE6OlJhcmVEYXRh
KToKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgIChKU0M6
OmR1bXBTcGVjdWxhdGlvbik6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJvbVN0cnVjdHVy
ZSk6CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoKKyAgICAgICAgKEpTQzo6
aXNET01Ob2RlU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjppc0RPTUVsZW1lbnRTcGVjdWxh
dGlvbik6CisgICAgICAgIChKU0M6OmlzRE9NRG9jdW1lbnRXcmFwcGVyU3BlY3VsYXRpb24pOgor
ICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaDoKKyAgICAgICAgKEpTQzo6VmFsdWVS
ZWNvdmVyeTo6ZGlzcGxhY2VkSW5KU1N0YWNrKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJl
dGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZURPTUpJVEdldHRlcik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZUdldEJ5SWQpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAg
IChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAg
KiBkZmcvREZHR2VuZXJhdGlvbkluZm8uaDoKKyAgICAgICAgKEpTQzo6REZHOjpHZW5lcmF0aW9u
SW5mbzo6aW5pdE9wYXF1ZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpERkc6OkdlbmVyYXRpb25J
bmZvOjpmaWxsT3BhcXVlUG9pbnRlcik6CisgICAgICAgIChKU0M6OkRGRzo6R2VuZXJhdGlvbklu
Zm86OmluaXRTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpHZW5lcmF0aW9u
SW5mbzo6ZmlsbFN0b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzT3BhcXVlUG9pbnRlclJlc3VsdCk6CisgICAgICAg
IChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlRE9NTm9kZSk6CisgICAgICAgIChKU0M6
OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlRE9NRWxlbWVudCk6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKToKKyAgICAgICAgKEpT
Qzo6REZHOjpOb2RlOjpoYXNPcGFxdWVQb2ludGVyT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6REZH
OjpOb2RlOjpvcGFxdWVQb2ludGVyT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpo
YXNOb2RlRmxhZ3NPcGVyYW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpub2RlRmxhZ3NP
cGVyYW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNTbG93VG9KU09wZXJhdGlvbik6
CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2xvd1RvSlNPcGVyYXRpb24pOgorICAgICAgICAo
SlNDOjpERkc6Ok5vZGU6Omhhc1N0b3JhZ2VSZXN1bHQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZUFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBk
ZmcvREZHTm9kZUZsYWdzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkdW1wTm9kZUZsYWdzKToK
KyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2Fub25p
Y2FsUmVzdWx0UmVwcmVzZW50YXRpb24pOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgor
ICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAg
ICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVj
dXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIpOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsT3BhcXVlUG9pbnRlcik6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNoZWNrR2VuZXJhdGVkVHlwZUZvclRvSW50MzIpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tOb2RlRmxhZ3MpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTG9hZE9wYXF1ZVBvaW50ZXIp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0RE9NV3JhcHBl
ZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb0RPTVdyYXBw
ZXIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Ob2Rl
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRWxlbWVu
dCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURPTURvY3Vt
ZW50V3JhcHBlcik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0
ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNwaWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6b3BhcXVlUG9pbnRlclJlc3VsdCk6CisgICAgICAgIChKU0M6OkRGRzo6T3BhcXVlUG9p
bnRlck9wZXJhbmQ6Ok9wYXF1ZVBvaW50ZXJPcGVyYW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpP
cGFxdWVQb2ludGVyT3BlcmFuZDo6fk9wYXF1ZVBvaW50ZXJPcGVyYW5kKToKKyAgICAgICAgKEpT
Qzo6REZHOjpPcGFxdWVQb2ludGVyT3BlcmFuZDo6ZWRnZSk6CisgICAgICAgIChKU0M6OkRGRzo6
T3BhcXVlUG9pbnRlck9wZXJhbmQ6Om5vZGUpOgorICAgICAgICAoSlNDOjpERkc6Ok9wYXF1ZVBv
aW50ZXJPcGVyYW5kOjpncHIpOgorICAgICAgICAoSlNDOjpERkc6Ok9wYXF1ZVBvaW50ZXJPcGVy
YW5kOjp1c2UpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzdG9yYWdlUmVz
dWx0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQ2VsbCk6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVCb29sZWFu
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAg
ICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpmaWxsSlNWYWx1ZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQm9vbGVhbik6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdUeXBlQ2hlY2tIb2lzdGlu
Z1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlOjpp
ZGVudGlmeVJlZHVuZGFudFN0cnVjdHVyZUNoZWNrcyk6CisgICAgICAgIChKU0M6OkRGRzo6VHlw
ZUNoZWNrSG9pc3RpbmdQaGFzZTo6aWRlbnRpZnlSZWR1bmRhbnRBcnJheUNoZWNrcyk6CisgICAg
ICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToK
KyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlNDOjpERkc6OnR5cGVGaWx0
ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6CisgICAgICAgICogZG9taml0L0RP
TUpJVEdyYXBoLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
bGVtZW50Q3VzdG9tLmguCisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OmVkZ2VGaWx0ZXIp
OgorICAgICAgICAqIGRvbWppdC9ET01KSVRHcmFwaC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmguCisgICAgICAgIChKU0M6OkRPTUpJ
VDo6R3JhcGg6OkdyYXBoKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpHcmFwaDo6fkdyYXBoKToK
KyAgICAgICAgKEpTQzo6RE9NSklUOjpHcmFwaDo6c3BlY3VsYXRlZENoaWxkVHlwZSk6CisgICAg
ICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OmdldHRlcik6CisgICAgICAgIChKU0M6OkRPTUpJVDo6
R3JhcGg6OnNldHRlcik6CisgICAgICAgICogZG9taml0L0RPTUpJVElSLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaC4KKyAgICAgICAg
KEpTQzo6RE9NSklUOjpJUjo6dGhpc1ZhbHVlKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpJUjo6
SVIpOgorICAgICAgICAqIGRvbWppdC9ET01KSVRJUkJ1aWxkZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmguCisgICAgICAgIChKU0M6
OkRPTUpJVDo6SVJCdWlsZGVyOjphcHBlbmQpOgorICAgICAgICAoSlNDOjpET01KSVQ6OklSQnVp
bGRlcjo6aXIpOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dPcGFxdWVQb2ludGVy
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNOb3RET01Ob2RlKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNOb3RET01FbGVtZW50KToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlRE9NTm9kZSk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZURPTUVsZW1lbnQpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVET01Eb2N1bWVu
dFdyYXBwZXIpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzZXRPcGFx
dWVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3Vs
YXRlU2V0T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6c2V0U3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVy
cy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRE9NTm9kZSk6Cisg
ICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RET01Ob2RlKToKKyAgICAg
ICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkRPTUVsZW1lbnQpOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90RE9NRWxlbWVudCk6CisgICAgICAgIChK
U0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RPYmplY3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L1JlcGF0Y2guY3BwOgorICAg
ICAgICAoSlNDOjp0cnlDYWNoZUdldEJ5SUQpOgorICAgICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0
dGVyU2V0dGVyLmg6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpmaWxsQ3VzdG9tR2V0
dGVyUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZS5oOgorICAgICAgICAq
IHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6Okhhc2hUYWJsZVZhbHVlOjpkb21KSVQp
OgorICAgICAgICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0eVNsb3RGcm9tVGFibGUpOgorICAgICAg
ICAoSlNDOjpwdXRFbnRyeSk6CisgICAgICAgIChKU0M6OnJlaWZ5U3RhdGljUHJvcGVydHkpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5
U2xvdDo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90OjpzZXRDYWNoZWFibGVD
dXN0b20pOgorCiAyMDE2LTA5LTI4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgog
CiAgICAgICAgIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlciB3aWxsIHJldHVybiBgbnVs
bGAgd2hlbiBpdCBzaG91bGQgbm90CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhN2E1NTc1YTQ2ZDk1Y2ZlNmNhYzA1Mzg1MWM1
ZjdlOWMxYTYzMjMuLjRkMGIzMDdjNDc4OTM4NTBhZGZiNDZjMWY5MjA4NjFiNmE3N2RjOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDktMjggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5n
IEpJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
NTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvU3RkTGliRXh0cmFzLmg6CisKIDIwMTYtMDktMjggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFJlLWVuYWJsZSBTdHJpbmdWaWV3IGxpZmUtY3ljbGUgY2hlY2tp
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYzAzNzU1OTI5MGE4OTA4YTg0ZTVmZGMxYzMyZmIwMjFlM2ViNGNk
OC4uNWMzMzZjNWI5NjAzZjg1MWMzYTcyZmRlMTM5OWY3YjdjNDQ3NGQyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDcxIEBACisyMDE2LTA5LTI4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFtCaW5kaW5nXSBJbnRyb2R1Y2luZyBET00gYmluZGluZyBK
SVQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUvRE9NSklU
Lmg6IEFkZGVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2RmZy9ERkdTbG93UGF0aEdl
bmVyYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxP
YmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6b2Zmc2V0T2ZXcmFwcGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NV3JhcHBlcjo6d3JhcHBlZCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mv
anMvSlNEb2N1bWVudEN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6anNEb2N1bWVudENhc3Qp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oOgorICAgICAgICAoV2Vi
Q29yZTo6anNFbGVtZW50Q2FzdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9t
Lmg6CisgICAgICAgIChXZWJDb3JlOjpqc05vZGVDYXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9TY3JpcHRXcmFwcGFibGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFdyYXBwYWJsZTo6
b2Zmc2V0T2ZXcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbToKKyAgICAgICAgKEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1dGUpOgorICAgICAg
ICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVQcm9wZXJ0aWVzSGFzaFRhYmxl
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVI
YXNoVGFibGVWYWx1ZUFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJp
YnV0ZXMudHh0OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2Rl
Lmg6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKiBkb20vTm9kZS5pZGw6CisgICAg
ICAgICogZG9taml0L0RPTUpJVEhlbHBlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TUpJVEhlbHBlcjo6RE9NSklUSGVscGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUpJVEhlbHBl
cjo6YnJhbmNoSWZOb3RDb250YWluZXJOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUpJVEhl
bHBlcjo6dG9KU1Jlc3VsdCk6CisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9kb21qaXQv
RE9NSklUR3JhcGguaDogQWRkZWQuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAg
ICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6Cisg
ICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6b2Zmc2V0T2ZXcmFwcGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6d3JhcHBlZCk6IERlbGV0ZWQuCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6anNEb2N1bWVu
dENhc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oOgorICAgICAg
ICAoV2ViQ29yZTo6anNFbGVtZW50Q2FzdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpqc05vZGVDYXN0KToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFdyYXBw
YWJsZTo6b2Zmc2V0T2ZXcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1dGUpOgor
ICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVQcm9wZXJ0aWVzSGFz
aFRhYmxlKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lE
TEF0dHJpYnV0ZXMudHh0OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb2RlLmg6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
Om5vZGVGbGFnc01lbW9yeU9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyYXJlRGF0
YU1lbW9yeU9mZnNldCk6CisgICAgICAgICogZG9tL05vZGUuaWRsOgorCiAyMDE2LTA5LTI4ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBmaXJzdCAnc3Rh
dGUnIHBhcmFtZXRlciB0byBKU0RPTVdpbmRvdzo6dG9XcmFwcGVkKCkgLyBKU0V2ZW50VGFyZ2V0
Ojp0b1dyYXBwZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDcyN2IyODhmODNlN2NiOTkwYzUzZDExNDhlNWFm
ZjU1N2I0Mzc1ZTIuLmIzYjQzZmQ3YzJhNjhhMmVmYmE4MmE5OTEwNTRmYWFiNjY5ZTMyMjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNi0wOS0yOCAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbQmluZGluZ10gSW50cm9kdWNpbmcgRE9N
IGJpbmRpbmcgSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjI1NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDE2LTA5LTI4ICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV0tTaGFyZWRBUElDYXN0IHNob3VsZCBub3Qg
d2FybiBhYm91dCBhY2NlcHRhYmxlIGN1c3RvbSBjb250ZXh0IG1lbnUgdGFnIHZhbHVlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGE5OGQ4NjQ3ODljOTYzMjkwMzdjYTJh
MTNkYWQ0Yjc4NDgzMmEzZjYuLjFjMzE1MmY4NDdmMGIyYjM2MzJkODM0Mjk2OTY1ZmVlMjViMjZi
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2LDYgKzE2LDcgQEAg
c2V0KEphdmFTY3JpcHRDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2J5dGVjb2RlIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvbXBp
bGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgorICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vZG9taml0IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVy
IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyL3VkaXM4NiIKICAgICAi
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Z0bCIKQEAgLTQwNSw2ICs0MDYsOCBAQCBzZXQoSmF2YVNj
cmlwdENvcmVfU09VUkNFUwogICAgIGRpc2Fzc2VtYmxlci91ZGlzODYvdWRpczg2X3N5bi1pbnRl
bC5jCiAgICAgZGlzYXNzZW1ibGVyL3VkaXM4Ni91ZGlzODZfc3luLmMKIAorICAgIGRvbWppdC9E
T01KSVRHcmFwaC5jcHAKKwogICAgIGZ0bC9GVExBYnN0cmFjdEhlYXAuY3BwCiAgICAgZnRsL0ZU
TEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuY3BwCiAgICAgZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyOWZlYzJjZTlkZGVhYTNiOWZl
ODAyOWY1MDNjM2VjODNmMjYzMzBjLi4wNDNmMWEwOTExNjM2MDIzOTY4MTlhZmVkOTE3YTcxYTk4
YjRlNWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE2LDcgKzMxNiw3IEBA
CiAJCTBGMzNGQ0ZCMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0NGRy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzM0ZDRjkxQzE2MjVCRTAwMzIzRjY3IC8q
IEIzQ0ZHLmggKi87IH07CiAJCTBGMzNGQ0ZDMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0RvbWluYXRv
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzNG
Q0ZBMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0RvbWluYXRvcnMuaCAqLzsgfTsKIAkJMEYzNEIxNDkx
NkQ0MjAxMDAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNDcxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1Vz
ZUtpbmQuY3BwICovOyB9OwotCQkwRjM0QjE0QTE2RDQyMDEzMDAxQ0RBNUEgLyogREZHVXNlS2lu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIx
NDgxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCAqLzsgfTsKKwkJMEYzNEIxNEExNkQ0
MjAxMzAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzRCMTQ4MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5k
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYz
NzMwOEMxQzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZB
IC8qIEIzUGhpQ2hpbGRyZW4uY3BwICovOyB9OwogCQkwRjM3MzA4RDFDMEJEMjkxMDAwNTJCRkEg
LyogQjNQaGlDaGlsZHJlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYzNzMwOEIxQzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uaCAqLzsg
fTsKIAkJMEYzNzMwOEYxQzBDRDY4NTAwMDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVn
aXN0ZXJVc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYzNzMwOEUxQzBDRDY4NTAwMDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0
ZXJVc2FnZS5oICovOyB9OwpAQCAtNTg3LDcgKzU4Nyw3IEBACiAJCTBGQTJDMTdCMTdEN0NGODQw
MDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBMkMxNzkxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5u
ZXJVdGlscy5jcHAgKi87IH07CiAJCTBGQTJDMTdDMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVu
bmVyVXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQTJDMTdBMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkE1ODFCQTE1MEU5NTJD
MDBCOUEyRDkgLyogREZHTm9kZUZsYWdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTU4MUI3MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlRmxh
Z3MuY3BwICovOyB9OwotCQkwRkE1ODFCQjE1MEU5NTMwMDBCOUEyRDkgLyogREZHTm9kZUZsYWdz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkE1ODFC
ODE1MEU5NTJBMDBCOUEyRDkgLyogREZHTm9kZUZsYWdzLmggKi87IH07CisJCTBGQTU4MUJCMTUw
RTk1MzAwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTU4MUI4MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2Rl
RmxhZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRkE1ODFCQzE1MEU5NTMwMDBCOUEyRDkgLyogREZHTm9kZVR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTU4MUI5MTUwRTk1MkEwMEI5QTJE
OSAvKiBERkdOb2RlVHlwZS5oICovOyB9OwogCQkwRkE3QThFQjE4QjQxM0M4MDA1MjM3MUQgLyog
UmVnLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
QTdBOEU5MThCNDEzQzgwMDUyMzcxRCAvKiBSZWcuY3BwICovOyB9OwogCQkwRkE3QThFQzE4QjQx
M0M4MDA1MjM3MUQgLyogUmVnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkE3QThFQTE4QjQxM0M4MDA1MjM3MUQgLyogUmVnLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE0NDQsNyArMTQ0NCw3IEBA
CiAJCTg2RUM5REQwMTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMDEzMjhERjgyMDAy
QjJBRDcgLyogREZHT3BlcmF0aW9ucy5oICovOyB9OwogCQk4NkVDOUREMTEzMjhERjgyMDAyQjJB
RDcgLyogREZHUmVnaXN0ZXJCYW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NkVDOURDMTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5r
LmggKi87IH07CiAJCTg2RUM5REQyMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVD
OURDMjEzMjhERjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuY3BwICovOyB9OwotCQk4
NkVDOUREMzEzMjhERjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMzMTMyOERGODIwMDJC
MkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5oICovOyB9OworCQk4NkVDOUREMzEzMjhERjgyMDAy
QjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxh
dGl2ZUpJVC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg2RUNBM0VBMTMyREVGMUMwMDJCMkFENyAvKiBERkdOb2RlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDQTNFOTEzMkRFRjFDMDAyQjJBRDcg
LyogREZHTm9kZS5oICovOyB9OwogCQk4NkVDQTNGQTEzMkRGMjVBMDAyQjJBRDcgLyogREZHU2Nv
cmVCb2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODZFQ0EzRjkxMzJERjI1QTAwMkIyQUQ3IC8qIERGR1Njb3JlQm9hcmQuaCAqLzsgfTsKIAkJODZG
M0VFQkQxNjhDREU5MzAwNzdCOTJBIC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCOTE2OENDRjc1MDA3
N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaCAqLzsgfTsKQEAgLTIwOTgsNiArMjA5OCwx
MiBAQAogCQlFM0QyMzlDOTFCODI5QzFDMDBCQkVGNjcgLyogSlNNb2R1bGVFbnZpcm9ubWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNEMjM5Qzcx
QjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJvbm1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0VGODg3NDFCNjZERjIzMDAzRjI2
Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0VGODg3MjFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi87IH07CiAJCUUzRUY4ODc1MUI2NkRGMjMwMDNGMjZDQiAv
KiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFM0VGODg3MzFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUUzRUZGNkFBMUQ5QzcyQTgwMDE1MTdDRSAvKiBET01KSVQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRUZGNkE5MUQ5QzcyQTUwMDE1MTdD
RSAvKiBET01KSVQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlFM0VGRjZBQjFEOUM3MkFCMDAxNTE3Q0UgLyogRE9NSklULmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRUZGNkE4MUQ5QzcyQTUwMDE1
MTdDRSAvKiBET01KSVQuY3BwICovOyB9OworCQlFM0ZGNzUzMjFEOUNFQTE1MDBDN0UxNkQgLyog
RE9NSklUR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTNGRjc1MkUxRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmNwcCAqLzsgfTsK
KwkJRTNGRjc1MzMxRDlDRUExODAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ZGNzUyRjFEOUNFQTEyMDBDN0Ux
NkQgLyogRE9NSklUR3JhcGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlFM0ZGNzUzNDFEOUNFQTFFMDBDN0UxNkQgLyogRE9NSklUSVIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRkY3NTMwMUQ5Q0VB
MTIwMEM3RTE2RCAvKiBET01KSVRJUi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUUzRkY3NTM1MUQ5Q0VBMjUwMEM3RTE2RCAvKiBET01KSVRJUkJ1
aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
RkY3NTMxMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRJUkJ1aWxkZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2QjEyRUYyOTNFMDAx
ODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYgLyogU291cmNl
UHJvdmlkZXJDYWNoZS5jcHAgKi87IH07CiAJCUU0OURDMTZDMTJFRjI5NEUwMDE4NEExRiAvKiBT
b3VyY2VQcm92aWRlckNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDlEQzE1MTEyRUYyNzIyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNo
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0
OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5REMxNDkxMkVGMjYx
QTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQzOTMsNiArNDM5OSwxMiBAQAogCQlF
M0QyNjQyQTFEMzhDMDQyMDAwQkUxNzQgLyogQnl0ZWNvZGVSZXdyaXRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlY29kZVJld3JpdGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzRUY4ODcyMUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VG
ODg3MzFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRUZGNkE4MUQ5QzcyQTUwMDE1MTdDRSAvKiBET01K
SVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NSklULmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNFRkY2QTkxRDlDNzJBNTAwMTUxN0NFIC8q
IERPTUpJVC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNGRjc1MkUxRDlDRUExMjAwQzdFMTZEIC8qIERP
TUpJVEdyYXBoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUpJ
VEdyYXBoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNGRjc1MkYxRDlDRUEx
MjAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUpJVEdyYXBoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRkY3NTMw
MUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRJUi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01KSVRJUi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0ZGNzUz
MTFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUSVJCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTUpJVElSQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFNDlEQzE0OTEyRUYyNjFBMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0
ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNo
ZUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5REMxNTExMkVGMjcyMjAw
MTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2NTAsNiArNDY2Miw3IEBACiAJ
CQkJNjUwRkRGOEQwOUQwRkNBNzAwNzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQk4
NkVDOURCMzEzMjhERjQ0MDAyQjJBRDcgLyogZGZnICovLAogCQkJCTBGRjQyNzJFMTU4RUJDQ0Uw
MDRDQjlGRiAvKiBkaXNhc3NlbWJsZXIgKi8sCisJCQkJRTNGRjc1MkQxRDlDRTlFQTAwQzdFMTZE
IC8qIGRvbWppdCAqLywKIAkJCQkwODY3RDY5QUZFODQwMjhGQzAyQUFDMDcgLyogRnJhbWV3b3Jr
cyAqLywKIAkJCQkwRkVBMDlGQzE3MDUxMzdGMDBCQjcyMkMgLyogZnRsICovLAogCQkJCTE0MkUz
MTJBMTM0RkYwQTYwMEFGQURCNSAvKiBoZWFwICovLApAQCAtNjcxNyw2ICs2NzMwLDggQEAKIAkJ
OTY5QTA3OEYwRUQxRDNBRTAwRjFGNjgxIC8qIGJ5dGVjb2RlICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlFM0VGRjZBODFEOUM3MkE1MDAxNTE3Q0UgLyog
RE9NSklULmNwcCAqLywKKwkJCQlFM0VGRjZBOTFEOUM3MkE1MDAxNTE3Q0UgLyogRE9NSklULmgg
Ki8sCiAJCQkJRTNBNDIxNDIxRDZGNTg4RjAwMDdDNjE3IC8qIFByZWNpc2VKdW1wVGFyZ2V0c0lu
bGluZXMuaCAqLywKIAkJCQlFM0QyNjQyNjFEMzhDMDQyMDAwQkUxNzQgLyogQnl0ZWNvZGVHZW5l
cmF0b3JpZmljYXRpb24uY3BwICovLAogCQkJCUUzRDI2NDI3MUQzOEMwNDIwMDBCRTE3NCAvKiBC
eXRlY29kZUdlbmVyYXRvcmlmaWNhdGlvbi5oICovLApAQCAtNzE0OSw2ICs3MTY0LDE3IEBACiAJ
CQlwYXRoID0gY29kZWdlbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUUz
RkY3NTJEMUQ5Q0U5RUEwMEM3RTE2RCAvKiBkb21qaXQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUUzRkY3NTJFMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01K
SVRHcmFwaC5jcHAgKi8sCisJCQkJRTNGRjc1MkYxRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVEdy
YXBoLmggKi8sCisJCQkJRTNGRjc1MzAxRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVElSLmggKi8s
CisJCQkJRTNGRjc1MzExRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVElSQnVpbGRlci5oICovLAor
CQkJKTsKKwkJCXBhdGggPSBkb21qaXQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OwogLyogRW5kIFBCWEdyb3VwIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYSGVhZGVyc0J1aWxk
UGhhc2Ugc2VjdGlvbiAqLwpAQCAtNzE5Niw2ICs3MjIyLDcgQEAKIAkJCQkwRkVDODU3NzFCREFD
REM3MDA4MEZGNzQgLyogQWlyRnJlcXVlbnRlZEJsb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkVDODU3OTFCREFDREM3MDA4MEZGNzQgLyogQWlyR2VuZXJhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRUM4NTdBMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJHZW5lcmF0aW9uQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTNGRjc1MzUxRDlDRUEyNTAwQzdFMTZEIC8qIERPTUpJVElSQnVp
bGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1N0MxQkRBQ0RDNzAwODBGRjc0IC8qIEFp
ckhhbmRsZUNhbGxlZVNhdmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU3RTFCREFDREM3
MDA4MEZGNzQgLyogQWlySW5zZXJ0aW9uU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU4
MDFCREFDREM3MDA4MEZGNzQgLyogQWlySW5zdC5oIGluIEhlYWRlcnMgKi8sCkBAIC03NDczLDYg
Kzc1MDAsNyBAQAogCQkJCTBGOUQ0QzExMUMzRTJDNzQwMDZDRDk4NCAvKiBGVExQYXRjaHBvaW50
RXhjZXB0aW9uSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjM4QjAxQTE3Q0ZFNzU1MDBC
MTQ0RDMgLyogREZHQ29tcGlsYXRpb25Nb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjNCM0Ex
QjE1M0U2OEY0MDAzRUQwRkYgLyogREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUUzRUZGNkFBMUQ5QzcyQTgwMDE1MTdDRSAvKiBET01KSVQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRUQ2N0JBMUIyNjI1NkQwMDY2Q0UxNSAvKiBERkdDb25zdGFudEhvaXN0aW5n
UGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQkUwRjczMTZDMURCMDUwMDgyQzVFOCAvKiBE
RkdDUFNSZXRocmVhZGluZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4OUNGNjE3QTBC
OENDMDA3NzNBRDggLyogREZHQ3JpdGljYWxFZGdlQnJlYWtpbmdQaGFzZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC03NTkzLDYgKzc2MjEsNyBAQAogCQkJCTBGQzIwQ0JBMTg1NTZBMzUwMEM5RTk1NCAv
KiBERkdTU0FMb3dlcmluZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlGQjRGNTE3RkNC
OTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY0RjI5RTAxOEI2QUQxQzAwNTdCQzE1IC8qIERGR1N0YXRpY0V4ZWN1dGlvbkNvdW50RXN0aW1h
dGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0ZGNzUzMzFEOUNFQTE4MDBDN0UxNkQg
LyogRE9NSklUR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUUzMjY0MUIwNUFCMDQwMDgw
MUVENSAvKiBERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDMjBDQjYxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjM5NDc4MTVEQ0UzNEIwMDZBNTk3QyAvKiBERkdTdHJ1
Y3R1cmVBYnN0cmFjdFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTgwNTAsNiArODA3OSw3IEBA
CiAJCQkJOTYwMDk3QTYwRUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQjU0Njc3MTRGNTlCNUMwMDJDMjk4OSAvKiBMYXp5T3BlcmFuZFZhbHVlUHJv
ZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlEQTAwQjAxQkQ1OTk0RTAwRjQ1NzVDIC8qIGxh
enl3cml0ZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQlFM0ZGNzUzNDFEOUNFQTFFMDBDN0UxNkQg
LyogRE9NSklUSVIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDMxMEUxNkY1Q0QwMEIzNDQ2
MCAvKiBMZXhlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNGNDBFOTMxRDVBNEFCMzAwOTlBMUI2
IC8qIFdBU01CM0lSR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzUyRTBFMTZG
Q0UxMDBCMzQ0NjAgLyogTGV4ZXIubHV0LmggaW4gSGVhZGVycyAqLywKQEAgLTkyMDAsNiArOTIz
MCw3IEBACiAJCQkJMEY5QjFEQjQxQzBFNDJBNTAwRTVCRkQyIC8qIEZUTE91dHB1dC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwRkU3MjExRDE5M0I5QzU5MDAzMUY2RUQgLyogREZHVHJhbnNpdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYzOTQ0MDE1Qzc1RjFEMDA2QTU5N0MgLyogREZH
VHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0VGRjZBQjFE
OUM3MkFCMDAxNTE3Q0UgLyogRE9NSklULmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQkUwRjc2
MTZDMURCMEYwMDgyQzVFOCAvKiBERkdVbmlmaWNhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1Mzk4RkFDMUM3NTBEQTYwMDYwQTk2MyAvKiBIZWFwUHJvZmlsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEYzNEIxNDkxNkQ0MjAxMDAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC05NDU5LDYgKzk0OTAsNyBAQAogCQkJCTE0ODc0QUU1MTVFQkRF
NEEwMDJFMzU4NyAvKiBKU1Njb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QzBDNEFEMTY4
MTA2N0UwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjkx
OUQxMDE1N0YzMzI5MDA0QTRFN0QgLyogSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFM0ZGNzUzMjFEOUNFQTE1MDBDN0UxNkQgLyogRE9NSklUR3JhcGgu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJREMxN0U4MTcxQzlDOTFENjAwOEE2QUIzIC8qIFNoYWRv
d0NoaWNrZW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTlEOUQxN0QxMjgzNzAwNUY1RkY5
IC8qIEpTU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3OTBERDZGMTgyRjQ5OTcwMDU4ODgw
NyAvKiBKU1NldEl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RhdGFGb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmgKaW5kZXggMjJjNjQ5MjI2NzI5ZWZiMTAxNzY4MmMx
ZmUxNGFjMDhjMjdjZTNjMi4uYzBmNmNkODNmNGNlNzc5OTk5NmY1MDZjZWI1NGFlYzRhZDNlZTUy
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RhdGFGb3JtYXQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oCkBAIC00
NCw3ICs0NCw4IEBAIGVudW0gRGF0YUZvcm1hdCB7CiAgICAgRGF0YUZvcm1hdEJvb2xlYW4gPSA1
LAogICAgIERhdGFGb3JtYXRDZWxsID0gNiwKICAgICBEYXRhRm9ybWF0U3RvcmFnZSA9IDcsCi0g
ICAgRGF0YUZvcm1hdEpTID0gOCwKKyAgICBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlciA9IDgsCisg
ICAgRGF0YUZvcm1hdEpTID0gMTYsCiAgICAgRGF0YUZvcm1hdEpTSW50MzIgPSBEYXRhRm9ybWF0
SlMgfCBEYXRhRm9ybWF0SW50MzIsCiAgICAgRGF0YUZvcm1hdEpTRG91YmxlID0gRGF0YUZvcm1h
dEpTIHwgRGF0YUZvcm1hdERvdWJsZSwKICAgICBEYXRhRm9ybWF0SlNDZWxsID0gRGF0YUZvcm1h
dEpTIHwgRGF0YUZvcm1hdENlbGwsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvR2V0QnlJZFN0YXR1cy5jcHAKaW5kZXggMTViM2M4MTNjYjhiZTgwNzMzZTNiNDE1ZjZhOThl
N2Y5YWM4ZGQ0Zi4uNDE4MmI5MWQ2Zjc3YzRkMTQ4OTg3NmRiYjA4MzczMDAwZmVlZjg0NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcApA
QCAtMzcsNiArMzcsOSBAQAogI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworY2xhc3MgR3JhcGg7Cit9CiAKIGJvb2wgR2V0QnlJ
ZFN0YXR1czo6YXBwZW5kVmFyaWFudChjb25zdCBHZXRCeUlkVmFyaWFudCYgdmFyaWFudCkKIHsK
QEAgLTIxNSw2ICsyMTgsNyBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVG
b3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgICAgICAgICAgY2FzZSBDb21w
bGV4R2V0U3RhdHVzOjpJbmxpbmVhYmxlOiB7CiAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPENhbGxMaW5rU3RhdHVzPiBjYWxsTGlua1N0YXR1czsKICAgICAgICAgICAgICAgICBKU0Z1
bmN0aW9uKiBpbnRyaW5zaWNGdW5jdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgRE9N
SklUOjpHcmFwaCogZG9tSklUID0gbnVsbHB0cjsKIAogICAgICAgICAgICAgICAgIHN3aXRjaCAo
YWNjZXNzLnR5cGUoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgQWNjZXNzQ2FzZTo6TG9hZDoK
QEAgLTIzNCw2ICsyMzgsMTIgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRl
Rm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjaygKICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21BY2Nlc3NvckdldHRlcjogeworICAgICAg
ICAgICAgICAgICAgICBkb21KSVQgPSBhY2Nlc3MuZG9tSklUKCk7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghZG9tSklUKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdldEJ5SWRT
dGF0dXMoc2xvd1BhdGhTdGF0ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSB0b3RhbGx5IHN3ZWV0IHRvIHN1cHBvcnQg
bW9yZSBvZiB0aGVzZSBhdCBzb21lIHBvaW50IGluIHRoZQogICAgICAgICAgICAgICAgICAgICAv
LyBmdXR1cmUuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwNTIK
QEAgLTI0NCw3ICsyNTQsOCBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVG
b3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgICAgICAgICAgICAgIEdldEJ5
SWRWYXJpYW50IHZhcmlhbnQoCiAgICAgICAgICAgICAgICAgICAgIFN0cnVjdHVyZVNldChzdHJ1
Y3R1cmUpLCBjb21wbGV4R2V0U3RhdHVzLm9mZnNldCgpLAogICAgICAgICAgICAgICAgICAgICBj
b21wbGV4R2V0U3RhdHVzLmNvbmRpdGlvblNldCgpLCBXVEZNb3ZlKGNhbGxMaW5rU3RhdHVzKSwK
LSAgICAgICAgICAgICAgICAgICAgaW50cmluc2ljRnVuY3Rpb24pOworICAgICAgICAgICAgICAg
ICAgICBpbnRyaW5zaWNGdW5jdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZG9tSklUKTsKIAog
ICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmFwcGVuZFZhcmlhbnQodmFyaWFudCkpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKHNsb3dQYXRoU3RhdGUsIHRydWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJp
YW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5j
cHAKaW5kZXggYTg2OWQ0YTFjOTRlN2U0NzU3MzE3NDRjN2IzMDNkNTA2NWUwZjQzMS4uZTI3MTZh
OGExMjljNzNiNGVkNTM5Nzk4NTY2ZTUxYWRhM2JiYzFmZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwCkBAIC0zNiwxMiArMzYsMTQg
QEAgR2V0QnlJZFZhcmlhbnQ6OkdldEJ5SWRWYXJpYW50KAogICAgIGNvbnN0IFN0cnVjdHVyZVNl
dCYgc3RydWN0dXJlU2V0LCBQcm9wZXJ0eU9mZnNldCBvZmZzZXQsCiAgICAgY29uc3QgT2JqZWN0
UHJvcGVydHlDb25kaXRpb25TZXQmIGNvbmRpdGlvblNldCwKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q2FsbExpbmtTdGF0dXM+IGNhbGxMaW5rU3RhdHVzLAotICAgIEpTRnVuY3Rpb24qIGludHJpbnNp
Y0Z1bmN0aW9uKQorICAgIEpTRnVuY3Rpb24qIGludHJpbnNpY0Z1bmN0aW9uLAorICAgIERPTUpJ
VDo6R3JhcGgqIGRvbUpJVCkKICAgICA6IG1fc3RydWN0dXJlU2V0KHN0cnVjdHVyZVNldCkKICAg
ICAsIG1fY29uZGl0aW9uU2V0KGNvbmRpdGlvblNldCkKICAgICAsIG1fb2Zmc2V0KG9mZnNldCkK
ICAgICAsIG1fY2FsbExpbmtTdGF0dXMoV1RGTW92ZShjYWxsTGlua1N0YXR1cykpCiAgICAgLCBt
X2ludHJpbnNpY0Z1bmN0aW9uKGludHJpbnNpY0Z1bmN0aW9uKQorICAgICwgbV9kb21KSVQoZG9t
SklUKQogewogICAgIGlmICghc3RydWN0dXJlU2V0LnNpemUoKSkgewogICAgICAgICBBU1NFUlQo
b2Zmc2V0ID09IGludmFsaWRPZmZzZXQpOwpAQCAtNjUsNiArNjcsNyBAQCBHZXRCeUlkVmFyaWFu
dCYgR2V0QnlJZFZhcmlhbnQ6Om9wZXJhdG9yPShjb25zdCBHZXRCeUlkVmFyaWFudCYgb3RoZXIp
CiAgICAgbV9jb25kaXRpb25TZXQgPSBvdGhlci5tX2NvbmRpdGlvblNldDsKICAgICBtX29mZnNl
dCA9IG90aGVyLm1fb2Zmc2V0OwogICAgIG1faW50cmluc2ljRnVuY3Rpb24gPSBvdGhlci5tX2lu
dHJpbnNpY0Z1bmN0aW9uOworICAgIG1fZG9tSklUID0gb3RoZXIubV9kb21KSVQ7CiAgICAgaWYg
KG90aGVyLm1fY2FsbExpbmtTdGF0dXMpCiAgICAgICAgIG1fY2FsbExpbmtTdGF0dXMgPSBzdGQ6
Om1ha2VfdW5pcXVlPENhbGxMaW5rU3RhdHVzPigqb3RoZXIubV9jYWxsTGlua1N0YXR1cyk7CiAg
ICAgZWxzZQpAQCAtMTAzLDYgKzEwNiw5IEBAIGJvb2wgR2V0QnlJZFZhcmlhbnQ6OmF0dGVtcHRU
b01lcmdlKGNvbnN0IEdldEJ5SWRWYXJpYW50JiBvdGhlcikKICAgICBpZiAoIWNhbk1lcmdlSW50
cmluc2ljU3RydWN0dXJlcyhvdGhlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlm
IChtX2RvbUpJVCAhPSBvdGhlci5tX2RvbUpJVCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAg
ICAgaWYgKG1fY29uZGl0aW9uU2V0LmlzRW1wdHkoKSAhPSBvdGhlci5tX2NvbmRpdGlvblNldC5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTEzOCw2ICsxNDQsOCBA
QCB2b2lkIEdldEJ5SWRWYXJpYW50OjpkdW1wSW5Db250ZXh0KFByaW50U3RyZWFtJiBvdXQsIER1
bXBDb250ZXh0KiBjb250ZXh0KSBjb25zdAogICAgICAgICBvdXQucHJpbnQoIiwgY2FsbCA9ICIs
ICptX2NhbGxMaW5rU3RhdHVzKTsKICAgICBpZiAobV9pbnRyaW5zaWNGdW5jdGlvbikKICAgICAg
ICAgb3V0LnByaW50KCIsIGludHJpbnNpYyA9ICIsICptX2ludHJpbnNpY0Z1bmN0aW9uKTsKKyAg
ICBpZiAobV9kb21KSVQgKQorICAgICAgICBvdXQucHJpbnQoIiwgY3VzdG9tID0gIiwgUmF3UG9p
bnRlcihtX2RvbUpJVCkpOwogICAgIG91dC5wcmludCgiPiIpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5oCmluZGV4IDY2MjE4OWJjZTVm
MmViMWExM2JkMDUzZTk4MDAyMWMxM2MyNjZlNjYuLmRjZjQwODhlYzM1YjliYjAyOGM1YmU4YmQz
MjVhMTE0MTc5MDM4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9HZXRCeUlkVmFyaWFudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkVmFyaWFudC5oCkBAIC0zMiw2ICszMiw5IEBACiAjaW5jbHVkZSAiU3RydWN0dXJlU2V0
LmgiCiAKIG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CitjbGFzcyBHcmFwaDsK
K30KIAogY2xhc3MgQ2FsbExpbmtTdGF0dXM7CiBjbGFzcyBHZXRCeUlkU3RhdHVzOwpAQCAtNDMs
NyArNDYsOCBAQCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7CiAgICAgICAgIGNvbnN0IFN0cnVjdHVy
ZVNldCYgc3RydWN0dXJlU2V0ID0gU3RydWN0dXJlU2V0KCksIFByb3BlcnR5T2Zmc2V0IG9mZnNl
dCA9IGludmFsaWRPZmZzZXQsCiAgICAgICAgIGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9u
U2V0JiA9IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0KCksCiAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxDYWxsTGlua1N0YXR1cz4gPSBudWxscHRyLAotICAgICAgICBKU0Z1bmN0aW9uKiA9IG51
bGxwdHIpOworICAgICAgICBKU0Z1bmN0aW9uKiA9IG51bGxwdHIsCisgICAgICAgIERPTUpJVDo6
R3JhcGgqID0gbnVsbHB0cik7CiAKICAgICB+R2V0QnlJZFZhcmlhbnQoKTsKICAgICAKQEAgLTYy
LDYgKzY2LDcgQEAgY2xhc3MgR2V0QnlJZFZhcmlhbnQgewogICAgIENhbGxMaW5rU3RhdHVzKiBj
YWxsTGlua1N0YXR1cygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbExpbmtTdGF0dXMuZ2V0KCk7IH0K
ICAgICBKU0Z1bmN0aW9uKiBpbnRyaW5zaWNGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faW50
cmluc2ljRnVuY3Rpb247IH0KICAgICBJbnRyaW5zaWMgaW50cmluc2ljKCkgY29uc3QgeyByZXR1
cm4gbV9pbnRyaW5zaWNGdW5jdGlvbiA/IG1faW50cmluc2ljRnVuY3Rpb24tPmludHJpbnNpYygp
IDogTm9JbnRyaW5zaWM7IH0KKyAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdCB7IHJl
dHVybiBtX2RvbUpJVDsgfQogCiAgICAgYm9vbCBpc1Byb3BlcnR5VW5zZXQoKSBjb25zdCB7IHJl
dHVybiBvZmZzZXQoKSA9PSBpbnZhbGlkT2Zmc2V0OyB9CiAKQEAgLTgwLDYgKzg1LDcgQEAgY2xh
c3MgR2V0QnlJZFZhcmlhbnQgewogICAgIFByb3BlcnR5T2Zmc2V0IG1fb2Zmc2V0OwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0YXR1cz4gbV9jYWxsTGlua1N0YXR1czsKICAgICBKU0Z1
bmN0aW9uKiBtX2ludHJpbnNpY0Z1bmN0aW9uOworICAgIERPTUpJVDo6R3JhcGgqIG1fZG9tSklU
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAppbmRleCAyY2YyNjY3MDg2NjQ2ZjIw
MmEwNGM2YTA3NDI5YzgxYTc1ZTk0NjQzLi4zOTk1ZTY0MDRmNGIzY2U3NWYxMjFmMjM3YmE1NTQ5
YWFmYWFmZTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9s
eW1vcnBoaWNBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Q
b2x5bW9ycGhpY0FjY2Vzcy5jcHAKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6dHJ5R2V0KAogc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nh
c2U+IEFjY2Vzc0Nhc2U6OmdldCgKICAgICBWTSYgdm0sIEpTQ2VsbCogb3duZXIsIEFjY2Vzc1R5
cGUgdHlwZSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwKICAg
ICBjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCYgY29uZGl0aW9uU2V0LCBib29sIHZp
YVByb3h5LCBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0LAotICAgIFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jIGN1c3RvbUdldHRlciwgSlNPYmplY3QqIGN1c3RvbVNsb3RCYXNlKQorICAg
IFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIGN1c3RvbUdldHRlciwgSlNPYmplY3QqIGN1c3Rv
bVNsb3RCYXNlLCBET01KSVQ6OkdyYXBoKiBkb21KSVQpCiB7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PEFjY2Vzc0Nhc2U+IHJlc3VsdChuZXcgQWNjZXNzQ2FzZSgpKTsKIApAQCAtMjI5LDEyICsyMjks
MTMgQEAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6OmdldCgKICAgICBy
ZXN1bHQtPm1fc3RydWN0dXJlLnNldCh2bSwgb3duZXIsIHN0cnVjdHVyZSk7CiAgICAgcmVzdWx0
LT5tX2NvbmRpdGlvblNldCA9IGNvbmRpdGlvblNldDsKIAotICAgIGlmICh2aWFQcm94eSB8fCBh
ZGRpdGlvbmFsU2V0IHx8IHJlc3VsdC0+ZG9lc0NhbGxzKCkgfHwgY3VzdG9tR2V0dGVyIHx8IGN1
c3RvbVNsb3RCYXNlKSB7CisgICAgaWYgKHZpYVByb3h5IHx8IGFkZGl0aW9uYWxTZXQgfHwgcmVz
dWx0LT5kb2VzQ2FsbHMoKSB8fCBjdXN0b21HZXR0ZXIgfHwgY3VzdG9tU2xvdEJhc2UgfHwgZG9t
SklUKSB7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8UmFy
ZURhdGE+KCk7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+dmlhUHJveHkgPSB2aWFQcm94
eTsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5hZGRpdGlvbmFsU2V0ID0gYWRkaXRpb25h
bFNldDsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5jdXN0b21BY2Nlc3Nvci5nZXR0ZXIg
PSBjdXN0b21HZXR0ZXI7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+Y3VzdG9tU2xvdEJh
c2Uuc2V0TWF5QmVOdWxsKHZtLCBvd25lciwgY3VzdG9tU2xvdEJhc2UpOworICAgICAgICByZXN1
bHQtPm1fcmFyZURhdGEtPmRvbUpJVCA9IGRvbUpJVDsKICAgICB9CiAKICAgICByZXR1cm4gcmVz
dWx0OwpAQCAtMzg1LDYgKzM4Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBBY2Nl
c3NDYXNlOjpjbG9uZSgpIGNvbnN0CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+Y3VzdG9t
QWNjZXNzb3Iub3BhcXVlID0gcmFyZURhdGEtPmN1c3RvbUFjY2Vzc29yLm9wYXF1ZTsKICAgICAg
ICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5jdXN0b21TbG90QmFzZSA9IHJhcmVEYXRhLT5jdXN0b21T
bG90QmFzZTsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5pbnRyaW5zaWNGdW5jdGlvbiA9
IHJhcmVEYXRhLT5pbnRyaW5zaWNGdW5jdGlvbjsKKyAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRh
LT5kb21KSVQgPSByYXJlRGF0YS0+ZG9tSklUOwogICAgIH0KICAgICByZXR1cm4gcmVzdWx0Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGlj
QWNjZXNzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nl
c3MuaAppbmRleCBhNmQxNDhjYmZiMGYxOWY4YjM3YTE3NzM4MWUwMDgxMzcyYjg0OTIyLi41YWUz
ZTI5ZTA4NWVmOWM2MmQ3MTE1ODFlYjZlZTlkMGM3NjAxNDYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaApAQCAtMzcsNiArMzcs
OSBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7CituYW1lc3Bh
Y2UgRE9NSklUIHsKK2NsYXNzIEdyYXBoOworfQogCiBjbGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBQ
b2x5bW9ycGhpY0FjY2VzczsKQEAgLTEzMCw3ICsxMzMsOCBAQCBjbGFzcyBBY2Nlc3NDYXNlIHsK
ICAgICAgICAgYm9vbCB2aWFQcm94eSA9IGZhbHNlLAogICAgICAgICBXYXRjaHBvaW50U2V0KiBh
ZGRpdGlvbmFsU2V0ID0gbnVsbHB0ciwKICAgICAgICAgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmMgPSBudWxscHRyLAotICAgICAgICBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UgPSBudWxscHRy
KTsKKyAgICAgICAgSlNPYmplY3QqIGN1c3RvbVNsb3RCYXNlID0gbnVsbHB0ciwKKyAgICAgICAg
RE9NSklUOjpHcmFwaCogPSBudWxscHRyKTsKICAgICAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPEFjY2Vzc0Nhc2U+IG1lZ2Ftb3JwaGljTG9hZChWTSYsIEpTQ2VsbCogb3duZXIpOwogICAg
IApAQCAtMTg2LDYgKzE5MCwxMiBAQCBjbGFzcyBBY2Nlc3NDYXNlIHsKICAgICAgICAgcmV0dXJu
IGludHJpbnNpY0Z1bmN0aW9uKCktPmludHJpbnNpYygpOwogICAgIH0KIAorICAgIERPTUpJVDo6
R3JhcGgqIGRvbUpJVCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9yYXJlRGF0YSk7
CisgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5kb21KSVQ7CisgICAgfQorCiAgICAgV2F0Y2hw
b2ludFNldCogYWRkaXRpb25hbFNldCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9y
YXJlRGF0YSA/IG1fcmFyZURhdGEtPmFkZGl0aW9uYWxTZXQuZ2V0KCkgOiBudWxscHRyOwpAQCAt
Mjg0LDYgKzI5NCw3IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgIHB1YmxpYzoKICAgICAgICAg
UmFyZURhdGEoKQogICAgICAgICAgICAgOiB2aWFQcm94eShmYWxzZSkKKyAgICAgICAgICAgICwg
ZG9tSklUKG51bGxwdHIpCiAgICAgICAgIHsKICAgICAgICAgICAgIGN1c3RvbUFjY2Vzc29yLm9w
YXF1ZSA9IG51bGxwdHI7CiAgICAgICAgIH0KQEAgLTMwMCw2ICszMTEsNyBAQCBjbGFzcyBBY2Nl
c3NDYXNlIHsKICAgICAgICAgfSBjdXN0b21BY2Nlc3NvcjsKICAgICAgICAgV3JpdGVCYXJyaWVy
PEpTT2JqZWN0PiBjdXN0b21TbG90QmFzZTsKICAgICAgICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rp
b24+IGludHJpbnNpY0Z1bmN0aW9uOworICAgICAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQ7CiAg
ICAgfTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSYXJlRGF0YT4gbV9yYXJlRGF0YTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCmluZGV4
IDcxOWQ4ZjI3MjgzZjVkMTIzY2U1NzcxNTQ1ZTQ2OWJmODFhZmYyMjcuLjFmZDA0YjU1NzRiZmUw
NzAyMDVmZTJiYTMzMGJlMmM1ZTQwOWFkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcApAQCAtMTcwLDYgKzE3MCwyMSBAQCB2b2lk
IGR1bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYgb3V0LCBTcGVjdWxhdGVkVHlwZSB2YWx1ZSkK
ICAgICAgICAgICAgICAgICBteU91dC5wcmludCgiRGVyaXZlZGFycmF5Iik7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgaXNUb3AgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYg
KHZhbHVlICYgU3BlY0RPTURvY3VtZW50V3JhcHBlcikKKyAgICAgICAgICAgICAgICBteU91dC5w
cmludCgiRG9tZG9jdW1lbnR3cmFwcGVyIik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgaXNUb3AgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHZhbHVlICYgU3BlY0RPTUVs
ZW1lbnQpCisgICAgICAgICAgICAgICAgbXlPdXQucHJpbnQoIkRvbWVsZW1lbnQiKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNlOworCisgICAgICAgICAg
ICBpZiAodmFsdWUgJiBTcGVjRE9NT3RoZXJOb2RlKQorICAgICAgICAgICAgICAgIG15T3V0LnBy
aW50KCJEb21vdGhlcm5vZGUiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBp
c1RvcCA9IGZhbHNlOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCh2YWx1ZSAmIFNwZWNTdHJp
bmcpID09IFNwZWNTdHJpbmcpCkBAIC0zOTQsMTIgKzQwOSwyNSBAQCBTcGVjdWxhdGVkVHlwZSBz
cGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAKIFNw
ZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbVN0cnVjdHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKIHsKLSAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBTdHJpbmdUeXBl
KQorICAgIEpTVHlwZSB0eXBlID0gc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKTsKKyAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFN0cmluZ1R5cGU6CiAgICAgICAgIHJldHVybiBTcGVj
U3RyaW5nOwotICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IFN5bWJvbFR5
cGUpCisgICAgY2FzZSBTeW1ib2xUeXBlOgogICAgICAgICByZXR1cm4gU3BlY1N5bWJvbDsKLSAg
ICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUoKSA9PSBEZXJpdmVkQXJyYXlUeXBlKQor
ICAgIGNhc2UgRGVyaXZlZEFycmF5VHlwZToKICAgICAgICAgcmV0dXJuIFNwZWNEZXJpdmVkQXJy
YXk7CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJUeXBlOgorICAgICAgICByZXR1cm4gU3Bl
Y0RPTURvY3VtZW50V3JhcHBlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICBpZiAodHlwZSA+PSBET01FbGVtZW50VHlwZSkKKyAgICAgICAgcmV0dXJuIFNwZWNE
T01FbGVtZW50OworICAgIGlmICh0eXBlID49IERPTU5vZGVUeXBlKQorICAgICAgICByZXR1cm4g
U3BlY0RPTU90aGVyTm9kZTsKKwogICAgIHJldHVybiBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8o
c3RydWN0dXJlLT5jbGFzc0luZm8oKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKaW5kZXggZjQzZGZjZDMxNTg3MWU5ODk1M2VhMmRk
ZGM0YmYzMzUyNWNjZGZkZi4uNGM3YmRmN2M2OGIyNjNmNDQ1NjljMDg3NDYzM2EzMDdlNDYxNjkz
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBl
LmgKQEAgLTU5LDI0ICs1OSwyOCBAQCBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY01h
cE9iamVjdCAgICAgICAgICA9IDF1bGwgPDwgMTY7IC8vIEl0J3MgZGVmaW5pdAogc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTZXRPYmplY3QgICAgICAgICAgPSAxdWxsIDw8IDE3OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBTZXQgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4K
IHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUHJveHlPYmplY3QgICAgICAgID0gMXVs
bCA8PCAxODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJveHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMg
c3ViY2xhc3Nlcy4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRGVyaXZlZEFycmF5
ICAgICAgID0gMXVsbCA8PCAxOTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRGVyaXZlZEFycmF5IG9i
amVjdC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAg
ID0gMXVsbCA8PCAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmlu
YWxPYmplY3QsIEpTQXJyYXksIG9yIEpTRnVuY3Rpb24uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY09iamVjdCAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJh
eSB8IFNwZWNGdW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVu
dHMgfCBTcGVjU2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNwZWNSZWdFeHBP
YmplY3QgfCBTcGVjTWFwT2JqZWN0IHwgU3BlY1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8
IFNwZWNEZXJpdmVkQXJyYXkgfCBTcGVjT2JqZWN0T3RoZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3Ig
dGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCi1zdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICA9IDF1bGwgPDwgMjE7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgPSAxdWxsIDw8IDIy
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZp
ZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RPTURvY3VtZW50V3JhcHBlciA9
IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERPTSBkb2N1bWVudCB3cmFwcGVyIG9i
amVjdC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRE9NRWxlbWVudCAgICAgICAg
ID0gMXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRE9NIGVsZW1lbnQgb2JqZWN0Lgor
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNET01PdGhlck5vZGUgICAgICAgPSAxdWxs
IDw8IDIyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBET00gTm9kZSBvYmplY3QgYnV0IG5vdCBEb2N1
bWVudFdyYXBwZXIgYW5kIEVsZW1lbnQuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0RPTU5vZGUgICAgICAgICAgICA9IFNwZWNET01Eb2N1bWVudFdyYXBwZXIgfCBTcGVjRE9NRWxl
bWVudCB8IFNwZWNET01PdGhlck5vZGU7CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y09iamVjdE90aGVyICAgICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBv
YmplY3QgYnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0aW9uLgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAgPSBTcGVjRmlu
YWxPYmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRBcnJheVZpZXcg
fCBTcGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdP
YmplY3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNTZXRPYmplY3Qg
fCBTcGVjUHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3BlY0RPTU5vZGUgfCBTcGVj
T2JqZWN0T3RoZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3IgYW55IGtpbmQgb2Yg
b2JqZWN0IHByZWRpY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmlu
Z0lkZW50ICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5n
LCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNTdHJpbmdWYXIgICAgICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBK
U1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZpZXIuCiBzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY1N0cmluZyAgICAgICAgICAgICA9IFNwZWNTdHJpbmdJZGVudCB8IFNwZWNT
dHJpbmdWYXI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLgotc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgPSAxdWxsIDw8IDIzOyAvLyBJdCdz
IGRlZmluaXRlbHkgYSBTeW1ib2wuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Nl
bGxPdGhlciAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2Vs
bCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5kIGRlZmluaXRlbHkgbm90IGEgSlNT
dHJpbmcgb3IgYSBTeW1ib2wuIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBiZSBwYXJ0IG9mIGhlYXAt
dG9wIG9yIGJ5dGVjb2RlLXRvcC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzMzA3OAorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAg
ICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgICA9IDF1bGwgPDwgMjc7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmpl
Y3QgYW5kIGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcgb3IgYSBTeW1ib2wuIEZJWE1FOiBUaGlz
IHNob3VsZG4ndCBiZSBwYXJ0IG9mIGhlYXAtdG9wIG9yIGJ5dGVjb2RlLXRvcC4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzA3OAogc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAgPSBTcGVjT2JqZWN0IHwgU3BlY1N0cmlu
ZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0Nl
bGwuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAgICA9
IDF1bGwgPDwgMjU7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3Ig
MS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uQm9vbEludDMyICAgICAgID0g
MXVsbCA8PCAyNjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgb3RoZXIg
dGhhbiAwIG9yIDEuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xJbnQzMiAg
ICAgICAgICA9IDF1bGwgPDwgMjg7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZh
bHVlIDAgb3IgMS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uQm9vbEludDMy
ICAgICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFs
dWUgb3RoZXIgdGhhbiAwIG9yIDEuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0lu
dDMyT25seSAgICAgICAgICA9IFNwZWNCb29sSW50MzIgfCBTcGVjTm9uQm9vbEludDMyOyAvLyBJ
dCdzIGRlZmluaXRlbHkgYW4gSW50MzIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0ludDUyT25seSAgICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJ
bnQ1MiBhbmQgd2UgaW50ZW5kIGl0IHRvIHVuYm94IGl0LiBJdCdzIGFsc28gZGVmaW5pdGVseSBu
b3QgYW4gSW50MzIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUyT25seSAg
ICAgICAgICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgd2Ug
aW50ZW5kIGl0IHRvIHVuYm94IGl0LiBJdCdzIGFsc28gZGVmaW5pdGVseSBub3QgYW4gSW50MzIu
CiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludCAgICAgICAgICAgICA9IFNw
ZWNJbnQzMk9ubHkgfCBTcGVjSW50NTJPbmx5OyAvLyBJdCdzIHNvbWV0aGluZyB0aGF0IHdlIGNh
biBkbyBtYWNoaW5lIGludCBhcml0aG1ldGljIG9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRl
ZmluaXRlbHkgbm90IGFuIEludDUyIGJ1dCBpdCdzIGEgcmVhbCBudW1iZXIgYW5kIGl0J3MgYSBk
b3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAg
ICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNp
ZGUgYSBkb3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91
YmxlICAgICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4gSW50NTIgYnV0
IGl0J3MgYSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAgID0gU3BlY05vbkludEFzRG91YmxlIHwg
U3BlY0FueUludEFzRG91YmxlOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBub24tTmFOIGRvdWJsZS4K
LXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUHVyZU5hTiAgICAgID0gMXVs
bCA8PCAzMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FlIHRvIHRhZyAoaS5l
LiBwdXJlKS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFO
ICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZl
IHRvIHRhZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNE
b3VibGVQdXJlTmFOICAgICAgPSAxdWxsIDw8IDMzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4g
dGhhdCBpcyBzYWUgdG8gdGFnIChpLmUuIHB1cmUpLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNEb3VibGVJbXB1cmVOYU4gICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBOYU4gdGhhdCBpcyB1bnNhZmUgdG8gdGFnIChpLmUuIGltcHVyZSkuCiBzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZU5hTiAgICAgICAgICA9IFNwZWNEb3VibGVQdXJl
TmFOIHwgU3BlY0RvdWJsZUltcHVyZU5hTjsgLy8gSXQncyBkZWZpbml0ZWx5IHNvbWUga2luZCBv
ZiBOYU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlRG91YmxlICAg
ICA9IFNwZWNEb3VibGVSZWFsIHwgU3BlY0RvdWJsZVB1cmVOYU47IC8vIEl0J3MgZWl0aGVyIGEg
bm9uLU5hTiBvciBhIE5hTiBkb3VibGUsIGJ1dCBpdCdzIGRlZmluaXRlbHkgbm90IGltcHVyZSBO
YU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxEb3VibGUgICAgICAgICA9
IFNwZWNEb3VibGVSZWFsIHwgU3BlY0RvdWJsZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFO
IG9yIGEgTmFOIGRvdWJsZS4KQEAgLTg0LDEyICs4OCwxMiBAQCBzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0J5dGVjb2RlUmVhbE51bWJlciA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjRG91
YmxlUgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsUmVhbE51bWJlciAgICAg
PSBTcGVjQW55SW50IHwgU3BlY0RvdWJsZVJlYWw7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9y
IGEgRG91YmxlUmVhbCwgb3IgYSBJbnQ1Mi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjQnl0ZWNvZGVOdW1iZXIgICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNCeXRlY29kZURvdWJs
ZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGUsIGFuZCB0aGUgRG91YmxlIGNh
bm5vdCBiZSBhbiBpbXB1cmUgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNG
dWxsTnVtYmVyICAgICAgICAgPSBTcGVjQW55SW50IHwgU3BlY0Z1bGxEb3VibGU7IC8vIEl0J3Mg
ZWl0aGVyIGFuIEludDMyLCBJbnQ1Miwgb3IgYSBEb3VibGUsIGFuZCB0aGUgRG91YmxlIGNhbiBi
ZSBpbXB1cmUgTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAg
ICAgICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgPSAxdWxsIDw8
IDMzOyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVkLgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICAgPSAxdWxsIDw8IDM1
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgPSAxdWxsIDw8IDM2OyAvLyBJdCdzIGRlZmluaXRl
bHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVkLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNNaXNjICAgICAgICAgICAgICAgPSBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQn
cyBkZWZpbml0ZWx5IGVpdGhlciBhIGJvb2xlYW4sIE51bGwsIG9yIFVuZGVmaW5lZC4KIHN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSGVhcFRvcCAgICAgICAgICAgID0gU3BlY0NlbGwg
fCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYzsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUg
YWJvdmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVyZU5hTi4K
IHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjUHJpbWl0aXZlICAgICAgICAgID0gU3Bl
Y1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYzsgLy8g
SXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNFbXB0eSAgICAgICAgICAgICAgPSAxdWxsIDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkg
YW4gZW1wdHkgdmFsdWUgbWFya2VyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNF
bXB0eSAgICAgICAgICAgICAgPSAxdWxsIDw8IDM3OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gZW1w
dHkgdmFsdWUgbWFya2VyLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29k
ZVRvcCAgICAgICAgPSBTcGVjSGVhcFRvcCB8IFNwZWNFbXB0eTsgLy8gSXQgY2FuIGJlIGFueSBv
ZiB0aGUgYWJvdmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBhbmQgU3BlY0RvdWJsZUltcHVy
ZU5hTi4gQ29ycmVzcG9uZHMgdG8gd2hhdCBjb3VsZCBiZSBmb3VuZCBpbiBhIGJ5dGVjb2RlIGxv
Y2FsLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsVG9wICAgICAgICAgICAg
PSBTcGVjQnl0ZWNvZGVUb3AgfCBTcGVjRnVsbE51bWJlcjsgLy8gSXQgY2FuIGJlIGFueXRoaW5n
IHRoYXQgYnl0ZWNvZGUgY291bGQgc2VlIHBsdXMgZXhvdGljIGVuY29kaW5ncyBvZiBudW1iZXJz
LgogCkBAIC00MTgsNiArNDIyLDIxIEBAIGlubGluZSBib29sIGlzVW50eXBlZFNwZWN1bGF0aW9u
Rm9yQml0T3BzKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogICAgIHJldHVybiAhISh2YWx1ZSAmIH4o
U3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbiB8IFNwZWNPdGhlcikpOwogfQogCitpbmxpbmUg
Ym9vbCBpc0RPTU5vZGVTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKK3sKKyAgICBy
ZXR1cm4gISEodmFsdWUgJiBTcGVjRE9NTm9kZSkgJiYgISh2YWx1ZSAmIH5TcGVjRE9NTm9kZSk7
Cit9CisKK2lubGluZSBib29sIGlzRE9NRWxlbWVudFNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBl
IHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSBTcGVjRE9NRWxlbWVudDsKK30KKworaW5s
aW5lIGJvb2wgaXNET01Eb2N1bWVudFdyYXBwZXJTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2
YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPT0gU3BlY0RPTURvY3VtZW50V3JhcHBlcjsKK30K
Kwogdm9pZCBkdW1wU3BlY3VsYXRpb24oUHJpbnRTdHJlYW0mLCBTcGVjdWxhdGVkVHlwZSk7CiB2
b2lkIGR1bXBTcGVjdWxhdGlvbkFiYnJldmlhdGVkKFByaW50U3RyZWFtJiwgU3BlY3VsYXRlZFR5
cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVS
ZWNvdmVyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3Zlcnku
aAppbmRleCA4ZTg4YTE0NjM3NzEyZWZhZGM0MWRmZDQ0MTY0MDAyOWQ1NDRlNzcwLi4yOTA4OTBl
NTAxZTVmODUzYzBlNzA3OTVjMGEwYzRhZmI4ZGExOTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBjbGFz
cyBWYWx1ZVJlY292ZXJ5IHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlQoZGF0YUZvcm1hdCAhPSBEYXRhRm9ybWF0
Tm9uZSAmJiBkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXRTdG9yYWdlKTsKKyAgICAgICAgICAgIEFT
U0VSVChkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXROb25lICYmIGRhdGFGb3JtYXQgIT0gRGF0YUZv
cm1hdFN0b3JhZ2UgJiYgZGF0YUZvcm1hdCAhPSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcik7CiAg
ICAgICAgICAgICByZXN1bHQubV90ZWNobmlxdWUgPSBEaXNwbGFjZWRJbkpTU3RhY2s7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDlkYjEzZTNh
ODdlNmI3OGRhYTFlOWIwMTIzMzJmYTE1ZjU2NDQ0OTAuLjFhZTM4OTcyNzAxZjUzMTMyYTljZGY5
YmY3ZTk0YjU1M2VlYzBkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTIyNjEsOCArMjI2MSwx
MyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRl
RWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgR2V0QnV0dGVyZmx5OgogICAg
IGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVy
dHlTdG9yYWdlOgorICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CisgICAgY2FzZSBHZXRET01X
cmFwcGVkOgogICAgICAgICBmb3JOb2RlKG5vZGUpLmNsZWFyKCk7IC8vIFRoZSByZXN1bHQgaXMg
bm90IGEgSlMgdmFsdWUuCiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgVG9ET01XcmFwcGVyOgor
ICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0RPTU5vZGUgfCBTcGVjT3RoZXIpOwor
ICAgICAgICBicmVhazsKICAgICBjYXNlIENoZWNrQXJyYXk6IHsKICAgICAgICAgaWYgKG5vZGUt
PmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1fZ3JhcGgsIG5vZGUsIGZvck5vZGUobm9kZS0+
Y2hpbGQxKCkpKSkgewogICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVl
KTsKQEAgLTI4MTYsNiArMjgyMSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgY2Fz
ZSBDaGVja1RpZXJVcEluTG9vcDoKICAgICBjYXNlIENoZWNrVGllclVwQXRSZXR1cm46CiAgICAg
Y2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CisgICAgY2FzZSBDaGVja05vZGVGbGFnczoKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIENyZWF0ZVJlc3Q6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDA0NTIyODBkZDI2ZjQwYjBiY2E0
NWQzODUxZDExMGRmNDE2YTBmYTcuLmU1YjQ4MWU0ZjFjOTY5NzY2NWQyMGQxM2JhOGJiODY3NmZh
ZmU1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiREZHQ2xvYmJlcnNFeGl0U3RhdGUu
aCIKICNpbmNsdWRlICJERkdHcmFwaC5oIgogI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKKyNpbmNs
dWRlICJET01KSVRJUi5oIgogI2luY2x1ZGUgIkdldEJ5SWRTdGF0dXMuaCIKICNpbmNsdWRlICJI
ZWFwLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgpAQCAtMjE5LDYgKzIyMCw3IEBAIGNsYXNz
IEJ5dGVDb2RlUGFyc2VyIHsKICAgICBib29sIGhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlv
bihOb2RlKiBjYWxsVGFyZ2V0Tm9kZSwgaW50IHJlc3VsdE9wZXJhbmQsIEludGVybmFsRnVuY3Rp
b24qLCBpbnQgcmVnaXN0ZXJPZmZzZXQsIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywg
Q29kZVNwZWNpYWxpemF0aW9uS2luZCwgU3BlY3VsYXRlZFR5cGUsIGNvbnN0IENoZWNrc0Z1bmN0
b3ImIGluc2VydENoZWNrcyk7CiAgICAgTm9kZSogaGFuZGxlUHV0QnlPZmZzZXQoTm9kZSogYmFz
ZSwgdW5zaWduZWQgaWRlbnRpZmllciwgUHJvcGVydHlPZmZzZXQsIGNvbnN0IEluZmVycmVkVHlw
ZTo6RGVzY3JpcHRvciYsIE5vZGUqIHZhbHVlKTsKICAgICBOb2RlKiBoYW5kbGVHZXRCeU9mZnNl
dChTcGVjdWxhdGVkVHlwZSwgTm9kZSogYmFzZSwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwg
UHJvcGVydHlPZmZzZXQsIGNvbnN0IEluZmVycmVkVHlwZTo6RGVzY3JpcHRvciYsIE5vZGVUeXBl
ID0gR2V0QnlPZmZzZXQpOworICAgIGJvb2wgaGFuZGxlRE9NSklUR2V0dGVyKGludCByZXN1bHRP
cGVyYW5kLCBjb25zdCBHZXRCeUlkVmFyaWFudCYsIE5vZGUqIHRoaXNOb2RlLCBTcGVjdWxhdGVk
VHlwZSBwcmVkaWN0aW9uKTsKIAogICAgIC8vIENyZWF0ZSBhIHByZXNlbmNlIE9iamVjdFByb3Bl
cnR5Q29uZGl0aW9uIGJhc2VkIG9uIHNvbWUga25vd24gb2Zmc2V0IGFuZCBzdHJ1Y3R1cmUgc2V0
LiBEb2VzIG5vdAogICAgIC8vIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29uZGl0aW9uLCBi
dXQgaXQgbWF5IHJldHVybiBhIG51bGwgb25lIGlmIGl0IGVuY291bnRlcnMgYSBjb250cmFkaWN0
aW9uLgpAQCAtMjY1OSw2ICsyNjYxLDU3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUlu
dHJpbnNpY0dldHRlcihpbnQgcmVzdWx0T3BlcmFuZCwgY29uc3QgR2V0QnlJZFZhcmlhCiAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAorYm9vbCBCeXRlQ29kZVBhcnNlcjo6
aGFuZGxlRE9NSklUR2V0dGVyKGludCByZXN1bHRPcGVyYW5kLCBjb25zdCBHZXRCeUlkVmFyaWFu
dCYgdmFyaWFudCwgTm9kZSogdGhpc05vZGUsIFNwZWN1bGF0ZWRUeXBlKQoreworICAgIGlmICgh
dmFyaWFudC5kb21KSVQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgSGFzaE1hcDxE
T01KSVQ6OklSKiwgTm9kZSo+IG5vZGVNYXA7CisKKyAgICBhdXRvIGxvb2tVcE5vZGUgPSBbJl0o
RE9NSklUOjpJUiogaXIpIHsKKyAgICAgICAgcmV0dXJuIG5vZGVNYXAuZ2V0KGlyKTsKKyAgICB9
OworCisgICAgYXV0byByZWdpc3Rlck5vZGUgPSBbJl0oRE9NSklUOjpJUiogaXIsIE5vZGUqIG5v
ZGUpIHsKKyAgICAgICAgbm9kZU1hcC5hZGQoaXIsIG5vZGUpOworICAgIH07CisKKyAgICByZWdp
c3Rlck5vZGUoRE9NSklUOjpJUjo6dGhpc1ZhbHVlKCksIHRoaXNOb2RlKTsKKworICAgIGZvciAo
RE9NSklUOjpJUiYgaXIgOiB2YXJpYW50LmRvbUpJVCgpLT5pcigpKSB7CisgICAgICAgIHN3aXRj
aCAoaXIubV9raW5kKSB7CisgICAgICAgIGNhc2UgRE9NSklUOjpLaW5kOjpDaGVja05vZGU6Cisg
ICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrLCBFZGdlKGxvb2tVcE5vZGUoaXIubV9jaGlsZDEp
LCBET01Ob2RlVXNlKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERPTUpJ
VDo6S2luZDo6Q2hlY2tOb2RlRmxhZ3M6CisgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrTm9k
ZUZsYWdzLCBPcEluZm8oaXIubV9vcEluZm8xKSwgbG9va1VwTm9kZShpci5tX2NoaWxkMSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBET01KSVQ6OktpbmQ6OkdldFdyYXBw
ZWQ6CisgICAgICAgICAgICByZWdpc3Rlck5vZGUoJmlyLCBhZGRUb0dyYXBoKEdldERPTVdyYXBw
ZWQsIE9wSW5mbyhpci5tX29wSW5mbzEpLCBsb29rVXBOb2RlKGlyLm1fY2hpbGQxKSkpOworICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBET01KSVQ6OktpbmQ6OkxvYWRQb2ludGVy
OgorICAgICAgICAgICAgcmVnaXN0ZXJOb2RlKCZpciwgYWRkVG9HcmFwaChMb2FkT3BhcXVlUG9p
bnRlciwgT3BJbmZvKGlyLm1fb3BJbmZvMSksIGxvb2tVcE5vZGUoaXIubV9jaGlsZDEpKSk7Cisg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERPTUpJVDo6S2luZDo6VG9XcmFwcGVy
OgorICAgICAgICAgICAgcmVnaXN0ZXJOb2RlKCZpciwgYWRkVG9HcmFwaChUb0RPTVdyYXBwZXIs
IE9wSW5mbyhpci5tX29wSW5mbzEpLCBPcEluZm8oaXIubV9vcEluZm8yKSwgbG9va1VwTm9kZShp
ci5tX2NoaWxkMSksIGxvb2tVcE5vZGUoaXIubV9jaGlsZDIpKSk7CisgICAgICAgICAgICBicmVh
azsKKworICAgICAgICBjYXNlIERPTUpJVDo6S2luZDo6UmV0dXJuOgorICAgICAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3RlcihyZXN1bHRPcGVyYW5kKSwgbG9va1VwTm9kZShpci5tX2NoaWxkMSkp
OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBET01KSVQ6OktpbmQ6OkV4dGVy
bmFsOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgQ2hlY2tzRnVuY3Rvcj4KIGJvb2wgQnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZVR5cGVkQXJyYXlDb25zdHJ1Y3RvcigKICAgICBpbnQgcmVzdWx0T3Bl
cmFuZCwgSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24sIGludCByZWdpc3Rlck9mZnNldCwKQEAg
LTMzMTIsNiArMzM2NSw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQoCiAg
ICAgCiAgICAgQVNTRVJUKGdldEJ5SWRTdGF0dXMubnVtVmFyaWFudHMoKSA9PSAxKTsKICAgICBH
ZXRCeUlkVmFyaWFudCB2YXJpYW50ID0gZ2V0QnlJZFN0YXR1c1swXTsKKwogICAgICAgICAgICAg
ICAgIAogICAgIE5vZGUqIGxvYWRlZFZhbHVlID0gbG9hZChwcmVkaWN0aW9uLCBiYXNlLCBpZGVu
dGlmaWVyTnVtYmVyLCB2YXJpYW50KTsKICAgICBpZiAoIWxvYWRlZFZhbHVlKSB7CkBAIC0zMzI0
LDYgKzMzNzgsMTQgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlR2V0QnlJZCgKICAgICAg
ICAgbV9ncmFwaC5jb21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkR2V0QnlJZCgpOwogCiAgICAg
QVNTRVJUKHR5cGUgPT0gQWNjZXNzVHlwZTo6R2V0IHx8ICF2YXJpYW50LmNhbGxMaW5rU3RhdHVz
KCkpOworCisgICAgaWYgKHZhcmlhbnQuZG9tSklUKCkpIHsKKyAgICAgICAgaWYgKGhhbmRsZURP
TUpJVEdldHRlcihkZXN0aW5hdGlvbk9wZXJhbmQsIHZhcmlhbnQsIGJhc2UsIHByZWRpY3Rpb24p
KSB7CisgICAgICAgICAgICBhZGRUb0dyYXBoKFBoYW50b20sIGxvYWRlZFZhbHVlKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICghdmFyaWFudC5jYWxs
TGlua1N0YXR1cygpICYmIHZhcmlhbnQuaW50cmluc2ljKCkgPT0gTm9JbnRyaW5zaWMpIHsKICAg
ICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihkZXN0aW5hdGlvbk9wZXJhbmQpLCBsb2FkZWRWYWx1
ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVy
aXplLmgKaW5kZXggODdkOGI1MmQ4Y2Q3OWZkNDkyNGM4NTgyMTQyNjE2ZTcyZGE3MjNjNC4uZDVk
YjFkMzQxNWJkZWE0NzdiMTNlMTFmZWRiNTliYTE2N2ZjY2MwMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTg0NSw2ICs4NDUsMTAgQEAgdm9pZCBjbG9i
YmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQs
IGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihDaGVja1R5cGVJbmZvRmxh
Z3NMb2MsIEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5v
ZGUpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBDaGVja05vZGVGbGFnczoKKyAgICAg
ICAgcmVhZChXb3JsZCk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgT3ZlcnJpZGVzSGFz
SW5zdGFuY2U6CiAgICAgICAgIHJlYWQoSlNDZWxsX3R5cGVJbmZvRmxhZ3MpOwogICAgICAgICBk
ZWYoSGVhcExvY2F0aW9uKE92ZXJyaWRlc0hhc0luc3RhbmNlTG9jLCBKU0NlbGxfdHlwZUluZm9G
bGFncywgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CkBAIC04ODMsNiArODg3LDE0
IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRG
dW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQnV0
dGVyZmx5TG9jLCBKU09iamVjdF9idXR0ZXJmbHksIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUo
bm9kZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBGSVhNRTogUHJlY2lzZWx5IG1vZGVs
IGl0LgorICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CisgICAgY2FzZSBHZXRET01XcmFwcGVk
OgorICAgIGNhc2UgVG9ET01XcmFwcGVyOgorICAgICAgICByZWFkKFdvcmxkKTsKKyAgICAgICAg
d3JpdGUoSGVhcCk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQXJyYXlpZnk6CiAgICAg
Y2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgogICAgICAgICByZWFkKEpTQ2VsbF9zdHJ1Y3R1cmVJ
RCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggMGFkNTRmZWUy
ZmYzOWQ4ODU3MGIxNzc2NzgxZjI0MTk2MDlmZGNkYS4uN2I1YTc3NDhkMzgzNDgxNzY2NGRlMWE2
ZmQ3YzI0M2Q4NGViN2RkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNw
cApAQCAtMTE2LDYgKzExNiw5IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9k
ZSkKICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAg
ICBjYXNlIEdldEJ1dHRlcmZseToKKyAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgorICAgIGNh
c2UgR2V0RE9NV3JhcHBlZDoKKyAgICBjYXNlIFRvRE9NV3JhcHBlcjoKICAgICBjYXNlIENoZWNr
QXJyYXk6CiAgICAgY2FzZSBHZXRTY29wZToKICAgICBjYXNlIFNraXBTY29wZToKQEAgLTIwMyw2
ICsyMDYsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2Fz
ZSBDb25zdGFudFN0b3JhZ2VQb2ludGVyOgogICAgIGNhc2UgQ2hlY2s6CiAgICAgY2FzZSBDaGVj
a1R5cGVJbmZvRmxhZ3M6CisgICAgY2FzZSBDaGVja05vZGVGbGFnczoKICAgICBjYXNlIE11bHRp
R2V0QnlPZmZzZXQ6CiAgICAgY2FzZSBWYWx1ZVJlcDoKICAgICBjYXNlIERvdWJsZVJlcDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDVhZDZhZmQ0
N2I0ODI1MDM5MDI0Mzc1OTgxOTg2MzZkZmFhMTE4MDAuLjFhYzc5ZmEzOTgxZjM3MmYxODAxYTYy
MmE1YjI2MjAwN2YyYzhiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcApAQCAtMTI0NCw3ICsxMjQ0LDggQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1Ymxp
YyBQaGFzZSB7CiAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hl
Y2tDZWxsOgogICAgICAgICBjYXNlIENyZWF0ZVRoaXM6Ci0gICAgICAgIGNhc2UgR2V0QnV0dGVy
Zmx5OiB7CisgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgorICAgICAgICBjYXNlIEdldERPTVdy
YXBwZWQ6IHsKICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE2MjEsNiArMTYyMiw3IEBAIGNsYXNz
IEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIE5vdGlmeVdyaXRlOgog
ICAgICAgICBjYXNlIENhbGw6CiAgICAgICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgorICAg
ICAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgogICAgICAgICBjYXNlIFRhaWxDYWxsSW5saW5lZENh
bGxlcjoKICAgICAgICAgY2FzZSBDb25zdHJ1Y3Q6CiAgICAgICAgIGNhc2UgQ2FsbFZhcmFyZ3M6
CkBAIC0xNjcxLDYgKzE2NzMsOCBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsK
ICAgICAgICAgY2FzZSBQdXRCeVZhbFdpdGhUaGlzOgogICAgICAgICBjYXNlIEdldEJ5VmFsV2l0
aFRoaXM6CiAgICAgICAgIGNhc2UgQ29tcGFyZUVxUHRyOgorICAgICAgICBjYXNlIExvYWRPcGFx
dWVQb2ludGVyOgorICAgICAgICBjYXNlIFRvRE9NV3JhcHBlcjoKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR2VuZXJhdGlvbkluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHR2VuZXJhdGlvbkluZm8uaAppbmRleCBlOWRmODQxMDY4NTI1OGM2NDkzN2Fm
NGU2ZTM2ZTVlMDA3NzZkZTkwLi4zODJkZWExYzYyMmZiM2M1NDQwZGI4ZDhkMTBlZTdlOGJhNzgw
MGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dlbmVyYXRpb25J
bmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5o
CkBAIC0xNDYsNiArMTQ2LDExIEBAIGNsYXNzIEdlbmVyYXRpb25JbmZvIHsKICAgICB7CiAgICAg
ICAgIGluaXRHUFIobm9kZSwgdXNlQ291bnQsIGdwciwgRGF0YUZvcm1hdFN0b3JhZ2UpOwogICAg
IH0KKyAgICB2b2lkIGluaXRPcGFxdWVQb2ludGVyKE5vZGUqIG5vZGUsIHVpbnQzMl90IHVzZUNv
dW50LCBHUFJSZWcgZ3ByKQorICAgIHsKKyAgICAgICAgaW5pdEdQUihub2RlLCB1c2VDb3VudCwg
Z3ByLCBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcik7CisgICAgfQorCiAKICAgICAvLyBHZXQgdGhl
IG5vZGUgdGhhdCBwcm9kdWNlZCB0aGlzIHZhbHVlLgogICAgIE5vZGUqIG5vZGUoKSB7IHJldHVy
biBtX25vZGU7IH0KQEAgLTM3MSw2ICszNzYsMTAgQEAgY2xhc3MgR2VuZXJhdGlvbkluZm8gewog
ICAgIHsKICAgICAgICAgZmlsbEdQUihzdHJlYW0sIGdwciwgRGF0YUZvcm1hdFN0b3JhZ2UpOwog
ICAgIH0KKyAgICB2b2lkIGZpbGxPcGFxdWVQb2ludGVyKFZhcmlhYmxlRXZlbnRTdHJlYW0mIHN0
cmVhbSwgR1BSUmVnIGdwcikKKyAgICB7CisgICAgICAgIGZpbGxHUFIoc3RyZWFtLCBncHIsIERh
dGFGb3JtYXRPcGFxdWVQb2ludGVyKTsKKyAgICB9CiAKICAgICBib29sIGFsaXZlKCkKICAgICB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IDRiYWU5YWU5NjM2MDljM2YzNzMw
NmIxNGY1NzJmMmI0ZmFjNTc0NGIuLmE2NThjNGNkOWNiOTZhYzhjOWVmYjIwZTY1YzgwZjNhYzcx
MGRhNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC01OCw2ICs1OCwxMCBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAorbmFtZXNwYWNlIERPTUpJVCB7CitjbGFzcyBHcmFwaDsK
K30KKwogbmFtZXNwYWNlIFByb2ZpbGVyIHsKIGNsYXNzIEV4ZWN1dGlvbkNvdW50ZXI7CiB9CkBA
IC0xMjE1LDYgKzEyMTksMTEgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgcmV0dXJu
IHJlc3VsdCgpID09IE5vZGVSZXN1bHRTdG9yYWdlOwogICAgIH0KKworICAgIGJvb2wgaGFzT3Bh
cXVlUG9pbnRlclJlc3VsdCgpCisgICAgeworICAgICAgICByZXR1cm4gcmVzdWx0KCkgPT0gTm9k
ZVJlc3VsdE9wYXF1ZVBvaW50ZXI7CisgICAgfQogICAgIAogICAgIFVzZUtpbmQgZGVmYXVsdFVz
ZUtpbmQoKQogICAgIHsKQEAgLTIyNTksNiArMjI2OCwyMSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAg
ewogICAgICAgICByZXR1cm4gb3AxLT5zaG91bGRTcGVjdWxhdGVBcnJheSgpICYmIG9wMi0+c2hv
dWxkU3BlY3VsYXRlQXJyYXkoKTsKICAgICB9CisKKyAgICBib29sIHNob3VsZFNwZWN1bGF0ZURP
TU5vZGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzRE9NTm9kZVNwZWN1bGF0aW9uKHByZWRp
Y3Rpb24oKSk7CisgICAgfQorCisgICAgYm9vbCBzaG91bGRTcGVjdWxhdGVET01FbGVtZW50KCkK
KyAgICB7CisgICAgICAgIHJldHVybiBpc0RPTUVsZW1lbnRTcGVjdWxhdGlvbihwcmVkaWN0aW9u
KCkpOworICAgIH0KKworICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVy
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc0RPTURvY3VtZW50V3JhcHBlclNwZWN1bGF0aW9u
KHByZWRpY3Rpb24oKSk7CisgICAgfQogICAgIAogICAgIGJvb2wgY2FuU3BlY3VsYXRlSW50MzIo
UmFyZUNhc2VQcm9maWxpbmdTb3VyY2Ugc291cmNlKQogICAgIHsKQEAgLTIzMDgsNyArMjMzMiw0
MiBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgICAgIEFTU0VSVChoYXNCYXNpY0Jsb2NrTG9jYXRpb24o
KSk7CiAgICAgICAgIHJldHVybiBtX29wSW5mby5hczxCYXNpY0Jsb2NrTG9jYXRpb24qPigpOwog
ICAgIH0KLSAgICAKKworICAgIGJvb2wgaGFzT3BhcXVlUG9pbnRlck9mZnNldCgpCisgICAgewor
ICAgICAgICByZXR1cm4gb3AoKSA9PSBMb2FkT3BhcXVlUG9pbnRlciB8fCBvcCgpID09IEdldERP
TVdyYXBwZWQgfHwgb3AoKSA9PSBDaGVja05vZGVGbGFncyB8fCBvcCgpID09IFRvRE9NV3JhcHBl
cjsKKyAgICB9CisKKyAgICBwdHJkaWZmX3Qgb3BhcXVlUG9pbnRlck9mZnNldCgpCisgICAgewor
ICAgICAgICBBU1NFUlQoaGFzTG9hZE9wYXF1ZVBvaW50ZXJPZmZzZXQoKSk7CisgICAgICAgIHJl
dHVybiBtX29wSW5mby5hczxwdHJkaWZmX3Q+KCk7CisgICAgfQorCisgICAgYm9vbCBoYXNOb2Rl
RmxhZ3NPcGVyYW5kKCkKKyAgICB7CisgICAgICAgIHJldHVybiBvcCgpID09IENoZWNrTm9kZUZs
YWdzOworICAgIH0KKworICAgIHVpbnQzMl90IG5vZGVGbGFnc09wZXJhbmQoKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKGhhc05vZGVGbGFnc09wZXJhbmQoKSk7CisgICAgICAgIHJldHVybiBtX29w
SW5mbzIuYXM8dWludDMyX3Q+KCk7CisgICAgfQorCisgICAgYm9vbCBoYXNTbG93VG9KU09wZXJh
dGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBUb0RPTVdyYXBwZXI7CisgICAg
fQorCisgICAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoKlRvSlNPcGVyYXRpb24pKEpTQzo6RXhl
Y1N0YXRlKiwgdm9pZCosIHZvaWQqKTsKKworICAgIFRvSlNPcGVyYXRpb24gc2xvd1RvSlNPcGVy
YXRpb24oKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc1Nsb3dUb0pTT3BlcmF0aW9uKCkpOwor
ICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFRvSlNPcGVyYXRpb24+KG1fb3BJbmZvMi5hczx1
aW50cHRyX3Q+KCkpOworICAgIH0KKwogICAgIE5vZGUqIHJlcGxhY2VtZW50KCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBtX21pc2MucmVwbGFjZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKaW5kZXggMzQwODQyMTkwMjBmMTEyMWM0ZDhlZGJi
NDZiM2RlNjhhYzI5MjA2Zi4uYTQwM2ZkNDIzYjIwNzU3MmM5Y2FjMmZiMTE5Y2ZiZjRjNmM5ZGQx
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcApAQCAtNjIs
NiArNjIsOSBAQCB2b2lkIGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJlYW0mIGFjdHVhbE91dCwgTm9k
ZUZsYWdzIGZsYWdzKQogICAgICAgICBjYXNlIE5vZGVSZXN1bHRTdG9yYWdlOgogICAgICAgICAg
ICAgb3V0LnByaW50KGNvbW1hLCAiU3RvcmFnZSIpOwogICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgTm9kZVJlc3VsdE9wYXF1ZVBvaW50ZXI6CisgICAgICAgICAgICBvdXQucHJpbnQo
Y29tbWEsICJPcGFxdWVQb2ludGVyIik7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZUZsYWdzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCmluZGV4
IDRhYmFkZGYyNDkzYzYzZjU0MDY1Y2QzMDFhMzRiYmM2NzBkYmZkMWEuLjU0NzE4YWM1Mjc0M2Jj
YmM3ZDc4MTNmZDFmYzM3ODJmOGI4NTMxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlRmxhZ3MuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IERGRyB7CiAKIC8vIEVudHJpZXMgaW4gdGhlIE5vZGVUeXBlIGVudW0gKGJlbG93KSBhcmUgY29t
cG9zZWQgb2YgYW4gaWQsIGEgcmVzdWx0IHR5cGUgKHBvc3NpYmx5IG5vbmUpCiAvLyBhbmQgc29t
ZSBhZGRpdGlvbmFsIGluZm9ybWF0aXZlIGZsYWdzIChtdXN0IGdlbmVyYXRlLCBpcyBjb25zdGFu
dCwgZXRjKS4KLSNkZWZpbmUgTm9kZVJlc3VsdE1hc2sgICAgICAgICAgICAgICAgICAgMHgwMDA3
CisjZGVmaW5lIE5vZGVSZXN1bHRNYXNrICAgICAgICAgICAgICAgICAgIDB4MDAwZgogI2RlZmlu
ZSBOb2RlUmVzdWx0SlMgICAgICAgICAgICAgICAgICAgICAweDAwMDEKICNkZWZpbmUgTm9kZVJl
c3VsdE51bWJlciAgICAgICAgICAgICAgICAgMHgwMDAyCiAjZGVmaW5lIE5vZGVSZXN1bHREb3Vi
bGUgICAgICAgICAgICAgICAgIDB4MDAwMwpAQCAtNDIsMzUgKzQyLDM2IEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKICNkZWZpbmUgTm9kZVJlc3VsdEludDUyICAgICAgICAgICAg
ICAgICAgMHgwMDA1CiAjZGVmaW5lIE5vZGVSZXN1bHRCb29sZWFuICAgICAgICAgICAgICAgIDB4
MDAwNgogI2RlZmluZSBOb2RlUmVzdWx0U3RvcmFnZSAgICAgICAgICAgICAgICAweDAwMDcKKyNk
ZWZpbmUgTm9kZVJlc3VsdE9wYXF1ZVBvaW50ZXIgICAgICAgICAgMHgwMDA4CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAotI2RlZmluZSBOb2RlTXVzdEdlbmVyYXRlICAgICAgICAg
ICAgICAgICAweDAwMDggLy8gc2V0IG9uIG5vZGVzIHRoYXQgaGF2ZSBzaWRlIGVmZmVjdHMsIGFu
ZCBtYXkgbm90IHRyaXZpYWxseSBiZSByZW1vdmVkIGJ5IERDRS4KLSNkZWZpbmUgTm9kZUhhc1Zh
ckFyZ3MgICAgICAgICAgICAgICAgICAgMHgwMDEwCisjZGVmaW5lIE5vZGVNdXN0R2VuZXJhdGUg
ICAgICAgICAgICAgICAgIDB4MDAxMCAvLyBzZXQgb24gbm9kZXMgdGhhdCBoYXZlIHNpZGUgZWZm
ZWN0cywgYW5kIG1heSBub3QgdHJpdmlhbGx5IGJlIHJlbW92ZWQgYnkgRENFLgorI2RlZmluZSBO
b2RlSGFzVmFyQXJncyAgICAgICAgICAgICAgICAgICAweDAwMjAKICAgICAKLSNkZWZpbmUgTm9k
ZUJlaGF2aW9yTWFzayAgICAgICAgICAgICAgICAgMHgwN2UwCi0jZGVmaW5lIE5vZGVNYXlIYXZl
RG91YmxlUmVzdWx0ICAgICAgICAgIDB4MDAyMAotI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQ1
MiAgICAgICAgICAgICAweDAwNDAKLSNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2Vs
aW5lICAgMHgwMDgwCi0jZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgICAgICAgIDB4
MDEwMAotI2RlZmluZSBOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUgICAgICAgICAweDAyMDAKLSNk
ZWZpbmUgTm9kZU1heU5lZ1plcm9JbkRGRyAgICAgICAgICAgICAgMHgwNDAwCi0jZGVmaW5lIE5v
ZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0ICAgICAgIDB4MDgwMAorI2RlZmluZSBOb2RlQmVoYXZp
b3JNYXNrICAgICAgICAgICAgICAgICAweDBmYzAKKyNkZWZpbmUgTm9kZU1heUhhdmVEb3VibGVS
ZXN1bHQgICAgICAgICAgMHgwMDQwCisjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDUyICAgICAg
ICAgICAgIDB4MDA4MAorI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUgICAw
eDAxMDAKKyNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkRGRyAgICAgICAgMHgwMjAwCisj
ZGVmaW5lIE5vZGVNYXlOZWdaZXJvSW5CYXNlbGluZSAgICAgICAgIDB4MDQwMAorI2RlZmluZSBO
b2RlTWF5TmVnWmVyb0luREZHICAgICAgICAgICAgICAweDA4MDAKKyNkZWZpbmUgTm9kZU1heUhh
dmVOb25OdW1iZXJSZXN1bHQgICAgICAgMHgxMDAwCiAjZGVmaW5lIE5vZGVNYXlIYXZlTm9uSW50
UmVzdWx0ICAgICAgICAgIChOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCB8IE5vZGVNYXlIYXZlTm9u
TnVtYmVyUmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSNkZWZpbmUg
Tm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNrICAgICAgICAweDFmMDAwCisjZGVmaW5lIE5vZGVCeXRl
Y29kZUJhY2tQcm9wTWFzayAgICAgICAgMHgzZTAwMAogI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VC
b3R0b20gICAgICAgICAgIDB4MDAwMDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVy
ICAgICAgICAweDAxMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUg
dXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyBmcmFjdGlvbmFsLCBvciBiaWdnZXItdGhh
bi1pbnQzMiwgcmVzdWx0cy4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvICAgICAg
ICAweDAyMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBp
biBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyAtMC4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0Fz
T3RoZXIgICAgICAgICAweDA0MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBt
YXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBkaXN0aW5ndWlzaGVzIGJldHdlZW4gTmFOIGFu
ZCBvdGhlciB0aGluZ3MgKGxpa2UgdW5kZWZpbmVkKS4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNl
c0FzTnVtYmVyICAgICAgICAweDAyMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlv
biBtYXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyBmcmFjdGlvbmFsLCBvciBi
aWdnZXItdGhhbi1pbnQzMiwgcmVzdWx0cy4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlTmVlZHNOZWda
ZXJvICAgICAgICAweDA0MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkg
YmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyAtMC4KKyNkZWZpbmUgTm9kZUJ5dGVj
b2RlVXNlc0FzT3RoZXIgICAgICAgICAweDA4MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21w
dXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBkaXN0aW5ndWlzaGVzIGJldHdl
ZW4gTmFOIGFuZCBvdGhlciB0aGluZ3MgKGxpa2UgdW5kZWZpbmVkKS4KICNkZWZpbmUgTm9kZUJ5
dGVjb2RlVXNlc0FzVmFsdWUgICAgICAgICAoTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyIHwgTm9k
ZUJ5dGVjb2RlTmVlZHNOZWdaZXJvIHwgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIpCi0jZGVmaW5l
IE5vZGVCeXRlY29kZVVzZXNBc0ludCAgICAgICAgICAgMHgwODAwMCAvLyBUaGUgcmVzdWx0IG9m
IHRoaXMgY29tcHV0YXRpb24gaXMga25vd24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBw
cmVmZXJzLCBidXQgZG9lcyBub3QgcmVxdWlyZSwgaW50ZWdlciB2YWx1ZXMuCi0jZGVmaW5lIE5v
ZGVCeXRlY29kZVVzZXNBc0FycmF5SW5kZXggICAgMHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRo
aXMgY29tcHV0YXRpb24gaXMga25vd24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBzdHJv
bmdseSBwcmVmZXJzIGludGVnZXIgdmFsdWVzLCB0byB0aGUgcG9pbnQgdGhhdCB3ZSBzaG91bGQg
YXZvaWQgdXNpbmcgZG91YmxlcyBpZiBhdCBhbGwgcG9zc2libGUuCisjZGVmaW5lIE5vZGVCeXRl
Y29kZVVzZXNBc0ludCAgICAgICAgICAgMHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29t
cHV0YXRpb24gaXMga25vd24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBwcmVmZXJzLCBi
dXQgZG9lcyBub3QgcmVxdWlyZSwgaW50ZWdlciB2YWx1ZXMuCisjZGVmaW5lIE5vZGVCeXRlY29k
ZVVzZXNBc0FycmF5SW5kZXggICAgMHgyMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0
YXRpb24gaXMga25vd24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBzdHJvbmdseSBwcmVm
ZXJzIGludGVnZXIgdmFsdWVzLCB0byB0aGUgcG9pbnQgdGhhdCB3ZSBzaG91bGQgYXZvaWQgdXNp
bmcgZG91YmxlcyBpZiBhdCBhbGwgcG9zc2libGUuCiAKICNkZWZpbmUgTm9kZUFyaXRoRmxhZ3NN
YXNrICAgICAgICAgICAgICAgKE5vZGVCZWhhdmlvck1hc2sgfCBOb2RlQnl0ZWNvZGVCYWNrUHJv
cE1hc2spCiAKLSNkZWZpbmUgTm9kZUlzRmx1c2hlZCAgICAgICAgICAgICAgICAgICAweDIwMDAw
IC8vIENvbXB1dGVkIGJ5IENQU1JldGhyZWFkaW5nUGhhc2UsIHdpbGwgdGVsbCB5b3Ugd2hpY2gg
bG9jYWwgbm9kZXMgYXJlIGJhY2t3YXJkcy1yZWFjaGFibGUgZnJvbSBhIEZsdXNoLgorI2RlZmlu
ZSBOb2RlSXNGbHVzaGVkICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwIC8vIENvbXB1dGVkIGJ5
IENQU1JldGhyZWFkaW5nUGhhc2UsIHdpbGwgdGVsbCB5b3Ugd2hpY2ggbG9jYWwgbm9kZXMgYXJl
IGJhY2t3YXJkcy1yZWFjaGFibGUgZnJvbSBhIEZsdXNoLgogCi0jZGVmaW5lIE5vZGVNaXNjRmxh
ZzEgICAgICAgICAgICAgICAgICAgMHg0MDAwMAotI2RlZmluZSBOb2RlTWlzY0ZsYWcyICAgICAg
ICAgICAgICAgICAgIDB4ODAwMDAKKyNkZWZpbmUgTm9kZU1pc2NGbGFnMSAgICAgICAgICAgICAg
ICAgICAweDA4MDAwMAorI2RlZmluZSBOb2RlTWlzY0ZsYWcyICAgICAgICAgICAgICAgICAgIDB4
MTAwMDAwCiAKIHR5cGVkZWYgdWludDMyX3QgTm9kZUZsYWdzOwogCkBAIC0xNjQsNiArMTY1LDcg
QEAgc3RhdGljIGlubGluZSBOb2RlRmxhZ3MgY2Fub25pY2FsUmVzdWx0UmVwcmVzZW50YXRpb24o
Tm9kZUZsYWdzIGZsYWdzKQogICAgIGNhc2UgTm9kZVJlc3VsdERvdWJsZToKICAgICBjYXNlIE5v
ZGVSZXN1bHRJbnQ1MjoKICAgICBjYXNlIE5vZGVSZXN1bHRTdG9yYWdlOgorICAgIGNhc2UgTm9k
ZVJlc3VsdE9wYXF1ZVBvaW50ZXI6CiAgICAgICAgIHJldHVybiBmbGFnczsKICAgICBkZWZhdWx0
OgogICAgICAgICByZXR1cm4gTm9kZVJlc3VsdEpTOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlVHlwZS5oCmluZGV4IDhiNGQ5ZjBjMzA5YTdjMTg5ZDY1MjI3NjliMDdkNTI5NGQ2NmM0
ZmQuLjZmZTBiMzBkMDk2ZTkxMTQ3ZTJlNTQ2MDhhZTlhN2Q0NzhjNzkxYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTM5NCw2ICszOTQsMTIgQEAgbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKEdldE1hcEJ1Y2tldCwgTm9kZVJl
c3VsdEpTKSBcCiAgICAgbWFjcm8oTG9hZEZyb21KU01hcEJ1Y2tldCwgTm9kZVJlc3VsdEpTKSBc
CiAgICAgbWFjcm8oSXNOb25FbXB0eU1hcEJ1Y2tldCwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKKyAg
ICBcCisgICAgLyogTm9kZXMgZm9yIERPTSBKSVQgKi9cCisgICAgbWFjcm8oTG9hZE9wYXF1ZVBv
aW50ZXIsIE5vZGVSZXN1bHRPcGFxdWVQb2ludGVyKSBcCisgICAgbWFjcm8oQ2hlY2tOb2RlRmxh
Z3MsIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhUb0RPTVdyYXBwZXIsIE5vZGVSZXN1
bHRKUykgXAorICAgIG1hY3JvKEdldERPTVdyYXBwZWQsIE5vZGVSZXN1bHRPcGFxdWVQb2ludGVy
KSBcCiAKIC8vIFRoaXMgZW51bSBnZW5lcmF0ZXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcg
aWQgZm9yIGFsbCBOb2RlIHR5cGVzLAogLy8gYW5kIGlzIHVzZWQgYnkgdGhlIHN1YnNlcXVlbnQg
ZW51bSB0byBmaWxsIG91dCB0aGUgaWQgKGFzIGFjY2Vzc2VkIHZpYSB0aGUgTm9kZUlkTWFzayku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGJhZmRmOTA2ZWJmNmY3MzA3Y2FmNDBmNmI4NWMx
MWIwMTE5ZTFmMjIuLjk4MzkzZGZkNmE5MzFmZmRlN2Y3MDg3ZWMzYTRlMGI5MzQ5OTQ4MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0
aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC04MTksNiArODE5LDE2IEBAIGNsYXNzIFByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBMb2FkT3BhcXVlUG9pbnRlcjoKKyAgICAgICAgY2Fz
ZSBHZXRET01XcmFwcGVkOgorICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjT3RoZXIpOwor
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLy8gRklYTUU6IE1vZGVsIHByZWNpc2VseS4K
KyAgICAgICAgY2FzZSBUb0RPTVdyYXBwZXI6CisgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNw
ZWNET01Ob2RlIHwgU3BlY090aGVyKTsKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNh
c2UgQ2FsbE9iamVjdENvbnN0cnVjdG9yOiB7CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNw
ZWNPYmplY3QpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC05NjYsNiArOTc2LDcgQEAgY2xhc3Mg
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNl
IEdldExvY2FsVW5saW5rZWQ6CiAgICAgICAgIGNhc2UgQ2hlY2tBcnJheToKICAgICAgICAgY2Fz
ZSBDaGVja1R5cGVJbmZvRmxhZ3M6CisgICAgICAgIGNhc2UgQ2hlY2tOb2RlRmxhZ3M6CiAgICAg
ICAgIGNhc2UgQXJyYXlpZnk6CiAgICAgICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKICAg
ICAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggYmRkZDQ2NjAxN2U5Zjg3YjZjMDM1NDQwY2Q4YWYx
NDdiODY1ZGY0Zi4uNjAxOGY1MmFkZjhhZjcyMzdmZDczZWFhY2ZiZDYxNTA5YTQwMGU1MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTU5LDYg
KzU5LDkgQEAgY2xhc3MgU2FmZVRvRXhlY3V0ZUVkZ2UgewogICAgICAgICBjYXNlIEZpbmFsT2Jq
ZWN0VXNlOgogICAgICAgICBjYXNlIFJlZ0V4cE9iamVjdFVzZToKICAgICAgICAgY2FzZSBQcm94
eU9iamVjdFVzZToKKyAgICAgICAgY2FzZSBET01Ob2RlVXNlOgorICAgICAgICBjYXNlIERPTUVs
ZW1lbnRVc2U6CisgICAgICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgogICAgICAgICBj
YXNlIERlcml2ZWRBcnJheVVzZToKICAgICAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAg
IGNhc2UgU2V0T2JqZWN0VXNlOgpAQCAtMjE2LDYgKzIxOSw5IEBAIGJvb2wgc2FmZVRvRXhlY3V0
ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAg
ICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBjYXNl
IEdldEJ1dHRlcmZseToKKyAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgorICAgIGNhc2UgR2V0
RE9NV3JhcHBlZDoKKyAgICBjYXNlIFRvRE9NV3JhcHBlcjoKICAgICBjYXNlIENoZWNrQXJyYXk6
CiAgICAgY2FzZSBBcnJheWlmeToKICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CkBAIC0y
NTksNiArMjY1LDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0
ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgUHJvZmlsZVR5cGU6CiAgICAg
Y2FzZSBQcm9maWxlQ29udHJvbEZsb3c6CiAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6Cisg
ICAgY2FzZSBDaGVja05vZGVGbGFnczoKICAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgog
ICAgIGNhc2UgSW5zdGFuY2VPZjoKICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDEwZWZi
NzIwNDNmMWFjODc3MDFhYmQ4NmY5ZWNjYTFhZGY4ZDM3YjEuLjFiZDE1ZWEzYWFmY2ZlODY3MDc5
MWU2MWU3NmY5MzhmNTA3NjNiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC00MjQsNyArNDI0LDcgQEAgU2lsZW50UmVnaXN0ZXJT
YXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVhbFJlZ2lz
dGVyIHNwaWwKICAgICAgICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKICAgICAgICAg
aWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnQzMikKICAgICAgICAgICAgIHNwaWxs
QWN0aW9uID0gU3RvcmUzMlBheWxvYWQ7Ci0gICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRDZWxsIHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdl
KQorICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCBy
ZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFnZSB8fCByZWdpc3RlckZvcm1hdCA9PSBE
YXRhRm9ybWF0T3BhcXVlUG9pbnRlcikKICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQ
dHI7CiAgICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnQ1MiB8
fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RyaWN0SW50NTIpCiAgICAgICAgICAgICBz
cGlsbEFjdGlvbiA9IFN0b3JlNjQ7CkBAIC00NzgsNyArNDc4LDcgQEAgU2lsZW50UmVnaXN0ZXJT
YXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVhbFJlZ2lz
dGVyIHNwaWwKICAgICAgICAgICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwogI2VuZGlm
CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRT
dG9yYWdlKSB7CisgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3Rv
cmFnZSB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcikgewogICAg
ICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBzb3VyY2UpOwogICAgICAgICBmaWxsQWN0aW9uID0g
TG9hZFB0cjsKICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnQ1
MikgewpAQCAtOTYwLDYgKzk2MCwzNiBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTdG9y
YWdlKEVkZ2UgZWRnZSkKICAgICB9CiB9CiAKK0dQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbE9w
YXF1ZVBvaW50ZXIoRWRnZSBlZGdlKQoreworICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVn
aXN0ZXIgPSBlZGdlLT52aXJ0dWFsUmVnaXN0ZXIoKTsKKyAgICBHZW5lcmF0aW9uSW5mbyYgaW5m
byA9IGdlbmVyYXRpb25JbmZvRnJvbVZpcnR1YWxSZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpOwor
ICAgIAorICAgIHN3aXRjaCAoaW5mby5yZWdpc3RlckZvcm1hdCgpKSB7CisgICAgY2FzZSBEYXRh
Rm9ybWF0Tm9uZTogeworICAgICAgICBpZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3Jt
YXRPcGFxdWVQb2ludGVyKSB7CisgICAgICAgICAgICBHUFJSZWcgZ3ByID0gYWxsb2NhdGUoKTsK
KyAgICAgICAgICAgIG1fZ3Bycy5yZXRhaW4oZ3ByLCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxsT3Jk
ZXJTcGlsbGVkKTsKKyAgICAgICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OmFkZHJl
c3NGb3IodmlydHVhbFJlZ2lzdGVyKSwgZ3ByKTsKKyAgICAgICAgICAgIGluZm8uZmlsbE9wYXF1
ZVBvaW50ZXIoKm1fc3RyZWFtLCBncHIpOworICAgICAgICAgICAgcmV0dXJuIGdwcjsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgLy8gTXVzdCBiZSBhIGNlbGw7IGZpbGwgaXQgYXMgYSBj
ZWxsIGFuZCB0aGVuIHJldHVybiB0aGUgcG9pbnRlci4KKyAgICAgICAgcmV0dXJuIGZpbGxTcGVj
dWxhdGVDZWxsKGVkZ2UpOworICAgIH0KKyAgICAgICAgCisgICAgY2FzZSBEYXRhRm9ybWF0T3Bh
cXVlUG9pbnRlcjogeworICAgICAgICBHUFJSZWcgZ3ByID0gaW5mby5ncHIoKTsKKyAgICAgICAg
bV9ncHJzLmxvY2soZ3ByKTsKKyAgICAgICAgcmV0dXJuIGdwcjsKKyAgICB9CisgICAgICAgIAor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmaWxsU3BlY3VsYXRlQ2VsbChlZGdlKTsKKyAg
ICB9Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnVzZUNoaWxkcmVuKE5vZGUqIG5vZGUpCiB7
CiAgICAgaWYgKG5vZGUtPmZsYWdzKCkgJiBOb2RlSGFzVmFyQXJncykgewpAQCAtMjEwNSw2ICsy
MTM1LDcgQEAgR2VuZXJhdGVkT3BlcmFuZFR5cGUgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrR2VuZXJh
dGVkVHlwZUZvclRvSW50MzIoTm9kZSogbm9kZSkKIAogICAgIHN3aXRjaCAoaW5mby5yZWdpc3Rl
ckZvcm1hdCgpKSB7CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKKyAgICBjYXNlIERhdGFG
b3JtYXRPcGFxdWVQb2ludGVyOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogCiAgICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjoKQEAgLTMwNTQsNiArMzA4NSwxNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKE5vZGUqIG5vZGUp
CiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVD
aGVja05vZGVGbGFncyhOb2RlKiBub2RlKQoreworICAgIE9wYXF1ZVBvaW50ZXJPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworCisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdw
cigpOworCisgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVncygpLCAwLCBt
X2ppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKGJhc2VHUFIsIG5vZGUtPm9wYXF1ZVBvaW50ZXJPZmZzZXQoKSksIE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIobm9kZS0+bm9kZUZsYWdzT3BlcmFuZCgpKSkpOworCisgICAgbm9S
ZXN1bHQobm9kZSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9m
KE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5
cGVkVXNlKSB7CkBAIC03MDU3LDYgKzcwOTksNzQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldEJ1dHRlcmZseShOb2RlKiBub2RlKQogICAgIHN0b3JhZ2VSZXN1bHQocmVzdWx0R1BS
LCBub2RlKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRPcGFxdWVQb2lu
dGVyKE5vZGUqIG5vZGUpCit7CisgICAgT3BhcXVlUG9pbnRlck9wZXJhbmQgYmFzZSh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CisgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgYmFz
ZSk7CisKKyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVnIHJlc3Vs
dEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFk
ZHJlc3MoYmFzZUdQUiwgbm9kZS0+b3BhcXVlUG9pbnRlck9mZnNldCgpKSwgcmVzdWx0R1BSKTsK
KworICAgIG9wYXF1ZVBvaW50ZXJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKK30KKwordm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldERPTVdyYXBwZWQoTm9kZSogbm9kZSkKK3sKKyAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBHUFJU
ZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKKworICAgIEdQUlJlZyBiYXNlR1BS
ID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworCisg
ICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNlR1BSLCBub2RlLT5vcGFx
dWVQb2ludGVyT2Zmc2V0KCkpLCByZXN1bHRHUFIpOworCisgICAgb3BhcXVlUG9pbnRlclJlc3Vs
dChyZXN1bHRHUFIsIG5vZGUpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9E
T01XcmFwcGVyKE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0
aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgT3BhcXVlUG9pbnRlck9wZXJhbmQgd3JhcHBlZCh0
aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgSlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRo
aXMpOworCisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyB3cmFw
cGVkR1BSID0gd3JhcHBlZC5ncHIoKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVz
dWx0LnJlZ3MoKTsKKworICAgIHNwZWN1bGF0ZURPTU5vZGUobm9kZS0+Y2hpbGQyKCksIGJhc2VH
UFIpOworCisgICAgSklUQ29tcGlsZXI6Okp1bXAgbm90TnVsbCA9IG1faml0LmJyYW5jaFRlc3RQ
dHIoSklUQ29tcGlsZXI6Ok5vblplcm8sIHdyYXBwZWRHUFIpOworICAgIG1faml0Lm1vdmVUcnVz
dGVkVmFsdWUoanNOdWxsKCksIHJlc3VsdFJlZ3MpOworICAgIEpJVENvbXBpbGVyOjpKdW1wIGRv
bmUgPSBtX2ppdC5qdW1wKCk7CisKKyAgICBub3ROdWxsLmxpbmsoJm1faml0KTsKKworICAgIC8v
IFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgYnkgREZHLgorICAgIC8vIG1faml0LT5tX2ppdC5lbWl0
TG9hZFN0cnVjdHVyZSh3cmFwcGVyUmVnLCBnbG9iYWxPYmplY3RSZWcsIHNjcmF0Y2hSZWcpOwor
ICAgIC8vIG1faml0LT5tX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGdsb2Jh
bE9iamVjdFJlZywgSlNDOjpTdHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNldCgpKSwgZ2xvYmFs
T2JqZWN0UmVnKTsKKworICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CisKKyAg
ICAvLyBzbG93Q2FzZXMuYXBwZW5kKG1faml0LT5tX2ppdC5icmFuY2hUZXN0OChNYWNyb0Fzc2Vt
Ymxlcjo6WmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoZ2xvYmFsT2JqZWN0UmVnLCBKU0RP
TUdsb2JhbE9iamVjdDo6b2Zmc2V0T2ZXb3JsZElzTm9ybWFsKCkpKSk7CisKKyAgICAvLyBXZWFr
UG9pbnRlciBkZXJlZmVyZW5jZS4KKyAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRy
ZXNzKHdyYXBwZWRHUFIsIG5vZGUtPm9wYXF1ZVBvaW50ZXJPZmZzZXQoKSksIHJlc3VsdFJlZ3Mu
cGF5bG9hZEdQUigpKTsKKyAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKHJl
c3VsdFJlZ3MucGF5bG9hZEdQUigpKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgIHNs
b3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6WmVybywg
cmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpKTsKKworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
bV9qaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcp
LCByZXN1bHRSZWdzLnRhZ0dQUigpKTsKKyNlbmRpZgorCisgICAgYWRkU2xvd1BhdGhHZW5lcmF0
b3Ioc2xvd1BhdGhDYWxsKHNsb3dDYXNlcywgdGhpcywgbm9kZS0+c2xvd1RvSlNPcGVyYXRpb24o
KSwgcmVzdWx0UmVncywgd3JhcHBlZEdQUiwgYmFzZUdQUikpOworCisgICAgZG9uZS5saW5rKCZt
X2ppdCk7CisKKyAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworfQorCiBHUFJS
ZWcgU3BlY3VsYXRpdmVKSVQ6OnRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwoR1BSVGVtcG9y
YXJ5JiB0ZW1wb3JhcnksIEFycmF5TW9kZSBhcnJheU1vZGUpCiB7CiAgICAgaWYgKCFwdXRCeVZh
bFdpbGxOZWVkRXh0cmFSZWdpc3RlcihhcnJheU1vZGUpKQpAQCAtNzUwMCw2ICs3NjEwLDQ4IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVNldE9iamVjdChFZGdlIGVkZ2UpCiAgICAg
c3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOwogfQogCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVET01Ob2RlKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7Cisg
ICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2Us
IFNwZWNET01Ob2RlLCBtX2ppdC5icmFuY2hJZk5vdERPTU5vZGUoY2VsbCkpOworfQorCit2b2lk
IFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Ob2RlKEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAo
IW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNET01Ob2RlKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxh
dGVET01Ob2RlKGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklU
OjpzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZH
X1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNE
T01FbGVtZW50LCBtX2ppdC5icmFuY2hJZk5vdERPTUVsZW1lbnQoY2VsbCkpOworfQorCit2b2lk
IFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UgZWRnZSkKK3sKKyAgICBp
ZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNET01FbGVtZW50KSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBz
cGVjdWxhdGVET01FbGVtZW50KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOworfQorCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoRWRnZSBlZGdlLCBHUFJSZWcg
Y2VsbCkKK3sKKyAgICBzcGVjdWxhdGVDZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjRE9NRG9jdW1l
bnRXcmFwcGVyLCBET01Eb2N1bWVudFdyYXBwZXJUeXBlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAo
IW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNwZWNET01Eb2N1bWVudFdyYXBwZXIpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOwor
ICAgIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30K
Kwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlT2JqZWN0T3JPdGhlcihFZGdlIGVkZ2Up
CiB7CiAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjT2JqZWN0IHwgU3BlY090aGVy
KSkKQEAgLTc4MDUsNiArNzk1NywxNSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUo
Tm9kZSosIEVkZ2UgZWRnZSkKICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgIHNw
ZWN1bGF0ZU9iamVjdE9yT3RoZXIoZWRnZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9N
Tm9kZVVzZToKKyAgICAgICAgc3BlY3VsYXRlRE9NTm9kZShlZGdlKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBET01FbGVtZW50VXNlOgorICAgICAgICBzcGVjdWxhdGVET01FbGVtZW50KGVk
Z2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKKyAg
ICAgICAgc3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKGVkZ2UpOworICAgICAgICBicmVhazsK
ICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChl
ZGdlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmgKaW5kZXggY2E5NzhmNmI3Mzk1MTM5NTAxNTEwZDA1ODI4YTAyOTgyMmY4
NWExYi4uM2Q1ZjdjZmRjNjgzYmY4MThjODk2MjE5M2FhZGYzMTEzZmJhZGRlZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtOTIsMjUgKzky
LDI3IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICAvLyB0aGUgcmVnaXN0ZXIgYWxsb2Nh
dG9yLgogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgZW51bSBTcGlsbE9yZGVyIHsKLSAgICAgICAg
U3BpbGxPcmRlckNvbnN0YW50ID0gMSwgLy8gbm8gc3BpbGwsIGFuZCBjaGVhcCBmaWxsCi0gICAg
ICAgIFNwaWxsT3JkZXJTcGlsbGVkICA9IDIsIC8vIG5vIHNwaWxsCi0gICAgICAgIFNwaWxsT3Jk
ZXJKUyAgICAgICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJDZWxsICAg
ICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJTdG9yYWdlICA9IDQsIC8v
IG5lZWRzIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJJbnRlZ2VyICA9IDUsIC8vIG5lZWRzIHNw
aWxsIGFuZCBib3gKLSAgICAgICAgU3BpbGxPcmRlckJvb2xlYW4gID0gNSwgLy8gbmVlZHMgc3Bp
bGwgYW5kIGJveAotICAgICAgICBTcGlsbE9yZGVyRG91YmxlICAgPSA2LCAvLyBuZWVkcyBzcGls
bCBhbmQgY29udmVydAorICAgICAgICBTcGlsbE9yZGVyQ29uc3RhbnQgICAgICA9IDEsIC8vIG5v
IHNwaWxsLCBhbmQgY2hlYXAgZmlsbAorICAgICAgICBTcGlsbE9yZGVyU3BpbGxlZCAgICAgICA9
IDIsIC8vIG5vIHNwaWxsCisgICAgICAgIFNwaWxsT3JkZXJKUyAgICAgICAgICAgID0gNCwgLy8g
bmVlZHMgc3BpbGwKKyAgICAgICAgU3BpbGxPcmRlckNlbGwgICAgICAgICAgPSA0LCAvLyBuZWVk
cyBzcGlsbAorICAgICAgICBTcGlsbE9yZGVyU3RvcmFnZSAgICAgICA9IDQsIC8vIG5lZWRzIHNw
aWxsCisgICAgICAgIFNwaWxsT3JkZXJPcGFxdWVQb2ludGVyID0gNCwgLy8gbmVlZHMgc3BpbGwK
KyAgICAgICAgU3BpbGxPcmRlckludGVnZXIgICAgICAgPSA1LCAvLyBuZWVkcyBzcGlsbCBhbmQg
Ym94CisgICAgICAgIFNwaWxsT3JkZXJCb29sZWFuICAgICAgID0gNSwgLy8gbmVlZHMgc3BpbGwg
YW5kIGJveAorICAgICAgICBTcGlsbE9yZGVyRG91YmxlICAgICAgICA9IDYsIC8vIG5lZWRzIHNw
aWxsIGFuZCBjb252ZXJ0CiAgICAgfTsKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgZW51
bSBTcGlsbE9yZGVyIHsKLSAgICAgICAgU3BpbGxPcmRlckNvbnN0YW50ID0gMSwgLy8gbm8gc3Bp
bGwsIGFuZCBjaGVhcCBmaWxsCi0gICAgICAgIFNwaWxsT3JkZXJTcGlsbGVkICA9IDIsIC8vIG5v
IHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJKUyAgICAgICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0g
ICAgICAgIFNwaWxsT3JkZXJTdG9yYWdlICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0gICAgICAgIFNw
aWxsT3JkZXJEb3VibGUgICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJJ
bnRlZ2VyICA9IDUsIC8vIG5lZWRzIHNwaWxsIGFuZCBib3gKLSAgICAgICAgU3BpbGxPcmRlckNl
bGwgICAgID0gNSwgLy8gbmVlZHMgc3BpbGwgYW5kIGJveAotICAgICAgICBTcGlsbE9yZGVyQm9v
bGVhbiAgPSA1LCAvLyBuZWVkcyBzcGlsbCBhbmQgYm94CisgICAgICAgIFNwaWxsT3JkZXJDb25z
dGFudCAgICAgID0gMSwgLy8gbm8gc3BpbGwsIGFuZCBjaGVhcCBmaWxsCisgICAgICAgIFNwaWxs
T3JkZXJTcGlsbGVkICAgICAgID0gMiwgLy8gbm8gc3BpbGwKKyAgICAgICAgU3BpbGxPcmRlckpT
ICAgICAgICAgICAgPSA0LCAvLyBuZWVkcyBzcGlsbAorICAgICAgICBTcGlsbE9yZGVyU3RvcmFn
ZSAgICAgICA9IDQsIC8vIG5lZWRzIHNwaWxsCisgICAgICAgIFNwaWxsT3JkZXJPcGFxdWVQb2lu
dGVyID0gNCwgLy8gbmVlZHMgc3BpbGwKKyAgICAgICAgU3BpbGxPcmRlckRvdWJsZSAgICAgICAg
PSA0LCAvLyBuZWVkcyBzcGlsbAorICAgICAgICBTcGlsbE9yZGVySW50ZWdlciAgICAgICA9IDUs
IC8vIG5lZWRzIHNwaWxsIGFuZCBib3gKKyAgICAgICAgU3BpbGxPcmRlckNlbGwgICAgICAgICAg
PSA1LCAvLyBuZWVkcyBzcGlsbCBhbmQgYm94CisgICAgICAgIFNwaWxsT3JkZXJCb29sZWFuICAg
ICAgID0gNSwgLy8gbmVlZHMgc3BpbGwgYW5kIGJveAogICAgIH07CiAjZW5kaWYKIApAQCAtMTQx
LDYgKzE0Myw3IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICBib29sIGZpbGxKU1ZhbHVl
KEVkZ2UsIEdQUlJlZyYsIEdQUlJlZyYsIEZQUlJlZyYpOwogI2VuZGlmCiAgICAgR1BSUmVnIGZp
bGxTdG9yYWdlKEVkZ2UpOworICAgIEdQUlJlZyBmaWxsT3BhcXVlUG9pbnRlcihFZGdlKTsKIAog
ICAgIC8vIGxvY2sgYW5kIHVubG9jayBHUFIgJiBGUFIgcmVnaXN0ZXJzLgogICAgIHZvaWQgbG9j
ayhHUFJSZWcgcmVnKQpAQCAtNTE2LDYgKzUxOSwxNCBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIERhdGFGb3Jt
YXRPcGFxdWVQb2ludGVyOiB7CisgICAgICAgICAgICAvLyBUaGlzIGlzIHNwZWNpYWwsIHNpbmNl
IGl0J3Mgbm90IGEgSlMgdmFsdWUgLSBhcyBpbiBpdCdzIG5vdCB2aXNpYmxlIHRvIEpTCisgICAg
ICAgICAgICAvLyBjb2RlLgorICAgICAgICAgICAgbV9qaXQuc3RvcmVQdHIoaW5mby5ncHIoKSwg
SklUQ29tcGlsZXI6OmFkZHJlc3NGb3Ioc3BpbGxNZSkpOworICAgICAgICAgICAgaW5mby5zcGls
bCgqbV9zdHJlYW0sIHNwaWxsTWUsIERhdGFGb3JtYXRPcGFxdWVQb2ludGVyKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEludDMyOiB7
CiAgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKGluZm8uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXls
b2FkRm9yKHNwaWxsTWUpKTsKICAgICAgICAgICAgIGluZm8uc3BpbGwoKm1fc3RyZWFtLCBzcGls
bE1lLCBEYXRhRm9ybWF0SW50MzIpOwpAQCAtOTAxLDYgKzkxMiwxNiBAQCBjbGFzcyBTcGVjdWxh
dGl2ZUpJVCB7CiAgICAgICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gZ2VuZXJhdGlvbkluZm9G
cm9tVmlydHVhbFJlZ2lzdGVyKHZpcnR1YWxSZWdpc3Rlcik7CiAgICAgICAgIGluZm8uaW5pdFN0
b3JhZ2Uobm9kZSwgbm9kZS0+cmVmQ291bnQoKSwgcmVnKTsKICAgICB9CisgICAgdm9pZCBvcGFx
dWVQb2ludGVyUmVzdWx0KEdQUlJlZyByZWcsIE5vZGUqIG5vZGUsIFVzZUNoaWxkcmVuTW9kZSBt
b2RlID0gQ2FsbFVzZUNoaWxkcmVuKQorICAgIHsKKyAgICAgICAgaWYgKG1vZGUgPT0gQ2FsbFVz
ZUNoaWxkcmVuKQorICAgICAgICAgICAgdXNlQ2hpbGRyZW4obm9kZSk7CisKKyAgICAgICAgVmly
dHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IG5vZGUtPnZpcnR1YWxSZWdpc3RlcigpOwor
ICAgICAgICBtX2dwcnMucmV0YWluKHJlZywgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVyT3Bh
cXVlUG9pbnRlcik7CisgICAgICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gZ2VuZXJhdGlvbklu
Zm9Gcm9tVmlydHVhbFJlZ2lzdGVyKHZpcnR1YWxSZWdpc3Rlcik7CisgICAgICAgIGluZm8uaW5p
dE9wYXF1ZVBvaW50ZXIobm9kZSwgbm9kZS0+cmVmQ291bnQoKSwgcmVnKTsKKyAgICB9CiAgICAg
dm9pZCBkb3VibGVSZXN1bHQoRlBSUmVnIHJlZywgTm9kZSogbm9kZSwgVXNlQ2hpbGRyZW5Nb2Rl
IG1vZGUgPSBDYWxsVXNlQ2hpbGRyZW4pCiAgICAgewogICAgICAgICBpZiAobW9kZSA9PSBDYWxs
VXNlQ2hpbGRyZW4pCkBAIC0yNDU5LDYgKzI0ODAsOSBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7
CiAgICAgdm9pZCBjb21waWxlQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoTm9kZSopOwogICAgIHZv
aWQgY29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZUdldEJ1dHRlcmZseShOb2RlKik7CisgICAgdm9pZCBjb21waWxlTG9hZE9wYXF1ZVBvaW50
ZXIoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUdldERPTVdyYXBwZWQoTm9kZSopOworICAgIHZv
aWQgY29tcGlsZVRvRE9NV3JhcHBlcihOb2RlKik7CiAgICAgCiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBCYXNlT3BlcmFuZFR5cGUsIHR5cGVuYW1lIFByb3Bl
cnR5T3BlcmFuZFR5cGUsIHR5cGVuYW1lIFZhbHVlT3BlcmFuZFR5cGUsIHR5cGVuYW1lIFRhZ1R5
cGU+CkBAIC0yNDkwLDYgKzI1MTQsNyBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAKICAgICB2
b2lkIGNvbXBpbGVDaGVja1R5cGVJbmZvRmxhZ3MoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNo
ZWNrU3RyaW5nSWRlbnQoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUNoZWNrTm9kZUZsYWdzKE5v
ZGUqKTsKICAgICAKICAgICB2b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2RlKik7CiAgICAgdm9pZCBj
b21waWxlRG91YmxlUmVwKE5vZGUqKTsKQEAgLTI2ODksNiArMjcxNCwxMiBAQCBjbGFzcyBTcGVj
dWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBzcGVjdWxhdGVNYXBPYmplY3QoRWRnZSwgR1BSUmVnIGNl
bGwpOwogICAgIHZvaWQgc3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3Vs
YXRlU2V0T2JqZWN0KEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTU5v
ZGUoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVET01Ob2RlKEVkZ2UsIEdQUlJlZyBjZWxsKTsK
KyAgICB2b2lkIHNwZWN1bGF0ZURPTUVsZW1lbnQoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVE
T01FbGVtZW50KEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3Vt
ZW50V3JhcHBlcihFZGdlKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihF
ZGdlLCBHUFJSZWcgY2VsbCk7CiAgICAgdm9pZCBzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2Up
OwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpOwogICAg
IHZvaWQgc3BlY3VsYXRlU3RyaW5nSWRlbnRBbmRMb2FkU3RvcmFnZShFZGdlIGVkZ2UsIEdQUlJl
ZyBzdHJpbmcsIEdQUlJlZyBzdG9yYWdlKTsKQEAgLTMwMTEsNiArMzA0Miw1MyBAQCBjbGFzcyBT
dG9yYWdlT3BlcmFuZCB7CiAgICAgR1BSUmVnIG1fZ3ByT3JJbnZhbGlkOwogfTsKIAorY2xhc3Mg
T3BhcXVlUG9pbnRlck9wZXJhbmQgeworcHVibGljOgorICAgIGV4cGxpY2l0IE9wYXF1ZVBvaW50
ZXJPcGVyYW5kKFNwZWN1bGF0aXZlSklUKiBqaXQsIEVkZ2UgZWRnZSkKKyAgICAgICAgOiBtX2pp
dChqaXQpCisgICAgICAgICwgbV9lZGdlKGVkZ2UpCisgICAgICAgICwgbV9ncHJPckludmFsaWQo
SW52YWxpZEdQUlJlZykKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2ppdCk7CisgICAgICAgIEFT
U0VSVChlZGdlLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlIHx8IGVkZ2UudXNlS2luZCgpID09IEtu
b3duQ2VsbFVzZSk7CisgICAgICAgIGlmIChqaXQtPmlzRmlsbGVkKG5vZGUoKSkpCisgICAgICAg
ICAgICBncHIoKTsKKyAgICB9CisKKyAgICB+T3BhcXVlUG9pbnRlck9wZXJhbmQoKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKG1fZ3ByT3JJbnZhbGlkICE9IEludmFsaWRHUFJSZWcpOworICAgICAg
ICBtX2ppdC0+dW5sb2NrKG1fZ3ByT3JJbnZhbGlkKTsKKyAgICB9CisKKyAgICBFZGdlIGVkZ2Uo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZWRnZTsKKyAgICB9CisKKyAgICBOb2Rl
KiBub2RlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBlZGdlKCkubm9kZSgpOworICAg
IH0KKworICAgIEdQUlJlZyBncHIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fZ3ByT3JJbnZhbGlk
ID09IEludmFsaWRHUFJSZWcpCisgICAgICAgICAgICBtX2dwck9ySW52YWxpZCA9IG1faml0LT5m
aWxsT3BhcXVlUG9pbnRlcihlZGdlKCkpOworICAgICAgICByZXR1cm4gbV9ncHJPckludmFsaWQ7
CisgICAgfQorCisgICAgdm9pZCB1c2UoKQorICAgIHsKKyAgICAgICAgbV9qaXQtPnVzZShub2Rl
KCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBTcGVjdWxhdGl2ZUpJVCogbV9qaXQ7CisgICAg
RWRnZSBtX2VkZ2U7CisgICAgR1BSUmVnIG1fZ3ByT3JJbnZhbGlkOworfTsKKwogCiAvLyA9PT0g
VGVtcG9yYXJpZXMgPT09CiAvLwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggM2ExMGExMGQ3YjQyMjU0NDA5ZGQyMzI5
Y2MwZjIxN2Y5Njk5NWQzZS4uZjJiMWRmOTg3ZDQwMzVmYWRhNGM4YWFlZmJlOWU3NTI5YTZmMGU0
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmZpbGxK
U1ZhbHVlKEVkZ2UgZWRnZSwgR1BSUmVnJiB0YWdHUFIsIEdQUlJlZyYgcGF5bG9hZEdQUiwKICAg
ICAgICAgICAgIGluZm8uZmlsbEpTVmFsdWUoKm1fc3RyZWFtLCB0YWdHUFIsIHBheWxvYWRHUFIs
IERhdGFGb3JtYXRKUyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBEYXRhRm9ybWF0
IHNwaWxsRm9ybWF0ID0gaW5mby5zcGlsbEZvcm1hdCgpOwotICAgICAgICAgICAgQVNTRVJUKHNw
aWxsRm9ybWF0ICE9IERhdGFGb3JtYXROb25lICYmIHNwaWxsRm9ybWF0ICE9IERhdGFGb3JtYXRT
dG9yYWdlKTsKKyAgICAgICAgICAgIEFTU0VSVChzcGlsbEZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9u
ZSAmJiBzcGlsbEZvcm1hdCAhPSBEYXRhRm9ybWF0U3RvcmFnZSAmJiBzcGlsbEZvcm1hdCAhPSBE
YXRhRm9ybWF0T3BhcXVlUG9pbnRlcik7CiAgICAgICAgICAgICB0YWdHUFIgPSBhbGxvY2F0ZSgp
OwogICAgICAgICAgICAgcGF5bG9hZEdQUiA9IGFsbG9jYXRlKCk7CiAgICAgICAgICAgICBzd2l0
Y2ggKHNwaWxsRm9ybWF0KSB7CkBAIC0xNTUsNiArMTU1LDcgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJ
VDo6ZmlsbEpTVmFsdWUoRWRnZSBlZGdlLCBHUFJSZWcmIHRhZ0dQUiwgR1BSUmVnJiBwYXlsb2Fk
R1BSLAogICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKKyAgICBj
YXNlIERhdGFGb3JtYXRPcGFxdWVQb2ludGVyOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToK
ICAgICAgICAgLy8gdGhpcyB0eXBlIGN1cnJlbnRseSBuZXZlciBvY2N1cnMKICAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEwNTcsNiArMTA1OCw3IEBAIEdQUlJlZyBT
cGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBEYXRh
Rm9ybWF0JiByZXR1cm5GCiAgICAgY2FzZSBEYXRhRm9ybWF0SlNCb29sZWFuOgogICAgIGNhc2Ug
RGF0YUZvcm1hdERvdWJsZToKICAgICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgorICAgIGNhc2Ug
RGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXI6CiAgICAgZGVmYXVsdDoKICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIEludmFsaWRHUFJSZWc7CkBAIC0x
MTg0LDYgKzExODYsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxs
KEVkZ2UgZWRnZSkKICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOgogICAgIGNhc2UgRGF0YUZv
cm1hdERvdWJsZToKICAgICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgorICAgIGNhc2UgRGF0YUZv
cm1hdE9wYXF1ZVBvaW50ZXI6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAKICAgICBkZWZhdWx0OgpAQCAtMTI2MCw2ICsxMjYzLDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZl
SklUOjpmaWxsU3BlY3VsYXRlQm9vbGVhbihFZGdlIGVkZ2UpCiAgICAgY2FzZSBEYXRhRm9ybWF0
Q2VsbDoKICAgICBjYXNlIERhdGFGb3JtYXREb3VibGU6CiAgICAgY2FzZSBEYXRhRm9ybWF0U3Rv
cmFnZToKKyAgICBjYXNlIERhdGFGb3JtYXRPcGFxdWVQb2ludGVyOgogICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCiAgICAgZGVmYXVsdDoKQEAgLTU0MjAsNiArNTQyNCwy
MiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAorICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CisgICAgICAgIGNvbXBp
bGVMb2FkT3BhcXVlUG9pbnRlcihub2RlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEdl
dERPTVdyYXBwZWQ6CisgICAgICAgIGNvbXBpbGVHZXRET01XcmFwcGVkKG5vZGUpOworICAgICAg
ICBicmVhazsKKworICAgIGNhc2UgQ2hlY2tOb2RlRmxhZ3M6CisgICAgICAgIGNvbXBpbGVDaGVj
a05vZGVGbGFncyhub2RlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFRvRE9NV3JhcHBl
cjoKKyAgICAgICAgY29tcGlsZVRvRE9NV3JhcHBlcihub2RlKTsKKyAgICAgICAgYnJlYWs7CisK
ICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAgICAgICB1bnJlYWNoYWJsZShub2RlKTsKICAgICAg
ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAppbmRleCBmNWVhNzRiMmU3MTA1OTc1YzdmYjA3MTM2YjcxM2IxYWMxNTY3Yjdj
Li4zN2NkM2I2MzJhNTliNjI4MjI3OGZjM2U3MDMxNTE2YWI0NDM2MzYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTE0NCw2
ICsxNDQsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKEVkZ2UgZWRnZSkK
ICAgICAgICAgCiAgICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjoKICAgICBjYXNlIERhdGFGb3Jt
YXRTdG9yYWdlOgorICAgIGNhc2UgRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXI6CiAgICAgY2FzZSBE
YXRhRm9ybWF0RG91YmxlOgogICAgIGNhc2UgRGF0YUZvcm1hdEludDUyOgogICAgICAgICAvLyB0
aGlzIHR5cGUgY3VycmVudGx5IG5ldmVyIG9jY3VycwpAQCAtMTA2MCw2ICsxMDYxLDcgQEAgR1BS
UmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlSW50MzJJbnRlcm5hbChFZGdlIGVkZ2Us
IERhdGFGb3JtYXQmIHJldHVybkYKICAgICBjYXNlIERhdGFGb3JtYXRKU0Jvb2xlYW46CiAgICAg
Y2FzZSBEYXRhRm9ybWF0RG91YmxlOgogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAg
Y2FzZSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcjoKICAgICBjYXNlIERhdGFGb3JtYXRJbnQ1MjoK
ICAgICBjYXNlIERhdGFGb3JtYXRTdHJpY3RJbnQ1MjoKICAgICAgICAgREZHX0NSQVNIKG1faml0
LmdyYXBoKCksIG1fY3VycmVudE5vZGUsICJCYWQgZGF0YSBmb3JtYXQiKTsKQEAgLTEyOTAsNiAr
MTI5Miw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwoRWRnZSBl
ZGdlKQogICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46CiAgICAgY2FzZSBEYXRhRm9ybWF0RG91
YmxlOgogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgY2FzZSBEYXRhRm9ybWF0T3Bh
cXVlUG9pbnRlcjoKICAgICBjYXNlIERhdGFGb3JtYXRJbnQ1MjoKICAgICBjYXNlIERhdGFGb3Jt
YXRTdHJpY3RJbnQ1MjoKICAgICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG1fY3VycmVu
dE5vZGUsICJCYWQgZGF0YSBmb3JtYXQiKTsKQEAgLTEzNjYsNiArMTM2OSw3IEBAIEdQUlJlZyBT
cGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUJvb2xlYW4oRWRnZSBlZGdlKQogICAgIGNhc2Ug
RGF0YUZvcm1hdENlbGw6CiAgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgogICAgIGNhc2UgRGF0
YUZvcm1hdFN0b3JhZ2U6CisgICAgY2FzZSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcjoKICAgICBj
YXNlIERhdGFGb3JtYXRJbnQ1MjoKICAgICBjYXNlIERhdGFGb3JtYXRTdHJpY3RJbnQ1MjoKICAg
ICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG1fY3VycmVudE5vZGUsICJCYWQgZGF0YSBm
b3JtYXQiKTsKQEAgLTU0MzYsNiArNTQ0MCwyMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVNYXRlcmlhbGl6ZU5ld09iamVjdChub2Rl
KTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgorICAgICAg
ICBjb21waWxlTG9hZE9wYXF1ZVBvaW50ZXIobm9kZSk7CisgICAgICAgIGJyZWFrOworCisgICAg
Y2FzZSBHZXRET01XcmFwcGVkOgorICAgICAgICBjb21waWxlR2V0RE9NV3JhcHBlZChub2RlKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgorICAgICAgICBjb21w
aWxlQ2hlY2tOb2RlRmxhZ3Mobm9kZSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBUb0RP
TVdyYXBwZXI6CisgICAgICAgIGNvbXBpbGVUb0RPTVdyYXBwZXIobm9kZSk7CisgICAgICAgIGJy
ZWFrOworCiAjaWYgRU5BQkxFKEZUTF9KSVQpICAgICAgICAKICAgICBjYXNlIENoZWNrVGllclVw
SW5Mb29wOiB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGNhbGxUaWVyVXAgPSBtX2pp
dC5icmFuY2hBZGQzMigKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3BwCmluZGV4IDIzZGYyOTZhM2NmNjMyNjM2MmEzMzMy
MmVkOTJhMmJmZjFiN2MyYWUuLjhjYWM1MjRiMGVkNmZmMTJmMjIzYmRkNzM3NDc0ZDQ1ZDljZjRm
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVHlwZUNoZWNrSG9p
c3RpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUeXBlQ2hl
Y2tIb2lzdGluZ1BoYXNlLmNwcApAQCAtMjQ3LDYgKzI0Nyw3IEBAIGNsYXNzIFR5cGVDaGVja0hv
aXN0aW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGNhc2UgQWxsb2Nh
dGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVy
dHlTdG9yYWdlOgogICAgICAgICAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgorICAgICAgICAg
ICAgICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRC
eVZhbDoKICAgICAgICAgICAgICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAgICAgICAgICAg
ICAgIGNhc2UgUHV0QnlWYWw6CkBAIC0zMjUsNiArMzI2LDcgQEAgY2xhc3MgVHlwZUNoZWNrSG9p
c3RpbmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgY2FzZSBQdXRTdHJ1
Y3R1cmU6CiAgICAgICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgog
ICAgICAgICAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgorICAgICAgICAgICAgICAgIGNhc2Ug
TG9hZE9wYXF1ZVBvaW50ZXI6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAg
ICAgICAgICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAgICAgICAgICAgICAgIGNhc2UgUHV0
QnlWYWw6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCBlODM4
MjliNzEzMDYxNzNkZTk1YjAxMDg4YmYzZTljZDg0ZmRmNmVjLi4yMDIwYTU1ZmRjZDg4YWQ2Njcw
Y2M1NWExMWExYjRlM2JkMjk4MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNl
S2luZC5jcHAKQEAgLTExMiw2ICsxMTIsMTUgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3Ry
ZWFtJiBvdXQsIFVzZUtpbmQgdXNlS2luZCkKICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAg
ICAgICAgIG91dC5wcmludCgiT2JqZWN0T3JPdGhlciIpOwogICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBET01Ob2RlVXNlOgorICAgICAgICBvdXQucHJpbnQoIkRPTU5vZGUiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICAgICAgb3V0LnByaW50KCJET01F
bGVtZW50Iik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVz
ZToKKyAgICAgICAgb3V0LnByaW50KCJET01Eb2N1bWVudFdyYXBwZXIiKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgU3RyaW5nSWRlbnRVc2U6CiAgICAgICAgIG91dC5wcmludCgiU3RyaW5n
SWRlbnQiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdVc2VLaW5kLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtp
bmQuaAppbmRleCA4ZjYzM2ExOTY4OGNjZTAyZjM0ZjE1MTJlZDg5M2RmMjk3ZDNhNWZiLi4xNjhk
MDQ4YzNhM2RhOTljNDlkODE1NTQ1MjZiMDc2MjI2NjI5MjI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1VzZUtpbmQuaApAQCAtNzMsNiArNzMsOSBAQCBlbnVtIFVzZUtpbmQgewogICAg
IE5vdENlbGxVc2UsCiAgICAgT3RoZXJVc2UsCiAgICAgTWlzY1VzZSwKKyAgICBET01Ob2RlVXNl
LAorICAgIERPTUVsZW1lbnRVc2UsCisgICAgRE9NRG9jdW1lbnRXcmFwcGVyVXNlLAogCiAgICAg
Ly8gMi4gVGhlIERvdWJsZSByZXByZXNlbnRhdGlvbiBmb3IgYW4gdW5ib3hlZCBkb3VibGUgdmFs
dWUgdGhhdCBtdXN0IGJlIHN0b3JlZAogICAgIC8vICAgIGluIGFuIEZQIHJlZ2lzdGVyLgpAQCAt
MTYwLDYgKzE2MywxMiBAQCBpbmxpbmUgU3BlY3VsYXRlZFR5cGUgdHlwZUZpbHRlckZvcihVc2VL
aW5kIHVzZUtpbmQpCiAgICAgICAgIHJldHVybiBTcGVjT3RoZXI7CiAgICAgY2FzZSBNaXNjVXNl
OgogICAgICAgICByZXR1cm4gU3BlY01pc2M7CisgICAgY2FzZSBET01Ob2RlVXNlOgorICAgICAg
ICByZXR1cm4gU3BlY0RPTU5vZGU7CisgICAgY2FzZSBET01FbGVtZW50VXNlOgorICAgICAgICBy
ZXR1cm4gU3BlY0RPTUVsZW1lbnQ7CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6Cisg
ICAgICAgIHJldHVybiBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBTcGVjRnVs
bFRvcDsKQEAgLTI0MCw2ICsyNDksOSBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5k
KQogICAgIGNhc2UgU3RyaW5nT3JTdHJpbmdPYmplY3RVc2U6CiAgICAgY2FzZSBNYXBPYmplY3RV
c2U6CiAgICAgY2FzZSBTZXRPYmplY3RVc2U6CisgICAgY2FzZSBET01Ob2RlVXNlOgorICAgIGNh
c2UgRE9NRWxlbWVudFVzZToKKyAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVEdyYXBoLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YjBhYzFlNzhkMDQ2NmZiN2YxOWNhZWE3MmE3NTYzMjFhYzU2ZGU1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAKQEAgLTAsMCAr
MSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJET01KSVRHcmFwaC5oIgorCisjaWYgRU5BQkxF
KERGR19KSVQpCisKK25hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CisKK0RGRzo6
VXNlS2luZCBHcmFwaDo6ZWRnZUZpbHRlcigpCit7CisgICAgaWYgKGlzRE9NRG9jdW1lbnRXcmFw
cGVyU3BlY3VsYXRpb24obV9zcGVjdWxhdGVkQ2hpbGRUeXBlKSkKKyAgICAgICAgcmV0dXJuIERG
Rzo6RE9NRG9jdW1lbnRXcmFwcGVyVXNlOworICAgIGlmIChpc0RPTUVsZW1lbnRTcGVjdWxhdGlv
bihtX3NwZWN1bGF0ZWRDaGlsZFR5cGUpKQorICAgICAgICByZXR1cm4gREZHOjpET01FbGVtZW50
VXNlOworICAgIGlmIChpc0RPTU5vZGVTcGVjdWxhdGlvbihtX3NwZWN1bGF0ZWRDaGlsZFR5cGUp
KQorICAgICAgICByZXR1cm4gREZHOjpET01Ob2RlVXNlOworICAgIHJldHVybiBERkc6OlVudHlw
ZWRVc2U7Cit9CisKK30gfQorCisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVEdyYXBoLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVEdyYXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI3YWQzYjU0MTM4
MmY5NThiMDE2YjAxN2QyZDhmMjExOGQ3NWI4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR3JhcGguaApAQCAtMCwwICsxLDY3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJET01KSVRJUkJ1aWxkZXIuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eVNsb3QuaCIK
KyNpbmNsdWRlICJQdXRQcm9wZXJ0eVNsb3QuaCIKKyNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5o
IgorCisjaWYgRU5BQkxFKERGR19KSVQpCisjaW5jbHVkZSAiREZHVXNlS2luZC5oIgorI2VuZGlm
CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRE9NSklUIHsKKworY2xhc3MgR3JhcGggOiBw
dWJsaWMgSVJCdWlsZGVyIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jIEN1c3RvbUdldHRlcjsKKyAgICB0eXBlZGVmIFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jIEN1c3RvbVNldHRlcjsKKworICAgIEdyYXBoKEN1c3RvbUdldHRlciBnZXR0ZXIs
IEN1c3RvbVNldHRlciBzZXR0ZXIsIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0ZWRDaGlsZFR5cGUp
CisgICAgICAgIDogbV9nZXR0ZXIoZ2V0dGVyKQorICAgICAgICAsIG1fc2V0dGVyKHNldHRlcikK
KyAgICAgICAgLCBtX3NwZWN1bGF0ZWRDaGlsZFR5cGUoc3BlY3VsYXRlZENoaWxkVHlwZSkKKyAg
ICB7CisgICAgfQorCisgICAgdmlydHVhbCB+R3JhcGgoKSB7IH0KKworICAgIFNwZWN1bGF0ZWRU
eXBlIHNwZWN1bGF0ZWRDaGlsZFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3NwZWN1bGF0ZWRDaGls
ZFR5cGU7IH0KKyAgICBDdXN0b21HZXR0ZXIgZ2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9nZXR0
ZXI7IH0KKyAgICBDdXN0b21TZXR0ZXIgc2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0ZXI7
IH0KKworI2lmIEVOQUJMRShERkdfSklUKQorICAgIERGRzo6VXNlS2luZCBlZGdlRmlsdGVyKCk7
CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBDdXN0b21HZXR0ZXIgbV9nZXR0ZXI7CisgICAgQ3Vz
dG9tU2V0dGVyIG1fc2V0dGVyOworICAgIFNwZWN1bGF0ZWRUeXBlIG1fc3BlY3VsYXRlZENoaWxk
VHlwZTsKK307CisKK30gfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWpp
dC9ET01KSVRJUi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc1NjFhNTYwNjJjNGUzYTk2NjBlNjJiZTY3ODdkODNlNTE3ZjIyZDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVElSLmgKQEAg
LTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNwZWN1bGF0ZWRUeXBlLmgiCisjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRE9NSklU
IHsKKwordHlwZWRlZiB1aW50cHRyX3QgT3BJbmZvOworCisvLyBGaXJzdCwgd2UgZGVmaW5lIHNw
ZWNpZmljIHRvIE5vZGUgb3BlcmF0aW9ucy4gTGF0ZXIgd2Ugd2lsbCBwYXJhbWV0ZXJpemUgdGhl
bS4KK2VudW0gY2xhc3MgS2luZCA6IHVpbnQzMl90IHsKKyAgICBDaGVja05vZGUsCisgICAgQ2hl
Y2tOb2RlRmxhZ3MsCisgICAgR2V0V3JhcHBlZCwKKyAgICBMb2FkUG9pbnRlciwKKyAgICBUb1dy
YXBwZXIsCisgICAgUmV0dXJuLAorICAgIEV4dGVybmFsLAorfTsKKworc3RydWN0IElSIHsKKyAg
ICBzdGF0aWMgSVIqIHRoaXNWYWx1ZSgpCisgICAgeworICAgICAgICBOZXZlckRlc3Ryb3llZDxJ
Uj4gaXI7CisgICAgICAgIHJldHVybiAmaXIuZ2V0KCk7CisgICAgfQorCisgICAgSVIoKSA9IGRl
ZmF1bHQ7CisKKyAgICBJUihLaW5kIGtpbmQsIElSKiBjaGlsZDEsIElSKiBjaGlsZDIsIE9wSW5m
byBvcEluZm8xLCBPcEluZm8gb3BJbmZvMikKKyAgICAgICAgOiBtX2tpbmQoa2luZCkKKyAgICAg
ICAgLCBtX2NoaWxkMShjaGlsZDEpCisgICAgICAgICwgbV9jaGlsZDIoY2hpbGQyKQorICAgICAg
ICAsIG1fb3BJbmZvMShvcEluZm8xKQorICAgICAgICAsIG1fb3BJbmZvMihvcEluZm8yKQorICAg
IHsKKyAgICB9CisKKyAgICBLaW5kIG1fa2luZCB7IEtpbmQ6OkV4dGVybmFsIH07CisgICAgSVIq
IG1fY2hpbGQxIHsgbnVsbHB0ciB9OworICAgIElSKiBtX2NoaWxkMiB7IG51bGxwdHIgfTsKKyAg
ICBPcEluZm8gbV9vcEluZm8xIHsgMCB9OworICAgIE9wSW5mbyBtX29wSW5mbzIgeyAwIH07Cit9
OworCit9IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklU
SVJCdWlsZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVElSQnVpbGRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ2MmRkZWZkNjVhZjNlYTAzZTdhY2UwMzJhOWUzZTI5NWQyNDA1ZGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVElS
QnVpbGRlci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRPTUpJVElSLmgiCisj
aW5jbHVkZSA8d3RmL1NlZ21lbnRlZFZlY3Rvci5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIERPTUpJVCB7CisKK2NsYXNzIElSQnVpbGRlciB7CitwdWJsaWM6CisgICAgSVIqIGFwcGVu
ZChLaW5kIGtpbmQsIElSKiBjaGlsZDEsIElSKiBjaGlsZDIsIE9wSW5mbyBvcEluZm8xID0gMCwg
T3BJbmZvIG9wSW5mbzIgPSAwKQorICAgIHsKKyAgICAgICAgcmV0dXJuICZtX2FsbG9jYXRvci5h
bGxvYyhraW5kLCBjaGlsZDEsIGNoaWxkMiwgb3BJbmZvMSwgb3BJbmZvMik7CisgICAgfQorCisg
ICAgU2VnbWVudGVkVmVjdG9yPElSPiYgaXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYWxs
b2NhdG9yOworICAgIH0KKworcHJpdmF0ZToKKyAgICBTZWdtZW50ZWRWZWN0b3I8SVI+IG1fYWxs
b2NhdG9yOworfTsKKworCit9IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcAppbmRleCBiNmViMmU1ZjcyMTlkYWU2ZmUwYzJhODRhZjA1ZTgyMmNhMDZk
ODFmLi42ZTkwYjk4NTYyNGFhMGFiYzM4Yjc5NTI5ZjEyOTI1OTRmZTQ3YTc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC00NDUsNiArNDQ1
LDkgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQogICAgICAgICAg
ICAgICAgIGNhc2UgTm90U3RyaW5nVmFyVXNlOgogICAgICAgICAgICAgICAgIGNhc2UgQW55SW50
VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgRG91YmxlUmVwQW55SW50VXNlOgorICAgICAgICAg
ICAgICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAgICAgICAgICBjYXNlIERPTUVsZW1lbnRV
c2U6CisgICAgICAgICAgICAgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CiAgICAgICAg
ICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAwNjNjYzU5NDQwNjI0ODk2MzdhOWMyYmQzMTgyOTM1
NTc1NjRlNDIwLi4xNmI2YjhjZTRiMWYwOGJkOTAwYTViNThiODA4ZDc1YzZhNmVjZGE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMDQ2
Nyw2ICsxMDQ2NywxNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgIH0KIAorICAgIExWYWx1ZSBsb3dPcGFxdWVQb2ludGVyKEVkZ2UgZWRnZSkKKyAg
ICB7CisgICAgICAgIExvd2VyZWROb2RlVmFsdWUgdmFsdWUgPSBtX29wYXF1ZVBvaW50ZXJWYWx1
ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKKyAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKQorICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlLnZhbHVlKCk7CisKKyAgICAgICAgTFZhbHVlIHJlc3VsdCA9IGxv
d0NlbGwoZWRnZSk7CisgICAgICAgIHNldE9wYXF1ZVBvaW50ZXIoZWRnZS5ub2RlKCksIHJlc3Vs
dCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCiAgICAgTFZhbHVlIGxvd01hcEJ1
Y2tldChFZGdlIGVkZ2UpCiAgICAgewogICAgICAgICBMb3dlcmVkTm9kZVZhbHVlIHZhbHVlID0g
bV9tYXBCdWNrZXRWYWx1ZXMuZ2V0KGVkZ2Uubm9kZSgpKTsKQEAgLTEwNzk1LDYgKzEwODA2LDE1
IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIGNhc2UgU2V0T2JqZWN0VXNlOgogICAg
ICAgICAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2UpOwogICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZURPTU5vZGUoZWRn
ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET01FbGVtZW50VXNlOgorICAg
ICAgICAgICAgc3BlY3VsYXRlRE9NRWxlbWVudChlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0
ZURPTURvY3VtZW50V3JhcHBlcihlZGdlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIFN0cmluZ1VzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhlZGdlKTsKICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMTA5MjMsNiArMTA5NDMsMjQgQEAgY2xhc3MgTG93ZXJERkdUb0Iz
IHsKICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoT2JqZWN0VHlwZSkpOwogICAgIH0KIAor
ICAgIExWYWx1ZSBpc05vdERPTU5vZGUoTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUg
PSBTcGVjRnVsbFRvcCkKKyAgICB7CisgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92
ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVjRE9NTm9kZSkpCisgICAgICAgICAgICByZXR1
cm4gcHJvdmVuOworICAgICAgICByZXR1cm4gbV9vdXQuYmVsb3coCisgICAgICAgICAgICBtX291
dC5sb2FkOFplcm9FeHQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAorICAg
ICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihET01Ob2RlVHlwZSkpOworICAgIH0KKworICAgIExW
YWx1ZSBpc05vdERPTUVsZW1lbnQoTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBT
cGVjRnVsbFRvcCkKKyAgICB7CisgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5W
YWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVjRE9NRWxlbWVudCkpCisgICAgICAgICAgICByZXR1
cm4gcHJvdmVuOworICAgICAgICByZXR1cm4gbV9vdXQuYmVsb3coCisgICAgICAgICAgICBtX291
dC5sb2FkOFplcm9FeHQzMihjZWxsLCBtX2hlYXBzLkpTQ2VsbF90eXBlSW5mb1R5cGUpLAorICAg
ICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihET01FbGVtZW50VHlwZSkpOworICAgIH0KKwogICAg
IExWYWx1ZSBpc05vdFN0cmluZyhMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNw
ZWNGdWxsVG9wKQogICAgIHsKICAgICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZh
bHVlKHR5cGUgJiBTcGVjQ2VsbCwgflNwZWNTdHJpbmcpKQpAQCAtMTExNjksNiArMTEyMDcsMzcg
QEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB7CiAgICAgICAgIHNwZWN1bGF0ZVNldE9iamVj
dChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKICAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURPTU5v
ZGUoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAgICAgIEZUTF9UWVBFX0NIRUNL
KGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3BlY0RPTUVsZW1lbnQsIGlzTm90RE9NTm9kZShj
ZWxsKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVET01Ob2RlKEVkZ2UgZWRnZSkKKyAg
ICB7CisgICAgICAgIHNwZWN1bGF0ZURPTU5vZGUoZWRnZSwgbG93Q2VsbChlZGdlKSk7CisgICAg
fQorCisgICAgdm9pZCBzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwp
CisgICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2Us
IFNwZWNET01FbGVtZW50LCBpc05vdERPTUVsZW1lbnQoY2VsbCkpOworICAgIH0KKworICAgIHZv
aWQgc3BlY3VsYXRlRE9NRWxlbWVudChFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxh
dGVET01FbGVtZW50KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKworICAgIHZvaWQgc3Bl
Y3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgewor
ICAgICAgICBGVExfVFlQRV9DSEVDSygKKyAgICAgICAgICAgIGpzVmFsdWVWYWx1ZShjZWxsKSwg
ZWRnZSwgU3BlY0Rlcml2ZWRBcnJheSwgaXNOb3RUeXBlKGNlbGwsIERPTURvY3VtZW50V3JhcHBl
clR5cGUpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihF
ZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoZWRn
ZSwgbG93Q2VsbChlZGdlKSk7CisgICAgfQogICAgIAogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5n
KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCiAgICAgewpAQCAtMTE5NTgsNiArMTIwMjcsMTAgQEAg
Y2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB7CiAgICAgICAgIG1fc3RvcmFnZVZhbHVlcy5zZXQo
bm9kZSwgTG93ZXJlZE5vZGVWYWx1ZSh2YWx1ZSwgbV9oaWdoQmxvY2spKTsKICAgICB9CisgICAg
dm9pZCBzZXRPcGFxdWVQb2ludGVyKE5vZGUqIG5vZGUsIExWYWx1ZSB2YWx1ZSkKKyAgICB7Cisg
ICAgICAgIG1fb3BhcXVlUG9pbnRlclZhbHVlcy5zZXQobm9kZSwgTG93ZXJlZE5vZGVWYWx1ZSh2
YWx1ZSwgbV9oaWdoQmxvY2spKTsKKyAgICB9CiAgICAgdm9pZCBzZXRNYXBCdWNrZXQoTm9kZSog
bm9kZSwgTFZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgbV9tYXBCdWNrZXRWYWx1ZXMuc2V0
KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFsdWUsIG1faGlnaEJsb2NrKSk7CkBAIC0xMTk5NSw2
ICsxMjA2OCwxMCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAgc2V0U3Rv
cmFnZShtX25vZGUsIHZhbHVlKTsKICAgICB9CisgICAgdm9pZCBzZXRPcGFxdWVQb2ludGVyKExW
YWx1ZSB2YWx1ZSkKKyAgICB7CisgICAgICAgIHNldE9wYXF1ZVBvaW50ZXIobV9ub2RlLCB2YWx1
ZSk7CisgICAgfQogICAgIHZvaWQgc2V0TWFwQnVja2V0KExWYWx1ZSB2YWx1ZSkKICAgICB7CiAg
ICAgICAgIHNldE1hcEJ1Y2tldChtX25vZGUsIHZhbHVlKTsKQEAgLTEyMTgyLDYgKzEyMjU5LDcg
QEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICBIYXNoTWFwPE5vZGUqLCBMb3dlcmVkTm9kZVZh
bHVlPiBtX2pzVmFsdWVWYWx1ZXM7CiAgICAgSGFzaE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1
ZT4gbV9ib29sZWFuVmFsdWVzOwogICAgIEhhc2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+
IG1fc3RvcmFnZVZhbHVlczsKKyAgICBIYXNoTWFwPE5vZGUqLCBMb3dlcmVkTm9kZVZhbHVlPiBt
X29wYXF1ZVBvaW50ZXJWYWx1ZXM7CiAgICAgSGFzaE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1
ZT4gbV9tYXBCdWNrZXRWYWx1ZXM7CiAgICAgSGFzaE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1
ZT4gbV9kb3VibGVWYWx1ZXM7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaAppbmRleCA3Njk0OTFhMzY3YmE1ZmYxNDBiNTM4N2I4YjVmYzJiN2Y4YzZj
NjgwLi5lZDEwMTJiNDFjMGIwMzg4ZTA4OGQ0OWI5ZDFlYzhkNWU5MTQ2NGZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTg1NCw2ICs4NTQsMzAg
QEAgY2xhc3MgQXNzZW1ibHlIZWxwZXJzIDogcHVibGljIE1hY3JvQXNzZW1ibGVyIHsKICAgICAg
ICAgcmV0dXJuIGJyYW5jaDgoCiAgICAgICAgICAgICBCZWxvdywgQWRkcmVzcyhjZWxsR1BSLCBK
U0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKE9iamVjdFR5cGUpKTsK
ICAgICB9CisKKyAgICBKdW1wIGJyYW5jaElmRE9NTm9kZShHUFJSZWcgY2VsbEdQUikKKyAgICB7
CisgICAgICAgIHJldHVybiBicmFuY2g4KAorICAgICAgICAgICAgQWJvdmVPckVxdWFsLCBBZGRy
ZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIo
RE9NTm9kZVR5cGUpKTsKKyAgICB9CisKKyAgICBKdW1wIGJyYW5jaElmTm90RE9NTm9kZShHUFJS
ZWcgY2VsbEdQUikKKyAgICB7CisgICAgICAgIHJldHVybiBicmFuY2g4KAorICAgICAgICAgICAg
QmVsb3csIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRy
dXN0ZWRJbW0zMihET01Ob2RlVHlwZSkpOworICAgIH0KKworICAgIEp1bXAgYnJhbmNoSWZET01F
bGVtZW50KEdQUlJlZyBjZWxsR1BSKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgoCisg
ICAgICAgICAgICBBYm92ZU9yRXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5m
b1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihET01FbGVtZW50VHlwZSkpOworICAgIH0KKwor
ICAgIEp1bXAgYnJhbmNoSWZOb3RET01FbGVtZW50KEdQUlJlZyBjZWxsR1BSKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGJyYW5jaDgoCisgICAgICAgICAgICBCZWxvdywgQWRkcmVzcyhjZWxsR1BS
LCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKERPTUVsZW1lbnRU
eXBlKSk7CisgICAgfQogICAgIAogICAgIEp1bXAgYnJhbmNoSWZUeXBlKEdQUlJlZyBjZWxsR1BS
LCBKU1R5cGUgdHlwZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5oCmluZGV4IDFkNGFkMzhjNTliNGU3MzY5MzA2NWIzYWM1ZTAxY2E2ZDQxNjRjZDEuLmJl
NGVhOTYxYzU4NTQ2NTU5NDA0ZWI2Y2FhNDMzNTYyYWI2MDIxOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0xMTIsNiArMTEyLDcgQEAgdHlwZWRlZiBj
aGFyKiBVbnVzZWRQdHI7CiAgICAgU3ltdGFiOiBTeW1ib2xUYWJsZSoKICAgICBUOiBTdHJpbmdJ
bXBsKgogICAgIFY6IHZvaWQKKyAgICBWcDogdm9pZCoKICAgICBWbTogVk0qCiAgICAgV3M6IFdh
dGNocG9pbnRTZXQqCiAgICAgWjogaW50MzJfdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRj
aC5jcHAKaW5kZXggZDQ1OTM5YzU5NTlhODA3ZDQ1MDViOTRlYTNjZWExNTVmZmY1YzRiOC4uNWUw
ZDExMjBjYTVkNDQyNzQ3NzNkOTFjOWY2Zjg5YzdmMDM1M2ZiZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlcGF0Y2guY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1l
U2h1ZmZsZXIuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiREZHU3Bl
Y3VsYXRpdmVKSVQuaCIKKyNpbmNsdWRlICJET01KSVRHcmFwaC5oIgogI2luY2x1ZGUgIkRpcmVj
dEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkZUTFRodW5rcy5oIgogI2luY2x1ZGUgIkdDQXdhcmVK
SVRTdHViUm91dGluZS5oIgpAQCAtMjYwLDYgKzI2MSwxMCBAQCBzdGF0aWMgSW5saW5lQ2FjaGVB
Y3Rpb24gdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUs
IGNvbgogICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUdldHRlcigpKQogICAgICAgICAgICAg
Z2V0dGVyID0ganNEeW5hbWljQ2FzdDxKU0Z1bmN0aW9uKj4oc2xvdC5nZXR0ZXJTZXR0ZXIoKS0+
Z2V0dGVyKCkpOwogCisgICAgICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IG51bGxwdHI7Cisg
ICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgJiYgc2xvdC5kb21KSVQoKSkKKyAg
ICAgICAgICAgIGRvbUpJVCA9IHNsb3QuZG9tSklUKCk7CisKICAgICAgICAgaWYgKGtpbmQgPT0g
R2V0QnlJREtpbmQ6OlB1cmUpIHsKICAgICAgICAgICAgIEFjY2Vzc0Nhc2U6OkFjY2Vzc1R5cGUg
dHlwZTsKICAgICAgICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKSkKQEAgLTI5MCw3
ICsyOTUsOCBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbgogICAgICAgICAgICAgbmV3Q2FzZSA9
IEFjY2Vzc0Nhc2U6OmdldCgKICAgICAgICAgICAgICAgICB2bSwgY29kZUJsb2NrLCB0eXBlLCBv
ZmZzZXQsIHN0cnVjdHVyZSwgY29uZGl0aW9uU2V0LCBsb2FkVGFyZ2V0RnJvbVByb3h5LAogICAg
ICAgICAgICAgICAgIHNsb3Qud2F0Y2hwb2ludFNldCgpLCBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9t
KCkgPyBzbG90LmN1c3RvbUdldHRlcigpIDogbnVsbHB0ciwKLSAgICAgICAgICAgICAgICBzbG90
LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgPyBzbG90LnNsb3RCYXNlKCkgOiBudWxscHRyKTsKKyAgICAg
ICAgICAgICAgICBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgPyBzbG90LnNsb3RCYXNlKCkgOiBu
dWxscHRyLAorICAgICAgICAgICAgICAgIGRvbUpJVCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRl
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmgK
aW5kZXggZDcwMmRkZjRkYTA1NzY5MDVmNzljZWFkNjBiNmEyM2NkYjljMzY2Ni4uMWVhZDQwMjdl
OWY4NmM4NTE4NWVlM2UzMDViNjliZTc0MTNjZGU3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmgKQEAgLTMxLDYgKzMxLDkgQEAK
ICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CituYW1lc3BhY2UgRE9N
SklUIHsKK2NsYXNzIEdyYXBoOworfQogCiBjbGFzcyBDdXN0b21HZXR0ZXJTZXR0ZXIgZmluYWwg
OiBwdWJsaWMgSlNDZWxsIHsKIHB1YmxpYzoKQEAgLTQwLDE1ICs0MywxNiBAQCBjbGFzcyBDdXN0
b21HZXR0ZXJTZXR0ZXIgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICB0eXBlZGVmIFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jIEN1c3RvbUdldHRlcjsKICAgICB0eXBlZGVmIFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jIEN1c3RvbVNldHRlcjsKIAotICAgIHN0YXRpYyBDdXN0b21H
ZXR0ZXJTZXR0ZXIqIGNyZWF0ZShWTSYgdm0sIEN1c3RvbUdldHRlciBjdXN0b21HZXR0ZXIsIEN1
c3RvbVNldHRlciBjdXN0b21TZXR0ZXIpCisgICAgc3RhdGljIEN1c3RvbUdldHRlclNldHRlciog
Y3JlYXRlKFZNJiB2bSwgQ3VzdG9tR2V0dGVyIGN1c3RvbUdldHRlciwgQ3VzdG9tU2V0dGVyIGN1
c3RvbVNldHRlciwgRE9NSklUOjpHcmFwaCogZG9tSklUID0gbnVsbHB0cikKICAgICB7Ci0gICAg
ICAgIEN1c3RvbUdldHRlclNldHRlciogY3VzdG9tR2V0dGVyU2V0dGVyID0gbmV3IChOb3ROdWxs
LCBhbGxvY2F0ZUNlbGw8Q3VzdG9tR2V0dGVyU2V0dGVyPih2bS5oZWFwKSkgQ3VzdG9tR2V0dGVy
U2V0dGVyKHZtLCBjdXN0b21HZXR0ZXIsIGN1c3RvbVNldHRlcik7CisgICAgICAgIEN1c3RvbUdl
dHRlclNldHRlciogY3VzdG9tR2V0dGVyU2V0dGVyID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNl
bGw8Q3VzdG9tR2V0dGVyU2V0dGVyPih2bS5oZWFwKSkgQ3VzdG9tR2V0dGVyU2V0dGVyKHZtLCBj
dXN0b21HZXR0ZXIsIGN1c3RvbVNldHRlciwgZG9tSklUKTsKICAgICAgICAgY3VzdG9tR2V0dGVy
U2V0dGVyLT5maW5pc2hDcmVhdGlvbih2bSk7CiAgICAgICAgIHJldHVybiBjdXN0b21HZXR0ZXJT
ZXR0ZXI7CiAgICAgfQogCiAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyOjpDdXN0b21HZXR0ZXIgZ2V0
dGVyKCkgY29uc3QgeyByZXR1cm4gbV9nZXR0ZXI7IH0KICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6
OkN1c3RvbVNldHRlciBzZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX3NldHRlcjsgfQorICAgIERP
TUpJVDo6R3JhcGgqIGRvbUpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tSklUOyB9CiAKICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CkBAIC01OCwxNSArNjIsMTcg
QEAgY2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAg
REVDTEFSRV9FWFBPUlRfSU5GTzsKIAogcHJpdmF0ZToKLSAgICBDdXN0b21HZXR0ZXJTZXR0ZXIo
Vk0mIHZtLCBDdXN0b21HZXR0ZXIgZ2V0dGVyLCBDdXN0b21TZXR0ZXIgc2V0dGVyKQorICAgIEN1
c3RvbUdldHRlclNldHRlcihWTSYgdm0sIEN1c3RvbUdldHRlciBnZXR0ZXIsIEN1c3RvbVNldHRl
ciBzZXR0ZXIsIERPTUpJVDo6R3JhcGgqIGRvbUpJVCkKICAgICAgICAgOiBKU0NlbGwodm0sIHZt
LmN1c3RvbUdldHRlclNldHRlclN0cnVjdHVyZS5nZXQoKSkKICAgICAgICAgLCBtX2dldHRlcihn
ZXR0ZXIpCiAgICAgICAgICwgbV9zZXR0ZXIoc2V0dGVyKQorICAgICAgICAsIG1fZG9tSklUKGRv
bUpJVCkKICAgICB7CiAgICAgfQogCiAgICAgQ3VzdG9tR2V0dGVyIG1fZ2V0dGVyOwogICAgIEN1
c3RvbVNldHRlciBtX3NldHRlcjsKKyAgICBET01KSVQ6OkdyYXBoKiBtX2RvbUpJVDsKIH07CiAK
IEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgY2FsbEN1c3RvbVNldHRlcihFeGVjU3RhdGUqLCBDdXN0
b21HZXR0ZXJTZXR0ZXI6OkN1c3RvbVNldHRlciwgYm9vbCBpc0FjY2Vzc29yLCBKU1ZhbHVlIHRo
aXNWYWx1ZSwgSlNWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRyaW5zaWMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNp
Yy5oCmluZGV4IDNlZTlkYmViYTVmODdlM2EzZGQ0ZThkNGIxNTE2MGEyYmRjNzdiZDQuLjA0MTVj
ZGFjN2EyODczZDM0OGQ4M2FiYTU4MTZkOWIwZTJiODQ1NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oCkBAIC03MCw2ICs3MCw3IEBAIGVudW0gSlNfRVhQT1JU
X1BSSVZBVEUgSW50cmluc2ljIHsKICAgICBUeXBlZEFycmF5TGVuZ3RoSW50cmluc2ljLAogICAg
IFR5cGVkQXJyYXlCeXRlTGVuZ3RoSW50cmluc2ljLAogICAgIFR5cGVkQXJyYXlCeXRlT2Zmc2V0
SW50cmluc2ljLAorICAgIERPTU5vZGVGaXJzdENoaWxkSW50cmluc2ljLAogCiAgICAgLy8gRGVi
dWdnaW5nIGludHJpbnNpY3MuIFRoZXNlIGFyZSBtZWFudCB0byBiZSB1c2VkIGFzIHRlc3Rpbmcg
aGFja3Mgd2l0aGluCiAgICAgLy8ganNjLmNwcCBhbmQgc2hvdWxkIG5ldmVyIGJlIGV4cG9zZWQg
dG8gdXNlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCA2
OTViZmI3MmVmZDQ2NzZmZmFiMWJkNWM2MmRkMjY0NTc4MDVlODkwLi5hNjA5YTQ4YzkwODZjNDNi
ZDRmYmUxNWNiN2VkOTljNzM4NDRmOTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmgKQEAgLTEyOTAsNyArMTI5MCw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKU09i
amVjdDo6ZmlsbEN1c3RvbUdldHRlclByb3BlcnR5U2xvdChQcm9wZXJ0eVNsb3QmIHNsb3QsIEpT
CiAKICAgICAvLyBUaGlzIGFjY2VzcyBpcyBjYWNoZWFibGUgYmVjYXVzZSBTdHJ1Y3R1cmUgcmVx
dWlyZXMgYW4gYXR0cmlidXRlQ2hhbmdlZFRyYW5zaXRpb24KICAgICAvLyBpZiB0aGlzIHByb3Bl
cnR5IHN0b3BzIGJlaW5nIGFuIGFjY2Vzc29yLgotICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9t
KHRoaXMsIGF0dHJpYnV0ZXMsIGpzQ2FzdDxDdXN0b21HZXR0ZXJTZXR0ZXIqPihjdXN0b21HZXR0
ZXJTZXR0ZXIpLT5nZXR0ZXIoKSk7CisgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpcywg
YXR0cmlidXRlcywganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+KGN1c3RvbUdldHRlclNldHRl
ciktPmdldHRlcigpLCBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oY3VzdG9tR2V0dGVyU2V0
dGVyKS0+ZG9tSklUKCkpOwogfQogCiAvLyBJdCBtYXkgc2VlbSBjcmF6eSB0byBpbmxpbmUgYSBm
dW5jdGlvbiB0aGlzIGxhcmdlLCBlc3BlY2lhbGx5IGEgdmlydHVhbCBmdW5jdGlvbiwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKaW5kZXggMDEwZTkwNDdiN2VkZWE2NjQ0OGZi
OTcxZTNkNGVlOTZiZjA4Y2I5OC4uODM2MjdlZmU5YzQ4MTEyYzhlODAwNjFkM2Q2MmJiZDlmMzNk
OGE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmgKQEAgLTg2LDcgKzg2
LDEzIEBAIGVudW0gSlNUeXBlIDogdWludDhfdCB7CiAgICAgSlNNYXBUeXBlLAogICAgIEpTU2V0
VHlwZSwKIAotICAgIExhc3RKU0NPYmplY3RUeXBlID0gSlNTZXRUeXBlLAorICAgIC8vIFRoZSBE
T01Ob2RlVHlwZSB2YWx1ZSBtdXN0IGNvbWUgYmVmb3JlIGFueSBKU1R5cGUgdGhhdCBpcyBhIHN1
YmNsYXNzIG9mIEpTTm9kZS4KKyAgICBET01Ob2RlVHlwZSwKKyAgICBET01Eb2N1bWVudFdyYXBw
ZXJUeXBlLAorICAgIC8vIFRoZSBET01FbGVtZW50VHlwZSB2YWx1ZSBtdXN0IGNvbWUgYmVmb3Jl
IGFueSBKU1R5cGUgdGhhdCBpcyBhIHN1YmNsYXNzIG9mIEpTRWxlbWVudC4KKyAgICBET01FbGVt
ZW50VHlwZSwKKworICAgIExhc3RKU0NPYmplY3RUeXBlID0gRE9NRWxlbWVudFR5cGUsCiB9Owog
CiBDT01QSUxFX0FTU0VSVChzaXplb2YoSlNUeXBlKSA9PSBzaXplb2YodWludDhfdCksIHNpemVv
Zl9qc3R5cGVfaXNfb25lX2J5dGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTG9va3VwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAu
aAppbmRleCA2OTJkN2M3ODlmZWQ0N2I1YWQ3NDBjOWJkYTcyYzY2MjRhNjVhNGU3Li5kNjcyY2I2
NjNhNzBkNGIxODJkZTJhY2RhYzZlOWRkOTFhMzU4NDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Mb29rdXAuaApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkJhdGNoZWRUcmFu
c2l0aW9uT3B0aW1pemVyLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ3Vz
dG9tR2V0dGVyU2V0dGVyLmgiCisjaW5jbHVkZSAiRE9NSklUR3JhcGguaCIKICNpbmNsdWRlICJJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllcklubGluZXMuaCIKICNpbmNsdWRlICJJ
bnRyaW5zaWMuaCIKQEAgLTc4LDYgKzc5LDggQEAgc3RydWN0IEhhc2hUYWJsZVZhbHVlIHsKICAg
ICBHZXRGdW5jdGlvbiBwcm9wZXJ0eUdldHRlcigpIGNvbnN0IHsgQVNTRVJUKCEobV9hdHRyaWJ1
dGVzICYgQnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29yT3JMYXp5UHJvcGVydHlPckNvbnN0YW50
KSk7IHJldHVybiByZWludGVycHJldF9jYXN0PEdldEZ1bmN0aW9uPihtX3ZhbHVlcy52YWx1ZTEp
OyB9CiAgICAgUHV0RnVuY3Rpb24gcHJvcGVydHlQdXR0ZXIoKSBjb25zdCB7IEFTU0VSVCghKG1f
YXR0cmlidXRlcyAmIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6eVByb3BlcnR5T3JD
b25zdGFudCkpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQdXRGdW5jdGlvbj4obV92YWx1ZXMu
dmFsdWUyKTsgfQogCisgICAgRE9NSklUOjpHcmFwaCogZG9tSklUKCkgY29uc3QgeyBBU1NFUlQo
bV9hdHRyaWJ1dGVzICYgRE9NSklUQXR0cmlidXRlKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
RE9NSklUOjpHcmFwaCo+KG1fdmFsdWVzLnZhbHVlMSk7IH0KKwogICAgIE5hdGl2ZUZ1bmN0aW9u
IGFjY2Vzc29yR2V0dGVyKCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVzICYgQWNjZXNzb3Ip
OyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOYXRpdmVGdW5jdGlvbj4obV92YWx1ZXMudmFsdWUx
KTsgfQogICAgIE5hdGl2ZUZ1bmN0aW9uIGFjY2Vzc29yU2V0dGVyKCkgY29uc3QgeyBBU1NFUlQo
bV9hdHRyaWJ1dGVzICYgQWNjZXNzb3IpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOYXRpdmVG
dW5jdGlvbj4obV92YWx1ZXMudmFsdWUyKTsgfQogICAgIEJ1aWx0aW5HZW5lcmF0b3IgYnVpbHRp
bkFjY2Vzc29yR2V0dGVyR2VuZXJhdG9yKCkgY29uc3Q7CkBAIC0yMjQsNiArMjI3LDExIEBAIGlu
bGluZSBib29sIGdldFN0YXRpY1Byb3BlcnR5U2xvdEZyb21UYWJsZShWTSYgdm0sIGNvbnN0IEhh
c2hUYWJsZSYgdGFibGUsIEpTT2JqCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAg
IGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgRE9NSklUQXR0cmlidXRlKSB7CisgICAgICAgIHNs
b3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUo
ZW50cnktPmF0dHJpYnV0ZXMoKSksIGVudHJ5LT5kb21KSVQoKS0+Z2V0dGVyKCksIGVudHJ5LT5k
b21KSVQoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIHNsb3Quc2V0Q2Fj
aGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoZW50cnktPmF0
dHJpYnV0ZXMoKSksIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTI1OSw2ICsyNjcsNyBAQCBpbmxpbmUgYm9vbCBwdXRFbnRyeShFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEhhc2hUYWJsZVZhbHVlKiBlbnRyeSwgSlNPYmplY3QqIGJhcwogICAgICAgICBy
ZXR1cm4gcmVqZWN0KGV4ZWMsIHNsb3QuaXNTdHJpY3RNb2RlKCksIFN0cmljdE1vZGVSZWFkb25s
eVByb3BlcnR5V3JpdGVFcnJvcik7CiAKICAgICBpZiAoIShlbnRyeS0+YXR0cmlidXRlcygpICYg
UmVhZE9ubHkpKSB7CisgICAgICAgIEFTU0VSVCghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBET01K
SVRBdHRyaWJ1dGUpKTsKICAgICAgICAgYm9vbCBpc0FjY2Vzc29yID0gZW50cnktPmF0dHJpYnV0
ZXMoKSAmIEN1c3RvbUFjY2Vzc29yOwogICAgICAgICBKU1ZhbHVlIHVwZGF0ZVRoaXNWYWx1ZSA9
IGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBDdXN0b21BY2Nlc3NvciA/IHNsb3QudGhpc1ZhbHVlKCkg
OiBKU1ZhbHVlKGJhc2UpOwogICAgICAgICBib29sIHJlc3VsdCA9IGNhbGxDdXN0b21TZXR0ZXIo
ZXhlYywgZW50cnktPnByb3BlcnR5UHV0dGVyKCksIGlzQWNjZXNzb3IsIHVwZGF0ZVRoaXNWYWx1
ZSwgdmFsdWUpOwpAQCAtMzM2LDYgKzM0NSwxMyBAQCBpbmxpbmUgdm9pZCByZWlmeVN0YXRpY1By
b3BlcnR5KFZNJiB2bSwgY29uc3QgUHJvcGVydHlOYW1lJiBwcm9wZXJ0eU5hbWUsIGNvbnN0CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAodmFsdWUuYXR0cmlidXRlcygpICYgRE9N
SklUQXR0cmlidXRlKSB7CisgICAgICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IHZhbHVlLmRv
bUpJVCgpOworICAgICAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9
IEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBkb21KSVQtPmdldHRlcigpLCBkb21KSVQt
PnNldHRlcigpLCBkb21KSVQpOworICAgICAgICB0aGlzT2JqLnB1dERpcmVjdEN1c3RvbUFjY2Vz
c29yKHZtLCBwcm9wZXJ0eU5hbWUsIGN1c3RvbUdldHRlclNldHRlciwgYXR0cmlidXRlc0ZvclN0
cnVjdHVyZSh2YWx1ZS5hdHRyaWJ1dGVzKCkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIEN1c3RvbUdldHRlclNldHRlciogY3VzdG9tR2V0dGVyU2V0dGVyID0gQ3VzdG9tR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sIHZhbHVlLnByb3BlcnR5R2V0dGVyKCksIHZhbHVlLnByb3BlcnR5
UHV0dGVyKCkpOwogICAgIHRoaXNPYmoucHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHByb3Bl
cnR5TmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHZhbHVl
LmF0dHJpYnV0ZXMoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlTbG90LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eVNsb3QuaAppbmRleCBlMTM3ZDg0NWQ1ZmMzMTM4ODY1ZDE3NmEyMmE3ZTNiZDUxN2NlYjEz
Li4zNDRjMTQ4Zjk5M2Q5NTU2OWY3ZGM5N2RmMjY0NzJlN2JmYWU3ZmU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaApAQCAtMjYsNyArMjYsOSBAQAog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBKU0MgewotCituYW1lc3Bh
Y2UgRE9NSklUIHsKK2NsYXNzIEdyYXBoOworfQogY2xhc3MgRXhlY1N0YXRlOwogY2xhc3MgR2V0
dGVyU2V0dGVyOwogY2xhc3MgSlNPYmplY3Q7CkBAIC00OCw2ICs1MCw3IEBAIGVudW0gQXR0cmli
dXRlIHsKICAgICBDZWxsUHJvcGVydHkgICAgICA9IDEgPDwgMTEsIC8vIHByb3BlcnR5IGlzIGEg
bGF6eSBwcm9wZXJ0eSAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIENsYXNz
U3RydWN0dXJlICAgID0gMSA8PCAxMiwgLy8gcHJvcGVydHkgaXMgYSBsYXp5IGNsYXNzIHN0cnVj
dHVyZSAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIFByb3BlcnR5Q2FsbGJh
Y2sgID0gMSA8PCAxMywgLy8gcHJvcGVydHkgdGhhdCBpcyBhIGxhenkgcHJvcGVydHkgY2FsbGJh
Y2sgLSBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKKyAgICBET01KSVRBdHRyaWJ1dGUg
ICA9IDEgPDwgMTQsIC8vIHByb3BlcnR5IGlzIGEgRE9NIEpJVCBhdHRyaWJ1dGUgLSBvbmx5IHVz
ZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBCdWlsdGluT3JGdW5jdGlvbiA9IEJ1aWx0aW4g
fCBGdW5jdGlvbiwgLy8gaGVscGVyIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAg
IEJ1aWx0aW5PckZ1bmN0aW9uT3JMYXp5UHJvcGVydHkgPSBCdWlsdGluIHwgRnVuY3Rpb24gfCBD
ZWxsUHJvcGVydHkgfCBDbGFzc1N0cnVjdHVyZSB8IFByb3BlcnR5Q2FsbGJhY2ssIC8vIGhlbHBl
ciBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBCdWlsdGluT3JGdW5jdGlvbk9y
QWNjZXNzb3JPckxhenlQcm9wZXJ0eSA9IEJ1aWx0aW4gfCBGdW5jdGlvbiB8IEFjY2Vzc29yIHwg
Q2VsbFByb3BlcnR5IHwgQ2xhc3NTdHJ1Y3R1cmUgfCBQcm9wZXJ0eUNhbGxiYWNrLCAvLyBoZWxw
ZXIgb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCkBAIC0xNTcsNiArMTYwLDExIEBAIGNs
YXNzIFByb3BlcnR5U2xvdCB7CiAgICAgICAgIHJldHVybiBtX3dhdGNocG9pbnRTZXQ7CiAgICAg
fQogCisgICAgRE9NSklUOjpHcmFwaCogZG9tSklUKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBtX2RvbUpJVDsKKyAgICB9CisKICAgICB2b2lkIHNldFZhbHVlKEpTT2JqZWN0KiBzbG90
QmFzZSwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAg
IEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykp
OwpAQCAtMjExLDcgKzIxOSw3IEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAgICAgIG1fb2Zm
c2V0ID0gaW52YWxpZE9mZnNldDsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzZXRDYWNoZWFibGVD
dXN0b20oSlNPYmplY3QqIHNsb3RCYXNlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBHZXRWYWx1ZUZ1
bmMgZ2V0VmFsdWUpCisgICAgdm9pZCBzZXRDYWNoZWFibGVDdXN0b20oSlNPYmplY3QqIHNsb3RC
YXNlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBHZXRWYWx1ZUZ1bmMgZ2V0VmFsdWUsIERPTUpJVDo6
R3JhcGgqIGRvbUpJVCA9IG51bGxwdHIpCiAgICAgewogICAgICAgICBBU1NFUlQoYXR0cmlidXRl
cyA9PSBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKGF0dHJpYnV0ZXMpKTsKICAgICAgICAgCkBAIC0y
MjMsNiArMjMxLDcgQEAgY2xhc3MgUHJvcGVydHlTbG90IHsKICAgICAgICAgbV9zbG90QmFzZSA9
IHNsb3RCYXNlOwogICAgICAgICBtX3Byb3BlcnR5VHlwZSA9IFR5cGVDdXN0b207CiAgICAgICAg
IG1fb2Zmc2V0ID0gIWludmFsaWRPZmZzZXQ7CisgICAgICAgIG1fZG9tSklUID0gZG9tSklUOwog
ICAgIH0KIAogICAgIHZvaWQgc2V0Q3VzdG9tR2V0dGVyU2V0dGVyKEpTT2JqZWN0KiBzbG90QmFz
ZSwgdW5zaWduZWQgYXR0cmlidXRlcywgQ3VzdG9tR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIp
CkBAIC0zMTgsNiArMzI3LDcgQEAgY2xhc3MgUHJvcGVydHlTbG90IHsKICAgICBDYWNoZWFiaWxp
dHlUeXBlIG1fY2FjaGVhYmlsaXR5OwogICAgIFByb3BlcnR5VHlwZSBtX3Byb3BlcnR5VHlwZTsK
ICAgICBJbnRlcm5hbE1ldGhvZFR5cGUgbV9pbnRlcm5hbE1ldGhvZFR5cGU7CisgICAgRE9NSklU
OjpHcmFwaCogbV9kb21KSVQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX2lzVGFpbnRlZEJ5T3Bh
cXVlT2JqZWN0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFz
LmggYi9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAppbmRleCA2ZThhMjE0NGMxMWMxYjhi
MmY1ZjI3ZjdmYzBjM2RlZmFjN2RmMmI2Li45MjA4MzA5MmI5MzFmODliMDZkYzg1YjllMWE1NDZm
YTI2MzI3MmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaApAQCAtNjgsNiArNjgsOCBAQAogLy8gTlVM
TCBjYW4gY2F1c2UgY29tcGlsZXIgcHJvYmxlbXMsIGVzcGVjaWFsbHkgaW4gY2FzZXMgb2YgbXVs
dGlwbGUgaW5oZXJpdGFuY2UuCiAjZGVmaW5lIE9CSkVDVF9PRkZTRVRPRihjbGFzcywgZmllbGQp
IChyZWludGVycHJldF9jYXN0PHB0cmRpZmZfdD4oJihyZWludGVycHJldF9jYXN0PGNsYXNzKj4o
MHg0MDAwKS0+ZmllbGQpKSAtIDB4NDAwMCkKIAorI2RlZmluZSBDQVNUX09GRlNFVChmcm9tLCB0
bykgKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihzdGF0aWNfY2FzdDx0bz4oKHJlaW50ZXJw
cmV0X2Nhc3Q8ZnJvbT4oMHg0MDAwKSkpKSAtIDB4NDAwMCkKKwogLy8gU1RSSU5HSVpFOiBDYW4g
Y29udmVydCBhbnkgdmFsdWUgdG8gcXVvdGVkIHN0cmluZywgZXZlbiBleHBhbmRhYmxlIG1hY3Jv
cwogI2RlZmluZSBTVFJJTkdJWkUoZXhwKSAjZXhwCiAjZGVmaW5lIFNUUklOR0laRV9WQUxVRV9P
RihleHApIFNUUklOR0laRShleHApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJk
aW5nSGVhZGVycy9kb21qaXQvRE9NSklUR3JhcGguaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL2RvbWppdC9ET01KSVRHcmFwaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ODAzYzdmOGJmNTQ0
NmNkNGJlNWMzODRjZGI0YzUxYjMyNjE3YzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy9kb21qaXQvRE9NSklUR3JhcGguaApAQCAtMCwwICsxLDQg
QEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfRE9NSklUR3JhcGhfaAorI2RlZmluZSBXZWJDb3JlX0ZX
RF9ET01KSVRHcmFwaF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRE9NSklUR3JhcGguaD4K
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA2ZjY4N2U4ZWNkNzNkYTg4YjQ5
ZDg3OTc1OGNhYmQ1NTY3ZjAzNzJhLi43ZTk5YTQ5MWU2NDg3NmQwY2E4NjEzYWRjNDkyMDNjYmE0
ZmQ2MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTQsNiArMTQsNyBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2J5dGVjb21waWxlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RmZyIKICAg
ICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Rpc2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2RvbWppdCIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2hlYXAiCiAgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9kZWJ1Z2dlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L2ludGVycHJldGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsu
Y21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBiMTUzZTQwMjRk
MTVlOWE0Nzk2NDcwMzdlNjVlNmUxYjZkMzZhMDhmLi4wNDY2Y2U1YTZhZmRjNjliYmFjNWY1ZjVm
NzVlZjM1ZjAxNWU5ZGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTksNiArMTks
NyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtKQVZB
U0NSSVBUQ09SRV9ESVJ9L2J5dGVjb21waWxlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9
L2RmZyIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Rpc2Fzc2VtYmxlciIKKyAgICAiJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L2RvbWppdCIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2hl
YXAiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZWJ1Z2dlciIKICAgICAiJHtKQVZBU0NS
SVBUQ09SRV9ESVJ9L2ludGVycHJldGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCAz
NGI4ZGIyNzBiZjY5NGIyZTA3ZDE4NDkxYWE4NzQ2NzQzNTY3ZmM4Li5iYzQ3YzRlYWFkZDY2OWI0
NTRmNzY4NmJhMzIyNTRlY2MxODZjODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAt
ODAsNiArODAsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
ICAiJHtXRUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvYmluZGluZ3MiCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2J5dGVjb2RlIgogICAgICIke1dFQkNPUkVfRElS
fS9Gb3J3YXJkaW5nSGVhZGVycy9kZWJ1Z2dlciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vRm9yd2Fy
ZGluZ0hlYWRlcnMvZG9taml0IgogICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVy
cy9oZWFwIgogICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3Ii
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2ludGVycHJldGVyIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBhZWQ4ZGViMGEyODg3N2Q5NTY2ZDM3OGJkNTlhZGNk
MGVmOGE3Y2VkLi5hMzhmZTE5M2VjY2EzMDdkMTU5NWFiNGJhMzdhZjI1YzZjNTIxMGU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTUsNiArMTUsNyBAQCBsaXN0KEFQUEVORCBXZWJD
b3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3
YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIiCiAgICAgIiR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvZGZnIgogICAg
ICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3Jl
L2Rpc2Fzc2VtYmxlciIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVh
ZGVycy9KYXZhU2NyaXB0Q29yZS9kb21qaXQiCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0v
Rm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvaGVhcCIKICAgICAiJHtERVJJVkVEX1NP
VVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlciIKICAg
ICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5oCmluZGV4IGQ0MGM0M2Y2M2Q1N2U3ZTU5NzBjN2U2MmVmYTg1NmFlNjRlMzJmMjku
LjExNmQ1ZGRmNTE5OTM3ZmM2NjEzNTVhMmM4OWJlYmIzODA1YmMyYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaApAQCAtNzIsNiArNzIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCgp
IHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KICAgICAgICAgYm9vbCB3b3JsZElzTm9ybWFsKCkg
Y29uc3QgeyByZXR1cm4gbV93b3JsZElzTm9ybWFsOyB9CisgICAgICAgIHN0YXRpYyBwdHJkaWZm
X3Qgb2Zmc2V0T2ZXb3JsZElzTm9ybWFsKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTRE9N
R2xvYmFsT2JqZWN0LCBtX3dvcmxkSXNOb3JtYWwpOyB9CiAKICAgICAgICAgSlNCdWlsdGluSW50
ZXJuYWxGdW5jdGlvbnMmIGJ1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucygpIHsgcmV0dXJuIG1fYnVp
bHRpbkludGVybmFsRnVuY3Rpb25zOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XcmFwcGVyLmgKaW5kZXggY2Q1MGFlZjgwMWI4NTkyOWQ2NzM4NmFlNjI2YzdjYWU1ODcyZjRh
NC4uY2VjNmI4ZDZiZDdmNjQ1MGM0ZDBhOWQ3MTczYjNhNWM5MGYzOTc3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKQEAgLTMwLDEwICszMCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEpTRE9NV2luZG93OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKIAotc3RhdGljIGNvbnN0IHVpbnQ4X3QgSlNOb2RlVHlwZSA9IEpTQzo6TGFzdEpT
Q09iamVjdFR5cGUgKyAxOwotc3RhdGljIGNvbnN0IHVpbnQ4X3QgSlNEb2N1bWVudFdyYXBwZXJU
eXBlID0gSlNDOjpMYXN0SlNDT2JqZWN0VHlwZSArIDI7Ci1zdGF0aWMgY29uc3QgdWludDhfdCBK
U0VsZW1lbnRUeXBlID0gSlNDOjpMYXN0SlNDT2JqZWN0VHlwZSArIDM7Ci0KIGNsYXNzIEpTRE9N
T2JqZWN0IDogcHVibGljIEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QgewogcHVibGljOgogICAg
IHR5cGVkZWYgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCBCYXNlOwpAQCAtNTksNiArNTUsNyBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBJbXBsZW1lbnRhdGlvbkNsYXNzPiBjbGFzcyBKU0RPTVdyYXBw
ZXIgOiBwdWJsaWMgSlNET01PYmplY3QgewogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RP
TVdyYXBwZXIgPSB0cnVlOwogCiAgICAgSW1wbGVtZW50YXRpb25DbGFzcyYgd3JhcHBlZCgpIGNv
bnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8SW1wbGVtZW50YXRpb25DbGFzcyY+KG1fd3JhcHBlZC5n
ZXQoKSk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV3JhcHBlZCgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihKU0RPTVdyYXBwZXI8SW1wbGVtZW50YXRpb25DbGFzcz4sIG1fd3Jh
cHBlZCk7IH0KIAogcHJvdGVjdGVkOgogICAgIEpTRE9NV3JhcHBlcihKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJlZjxJbXBsZW1l
bnRhdGlvbkNsYXNzPiYmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RvY3VtZW50Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rv
Y3VtZW50Q3VzdG9tLmgKaW5kZXggNjljNGNhODI4OTE5YzliMTNhYmFiMWM4M2I2YmFhMDJhOWQ2
YmMyYS4uZjBhYzdjNzQxOGIwNThlNWMxMGQxNjhiMDEyMzY1MDlkMjM1MTJlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaApAQCAtMzUsNyArMzUs
NyBAQCBBTFdBWVNfSU5MSU5FIEpTRG9jdW1lbnQqIGpzRG9jdW1lbnRDYXN0KEpTQzo6SlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBpZiAoVU5MSUtFTFkoIXZhbHVlLmlzQ2VsbCgpKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPT0gSlNE
b2N1bWVudFdyYXBwZXJUeXBlID8gSlNDOjpqc0Nhc3Q8SlNEb2N1bWVudCo+KHZhbHVlKSA6IG51
bGxwdHI7CisgICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPT0gSlNDOjpET01Eb2N1
bWVudFdyYXBwZXJUeXBlID8gSlNDOjpqc0Nhc3Q8SlNEb2N1bWVudCo+KHZhbHVlKSA6IG51bGxw
dHI7CiB9CiAKIEpTQzo6SlNPYmplY3QqIGNhY2hlZERvY3VtZW50V3JhcHBlcihKU0M6OkV4ZWNT
dGF0ZSYsIEpTRE9NR2xvYmFsT2JqZWN0JiwgRG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmgKaW5kZXggMmExYmEwMTgwMzI0ZDA4NGI0YWM1
YjZiMmM5NTdlZGMzOWE3OTZmNy4uZjJiYTBkOWJhY2M1MDI2MDliYzYyYTcxYmY5NWNiYWE3Y2Zh
NDk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3Vz
dG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmgK
QEAgLTM1LDcgKzM1LDcgQEAgQUxXQVlTX0lOTElORSBKU0VsZW1lbnQqIGpzRWxlbWVudENhc3Qo
SlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChVTkxJS0VMWSghdmFsdWUuaXNDZWxsKCkp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5
cGUoKSA+PSBKU0VsZW1lbnRUeXBlID8gSlNDOjpqc0Nhc3Q8SlNFbGVtZW50Kj4odmFsdWUpIDog
bnVsbHB0cjsKKyAgICByZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA+PSBKU0M6OkRPTUVs
ZW1lbnRUeXBlID8gSlNDOjpqc0Nhc3Q8SlNFbGVtZW50Kj4odmFsdWUpIDogbnVsbHB0cjsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVDdXN0b20uaAppbmRleCBhYjYzNjFjNjUzZWUxODZlMDc0YmNlMjM1MmQ1MmNiYjg2ZjcxM2Yw
Li41MDE0OWY4Mjk4OWM4YWE5Y2IxMjY2N2M1ZDIzZDY4NDZlNjcwN2NlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaApAQCAtODIsNyArODIsNyBAQCBBTFdBWVNf
SU5MSU5FIEpTTm9kZSoganNOb2RlQ2FzdChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYg
KFVOTElLRUxZKCF2YWx1ZS5pc0NlbGwoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID49IEpTTm9kZVR5cGUgPyBKU0M6OmpzQ2Fz
dDxKU05vZGUqPih2YWx1ZSkgOiBudWxscHRyOworICAgIHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+
dHlwZSgpID49IEpTQzo6RE9NTm9kZVR5cGUgPyBKU0M6OmpzQ2FzdDxKU05vZGUqPih2YWx1ZSkg
OiBudWxscHRyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IDVkOTMyNjExNGFhNmYwYzFkNGYw
YjdiY2UxNjRhMTIzOGUyNmE5MGMuLjJlNTgyYmI1MGJjOTllYWIzYjA4NjFkY2UwZjg5NzhiN2Jj
OTU0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBw
YWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5o
CkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIFNjcmlwdFdyYXBwYWJsZSB7CiAgICAgSlNET01PYmpl
Y3QqIHdyYXBwZXIoKSBjb25zdDsKICAgICB2b2lkIHNldFdyYXBwZXIoSlNET01PYmplY3QqLCBK
U0M6OldlYWtIYW5kbGVPd25lciosIHZvaWQqKTsKICAgICB2b2lkIGNsZWFyV3JhcHBlcihKU0RP
TU9iamVjdCopOworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXcmFwcGVyKCkgeyByZXR1
cm4gT0JKRUNUX09GRlNFVE9GKFNjcmlwdFdyYXBwYWJsZSwgbV93cmFwcGVyKTsgfQogCiBwcm90
ZWN0ZWQ6CiAgICAgflNjcmlwdFdyYXBwYWJsZSgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBhNmI5MDBlZTMyYzFl
OTRkOTAwNzUzYzRlOTBjMzIxNDljYjE3YjQ0Li4xYWExM2UzYTNmMWE4MzNlZmUzYzQ0NWFlZTBk
ZTQzMzg1ZGMzNDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNjI2LDYgKzYyNiw3IEBAIHN1YiBHZXRKU0NBdHRyaWJ1
dGVzRm9yQXR0cmlidXRlCiAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RW51bSIpIGlmICgkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3RFbnVtZXJhYmxlIn0g
fHwgJGlzX2dsb2JhbF9jb25zdHJ1Y3Rvcik7CiAgICAgcHVzaChAc3BlY2lhbHMsICJSZWFkT25s
eSIpIGlmIElzUmVhZG9ubHkoJGF0dHJpYnV0ZSk7CiAgICAgcHVzaChAc3BlY2lhbHMsICJDdXN0
b21BY2Nlc3NvciIpIHVubGVzcyAkaXNfZ2xvYmFsX2NvbnN0cnVjdG9yIG9yIElzSlNCdWlsdGlu
KCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOworICAgIHB1c2goQHNwZWNpYWxzLCAiRE9NSklUQXR0
cmlidXRlIikgaWYgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RE9NSklUIn07CiAgICAgcHVzaChAc3BlY2lhbHMsICJBY2Nlc3NvciB8IEJ1aWx0aW4iKSBpZiAg
SXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAgICAgcmV0dXJuIChAc3BlY2lh
bHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7CiB9CkBAIC0xMjg2LDExICsx
Mjg3LDExIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmIChJc0RPTUdsb2JhbE9iamVjdCgk
aW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpT
Qzo6VHlwZUluZm8oSlNDOjpHbG9iYWxPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7XG4iKTsKICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2Uo
JGludGVyZmFjZSwgIkRvY3VtZW50IikpIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6SlNUeXBlKEpTRG9jdW1lbnRXcmFwcGVyVHlw
ZSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpET01Eb2N1bWVudFdyYXBwZXJU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKICAgICB9IGVsc2lmICgkY29kZUdl
bmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIkVsZW1lbnQiKSkgewotICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpK
U1R5cGUoSlNFbGVtZW50VHlwZSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOworICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpE
T01FbGVtZW50VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfSBlbHNp
ZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJOb2RlIikp
IHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3Ry
dWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZv
KEpTQzo6SlNUeXBlKEpTTm9kZVR5cGUpLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsK
KyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6RE9NTm9kZVR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5m
byhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOwogICAgIH0K
QEAgLTEzNDgsNiArMTM0OSw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIG15ICRoYXNGb3J3
YXJkRGVjbGFyaW5nRnVuY3Rpb25zID0gMDsKICAgICBteSAkaGFzRm9yd2FyZERlY2xhcmluZ0F0
dHJpYnV0ZXMgPSAwOwogCisgICAgbXkgJGhhc0RPTUpJVEF0dHJpYnV0ZXMgPSAwOworCiAgICAg
IyBBdHRyaWJ1dGUgYW5kIGZ1bmN0aW9uIGVudW1zCiAgICAgaWYgKCRudW1BdHRyaWJ1dGVzID4g
MCkgewogICAgICAgICBmb3JlYWNoIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CkBAIC0x
MzYyLDYgKzEzNjUsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgICAgICAkbmVl
ZHNWaXNpdENoaWxkcmVuID0gMTsKICAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAkaGFzRE9NSklUQXR0cmlidXRlcyA9IDEgaWYgJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07CiAKICAgICAgICAgICAgIGlmICgkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJGb3J3YXJkRGVjbGFyZUlu
SGVhZGVyIn0pIHsKICAgICAgICAgICAgICAgICAkaGFzRm9yd2FyZERlY2xhcmluZ0F0dHJpYnV0
ZXMgPSAxOwpAQCAtMTU3OSw2ICsxNTgzLDE1IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAg
ICB9CiAgICAgfQogCisgICAgaWYgKCRoYXNET01KSVRBdHRyaWJ1dGVzKSB7CisgICAgICAgICRo
ZWFkZXJJbmNsdWRlc3siPGRvbWppdC9ET01KSVRHcmFwaC5oPiJ9ID0gMTsKKyAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwiLy8gRE9NSklUIGVtaXR0ZXJzIGZvciBhdHRyaWJ1dGVzXG5cbiIp
OworICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRl
c30pIHsKKyAgICAgICAgICAgIG5leHQgdW5sZXNzICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9OworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIkpTQzo6RE9NSklUOjpHcmFwaCogZG9tSklURW1pdHRlckZvciIgLiAkaW50ZXJmYWNl
LT5uYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5uYW1lKSAuICIodm9pZCk7XG4iKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmIChIYXND
dXN0b21Db25zdHJ1Y3RvcigkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiLy8gQ3VzdG9tIGNvbnN0cnVjdG9yXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3Qke2NsYXNz
TmFtZX0oSlNDOjpFeGVjU3RhdGUmKTtcblxuIik7CkBAIC0xNjU1LDE0ICsxNjY4LDE5IEBAIHN1
YiBHZW5lcmF0ZVByb3BlcnRpZXNIYXNoVGFibGUKICAgICAgICAgbXkgJHNwZWNpYWwgPSBHZXRK
U0NBdHRyaWJ1dGVzRm9yQXR0cmlidXRlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAgICAg
ICBwdXNoKEAkaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7CiAKLSAgICAgICAgbXkgJGdldHRlciA9
IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0
ZSk7Ci0gICAgICAgIHB1c2goQCRoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKLQotICAgICAgICBpZiAo
SXNSZWFkb25seSgkYXR0cmlidXRlKSkgeworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn0pIHsKKyAgICAgICAgICAgIHB1c2go
QCRoYXNoVmFsdWUxLCAiZG9tSklURW1pdHRlckZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNv
ZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSAuICIo
KSIpOwogICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICIwIik7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50
ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQCRoYXNo
VmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVH
ZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAg
ICAgcHVzaChAJGhhc2hWYWx1ZTEsICRnZXR0ZXIpOworCisgICAgICAgICAgICBpZiAoSXNSZWFk
b25seSgkYXR0cmlidXRlKSkgeworICAgICAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUyLCAi
MCIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0g
R2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRl
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMiwgJHNldHRlcik7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9OwpAQCAtMjQ1
NCwxNyArMjQ3MiwyMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAg
bXkgQHNwZWNpYWxzID0gKCk7CiAgICAgICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxl
dGUiKSB1bmxlc3MgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RGVsZXRhYmxlIn07CiAgICAgICAgICAgICBwdXNoKEBzcGVjaWFscywgIlJlYWRPbmx5IikgaWYg
SXNSZWFkb25seSgkYXR0cmlidXRlKTsKKyAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRE9N
SklUQXR0cmlidXRlIikgaWYgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiRE9NSklUIn07CiAgICAgICAgICAgICBteSAkc3BlY2lhbCA9IChAc3BlY2lhbHMgPiAw
KSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7CiAgICAgICAgICAgICBwdXNoKEBoYXNo
U3BlY2lhbHMsICRzcGVjaWFsKTsKIAotICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJp
YnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAg
ICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKLQotICAgICAgICAgICAgaWYgKElz
UmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifSkgeworICAgICAgICAgICAgICAg
IHB1c2goQGhhc2hWYWx1ZTEsICJkb21KSVRFbWl0dGVyRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUp
IC4gIigpIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgIjAiKTsKICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0
ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAg
ICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJHNldHRlcik7CisgICAgICAgICAgICAgICAgbXkg
JGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwg
JGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGdldHRlcik7
CisKKyAgICAgICAgICAgICAgICBpZiAoSXNSZWFkb25seSgkYXR0cmlidXRlKSkgeworICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAiMCIpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0
ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn07CkBAIC0zMDM0
LDYgKzMwNTgsMzUgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCisgICAgICAgICAgICBpZiAoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn0pIHsKKyAgICAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyI8d3RmL05ldmVyRGVzdHJveWVkLmg+In0gPSAxOworICAg
ICAgICAgICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICAg
ICAgICAgICAgICBteSAkZG9tSklUQ2xhc3NOYW1lID0gIkRPTUpJVCIgLiAkaW50ZXJmYWNlTmFt
ZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFt
ZSk7CisgICAgICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUo
JGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgbXkg
JHNldHRlciA9IElzUmVhZG9ubHkoJGF0dHJpYnV0ZSkgPyAibnVsbHB0ciIgOiBHZXRBdHRyaWJ1
dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworCisgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJjbGFzcyAkZG9tSklUQ2xhc3NOYW1lIDog
cHVibGljIEpTQzo6RE9NSklUOjpHcmFwaCB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgInB1YmxpYzpcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICRkb21KSVRDbGFzc05hbWUoKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIDogSlNDOjpET01KSVQ6OkdyYXBoKCRnZXR0ZXIsICRzZXR0
ZXIsIEpTQzo6U3BlY0RPTU5vZGUpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAgICAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6RE9NSklUO1xuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGFwcGVuZChLaW5kOjpDaGVja05vZGUsIElSOjp0
aGlzVmFsdWUoKSwgbnVsbHB0cik7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgSVIqIHdyYXBwZWQgPSBhcHBlbmQoS2luZDo6R2V0V3JhcHBlZCwgSVI6
OnRoaXNWYWx1ZSgpLCBudWxscHRyLCBKU05vZGU6Om9mZnNldE9mV3JhcHBlZCgpKTtcbiIpOwor
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBhcHBlbmQoS2luZDo6
Q2hlY2tOb2RlRmxhZ3MsIHdyYXBwZWQsIG51bGxwdHIsIE5vZGU6Om5vZGVGbGFnc01lbW9yeU9m
ZnNldCgpLCBOb2RlOjpJc0NvbnRhaW5lckZsYWcpO1xuIik7CisgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIElSKiByZXN1bHQgPSBhcHBlbmQoS2luZDo6TG9hZFBv
aW50ZXIsIG51bGxwdHIsIG51bGxwdHIsIENBU1RfT0ZGU0VUKCRpbnRlcmZhY2VOYW1lKiwgQ29u
dGFpbmVyTm9kZSopICsgQ29udGFpbmVyTm9kZTo6Zmlyc3RDaGlsZE1lbW9yeU9mZnNldCgpKTtc
biIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJUiogd3Jh
cHBlciA9IGFwcGVuZChLaW5kOjpUb1dyYXBwZXIsIElSOjp0aGlzVmFsdWUoKSwgcmVzdWx0LCBD
QVNUX09GRlNFVCgkaW50ZXJmYWNlTmFtZSosIFNjcmlwdFdyYXBwYWJsZSopICsgU2NyaXB0V3Jh
cHBhYmxlOjpvZmZzZXRPZldyYXBwZXIoKSwgYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oc3RhdGlj
X2Nhc3Q8SlNDOjpFbmNvZGVkSlNWYWx1ZSAoKikoSlNDOjpFeGVjU3RhdGUqLCB2b2lkKiwgdm9p
ZCopPihbXShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgdm9pZCogd3JhcHBlZCwgdm9pZCogbm9kZSkg
eyByZXR1cm4gSlNDOjpKU1ZhbHVlOjplbmNvZGUodG9KUyhleGVjLCBzdGF0aWNfY2FzdDxKU05v
ZGUqPihub2RlKS0+Z2xvYmFsT2JqZWN0KCksIHN0YXRpY19jYXN0PE5vZGUqPih3cmFwcGVkKSkp
OyB9KSkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IGFwcGVuZChLaW5kOjpSZXR1cm4sIHdyYXBwZXIsIG51bGxwdHIpO1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CisgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ9O1xuXG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiSlNDOjpET01KSVQ6OkdyYXBoKiBkb21KSVRFbWl0dGVyRm9yIiAuICRpbnRlcmZh
Y2UtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1
cmUtPm5hbWUpIC4gIigpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IntcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDwkZG9tSklUQ2xhc3NOYW1lPiBlbWl0dGVyO1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICZlbWl0dGVyLmdldCgpO1xuIik7
CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAg
ICAgfQorCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGF0
dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nOwogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIlxuIik7CkBAIC01MDAxLDEyICs1MDU0LDE0IEBAIHN1YiBHZW5lcmF0ZUhhc2hUYWJsZVZh
bHVlQXJyYXkKICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8QnVp
bHRpbkdlbmVyYXRvcj4iOwogICAgICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0v
Q29uc3RhbnRJbnRlZ2VyLykgewogICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICIiOwor
ICAgICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vRE9NSklUQXR0cmlidXRlLykg
eworICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxKU0M6OkRPTUpJ
VDo6R3JhcGgqPiI7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRU
eXBlID0gInN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPiI7CiAgICAgICAg
ICAgICAkc2Vjb25kVGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4iOwogICAgICAgICAgICAgJGhhc1NldHRlciA9ICJ0cnVlIjsKICAgICAgICAg
fQotICAgICAgICBpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0YW50SW50ZWdlci8pIHsK
KyAgICAgICAgaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9Db25zdGFudEludGVnZXJ8RE9NSklU
QXR0cmlidXRlLykgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgeyBcIiRr
ZXlcIiwgQCRzcGVjaWFsc1skaV0sIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpIiAuICRmaXJz
dFRhcmdldFR5cGUgLiAiKEAkdmFsdWUxWyRpXSkgfSB9LFxuIik7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB7IFwiJGtleVwiLCBAJHNwZWNp
YWxzWyRpXSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KSIgLiAkZmlyc3RUYXJnZXRUeXBlIC4g
IihAJHZhbHVlMVskaV0pLCAoaW50cHRyX3QpICIgLiAkc2Vjb25kVGFyZ2V0VHlwZSAuICIoQCR2
YWx1ZTJbJGldKSB9IH0sXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IGQyODg1YTg0MmQ3NDQwOTkxYzYzODM5NzBjYzdk
OWIyYTY1ZjQyNmQuLmZjZWZiMGU4ODc0NzI4YTEwMjM1ZjFkMzQ5NGI5MDZhZDczNTQ5ZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4
dApAQCAtNTQsNiArNTQsNyBAQCBDdXN0b21SZXR1cm4KIEN1c3RvbVNldFByb3RvdHlwZQogQ3Vz
dG9tU2V0dGVyCiBDdXN0b21Ub0pTT2JqZWN0CitET01KSVQKIERlbGV0YWJsZQogRG9Ob3RDaGVj
a0NvbnN0YW50cwogRG9Ob3RDaGVja1NlY3VyaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaAppbmRleCA0YTMwY2ViNTk0YzZh
YjA4ZDAwZDQ5NTY2MWYzYmI2NjAzMzJhMGQzLi5lYmM3MmI4YTJhZjNkMDdkODkwMzY4YjQ2OTYz
Njk3NmU5YjBmY2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgV0VCQ09SRV9U
RVNUU1VQUE9SVF9FWFBPUlQgSlNUZXN0Tm9kZSA6IHB1YmxpYyBKU05vZGUgewogCiAgICAgc3Rh
dGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkpTVHlwZShKU05vZGVUeXBlKSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpET01Ob2Rl
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6
OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCmluZGV4IGUyNmMzMzI5ZWRkMjJkMDg4MDEyNWJlMjJmYmQxNjJiNmU3
YWE5YmEuLjM0Y2VlMWZkNDM5ZjA5YWRkOGQ0MmM2MDlkMDlkNWFjMWFhMmRmNjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaApAQCAtMTIwLDYgKzEyMCw0NiBAQCBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0
IHsKICAgICAgICAgRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZID0gMHgxMCwKICAgICAg
ICAgRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMgPSAweDIwLAogICAg
IH07CisgICAgZW51bSBOb2RlRmxhZ3MgeworICAgICAgICBJc1RleHRGbGFnID0gMSwKKyAgICAg
ICAgSXNDb250YWluZXJGbGFnID0gMSA8PCAxLAorICAgICAgICBJc0VsZW1lbnRGbGFnID0gMSA8
PCAyLAorICAgICAgICBJc1N0eWxlZEVsZW1lbnRGbGFnID0gMSA8PCAzLAorICAgICAgICBJc0hU
TUxGbGFnID0gMSA8PCA0LAorICAgICAgICBJc1NWR0ZsYWcgPSAxIDw8IDUsCisgICAgICAgIENo
aWxkTmVlZHNTdHlsZVJlY2FsY0ZsYWcgPSAxIDw8IDcsCisgICAgICAgIEluRG9jdW1lbnRGbGFn
ID0gMSA8PCA4LAorICAgICAgICBJc0xpbmtGbGFnID0gMSA8PCA5LAorICAgICAgICBJc1VzZXJB
Y3Rpb25FbGVtZW50ID0gMSA8PCAxMCwKKyAgICAgICAgSGFzUmFyZURhdGFGbGFnID0gMSA8PCAx
MSwKKyAgICAgICAgSXNEb2N1bWVudEZyYWdtZW50RmxhZyA9IDEgPDwgMTIsCisKKyAgICAgICAg
Ly8gVGhlc2UgYml0cyBhcmUgdXNlZCBieSBkZXJpdmVkIGNsYXNzZXMsIHB1bGxlZCB1cCBoZXJl
IHNvIHRoZXkgY2FuCisgICAgICAgIC8vIGJlIHN0b3JlZCBpbiB0aGUgc2FtZSBtZW1vcnkgd29y
ZCBhcyB0aGUgTm9kZSBiaXRzIGFib3ZlLgorICAgICAgICBJc1BhcnNpbmdDaGlsZHJlbkZpbmlz
aGVkRmxhZyA9IDEgPDwgMTMsIC8vIEVsZW1lbnQKKworICAgICAgICBTdHlsZUNoYW5nZU1hc2sg
PSAxIDw8IG5vZGVTdHlsZUNoYW5nZVNoaWZ0IHwgMSA8PCAobm9kZVN0eWxlQ2hhbmdlU2hpZnQg
KyAxKSB8IDEgPDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMiksCisgICAgICAgIElzRWRpdGlu
Z1RleHRPclVuZGVmaW5lZEN1c3RvbUVsZW1lbnRGbGFnID0gMSA8PCAxNywKKyAgICAgICAgSGFz
Rm9jdXNXaXRoaW4gPSAxIDw8IDE4LAorICAgICAgICBIYXNTeW50aGV0aWNBdHRyQ2hpbGROb2Rl
c0ZsYWcgPSAxIDw8IDE5LAorICAgICAgICBIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3NG
bGFnID0gMSA8PCAyMCwKKyAgICAgICAgSGFzRXZlbnRUYXJnZXREYXRhRmxhZyA9IDEgPDwgMjEs
CisgICAgICAgIElzQ3VzdG9tRWxlbWVudCA9IDEgPDwgMjIsCisgICAgICAgIElzSW5TaGFkb3dU
cmVlRmxhZyA9IDEgPDwgMjMsCisgICAgICAgIElzTWF0aE1MRmxhZyA9IDEgPDwgMjQsCisKKyAg
ICAgICAgQ2hpbGRyZW5BZmZlY3RlZEJ5Rmlyc3RDaGlsZFJ1bGVzRmxhZyA9IDEgPDwgMjUsCisg
ICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzRmxhZyA9IDEgPDwgMjYsCisg
ICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeUhvdmVyUnVsZXNGbGFnID0gMSA8PCAyNywKKworICAg
ICAgICBEaXJlY3RDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCAyOCwKKyAgICAgICAg
QWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxlID0gMSA8PCAyOSwKKyAgICAgICAgU3R5bGVJ
c0FmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcgPSAxIDw8IDMwLAorCisgICAgICAgIFNlbGZPckFu
Y2VzdG9ySGFzRGlyQXV0b0ZsYWcgPSAxIDw8IDMxLAorCisgICAgICAgIERlZmF1bHROb2RlRmxh
Z3MgPSBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZworICAgIH07CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgdm9pZCBzdGFydElnbm9yaW5nTGVha3MoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBzdG9wSWdub3JpbmdMZWFrcygpOwpAQCAtMTU1LDYgKzE5NSw4IEBA
IGNsYXNzIE5vZGUgOiBwdWJsaWMgRXZlbnRUYXJnZXQgewogICAgIE5vZGUqIHBzZXVkb0F3YXJl
UHJldmlvdXNTaWJsaW5nKCkgY29uc3Q7CiAgICAgTm9kZSogcHNldWRvQXdhcmVGaXJzdENoaWxk
KCkgY29uc3Q7CiAgICAgTm9kZSogcHNldWRvQXdhcmVMYXN0Q2hpbGQoKSBjb25zdDsKKyAgICBz
dGF0aWMgcHRyZGlmZl90IG5vZGVGbGFnc01lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihOb2RlLCBtX25vZGVGbGFncyk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IHJhcmVE
YXRhTWVtb3J5T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE5vZGUsIG1fZGF0YS5t
X3JhcmVEYXRhKTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgVVJMJiBiYXNlVVJJKCkg
Y29uc3Q7CiAgICAgCkBAIC01NjAsOCArNjAyLDYgQEAgY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVu
dFRhcmdldCB7CiAgICAgdm9pZCB1cGRhdGVBbmNlc3RvckNvbm5lY3RlZFN1YmZyYW1lQ291bnRG
b3JJbnNlcnRpb24oKSBjb25zdDsKIAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQotICAg
IHN0YXRpYyBwdHJkaWZmX3Qgbm9kZUZsYWdzTWVtb3J5T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNU
X09GRlNFVE9GKE5vZGUsIG1fbm9kZUZsYWdzKTsgfQotICAgIHN0YXRpYyBwdHJkaWZmX3QgcmFy
ZURhdGFNZW1vcnlPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTm9kZSwgbV9kYXRh
Lm1fcmFyZURhdGEpOyB9CiAgICAgc3RhdGljIGludDMyX3QgZmxhZ0lzVGV4dCgpIHsgcmV0dXJu
IElzVGV4dEZsYWc7IH0KICAgICBzdGF0aWMgaW50MzJfdCBmbGFnSXNFbGVtZW50KCkgeyByZXR1
cm4gSXNFbGVtZW50RmxhZzsgfQogICAgIHN0YXRpYyBpbnQzMl90IGZsYWdJc0hUTUwoKSB7IHJl
dHVybiBJc0hUTUxGbGFnOyB9CkBAIC01NzcsNDcgKzYxNyw2IEBAIGNsYXNzIE5vZGUgOiBwdWJs
aWMgRXZlbnRUYXJnZXQgewogI2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogCiBw
cm90ZWN0ZWQ6Ci0gICAgZW51bSBOb2RlRmxhZ3MgewotICAgICAgICBJc1RleHRGbGFnID0gMSwK
LSAgICAgICAgSXNDb250YWluZXJGbGFnID0gMSA8PCAxLAotICAgICAgICBJc0VsZW1lbnRGbGFn
ID0gMSA8PCAyLAotICAgICAgICBJc1N0eWxlZEVsZW1lbnRGbGFnID0gMSA8PCAzLAotICAgICAg
ICBJc0hUTUxGbGFnID0gMSA8PCA0LAotICAgICAgICBJc1NWR0ZsYWcgPSAxIDw8IDUsCi0gICAg
ICAgIENoaWxkTmVlZHNTdHlsZVJlY2FsY0ZsYWcgPSAxIDw8IDcsCi0gICAgICAgIEluRG9jdW1l
bnRGbGFnID0gMSA8PCA4LAotICAgICAgICBJc0xpbmtGbGFnID0gMSA8PCA5LAotICAgICAgICBJ
c1VzZXJBY3Rpb25FbGVtZW50ID0gMSA8PCAxMCwKLSAgICAgICAgSGFzUmFyZURhdGFGbGFnID0g
MSA8PCAxMSwKLSAgICAgICAgSXNEb2N1bWVudEZyYWdtZW50RmxhZyA9IDEgPDwgMTIsCi0KLSAg
ICAgICAgLy8gVGhlc2UgYml0cyBhcmUgdXNlZCBieSBkZXJpdmVkIGNsYXNzZXMsIHB1bGxlZCB1
cCBoZXJlIHNvIHRoZXkgY2FuCi0gICAgICAgIC8vIGJlIHN0b3JlZCBpbiB0aGUgc2FtZSBtZW1v
cnkgd29yZCBhcyB0aGUgTm9kZSBiaXRzIGFib3ZlLgotICAgICAgICBJc1BhcnNpbmdDaGlsZHJl
bkZpbmlzaGVkRmxhZyA9IDEgPDwgMTMsIC8vIEVsZW1lbnQKLQotICAgICAgICBTdHlsZUNoYW5n
ZU1hc2sgPSAxIDw8IG5vZGVTdHlsZUNoYW5nZVNoaWZ0IHwgMSA8PCAobm9kZVN0eWxlQ2hhbmdl
U2hpZnQgKyAxKSB8IDEgPDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMiksCi0gICAgICAgIElz
RWRpdGluZ1RleHRPclVuZGVmaW5lZEN1c3RvbUVsZW1lbnRGbGFnID0gMSA8PCAxNywKLSAgICAg
ICAgSGFzRm9jdXNXaXRoaW4gPSAxIDw8IDE4LAotICAgICAgICBIYXNTeW50aGV0aWNBdHRyQ2hp
bGROb2Rlc0ZsYWcgPSAxIDw8IDE5LAotICAgICAgICBIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxs
YmFja3NGbGFnID0gMSA8PCAyMCwKLSAgICAgICAgSGFzRXZlbnRUYXJnZXREYXRhRmxhZyA9IDEg
PDwgMjEsCi0gICAgICAgIElzQ3VzdG9tRWxlbWVudCA9IDEgPDwgMjIsCi0gICAgICAgIElzSW5T
aGFkb3dUcmVlRmxhZyA9IDEgPDwgMjMsCi0gICAgICAgIElzTWF0aE1MRmxhZyA9IDEgPDwgMjQs
Ci0KLSAgICAgICAgQ2hpbGRyZW5BZmZlY3RlZEJ5Rmlyc3RDaGlsZFJ1bGVzRmxhZyA9IDEgPDwg
MjUsCi0gICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzRmxhZyA9IDEgPDwg
MjYsCi0gICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeUhvdmVyUnVsZXNGbGFnID0gMSA8PCAyNywK
LQotICAgICAgICBEaXJlY3RDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCAyOCwKLSAg
ICAgICAgQWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxlID0gMSA8PCAyOSwKLSAgICAgICAg
U3R5bGVJc0FmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcgPSAxIDw8IDMwLAotCi0gICAgICAgIFNl
bGZPckFuY2VzdG9ySGFzRGlyQXV0b0ZsYWcgPSAxIDw8IDMxLAotCi0gICAgICAgIERlZmF1bHRO
b2RlRmxhZ3MgPSBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZwotICAgIH07Ci0KICAgICBi
b29sIGdldEZsYWcoTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fbm9kZUZsYWdzICYg
bWFzazsgfQogICAgIHZvaWQgc2V0RmxhZyhib29sIGYsIE5vZGVGbGFncyBtYXNrKSBjb25zdCB7
IG1fbm9kZUZsYWdzID0gKG1fbm9kZUZsYWdzICYgfm1hc2spIHwgKC0oaW50MzJfdClmICYgbWFz
ayk7IH0gCiAgICAgdm9pZCBzZXRGbGFnKE5vZGVGbGFncyBtYXNrKSBjb25zdCB7IG1fbm9kZUZs
YWdzIHw9IG1hc2s7IH0gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKaW5kZXggMTFkMWU2ZjM2MjNkMDEwMzc5NjNm
MTJjY2NjMDY4ZWU0ZTUwMWViYi4uNGNlNWE4NGUzZjQwZmY4MGQ3MGE3ODQ0MWUzMjA4MDA0NzYy
ZjMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbApAQCAtNDksNyArNDksNyBAQAogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBub2RlVHlwZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Tm9kZT8gcGFyZW50Tm9kZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgY2hpbGRO
b2RlczsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gZmlyc3RDaGlsZDsKKyAgICBbRE9N
SklUXSByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gZmlyc3RDaGlsZDsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgTm9kZT8gbGFzdENoaWxkOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBw
cmV2aW91c1NpYmxpbmc7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IG5leHRTaWJsaW5n
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
S2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA0N2QyOTRkZDQ5NWEzMTM3ZDc2ZmYwODg2ZWY1MTNi
N2JmYzQ4ZWU2Li4yYzIxOWI1ZGE3NDc1OWQ0MjAzMTlkNGFiOGFkY2YwY2FkMjljODMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dApAQCAtMTQ5LDYgKzE0OSw3IEBAIHNldChXZWJLaXQyX0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2NvbGxlY3Rvci9oYW5kbGVz
IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgogICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZG9taml0Igog
ICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L2ludGVycHJldGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaml0Igo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290184</attachid>
            <date>2016-09-28 23:42:24 -0700</date>
            <delta_ts>2016-09-29 10:31:05 -0700</delta_ts>
            <desc>Prototype rev5</desc>
            <filename>bug-162544-20160928233923.patch</filename>
            <type>text/plain</type>
            <size>147108</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YzI5ZjVkOGZhNTE1ZjA0MjRhZmNkNTEzZWI1ZDFmZDE1ODZlYzZiLi4wOTBlODc3OWMxYWIwOTRk
MTQ4ZGU0ZmQ5NTI4ZDQwYzMxNTkzZDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNzAgQEAKKzIwMTYtMDktMjggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0RhdGFGb3JtYXQuaDoKKyAgICAgICAgKiBieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2spOgorICAgICAgICAqIGJ5dGVjb2Rl
L0dldEJ5SWRWYXJpYW50LmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OkdldEJ5
SWRWYXJpYW50KToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6Om9wZXJhdG9yPSk6Cisg
ICAgICAgIChKU0M6OkdldEJ5SWRWYXJpYW50OjphdHRlbXB0VG9NZXJnZSk6CisgICAgICAgIChK
U0M6OkdldEJ5SWRWYXJpYW50OjpkdW1wSW5Db250ZXh0KToKKyAgICAgICAgKiBieXRlY29kZS9H
ZXRCeUlkVmFyaWFudC5oOgorICAgICAgICAoSlNDOjpHZXRCeUlkVmFyaWFudDo6ZG9tSklUKToK
KyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmludHJpbnNpYyk6IERlbGV0ZWQuCisgICAg
ICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nl
c3NDYXNlOjpnZXQpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpjbG9uZSk6CisgICAgICAg
ICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2Fz
ZTo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6UmFyZURhdGE6OlJhcmVEYXRh
KToKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgIChKU0M6
OmR1bXBTcGVjdWxhdGlvbik6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJvbVN0cnVjdHVy
ZSk6CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoKKyAgICAgICAgKEpTQzo6
aXNET01Ob2RlU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjppc0RPTUVsZW1lbnRTcGVjdWxh
dGlvbik6CisgICAgICAgIChKU0M6OmlzRE9NRG9jdW1lbnRXcmFwcGVyU3BlY3VsYXRpb24pOgor
ICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaDoKKyAgICAgICAgKEpTQzo6VmFsdWVS
ZWNvdmVyeTo6ZGlzcGxhY2VkSW5KU1N0YWNrKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJl
dGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZURPTUpJVEdldHRlcik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZUdldEJ5SWQpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAg
IChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJzRXhpdFN0
YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyc0V4aXRTdGF0ZSk6CisgICAgICAg
ICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAg
ICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHR2VuZXJhdGlvbkluZm8uaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpHZW5lcmF0aW9uSW5mbzo6aW5pdE9wYXF1ZVBvaW50ZXIpOgorICAgICAg
ICAoSlNDOjpERkc6OkdlbmVyYXRpb25JbmZvOjpmaWxsT3BhcXVlUG9pbnRlcik6CisgICAgICAg
IChKU0M6OkRGRzo6R2VuZXJhdGlvbkluZm86OmluaXRTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpHZW5lcmF0aW9uSW5mbzo6ZmlsbFN0b3JhZ2UpOiBEZWxldGVkLgorICAg
ICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzT3BhcXVl
UG9pbnRlclJlc3VsdCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRl
RE9NTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlRE9NRWxl
bWVudCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlRE9NRG9jdW1l
bnRXcmFwcGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNPcGFxdWVQb2ludGVyT2Zm
c2V0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpvcGFxdWVQb2ludGVyT2Zmc2V0KToKKyAg
ICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNOb2RlRmxhZ3NPcGVyYW5kKToKKyAgICAgICAgKEpT
Qzo6REZHOjpOb2RlOjpub2RlRmxhZ3NPcGVyYW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjpoYXNTbG93VG9KU09wZXJhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2xvd1Rv
SlNPcGVyYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc1N0b3JhZ2VSZXN1bHQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZUFycmF5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpkdW1wTm9kZUZsYWdzKToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Y2Fub25pY2FsUmVzdWx0UmVwcmVzZW50YXRpb24pOgorICAgICAg
ICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChK
U0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5G
b3JHUFIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsT3BhcXVlUG9p
bnRlcik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNoZWNrR2VuZXJhdGVk
VHlwZUZvclRvSW50MzIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ2hlY2tOb2RlRmxhZ3MpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlTG9hZE9wYXF1ZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0RE9NV3JhcHBlZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVUb0RPTVdyYXBwZXIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpzcGVjdWxhdGVET01Ob2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlRE9NRWxlbWVudCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OnNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcik6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwaWxsKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6b3BhcXVlUG9pbnRlclJlc3VsdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6T3BhcXVlUG9pbnRlck9wZXJhbmQ6Ok9wYXF1ZVBvaW50ZXJPcGVyYW5k
KToKKyAgICAgICAgKEpTQzo6REZHOjpPcGFxdWVQb2ludGVyT3BlcmFuZDo6fk9wYXF1ZVBvaW50
ZXJPcGVyYW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpPcGFxdWVQb2ludGVyT3BlcmFuZDo6ZWRn
ZSk6CisgICAgICAgIChKU0M6OkRGRzo6T3BhcXVlUG9pbnRlck9wZXJhbmQ6Om5vZGUpOgorICAg
ICAgICAoSlNDOjpERkc6Ok9wYXF1ZVBvaW50ZXJPcGVyYW5kOjpncHIpOgorICAgICAgICAoSlND
OjpERkc6Ok9wYXF1ZVBvaW50ZXJPcGVyYW5kOjp1c2UpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpzdG9yYWdlUmVzdWx0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmZpbGxKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Zmls
bFNwZWN1bGF0ZUludDMySW50ZXJuYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpmaWxsU3BlY3VsYXRlQ2VsbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmZpbGxTcGVjdWxhdGVCb29sZWFuKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZSk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKToK
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQm9vbGVhbik6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpU
eXBlQ2hlY2tIb2lzdGluZ1BoYXNlOjppZGVudGlmeVJlZHVuZGFudFN0cnVjdHVyZUNoZWNrcyk6
CisgICAgICAgIChKU0M6OkRGRzo6VHlwZUNoZWNrSG9pc3RpbmdQaGFzZTo6aWRlbnRpZnlSZWR1
bmRhbnRBcnJheUNoZWNrcyk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAg
ICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAg
ICAgICAoSlNDOjpERkc6OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2Vs
bCk6CisgICAgICAgICogZG9taml0L0RPTUpJVEdyYXBoLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmguCisgICAgICAgIChKU0M6OkRP
TUpJVDo6R3JhcGg6OmVkZ2VGaWx0ZXIpOgorICAgICAgICAqIGRvbWppdC9ET01KSVRHcmFwaC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9t
LmguCisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OkdyYXBoKToKKyAgICAgICAgKEpTQzo6
RE9NSklUOjpHcmFwaDo6fkdyYXBoKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpHcmFwaDo6c3Bl
Y3VsYXRlZENoaWxkVHlwZSk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OmdldHRlcik6
CisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OnNldHRlcik6CisgICAgICAgICogZG9taml0
L0RPTUpJVElSLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9j
dW1lbnRDdXN0b20uaC4KKyAgICAgICAgKEpTQzo6RE9NSklUOjpJUjo6dGhpc1ZhbHVlKToKKyAg
ICAgICAgKEpTQzo6RE9NSklUOjpJUjo6SVIpOgorICAgICAgICAqIGRvbWppdC9ET01KSVRJUkJ1
aWxkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50
Q3VzdG9tLmguCisgICAgICAgIChKU0M6OkRPTUpJVDo6SVJCdWlsZGVyOjphcHBlbmQpOgorICAg
ICAgICAoSlNDOjpET01KSVQ6OklSQnVpbGRlcjo6aXIpOgorICAgICAgICAqIGZ0bC9GVExDYXBh
YmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAq
IGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjpsb3dPcGFxdWVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6c3BlY3VsYXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9C
Mzo6aXNOb3RET01Ob2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
aXNOb3RET01FbGVtZW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
c3BlY3VsYXRlRE9NTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OnNwZWN1bGF0ZURPTUVsZW1lbnQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0IzOjpzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIpOgorICAgICAgICAoSlNDOjpGVEw6OkRG
Rzo6TG93ZXJERkdUb0IzOjpzZXRPcGFxdWVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlU2V0T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c2V0U3RvcmFnZSk6IERlbGV0ZWQuCisgICAg
ICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBl
cnM6OmJyYW5jaElmRE9NTm9kZSk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJh
bmNoSWZOb3RET01Ob2RlKToKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJ
ZkRPTUVsZW1lbnQpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90
RE9NRWxlbWVudCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAg
ICogaml0L1JlcGF0Y2guY3BwOgorICAgICAgICAoSlNDOjp0cnlDYWNoZUdldEJ5SUQpOgorICAg
ICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmg6CisgICAgICAgICogcnVudGltZS9J
bnRyaW5zaWMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpmaWxsQ3VzdG9tR2V0dGVyUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50
aW1lL0pTVHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6
Okhhc2hUYWJsZVZhbHVlOjpkb21KSVQpOgorICAgICAgICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0
eVNsb3RGcm9tVGFibGUpOgorICAgICAgICAoSlNDOjpwdXRFbnRyeSk6CisgICAgICAgIChKU0M6
OnJlaWZ5U3RhdGljUHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6
CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6UHJv
cGVydHlTbG90OjpzZXRDYWNoZWFibGVDdXN0b20pOgorCiAyMDE2LTA5LTI4ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENo
YXJhY3RlciB3aWxsIHJldHVybiBgbnVsbGAgd2hlbiBpdCBzaG91bGQgbm90CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhN2E1
NTc1YTQ2ZDk1Y2ZlNmNhYzA1Mzg1MWM1ZjdlOWMxYTYzMjMuLjRkMGIzMDdjNDc4OTM4NTBhZGZi
NDZjMWY5MjA4NjFiNmE3N2RjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDktMjggIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0JpbmRpbmdd
IEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvU3RkTGliRXh0cmFzLmg6CisKIDIwMTYtMDktMjgg
IE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJlLWVuYWJsZSBTdHJp
bmdWaWV3IGxpZmUtY3ljbGUgY2hlY2tpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzAzNzU1OTI5MGE4OTA4
YTg0ZTVmZGMxYzMyZmIwMjFlM2ViNGNkOC4uNzI0OWEwMDYwMzQ4YjliMGI0YWFkMjMxM2RkZDhj
NWFmZjU1ZDY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxNi0wOS0yOCAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbQmluZGluZ10g
SW50cm9kdWNpbmcgRE9NIGJpbmRpbmcgSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL2J5dGVjb2RlL0RPTUpJVC5oOiBBZGRlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5n
SGVhZGVycy9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaDogQWRkZWQuCisgICAgICAgICogRm9y
d2FyZGluZ0hlYWRlcnMvZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdyYXBwZXI6Om9mZnNldE9m
V3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdyYXBwZXI6OndyYXBwZWQpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaDoKKyAgICAgICAg
KFdlYkNvcmU6OmpzRG9jdW1lbnRDYXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0VsZW1l
bnRDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmpzRWxlbWVudENhc3QpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6anNOb2RlQ2Fz
dCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6Om9mZnNldE9mV3JhcHBlcik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZXRKU0NBdHRyaWJ1
dGVzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdl
bmVyYXRlUHJvcGVydGllc0hhc2hUYWJsZSk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0
aW9uKToKKyAgICAgICAgKEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAg
ICAgICogZG9tL05vZGUuaWRsOgorICAgICAgICAqIGRvbWppdC9ET01KSVRIZWxwZXIuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpET01KSVRIZWxwZXI6OkRPTUpJVEhlbHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpET01KSVRIZWxwZXI6OmJyYW5jaElmTm90Q29udGFpbmVyTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01KSVRIZWxwZXI6OnRvSlNSZXN1bHQpOgorCisgICAgICAgICog
Rm9yd2FyZGluZ0hlYWRlcnMvZG9taml0L0RPTUpJVEdyYXBoLmg6IEFkZGVkLgorICAgICAgICAq
IFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAg
ICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdyYXBwZXI6Om9m
ZnNldE9mV3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdyYXBwZXI6OndyYXBwZWQp
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OmpzRG9jdW1lbnRDYXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0VsZW1lbnRDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmpzRWxlbWVudENhc3QpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6anNO
b2RlQ2FzdCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6Om9mZnNldE9mV3JhcHBlcik6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZXRKU0NB
dHRyaWJ1dGVzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAg
ICAgKEdlbmVyYXRlUHJvcGVydGllc0hhc2hUYWJsZSk6CisgICAgICAgIChHZW5lcmF0ZUltcGxl
bWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oOgorICAgICAgICAqIGRvbS9Ob2RlLmg6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpub2RlRmxhZ3NNZW1vcnlPZmZzZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6cmFyZURhdGFNZW1vcnlPZmZzZXQpOgorICAgICAgICAqIGRvbS9O
b2RlLmlkbDoKKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL2RvbWppdC9ET01KSVRHcmFw
aC5oOiBBZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQbGF0
Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBQ
bGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XcmFwcGVyOjpvZmZzZXRPZldyYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XcmFwcGVyOjp3cmFwcGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RvY3VtZW50Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpqc0RvY3VtZW50Q2FzdCk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmg6CisgICAgICAgIChXZWJDb3Jl
Ojpqc0VsZW1lbnRDYXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uaDoK
KyAgICAgICAgKFdlYkNvcmU6OmpzTm9kZUNhc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Nj
cmlwdFdyYXBwYWJsZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjpvZmZz
ZXRPZldyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAoR2V0SlNDQXR0cmlidXRlc0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChH
ZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZVByb3BlcnRpZXNIYXNoVGFibGUpOgor
ICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUhhc2hU
YWJsZVZhbHVlQXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQ6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaDoK
KyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bm9kZUZsYWdz
TWVtb3J5T2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJhcmVEYXRhTWVtb3J5T2Zm
c2V0KToKKyAgICAgICAgKiBkb20vTm9kZS5pZGw6CisKIDIwMTYtMDktMjggIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIGZpcnN0ICdzdGF0ZScgcGFyYW1l
dGVyIHRvIEpTRE9NV2luZG93Ojp0b1dyYXBwZWQoKSAvIEpTRXZlbnRUYXJnZXQ6OnRvV3JhcHBl
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNzI3YjI4OGY4M2U3Y2I5OTBjNTNkMTE0OGU1YWZmNTU3YjQzNzVl
Mi4uYjNiNDNmZDdjMmE2OGEyZWZiYTgyYTk5MTA1NGZhYWI2NjllMzIyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDE2LTA5LTI4ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFtCaW5kaW5nXSBJbnRyb2R1Y2luZyBET00gYmluZGluZyBK
SVQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisKIDIwMTYtMDktMjggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAogICAgICAgICBXS1NoYXJlZEFQSUNhc3Qgc2hvdWxkIG5vdCB3YXJuIGFib3V0
IGFjY2VwdGFibGUgY3VzdG9tIGNvbnRleHQgbWVudSB0YWcgdmFsdWVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYTk4ZDg2NDc4OWM5NjMyOTAzN2NhMmExM2RhZDRiNzg0
ODMyYTNmNi4uMWMzMTUyZjg0N2YwYjJiMzYzMmQ4MzQyOTY5NjVmZWUyNWIyNmI0MSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYsNiArMTYsNyBAQCBzZXQoSmF2YVNj
cmlwdENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
Ynl0ZWNvZGUiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29tcGlsZXIiCiAgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9kZmciCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9k
b21qaXQiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIiCiAgICAgIiR7
SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIvdWRpczg2IgogICAgICIke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0vZnRsIgpAQCAtNDA1LDYgKzQwNiw4IEBAIHNldChKYXZhU2NyaXB0Q29yZV9T
T1VSQ0VTCiAgICAgZGlzYXNzZW1ibGVyL3VkaXM4Ni91ZGlzODZfc3luLWludGVsLmMKICAgICBk
aXNhc3NlbWJsZXIvdWRpczg2L3VkaXM4Nl9zeW4uYwogCisgICAgZG9taml0L0RPTUpJVEdyYXBo
LmNwcAorCiAgICAgZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAKICAgICBmdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5jcHAKICAgICBmdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5ZmVjMmNlOWRkZWFhM2I5ZmU4MDI5ZjUwM2Mz
ZWM4M2YyNjMzMGMuLjA0M2YxYTA5MTE2MzYwMjM5NjgxOWFmZWQ5MTdhNzFhOThiNGU1YTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTYsNyArMzE2LDcgQEAKIAkJMEYzM0ZD
RkIxQzE2MjVCRTAwMzIzRjY3IC8qIEIzQ0ZHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMzRkNGOTFDMTYyNUJFMDAzMjNGNjcgLyogQjNDRkcuaCAq
LzsgfTsKIAkJMEYzM0ZDRkMxQzE2MjVCRTAwMzIzRjY3IC8qIEIzRG9taW5hdG9ycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzM0ZDRkExQzE2MjVC
RTAwMzIzRjY3IC8qIEIzRG9taW5hdG9ycy5oICovOyB9OwogCQkwRjM0QjE0OTE2RDQyMDEwMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAg
Ki87IH07Ci0JCTBGMzRCMTRBMTZENDIwMTMwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0ODE2RDQyMDBF
MDAxQ0RBNUEgLyogREZHVXNlS2luZC5oICovOyB9OworCQkwRjM0QjE0QTE2RDQyMDEzMDAxQ0RB
NUEgLyogREZHVXNlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYzNEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM3MzA4QzFDMEJE
MjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM3MzA4QTFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlD
aGlsZHJlbi5jcHAgKi87IH07CiAJCTBGMzczMDhEMUMwQkQyOTEwMDA1MkJGQSAvKiBCM1BoaUNo
aWxkcmVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM3MzA4QjFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5oICovOyB9OwogCQkwRjM3
MzA4RjFDMENENjg1MDAwNTJCRkEgLyogRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM3MzA4
RTFDMENENjg1MDAwNTJCRkEgLyogRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgg
Ki87IH07CkBAIC01ODcsNyArNTg3LDcgQEAKIAkJMEZBMkMxN0IxN0Q3Q0Y4NDAwOUQwMTVGIC8q
IFRlc3RSdW5uZXJVdGlscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkEyQzE3OTE3RDdDRjg0MDA5RDAxNUYgLyogVGVzdFJ1bm5lclV0aWxzLmNw
cCAqLzsgfTsKIAkJMEZBMkMxN0MxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBMkMxN0Ex
N0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQTU4MUJBMTUwRTk1MkMwMEI5QTJEOSAv
KiBERkdOb2RlRmxhZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZBNTgxQjcxNTBFOTUyQTAwQjlBMkQ5IC8qIERGR05vZGVGbGFncy5jcHAgKi87
IH07Ci0JCTBGQTU4MUJCMTUwRTk1MzAwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTU4MUI4MTUwRTk1MkEw
MEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuaCAqLzsgfTsKKwkJMEZBNTgxQkIxNTBFOTUzMDAwQjlB
MkQ5IC8qIERGR05vZGVGbGFncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZBNTgxQjgxNTBFOTUyQTAwQjlBMkQ5IC8qIERGR05vZGVGbGFncy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQTU4MUJD
MTUwRTk1MzAwMEI5QTJEOSAvKiBERkdOb2RlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBNTgxQjkxNTBFOTUyQTAwQjlBMkQ5IC8qIERGR05v
ZGVUeXBlLmggKi87IH07CiAJCTBGQTdBOEVCMThCNDEzQzgwMDUyMzcxRCAvKiBSZWcuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBN0E4RTkxOEI0
MTNDODAwNTIzNzFEIC8qIFJlZy5jcHAgKi87IH07CiAJCTBGQTdBOEVDMThCNDEzQzgwMDUyMzcx
RCAvKiBSZWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQTdBOEVBMThCNDEzQzgwMDUyMzcxRCAvKiBSZWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTQ0NCw3ICsxNDQ0LDcgQEAKIAkJODZFQzlE
RDAxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMwMTMyOERGODIwMDJCMkFENyAvKiBE
RkdPcGVyYXRpb25zLmggKi87IH07CiAJCTg2RUM5REQxMTMyOERGODIwMDJCMkFENyAvKiBERkdS
ZWdpc3RlckJhbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCAqLzsgfTsK
IAkJODZFQzlERDIxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMyMTMyOERG
ODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5jcHAgKi87IH07Ci0JCTg2RUM5REQzMTMy
OERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQzMxMzI4REY4MjAwMkIyQUQ3IC8qIERG
R1NwZWN1bGF0aXZlSklULmggKi87IH07CisJCTg2RUM5REQzMTMyOERGODIwMDJCMkFENyAvKiBE
RkdTcGVjdWxhdGl2ZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZFQzlEQzMxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZFQ0Ez
RUExMzJERUYxQzAwMkIyQUQ3IC8qIERGR05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUNBM0U5MTMyREVGMUMwMDJCMkFENyAvKiBERkdOb2Rl
LmggKi87IH07CiAJCTg2RUNBM0ZBMTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDQTNGOTEz
MkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oICovOyB9OwogCQk4NkYzRUVCRDE2OENE
RTkzMDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RjNFRUI5MTY4Q0NGNzUwMDc3QjkyQSAvKiBP
YmpDQ2FsbGJhY2tGdW5jdGlvbi5oICovOyB9OwpAQCAtMjA5OCw2ICsyMDk4LDEyIEBACiAJCUUz
RDIzOUM5MUI4MjlDMUMwMEJCRUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QyMzlDNzFCODI5QzFDMDBC
QkVGNjcgLyogSlNNb2R1bGVFbnZpcm9ubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzRUY4ODc0MUI2NkRGMjMwMDNGMjZDQiAvKiBKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzRUY4ODcyMUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yLmNwcCAqLzsgfTsKIAkJRTNFRjg4NzUxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVy
dHlOYW1lSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzRUY4ODczMUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9y
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTNF
RkY2QUExRDlDNzJBODAwMTUxN0NFIC8qIERPTUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNFRkY2QTkxRDlDNzJBNTAwMTUxN0NFIC8qIERPTUpJ
VC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUz
RUZGNkFCMUQ5QzcyQUIwMDE1MTdDRSAvKiBET01KSVQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNFRkY2QTgxRDlDNzJBNTAwMTUxN0NFIC8qIERP
TUpJVC5jcHAgKi87IH07CisJCUUzRkY3NTMyMUQ5Q0VBMTUwMEM3RTE2RCAvKiBET01KSVRHcmFw
aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ZG
NzUyRTFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGguY3BwICovOyB9OworCQlFM0ZGNzUz
MzFEOUNFQTE4MDBDN0UxNkQgLyogRE9NSklUR3JhcGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01K
SVRHcmFwaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCUUzRkY3NTM0MUQ5Q0VBMUUwMEM3RTE2RCAvKiBET01KSVRJUi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGRjc1MzAxRDlDRUExMjAwQzdFMTZE
IC8qIERPTUpJVElSLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJRTNGRjc1MzUxRDlDRUEyNTAwQzdFMTZEIC8qIERPTUpJVElSQnVpbGRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGRjc1MzExRDlD
RUExMjAwQzdFMTZEIC8qIERPTUpJVElSQnVpbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0OURDMTZCMTJFRjI5M0UwMDE4NEExRiAvKiBT
b3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0OURDMTU1MTJFRjI3NzIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNh
Y2hlLmNwcCAqLzsgfTsKIAkJRTQ5REMxNkMxMkVGMjk0RTAwMTg0QTFGIC8qIFNvdXJjZVByb3Zp
ZGVyQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0OURDMTUxMTJFRjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ5REMxNkQxMkVG
Mjk1MzAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE0OTEyRUYyNjFBMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDM5Myw2ICs0Mzk5LDEyIEBACiAJCUUzRDI2NDJBMUQz
OEMwNDIwMDBCRTE3NCAvKiBCeXRlY29kZVJld3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEJ5dGVjb2RlUmV3cml0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNFRjg4NzIxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRUY4ODczMUI2NkRG
MjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTNFRkY2QTgxRDlDNzJBNTAwMTUxN0NFIC8qIERPTUpJVC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01KSVQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFM0VGRjZBOTFEOUM3MkE1MDAxNTE3Q0UgLyogRE9NSklULmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFM0ZGNzUyRTFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGgu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NSklUR3JhcGguY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0ZGNzUyRjFEOUNFQTEyMDBDN0UxNkQg
LyogRE9NSklUR3JhcGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklU
R3JhcGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNGRjc1MzAxRDlDRUExMjAw
QzdFMTZEIC8qIERPTUpJVElSLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TUpJVElSLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRkY3NTMxMUQ5Q0VBMTIw
MEM3RTE2RCAvKiBET01KSVRJUkJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NSklUSVJCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE1MTEyRUYyNzIyMDAxODRBMUYgLyog
U291cmNlUHJvdmlkZXJDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
b3VyY2VQcm92aWRlckNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0OURD
MTU1MTJFRjI3NzIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDY1MCw2ICs0NjYyLDcgQEAKIAkJCQk2NTBGREY4
RDA5RDBGQ0E3MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTg2RUM5REIzMTMy
OERGNDQwMDJCMkFENyAvKiBkZmcgKi8sCiAJCQkJMEZGNDI3MkUxNThFQkNDRTAwNENCOUZGIC8q
IGRpc2Fzc2VtYmxlciAqLywKKwkJCQlFM0ZGNzUyRDFEOUNFOUVBMDBDN0UxNkQgLyogZG9taml0
ICovLAogCQkJCTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAvKiBGcmFtZXdvcmtzICovLAogCQkJ
CTBGRUEwOUZDMTcwNTEzN0YwMEJCNzIyQyAvKiBmdGwgKi8sCiAJCQkJMTQyRTMxMkExMzRGRjBB
NjAwQUZBREI1IC8qIGhlYXAgKi8sCkBAIC02NzE3LDYgKzY3MzAsOCBAQAogCQk5NjlBMDc4RjBF
RDFEM0FFMDBGMUY2ODEgLyogYnl0ZWNvZGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCUUzRUZGNkE4MUQ5QzcyQTUwMDE1MTdDRSAvKiBET01KSVQuY3Bw
ICovLAorCQkJCUUzRUZGNkE5MUQ5QzcyQTUwMDE1MTdDRSAvKiBET01KSVQuaCAqLywKIAkJCQlF
M0E0MjE0MjFENkY1ODhGMDAwN0M2MTcgLyogUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oICov
LAogCQkJCUUzRDI2NDI2MUQzOEMwNDIwMDBCRTE3NCAvKiBCeXRlY29kZUdlbmVyYXRvcmlmaWNh
dGlvbi5jcHAgKi8sCiAJCQkJRTNEMjY0MjcxRDM4QzA0MjAwMEJFMTc0IC8qIEJ5dGVjb2RlR2Vu
ZXJhdG9yaWZpY2F0aW9uLmggKi8sCkBAIC03MTQ5LDYgKzcxNjQsMTcgQEAKIAkJCXBhdGggPSBj
b2RlZ2VuOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTNGRjc1MkQxRDlD
RTlFQTAwQzdFMTZEIC8qIGRvbWppdCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJRTNGRjc1MkUxRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmNw
cCAqLywKKwkJCQlFM0ZGNzUyRjFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGguaCAqLywK
KwkJCQlFM0ZGNzUzMDFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUSVIuaCAqLywKKwkJCQlFM0ZG
NzUzMTFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUSVJCdWlsZGVyLmggKi8sCisJCQkpOworCQkJ
cGF0aCA9IGRvbWppdDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAvKiBFbmQg
UEJYR3JvdXAgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhIZWFkZXJzQnVpbGRQaGFzZSBzZWN0
aW9uICovCkBAIC03MTk2LDYgKzcyMjIsNyBAQAogCQkJCTBGRUM4NTc3MUJEQUNEQzcwMDgwRkY3
NCAvKiBBaXJGcmVxdWVudGVkQmxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTc5MUJE
QUNEQzcwMDgwRkY3NCAvKiBBaXJHZW5lcmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1
N0ExQkRBQ0RDNzAwODBGRjc0IC8qIEFpckdlbmVyYXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAq
LywKKwkJCQlFM0ZGNzUzNTFEOUNFQTI1MDBDN0UxNkQgLyogRE9NSklUSVJCdWlsZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVDODU3QzFCREFDREM3MDA4MEZGNzQgLyogQWlySGFuZGxlQ2Fs
bGVlU2F2ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTdFMUJEQUNEQzcwMDgwRkY3NCAv
KiBBaXJJbnNlcnRpb25TZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTgwMUJEQUNEQzcw
MDgwRkY3NCAvKiBBaXJJbnN0LmggaW4gSGVhZGVycyAqLywKQEAgLTc0NzMsNiArNzUwMCw3IEBA
CiAJCQkJMEY5RDRDMTExQzNFMkM3NDAwNkNEOTg0IC8qIEZUTFBhdGNocG9pbnRFeGNlcHRpb25I
YW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMzhCMDFBMTdDRkU3NTUwMEIxNDREMyAvKiBE
RkdDb21waWxhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGM0IzQTFCMTUzRTY4RjQw
MDNFRDBGRiAvKiBERkdDb25zdGFudEZvbGRpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTNFRkY2QUExRDlDNzJBODAwMTUxN0NFIC8qIERPTUpJVC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZFRDY3QkExQjI2MjU2RDAwNjZDRTE1IC8qIERGR0NvbnN0YW50SG9pc3RpbmdQaGFzZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZCRTBGNzMxNkMxREIwNTAwODJDNUU4IC8qIERGR0NQU1JldGhy
ZWFkaW5nUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDg5Q0Y2MTdBMEI4Q0MwMDc3M0FE
OCAvKiBERkdDcml0aWNhbEVkZ2VCcmVha2luZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTc1
OTMsNiArNzYyMSw3IEBACiAJCQkJMEZDMjBDQkExODU1NkEzNTAwQzlFOTU0IC8qIERGR1NTQUxv
d2VyaW5nUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUZCNEY1MTdGQ0I5MTcwMENCNjdG
OCAvKiBERkdTdGFja0xheW91dFBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRGMjlFMDE4
QjZBRDFDMDA1N0JDMTUgLyogREZHU3RhdGljRXhlY3V0aW9uQ291bnRFc3RpbWF0aW9uUGhhc2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCUUzRkY3NTMzMUQ5Q0VBMTgwMEM3RTE2RCAvKiBET01KSVRH
cmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5RTMyNjQxQjA1QUIwNDAwODAxRUQ1IC8qIERG
R1N0b3JlQmFycmllckluc2VydGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkMyMENC
NjE4NTJFMkM2MDBDOUU5NTQgLyogREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY2Mzk0NzgxNURDRTM0QjAwNkE1OTdDIC8qIERGR1N0cnVjdHVyZUFic3Ry
YWN0VmFsdWUuaCBpbiBIZWFkZXJzICovLApAQCAtODA1MCw2ICs4MDc5LDcgQEAKIAkJCQk5NjAw
OTdBNjBFQkFCQjU4MDA3QTcyOTcgLyogTGFiZWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZCNTQ2NzcxNEY1OUI1QzAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFsdWVQcm9maWxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5OURBMDBCMDFCRDU5OTRFMDBGNDU3NUMgLyogbGF6eXdyaXRlci5w
eSBpbiBIZWFkZXJzICovLAorCQkJCUUzRkY3NTM0MUQ5Q0VBMUUwMEM3RTE2RCAvKiBET01KSVRJ
Ui5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MzEwRTE2RjVDRDAwQjM0NDYwIC8qIExleGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1M0Y0MEU5MzFENUE0QUIzMDA5OUExQjYgLyogV0FTTUIz
SVJHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNTJFMEUxNkZDRTEwMEIzNDQ2
MCAvKiBMZXhlci5sdXQuaCBpbiBIZWFkZXJzICovLApAQCAtOTIwMCw2ICs5MjMwLDcgQEAKIAkJ
CQkwRjlCMURCNDFDMEU0MkE1MDBFNUJGRDIgLyogRlRMT3V0cHV0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGRTcyMTFEMTkzQjlDNTkwMDMxRjZFRCAvKiBERkdUcmFuc2l0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGNjM5NDQwMTVDNzVGMUQwMDZBNTk3QyAvKiBERkdUeXBlQ2hlY2tI
b2lzdGluZ1BoYXNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzRUZGNkFCMUQ5QzcyQUIwMDE1
MTdDRSAvKiBET01KSVQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCRTBGNzYxNkMxREIwRjAw
ODJDNUU4IC8qIERGR1VuaWZpY2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUz
OThGQUMxQzc1MERBNjAwNjBBOTYzIC8qIEhlYXBQcm9maWxlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjM0QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTk0NTksNiArOTQ5MCw3IEBACiAJCQkJMTQ4NzRBRTUxNUVCREU0QTAwMkUzNTg3
IC8qIEpTU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdDMEM0QUQxNjgxMDY3RTAwMTcw
MTFEIC8qIEpTU2NyaXB0UmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTE5RDEwMTU3RjMz
MjkwMDRBNEU3RCAvKiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUUzRkY3NTMyMUQ5Q0VBMTUwMEM3RTE2RCAvKiBET01KSVRHcmFwaC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlEQzE3RTgxNzFDOUM5MUQ2MDA4QTZBQjMgLyogU2hhZG93Q2hpY2tlbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzI5OUQ5RDE3RDEyODM3MDA1RjVGRjkgLyogSlNTZXQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc5MERENkYxODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0
SXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0RhdGFGb3JtYXQuaAppbmRleCAyMmM2NDkyMjY3MjllZmIxMDE3NjgyYzFmZTE0YWMwOGMy
N2NlM2MyLi5jMGY2Y2Q4M2Y0Y2U3Nzk5OTk2ZjUwNmNlYjU0YWVjNGFkM2VlNTI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmgKQEAgLTQ0LDcgKzQ0LDgg
QEAgZW51bSBEYXRhRm9ybWF0IHsKICAgICBEYXRhRm9ybWF0Qm9vbGVhbiA9IDUsCiAgICAgRGF0
YUZvcm1hdENlbGwgPSA2LAogICAgIERhdGFGb3JtYXRTdG9yYWdlID0gNywKLSAgICBEYXRhRm9y
bWF0SlMgPSA4LAorICAgIERhdGFGb3JtYXRPcGFxdWVQb2ludGVyID0gOCwKKyAgICBEYXRhRm9y
bWF0SlMgPSAxNiwKICAgICBEYXRhRm9ybWF0SlNJbnQzMiA9IERhdGFGb3JtYXRKUyB8IERhdGFG
b3JtYXRJbnQzMiwKICAgICBEYXRhRm9ybWF0SlNEb3VibGUgPSBEYXRhRm9ybWF0SlMgfCBEYXRh
Rm9ybWF0RG91YmxlLAogICAgIERhdGFGb3JtYXRKU0NlbGwgPSBEYXRhRm9ybWF0SlMgfCBEYXRh
Rm9ybWF0Q2VsbCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlk
U3RhdHVzLmNwcAppbmRleCAxNWIzYzgxM2NiOGJlODA3MzNlM2I0MTVmNmE5OGU3ZjlhYzhkZDRm
Li40MTgyYjkxZDZmNzdjNGQxNDg5ODc2ZGJiMDgzNzMwMDBmZWVmODQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCkBAIC0zNyw2ICsz
Nyw5IEBACiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAKIG5hbWVzcGFjZSBKU0MgeworbmFt
ZXNwYWNlIERPTUpJVCB7CitjbGFzcyBHcmFwaDsKK30KIAogYm9vbCBHZXRCeUlkU3RhdHVzOjph
cHBlbmRWYXJpYW50KGNvbnN0IEdldEJ5SWRWYXJpYW50JiB2YXJpYW50KQogewpAQCAtMjE1LDYg
KzIxOCw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZv
V2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgICAgICBjYXNlIENvbXBsZXhHZXRTdGF0
dXM6OklubGluZWFibGU6IHsKICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExp
bmtTdGF0dXM+IGNhbGxMaW5rU3RhdHVzOwogICAgICAgICAgICAgICAgIEpTRnVuY3Rpb24qIGlu
dHJpbnNpY0Z1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBET01KSVQ6OkdyYXBo
KiBkb21KSVQgPSBudWxscHRyOwogCiAgICAgICAgICAgICAgICAgc3dpdGNoIChhY2Nlc3MudHlw
ZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBBY2Nlc3NDYXNlOjpMb2FkOgpAQCAtMjM0LDYg
KzIzOCwxMiBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5m
b1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBj
YXNlIEFjY2Vzc0Nhc2U6OkN1c3RvbUFjY2Vzc29yR2V0dGVyOiB7CisgICAgICAgICAgICAgICAg
ICAgIGRvbUpJVCA9IGFjY2Vzcy5kb21KSVQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFk
b21KSVQpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhzbG93
UGF0aFN0YXRlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEl0IHdvdWxkIGJlIHRvdGFsbHkgc3dlZXQgdG8gc3VwcG9ydCBtb3JlIG9mIHRo
ZXNlIGF0IHNvbWUgcG9pbnQgaW4gdGhlCiAgICAgICAgICAgICAgICAgICAgIC8vIGZ1dHVyZS4g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzA1MgpAQCAtMjQ0LDcg
KzI1NCw4IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZv
V2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgICAgICAgICAgR2V0QnlJZFZhcmlhbnQg
dmFyaWFudCgKICAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlU2V0KHN0cnVjdHVyZSksIGNv
bXBsZXhHZXRTdGF0dXMub2Zmc2V0KCksCiAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXhHZXRT
dGF0dXMuY29uZGl0aW9uU2V0KCksIFdURk1vdmUoY2FsbExpbmtTdGF0dXMpLAotICAgICAgICAg
ICAgICAgICAgICBpbnRyaW5zaWNGdW5jdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGludHJp
bnNpY0Z1bmN0aW9uLAorICAgICAgICAgICAgICAgICAgICBkb21KSVQpOwogCiAgICAgICAgICAg
ICAgICAgaWYgKCFyZXN1bHQuYXBwZW5kVmFyaWFudCh2YXJpYW50KSkKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoc2xvd1BhdGhTdGF0ZSwgdHJ1ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmNwcAppbmRleCBh
ODY5ZDRhMWM5NGU3ZTQ3NTczMTc0NGM3YjMwM2Q1MDY1ZTBmNDMxLi5lMjcxNmE4YTEyOWM3M2I0
ZWQ1Mzk3OTg1NjZlNTFhZGEzYmJjMWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5jcHAKQEAgLTM2LDEyICszNiwxNCBAQCBHZXRCeUlk
VmFyaWFudDo6R2V0QnlJZFZhcmlhbnQoCiAgICAgY29uc3QgU3RydWN0dXJlU2V0JiBzdHJ1Y3R1
cmVTZXQsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCwKICAgICBjb25zdCBPYmplY3RQcm9wZXJ0eUNv
bmRpdGlvblNldCYgY29uZGl0aW9uU2V0LAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0
YXR1cz4gY2FsbExpbmtTdGF0dXMsCi0gICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rpb24p
CisgICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rpb24sCisgICAgRE9NSklUOjpHcmFwaCog
ZG9tSklUKQogICAgIDogbV9zdHJ1Y3R1cmVTZXQoc3RydWN0dXJlU2V0KQogICAgICwgbV9jb25k
aXRpb25TZXQoY29uZGl0aW9uU2V0KQogICAgICwgbV9vZmZzZXQob2Zmc2V0KQogICAgICwgbV9j
YWxsTGlua1N0YXR1cyhXVEZNb3ZlKGNhbGxMaW5rU3RhdHVzKSkKICAgICAsIG1faW50cmluc2lj
RnVuY3Rpb24oaW50cmluc2ljRnVuY3Rpb24pCisgICAgLCBtX2RvbUpJVChkb21KSVQpCiB7CiAg
ICAgaWYgKCFzdHJ1Y3R1cmVTZXQuc2l6ZSgpKSB7CiAgICAgICAgIEFTU0VSVChvZmZzZXQgPT0g
aW52YWxpZE9mZnNldCk7CkBAIC02NSw2ICs2Nyw3IEBAIEdldEJ5SWRWYXJpYW50JiBHZXRCeUlk
VmFyaWFudDo6b3BlcmF0b3I9KGNvbnN0IEdldEJ5SWRWYXJpYW50JiBvdGhlcikKICAgICBtX2Nv
bmRpdGlvblNldCA9IG90aGVyLm1fY29uZGl0aW9uU2V0OwogICAgIG1fb2Zmc2V0ID0gb3RoZXIu
bV9vZmZzZXQ7CiAgICAgbV9pbnRyaW5zaWNGdW5jdGlvbiA9IG90aGVyLm1faW50cmluc2ljRnVu
Y3Rpb247CisgICAgbV9kb21KSVQgPSBvdGhlci5tX2RvbUpJVDsKICAgICBpZiAob3RoZXIubV9j
YWxsTGlua1N0YXR1cykKICAgICAgICAgbV9jYWxsTGlua1N0YXR1cyA9IHN0ZDo6bWFrZV91bmlx
dWU8Q2FsbExpbmtTdGF0dXM+KCpvdGhlci5tX2NhbGxMaW5rU3RhdHVzKTsKICAgICBlbHNlCkBA
IC0xMDMsNiArMTA2LDkgQEAgYm9vbCBHZXRCeUlkVmFyaWFudDo6YXR0ZW1wdFRvTWVyZ2UoY29u
c3QgR2V0QnlJZFZhcmlhbnQmIG90aGVyKQogICAgIGlmICghY2FuTWVyZ2VJbnRyaW5zaWNTdHJ1
Y3R1cmVzKG90aGVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZG9tSklU
ICE9IG90aGVyLm1fZG9tSklUKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAobV9j
b25kaXRpb25TZXQuaXNFbXB0eSgpICE9IG90aGVyLm1fY29uZGl0aW9uU2V0LmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIApAQCAtMTM4LDYgKzE0NCw4IEBAIHZvaWQgR2V0
QnlJZFZhcmlhbnQ6OmR1bXBJbkNvbnRleHQoUHJpbnRTdHJlYW0mIG91dCwgRHVtcENvbnRleHQq
IGNvbnRleHQpIGNvbnN0CiAgICAgICAgIG91dC5wcmludCgiLCBjYWxsID0gIiwgKm1fY2FsbExp
bmtTdGF0dXMpOwogICAgIGlmIChtX2ludHJpbnNpY0Z1bmN0aW9uKQogICAgICAgICBvdXQucHJp
bnQoIiwgaW50cmluc2ljID0gIiwgKm1faW50cmluc2ljRnVuY3Rpb24pOworICAgIGlmIChtX2Rv
bUpJVCApCisgICAgICAgIG91dC5wcmludCgiLCBjdXN0b20gPSAiLCBSYXdQb2ludGVyKG1fZG9t
SklUKSk7CiAgICAgb3V0LnByaW50KCI+Iik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmgKaW5kZXggNjYyMTg5YmNlNWYyZWIxYTEzYmQw
NTNlOTgwMDIxYzEzYzI2NmU2Ni4uZGNmNDA4OGVjMzViOWJiMDI4YzViZThiZDMyNWExMTQxNzkw
Mzg5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRW
YXJpYW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJp
YW50LmgKQEAgLTMyLDYgKzMyLDkgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVTZXQuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CituYW1lc3BhY2UgRE9NSklUIHsKK2NsYXNzIEdyYXBoOworfQogCiBjbGFz
cyBDYWxsTGlua1N0YXR1czsKIGNsYXNzIEdldEJ5SWRTdGF0dXM7CkBAIC00Myw3ICs0Niw4IEBA
IGNsYXNzIEdldEJ5SWRWYXJpYW50IHsKICAgICAgICAgY29uc3QgU3RydWN0dXJlU2V0JiBzdHJ1
Y3R1cmVTZXQgPSBTdHJ1Y3R1cmVTZXQoKSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gaW52YWxp
ZE9mZnNldCwKICAgICAgICAgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmID0gT2Jq
ZWN0UHJvcGVydHlDb25kaXRpb25TZXQoKSwKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxM
aW5rU3RhdHVzPiA9IG51bGxwdHIsCi0gICAgICAgIEpTRnVuY3Rpb24qID0gbnVsbHB0cik7Cisg
ICAgICAgIEpTRnVuY3Rpb24qID0gbnVsbHB0ciwKKyAgICAgICAgRE9NSklUOjpHcmFwaCogPSBu
dWxscHRyKTsKIAogICAgIH5HZXRCeUlkVmFyaWFudCgpOwogICAgIApAQCAtNjIsNiArNjYsNyBA
QCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7CiAgICAgQ2FsbExpbmtTdGF0dXMqIGNhbGxMaW5rU3Rh
dHVzKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsTGlua1N0YXR1cy5nZXQoKTsgfQogICAgIEpTRnVu
Y3Rpb24qIGludHJpbnNpY0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9pbnRyaW5zaWNGdW5j
dGlvbjsgfQogICAgIEludHJpbnNpYyBpbnRyaW5zaWMoKSBjb25zdCB7IHJldHVybiBtX2ludHJp
bnNpY0Z1bmN0aW9uID8gbV9pbnRyaW5zaWNGdW5jdGlvbi0+aW50cmluc2ljKCkgOiBOb0ludHJp
bnNpYzsgfQorICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9t
SklUOyB9CiAKICAgICBib29sIGlzUHJvcGVydHlVbnNldCgpIGNvbnN0IHsgcmV0dXJuIG9mZnNl
dCgpID09IGludmFsaWRPZmZzZXQ7IH0KIApAQCAtODAsNiArODUsNyBAQCBjbGFzcyBHZXRCeUlk
VmFyaWFudCB7CiAgICAgUHJvcGVydHlPZmZzZXQgbV9vZmZzZXQ7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPENhbGxMaW5rU3RhdHVzPiBtX2NhbGxMaW5rU3RhdHVzOwogICAgIEpTRnVuY3Rpb24qIG1f
aW50cmluc2ljRnVuY3Rpb247CisgICAgRE9NSklUOjpHcmFwaCogbV9kb21KSVQ7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCmluZGV4IDJjZjI2NjcwODY2NDZmMjAyYTA0YzZhMDc0
MjljODFhNzVlOTQ2NDMuLjM5OTVlNjQwNGY0YjNjZTc1ZjEyMWYyMzdiYTU1NDlhYWZhYWZlNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0Fj
Y2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGlj
QWNjZXNzLmNwcApAQCAtMjIwLDcgKzIyMCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNl
PiBBY2Nlc3NDYXNlOjp0cnlHZXQoCiBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNz
Q2FzZTo6Z2V0KAogICAgIFZNJiB2bSwgSlNDZWxsKiBvd25lciwgQWNjZXNzVHlwZSB0eXBlLCBQ
cm9wZXJ0eU9mZnNldCBvZmZzZXQsIFN0cnVjdHVyZSogc3RydWN0dXJlLAogICAgIGNvbnN0IE9i
amVjdFByb3BlcnR5Q29uZGl0aW9uU2V0JiBjb25kaXRpb25TZXQsIGJvb2wgdmlhUHJveHksIFdh
dGNocG9pbnRTZXQqIGFkZGl0aW9uYWxTZXQsCi0gICAgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmMgY3VzdG9tR2V0dGVyLCBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UpCisgICAgUHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmMgY3VzdG9tR2V0dGVyLCBKU09iamVjdCogY3VzdG9tU2xvdEJhc2Us
IERPTUpJVDo6R3JhcGgqIGRvbUpJVCkKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2Fz
ZT4gcmVzdWx0KG5ldyBBY2Nlc3NDYXNlKCkpOwogCkBAIC0yMjksMTIgKzIyOSwxMyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Z2V0KAogICAgIHJlc3VsdC0+bV9z
dHJ1Y3R1cmUuc2V0KHZtLCBvd25lciwgc3RydWN0dXJlKTsKICAgICByZXN1bHQtPm1fY29uZGl0
aW9uU2V0ID0gY29uZGl0aW9uU2V0OwogCi0gICAgaWYgKHZpYVByb3h5IHx8IGFkZGl0aW9uYWxT
ZXQgfHwgcmVzdWx0LT5kb2VzQ2FsbHMoKSB8fCBjdXN0b21HZXR0ZXIgfHwgY3VzdG9tU2xvdEJh
c2UpIHsKKyAgICBpZiAodmlhUHJveHkgfHwgYWRkaXRpb25hbFNldCB8fCByZXN1bHQtPmRvZXND
YWxscygpIHx8IGN1c3RvbUdldHRlciB8fCBjdXN0b21TbG90QmFzZSB8fCBkb21KSVQpIHsKICAg
ICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxSYXJlRGF0YT4oKTsK
ICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT52aWFQcm94eSA9IHZpYVByb3h5OwogICAgICAg
ICByZXN1bHQtPm1fcmFyZURhdGEtPmFkZGl0aW9uYWxTZXQgPSBhZGRpdGlvbmFsU2V0OwogICAg
ICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmN1c3RvbUFjY2Vzc29yLmdldHRlciA9IGN1c3RvbUdl
dHRlcjsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5jdXN0b21TbG90QmFzZS5zZXRNYXlC
ZU51bGwodm0sIG93bmVyLCBjdXN0b21TbG90QmFzZSk7CisgICAgICAgIHJlc3VsdC0+bV9yYXJl
RGF0YS0+ZG9tSklUID0gZG9tSklUOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0z
ODUsNiArMzg2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6OmNs
b25lKCkgY29uc3QKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5jdXN0b21BY2Nlc3Nvci5v
cGFxdWUgPSByYXJlRGF0YS0+Y3VzdG9tQWNjZXNzb3Iub3BhcXVlOwogICAgICAgICByZXN1bHQt
Pm1fcmFyZURhdGEtPmN1c3RvbVNsb3RCYXNlID0gcmFyZURhdGEtPmN1c3RvbVNsb3RCYXNlOwog
ICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmludHJpbnNpY0Z1bmN0aW9uID0gcmFyZURhdGEt
PmludHJpbnNpY0Z1bmN0aW9uOworICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmRvbUpJVCA9
IHJhcmVEYXRhLT5kb21KSVQ7CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCmluZGV4
IGE2ZDE0OGNiZmIwZjE5ZjhiMzdhMTc3MzgxZTAwODEzNzJiODQ5MjIuLjVhZTNlMjllMDg1ZWY5
YzYyZDcxMTU4MWViNmVlOWQwYzc2MDE0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCkBAIC0zNyw2ICszNyw5IEBACiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQg
eworY2xhc3MgR3JhcGg7Cit9CiAKIGNsYXNzIENvZGVCbG9jazsKIGNsYXNzIFBvbHltb3JwaGlj
QWNjZXNzOwpAQCAtMTMwLDcgKzEzMyw4IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICBi
b29sIHZpYVByb3h5ID0gZmFsc2UsCiAgICAgICAgIFdhdGNocG9pbnRTZXQqIGFkZGl0aW9uYWxT
ZXQgPSBudWxscHRyLAogICAgICAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyA9IG51bGxw
dHIsCi0gICAgICAgIEpTT2JqZWN0KiBjdXN0b21TbG90QmFzZSA9IG51bGxwdHIpOworICAgICAg
ICBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UgPSBudWxscHRyLAorICAgICAgICBET01KSVQ6Okdy
YXBoKiA9IG51bGxwdHIpOwogICAgIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNz
Q2FzZT4gbWVnYW1vcnBoaWNMb2FkKFZNJiwgSlNDZWxsKiBvd25lcik7CiAgICAgCkBAIC0xODYs
NiArMTkwLDEyIEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICByZXR1cm4gaW50cmluc2lj
RnVuY3Rpb24oKS0+aW50cmluc2ljKCk7CiAgICAgfQogCisgICAgRE9NSklUOjpHcmFwaCogZG9t
SklUKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3JhcmVEYXRhKTsKKyAgICAgICAg
cmV0dXJuIG1fcmFyZURhdGEtPmRvbUpJVDsKKyAgICB9CisKICAgICBXYXRjaHBvaW50U2V0KiBh
ZGRpdGlvbmFsU2V0KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhID8g
bV9yYXJlRGF0YS0+YWRkaXRpb25hbFNldC5nZXQoKSA6IG51bGxwdHI7CkBAIC0yODQsNiArMjk0
LDcgQEAgY2xhc3MgQWNjZXNzQ2FzZSB7CiAgICAgcHVibGljOgogICAgICAgICBSYXJlRGF0YSgp
CiAgICAgICAgICAgICA6IHZpYVByb3h5KGZhbHNlKQorICAgICAgICAgICAgLCBkb21KSVQobnVs
bHB0cikKICAgICAgICAgewogICAgICAgICAgICAgY3VzdG9tQWNjZXNzb3Iub3BhcXVlID0gbnVs
bHB0cjsKICAgICAgICAgfQpAQCAtMzAwLDYgKzMxMSw3IEBAIGNsYXNzIEFjY2Vzc0Nhc2Ugewog
ICAgICAgICB9IGN1c3RvbUFjY2Vzc29yOwogICAgICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+
IGN1c3RvbVNsb3RCYXNlOwogICAgICAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gaW50cmlu
c2ljRnVuY3Rpb247CisgICAgICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVDsKICAgICB9OwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFJhcmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKaW5kZXggNzE5ZDhmMjcy
ODNmNWQxMjNjZTU3NzE1NDVlNDY5YmY4MWFmZjIyNy4uMWZkMDRiNTU3NGJmZTA3MDIwNWZlMmJh
MzMwYmUyYzVlNDA5YWQxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3BlY3VsYXRlZFR5cGUuY3BwCkBAIC0xNzAsNiArMTcwLDIxIEBAIHZvaWQgZHVtcFNwZWN1
bGF0aW9uKFByaW50U3RyZWFtJiBvdXQsIFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQogICAgICAgICAg
ICAgICAgIG15T3V0LnByaW50KCJEZXJpdmVkYXJyYXkiKTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNlOworCisgICAgICAgICAgICBpZiAodmFsdWUgJiBT
cGVjRE9NRG9jdW1lbnRXcmFwcGVyKQorICAgICAgICAgICAgICAgIG15T3V0LnByaW50KCJEb21k
b2N1bWVudHdyYXBwZXIiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpc1Rv
cCA9IGZhbHNlOworCisgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjRE9NRWxlbWVudCkKKyAg
ICAgICAgICAgICAgICBteU91dC5wcmludCgiRG9tZWxlbWVudCIpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmICh2YWx1
ZSAmIFNwZWNET01PdGhlck5vZGUpCisgICAgICAgICAgICAgICAgbXlPdXQucHJpbnQoIkRvbW90
aGVybm9kZSIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlzVG9wID0gZmFs
c2U7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoKHZhbHVlICYgU3BlY1N0cmluZykgPT0gU3Bl
Y1N0cmluZykKQEAgLTM5NCwxMiArNDA5LDI1IEBAIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9u
RnJvbUNsYXNzSW5mbyhjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykKIAogU3BlY3VsYXRlZFR5
cGUgc3BlY3VsYXRpb25Gcm9tU3RydWN0dXJlKFN0cnVjdHVyZSogc3RydWN0dXJlKQogewotICAg
IGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IFN0cmluZ1R5cGUpCisgICAgSlNU
eXBlIHR5cGUgPSBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpOworICAgIHN3aXRjaCAodHlw
ZSkgeworICAgIGNhc2UgU3RyaW5nVHlwZToKICAgICAgICAgcmV0dXJuIFNwZWNTdHJpbmc7Ci0g
ICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS50eXBlKCkgPT0gU3ltYm9sVHlwZSkKKyAgICBj
YXNlIFN5bWJvbFR5cGU6CiAgICAgICAgIHJldHVybiBTcGVjU3ltYm9sOwotICAgIGlmIChzdHJ1
Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IERlcml2ZWRBcnJheVR5cGUpCisgICAgY2FzZSBE
ZXJpdmVkQXJyYXlUeXBlOgogICAgICAgICByZXR1cm4gU3BlY0Rlcml2ZWRBcnJheTsKKyAgICBj
YXNlIERPTURvY3VtZW50V3JhcHBlclR5cGU6CisgICAgICAgIHJldHVybiBTcGVjRE9NRG9jdW1l
bnRXcmFwcGVyOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlm
ICh0eXBlID49IERPTUVsZW1lbnRUeXBlKQorICAgICAgICByZXR1cm4gU3BlY0RPTUVsZW1lbnQ7
CisgICAgaWYgKHR5cGUgPj0gRE9NTm9kZVR5cGUpCisgICAgICAgIHJldHVybiBTcGVjRE9NT3Ro
ZXJOb2RlOworCiAgICAgcmV0dXJuIHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyhzdHJ1Y3R1cmUt
PmNsYXNzSW5mbygpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3BlY3VsYXRlZFR5cGUuaAppbmRleCBmNDNkZmNkMzE1ODcxZTk4OTUzZWEyZGRkYzRiZjMzNTI1
Y2NkZmRmLi40YzdiZGY3YzY4YjI2M2Y0NDU2OWMwODc0NjMzYTMwN2U0NjE2OTNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaApAQCAtNTks
MjQgKzU5LDI4IEBAIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTWFwT2JqZWN0ICAg
ICAgICAgID0gMXVsbCA8PCAxNjsgLy8gSXQncyBkZWZpbml0CiBzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY1NldE9iamVjdCAgICAgICAgICA9IDF1bGwgPDwgMTc7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgogc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9iamVjdCAgICAgICAgPSAxdWxsIDw8IDE4OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBvYmplY3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2Vz
Lgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEZXJpdmVkQXJyYXkgICAgICAgPSAx
dWxsIDw8IDE5OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBEZXJpdmVkQXJyYXkgb2JqZWN0Lgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgPSAxdWxsIDw8
IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwg
SlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
T2JqZWN0ICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1
bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNT
Y29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNw
ZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2
ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlcjsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZv
ciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgID0gMXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlkZW50aWZpZXIuCi1zdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBub3QgYW4gaWRlbnRpZmllci4KK3N0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyID0gMXVsbCA8PCAy
MDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRE9NIGRvY3VtZW50IHdyYXBwZXIgb2JqZWN0Lgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNET01FbGVtZW50ICAgICAgICAgPSAxdWxsIDw8
IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBET00gZWxlbWVudCBvYmplY3QuCitzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RPTU90aGVyTm9kZSAgICAgICA9IDF1bGwgPDwgMjI7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIERPTSBOb2RlIG9iamVjdCBidXQgbm90IERvY3VtZW50V3JhcHBl
ciBhbmQgRWxlbWVudC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRE9NTm9kZSAg
ICAgICAgICAgID0gU3BlY0RPTURvY3VtZW50V3JhcHBlciB8IFNwZWNET01FbGVtZW50IHwgU3Bl
Y0RPTU90aGVyTm9kZTsKK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0T3Ro
ZXIgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQg
bm90IEpTRmluYWxPYmplY3QsIEpTQXJyYXksIG9yIEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdCAgICAgICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8
IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJl
Y3RBcmd1bWVudHMgfCBTcGVjU2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNw
ZWNSZWdFeHBPYmplY3QgfCBTcGVjTWFwT2JqZWN0IHwgU3BlY1NldE9iamVjdCB8IFNwZWNQcm94
eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBTcGVjRE9NTm9kZSB8IFNwZWNPYmplY3RPdGhl
cjsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJl
ZGljdGlvbi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAg
ICAgID0gMXVsbCA8PCAyNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdz
IGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1Zh
ciAgICAgICAgICA9IDF1bGwgPDwgMjU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBh
bmQgaXQncyBub3QgYW4gaWRlbnRpZmllci4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjU3RyaW5nICAgICAgICAgICAgID0gU3BlY1N0cmluZ0lkZW50IHwgU3BlY1N0cmluZ1Zhcjsg
Ly8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY1N5bWJvbCAgICAgICAgICAgICA9IDF1bGwgPDwgMjM7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIFN5bWJvbC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAg
ICAgICAgID0gMXVsbCA8PCAyNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3Qg
YSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZyBvciBh
IFN5bWJvbC4gRklYTUU6IFRoaXMgc2hvdWxkbid0IGJlIHBhcnQgb2YgaGVhcC10b3Agb3IgYnl0
ZWNvZGUtdG9wLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDc4
CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N5bWJvbCAgICAgICAgICAgICA9IDF1
bGwgPDwgMjY7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN5bWJvbC4KK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVm
aW5pdGVseSBub3QgYSBKU1N0cmluZyBvciBhIFN5bWJvbC4gRklYTUU6IFRoaXMgc2hvdWxkbid0
IGJlIHBhcnQgb2YgaGVhcC10b3Agb3IgYnl0ZWNvZGUtdG9wLiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDc4CiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0NlbGwgICAgICAgICAgICAgICA9IFNwZWNPYmplY3QgfCBTcGVjU3RyaW5nIHwgU3BlY1N5
bWJvbCB8IFNwZWNDZWxsT3RoZXI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbC4KLXN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbEludDMyICAgICAgICAgID0gMXVsbCA8PCAy
NTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgMCBvciAxLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25Cb29sSW50MzIgICAgICAgPSAxdWxsIDw8IDI2
OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3Ig
MS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9vbEludDMyICAgICAgICAgID0g
MXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgMCBvciAx
Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25Cb29sSW50MzIgICAgICAgPSAx
dWxsIDw8IDI5OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSBvdGhlciB0
aGFuIDAgb3IgMS4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50MzJPbmx5ICAg
ICAgICAgID0gU3BlY0Jvb2xJbnQzMiB8IFNwZWNOb25Cb29sSW50MzI7IC8vIEl0J3MgZGVmaW5p
dGVseSBhbiBJbnQzMi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50NTJPbmx5
ICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCB3
ZSBpbnRlbmQgaXQgdG8gdW5ib3ggaXQuIEl0J3MgYWxzbyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQz
Mi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSW50NTJPbmx5ICAgICAgICAgID0g
MXVsbCA8PCAzMDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCB3ZSBpbnRlbmQgaXQg
dG8gdW5ib3ggaXQuIEl0J3MgYWxzbyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQzMi4KIHN0YXRpYyBj
b25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50ICAgICAgICAgICAgID0gU3BlY0ludDMyT25s
eSB8IFNwZWNJbnQ1Mk9ubHk7IC8vIEl0J3Mgc29tZXRoaW5nIHRoYXQgd2UgY2FuIGRvIG1hY2hp
bmUgaW50IGFyaXRobWV0aWMgb24uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Fu
eUludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMjg7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1
MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY05vbkludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVseSBu
b3QgYW4gSW50NTIgYnV0IGl0J3MgYSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KK3N0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50QXNEb3VibGUgICAgID0gMXVsbCA8
PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdzIGluc2lkZSBhIGRvdWJs
ZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNEb3VibGUgICAgID0g
MXVsbCA8PCAzMjsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQ1MiBidXQgaXQncyBhIHJl
YWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNEb3VibGVSZWFsICAgICAgICAgPSBTcGVjTm9uSW50QXNEb3VibGUgfCBTcGVjQW55SW50
QXNEb3VibGU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIG5vbi1OYU4gZG91YmxlLgotc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVQdXJlTmFOICAgICAgPSAxdWxsIDw8IDMwOyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWUgdG8gdGFnIChpLmUuIHB1cmUpLgot
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVJbXB1cmVOYU4gICAgPSAxdWxs
IDw8IDMxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyB1bnNhZmUgdG8gdGFnIChp
LmUuIGltcHVyZSkuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVO
YU4gICAgICA9IDF1bGwgPDwgMzM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNh
ZSB0byB0YWcgKGkuZS4gcHVyZSkuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Rv
dWJsZUltcHVyZU5hTiAgICA9IDF1bGwgPDwgMzQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0
aGF0IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4gaW1wdXJlKS4KIHN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjRG91YmxlTmFOICAgICAgICAgID0gU3BlY0RvdWJsZVB1cmVOYU4gfCBTcGVj
RG91YmxlSW1wdXJlTmFOOyAvLyBJdCdzIGRlZmluaXRlbHkgc29tZSBraW5kIG9mIE5hTi4KIHN0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVEb3VibGUgICAgID0gU3BlY0Rv
dWJsZVJlYWwgfCBTcGVjRG91YmxlUHVyZU5hTjsgLy8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9y
IGEgTmFOIGRvdWJsZSwgYnV0IGl0J3MgZGVmaW5pdGVseSBub3QgaW1wdXJlIE5hTi4KIHN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbERvdWJsZSAgICAgICAgID0gU3BlY0RvdWJs
ZVJlYWwgfCBTcGVjRG91YmxlTmFOOyAvLyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4g
ZG91YmxlLgpAQCAtODQsMTIgKzg4LDEyIEBAIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjQnl0ZWNvZGVSZWFsTnVtYmVyID0gU3BlY0ludDMyT25seSB8IFNwZWNEb3VibGVSCiBzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxSZWFsTnVtYmVyICAgICA9IFNwZWNBbnlJ
bnQgfCBTcGVjRG91YmxlUmVhbDsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGVS
ZWFsLCBvciBhIEludDUyLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29k
ZU51bWJlciAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0J5dGVjb2RlRG91YmxlOyAvLyBJdCdz
IGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZSwgYW5kIHRoZSBEb3VibGUgY2Fubm90IGJlIGFu
IGltcHVyZSBOYU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxOdW1iZXIg
ICAgICAgICA9IFNwZWNBbnlJbnQgfCBTcGVjRnVsbERvdWJsZTsgLy8gSXQncyBlaXRoZXIgYW4g
SW50MzIsIEludDUyLCBvciBhIERvdWJsZSwgYW5kIHRoZSBEb3VibGUgY2FuIGJlIGltcHVyZSBO
YU4uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICA9
IDF1bGwgPDwgMzI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCi1zdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAgICAgICAgICAgICA9IDF1bGwgPDwgMzM7IC8vIEl0
J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBvciBVbmRlZmluZWQuCitzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICA9IDF1bGwgPDwgMzU7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIEJvb2xlYW4uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY090
aGVyICAgICAgICAgICAgICA9IDF1bGwgPDwgMzY7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIg
TnVsbCBvciBVbmRlZmluZWQuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY01pc2Mg
ICAgICAgICAgICAgICA9IFNwZWNCb29sZWFuIHwgU3BlY090aGVyOyAvLyBJdCdzIGRlZmluaXRl
bHkgZWl0aGVyIGEgYm9vbGVhbiwgTnVsbCwgb3IgVW5kZWZpbmVkLgogc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAgICAgICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNCeXRl
Y29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhj
ZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLgogc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRpdmUgICAgICAgICAgPSBTcGVjU3RyaW5nIHwg
U3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCdzIGFueSBu
b24tT2JqZWN0IEpTVmFsdWUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5
ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzQ7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2
YWx1ZSBtYXJrZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAg
ICAgICAgICA9IDF1bGwgPDwgMzc7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBt
YXJrZXIuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlVG9wICAgICAg
ICA9IFNwZWNIZWFwVG9wIHwgU3BlY0VtcHR5OyAvLyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92
ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVjRG91YmxlSW1wdXJlTmFOLiBDb3Jy
ZXNwb25kcyB0byB3aGF0IGNvdWxkIGJlIGZvdW5kIGluIGEgYnl0ZWNvZGUgbG9jYWwuCiBzdGF0
aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1bGxUb3AgICAgICAgICAgICA9IFNwZWNCeXRl
Y29kZVRvcCB8IFNwZWNGdWxsTnVtYmVyOyAvLyBJdCBjYW4gYmUgYW55dGhpbmcgdGhhdCBieXRl
Y29kZSBjb3VsZCBzZWUgcGx1cyBleG90aWMgZW5jb2RpbmdzIG9mIG51bWJlcnMuCiAKQEAgLTQx
OCw2ICs0MjIsMjEgQEAgaW5saW5lIGJvb2wgaXNVbnR5cGVkU3BlY3VsYXRpb25Gb3JCaXRPcHMo
U3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAgcmV0dXJuICEhKHZhbHVlICYgfihTcGVjRnVsbE51
bWJlciB8IFNwZWNCb29sZWFuIHwgU3BlY090aGVyKSk7CiB9CiAKK2lubGluZSBib29sIGlzRE9N
Tm9kZVNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQoreworICAgIHJldHVybiAhISh2
YWx1ZSAmIFNwZWNET01Ob2RlKSAmJiAhKHZhbHVlICYgflNwZWNET01Ob2RlKTsKK30KKworaW5s
aW5lIGJvb2wgaXNET01FbGVtZW50U3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7
CisgICAgcmV0dXJuIHZhbHVlID09IFNwZWNET01FbGVtZW50OworfQorCitpbmxpbmUgYm9vbCBp
c0RPTURvY3VtZW50V3JhcHBlclNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQorewor
ICAgIHJldHVybiB2YWx1ZSA9PSBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyOworfQorCiB2b2lkIGR1
bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYsIFNwZWN1bGF0ZWRUeXBlKTsKIHZvaWQgZHVtcFNw
ZWN1bGF0aW9uQWJicmV2aWF0ZWQoUHJpbnRTdHJlYW0mLCBTcGVjdWxhdGVkVHlwZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCmluZGV4IDhl
ODhhMTQ2Mzc3MTJlZmFkYzQxZGZkNDQxNjQwMDI5ZDU0NGU3NzAuLjI5MDg5MGU1MDFlNWY4NTNj
MGU3MDc5NWMwYTBjNGFmYjhkYTE5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaApAQCAtMTcyLDcgKzE3Miw3IEBAIGNsYXNzIFZhbHVlUmVj
b3ZlcnkgewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIEFTU0VSVChkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXROb25lICYmIGRh
dGFGb3JtYXQgIT0gRGF0YUZvcm1hdFN0b3JhZ2UpOworICAgICAgICAgICAgQVNTRVJUKGRhdGFG
b3JtYXQgIT0gRGF0YUZvcm1hdE5vbmUgJiYgZGF0YUZvcm1hdCAhPSBEYXRhRm9ybWF0U3RvcmFn
ZSAmJiBkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXRPcGFxdWVQb2ludGVyKTsKICAgICAgICAgICAg
IHJlc3VsdC5tX3RlY2huaXF1ZSA9IERpc3BsYWNlZEluSlNTdGFjazsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggOWRiMTNlM2E4N2U2Yjc4ZGFh
MWU5YjAxMjMzMmZhMTVmNTY0NDQ5MC4uMWFlMzg5NzI3MDFmNTMxMzJhOWNkZjliZjdlOTRiNTUz
ZWVjMGQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjI2MSw4ICsyMjYxLDEzIEBAIGJvb2wg
QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVu
c2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CiAgICAgY2FzZSBBbGxv
Y2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6
CisgICAgY2FzZSBMb2FkT3BhcXVlUG9pbnRlcjoKKyAgICBjYXNlIEdldERPTVdyYXBwZWQ6CiAg
ICAgICAgIGZvck5vZGUobm9kZSkuY2xlYXIoKTsgLy8gVGhlIHJlc3VsdCBpcyBub3QgYSBKUyB2
YWx1ZS4KICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUb0RPTVdyYXBwZXI6CisgICAgICAgIGZv
ck5vZGUobm9kZSkuc2V0VHlwZShTcGVjRE9NTm9kZSB8IFNwZWNPdGhlcik7CisgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ2hlY2tBcnJheTogewogICAgICAgICBpZiAobm9kZS0+YXJyYXlNb2Rl
KCkuYWxyZWFkeUNoZWNrZWQobV9ncmFwaCwgbm9kZSwgZm9yTm9kZShub2RlLT5jaGlsZDEoKSkp
KSB7CiAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOwpAQCAtMjgx
Niw2ICsyODIxLDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBl
Pjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICBjYXNlIENoZWNrVGll
clVwSW5Mb29wOgogICAgIGNhc2UgQ2hlY2tUaWVyVXBBdFJldHVybjoKICAgICBjYXNlIENoZWNr
VHlwZUluZm9GbGFnczoKKyAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQ3JlYXRlUmVzdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMDQ1MjI4MGRkMjZmNDBiMGJjYTQ1ZDM4NTFkMTEw
ZGY0MTZhMGZhNy4uZTViNDgxZTRmMWM5Njk3NjY1ZDIwZDEzYmE4YmI4Njc2ZmFmZTVlMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAg
LTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJERkdDbG9iYmVyc0V4aXRTdGF0ZS5oIgogI2luY2x1
ZGUgIkRGR0dyYXBoLmgiCiAjaW5jbHVkZSAiREZHSklUQ29kZS5oIgorI2luY2x1ZGUgIkRPTUpJ
VElSLmgiCiAjaW5jbHVkZSAiR2V0QnlJZFN0YXR1cy5oIgogI2luY2x1ZGUgIkhlYXAuaCIKICNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCkBAIC0yMTksNiArMjIwLDcgQEAgY2xhc3MgQnl0ZUNvZGVQ
YXJzZXIgewogICAgIGJvb2wgaGFuZGxlQ29uc3RhbnRJbnRlcm5hbEZ1bmN0aW9uKE5vZGUqIGNh
bGxUYXJnZXROb2RlLCBpbnQgcmVzdWx0T3BlcmFuZCwgSW50ZXJuYWxGdW5jdGlvbiosIGludCBy
ZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzLCBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kLCBTcGVjdWxhdGVkVHlwZSwgY29uc3QgQ2hlY2tzRnVuY3RvciYgaW5zZXJ0
Q2hlY2tzKTsKICAgICBOb2RlKiBoYW5kbGVQdXRCeU9mZnNldChOb2RlKiBiYXNlLCB1bnNpZ25l
ZCBpZGVudGlmaWVyLCBQcm9wZXJ0eU9mZnNldCwgY29uc3QgSW5mZXJyZWRUeXBlOjpEZXNjcmlw
dG9yJiwgTm9kZSogdmFsdWUpOwogICAgIE5vZGUqIGhhbmRsZUdldEJ5T2Zmc2V0KFNwZWN1bGF0
ZWRUeXBlLCBOb2RlKiBiYXNlLCB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyLCBQcm9wZXJ0eU9m
ZnNldCwgY29uc3QgSW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9yJiwgTm9kZVR5cGUgPSBHZXRCeU9m
ZnNldCk7CisgICAgYm9vbCBoYW5kbGVET01KSVRHZXR0ZXIoaW50IHJlc3VsdE9wZXJhbmQsIGNv
bnN0IEdldEJ5SWRWYXJpYW50JiwgTm9kZSogdGhpc05vZGUsIFNwZWN1bGF0ZWRUeXBlIHByZWRp
Y3Rpb24pOwogCiAgICAgLy8gQ3JlYXRlIGEgcHJlc2VuY2UgT2JqZWN0UHJvcGVydHlDb25kaXRp
b24gYmFzZWQgb24gc29tZSBrbm93biBvZmZzZXQgYW5kIHN0cnVjdHVyZSBzZXQuIERvZXMgbm90
CiAgICAgLy8gY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBjb25kaXRpb24sIGJ1dCBpdCBtYXkg
cmV0dXJuIGEgbnVsbCBvbmUgaWYgaXQgZW5jb3VudGVycyBhIGNvbnRyYWRpY3Rpb24uCkBAIC0y
NjU5LDYgKzI2NjEsNTcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljR2V0
dGVyKGludCByZXN1bHRPcGVyYW5kLCBjb25zdCBHZXRCeUlkVmFyaWEKICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCitib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVET01K
SVRHZXR0ZXIoaW50IHJlc3VsdE9wZXJhbmQsIGNvbnN0IEdldEJ5SWRWYXJpYW50JiB2YXJpYW50
LCBOb2RlKiB0aGlzTm9kZSwgU3BlY3VsYXRlZFR5cGUpCit7CisgICAgaWYgKCF2YXJpYW50LmRv
bUpJVCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBIYXNoTWFwPERPTUpJVDo6SVIq
LCBOb2RlKj4gbm9kZU1hcDsKKworICAgIGF1dG8gbG9va1VwTm9kZSA9IFsmXShET01KSVQ6OklS
KiBpcikgeworICAgICAgICByZXR1cm4gbm9kZU1hcC5nZXQoaXIpOworICAgIH07CisKKyAgICBh
dXRvIHJlZ2lzdGVyTm9kZSA9IFsmXShET01KSVQ6OklSKiBpciwgTm9kZSogbm9kZSkgeworICAg
ICAgICBub2RlTWFwLmFkZChpciwgbm9kZSk7CisgICAgfTsKKworICAgIHJlZ2lzdGVyTm9kZShE
T01KSVQ6OklSOjp0aGlzVmFsdWUoKSwgdGhpc05vZGUpOworCisgICAgZm9yIChET01KSVQ6OklS
JiBpciA6IHZhcmlhbnQuZG9tSklUKCktPmlyKCkpIHsKKyAgICAgICAgc3dpdGNoIChpci5tX2tp
bmQpIHsKKyAgICAgICAgY2FzZSBET01KSVQ6OktpbmQ6OkNoZWNrTm9kZToKKyAgICAgICAgICAg
IGFkZFRvR3JhcGgoQ2hlY2ssIEVkZ2UobG9va1VwTm9kZShpci5tX2NoaWxkMSksIERPTU5vZGVV
c2UpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRE9NSklUOjpLaW5kOjpD
aGVja05vZGVGbGFnczoKKyAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tOb2RlRmxhZ3MsIE9w
SW5mbyhpci5tX29wSW5mbzEpLCBsb29rVXBOb2RlKGlyLm1fY2hpbGQxKSk7CisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICBjYXNlIERPTUpJVDo6S2luZDo6R2V0V3JhcHBlZDoKKyAgICAg
ICAgICAgIHJlZ2lzdGVyTm9kZSgmaXIsIGFkZFRvR3JhcGgoR2V0RE9NV3JhcHBlZCwgT3BJbmZv
KGlyLm1fb3BJbmZvMSksIGxvb2tVcE5vZGUoaXIubV9jaGlsZDEpKSk7CisgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICBjYXNlIERPTUpJVDo6S2luZDo6TG9hZFBvaW50ZXI6CisgICAgICAg
ICAgICByZWdpc3Rlck5vZGUoJmlyLCBhZGRUb0dyYXBoKExvYWRPcGFxdWVQb2ludGVyLCBPcElu
Zm8oaXIubV9vcEluZm8xKSwgbG9va1VwTm9kZShpci5tX2NoaWxkMSkpKTsKKyAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgIGNhc2UgRE9NSklUOjpLaW5kOjpUb1dyYXBwZXI6CisgICAgICAg
ICAgICByZWdpc3Rlck5vZGUoJmlyLCBhZGRUb0dyYXBoKFRvRE9NV3JhcHBlciwgT3BJbmZvKGly
Lm1fb3BJbmZvMSksIE9wSW5mbyhpci5tX29wSW5mbzIpLCBsb29rVXBOb2RlKGlyLm1fY2hpbGQx
KSwgbG9va1VwTm9kZShpci5tX2NoaWxkMikpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGNhc2UgRE9NSklUOjpLaW5kOjpSZXR1cm46CisgICAgICAgICAgICBzZXQoVmlydHVhbFJl
Z2lzdGVyKHJlc3VsdE9wZXJhbmQpLCBsb29rVXBOb2RlKGlyLm1fY2hpbGQxKSk7CisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIERPTUpJVDo6S2luZDo6RXh0ZXJuYWw6CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQor
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGVja3NGdW5jdG9yPgogYm9vbCBCeXRlQ29kZVBhcnNlcjo6
aGFuZGxlVHlwZWRBcnJheUNvbnN0cnVjdG9yKAogICAgIGludCByZXN1bHRPcGVyYW5kLCBJbnRl
cm5hbEZ1bmN0aW9uKiBmdW5jdGlvbiwgaW50IHJlZ2lzdGVyT2Zmc2V0LApAQCAtMzMxMiw2ICsz
MzY1LDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlR2V0QnlJZCgKICAgICAKICAgICBB
U1NFUlQoZ2V0QnlJZFN0YXR1cy5udW1WYXJpYW50cygpID09IDEpOwogICAgIEdldEJ5SWRWYXJp
YW50IHZhcmlhbnQgPSBnZXRCeUlkU3RhdHVzWzBdOworCiAgICAgICAgICAgICAgICAgCiAgICAg
Tm9kZSogbG9hZGVkVmFsdWUgPSBsb2FkKHByZWRpY3Rpb24sIGJhc2UsIGlkZW50aWZpZXJOdW1i
ZXIsIHZhcmlhbnQpOwogICAgIGlmICghbG9hZGVkVmFsdWUpIHsKQEAgLTMzMjQsNiArMzM3OCwx
NCBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVHZXRCeUlkKAogICAgICAgICBtX2dyYXBo
LmNvbXBpbGF0aW9uKCktPm5vdGljZUlubGluZWRHZXRCeUlkKCk7CiAKICAgICBBU1NFUlQodHlw
ZSA9PSBBY2Nlc3NUeXBlOjpHZXQgfHwgIXZhcmlhbnQuY2FsbExpbmtTdGF0dXMoKSk7CisKKyAg
ICBpZiAodmFyaWFudC5kb21KSVQoKSkgeworICAgICAgICBpZiAoaGFuZGxlRE9NSklUR2V0dGVy
KGRlc3RpbmF0aW9uT3BlcmFuZCwgdmFyaWFudCwgYmFzZSwgcHJlZGljdGlvbikpIHsKKyAgICAg
ICAgICAgIGFkZFRvR3JhcGgoUGhhbnRvbSwgbG9hZGVkVmFsdWUpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKCF2YXJpYW50LmNhbGxMaW5rU3RhdHVz
KCkgJiYgdmFyaWFudC5pbnRyaW5zaWMoKSA9PSBOb0ludHJpbnNpYykgewogICAgICAgICBzZXQo
VmlydHVhbFJlZ2lzdGVyKGRlc3RpbmF0aW9uT3BlcmFuZCksIGxvYWRlZFZhbHVlKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRl
eCA4N2Q4YjUyZDhjZDc5ZmQ0OTI0Yzg1ODIxNDI2MTZlNzJkYTcyM2M0Li5kNWRiMWQzNDE1YmRl
YTQ3N2IxM2UxMWZlZGI1OWJhMTY3ZmNjYzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJpemUuaApAQCAtODQ1LDYgKzg0NSwxMCBAQCB2b2lkIGNsb2JiZXJpemUoR3Jh
cGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3Jp
dGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKENoZWNrVHlwZUluZm9GbGFnc0xvYywgSlND
ZWxsX3R5cGVJbmZvRmxhZ3MsIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUobm9kZSkpOwogICAg
ICAgICByZXR1cm47CiAKKyAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgorICAgICAgICByZWFkKFdv
cmxkKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToK
ICAgICAgICAgcmVhZChKU0NlbGxfdHlwZUluZm9GbGFncyk7CiAgICAgICAgIGRlZihIZWFwTG9j
YXRpb24oT3ZlcnJpZGVzSGFzSW5zdGFuY2VMb2MsIEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBub2Rl
LT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKQEAgLTg4Myw2ICs4ODcsMTQgQEAgdm9pZCBj
bG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJl
YWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihCdXR0ZXJmbHlMb2Ms
IEpTT2JqZWN0X2J1dHRlcmZseSwgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CiAg
ICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBQcmVjaXNlbHkgbW9kZWwgaXQuCisgICAg
Y2FzZSBMb2FkT3BhcXVlUG9pbnRlcjoKKyAgICBjYXNlIEdldERPTVdyYXBwZWQ6CisgICAgY2Fz
ZSBUb0RPTVdyYXBwZXI6CisgICAgICAgIHJlYWQoV29ybGQpOworICAgICAgICB3cml0ZShIZWFw
KTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBBcnJheWlmeToKICAgICBjYXNlIEFycmF5
aWZ5VG9TdHJ1Y3R1cmU6CiAgICAgICAgIHJlYWQoSlNDZWxsX3N0cnVjdHVyZUlEKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcnNFeGl0U3RhdGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyc0V4aXRTdGF0ZS5jcHAKaW5k
ZXggYmQzMzliODlhNTEyNGIzZjc0NzNhYTEyYTdkNDA4OTYwYjBjZWZmMy4uYzNlMzhlMjA4NzZl
ZWQxNzViMWY1YTM5ZDI1N2ZmNjkyMWNlMGY0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyc0V4aXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDbG9iYmVyc0V4aXRTdGF0ZS5jcHAKQEAgLTY5LDYgKzY5LDggQEAgYm9v
bCBjbG9iYmVyc0V4aXRTdGF0ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBS
ZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgIGNhc2UgU3RvcmVCYXJyaWVyOgogICAgIGNh
c2UgRmVuY2VkU3RvcmVCYXJyaWVyOgorICAgIGNhc2UgR2V0RE9NV3JhcHBlZDoKKyAgICBjYXNl
IExvYWRPcGFxdWVQb2ludGVyOgogICAgICAgICAvLyBUaGVzZSBkbyBjbG9iYmVyIG1lbW9yeSwg
YnV0IG5vdGhpbmcgdGhhdCBpcyBvYnNlcnZhYmxlLiBJdCBtYXkgYmUgbmljZSB0byBzZXBhcmF0
ZSB0aGUKICAgICAgICAgLy8gaGVhcHMgaW50byB0aG9zZSB0aGF0IGFyZSBvYnNlcnZhYmxlIGFu
ZCB0aG9zZSB0aGF0IGFyZW4ndCwgYnV0IHdlIGRvbid0IGRvIHRoYXQgcmlnaHQgbm93LgogICAg
ICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
ODQ0MApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDBhZDU0ZmVl
MmZmMzlkODg1NzBiMTc3Njc4MWYyNDE5NjA5ZmRjZGEuLjdiNWE3NzQ4ZDM4MzQ4MTc2NjRkZTFh
NmZkN2MyNDNkODRlYjdkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKQEAgLTExNiw2ICsxMTYsOSBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUpCiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAg
ICAgY2FzZSBHZXRCdXR0ZXJmbHk6CisgICAgY2FzZSBMb2FkT3BhcXVlUG9pbnRlcjoKKyAgICBj
YXNlIEdldERPTVdyYXBwZWQ6CisgICAgY2FzZSBUb0RPTVdyYXBwZXI6CiAgICAgY2FzZSBDaGVj
a0FycmF5OgogICAgIGNhc2UgR2V0U2NvcGU6CiAgICAgY2FzZSBTa2lwU2NvcGU6CkBAIC0yMDMs
NiArMjA2LDcgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNh
c2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKICAgICBjYXNlIENoZWNrOgogICAgIGNhc2UgQ2hl
Y2tUeXBlSW5mb0ZsYWdzOgorICAgIGNhc2UgQ2hlY2tOb2RlRmxhZ3M6CiAgICAgY2FzZSBNdWx0
aUdldEJ5T2Zmc2V0OgogICAgIGNhc2UgVmFsdWVSZXA6CiAgICAgY2FzZSBEb3VibGVSZXA6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCA1YWQ2YWZk
NDdiNDgyNTAzOTAyNDM3NTk4MTk4NjM2ZGZhYTExODAwLi4xYWM3OWZhMzk4MWYzNzJmMTgwMWE2
MjJhNWIyNjIwMDdmMmM4YjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAKQEAgLTEyNDQsNyArMTI0NCw4IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJs
aWMgUGhhc2UgewogICAgICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgICAgICBjYXNlIENo
ZWNrQ2VsbDoKICAgICAgICAgY2FzZSBDcmVhdGVUaGlzOgotICAgICAgICBjYXNlIEdldEJ1dHRl
cmZseTogeworICAgICAgICBjYXNlIEdldEJ1dHRlcmZseToKKyAgICAgICAgY2FzZSBHZXRET01X
cmFwcGVkOiB7CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xNjIxLDYgKzE2MjIsNyBAQCBjbGFz
cyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBOb3RpZnlXcml0ZToK
ICAgICAgICAgY2FzZSBDYWxsOgogICAgICAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKKyAg
ICAgICAgY2FzZSBDaGVja05vZGVGbGFnczoKICAgICAgICAgY2FzZSBUYWlsQ2FsbElubGluZWRD
YWxsZXI6CiAgICAgICAgIGNhc2UgQ29uc3RydWN0OgogICAgICAgICBjYXNlIENhbGxWYXJhcmdz
OgpAQCAtMTY3MSw2ICsxNjczLDggQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7
CiAgICAgICAgIGNhc2UgUHV0QnlWYWxXaXRoVGhpczoKICAgICAgICAgY2FzZSBHZXRCeVZhbFdp
dGhUaGlzOgogICAgICAgICBjYXNlIENvbXBhcmVFcVB0cjoKKyAgICAgICAgY2FzZSBMb2FkT3Bh
cXVlUG9pbnRlcjoKKyAgICAgICAgY2FzZSBUb0RPTVdyYXBwZXI6CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIAogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dlbmVyYXRpb25JbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dlbmVyYXRpb25JbmZvLmgKaW5kZXggZTlkZjg0MTA2ODUyNThjNjQ5Mzdh
ZjRlNmUzNmU1ZTAwNzc2ZGU5MC4uMzgyZGVhMWM2MjJmYjNjNTQ0MGRiOGQ4ZDEwZWU3ZThiYTc4
MDBiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9u
SW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR2VuZXJhdGlvbkluZm8u
aApAQCAtMTQ2LDYgKzE0NiwxMSBAQCBjbGFzcyBHZW5lcmF0aW9uSW5mbyB7CiAgICAgewogICAg
ICAgICBpbml0R1BSKG5vZGUsIHVzZUNvdW50LCBncHIsIERhdGFGb3JtYXRTdG9yYWdlKTsKICAg
ICB9CisgICAgdm9pZCBpbml0T3BhcXVlUG9pbnRlcihOb2RlKiBub2RlLCB1aW50MzJfdCB1c2VD
b3VudCwgR1BSUmVnIGdwcikKKyAgICB7CisgICAgICAgIGluaXRHUFIobm9kZSwgdXNlQ291bnQs
IGdwciwgRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXIpOworICAgIH0KKwogCiAgICAgLy8gR2V0IHRo
ZSBub2RlIHRoYXQgcHJvZHVjZWQgdGhpcyB2YWx1ZS4KICAgICBOb2RlKiBub2RlKCkgeyByZXR1
cm4gbV9ub2RlOyB9CkBAIC0zNzEsNiArMzc2LDEwIEBAIGNsYXNzIEdlbmVyYXRpb25JbmZvIHsK
ICAgICB7CiAgICAgICAgIGZpbGxHUFIoc3RyZWFtLCBncHIsIERhdGFGb3JtYXRTdG9yYWdlKTsK
ICAgICB9CisgICAgdm9pZCBmaWxsT3BhcXVlUG9pbnRlcihWYXJpYWJsZUV2ZW50U3RyZWFtJiBz
dHJlYW0sIEdQUlJlZyBncHIpCisgICAgeworICAgICAgICBmaWxsR1BSKHN0cmVhbSwgZ3ByLCBE
YXRhRm9ybWF0T3BhcXVlUG9pbnRlcik7CisgICAgfQogCiAgICAgYm9vbCBhbGl2ZSgpCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCA0YmFlOWFlOTYzNjA5YzNmMzcz
MDZiMTRmNTcyZjJiNGZhYzU3NDRiLi5hNjU4YzRjZDljYjk2YWM4YzllZmIyMGU2NWM4MGYzYWM3
MTBkYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtNTgsNiArNTgsMTAg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK25hbWVzcGFjZSBET01KSVQgeworY2xhc3MgR3JhcGg7
Cit9CisKIG5hbWVzcGFjZSBQcm9maWxlciB7CiBjbGFzcyBFeGVjdXRpb25Db3VudGVyOwogfQpA
QCAtMTIxNSw2ICsxMjE5LDExIEBAIHN0cnVjdCBOb2RlIHsKICAgICB7CiAgICAgICAgIHJldHVy
biByZXN1bHQoKSA9PSBOb2RlUmVzdWx0U3RvcmFnZTsKICAgICB9CisKKyAgICBib29sIGhhc09w
YXF1ZVBvaW50ZXJSZXN1bHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlc3VsdCgpID09IE5v
ZGVSZXN1bHRPcGFxdWVQb2ludGVyOworICAgIH0KICAgICAKICAgICBVc2VLaW5kIGRlZmF1bHRV
c2VLaW5kKCkKICAgICB7CkBAIC0yMjU5LDYgKzIyNjgsMjEgQEAgc3RydWN0IE5vZGUgewogICAg
IHsKICAgICAgICAgcmV0dXJuIG9wMS0+c2hvdWxkU3BlY3VsYXRlQXJyYXkoKSAmJiBvcDItPnNo
b3VsZFNwZWN1bGF0ZUFycmF5KCk7CiAgICAgfQorCisgICAgYm9vbCBzaG91bGRTcGVjdWxhdGVE
T01Ob2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc0RPTU5vZGVTcGVjdWxhdGlvbihwcmVk
aWN0aW9uKCkpOworICAgIH0KKworICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlRE9NRWxlbWVudCgp
CisgICAgeworICAgICAgICByZXR1cm4gaXNET01FbGVtZW50U3BlY3VsYXRpb24ocHJlZGljdGlv
bigpKTsKKyAgICB9CisKKyAgICBib29sIHNob3VsZFNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBl
cigpCisgICAgeworICAgICAgICByZXR1cm4gaXNET01Eb2N1bWVudFdyYXBwZXJTcGVjdWxhdGlv
bihwcmVkaWN0aW9uKCkpOworICAgIH0KICAgICAKICAgICBib29sIGNhblNwZWN1bGF0ZUludDMy
KFJhcmVDYXNlUHJvZmlsaW5nU291cmNlIHNvdXJjZSkKICAgICB7CkBAIC0yMzA4LDcgKzIzMzIs
NDIgQEAgc3RydWN0IE5vZGUgewogICAgICAgICBBU1NFUlQoaGFzQmFzaWNCbG9ja0xvY2F0aW9u
KCkpOwogICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8QmFzaWNCbG9ja0xvY2F0aW9uKj4oKTsK
ICAgICB9Ci0gICAgCisKKyAgICBib29sIGhhc09wYXF1ZVBvaW50ZXJPZmZzZXQoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIG9wKCkgPT0gTG9hZE9wYXF1ZVBvaW50ZXIgfHwgb3AoKSA9PSBHZXRE
T01XcmFwcGVkIHx8IG9wKCkgPT0gQ2hlY2tOb2RlRmxhZ3MgfHwgb3AoKSA9PSBUb0RPTVdyYXBw
ZXI7CisgICAgfQorCisgICAgcHRyZGlmZl90IG9wYXF1ZVBvaW50ZXJPZmZzZXQoKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKGhhc0xvYWRPcGFxdWVQb2ludGVyT2Zmc2V0KCkpOworICAgICAgICBy
ZXR1cm4gbV9vcEluZm8uYXM8cHRyZGlmZl90PigpOworICAgIH0KKworICAgIGJvb2wgaGFzTm9k
ZUZsYWdzT3BlcmFuZCgpCisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBDaGVja05vZGVG
bGFnczsKKyAgICB9CisKKyAgICB1aW50MzJfdCBub2RlRmxhZ3NPcGVyYW5kKCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChoYXNOb2RlRmxhZ3NPcGVyYW5kKCkpOworICAgICAgICByZXR1cm4gbV9v
cEluZm8yLmFzPHVpbnQzMl90PigpOworICAgIH0KKworICAgIGJvb2wgaGFzU2xvd1RvSlNPcGVy
YXRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gVG9ET01XcmFwcGVyOworICAg
IH0KKworICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpUb0pTT3BlcmF0aW9uKShKU0M6OkV4
ZWNTdGF0ZSosIHZvaWQqLCB2b2lkKik7CisKKyAgICBUb0pTT3BlcmF0aW9uIHNsb3dUb0pTT3Bl
cmF0aW9uKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChoYXNTbG93VG9KU09wZXJhdGlvbigpKTsK
KyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxUb0pTT3BlcmF0aW9uPihtX29wSW5mbzIuYXM8
dWludHB0cl90PigpKTsKKyAgICB9CisKICAgICBOb2RlKiByZXBsYWNlbWVudCgpIGNvbnN0CiAg
ICAgewogICAgICAgICByZXR1cm4gbV9taXNjLnJlcGxhY2VtZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCmluZGV4IDM0MDg0MjE5MDIwZjExMjFjNGQ4ZWRi
YjQ2YjNkZTY4YWMyOTIwNmYuLmE0MDNmZDQyM2IyMDc1NzJjOWNhYzJmYjExOWNmYmY0YzZjOWRk
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKQEAgLTYy
LDYgKzYyLDkgQEAgdm9pZCBkdW1wTm9kZUZsYWdzKFByaW50U3RyZWFtJiBhY3R1YWxPdXQsIE5v
ZGVGbGFncyBmbGFncykKICAgICAgICAgY2FzZSBOb2RlUmVzdWx0U3RvcmFnZToKICAgICAgICAg
ICAgIG91dC5wcmludChjb21tYSwgIlN0b3JhZ2UiKTsKICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIE5vZGVSZXN1bHRPcGFxdWVQb2ludGVyOgorICAgICAgICAgICAgb3V0LnByaW50
KGNvbW1hLCAiT3BhcXVlUG9pbnRlciIpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVGbGFncy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAppbmRl
eCA0YWJhZGRmMjQ5M2M2M2Y1NDA2NWNkMzAxYTM0YmJjNjcwZGJmZDFhLi41NDcxOGFjNTI3NDNi
Y2JjN2Q3ODEzZmQxZmMzNzgyZjhiODUzMTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGVGbGFncy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZUZsYWdzLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogCiAvLyBFbnRyaWVzIGluIHRoZSBOb2RlVHlwZSBlbnVtIChiZWxvdykgYXJlIGNv
bXBvc2VkIG9mIGFuIGlkLCBhIHJlc3VsdCB0eXBlIChwb3NzaWJseSBub25lKQogLy8gYW5kIHNv
bWUgYWRkaXRpb25hbCBpbmZvcm1hdGl2ZSBmbGFncyAobXVzdCBnZW5lcmF0ZSwgaXMgY29uc3Rh
bnQsIGV0YykuCi0jZGVmaW5lIE5vZGVSZXN1bHRNYXNrICAgICAgICAgICAgICAgICAgIDB4MDAw
NworI2RlZmluZSBOb2RlUmVzdWx0TWFzayAgICAgICAgICAgICAgICAgICAweDAwMGYKICNkZWZp
bmUgTm9kZVJlc3VsdEpTICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCiAjZGVmaW5lIE5vZGVS
ZXN1bHROdW1iZXIgICAgICAgICAgICAgICAgIDB4MDAwMgogI2RlZmluZSBOb2RlUmVzdWx0RG91
YmxlICAgICAgICAgICAgICAgICAweDAwMDMKQEAgLTQyLDM1ICs0MiwzNiBAQCBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAjZGVmaW5lIE5vZGVSZXN1bHRJbnQ1MiAgICAgICAgICAg
ICAgICAgIDB4MDAwNQogI2RlZmluZSBOb2RlUmVzdWx0Qm9vbGVhbiAgICAgICAgICAgICAgICAw
eDAwMDYKICNkZWZpbmUgTm9kZVJlc3VsdFN0b3JhZ2UgICAgICAgICAgICAgICAgMHgwMDA3Cisj
ZGVmaW5lIE5vZGVSZXN1bHRPcGFxdWVQb2ludGVyICAgICAgICAgIDB4MDAwOAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKLSNkZWZpbmUgTm9kZU11c3RHZW5lcmF0ZSAgICAgICAg
ICAgICAgICAgMHgwMDA4IC8vIHNldCBvbiBub2RlcyB0aGF0IGhhdmUgc2lkZSBlZmZlY3RzLCBh
bmQgbWF5IG5vdCB0cml2aWFsbHkgYmUgcmVtb3ZlZCBieSBEQ0UuCi0jZGVmaW5lIE5vZGVIYXNW
YXJBcmdzICAgICAgICAgICAgICAgICAgIDB4MDAxMAorI2RlZmluZSBOb2RlTXVzdEdlbmVyYXRl
ICAgICAgICAgICAgICAgICAweDAwMTAgLy8gc2V0IG9uIG5vZGVzIHRoYXQgaGF2ZSBzaWRlIGVm
ZmVjdHMsIGFuZCBtYXkgbm90IHRyaXZpYWxseSBiZSByZW1vdmVkIGJ5IERDRS4KKyNkZWZpbmUg
Tm9kZUhhc1ZhckFyZ3MgICAgICAgICAgICAgICAgICAgMHgwMDIwCiAgICAgCi0jZGVmaW5lIE5v
ZGVCZWhhdmlvck1hc2sgICAgICAgICAgICAgICAgIDB4MDdlMAotI2RlZmluZSBOb2RlTWF5SGF2
ZURvdWJsZVJlc3VsdCAgICAgICAgICAweDAwMjAKLSNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50
NTIgICAgICAgICAgICAgMHgwMDQwCi0jZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNl
bGluZSAgIDB4MDA4MAotI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluREZHICAgICAgICAw
eDAxMDAKLSNkZWZpbmUgTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lICAgICAgICAgMHgwMjAwCi0j
ZGVmaW5lIE5vZGVNYXlOZWdaZXJvSW5ERkcgICAgICAgICAgICAgIDB4MDQwMAotI2RlZmluZSBO
b2RlTWF5SGF2ZU5vbk51bWJlclJlc3VsdCAgICAgICAweDA4MDAKKyNkZWZpbmUgTm9kZUJlaGF2
aW9yTWFzayAgICAgICAgICAgICAgICAgMHgwZmMwCisjZGVmaW5lIE5vZGVNYXlIYXZlRG91Ymxl
UmVzdWx0ICAgICAgICAgIDB4MDA0MAorI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiAgICAg
ICAgICAgICAweDAwODAKKyNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAg
MHgwMTAwCisjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgICAgICAgIDB4MDIwMAor
I2RlZmluZSBOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUgICAgICAgICAweDA0MDAKKyNkZWZpbmUg
Tm9kZU1heU5lZ1plcm9JbkRGRyAgICAgICAgICAgICAgMHgwODAwCisjZGVmaW5lIE5vZGVNYXlI
YXZlTm9uTnVtYmVyUmVzdWx0ICAgICAgIDB4MTAwMAogI2RlZmluZSBOb2RlTWF5SGF2ZU5vbklu
dFJlc3VsdCAgICAgICAgICAoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQgfCBOb2RlTWF5SGF2ZU5v
bk51bWJlclJlc3VsdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0jZGVmaW5l
IE5vZGVCeXRlY29kZUJhY2tQcm9wTWFzayAgICAgICAgMHgxZjAwMAorI2RlZmluZSBOb2RlQnl0
ZWNvZGVCYWNrUHJvcE1hc2sgICAgICAgIDB4M2UwMDAKICNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNl
Qm90dG9tICAgICAgICAgICAweDAwMDAwCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJl
ciAgICAgICAgMHgwMTAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJl
IHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRo
YW4taW50MzIsIHJlc3VsdHMuCi0jZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAg
ICAgMHgwMjAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQg
aW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgLTAuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNB
c090aGVyICAgICAgICAgMHgwNDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24g
bWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBh
bmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCisjZGVmaW5lIE5vZGVCeXRlY29kZVVz
ZXNBc051bWJlciAgICAgICAgMHgwMjAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRp
b24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3Ig
YmlnZ2VyLXRoYW4taW50MzIsIHJlc3VsdHMuCisjZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVn
WmVybyAgICAgICAgMHgwNDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5
IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgLTAuCisjZGVmaW5lIE5vZGVCeXRl
Y29kZVVzZXNBc090aGVyICAgICAgICAgMHgwODAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29t
cHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3
ZWVuIE5hTiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCiAjZGVmaW5lIE5vZGVC
eXRlY29kZVVzZXNBc1ZhbHVlICAgICAgICAgKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5v
ZGVCeXRlY29kZU5lZWRzTmVnWmVybyB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKQotI2RlZmlu
ZSBOb2RlQnl0ZWNvZGVVc2VzQXNJbnQgICAgICAgICAgIDB4MDgwMDAgLy8gVGhlIHJlc3VsdCBv
ZiB0aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQg
cHJlZmVycywgYnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgotI2RlZmluZSBO
b2RlQnl0ZWNvZGVVc2VzQXNBcnJheUluZGV4ICAgIDB4MTAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0
aGlzIGNvbXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ry
b25nbHkgcHJlZmVycyBpbnRlZ2VyIHZhbHVlcywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxk
IGF2b2lkIHVzaW5nIGRvdWJsZXMgaWYgYXQgYWxsIHBvc3NpYmxlLgorI2RlZmluZSBOb2RlQnl0
ZWNvZGVVc2VzQXNJbnQgICAgICAgICAgIDB4MTAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNv
bXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywg
YnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgorI2RlZmluZSBOb2RlQnl0ZWNv
ZGVVc2VzQXNBcnJheUluZGV4ICAgIDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1
dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkgcHJl
ZmVycyBpbnRlZ2VyIHZhbHVlcywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lkIHVz
aW5nIGRvdWJsZXMgaWYgYXQgYWxsIHBvc3NpYmxlLgogCiAjZGVmaW5lIE5vZGVBcml0aEZsYWdz
TWFzayAgICAgICAgICAgICAgIChOb2RlQmVoYXZpb3JNYXNrIHwgTm9kZUJ5dGVjb2RlQmFja1By
b3BNYXNrKQogCi0jZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAgICAgICAgICAgICAgICAgMHgyMDAw
MCAvLyBDb21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91IHdoaWNo
IGxvY2FsIG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4KKyNkZWZp
bmUgTm9kZUlzRmx1c2hlZCAgICAgICAgICAgICAgICAgICAweDA0MDAwMCAvLyBDb21wdXRlZCBi
eSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91IHdoaWNoIGxvY2FsIG5vZGVzIGFy
ZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4KIAotI2RlZmluZSBOb2RlTWlzY0Zs
YWcxICAgICAgICAgICAgICAgICAgIDB4NDAwMDAKLSNkZWZpbmUgTm9kZU1pc2NGbGFnMiAgICAg
ICAgICAgICAgICAgICAweDgwMDAwCisjZGVmaW5lIE5vZGVNaXNjRmxhZzEgICAgICAgICAgICAg
ICAgICAgMHgwODAwMDAKKyNkZWZpbmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAgICAw
eDEwMDAwMAogCiB0eXBlZGVmIHVpbnQzMl90IE5vZGVGbGFnczsKIApAQCAtMTY0LDYgKzE2NSw3
IEBAIHN0YXRpYyBpbmxpbmUgTm9kZUZsYWdzIGNhbm9uaWNhbFJlc3VsdFJlcHJlc2VudGF0aW9u
KE5vZGVGbGFncyBmbGFncykKICAgICBjYXNlIE5vZGVSZXN1bHREb3VibGU6CiAgICAgY2FzZSBO
b2RlUmVzdWx0SW50NTI6CiAgICAgY2FzZSBOb2RlUmVzdWx0U3RvcmFnZToKKyAgICBjYXNlIE5v
ZGVSZXN1bHRPcGFxdWVQb2ludGVyOgogICAgICAgICByZXR1cm4gZmxhZ3M7CiAgICAgZGVmYXVs
dDoKICAgICAgICAgcmV0dXJuIE5vZGVSZXN1bHRKUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZVR5cGUuaAppbmRleCA4YjRkOWYwYzMwOWE3YzE4OWQ2NTIyNzY5YjA3ZDUyOTRkNjZj
NGZkLi42ZmUwYjMwZDA5NmU5MTE0N2UyZTU0NjA4YWU5YTdkNDc4Yzc5MWEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0zOTQsNiArMzk0LDEyIEBAIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhHZXRNYXBCdWNrZXQsIE5vZGVS
ZXN1bHRKUykgXAogICAgIG1hY3JvKExvYWRGcm9tSlNNYXBCdWNrZXQsIE5vZGVSZXN1bHRKUykg
XAogICAgIG1hY3JvKElzTm9uRW1wdHlNYXBCdWNrZXQsIE5vZGVSZXN1bHRCb29sZWFuKSBcCisg
ICAgXAorICAgIC8qIE5vZGVzIGZvciBET00gSklUICovXAorICAgIG1hY3JvKExvYWRPcGFxdWVQ
b2ludGVyLCBOb2RlUmVzdWx0T3BhcXVlUG9pbnRlcikgXAorICAgIG1hY3JvKENoZWNrTm9kZUZs
YWdzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oVG9ET01XcmFwcGVyLCBOb2RlUmVz
dWx0SlMpIFwKKyAgICBtYWNybyhHZXRET01XcmFwcGVkLCBOb2RlUmVzdWx0T3BhcXVlUG9pbnRl
cikgXAogCiAvLyBUaGlzIGVudW0gZ2VuZXJhdGVzIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5n
IGlkIGZvciBhbGwgTm9kZSB0eXBlcywKIC8vIGFuZCBpcyB1c2VkIGJ5IHRoZSBzdWJzZXF1ZW50
IGVudW0gdG8gZmlsbCBvdXQgdGhlIGlkIChhcyBhY2Nlc3NlZCB2aWEgdGhlIE5vZGVJZE1hc2sp
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBiYWZkZjkwNmViZjZmNzMwN2NhZjQwZjZiODVj
MTFiMDExOWUxZjIyLi4yNzQ1NzBjY2Y5ZmY2YjViZjAyZTU5MTAyYjYxNGI0ZGE3ZTU3MTk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtODE5LDYgKzgxOSwxNiBAQCBjbGFzcyBQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogCisgICAgICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CisgICAgICAgIGNh
c2UgR2V0RE9NV3JhcHBlZDoKKyAgICAgICAgICAgIHNldFByZWRpY3Rpb24oU3BlY090aGVyKTsK
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIEZJWE1FOiBNb2RlbCBwcmVjaXNlbHku
CisgICAgICAgIGNhc2UgVG9ET01XcmFwcGVyOgorICAgICAgICAgICAgc2V0UHJlZGljdGlvbihT
cGVjRE9NTm9kZSB8IFNwZWNPdGhlcik7CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBj
YXNlIENhbGxPYmplY3RDb25zdHJ1Y3RvcjogewogICAgICAgICAgICAgc2V0UHJlZGljdGlvbihT
cGVjT2JqZWN0KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTA1OCw2ICsxMDY4LDcgQEAgY2xh
c3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBj
YXNlIFB1dFN0cnVjdHVyZToKICAgICAgICAgY2FzZSBQaGFudG9tOgogICAgICAgICBjYXNlIENo
ZWNrOgorICAgICAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgogICAgICAgICBjYXNlIFB1dEdsb2Jh
bFZhcmlhYmxlOgogICAgICAgICBjYXNlIENoZWNrV2F0Y2hkb2dUaW1lcjoKICAgICAgICAgY2Fz
ZSBMb2dTaGFkb3dDaGlja2VuUHJvbG9ndWU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGJkZGQ0NjYwMTdlOWY4N2I2YzAzNTQ0MGNkOGFmMTQ3
Yjg2NWRmNGYuLjYwMThmNTJhZGY4YWY3MjM3ZmQ3M2VhYWNmYmQ2MTUwOWE0MDBlNTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC01OSw2ICs1
OSw5IEBAIGNsYXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBGaW5hbE9iamVj
dFVzZToKICAgICAgICAgY2FzZSBSZWdFeHBPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgUHJveHlP
YmplY3RVc2U6CisgICAgICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAgY2FzZSBET01FbGVt
ZW50VXNlOgorICAgICAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKICAgICAgICAgY2Fz
ZSBEZXJpdmVkQXJyYXlVc2U6CiAgICAgICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICBj
YXNlIFNldE9iamVjdFVzZToKQEAgLTIxNiw2ICsyMTksOSBAQCBib29sIHNhZmVUb0V4ZWN1dGUo
QWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBH
ZXRCdXR0ZXJmbHk6CisgICAgY2FzZSBMb2FkT3BhcXVlUG9pbnRlcjoKKyAgICBjYXNlIEdldERP
TVdyYXBwZWQ6CisgICAgY2FzZSBUb0RPTVdyYXBwZXI6CiAgICAgY2FzZSBDaGVja0FycmF5Ogog
ICAgIGNhc2UgQXJyYXlpZnk6CiAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgpAQCAtMjU5
LDYgKzI2NSw3IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUs
IEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNh
c2UgUHJvZmlsZUNvbnRyb2xGbG93OgogICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgorICAg
IGNhc2UgQ2hlY2tOb2RlRmxhZ3M6CiAgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKICAg
ICBjYXNlIEluc3RhbmNlT2Y6CiAgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAxMGVmYjcy
MDQzZjFhYzg3NzAxYWJkODZmOWVjY2ExYWRmOGQzN2IxLi4xYmQxNWVhM2FhZmNmZTg2NzA3OTFl
NjFlNzZmOTM4ZjUwNzYzYjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcApAQCAtNDI0LDcgKzQyNCw3IEBAIFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4gU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3Rl
ciBzcGlsCiAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CiAgICAgICAgIGlm
IChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50MzIpCiAgICAgICAgICAgICBzcGlsbEFj
dGlvbiA9IFN0b3JlMzJQYXlsb2FkOwotICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9
PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFnZSkK
KyAgICAgICAgZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwgfHwgcmVn
aXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0b3JhZ2UgfHwgcmVnaXN0ZXJGb3JtYXQgPT0gRGF0
YUZvcm1hdE9wYXF1ZVBvaW50ZXIpCiAgICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlUHRy
OwogICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50NTIgfHwg
cmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0cmljdEludDUyKQogICAgICAgICAgICAgc3Bp
bGxBY3Rpb24gPSBTdG9yZTY0OwpAQCAtNDc4LDcgKzQ3OCw3IEBAIFNpbGVudFJlZ2lzdGVyU2F2
ZVBsYW4gU3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3Rl
ciBzcGlsCiAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKICNlbmRpZgog
ICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3Rv
cmFnZSkgeworICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0b3Jh
Z2UgfHwgcmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXIpIHsKICAgICAg
ICAgQVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKICAgICAgICAgZmlsbEFjdGlvbiA9IExv
YWRQdHI7CiAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50NTIp
IHsKQEAgLTk2MCw2ICs5NjAsMzYgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3RvcmFn
ZShFZGdlIGVkZ2UpCiAgICAgfQogfQogCitHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxPcGFx
dWVQb2ludGVyKEVkZ2UgZWRnZSkKK3sKKyAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lz
dGVyID0gZWRnZS0+dmlydHVhbFJlZ2lzdGVyKCk7CisgICAgR2VuZXJhdGlvbkluZm8mIGluZm8g
PSBnZW5lcmF0aW9uSW5mb0Zyb21WaXJ0dWFsUmVnaXN0ZXIodmlydHVhbFJlZ2lzdGVyKTsKKyAg
ICAKKyAgICBzd2l0Y2ggKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkgeworICAgIGNhc2UgRGF0YUZv
cm1hdE5vbmU6IHsKKyAgICAgICAgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0
T3BhcXVlUG9pbnRlcikgeworICAgICAgICAgICAgR1BSUmVnIGdwciA9IGFsbG9jYXRlKCk7Cisg
ICAgICAgICAgICBtX2dwcnMucmV0YWluKGdwciwgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVy
U3BpbGxlZCk7CisgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNz
Rm9yKHZpcnR1YWxSZWdpc3RlciksIGdwcik7CisgICAgICAgICAgICBpbmZvLmZpbGxPcGFxdWVQ
b2ludGVyKCptX3N0cmVhbSwgZ3ByKTsKKyAgICAgICAgICAgIHJldHVybiBncHI7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIC8vIE11c3QgYmUgYSBjZWxsOyBmaWxsIGl0IGFzIGEgY2Vs
bCBhbmQgdGhlbiByZXR1cm4gdGhlIHBvaW50ZXIuCisgICAgICAgIHJldHVybiBmaWxsU3BlY3Vs
YXRlQ2VsbChlZGdlKTsKKyAgICB9CisgICAgICAgIAorICAgIGNhc2UgRGF0YUZvcm1hdE9wYXF1
ZVBvaW50ZXI6IHsKKyAgICAgICAgR1BSUmVnIGdwciA9IGluZm8uZ3ByKCk7CisgICAgICAgIG1f
Z3Bycy5sb2NrKGdwcik7CisgICAgICAgIHJldHVybiBncHI7CisgICAgfQorICAgICAgICAKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmlsbFNwZWN1bGF0ZUNlbGwoZWRnZSk7CisgICAg
fQorfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjp1c2VDaGlsZHJlbihOb2RlKiBub2RlKQogewog
ICAgIGlmIChub2RlLT5mbGFncygpICYgTm9kZUhhc1ZhckFyZ3MpIHsKQEAgLTIxMDUsNiArMjEz
NSw3IEBAIEdlbmVyYXRlZE9wZXJhbmRUeXBlIFNwZWN1bGF0aXZlSklUOjpjaGVja0dlbmVyYXRl
ZFR5cGVGb3JUb0ludDMyKE5vZGUqIG5vZGUpCiAKICAgICBzd2l0Y2ggKGluZm8ucmVnaXN0ZXJG
b3JtYXQoKSkgewogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgY2FzZSBEYXRhRm9y
bWF0T3BhcXVlUG9pbnRlcjoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IAogICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46CkBAIC0zMDU0LDYgKzMwODUsMTcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyhOb2RlKiBub2RlKQog
ICAgIG5vUmVzdWx0KG5vZGUpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hl
Y2tOb2RlRmxhZ3MoTm9kZSogbm9kZSkKK3sKKyAgICBPcGFxdWVQb2ludGVyT3BlcmFuZCBiYXNl
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKworICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIo
KTsKKworICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9q
aXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhiYXNlR1BSLCBub2RlLT5vcGFxdWVQb2ludGVyT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKG5vZGUtPm5vZGVGbGFnc09wZXJhbmQoKSkpKTsKKworICAgIG5vUmVz
dWx0KG5vZGUpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZihO
b2RlKiBub2RlKQogewogICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBl
ZFVzZSkgewpAQCAtNzA1Nyw2ICs3MDk5LDc0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVHZXRCdXR0ZXJmbHkoTm9kZSogbm9kZSkKICAgICBzdG9yYWdlUmVzdWx0KHJlc3VsdEdQUiwg
bm9kZSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2FkT3BhcXVlUG9pbnRl
cihOb2RlKiBub2RlKQoreworICAgIE9wYXF1ZVBvaW50ZXJPcGVyYW5kIGJhc2UodGhpcywgbm9k
ZS0+Y2hpbGQxKCkpOworICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGJhc2Up
OworCisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyByZXN1bHRH
UFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRy
ZXNzKGJhc2VHUFIsIG5vZGUtPm9wYXF1ZVBvaW50ZXJPZmZzZXQoKSksIHJlc3VsdEdQUik7CisK
KyAgICBvcGFxdWVQb2ludGVyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7Cit9CisKK3ZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRET01XcmFwcGVkKE5vZGUqIG5vZGUpCit7CisgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgR1BSVGVt
cG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgYmFzZSk7CisKKyAgICBHUFJSZWcgYmFzZUdQUiA9
IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAg
IG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFkZHJlc3MoYmFzZUdQUiwgbm9kZS0+b3BhcXVl
UG9pbnRlck9mZnNldCgpKSwgcmVzdWx0R1BSKTsKKworICAgIG9wYXF1ZVBvaW50ZXJSZXN1bHQo
cmVzdWx0R1BSLCBub2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvRE9N
V3JhcHBlcihOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhp
cywgbm9kZS0+Y2hpbGQyKCkpOworICAgIE9wYXF1ZVBvaW50ZXJPcGVyYW5kIHdyYXBwZWQodGhp
cywgbm9kZS0+Y2hpbGQyKCkpOworICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlz
KTsKKworICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcgd3JhcHBl
ZEdQUiA9IHdyYXBwZWQuZ3ByKCk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3Vs
dC5yZWdzKCk7CisKKyAgICBzcGVjdWxhdGVET01Ob2RlKG5vZGUtPmNoaWxkMigpLCBiYXNlR1BS
KTsKKworICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdE51bGwgPSBtX2ppdC5icmFuY2hUZXN0UHRy
KEpJVENvbXBpbGVyOjpOb25aZXJvLCB3cmFwcGVkR1BSKTsKKyAgICBtX2ppdC5tb3ZlVHJ1c3Rl
ZFZhbHVlKGpzTnVsbCgpLCByZXN1bHRSZWdzKTsKKyAgICBKSVRDb21waWxlcjo6SnVtcCBkb25l
ID0gbV9qaXQuanVtcCgpOworCisgICAgbm90TnVsbC5saW5rKCZtX2ppdCk7CisKKyAgICAvLyBU
aGlzIHNob3VsZCBiZSByZW1vdmVkIGJ5IERGRy4KKyAgICAvLyBtX2ppdC0+bV9qaXQuZW1pdExv
YWRTdHJ1Y3R1cmUod3JhcHBlclJlZywgZ2xvYmFsT2JqZWN0UmVnLCBzY3JhdGNoUmVnKTsKKyAg
ICAvLyBtX2ppdC0+bV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhnbG9iYWxP
YmplY3RSZWcsIEpTQzo6U3RydWN0dXJlOjpnbG9iYWxPYmplY3RPZmZzZXQoKSksIGdsb2JhbE9i
amVjdFJlZyk7CisKKyAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAg
Ly8gc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC0+bV9qaXQuYnJhbmNoVGVzdDgoTWFjcm9Bc3NlbWJs
ZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGdsb2JhbE9iamVjdFJlZywgSlNET01H
bG9iYWxPYmplY3Q6Om9mZnNldE9mV29ybGRJc05vcm1hbCgpKSkpOworCisgICAgLy8gV2Vha1Bv
aW50ZXIgZGVyZWZlcmVuY2UuCisgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVz
cyh3cmFwcGVkR1BSLCBub2RlLT5vcGFxdWVQb2ludGVyT2Zmc2V0KCkpLCByZXN1bHRSZWdzLnBh
eWxvYWRHUFIoKSk7CisgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1
bHRSZWdzLnBheWxvYWRHUFIoKSksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKKyAgICBzbG93
Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJl
c3VsdFJlZ3MucGF5bG9hZEdQUigpKSk7CisKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIG1f
aml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
cmVzdWx0UmVncy50YWdHUFIoKSk7CisjZW5kaWYKKworICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KHNsb3dQYXRoQ2FsbChzbG93Q2FzZXMsIHRoaXMsIG5vZGUtPnNsb3dUb0pTT3BlcmF0aW9uKCks
IHJlc3VsdFJlZ3MsIHdyYXBwZWRHUFIsIGJhc2VHUFIpKTsKKworICAgIGRvbmUubGluaygmbV9q
aXQpOworCisgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKK30KKwogR1BSUmVn
IFNwZWN1bGF0aXZlSklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKEdQUlRlbXBvcmFy
eSYgdGVtcG9yYXJ5LCBBcnJheU1vZGUgYXJyYXlNb2RlKQogewogICAgIGlmICghcHV0QnlWYWxX
aWxsTmVlZEV4dHJhUmVnaXN0ZXIoYXJyYXlNb2RlKSkKQEAgLTc1MDAsNiArNzYxMCw0OCBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTZXRPYmplY3QoRWRnZSBlZGdlKQogICAgIHNw
ZWN1bGF0ZVNldE9iamVjdChlZGdlLCBvcGVyYW5kLmdwcigpKTsKIH0KIAordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlRE9NTm9kZShFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQoreworICAg
IERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGNlbGwpLCBlZGdlLCBT
cGVjRE9NTm9kZSwgbV9qaXQuYnJhbmNoSWZOb3RET01Ob2RlKGNlbGwpKTsKK30KKwordm9pZCBT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NTm9kZShFZGdlIGVkZ2UpCit7CisgICAgaWYgKCFu
ZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjRE9NTm9kZSkpCisgICAgICAgIHJldHVybjsKKworICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhpcywgZWRnZSk7CisgICAgc3BlY3VsYXRl
RE9NTm9kZShlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlRE9NRWxlbWVudChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQoreworICAgIERGR19U
WVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGNlbGwpLCBlZGdlLCBTcGVjRE9N
RWxlbWVudCwgbV9qaXQuYnJhbmNoSWZOb3RET01FbGVtZW50KGNlbGwpKTsKK30KKwordm9pZCBT
cGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRWxlbWVudChFZGdlIGVkZ2UpCit7CisgICAgaWYg
KCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjRE9NRWxlbWVudCkpCisgICAgICAgIHJldHVybjsK
KworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhpcywgZWRnZSk7CisgICAgc3Bl
Y3VsYXRlRE9NRWxlbWVudChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKEVkZ2UgZWRnZSwgR1BSUmVnIGNl
bGwpCit7CisgICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRnZSwgY2VsbCwgU3BlY0RPTURvY3VtZW50
V3JhcHBlciwgRE9NRG9jdW1lbnRXcmFwcGVyVHlwZSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlIGVkZ2UpCit7CisgICAgaWYgKCFu
ZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAg
ICBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoZWRnZSwgb3BlcmFuZC5ncHIoKSk7Cit9CisK
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoRWRnZSBlZGdlKQog
ewogICAgIGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY09iamVjdCB8IFNwZWNPdGhlcikp
CkBAIC03ODA1LDYgKzc5NTcsMTUgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5v
ZGUqLCBFZGdlIGVkZ2UpCiAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICBzcGVj
dWxhdGVPYmplY3RPck90aGVyKGVkZ2UpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTU5v
ZGVVc2U6CisgICAgICAgIHNwZWN1bGF0ZURPTU5vZGUoZWRnZSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICAgICAgc3BlY3VsYXRlRE9NRWxlbWVudChlZGdl
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CisgICAg
ICAgIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihlZGdlKTsKKyAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQoZWRn
ZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCmluZGV4IGNhOTc4ZjZiNzM5NTEzOTUwMTUxMGQwNTgyOGEwMjk4MjJmODVh
MWIuLjNkNWY3Y2ZkYzY4M2JmODE4Yzg5NjIxOTNhYWRmMzExM2ZiYWRkZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTkyLDI1ICs5Miwy
NyBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgLy8gdGhlIHJlZ2lzdGVyIGFsbG9jYXRv
ci4KICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIGVudW0gU3BpbGxPcmRlciB7Ci0gICAgICAgIFNw
aWxsT3JkZXJDb25zdGFudCA9IDEsIC8vIG5vIHNwaWxsLCBhbmQgY2hlYXAgZmlsbAotICAgICAg
ICBTcGlsbE9yZGVyU3BpbGxlZCAgPSAyLCAvLyBubyBzcGlsbAotICAgICAgICBTcGlsbE9yZGVy
SlMgICAgICAgPSA0LCAvLyBuZWVkcyBzcGlsbAotICAgICAgICBTcGlsbE9yZGVyQ2VsbCAgICAg
PSA0LCAvLyBuZWVkcyBzcGlsbAotICAgICAgICBTcGlsbE9yZGVyU3RvcmFnZSAgPSA0LCAvLyBu
ZWVkcyBzcGlsbAotICAgICAgICBTcGlsbE9yZGVySW50ZWdlciAgPSA1LCAvLyBuZWVkcyBzcGls
bCBhbmQgYm94Ci0gICAgICAgIFNwaWxsT3JkZXJCb29sZWFuICA9IDUsIC8vIG5lZWRzIHNwaWxs
IGFuZCBib3gKLSAgICAgICAgU3BpbGxPcmRlckRvdWJsZSAgID0gNiwgLy8gbmVlZHMgc3BpbGwg
YW5kIGNvbnZlcnQKKyAgICAgICAgU3BpbGxPcmRlckNvbnN0YW50ICAgICAgPSAxLCAvLyBubyBz
cGlsbCwgYW5kIGNoZWFwIGZpbGwKKyAgICAgICAgU3BpbGxPcmRlclNwaWxsZWQgICAgICAgPSAy
LCAvLyBubyBzcGlsbAorICAgICAgICBTcGlsbE9yZGVySlMgICAgICAgICAgICA9IDQsIC8vIG5l
ZWRzIHNwaWxsCisgICAgICAgIFNwaWxsT3JkZXJDZWxsICAgICAgICAgID0gNCwgLy8gbmVlZHMg
c3BpbGwKKyAgICAgICAgU3BpbGxPcmRlclN0b3JhZ2UgICAgICAgPSA0LCAvLyBuZWVkcyBzcGls
bAorICAgICAgICBTcGlsbE9yZGVyT3BhcXVlUG9pbnRlciA9IDQsIC8vIG5lZWRzIHNwaWxsCisg
ICAgICAgIFNwaWxsT3JkZXJJbnRlZ2VyICAgICAgID0gNSwgLy8gbmVlZHMgc3BpbGwgYW5kIGJv
eAorICAgICAgICBTcGlsbE9yZGVyQm9vbGVhbiAgICAgICA9IDUsIC8vIG5lZWRzIHNwaWxsIGFu
ZCBib3gKKyAgICAgICAgU3BpbGxPcmRlckRvdWJsZSAgICAgICAgPSA2LCAvLyBuZWVkcyBzcGls
bCBhbmQgY29udmVydAogICAgIH07CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIGVudW0g
U3BpbGxPcmRlciB7Ci0gICAgICAgIFNwaWxsT3JkZXJDb25zdGFudCA9IDEsIC8vIG5vIHNwaWxs
LCBhbmQgY2hlYXAgZmlsbAotICAgICAgICBTcGlsbE9yZGVyU3BpbGxlZCAgPSAyLCAvLyBubyBz
cGlsbAotICAgICAgICBTcGlsbE9yZGVySlMgICAgICAgPSA0LCAvLyBuZWVkcyBzcGlsbAotICAg
ICAgICBTcGlsbE9yZGVyU3RvcmFnZSAgPSA0LCAvLyBuZWVkcyBzcGlsbAotICAgICAgICBTcGls
bE9yZGVyRG91YmxlICAgPSA0LCAvLyBuZWVkcyBzcGlsbAotICAgICAgICBTcGlsbE9yZGVySW50
ZWdlciAgPSA1LCAvLyBuZWVkcyBzcGlsbCBhbmQgYm94Ci0gICAgICAgIFNwaWxsT3JkZXJDZWxs
ICAgICA9IDUsIC8vIG5lZWRzIHNwaWxsIGFuZCBib3gKLSAgICAgICAgU3BpbGxPcmRlckJvb2xl
YW4gID0gNSwgLy8gbmVlZHMgc3BpbGwgYW5kIGJveAorICAgICAgICBTcGlsbE9yZGVyQ29uc3Rh
bnQgICAgICA9IDEsIC8vIG5vIHNwaWxsLCBhbmQgY2hlYXAgZmlsbAorICAgICAgICBTcGlsbE9y
ZGVyU3BpbGxlZCAgICAgICA9IDIsIC8vIG5vIHNwaWxsCisgICAgICAgIFNwaWxsT3JkZXJKUyAg
ICAgICAgICAgID0gNCwgLy8gbmVlZHMgc3BpbGwKKyAgICAgICAgU3BpbGxPcmRlclN0b3JhZ2Ug
ICAgICAgPSA0LCAvLyBuZWVkcyBzcGlsbAorICAgICAgICBTcGlsbE9yZGVyT3BhcXVlUG9pbnRl
ciA9IDQsIC8vIG5lZWRzIHNwaWxsCisgICAgICAgIFNwaWxsT3JkZXJEb3VibGUgICAgICAgID0g
NCwgLy8gbmVlZHMgc3BpbGwKKyAgICAgICAgU3BpbGxPcmRlckludGVnZXIgICAgICAgPSA1LCAv
LyBuZWVkcyBzcGlsbCBhbmQgYm94CisgICAgICAgIFNwaWxsT3JkZXJDZWxsICAgICAgICAgID0g
NSwgLy8gbmVlZHMgc3BpbGwgYW5kIGJveAorICAgICAgICBTcGlsbE9yZGVyQm9vbGVhbiAgICAg
ICA9IDUsIC8vIG5lZWRzIHNwaWxsIGFuZCBib3gKICAgICB9OwogI2VuZGlmCiAKQEAgLTE0MSw2
ICsxNDMsNyBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgYm9vbCBmaWxsSlNWYWx1ZShF
ZGdlLCBHUFJSZWcmLCBHUFJSZWcmLCBGUFJSZWcmKTsKICNlbmRpZgogICAgIEdQUlJlZyBmaWxs
U3RvcmFnZShFZGdlKTsKKyAgICBHUFJSZWcgZmlsbE9wYXF1ZVBvaW50ZXIoRWRnZSk7CiAKICAg
ICAvLyBsb2NrIGFuZCB1bmxvY2sgR1BSICYgRlBSIHJlZ2lzdGVycy4KICAgICB2b2lkIGxvY2so
R1BSUmVnIHJlZykKQEAgLTUxNiw2ICs1MTksMTQgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0
T3BhcXVlUG9pbnRlcjogeworICAgICAgICAgICAgLy8gVGhpcyBpcyBzcGVjaWFsLCBzaW5jZSBp
dCdzIG5vdCBhIEpTIHZhbHVlIC0gYXMgaW4gaXQncyBub3QgdmlzaWJsZSB0byBKUworICAgICAg
ICAgICAgLy8gY29kZS4KKyAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKGluZm8uZ3ByKCksIEpJ
VENvbXBpbGVyOjphZGRyZXNzRm9yKHNwaWxsTWUpKTsKKyAgICAgICAgICAgIGluZm8uc3BpbGwo
Km1fc3RyZWFtLCBzcGlsbE1lLCBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIERhdGFGb3JtYXRJbnQzMjogewog
ICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihpbmZvLmdwcigpLCBKSVRDb21waWxlcjo6cGF5bG9h
ZEZvcihzcGlsbE1lKSk7CiAgICAgICAgICAgICBpbmZvLnNwaWxsKCptX3N0cmVhbSwgc3BpbGxN
ZSwgRGF0YUZvcm1hdEludDMyKTsKQEAgLTkwMSw2ICs5MTIsMTYgQEAgY2xhc3MgU3BlY3VsYXRp
dmVKSVQgewogICAgICAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IGdlbmVyYXRpb25JbmZvRnJv
bVZpcnR1YWxSZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpOwogICAgICAgICBpbmZvLmluaXRTdG9y
YWdlKG5vZGUsIG5vZGUtPnJlZkNvdW50KCksIHJlZyk7CiAgICAgfQorICAgIHZvaWQgb3BhcXVl
UG9pbnRlclJlc3VsdChHUFJSZWcgcmVnLCBOb2RlKiBub2RlLCBVc2VDaGlsZHJlbk1vZGUgbW9k
ZSA9IENhbGxVc2VDaGlsZHJlbikKKyAgICB7CisgICAgICAgIGlmIChtb2RlID09IENhbGxVc2VD
aGlsZHJlbikKKyAgICAgICAgICAgIHVzZUNoaWxkcmVuKG5vZGUpOworCisgICAgICAgIFZpcnR1
YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBub2RlLT52aXJ0dWFsUmVnaXN0ZXIoKTsKKyAg
ICAgICAgbV9ncHJzLnJldGFpbihyZWcsIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlck9wYXF1
ZVBvaW50ZXIpOworICAgICAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IGdlbmVyYXRpb25JbmZv
RnJvbVZpcnR1YWxSZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpOworICAgICAgICBpbmZvLmluaXRP
cGFxdWVQb2ludGVyKG5vZGUsIG5vZGUtPnJlZkNvdW50KCksIHJlZyk7CisgICAgfQogICAgIHZv
aWQgZG91YmxlUmVzdWx0KEZQUlJlZyByZWcsIE5vZGUqIG5vZGUsIFVzZUNoaWxkcmVuTW9kZSBt
b2RlID0gQ2FsbFVzZUNoaWxkcmVuKQogICAgIHsKICAgICAgICAgaWYgKG1vZGUgPT0gQ2FsbFVz
ZUNoaWxkcmVuKQpAQCAtMjQ1OSw2ICsyNDgwLDkgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewog
ICAgIHZvaWQgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKE5vZGUqKTsKICAgICB2b2lk
IGNvbXBpbGVSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKE5vZGUqKTsKICAgICB2b2lkIGNvbXBp
bGVHZXRCdXR0ZXJmbHkoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUxvYWRPcGFxdWVQb2ludGVy
KE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVHZXRET01XcmFwcGVkKE5vZGUqKTsKKyAgICB2b2lk
IGNvbXBpbGVUb0RPTVdyYXBwZXIoTm9kZSopOwogICAgIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQmFzZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBQcm9wZXJ0
eU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBWYWx1ZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBUYWdUeXBl
PgpAQCAtMjQ5MCw2ICsyNTE0LDcgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogCiAgICAgdm9p
ZCBjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVDaGVj
a1N0cmluZ0lkZW50KE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVDaGVja05vZGVGbGFncyhOb2Rl
Kik7CiAgICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVSZXAoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZURvdWJsZVJlcChOb2RlKik7CkBAIC0yNjg5LDYgKzI3MTQsMTIgQEAgY2xhc3MgU3BlY3Vs
YXRpdmVKSVQgewogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UsIEdQUlJlZyBjZWxs
KTsKICAgICB2b2lkIHNwZWN1bGF0ZVNldE9iamVjdChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0
ZVNldE9iamVjdChFZGdlLCBHUFJSZWcgY2VsbCk7CisgICAgdm9pZCBzcGVjdWxhdGVET01Ob2Rl
KEVkZ2UpOworICAgIHZvaWQgc3BlY3VsYXRlRE9NTm9kZShFZGdlLCBHUFJSZWcgY2VsbCk7Cisg
ICAgdm9pZCBzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UpOworICAgIHZvaWQgc3BlY3VsYXRlRE9N
RWxlbWVudChFZGdlLCBHUFJSZWcgY2VsbCk7CisgICAgdm9pZCBzcGVjdWxhdGVET01Eb2N1bWVu
dFdyYXBwZXIoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoRWRn
ZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlT2JqZWN0T3JPdGhlcihFZGdlKTsK
ICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZyhFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKTsKICAgICB2
b2lkIHNwZWN1bGF0ZVN0cmluZ0lkZW50QW5kTG9hZFN0b3JhZ2UoRWRnZSBlZGdlLCBHUFJSZWcg
c3RyaW5nLCBHUFJSZWcgc3RvcmFnZSk7CkBAIC0zMDExLDYgKzMwNDIsNTMgQEAgY2xhc3MgU3Rv
cmFnZU9wZXJhbmQgewogICAgIEdQUlJlZyBtX2dwck9ySW52YWxpZDsKIH07CiAKK2NsYXNzIE9w
YXF1ZVBvaW50ZXJPcGVyYW5kIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBPcGFxdWVQb2ludGVy
T3BlcmFuZChTcGVjdWxhdGl2ZUpJVCogaml0LCBFZGdlIGVkZ2UpCisgICAgICAgIDogbV9qaXQo
aml0KQorICAgICAgICAsIG1fZWRnZShlZGdlKQorICAgICAgICAsIG1fZ3ByT3JJbnZhbGlkKElu
dmFsaWRHUFJSZWcpCisgICAgeworICAgICAgICBBU1NFUlQobV9qaXQpOworICAgICAgICBBU1NF
UlQoZWRnZS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSB8fCBlZGdlLnVzZUtpbmQoKSA9PSBLbm93
bkNlbGxVc2UpOworICAgICAgICBpZiAoaml0LT5pc0ZpbGxlZChub2RlKCkpKQorICAgICAgICAg
ICAgZ3ByKCk7CisgICAgfQorCisgICAgfk9wYXF1ZVBvaW50ZXJPcGVyYW5kKCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX2dwck9ySW52YWxpZCAhPSBJbnZhbGlkR1BSUmVnKTsKKyAgICAgICAg
bV9qaXQtPnVubG9jayhtX2dwck9ySW52YWxpZCk7CisgICAgfQorCisgICAgRWRnZSBlZGdlKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2VkZ2U7CisgICAgfQorCisgICAgTm9kZSog
bm9kZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZWRnZSgpLm5vZGUoKTsKKyAgICB9
CisKKyAgICBHUFJSZWcgZ3ByKCkKKyAgICB7CisgICAgICAgIGlmIChtX2dwck9ySW52YWxpZCA9
PSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgbV9ncHJPckludmFsaWQgPSBtX2ppdC0+Zmls
bE9wYXF1ZVBvaW50ZXIoZWRnZSgpKTsKKyAgICAgICAgcmV0dXJuIG1fZ3ByT3JJbnZhbGlkOwor
ICAgIH0KKworICAgIHZvaWQgdXNlKCkKKyAgICB7CisgICAgICAgIG1faml0LT51c2Uobm9kZSgp
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgU3BlY3VsYXRpdmVKSVQqIG1faml0OworICAgIEVk
Z2UgbV9lZGdlOworICAgIEdQUlJlZyBtX2dwck9ySW52YWxpZDsKK307CisKIAogLy8gPT09IFRl
bXBvcmFyaWVzID09PQogLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDNhMTBhMTBkN2I0MjI1NDQwOWRkMjMyOWNj
MGYyMTdmOTY5OTVkM2UuLmYyYjFkZjk4N2Q0MDM1ZmFkYTRjOGFhZWZiZTllNzUyOWE2ZjBlNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcApAQCAtNzMsNyArNzMsNyBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNW
YWx1ZShFZGdlIGVkZ2UsIEdQUlJlZyYgdGFnR1BSLCBHUFJSZWcmIHBheWxvYWRHUFIsCiAgICAg
ICAgICAgICBpbmZvLmZpbGxKU1ZhbHVlKCptX3N0cmVhbSwgdGFnR1BSLCBwYXlsb2FkR1BSLCBE
YXRhRm9ybWF0SlMpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgRGF0YUZvcm1hdCBz
cGlsbEZvcm1hdCA9IGluZm8uc3BpbGxGb3JtYXQoKTsKLSAgICAgICAgICAgIEFTU0VSVChzcGls
bEZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSAmJiBzcGlsbEZvcm1hdCAhPSBEYXRhRm9ybWF0U3Rv
cmFnZSk7CisgICAgICAgICAgICBBU1NFUlQoc3BpbGxGb3JtYXQgIT0gRGF0YUZvcm1hdE5vbmUg
JiYgc3BpbGxGb3JtYXQgIT0gRGF0YUZvcm1hdFN0b3JhZ2UgJiYgc3BpbGxGb3JtYXQgIT0gRGF0
YUZvcm1hdE9wYXF1ZVBvaW50ZXIpOwogICAgICAgICAgICAgdGFnR1BSID0gYWxsb2NhdGUoKTsK
ICAgICAgICAgICAgIHBheWxvYWRHUFIgPSBhbGxvY2F0ZSgpOwogICAgICAgICAgICAgc3dpdGNo
IChzcGlsbEZvcm1hdCkgewpAQCAtMTU1LDYgKzE1NSw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6
OmZpbGxKU1ZhbHVlKEVkZ2UgZWRnZSwgR1BSUmVnJiB0YWdHUFIsIEdQUlJlZyYgcGF5bG9hZEdQ
UiwKICAgICB9CiAgICAgICAgIAogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgY2Fz
ZSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcjoKICAgICBjYXNlIERhdGFGb3JtYXREb3VibGU6CiAg
ICAgICAgIC8vIHRoaXMgdHlwZSBjdXJyZW50bHkgbmV2ZXIgb2NjdXJzCiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDU3LDYgKzEwNTgsNyBAQCBHUFJSZWcgU3Bl
Y3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZv
cm1hdCYgcmV0dXJuRgogICAgIGNhc2UgRGF0YUZvcm1hdEpTQm9vbGVhbjoKICAgICBjYXNlIERh
dGFGb3JtYXREb3VibGU6CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKKyAgICBjYXNlIERh
dGFGb3JtYXRPcGFxdWVQb2ludGVyOgogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBJbnZhbGlkR1BSUmVnOwpAQCAtMTE4
NCw2ICsxMTg2LDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQ2VsbChF
ZGdlIGVkZ2UpCiAgICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjoKICAgICBjYXNlIERhdGFGb3Jt
YXREb3VibGU6CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKKyAgICBjYXNlIERhdGFGb3Jt
YXRPcGFxdWVQb2ludGVyOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
CiAgICAgZGVmYXVsdDoKQEAgLTEyNjAsNiArMTI2Myw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJ
VDo6ZmlsbFNwZWN1bGF0ZUJvb2xlYW4oRWRnZSBlZGdlKQogICAgIGNhc2UgRGF0YUZvcm1hdENl
bGw6CiAgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3Jh
Z2U6CisgICAgY2FzZSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcjoKICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAgIGRlZmF1bHQ6CkBAIC01NDIwLDYgKzU0MjQsMjIg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVh
azsKICAgICB9CiAKKyAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgorICAgICAgICBjb21waWxl
TG9hZE9wYXF1ZVBvaW50ZXIobm9kZSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBHZXRE
T01XcmFwcGVkOgorICAgICAgICBjb21waWxlR2V0RE9NV3JhcHBlZChub2RlKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgorICAgICAgICBjb21waWxlQ2hlY2tO
b2RlRmxhZ3Mobm9kZSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBUb0RPTVdyYXBwZXI6
CisgICAgICAgIGNvbXBpbGVUb0RPTVdyYXBwZXIobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAg
ICAgY2FzZSBVbnJlYWNoYWJsZToKICAgICAgICAgdW5yZWFjaGFibGUobm9kZSk7CiAgICAgICAg
IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKaW5kZXggZjVlYTc0YjJlNzEwNTk3NWM3ZmIwNzEzNmI3MTNiMWFjMTU2N2I3Yy4u
MzdjZDNiNjMyYTU5YjYyODIyNzhmYzNlNzAzMTUxNmFiNDQzNjM2MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0xNDQsNiAr
MTQ0LDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkZ2UpCiAg
ICAgICAgIAogICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46CiAgICAgY2FzZSBEYXRhRm9ybWF0
U3RvcmFnZToKKyAgICBjYXNlIERhdGFGb3JtYXRPcGFxdWVQb2ludGVyOgogICAgIGNhc2UgRGF0
YUZvcm1hdERvdWJsZToKICAgICBjYXNlIERhdGFGb3JtYXRJbnQ1MjoKICAgICAgICAgLy8gdGhp
cyB0eXBlIGN1cnJlbnRseSBuZXZlciBvY2N1cnMKQEAgLTEwNjAsNiArMTA2MSw3IEBAIEdQUlJl
ZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBE
YXRhRm9ybWF0JiByZXR1cm5GCiAgICAgY2FzZSBEYXRhRm9ybWF0SlNCb29sZWFuOgogICAgIGNh
c2UgRGF0YUZvcm1hdERvdWJsZToKICAgICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgorICAgIGNh
c2UgRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXI6CiAgICAgY2FzZSBEYXRhRm9ybWF0SW50NTI6CiAg
ICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0SW50NTI6CiAgICAgICAgIERGR19DUkFTSChtX2ppdC5n
cmFwaCgpLCBtX2N1cnJlbnROb2RlLCAiQmFkIGRhdGEgZm9ybWF0Iik7CkBAIC0xMjkwLDYgKzEy
OTIsNyBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKEVkZ2UgZWRn
ZSkKICAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJs
ZToKICAgICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgorICAgIGNhc2UgRGF0YUZvcm1hdE9wYXF1
ZVBvaW50ZXI6CiAgICAgY2FzZSBEYXRhRm9ybWF0SW50NTI6CiAgICAgY2FzZSBEYXRhRm9ybWF0
U3RyaWN0SW50NTI6CiAgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBtX2N1cnJlbnRO
b2RlLCAiQmFkIGRhdGEgZm9ybWF0Iik7CkBAIC0xMzY2LDYgKzEzNjksNyBAQCBHUFJSZWcgU3Bl
Y3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVCb29sZWFuKEVkZ2UgZWRnZSkKICAgICBjYXNlIERh
dGFGb3JtYXRDZWxsOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToKICAgICBjYXNlIERhdGFG
b3JtYXRTdG9yYWdlOgorICAgIGNhc2UgRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXI6CiAgICAgY2Fz
ZSBEYXRhRm9ybWF0SW50NTI6CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0SW50NTI6CiAgICAg
ICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBtX2N1cnJlbnROb2RlLCAiQmFkIGRhdGEgZm9y
bWF0Iik7CkBAIC01NDM2LDYgKzU0NDAsMjIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogICAgICAgICBjb21waWxlTWF0ZXJpYWxpemVOZXdPYmplY3Qobm9kZSk7
CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBMb2FkT3BhcXVlUG9pbnRlcjoKKyAgICAgICAg
Y29tcGlsZUxvYWRPcGFxdWVQb2ludGVyKG5vZGUpOworICAgICAgICBicmVhazsKKworICAgIGNh
c2UgR2V0RE9NV3JhcHBlZDoKKyAgICAgICAgY29tcGlsZUdldERPTVdyYXBwZWQobm9kZSk7Cisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBDaGVja05vZGVGbGFnczoKKyAgICAgICAgY29tcGls
ZUNoZWNrTm9kZUZsYWdzKG5vZGUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgVG9ET01X
cmFwcGVyOgorICAgICAgICBjb21waWxlVG9ET01XcmFwcGVyKG5vZGUpOworICAgICAgICBicmVh
azsKKwogI2lmIEVOQUJMRShGVExfSklUKSAgICAgICAgCiAgICAgY2FzZSBDaGVja1RpZXJVcElu
TG9vcDogewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBjYWxsVGllclVwID0gbV9qaXQu
YnJhbmNoQWRkMzIoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5
cGVDaGVja0hvaXN0aW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdU
eXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcAppbmRleCAyM2RmMjk2YTNjZjYzMjYzNjJhMzMzMjJl
ZDkyYTJiZmYxYjdjMmFlLi44Y2FjNTI0YjBlZDZmZjEyZjIyM2JkZDczNzQ3NGQ0NWQ5Y2Y0ZmU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVja0hvaXN0
aW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVHlwZUNoZWNr
SG9pc3RpbmdQaGFzZS5jcHAKQEAgLTI0Nyw2ICsyNDcsNyBAQCBjbGFzcyBUeXBlQ2hlY2tIb2lz
dGluZ1BoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICBjYXNlIEFsbG9jYXRl
UHJvcGVydHlTdG9yYWdlOgogICAgICAgICAgICAgICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5
U3RvcmFnZToKICAgICAgICAgICAgICAgICBjYXNlIEdldEJ1dHRlcmZseToKKyAgICAgICAgICAg
ICAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgogICAgICAgICAgICAgICAgIGNhc2UgR2V0QnlW
YWw6CiAgICAgICAgICAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAgICAgICAgICAg
ICBjYXNlIFB1dEJ5VmFsOgpAQCAtMzI1LDYgKzMyNiw3IEBAIGNsYXNzIFR5cGVDaGVja0hvaXN0
aW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGNhc2UgUHV0U3RydWN0
dXJlOgogICAgICAgICAgICAgICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAg
ICAgICAgICAgICAgICBjYXNlIEdldEJ1dHRlcmZseToKKyAgICAgICAgICAgICAgICBjYXNlIExv
YWRPcGFxdWVQb2ludGVyOgogICAgICAgICAgICAgICAgIGNhc2UgR2V0QnlWYWw6CiAgICAgICAg
ICAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAgICAgICAgICAgICBjYXNlIFB1dEJ5
VmFsOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKaW5kZXggZTgzODI5
YjcxMzA2MTczZGU5NWIwMTA4OGJmM2U5Y2Q4NGZkZjZlYy4uMjAyMGE1NWZkY2Q4OGFkNjY3MGNj
NTVhMTFhMWI0ZTNiZDI5ODM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdVc2VLaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtp
bmQuY3BwCkBAIC0xMTIsNiArMTEyLDE1IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVh
bSYgb3V0LCBVc2VLaW5kIHVzZUtpbmQpCiAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAg
ICAgICBvdXQucHJpbnQoIk9iamVjdE9yT3RoZXIiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNh
c2UgRE9NTm9kZVVzZToKKyAgICAgICAgb3V0LnByaW50KCJET01Ob2RlIik7CisgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAgICAgIG91dC5wcmludCgiRE9NRWxl
bWVudCIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6
CisgICAgICAgIG91dC5wcmludCgiRE9NRG9jdW1lbnRXcmFwcGVyIik7CisgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBvdXQucHJpbnQoIlN0cmluZ0lk
ZW50Iik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5k
LmgKaW5kZXggOGY2MzNhMTk2ODhjY2UwMmYzNGYxNTEyZWQ4OTNkZjI5N2QzYTVmYi4uMTY4ZDA0
OGMzYTNkYTk5YzQ5ZDgxNTU0NTI2YjA3NjIyNjYyOTIyOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdVc2VLaW5kLmgKQEAgLTczLDYgKzczLDkgQEAgZW51bSBVc2VLaW5kIHsKICAgICBO
b3RDZWxsVXNlLAogICAgIE90aGVyVXNlLAogICAgIE1pc2NVc2UsCisgICAgRE9NTm9kZVVzZSwK
KyAgICBET01FbGVtZW50VXNlLAorICAgIERPTURvY3VtZW50V3JhcHBlclVzZSwKIAogICAgIC8v
IDIuIFRoZSBEb3VibGUgcmVwcmVzZW50YXRpb24gZm9yIGFuIHVuYm94ZWQgZG91YmxlIHZhbHVl
IHRoYXQgbXVzdCBiZSBzdG9yZWQKICAgICAvLyAgICBpbiBhbiBGUCByZWdpc3Rlci4KQEAgLTE2
MCw2ICsxNjMsMTIgQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2lu
ZCB1c2VLaW5kKQogICAgICAgICByZXR1cm4gU3BlY090aGVyOwogICAgIGNhc2UgTWlzY1VzZToK
ICAgICAgICAgcmV0dXJuIFNwZWNNaXNjOworICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAg
cmV0dXJuIFNwZWNET01Ob2RlOworICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICAgICAgcmV0
dXJuIFNwZWNET01FbGVtZW50OworICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgorICAg
ICAgICByZXR1cm4gU3BlY0RPTURvY3VtZW50V3JhcHBlcjsKICAgICBkZWZhdWx0OgogICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gU3BlY0Z1bGxU
b3A7CkBAIC0yNDAsNiArMjQ5LDkgQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkK
ICAgICBjYXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgIGNhc2UgTWFwT2JqZWN0VXNl
OgogICAgIGNhc2UgU2V0T2JqZWN0VXNlOgorICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICBjYXNl
IERPTUVsZW1lbnRVc2U6CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR3JhcGguY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Iw
YWMxZTc4ZDA0NjZmYjdmMTljYWVhNzJhNzU2MzIxYWM1NmRlNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR3JhcGguY3BwCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NSklUR3JhcGguaCIKKworI2lmIEVOQUJMRShE
RkdfSklUKQorCituYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworCitERkc6OlVz
ZUtpbmQgR3JhcGg6OmVkZ2VGaWx0ZXIoKQoreworICAgIGlmIChpc0RPTURvY3VtZW50V3JhcHBl
clNwZWN1bGF0aW9uKG1fc3BlY3VsYXRlZENoaWxkVHlwZSkpCisgICAgICAgIHJldHVybiBERkc6
OkRPTURvY3VtZW50V3JhcHBlclVzZTsKKyAgICBpZiAoaXNET01FbGVtZW50U3BlY3VsYXRpb24o
bV9zcGVjdWxhdGVkQ2hpbGRUeXBlKSkKKyAgICAgICAgcmV0dXJuIERGRzo6RE9NRWxlbWVudFVz
ZTsKKyAgICBpZiAoaXNET01Ob2RlU3BlY3VsYXRpb24obV9zcGVjdWxhdGVkQ2hpbGRUeXBlKSkK
KyAgICAgICAgcmV0dXJuIERGRzo6RE9NTm9kZVVzZTsKKyAgICByZXR1cm4gREZHOjpVbnR5cGVk
VXNlOworfQorCit9IH0KKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViN2FkM2I1NDEzODJm
OTU4YjAxNmIwMTdkMmQ4ZjIxMThkNzViODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVEdyYXBoLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiRE9NSklUSVJCdWlsZGVyLmgiCisjaW5jbHVkZSAiUHJvcGVydHlTbG90LmgiCisj
aW5jbHVkZSAiUHV0UHJvcGVydHlTbG90LmgiCisjaW5jbHVkZSAiU3BlY3VsYXRlZFR5cGUuaCIK
KworI2lmIEVOQUJMRShERkdfSklUKQorI2luY2x1ZGUgIkRGR1VzZUtpbmQuaCIKKyNlbmRpZgor
CituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJVCB7CisKK2NsYXNzIEdyYXBoIDogcHVi
bGljIElSQnVpbGRlciB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYyBDdXN0b21HZXR0ZXI7CisgICAgdHlwZWRlZiBQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYyBDdXN0b21TZXR0ZXI7CisKKyAgICBHcmFwaChDdXN0b21HZXR0ZXIgZ2V0dGVyLCBD
dXN0b21TZXR0ZXIgc2V0dGVyLCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGVkQ2hpbGRUeXBlKQor
ICAgICAgICA6IG1fZ2V0dGVyKGdldHRlcikKKyAgICAgICAgLCBtX3NldHRlcihzZXR0ZXIpCisg
ICAgICAgICwgbV9zcGVjdWxhdGVkQ2hpbGRUeXBlKHNwZWN1bGF0ZWRDaGlsZFR5cGUpCisgICAg
eworICAgIH0KKworICAgIHZpcnR1YWwgfkdyYXBoKCkgeyB9CisKKyAgICBTcGVjdWxhdGVkVHlw
ZSBzcGVjdWxhdGVkQ2hpbGRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9zcGVjdWxhdGVkQ2hpbGRU
eXBlOyB9CisgICAgQ3VzdG9tR2V0dGVyIGdldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2V0dGVy
OyB9CisgICAgQ3VzdG9tU2V0dGVyIHNldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGVyOyB9
CisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKyAgICBERkc6OlVzZUtpbmQgZWRnZUZpbHRlcigpOwor
I2VuZGlmCisKK3ByaXZhdGU6CisgICAgQ3VzdG9tR2V0dGVyIG1fZ2V0dGVyOworICAgIEN1c3Rv
bVNldHRlciBtX3NldHRlcjsKKyAgICBTcGVjdWxhdGVkVHlwZSBtX3NwZWN1bGF0ZWRDaGlsZFR5
cGU7Cit9OworCit9IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQv
RE9NSklUSVIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUSVIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43NTYxYTU2MDYyYzRlM2E5NjYwZTYyYmU2Nzg3ZDgzZTUxN2YyMmQ2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUi5oCkBAIC0w
LDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgorI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJVCB7
CisKK3R5cGVkZWYgdWludHB0cl90IE9wSW5mbzsKKworLy8gRmlyc3QsIHdlIGRlZmluZSBzcGVj
aWZpYyB0byBOb2RlIG9wZXJhdGlvbnMuIExhdGVyIHdlIHdpbGwgcGFyYW1ldGVyaXplIHRoZW0u
CitlbnVtIGNsYXNzIEtpbmQgOiB1aW50MzJfdCB7CisgICAgQ2hlY2tOb2RlLAorICAgIENoZWNr
Tm9kZUZsYWdzLAorICAgIEdldFdyYXBwZWQsCisgICAgTG9hZFBvaW50ZXIsCisgICAgVG9XcmFw
cGVyLAorICAgIFJldHVybiwKKyAgICBFeHRlcm5hbCwKK307CisKK3N0cnVjdCBJUiB7CisgICAg
c3RhdGljIElSKiB0aGlzVmFsdWUoKQorICAgIHsKKyAgICAgICAgTmV2ZXJEZXN0cm95ZWQ8SVI+
IGlyOworICAgICAgICByZXR1cm4gJmlyLmdldCgpOworICAgIH0KKworICAgIElSKCkgPSBkZWZh
dWx0OworCisgICAgSVIoS2luZCBraW5kLCBJUiogY2hpbGQxLCBJUiogY2hpbGQyLCBPcEluZm8g
b3BJbmZvMSwgT3BJbmZvIG9wSW5mbzIpCisgICAgICAgIDogbV9raW5kKGtpbmQpCisgICAgICAg
ICwgbV9jaGlsZDEoY2hpbGQxKQorICAgICAgICAsIG1fY2hpbGQyKGNoaWxkMikKKyAgICAgICAg
LCBtX29wSW5mbzEob3BJbmZvMSkKKyAgICAgICAgLCBtX29wSW5mbzIob3BJbmZvMikKKyAgICB7
CisgICAgfQorCisgICAgS2luZCBtX2tpbmQgeyBLaW5kOjpFeHRlcm5hbCB9OworICAgIElSKiBt
X2NoaWxkMSB7IG51bGxwdHIgfTsKKyAgICBJUiogbV9jaGlsZDIgeyBudWxscHRyIH07CisgICAg
T3BJbmZvIG1fb3BJbmZvMSB7IDAgfTsKKyAgICBPcEluZm8gbV9vcEluZm8yIHsgMCB9OworfTsK
KworfSB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVElS
QnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUkJ1aWxkZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NjJkZGVmZDY1YWYzZWEwM2U3YWNlMDMyYTllM2UyOTVkMjQwNWRjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUkJ1
aWxkZXIuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJET01KSVRJUi5oIgorI2lu
Y2x1ZGUgPHd0Zi9TZWdtZW50ZWRWZWN0b3IuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBET01KSVQgeworCitjbGFzcyBJUkJ1aWxkZXIgeworcHVibGljOgorICAgIElSKiBhcHBlbmQo
S2luZCBraW5kLCBJUiogY2hpbGQxLCBJUiogY2hpbGQyLCBPcEluZm8gb3BJbmZvMSA9IDAsIE9w
SW5mbyBvcEluZm8yID0gMCkKKyAgICB7CisgICAgICAgIHJldHVybiAmbV9hbGxvY2F0b3IuYWxs
b2Moa2luZCwgY2hpbGQxLCBjaGlsZDIsIG9wSW5mbzEsIG9wSW5mbzIpOworICAgIH0KKworICAg
IFNlZ21lbnRlZFZlY3RvcjxJUj4mIGlyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FsbG9j
YXRvcjsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgU2VnbWVudGVkVmVjdG9yPElSPiBtX2FsbG9j
YXRvcjsKK307CisKKworfSB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAKaW5kZXggYjZlYjJlNWY3MjE5ZGFlNmZlMGMyYTg0YWYwNWU4MjJjYTA2ZDgx
Zi4uNmU5MGI5ODU2MjRhYTBhYmMzOGI3OTUyOWYxMjkyNTk0ZmU0N2E3OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtNDQ1LDYgKzQ0NSw5
IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAg
ICAgICBjYXNlIE5vdFN0cmluZ1ZhclVzZToKICAgICAgICAgICAgICAgICBjYXNlIEFueUludFVz
ZToKICAgICAgICAgICAgICAgICBjYXNlIERvdWJsZVJlcEFueUludFVzZToKKyAgICAgICAgICAg
ICAgICBjYXNlIERPTU5vZGVVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBET01FbGVtZW50VXNl
OgorICAgICAgICAgICAgICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgogICAgICAgICAg
ICAgICAgICAgICAvLyBUaGVzZSBhcmUgT0suCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKaW5kZXggMDYzY2M1OTQ0MDYyNDg5NjM3YTljMmJkMzE4MjkzNTU3
NTY0ZTQyMC4uMTZiNmI4Y2U0YjFmMDhiZDkwMGE1YjU4YjgwOGQ3NWM2YTZlY2RhNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTA0Njcs
NiArMTA0NjcsMTcgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CiAKKyAgICBMVmFsdWUgbG93T3BhcXVlUG9pbnRlcihFZGdlIGVkZ2UpCisgICAg
eworICAgICAgICBMb3dlcmVkTm9kZVZhbHVlIHZhbHVlID0gbV9vcGFxdWVQb2ludGVyVmFsdWVz
LmdldChlZGdlLm5vZGUoKSk7CisgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKKyAgICAgICAg
ICAgIHJldHVybiB2YWx1ZS52YWx1ZSgpOworCisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dD
ZWxsKGVkZ2UpOworICAgICAgICBzZXRPcGFxdWVQb2ludGVyKGVkZ2Uubm9kZSgpLCByZXN1bHQp
OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKwogICAgIExWYWx1ZSBsb3dNYXBCdWNr
ZXQoRWRnZSBlZGdlKQogICAgIHsKICAgICAgICAgTG93ZXJlZE5vZGVWYWx1ZSB2YWx1ZSA9IG1f
bWFwQnVja2V0VmFsdWVzLmdldChlZGdlLm5vZGUoKSk7CkBAIC0xMDc5NSw2ICsxMDgwNiwxNSBA
QCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAg
ICAgICAgIHNwZWN1bGF0ZVNldE9iamVjdChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIERPTU5vZGVVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVET01Ob2RlKGVkZ2Up
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICAg
ICAgICAgIHNwZWN1bGF0ZURPTUVsZW1lbnQoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVE
T01Eb2N1bWVudFdyYXBwZXIoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBTdHJpbmdVc2U6CiAgICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTEwOTIzLDYgKzEwOTQzLDI0IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7
CiAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKE9iamVjdFR5cGUpKTsKICAgICB9CiAKKyAg
ICBMVmFsdWUgaXNOb3RET01Ob2RlKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0g
U3BlY0Z1bGxUb3ApCisgICAgeworICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVu
VmFsdWUodHlwZSAmIFNwZWNDZWxsLCB+U3BlY0RPTU5vZGUpKQorICAgICAgICAgICAgcmV0dXJu
IHByb3ZlbjsKKyAgICAgICAgcmV0dXJuIG1fb3V0LmJlbG93KAorICAgICAgICAgICAgbV9vdXQu
bG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKKyAgICAg
ICAgICAgIG1fb3V0LmNvbnN0SW50MzIoRE9NTm9kZVR5cGUpKTsKKyAgICB9CisKKyAgICBMVmFs
dWUgaXNOb3RET01FbGVtZW50KExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3Bl
Y0Z1bGxUb3ApCisgICAgeworICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFs
dWUodHlwZSAmIFNwZWNDZWxsLCB+U3BlY0RPTUVsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJu
IHByb3ZlbjsKKyAgICAgICAgcmV0dXJuIG1fb3V0LmJlbG93KAorICAgICAgICAgICAgbV9vdXQu
bG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKKyAgICAg
ICAgICAgIG1fb3V0LmNvbnN0SW50MzIoRE9NRWxlbWVudFR5cGUpKTsKKyAgICB9CisKICAgICBM
VmFsdWUgaXNOb3RTdHJpbmcoTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVj
RnVsbFRvcCkKICAgICB7CiAgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1
ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVjU3RyaW5nKSkKQEAgLTExMTY5LDYgKzExMjA3LDM3IEBA
IGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgewogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3Qo
ZWRnZSwgbG93Q2VsbChlZGdlKSk7CiAgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVET01Ob2Rl
KEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisgICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSyhq
c1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNET01FbGVtZW50LCBpc05vdERPTU5vZGUoY2Vs
bCkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlRE9NTm9kZShFZGdlIGVkZ2UpCisgICAg
eworICAgICAgICBzcGVjdWxhdGVET01Ob2RlKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0K
KworICAgIHZvaWQgc3BlY3VsYXRlRE9NRWxlbWVudChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQor
ICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBT
cGVjRE9NRWxlbWVudCwgaXNOb3RET01FbGVtZW50KGNlbGwpKTsKKyAgICB9CisKKyAgICB2b2lk
IHNwZWN1bGF0ZURPTUVsZW1lbnQoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRl
RE9NRWxlbWVudChlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1
bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAg
ICAgICAgRlRMX1RZUEVfQ0hFQ0soCisgICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVk
Z2UsIFNwZWNEZXJpdmVkQXJyYXksIGlzTm90VHlwZShjZWxsLCBET01Eb2N1bWVudFdyYXBwZXJU
eXBlKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoRWRn
ZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKGVkZ2Us
IGxvd0NlbGwoZWRnZSkpOworICAgIH0KICAgICAKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZyhF
ZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAgIHsKQEAgLTExOTU4LDYgKzEyMDI3LDEwIEBAIGNs
YXNzIExvd2VyREZHVG9CMyB7CiAgICAgewogICAgICAgICBtX3N0b3JhZ2VWYWx1ZXMuc2V0KG5v
ZGUsIExvd2VyZWROb2RlVmFsdWUodmFsdWUsIG1faGlnaEJsb2NrKSk7CiAgICAgfQorICAgIHZv
aWQgc2V0T3BhcXVlUG9pbnRlcihOb2RlKiBub2RlLCBMVmFsdWUgdmFsdWUpCisgICAgeworICAg
ICAgICBtX29wYXF1ZVBvaW50ZXJWYWx1ZXMuc2V0KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFs
dWUsIG1faGlnaEJsb2NrKSk7CisgICAgfQogICAgIHZvaWQgc2V0TWFwQnVja2V0KE5vZGUqIG5v
ZGUsIExWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIG1fbWFwQnVja2V0VmFsdWVzLnNldChu
b2RlLCBMb3dlcmVkTm9kZVZhbHVlKHZhbHVlLCBtX2hpZ2hCbG9jaykpOwpAQCAtMTE5OTUsNiAr
MTIwNjgsMTAgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICB7CiAgICAgICAgIHNldFN0b3Jh
Z2UobV9ub2RlLCB2YWx1ZSk7CiAgICAgfQorICAgIHZvaWQgc2V0T3BhcXVlUG9pbnRlcihMVmFs
dWUgdmFsdWUpCisgICAgeworICAgICAgICBzZXRPcGFxdWVQb2ludGVyKG1fbm9kZSwgdmFsdWUp
OworICAgIH0KICAgICB2b2lkIHNldE1hcEJ1Y2tldChMVmFsdWUgdmFsdWUpCiAgICAgewogICAg
ICAgICBzZXRNYXBCdWNrZXQobV9ub2RlLCB2YWx1ZSk7CkBAIC0xMjE4Miw2ICsxMjI1OSw3IEBA
IGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgSGFzaE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1
ZT4gbV9qc1ZhbHVlVmFsdWVzOwogICAgIEhhc2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+
IG1fYm9vbGVhblZhbHVlczsKICAgICBIYXNoTWFwPE5vZGUqLCBMb3dlcmVkTm9kZVZhbHVlPiBt
X3N0b3JhZ2VWYWx1ZXM7CisgICAgSGFzaE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1ZT4gbV9v
cGFxdWVQb2ludGVyVmFsdWVzOwogICAgIEhhc2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+
IG1fbWFwQnVja2V0VmFsdWVzOwogICAgIEhhc2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+
IG1fZG91YmxlVmFsdWVzOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmgKaW5kZXggNzY5NDkxYTM2N2JhNWZmMTQwYjUzODdiOGI1ZmMyYjdmOGM2YzY4
MC4uZWQxMDEyYjQxYzBiMDM4OGUwODhkNDliOWQxZWM4ZDVlOTE0NjRmZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC04NTQsNiArODU0LDMwIEBA
IGNsYXNzIEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAg
IHJldHVybiBicmFuY2g4KAogICAgICAgICAgICAgQmVsb3csIEFkZHJlc3MoY2VsbEdQUiwgSlND
ZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihPYmplY3RUeXBlKSk7CiAg
ICAgfQorCisgICAgSnVtcCBicmFuY2hJZkRPTU5vZGUoR1BSUmVnIGNlbGxHUFIpCisgICAgewor
ICAgICAgICByZXR1cm4gYnJhbmNoOCgKKyAgICAgICAgICAgIEFib3ZlT3JFcXVhbCwgQWRkcmVz
cyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKERP
TU5vZGVUeXBlKSk7CisgICAgfQorCisgICAgSnVtcCBicmFuY2hJZk5vdERPTU5vZGUoR1BSUmVn
IGNlbGxHUFIpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoOCgKKyAgICAgICAgICAgIEJl
bG93LCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVz
dGVkSW1tMzIoRE9NTm9kZVR5cGUpKTsKKyAgICB9CisKKyAgICBKdW1wIGJyYW5jaElmRE9NRWxl
bWVudChHUFJSZWcgY2VsbEdQUikKKyAgICB7CisgICAgICAgIHJldHVybiBicmFuY2g4KAorICAg
ICAgICAgICAgQWJvdmVPckVxdWFsLCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9U
eXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoRE9NRWxlbWVudFR5cGUpKTsKKyAgICB9CisKKyAg
ICBKdW1wIGJyYW5jaElmTm90RE9NRWxlbWVudChHUFJSZWcgY2VsbEdQUikKKyAgICB7CisgICAg
ICAgIHJldHVybiBicmFuY2g4KAorICAgICAgICAgICAgQmVsb3csIEFkZHJlc3MoY2VsbEdQUiwg
SlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihET01FbGVtZW50VHlw
ZSkpOworICAgIH0KICAgICAKICAgICBKdW1wIGJyYW5jaElmVHlwZShHUFJSZWcgY2VsbEdQUiwg
SlNUeXBlIHR5cGUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuaAppbmRleCAxZDRhZDM4YzU5YjRlNzM2OTMwNjViM2FjNWUwMWNhNmQ0MTY0Y2QxLi5iZTRl
YTk2MWM1ODU0NjU1OTQwNGViNmNhYTQzMzU2MmFiNjAyMTliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTEyLDYgKzExMiw3IEBAIHR5cGVkZWYgY2hh
ciogVW51c2VkUHRyOwogICAgIFN5bXRhYjogU3ltYm9sVGFibGUqCiAgICAgVDogU3RyaW5nSW1w
bCoKICAgICBWOiB2b2lkCisgICAgVnA6IHZvaWQqCiAgICAgVm06IFZNKgogICAgIFdzOiBXYXRj
aHBvaW50U2V0KgogICAgIFo6IGludDMyX3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvUmVwYXRjaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2gu
Y3BwCmluZGV4IGQ0NTkzOWM1OTU5YTgwN2Q0NTA1Yjk0ZWEzY2VhMTU1ZmZmNWM0YjguLjVlMGQx
MTIwY2E1ZDQ0Mjc0NzczZDkxYzlmNmY4OWM3ZjAzNTNmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9SZXBhdGNoLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNhbGxGcmFtZVNo
dWZmbGVyLmgiCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkRGR1NwZWN1
bGF0aXZlSklULmgiCisjaW5jbHVkZSAiRE9NSklUR3JhcGguaCIKICNpbmNsdWRlICJEaXJlY3RB
cmd1bWVudHMuaCIKICNpbmNsdWRlICJGVExUaHVua3MuaCIKICNpbmNsdWRlICJHQ0F3YXJlSklU
U3R1YlJvdXRpbmUuaCIKQEAgLTI2MCw2ICsyNjEsMTAgQEAgc3RhdGljIElubGluZUNhY2hlQWN0
aW9uIHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBj
b24KICAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVHZXR0ZXIoKSkKICAgICAgICAgICAgIGdl
dHRlciA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KHNsb3QuZ2V0dGVyU2V0dGVyKCktPmdl
dHRlcigpKTsKIAorICAgICAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQgPSBudWxscHRyOworICAg
ICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpICYmIHNsb3QuZG9tSklUKCkpCisgICAg
ICAgICAgICBkb21KSVQgPSBzbG90LmRvbUpJVCgpOworCiAgICAgICAgIGlmIChraW5kID09IEdl
dEJ5SURLaW5kOjpQdXJlKSB7CiAgICAgICAgICAgICBBY2Nlc3NDYXNlOjpBY2Nlc3NUeXBlIHR5
cGU7CiAgICAgICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZVZhbHVlKCkpCkBAIC0yOTAsNyAr
Mjk1LDggQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRChFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb24KICAgICAgICAgICAgIG5ld0Nhc2UgPSBB
Y2Nlc3NDYXNlOjpnZXQoCiAgICAgICAgICAgICAgICAgdm0sIGNvZGVCbG9jaywgdHlwZSwgb2Zm
c2V0LCBzdHJ1Y3R1cmUsIGNvbmRpdGlvblNldCwgbG9hZFRhcmdldEZyb21Qcm94eSwKICAgICAg
ICAgICAgICAgICBzbG90LndhdGNocG9pbnRTZXQoKSwgc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgp
ID8gc2xvdC5jdXN0b21HZXR0ZXIoKSA6IG51bGxwdHIsCi0gICAgICAgICAgICAgICAgc2xvdC5p
c0NhY2hlYWJsZUN1c3RvbSgpID8gc2xvdC5zbG90QmFzZSgpIDogbnVsbHB0cik7CisgICAgICAg
ICAgICAgICAgc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpID8gc2xvdC5zbG90QmFzZSgpIDogbnVs
bHB0ciwKKyAgICAgICAgICAgICAgICBkb21KSVQpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCmlu
ZGV4IGQ3MDJkZGY0ZGEwNTc2OTA1Zjc5Y2VhZDYwYjZhMjNjZGI5YzM2NjYuLjFlYWQ0MDI3ZTlm
ODZjODUxODVlZTNlMzA1YjY5YmU3NDEzY2RlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCkBAIC0zMSw2ICszMSw5IEBACiAj
aW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJ
VCB7CitjbGFzcyBHcmFwaDsKK30KIAogY2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFsIDog
cHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6CkBAIC00MCwxNSArNDMsMTYgQEAgY2xhc3MgQ3VzdG9t
R2V0dGVyU2V0dGVyIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgdHlwZWRlZiBQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYyBDdXN0b21HZXR0ZXI7CiAgICAgdHlwZWRlZiBQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYyBDdXN0b21TZXR0ZXI7CiAKLSAgICBzdGF0aWMgQ3VzdG9tR2V0
dGVyU2V0dGVyKiBjcmVhdGUoVk0mIHZtLCBDdXN0b21HZXR0ZXIgY3VzdG9tR2V0dGVyLCBDdXN0
b21TZXR0ZXIgY3VzdG9tU2V0dGVyKQorICAgIHN0YXRpYyBDdXN0b21HZXR0ZXJTZXR0ZXIqIGNy
ZWF0ZShWTSYgdm0sIEN1c3RvbUdldHRlciBjdXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlciBjdXN0
b21TZXR0ZXIsIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IG51bGxwdHIpCiAgICAgewotICAgICAg
ICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IG5ldyAoTm90TnVsbCwg
YWxsb2NhdGVDZWxsPEN1c3RvbUdldHRlclNldHRlcj4odm0uaGVhcCkpIEN1c3RvbUdldHRlclNl
dHRlcih2bSwgY3VzdG9tR2V0dGVyLCBjdXN0b21TZXR0ZXIpOworICAgICAgICBDdXN0b21HZXR0
ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxs
PEN1c3RvbUdldHRlclNldHRlcj4odm0uaGVhcCkpIEN1c3RvbUdldHRlclNldHRlcih2bSwgY3Vz
dG9tR2V0dGVyLCBjdXN0b21TZXR0ZXIsIGRvbUpJVCk7CiAgICAgICAgIGN1c3RvbUdldHRlclNl
dHRlci0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAgICByZXR1cm4gY3VzdG9tR2V0dGVyU2V0
dGVyOwogICAgIH0KIAogICAgIEN1c3RvbUdldHRlclNldHRlcjo6Q3VzdG9tR2V0dGVyIGdldHRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fZ2V0dGVyOyB9CiAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyOjpD
dXN0b21TZXR0ZXIgc2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0ZXI7IH0KKyAgICBET01K
SVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdCB7IHJldHVybiBtX2RvbUpJVDsgfQogCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtNTgsMTUgKzYyLDE3IEBA
IGNsYXNzIEN1c3RvbUdldHRlclNldHRlciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIERF
Q0xBUkVfRVhQT1JUX0lORk87CiAKIHByaXZhdGU6Ci0gICAgQ3VzdG9tR2V0dGVyU2V0dGVyKFZN
JiB2bSwgQ3VzdG9tR2V0dGVyIGdldHRlciwgQ3VzdG9tU2V0dGVyIHNldHRlcikKKyAgICBDdXN0
b21HZXR0ZXJTZXR0ZXIoVk0mIHZtLCBDdXN0b21HZXR0ZXIgZ2V0dGVyLCBDdXN0b21TZXR0ZXIg
c2V0dGVyLCBET01KSVQ6OkdyYXBoKiBkb21KSVQpCiAgICAgICAgIDogSlNDZWxsKHZtLCB2bS5j
dXN0b21HZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgICAgICwgbV9nZXR0ZXIoZ2V0
dGVyKQogICAgICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAgICAgICAgLCBtX2RvbUpJVChkb21K
SVQpCiAgICAgewogICAgIH0KIAogICAgIEN1c3RvbUdldHRlciBtX2dldHRlcjsKICAgICBDdXN0
b21TZXR0ZXIgbV9zZXR0ZXI7CisgICAgRE9NSklUOjpHcmFwaCogbV9kb21KSVQ7CiB9OwogCiBK
U19FWFBPUlRfUFJJVkFURSBib29sIGNhbGxDdXN0b21TZXR0ZXIoRXhlY1N0YXRlKiwgQ3VzdG9t
R2V0dGVyU2V0dGVyOjpDdXN0b21TZXR0ZXIsIGJvb2wgaXNBY2Nlc3NvciwgSlNWYWx1ZSB0aGlz
VmFsdWUsIEpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50cmluc2ljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMu
aAppbmRleCAzZWU5ZGJlYmE1Zjg3ZTNhM2RkNGU4ZDRiMTUxNjBhMmJkYzc3YmQ0Li4wNDE1Y2Rh
YzdhMjg3M2QzNDhkODNhYmE1ODE2ZDliMGUyYjg0NTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRyaW5zaWMuaApAQCAtNzAsNiArNzAsNyBAQCBlbnVtIEpTX0VYUE9SVF9Q
UklWQVRFIEludHJpbnNpYyB7CiAgICAgVHlwZWRBcnJheUxlbmd0aEludHJpbnNpYywKICAgICBU
eXBlZEFycmF5Qnl0ZUxlbmd0aEludHJpbnNpYywKICAgICBUeXBlZEFycmF5Qnl0ZU9mZnNldElu
dHJpbnNpYywKKyAgICBET01Ob2RlRmlyc3RDaGlsZEludHJpbnNpYywKIAogICAgIC8vIERlYnVn
Z2luZyBpbnRyaW5zaWNzLiBUaGVzZSBhcmUgbWVhbnQgdG8gYmUgdXNlZCBhcyB0ZXN0aW5nIGhh
Y2tzIHdpdGhpbgogICAgIC8vIGpzYy5jcHAgYW5kIHNob3VsZCBuZXZlciBiZSBleHBvc2VkIHRv
IHVzZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggNjk1
YmZiNzJlZmQ0Njc2ZmZhYjFiZDVjNjJkZDI2NDU3ODA1ZTg5MC4uYTYwOWE0OGM5MDg2YzQzYmQ0
ZmJlMTVjYjdlZDk5YzczODQ0Zjk1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5oCkBAIC0xMjkwLDcgKzEyOTAsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgSlNPYmpl
Y3Q6OmZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNsb3QoUHJvcGVydHlTbG90JiBzbG90LCBKUwog
CiAgICAgLy8gVGhpcyBhY2Nlc3MgaXMgY2FjaGVhYmxlIGJlY2F1c2UgU3RydWN0dXJlIHJlcXVp
cmVzIGFuIGF0dHJpYnV0ZUNoYW5nZWRUcmFuc2l0aW9uCiAgICAgLy8gaWYgdGhpcyBwcm9wZXJ0
eSBzdG9wcyBiZWluZyBhbiBhY2Nlc3Nvci4KLSAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0
aGlzLCBhdHRyaWJ1dGVzLCBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oY3VzdG9tR2V0dGVy
U2V0dGVyKS0+Z2V0dGVyKCkpOworICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXMsIGF0
dHJpYnV0ZXMsIGpzQ2FzdDxDdXN0b21HZXR0ZXJTZXR0ZXIqPihjdXN0b21HZXR0ZXJTZXR0ZXIp
LT5nZXR0ZXIoKSwganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+KGN1c3RvbUdldHRlclNldHRl
ciktPmRvbUpJVCgpKTsKIH0KIAogLy8gSXQgbWF5IHNlZW0gY3JhenkgdG8gaW5saW5lIGEgZnVu
Y3Rpb24gdGhpcyBsYXJnZSwgZXNwZWNpYWxseSBhIHZpcnR1YWwgZnVuY3Rpb24sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCmluZGV4IDAxMGU5MDQ3YjdlZGVhNjY0NDhmYjk3
MWUzZDRlZTk2YmYwOGNiOTguLjgzNjI3ZWZlOWM0ODExMmM4ZTgwMDYxZDNkNjJiYmQ5ZjMzZDhh
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCkBAIC04Niw3ICs4Niwx
MyBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3QgewogICAgIEpTTWFwVHlwZSwKICAgICBKU1NldFR5
cGUsCiAKLSAgICBMYXN0SlNDT2JqZWN0VHlwZSA9IEpTU2V0VHlwZSwKKyAgICAvLyBUaGUgRE9N
Tm9kZVR5cGUgdmFsdWUgbXVzdCBjb21lIGJlZm9yZSBhbnkgSlNUeXBlIHRoYXQgaXMgYSBzdWJj
bGFzcyBvZiBKU05vZGUuCisgICAgRE9NTm9kZVR5cGUsCisgICAgRE9NRG9jdW1lbnRXcmFwcGVy
VHlwZSwKKyAgICAvLyBUaGUgRE9NRWxlbWVudFR5cGUgdmFsdWUgbXVzdCBjb21lIGJlZm9yZSBh
bnkgSlNUeXBlIHRoYXQgaXMgYSBzdWJjbGFzcyBvZiBKU0VsZW1lbnQuCisgICAgRE9NRWxlbWVu
dFR5cGUsCisKKyAgICBMYXN0SlNDT2JqZWN0VHlwZSA9IERPTUVsZW1lbnRUeXBlLAogfTsKIAog
Q09NUElMRV9BU1NFUlQoc2l6ZW9mKEpTVHlwZSkgPT0gc2l6ZW9mKHVpbnQ4X3QpLCBzaXplb2Zf
anN0eXBlX2lzX29uZV9ieXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0xvb2t1cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgK
aW5kZXggNjkyZDdjNzg5ZmVkNDdiNWFkNzQwYzliZGE3MmM2NjI0YTY1YTRlNy4uZDY3MmNiNjYz
YTcwZDRiMTgyZGUyYWNkYWM2ZTlkZDkxYTM1ODQxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTG9va3VwLmgKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJCYXRjaGVkVHJhbnNp
dGlvbk9wdGltaXplci5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkN1c3Rv
bUdldHRlclNldHRlci5oIgorI2luY2x1ZGUgIkRPTUpJVEdyYXBoLmgiCiAjaW5jbHVkZSAiSWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIklkZW50aWZpZXJJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSW50
cmluc2ljLmgiCkBAIC03OCw2ICs3OSw4IEBAIHN0cnVjdCBIYXNoVGFibGVWYWx1ZSB7CiAgICAg
R2V0RnVuY3Rpb24gcHJvcGVydHlHZXR0ZXIoKSBjb25zdCB7IEFTU0VSVCghKG1fYXR0cmlidXRl
cyAmIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6eVByb3BlcnR5T3JDb25zdGFudCkp
OyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxHZXRGdW5jdGlvbj4obV92YWx1ZXMudmFsdWUxKTsg
fQogICAgIFB1dEZ1bmN0aW9uIHByb3BlcnR5UHV0dGVyKCkgY29uc3QgeyBBU1NFUlQoIShtX2F0
dHJpYnV0ZXMgJiBCdWlsdGluT3JGdW5jdGlvbk9yQWNjZXNzb3JPckxhenlQcm9wZXJ0eU9yQ29u
c3RhbnQpKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UHV0RnVuY3Rpb24+KG1fdmFsdWVzLnZh
bHVlMik7IH0KIAorICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCgpIGNvbnN0IHsgQVNTRVJUKG1f
YXR0cmlidXRlcyAmIERPTUpJVEF0dHJpYnV0ZSk7IHJldHVybiByZWludGVycHJldF9jYXN0PERP
TUpJVDo6R3JhcGgqPihtX3ZhbHVlcy52YWx1ZTEpOyB9CisKICAgICBOYXRpdmVGdW5jdGlvbiBh
Y2Nlc3NvckdldHRlcigpIGNvbnN0IHsgQVNTRVJUKG1fYXR0cmlidXRlcyAmIEFjY2Vzc29yKTsg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KG1fdmFsdWVzLnZhbHVlMSk7
IH0KICAgICBOYXRpdmVGdW5jdGlvbiBhY2Nlc3NvclNldHRlcigpIGNvbnN0IHsgQVNTRVJUKG1f
YXR0cmlidXRlcyAmIEFjY2Vzc29yKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KG1fdmFsdWVzLnZhbHVlMik7IH0KICAgICBCdWlsdGluR2VuZXJhdG9yIGJ1aWx0aW5B
Y2Nlc3NvckdldHRlckdlbmVyYXRvcigpIGNvbnN0OwpAQCAtMjI0LDYgKzIyNywxMSBAQCBpbmxp
bmUgYm9vbCBnZXRTdGF0aWNQcm9wZXJ0eVNsb3RGcm9tVGFibGUoVk0mIHZtLCBjb25zdCBIYXNo
VGFibGUmIHRhYmxlLCBKU09iagogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBp
ZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIERPTUpJVEF0dHJpYnV0ZSkgeworICAgICAgICBzbG90
LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKGVu
dHJ5LT5hdHRyaWJ1dGVzKCkpLCBlbnRyeS0+ZG9tSklUKCktPmdldHRlcigpLCBlbnRyeS0+ZG9t
SklUKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBzbG90LnNldENhY2hl
YWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKGVudHJ5LT5hdHRy
aWJ1dGVzKCkpLCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CkBAIC0yNTksNiArMjY3LDcgQEAgaW5saW5lIGJvb2wgcHV0RW50cnkoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBIYXNoVGFibGVWYWx1ZSogZW50cnksIEpTT2JqZWN0KiBiYXMKICAgICAgICAgcmV0
dXJuIHJlamVjdChleGVjLCBzbG90LmlzU3RyaWN0TW9kZSgpLCBTdHJpY3RNb2RlUmVhZG9ubHlQ
cm9wZXJ0eVdyaXRlRXJyb3IpOwogCiAgICAgaWYgKCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIFJl
YWRPbmx5KSkgeworICAgICAgICBBU1NFUlQoIShlbnRyeS0+YXR0cmlidXRlcygpICYgRE9NSklU
QXR0cmlidXRlKSk7CiAgICAgICAgIGJvb2wgaXNBY2Nlc3NvciA9IGVudHJ5LT5hdHRyaWJ1dGVz
KCkgJiBDdXN0b21BY2Nlc3NvcjsKICAgICAgICAgSlNWYWx1ZSB1cGRhdGVUaGlzVmFsdWUgPSBl
bnRyeS0+YXR0cmlidXRlcygpICYgQ3VzdG9tQWNjZXNzb3IgPyBzbG90LnRoaXNWYWx1ZSgpIDog
SlNWYWx1ZShiYXNlKTsKICAgICAgICAgYm9vbCByZXN1bHQgPSBjYWxsQ3VzdG9tU2V0dGVyKGV4
ZWMsIGVudHJ5LT5wcm9wZXJ0eVB1dHRlcigpLCBpc0FjY2Vzc29yLCB1cGRhdGVUaGlzVmFsdWUs
IHZhbHVlKTsKQEAgLTMzNiw2ICszNDUsMTMgQEAgaW5saW5lIHZvaWQgcmVpZnlTdGF0aWNQcm9w
ZXJ0eShWTSYgdm0sIGNvbnN0IFByb3BlcnR5TmFtZSYgcHJvcGVydHlOYW1lLCBjb25zdAogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKHZhbHVlLmF0dHJpYnV0ZXMoKSAmIERPTUpJ
VEF0dHJpYnV0ZSkgeworICAgICAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQgPSB2YWx1ZS5kb21K
SVQoKTsKKyAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBD
dXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZG9tSklULT5nZXR0ZXIoKSwgZG9tSklULT5z
ZXR0ZXIoKSwgZG9tSklUKTsKKyAgICAgICAgdGhpc09iai5wdXREaXJlY3RDdXN0b21BY2Nlc3Nv
cih2bSwgcHJvcGVydHlOYW1lLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIGF0dHJpYnV0ZXNGb3JTdHJ1
Y3R1cmUodmFsdWUuYXR0cmlidXRlcygpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IEN1c3RvbUdldHRlclNl
dHRlcjo6Y3JlYXRlKHZtLCB2YWx1ZS5wcm9wZXJ0eUdldHRlcigpLCB2YWx1ZS5wcm9wZXJ0eVB1
dHRlcigpKTsKICAgICB0aGlzT2JqLnB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBwcm9wZXJ0
eU5hbWUsIGN1c3RvbUdldHRlclNldHRlciwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSh2YWx1ZS5h
dHRyaWJ1dGVzKCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5U2xvdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlTbG90LmgKaW5kZXggZTEzN2Q4NDVkNWZjMzEzODg2NWQxNzZhMjJhN2UzYmQ1MTdjZWIxMy4u
MzQ0YzE0OGY5OTNkOTU1NjlmN2RjOTdkZjI2NDcyZTdiZmFlN2ZlOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKQEAgLTI2LDcgKzI2LDkgQEAKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKLQorbmFtZXNwYWNl
IERPTUpJVCB7CitjbGFzcyBHcmFwaDsKK30KIGNsYXNzIEV4ZWNTdGF0ZTsKIGNsYXNzIEdldHRl
clNldHRlcjsKIGNsYXNzIEpTT2JqZWN0OwpAQCAtNDgsNiArNTAsNyBAQCBlbnVtIEF0dHJpYnV0
ZSB7CiAgICAgQ2VsbFByb3BlcnR5ICAgICAgPSAxIDw8IDExLCAvLyBwcm9wZXJ0eSBpcyBhIGxh
enkgcHJvcGVydHkgLSBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBDbGFzc1N0
cnVjdHVyZSAgICA9IDEgPDwgMTIsIC8vIHByb3BlcnR5IGlzIGEgbGF6eSBjbGFzcyBzdHJ1Y3R1
cmUgLSBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBQcm9wZXJ0eUNhbGxiYWNr
ICA9IDEgPDwgMTMsIC8vIHByb3BlcnR5IHRoYXQgaXMgYSBsYXp5IHByb3BlcnR5IGNhbGxiYWNr
IC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCisgICAgRE9NSklUQXR0cmlidXRlICAg
PSAxIDw8IDE0LCAvLyBwcm9wZXJ0eSBpcyBhIERPTSBKSVQgYXR0cmlidXRlIC0gb25seSB1c2Vk
IGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRpbk9yRnVuY3Rpb24gPSBCdWlsdGluIHwg
RnVuY3Rpb24sIC8vIGhlbHBlciBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBC
dWlsdGluT3JGdW5jdGlvbk9yTGF6eVByb3BlcnR5ID0gQnVpbHRpbiB8IEZ1bmN0aW9uIHwgQ2Vs
bFByb3BlcnR5IHwgQ2xhc3NTdHJ1Y3R1cmUgfCBQcm9wZXJ0eUNhbGxiYWNrLCAvLyBoZWxwZXIg
b25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRpbk9yRnVuY3Rpb25PckFj
Y2Vzc29yT3JMYXp5UHJvcGVydHkgPSBCdWlsdGluIHwgRnVuY3Rpb24gfCBBY2Nlc3NvciB8IENl
bGxQcm9wZXJ0eSB8IENsYXNzU3RydWN0dXJlIHwgUHJvcGVydHlDYWxsYmFjaywgLy8gaGVscGVy
IG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwpAQCAtMTU3LDYgKzE2MCwxMSBAQCBjbGFz
cyBQcm9wZXJ0eVNsb3QgewogICAgICAgICByZXR1cm4gbV93YXRjaHBvaW50U2V0OwogICAgIH0K
IAorICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gbV9kb21KSVQ7CisgICAgfQorCiAgICAgdm9pZCBzZXRWYWx1ZShKU09iamVjdCogc2xvdEJh
c2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEpTVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBB
U1NFUlQoYXR0cmlidXRlcyA9PSBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKGF0dHJpYnV0ZXMpKTsK
QEAgLTIxMSw3ICsyMTksNyBAQCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogICAgICAgICBtX29mZnNl
dCA9IGludmFsaWRPZmZzZXQ7CiAgICAgfQogICAgIAotICAgIHZvaWQgc2V0Q2FjaGVhYmxlQ3Vz
dG9tKEpTT2JqZWN0KiBzbG90QmFzZSwgdW5zaWduZWQgYXR0cmlidXRlcywgR2V0VmFsdWVGdW5j
IGdldFZhbHVlKQorICAgIHZvaWQgc2V0Q2FjaGVhYmxlQ3VzdG9tKEpTT2JqZWN0KiBzbG90QmFz
ZSwgdW5zaWduZWQgYXR0cmlidXRlcywgR2V0VmFsdWVGdW5jIGdldFZhbHVlLCBET01KSVQ6Okdy
YXBoKiBkb21KSVQgPSBudWxscHRyKQogICAgIHsKICAgICAgICAgQVNTRVJUKGF0dHJpYnV0ZXMg
PT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CiAgICAgICAgIApAQCAtMjIz
LDYgKzIzMSw3IEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAgICAgIG1fc2xvdEJhc2UgPSBz
bG90QmFzZTsKICAgICAgICAgbV9wcm9wZXJ0eVR5cGUgPSBUeXBlQ3VzdG9tOwogICAgICAgICBt
X29mZnNldCA9ICFpbnZhbGlkT2Zmc2V0OworICAgICAgICBtX2RvbUpJVCA9IGRvbUpJVDsKICAg
ICB9CiAKICAgICB2b2lkIHNldEN1c3RvbUdldHRlclNldHRlcihKU09iamVjdCogc2xvdEJhc2Us
IHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEN1c3RvbUdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyKQpA
QCAtMzE4LDYgKzMyNyw3IEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAgQ2FjaGVhYmlsaXR5
VHlwZSBtX2NhY2hlYWJpbGl0eTsKICAgICBQcm9wZXJ0eVR5cGUgbV9wcm9wZXJ0eVR5cGU7CiAg
ICAgSW50ZXJuYWxNZXRob2RUeXBlIG1faW50ZXJuYWxNZXRob2RUeXBlOworICAgIERPTUpJVDo6
R3JhcGgqIG1fZG9tSklUIHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9pc1RhaW50ZWRCeU9wYXF1
ZU9iamVjdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5o
IGIvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKaW5kZXggNmU4YTIxNDRjMTFjMWI4YjJm
NWYyN2Y3ZmMwYzNkZWZhYzdkZjJiNi4uOTIwODMwOTJiOTMxZjg5YjA2ZGM4NWI5ZTFhNTQ2ZmEy
NjMyNzJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKKysrIGIv
U291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKQEAgLTY4LDYgKzY4LDggQEAKIC8vIE5VTEwg
Y2FuIGNhdXNlIGNvbXBpbGVyIHByb2JsZW1zLCBlc3BlY2lhbGx5IGluIGNhc2VzIG9mIG11bHRp
cGxlIGluaGVyaXRhbmNlLgogI2RlZmluZSBPQkpFQ1RfT0ZGU0VUT0YoY2xhc3MsIGZpZWxkKSAo
cmVpbnRlcnByZXRfY2FzdDxwdHJkaWZmX3Q+KCYocmVpbnRlcnByZXRfY2FzdDxjbGFzcyo+KDB4
NDAwMCktPmZpZWxkKSkgLSAweDQwMDApCiAKKyNkZWZpbmUgQ0FTVF9PRkZTRVQoZnJvbSwgdG8p
IChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oc3RhdGljX2Nhc3Q8dG8+KChyZWludGVycHJl
dF9jYXN0PGZyb20+KDB4NDAwMCkpKSkgLSAweDQwMDApCisKIC8vIFNUUklOR0laRTogQ2FuIGNv
bnZlcnQgYW55IHZhbHVlIHRvIHF1b3RlZCBzdHJpbmcsIGV2ZW4gZXhwYW5kYWJsZSBtYWNyb3MK
ICNkZWZpbmUgU1RSSU5HSVpFKGV4cCkgI2V4cAogI2RlZmluZSBTVFJJTkdJWkVfVkFMVUVfT0Yo
ZXhwKSBTVFJJTkdJWkUoZXhwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMvZG9taml0L0RPTUpJVEdyYXBoLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5n
SGVhZGVycy9kb21qaXQvRE9NSklUR3JhcGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDgwM2M3ZjhiZjU0NDZj
ZDRiZTVjMzg0Y2RiNGM1MWIzMjYxN2MzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvZG9taml0L0RPTUpJVEdyYXBoLmgKQEAgLTAsMCArMSw0IEBA
CisjaWZuZGVmIFdlYkNvcmVfRldEX0RPTUpJVEdyYXBoX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0Rf
RE9NSklUR3JhcGhfaAorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RPTUpJVEdyYXBoLmg+Cisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNmY2ODdlOGVjZDczZGE4OGI0OWQ4
Nzk3NThjYWJkNTU2N2YwMzcyYS4uN2U5OWE0OTFlNjQ4NzZkMGNhODYxM2FkYzQ5MjAzY2JhNGZk
NjE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTE0LDYgKzE0LDcgQEAgbGlzdChB
UFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9ieXRlY29tcGlsZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZmciCiAgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIiCisgICAgIiR7SkFWQVNDUklQVENP
UkVfRElSfS9kb21qaXQiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9oZWFwIgogICAgICIk
e0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGVidWdnZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9pbnRlcnByZXRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjE1M2U0MDI0ZDE1
ZTlhNDc5NjQ3MDM3ZTY1ZTZlMWI2ZDM2YTA4Zi4uMDQ2NmNlNWE2YWZkYzY5YmJhYzVmNWY1Zjc1
ZWYzNWYwMTVlOWRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE5LDYgKzE5LDcg
QEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7SkFWQVND
UklQVENPUkVfRElSfS9ieXRlY29tcGlsZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9k
ZmciCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIiCisgICAgIiR7SkFW
QVNDUklQVENPUkVfRElSfS9kb21qaXQiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9oZWFw
IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGVidWdnZXIiCiAgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9pbnRlcnByZXRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggMzRi
OGRiMjcwYmY2OTRiMmUwN2QxODQ5MWFhODc0Njc0MzU2N2ZjOC4uYmM0N2M0ZWFhZGQ2NjliNDU0
Zjc2ODZiYTMyMjU0ZWNjMTg2YzgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTgw
LDYgKzgwLDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2JpbmRpbmdzIgogICAgICIke1dFQkNP
UkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9ieXRlY29kZSIKICAgICAiJHtXRUJDT1JFX0RJUn0v
Rm9yd2FyZGluZ0hlYWRlcnMvZGVidWdnZXIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRp
bmdIZWFkZXJzL2RvbWppdCIKICAgICAiJHtXRUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMv
aGVhcCIKICAgICAiJHtXRUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yIgog
ICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9pbnRlcnByZXRlciIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XaW4uY21ha2UKaW5kZXggYWVkOGRlYjBhMjg4NzdkOTU2NmQzNzhiZDU5YWRjZDBl
ZjhhN2NlZC4uYTM4ZmUxOTNlY2NhMzA3ZDE1OTVhYjRiYTM3YWYyNWM2YzUyMTBlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTE1LDYgKzE1LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29y
ZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2Fy
ZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyIgogICAgICIke0RFUklWRURf
U09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2RmZyIKICAgICAi
JHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9k
aXNhc3NlbWJsZXIiCisgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRl
cnMvSmF2YVNjcmlwdENvcmUvZG9taml0IgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0Zv
cndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2hlYXAiCiAgICAgIiR7REVSSVZFRF9TT1VS
Q0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIiCiAgICAg
IiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxP
YmplY3QuaAppbmRleCBkNDBjNDNmNjNkNTdlN2U1OTcwYzdlNjJlZmE4NTZhZTY0ZTMyZjI5Li4x
MTZkNWRkZjUxOTkzN2ZjNjYxMzU1YTJjODliZWJiMzgwNWJjMmFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTcyLDYgKzcyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQoKSB7
IHJldHVybiBtX3dvcmxkLmdldCgpOyB9CiAgICAgICAgIGJvb2wgd29ybGRJc05vcm1hbCgpIGNv
bnN0IHsgcmV0dXJuIG1fd29ybGRJc05vcm1hbDsgfQorICAgICAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mV29ybGRJc05vcm1hbCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0RPTUds
b2JhbE9iamVjdCwgbV93b3JsZElzTm9ybWFsKTsgfQogCiAgICAgICAgIEpTQnVpbHRpbkludGVy
bmFsRnVuY3Rpb25zJiBidWlsdGluSW50ZXJuYWxGdW5jdGlvbnMoKSB7IHJldHVybiBtX2J1aWx0
aW5JbnRlcm5hbEZ1bmN0aW9uczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V3JhcHBlci5oCmluZGV4IGNkNTBhZWY4MDFiODU5MjlkNjczODZhZTYyNmM3Y2FlNTg3MmY0YTQu
LmNlYzZiOGQ2YmQ3ZjY0NTBjNGQwYTlkNzE3M2IzYTVjOTBmMzk3N2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCkBAIC0zMCwxMCArMzAsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBKU0RPTVdpbmRvdzsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CiAKLXN0YXRpYyBjb25zdCB1aW50OF90IEpTTm9kZVR5cGUgPSBKU0M6Okxhc3RKU0NP
YmplY3RUeXBlICsgMTsKLXN0YXRpYyBjb25zdCB1aW50OF90IEpTRG9jdW1lbnRXcmFwcGVyVHlw
ZSA9IEpTQzo6TGFzdEpTQ09iamVjdFR5cGUgKyAyOwotc3RhdGljIGNvbnN0IHVpbnQ4X3QgSlNF
bGVtZW50VHlwZSA9IEpTQzo6TGFzdEpTQ09iamVjdFR5cGUgKyAzOwotCiBjbGFzcyBKU0RPTU9i
amVjdCA6IHB1YmxpYyBKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0
eXBlZGVmIEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKQEAgLTU5LDYgKzU1LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgSW1wbGVtZW50YXRpb25DbGFzcz4gY2xhc3MgSlNET01XcmFwcGVy
IDogcHVibGljIEpTRE9NT2JqZWN0IHsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNET01X
cmFwcGVyID0gdHJ1ZTsKIAogICAgIEltcGxlbWVudGF0aW9uQ2xhc3MmIHdyYXBwZWQoKSBjb25z
dCB7IHJldHVybiBjb25zdF9jYXN0PEltcGxlbWVudGF0aW9uQ2xhc3MmPihtX3dyYXBwZWQuZ2V0
KCkpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldyYXBwZWQoKSB7IHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoSlNET01XcmFwcGVyPEltcGxlbWVudGF0aW9uQ2xhc3M+LCBtX3dyYXBw
ZWQpOyB9CiAKIHByb3RlY3RlZDoKICAgICBKU0RPTVdyYXBwZXIoSlNDOjpTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSlNDOjpKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBSZWY8SW1wbGVtZW50
YXRpb25DbGFzcz4mJiBpbXBsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNEb2N1bWVudEN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1
bWVudEN1c3RvbS5oCmluZGV4IDY5YzRjYTgyODkxOWM5YjEzYWJhYjFjODNiNmJhYTAyYTlkNmJj
MmEuLmYwYWM3Yzc0MThiMDU4ZTVjMTBkMTY4YjAxMjM2NTA5ZDIzNTEyZTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmgKQEAgLTM1LDcgKzM1LDcg
QEAgQUxXQVlTX0lOTElORSBKU0RvY3VtZW50KiBqc0RvY3VtZW50Q2FzdChKU0M6OkpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc0NlbGwoKSkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEpTRG9j
dW1lbnRXcmFwcGVyVHlwZSA/IEpTQzo6anNDYXN0PEpTRG9jdW1lbnQqPih2YWx1ZSkgOiBudWxs
cHRyOworICAgIHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEpTQzo6RE9NRG9jdW1l
bnRXcmFwcGVyVHlwZSA/IEpTQzo6anNDYXN0PEpTRG9jdW1lbnQqPih2YWx1ZSkgOiBudWxscHRy
OwogfQogCiBKU0M6OkpTT2JqZWN0KiBjYWNoZWREb2N1bWVudFdyYXBwZXIoSlNDOjpFeGVjU3Rh
dGUmLCBKU0RPTUdsb2JhbE9iamVjdCYsIERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oCmluZGV4IDJhMWJhMDE4MDMyNGQwODRiNGFjNWI2
YjJjOTU3ZWRjMzlhNzk2ZjcuLmYyYmEwZDliYWNjNTAyNjA5YmM2MmE3MWJmOTVjYmFhN2NmYTQ5
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3Rv
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oCkBA
IC0zNSw3ICszNSw3IEBAIEFMV0FZU19JTkxJTkUgSlNFbGVtZW50KiBqc0VsZW1lbnRDYXN0KEpT
Qzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoVU5MSUtFTFkoIXZhbHVlLmlzQ2VsbCgpKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBl
KCkgPj0gSlNFbGVtZW50VHlwZSA/IEpTQzo6anNDYXN0PEpTRWxlbWVudCo+KHZhbHVlKSA6IG51
bGxwdHI7CisgICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPj0gSlNDOjpET01FbGVt
ZW50VHlwZSA/IEpTQzo6anNDYXN0PEpTRWxlbWVudCo+KHZhbHVlKSA6IG51bGxwdHI7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmgKaW5kZXggYWI2MzYxYzY1M2VlMTg2ZTA3NGJjZTIzNTJkNTJjYmI4NmY3MTNmMC4u
NTAxNDlmODI5ODljOGFhOWNiMTI2NjdjNWQyM2Q2ODQ2ZTY3MDdjZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKQEAgLTgyLDcgKzgyLDcgQEAgQUxXQVlTX0lO
TElORSBKU05vZGUqIGpzTm9kZUNhc3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChV
TkxJS0VMWSghdmFsdWUuaXNDZWxsKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBy
ZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA+PSBKU05vZGVUeXBlID8gSlNDOjpqc0Nhc3Q8
SlNOb2RlKj4odmFsdWUpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5
cGUoKSA+PSBKU0M6OkRPTU5vZGVUeXBlID8gSlNDOjpqc0Nhc3Q8SlNOb2RlKj4odmFsdWUpIDog
bnVsbHB0cjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaAppbmRleCA1ZDkzMjYxMTRhYTZmMGMxZDRmMGI3
YmNlMTY0YTEyMzhlMjZhOTBjLi4yZTU4MmJiNTBiYzk5ZWFiM2IwODYxZGNlMGY4OTc4YjdiYzk1
NGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFi
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaApA
QCAtNDcsNiArNDcsNyBAQCBjbGFzcyBTY3JpcHRXcmFwcGFibGUgewogICAgIEpTRE9NT2JqZWN0
KiB3cmFwcGVyKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRXcmFwcGVyKEpTRE9NT2JqZWN0KiwgSlND
OjpXZWFrSGFuZGxlT3duZXIqLCB2b2lkKik7CiAgICAgdm9pZCBjbGVhcldyYXBwZXIoSlNET01P
YmplY3QqKTsKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV3JhcHBlcigpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihTY3JpcHRXcmFwcGFibGUsIG1fd3JhcHBlcik7IH0KIAogcHJvdGVj
dGVkOgogICAgIH5TY3JpcHRXcmFwcGFibGUoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggYTZiOTAwZWUzMmMxZTk0
ZDkwMDc1M2M0ZTkwYzMyMTQ5Y2IxN2I0NC4uMWFhMTNlM2EzZjFhODMzZWZlM2M0NDVhZWUwZGU0
MzM4NWRjMzQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTYyNiw2ICs2MjYsNyBAQCBzdWIgR2V0SlNDQXR0cmlidXRl
c0ZvckF0dHJpYnV0ZQogICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0iKSBpZiAoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RW51bWVyYWJsZSJ9IHx8
ICRpc19nbG9iYWxfY29uc3RydWN0b3IpOwogICAgIHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHki
KSBpZiBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpOwogICAgIHB1c2goQHNwZWNpYWxzLCAiQ3VzdG9t
QWNjZXNzb3IiKSB1bmxlc3MgJGlzX2dsb2JhbF9jb25zdHJ1Y3RvciBvciBJc0pTQnVpbHRpbigk
aW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKKyAgICBwdXNoKEBzcGVjaWFscywgIkRPTUpJVEF0dHJp
YnV0ZSIpIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRP
TUpJVCJ9OwogICAgIHB1c2goQHNwZWNpYWxzLCAiQWNjZXNzb3IgfCBCdWlsdGluIikgaWYgIElz
SlNCdWlsdGluKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAgIHJldHVybiAoQHNwZWNpYWxz
ID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwogfQpAQCAtMTI4NiwxMSArMTI4
NywxMSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoSXNET01HbG9iYWxPYmplY3QoJGlu
dGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJu
IEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6R2xvYmFsT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
O1xuIik7CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRp
bnRlcmZhY2UsICJEb2N1bWVudCIpKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkpTVHlwZShKU0RvY3VtZW50V3JhcHBlclR5cGUp
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9i
amVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6RE9NRG9jdW1lbnRXcmFwcGVyVHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5l
cmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJFbGVtZW50IikpIHsKLSAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6SlNU
eXBlKEpTRWxlbWVudFR5cGUpLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKKyAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6RE9N
RWxlbWVudFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOwogICAgIH0gZWxzaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiTm9kZSIpKSB7
Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6OkpTVHlwZShKU05vZGVUeXBlKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7Cisg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
OkRPTU5vZGVUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8o
SlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKICAgICB9CkBA
IC0xMzQ4LDYgKzEzNDksOCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBteSAkaGFzRm9yd2Fy
ZERlY2xhcmluZ0Z1bmN0aW9ucyA9IDA7CiAgICAgbXkgJGhhc0ZvcndhcmREZWNsYXJpbmdBdHRy
aWJ1dGVzID0gMDsKIAorICAgIG15ICRoYXNET01KSVRBdHRyaWJ1dGVzID0gMDsKKwogICAgICMg
QXR0cmlidXRlIGFuZCBmdW5jdGlvbiBlbnVtcwogICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDAp
IHsKICAgICAgICAgZm9yZWFjaCAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewpAQCAtMTM2
Miw2ICsxMzY1LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICAgICAgJG5lZWRz
VmlzaXRDaGlsZHJlbiA9IDE7CiAgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiNlbmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICAgICAgfQorICAgICAg
ICAgICAgJGhhc0RPTUpJVEF0dHJpYnV0ZXMgPSAxIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9OwogCiAgICAgICAgICAgICBpZiAoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xhcmVJbkhl
YWRlciJ9KSB7CiAgICAgICAgICAgICAgICAgJGhhc0ZvcndhcmREZWNsYXJpbmdBdHRyaWJ1dGVz
ID0gMTsKQEAgLTE1NzksNiArMTU4MywxNSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAg
fQogICAgIH0KIAorICAgIGlmICgkaGFzRE9NSklUQXR0cmlidXRlcykgeworICAgICAgICAkaGVh
ZGVySW5jbHVkZXN7Ijxkb21qaXQvRE9NSklUR3JhcGguaD4ifSA9IDE7CisgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsIi8vIERPTUpJVCBlbWl0dGVycyBmb3IgYXR0cmlidXRlc1xuXG4iKTsK
KyAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9
KSB7CisgICAgICAgICAgICBuZXh0IHVubGVzcyAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJET01KSVQifTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICJKU0M6OkRPTUpJVDo6R3JhcGgqIGRvbUpJVEVtaXR0ZXJGb3IiIC4gJGludGVyZmFjZS0+
bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
bmFtZSkgLiAiKHZvaWQpO1xuIik7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoSGFzQ3Vz
dG9tQ29uc3RydWN0b3IoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIi8vIEN1c3RvbSBjb25zdHJ1Y3RvclxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0JHtjbGFzc05h
bWV9KEpTQzo6RXhlY1N0YXRlJik7XG5cbiIpOwpAQCAtMTY1NSwxNCArMTY2OCwxOSBAQCBzdWIg
R2VuZXJhdGVQcm9wZXJ0aWVzSGFzaFRhYmxlCiAgICAgICAgIG15ICRzcGVjaWFsID0gR2V0SlND
QXR0cmlidXRlc0ZvckF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAgICAgICAg
cHVzaChAJGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOwogCi0gICAgICAgIG15ICRnZXR0ZXIgPSBH
ZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUp
OwotICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMSwgJGdldHRlcik7Ci0KLSAgICAgICAgaWYgKElz
UmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9KSB7CisgICAgICAgICAgICBwdXNoKEAk
aGFzaFZhbHVlMSwgImRvbUpJVEVtaXR0ZXJGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2Rl
R2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAiKCki
KTsKICAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUyLCAiMCIpOwogICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVy
ZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEAkaGFzaFZh
bHVlMiwgJHNldHRlcik7CisgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0
dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAg
IHB1c2goQCRoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKKworICAgICAgICAgICAgaWYgKElzUmVhZG9u
bHkoJGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMiwgIjAi
KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IEdl
dEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7
CisgICAgICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKQEAgLTI0NTQs
MTcgKzI0NzIsMjMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15
IEBzcGVjaWFscyA9ICgpOwogICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVsZXRl
IikgdW5sZXNzICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRl
bGV0YWJsZSJ9OwogICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJSZWFkT25seSIpIGlmIElz
UmVhZG9ubHkoJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRPTUpJ
VEF0dHJpYnV0ZSIpIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRPTUpJVCJ9OwogICAgICAgICAgICAgbXkgJHNwZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkg
PyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwogICAgICAgICAgICAgcHVzaChAaGFzaFNw
ZWNpYWxzLCAkc3BlY2lhbCk7CiAKLSAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1
dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAg
ICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGdldHRlcik7Ci0KLSAgICAgICAgICAgIGlmIChJc1Jl
YWRvbmx5KCRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn0pIHsKKyAgICAgICAgICAgICAgICBw
dXNoKEBoYXNoVmFsdWUxLCAiZG9tSklURW1pdHRlckZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4g
JGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSAu
ICIoKSIpOwogICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7CiAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVT
ZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAg
ICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAgICAgICAgICAgIG15ICRn
ZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRh
dHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwor
CisgICAgICAgICAgICAgICAgaWYgKElzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgIjAiKTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVy
TmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJHNldHRlcik7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9OwpAQCAtMzAzNCw2
ICszMDU4LDM1IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAorICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9KSB7CisgICAgICAgICAg
ICAgICAgJGltcGxJbmNsdWRlc3siPHd0Zi9OZXZlckRlc3Ryb3llZC5oPiJ9ID0gMTsKKyAgICAg
ICAgICAgICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgICAg
ICAgICAgICAgbXkgJGRvbUpJVENsYXNzTmFtZSA9ICJET01KSVQiIC4gJGludGVyZmFjZU5hbWUg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUp
OworICAgICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRp
bnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIG15ICRz
ZXR0ZXIgPSBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpID8gIm51bGxwdHIiIDogR2V0QXR0cmlidXRl
U2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKworICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiY2xhc3MgJGRvbUpJVENsYXNzTmFtZSA6IHB1
YmxpYyBKU0M6OkRPTUpJVDo6R3JhcGgge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJwdWJsaWM6XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAkZG9tSklUQ2xhc3NOYW1lKClcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICA6IEpTQzo6RE9NSklUOjpHcmFwaCgkZ2V0dGVyLCAkc2V0dGVy
LCBKU0M6OlNwZWNET01Ob2RlKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIHVzaW5nIG5hbWVzcGFjZSBKU0M6OkRPTUpJVDtcbiIpOworICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICBhcHBlbmQoS2luZDo6Q2hlY2tOb2RlLCBJUjo6dGhp
c1ZhbHVlKCksIG51bGxwdHIpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIElSKiB3cmFwcGVkID0gYXBwZW5kKEtpbmQ6OkdldFdyYXBwZWQsIElSOjp0
aGlzVmFsdWUoKSwgbnVsbHB0ciwgSlNOb2RlOjpvZmZzZXRPZldyYXBwZWQoKSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXBwZW5kKEtpbmQ6OkNo
ZWNrTm9kZUZsYWdzLCB3cmFwcGVkLCBudWxscHRyLCBOb2RlOjpub2RlRmxhZ3NNZW1vcnlPZmZz
ZXQoKSwgTm9kZTo6SXNDb250YWluZXJGbGFnKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICBJUiogcmVzdWx0ID0gYXBwZW5kKEtpbmQ6OkxvYWRQb2lu
dGVyLCBudWxscHRyLCBudWxscHRyLCBDQVNUX09GRlNFVCgkaW50ZXJmYWNlTmFtZSosIENvbnRh
aW5lck5vZGUqKSArIENvbnRhaW5lck5vZGU6OmZpcnN0Q2hpbGRNZW1vcnlPZmZzZXQoKSk7XG4i
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSVIqIHdyYXBw
ZXIgPSBhcHBlbmQoS2luZDo6VG9XcmFwcGVyLCBJUjo6dGhpc1ZhbHVlKCksIHJlc3VsdCwgQ0FT
VF9PRkZTRVQoJGludGVyZmFjZU5hbWUqLCBTY3JpcHRXcmFwcGFibGUqKSArIFNjcmlwdFdyYXBw
YWJsZTo6b2Zmc2V0T2ZXcmFwcGVyKCksIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KHN0YXRpY19j
YXN0PEpTQzo6RW5jb2RlZEpTVmFsdWUgKCopKEpTQzo6RXhlY1N0YXRlKiwgdm9pZCosIHZvaWQq
KT4oW10oSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIHZvaWQqIHdyYXBwZWQsIHZvaWQqIG5vZGUpIHsg
cmV0dXJuIEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8SlNOb2Rl
Kj4obm9kZSktPmdsb2JhbE9iamVjdCgpLCBzdGF0aWNfY2FzdDxOb2RlKj4od3JhcHBlZCkpKTsg
fSkpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBh
cHBlbmQoS2luZDo6UmV0dXJuLCB3cmFwcGVyLCBudWxscHRyKTtcbiIpOworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAifTtcblxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIkpTQzo6RE9NSklUOjpHcmFwaCogZG9tSklURW1pdHRlckZvciIgLiAkaW50ZXJmYWNl
LT5uYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5uYW1lKSAuICIoKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7
XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8JGRvbUpJVENsYXNzTmFtZT4gZW1pdHRlcjtcbiIpOworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAmZW1pdHRlci5nZXQoKTtcbiIpOwor
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKKyAgICAgICAgICAg
IH0KKwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRhdHRy
aWJ1dGVDb25kaXRpb25hbFN0cmluZzsKIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJcbiIpOwpAQCAtNTAwMSwxMiArNTA1NCwxNCBAQCBzdWIgR2VuZXJhdGVIYXNoVGFibGVWYWx1
ZUFycmF5CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PEJ1aWx0
aW5HZW5lcmF0b3I+IjsKICAgICAgICAgfSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0Nv
bnN0YW50SW50ZWdlci8pIHsKICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAiIjsKKyAg
ICAgICAgfSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0RPTUpJVEF0dHJpYnV0ZS8pIHsK
KyAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8SlNDOjpET01KSVQ6
OkdyYXBoKj4iOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlw
ZSA9ICJzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4iOwogICAgICAgICAg
ICAgJHNlY29uZFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+IjsKICAgICAgICAgICAgICRoYXNTZXR0ZXIgPSAidHJ1ZSI7CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9Db25zdGFudEludGVnZXIvKSB7Cisg
ICAgICAgIGlmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQ29uc3RhbnRJbnRlZ2VyfERPTUpJVEF0
dHJpYnV0ZS8pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHsgXCIka2V5
XCIsIEAkc3BlY2lhbHNbJGldLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSIgLiAkZmlyc3RU
YXJnZXRUeXBlIC4gIihAJHZhbHVlMVskaV0pIH0gfSxcbiIpOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgeyBcIiRrZXlcIiwgQCRzcGVjaWFs
c1skaV0sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdCkiIC4gJGZpcnN0VGFyZ2V0VHlwZSAuICIo
QCR2YWx1ZTFbJGldKSwgKGludHB0cl90KSAiIC4gJHNlY29uZFRhcmdldFR5cGUgLiAiKEAkdmFs
dWUyWyRpXSkgfSB9LFxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCBkMjg4NWE4NDJkNzQ0MDk5MWM2MzgzOTcwY2M3ZDli
MmE2NWY0MjZkLi5mY2VmYjBlODg3NDcyOGExMDIzNWYxZDM0OTRiOTA2YWQ3MzU0OWZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQK
QEAgLTU0LDYgKzU0LDcgQEAgQ3VzdG9tUmV0dXJuCiBDdXN0b21TZXRQcm90b3R5cGUKIEN1c3Rv
bVNldHRlcgogQ3VzdG9tVG9KU09iamVjdAorRE9NSklUCiBEZWxldGFibGUKIERvTm90Q2hlY2tD
b25zdGFudHMKIERvTm90Q2hlY2tTZWN1cml0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKaW5kZXggNGEzMGNlYjU5NGM2YWIw
OGQwMGQ0OTU2NjFmM2JiNjYwMzMyYTBkMy4uZWJjNzJiOGEyYWYzZDA3ZDg5MDM2OGI0Njk2MzY5
NzZlOWIwZmNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIFdFQkNPUkVfVEVT
VFNVUFBPUlRfRVhQT1JUIEpTVGVzdE5vZGUgOiBwdWJsaWMgSlNOb2RlIHsKIAogICAgIHN0YXRp
YyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpKU1R5cGUoSlNOb2RlVHlwZSksIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUo
dm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6RE9NTm9kZVR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpK
U1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaAppbmRleCBlMjZjMzMyOWVkZDIyZDA4ODAxMjViZTIyZmJkMTYyYjZlN2Fh
OWJhLi4zNGNlZTFmZDQzOWYwOWFkZDhkNDJjNjA5ZDA5ZDVhYzFhYTJkZjY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKQEAgLTEyMCw2ICsxMjAsNDYgQEAgY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7
CiAgICAgICAgIERPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSA9IDB4MTAsCiAgICAgICAg
IERPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklDID0gMHgyMCwKICAgICB9
OworICAgIGVudW0gTm9kZUZsYWdzIHsKKyAgICAgICAgSXNUZXh0RmxhZyA9IDEsCisgICAgICAg
IElzQ29udGFpbmVyRmxhZyA9IDEgPDwgMSwKKyAgICAgICAgSXNFbGVtZW50RmxhZyA9IDEgPDwg
MiwKKyAgICAgICAgSXNTdHlsZWRFbGVtZW50RmxhZyA9IDEgPDwgMywKKyAgICAgICAgSXNIVE1M
RmxhZyA9IDEgPDwgNCwKKyAgICAgICAgSXNTVkdGbGFnID0gMSA8PCA1LAorICAgICAgICBDaGls
ZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCA3LAorICAgICAgICBJbkRvY3VtZW50RmxhZyA9
IDEgPDwgOCwKKyAgICAgICAgSXNMaW5rRmxhZyA9IDEgPDwgOSwKKyAgICAgICAgSXNVc2VyQWN0
aW9uRWxlbWVudCA9IDEgPDwgMTAsCisgICAgICAgIEhhc1JhcmVEYXRhRmxhZyA9IDEgPDwgMTEs
CisgICAgICAgIElzRG9jdW1lbnRGcmFnbWVudEZsYWcgPSAxIDw8IDEyLAorCisgICAgICAgIC8v
IFRoZXNlIGJpdHMgYXJlIHVzZWQgYnkgZGVyaXZlZCBjbGFzc2VzLCBwdWxsZWQgdXAgaGVyZSBz
byB0aGV5IGNhbgorICAgICAgICAvLyBiZSBzdG9yZWQgaW4gdGhlIHNhbWUgbWVtb3J5IHdvcmQg
YXMgdGhlIE5vZGUgYml0cyBhYm92ZS4KKyAgICAgICAgSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hl
ZEZsYWcgPSAxIDw8IDEzLCAvLyBFbGVtZW50CisKKyAgICAgICAgU3R5bGVDaGFuZ2VNYXNrID0g
MSA8PCBub2RlU3R5bGVDaGFuZ2VTaGlmdCB8IDEgPDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsg
MSkgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCArIDIpLAorICAgICAgICBJc0VkaXRpbmdU
ZXh0T3JVbmRlZmluZWRDdXN0b21FbGVtZW50RmxhZyA9IDEgPDwgMTcsCisgICAgICAgIEhhc0Zv
Y3VzV2l0aGluID0gMSA8PCAxOCwKKyAgICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNG
bGFnID0gMSA8PCAxOSwKKyAgICAgICAgSGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzRmxh
ZyA9IDEgPDwgMjAsCisgICAgICAgIEhhc0V2ZW50VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIxLAor
ICAgICAgICBJc0N1c3RvbUVsZW1lbnQgPSAxIDw8IDIyLAorICAgICAgICBJc0luU2hhZG93VHJl
ZUZsYWcgPSAxIDw8IDIzLAorICAgICAgICBJc01hdGhNTEZsYWcgPSAxIDw8IDI0LAorCisgICAg
ICAgIENoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI1LAorICAg
ICAgICBDaGlsZHJlbkFmZmVjdGVkQnlMYXN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI2LAorICAg
ICAgICBDaGlsZHJlbkFmZmVjdGVkQnlIb3ZlclJ1bGVzRmxhZyA9IDEgPDwgMjcsCisKKyAgICAg
ICAgRGlyZWN0Q2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgMjgsCisgICAgICAgIEFm
ZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHlsZSA9IDEgPDwgMjksCisgICAgICAgIFN0eWxlSXNB
ZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nID0gMSA8PCAzMCwKKworICAgICAgICBTZWxmT3JBbmNl
c3Rvckhhc0RpckF1dG9GbGFnID0gMSA8PCAzMSwKKworICAgICAgICBEZWZhdWx0Tm9kZUZsYWdz
ID0gSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcKKyAgICB9OwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgc3RhcnRJZ25vcmluZ0xlYWtzKCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgc3RvcElnbm9yaW5nTGVha3MoKTsKQEAgLTE1NSw2ICsxOTUsOCBAQCBj
bGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKICAgICBOb2RlKiBwc2V1ZG9Bd2FyZVBy
ZXZpb3VzU2libGluZygpIGNvbnN0OwogICAgIE5vZGUqIHBzZXVkb0F3YXJlRmlyc3RDaGlsZCgp
IGNvbnN0OwogICAgIE5vZGUqIHBzZXVkb0F3YXJlTGFzdENoaWxkKCkgY29uc3Q7CisgICAgc3Rh
dGljIHB0cmRpZmZfdCBub2RlRmxhZ3NNZW1vcnlPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoTm9kZSwgbV9ub2RlRmxhZ3MpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCByYXJlRGF0
YU1lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihOb2RlLCBtX2RhdGEubV9y
YXJlRGF0YSk7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFVSTCYgYmFzZVVSSSgpIGNv
bnN0OwogICAgIApAQCAtNTYwLDggKzYwMiw2IEBAIGNsYXNzIE5vZGUgOiBwdWJsaWMgRXZlbnRU
YXJnZXQgewogICAgIHZvaWQgdXBkYXRlQW5jZXN0b3JDb25uZWN0ZWRTdWJmcmFtZUNvdW50Rm9y
SW5zZXJ0aW9uKCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKLSAgICBz
dGF0aWMgcHRyZGlmZl90IG5vZGVGbGFnc01lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihOb2RlLCBtX25vZGVGbGFncyk7IH0KLSAgICBzdGF0aWMgcHRyZGlmZl90IHJhcmVE
YXRhTWVtb3J5T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE5vZGUsIG1fZGF0YS5t
X3JhcmVEYXRhKTsgfQogICAgIHN0YXRpYyBpbnQzMl90IGZsYWdJc1RleHQoKSB7IHJldHVybiBJ
c1RleHRGbGFnOyB9CiAgICAgc3RhdGljIGludDMyX3QgZmxhZ0lzRWxlbWVudCgpIHsgcmV0dXJu
IElzRWxlbWVudEZsYWc7IH0KICAgICBzdGF0aWMgaW50MzJfdCBmbGFnSXNIVE1MKCkgeyByZXR1
cm4gSXNIVE1MRmxhZzsgfQpAQCAtNTc3LDQ3ICs2MTcsNiBAQCBjbGFzcyBOb2RlIDogcHVibGlj
IEV2ZW50VGFyZ2V0IHsKICNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKIAogcHJv
dGVjdGVkOgotICAgIGVudW0gTm9kZUZsYWdzIHsKLSAgICAgICAgSXNUZXh0RmxhZyA9IDEsCi0g
ICAgICAgIElzQ29udGFpbmVyRmxhZyA9IDEgPDwgMSwKLSAgICAgICAgSXNFbGVtZW50RmxhZyA9
IDEgPDwgMiwKLSAgICAgICAgSXNTdHlsZWRFbGVtZW50RmxhZyA9IDEgPDwgMywKLSAgICAgICAg
SXNIVE1MRmxhZyA9IDEgPDwgNCwKLSAgICAgICAgSXNTVkdGbGFnID0gMSA8PCA1LAotICAgICAg
ICBDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCA3LAotICAgICAgICBJbkRvY3VtZW50
RmxhZyA9IDEgPDwgOCwKLSAgICAgICAgSXNMaW5rRmxhZyA9IDEgPDwgOSwKLSAgICAgICAgSXNV
c2VyQWN0aW9uRWxlbWVudCA9IDEgPDwgMTAsCi0gICAgICAgIEhhc1JhcmVEYXRhRmxhZyA9IDEg
PDwgMTEsCi0gICAgICAgIElzRG9jdW1lbnRGcmFnbWVudEZsYWcgPSAxIDw8IDEyLAotCi0gICAg
ICAgIC8vIFRoZXNlIGJpdHMgYXJlIHVzZWQgYnkgZGVyaXZlZCBjbGFzc2VzLCBwdWxsZWQgdXAg
aGVyZSBzbyB0aGV5IGNhbgotICAgICAgICAvLyBiZSBzdG9yZWQgaW4gdGhlIHNhbWUgbWVtb3J5
IHdvcmQgYXMgdGhlIE5vZGUgYml0cyBhYm92ZS4KLSAgICAgICAgSXNQYXJzaW5nQ2hpbGRyZW5G
aW5pc2hlZEZsYWcgPSAxIDw8IDEzLCAvLyBFbGVtZW50Ci0KLSAgICAgICAgU3R5bGVDaGFuZ2VN
YXNrID0gMSA8PCBub2RlU3R5bGVDaGFuZ2VTaGlmdCB8IDEgPDwgKG5vZGVTdHlsZUNoYW5nZVNo
aWZ0ICsgMSkgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCArIDIpLAotICAgICAgICBJc0Vk
aXRpbmdUZXh0T3JVbmRlZmluZWRDdXN0b21FbGVtZW50RmxhZyA9IDEgPDwgMTcsCi0gICAgICAg
IEhhc0ZvY3VzV2l0aGluID0gMSA8PCAxOCwKLSAgICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxk
Tm9kZXNGbGFnID0gMSA8PCAxOSwKLSAgICAgICAgSGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJh
Y2tzRmxhZyA9IDEgPDwgMjAsCi0gICAgICAgIEhhc0V2ZW50VGFyZ2V0RGF0YUZsYWcgPSAxIDw8
IDIxLAotICAgICAgICBJc0N1c3RvbUVsZW1lbnQgPSAxIDw8IDIyLAotICAgICAgICBJc0luU2hh
ZG93VHJlZUZsYWcgPSAxIDw8IDIzLAotICAgICAgICBJc01hdGhNTEZsYWcgPSAxIDw8IDI0LAot
Ci0gICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI1
LAotICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlMYXN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI2
LAotICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlIb3ZlclJ1bGVzRmxhZyA9IDEgPDwgMjcsCi0K
LSAgICAgICAgRGlyZWN0Q2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgMjgsCi0gICAg
ICAgIEFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHlsZSA9IDEgPDwgMjksCi0gICAgICAgIFN0
eWxlSXNBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nID0gMSA8PCAzMCwKLQotICAgICAgICBTZWxm
T3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8PCAzMSwKLQotICAgICAgICBEZWZhdWx0Tm9k
ZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcKLSAgICB9OwotCiAgICAgYm9v
bCBnZXRGbGFnKE5vZGVGbGFncyBtYXNrKSBjb25zdCB7IHJldHVybiBtX25vZGVGbGFncyAmIG1h
c2s7IH0KICAgICB2b2lkIHNldEZsYWcoYm9vbCBmLCBOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyBt
X25vZGVGbGFncyA9IChtX25vZGVGbGFncyAmIH5tYXNrKSB8ICgtKGludDMyX3QpZiAmIG1hc2sp
OyB9IAogICAgIHZvaWQgc2V0RmxhZyhOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyBtX25vZGVGbGFn
cyB8PSBtYXNrOyB9IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCmluZGV4IDExZDFlNmYzNjIzZDAxMDM3OTYzZjEy
Y2NjYzA2OGVlNGU1MDFlYmIuLjRjZTVhODRlM2Y0MGZmODBkNzBhNzg0NDFlMzIwODAwNDc2MmYz
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5pZGwKQEAgLTQ5LDcgKzQ5LDcgQEAKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgc2hvcnQgbm9kZVR5cGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5v
ZGU/IHBhcmVudE5vZGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVMaXN0IGNoaWxkTm9k
ZXM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IGZpcnN0Q2hpbGQ7CisgICAgW0RPTUpJ
VF0gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IGZpcnN0Q2hpbGQ7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE5vZGU/IGxhc3RDaGlsZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gcHJl
dmlvdXNTaWJsaW5nOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBuZXh0U2libGluZzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNDdkMjk0ZGQ0OTVhMzEzN2Q3NmZmMDg4NmVmNTEzYjdi
ZmM0OGVlNi4uMmMyMTliNWRhNzQ3NTlkNDIwMzE5ZDRhYjhhZGNmMGNhZDI5YzgzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIv
Q01ha2VMaXN0cy50eHQKQEAgLTE0OSw2ICsxNDksNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9jb2xsZWN0b3IvaGFuZGxlcyIK
ICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RmZyIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L2Rpc2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RvbWppdCIKICAg
ICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2hlYXAiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9pbnRlcnByZXRlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2ppdCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290215</attachid>
            <date>2016-09-29 10:31:08 -0700</date>
            <delta_ts>2016-09-29 14:40:11 -0700</delta_ts>
            <desc>Prototype rev6</desc>
            <filename>bug-162544-20160929102806.patch</filename>
            <type>text/plain</type>
            <size>148018</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YzI5ZjVkOGZhNTE1ZjA0MjRhZmNkNTEzZWI1ZDFmZDE1ODZlYzZiLi4wNTliYzg4ZjNlMDViODNh
YTc1MDQ0MWRlMzBiOWFmZGI0OWQ1NWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNzEgQEAKKzIwMTYtMDktMjkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0RhdGFGb3JtYXQuaDoKKyAgICAgICAgKiBieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2spOgorICAgICAgICAqIGJ5dGVjb2Rl
L0dldEJ5SWRWYXJpYW50LmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OkdldEJ5
SWRWYXJpYW50KToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6Om9wZXJhdG9yPSk6Cisg
ICAgICAgIChKU0M6OkdldEJ5SWRWYXJpYW50OjphdHRlbXB0VG9NZXJnZSk6CisgICAgICAgIChK
U0M6OkdldEJ5SWRWYXJpYW50OjpkdW1wSW5Db250ZXh0KToKKyAgICAgICAgKiBieXRlY29kZS9H
ZXRCeUlkVmFyaWFudC5oOgorICAgICAgICAoSlNDOjpHZXRCeUlkVmFyaWFudDo6ZG9tSklUKToK
KyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmludHJpbnNpYyk6IERlbGV0ZWQuCisgICAg
ICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nl
c3NDYXNlOjpnZXQpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpjbG9uZSk6CisgICAgICAg
ICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2Fz
ZTo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6UmFyZURhdGE6OlJhcmVEYXRh
KToKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgIChKU0M6
OmR1bXBTcGVjdWxhdGlvbik6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJvbVN0cnVjdHVy
ZSk6CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoKKyAgICAgICAgKEpTQzo6
aXNET01Ob2RlU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjppc0RPTUVsZW1lbnRTcGVjdWxh
dGlvbik6CisgICAgICAgIChKU0M6OmlzRE9NRG9jdW1lbnRXcmFwcGVyU3BlY3VsYXRpb24pOgor
ICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaDoKKyAgICAgICAgKEpTQzo6VmFsdWVS
ZWNvdmVyeTo6ZGlzcGxhY2VkSW5KU1N0YWNrKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJl
dGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZURPTUpJVEdldHRlcik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6
OmhhbmRsZUdldEJ5SWQpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAg
IChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJzRXhpdFN0
YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyc0V4aXRTdGF0ZSk6CisgICAgICAg
ICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAg
ICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFz
ZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHR2VuZXJhdGlvbkluZm8uaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpHZW5lcmF0aW9uSW5mbzo6aW5pdE9wYXF1ZVBvaW50ZXIpOgorICAgICAg
ICAoSlNDOjpERkc6OkdlbmVyYXRpb25JbmZvOjpmaWxsT3BhcXVlUG9pbnRlcik6CisgICAgICAg
IChKU0M6OkRGRzo6R2VuZXJhdGlvbkluZm86OmluaXRTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6REZHOjpHZW5lcmF0aW9uSW5mbzo6ZmlsbFN0b3JhZ2UpOiBEZWxldGVkLgorICAg
ICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzT3BhcXVl
UG9pbnRlclJlc3VsdCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRl
RE9NTm9kZSk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlRE9NRWxl
bWVudCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2hvdWxkU3BlY3VsYXRlRE9NRG9jdW1l
bnRXcmFwcGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNPcGFxdWVQb2ludGVyT2Zm
c2V0KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpvcGFxdWVQb2ludGVyT2Zmc2V0KToKKyAg
ICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNOb2RlRmxhZ3NPcGVyYW5kKToKKyAgICAgICAgKEpT
Qzo6REZHOjpOb2RlOjpub2RlRmxhZ3NPcGVyYW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2Rl
OjpoYXNTbG93VG9KU09wZXJhdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6c2xvd1Rv
SlNPcGVyYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc1N0b3JhZ2VSZXN1bHQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZUFycmF5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpkdW1wTm9kZUZsYWdzKToKKyAgICAgICAgKiBkZmcvREZHTm9kZUZsYWdzLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Y2Fub25pY2FsUmVzdWx0UmVwcmVzZW50YXRpb24pOgorICAgICAg
ICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTYWZlVG9FeGVjdXRlRWRnZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChK
U0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5G
b3JHUFIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsT3BhcXVlUG9p
bnRlcik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNoZWNrR2VuZXJhdGVk
VHlwZUZvclRvSW50MzIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ2hlY2tOb2RlRmxhZ3MpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlTG9hZE9wYXF1ZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0RE9NV3JhcHBlZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVUb0RPTVdyYXBwZXIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpzcGVjdWxhdGVET01Ob2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlRE9NRWxlbWVudCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OnNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcik6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwaWxsKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6b3BhcXVlUG9pbnRlclJlc3VsdCk6CisgICAg
ICAgIChKU0M6OkRGRzo6T3BhcXVlUG9pbnRlck9wZXJhbmQ6Ok9wYXF1ZVBvaW50ZXJPcGVyYW5k
KToKKyAgICAgICAgKEpTQzo6REZHOjpPcGFxdWVQb2ludGVyT3BlcmFuZDo6fk9wYXF1ZVBvaW50
ZXJPcGVyYW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpPcGFxdWVQb2ludGVyT3BlcmFuZDo6ZWRn
ZSk6CisgICAgICAgIChKU0M6OkRGRzo6T3BhcXVlUG9pbnRlck9wZXJhbmQ6Om5vZGUpOgorICAg
ICAgICAoSlNDOjpERkc6Ok9wYXF1ZVBvaW50ZXJPcGVyYW5kOjpncHIpOgorICAgICAgICAoSlND
OjpERkc6Ok9wYXF1ZVBvaW50ZXJPcGVyYW5kOjp1c2UpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpzdG9yYWdlUmVzdWx0KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmZpbGxKU1ZhbHVlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Zmls
bFNwZWN1bGF0ZUludDMySW50ZXJuYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpmaWxsU3BlY3VsYXRlQ2VsbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmZpbGxTcGVjdWxhdGVCb29sZWFuKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZSk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKToK
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQm9vbGVhbik6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpU
eXBlQ2hlY2tIb2lzdGluZ1BoYXNlOjppZGVudGlmeVJlZHVuZGFudFN0cnVjdHVyZUNoZWNrcyk6
CisgICAgICAgIChKU0M6OkRGRzo6VHlwZUNoZWNrSG9pc3RpbmdQaGFzZTo6aWRlbnRpZnlSZWR1
bmRhbnRBcnJheUNoZWNrcyk6CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAg
ICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAg
ICAgICAoSlNDOjpERkc6OnR5cGVGaWx0ZXJGb3IpOgorICAgICAgICAoSlNDOjpERkc6OmlzQ2Vs
bCk6CisgICAgICAgICogZG9taml0L0RPTUpJVEdyYXBoLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmguCisgICAgICAgIChKU0M6OkRP
TUpJVDo6R3JhcGg6OmVkZ2VGaWx0ZXIpOgorICAgICAgICAqIGRvbWppdC9ET01KSVRHcmFwaC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9t
LmguCisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OkdyYXBoKToKKyAgICAgICAgKEpTQzo6
RE9NSklUOjpHcmFwaDo6fkdyYXBoKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpHcmFwaDo6c3Bl
Y3VsYXRlZENoaWxkVHlwZSk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OmdldHRlcik6
CisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OnNldHRlcik6CisgICAgICAgICogZG9taml0
L0RPTUpJVElSLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
bGVtZW50Q3VzdG9tLmguCisgICAgICAgIChKU0M6OkRPTUpJVDo6SVI6OnRoaXNWYWx1ZSk6Cisg
ICAgICAgICogZG9taml0L0RPTUpJVElSLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaC4KKyAgICAgICAgKEpTQzo6RE9NSklUOjpJUjo6
SVIpOgorICAgICAgICAqIGRvbWppdC9ET01KSVRJUkJ1aWxkZXIuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmguCisgICAgICAgIChKU0M6
OkRPTUpJVDo6SVJCdWlsZGVyOjphcHBlbmQpOgorICAgICAgICAoSlNDOjpET01KSVQ6OklSQnVp
bGRlcjo6aXIpOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpsb3dPcGFxdWVQb2ludGVy
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNOb3RET01Ob2RlKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6aXNOb3RET01FbGVtZW50KToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlRE9NTm9kZSk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZURPTUVsZW1lbnQpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVET01Eb2N1bWVu
dFdyYXBwZXIpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzZXRPcGFx
dWVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c3BlY3Vs
YXRlU2V0T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6c2V0U3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVy
cy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRE9NTm9kZSk6Cisg
ICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RET01Ob2RlKToKKyAgICAg
ICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkRPTUVsZW1lbnQpOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90RE9NRWxlbWVudCk6CisgICAgICAgIChK
U0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RPYmplY3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L1JlcGF0Y2guY3BwOgorICAg
ICAgICAoSlNDOjp0cnlDYWNoZUdldEJ5SUQpOgorICAgICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0
dGVyU2V0dGVyLmg6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoKKyAgICAgICAgKiBy
dW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpmaWxsQ3VzdG9tR2V0
dGVyUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZS5oOgorICAgICAgICAq
IHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6Okhhc2hUYWJsZVZhbHVlOjpkb21KSVQp
OgorICAgICAgICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0eVNsb3RGcm9tVGFibGUpOgorICAgICAg
ICAoSlNDOjpwdXRFbnRyeSk6CisgICAgICAgIChKU0M6OnJlaWZ5U3RhdGljUHJvcGVydHkpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5
U2xvdDo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90OjpzZXRDYWNoZWFibGVD
dXN0b20pOgorCiAyMDE2LTA5LTI4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgog
CiAgICAgICAgIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlciB3aWxsIHJldHVybiBgbnVs
bGAgd2hlbiBpdCBzaG91bGQgbm90CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhN2E1NTc1YTQ2ZDk1Y2ZlNmNhYzA1Mzg1MWM1
ZjdlOWMxYTYzMjMuLjllOTY4MWU0NmUyY2JlMjVmMGRhMmM3ZWY5OTI3OGRhYzE2ZWUyNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDktMjkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5n
IEpJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
NTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvU3RkTGliRXh0cmFzLmg6CisKIDIwMTYtMDktMjggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFJlLWVuYWJsZSBTdHJpbmdWaWV3IGxpZmUtY3ljbGUgY2hlY2tp
bmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYzAzNzU1OTI5MGE4OTA4YTg0ZTVmZGMxYzMyZmIwMjFlM2ViNGNk
OC4uODgyOGRjNzk0YzRmMjY3M2JjNGQxMzQxNjc5MWM5ZDBhMzg2ZWJjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQwIEBACisyMDE2LTA5LTI5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCisgICAgICAgIFtCaW5kaW5nXSBJbnRyb2R1Y2luZyBET00gYmluZGluZyBK
SVQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRm9y
d2FyZGluZ0hlYWRlcnMvZG9taml0L0RPTUpJVEdyYXBoLmg6IEFkZGVkLgorICAgICAgICAqIFBs
YXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAq
IFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdyYXBwZXI6Om9mZnNl
dE9mV3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdyYXBwZXI6OndyYXBwZWQpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OmpzRG9jdW1lbnRDYXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Vs
ZW1lbnRDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmpzRWxlbWVudENhc3QpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6anNOb2Rl
Q2FzdCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6Om9mZnNldE9mV3JhcHBlcik6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZXRKU0NBdHRy
aWJ1dGVzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAg
KEdlbmVyYXRlUHJvcGVydGllc0hhc2hUYWJsZSk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oOgorICAgICAgICAqIGRvbS9Ob2RlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlOjpub2RlRmxhZ3NNZW1vcnlPZmZzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6cmFyZURhdGFNZW1vcnlPZmZzZXQpOgorICAgICAgICAqIGRvbS9Ob2Rl
LmlkbDoKKwogMjAxNi0wOS0yOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIERyb3AgZmlyc3QgJ3N0YXRlJyBwYXJhbWV0ZXIgdG8gSlNET01XaW5kb3c6OnRvV3Jh
cHBlZCgpIC8gSlNFdmVudFRhcmdldDo6dG9XcmFwcGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3MjdiMjg4
ZjgzZTdjYjk5MGM1M2QxMTQ4ZTVhZmY1NTdiNDM3NWUyLi41MzhiZWYxMTRmOTQ3YWRmZGZkMzM2
YmUyOTFjZjYwODJiMjVmY2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDkt
MjkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0Jp
bmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKwogMjAxNi0wOS0y
OCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdLU2hh
cmVkQVBJQ2FzdCBzaG91bGQgbm90IHdhcm4gYWJvdXQgYWNjZXB0YWJsZSBjdXN0b20gY29udGV4
dCBtZW51IHRhZyB2YWx1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBh
OThkODY0Nzg5Yzk2MzI5MDM3Y2EyYTEzZGFkNGI3ODQ4MzJhM2Y2Li40MGVjMjExYmYzZTE1ODQ5
YjYwZjFiNWNlMjVlZTQ0MWFiMjViOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xNiw2ICsxNiw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29kZSIKICAgICAiJHtKQVZBU0NS
SVBUQ09SRV9ESVJ9L2J5dGVjb21waWxlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Rm
ZyIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RvbWppdCIKICAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2Rpc2Fzc2VtYmxlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Rpc2Fz
c2VtYmxlci91ZGlzODYiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9mdGwiCkBAIC00MDUs
NiArNDA2LDkgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBkaXNhc3NlbWJsZXIv
dWRpczg2L3VkaXM4Nl9zeW4taW50ZWwuYwogICAgIGRpc2Fzc2VtYmxlci91ZGlzODYvdWRpczg2
X3N5bi5jCiAKKyAgICBkb21qaXQvRE9NSklUR3JhcGguY3BwCisgICAgZG9taml0L0RPTUpJVElS
LmNwcAorCiAgICAgZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAKICAgICBmdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5jcHAKICAgICBmdGwvRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5ZmVjMmNlOWRkZWFhM2I5ZmU4MDI5ZjUwM2Mz
ZWM4M2YyNjMzMGMuLmY3MTFmYzY3NTM5ZTBhMjYyNTUyOTEyOGM1YjJhNzk2ZTU5ZTA1NjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTYsNyArMzE2LDcgQEAKIAkJMEYzM0ZD
RkIxQzE2MjVCRTAwMzIzRjY3IC8qIEIzQ0ZHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMzRkNGOTFDMTYyNUJFMDAzMjNGNjcgLyogQjNDRkcuaCAq
LzsgfTsKIAkJMEYzM0ZDRkMxQzE2MjVCRTAwMzIzRjY3IC8qIEIzRG9taW5hdG9ycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzM0ZDRkExQzE2MjVC
RTAwMzIzRjY3IC8qIEIzRG9taW5hdG9ycy5oICovOyB9OwogCQkwRjM0QjE0OTE2RDQyMDEwMDAx
Q0RBNUEgLyogREZHVXNlS2luZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAg
Ki87IH07Ci0JCTBGMzRCMTRBMTZENDIwMTMwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0ODE2RDQyMDBF
MDAxQ0RBNUEgLyogREZHVXNlS2luZC5oICovOyB9OworCQkwRjM0QjE0QTE2RDQyMDEzMDAxQ0RB
NUEgLyogREZHVXNlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYzNEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjM3MzA4QzFDMEJE
MjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM3MzA4QTFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlD
aGlsZHJlbi5jcHAgKi87IH07CiAJCTBGMzczMDhEMUMwQkQyOTEwMDA1MkJGQSAvKiBCM1BoaUNo
aWxkcmVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM3MzA4QjFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5oICovOyB9OwogCQkwRjM3
MzA4RjFDMENENjg1MDAwNTJCRkEgLyogRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM3MzA4
RTFDMENENjg1MDAwNTJCRkEgLyogRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgg
Ki87IH07CkBAIC01ODcsNyArNTg3LDcgQEAKIAkJMEZBMkMxN0IxN0Q3Q0Y4NDAwOUQwMTVGIC8q
IFRlc3RSdW5uZXJVdGlscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkEyQzE3OTE3RDdDRjg0MDA5RDAxNUYgLyogVGVzdFJ1bm5lclV0aWxzLmNw
cCAqLzsgfTsKIAkJMEZBMkMxN0MxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBMkMxN0Ex
N0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQTU4MUJBMTUwRTk1MkMwMEI5QTJEOSAv
KiBERkdOb2RlRmxhZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZBNTgxQjcxNTBFOTUyQTAwQjlBMkQ5IC8qIERGR05vZGVGbGFncy5jcHAgKi87
IH07Ci0JCTBGQTU4MUJCMTUwRTk1MzAwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTU4MUI4MTUwRTk1MkEw
MEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuaCAqLzsgfTsKKwkJMEZBNTgxQkIxNTBFOTUzMDAwQjlB
MkQ5IC8qIERGR05vZGVGbGFncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZBNTgxQjgxNTBFOTUyQTAwQjlBMkQ5IC8qIERGR05vZGVGbGFncy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQTU4MUJD
MTUwRTk1MzAwMEI5QTJEOSAvKiBERkdOb2RlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBNTgxQjkxNTBFOTUyQTAwQjlBMkQ5IC8qIERGR05v
ZGVUeXBlLmggKi87IH07CiAJCTBGQTdBOEVCMThCNDEzQzgwMDUyMzcxRCAvKiBSZWcuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBN0E4RTkxOEI0
MTNDODAwNTIzNzFEIC8qIFJlZy5jcHAgKi87IH07CiAJCTBGQTdBOEVDMThCNDEzQzgwMDUyMzcx
RCAvKiBSZWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQTdBOEVBMThCNDEzQzgwMDUyMzcxRCAvKiBSZWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTQ0NCw3ICsxNDQ0LDcgQEAKIAkJODZFQzlE
RDAxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMwMTMyOERGODIwMDJCMkFENyAvKiBE
RkdPcGVyYXRpb25zLmggKi87IH07CiAJCTg2RUM5REQxMTMyOERGODIwMDJCMkFENyAvKiBERkdS
ZWdpc3RlckJhbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCAqLzsgfTsK
IAkJODZFQzlERDIxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMyMTMyOERG
ODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5jcHAgKi87IH07Ci0JCTg2RUM5REQzMTMy
OERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQzMxMzI4REY4MjAwMkIyQUQ3IC8qIERG
R1NwZWN1bGF0aXZlSklULmggKi87IH07CisJCTg2RUM5REQzMTMyOERGODIwMDJCMkFENyAvKiBE
RkdTcGVjdWxhdGl2ZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODZFQzlEQzMxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZFQ0Ez
RUExMzJERUYxQzAwMkIyQUQ3IC8qIERGR05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUNBM0U5MTMyREVGMUMwMDJCMkFENyAvKiBERkdOb2Rl
LmggKi87IH07CiAJCTg2RUNBM0ZBMTMyREYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDQTNGOTEz
MkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oICovOyB9OwogCQk4NkYzRUVCRDE2OENE
RTkzMDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RjNFRUI5MTY4Q0NGNzUwMDc3QjkyQSAvKiBP
YmpDQ2FsbGJhY2tGdW5jdGlvbi5oICovOyB9OwpAQCAtMjA2OSw2ICsyMDY5LDcgQEAKIAkJRTMz
NjM3QTUxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzNjM3QTMxQjYzMjIwMjAwRUUwODQw
IC8qIFJlZmxlY3RPYmplY3QuY3BwICovOyB9OwogCQlFMzM2MzdBNjFCNjMyMjAyMDBFRTA4NDAg
LyogUmVmbGVjdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTMzNjM3QTQxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzNCM0UyNjFC
N0FCRDc1MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzQjNFMjUxQjdB
QkQ3NTAwNDhEQjJFIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5sdXQuaCAqLzsg
fTsKKwkJRTMzQjk5OTYxRDlEODJCRjAwMjZGOTUwIC8qIERPTUpJVElSLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNEZBRTJDMUQ5RDgyNjMwMEQx
MDJDOCAvKiBET01KSVRJUi5jcHAgKi87IH07CiAJCUUzM0U4RDFDMUI5MDEzQzMwMDM0NkI1MiAv
KiBKU05hdGl2ZVN0ZEZ1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzM0U4RDFBMUI5MDEzQzMwMDM0NkI1MiAvKiBKU05hdGl2ZVN0ZEZ1
bmN0aW9uLmNwcCAqLzsgfTsKIAkJRTMzRThEMUQxQjkwMTNDMzAwMzQ2QjUyIC8qIEpTTmF0aXZl
U3RkRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzM0U4RDFCMUI5MDEzQzMwMDM0NkI1MiAvKiBKU05hdGl2ZVN0ZEZ1bmN0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMzRThEMjAx
QjkwMTNERTAwMzQ2QjUyIC8qIE5hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzNFOEQxRTFCOTAxM0RFMDAzNDZC
NTIgLyogTmF0aXZlU3RkRnVuY3Rpb25DZWxsLmNwcCAqLzsgfTsKQEAgLTIwOTgsNiArMjA5OSwx
MCBAQAogCQlFM0QyMzlDOTFCODI5QzFDMDBCQkVGNjcgLyogSlNNb2R1bGVFbnZpcm9ubWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNEMjM5Qzcx
QjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJvbm1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0VGODg3NDFCNjZERjIzMDAzRjI2
Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0VGODg3MjFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi87IH07CiAJCUUzRUY4ODc1MUI2NkRGMjMwMDNGMjZDQiAv
KiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFM0VGODg3MzFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUUzRkY3NTMyMUQ5Q0VBMTUwMEM3RTE2RCAvKiBET01KSVRHcmFwaC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ZGNzUyRTFEOUNFQTEy
MDBDN0UxNkQgLyogRE9NSklUR3JhcGguY3BwICovOyB9OworCQlFM0ZGNzUzMzFEOUNFQTE4MDBD
N0UxNkQgLyogRE9NSklUR3JhcGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzRkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHcmFwaC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzRkY3NTM0
MUQ5Q0VBMUUwMEM3RTE2RCAvKiBET01KSVRJUi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGRjc1MzAxRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVElS
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTNG
Rjc1MzUxRDlDRUEyNTAwQzdFMTZEIC8qIERPTUpJVElSQnVpbGRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGRjc1MzExRDlDRUExMjAwQzdFMTZE
IC8qIERPTUpJVElSQnVpbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUU0OURDMTZCMTJFRjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0OURDMTU1MTJFRjI3NzIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLzsg
fTsKIAkJRTQ5REMxNkMxMkVGMjk0RTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTUxMTJF
RjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ5REMxNkQxMkVGMjk1MzAwMTg0QTFG
IC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE0OTEyRUYyNjFBMDAxODRBMUYgLyogU291cmNlUHJv
dmlkZXJDYWNoZUl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtNDM3MSw2ICs0Mzc2LDcgQEAKIAkJRTMzRjUwODMxQjg0MzdBMDAwNDEzODU2
IC8qIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzNGNTA4NjFCODQ0OUVGMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VD
b25zdHJ1Y3Rvci5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbnRl
cm5hbFByb21pc2VDb25zdHJ1Y3Rvci5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTMzRjUwODgxQjg0NEExQTAwNDEzODU2IC8qIEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9y
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gSW50ZXJuYWxQcm9t
aXNlQ29uc3RydWN0b3IuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNEZBRTJD
MUQ5RDgyNjMwMEQxMDJDOCAvKiBET01KSVRJUi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBET01KSVRJUi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzNTQ2MjJBMUI2MDY1RDEwMDU0NTM4NiAvKiBDb25zdHJ1Y3RBYmlsaXR5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnN0cnVjdEFiaWxpdHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM1NUYzNTAxQjdEQzg1MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRl
clByb3RvdHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1
bGVMb2FkZXJQcm90b3R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU1
RjM1MTFCN0RDODUzMDBDNTBEQzUgLyogTW9kdWxlTG9hZGVyUHJvdG90eXBlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUxvYWRlclByb3RvdHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDM5Myw2ICs0Mzk5LDEwIEBACiAJCUUzRDI2NDJBMUQz
OEMwNDIwMDBCRTE3NCAvKiBCeXRlY29kZVJld3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEJ5dGVjb2RlUmV3cml0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTNFRjg4NzIxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRUY4ODczMUI2NkRG
MjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTNGRjc1MkUxRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUpJVEdyYXBoLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNGRjc1MkYxRDlDRUExMjAwQzdFMTZEIC8q
IERPTUpJVEdyYXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVEdy
YXBoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRkY3NTMwMUQ5Q0VBMTIwMEM3
RTE2RCAvKiBET01KSVRJUi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01K
SVRJUi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0ZGNzUzMTFEOUNFQTEyMDBD
N0UxNkQgLyogRE9NSklUSVJCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUpJVElSQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlE
QzE0OTEyRUYyNjFBMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5REMxNTExMkVGMjcyMjAwMTg0QTFGIC8qIFNv
dXJjZVByb3ZpZGVyQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291
cmNlUHJvdmlkZXJDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE1
NTEyRUYyNzcyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2NTAsNiArNDY2MCw3IEBACiAJCQkJNjUwRkRGOEQw
OUQwRkNBNzAwNzY5RTU0IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQk4NkVDOURCMzEzMjhE
RjQ0MDAyQjJBRDcgLyogZGZnICovLAogCQkJCTBGRjQyNzJFMTU4RUJDQ0UwMDRDQjlGRiAvKiBk
aXNhc3NlbWJsZXIgKi8sCisJCQkJRTNGRjc1MkQxRDlDRTlFQTAwQzdFMTZEIC8qIGRvbWppdCAq
LywKIAkJCQkwODY3RDY5QUZFODQwMjhGQzAyQUFDMDcgLyogRnJhbWV3b3JrcyAqLywKIAkJCQkw
RkVBMDlGQzE3MDUxMzdGMDBCQjcyMkMgLyogZnRsICovLAogCQkJCTE0MkUzMTJBMTM0RkYwQTYw
MEFGQURCNSAvKiBoZWFwICovLApAQCAtNzE0OSw2ICs3MTYwLDE4IEBACiAJCQlwYXRoID0gY29k
ZWdlbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUUzRkY3NTJEMUQ5Q0U5
RUEwMEM3RTE2RCAvKiBkb21qaXQgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCUUzRkY3NTJFMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHcmFwaC5jcHAg
Ki8sCisJCQkJRTNGRjc1MkYxRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmggKi8sCisJ
CQkJRTM0RkFFMkMxRDlEODI2MzAwRDEwMkM4IC8qIERPTUpJVElSLmNwcCAqLywKKwkJCQlFM0ZG
NzUzMDFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUSVIuaCAqLywKKwkJCQlFM0ZGNzUzMTFEOUNF
QTEyMDBDN0UxNkQgLyogRE9NSklUSVJCdWlsZGVyLmggKi8sCisJCQkpOworCQkJcGF0aCA9IGRv
bWppdDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAvKiBFbmQgUEJYR3JvdXAg
c2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhIZWFkZXJzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBA
IC03MTk2LDYgKzcyMTksNyBAQAogCQkJCTBGRUM4NTc3MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJG
cmVxdWVudGVkQmxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTc5MUJEQUNEQzcwMDgw
RkY3NCAvKiBBaXJHZW5lcmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1N0ExQkRBQ0RD
NzAwODBGRjc0IC8qIEFpckdlbmVyYXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQlF
M0ZGNzUzNTFEOUNFQTI1MDBDN0UxNkQgLyogRE9NSklUSVJCdWlsZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVDODU3QzFCREFDREM3MDA4MEZGNzQgLyogQWlySGFuZGxlQ2FsbGVlU2F2ZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTdFMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJJbnNl
cnRpb25TZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTgwMUJEQUNEQzcwMDgwRkY3NCAv
KiBBaXJJbnN0LmggaW4gSGVhZGVycyAqLywKQEAgLTc1OTMsNiArNzYxNyw3IEBACiAJCQkJMEZD
MjBDQkExODU1NkEzNTAwQzlFOTU0IC8qIERGR1NTQUxvd2VyaW5nUGhhc2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGOUZCNEY1MTdGQ0I5MTcwMENCNjdGOCAvKiBERkdTdGFja0xheW91dFBoYXNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRGMjlFMDE4QjZBRDFDMDA1N0JDMTUgLyogREZHU3Rh
dGljRXhlY3V0aW9uQ291bnRFc3RpbWF0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUUz
RkY3NTMzMUQ5Q0VBMTgwMEM3RTE2RCAvKiBET01KSVRHcmFwaC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY5RTMyNjQxQjA1QUIwNDAwODAxRUQ1IC8qIERGR1N0b3JlQmFycmllckluc2VydGlvblBo
YXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkMyMENCNjE4NTJFMkM2MDBDOUU5NTQgLyogREZH
U3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2Mzk0NzgxNURD
RTM0QjAwNkE1OTdDIC8qIERGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaCBpbiBIZWFkZXJzICov
LApAQCAtODA1MCw2ICs4MDc1LDcgQEAKIAkJCQk5NjAwOTdBNjBFQkFCQjU4MDA3QTcyOTcgLyog
TGFiZWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCNTQ2NzcxNEY1OUI1QzAwMkMyOTg5
IC8qIExhenlPcGVyYW5kVmFsdWVQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OURBMDBC
MDFCRDU5OTRFMDBGNDU3NUMgLyogbGF6eXdyaXRlci5weSBpbiBIZWFkZXJzICovLAorCQkJCUUz
RkY3NTM0MUQ5Q0VBMUUwMEM3RTE2RCAvKiBET01KSVRJUi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxOEM0MzEwRTE2RjVDRDAwQjM0NDYwIC8qIExleGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
M0Y0MEU5MzFENUE0QUIzMDA5OUExQjYgLyogV0FTTUIzSVJHZW5lcmF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMThDNTJFMEUxNkZDRTEwMEIzNDQ2MCAvKiBMZXhlci5sdXQuaCBpbiBIZWFk
ZXJzICovLApAQCAtOTM3MCw2ICs5Mzk2LDcgQEAKIAkJCQkwRjI0RTU0QzE3RUUyNzQ5MDBBQkIy
MTcgLyogSklUT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU1MTNBODFENUE2
OENEMDBDMzJCRDggLyogRnJlZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU5OUIyNEEx
QzI0QzNENzAwQzgyMTU5IC8qIEpJVE5lZ0dlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlFMzNCOTk5NjFEOUQ4MkJGMDAyNkY5NTAgLyogRE9NSklUSVIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODZDQzg1QzQwRUU3QTg5NDAwMjg4NjgyIC8qIEpJVFByb3BlcnR5QWNjZXNzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE3QzFFOEU0MTEyRTcyRUYwMEEzN0Y5OCAvKiBKSVRQcm9wZXJ0
eUFjY2VzczMyXzY0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQjQxNTg0MUQ3OEZCNEMwMERG
OEQwOSAvKiBBcnJheUNvbnZlbnRpb25zLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTQ1OSw2ICs5
NDg2LDcgQEAKIAkJCQkxNDg3NEFFNTE1RUJERTRBMDAyRTM1ODcgLyogSlNTY29wZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBN0MwQzRBRDE2ODEwNjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5MTlEMTAxNTdGMzMyOTAwNEE0RTdEIC8qIEpTU2Vn
bWVudGVkVmFyaWFibGVPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTNGRjc1MzIxRDlD
RUExNTAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDMTdF
ODE3MUM5QzkxRDYwMDhBNkFCMyAvKiBTaGFkb3dDaGlja2VuLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE3Mjk5RDlEMTdEMTI4MzcwMDVGNUZGOSAvKiBKU1NldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBNzkwREQ2RjE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EYXRh
Rm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oCmlu
ZGV4IDIyYzY0OTIyNjcyOWVmYjEwMTc2ODJjMWZlMTRhYzA4YzI3Y2UzYzIuLmMwZjZjZDgzZjRj
ZTc3OTk5OTZmNTA2Y2ViNTRhZWM0YWQzZWU1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0RhdGFGb3JtYXQuaApAQCAtNDQsNyArNDQsOCBAQCBlbnVtIERhdGFGb3JtYXQg
ewogICAgIERhdGFGb3JtYXRCb29sZWFuID0gNSwKICAgICBEYXRhRm9ybWF0Q2VsbCA9IDYsCiAg
ICAgRGF0YUZvcm1hdFN0b3JhZ2UgPSA3LAotICAgIERhdGFGb3JtYXRKUyA9IDgsCisgICAgRGF0
YUZvcm1hdE9wYXF1ZVBvaW50ZXIgPSA4LAorICAgIERhdGFGb3JtYXRKUyA9IDE2LAogICAgIERh
dGFGb3JtYXRKU0ludDMyID0gRGF0YUZvcm1hdEpTIHwgRGF0YUZvcm1hdEludDMyLAogICAgIERh
dGFGb3JtYXRKU0RvdWJsZSA9IERhdGFGb3JtYXRKUyB8IERhdGFGb3JtYXREb3VibGUsCiAgICAg
RGF0YUZvcm1hdEpTQ2VsbCA9IERhdGFGb3JtYXRKUyB8IERhdGFGb3JtYXRDZWxsLApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCmluZGV4IDE1
YjNjODEzY2I4YmU4MDczM2UzYjQxNWY2YTk4ZTdmOWFjOGRkNGYuLjQxODJiOTFkNmY3N2M0ZDE0
ODk4NzZkYmIwODM3MzAwMGZlZWY4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKQEAgLTM3LDYgKzM3LDkgQEAKICNpbmNsdWRlIDx3
dGYvTGlzdER1bXAuaD4KIAogbmFtZXNwYWNlIEpTQyB7CituYW1lc3BhY2UgRE9NSklUIHsKK2Ns
YXNzIEdyYXBoOworfQogCiBib29sIEdldEJ5SWRTdGF0dXM6OmFwcGVuZFZhcmlhbnQoY29uc3Qg
R2V0QnlJZFZhcmlhbnQmIHZhcmlhbnQpCiB7CkBAIC0yMTUsNiArMjE4LDcgQEAgR2V0QnlJZFN0
YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVk
YmFjaygKICAgICAgICAgICAgIGNhc2UgQ29tcGxleEdldFN0YXR1czo6SW5saW5lYWJsZTogewog
ICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0YXR1cz4gY2FsbExpbmtT
dGF0dXM7CiAgICAgICAgICAgICAgICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rpb24gPSBu
dWxscHRyOworICAgICAgICAgICAgICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IG51bGxwdHI7
CiAKICAgICAgICAgICAgICAgICBzd2l0Y2ggKGFjY2Vzcy50eXBlKCkpIHsKICAgICAgICAgICAg
ICAgICBjYXNlIEFjY2Vzc0Nhc2U6OkxvYWQ6CkBAIC0yMzQsNiArMjM4LDEyIEBAIEdldEJ5SWRT
dGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVl
ZGJhY2soCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgQWNjZXNzQ2FzZTo6Q3Vz
dG9tQWNjZXNzb3JHZXR0ZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgZG9tSklUID0gYWNjZXNz
LmRvbUpJVCgpOworICAgICAgICAgICAgICAgICAgICBpZiAoIWRvbUpJVCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKHNsb3dQYXRoU3RhdGUsIHRydWUpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgZGVmYXVsdDogewogICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSXQgd291bGQg
YmUgdG90YWxseSBzd2VldCB0byBzdXBwb3J0IG1vcmUgb2YgdGhlc2UgYXQgc29tZSBwb2ludCBp
biB0aGUKICAgICAgICAgICAgICAgICAgICAgLy8gZnV0dXJlLiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDUyCkBAIC0yNDQsNyArMjU0LDggQEAgR2V0QnlJZFN0
YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVk
YmFjaygKICAgICAgICAgICAgICAgICBHZXRCeUlkVmFyaWFudCB2YXJpYW50KAogICAgICAgICAg
ICAgICAgICAgICBTdHJ1Y3R1cmVTZXQoc3RydWN0dXJlKSwgY29tcGxleEdldFN0YXR1cy5vZmZz
ZXQoKSwKICAgICAgICAgICAgICAgICAgICAgY29tcGxleEdldFN0YXR1cy5jb25kaXRpb25TZXQo
KSwgV1RGTW92ZShjYWxsTGlua1N0YXR1cyksCi0gICAgICAgICAgICAgICAgICAgIGludHJpbnNp
Y0Z1bmN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgaW50cmluc2ljRnVuY3Rpb24sCisgICAg
ICAgICAgICAgICAgICAgIGRvbUpJVCk7CiAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5h
cHBlbmRWYXJpYW50KHZhcmlhbnQpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2V0QnlJ
ZFN0YXR1cyhzbG93UGF0aFN0YXRlLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwCmluZGV4IGE4NjlkNGExYzk0ZTdlNDc1NzMx
NzQ0YzdiMzAzZDUwNjVlMGY0MzEuLmUyNzE2YThhMTI5YzczYjRlZDUzOTc5ODU2NmU1MWFkYTNi
YmMxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlk
VmFyaWFudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRW
YXJpYW50LmNwcApAQCAtMzYsMTIgKzM2LDE0IEBAIEdldEJ5SWRWYXJpYW50OjpHZXRCeUlkVmFy
aWFudCgKICAgICBjb25zdCBTdHJ1Y3R1cmVTZXQmIHN0cnVjdHVyZVNldCwgUHJvcGVydHlPZmZz
ZXQgb2Zmc2V0LAogICAgIGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0JiBjb25kaXRp
b25TZXQsCiAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rU3RhdHVzPiBjYWxsTGlua1N0YXR1
cywKLSAgICBKU0Z1bmN0aW9uKiBpbnRyaW5zaWNGdW5jdGlvbikKKyAgICBKU0Z1bmN0aW9uKiBp
bnRyaW5zaWNGdW5jdGlvbiwKKyAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQpCiAgICAgOiBtX3N0
cnVjdHVyZVNldChzdHJ1Y3R1cmVTZXQpCiAgICAgLCBtX2NvbmRpdGlvblNldChjb25kaXRpb25T
ZXQpCiAgICAgLCBtX29mZnNldChvZmZzZXQpCiAgICAgLCBtX2NhbGxMaW5rU3RhdHVzKFdURk1v
dmUoY2FsbExpbmtTdGF0dXMpKQogICAgICwgbV9pbnRyaW5zaWNGdW5jdGlvbihpbnRyaW5zaWNG
dW5jdGlvbikKKyAgICAsIG1fZG9tSklUKGRvbUpJVCkKIHsKICAgICBpZiAoIXN0cnVjdHVyZVNl
dC5zaXplKCkpIHsKICAgICAgICAgQVNTRVJUKG9mZnNldCA9PSBpbnZhbGlkT2Zmc2V0KTsKQEAg
LTY1LDYgKzY3LDcgQEAgR2V0QnlJZFZhcmlhbnQmIEdldEJ5SWRWYXJpYW50OjpvcGVyYXRvcj0o
Y29uc3QgR2V0QnlJZFZhcmlhbnQmIG90aGVyKQogICAgIG1fY29uZGl0aW9uU2V0ID0gb3RoZXIu
bV9jb25kaXRpb25TZXQ7CiAgICAgbV9vZmZzZXQgPSBvdGhlci5tX29mZnNldDsKICAgICBtX2lu
dHJpbnNpY0Z1bmN0aW9uID0gb3RoZXIubV9pbnRyaW5zaWNGdW5jdGlvbjsKKyAgICBtX2RvbUpJ
VCA9IG90aGVyLm1fZG9tSklUOwogICAgIGlmIChvdGhlci5tX2NhbGxMaW5rU3RhdHVzKQogICAg
ICAgICBtX2NhbGxMaW5rU3RhdHVzID0gc3RkOjptYWtlX3VuaXF1ZTxDYWxsTGlua1N0YXR1cz4o
Km90aGVyLm1fY2FsbExpbmtTdGF0dXMpOwogICAgIGVsc2UKQEAgLTEwMyw2ICsxMDYsOSBAQCBi
b29sIEdldEJ5SWRWYXJpYW50OjphdHRlbXB0VG9NZXJnZShjb25zdCBHZXRCeUlkVmFyaWFudCYg
b3RoZXIpCiAgICAgaWYgKCFjYW5NZXJnZUludHJpbnNpY1N0cnVjdHVyZXMob3RoZXIpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAobV9kb21KSVQgIT0gb3RoZXIubV9kb21KSVQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmIChtX2NvbmRpdGlvblNldC5pc0VtcHR5
KCkgIT0gb3RoZXIubV9jb25kaXRpb25TZXQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgCkBAIC0xMzgsNiArMTQ0LDggQEAgdm9pZCBHZXRCeUlkVmFyaWFudDo6ZHVtcElu
Q29udGV4dChQcmludFN0cmVhbSYgb3V0LCBEdW1wQ29udGV4dCogY29udGV4dCkgY29uc3QKICAg
ICAgICAgb3V0LnByaW50KCIsIGNhbGwgPSAiLCAqbV9jYWxsTGlua1N0YXR1cyk7CiAgICAgaWYg
KG1faW50cmluc2ljRnVuY3Rpb24pCiAgICAgICAgIG91dC5wcmludCgiLCBpbnRyaW5zaWMgPSAi
LCAqbV9pbnRyaW5zaWNGdW5jdGlvbik7CisgICAgaWYgKG1fZG9tSklUICkKKyAgICAgICAgb3V0
LnByaW50KCIsIGN1c3RvbSA9ICIsIFJhd1BvaW50ZXIobV9kb21KSVQpKTsKICAgICBvdXQucHJp
bnQoIj4iKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0dldEJ5SWRWYXJpYW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJ
ZFZhcmlhbnQuaAppbmRleCA2NjIxODliY2U1ZjJlYjFhMTNiZDA1M2U5ODAwMjFjMTNjMjY2ZTY2
Li5kY2Y0MDg4ZWMzNWI5YmIwMjhjNWJlOGJkMzI1YTExNDE3OTAzODk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuaApAQCAtMzIsNiArMzIs
OSBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZVNldC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVz
cGFjZSBET01KSVQgeworY2xhc3MgR3JhcGg7Cit9CiAKIGNsYXNzIENhbGxMaW5rU3RhdHVzOwog
Y2xhc3MgR2V0QnlJZFN0YXR1czsKQEAgLTQzLDcgKzQ2LDggQEAgY2xhc3MgR2V0QnlJZFZhcmlh
bnQgewogICAgICAgICBjb25zdCBTdHJ1Y3R1cmVTZXQmIHN0cnVjdHVyZVNldCA9IFN0cnVjdHVy
ZVNldCgpLCBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBpbnZhbGlkT2Zmc2V0LAogICAgICAgICBj
b25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCYgPSBPYmplY3RQcm9wZXJ0eUNvbmRpdGlv
blNldCgpLAogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtTdGF0dXM+ID0gbnVsbHB0
ciwKLSAgICAgICAgSlNGdW5jdGlvbiogPSBudWxscHRyKTsKKyAgICAgICAgSlNGdW5jdGlvbiog
PSBudWxscHRyLAorICAgICAgICBET01KSVQ6OkdyYXBoKiA9IG51bGxwdHIpOwogCiAgICAgfkdl
dEJ5SWRWYXJpYW50KCk7CiAgICAgCkBAIC02Miw2ICs2Niw3IEBAIGNsYXNzIEdldEJ5SWRWYXJp
YW50IHsKICAgICBDYWxsTGlua1N0YXR1cyogY2FsbExpbmtTdGF0dXMoKSBjb25zdCB7IHJldHVy
biBtX2NhbGxMaW5rU3RhdHVzLmdldCgpOyB9CiAgICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVu
Y3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2ludHJpbnNpY0Z1bmN0aW9uOyB9CiAgICAgSW50cmlu
c2ljIGludHJpbnNpYygpIGNvbnN0IHsgcmV0dXJuIG1faW50cmluc2ljRnVuY3Rpb24gPyBtX2lu
dHJpbnNpY0Z1bmN0aW9uLT5pbnRyaW5zaWMoKSA6IE5vSW50cmluc2ljOyB9CisgICAgRE9NSklU
OjpHcmFwaCogZG9tSklUKCkgY29uc3QgeyByZXR1cm4gbV9kb21KSVQ7IH0KIAogICAgIGJvb2wg
aXNQcm9wZXJ0eVVuc2V0KCkgY29uc3QgeyByZXR1cm4gb2Zmc2V0KCkgPT0gaW52YWxpZE9mZnNl
dDsgfQogCkBAIC04MCw2ICs4NSw3IEBAIGNsYXNzIEdldEJ5SWRWYXJpYW50IHsKICAgICBQcm9w
ZXJ0eU9mZnNldCBtX29mZnNldDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtTdGF0dXM+
IG1fY2FsbExpbmtTdGF0dXM7CiAgICAgSlNGdW5jdGlvbiogbV9pbnRyaW5zaWNGdW5jdGlvbjsK
KyAgICBET01KSVQ6OkdyYXBoKiBtX2RvbUpJVDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNj
ZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vz
cy5jcHAKaW5kZXggMmNmMjY2NzA4NjY0NmYyMDJhMDRjNmEwNzQyOWM4MWE3NWU5NDY0My4uMzk5
NWU2NDA0ZjRiM2NlNzVmMTIxZjIzN2JhNTU0OWFhZmFhZmU0NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCkBAIC0yMjAs
NyArMjIwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6OnRyeUdl
dCgKIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBBY2Nlc3NDYXNlOjpnZXQoCiAgICAgVk0m
IHZtLCBKU0NlbGwqIG93bmVyLCBBY2Nlc3NUeXBlIHR5cGUsIFByb3BlcnR5T2Zmc2V0IG9mZnNl
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsCiAgICAgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRp
b25TZXQmIGNvbmRpdGlvblNldCwgYm9vbCB2aWFQcm94eSwgV2F0Y2hwb2ludFNldCogYWRkaXRp
b25hbFNldCwKLSAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBjdXN0b21HZXR0ZXIsIEpT
T2JqZWN0KiBjdXN0b21TbG90QmFzZSkKKyAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBj
dXN0b21HZXR0ZXIsIEpTT2JqZWN0KiBjdXN0b21TbG90QmFzZSwgRE9NSklUOjpHcmFwaCogZG9t
SklUKQogewogICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiByZXN1bHQobmV3IEFjY2Vz
c0Nhc2UoKSk7CiAKQEAgLTIyOSwxMiArMjI5LDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3ND
YXNlPiBBY2Nlc3NDYXNlOjpnZXQoCiAgICAgcmVzdWx0LT5tX3N0cnVjdHVyZS5zZXQodm0sIG93
bmVyLCBzdHJ1Y3R1cmUpOwogICAgIHJlc3VsdC0+bV9jb25kaXRpb25TZXQgPSBjb25kaXRpb25T
ZXQ7CiAKLSAgICBpZiAodmlhUHJveHkgfHwgYWRkaXRpb25hbFNldCB8fCByZXN1bHQtPmRvZXND
YWxscygpIHx8IGN1c3RvbUdldHRlciB8fCBjdXN0b21TbG90QmFzZSkgeworICAgIGlmICh2aWFQ
cm94eSB8fCBhZGRpdGlvbmFsU2V0IHx8IHJlc3VsdC0+ZG9lc0NhbGxzKCkgfHwgY3VzdG9tR2V0
dGVyIHx8IGN1c3RvbVNsb3RCYXNlIHx8IGRvbUpJVCkgewogICAgICAgICByZXN1bHQtPm1fcmFy
ZURhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFJhcmVEYXRhPigpOwogICAgICAgICByZXN1bHQtPm1f
cmFyZURhdGEtPnZpYVByb3h5ID0gdmlhUHJveHk7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0
YS0+YWRkaXRpb25hbFNldCA9IGFkZGl0aW9uYWxTZXQ7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJl
RGF0YS0+Y3VzdG9tQWNjZXNzb3IuZ2V0dGVyID0gY3VzdG9tR2V0dGVyOwogICAgICAgICByZXN1
bHQtPm1fcmFyZURhdGEtPmN1c3RvbVNsb3RCYXNlLnNldE1heUJlTnVsbCh2bSwgb3duZXIsIGN1
c3RvbVNsb3RCYXNlKTsKKyAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5kb21KSVQgPSBkb21K
SVQ7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTM4NSw2ICszODYsNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Y2xvbmUoKSBjb25zdAogICAgICAg
ICByZXN1bHQtPm1fcmFyZURhdGEtPmN1c3RvbUFjY2Vzc29yLm9wYXF1ZSA9IHJhcmVEYXRhLT5j
dXN0b21BY2Nlc3Nvci5vcGFxdWU7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+Y3VzdG9t
U2xvdEJhc2UgPSByYXJlRGF0YS0+Y3VzdG9tU2xvdEJhc2U7CiAgICAgICAgIHJlc3VsdC0+bV9y
YXJlRGF0YS0+aW50cmluc2ljRnVuY3Rpb24gPSByYXJlRGF0YS0+aW50cmluc2ljRnVuY3Rpb247
CisgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+ZG9tSklUID0gcmFyZURhdGEtPmRvbUpJVDsK
ICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmgKaW5kZXggYTZkMTQ4Y2JmYjBmMTlmOGIz
N2ExNzczODFlMDA4MTM3MmI4NDkyMi4uNWFlM2UyOWUwODVlZjljNjJkNzExNTgxZWI2ZWU5ZDBj
NzYwMTQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHlt
b3JwaGljQWNjZXNzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHlt
b3JwaGljQWNjZXNzLmgKQEAgLTM3LDYgKzM3LDkgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKIG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CitjbGFzcyBHcmFwaDsKK30K
IAogY2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgUG9seW1vcnBoaWNBY2Nlc3M7CkBAIC0xMzAsNyAr
MTMzLDggQEAgY2xhc3MgQWNjZXNzQ2FzZSB7CiAgICAgICAgIGJvb2wgdmlhUHJveHkgPSBmYWxz
ZSwKICAgICAgICAgV2F0Y2hwb2ludFNldCogYWRkaXRpb25hbFNldCA9IG51bGxwdHIsCiAgICAg
ICAgIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jID0gbnVsbHB0ciwKLSAgICAgICAgSlNPYmpl
Y3QqIGN1c3RvbVNsb3RCYXNlID0gbnVsbHB0cik7CisgICAgICAgIEpTT2JqZWN0KiBjdXN0b21T
bG90QmFzZSA9IG51bGxwdHIsCisgICAgICAgIERPTUpJVDo6R3JhcGgqID0gbnVsbHB0cik7CiAg
ICAgCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBtZWdhbW9ycGhpY0xv
YWQoVk0mLCBKU0NlbGwqIG93bmVyKTsKICAgICAKQEAgLTE4Niw2ICsxOTAsMTIgQEAgY2xhc3Mg
QWNjZXNzQ2FzZSB7CiAgICAgICAgIHJldHVybiBpbnRyaW5zaWNGdW5jdGlvbigpLT5pbnRyaW5z
aWMoKTsKICAgICB9CiAKKyAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdAorICAgIHsK
KyAgICAgICAgQVNTRVJUKG1fcmFyZURhdGEpOworICAgICAgICByZXR1cm4gbV9yYXJlRGF0YS0+
ZG9tSklUOworICAgIH0KKwogICAgIFdhdGNocG9pbnRTZXQqIGFkZGl0aW9uYWxTZXQoKSBjb25z
dAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fcmFyZURhdGEgPyBtX3JhcmVEYXRhLT5hZGRpdGlv
bmFsU2V0LmdldCgpIDogbnVsbHB0cjsKQEAgLTI4NCw2ICsyOTQsNyBAQCBjbGFzcyBBY2Nlc3ND
YXNlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFJhcmVEYXRhKCkKICAgICAgICAgICAgIDogdmlh
UHJveHkoZmFsc2UpCisgICAgICAgICAgICAsIGRvbUpJVChudWxscHRyKQogICAgICAgICB7CiAg
ICAgICAgICAgICBjdXN0b21BY2Nlc3Nvci5vcGFxdWUgPSBudWxscHRyOwogICAgICAgICB9CkBA
IC0zMDAsNiArMzExLDcgQEAgY2xhc3MgQWNjZXNzQ2FzZSB7CiAgICAgICAgIH0gY3VzdG9tQWNj
ZXNzb3I7CiAgICAgICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gY3VzdG9tU2xvdEJhc2U7CiAg
ICAgICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBpbnRyaW5zaWNGdW5jdGlvbjsKKyAgICAg
ICAgRE9NSklUOjpHcmFwaCogZG9tSklUOwogICAgIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmFyZURhdGE+IG1fcmFyZURhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAppbmRleCA3MTlkOGYyNzI4M2Y1ZDEyM2NlNTc3MTU0NWU0
NjliZjgxYWZmMjI3Li4xZmQwNGI1NTc0YmZlMDcwMjA1ZmUyYmEzMzBiZTJjNWU0MDlhZDFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5j
cHAKQEAgLTE3MCw2ICsxNzAsMjEgQEAgdm9pZCBkdW1wU3BlY3VsYXRpb24oUHJpbnRTdHJlYW0m
IG91dCwgU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAgICAgICAgICAgICAgbXlPdXQucHJpbnQo
IkRlcml2ZWRhcnJheSIpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGlzVG9w
ID0gZmFsc2U7CisKKyAgICAgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNET01Eb2N1bWVudFdyYXBw
ZXIpCisgICAgICAgICAgICAgICAgbXlPdXQucHJpbnQoIkRvbWRvY3VtZW50d3JhcHBlciIpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CisKKyAgICAg
ICAgICAgIGlmICh2YWx1ZSAmIFNwZWNET01FbGVtZW50KQorICAgICAgICAgICAgICAgIG15T3V0
LnByaW50KCJEb21lbGVtZW50Iik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
aXNUb3AgPSBmYWxzZTsKKworICAgICAgICAgICAgaWYgKHZhbHVlICYgU3BlY0RPTU90aGVyTm9k
ZSkKKyAgICAgICAgICAgICAgICBteU91dC5wcmludCgiRG9tb3RoZXJub2RlIik7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgaXNUb3AgPSBmYWxzZTsKICAgICAgICAgfQogCiAg
ICAgICAgIGlmICgodmFsdWUgJiBTcGVjU3RyaW5nKSA9PSBTcGVjU3RyaW5nKQpAQCAtMzk0LDEy
ICs0MDksMjUgQEAgU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKGNvbnN0
IENsYXNzSW5mbyogY2xhc3NJbmZvKQogCiBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21T
dHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7Ci0gICAgaWYgKHN0cnVjdHVyZS0+dHlw
ZUluZm8oKS50eXBlKCkgPT0gU3RyaW5nVHlwZSkKKyAgICBKU1R5cGUgdHlwZSA9IHN0cnVjdHVy
ZS0+dHlwZUluZm8oKS50eXBlKCk7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBTdHJp
bmdUeXBlOgogICAgICAgICByZXR1cm4gU3BlY1N0cmluZzsKLSAgICBpZiAoc3RydWN0dXJlLT50
eXBlSW5mbygpLnR5cGUoKSA9PSBTeW1ib2xUeXBlKQorICAgIGNhc2UgU3ltYm9sVHlwZToKICAg
ICAgICAgcmV0dXJuIFNwZWNTeW1ib2w7Ci0gICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS50
eXBlKCkgPT0gRGVyaXZlZEFycmF5VHlwZSkKKyAgICBjYXNlIERlcml2ZWRBcnJheVR5cGU6CiAg
ICAgICAgIHJldHVybiBTcGVjRGVyaXZlZEFycmF5OworICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFw
cGVyVHlwZToKKyAgICAgICAgcmV0dXJuIFNwZWNET01Eb2N1bWVudFdyYXBwZXI7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKHR5cGUgPj0gRE9NRWxlbWVu
dFR5cGUpCisgICAgICAgIHJldHVybiBTcGVjRE9NRWxlbWVudDsKKyAgICBpZiAodHlwZSA+PSBE
T01Ob2RlVHlwZSkKKyAgICAgICAgcmV0dXJuIFNwZWNET01PdGhlck5vZGU7CisKICAgICByZXR1
cm4gc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCmlu
ZGV4IGY0M2RmY2QzMTU4NzFlOTg5NTNlYTJkZGRjNGJmMzM1MjVjY2RmZGYuLjRjN2JkZjdjNjhi
MjYzZjQ0NTY5YzA4NzQ2MzNhMzA3ZTQ2MTY5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5oCkBAIC01OSwyNCArNTksMjggQEAgc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNYXBPYmplY3QgICAgICAgICAgPSAxdWxsIDw8IDE2
OyAvLyBJdCdzIGRlZmluaXQKIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU2V0T2Jq
ZWN0ICAgICAgICAgID0gMXVsbCA8PCAxNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU2V0IG9iamVj
dCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY1Byb3h5T2JqZWN0ICAgICAgICA9IDF1bGwgPDwgMTg7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IFByb3h5IG9iamVjdCBvciBvbmUgb2YgaXRzIHN1YmNsYXNzZXMuCiBzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0Rlcml2ZWRBcnJheSAgICAgICA9IDF1bGwgPDwgMTk7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIERlcml2ZWRBcnJheSBvYmplY3QuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY09iamVjdE90aGVyICAgICAgICA9IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5p
dGVseSBhbiBvYmplY3QgYnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0FycmF5LCBvciBKU0Z1bmN0
aW9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3QgICAgICAgICAgICAg
PSBTcGVjRmluYWxPYmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rpb24gfCBTcGVjVHlwZWRB
cnJheVZpZXcgfCBTcGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3BlZEFyZ3VtZW50cyB8IFNw
ZWNTdHJpbmdPYmplY3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY01hcE9iamVjdCB8IFNwZWNT
ZXRPYmplY3QgfCBTcGVjUHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFycmF5IHwgU3BlY09iamVj
dE90aGVyOyAvLyBCaXRtYXNrIHVzZWQgZm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9mIG9iamVj
dCBwcmVkaWN0aW9uLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdJZGVu
dCAgICAgICAgPSAxdWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5k
IGl0J3MgYW4gaWRlbnRpZmllci4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3Ry
aW5nVmFyICAgICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJp
bmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVudGlmaWVyLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNET01Eb2N1bWVudFdyYXBwZXIgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRl
bHkgYSBET00gZG9jdW1lbnQgd3JhcHBlciBvYmplY3QuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0RPTUVsZW1lbnQgICAgICAgICA9IDF1bGwgPDwgMjE7IC8vIEl0J3MgZGVmaW5p
dGVseSBhIERPTSBlbGVtZW50IG9iamVjdC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjRE9NT3RoZXJOb2RlICAgICAgID0gMXVsbCA8PCAyMjsgLy8gSXQncyBkZWZpbml0ZWx5IGEg
RE9NIE5vZGUgb2JqZWN0IGJ1dCBub3QgRG9jdW1lbnRXcmFwcGVyIGFuZCBFbGVtZW50Lgorc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNET01Ob2RlICAgICAgICAgICAgPSBTcGVjRE9N
RG9jdW1lbnRXcmFwcGVyIHwgU3BlY0RPTUVsZW1lbnQgfCBTcGVjRE9NT3RoZXJOb2RlOworc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmplY3RPdGhlciAgICAgICAgPSAxdWxsIDw8
IDIzOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2JqZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwg
SlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
T2JqZWN0ICAgICAgICAgICAgID0gU3BlY0ZpbmFsT2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1
bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwgU3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNT
Y29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2JqZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNw
ZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwgU3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2
ZWRBcnJheSB8IFNwZWNET01Ob2RlIHwgU3BlY09iamVjdE90aGVyOyAvLyBCaXRtYXNrIHVzZWQg
Zm9yIHRlc3RpbmcgZm9yIGFueSBraW5kIG9mIG9iamVjdCBwcmVkaWN0aW9uLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdJZGVudCAgICAgICAgPSAxdWxsIDw8IDI0OyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3MgYW4gaWRlbnRpZmllci4KK3N0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nVmFyICAgICAgICAgID0gMXVsbCA8
PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIG5vdCBhbiBpZGVu
dGlmaWVyLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmcgICAgICAgICAg
ICAgPSBTcGVjU3RyaW5nSWRlbnQgfCBTcGVjU3RyaW5nVmFyOyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBKU1N0cmluZy4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAg
ICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgU3ltYm9sLgotc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsT3RoZXIgICAgICAgICAgPSAxdWxsIDw8IDI0
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwgYnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2Jq
ZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3RyaW5nIG9yIGEgU3ltYm9sLiBGSVhNRTogVGhp
cyBzaG91bGRuJ3QgYmUgcGFydCBvZiBoZWFwLXRvcCBvciBieXRlY29kZS10b3AuIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwNzgKK3N0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjU3ltYm9sICAgICAgICAgICAgID0gMXVsbCA8PCAyNjsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgU3ltYm9sLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxs
T3RoZXIgICAgICAgICAgPSAxdWxsIDw8IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwg
YnV0IG5vdCBhIHN1YmNsYXNzIG9mIEpTT2JqZWN0IGFuZCBkZWZpbml0ZWx5IG5vdCBhIEpTU3Ry
aW5nIG9yIGEgU3ltYm9sLiBGSVhNRTogVGhpcyBzaG91bGRuJ3QgYmUgcGFydCBvZiBoZWFwLXRv
cCBvciBieXRlY29kZS10b3AuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzMwNzgKIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbCAgICAgICAgICAg
ICAgID0gU3BlY09iamVjdCB8IFNwZWNTdHJpbmcgfCBTcGVjU3ltYm9sIHwgU3BlY0NlbGxPdGhl
cjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgPSAxdWxsIDw8IDI1OyAvLyBJdCdzIGRlZmluaXRl
bHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICA9IDF1bGwgPDwgMjY7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgorc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNCb29sSW50MzIgICAgICAgICAgPSAxdWxsIDw8IDI4OyAvLyBJdCdz
IGRlZmluaXRlbHkgYW4gSW50MzIgd2l0aCB2YWx1ZSAwIG9yIDEuCitzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY05vbkJvb2xJbnQzMiAgICAgICA9IDF1bGwgPDwgMjk7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIG90aGVyIHRoYW4gMCBvciAxLgogc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQzMk9ubHkgICAgICAgICAgPSBTcGVjQm9vbElu
dDMyIHwgU3BlY05vbkJvb2xJbnQzMjsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMyLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNJbnQ1Mk9ubHkgICAgICAgICAgPSAxdWxsIDw8
IDI3OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIHdlIGludGVuZCBpdCB0byB1bmJv
eCBpdC4gSXQncyBhbHNvIGRlZmluaXRlbHkgbm90IGFuIEludDMyLgorc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNJbnQ1Mk9ubHkgICAgICAgICAgPSAxdWxsIDw8IDMwOyAvLyBJdCdz
IGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIHdlIGludGVuZCBpdCB0byB1bmJveCBpdC4gSXQncyBh
bHNvIGRlZmluaXRlbHkgbm90IGFuIEludDMyLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNBbnlJbnQgICAgICAgICAgICAgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0ludDUyT25seTsg
Ly8gSXQncyBzb21ldGhpbmcgdGhhdCB3ZSBjYW4gZG8gbWFjaGluZSBpbnQgYXJpdGhtZXRpYyBv
bi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50QXNEb3VibGUgICAgID0g
MXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCBpdCdzIGluc2lkZSBh
IGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTm9uSW50QXNEb3VibGUg
ICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQ1MiBidXQgaXQn
cyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDMxOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91YmxlLgorc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdz
IGRlZmluaXRlbHkgbm90IGFuIEludDUyIGJ1dCBpdCdzIGEgcmVhbCBudW1iZXIgYW5kIGl0J3Mg
YSBkb3VibGUuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZVJlYWwgICAg
ICAgICA9IFNwZWNOb25JbnRBc0RvdWJsZSB8IFNwZWNBbnlJbnRBc0RvdWJsZTsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgbm9uLU5hTiBkb3VibGUuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0RvdWJsZVB1cmVOYU4gICAgICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IE5hTiB0aGF0IGlzIHNhZSB0byB0YWcgKGkuZS4gcHVyZSkuCi1zdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5hTiAgICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgZGVm
aW5pdGVseSBhIE5hTiB0aGF0IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4gaW1wdXJlKS4KK3N0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUHVyZU5hTiAgICAgID0gMXVsbCA8PCAz
MzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgc2FlIHRvIHRhZyAoaS5lLiBwdXJl
KS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgID0g
MXVsbCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRh
ZyAoaS5lLiBpbXB1cmUpLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVO
YU4gICAgICAgICAgPSBTcGVjRG91YmxlUHVyZU5hTiB8IFNwZWNEb3VibGVJbXB1cmVOYU47IC8v
IEl0J3MgZGVmaW5pdGVseSBzb21lIGtpbmQgb2YgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNCeXRlY29kZURvdWJsZSAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3Vi
bGVQdXJlTmFOOyAvLyBJdCdzIGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLCBidXQg
aXQncyBkZWZpbml0ZWx5IG5vdCBpbXB1cmUgTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRU
eXBlIFNwZWNGdWxsRG91YmxlICAgICAgICAgPSBTcGVjRG91YmxlUmVhbCB8IFNwZWNEb3VibGVO
YU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUuCkBAIC04NCwxMiAr
ODgsMTIgQEAgc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVJlYWxOdW1i
ZXIgPSBTcGVjSW50MzJPbmx5IHwgU3BlY0RvdWJsZVIKIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjRnVsbFJlYWxOdW1iZXIgICAgID0gU3BlY0FueUludCB8IFNwZWNEb3VibGVSZWFs
OyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZVJlYWwsIG9yIGEgSW50NTIuCiBz
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlTnVtYmVyICAgICA9IFNwZWNJ
bnQzMk9ubHkgfCBTcGVjQnl0ZWNvZGVEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyIG9y
IGEgRG91YmxlLCBhbmQgdGhlIERvdWJsZSBjYW5ub3QgYmUgYW4gaW1wdXJlIE5hTi4KIHN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVsbE51bWJlciAgICAgICAgID0gU3BlY0FueUlu
dCB8IFNwZWNGdWxsRG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiwgSW50NTIsIG9yIGEg
RG91YmxlLCBhbmQgdGhlIERvdWJsZSBjYW4gYmUgaW1wdXJlIE5hTi4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjQm9vbGVhbiAgICAgICAgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQn
cyBkZWZpbml0ZWx5IGEgQm9vbGVhbi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
T3RoZXIgICAgICAgICAgICAgID0gMXVsbCA8PCAzMzsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhl
ciBOdWxsIG9yIFVuZGVmaW5lZC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9v
bGVhbiAgICAgICAgICAgID0gMXVsbCA8PCAzNTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgQm9vbGVh
bi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT3RoZXIgICAgICAgICAgICAgID0g
MXVsbCA8PCAzNjsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBOdWxsIG9yIFVuZGVmaW5lZC4K
IHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjTWlzYyAgICAgICAgICAgICAgID0gU3Bl
Y0Jvb2xlYW4gfCBTcGVjT3RoZXI7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgYSBib29sZWFu
LCBOdWxsLCBvciBVbmRlZmluZWQuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0hl
YXBUb3AgICAgICAgICAgICA9IFNwZWNDZWxsIHwgU3BlY0J5dGVjb2RlTnVtYmVyIHwgU3BlY01p
c2M7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJbnQ1Mk9u
bHkgYW5kIFNwZWNEb3VibGVJbXB1cmVOYU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY1ByaW1pdGl2ZSAgICAgICAgICA9IFNwZWNTdHJpbmcgfCBTcGVjU3ltYm9sIHwgU3BlY0J5
dGVjb2RlTnVtYmVyIHwgU3BlY01pc2M7IC8vIEl0J3MgYW55IG5vbi1PYmplY3QgSlNWYWx1ZS4K
LXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgID0gMXVs
bCA8PCAzNDsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KK3N0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRW1wdHkgICAgICAgICAgICAgID0gMXVsbCA8PCAz
NzsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIGVtcHR5IHZhbHVlIG1hcmtlci4KIHN0YXRpYyBjb25z
dCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVUb3AgICAgICAgID0gU3BlY0hlYXBUb3AgfCBT
cGVjRW1wdHk7IC8vIEl0IGNhbiBiZSBhbnkgb2YgdGhlIGFib3ZlLCBleGNlcHQgZm9yIFNwZWNJ
bnQ1Mk9ubHkgYW5kIFNwZWNEb3VibGVJbXB1cmVOYU4uIENvcnJlc3BvbmRzIHRvIHdoYXQgY291
bGQgYmUgZm91bmQgaW4gYSBieXRlY29kZSBsb2NhbC4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjRnVsbFRvcCAgICAgICAgICAgID0gU3BlY0J5dGVjb2RlVG9wIHwgU3BlY0Z1bGxO
dW1iZXI7IC8vIEl0IGNhbiBiZSBhbnl0aGluZyB0aGF0IGJ5dGVjb2RlIGNvdWxkIHNlZSBwbHVz
IGV4b3RpYyBlbmNvZGluZ3Mgb2YgbnVtYmVycy4KIApAQCAtNDE4LDYgKzQyMiwyMSBAQCBpbmxp
bmUgYm9vbCBpc1VudHlwZWRTcGVjdWxhdGlvbkZvckJpdE9wcyhTcGVjdWxhdGVkVHlwZSB2YWx1
ZSkKICAgICByZXR1cm4gISEodmFsdWUgJiB+KFNwZWNGdWxsTnVtYmVyIHwgU3BlY0Jvb2xlYW4g
fCBTcGVjT3RoZXIpKTsKIH0KIAoraW5saW5lIGJvb2wgaXNET01Ob2RlU3BlY3VsYXRpb24oU3Bl
Y3VsYXRlZFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuICEhKHZhbHVlICYgU3BlY0RPTU5vZGUp
ICYmICEodmFsdWUgJiB+U3BlY0RPTU5vZGUpOworfQorCitpbmxpbmUgYm9vbCBpc0RPTUVsZW1l
bnRTcGVjdWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUg
PT0gU3BlY0RPTUVsZW1lbnQ7Cit9CisKK2lubGluZSBib29sIGlzRE9NRG9jdW1lbnRXcmFwcGVy
U3BlY3VsYXRpb24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVlID09
IFNwZWNET01Eb2N1bWVudFdyYXBwZXI7Cit9CisKIHZvaWQgZHVtcFNwZWN1bGF0aW9uKFByaW50
U3RyZWFtJiwgU3BlY3VsYXRlZFR5cGUpOwogdm9pZCBkdW1wU3BlY3VsYXRpb25BYmJyZXZpYXRl
ZChQcmludFN0cmVhbSYsIFNwZWN1bGF0ZWRUeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKaW5kZXggOGU4OGExNDYzNzcxMmVmYWRjNDFk
ZmQ0NDE2NDAwMjlkNTQ0ZTc3MC4uMjkwODkwZTUwMWU1Zjg1M2MwZTcwNzk1YzBhMGM0YWZiOGRh
MTk2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVj
b3ZlcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVy
eS5oCkBAIC0xNzIsNyArMTcyLDcgQEAgY2xhc3MgVmFsdWVSZWNvdmVyeSB7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNT
RVJUKGRhdGFGb3JtYXQgIT0gRGF0YUZvcm1hdE5vbmUgJiYgZGF0YUZvcm1hdCAhPSBEYXRhRm9y
bWF0U3RvcmFnZSk7CisgICAgICAgICAgICBBU1NFUlQoZGF0YUZvcm1hdCAhPSBEYXRhRm9ybWF0
Tm9uZSAmJiBkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXRTdG9yYWdlICYmIGRhdGFGb3JtYXQgIT0g
RGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXIpOwogICAgICAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVl
ID0gRGlzcGxhY2VkSW5KU1N0YWNrOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAppbmRleCA5ZGIxM2UzYTg3ZTZiNzhkYWExZTliMDEyMzMyZmExNWY1NjQ0
NDkwLi4xYWUzODk3MjcwMWY1MzEzMmE5Y2RmOWJmN2U5NGI1NTNlZWMwZDUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oCkBAIC0yMjYxLDggKzIyNjEsMTMgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkK
ICAgICBjYXNlIEdldEJ1dHRlcmZseToKICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdl
OgogICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICBjYXNlIExvYWRPcGFx
dWVQb2ludGVyOgorICAgIGNhc2UgR2V0RE9NV3JhcHBlZDoKICAgICAgICAgZm9yTm9kZShub2Rl
KS5jbGVhcigpOyAvLyBUaGUgcmVzdWx0IGlzIG5vdCBhIEpTIHZhbHVlLgogICAgICAgICBicmVh
azsKKyAgICBjYXNlIFRvRE9NV3JhcHBlcjoKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBl
KFNwZWNET01Ob2RlIHwgU3BlY090aGVyKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDaGVj
a0FycmF5OiB7CiAgICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZCht
X2dyYXBoLCBub2RlLCBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKSkpIHsKICAgICAgICAgICAgIG1f
c3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CkBAIC0yODE2LDYgKzI4MjEsNyBAQCBib29s
IEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1
bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6CiAgICAgY2Fz
ZSBDaGVja1RpZXJVcEF0UmV0dXJuOgogICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgorICAg
IGNhc2UgQ2hlY2tOb2RlRmxhZ3M6CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDcmVhdGVS
ZXN0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cAppbmRleCAwNDUyMjgwZGQyNmY0MGIwYmNhNDVkMzg1MWQxMTBkZjQxNmEwZmE3Li5lODUwZDYz
NTU5NjkxMTFjYzMxM2E3MDg1NmUzNzgyNWE4OGJkOWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2lu
Y2x1ZGUgIkRGR0Nsb2JiZXJzRXhpdFN0YXRlLmgiCiAjaW5jbHVkZSAiREZHR3JhcGguaCIKICNp
bmNsdWRlICJERkdKSVRDb2RlLmgiCisjaW5jbHVkZSAiRE9NSklUSVIuaCIKICNpbmNsdWRlICJH
ZXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKQEAgLTIxOSw2ICsyMjAsNyBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgYm9vbCBo
YW5kbGVDb25zdGFudEludGVybmFsRnVuY3Rpb24oTm9kZSogY2FsbFRhcmdldE5vZGUsIGludCBy
ZXN1bHRPcGVyYW5kLCBJbnRlcm5hbEZ1bmN0aW9uKiwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQg
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIFNwZWN1
bGF0ZWRUeXBlLCBjb25zdCBDaGVja3NGdW5jdG9yJiBpbnNlcnRDaGVja3MpOwogICAgIE5vZGUq
IGhhbmRsZVB1dEJ5T2Zmc2V0KE5vZGUqIGJhc2UsIHVuc2lnbmVkIGlkZW50aWZpZXIsIFByb3Bl
cnR5T2Zmc2V0LCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBOb2RlKiB2YWx1ZSk7
CiAgICAgTm9kZSogaGFuZGxlR2V0QnlPZmZzZXQoU3BlY3VsYXRlZFR5cGUsIE5vZGUqIGJhc2Us
IHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFByb3BlcnR5T2Zmc2V0LCBjb25zdCBJbmZlcnJl
ZFR5cGU6OkRlc2NyaXB0b3ImLCBOb2RlVHlwZSA9IEdldEJ5T2Zmc2V0KTsKKyAgICBib29sIGhh
bmRsZURPTUpJVEdldHRlcihpbnQgcmVzdWx0T3BlcmFuZCwgY29uc3QgR2V0QnlJZFZhcmlhbnQm
LCBOb2RlKiB0aGlzTm9kZSwgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbik7CiAKICAgICAvLyBD
cmVhdGUgYSBwcmVzZW5jZSBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBiYXNlZCBvbiBzb21lIGtu
b3duIG9mZnNldCBhbmQgc3RydWN0dXJlIHNldC4gRG9lcyBub3QKICAgICAvLyBjaGVjayB0aGUg
dmFsaWRpdHkgb2YgdGhlIGNvbmRpdGlvbiwgYnV0IGl0IG1heSByZXR1cm4gYSBudWxsIG9uZSBp
ZiBpdCBlbmNvdW50ZXJzIGEgY29udHJhZGljdGlvbi4KQEAgLTI2NTksNiArMjY2MSw1NyBAQCBi
b29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNHZXR0ZXIoaW50IHJlc3VsdE9wZXJh
bmQsIGNvbnN0IEdldEJ5SWRWYXJpYQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKK2Jvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZURPTUpJVEdldHRlcihpbnQgcmVzdWx0
T3BlcmFuZCwgY29uc3QgR2V0QnlJZFZhcmlhbnQmIHZhcmlhbnQsIE5vZGUqIHRoaXNOb2RlLCBT
cGVjdWxhdGVkVHlwZSkKK3sKKyAgICBpZiAoIXZhcmlhbnQuZG9tSklUKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIEhhc2hNYXA8RE9NSklUOjpJUiosIE5vZGUqPiBub2RlTWFwOwor
CisgICAgYXV0byBsb29rVXBOb2RlID0gWyZdKERPTUpJVDo6SVIqIGlyKSAtPiBOb2RlKiB7Cisg
ICAgICAgIHJldHVybiBub2RlTWFwLmdldChpcik7CisgICAgfTsKKworICAgIGF1dG8gcmVnaXN0
ZXJOb2RlID0gWyZdKERPTUpJVDo6SVIqIGlyLCBOb2RlKiBub2RlKSB7CisgICAgICAgIG5vZGVN
YXAuYWRkKGlyLCBub2RlKTsKKyAgICB9OworCisgICAgcmVnaXN0ZXJOb2RlKERPTUpJVDo6SVI6
OnRoaXNWYWx1ZSgpLCB0aGlzTm9kZSk7CisKKyAgICBmb3IgKERPTUpJVDo6SVImIGlyIDogdmFy
aWFudC5kb21KSVQoKS0+aXIoKSkgeworICAgICAgICBzd2l0Y2ggKGlyLm1fa2luZCkgeworICAg
ICAgICBjYXNlIERPTUpJVDo6S2luZDo6Q2hlY2tOb2RlOgorICAgICAgICAgICAgYWRkVG9HcmFw
aChDaGVjaywgRWRnZShsb29rVXBOb2RlKGlyLm1fY2hpbGQxKSwgRE9NTm9kZVVzZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBET01KSVQ6OktpbmQ6OkNoZWNrTm9kZUZs
YWdzOgorICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja05vZGVGbGFncywgT3BJbmZvKGlyLm1f
b3BJbmZvMSksIGxvb2tVcE5vZGUoaXIubV9jaGlsZDEpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgIGNhc2UgRE9NSklUOjpLaW5kOjpHZXRXcmFwcGVkOgorICAgICAgICAgICAgcmVn
aXN0ZXJOb2RlKCZpciwgYWRkVG9HcmFwaChHZXRET01XcmFwcGVkLCBPcEluZm8oaXIubV9vcElu
Zm8xKSwgbG9va1VwTm9kZShpci5tX2NoaWxkMSkpKTsKKyAgICAgICAgICAgIGJyZWFrOworCisg
ICAgICAgIGNhc2UgRE9NSklUOjpLaW5kOjpMb2FkUG9pbnRlcjoKKyAgICAgICAgICAgIHJlZ2lz
dGVyTm9kZSgmaXIsIGFkZFRvR3JhcGgoTG9hZE9wYXF1ZVBvaW50ZXIsIE9wSW5mbyhpci5tX29w
SW5mbzEpLCBsb29rVXBOb2RlKGlyLm1fY2hpbGQxKSkpOworICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgY2FzZSBET01KSVQ6OktpbmQ6OlRvV3JhcHBlcjoKKyAgICAgICAgICAgIHJlZ2lz
dGVyTm9kZSgmaXIsIGFkZFRvR3JhcGgoVG9ET01XcmFwcGVyLCBPcEluZm8oaXIubV9vcEluZm8x
KSwgT3BJbmZvKGlyLm1fb3BJbmZvMiksIGxvb2tVcE5vZGUoaXIubV9jaGlsZDEpLCBsb29rVXBO
b2RlKGlyLm1fY2hpbGQyKSkpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBE
T01KSVQ6OktpbmQ6OlJldHVybjoKKyAgICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIocmVz
dWx0T3BlcmFuZCksIGxvb2tVcE5vZGUoaXIubV9jaGlsZDEpKTsKKyAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgIGNhc2UgRE9NSklUOjpLaW5kOjpFeHRlcm5hbDoKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHRlbXBsYXRl
PHR5cGVuYW1lIENoZWNrc0Z1bmN0b3I+CiBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVUeXBl
ZEFycmF5Q29uc3RydWN0b3IoCiAgICAgaW50IHJlc3VsdE9wZXJhbmQsIEludGVybmFsRnVuY3Rp
b24qIGZ1bmN0aW9uLCBpbnQgcmVnaXN0ZXJPZmZzZXQsCkBAIC0zMzEyLDYgKzMzNjUsNyBAQCB2
b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVHZXRCeUlkKAogICAgIAogICAgIEFTU0VSVChnZXRC
eUlkU3RhdHVzLm51bVZhcmlhbnRzKCkgPT0gMSk7CiAgICAgR2V0QnlJZFZhcmlhbnQgdmFyaWFu
dCA9IGdldEJ5SWRTdGF0dXNbMF07CisKICAgICAgICAgICAgICAgICAKICAgICBOb2RlKiBsb2Fk
ZWRWYWx1ZSA9IGxvYWQocHJlZGljdGlvbiwgYmFzZSwgaWRlbnRpZmllck51bWJlciwgdmFyaWFu
dCk7CiAgICAgaWYgKCFsb2FkZWRWYWx1ZSkgewpAQCAtMzMyNCw2ICszMzc4LDE0IEBAIHZvaWQg
Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQoCiAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRp
b24oKS0+bm90aWNlSW5saW5lZEdldEJ5SWQoKTsKIAogICAgIEFTU0VSVCh0eXBlID09IEFjY2Vz
c1R5cGU6OkdldCB8fCAhdmFyaWFudC5jYWxsTGlua1N0YXR1cygpKTsKKworICAgIGlmICh2YXJp
YW50LmRvbUpJVCgpKSB7CisgICAgICAgIGlmIChoYW5kbGVET01KSVRHZXR0ZXIoZGVzdGluYXRp
b25PcGVyYW5kLCB2YXJpYW50LCBiYXNlLCBwcmVkaWN0aW9uKSkgeworICAgICAgICAgICAgYWRk
VG9HcmFwaChQaGFudG9tLCBsb2FkZWRWYWx1ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICB9CisKICAgICBpZiAoIXZhcmlhbnQuY2FsbExpbmtTdGF0dXMoKSAmJiB2YXJp
YW50LmludHJpbnNpYygpID09IE5vSW50cmluc2ljKSB7CiAgICAgICAgIHNldChWaXJ0dWFsUmVn
aXN0ZXIoZGVzdGluYXRpb25PcGVyYW5kKSwgbG9hZGVkVmFsdWUpOwogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDg3ZDhiNTJk
OGNkNzlmZDQ5MjRjODU4MjE0MjYxNmU3MmRhNzIzYzQuLmQ1ZGIxZDM0MTViZGVhNDc3YjEzZTEx
ZmVkYjU5YmExNjdmY2NjMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJl
cml6ZS5oCkBAIC04NDUsNiArODQ1LDEwIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgs
IE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAg
ICAgIGRlZihIZWFwTG9jYXRpb24oQ2hlY2tUeXBlSW5mb0ZsYWdzTG9jLCBKU0NlbGxfdHlwZUlu
Zm9GbGFncywgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVy
bjsKIAorICAgIGNhc2UgQ2hlY2tOb2RlRmxhZ3M6CisgICAgICAgIHJlYWQoV29ybGQpOworICAg
ICAgICByZXR1cm47CisKICAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgogICAgICAgICBy
ZWFkKEpTQ2VsbF90eXBlSW5mb0ZsYWdzKTsKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihPdmVy
cmlkZXNIYXNJbnN0YW5jZUxvYywgSlNDZWxsX3R5cGVJbmZvRmxhZ3MsIG5vZGUtPmNoaWxkMSgp
KSwgTGF6eU5vZGUobm9kZSkpOwpAQCAtODgzLDYgKzg4NywxNCBAQCB2b2lkIGNsb2JiZXJpemUo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3Qg
V3JpdGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEJ1dHRlcmZseUxvYywgSlNPYmplY3Rf
YnV0dGVyZmx5LCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0
dXJuOwogCisgICAgLy8gRklYTUU6IFByZWNpc2VseSBtb2RlbCBpdC4KKyAgICBjYXNlIExvYWRP
cGFxdWVQb2ludGVyOgorICAgIGNhc2UgR2V0RE9NV3JhcHBlZDoKKyAgICBjYXNlIFRvRE9NV3Jh
cHBlcjoKKyAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgIHdyaXRlKEhlYXApOworICAgICAg
ICByZXR1cm47CisKICAgICBjYXNlIEFycmF5aWZ5OgogICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVj
dHVyZToKICAgICAgICAgcmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyc0V4aXRTdGF0ZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJzRXhpdFN0YXRlLmNwcAppbmRleCBiZDMzOWI4
OWE1MTI0YjNmNzQ3M2FhMTJhN2Q0MDg5NjBiMGNlZmYzLi5jM2UzOGUyMDg3NmVlZDE3NWIxZjVh
MzlkMjU3ZmY2OTIxY2UwZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJzRXhpdFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJzRXhpdFN0YXRlLmNwcApAQCAtNjksNiArNjksOCBAQCBib29sIGNsb2JiZXJz
RXhpdFN0YXRlKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFJlYWxsb2NhdGVQ
cm9wZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBTdG9yZUJhcnJpZXI6CiAgICAgY2FzZSBGZW5jZWRT
dG9yZUJhcnJpZXI6CisgICAgY2FzZSBHZXRET01XcmFwcGVkOgorICAgIGNhc2UgTG9hZE9wYXF1
ZVBvaW50ZXI6CiAgICAgICAgIC8vIFRoZXNlIGRvIGNsb2JiZXIgbWVtb3J5LCBidXQgbm90aGlu
ZyB0aGF0IGlzIG9ic2VydmFibGUuIEl0IG1heSBiZSBuaWNlIHRvIHNlcGFyYXRlIHRoZQogICAg
ICAgICAvLyBoZWFwcyBpbnRvIHRob3NlIHRoYXQgYXJlIG9ic2VydmFibGUgYW5kIHRob3NlIHRo
YXQgYXJlbid0LCBidXQgd2UgZG9uJ3QgZG8gdGhhdCByaWdodCBub3cuCiAgICAgICAgIC8vIEZJ
WE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4NDQwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggMGFkNTRmZWUyZmYzOWQ4ODU3
MGIxNzc2NzgxZjI0MTk2MDlmZGNkYS4uN2I1YTc3NDhkMzgzNDgxNzY2NGRlMWE2ZmQ3YzI0M2Q4
NGViN2RkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0Mu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTE2
LDYgKzExNiw5IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBj
YXNlIENoZWNrU3RydWN0dXJlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBjYXNlIEdl
dEJ1dHRlcmZseToKKyAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgorICAgIGNhc2UgR2V0RE9N
V3JhcHBlZDoKKyAgICBjYXNlIFRvRE9NV3JhcHBlcjoKICAgICBjYXNlIENoZWNrQXJyYXk6CiAg
ICAgY2FzZSBHZXRTY29wZToKICAgICBjYXNlIFNraXBTY29wZToKQEAgLTIwMyw2ICsyMDYsNyBA
QCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDb25zdGFu
dFN0b3JhZ2VQb2ludGVyOgogICAgIGNhc2UgQ2hlY2s6CiAgICAgY2FzZSBDaGVja1R5cGVJbmZv
RmxhZ3M6CisgICAgY2FzZSBDaGVja05vZGVGbGFnczoKICAgICBjYXNlIE11bHRpR2V0QnlPZmZz
ZXQ6CiAgICAgY2FzZSBWYWx1ZVJlcDoKICAgICBjYXNlIERvdWJsZVJlcDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDVhZDZhZmQ0N2I0ODI1MDM5
MDI0Mzc1OTgxOTg2MzZkZmFhMTE4MDAuLjAwYjA5ZmMzNGRmZDFkNzYxMjVkMmI2NWM5ZTEwNjQx
NDA5NDk2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNw
cApAQCAtMTI0NCw3ICsxMjQ0LDggQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7
CiAgICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxsOgog
ICAgICAgICBjYXNlIENyZWF0ZVRoaXM6Ci0gICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OiB7Cisg
ICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgorICAgICAgICBjYXNlIEdldERPTVdyYXBwZWQ6IHsK
ICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE2MDMsNiArMTYwNCwxMCBAQCBjbGFzcyBGaXh1cFBo
YXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4obm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBUb0RPTVdy
YXBwZXI6CisgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgICAgICAvLyBIYXZl
IHRoZXNlIG5vLW9wIGNhc2VzIGhlcmUgdG8gZW5zdXJlIHRoYXQgbm9ib2R5IGZvcmdldHMgdG8g
YWRkIGhhbmRsZXJzIGZvciBuZXcgb3Bjb2Rlcy4KICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoK
QEAgLTE2MjEsNiArMTYyNiw3IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2Ugewog
ICAgICAgICBjYXNlIE5vdGlmeVdyaXRlOgogICAgICAgICBjYXNlIENhbGw6CiAgICAgICAgIGNh
c2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgorICAgICAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgogICAg
ICAgICBjYXNlIFRhaWxDYWxsSW5saW5lZENhbGxlcjoKICAgICAgICAgY2FzZSBDb25zdHJ1Y3Q6
CiAgICAgICAgIGNhc2UgQ2FsbFZhcmFyZ3M6CkBAIC0xNjcxLDYgKzE2NzcsNyBAQCBjbGFzcyBG
aXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgY2FzZSBQdXRCeVZhbFdpdGhUaGlz
OgogICAgICAgICBjYXNlIEdldEJ5VmFsV2l0aFRoaXM6CiAgICAgICAgIGNhc2UgQ29tcGFyZUVx
UHRyOgorICAgICAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oCmluZGV4IGU5ZGY4NDEwNjg1MjU4YzY0OTM3YWY0
ZTZlMzZlNWUwMDc3NmRlOTAuLjM4MmRlYTFjNjIyZmIzYzU0NDBkYjhkOGQxMGVlN2U4YmE3ODAw
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR2VuZXJhdGlvbklu
Zm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dlbmVyYXRpb25JbmZvLmgK
QEAgLTE0Niw2ICsxNDYsMTEgQEAgY2xhc3MgR2VuZXJhdGlvbkluZm8gewogICAgIHsKICAgICAg
ICAgaW5pdEdQUihub2RlLCB1c2VDb3VudCwgZ3ByLCBEYXRhRm9ybWF0U3RvcmFnZSk7CiAgICAg
fQorICAgIHZvaWQgaW5pdE9wYXF1ZVBvaW50ZXIoTm9kZSogbm9kZSwgdWludDMyX3QgdXNlQ291
bnQsIEdQUlJlZyBncHIpCisgICAgeworICAgICAgICBpbml0R1BSKG5vZGUsIHVzZUNvdW50LCBn
cHIsIERhdGFGb3JtYXRPcGFxdWVQb2ludGVyKTsKKyAgICB9CisKIAogICAgIC8vIEdldCB0aGUg
bm9kZSB0aGF0IHByb2R1Y2VkIHRoaXMgdmFsdWUuCiAgICAgTm9kZSogbm9kZSgpIHsgcmV0dXJu
IG1fbm9kZTsgfQpAQCAtMzcxLDYgKzM3NiwxMCBAQCBjbGFzcyBHZW5lcmF0aW9uSW5mbyB7CiAg
ICAgewogICAgICAgICBmaWxsR1BSKHN0cmVhbSwgZ3ByLCBEYXRhRm9ybWF0U3RvcmFnZSk7CiAg
ICAgfQorICAgIHZvaWQgZmlsbE9wYXF1ZVBvaW50ZXIoVmFyaWFibGVFdmVudFN0cmVhbSYgc3Ry
ZWFtLCBHUFJSZWcgZ3ByKQorICAgIHsKKyAgICAgICAgZmlsbEdQUihzdHJlYW0sIGdwciwgRGF0
YUZvcm1hdE9wYXF1ZVBvaW50ZXIpOworICAgIH0KIAogICAgIGJvb2wgYWxpdmUoKQogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggNGJhZTlhZTk2MzYwOWMzZjM3MzA2
YjE0ZjU3MmYyYjRmYWM1NzQ0Yi4uNTJjZjE1ZGRkOTJkZWNhNzhiNGE4MzMyMTgxZjYwNTY2YjUx
Zjc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTU4LDYgKzU4LDEwIEBA
CiAKIG5hbWVzcGFjZSBKU0MgewogCituYW1lc3BhY2UgRE9NSklUIHsKK2NsYXNzIEdyYXBoOwor
fQorCiBuYW1lc3BhY2UgUHJvZmlsZXIgewogY2xhc3MgRXhlY3V0aW9uQ291bnRlcjsKIH0KQEAg
LTEyMTUsNiArMTIxOSwxMSBAQCBzdHJ1Y3QgTm9kZSB7CiAgICAgewogICAgICAgICByZXR1cm4g
cmVzdWx0KCkgPT0gTm9kZVJlc3VsdFN0b3JhZ2U7CiAgICAgfQorCisgICAgYm9vbCBoYXNPcGFx
dWVQb2ludGVyUmVzdWx0KCkKKyAgICB7CisgICAgICAgIHJldHVybiByZXN1bHQoKSA9PSBOb2Rl
UmVzdWx0T3BhcXVlUG9pbnRlcjsKKyAgICB9CiAgICAgCiAgICAgVXNlS2luZCBkZWZhdWx0VXNl
S2luZCgpCiAgICAgewpAQCAtMjI1OSw2ICsyMjY4LDIxIEBAIHN0cnVjdCBOb2RlIHsKICAgICB7
CiAgICAgICAgIHJldHVybiBvcDEtPnNob3VsZFNwZWN1bGF0ZUFycmF5KCkgJiYgb3AyLT5zaG91
bGRTcGVjdWxhdGVBcnJheSgpOwogICAgIH0KKworICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlRE9N
Tm9kZSgpCisgICAgeworICAgICAgICByZXR1cm4gaXNET01Ob2RlU3BlY3VsYXRpb24ocHJlZGlj
dGlvbigpKTsKKyAgICB9CisKKyAgICBib29sIHNob3VsZFNwZWN1bGF0ZURPTUVsZW1lbnQoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGlzRE9NRWxlbWVudFNwZWN1bGF0aW9uKHByZWRpY3Rpb24o
KSk7CisgICAgfQorCisgICAgYm9vbCBzaG91bGRTcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzRE9NRG9jdW1lbnRXcmFwcGVyU3BlY3VsYXRpb24o
cHJlZGljdGlvbigpKTsKKyAgICB9CiAgICAgCiAgICAgYm9vbCBjYW5TcGVjdWxhdGVJbnQzMihS
YXJlQ2FzZVByb2ZpbGluZ1NvdXJjZSBzb3VyY2UpCiAgICAgewpAQCAtMjMwOCw3ICsyMzMyLDQy
IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgQVNTRVJUKGhhc0Jhc2ljQmxvY2tMb2NhdGlvbigp
KTsKICAgICAgICAgcmV0dXJuIG1fb3BJbmZvLmFzPEJhc2ljQmxvY2tMb2NhdGlvbio+KCk7CiAg
ICAgfQotICAgIAorCisgICAgYm9vbCBoYXNPcGFxdWVQb2ludGVyT2Zmc2V0KCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBvcCgpID09IExvYWRPcGFxdWVQb2ludGVyIHx8IG9wKCkgPT0gR2V0RE9N
V3JhcHBlZCB8fCBvcCgpID09IENoZWNrTm9kZUZsYWdzIHx8IG9wKCkgPT0gVG9ET01XcmFwcGVy
OworICAgIH0KKworICAgIHB0cmRpZmZfdCBvcGFxdWVQb2ludGVyT2Zmc2V0KCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChoYXNPcGFxdWVQb2ludGVyT2Zmc2V0KCkpOworICAgICAgICByZXR1cm4g
bV9vcEluZm8uYXM8cHRyZGlmZl90PigpOworICAgIH0KKworICAgIGJvb2wgaGFzTm9kZUZsYWdz
T3BlcmFuZCgpCisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBDaGVja05vZGVGbGFnczsK
KyAgICB9CisKKyAgICB1aW50MzJfdCBub2RlRmxhZ3NPcGVyYW5kKCkKKyAgICB7CisgICAgICAg
IEFTU0VSVChoYXNOb2RlRmxhZ3NPcGVyYW5kKCkpOworICAgICAgICByZXR1cm4gbV9vcEluZm8y
LmFzPHVpbnQzMl90PigpOworICAgIH0KKworICAgIGJvb2wgaGFzU2xvd1RvSlNPcGVyYXRpb24o
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkgPT0gVG9ET01XcmFwcGVyOworICAgIH0KKwor
ICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpUb0pTT3BlcmF0aW9uKShKU0M6OkV4ZWNTdGF0
ZSosIHZvaWQqLCB2b2lkKik7CisKKyAgICBUb0pTT3BlcmF0aW9uIHNsb3dUb0pTT3BlcmF0aW9u
KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChoYXNTbG93VG9KU09wZXJhdGlvbigpKTsKKyAgICAg
ICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxUb0pTT3BlcmF0aW9uPihtX29wSW5mbzIuYXM8dWludHB0
cl90PigpKTsKKyAgICB9CisKICAgICBOb2RlKiByZXBsYWNlbWVudCgpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gbV9taXNjLnJlcGxhY2VtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlRmxhZ3MuY3BwCmluZGV4IDM0MDg0MjE5MDIwZjExMjFjNGQ4ZWRiYjQ2YjNk
ZTY4YWMyOTIwNmYuLmE0MDNmZDQyM2IyMDc1NzJjOWNhYzJmYjExOWNmYmY0YzZjOWRkMTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5jcHAKQEAgLTYyLDYgKzYy
LDkgQEAgdm9pZCBkdW1wTm9kZUZsYWdzKFByaW50U3RyZWFtJiBhY3R1YWxPdXQsIE5vZGVGbGFn
cyBmbGFncykKICAgICAgICAgY2FzZSBOb2RlUmVzdWx0U3RvcmFnZToKICAgICAgICAgICAgIG91
dC5wcmludChjb21tYSwgIlN0b3JhZ2UiKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE5vZGVSZXN1bHRPcGFxdWVQb2ludGVyOgorICAgICAgICAgICAgb3V0LnByaW50KGNvbW1h
LCAiT3BhcXVlUG9pbnRlciIpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFn
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaAppbmRleCA0YWJh
ZGRmMjQ5M2M2M2Y1NDA2NWNkMzAxYTM0YmJjNjcwZGJmZDFhLi41NDcxOGFjNTI3NDNiY2JjN2Q3
ODEzZmQxZmMzNzgyZjhiODUzMTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGVGbGFncy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZUZsYWdzLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogCiAvLyBFbnRyaWVzIGluIHRoZSBOb2RlVHlwZSBlbnVtIChiZWxvdykgYXJlIGNvbXBvc2Vk
IG9mIGFuIGlkLCBhIHJlc3VsdCB0eXBlIChwb3NzaWJseSBub25lKQogLy8gYW5kIHNvbWUgYWRk
aXRpb25hbCBpbmZvcm1hdGl2ZSBmbGFncyAobXVzdCBnZW5lcmF0ZSwgaXMgY29uc3RhbnQsIGV0
YykuCi0jZGVmaW5lIE5vZGVSZXN1bHRNYXNrICAgICAgICAgICAgICAgICAgIDB4MDAwNworI2Rl
ZmluZSBOb2RlUmVzdWx0TWFzayAgICAgICAgICAgICAgICAgICAweDAwMGYKICNkZWZpbmUgTm9k
ZVJlc3VsdEpTICAgICAgICAgICAgICAgICAgICAgMHgwMDAxCiAjZGVmaW5lIE5vZGVSZXN1bHRO
dW1iZXIgICAgICAgICAgICAgICAgIDB4MDAwMgogI2RlZmluZSBOb2RlUmVzdWx0RG91YmxlICAg
ICAgICAgICAgICAgICAweDAwMDMKQEAgLTQyLDM1ICs0MiwzNiBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAjZGVmaW5lIE5vZGVSZXN1bHRJbnQ1MiAgICAgICAgICAgICAgICAg
IDB4MDAwNQogI2RlZmluZSBOb2RlUmVzdWx0Qm9vbGVhbiAgICAgICAgICAgICAgICAweDAwMDYK
ICNkZWZpbmUgTm9kZVJlc3VsdFN0b3JhZ2UgICAgICAgICAgICAgICAgMHgwMDA3CisjZGVmaW5l
IE5vZGVSZXN1bHRPcGFxdWVQb2ludGVyICAgICAgICAgIDB4MDAwOAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKLSNkZWZpbmUgTm9kZU11c3RHZW5lcmF0ZSAgICAgICAgICAgICAg
ICAgMHgwMDA4IC8vIHNldCBvbiBub2RlcyB0aGF0IGhhdmUgc2lkZSBlZmZlY3RzLCBhbmQgbWF5
IG5vdCB0cml2aWFsbHkgYmUgcmVtb3ZlZCBieSBEQ0UuCi0jZGVmaW5lIE5vZGVIYXNWYXJBcmdz
ICAgICAgICAgICAgICAgICAgIDB4MDAxMAorI2RlZmluZSBOb2RlTXVzdEdlbmVyYXRlICAgICAg
ICAgICAgICAgICAweDAwMTAgLy8gc2V0IG9uIG5vZGVzIHRoYXQgaGF2ZSBzaWRlIGVmZmVjdHMs
IGFuZCBtYXkgbm90IHRyaXZpYWxseSBiZSByZW1vdmVkIGJ5IERDRS4KKyNkZWZpbmUgTm9kZUhh
c1ZhckFyZ3MgICAgICAgICAgICAgICAgICAgMHgwMDIwCiAgICAgCi0jZGVmaW5lIE5vZGVCZWhh
dmlvck1hc2sgICAgICAgICAgICAgICAgIDB4MDdlMAotI2RlZmluZSBOb2RlTWF5SGF2ZURvdWJs
ZVJlc3VsdCAgICAgICAgICAweDAwMjAKLSNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50NTIgICAg
ICAgICAgICAgMHgwMDQwCi0jZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDMySW5CYXNlbGluZSAg
IDB4MDA4MAotI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluREZHICAgICAgICAweDAxMDAK
LSNkZWZpbmUgTm9kZU1heU5lZ1plcm9JbkJhc2VsaW5lICAgICAgICAgMHgwMjAwCi0jZGVmaW5l
IE5vZGVNYXlOZWdaZXJvSW5ERkcgICAgICAgICAgICAgIDB4MDQwMAotI2RlZmluZSBOb2RlTWF5
SGF2ZU5vbk51bWJlclJlc3VsdCAgICAgICAweDA4MDAKKyNkZWZpbmUgTm9kZUJlaGF2aW9yTWFz
ayAgICAgICAgICAgICAgICAgMHgwZmMwCisjZGVmaW5lIE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0
ICAgICAgICAgIDB4MDA0MAorI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiAgICAgICAgICAg
ICAweDAwODAKKyNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMTAw
CisjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgICAgICAgIDB4MDIwMAorI2RlZmlu
ZSBOb2RlTWF5TmVnWmVyb0luQmFzZWxpbmUgICAgICAgICAweDA0MDAKKyNkZWZpbmUgTm9kZU1h
eU5lZ1plcm9JbkRGRyAgICAgICAgICAgICAgMHgwODAwCisjZGVmaW5lIE5vZGVNYXlIYXZlTm9u
TnVtYmVyUmVzdWx0ICAgICAgIDB4MTAwMAogI2RlZmluZSBOb2RlTWF5SGF2ZU5vbkludFJlc3Vs
dCAgICAgICAgICAoTm9kZU1heUhhdmVEb3VibGVSZXN1bHQgfCBOb2RlTWF5SGF2ZU5vbk51bWJl
clJlc3VsdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0jZGVmaW5lIE5vZGVC
eXRlY29kZUJhY2tQcm9wTWFzayAgICAgICAgMHgxZjAwMAorI2RlZmluZSBOb2RlQnl0ZWNvZGVC
YWNrUHJvcE1hc2sgICAgICAgIDB4M2UwMDAKICNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlQm90dG9t
ICAgICAgICAgICAweDAwMDAwCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051bWJlciAgICAg
ICAgMHgwMTAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQg
aW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2VyLXRoYW4taW50
MzIsIHJlc3VsdHMuCi0jZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAgICAgICAgMHgw
MjAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVzZWQgaW4gYSBj
b250ZXh0IHRoYXQgb2JzZXJ2ZXMgLTAuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc090aGVy
ICAgICAgICAgMHgwNDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJl
IHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5hTiBhbmQgb3Ro
ZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc051
bWJlciAgICAgICAgMHgwMjAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5
IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgZnJhY3Rpb25hbCwgb3IgYmlnZ2Vy
LXRoYW4taW50MzIsIHJlc3VsdHMuCisjZGVmaW5lIE5vZGVCeXRlY29kZU5lZWRzTmVnWmVybyAg
ICAgICAgMHgwNDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gbWF5IGJlIHVz
ZWQgaW4gYSBjb250ZXh0IHRoYXQgb2JzZXJ2ZXMgLTAuCisjZGVmaW5lIE5vZGVCeXRlY29kZVVz
ZXNBc090aGVyICAgICAgICAgMHgwODAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRp
b24gbWF5IGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIE5h
TiBhbmQgb3RoZXIgdGhpbmdzIChsaWtlIHVuZGVmaW5lZCkuCiAjZGVmaW5lIE5vZGVCeXRlY29k
ZVVzZXNBc1ZhbHVlICAgICAgICAgKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRl
Y29kZU5lZWRzTmVnWmVybyB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKQotI2RlZmluZSBOb2Rl
Qnl0ZWNvZGVVc2VzQXNJbnQgICAgICAgICAgIDB4MDgwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlz
IGNvbXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVy
cywgYnV0IGRvZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgotI2RlZmluZSBOb2RlQnl0
ZWNvZGVVc2VzQXNBcnJheUluZGV4ICAgIDB4MTAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNv
bXB1dGF0aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkg
cHJlZmVycyBpbnRlZ2VyIHZhbHVlcywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lk
IHVzaW5nIGRvdWJsZXMgaWYgYXQgYWxsIHBvc3NpYmxlLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVV
c2VzQXNJbnQgICAgICAgICAgIDB4MTAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0
aW9uIGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgcHJlZmVycywgYnV0IGRv
ZXMgbm90IHJlcXVpcmUsIGludGVnZXIgdmFsdWVzLgorI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2Vz
QXNBcnJheUluZGV4ICAgIDB4MjAwMDAgLy8gVGhlIHJlc3VsdCBvZiB0aGlzIGNvbXB1dGF0aW9u
IGlzIGtub3duIHRvIGJlIHVzZWQgaW4gYSBjb250ZXh0IHRoYXQgc3Ryb25nbHkgcHJlZmVycyBp
bnRlZ2VyIHZhbHVlcywgdG8gdGhlIHBvaW50IHRoYXQgd2Ugc2hvdWxkIGF2b2lkIHVzaW5nIGRv
dWJsZXMgaWYgYXQgYWxsIHBvc3NpYmxlLgogCiAjZGVmaW5lIE5vZGVBcml0aEZsYWdzTWFzayAg
ICAgICAgICAgICAgIChOb2RlQmVoYXZpb3JNYXNrIHwgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNr
KQogCi0jZGVmaW5lIE5vZGVJc0ZsdXNoZWQgICAgICAgICAgICAgICAgICAgMHgyMDAwMCAvLyBD
b21wdXRlZCBieSBDUFNSZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91IHdoaWNoIGxvY2Fs
IG5vZGVzIGFyZSBiYWNrd2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4KKyNkZWZpbmUgTm9k
ZUlzRmx1c2hlZCAgICAgICAgICAgICAgICAgICAweDA0MDAwMCAvLyBDb21wdXRlZCBieSBDUFNS
ZXRocmVhZGluZ1BoYXNlLCB3aWxsIHRlbGwgeW91IHdoaWNoIGxvY2FsIG5vZGVzIGFyZSBiYWNr
d2FyZHMtcmVhY2hhYmxlIGZyb20gYSBGbHVzaC4KIAotI2RlZmluZSBOb2RlTWlzY0ZsYWcxICAg
ICAgICAgICAgICAgICAgIDB4NDAwMDAKLSNkZWZpbmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAg
ICAgICAgICAweDgwMDAwCisjZGVmaW5lIE5vZGVNaXNjRmxhZzEgICAgICAgICAgICAgICAgICAg
MHgwODAwMDAKKyNkZWZpbmUgTm9kZU1pc2NGbGFnMiAgICAgICAgICAgICAgICAgICAweDEwMDAw
MAogCiB0eXBlZGVmIHVpbnQzMl90IE5vZGVGbGFnczsKIApAQCAtMTY0LDYgKzE2NSw3IEBAIHN0
YXRpYyBpbmxpbmUgTm9kZUZsYWdzIGNhbm9uaWNhbFJlc3VsdFJlcHJlc2VudGF0aW9uKE5vZGVG
bGFncyBmbGFncykKICAgICBjYXNlIE5vZGVSZXN1bHREb3VibGU6CiAgICAgY2FzZSBOb2RlUmVz
dWx0SW50NTI6CiAgICAgY2FzZSBOb2RlUmVzdWx0U3RvcmFnZToKKyAgICBjYXNlIE5vZGVSZXN1
bHRPcGFxdWVQb2ludGVyOgogICAgICAgICByZXR1cm4gZmxhZ3M7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgcmV0dXJuIE5vZGVSZXN1bHRKUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZVR5cGUuaAppbmRleCA4YjRkOWYwYzMwOWE3YzE4OWQ2NTIyNzY5YjA3ZDUyOTRkNjZjNGZkLi42
ZmUwYjMwZDA5NmU5MTE0N2UyZTU0NjA4YWU5YTdkNDc4Yzc5MWEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0zOTQsNiArMzk0LDEyIEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhHZXRNYXBCdWNrZXQsIE5vZGVSZXN1bHRK
UykgXAogICAgIG1hY3JvKExvYWRGcm9tSlNNYXBCdWNrZXQsIE5vZGVSZXN1bHRKUykgXAogICAg
IG1hY3JvKElzTm9uRW1wdHlNYXBCdWNrZXQsIE5vZGVSZXN1bHRCb29sZWFuKSBcCisgICAgXAor
ICAgIC8qIE5vZGVzIGZvciBET00gSklUICovXAorICAgIG1hY3JvKExvYWRPcGFxdWVQb2ludGVy
LCBOb2RlUmVzdWx0T3BhcXVlUG9pbnRlcikgXAorICAgIG1hY3JvKENoZWNrTm9kZUZsYWdzLCBO
b2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oVG9ET01XcmFwcGVyLCBOb2RlUmVzdWx0SlMp
IFwKKyAgICBtYWNybyhHZXRET01XcmFwcGVkLCBOb2RlUmVzdWx0T3BhcXVlUG9pbnRlcikgXAog
CiAvLyBUaGlzIGVudW0gZ2VuZXJhdGVzIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGlkIGZv
ciBhbGwgTm9kZSB0eXBlcywKIC8vIGFuZCBpcyB1c2VkIGJ5IHRoZSBzdWJzZXF1ZW50IGVudW0g
dG8gZmlsbCBvdXQgdGhlIGlkIChhcyBhY2Nlc3NlZCB2aWEgdGhlIE5vZGVJZE1hc2spLgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcAppbmRleCBiYWZkZjkwNmViZjZmNzMwN2NhZjQwZjZiODVjMTFiMDEx
OWUxZjIyLi4yNzQ1NzBjY2Y5ZmY2YjViZjAyZTU5MTAyYjYxNGI0ZGE3ZTU3MTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcApAQCAtODE5LDYgKzgxOSwxNiBAQCBjbGFzcyBQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogCisgICAgICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CisgICAgICAgIGNhc2UgR2V0
RE9NV3JhcHBlZDoKKyAgICAgICAgICAgIHNldFByZWRpY3Rpb24oU3BlY090aGVyKTsKKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIEZJWE1FOiBNb2RlbCBwcmVjaXNlbHkuCisgICAg
ICAgIGNhc2UgVG9ET01XcmFwcGVyOgorICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjRE9N
Tm9kZSB8IFNwZWNPdGhlcik7CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBjYXNlIENh
bGxPYmplY3RDb25zdHJ1Y3RvcjogewogICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjT2Jq
ZWN0KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTA1OCw2ICsxMDY4LDcgQEAgY2xhc3MgUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIFB1
dFN0cnVjdHVyZToKICAgICAgICAgY2FzZSBQaGFudG9tOgogICAgICAgICBjYXNlIENoZWNrOgor
ICAgICAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgogICAgICAgICBjYXNlIFB1dEdsb2JhbFZhcmlh
YmxlOgogICAgICAgICBjYXNlIENoZWNrV2F0Y2hkb2dUaW1lcjoKICAgICAgICAgY2FzZSBMb2dT
aGFkb3dDaGlja2VuUHJvbG9ndWU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZVRvRXhlY3V0ZS5oCmluZGV4IGJkZGQ0NjYwMTdlOWY4N2I2YzAzNTQ0MGNkOGFmMTQ3Yjg2NWRm
NGYuLjYwMThmNTJhZGY4YWY3MjM3ZmQ3M2VhYWNmYmQ2MTUwOWE0MDBlNTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC01OSw2ICs1OSw5IEBA
IGNsYXNzIFNhZmVUb0V4ZWN1dGVFZGdlIHsKICAgICAgICAgY2FzZSBGaW5hbE9iamVjdFVzZToK
ICAgICAgICAgY2FzZSBSZWdFeHBPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgUHJveHlPYmplY3RV
c2U6CisgICAgICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAgY2FzZSBET01FbGVtZW50VXNl
OgorICAgICAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKICAgICAgICAgY2FzZSBEZXJp
dmVkQXJyYXlVc2U6CiAgICAgICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFNl
dE9iamVjdFVzZToKQEAgLTIxNiw2ICsyMTksOSBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJh
Y3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBD
aGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBHZXRCdXR0
ZXJmbHk6CisgICAgY2FzZSBMb2FkT3BhcXVlUG9pbnRlcjoKKyAgICBjYXNlIEdldERPTVdyYXBw
ZWQ6CisgICAgY2FzZSBUb0RPTVdyYXBwZXI6CiAgICAgY2FzZSBDaGVja0FycmF5OgogICAgIGNh
c2UgQXJyYXlpZnk6CiAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgpAQCAtMjU5LDYgKzI2
NSw3IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNhc2UgUHJv
ZmlsZUNvbnRyb2xGbG93OgogICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgorICAgIGNhc2Ug
Q2hlY2tOb2RlRmxhZ3M6CiAgICAgY2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKICAgICBjYXNl
IEluc3RhbmNlT2Y6CiAgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAxMGVmYjcyMDQzZjFh
Yzg3NzAxYWJkODZmOWVjY2ExYWRmOGQzN2IxLi4xYmQxNWVhM2FhZmNmZTg2NzA3OTFlNjFlNzZm
OTM4ZjUwNzYzYjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcApAQCAtNDI0LDcgKzQyNCw3IEBAIFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4g
U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGls
CiAgICAgICAgIEFTU0VSVChpbmZvLmdwcigpID09IHNvdXJjZSk7CiAgICAgICAgIGlmIChyZWdp
c3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50MzIpCiAgICAgICAgICAgICBzcGlsbEFjdGlvbiA9
IFN0b3JlMzJQYXlsb2FkOwotICAgICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRh
Rm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFnZSkKKyAgICAg
ICAgZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwgfHwgcmVnaXN0ZXJG
b3JtYXQgPT0gRGF0YUZvcm1hdFN0b3JhZ2UgfHwgcmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1h
dE9wYXF1ZVBvaW50ZXIpCiAgICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlUHRyOwogICAg
ICAgICBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50NTIgfHwgcmVnaXN0
ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0cmljdEludDUyKQogICAgICAgICAgICAgc3BpbGxBY3Rp
b24gPSBTdG9yZTY0OwpAQCAtNDc4LDcgKzQ3OCw3IEBAIFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4g
U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQbGFuRm9yR1BSKFZpcnR1YWxSZWdpc3RlciBzcGls
CiAgICAgICAgICAgICBmaWxsQWN0aW9uID0gTG9hZDMyUGF5bG9hZDsKICNlbmRpZgogICAgICAg
ICB9Ci0gICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFnZSkg
eworICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdFN0b3JhZ2UgfHwg
cmVnaXN0ZXJGb3JtYXQgPT0gRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXIpIHsKICAgICAgICAgQVNT
RVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKICAgICAgICAgZmlsbEFjdGlvbiA9IExvYWRQdHI7
CiAgICAgfSBlbHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0SW50NTIpIHsKQEAg
LTk2MCw2ICs5NjAsMzYgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3RvcmFnZShFZGdl
IGVkZ2UpCiAgICAgfQogfQogCitHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxPcGFxdWVQb2lu
dGVyKEVkZ2UgZWRnZSkKK3sKKyAgICBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyID0g
ZWRnZS0+dmlydHVhbFJlZ2lzdGVyKCk7CisgICAgR2VuZXJhdGlvbkluZm8mIGluZm8gPSBnZW5l
cmF0aW9uSW5mb0Zyb21WaXJ0dWFsUmVnaXN0ZXIodmlydHVhbFJlZ2lzdGVyKTsKKyAgICAKKyAg
ICBzd2l0Y2ggKGluZm8ucmVnaXN0ZXJGb3JtYXQoKSkgeworICAgIGNhc2UgRGF0YUZvcm1hdE5v
bmU6IHsKKyAgICAgICAgaWYgKGluZm8uc3BpbGxGb3JtYXQoKSA9PSBEYXRhRm9ybWF0T3BhcXVl
UG9pbnRlcikgeworICAgICAgICAgICAgR1BSUmVnIGdwciA9IGFsbG9jYXRlKCk7CisgICAgICAg
ICAgICBtX2dwcnMucmV0YWluKGdwciwgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVyU3BpbGxl
ZCk7CisgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHZp
cnR1YWxSZWdpc3RlciksIGdwcik7CisgICAgICAgICAgICBpbmZvLmZpbGxPcGFxdWVQb2ludGVy
KCptX3N0cmVhbSwgZ3ByKTsKKyAgICAgICAgICAgIHJldHVybiBncHI7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIC8vIE11c3QgYmUgYSBjZWxsOyBmaWxsIGl0IGFzIGEgY2VsbCBhbmQg
dGhlbiByZXR1cm4gdGhlIHBvaW50ZXIuCisgICAgICAgIHJldHVybiBmaWxsU3BlY3VsYXRlQ2Vs
bChlZGdlKTsKKyAgICB9CisgICAgICAgIAorICAgIGNhc2UgRGF0YUZvcm1hdE9wYXF1ZVBvaW50
ZXI6IHsKKyAgICAgICAgR1BSUmVnIGdwciA9IGluZm8uZ3ByKCk7CisgICAgICAgIG1fZ3Bycy5s
b2NrKGdwcik7CisgICAgICAgIHJldHVybiBncHI7CisgICAgfQorICAgICAgICAKKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gZmlsbFNwZWN1bGF0ZUNlbGwoZWRnZSk7CisgICAgfQorfQor
CiB2b2lkIFNwZWN1bGF0aXZlSklUOjp1c2VDaGlsZHJlbihOb2RlKiBub2RlKQogewogICAgIGlm
IChub2RlLT5mbGFncygpICYgTm9kZUhhc1ZhckFyZ3MpIHsKQEAgLTIxMDUsNiArMjEzNSw3IEBA
IEdlbmVyYXRlZE9wZXJhbmRUeXBlIFNwZWN1bGF0aXZlSklUOjpjaGVja0dlbmVyYXRlZFR5cGVG
b3JUb0ludDMyKE5vZGUqIG5vZGUpCiAKICAgICBzd2l0Y2ggKGluZm8ucmVnaXN0ZXJGb3JtYXQo
KSkgewogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgY2FzZSBEYXRhRm9ybWF0T3Bh
cXVlUG9pbnRlcjoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAg
IGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46CkBAIC0zMDU0LDYgKzMwODUsMTcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrVHlwZUluZm9GbGFncyhOb2RlKiBub2RlKQogICAgIG5v
UmVzdWx0KG5vZGUpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tOb2Rl
RmxhZ3MoTm9kZSogbm9kZSkKK3sKKyAgICBPcGFxdWVQb2ludGVyT3BlcmFuZCBiYXNlKHRoaXMs
IG5vZGUtPmNoaWxkMSgpKTsKKworICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKwor
ICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJh
bmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhi
YXNlR1BSLCBub2RlLT5vcGFxdWVQb2ludGVyT2Zmc2V0KCkpLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1
c3RlZEltbTMyKG5vZGUtPm5vZGVGbGFnc09wZXJhbmQoKSkpKTsKKworICAgIG5vUmVzdWx0KG5v
ZGUpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5zdGFuY2VPZihOb2RlKiBu
b2RlKQogewogICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkg
ewpAQCAtNzA1Nyw2ICs3MDk5LDc0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
dXR0ZXJmbHkoTm9kZSogbm9kZSkKICAgICBzdG9yYWdlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7
CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2FkT3BhcXVlUG9pbnRlcihOb2Rl
KiBub2RlKQoreworICAgIE9wYXF1ZVBvaW50ZXJPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOworICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOworCisg
ICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyByZXN1bHRHUFIgPSBy
ZXN1bHQuZ3ByKCk7CisKKyAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKGJh
c2VHUFIsIG5vZGUtPm9wYXF1ZVBvaW50ZXJPZmZzZXQoKSksIHJlc3VsdEdQUik7CisKKyAgICBv
cGFxdWVQb2ludGVyUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVHZXRET01XcmFwcGVkKE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgR1BSVGVtcG9yYXJ5
IHJlc3VsdCh0aGlzLCBSZXVzZSwgYmFzZSk7CisKKyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2Uu
Z3ByKCk7CisgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAgIG1faml0
LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFkZHJlc3MoYmFzZUdQUiwgbm9kZS0+b3BhcXVlUG9pbnRl
ck9mZnNldCgpKSwgcmVzdWx0R1BSKTsKKworICAgIG9wYXF1ZVBvaW50ZXJSZXN1bHQocmVzdWx0
R1BSLCBub2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvRE9NV3JhcHBl
cihOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9k
ZS0+Y2hpbGQyKCkpOworICAgIE9wYXF1ZVBvaW50ZXJPcGVyYW5kIHdyYXBwZWQodGhpcywgbm9k
ZS0+Y2hpbGQyKCkpOworICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKwor
ICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcgd3JhcHBlZEdQUiA9
IHdyYXBwZWQuZ3ByKCk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdz
KCk7CisKKyAgICBzcGVjdWxhdGVET01Ob2RlKG5vZGUtPmNoaWxkMigpLCBiYXNlR1BSKTsKKwor
ICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdE51bGwgPSBtX2ppdC5icmFuY2hUZXN0UHRyKEpJVENv
bXBpbGVyOjpOb25aZXJvLCB3cmFwcGVkR1BSKTsKKyAgICBtX2ppdC5tb3ZlVHJ1c3RlZFZhbHVl
KGpzTnVsbCgpLCByZXN1bHRSZWdzKTsKKyAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lID0gbV9q
aXQuanVtcCgpOworCisgICAgbm90TnVsbC5saW5rKCZtX2ppdCk7CisKKyAgICAvLyBUaGlzIHNo
b3VsZCBiZSByZW1vdmVkIGJ5IERGRy4KKyAgICAvLyBtX2ppdC0+bV9qaXQuZW1pdExvYWRTdHJ1
Y3R1cmUod3JhcHBlclJlZywgZ2xvYmFsT2JqZWN0UmVnLCBzY3JhdGNoUmVnKTsKKyAgICAvLyBt
X2ppdC0+bV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhnbG9iYWxPYmplY3RS
ZWcsIEpTQzo6U3RydWN0dXJlOjpnbG9iYWxPYmplY3RPZmZzZXQoKSksIGdsb2JhbE9iamVjdFJl
Zyk7CisKKyAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgLy8gc2xv
d0Nhc2VzLmFwcGVuZChtX2ppdC0+bV9qaXQuYnJhbmNoVGVzdDgoTWFjcm9Bc3NlbWJsZXI6Olpl
cm8sIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGdsb2JhbE9iamVjdFJlZywgSlNET01HbG9iYWxP
YmplY3Q6Om9mZnNldE9mV29ybGRJc05vcm1hbCgpKSkpOworCisgICAgLy8gV2Vha1BvaW50ZXIg
ZGVyZWZlcmVuY2UuCisgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyh3cmFw
cGVkR1BSLCBub2RlLT5vcGFxdWVQb2ludGVyT2Zmc2V0KCkpLCByZXN1bHRSZWdzLnBheWxvYWRH
UFIoKSk7CisgICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRSZWdz
LnBheWxvYWRHUFIoKSksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKKyAgICBzbG93Q2FzZXMu
YXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJlc3VsdFJl
Z3MucGF5bG9hZEdQUigpKSk7CisKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIG1faml0Lm1v
dmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcmVzdWx0
UmVncy50YWdHUFIoKSk7CisjZW5kaWYKKworICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQ
YXRoQ2FsbChzbG93Q2FzZXMsIHRoaXMsIG5vZGUtPnNsb3dUb0pTT3BlcmF0aW9uKCksIHJlc3Vs
dFJlZ3MsIHdyYXBwZWRHUFIsIGJhc2VHUFIpKTsKKworICAgIGRvbmUubGluaygmbV9qaXQpOwor
CisgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKK30KKwogR1BSUmVnIFNwZWN1
bGF0aXZlSklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKEdQUlRlbXBvcmFyeSYgdGVt
cG9yYXJ5LCBBcnJheU1vZGUgYXJyYXlNb2RlKQogewogICAgIGlmICghcHV0QnlWYWxXaWxsTmVl
ZEV4dHJhUmVnaXN0ZXIoYXJyYXlNb2RlKSkKQEAgLTc1MDAsNiArNzYxMCw0OCBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVTZXRPYmplY3QoRWRnZSBlZGdlKQogICAgIHNwZWN1bGF0
ZVNldE9iamVjdChlZGdlLCBvcGVyYW5kLmdwcigpKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlRE9NTm9kZShFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQoreworICAgIERGR19U
WVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGNlbGwpLCBlZGdlLCBTcGVjRE9N
Tm9kZSwgbV9qaXQuYnJhbmNoSWZOb3RET01Ob2RlKGNlbGwpKTsKK30KKwordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlRE9NTm9kZShFZGdlIGVkZ2UpCit7CisgICAgaWYgKCFuZWVkc1R5
cGVDaGVjayhlZGdlLCBTcGVjRE9NTm9kZSkpCisgICAgICAgIHJldHVybjsKKworICAgIFNwZWN1
bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhpcywgZWRnZSk7CisgICAgc3BlY3VsYXRlRE9NTm9k
ZShlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3Vs
YXRlRE9NRWxlbWVudChFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKQoreworICAgIERGR19UWVBFX0NI
RUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKGNlbGwpLCBlZGdlLCBTcGVjRE9NRWxlbWVu
dCwgbV9qaXQuYnJhbmNoSWZOb3RET01FbGVtZW50KGNlbGwpKTsKK30KKwordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6c3BlY3VsYXRlRE9NRWxlbWVudChFZGdlIGVkZ2UpCit7CisgICAgaWYgKCFuZWVk
c1R5cGVDaGVjayhlZGdlLCBTcGVjRE9NRWxlbWVudCkpCisgICAgICAgIHJldHVybjsKKworICAg
IFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9wZXJhbmQodGhpcywgZWRnZSk7CisgICAgc3BlY3VsYXRl
RE9NRWxlbWVudChlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6c3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7
CisgICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRnZSwgY2VsbCwgU3BlY0RPTURvY3VtZW50V3JhcHBl
ciwgRE9NRG9jdW1lbnRXcmFwcGVyVHlwZSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlIGVkZ2UpCit7CisgICAgaWYgKCFuZWVkc1R5
cGVDaGVjayhlZGdlLCBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVj
dWxhdGVET01Eb2N1bWVudFdyYXBwZXIoZWRnZSwgb3BlcmFuZC5ncHIoKSk7Cit9CisKIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoRWRnZSBlZGdlKQogewogICAg
IGlmICghbmVlZHNUeXBlQ2hlY2soZWRnZSwgU3BlY09iamVjdCB8IFNwZWNPdGhlcikpCkBAIC03
ODA1LDYgKzc5NTcsMTUgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlKE5vZGUqLCBF
ZGdlIGVkZ2UpCiAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICBzcGVjdWxhdGVP
YmplY3RPck90aGVyKGVkZ2UpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTU5vZGVVc2U6
CisgICAgICAgIHNwZWN1bGF0ZURPTU5vZGUoZWRnZSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRE9NRWxlbWVudFVzZToKKyAgICAgICAgc3BlY3VsYXRlRE9NRWxlbWVudChlZGdlKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CisgICAgICAgIHNw
ZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihlZGdlKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBTdHJpbmdJZGVudFVzZToKICAgICAgICAgc3BlY3VsYXRlU3RyaW5nSWRlbnQoZWRnZSk7CiAg
ICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCmluZGV4IGNhOTc4ZjZiNzM5NTEzOTUwMTUxMGQwNTgyOGEwMjk4MjJmODVhMWIuLjNk
NWY3Y2ZkYzY4M2JmODE4Yzg5NjIxOTNhYWRmMzExM2ZiYWRkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTkyLDI1ICs5MiwyNyBAQCBj
bGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgLy8gdGhlIHJlZ2lzdGVyIGFsbG9jYXRvci4KICNp
ZiBVU0UoSlNWQUxVRTY0KQogICAgIGVudW0gU3BpbGxPcmRlciB7Ci0gICAgICAgIFNwaWxsT3Jk
ZXJDb25zdGFudCA9IDEsIC8vIG5vIHNwaWxsLCBhbmQgY2hlYXAgZmlsbAotICAgICAgICBTcGls
bE9yZGVyU3BpbGxlZCAgPSAyLCAvLyBubyBzcGlsbAotICAgICAgICBTcGlsbE9yZGVySlMgICAg
ICAgPSA0LCAvLyBuZWVkcyBzcGlsbAotICAgICAgICBTcGlsbE9yZGVyQ2VsbCAgICAgPSA0LCAv
LyBuZWVkcyBzcGlsbAotICAgICAgICBTcGlsbE9yZGVyU3RvcmFnZSAgPSA0LCAvLyBuZWVkcyBz
cGlsbAotICAgICAgICBTcGlsbE9yZGVySW50ZWdlciAgPSA1LCAvLyBuZWVkcyBzcGlsbCBhbmQg
Ym94Ci0gICAgICAgIFNwaWxsT3JkZXJCb29sZWFuICA9IDUsIC8vIG5lZWRzIHNwaWxsIGFuZCBi
b3gKLSAgICAgICAgU3BpbGxPcmRlckRvdWJsZSAgID0gNiwgLy8gbmVlZHMgc3BpbGwgYW5kIGNv
bnZlcnQKKyAgICAgICAgU3BpbGxPcmRlckNvbnN0YW50ICAgICAgPSAxLCAvLyBubyBzcGlsbCwg
YW5kIGNoZWFwIGZpbGwKKyAgICAgICAgU3BpbGxPcmRlclNwaWxsZWQgICAgICAgPSAyLCAvLyBu
byBzcGlsbAorICAgICAgICBTcGlsbE9yZGVySlMgICAgICAgICAgICA9IDQsIC8vIG5lZWRzIHNw
aWxsCisgICAgICAgIFNwaWxsT3JkZXJDZWxsICAgICAgICAgID0gNCwgLy8gbmVlZHMgc3BpbGwK
KyAgICAgICAgU3BpbGxPcmRlclN0b3JhZ2UgICAgICAgPSA0LCAvLyBuZWVkcyBzcGlsbAorICAg
ICAgICBTcGlsbE9yZGVyT3BhcXVlUG9pbnRlciA9IDQsIC8vIG5lZWRzIHNwaWxsCisgICAgICAg
IFNwaWxsT3JkZXJJbnRlZ2VyICAgICAgID0gNSwgLy8gbmVlZHMgc3BpbGwgYW5kIGJveAorICAg
ICAgICBTcGlsbE9yZGVyQm9vbGVhbiAgICAgICA9IDUsIC8vIG5lZWRzIHNwaWxsIGFuZCBib3gK
KyAgICAgICAgU3BpbGxPcmRlckRvdWJsZSAgICAgICAgPSA2LCAvLyBuZWVkcyBzcGlsbCBhbmQg
Y29udmVydAogICAgIH07CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIGVudW0gU3BpbGxP
cmRlciB7Ci0gICAgICAgIFNwaWxsT3JkZXJDb25zdGFudCA9IDEsIC8vIG5vIHNwaWxsLCBhbmQg
Y2hlYXAgZmlsbAotICAgICAgICBTcGlsbE9yZGVyU3BpbGxlZCAgPSAyLCAvLyBubyBzcGlsbAot
ICAgICAgICBTcGlsbE9yZGVySlMgICAgICAgPSA0LCAvLyBuZWVkcyBzcGlsbAotICAgICAgICBT
cGlsbE9yZGVyU3RvcmFnZSAgPSA0LCAvLyBuZWVkcyBzcGlsbAotICAgICAgICBTcGlsbE9yZGVy
RG91YmxlICAgPSA0LCAvLyBuZWVkcyBzcGlsbAotICAgICAgICBTcGlsbE9yZGVySW50ZWdlciAg
PSA1LCAvLyBuZWVkcyBzcGlsbCBhbmQgYm94Ci0gICAgICAgIFNwaWxsT3JkZXJDZWxsICAgICA9
IDUsIC8vIG5lZWRzIHNwaWxsIGFuZCBib3gKLSAgICAgICAgU3BpbGxPcmRlckJvb2xlYW4gID0g
NSwgLy8gbmVlZHMgc3BpbGwgYW5kIGJveAorICAgICAgICBTcGlsbE9yZGVyQ29uc3RhbnQgICAg
ICA9IDEsIC8vIG5vIHNwaWxsLCBhbmQgY2hlYXAgZmlsbAorICAgICAgICBTcGlsbE9yZGVyU3Bp
bGxlZCAgICAgICA9IDIsIC8vIG5vIHNwaWxsCisgICAgICAgIFNwaWxsT3JkZXJKUyAgICAgICAg
ICAgID0gNCwgLy8gbmVlZHMgc3BpbGwKKyAgICAgICAgU3BpbGxPcmRlclN0b3JhZ2UgICAgICAg
PSA0LCAvLyBuZWVkcyBzcGlsbAorICAgICAgICBTcGlsbE9yZGVyT3BhcXVlUG9pbnRlciA9IDQs
IC8vIG5lZWRzIHNwaWxsCisgICAgICAgIFNwaWxsT3JkZXJEb3VibGUgICAgICAgID0gNCwgLy8g
bmVlZHMgc3BpbGwKKyAgICAgICAgU3BpbGxPcmRlckludGVnZXIgICAgICAgPSA1LCAvLyBuZWVk
cyBzcGlsbCBhbmQgYm94CisgICAgICAgIFNwaWxsT3JkZXJDZWxsICAgICAgICAgID0gNSwgLy8g
bmVlZHMgc3BpbGwgYW5kIGJveAorICAgICAgICBTcGlsbE9yZGVyQm9vbGVhbiAgICAgICA9IDUs
IC8vIG5lZWRzIHNwaWxsIGFuZCBib3gKICAgICB9OwogI2VuZGlmCiAKQEAgLTE0MSw2ICsxNDMs
NyBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgYm9vbCBmaWxsSlNWYWx1ZShFZGdlLCBH
UFJSZWcmLCBHUFJSZWcmLCBGUFJSZWcmKTsKICNlbmRpZgogICAgIEdQUlJlZyBmaWxsU3RvcmFn
ZShFZGdlKTsKKyAgICBHUFJSZWcgZmlsbE9wYXF1ZVBvaW50ZXIoRWRnZSk7CiAKICAgICAvLyBs
b2NrIGFuZCB1bmxvY2sgR1BSICYgRlBSIHJlZ2lzdGVycy4KICAgICB2b2lkIGxvY2soR1BSUmVn
IHJlZykKQEAgLTUxNiw2ICs1MTksMTQgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0T3BhcXVl
UG9pbnRlcjogeworICAgICAgICAgICAgLy8gVGhpcyBpcyBzcGVjaWFsLCBzaW5jZSBpdCdzIG5v
dCBhIEpTIHZhbHVlIC0gYXMgaW4gaXQncyBub3QgdmlzaWJsZSB0byBKUworICAgICAgICAgICAg
Ly8gY29kZS4KKyAgICAgICAgICAgIG1faml0LnN0b3JlUHRyKGluZm8uZ3ByKCksIEpJVENvbXBp
bGVyOjphZGRyZXNzRm9yKHNwaWxsTWUpKTsKKyAgICAgICAgICAgIGluZm8uc3BpbGwoKm1fc3Ry
ZWFtLCBzcGlsbE1lLCBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcik7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIERhdGFGb3JtYXRJbnQzMjogewogICAgICAg
ICAgICAgbV9qaXQuc3RvcmUzMihpbmZvLmdwcigpLCBKSVRDb21waWxlcjo6cGF5bG9hZEZvcihz
cGlsbE1lKSk7CiAgICAgICAgICAgICBpbmZvLnNwaWxsKCptX3N0cmVhbSwgc3BpbGxNZSwgRGF0
YUZvcm1hdEludDMyKTsKQEAgLTkwMSw2ICs5MTIsMTYgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQg
ewogICAgICAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IGdlbmVyYXRpb25JbmZvRnJvbVZpcnR1
YWxSZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpOwogICAgICAgICBpbmZvLmluaXRTdG9yYWdlKG5v
ZGUsIG5vZGUtPnJlZkNvdW50KCksIHJlZyk7CiAgICAgfQorICAgIHZvaWQgb3BhcXVlUG9pbnRl
clJlc3VsdChHUFJSZWcgcmVnLCBOb2RlKiBub2RlLCBVc2VDaGlsZHJlbk1vZGUgbW9kZSA9IENh
bGxVc2VDaGlsZHJlbikKKyAgICB7CisgICAgICAgIGlmIChtb2RlID09IENhbGxVc2VDaGlsZHJl
bikKKyAgICAgICAgICAgIHVzZUNoaWxkcmVuKG5vZGUpOworCisgICAgICAgIFZpcnR1YWxSZWdp
c3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBub2RlLT52aXJ0dWFsUmVnaXN0ZXIoKTsKKyAgICAgICAg
bV9ncHJzLnJldGFpbihyZWcsIHZpcnR1YWxSZWdpc3RlciwgU3BpbGxPcmRlck9wYXF1ZVBvaW50
ZXIpOworICAgICAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IGdlbmVyYXRpb25JbmZvRnJvbVZp
cnR1YWxSZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpOworICAgICAgICBpbmZvLmluaXRPcGFxdWVQ
b2ludGVyKG5vZGUsIG5vZGUtPnJlZkNvdW50KCksIHJlZyk7CisgICAgfQogICAgIHZvaWQgZG91
YmxlUmVzdWx0KEZQUlJlZyByZWcsIE5vZGUqIG5vZGUsIFVzZUNoaWxkcmVuTW9kZSBtb2RlID0g
Q2FsbFVzZUNoaWxkcmVuKQogICAgIHsKICAgICAgICAgaWYgKG1vZGUgPT0gQ2FsbFVzZUNoaWxk
cmVuKQpAQCAtMjQ1OSw2ICsyNDgwLDkgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZv
aWQgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKE5vZGUqKTsKICAgICB2b2lkIGNvbXBp
bGVSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVHZXRC
dXR0ZXJmbHkoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUxvYWRPcGFxdWVQb2ludGVyKE5vZGUq
KTsKKyAgICB2b2lkIGNvbXBpbGVHZXRET01XcmFwcGVkKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBp
bGVUb0RPTVdyYXBwZXIoTm9kZSopOwogICAgIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgQmFzZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBQcm9wZXJ0eU9wZXJh
bmRUeXBlLCB0eXBlbmFtZSBWYWx1ZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBUYWdUeXBlPgpAQCAt
MjQ5MCw2ICsyNTE0LDcgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogCiAgICAgdm9pZCBjb21w
aWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVDaGVja1N0cmlu
Z0lkZW50KE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVDaGVja05vZGVGbGFncyhOb2RlKik7CiAg
ICAgCiAgICAgdm9pZCBjb21waWxlVmFsdWVSZXAoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZURv
dWJsZVJlcChOb2RlKik7CkBAIC0yNjg5LDYgKzI3MTQsMTIgQEAgY2xhc3MgU3BlY3VsYXRpdmVK
SVQgewogICAgIHZvaWQgc3BlY3VsYXRlTWFwT2JqZWN0KEVkZ2UsIEdQUlJlZyBjZWxsKTsKICAg
ICB2b2lkIHNwZWN1bGF0ZVNldE9iamVjdChFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZVNldE9i
amVjdChFZGdlLCBHUFJSZWcgY2VsbCk7CisgICAgdm9pZCBzcGVjdWxhdGVET01Ob2RlKEVkZ2Up
OworICAgIHZvaWQgc3BlY3VsYXRlRE9NTm9kZShFZGdlLCBHUFJSZWcgY2VsbCk7CisgICAgdm9p
ZCBzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UpOworICAgIHZvaWQgc3BlY3VsYXRlRE9NRWxlbWVu
dChFZGdlLCBHUFJSZWcgY2VsbCk7CisgICAgdm9pZCBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBw
ZXIoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoRWRnZSwgR1BS
UmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlT2JqZWN0T3JPdGhlcihFZGdlKTsKICAgICB2
b2lkIHNwZWN1bGF0ZVN0cmluZyhFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKTsKICAgICB2b2lkIHNw
ZWN1bGF0ZVN0cmluZ0lkZW50QW5kTG9hZFN0b3JhZ2UoRWRnZSBlZGdlLCBHUFJSZWcgc3RyaW5n
LCBHUFJSZWcgc3RvcmFnZSk7CkBAIC0zMDExLDYgKzMwNDIsNTMgQEAgY2xhc3MgU3RvcmFnZU9w
ZXJhbmQgewogICAgIEdQUlJlZyBtX2dwck9ySW52YWxpZDsKIH07CiAKK2NsYXNzIE9wYXF1ZVBv
aW50ZXJPcGVyYW5kIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBPcGFxdWVQb2ludGVyT3BlcmFu
ZChTcGVjdWxhdGl2ZUpJVCogaml0LCBFZGdlIGVkZ2UpCisgICAgICAgIDogbV9qaXQoaml0KQor
ICAgICAgICAsIG1fZWRnZShlZGdlKQorICAgICAgICAsIG1fZ3ByT3JJbnZhbGlkKEludmFsaWRH
UFJSZWcpCisgICAgeworICAgICAgICBBU1NFUlQobV9qaXQpOworICAgICAgICBBU1NFUlQoZWRn
ZS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSB8fCBlZGdlLnVzZUtpbmQoKSA9PSBLbm93bkNlbGxV
c2UpOworICAgICAgICBpZiAoaml0LT5pc0ZpbGxlZChub2RlKCkpKQorICAgICAgICAgICAgZ3By
KCk7CisgICAgfQorCisgICAgfk9wYXF1ZVBvaW50ZXJPcGVyYW5kKCkKKyAgICB7CisgICAgICAg
IEFTU0VSVChtX2dwck9ySW52YWxpZCAhPSBJbnZhbGlkR1BSUmVnKTsKKyAgICAgICAgbV9qaXQt
PnVubG9jayhtX2dwck9ySW52YWxpZCk7CisgICAgfQorCisgICAgRWRnZSBlZGdlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBtX2VkZ2U7CisgICAgfQorCisgICAgTm9kZSogbm9kZSgp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gZWRnZSgpLm5vZGUoKTsKKyAgICB9CisKKyAg
ICBHUFJSZWcgZ3ByKCkKKyAgICB7CisgICAgICAgIGlmIChtX2dwck9ySW52YWxpZCA9PSBJbnZh
bGlkR1BSUmVnKQorICAgICAgICAgICAgbV9ncHJPckludmFsaWQgPSBtX2ppdC0+ZmlsbE9wYXF1
ZVBvaW50ZXIoZWRnZSgpKTsKKyAgICAgICAgcmV0dXJuIG1fZ3ByT3JJbnZhbGlkOworICAgIH0K
KworICAgIHZvaWQgdXNlKCkKKyAgICB7CisgICAgICAgIG1faml0LT51c2Uobm9kZSgpKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgU3BlY3VsYXRpdmVKSVQqIG1faml0OworICAgIEVkZ2UgbV9l
ZGdlOworICAgIEdQUlJlZyBtX2dwck9ySW52YWxpZDsKK307CisKIAogLy8gPT09IFRlbXBvcmFy
aWVzID09PQogLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDNhMTBhMTBkN2I0MjI1NDQwOWRkMjMyOWNjMGYyMTdm
OTY5OTVkM2UuLmYyYjFkZjk4N2Q0MDM1ZmFkYTRjOGFhZWZiZTllNzUyOWE2ZjBlNDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcApAQCAtNzMsNyArNzMsNyBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShF
ZGdlIGVkZ2UsIEdQUlJlZyYgdGFnR1BSLCBHUFJSZWcmIHBheWxvYWRHUFIsCiAgICAgICAgICAg
ICBpbmZvLmZpbGxKU1ZhbHVlKCptX3N0cmVhbSwgdGFnR1BSLCBwYXlsb2FkR1BSLCBEYXRhRm9y
bWF0SlMpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgRGF0YUZvcm1hdCBzcGlsbEZv
cm1hdCA9IGluZm8uc3BpbGxGb3JtYXQoKTsKLSAgICAgICAgICAgIEFTU0VSVChzcGlsbEZvcm1h
dCAhPSBEYXRhRm9ybWF0Tm9uZSAmJiBzcGlsbEZvcm1hdCAhPSBEYXRhRm9ybWF0U3RvcmFnZSk7
CisgICAgICAgICAgICBBU1NFUlQoc3BpbGxGb3JtYXQgIT0gRGF0YUZvcm1hdE5vbmUgJiYgc3Bp
bGxGb3JtYXQgIT0gRGF0YUZvcm1hdFN0b3JhZ2UgJiYgc3BpbGxGb3JtYXQgIT0gRGF0YUZvcm1h
dE9wYXF1ZVBvaW50ZXIpOwogICAgICAgICAgICAgdGFnR1BSID0gYWxsb2NhdGUoKTsKICAgICAg
ICAgICAgIHBheWxvYWRHUFIgPSBhbGxvY2F0ZSgpOwogICAgICAgICAgICAgc3dpdGNoIChzcGls
bEZvcm1hdCkgewpAQCAtMTU1LDYgKzE1NSw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmZpbGxK
U1ZhbHVlKEVkZ2UgZWRnZSwgR1BSUmVnJiB0YWdHUFIsIEdQUlJlZyYgcGF5bG9hZEdQUiwKICAg
ICB9CiAgICAgICAgIAogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgY2FzZSBEYXRh
Rm9ybWF0T3BhcXVlUG9pbnRlcjoKICAgICBjYXNlIERhdGFGb3JtYXREb3VibGU6CiAgICAgICAg
IC8vIHRoaXMgdHlwZSBjdXJyZW50bHkgbmV2ZXIgb2NjdXJzCiAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMDU3LDYgKzEwNTgsNyBAQCBHUFJSZWcgU3BlY3VsYXRp
dmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFsKEVkZ2UgZWRnZSwgRGF0YUZvcm1hdCYg
cmV0dXJuRgogICAgIGNhc2UgRGF0YUZvcm1hdEpTQm9vbGVhbjoKICAgICBjYXNlIERhdGFGb3Jt
YXREb3VibGU6CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKKyAgICBjYXNlIERhdGFGb3Jt
YXRPcGFxdWVQb2ludGVyOgogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBJbnZhbGlkR1BSUmVnOwpAQCAtMTE4NCw2ICsx
MTg2LDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQ2VsbChFZGdlIGVk
Z2UpCiAgICAgY2FzZSBEYXRhRm9ybWF0Qm9vbGVhbjoKICAgICBjYXNlIERhdGFGb3JtYXREb3Vi
bGU6CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKKyAgICBjYXNlIERhdGFGb3JtYXRPcGFx
dWVQb2ludGVyOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCiAgICAg
ZGVmYXVsdDoKQEAgLTEyNjAsNiArMTI2Myw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6Zmls
bFNwZWN1bGF0ZUJvb2xlYW4oRWRnZSBlZGdlKQogICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6CiAg
ICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6Cisg
ICAgY2FzZSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcjoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIAogICAgIGRlZmF1bHQ6CkBAIC01NDIwLDYgKzU0MjQsMjIgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAg
ICB9CiAKKyAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgorICAgICAgICBjb21waWxlTG9hZE9w
YXF1ZVBvaW50ZXIobm9kZSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBHZXRET01XcmFw
cGVkOgorICAgICAgICBjb21waWxlR2V0RE9NV3JhcHBlZChub2RlKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgorICAgICAgICBjb21waWxlQ2hlY2tOb2RlRmxh
Z3Mobm9kZSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBUb0RPTVdyYXBwZXI6CisgICAg
ICAgIGNvbXBpbGVUb0RPTVdyYXBwZXIobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2Fz
ZSBVbnJlYWNoYWJsZToKICAgICAgICAgdW5yZWFjaGFibGUobm9kZSk7CiAgICAgICAgIGJyZWFr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKaW5kZXggZjVlYTc0YjJlNzEwNTk3NWM3ZmIwNzEzNmI3MTNiMWFjMTU2N2I3Yy4uMzdjZDNi
NjMyYTU5YjYyODIyNzhmYzNlNzAzMTUxNmFiNDQzNjM2MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0xNDQsNiArMTQ0LDcg
QEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZShFZGdlIGVkZ2UpCiAgICAgICAg
IAogICAgIGNhc2UgRGF0YUZvcm1hdEJvb2xlYW46CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFn
ZToKKyAgICBjYXNlIERhdGFGb3JtYXRPcGFxdWVQb2ludGVyOgogICAgIGNhc2UgRGF0YUZvcm1h
dERvdWJsZToKICAgICBjYXNlIERhdGFGb3JtYXRJbnQ1MjoKICAgICAgICAgLy8gdGhpcyB0eXBl
IGN1cnJlbnRseSBuZXZlciBvY2N1cnMKQEAgLTEwNjAsNiArMTA2MSw3IEBAIEdQUlJlZyBTcGVj
dWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBEYXRhRm9y
bWF0JiByZXR1cm5GCiAgICAgY2FzZSBEYXRhRm9ybWF0SlNCb29sZWFuOgogICAgIGNhc2UgRGF0
YUZvcm1hdERvdWJsZToKICAgICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgorICAgIGNhc2UgRGF0
YUZvcm1hdE9wYXF1ZVBvaW50ZXI6CiAgICAgY2FzZSBEYXRhRm9ybWF0SW50NTI6CiAgICAgY2Fz
ZSBEYXRhRm9ybWF0U3RyaWN0SW50NTI6CiAgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgp
LCBtX2N1cnJlbnROb2RlLCAiQmFkIGRhdGEgZm9ybWF0Iik7CkBAIC0xMjkwLDYgKzEyOTIsNyBA
QCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKEVkZ2UgZWRnZSkKICAg
ICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToKICAg
ICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgorICAgIGNhc2UgRGF0YUZvcm1hdE9wYXF1ZVBvaW50
ZXI6CiAgICAgY2FzZSBEYXRhRm9ybWF0SW50NTI6CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0
SW50NTI6CiAgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBtX2N1cnJlbnROb2RlLCAi
QmFkIGRhdGEgZm9ybWF0Iik7CkBAIC0xMzY2LDYgKzEzNjksNyBAQCBHUFJSZWcgU3BlY3VsYXRp
dmVKSVQ6OmZpbGxTcGVjdWxhdGVCb29sZWFuKEVkZ2UgZWRnZSkKICAgICBjYXNlIERhdGFGb3Jt
YXRDZWxsOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToKICAgICBjYXNlIERhdGFGb3JtYXRT
dG9yYWdlOgorICAgIGNhc2UgRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXI6CiAgICAgY2FzZSBEYXRh
Rm9ybWF0SW50NTI6CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0SW50NTI6CiAgICAgICAgIERG
R19DUkFTSChtX2ppdC5ncmFwaCgpLCBtX2N1cnJlbnROb2RlLCAiQmFkIGRhdGEgZm9ybWF0Iik7
CkBAIC01NDM2LDYgKzU0NDAsMjIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
KiBub2RlKQogICAgICAgICBjb21waWxlTWF0ZXJpYWxpemVOZXdPYmplY3Qobm9kZSk7CiAgICAg
ICAgIGJyZWFrOwogCisgICAgY2FzZSBMb2FkT3BhcXVlUG9pbnRlcjoKKyAgICAgICAgY29tcGls
ZUxvYWRPcGFxdWVQb2ludGVyKG5vZGUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgR2V0
RE9NV3JhcHBlZDoKKyAgICAgICAgY29tcGlsZUdldERPTVdyYXBwZWQobm9kZSk7CisgICAgICAg
IGJyZWFrOworCisgICAgY2FzZSBDaGVja05vZGVGbGFnczoKKyAgICAgICAgY29tcGlsZUNoZWNr
Tm9kZUZsYWdzKG5vZGUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgVG9ET01XcmFwcGVy
OgorICAgICAgICBjb21waWxlVG9ET01XcmFwcGVyKG5vZGUpOworICAgICAgICBicmVhazsKKwog
I2lmIEVOQUJMRShGVExfSklUKSAgICAgICAgCiAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDog
ewogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBjYWxsVGllclVwID0gbV9qaXQuYnJhbmNo
QWRkMzIoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVj
a0hvaXN0aW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUeXBlQ2hl
Y2tIb2lzdGluZ1BoYXNlLmNwcAppbmRleCAyM2RmMjk2YTNjZjYzMjYzNjJhMzMzMjJlZDkyYTJi
ZmYxYjdjMmFlLi44Y2FjNTI0YjBlZDZmZjEyZjIyM2JkZDczNzQ3NGQ0NWQ5Y2Y0ZmU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5nUGhh
c2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVHlwZUNoZWNrSG9pc3Rp
bmdQaGFzZS5jcHAKQEAgLTI0Nyw2ICsyNDcsNyBAQCBjbGFzcyBUeXBlQ2hlY2tIb2lzdGluZ1Bo
YXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgICAgICBjYXNlIEFsbG9jYXRlUHJvcGVy
dHlTdG9yYWdlOgogICAgICAgICAgICAgICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFn
ZToKICAgICAgICAgICAgICAgICBjYXNlIEdldEJ1dHRlcmZseToKKyAgICAgICAgICAgICAgICBj
YXNlIExvYWRPcGFxdWVQb2ludGVyOgogICAgICAgICAgICAgICAgIGNhc2UgR2V0QnlWYWw6CiAg
ICAgICAgICAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAgICAgICAgICAgICBjYXNl
IFB1dEJ5VmFsOgpAQCAtMzI1LDYgKzMyNiw3IEBAIGNsYXNzIFR5cGVDaGVja0hvaXN0aW5nUGhh
c2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgog
ICAgICAgICAgICAgICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICAgICAg
ICAgICAgICBjYXNlIEdldEJ1dHRlcmZseToKKyAgICAgICAgICAgICAgICBjYXNlIExvYWRPcGFx
dWVQb2ludGVyOgogICAgICAgICAgICAgICAgIGNhc2UgR2V0QnlWYWw6CiAgICAgICAgICAgICAg
ICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAgICAgICAgICAgICBjYXNlIFB1dEJ5VmFsOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKaW5kZXggZTgzODI5YjcxMzA2
MTczZGU5NWIwMTA4OGJmM2U5Y2Q4NGZkZjZlYy4uMjAyMGE1NWZkY2Q4OGFkNjY3MGNjNTVhMTFh
MWI0ZTNiZDI5ODM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdV
c2VLaW5kLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3Bw
CkBAIC0xMTIsNiArMTEyLDE1IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBVc2VLaW5kIHVzZUtpbmQpCiAgICAgY2FzZSBPYmplY3RPck90aGVyVXNlOgogICAgICAgICBv
dXQucHJpbnQoIk9iamVjdE9yT3RoZXIiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRE9N
Tm9kZVVzZToKKyAgICAgICAgb3V0LnByaW50KCJET01Ob2RlIik7CisgICAgICAgIHJldHVybjsK
KyAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAgICAgIG91dC5wcmludCgiRE9NRWxlbWVudCIp
OworICAgICAgICByZXR1cm47CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CisgICAg
ICAgIG91dC5wcmludCgiRE9NRG9jdW1lbnRXcmFwcGVyIik7CisgICAgICAgIHJldHVybjsKICAg
ICBjYXNlIFN0cmluZ0lkZW50VXNlOgogICAgICAgICBvdXQucHJpbnQoIlN0cmluZ0lkZW50Iik7
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVXNlS2luZC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKaW5k
ZXggOGY2MzNhMTk2ODhjY2UwMmYzNGYxNTEyZWQ4OTNkZjI5N2QzYTVmYi4uMTY4ZDA0OGMzYTNk
YTk5YzQ5ZDgxNTU0NTI2YjA3NjIyNjYyOTIyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdVc2VLaW5kLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdVc2VLaW5kLmgKQEAgLTczLDYgKzczLDkgQEAgZW51bSBVc2VLaW5kIHsKICAgICBOb3RDZWxs
VXNlLAogICAgIE90aGVyVXNlLAogICAgIE1pc2NVc2UsCisgICAgRE9NTm9kZVVzZSwKKyAgICBE
T01FbGVtZW50VXNlLAorICAgIERPTURvY3VtZW50V3JhcHBlclVzZSwKIAogICAgIC8vIDIuIFRo
ZSBEb3VibGUgcmVwcmVzZW50YXRpb24gZm9yIGFuIHVuYm94ZWQgZG91YmxlIHZhbHVlIHRoYXQg
bXVzdCBiZSBzdG9yZWQKICAgICAvLyAgICBpbiBhbiBGUCByZWdpc3Rlci4KQEAgLTE2MCw2ICsx
NjMsMTIgQEAgaW5saW5lIFNwZWN1bGF0ZWRUeXBlIHR5cGVGaWx0ZXJGb3IoVXNlS2luZCB1c2VL
aW5kKQogICAgICAgICByZXR1cm4gU3BlY090aGVyOwogICAgIGNhc2UgTWlzY1VzZToKICAgICAg
ICAgcmV0dXJuIFNwZWNNaXNjOworICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAgcmV0dXJu
IFNwZWNET01Ob2RlOworICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICAgICAgcmV0dXJuIFNw
ZWNET01FbGVtZW50OworICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgorICAgICAgICBy
ZXR1cm4gU3BlY0RPTURvY3VtZW50V3JhcHBlcjsKICAgICBkZWZhdWx0OgogICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gU3BlY0Z1bGxUb3A7CkBA
IC0yNDAsNiArMjQ5LDkgQEAgaW5saW5lIGJvb2wgaXNDZWxsKFVzZUtpbmQga2luZCkKICAgICBj
YXNlIFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgogICAgIGNhc2UgTWFwT2JqZWN0VXNlOgogICAg
IGNhc2UgU2V0T2JqZWN0VXNlOgorICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICBjYXNlIERPTUVs
ZW1lbnRVc2U6CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR3JhcGguY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2IwYWMxZTc4
ZDA0NjZmYjdmMTljYWVhNzJhNzU2MzIxYWM1NmRlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR3JhcGguY3BwCkBAIC0wLDAgKzEsNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRE9NSklUR3JhcGguaCIKKworI2lmIEVOQUJMRShERkdfSklU
KQorCituYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworCitERkc6OlVzZUtpbmQg
R3JhcGg6OmVkZ2VGaWx0ZXIoKQoreworICAgIGlmIChpc0RPTURvY3VtZW50V3JhcHBlclNwZWN1
bGF0aW9uKG1fc3BlY3VsYXRlZENoaWxkVHlwZSkpCisgICAgICAgIHJldHVybiBERkc6OkRPTURv
Y3VtZW50V3JhcHBlclVzZTsKKyAgICBpZiAoaXNET01FbGVtZW50U3BlY3VsYXRpb24obV9zcGVj
dWxhdGVkQ2hpbGRUeXBlKSkKKyAgICAgICAgcmV0dXJuIERGRzo6RE9NRWxlbWVudFVzZTsKKyAg
ICBpZiAoaXNET01Ob2RlU3BlY3VsYXRpb24obV9zcGVjdWxhdGVkQ2hpbGRUeXBlKSkKKyAgICAg
ICAgcmV0dXJuIERGRzo6RE9NTm9kZVVzZTsKKyAgICByZXR1cm4gREZHOjpVbnR5cGVkVXNlOwor
fQorCit9IH0KKworI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RvbWppdC9ET01KSVRHcmFwaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViN2FkM2I1NDEzODJmOTU4YjAx
NmIwMTdkMmQ4ZjIxMThkNzViODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZG9taml0L0RPTUpJVEdyYXBoLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiRE9NSklUSVJCdWlsZGVyLmgiCisjaW5jbHVkZSAiUHJvcGVydHlTbG90LmgiCisjaW5jbHVk
ZSAiUHV0UHJvcGVydHlTbG90LmgiCisjaW5jbHVkZSAiU3BlY3VsYXRlZFR5cGUuaCIKKworI2lm
IEVOQUJMRShERkdfSklUKQorI2luY2x1ZGUgIkRGR1VzZUtpbmQuaCIKKyNlbmRpZgorCituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJVCB7CisKK2NsYXNzIEdyYXBoIDogcHVibGljIElS
QnVpbGRlciB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
YyBDdXN0b21HZXR0ZXI7CisgICAgdHlwZWRlZiBQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
YyBDdXN0b21TZXR0ZXI7CisKKyAgICBHcmFwaChDdXN0b21HZXR0ZXIgZ2V0dGVyLCBDdXN0b21T
ZXR0ZXIgc2V0dGVyLCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGVkQ2hpbGRUeXBlKQorICAgICAg
ICA6IG1fZ2V0dGVyKGdldHRlcikKKyAgICAgICAgLCBtX3NldHRlcihzZXR0ZXIpCisgICAgICAg
ICwgbV9zcGVjdWxhdGVkQ2hpbGRUeXBlKHNwZWN1bGF0ZWRDaGlsZFR5cGUpCisgICAgeworICAg
IH0KKworICAgIHZpcnR1YWwgfkdyYXBoKCkgeyB9CisKKyAgICBTcGVjdWxhdGVkVHlwZSBzcGVj
dWxhdGVkQ2hpbGRUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9zcGVjdWxhdGVkQ2hpbGRUeXBlOyB9
CisgICAgQ3VzdG9tR2V0dGVyIGdldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2V0dGVyOyB9Cisg
ICAgQ3VzdG9tU2V0dGVyIHNldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGVyOyB9CisKKyNp
ZiBFTkFCTEUoREZHX0pJVCkKKyAgICBERkc6OlVzZUtpbmQgZWRnZUZpbHRlcigpOworI2VuZGlm
CisKK3ByaXZhdGU6CisgICAgQ3VzdG9tR2V0dGVyIG1fZ2V0dGVyOworICAgIEN1c3RvbVNldHRl
ciBtX3NldHRlcjsKKyAgICBTcGVjdWxhdGVkVHlwZSBtX3NwZWN1bGF0ZWRDaGlsZFR5cGU7Cit9
OworCit9IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklU
SVIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUi5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGZjYmNiYjFlNWI4NWI5YzIzM2ZhYmFjYWM1MWJlNTMzODRkODM0YwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUSVIuY3BwCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NSklUSVIuaCIKKworI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJ
VCB7CisKK0lSKiBJUjo6dGhpc1ZhbHVlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SVI+IGlyOworICAgIHJldHVybiAmaXIuZ2V0KCk7Cit9CisKKworfSB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVElSLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZG9taml0L0RPTUpJVElSLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI5NGRhODMzNDQwYmU2Zjk4YmIw
MzMzNGY3NGM1YmM1Yjc4NGEyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kb21qaXQvRE9NSklUSVIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3Bl
Y3VsYXRlZFR5cGUuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBET01KSVQgeworCit0
eXBlZGVmIHVpbnRwdHJfdCBPcEluZm87CisKKy8vIEZpcnN0LCB3ZSBkZWZpbmUgc3BlY2lmaWMg
dG8gTm9kZSBvcGVyYXRpb25zLiBMYXRlciB3ZSB3aWxsIHBhcmFtZXRlcml6ZSB0aGVtLgorZW51
bSBjbGFzcyBLaW5kIDogdWludDMyX3QgeworICAgIENoZWNrTm9kZSwKKyAgICBDaGVja05vZGVG
bGFncywKKyAgICBHZXRXcmFwcGVkLAorICAgIExvYWRQb2ludGVyLAorICAgIFRvV3JhcHBlciwK
KyAgICBSZXR1cm4sCisgICAgRXh0ZXJuYWwsCit9OworCitzdHJ1Y3QgSVIgeworICAgIEpTX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBJUiogdGhpc1ZhbHVlKCk7CisKKyAgICBJUigpID0gZGVmYXVs
dDsKKworICAgIElSKEtpbmQga2luZCwgSVIqIGNoaWxkMSwgSVIqIGNoaWxkMiwgT3BJbmZvIG9w
SW5mbzEsIE9wSW5mbyBvcEluZm8yKQorICAgICAgICA6IG1fa2luZChraW5kKQorICAgICAgICAs
IG1fY2hpbGQxKGNoaWxkMSkKKyAgICAgICAgLCBtX2NoaWxkMihjaGlsZDIpCisgICAgICAgICwg
bV9vcEluZm8xKG9wSW5mbzEpCisgICAgICAgICwgbV9vcEluZm8yKG9wSW5mbzIpCisgICAgewor
ICAgIH0KKworICAgIEtpbmQgbV9raW5kIHsgS2luZDo6RXh0ZXJuYWwgfTsKKyAgICBJUiogbV9j
aGlsZDEgeyBudWxscHRyIH07CisgICAgSVIqIG1fY2hpbGQyIHsgbnVsbHB0ciB9OworICAgIE9w
SW5mbyBtX29wSW5mbzEgeyAwIH07CisgICAgT3BJbmZvIG1fb3BJbmZvMiB7IDAgfTsKK307CisK
K30gfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUkJ1
aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUSVJCdWlsZGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDYyZGRlZmQ2NWFmM2VhMDNlN2FjZTAzMmE5ZTNlMjk1ZDI0MDVkYwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUSVJCdWls
ZGVyLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRE9NSklUSVIuaCIKKyNpbmNs
dWRlIDx3dGYvU2VnbWVudGVkVmVjdG9yLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
RE9NSklUIHsKKworY2xhc3MgSVJCdWlsZGVyIHsKK3B1YmxpYzoKKyAgICBJUiogYXBwZW5kKEtp
bmQga2luZCwgSVIqIGNoaWxkMSwgSVIqIGNoaWxkMiwgT3BJbmZvIG9wSW5mbzEgPSAwLCBPcElu
Zm8gb3BJbmZvMiA9IDApCisgICAgeworICAgICAgICByZXR1cm4gJm1fYWxsb2NhdG9yLmFsbG9j
KGtpbmQsIGNoaWxkMSwgY2hpbGQyLCBvcEluZm8xLCBvcEluZm8yKTsKKyAgICB9CisKKyAgICBT
ZWdtZW50ZWRWZWN0b3I8SVI+JiBpcigpCisgICAgeworICAgICAgICByZXR1cm4gbV9hbGxvY2F0
b3I7CisgICAgfQorCitwcml2YXRlOgorICAgIFNlZ21lbnRlZFZlY3RvcjxJUj4gbV9hbGxvY2F0
b3I7Cit9OworCisKK30gfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmls
aXRpZXMuY3BwCmluZGV4IGI2ZWIyZTVmNzIxOWRhZTZmZTBjMmE4NGFmMDVlODIyY2EwNmQ4MWYu
LjZlOTBiOTg1NjI0YWEwYWJjMzhiNzk1MjlmMTI5MjU5NGZlNDdhNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTQ0NSw2ICs0NDUsOSBA
QCBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgICAgICAg
ICAgY2FzZSBOb3RTdHJpbmdWYXJVc2U6CiAgICAgICAgICAgICAgICAgY2FzZSBBbnlJbnRVc2U6
CiAgICAgICAgICAgICAgICAgY2FzZSBEb3VibGVSZXBBbnlJbnRVc2U6CisgICAgICAgICAgICAg
ICAgY2FzZSBET01Ob2RlVXNlOgorICAgICAgICAgICAgICAgIGNhc2UgRE9NRWxlbWVudFVzZToK
KyAgICAgICAgICAgICAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKICAgICAgICAgICAg
ICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCmluZGV4IDA2M2NjNTk0NDA2MjQ4OTYzN2E5YzJiZDMxODI5MzU1NzU2
NGU0MjAuLjE2YjZiOGNlNGIxZjA4YmQ5MDBhNWI1OGI4MDhkNzVjNmE2ZWNkYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTEwNDY3LDYg
KzEwNDY3LDE3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQogCisgICAgTFZhbHVlIGxvd09wYXF1ZVBvaW50ZXIoRWRnZSBlZGdlKQorICAgIHsK
KyAgICAgICAgTG93ZXJlZE5vZGVWYWx1ZSB2YWx1ZSA9IG1fb3BhcXVlUG9pbnRlclZhbHVlcy5n
ZXQoZWRnZS5ub2RlKCkpOworICAgICAgICBpZiAoaXNWYWxpZCh2YWx1ZSkpCisgICAgICAgICAg
ICByZXR1cm4gdmFsdWUudmFsdWUoKTsKKworICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbG93Q2Vs
bChlZGdlKTsKKyAgICAgICAgc2V0T3BhcXVlUG9pbnRlcihlZGdlLm5vZGUoKSwgcmVzdWx0KTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBMVmFsdWUgbG93TWFwQnVja2V0
KEVkZ2UgZWRnZSkKICAgICB7CiAgICAgICAgIExvd2VyZWROb2RlVmFsdWUgdmFsdWUgPSBtX21h
cEJ1Y2tldFZhbHVlcy5nZXQoZWRnZS5ub2RlKCkpOwpAQCAtMTA3OTUsNiArMTA4MDYsMTUgQEAg
Y2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgY2FzZSBTZXRPYmplY3RVc2U6CiAgICAgICAg
ICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBET01Ob2RlVXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlRE9NTm9kZShlZGdlKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAgICAg
ICAgICBzcGVjdWxhdGVET01FbGVtZW50KGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgorICAgICAgICAgICAgc3BlY3VsYXRlRE9N
RG9jdW1lbnRXcmFwcGVyKGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
U3RyaW5nVXNlOgogICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKGVkZ2UpOwogICAgICAgICAg
ICAgYnJlYWs7CkBAIC0xMDkyMyw2ICsxMDk0MywyNCBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewog
ICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihPYmplY3RUeXBlKSk7CiAgICAgfQogCisgICAg
TFZhbHVlIGlzTm90RE9NTm9kZShMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNw
ZWNGdWxsVG9wKQorICAgIHsKKyAgICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZh
bHVlKHR5cGUgJiBTcGVjQ2VsbCwgflNwZWNET01Ob2RlKSkKKyAgICAgICAgICAgIHJldHVybiBw
cm92ZW47CisgICAgICAgIHJldHVybiBtX291dC5iZWxvdygKKyAgICAgICAgICAgIG1fb3V0Lmxv
YWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCisgICAgICAg
ICAgICBtX291dC5jb25zdEludDMyKERPTU5vZGVUeXBlKSk7CisgICAgfQorCisgICAgTFZhbHVl
IGlzTm90RE9NRWxlbWVudChMVmFsdWUgY2VsbCwgU3BlY3VsYXRlZFR5cGUgdHlwZSA9IFNwZWNG
dWxsVG9wKQorICAgIHsKKyAgICAgICAgaWYgKExWYWx1ZSBwcm92ZW4gPSBpc1Byb3ZlblZhbHVl
KHR5cGUgJiBTcGVjQ2VsbCwgflNwZWNET01FbGVtZW50KSkKKyAgICAgICAgICAgIHJldHVybiBw
cm92ZW47CisgICAgICAgIHJldHVybiBtX291dC5iZWxvdygKKyAgICAgICAgICAgIG1fb3V0Lmxv
YWQ4WmVyb0V4dDMyKGNlbGwsIG1faGVhcHMuSlNDZWxsX3R5cGVJbmZvVHlwZSksCisgICAgICAg
ICAgICBtX291dC5jb25zdEludDMyKERPTUVsZW1lbnRUeXBlKSk7CisgICAgfQorCiAgICAgTFZh
bHVlIGlzTm90U3RyaW5nKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1
bGxUb3ApCiAgICAgewogICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUo
dHlwZSAmIFNwZWNDZWxsLCB+U3BlY1N0cmluZykpCkBAIC0xMTE2OSw2ICsxMTIwNywzNyBAQCBj
bGFzcyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVk
Z2UsIGxvd0NlbGwoZWRnZSkpOwogICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlRE9NTm9kZShF
ZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soanNW
YWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjRE9NRWxlbWVudCwgaXNOb3RET01Ob2RlKGNlbGwp
KTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURPTU5vZGUoRWRnZSBlZGdlKQorICAgIHsK
KyAgICAgICAgc3BlY3VsYXRlRE9NTm9kZShlZGdlLCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9CisK
KyAgICB2b2lkIHNwZWN1bGF0ZURPTUVsZW1lbnQoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAg
ICB7CisgICAgICAgIEZUTF9UWVBFX0NIRUNLKGpzVmFsdWVWYWx1ZShjZWxsKSwgZWRnZSwgU3Bl
Y0RPTUVsZW1lbnQsIGlzTm90RE9NRWxlbWVudChjZWxsKSk7CisgICAgfQorCisgICAgdm9pZCBz
cGVjdWxhdGVET01FbGVtZW50KEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZURP
TUVsZW1lbnQoZWRnZSwgbG93Q2VsbChlZGdlKSk7CisgICAgfQorCisgICAgdm9pZCBzcGVjdWxh
dGVET01Eb2N1bWVudFdyYXBwZXIoRWRnZSBlZGdlLCBMVmFsdWUgY2VsbCkKKyAgICB7CisgICAg
ICAgIEZUTF9UWVBFX0NIRUNLKAorICAgICAgICAgICAganNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdl
LCBTcGVjRGVyaXZlZEFycmF5LCBpc05vdFR5cGUoY2VsbCwgRE9NRG9jdW1lbnRXcmFwcGVyVHlw
ZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKEVkZ2Ug
ZWRnZSkKKyAgICB7CisgICAgICAgIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihlZGdlLCBs
b3dDZWxsKGVkZ2UpKTsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBzcGVjdWxhdGVTdHJpbmcoRWRn
ZSBlZGdlLCBMVmFsdWUgY2VsbCkKICAgICB7CkBAIC0xMTk1OCw2ICsxMjAyNywxMCBAQCBjbGFz
cyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAgbV9zdG9yYWdlVmFsdWVzLnNldChub2Rl
LCBMb3dlcmVkTm9kZVZhbHVlKHZhbHVlLCBtX2hpZ2hCbG9jaykpOwogICAgIH0KKyAgICB2b2lk
IHNldE9wYXF1ZVBvaW50ZXIoTm9kZSogbm9kZSwgTFZhbHVlIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgbV9vcGFxdWVQb2ludGVyVmFsdWVzLnNldChub2RlLCBMb3dlcmVkTm9kZVZhbHVlKHZhbHVl
LCBtX2hpZ2hCbG9jaykpOworICAgIH0KICAgICB2b2lkIHNldE1hcEJ1Y2tldChOb2RlKiBub2Rl
LCBMVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBtX21hcEJ1Y2tldFZhbHVlcy5zZXQobm9k
ZSwgTG93ZXJlZE5vZGVWYWx1ZSh2YWx1ZSwgbV9oaWdoQmxvY2spKTsKQEAgLTExOTk1LDYgKzEy
MDY4LDEwIEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgewogICAgICAgICBzZXRTdG9yYWdl
KG1fbm9kZSwgdmFsdWUpOwogICAgIH0KKyAgICB2b2lkIHNldE9wYXF1ZVBvaW50ZXIoTFZhbHVl
IHZhbHVlKQorICAgIHsKKyAgICAgICAgc2V0T3BhcXVlUG9pbnRlcihtX25vZGUsIHZhbHVlKTsK
KyAgICB9CiAgICAgdm9pZCBzZXRNYXBCdWNrZXQoTFZhbHVlIHZhbHVlKQogICAgIHsKICAgICAg
ICAgc2V0TWFwQnVja2V0KG1fbm9kZSwgdmFsdWUpOwpAQCAtMTIxODIsNiArMTIyNTksNyBAQCBj
bGFzcyBMb3dlckRGR1RvQjMgewogICAgIEhhc2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+
IG1fanNWYWx1ZVZhbHVlczsKICAgICBIYXNoTWFwPE5vZGUqLCBMb3dlcmVkTm9kZVZhbHVlPiBt
X2Jvb2xlYW5WYWx1ZXM7CiAgICAgSGFzaE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1ZT4gbV9z
dG9yYWdlVmFsdWVzOworICAgIEhhc2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+IG1fb3Bh
cXVlUG9pbnRlclZhbHVlczsKICAgICBIYXNoTWFwPE5vZGUqLCBMb3dlcmVkTm9kZVZhbHVlPiBt
X21hcEJ1Y2tldFZhbHVlczsKICAgICBIYXNoTWFwPE5vZGUqLCBMb3dlcmVkTm9kZVZhbHVlPiBt
X2RvdWJsZVZhbHVlczsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5oCmluZGV4IDc2OTQ5MWEzNjdiYTVmZjE0MGI1Mzg3YjhiNWZjMmI3ZjhjNmM2ODAu
LmVkMTAxMmI0MWMwYjAzODhlMDg4ZDQ5YjlkMWVjOGQ1ZTkxNDY0ZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtODU0LDYgKzg1NCwzMCBAQCBj
bGFzcyBBc3NlbWJseUhlbHBlcnMgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXIgewogICAgICAgICBy
ZXR1cm4gYnJhbmNoOCgKICAgICAgICAgICAgIEJlbG93LCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2Vs
bDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoT2JqZWN0VHlwZSkpOwogICAg
IH0KKworICAgIEp1bXAgYnJhbmNoSWZET01Ob2RlKEdQUlJlZyBjZWxsR1BSKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGJyYW5jaDgoCisgICAgICAgICAgICBBYm92ZU9yRXF1YWwsIEFkZHJlc3Mo
Y2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihET01O
b2RlVHlwZSkpOworICAgIH0KKworICAgIEp1bXAgYnJhbmNoSWZOb3RET01Ob2RlKEdQUlJlZyBj
ZWxsR1BSKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgoCisgICAgICAgICAgICBCZWxv
dywgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3Rl
ZEltbTMyKERPTU5vZGVUeXBlKSk7CisgICAgfQorCisgICAgSnVtcCBicmFuY2hJZkRPTUVsZW1l
bnQoR1BSUmVnIGNlbGxHUFIpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoOCgKKyAgICAg
ICAgICAgIEFib3ZlT3JFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlw
ZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKERPTUVsZW1lbnRUeXBlKSk7CisgICAgfQorCisgICAg
SnVtcCBicmFuY2hJZk5vdERPTUVsZW1lbnQoR1BSUmVnIGNlbGxHUFIpCisgICAgeworICAgICAg
ICByZXR1cm4gYnJhbmNoOCgKKyAgICAgICAgICAgIEJlbG93LCBBZGRyZXNzKGNlbGxHUFIsIEpT
Q2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoRE9NRWxlbWVudFR5cGUp
KTsKKyAgICB9CiAgICAgCiAgICAgSnVtcCBicmFuY2hJZlR5cGUoR1BSUmVnIGNlbGxHUFIsIEpT
VHlwZSB0eXBlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmgKaW5kZXggMWQ0YWQzOGM1OWI0ZTczNjkzMDY1YjNhYzVlMDFjYTZkNDE2NGNkMS4uYmU0ZWE5
NjFjNTg1NDY1NTk0MDRlYjZjYWE0MzM1NjJhYjYwMjE5YiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTExMiw2ICsxMTIsNyBAQCB0eXBlZGVmIGNoYXIq
IFVudXNlZFB0cjsKICAgICBTeW10YWI6IFN5bWJvbFRhYmxlKgogICAgIFQ6IFN0cmluZ0ltcGwq
CiAgICAgVjogdm9pZAorICAgIFZwOiB2b2lkKgogICAgIFZtOiBWTSoKICAgICBXczogV2F0Y2hw
b2ludFNldCoKICAgICBaOiBpbnQzMl90CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlcGF0Y2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNw
cAppbmRleCBkNDU5MzljNTk1OWE4MDdkNDUwNWI5NGVhM2NlYTE1NWZmZjVjNGI4Li41ZTBkMTEy
MGNhNWQ0NDI3NDc3M2Q5MWM5ZjZmODljN2YwMzUzZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWVTaHVm
Zmxlci5oIgogI2luY2x1ZGUgIkRGR09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJERkdTcGVjdWxh
dGl2ZUpJVC5oIgorI2luY2x1ZGUgIkRPTUpJVEdyYXBoLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJn
dW1lbnRzLmgiCiAjaW5jbHVkZSAiRlRMVGh1bmtzLmgiCiAjaW5jbHVkZSAiR0NBd2FyZUpJVFN0
dWJSb3V0aW5lLmgiCkBAIC0yNjAsNiArMjYxLDEwIEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlv
biB0cnlDYWNoZUdldEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29u
CiAgICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlR2V0dGVyKCkpCiAgICAgICAgICAgICBnZXR0
ZXIgPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPihzbG90LmdldHRlclNldHRlcigpLT5nZXR0
ZXIoKSk7CiAKKyAgICAgICAgRE9NSklUOjpHcmFwaCogZG9tSklUID0gbnVsbHB0cjsKKyAgICAg
ICAgaWYgKHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSAmJiBzbG90LmRvbUpJVCgpKQorICAgICAg
ICAgICAgZG9tSklUID0gc2xvdC5kb21KSVQoKTsKKwogICAgICAgICBpZiAoa2luZCA9PSBHZXRC
eUlES2luZDo6UHVyZSkgewogICAgICAgICAgICAgQWNjZXNzQ2FzZTo6QWNjZXNzVHlwZSB0eXBl
OwogICAgICAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFibGVWYWx1ZSgpKQpAQCAtMjkwLDcgKzI5
NSw4IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5SUQoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uCiAgICAgICAgICAgICBuZXdDYXNlID0gQWNj
ZXNzQ2FzZTo6Z2V0KAogICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIHR5cGUsIG9mZnNl
dCwgc3RydWN0dXJlLCBjb25kaXRpb25TZXQsIGxvYWRUYXJnZXRGcm9tUHJveHksCiAgICAgICAg
ICAgICAgICAgc2xvdC53YXRjaHBvaW50U2V0KCksIHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSA/
IHNsb3QuY3VzdG9tR2V0dGVyKCkgOiBudWxscHRyLAotICAgICAgICAgICAgICAgIHNsb3QuaXND
YWNoZWFibGVDdXN0b20oKSA/IHNsb3Quc2xvdEJhc2UoKSA6IG51bGxwdHIpOworICAgICAgICAg
ICAgICAgIHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSA/IHNsb3Quc2xvdEJhc2UoKSA6IG51bGxw
dHIsCisgICAgICAgICAgICAgICAgZG9tSklUKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuaAppbmRl
eCBkNzAyZGRmNGRhMDU3NjkwNWY3OWNlYWQ2MGI2YTIzY2RiOWMzNjY2Li4xZWFkNDAyN2U5Zjg2
Yzg1MTg1ZWUzZTMwNWI2OWJlNzQxM2NkZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuaApAQCAtMzEsNiArMzEsOSBAQAogI2lu
Y2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQg
eworY2xhc3MgR3JhcGg7Cit9CiAKIGNsYXNzIEN1c3RvbUdldHRlclNldHRlciBmaW5hbCA6IHB1
YmxpYyBKU0NlbGwgewogcHVibGljOgpAQCAtNDAsMTUgKzQzLDE2IEBAIGNsYXNzIEN1c3RvbUdl
dHRlclNldHRlciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIHR5cGVkZWYgUHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmMgQ3VzdG9tR2V0dGVyOwogICAgIHR5cGVkZWYgUHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmMgQ3VzdG9tU2V0dGVyOwogCi0gICAgc3RhdGljIEN1c3RvbUdldHRl
clNldHRlciogY3JlYXRlKFZNJiB2bSwgQ3VzdG9tR2V0dGVyIGN1c3RvbUdldHRlciwgQ3VzdG9t
U2V0dGVyIGN1c3RvbVNldHRlcikKKyAgICBzdGF0aWMgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjcmVh
dGUoVk0mIHZtLCBDdXN0b21HZXR0ZXIgY3VzdG9tR2V0dGVyLCBDdXN0b21TZXR0ZXIgY3VzdG9t
U2V0dGVyLCBET01KSVQ6OkdyYXBoKiBkb21KSVQgPSBudWxscHRyKQogICAgIHsKLSAgICAgICAg
Q3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBuZXcgKE5vdE51bGwsIGFs
bG9jYXRlQ2VsbDxDdXN0b21HZXR0ZXJTZXR0ZXI+KHZtLmhlYXApKSBDdXN0b21HZXR0ZXJTZXR0
ZXIodm0sIGN1c3RvbUdldHRlciwgY3VzdG9tU2V0dGVyKTsKKyAgICAgICAgQ3VzdG9tR2V0dGVy
U2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxD
dXN0b21HZXR0ZXJTZXR0ZXI+KHZtLmhlYXApKSBDdXN0b21HZXR0ZXJTZXR0ZXIodm0sIGN1c3Rv
bUdldHRlciwgY3VzdG9tU2V0dGVyLCBkb21KSVQpOwogICAgICAgICBjdXN0b21HZXR0ZXJTZXR0
ZXItPmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICAgICAgcmV0dXJuIGN1c3RvbUdldHRlclNldHRl
cjsKICAgICB9CiAKICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6OkN1c3RvbUdldHRlciBnZXR0ZXIo
KSBjb25zdCB7IHJldHVybiBtX2dldHRlcjsgfQogICAgIEN1c3RvbUdldHRlclNldHRlcjo6Q3Vz
dG9tU2V0dGVyIHNldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGVyOyB9CisgICAgRE9NSklU
OjpHcmFwaCogZG9tSklUKCkgY29uc3QgeyByZXR1cm4gbV9kb21KSVQ7IH0KIAogICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTU4LDE1ICs2MiwxNyBAQCBj
bGFzcyBDdXN0b21HZXR0ZXJTZXR0ZXIgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICBERUNM
QVJFX0VYUE9SVF9JTkZPOwogCiBwcml2YXRlOgotICAgIEN1c3RvbUdldHRlclNldHRlcihWTSYg
dm0sIEN1c3RvbUdldHRlciBnZXR0ZXIsIEN1c3RvbVNldHRlciBzZXR0ZXIpCisgICAgQ3VzdG9t
R2V0dGVyU2V0dGVyKFZNJiB2bSwgQ3VzdG9tR2V0dGVyIGdldHRlciwgQ3VzdG9tU2V0dGVyIHNl
dHRlciwgRE9NSklUOjpHcmFwaCogZG9tSklUKQogICAgICAgICA6IEpTQ2VsbCh2bSwgdm0uY3Vz
dG9tR2V0dGVyU2V0dGVyU3RydWN0dXJlLmdldCgpKQogICAgICAgICAsIG1fZ2V0dGVyKGdldHRl
cikKICAgICAgICAgLCBtX3NldHRlcihzZXR0ZXIpCisgICAgICAgICwgbV9kb21KSVQoZG9tSklU
KQogICAgIHsKICAgICB9CiAKICAgICBDdXN0b21HZXR0ZXIgbV9nZXR0ZXI7CiAgICAgQ3VzdG9t
U2V0dGVyIG1fc2V0dGVyOworICAgIERPTUpJVDo6R3JhcGgqIG1fZG9tSklUOwogfTsKIAogSlNf
RVhQT1JUX1BSSVZBVEUgYm9vbCBjYWxsQ3VzdG9tU2V0dGVyKEV4ZWNTdGF0ZSosIEN1c3RvbUdl
dHRlclNldHRlcjo6Q3VzdG9tU2V0dGVyLCBib29sIGlzQWNjZXNzb3IsIEpTVmFsdWUgdGhpc1Zh
bHVlLCBKU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludHJpbnNpYy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgK
aW5kZXggM2VlOWRiZWJhNWY4N2UzYTNkZDRlOGQ0YjE1MTYwYTJiZGM3N2JkNC4uMDQxNWNkYWM3
YTI4NzNkMzQ4ZDgzYWJhNTgxNmQ5YjBlMmI4NDU3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50cmluc2ljLmgKQEAgLTcwLDYgKzcwLDcgQEAgZW51bSBKU19FWFBPUlRfUFJJ
VkFURSBJbnRyaW5zaWMgewogICAgIFR5cGVkQXJyYXlMZW5ndGhJbnRyaW5zaWMsCiAgICAgVHlw
ZWRBcnJheUJ5dGVMZW5ndGhJbnRyaW5zaWMsCiAgICAgVHlwZWRBcnJheUJ5dGVPZmZzZXRJbnRy
aW5zaWMsCisgICAgRE9NTm9kZUZpcnN0Q2hpbGRJbnRyaW5zaWMsCiAKICAgICAvLyBEZWJ1Z2dp
bmcgaW50cmluc2ljcy4gVGhlc2UgYXJlIG1lYW50IHRvIGJlIHVzZWQgYXMgdGVzdGluZyBoYWNr
cyB3aXRoaW4KICAgICAvLyBqc2MuY3BwIGFuZCBzaG91bGQgbmV2ZXIgYmUgZXhwb3NlZCB0byB1
c2Vycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDY5NWJm
YjcyZWZkNDY3NmZmYWIxYmQ1YzYyZGQyNjQ1NzgwNWU4OTAuLmE2MDlhNDhjOTA4NmM0M2JkNGZi
ZTE1Y2I3ZWQ5OWM3Mzg0NGY5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaApAQCAtMTI5MCw3ICsxMjkwLDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpTT2JqZWN0
OjpmaWxsQ3VzdG9tR2V0dGVyUHJvcGVydHlTbG90KFByb3BlcnR5U2xvdCYgc2xvdCwgSlMKIAog
ICAgIC8vIFRoaXMgYWNjZXNzIGlzIGNhY2hlYWJsZSBiZWNhdXNlIFN0cnVjdHVyZSByZXF1aXJl
cyBhbiBhdHRyaWJ1dGVDaGFuZ2VkVHJhbnNpdGlvbgogICAgIC8vIGlmIHRoaXMgcHJvcGVydHkg
c3RvcHMgYmVpbmcgYW4gYWNjZXNzb3IuCi0gICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhp
cywgYXR0cmlidXRlcywganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+KGN1c3RvbUdldHRlclNl
dHRlciktPmdldHRlcigpKTsKKyAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzLCBhdHRy
aWJ1dGVzLCBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oY3VzdG9tR2V0dGVyU2V0dGVyKS0+
Z2V0dGVyKCksIGpzQ2FzdDxDdXN0b21HZXR0ZXJTZXR0ZXIqPihjdXN0b21HZXR0ZXJTZXR0ZXIp
LT5kb21KSVQoKSk7CiB9CiAKIC8vIEl0IG1heSBzZWVtIGNyYXp5IHRvIGlubGluZSBhIGZ1bmN0
aW9uIHRoaXMgbGFyZ2UsIGVzcGVjaWFsbHkgYSB2aXJ0dWFsIGZ1bmN0aW9uLApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAppbmRleCAwMTBlOTA0N2I3ZWRlYTY2NDQ4ZmI5NzFl
M2Q0ZWU5NmJmMDhjYjk4Li44MzYyN2VmZTljNDgxMTJjOGU4MDA2MWQzZDYyYmJkOWYzM2Q4YTlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaApAQCAtODYsNyArODYsMTMg
QEAgZW51bSBKU1R5cGUgOiB1aW50OF90IHsKICAgICBKU01hcFR5cGUsCiAgICAgSlNTZXRUeXBl
LAogCi0gICAgTGFzdEpTQ09iamVjdFR5cGUgPSBKU1NldFR5cGUsCisgICAgLy8gVGhlIERPTU5v
ZGVUeXBlIHZhbHVlIG11c3QgY29tZSBiZWZvcmUgYW55IEpTVHlwZSB0aGF0IGlzIGEgc3ViY2xh
c3Mgb2YgSlNOb2RlLgorICAgIERPTU5vZGVUeXBlLAorICAgIERPTURvY3VtZW50V3JhcHBlclR5
cGUsCisgICAgLy8gVGhlIERPTUVsZW1lbnRUeXBlIHZhbHVlIG11c3QgY29tZSBiZWZvcmUgYW55
IEpTVHlwZSB0aGF0IGlzIGEgc3ViY2xhc3Mgb2YgSlNFbGVtZW50LgorICAgIERPTUVsZW1lbnRU
eXBlLAorCisgICAgTGFzdEpTQ09iamVjdFR5cGUgPSBET01FbGVtZW50VHlwZSwKIH07CiAKIENP
TVBJTEVfQVNTRVJUKHNpemVvZihKU1R5cGUpID09IHNpemVvZih1aW50OF90KSwgc2l6ZW9mX2pz
dHlwZV9pc19vbmVfYnl0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Mb29rdXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCmlu
ZGV4IDY5MmQ3Yzc4OWZlZDQ3YjVhZDc0MGM5YmRhNzJjNjYyNGE2NWE0ZTcuLmQ2NzJjYjY2M2E3
MGQ0YjE4MmRlMmFjZGFjNmU5ZGQ5MWEzNTg0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0xvb2t1cC5oCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiQmF0Y2hlZFRyYW5zaXRp
b25PcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDdXN0b21H
ZXR0ZXJTZXR0ZXIuaCIKKyNpbmNsdWRlICJET01KSVRHcmFwaC5oIgogI2luY2x1ZGUgIklkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJJZGVudGlmaWVySW5saW5lcy5oIgogI2luY2x1ZGUgIkludHJp
bnNpYy5oIgpAQCAtNzgsNiArNzksOCBAQCBzdHJ1Y3QgSGFzaFRhYmxlVmFsdWUgewogICAgIEdl
dEZ1bmN0aW9uIHByb3BlcnR5R2V0dGVyKCkgY29uc3QgeyBBU1NFUlQoIShtX2F0dHJpYnV0ZXMg
JiBCdWlsdGluT3JGdW5jdGlvbk9yQWNjZXNzb3JPckxhenlQcm9wZXJ0eU9yQ29uc3RhbnQpKTsg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8R2V0RnVuY3Rpb24+KG1fdmFsdWVzLnZhbHVlMSk7IH0K
ICAgICBQdXRGdW5jdGlvbiBwcm9wZXJ0eVB1dHRlcigpIGNvbnN0IHsgQVNTRVJUKCEobV9hdHRy
aWJ1dGVzICYgQnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29yT3JMYXp5UHJvcGVydHlPckNvbnN0
YW50KSk7IHJldHVybiByZWludGVycHJldF9jYXN0PFB1dEZ1bmN0aW9uPihtX3ZhbHVlcy52YWx1
ZTIpOyB9CiAKKyAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdCB7IEFTU0VSVChtX2F0
dHJpYnV0ZXMgJiBET01KSVRBdHRyaWJ1dGUpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxET01K
SVQ6OkdyYXBoKj4obV92YWx1ZXMudmFsdWUxKTsgfQorCiAgICAgTmF0aXZlRnVuY3Rpb24gYWNj
ZXNzb3JHZXR0ZXIoKSBjb25zdCB7IEFTU0VSVChtX2F0dHJpYnV0ZXMgJiBBY2Nlc3Nvcik7IHJl
dHVybiByZWludGVycHJldF9jYXN0PE5hdGl2ZUZ1bmN0aW9uPihtX3ZhbHVlcy52YWx1ZTEpOyB9
CiAgICAgTmF0aXZlRnVuY3Rpb24gYWNjZXNzb3JTZXR0ZXIoKSBjb25zdCB7IEFTU0VSVChtX2F0
dHJpYnV0ZXMgJiBBY2Nlc3Nvcik7IHJldHVybiByZWludGVycHJldF9jYXN0PE5hdGl2ZUZ1bmN0
aW9uPihtX3ZhbHVlcy52YWx1ZTIpOyB9CiAgICAgQnVpbHRpbkdlbmVyYXRvciBidWlsdGluQWNj
ZXNzb3JHZXR0ZXJHZW5lcmF0b3IoKSBjb25zdDsKQEAgLTIyNCw2ICsyMjcsMTEgQEAgaW5saW5l
IGJvb2wgZ2V0U3RhdGljUHJvcGVydHlTbG90RnJvbVRhYmxlKFZNJiB2bSwgY29uc3QgSGFzaFRh
YmxlJiB0YWJsZSwgSlNPYmoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgaWYg
KGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBET01KSVRBdHRyaWJ1dGUpIHsKKyAgICAgICAgc2xvdC5z
ZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShlbnRy
eS0+YXR0cmlidXRlcygpKSwgZW50cnktPmRvbUpJVCgpLT5nZXR0ZXIoKSwgZW50cnktPmRvbUpJ
VCgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgc2xvdC5zZXRDYWNoZWFi
bGVDdXN0b20odGhpc09iamVjdCwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShlbnRyeS0+YXR0cmli
dXRlcygpKSwgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAgIHJldHVybiB0cnVlOwogfQpA
QCAtMjU5LDYgKzI2Nyw3IEBAIGlubGluZSBib29sIHB1dEVudHJ5KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSGFzaFRhYmxlVmFsdWUqIGVudHJ5LCBKU09iamVjdCogYmFzCiAgICAgICAgIHJldHVy
biByZWplY3QoZXhlYywgc2xvdC5pc1N0cmljdE1vZGUoKSwgU3RyaWN0TW9kZVJlYWRvbmx5UHJv
cGVydHlXcml0ZUVycm9yKTsKIAogICAgIGlmICghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBSZWFk
T25seSkpIHsKKyAgICAgICAgQVNTRVJUKCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIERPTUpJVEF0
dHJpYnV0ZSkpOwogICAgICAgICBib29sIGlzQWNjZXNzb3IgPSBlbnRyeS0+YXR0cmlidXRlcygp
ICYgQ3VzdG9tQWNjZXNzb3I7CiAgICAgICAgIEpTVmFsdWUgdXBkYXRlVGhpc1ZhbHVlID0gZW50
cnktPmF0dHJpYnV0ZXMoKSAmIEN1c3RvbUFjY2Vzc29yID8gc2xvdC50aGlzVmFsdWUoKSA6IEpT
VmFsdWUoYmFzZSk7CiAgICAgICAgIGJvb2wgcmVzdWx0ID0gY2FsbEN1c3RvbVNldHRlcihleGVj
LCBlbnRyeS0+cHJvcGVydHlQdXR0ZXIoKSwgaXNBY2Nlc3NvciwgdXBkYXRlVGhpc1ZhbHVlLCB2
YWx1ZSk7CkBAIC0zMzYsNiArMzQ1LDEzIEBAIGlubGluZSB2b2lkIHJlaWZ5U3RhdGljUHJvcGVy
dHkoVk0mIHZtLCBjb25zdCBQcm9wZXJ0eU5hbWUmIHByb3BlcnR5TmFtZSwgY29uc3QKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmICh2YWx1ZS5hdHRyaWJ1dGVzKCkgJiBET01KSVRB
dHRyaWJ1dGUpIHsKKyAgICAgICAgRE9NSklUOjpHcmFwaCogZG9tSklUID0gdmFsdWUuZG9tSklU
KCk7CisgICAgICAgIEN1c3RvbUdldHRlclNldHRlciogY3VzdG9tR2V0dGVyU2V0dGVyID0gQ3Vz
dG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGRvbUpJVC0+Z2V0dGVyKCksIGRvbUpJVC0+c2V0
dGVyKCksIGRvbUpJVCk7CisgICAgICAgIHRoaXNPYmoucHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Io
dm0sIHByb3BlcnR5TmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBhdHRyaWJ1dGVzRm9yU3RydWN0
dXJlKHZhbHVlLmF0dHJpYnV0ZXMoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
Q3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBDdXN0b21HZXR0ZXJTZXR0
ZXI6OmNyZWF0ZSh2bSwgdmFsdWUucHJvcGVydHlHZXR0ZXIoKSwgdmFsdWUucHJvcGVydHlQdXR0
ZXIoKSk7CiAgICAgdGhpc09iai5wdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgcHJvcGVydHlO
YW1lLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0
cmlidXRlcygpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eVNsb3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
U2xvdC5oCmluZGV4IGUxMzdkODQ1ZDVmYzMxMzg4NjVkMTc2YTIyYTdlM2JkNTE3Y2ViMTMuLjM0
NGMxNDhmOTkzZDk1NTY5ZjdkYzk3ZGYyNjQ3MmU3YmZhZTdmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCkBAIC0yNiw3ICsyNiw5IEBACiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIEpTQyB7Ci0KK25hbWVzcGFjZSBE
T01KSVQgeworY2xhc3MgR3JhcGg7Cit9CiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBHZXR0ZXJT
ZXR0ZXI7CiBjbGFzcyBKU09iamVjdDsKQEAgLTQ4LDYgKzUwLDcgQEAgZW51bSBBdHRyaWJ1dGUg
ewogICAgIENlbGxQcm9wZXJ0eSAgICAgID0gMSA8PCAxMSwgLy8gcHJvcGVydHkgaXMgYSBsYXp5
IHByb3BlcnR5IC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQ2xhc3NTdHJ1
Y3R1cmUgICAgPSAxIDw8IDEyLCAvLyBwcm9wZXJ0eSBpcyBhIGxhenkgY2xhc3Mgc3RydWN0dXJl
IC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgUHJvcGVydHlDYWxsYmFjayAg
PSAxIDw8IDEzLCAvLyBwcm9wZXJ0eSB0aGF0IGlzIGEgbGF6eSBwcm9wZXJ0eSBjYWxsYmFjayAt
IG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcworICAgIERPTUpJVEF0dHJpYnV0ZSAgID0g
MSA8PCAxNCwgLy8gcHJvcGVydHkgaXMgYSBET00gSklUIGF0dHJpYnV0ZSAtIG9ubHkgdXNlZCBi
eSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uID0gQnVpbHRpbiB8IEZ1
bmN0aW9uLCAvLyBoZWxwZXIgb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVp
bHRpbk9yRnVuY3Rpb25PckxhenlQcm9wZXJ0eSA9IEJ1aWx0aW4gfCBGdW5jdGlvbiB8IENlbGxQ
cm9wZXJ0eSB8IENsYXNzU3RydWN0dXJlIHwgUHJvcGVydHlDYWxsYmFjaywgLy8gaGVscGVyIG9u
bHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nl
c3Nvck9yTGF6eVByb3BlcnR5ID0gQnVpbHRpbiB8IEZ1bmN0aW9uIHwgQWNjZXNzb3IgfCBDZWxs
UHJvcGVydHkgfCBDbGFzc1N0cnVjdHVyZSB8IFByb3BlcnR5Q2FsbGJhY2ssIC8vIGhlbHBlciBv
bmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKQEAgLTE1Nyw2ICsxNjAsMTEgQEAgY2xhc3Mg
UHJvcGVydHlTbG90IHsKICAgICAgICAgcmV0dXJuIG1fd2F0Y2hwb2ludFNldDsKICAgICB9CiAK
KyAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1fZG9tSklUOworICAgIH0KKwogICAgIHZvaWQgc2V0VmFsdWUoSlNPYmplY3QqIHNsb3RCYXNl
LCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgQVNT
RVJUKGF0dHJpYnV0ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CkBA
IC0yMTEsNyArMjE5LDcgQEAgY2xhc3MgUHJvcGVydHlTbG90IHsKICAgICAgICAgbV9vZmZzZXQg
PSBpbnZhbGlkT2Zmc2V0OwogICAgIH0KICAgICAKLSAgICB2b2lkIHNldENhY2hlYWJsZUN1c3Rv
bShKU09iamVjdCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEdldFZhbHVlRnVuYyBn
ZXRWYWx1ZSkKKyAgICB2b2lkIHNldENhY2hlYWJsZUN1c3RvbShKU09iamVjdCogc2xvdEJhc2Us
IHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEdldFZhbHVlRnVuYyBnZXRWYWx1ZSwgRE9NSklUOjpHcmFw
aCogZG9tSklUID0gbnVsbHB0cikKICAgICB7CiAgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09
IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykpOwogICAgICAgICAKQEAgLTIyMyw2
ICsyMzEsNyBAQCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogICAgICAgICBtX3Nsb3RCYXNlID0gc2xv
dEJhc2U7CiAgICAgICAgIG1fcHJvcGVydHlUeXBlID0gVHlwZUN1c3RvbTsKICAgICAgICAgbV9v
ZmZzZXQgPSAhaW52YWxpZE9mZnNldDsKKyAgICAgICAgbV9kb21KSVQgPSBkb21KSVQ7CiAgICAg
fQogCiAgICAgdm9pZCBzZXRDdXN0b21HZXR0ZXJTZXR0ZXIoSlNPYmplY3QqIHNsb3RCYXNlLCB1
bnNpZ25lZCBhdHRyaWJ1dGVzLCBDdXN0b21HZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlcikKQEAg
LTMxOCw2ICszMjcsNyBAQCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogICAgIENhY2hlYWJpbGl0eVR5
cGUgbV9jYWNoZWFiaWxpdHk7CiAgICAgUHJvcGVydHlUeXBlIG1fcHJvcGVydHlUeXBlOwogICAg
IEludGVybmFsTWV0aG9kVHlwZSBtX2ludGVybmFsTWV0aG9kVHlwZTsKKyAgICBET01KSVQ6Okdy
YXBoKiBtX2RvbUpJVCB7IG51bGxwdHIgfTsKICAgICBib29sIG1faXNUYWludGVkQnlPcGFxdWVP
YmplY3Q7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaCBi
L1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCmluZGV4IDZlOGEyMTQ0YzExYzFiOGIyZjVm
MjdmN2ZjMGMzZGVmYWM3ZGYyYjYuLjkyMDgzMDkyYjkzMWY4OWIwNmRjODViOWUxYTU0NmZhMjYz
MjcyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCkBAIC02OCw2ICs2OCw4IEBACiAvLyBOVUxMIGNh
biBjYXVzZSBjb21waWxlciBwcm9ibGVtcywgZXNwZWNpYWxseSBpbiBjYXNlcyBvZiBtdWx0aXBs
ZSBpbmhlcml0YW5jZS4KICNkZWZpbmUgT0JKRUNUX09GRlNFVE9GKGNsYXNzLCBmaWVsZCkgKHJl
aW50ZXJwcmV0X2Nhc3Q8cHRyZGlmZl90PigmKHJlaW50ZXJwcmV0X2Nhc3Q8Y2xhc3MqPigweDQw
MDApLT5maWVsZCkpIC0gMHg0MDAwKQogCisjZGVmaW5lIENBU1RfT0ZGU0VUKGZyb20sIHRvKSAo
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHN0YXRpY19jYXN0PHRvPigocmVpbnRlcnByZXRf
Y2FzdDxmcm9tPigweDQwMDApKSkpIC0gMHg0MDAwKQorCiAvLyBTVFJJTkdJWkU6IENhbiBjb252
ZXJ0IGFueSB2YWx1ZSB0byBxdW90ZWQgc3RyaW5nLCBldmVuIGV4cGFuZGFibGUgbWFjcm9zCiAj
ZGVmaW5lIFNUUklOR0laRShleHApICNleHAKICNkZWZpbmUgU1RSSU5HSVpFX1ZBTFVFX09GKGV4
cCkgU1RSSU5HSVpFKGV4cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdI
ZWFkZXJzL2RvbWppdC9ET01KSVRHcmFwaC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvZG9taml0L0RPTUpJVEdyYXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ4MDNjN2Y4YmY1NDQ2Y2Q0
YmU1YzM4NGNkYjRjNTFiMzI2MTdjMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0ZvcndhcmRpbmdIZWFkZXJzL2RvbWppdC9ET01KSVRHcmFwaC5oCkBAIC0wLDAgKzEsNCBAQAor
I2lmbmRlZiBXZWJDb3JlX0ZXRF9ET01KSVRHcmFwaF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0RP
TUpJVEdyYXBoX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9ET01KSVRHcmFwaC5oPgorI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDZmNjg3ZThlY2Q3M2RhODhiNDlkODc5
NzU4Y2FiZDU1NjdmMDM3MmEuLjdlOTlhNDkxZTY0ODc2ZDBjYTg2MTNhZGM0OTIwM2NiYTRmZDYx
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xNCw2ICsxNCw3IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJ
Un0vYnl0ZWNvbXBpbGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgogICAgICIk
e0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vZG9taml0IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKICAgICAiJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L2RlYnVnZ2VyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
aW50ZXJwcmV0ZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGIxNTNlNDAyNGQxNWU5
YTQ3OTY0NzAzN2U2NWU2ZTFiNmQzNmEwOGYuLjA0NjZjZTVhNmFmZGM2OWJiYWM1ZjVmNWY3NWVm
MzVmMDE1ZTlkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xOSw2ICsxOSw3IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0vYnl0ZWNvbXBpbGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZn
IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0vZG9taml0IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIK
ICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RlYnVnZ2VyIgogICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vaW50ZXJwcmV0ZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDM0Yjhk
YjI3MGJmNjk0YjJlMDdkMTg0OTFhYTg3NDY3NDM1NjdmYzguLmJjNDdjNGVhYWRkNjY5YjQ1NGY3
Njg2YmEzMjI1NGVjYzE4NmM4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
TWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC04MCw2
ICs4MCw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9iaW5kaW5ncyIKICAgICAiJHtXRUJDT1JF
X0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0Zv
cndhcmRpbmdIZWFkZXJzL2RlYnVnZ2VyIgorICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5n
SGVhZGVycy9kb21qaXQiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2hl
YXAiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3RvciIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvaW50ZXJwcmV0ZXIiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtV2luLmNtYWtlCmluZGV4IGFlZDhkZWIwYTI4ODc3ZDk1NjZkMzc4YmQ1OWFkY2QwZWY4
YTdjZWQuLmEzOGZlMTkzZWNjYTMwN2QxNTk1YWI0YmEzN2FmMjVjNmM1MjEwZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtV2luLmNtYWtlCkBAIC0xNSw2ICsxNSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRp
bmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlciIKICAgICAiJHtERVJJVkVEX1NP
VVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9kZmciCiAgICAgIiR7
REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvZGlz
YXNzZW1ibGVyIgorICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJz
L0phdmFTY3JpcHRDb3JlL2RvbWppdCIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3
YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9oZWFwIgogICAgICIke0RFUklWRURfU09VUkNF
U19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyIgogICAgICIk
e0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2Jq
ZWN0LmgKaW5kZXggZDQwYzQzZjYzZDU3ZTdlNTk3MGM3ZTYyZWZhODU2YWU2NGUzMmYyOS4uMTE2
ZDVkZGY1MTk5MzdmYzY2MTM1NWEyYzg5YmViYjM4MDViYzJhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC03Miw2ICs3Miw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkKCkgeyBy
ZXR1cm4gbV93b3JsZC5nZXQoKTsgfQogICAgICAgICBib29sIHdvcmxkSXNOb3JtYWwoKSBjb25z
dCB7IHJldHVybiBtX3dvcmxkSXNOb3JtYWw7IH0KKyAgICAgICAgc3RhdGljIHB0cmRpZmZfdCBv
ZmZzZXRPZldvcmxkSXNOb3JtYWwoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNET01HbG9i
YWxPYmplY3QsIG1fd29ybGRJc05vcm1hbCk7IH0KIAogICAgICAgICBKU0J1aWx0aW5JbnRlcm5h
bEZ1bmN0aW9ucyYgYnVpbHRpbkludGVybmFsRnVuY3Rpb25zKCkgeyByZXR1cm4gbV9idWlsdGlu
SW50ZXJuYWxGdW5jdGlvbnM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdy
YXBwZXIuaAppbmRleCBjZDUwYWVmODAxYjg1OTI5ZDY3Mzg2YWU2MjZjN2NhZTU4NzJmNGE0Li5j
ZWM2YjhkNmJkN2Y2NDUwYzRkMGE5ZDcxNzNiM2E1YzkwZjM5NzdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApAQCAtMzAsMTAgKzMwLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgSlNET01XaW5kb3c7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OwogCi1zdGF0aWMgY29uc3QgdWludDhfdCBKU05vZGVUeXBlID0gSlNDOjpMYXN0SlNDT2Jq
ZWN0VHlwZSArIDE7Ci1zdGF0aWMgY29uc3QgdWludDhfdCBKU0RvY3VtZW50V3JhcHBlclR5cGUg
PSBKU0M6Okxhc3RKU0NPYmplY3RUeXBlICsgMjsKLXN0YXRpYyBjb25zdCB1aW50OF90IEpTRWxl
bWVudFR5cGUgPSBKU0M6Okxhc3RKU0NPYmplY3RUeXBlICsgMzsKLQogY2xhc3MgSlNET01PYmpl
Y3QgOiBwdWJsaWMgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7CkBAIC01OSw2ICs1NSw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIEltcGxlbWVudGF0aW9uQ2xhc3M+IGNsYXNzIEpTRE9NV3JhcHBlciA6
IHB1YmxpYyBKU0RPTU9iamVjdCB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRE9NV3Jh
cHBlciA9IHRydWU7CiAKICAgICBJbXBsZW1lbnRhdGlvbkNsYXNzJiB3cmFwcGVkKCkgY29uc3Qg
eyByZXR1cm4gY29uc3RfY2FzdDxJbXBsZW1lbnRhdGlvbkNsYXNzJj4obV93cmFwcGVkLmdldCgp
KTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXcmFwcGVkKCkgeyByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKEpTRE9NV3JhcHBlcjxJbXBsZW1lbnRhdGlvbkNsYXNzPiwgbV93cmFwcGVk
KTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgSlNET01XcmFwcGVyKEpTQzo6U3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTQzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgUmVmPEltcGxlbWVudGF0
aW9uQ2xhc3M+JiYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRG9jdW1lbnRDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uaAppbmRleCA2OWM0Y2E4Mjg5MTljOWIxM2FiYWIxYzgzYjZiYWEwMmE5ZDZiYzJh
Li5mMGFjN2M3NDE4YjA1OGU1YzEwZDE2OGIwMTIzNjUwOWQyMzUxMmU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oCkBAIC0zNSw3ICszNSw3IEBA
IEFMV0FZU19JTkxJTkUgSlNEb2N1bWVudCoganNEb2N1bWVudENhc3QoSlNDOjpKU1ZhbHVlIHZh
bHVlKQogewogICAgIGlmIChVTkxJS0VMWSghdmFsdWUuaXNDZWxsKCkpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA9PSBKU0RvY3Vt
ZW50V3JhcHBlclR5cGUgPyBKU0M6OmpzQ2FzdDxKU0RvY3VtZW50Kj4odmFsdWUpIDogbnVsbHB0
cjsKKyAgICByZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA9PSBKU0M6OkRPTURvY3VtZW50
V3JhcHBlclR5cGUgPyBKU0M6OmpzQ2FzdDxKU0RvY3VtZW50Kj4odmFsdWUpIDogbnVsbHB0cjsK
IH0KIAogSlNDOjpKU09iamVjdCogY2FjaGVkRG9jdW1lbnRXcmFwcGVyKEpTQzo6RXhlY1N0YXRl
JiwgSlNET01HbG9iYWxPYmplY3QmLCBEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAppbmRleCAyYTFiYTAxODAzMjRkMDg0YjRhYzViNmIy
Yzk1N2VkYzM5YTc5NmY3Li5mMmJhMGQ5YmFjYzUwMjYwOWJjNjJhNzFiZjk1Y2JhYTdjZmE0OTUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaApAQCAt
MzUsNyArMzUsNyBAQCBBTFdBWVNfSU5MSU5FIEpTRWxlbWVudCoganNFbGVtZW50Q2FzdChKU0M6
OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc0NlbGwoKSkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgp
ID49IEpTRWxlbWVudFR5cGUgPyBKU0M6OmpzQ2FzdDxKU0VsZW1lbnQqPih2YWx1ZSkgOiBudWxs
cHRyOworICAgIHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID49IEpTQzo6RE9NRWxlbWVu
dFR5cGUgPyBKU0M6OmpzQ2FzdDxKU0VsZW1lbnQqPih2YWx1ZSkgOiBudWxscHRyOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05vZGVDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1
c3RvbS5oCmluZGV4IGFiNjM2MWM2NTNlZTE4NmUwNzRiY2UyMzUyZDUyY2JiODZmNzEzZjAuLjUw
MTQ5ZjgyOTg5YzhhYTljYjEyNjY3YzVkMjNkNjg0NmU2NzA3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCkBAIC04Miw3ICs4Miw3IEBAIEFMV0FZU19JTkxJ
TkUgSlNOb2RlKiBqc05vZGVDYXN0KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoVU5M
SUtFTFkoIXZhbHVlLmlzQ2VsbCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0
dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPj0gSlNOb2RlVHlwZSA/IEpTQzo6anNDYXN0PEpT
Tm9kZSo+KHZhbHVlKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBl
KCkgPj0gSlNDOjpET01Ob2RlVHlwZSA/IEpTQzo6anNDYXN0PEpTTm9kZSo+KHZhbHVlKSA6IG51
bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKaW5kZXggNWQ5MzI2MTE0YWE2ZjBjMWQ0ZjBiN2Jj
ZTE2NGExMjM4ZTI2YTkwYy4uMmU1ODJiYjUwYmM5OWVhYjNiMDg2MWRjZTBmODk3OGI3YmM5NTRl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKQEAg
LTQ3LDYgKzQ3LDcgQEAgY2xhc3MgU2NyaXB0V3JhcHBhYmxlIHsKICAgICBKU0RPTU9iamVjdCog
d3JhcHBlcigpIGNvbnN0OwogICAgIHZvaWQgc2V0V3JhcHBlcihKU0RPTU9iamVjdCosIEpTQzo6
V2Vha0hhbmRsZU93bmVyKiwgdm9pZCopOwogICAgIHZvaWQgY2xlYXJXcmFwcGVyKEpTRE9NT2Jq
ZWN0Kik7CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldyYXBwZXIoKSB7IHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoU2NyaXB0V3JhcHBhYmxlLCBtX3dyYXBwZXIpOyB9CiAKIHByb3RlY3Rl
ZDoKICAgICB+U2NyaXB0V3JhcHBhYmxlKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGE2YjkwMGVlMzJjMWU5NGQ5
MDA3NTNjNGU5MGMzMjE0OWNiMTdiNDQuLjFhYTEzZTNhM2YxYTgzM2VmZTNjNDQ1YWVlMGRlNDMz
ODVkYzM0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCkBAIC02MjYsNiArNjI2LDcgQEAgc3ViIEdldEpTQ0F0dHJpYnV0ZXNG
b3JBdHRyaWJ1dGUKICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVtIikgaWYgKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1lcmFibGUifSB8fCAk
aXNfZ2xvYmFsX2NvbnN0cnVjdG9yKTsKICAgICBwdXNoKEBzcGVjaWFscywgIlJlYWRPbmx5Iikg
aWYgSXNSZWFkb25seSgkYXR0cmlidXRlKTsKICAgICBwdXNoKEBzcGVjaWFscywgIkN1c3RvbUFj
Y2Vzc29yIikgdW5sZXNzICRpc19nbG9iYWxfY29uc3RydWN0b3Igb3IgSXNKU0J1aWx0aW4oJGlu
dGVyZmFjZSwgJGF0dHJpYnV0ZSk7CisgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1
dGUiKSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01K
SVQifTsKICAgICBwdXNoKEBzcGVjaWFscywgIkFjY2Vzc29yIHwgQnVpbHRpbiIpIGlmICBJc0pT
QnVpbHRpbigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAgICByZXR1cm4gKEBzcGVjaWFscyA+
IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKIH0KQEAgLTEyODYsMTEgKzEyODcs
MTEgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKElzRE9NR2xvYmFsT2JqZWN0KCRpbnRl
cmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Okdsb2JhbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtc
biIpOwogICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50
ZXJmYWNlLCAiRG9jdW1lbnQiKSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpKU1R5cGUoSlNEb2N1bWVudFdyYXBwZXJUeXBlKSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkRPTURvY3VtZW50V3JhcHBlclR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOwogICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJh
dG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiRWxlbWVudCIpKSB7Ci0gICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkpTVHlw
ZShKU0VsZW1lbnRUeXBlKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CisgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkRPTUVs
ZW1lbnRUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKICAgICB9IGVsc2lmICgk
Y29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIk5vZGUiKSkgewot
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlND
OjpKU1R5cGUoSlNOb2RlVHlwZSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOworICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpE
T01Ob2RlVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfQpAQCAt
MTM0OCw2ICsxMzQ5LDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgbXkgJGhhc0ZvcndhcmRE
ZWNsYXJpbmdGdW5jdGlvbnMgPSAwOwogICAgIG15ICRoYXNGb3J3YXJkRGVjbGFyaW5nQXR0cmli
dXRlcyA9IDA7CiAKKyAgICBteSAkaGFzRE9NSklUQXR0cmlidXRlcyA9IDA7CisKICAgICAjIEF0
dHJpYnV0ZSBhbmQgZnVuY3Rpb24gZW51bXMKICAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7
CiAgICAgICAgIGZvcmVhY2ggKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKQEAgLTEzNjIs
NiArMTM2NSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgICAgICRuZWVkc1Zp
c2l0Q2hpbGRyZW4gPSAxOwogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIj
ZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICRoYXNET01KSVRBdHRyaWJ1dGVzID0gMSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifTsKIAogICAgICAgICAgICAgaWYgKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkZvcndhcmREZWNsYXJlSW5IZWFk
ZXIifSkgewogICAgICAgICAgICAgICAgICRoYXNGb3J3YXJkRGVjbGFyaW5nQXR0cmlidXRlcyA9
IDE7CkBAIC0xNTc5LDYgKzE1ODMsMTUgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0K
ICAgICB9CiAKKyAgICBpZiAoJGhhc0RPTUpJVEF0dHJpYnV0ZXMpIHsKKyAgICAgICAgJGhlYWRl
ckluY2x1ZGVzeyI8ZG9taml0L0RPTUpJVEdyYXBoLmg+In0gPSAxOworICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCIvLyBET01KSVQgZW1pdHRlcnMgZm9yIGF0dHJpYnV0ZXNcblxuIik7Cisg
ICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkg
eworICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiSlNDOjpET01KSVQ6OkdyYXBoKiBkb21KSVRFbWl0dGVyRm9yIiAuICRpbnRlcmZhY2UtPm5h
bWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5h
bWUpIC4gIih2b2lkKTtcbiIpOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKEhhc0N1c3Rv
bUNvbnN0cnVjdG9yKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIvLyBDdXN0b20gY29uc3RydWN0b3JcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdCR7Y2xhc3NOYW1l
fShKU0M6OkV4ZWNTdGF0ZSYpO1xuXG4iKTsKQEAgLTE2NTUsMTQgKzE2NjgsMTkgQEAgc3ViIEdl
bmVyYXRlUHJvcGVydGllc0hhc2hUYWJsZQogICAgICAgICBteSAkc3BlY2lhbCA9IEdldEpTQ0F0
dHJpYnV0ZXNGb3JBdHRyaWJ1dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgIHB1
c2goQCRoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsKIAotICAgICAgICBteSAkZ2V0dGVyID0gR2V0
QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsK
LSAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwotCi0gICAgICAgIGlmIChJc1Jl
YWRvbmx5KCRhdHRyaWJ1dGUpKSB7CisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifSkgeworICAgICAgICAgICAgcHVzaChAJGhh
c2hWYWx1ZTEsICJkb21KSVRFbWl0dGVyRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdl
bmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gIigpIik7
CiAgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMiwgIjAiKTsKICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZh
Y2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1
ZTIsICRzZXR0ZXIpOworICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRl
ck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICBw
dXNoKEAkaGFzaFZhbHVlMSwgJGdldHRlcik7CisKKyAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5
KCRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICIwIik7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRB
dHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwor
ICAgICAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogCiAgICAgICAgIG15ICRjb25kaXRpb25hbCA9ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn07CkBAIC0yNDU0LDE3
ICsyNDcyLDIzIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSBA
c3BlY2lhbHMgPSAoKTsKICAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udERlbGV0ZSIp
IHVubGVzcyAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxl
dGFibGUifTsKICAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1Jl
YWRvbmx5KCRhdHRyaWJ1dGUpOworICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRB
dHRyaWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJET01KSVQifTsKICAgICAgICAgICAgIG15ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDApID8g
am9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKICAgICAgICAgICAgIHB1c2goQGhhc2hTcGVj
aWFscywgJHNwZWNpYWwpOwogCi0gICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRl
R2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAg
ICAgIHB1c2goQGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwotCi0gICAgICAgICAgICBpZiAoSXNSZWFk
b25seSgkYXR0cmlidXRlKSkgeworICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9KSB7CisgICAgICAgICAgICAgICAgcHVz
aChAaGFzaFZhbHVlMSwgImRvbUpJVEVtaXR0ZXJGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRj
b2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAi
KCkiKTsKICAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAiMCIpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0
dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAg
ICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAgICAgICBteSAkZ2V0
dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0
cmlidXRlKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKKwor
ICAgICAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7CisgICAgICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5h
bWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKQEAgLTMwMzQsNiAr
MzA1OCwzNSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKKyAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifSkgeworICAgICAgICAgICAg
ICAgICRpbXBsSW5jbHVkZXN7Ijx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4ifSA9IDE7CisgICAgICAg
ICAgICAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOworICAgICAgICAg
ICAgICAgIG15ICRkb21KSVRDbGFzc05hbWUgPSAiRE9NSklUIiAuICRpbnRlcmZhY2VOYW1lIC4g
JGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsK
KyAgICAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50
ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgICBteSAkc2V0
dGVyID0gSXNSZWFkb25seSgkYXR0cmlidXRlKSA/ICJudWxscHRyIiA6IEdldEF0dHJpYnV0ZVNl
dHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisKKyAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImNsYXNzICRkb21KSVRDbGFzc05hbWUgOiBwdWJs
aWMgSlNDOjpET01KSVQ6OkdyYXBoIHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAicHVibGljOlxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgJGRvbUpJVENsYXNzTmFtZSgpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgOiBKU0M6OkRPTUpJVDo6R3JhcGgoJGdldHRlciwgJHNldHRlciwg
SlNDOjpTcGVjRE9NTm9kZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAg
ICB1c2luZyBuYW1lc3BhY2UgSlNDOjpET01KSVQ7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgYXBwZW5kKEtpbmQ6OkNoZWNrTm9kZSwgSVI6OnRoaXNW
YWx1ZSgpLCBudWxscHRyKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICAgICBJUiogd3JhcHBlZCA9IGFwcGVuZChLaW5kOjpHZXRXcmFwcGVkLCBJUjo6dGhp
c1ZhbHVlKCksIG51bGxwdHIsIEpTTm9kZTo6b2Zmc2V0T2ZXcmFwcGVkKCkpO1xuIik7CisgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGFwcGVuZChLaW5kOjpDaGVj
a05vZGVGbGFncywgd3JhcHBlZCwgbnVsbHB0ciwgTm9kZTo6bm9kZUZsYWdzTWVtb3J5T2Zmc2V0
KCksIE5vZGU6OklzQ29udGFpbmVyRmxhZyk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgSVIqIHJlc3VsdCA9IGFwcGVuZChLaW5kOjpMb2FkUG9pbnRl
ciwgbnVsbHB0ciwgbnVsbHB0ciwgQ0FTVF9PRkZTRVQoJGludGVyZmFjZU5hbWUqLCBDb250YWlu
ZXJOb2RlKikgKyBDb250YWluZXJOb2RlOjpmaXJzdENoaWxkTWVtb3J5T2Zmc2V0KCkpO1xuIik7
CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIElSKiB3cmFwcGVy
ID0gYXBwZW5kKEtpbmQ6OlRvV3JhcHBlciwgSVI6OnRoaXNWYWx1ZSgpLCByZXN1bHQsIENBU1Rf
T0ZGU0VUKCRpbnRlcmZhY2VOYW1lKiwgU2NyaXB0V3JhcHBhYmxlKikgKyBTY3JpcHRXcmFwcGFi
bGU6Om9mZnNldE9mV3JhcHBlcigpLCBiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihzdGF0aWNfY2Fz
dDxKU0M6OkVuY29kZWRKU1ZhbHVlICgqKShKU0M6OkV4ZWNTdGF0ZSosIHZvaWQqLCB2b2lkKik+
KFtdKEpTQzo6RXhlY1N0YXRlKiBleGVjLCB2b2lkKiB3cmFwcGVkLCB2b2lkKiBub2RlKSB7IHJl
dHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMsIHN0YXRpY19jYXN0PEpTTm9kZSo+
KG5vZGUpLT5nbG9iYWxPYmplY3QoKSwgc3RhdGljX2Nhc3Q8Tm9kZSo+KHdyYXBwZWQpKSk7IH0p
KSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXBw
ZW5kKEtpbmQ6OlJldHVybiwgd3JhcHBlciwgbnVsbHB0cik7XG4iKTsKKyAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIn07XG5cbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJKU0M6OkRPTUpJVDo6R3JhcGgqIGRvbUpJVEVtaXR0ZXJGb3IiIC4gJGludGVyZmFjZS0+
bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
bmFtZSkgLiAiKClcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPCRkb21KSVRDbGFzc05hbWU+IGVtaXR0ZXI7XG4iKTsKKyAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gJmVtaXR0ZXIuZ2V0KCk7XG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgICAgICAgICB9
CisKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkYXR0cmli
dXRlQ29uZGl0aW9uYWxTdHJpbmc7CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
XG4iKTsKQEAgLTUwMDEsMTIgKzUwNTQsMTQgQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVB
cnJheQogICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxCdWlsdGlu
R2VuZXJhdG9yPiI7CiAgICAgICAgIH0gZWxzaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9Db25z
dGFudEludGVnZXIvKSB7CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gIiI7CisgICAg
ICAgIH0gZWxzaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9ET01KSVRBdHRyaWJ1dGUvKSB7Cisg
ICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PEpTQzo6RE9NSklUOjpH
cmFwaCo+IjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUg
PSAic3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+IjsKICAgICAgICAgICAg
ICRzZWNvbmRUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPiI7CiAgICAgICAgICAgICAkaGFzU2V0dGVyID0gInRydWUiOwogICAgICAgICB9Ci0g
ICAgICAgIGlmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQ29uc3RhbnRJbnRlZ2VyLykgeworICAg
ICAgICBpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0YW50SW50ZWdlcnxET01KSVRBdHRy
aWJ1dGUvKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB7IFwiJGtleVwi
LCBAJHNwZWNpYWxzWyRpXSwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykiIC4gJGZpcnN0VGFy
Z2V0VHlwZSAuICIoQCR2YWx1ZTFbJGldKSB9IH0sXG4iKTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHsgXCIka2V5XCIsIEAkc3BlY2lhbHNb
JGldLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3QpIiAuICRmaXJzdFRhcmdldFR5cGUgLiAiKEAk
dmFsdWUxWyRpXSksIChpbnRwdHJfdCkgIiAuICRzZWNvbmRUYXJnZXRUeXBlIC4gIihAJHZhbHVl
MlskaV0pIH0gfSxcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
SURMQXR0cmlidXRlcy50eHQKaW5kZXggZDI4ODVhODQyZDc0NDA5OTFjNjM4Mzk3MGNjN2Q5YjJh
NjVmNDI2ZC4uZmNlZmIwZTg4NzQ3MjhhMTAyMzVmMWQzNDk0YjkwNmFkNzM1NDlmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CkBA
IC01NCw2ICs1NCw3IEBAIEN1c3RvbVJldHVybgogQ3VzdG9tU2V0UHJvdG90eXBlCiBDdXN0b21T
ZXR0ZXIKIEN1c3RvbVRvSlNPYmplY3QKK0RPTUpJVAogRGVsZXRhYmxlCiBEb05vdENoZWNrQ29u
c3RhbnRzCiBEb05vdENoZWNrU2VjdXJpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCmluZGV4IDRhMzBjZWI1OTRjNmFiMDhk
MDBkNDk1NjYxZjNiYjY2MDMzMmEwZDMuLmViYzcyYjhhMmFmM2QwN2Q4OTAzNjhiNDY5NjM2OTc2
ZTliMGZjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vZGUuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBXRUJDT1JFX1RFU1RT
VVBQT1JUX0VYUE9SVCBKU1Rlc3ROb2RlIDogcHVibGljIEpTTm9kZSB7CiAKICAgICBzdGF0aWMg
SlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6SlNUeXBlKEpTTm9kZVR5cGUpLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkRPTU5vZGVUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNW
YWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKaW5kZXggZTI2YzMzMjllZGQyMmQwODgwMTI1YmUyMmZiZDE2MmI2ZTdhYTli
YS4uMzRjZWUxZmQ0MzlmMDlhZGQ4ZDQyYzYwOWQwOWQ1YWMxYWEyZGY2OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CkBAIC0xMjAsNiArMTIwLDQ2IEBAIGNsYXNzIE5vZGUgOiBwdWJsaWMgRXZlbnRUYXJnZXQgewog
ICAgICAgICBET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkgPSAweDEwLAogICAgICAgICBE
T0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQyA9IDB4MjAsCiAgICAgfTsK
KyAgICBlbnVtIE5vZGVGbGFncyB7CisgICAgICAgIElzVGV4dEZsYWcgPSAxLAorICAgICAgICBJ
c0NvbnRhaW5lckZsYWcgPSAxIDw8IDEsCisgICAgICAgIElzRWxlbWVudEZsYWcgPSAxIDw8IDIs
CisgICAgICAgIElzU3R5bGVkRWxlbWVudEZsYWcgPSAxIDw8IDMsCisgICAgICAgIElzSFRNTEZs
YWcgPSAxIDw8IDQsCisgICAgICAgIElzU1ZHRmxhZyA9IDEgPDwgNSwKKyAgICAgICAgQ2hpbGRO
ZWVkc1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgNywKKyAgICAgICAgSW5Eb2N1bWVudEZsYWcgPSAx
IDw8IDgsCisgICAgICAgIElzTGlua0ZsYWcgPSAxIDw8IDksCisgICAgICAgIElzVXNlckFjdGlv
bkVsZW1lbnQgPSAxIDw8IDEwLAorICAgICAgICBIYXNSYXJlRGF0YUZsYWcgPSAxIDw8IDExLAor
ICAgICAgICBJc0RvY3VtZW50RnJhZ21lbnRGbGFnID0gMSA8PCAxMiwKKworICAgICAgICAvLyBU
aGVzZSBiaXRzIGFyZSB1c2VkIGJ5IGRlcml2ZWQgY2xhc3NlcywgcHVsbGVkIHVwIGhlcmUgc28g
dGhleSBjYW4KKyAgICAgICAgLy8gYmUgc3RvcmVkIGluIHRoZSBzYW1lIG1lbW9yeSB3b3JkIGFz
IHRoZSBOb2RlIGJpdHMgYWJvdmUuCisgICAgICAgIElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRG
bGFnID0gMSA8PCAxMywgLy8gRWxlbWVudAorCisgICAgICAgIFN0eWxlQ2hhbmdlTWFzayA9IDEg
PDwgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCArIDEp
IHwgMSA8PCAobm9kZVN0eWxlQ2hhbmdlU2hpZnQgKyAyKSwKKyAgICAgICAgSXNFZGl0aW5nVGV4
dE9yVW5kZWZpbmVkQ3VzdG9tRWxlbWVudEZsYWcgPSAxIDw8IDE3LAorICAgICAgICBIYXNGb2N1
c1dpdGhpbiA9IDEgPDwgMTgsCisgICAgICAgIEhhc1N5bnRoZXRpY0F0dHJDaGlsZE5vZGVzRmxh
ZyA9IDEgPDwgMTksCisgICAgICAgIEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrc0ZsYWcg
PSAxIDw8IDIwLAorICAgICAgICBIYXNFdmVudFRhcmdldERhdGFGbGFnID0gMSA8PCAyMSwKKyAg
ICAgICAgSXNDdXN0b21FbGVtZW50ID0gMSA8PCAyMiwKKyAgICAgICAgSXNJblNoYWRvd1RyZWVG
bGFnID0gMSA8PCAyMywKKyAgICAgICAgSXNNYXRoTUxGbGFnID0gMSA8PCAyNCwKKworICAgICAg
ICBDaGlsZHJlbkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXNGbGFnID0gMSA8PCAyNSwKKyAgICAg
ICAgQ2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXNGbGFnID0gMSA8PCAyNiwKKyAgICAg
ICAgQ2hpbGRyZW5BZmZlY3RlZEJ5SG92ZXJSdWxlc0ZsYWcgPSAxIDw8IDI3LAorCisgICAgICAg
IERpcmVjdENoaWxkTmVlZHNTdHlsZVJlY2FsY0ZsYWcgPSAxIDw8IDI4LAorICAgICAgICBBZmZl
Y3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUgPSAxIDw8IDI5LAorICAgICAgICBTdHlsZUlzQWZm
ZWN0ZWRCeVByZXZpb3VzU2libGluZyA9IDEgPDwgMzAsCisKKyAgICAgICAgU2VsZk9yQW5jZXN0
b3JIYXNEaXJBdXRvRmxhZyA9IDEgPDwgMzEsCisKKyAgICAgICAgRGVmYXVsdE5vZGVGbGFncyA9
IElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnCisgICAgfTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyB2b2lkIHN0YXJ0SWdub3JpbmdMZWFrcygpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyB2b2lkIHN0b3BJZ25vcmluZ0xlYWtzKCk7CkBAIC0xNTUsNiArMTk1LDggQEAgY2xh
c3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7CiAgICAgTm9kZSogcHNldWRvQXdhcmVQcmV2
aW91c1NpYmxpbmcoKSBjb25zdDsKICAgICBOb2RlKiBwc2V1ZG9Bd2FyZUZpcnN0Q2hpbGQoKSBj
b25zdDsKICAgICBOb2RlKiBwc2V1ZG9Bd2FyZUxhc3RDaGlsZCgpIGNvbnN0OworICAgIHN0YXRp
YyBwdHJkaWZmX3Qgbm9kZUZsYWdzTWVtb3J5T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKE5vZGUsIG1fbm9kZUZsYWdzKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3QgcmFyZURhdGFN
ZW1vcnlPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTm9kZSwgbV9kYXRhLm1fcmFy
ZURhdGEpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBVUkwmIGJhc2VVUkkoKSBjb25z
dDsKICAgICAKQEAgLTU2MCw4ICs2MDIsNiBAQCBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFy
Z2V0IHsKICAgICB2b2lkIHVwZGF0ZUFuY2VzdG9yQ29ubmVjdGVkU3ViZnJhbWVDb3VudEZvcklu
c2VydGlvbigpIGNvbnN0OwogCiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCi0gICAgc3Rh
dGljIHB0cmRpZmZfdCBub2RlRmxhZ3NNZW1vcnlPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoTm9kZSwgbV9ub2RlRmxhZ3MpOyB9Ci0gICAgc3RhdGljIHB0cmRpZmZfdCByYXJlRGF0
YU1lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihOb2RlLCBtX2RhdGEubV9y
YXJlRGF0YSk7IH0KICAgICBzdGF0aWMgaW50MzJfdCBmbGFnSXNUZXh0KCkgeyByZXR1cm4gSXNU
ZXh0RmxhZzsgfQogICAgIHN0YXRpYyBpbnQzMl90IGZsYWdJc0VsZW1lbnQoKSB7IHJldHVybiBJ
c0VsZW1lbnRGbGFnOyB9CiAgICAgc3RhdGljIGludDMyX3QgZmxhZ0lzSFRNTCgpIHsgcmV0dXJu
IElzSFRNTEZsYWc7IH0KQEAgLTU3Nyw0NyArNjE3LDYgQEAgY2xhc3MgTm9kZSA6IHB1YmxpYyBF
dmVudFRhcmdldCB7CiAjZW5kaWYgLy8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAKIHByb3Rl
Y3RlZDoKLSAgICBlbnVtIE5vZGVGbGFncyB7Ci0gICAgICAgIElzVGV4dEZsYWcgPSAxLAotICAg
ICAgICBJc0NvbnRhaW5lckZsYWcgPSAxIDw8IDEsCi0gICAgICAgIElzRWxlbWVudEZsYWcgPSAx
IDw8IDIsCi0gICAgICAgIElzU3R5bGVkRWxlbWVudEZsYWcgPSAxIDw8IDMsCi0gICAgICAgIElz
SFRNTEZsYWcgPSAxIDw8IDQsCi0gICAgICAgIElzU1ZHRmxhZyA9IDEgPDwgNSwKLSAgICAgICAg
Q2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgNywKLSAgICAgICAgSW5Eb2N1bWVudEZs
YWcgPSAxIDw8IDgsCi0gICAgICAgIElzTGlua0ZsYWcgPSAxIDw8IDksCi0gICAgICAgIElzVXNl
ckFjdGlvbkVsZW1lbnQgPSAxIDw8IDEwLAotICAgICAgICBIYXNSYXJlRGF0YUZsYWcgPSAxIDw8
IDExLAotICAgICAgICBJc0RvY3VtZW50RnJhZ21lbnRGbGFnID0gMSA8PCAxMiwKLQotICAgICAg
ICAvLyBUaGVzZSBiaXRzIGFyZSB1c2VkIGJ5IGRlcml2ZWQgY2xhc3NlcywgcHVsbGVkIHVwIGhl
cmUgc28gdGhleSBjYW4KLSAgICAgICAgLy8gYmUgc3RvcmVkIGluIHRoZSBzYW1lIG1lbW9yeSB3
b3JkIGFzIHRoZSBOb2RlIGJpdHMgYWJvdmUuCi0gICAgICAgIElzUGFyc2luZ0NoaWxkcmVuRmlu
aXNoZWRGbGFnID0gMSA8PCAxMywgLy8gRWxlbWVudAotCi0gICAgICAgIFN0eWxlQ2hhbmdlTWFz
ayA9IDEgPDwgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlm
dCArIDEpIHwgMSA8PCAobm9kZVN0eWxlQ2hhbmdlU2hpZnQgKyAyKSwKLSAgICAgICAgSXNFZGl0
aW5nVGV4dE9yVW5kZWZpbmVkQ3VzdG9tRWxlbWVudEZsYWcgPSAxIDw8IDE3LAotICAgICAgICBI
YXNGb2N1c1dpdGhpbiA9IDEgPDwgMTgsCi0gICAgICAgIEhhc1N5bnRoZXRpY0F0dHJDaGlsZE5v
ZGVzRmxhZyA9IDEgPDwgMTksCi0gICAgICAgIEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNr
c0ZsYWcgPSAxIDw8IDIwLAotICAgICAgICBIYXNFdmVudFRhcmdldERhdGFGbGFnID0gMSA8PCAy
MSwKLSAgICAgICAgSXNDdXN0b21FbGVtZW50ID0gMSA8PCAyMiwKLSAgICAgICAgSXNJblNoYWRv
d1RyZWVGbGFnID0gMSA8PCAyMywKLSAgICAgICAgSXNNYXRoTUxGbGFnID0gMSA8PCAyNCwKLQot
ICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXNGbGFnID0gMSA8PCAyNSwK
LSAgICAgICAgQ2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXNGbGFnID0gMSA8PCAyNiwK
LSAgICAgICAgQ2hpbGRyZW5BZmZlY3RlZEJ5SG92ZXJSdWxlc0ZsYWcgPSAxIDw8IDI3LAotCi0g
ICAgICAgIERpcmVjdENoaWxkTmVlZHNTdHlsZVJlY2FsY0ZsYWcgPSAxIDw8IDI4LAotICAgICAg
ICBBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUgPSAxIDw8IDI5LAotICAgICAgICBTdHls
ZUlzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZyA9IDEgPDwgMzAsCi0KLSAgICAgICAgU2VsZk9y
QW5jZXN0b3JIYXNEaXJBdXRvRmxhZyA9IDEgPDwgMzEsCi0KLSAgICAgICAgRGVmYXVsdE5vZGVG
bGFncyA9IElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnCi0gICAgfTsKLQogICAgIGJvb2wg
Z2V0RmxhZyhOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyByZXR1cm4gbV9ub2RlRmxhZ3MgJiBtYXNr
OyB9CiAgICAgdm9pZCBzZXRGbGFnKGJvb2wgZiwgTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsgbV9u
b2RlRmxhZ3MgPSAobV9ub2RlRmxhZ3MgJiB+bWFzaykgfCAoLShpbnQzMl90KWYgJiBtYXNrKTsg
fSAKICAgICB2b2lkIHNldEZsYWcoTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsgbV9ub2RlRmxhZ3Mg
fD0gbWFzazsgfSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbAppbmRleCAxMWQxZTZmMzYyM2QwMTAzNzk2M2YxMmNj
Y2MwNjhlZTRlNTAxZWJiLi40Y2U1YTg0ZTNmNDBmZjgwZDcwYTc4NDQxZTMyMDgwMDQ3NjJmMzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaWRsCkBAIC00OSw3ICs0OSw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIHNob3J0IG5vZGVUeXBlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2Rl
PyBwYXJlbnROb2RlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBjaGlsZE5vZGVz
OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBmaXJzdENoaWxkOworICAgIFtET01KSVRd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBmaXJzdENoaWxkOwogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBOb2RlPyBsYXN0Q2hpbGQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHByZXZp
b3VzU2libGluZzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gbmV4dFNpYmxpbmc7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQy
L0NNYWtlTGlzdHMudHh0CmluZGV4IDQ3ZDI5NGRkNDk1YTMxMzdkNzZmZjA4ODZlZjUxM2I3YmZj
NDhlZTYuLjJjMjE5YjVkYTc0NzU5ZDQyMDMxOWQ0YWI4YWRjZjBjYWQyOWM4MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NN
YWtlTGlzdHMudHh0CkBAIC0xNDksNiArMTQ5LDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJF
Q1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vY29sbGVjdG9yL2hhbmRsZXMiCiAg
ICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZmciCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9kaXNhc3NlbWJsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kb21qaXQiCiAgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9oZWFwIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
aW50ZXJwcmV0ZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9qaXQiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290245</attachid>
            <date>2016-09-29 14:40:15 -0700</date>
            <delta_ts>2016-09-30 11:37:17 -0700</delta_ts>
            <desc>Prototype rev7</desc>
            <filename>bug-162544-20160929143713.patch</filename>
            <type>text/plain</type>
            <size>154311</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YzI5ZjVkOGZhNTE1ZjA0MjRhZmNkNTEzZWI1ZDFmZDE1ODZlYzZiLi4wZDFmYWViZDI2MTY4ZGVm
NWJjNGFhYTRhYzgxZDQ4MWNjNzg0OTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNzkgQEAKKzIwMTYtMDktMjkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0RhdGFGb3JtYXQuaDoKKyAgICAgICAgKiBieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2spOgorICAgICAgICAqIGJ5dGVjb2Rl
L0dldEJ5SWRWYXJpYW50LmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OkdldEJ5
SWRWYXJpYW50KToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6Om9wZXJhdG9yPSk6Cisg
ICAgICAgIChKU0M6OkdldEJ5SWRWYXJpYW50OjphdHRlbXB0VG9NZXJnZSk6CisgICAgICAgIChK
U0M6OkdldEJ5SWRWYXJpYW50OjpkdW1wSW5Db250ZXh0KToKKyAgICAgICAgKiBieXRlY29kZS9H
ZXRCeUlkVmFyaWFudC5oOgorICAgICAgICAoSlNDOjpHZXRCeUlkVmFyaWFudDo6ZG9tSklUKToK
KyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmludHJpbnNpYyk6IERlbGV0ZWQuCisgICAg
ICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nl
c3NDYXNlOjpnZXQpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpjbG9uZSk6CisgICAgICAg
ICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2Fz
ZTo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6UmFyZURhdGE6OlJhcmVEYXRh
KToKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgIChKU0M6
OmR1bXBTcGVjdWxhdGlvbik6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJvbVN0cnVjdHVy
ZSk6CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoKKyAgICAgICAgKEpTQzo6
aXNET01Ob2RlU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjppc0RPTUVsZW1lbnRTcGVjdWxh
dGlvbik6CisgICAgICAgIChKU0M6OmlzRE9NRG9jdW1lbnRXcmFwcGVyU3BlY3VsYXRpb24pOgor
ICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaDoKKyAgICAgICAgKEpTQzo6VmFsdWVS
ZWNvdmVyeTo6ZGlzcGxhY2VkSW5KU1N0YWNrKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RI
ZWFwLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46
OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVET01KSVRHZXR0ZXIpOgor
ICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVHZXRCeUlkKToKKyAgICAg
ICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUp
OgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyc0V4aXRTdGF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6Y2xvYmJlcnNFeGl0U3RhdGUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAg
ICogZGZnL0RGR0dlbmVyYXRpb25JbmZvLmg6CisgICAgICAgIChKU0M6OkRGRzo6R2VuZXJhdGlv
bkluZm86OmluaXRPcGFxdWVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpHZW5lcmF0aW9u
SW5mbzo6ZmlsbE9wYXF1ZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpERkc6OkdlbmVyYXRpb25J
bmZvOjppbml0U3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6R2VuZXJhdGlv
bkluZm86OmZpbGxTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc09wYXF1ZVBvaW50ZXJSZXN1bHQpOgorICAgICAg
ICAoSlNDOjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZURPTU5vZGUpOgorICAgICAgICAoSlND
OjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZURPTUVsZW1lbnQpOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcik6CisgICAgICAgIChK
U0M6OkRGRzo6Tm9kZTo6aGFzT3BhcXVlUG9pbnRlck9mZnNldCk6CisgICAgICAgIChKU0M6OkRG
Rzo6Tm9kZTo6b3BhcXVlUG9pbnRlck9mZnNldCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6
aGFzTm9kZUZsYWdzT3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6bm9kZUZsYWdz
T3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzU2xvd1RvSlNPcGVyYXRpb24p
OgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OnNsb3dUb0pTT3BlcmF0aW9uKToKKyAgICAgICAg
KEpTQzo6REZHOjpOb2RlOjpoYXNTdG9yYWdlUmVzdWx0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpOb2RlOjpzaG91bGRTcGVjdWxhdGVBcnJheSk6IERlbGV0ZWQuCisgICAgICAgICog
ZGZnL0RGR05vZGVGbGFncy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZHVtcE5vZGVGbGFncyk6
CisgICAgICAgICogZGZnL0RGR05vZGVGbGFncy5oOgorICAgICAgICAoSlNDOjpERkc6OmNhbm9u
aWNhbFJlc3VsdFJlcHJlc2VudGF0aW9uKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoK
KyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAg
ICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6U2FmZVRvRXhl
Y3V0ZUVkZ2U6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUp
OgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OnNpbGVudFNhdmVQbGFuRm9yR1BSKToKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbE9wYXF1ZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjaGVja0dlbmVyYXRlZFR5cGVGb3JUb0ludDMyKToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrTm9kZUZsYWdzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRPcGFxdWVQb2ludGVy
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldERPTVdyYXBw
ZWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9ET01XcmFw
cGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NTm9k
ZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURPTUVsZW1l
bnQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Eb2N1
bWVudFdyYXBwZXIpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpzcGlsbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6Om9wYXF1ZVBvaW50ZXJSZXN1bHQpOgorICAgICAgICAoSlNDOjpERkc6Ok9wYXF1ZVBv
aW50ZXJPcGVyYW5kOjpPcGFxdWVQb2ludGVyT3BlcmFuZCk6CisgICAgICAgIChKU0M6OkRGRzo6
T3BhcXVlUG9pbnRlck9wZXJhbmQ6On5PcGFxdWVQb2ludGVyT3BlcmFuZCk6CisgICAgICAgIChK
U0M6OkRGRzo6T3BhcXVlUG9pbnRlck9wZXJhbmQ6OmVkZ2UpOgorICAgICAgICAoSlNDOjpERkc6
Ok9wYXF1ZVBvaW50ZXJPcGVyYW5kOjpub2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpPcGFxdWVQ
b2ludGVyT3BlcmFuZDo6Z3ByKToKKyAgICAgICAgKEpTQzo6REZHOjpPcGFxdWVQb2ludGVyT3Bl
cmFuZDo6dXNlKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3RvcmFnZVJl
c3VsdCk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsSlNWYWx1ZSk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVJbnQzMkludGVybmFs
KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQm9vbGVh
bik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6ZmlsbEpTVmFsdWUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpmaWxsU3BlY3VsYXRlSW50MzJJbnRlcm5hbCk6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUJvb2xlYW4pOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVHlwZUNoZWNrSG9pc3Rp
bmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6VHlwZUNoZWNrSG9pc3RpbmdQaGFzZTo6
aWRlbnRpZnlSZWR1bmRhbnRTdHJ1Y3R1cmVDaGVja3MpOgorICAgICAgICAoSlNDOjpERkc6OlR5
cGVDaGVja0hvaXN0aW5nUGhhc2U6OmlkZW50aWZ5UmVkdW5kYW50QXJyYXlDaGVja3MpOgorICAg
ICAgICAqIGRmZy9ERkdVc2VLaW5kLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6
CisgICAgICAgICogZGZnL0RGR1VzZUtpbmQuaDoKKyAgICAgICAgKEpTQzo6REZHOjp0eXBlRmls
dGVyRm9yKToKKyAgICAgICAgKEpTQzo6REZHOjppc0NlbGwpOgorICAgICAgICAqIGRvbWppdC9E
T01KSVRHcmFwaC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RWxlbWVudEN1c3RvbS5oLgorICAgICAgICAoSlNDOjpET01KSVQ6OkdyYXBoOjplZGdlRmlsdGVy
KToKKyAgICAgICAgKiBkb21qaXQvRE9NSklUR3JhcGguaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oLgorICAgICAgICAoSlNDOjpET01K
SVQ6OkdyYXBoOjpHcmFwaCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6On5HcmFwaCk6
CisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OnNwZWN1bGF0ZWRDaGlsZFR5cGUpOgorICAg
ICAgICAoSlNDOjpET01KSVQ6OkdyYXBoOjpnZXR0ZXIpOgorICAgICAgICAoSlNDOjpET01KSVQ6
OkdyYXBoOjpzZXR0ZXIpOgorICAgICAgICAqIGRvbWppdC9ET01KSVRJUi5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oLgorICAgICAg
ICAoSlNDOjpET01KSVQ6OklSOjp0aGlzVmFsdWUpOgorICAgICAgICAqIGRvbWppdC9ET01KSVRJ
Ui5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3Vz
dG9tLmguCisgICAgICAgIChKU0M6OkRPTUpJVDo6SVI6OklSKToKKyAgICAgICAgKiBkb21qaXQv
RE9NSklUSVJCdWlsZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRWxlbWVudEN1c3RvbS5oLgorICAgICAgICAoSlNDOjpET01KSVQ6OklSQnVpbGRlcjo6YXBw
ZW5kKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpJUkJ1aWxkZXI6OmlyKToKKyAgICAgICAgKiBm
dGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmls
aXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0
bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0IzOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmNvbXBpbGVMb2FkT3BhcXVlUG9pbnRlcik6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBpbGVDaGVja05vZGVGbGFncyk6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmNvbXBpbGVHZXRET01XcmFwcGVkKToKKyAgICAgICAgKEpTQzo6RlRM
OjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVRvRE9NV3JhcHBlcik6CisgICAgICAgIChKU0M6
OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd09wYXF1ZVBvaW50ZXIpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0IzOjppc05vdERPTU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRG
Rzo6TG93ZXJERkdUb0IzOjppc05vdERPTUVsZW1lbnQpOgorICAgICAgICAoSlNDOjpGVEw6OkRG
Rzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVET01Ob2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlRE9NRWxlbWVudCk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcik6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNldE9wYXF1ZVBvaW50ZXIpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlVW5yZWFjaGFibGUpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVT
ZXRPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
OjpzZXRTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6
CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZET01Ob2RlKToKKyAgICAg
ICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdERPTU5vZGUpOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRE9NRWxlbWVudCk6CisgICAgICAgIChKU0M6
OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RET01FbGVtZW50KToKKyAgICAgICAgKEpTQzo6
QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgICog
aml0L0pJVE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAg
IChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgICogcnVudGltZS9DdXN0b21HZXR0ZXJT
ZXR0ZXIuaDoKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNpYy5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmZpbGxDdXN0b21HZXR0ZXJQ
cm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlLmg6CisgICAgICAgICogcnVu
dGltZS9Mb29rdXAuaDoKKyAgICAgICAgKEpTQzo6SGFzaFRhYmxlVmFsdWU6OmRvbUpJVCk6Cisg
ICAgICAgIChKU0M6OmdldFN0YXRpY1Byb3BlcnR5U2xvdEZyb21UYWJsZSk6CisgICAgICAgIChK
U0M6OnB1dEVudHJ5KToKKyAgICAgICAgKEpTQzo6cmVpZnlTdGF0aWNQcm9wZXJ0eSk6CisgICAg
ICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90
Ojpkb21KSVQpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eVNsb3Q6OnNldENhY2hlYWJsZUN1c3Rv
bSk6CisKIDIwMTYtMDktMjggIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyIHdpbGwgcmV0dXJuIGBudWxsYCB3
aGVuIGl0IHNob3VsZCBub3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYmE3YTU1NzVhNDZkOTVjZmU2Y2FjMDUzODUxYzVmN2U5
YzFhNjMyMy4uOWU5NjgxZTQ2ZTJjYmUyNWYwZGEyYzdlZjk5Mjc4ZGFjMTZlZTI3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxNi0wOS0yOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KKworICAgICAgICBbQmluZGluZ10gSW50cm9kdWNpbmcgRE9NIGJpbmRpbmcgSklU
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1NDQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9T
dGRMaWJFeHRyYXMuaDoKKwogMjAxNi0wOS0yOCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmUtZW5hYmxlIFN0cmluZ1ZpZXcgbGlmZS1jeWNsZSBjaGVja2luZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMDM3NTU5MjkwYTg5MDhhODRlNWZkYzFjMzJmYjAyMWUzZWI0Y2Q4Li44
ODI4ZGM3OTRjNGYyNjczYmM0ZDEzNDE2NzkxYzlkMGEzODZlYmM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDAgQEAKKzIwMTYtMDktMjkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBGb3J3YXJk
aW5nSGVhZGVycy9kb21qaXQvRE9NSklUR3JhcGguaDogQWRkZWQuCisgICAgICAgICogUGxhdGZv
cm1FZmwuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogUGxh
dGZvcm1NYWMuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RPTVdyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6b2Zmc2V0T2ZX
cmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6d3JhcHBlZCk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oOgorICAgICAgICAo
V2ViQ29yZTo6anNEb2N1bWVudENhc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRWxlbWVu
dEN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6anNFbGVtZW50Q2FzdCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmg6CisgICAgICAgIChXZWJDb3JlOjpqc05vZGVDYXN0
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFdyYXBwYWJsZTo6b2Zmc2V0T2ZXcmFwcGVyKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdldEpTQ0F0dHJpYnV0
ZXNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2Vu
ZXJhdGVQcm9wZXJ0aWVzSGFzaFRhYmxlKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRp
b24pOgorICAgICAgICAoR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5KToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmg6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6Om5vZGVGbGFnc01lbW9yeU9mZnNldCk6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlOjpyYXJlRGF0YU1lbW9yeU9mZnNldCk6CisgICAgICAgICogZG9tL05vZGUuaWRs
OgorCiAyMDE2LTA5LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgRHJvcCBmaXJzdCAnc3RhdGUnIHBhcmFtZXRlciB0byBKU0RPTVdpbmRvdzo6dG9XcmFwcGVk
KCkgLyBKU0V2ZW50VGFyZ2V0Ojp0b1dyYXBwZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDcyN2IyODhmODNl
N2NiOTkwYzUzZDExNDhlNWFmZjU1N2I0Mzc1ZTIuLjUzOGJlZjExNGY5NDdhZGZkZmQzMzZiZTI5
MWNmNjA4MmIyNWZjZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNi0wOS0yOSAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbQmluZGlu
Z10gSW50cm9kdWNpbmcgRE9NIGJpbmRpbmcgSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorCiAyMDE2LTA5LTI4ICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV0tTaGFyZWRB
UElDYXN0IHNob3VsZCBub3Qgd2FybiBhYm91dCBhY2NlcHRhYmxlIGN1c3RvbSBjb250ZXh0IG1l
bnUgdGFnIHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGE5OGQ4
NjQ3ODljOTYzMjkwMzdjYTJhMTNkYWQ0Yjc4NDgzMmEzZjYuLjQwZWMyMTFiZjNlMTU4NDliNjBm
MWI1Y2UyNWVlNDQxYWIyNWI5NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTE2LDYgKzE2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVjb2RlIgogICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vYnl0ZWNvbXBpbGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgor
ICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZG9taml0IgogICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vZGlzYXNzZW1ibGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1i
bGVyL3VkaXM4NiIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Z0bCIKQEAgLTQwNSw2ICs0
MDYsOSBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGRpc2Fzc2VtYmxlci91ZGlz
ODYvdWRpczg2X3N5bi1pbnRlbC5jCiAgICAgZGlzYXNzZW1ibGVyL3VkaXM4Ni91ZGlzODZfc3lu
LmMKIAorICAgIGRvbWppdC9ET01KSVRHcmFwaC5jcHAKKyAgICBkb21qaXQvRE9NSklUSVIuY3Bw
CisKICAgICBmdGwvRlRMQWJzdHJhY3RIZWFwLmNwcAogICAgIGZ0bC9GVExBYnN0cmFjdEhlYXBS
ZXBvc2l0b3J5LmNwcAogICAgIGZ0bC9GVExBdmFpbGFibGVSZWNvdmVyeS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjlmZWMyY2U5ZGRlYWEzYjlmZTgwMjlmNTAzYzNlYzgz
ZjI2MzMwYy4uZjcxMWZjNjc1MzllMGEyNjI1NTI5MTI4YzViMmE3OTZlNTllMDU2NSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxNiw3ICszMTYsNyBAQAogCQkwRjMzRkNGQjFD
MTYyNUJFMDAzMjNGNjcgLyogQjNDRkcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMzNGQ0Y5MUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0NGRy5oICovOyB9
OwogCQkwRjMzRkNGQzFDMTYyNUJFMDAzMjNGNjcgLyogQjNEb21pbmF0b3JzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMzRkNGQTFDMTYyNUJFMDAz
MjNGNjcgLyogQjNEb21pbmF0b3JzLmggKi87IH07CiAJCTBGMzRCMTQ5MTZENDIwMTAwMDFDREE1
QSAvKiBERkdVc2VLaW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMzRCMTQ3MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmNwcCAqLzsg
fTsKLQkJMEYzNEIxNEExNkQ0MjAxMzAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzRCMTQ4MTZENDIwMEUwMDFD
REE1QSAvKiBERkdVc2VLaW5kLmggKi87IH07CisJCTBGMzRCMTRBMTZENDIwMTMwMDFDREE1QSAv
KiBERkdVc2VLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjM0QjE0ODE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMzczMDhDMUMwQkQyOTEw
MDA1MkJGQSAvKiBCM1BoaUNoaWxkcmVuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzczMDhBMUMwQkQyOTEwMDA1MkJGQSAvKiBCM1BoaUNoaWxk
cmVuLmNwcCAqLzsgfTsKIAkJMEYzNzMwOEQxQzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRy
ZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzcz
MDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBCM1BoaUNoaWxkcmVuLmggKi87IH07CiAJCTBGMzczMDhG
MUMwQ0Q2ODUwMDA1MkJGQSAvKiBEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzczMDhFMUMw
Q0Q2ODUwMDA1MkJGQSAvKiBEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCAqLzsg
fTsKQEAgLTU4Nyw3ICs1ODcsNyBAQAogCQkwRkEyQzE3QjE3RDdDRjg0MDA5RDAxNUYgLyogVGVz
dFJ1bm5lclV0aWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGQTJDMTc5MTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuY3BwICov
OyB9OwogCQkwRkEyQzE3QzE3RDdDRjg0MDA5RDAxNUYgLyogVGVzdFJ1bm5lclV0aWxzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkEyQzE3QTE3RDdD
Rjg0MDA5RDAxNUYgLyogVGVzdFJ1bm5lclV0aWxzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZBNTgxQkExNTBFOTUyQzAwQjlBMkQ5IC8qIERG
R05vZGVGbGFncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkE1ODFCNzE1MEU5NTJBMDBCOUEyRDkgLyogREZHTm9kZUZsYWdzLmNwcCAqLzsgfTsK
LQkJMEZBNTgxQkIxNTBFOTUzMDAwQjlBMkQ5IC8qIERGR05vZGVGbGFncy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBNTgxQjgxNTBFOTUyQTAwQjlB
MkQ5IC8qIERGR05vZGVGbGFncy5oICovOyB9OworCQkwRkE1ODFCQjE1MEU5NTMwMDBCOUEyRDkg
LyogREZHTm9kZUZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkE1ODFCODE1MEU5NTJBMDBCOUEyRDkgLyogREZHTm9kZUZsYWdzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZBNTgxQkMxNTBF
OTUzMDAwQjlBMkQ5IC8qIERGR05vZGVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkE1ODFCOTE1MEU5NTJBMDBCOUEyRDkgLyogREZHTm9kZVR5
cGUuaCAqLzsgfTsKIAkJMEZBN0E4RUIxOEI0MTNDODAwNTIzNzFEIC8qIFJlZy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkE3QThFOTE4QjQxM0M4
MDA1MjM3MUQgLyogUmVnLmNwcCAqLzsgfTsKIAkJMEZBN0E4RUMxOEI0MTNDODAwNTIzNzFEIC8q
IFJlZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZB
N0E4RUExOEI0MTNDODAwNTIzNzFEIC8qIFJlZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNDQ0LDcgKzE0NDQsNyBAQAogCQk4NkVDOUREMDEz
MjhERjgyMDAyQjJBRDcgLyogREZHT3BlcmF0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQzAxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09w
ZXJhdGlvbnMuaCAqLzsgfTsKIAkJODZFQzlERDExMzI4REY4MjAwMkIyQUQ3IC8qIERGR1JlZ2lz
dGVyQmFuay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODZFQzlEQzExMzI4REY4MjAwMkIyQUQ3IC8qIERGR1JlZ2lzdGVyQmFuay5oICovOyB9OwogCQk4
NkVDOUREMjEzMjhERjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQzIxMzI4REY4MjAw
MkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmNwcCAqLzsgfTsKLQkJODZFQzlERDMxMzI4REY4
MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMzEzMjhERjgyMDAyQjJBRDcgLyogREZHU3Bl
Y3VsYXRpdmVKSVQuaCAqLzsgfTsKKwkJODZFQzlERDMxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1Nw
ZWN1bGF0aXZlSklULmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NkVDOURDMzEzMjhERjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NkVDQTNFQTEz
MkRFRjFDMDAyQjJBRDcgLyogREZHTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODZFQ0EzRTkxMzJERUYxQzAwMkIyQUQ3IC8qIERGR05vZGUuaCAq
LzsgfTsKIAkJODZFQ0EzRkExMzJERjI1QTAwMkIyQUQ3IC8qIERGR1Njb3JlQm9hcmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUNBM0Y5MTMyREYy
NUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggKi87IH07CiAJCTg2RjNFRUJEMTY4Q0RFOTMw
MDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZGM0VFQjkxNjhDQ0Y3NTAwNzdCOTJBIC8qIE9iakND
YWxsYmFja0Z1bmN0aW9uLmggKi87IH07CkBAIC0yMDY5LDYgKzIwNjksNyBAQAogCQlFMzM2MzdB
NTFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM2MzdBMzFCNjMyMjAyMDBFRTA4NDAgLyog
UmVmbGVjdE9iamVjdC5jcHAgKi87IH07CiAJCUUzMzYzN0E2MUI2MzIyMDIwMEVFMDg0MCAvKiBS
ZWZsZWN0T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzM2MzdBNDFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzM0IzRTI2MUI3QUJE
NzUwMDQ4REIyRSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzNCM0UyNTFCN0FCRDc1
MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oICovOyB9Owor
CQlFMzNCOTk5NjFEOUQ4MkJGMDAyNkY5NTAgLyogRE9NSklUSVIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RkFFMkMxRDlEODI2MzAwRDEwMkM4
IC8qIERPTUpJVElSLmNwcCAqLzsgfTsKIAkJRTMzRThEMUMxQjkwMTNDMzAwMzQ2QjUyIC8qIEpT
TmF0aXZlU3RkRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMzRThEMUExQjkwMTNDMzAwMzQ2QjUyIC8qIEpTTmF0aXZlU3RkRnVuY3Rp
b24uY3BwICovOyB9OwogCQlFMzNFOEQxRDFCOTAxM0MzMDAzNDZCNTIgLyogSlNOYXRpdmVTdGRG
dW5jdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTMzRThEMUIxQjkwMTNDMzAwMzQ2QjUyIC8qIEpTTmF0aXZlU3RkRnVuY3Rpb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzNFOEQyMDFCOTAx
M0RFMDAzNDZCNTIgLyogTmF0aXZlU3RkRnVuY3Rpb25DZWxsLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzM0U4RDFFMUI5MDEzREUwMDM0NkI1MiAv
KiBOYXRpdmVTdGRGdW5jdGlvbkNlbGwuY3BwICovOyB9OwpAQCAtMjA5OCw2ICsyMDk5LDEwIEBA
CiAJCUUzRDIzOUM5MUI4MjlDMUMwMEJCRUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QyMzlDNzFCODI5
QzFDMDBCQkVGNjcgLyogSlNNb2R1bGVFbnZpcm9ubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzRUY4ODc0MUI2NkRGMjMwMDNGMjZDQiAv
KiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzRUY4ODcyMUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmNwcCAqLzsgfTsKIAkJRTNFRjg4NzUxQjY2REYyMzAwM0YyNkNCIC8qIEpT
UHJvcGVydHlOYW1lSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzRUY4ODczMUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJRTNGRjc1MzIxRDlDRUExNTAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRkY3NTJFMUQ5Q0VBMTIwMEM3
RTE2RCAvKiBET01KSVRHcmFwaC5jcHAgKi87IH07CisJCUUzRkY3NTMzMUQ5Q0VBMTgwMEM3RTE2
RCAvKiBET01KSVRHcmFwaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTNGRjc1MkYxRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTNGRjc1MzQxRDlD
RUExRTAwQzdFMTZEIC8qIERPTUpJVElSLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFM0ZGNzUzMDFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUSVIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0ZGNzUz
NTFEOUNFQTI1MDBDN0UxNkQgLyogRE9NSklUSVJCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ZGNzUzMTFEOUNFQTEyMDBDN0UxNkQgLyog
RE9NSklUSVJCdWlsZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTQ5REMxNkIxMkVGMjkzRTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2Fj
aGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5
REMxNTUxMkVGMjc3MjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwICovOyB9Owog
CQlFNDlEQzE2QzEyRUYyOTRFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5REMxNTExMkVGMjcy
MjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2RDEyRUYyOTUzMDAxODRBMUYgLyog
U291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC00MzcxLDYgKzQzNzYsNyBAQAogCQlFMzNGNTA4MzFCODQzN0EwMDA0MTM4NTYgLyog
SlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzM0Y1MDg2MUI4NDQ5RUYwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZUNvbnN0
cnVjdG9yLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ludGVybmFs
UHJvbWlzZUNvbnN0cnVjdG9yLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MzNGNTA4ODFCODQ0QTFBMDA0MTM4NTYgLyogSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IuanMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBJbnRlcm5hbFByb21pc2VD
b25zdHJ1Y3Rvci5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM0RkFFMkMxRDlE
ODI2MzAwRDEwMkM4IC8qIERPTUpJVElSLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERPTUpJVElSLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1
NDYyMkExQjYwNjVEMTAwNTQ1Mzg2IC8qIENvbnN0cnVjdEFiaWxpdHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29uc3RydWN0QWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMzU1RjM1MDFCN0RDODUzMDBDNTBEQzUgLyogTW9kdWxlTG9hZGVyUHJv
dG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUxv
YWRlclByb3RvdHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTVGMzUx
MUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVMb2FkZXJQcm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlTG9hZGVyUHJvdG90eXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC00MzkzLDYgKzQzOTksMTAgQEAKIAkJRTNEMjY0MkExRDM4QzA0
MjAwMEJFMTc0IC8qIEJ5dGVjb2RlUmV3cml0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQnl0ZWNvZGVSZXdyaXRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFM0VGODg3MjFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFRjg4NzMxQjY2REYyMzAw
M0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFM0ZGNzUyRTFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGguY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NSklUR3JhcGguY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0ZGNzUyRjFEOUNFQTEyMDBDN0UxNkQgLyogRE9N
SklUR3JhcGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUR3JhcGgu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNGRjc1MzAxRDlDRUExMjAwQzdFMTZE
IC8qIERPTUpJVElSLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVElS
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRkY3NTMxMUQ5Q0VBMTIwMEM3RTE2
RCAvKiBET01KSVRJUkJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NSklUSVJCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0OURDMTQ5
MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE1MTEyRUYyNzIyMDAxODRBMUYgLyogU291cmNl
UHJvdmlkZXJDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQ
cm92aWRlckNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0OURDMTU1MTJF
RjI3NzIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDY1MCw2ICs0NjYwLDcgQEAKIAkJCQk2NTBGREY4RDA5RDBG
Q0E3MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTg2RUM5REIzMTMyOERGNDQw
MDJCMkFENyAvKiBkZmcgKi8sCiAJCQkJMEZGNDI3MkUxNThFQkNDRTAwNENCOUZGIC8qIGRpc2Fz
c2VtYmxlciAqLywKKwkJCQlFM0ZGNzUyRDFEOUNFOUVBMDBDN0UxNkQgLyogZG9taml0ICovLAog
CQkJCTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAvKiBGcmFtZXdvcmtzICovLAogCQkJCTBGRUEw
OUZDMTcwNTEzN0YwMEJCNzIyQyAvKiBmdGwgKi8sCiAJCQkJMTQyRTMxMkExMzRGRjBBNjAwQUZB
REI1IC8qIGhlYXAgKi8sCkBAIC03MTQ5LDYgKzcxNjAsMTggQEAKIAkJCXBhdGggPSBjb2RlZ2Vu
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTNGRjc1MkQxRDlDRTlFQTAw
QzdFMTZEIC8qIGRvbWppdCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJRTNGRjc1MkUxRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmNwcCAqLywK
KwkJCQlFM0ZGNzUyRjFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGguaCAqLywKKwkJCQlF
MzRGQUUyQzFEOUQ4MjYzMDBEMTAyQzggLyogRE9NSklUSVIuY3BwICovLAorCQkJCUUzRkY3NTMw
MUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRJUi5oICovLAorCQkJCUUzRkY3NTMxMUQ5Q0VBMTIw
MEM3RTE2RCAvKiBET01KSVRJUkJ1aWxkZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gZG9taml0
OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIC8qIEVuZCBQQlhHcm91cCBzZWN0
aW9uICovCiAKIC8qIEJlZ2luIFBCWEhlYWRlcnNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTcx
OTYsNiArNzIxOSw3IEBACiAJCQkJMEZFQzg1NzcxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckZyZXF1
ZW50ZWRCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1NzkxQkRBQ0RDNzAwODBGRjc0
IC8qIEFpckdlbmVyYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU3QTFCREFDREM3MDA4
MEZGNzQgLyogQWlyR2VuZXJhdGlvbkNvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzRkY3
NTM1MUQ5Q0VBMjUwMEM3RTE2RCAvKiBET01KSVRJUkJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRUM4NTdDMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJIYW5kbGVDYWxsZWVTYXZlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1N0UxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckluc2VydGlv
blNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1ODAxQkRBQ0RDNzAwODBGRjc0IC8qIEFp
ckluc3QuaCBpbiBIZWFkZXJzICovLApAQCAtNzU5Myw2ICs3NjE3LDcgQEAKIAkJCQkwRkMyMENC
QTE4NTU2QTM1MDBDOUU5NTQgLyogREZHU1NBTG93ZXJpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY5RkI0RjUxN0ZDQjkxNzAwQ0I2N0Y4IC8qIERGR1N0YWNrTGF5b3V0UGhhc2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNEYyOUUwMThCNkFEMUMwMDU3QkMxNSAvKiBERkdTdGF0aWNF
eGVjdXRpb25Db3VudEVzdGltYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNGRjc1
MzMxRDlDRUExODAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjlFMzI2NDFCMDVBQjA0MDA4MDFFRDUgLyogREZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzIwQ0I2MTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJl
bmd0aFJlZHVjdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYzOTQ3ODE1RENFMzRC
MDA2QTU5N0MgLyogREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC04MDUwLDYgKzgwNzUsNyBAQAogCQkJCTk2MDA5N0E2MEVCQUJCNTgwMDdBNzI5NyAvKiBMYWJl
bFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI1NDY3NzE0RjU5QjVDMDAyQzI5ODkgLyog
TGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEIwMUJE
NTk5NEUwMEY0NTc1QyAvKiBsYXp5d3JpdGVyLnB5IGluIEhlYWRlcnMgKi8sCisJCQkJRTNGRjc1
MzQxRDlDRUExRTAwQzdFMTZEIC8qIERPTUpJVElSLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4
QzQzMTBFMTZGNUNEMDBCMzQ0NjAgLyogTGV4ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzRjQw
RTkzMUQ1QTRBQjMwMDk5QTFCNiAvKiBXQVNNQjNJUkdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxOEM1MkUwRTE2RkNFMTAwQjM0NDYwIC8qIExleGVyLmx1dC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC05MzcwLDYgKzkzOTYsNyBAQAogCQkJCTBGMjRFNTRDMTdFRTI3NDkwMEFCQjIxNyAv
KiBKSVRPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTUxM0E4MUQ1QTY4Q0Qw
MEMzMkJEOCAvKiBGcmVlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTk5QjI0QTFDMjRD
M0Q3MDBDODIxNTkgLyogSklUTmVnR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUz
M0I5OTk2MUQ5RDgyQkYwMDI2Rjk1MCAvKiBET01KSVRJUi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4NkNDODVDNDBFRTdBODk0MDAyODg2ODIgLyogSklUUHJvcGVydHlBY2Nlc3MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTdDMUU4RTQxMTJFNzJFRjAwQTM3Rjk4IC8qIEpJVFByb3BlcnR5QWNj
ZXNzMzJfNjQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCNDE1ODQxRDc4RkI0QzAwREY4RDA5
IC8qIEFycmF5Q29udmVudGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05NDU5LDYgKzk0ODYs
NyBAQAogCQkJCTE0ODc0QUU1MTVFQkRFNEEwMDJFMzU4NyAvKiBKU1Njb3BlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE3QzBDNEFEMTY4MTA2N0UwMDE3MDExRCAvKiBKU1NjcmlwdFJlZi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjkxOUQxMDE1N0YzMzI5MDA0QTRFN0QgLyogSlNTZWdtZW50
ZWRWYXJpYWJsZU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFM0ZGNzUzMjFEOUNFQTE1
MDBDN0UxNkQgLyogRE9NSklUR3JhcGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJREMxN0U4MTcx
QzlDOTFENjAwOEE2QUIzIC8qIFNoYWRvd0NoaWNrZW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTcyOTlEOUQxN0QxMjgzNzAwNUY1RkY5IC8qIEpTU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3OTBERDZGMTgyRjQ5OTcwMDU4ODgwNyAvKiBKU1NldEl0ZXJhdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RhdGFGb3Jt
YXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmgKaW5kZXgg
MjJjNjQ5MjI2NzI5ZWZiMTAxNzY4MmMxZmUxNGFjMDhjMjdjZTNjMi4uYzBmNmNkODNmNGNlNzc5
OTk5NmY1MDZjZWI1NGFlYzRhZDNlZTUyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0RhdGFGb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvRGF0YUZvcm1hdC5oCkBAIC00NCw3ICs0NCw4IEBAIGVudW0gRGF0YUZvcm1hdCB7CiAg
ICAgRGF0YUZvcm1hdEJvb2xlYW4gPSA1LAogICAgIERhdGFGb3JtYXRDZWxsID0gNiwKICAgICBE
YXRhRm9ybWF0U3RvcmFnZSA9IDcsCi0gICAgRGF0YUZvcm1hdEpTID0gOCwKKyAgICBEYXRhRm9y
bWF0T3BhcXVlUG9pbnRlciA9IDgsCisgICAgRGF0YUZvcm1hdEpTID0gMTYsCiAgICAgRGF0YUZv
cm1hdEpTSW50MzIgPSBEYXRhRm9ybWF0SlMgfCBEYXRhRm9ybWF0SW50MzIsCiAgICAgRGF0YUZv
cm1hdEpTRG91YmxlID0gRGF0YUZvcm1hdEpTIHwgRGF0YUZvcm1hdERvdWJsZSwKICAgICBEYXRh
Rm9ybWF0SlNDZWxsID0gRGF0YUZvcm1hdEpTIHwgRGF0YUZvcm1hdENlbGwsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKaW5kZXggMTViM2M4
MTNjYjhiZTgwNzMzZTNiNDE1ZjZhOThlN2Y5YWM4ZGQ0Zi4uNDE4MmI5MWQ2Zjc3YzRkMTQ4OTg3
NmRiYjA4MzczMDAwZmVlZjg0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9HZXRCeUlkU3RhdHVzLmNwcApAQCAtMzcsNiArMzcsOSBAQAogI2luY2x1ZGUgPHd0Zi9M
aXN0RHVtcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworY2xhc3Mg
R3JhcGg7Cit9CiAKIGJvb2wgR2V0QnlJZFN0YXR1czo6YXBwZW5kVmFyaWFudChjb25zdCBHZXRC
eUlkVmFyaWFudCYgdmFyaWFudCkKIHsKQEAgLTIxNSw2ICsyMTgsNyBAQCBHZXRCeUlkU3RhdHVz
IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNr
KAogICAgICAgICAgICAgY2FzZSBDb21wbGV4R2V0U3RhdHVzOjpJbmxpbmVhYmxlOiB7CiAgICAg
ICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rU3RhdHVzPiBjYWxsTGlua1N0YXR1
czsKICAgICAgICAgICAgICAgICBKU0Z1bmN0aW9uKiBpbnRyaW5zaWNGdW5jdGlvbiA9IG51bGxw
dHI7CisgICAgICAgICAgICAgICAgRE9NSklUOjpHcmFwaCogZG9tSklUID0gbnVsbHB0cjsKIAog
ICAgICAgICAgICAgICAgIHN3aXRjaCAoYWNjZXNzLnR5cGUoKSkgewogICAgICAgICAgICAgICAg
IGNhc2UgQWNjZXNzQ2FzZTo6TG9hZDoKQEAgLTIzNCw2ICsyMzgsMTIgQEAgR2V0QnlJZFN0YXR1
cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFj
aygKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21B
Y2Nlc3NvckdldHRlcjogeworICAgICAgICAgICAgICAgICAgICBkb21KSVQgPSBhY2Nlc3MuZG9t
SklUKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghZG9tSklUKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoc2xvd1BhdGhTdGF0ZSwgdHJ1ZSk7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICBkZWZhdWx0OiB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSB0
b3RhbGx5IHN3ZWV0IHRvIHN1cHBvcnQgbW9yZSBvZiB0aGVzZSBhdCBzb21lIHBvaW50IGluIHRo
ZQogICAgICAgICAgICAgICAgICAgICAvLyBmdXR1cmUuIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzMwNTIKQEAgLTI0NCw3ICsyNTQsOCBAQCBHZXRCeUlkU3RhdHVz
IEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNr
KAogICAgICAgICAgICAgICAgIEdldEJ5SWRWYXJpYW50IHZhcmlhbnQoCiAgICAgICAgICAgICAg
ICAgICAgIFN0cnVjdHVyZVNldChzdHJ1Y3R1cmUpLCBjb21wbGV4R2V0U3RhdHVzLm9mZnNldCgp
LAogICAgICAgICAgICAgICAgICAgICBjb21wbGV4R2V0U3RhdHVzLmNvbmRpdGlvblNldCgpLCBX
VEZNb3ZlKGNhbGxMaW5rU3RhdHVzKSwKLSAgICAgICAgICAgICAgICAgICAgaW50cmluc2ljRnVu
Y3Rpb24pOworICAgICAgICAgICAgICAgICAgICBpbnRyaW5zaWNGdW5jdGlvbiwKKyAgICAgICAg
ICAgICAgICAgICAgZG9tSklUKTsKIAogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmFwcGVu
ZFZhcmlhbnQodmFyaWFudCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBHZXRCeUlkU3Rh
dHVzKHNsb3dQYXRoU3RhdGUsIHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9HZXRCeUlkVmFyaWFudC5jcHAKaW5kZXggYTg2OWQ0YTFjOTRlN2U0NzU3MzE3NDRj
N2IzMDNkNTA2NWUwZjQzMS4uZTI3MTZhOGExMjljNzNiNGVkNTM5Nzk4NTY2ZTUxYWRhM2JiYzFm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJp
YW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlh
bnQuY3BwCkBAIC0zNiwxMiArMzYsMTQgQEAgR2V0QnlJZFZhcmlhbnQ6OkdldEJ5SWRWYXJpYW50
KAogICAgIGNvbnN0IFN0cnVjdHVyZVNldCYgc3RydWN0dXJlU2V0LCBQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQsCiAgICAgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmIGNvbmRpdGlvblNl
dCwKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtTdGF0dXM+IGNhbGxMaW5rU3RhdHVzLAot
ICAgIEpTRnVuY3Rpb24qIGludHJpbnNpY0Z1bmN0aW9uKQorICAgIEpTRnVuY3Rpb24qIGludHJp
bnNpY0Z1bmN0aW9uLAorICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCkKICAgICA6IG1fc3RydWN0
dXJlU2V0KHN0cnVjdHVyZVNldCkKICAgICAsIG1fY29uZGl0aW9uU2V0KGNvbmRpdGlvblNldCkK
ICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fY2FsbExpbmtTdGF0dXMoV1RGTW92ZShj
YWxsTGlua1N0YXR1cykpCiAgICAgLCBtX2ludHJpbnNpY0Z1bmN0aW9uKGludHJpbnNpY0Z1bmN0
aW9uKQorICAgICwgbV9kb21KSVQoZG9tSklUKQogewogICAgIGlmICghc3RydWN0dXJlU2V0LnNp
emUoKSkgewogICAgICAgICBBU1NFUlQob2Zmc2V0ID09IGludmFsaWRPZmZzZXQpOwpAQCAtNjUs
NiArNjcsNyBAQCBHZXRCeUlkVmFyaWFudCYgR2V0QnlJZFZhcmlhbnQ6Om9wZXJhdG9yPShjb25z
dCBHZXRCeUlkVmFyaWFudCYgb3RoZXIpCiAgICAgbV9jb25kaXRpb25TZXQgPSBvdGhlci5tX2Nv
bmRpdGlvblNldDsKICAgICBtX29mZnNldCA9IG90aGVyLm1fb2Zmc2V0OwogICAgIG1faW50cmlu
c2ljRnVuY3Rpb24gPSBvdGhlci5tX2ludHJpbnNpY0Z1bmN0aW9uOworICAgIG1fZG9tSklUID0g
b3RoZXIubV9kb21KSVQ7CiAgICAgaWYgKG90aGVyLm1fY2FsbExpbmtTdGF0dXMpCiAgICAgICAg
IG1fY2FsbExpbmtTdGF0dXMgPSBzdGQ6Om1ha2VfdW5pcXVlPENhbGxMaW5rU3RhdHVzPigqb3Ro
ZXIubV9jYWxsTGlua1N0YXR1cyk7CiAgICAgZWxzZQpAQCAtMTAzLDYgKzEwNiw5IEBAIGJvb2wg
R2V0QnlJZFZhcmlhbnQ6OmF0dGVtcHRUb01lcmdlKGNvbnN0IEdldEJ5SWRWYXJpYW50JiBvdGhl
cikKICAgICBpZiAoIWNhbk1lcmdlSW50cmluc2ljU3RydWN0dXJlcyhvdGhlcikpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2RvbUpJVCAhPSBvdGhlci5tX2RvbUpJVCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKG1fY29uZGl0aW9uU2V0LmlzRW1wdHkoKSAh
PSBvdGhlci5tX2NvbmRpdGlvblNldC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKQEAgLTEzOCw2ICsxNDQsOCBAQCB2b2lkIEdldEJ5SWRWYXJpYW50OjpkdW1wSW5Db250
ZXh0KFByaW50U3RyZWFtJiBvdXQsIER1bXBDb250ZXh0KiBjb250ZXh0KSBjb25zdAogICAgICAg
ICBvdXQucHJpbnQoIiwgY2FsbCA9ICIsICptX2NhbGxMaW5rU3RhdHVzKTsKICAgICBpZiAobV9p
bnRyaW5zaWNGdW5jdGlvbikKICAgICAgICAgb3V0LnByaW50KCIsIGludHJpbnNpYyA9ICIsICpt
X2ludHJpbnNpY0Z1bmN0aW9uKTsKKyAgICBpZiAobV9kb21KSVQgKQorICAgICAgICBvdXQucHJp
bnQoIiwgY3VzdG9tID0gIiwgUmF3UG9pbnRlcihtX2RvbUpJVCkpOwogICAgIG91dC5wcmludCgi
PiIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0
QnlJZFZhcmlhbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFy
aWFudC5oCmluZGV4IDY2MjE4OWJjZTVmMmViMWExM2JkMDUzZTk4MDAyMWMxM2MyNjZlNjYuLmRj
ZjQwODhlYzM1YjliYjAyOGM1YmU4YmQzMjVhMTE0MTc5MDM4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5oCkBAIC0zMiw2ICszMiw5IEBA
CiAjaW5jbHVkZSAiU3RydWN0dXJlU2V0LmgiCiAKIG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNl
IERPTUpJVCB7CitjbGFzcyBHcmFwaDsKK30KIAogY2xhc3MgQ2FsbExpbmtTdGF0dXM7CiBjbGFz
cyBHZXRCeUlkU3RhdHVzOwpAQCAtNDMsNyArNDYsOCBAQCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7
CiAgICAgICAgIGNvbnN0IFN0cnVjdHVyZVNldCYgc3RydWN0dXJlU2V0ID0gU3RydWN0dXJlU2V0
KCksIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9IGludmFsaWRPZmZzZXQsCiAgICAgICAgIGNvbnN0
IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0JiA9IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0
KCksCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0YXR1cz4gPSBudWxscHRyLAot
ICAgICAgICBKU0Z1bmN0aW9uKiA9IG51bGxwdHIpOworICAgICAgICBKU0Z1bmN0aW9uKiA9IG51
bGxwdHIsCisgICAgICAgIERPTUpJVDo6R3JhcGgqID0gbnVsbHB0cik7CiAKICAgICB+R2V0QnlJ
ZFZhcmlhbnQoKTsKICAgICAKQEAgLTYyLDYgKzY2LDcgQEAgY2xhc3MgR2V0QnlJZFZhcmlhbnQg
ewogICAgIENhbGxMaW5rU3RhdHVzKiBjYWxsTGlua1N0YXR1cygpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FsbExpbmtTdGF0dXMuZ2V0KCk7IH0KICAgICBKU0Z1bmN0aW9uKiBpbnRyaW5zaWNGdW5jdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1faW50cmluc2ljRnVuY3Rpb247IH0KICAgICBJbnRyaW5zaWMg
aW50cmluc2ljKCkgY29uc3QgeyByZXR1cm4gbV9pbnRyaW5zaWNGdW5jdGlvbiA/IG1faW50cmlu
c2ljRnVuY3Rpb24tPmludHJpbnNpYygpIDogTm9JbnRyaW5zaWM7IH0KKyAgICBET01KSVQ6Okdy
YXBoKiBkb21KSVQoKSBjb25zdCB7IHJldHVybiBtX2RvbUpJVDsgfQogCiAgICAgYm9vbCBpc1By
b3BlcnR5VW5zZXQoKSBjb25zdCB7IHJldHVybiBvZmZzZXQoKSA9PSBpbnZhbGlkT2Zmc2V0OyB9
CiAKQEAgLTgwLDYgKzg1LDcgQEAgY2xhc3MgR2V0QnlJZFZhcmlhbnQgewogICAgIFByb3BlcnR5
T2Zmc2V0IG1fb2Zmc2V0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0YXR1cz4gbV9j
YWxsTGlua1N0YXR1czsKICAgICBKU0Z1bmN0aW9uKiBtX2ludHJpbnNpY0Z1bmN0aW9uOworICAg
IERPTUpJVDo6R3JhcGgqIG1fZG9tSklUOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3Mu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNw
cAppbmRleCAyY2YyNjY3MDg2NjQ2ZjIwMmEwNGM2YTA3NDI5YzgxYTc1ZTk0NjQzLi4zOTk1ZTY0
MDRmNGIzY2U3NWYxMjFmMjM3YmE1NTQ5YWFmYWFmZTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKQEAgLTIyMCw3ICsy
MjAsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6dHJ5R2V0KAog
c3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6OmdldCgKICAgICBWTSYgdm0s
IEpTQ2VsbCogb3duZXIsIEFjY2Vzc1R5cGUgdHlwZSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwKICAgICBjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNl
dCYgY29uZGl0aW9uU2V0LCBib29sIHZpYVByb3h5LCBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFs
U2V0LAotICAgIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIGN1c3RvbUdldHRlciwgSlNPYmpl
Y3QqIGN1c3RvbVNsb3RCYXNlKQorICAgIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIGN1c3Rv
bUdldHRlciwgSlNPYmplY3QqIGN1c3RvbVNsb3RCYXNlLCBET01KSVQ6OkdyYXBoKiBkb21KSVQp
CiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IHJlc3VsdChuZXcgQWNjZXNzQ2Fz
ZSgpKTsKIApAQCAtMjI5LDEyICsyMjksMTMgQEAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+
IEFjY2Vzc0Nhc2U6OmdldCgKICAgICByZXN1bHQtPm1fc3RydWN0dXJlLnNldCh2bSwgb3duZXIs
IHN0cnVjdHVyZSk7CiAgICAgcmVzdWx0LT5tX2NvbmRpdGlvblNldCA9IGNvbmRpdGlvblNldDsK
IAotICAgIGlmICh2aWFQcm94eSB8fCBhZGRpdGlvbmFsU2V0IHx8IHJlc3VsdC0+ZG9lc0NhbGxz
KCkgfHwgY3VzdG9tR2V0dGVyIHx8IGN1c3RvbVNsb3RCYXNlKSB7CisgICAgaWYgKHZpYVByb3h5
IHx8IGFkZGl0aW9uYWxTZXQgfHwgcmVzdWx0LT5kb2VzQ2FsbHMoKSB8fCBjdXN0b21HZXR0ZXIg
fHwgY3VzdG9tU2xvdEJhc2UgfHwgZG9tSklUKSB7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0
YSA9IHN0ZDo6bWFrZV91bmlxdWU8UmFyZURhdGE+KCk7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJl
RGF0YS0+dmlhUHJveHkgPSB2aWFQcm94eTsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5h
ZGRpdGlvbmFsU2V0ID0gYWRkaXRpb25hbFNldDsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRh
LT5jdXN0b21BY2Nlc3Nvci5nZXR0ZXIgPSBjdXN0b21HZXR0ZXI7CiAgICAgICAgIHJlc3VsdC0+
bV9yYXJlRGF0YS0+Y3VzdG9tU2xvdEJhc2Uuc2V0TWF5QmVOdWxsKHZtLCBvd25lciwgY3VzdG9t
U2xvdEJhc2UpOworICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmRvbUpJVCA9IGRvbUpJVDsK
ICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMzg1LDYgKzM4Niw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxBY2Nlc3NDYXNlPiBBY2Nlc3NDYXNlOjpjbG9uZSgpIGNvbnN0CiAgICAgICAgIHJl
c3VsdC0+bV9yYXJlRGF0YS0+Y3VzdG9tQWNjZXNzb3Iub3BhcXVlID0gcmFyZURhdGEtPmN1c3Rv
bUFjY2Vzc29yLm9wYXF1ZTsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5jdXN0b21TbG90
QmFzZSA9IHJhcmVEYXRhLT5jdXN0b21TbG90QmFzZTsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVE
YXRhLT5pbnRyaW5zaWNGdW5jdGlvbiA9IHJhcmVEYXRhLT5pbnRyaW5zaWNGdW5jdGlvbjsKKyAg
ICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5kb21KSVQgPSByYXJlRGF0YS0+ZG9tSklUOwogICAg
IH0KICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaAppbmRleCBhNmQxNDhjYmZiMGYxOWY4YjM3YTE3
NzM4MWUwMDgxMzcyYjg0OTIyLi41YWUzZTI5ZTA4NWVmOWM2MmQ3MTE1ODFlYjZlZTlkMGM3NjAx
NDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBo
aWNBY2Nlc3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBo
aWNBY2Nlc3MuaApAQCAtMzcsNiArMzcsOSBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CituYW1lc3BhY2UgRE9NSklUIHsKK2NsYXNzIEdyYXBoOworfQogCiBj
bGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBQb2x5bW9ycGhpY0FjY2VzczsKQEAgLTEzMCw3ICsxMzMs
OCBAQCBjbGFzcyBBY2Nlc3NDYXNlIHsKICAgICAgICAgYm9vbCB2aWFQcm94eSA9IGZhbHNlLAog
ICAgICAgICBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0ID0gbnVsbHB0ciwKICAgICAgICAg
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgPSBudWxscHRyLAotICAgICAgICBKU09iamVjdCog
Y3VzdG9tU2xvdEJhc2UgPSBudWxscHRyKTsKKyAgICAgICAgSlNPYmplY3QqIGN1c3RvbVNsb3RC
YXNlID0gbnVsbHB0ciwKKyAgICAgICAgRE9NSklUOjpHcmFwaCogPSBudWxscHRyKTsKICAgICAK
ICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IG1lZ2Ftb3JwaGljTG9hZChW
TSYsIEpTQ2VsbCogb3duZXIpOwogICAgIApAQCAtMTg2LDYgKzE5MCwxMiBAQCBjbGFzcyBBY2Nl
c3NDYXNlIHsKICAgICAgICAgcmV0dXJuIGludHJpbnNpY0Z1bmN0aW9uKCktPmludHJpbnNpYygp
OwogICAgIH0KIAorICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCgpIGNvbnN0CisgICAgeworICAg
ICAgICBBU1NFUlQobV9yYXJlRGF0YSk7CisgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5kb21K
SVQ7CisgICAgfQorCiAgICAgV2F0Y2hwb2ludFNldCogYWRkaXRpb25hbFNldCgpIGNvbnN0CiAg
ICAgewogICAgICAgICByZXR1cm4gbV9yYXJlRGF0YSA/IG1fcmFyZURhdGEtPmFkZGl0aW9uYWxT
ZXQuZ2V0KCkgOiBudWxscHRyOwpAQCAtMjg0LDYgKzI5NCw3IEBAIGNsYXNzIEFjY2Vzc0Nhc2Ug
ewogICAgIHB1YmxpYzoKICAgICAgICAgUmFyZURhdGEoKQogICAgICAgICAgICAgOiB2aWFQcm94
eShmYWxzZSkKKyAgICAgICAgICAgICwgZG9tSklUKG51bGxwdHIpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGN1c3RvbUFjY2Vzc29yLm9wYXF1ZSA9IG51bGxwdHI7CiAgICAgICAgIH0KQEAgLTMw
MCw2ICszMTEsNyBAQCBjbGFzcyBBY2Nlc3NDYXNlIHsKICAgICAgICAgfSBjdXN0b21BY2Nlc3Nv
cjsKICAgICAgICAgV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBjdXN0b21TbG90QmFzZTsKICAgICAg
ICAgV3JpdGVCYXJyaWVyPEpTRnVuY3Rpb24+IGludHJpbnNpY0Z1bmN0aW9uOworICAgICAgICBE
T01KSVQ6OkdyYXBoKiBkb21KSVQ7CiAgICAgfTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSYXJl
RGF0YT4gbV9yYXJlRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9TcGVjdWxhdGVkVHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3BlY3VsYXRlZFR5cGUuY3BwCmluZGV4IDcxOWQ4ZjI3MjgzZjVkMTIzY2U1NzcxNTQ1ZTQ2OWJm
ODFhZmYyMjcuLjFmZDA0YjU1NzRiZmUwNzAyMDVmZTJiYTMzMGJlMmM1ZTQwOWFkMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcApA
QCAtMTcwLDYgKzE3MCwyMSBAQCB2b2lkIGR1bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYgb3V0
LCBTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKICAgICAgICAgICAgICAgICBteU91dC5wcmludCgiRGVy
aXZlZGFycmF5Iik7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgaXNUb3AgPSBm
YWxzZTsKKworICAgICAgICAgICAgaWYgKHZhbHVlICYgU3BlY0RPTURvY3VtZW50V3JhcHBlcikK
KyAgICAgICAgICAgICAgICBteU91dC5wcmludCgiRG9tZG9jdW1lbnR3cmFwcGVyIik7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaXNUb3AgPSBmYWxzZTsKKworICAgICAgICAg
ICAgaWYgKHZhbHVlICYgU3BlY0RPTUVsZW1lbnQpCisgICAgICAgICAgICAgICAgbXlPdXQucHJp
bnQoIkRvbWVsZW1lbnQiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpc1Rv
cCA9IGZhbHNlOworCisgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjRE9NT3RoZXJOb2RlKQor
ICAgICAgICAgICAgICAgIG15T3V0LnByaW50KCJEb21vdGhlcm5vZGUiKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNlOwogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKCh2YWx1ZSAmIFNwZWNTdHJpbmcpID09IFNwZWNTdHJpbmcpCkBAIC0zOTQsMTIgKzQw
OSwyNSBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY29uc3QgQ2xh
c3NJbmZvKiBjbGFzc0luZm8pCiAKIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbVN0cnVj
dHVyZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKLSAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5m
bygpLnR5cGUoKSA9PSBTdHJpbmdUeXBlKQorICAgIEpTVHlwZSB0eXBlID0gc3RydWN0dXJlLT50
eXBlSW5mbygpLnR5cGUoKTsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFN0cmluZ1R5
cGU6CiAgICAgICAgIHJldHVybiBTcGVjU3RyaW5nOwotICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJ
bmZvKCkudHlwZSgpID09IFN5bWJvbFR5cGUpCisgICAgY2FzZSBTeW1ib2xUeXBlOgogICAgICAg
ICByZXR1cm4gU3BlY1N5bWJvbDsKLSAgICBpZiAoc3RydWN0dXJlLT50eXBlSW5mbygpLnR5cGUo
KSA9PSBEZXJpdmVkQXJyYXlUeXBlKQorICAgIGNhc2UgRGVyaXZlZEFycmF5VHlwZToKICAgICAg
ICAgcmV0dXJuIFNwZWNEZXJpdmVkQXJyYXk7CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJU
eXBlOgorICAgICAgICByZXR1cm4gU3BlY0RPTURvY3VtZW50V3JhcHBlcjsKKyAgICBkZWZhdWx0
OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAodHlwZSA+PSBET01FbGVtZW50VHlw
ZSkKKyAgICAgICAgcmV0dXJuIFNwZWNET01FbGVtZW50OworICAgIGlmICh0eXBlID49IERPTU5v
ZGVUeXBlKQorICAgICAgICByZXR1cm4gU3BlY0RPTU90aGVyTm9kZTsKKwogICAgIHJldHVybiBz
cGVjdWxhdGlvbkZyb21DbGFzc0luZm8oc3RydWN0dXJlLT5jbGFzc0luZm8oKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKaW5kZXgg
ZjQzZGZjZDMxNTg3MWU5ODk1M2VhMmRkZGM0YmYzMzUyNWNjZGZkZi4uNGM3YmRmN2M2OGIyNjNm
NDQ1NjljMDg3NDYzM2EzMDdlNDYxNjkzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmgKQEAgLTU5LDI0ICs1OSwyOCBAQCBzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY01hcE9iamVjdCAgICAgICAgICA9IDF1bGwgPDwgMTY7IC8v
IEl0J3MgZGVmaW5pdAogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTZXRPYmplY3Qg
ICAgICAgICAgPSAxdWxsIDw8IDE3OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTZXQgb2JqZWN0IG9y
IG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
UHJveHlPYmplY3QgICAgICAgID0gMXVsbCA8PCAxODsgLy8gSXQncyBkZWZpbml0ZWx5IGEgUHJv
eHkgb2JqZWN0IG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KIHN0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjRGVyaXZlZEFycmF5ICAgICAgID0gMXVsbCA8PCAxOTsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgRGVyaXZlZEFycmF5IG9iamVjdC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgID0gMXVsbCA8PCAyMDsgLy8gSXQncyBkZWZpbml0ZWx5
IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmplY3QsIEpTQXJyYXksIG9yIEpTRnVuY3Rpb24u
Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdCAgICAgICAgICAgICA9IFNw
ZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlvbiB8IFNwZWNUeXBlZEFycmF5
VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBTcGVjU2NvcGVkQXJndW1lbnRzIHwgU3BlY1N0
cmluZ09iamVjdCB8IFNwZWNSZWdFeHBPYmplY3QgfCBTcGVjTWFwT2JqZWN0IHwgU3BlY1NldE9i
amVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBTcGVjT2JqZWN0T3Ro
ZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3IgdGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0IHBy
ZWRpY3Rpb24uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAg
ICAgICA9IDF1bGwgPDwgMjE7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQn
cyBhbiBpZGVudGlmaWVyLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdW
YXIgICAgICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywg
YW5kIGl0J3Mgbm90IGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0RPTURvY3VtZW50V3JhcHBlciA9IDF1bGwgPDwgMjA7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IERPTSBkb2N1bWVudCB3cmFwcGVyIG9iamVjdC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjRE9NRWxlbWVudCAgICAgICAgID0gMXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5
IGEgRE9NIGVsZW1lbnQgb2JqZWN0Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNE
T01PdGhlck5vZGUgICAgICAgPSAxdWxsIDw8IDIyOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBET00g
Tm9kZSBvYmplY3QgYnV0IG5vdCBEb2N1bWVudFdyYXBwZXIgYW5kIEVsZW1lbnQuCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RPTU5vZGUgICAgICAgICAgICA9IFNwZWNET01Eb2N1
bWVudFdyYXBwZXIgfCBTcGVjRE9NRWxlbWVudCB8IFNwZWNET01PdGhlck5vZGU7CitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdE90aGVyICAgICAgICA9IDF1bGwgPDwgMjM7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBvYmplY3QgYnV0IG5vdCBKU0ZpbmFsT2JqZWN0LCBKU0Fy
cmF5LCBvciBKU0Z1bmN0aW9uLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPYmpl
Y3QgICAgICAgICAgICAgPSBTcGVjRmluYWxPYmplY3QgfCBTcGVjQXJyYXkgfCBTcGVjRnVuY3Rp
b24gfCBTcGVjVHlwZWRBcnJheVZpZXcgfCBTcGVjRGlyZWN0QXJndW1lbnRzIHwgU3BlY1Njb3Bl
ZEFyZ3VtZW50cyB8IFNwZWNTdHJpbmdPYmplY3QgfCBTcGVjUmVnRXhwT2JqZWN0IHwgU3BlY01h
cE9iamVjdCB8IFNwZWNTZXRPYmplY3QgfCBTcGVjUHJveHlPYmplY3QgfCBTcGVjRGVyaXZlZEFy
cmF5IHwgU3BlY0RPTU5vZGUgfCBTcGVjT2JqZWN0T3RoZXI7IC8vIEJpdG1hc2sgdXNlZCBmb3Ig
dGVzdGluZyBmb3IgYW55IGtpbmQgb2Ygb2JqZWN0IHByZWRpY3Rpb24uCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ0lkZW50ICAgICAgICA9IDF1bGwgPDwgMjQ7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBhbiBpZGVudGlmaWVyLgorc3RhdGlj
IGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTdHJpbmdWYXIgICAgICAgICAgPSAxdWxsIDw8IDI1
OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBKU1N0cmluZywgYW5kIGl0J3Mgbm90IGFuIGlkZW50aWZp
ZXIuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZyAgICAgICAgICAgICA9
IFNwZWNTdHJpbmdJZGVudCB8IFNwZWNTdHJpbmdWYXI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpT
U3RyaW5nLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAg
ICAgPSAxdWxsIDw8IDIzOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBTeW1ib2wuCi1zdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhlciAgICAgICAgICA9IDF1bGwgPDwgMjQ7IC8v
IEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQgbm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3Qg
YW5kIGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcgb3IgYSBTeW1ib2wuIEZJWE1FOiBUaGlzIHNo
b3VsZG4ndCBiZSBwYXJ0IG9mIGhlYXAtdG9wIG9yIGJ5dGVjb2RlLXRvcC4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzA3OAorc3RhdGljIGNvbnN0IFNwZWN1bGF0
ZWRUeXBlIFNwZWNTeW1ib2wgICAgICAgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBTeW1ib2wuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGxPdGhl
ciAgICAgICAgICA9IDF1bGwgPDwgMjc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTQ2VsbCBidXQg
bm90IGEgc3ViY2xhc3Mgb2YgSlNPYmplY3QgYW5kIGRlZmluaXRlbHkgbm90IGEgSlNTdHJpbmcg
b3IgYSBTeW1ib2wuIEZJWE1FOiBUaGlzIHNob3VsZG4ndCBiZSBwYXJ0IG9mIGhlYXAtdG9wIG9y
IGJ5dGVjb2RlLXRvcC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MzA3OAogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNDZWxsICAgICAgICAgICAgICAg
PSBTcGVjT2JqZWN0IHwgU3BlY1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQ2VsbE90aGVyOyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBKU0NlbGwuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0Jvb2xJbnQzMiAgICAgICAgICA9IDF1bGwgPDwgMjU7IC8vIEl0J3MgZGVmaW5pdGVseSBh
biBJbnQzMiB3aXRoIHZhbHVlIDAgb3IgMS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBT
cGVjTm9uQm9vbEludDMyICAgICAgID0gMXVsbCA8PCAyNjsgLy8gSXQncyBkZWZpbml0ZWx5IGFu
IEludDMyIHdpdGggdmFsdWUgb3RoZXIgdGhhbiAwIG9yIDEuCitzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0Jvb2xJbnQzMiAgICAgICAgICA9IDF1bGwgPDwgMjg7IC8vIEl0J3MgZGVm
aW5pdGVseSBhbiBJbnQzMiB3aXRoIHZhbHVlIDAgb3IgMS4KK3N0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjTm9uQm9vbEludDMyICAgICAgID0gMXVsbCA8PCAyOTsgLy8gSXQncyBkZWZp
bml0ZWx5IGFuIEludDMyIHdpdGggdmFsdWUgb3RoZXIgdGhhbiAwIG9yIDEuCiBzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDMyT25seSAgICAgICAgICA9IFNwZWNCb29sSW50MzIg
fCBTcGVjTm9uQm9vbEludDMyOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIuCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0ludDUyT25seSAgICAgICAgICA9IDF1bGwgPDwgMjc7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgd2UgaW50ZW5kIGl0IHRvIHVuYm94IGl0
LiBJdCdzIGFsc28gZGVmaW5pdGVseSBub3QgYW4gSW50MzIuCitzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY0ludDUyT25seSAgICAgICAgICA9IDF1bGwgPDwgMzA7IC8vIEl0J3MgZGVm
aW5pdGVseSBhbiBJbnQ1MiBhbmQgd2UgaW50ZW5kIGl0IHRvIHVuYm94IGl0LiBJdCdzIGFsc28g
ZGVmaW5pdGVseSBub3QgYW4gSW50MzIuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3Bl
Y0FueUludCAgICAgICAgICAgICA9IFNwZWNJbnQzMk9ubHkgfCBTcGVjSW50NTJPbmx5OyAvLyBJ
dCdzIHNvbWV0aGluZyB0aGF0IHdlIGNhbiBkbyBtYWNoaW5lIGludCBhcml0aG1ldGljIG9uLgot
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNBbnlJbnRBc0RvdWJsZSAgICAgPSAxdWxs
IDw8IDI4OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50NTIgYW5kIGl0J3MgaW5zaWRlIGEgZG91
YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25JbnRBc0RvdWJsZSAgICAg
PSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRlZmluaXRlbHkgbm90IGFuIEludDUyIGJ1dCBpdCdzIGEg
cmVhbCBudW1iZXIgYW5kIGl0J3MgYSBkb3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0FueUludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMzE7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUuCitzdGF0aWMgY29uc3QgU3BlY3Vs
YXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgZGVm
aW5pdGVseSBub3QgYW4gSW50NTIgYnV0IGl0J3MgYSByZWFsIG51bWJlciBhbmQgaXQncyBhIGRv
dWJsZS4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlUmVhbCAgICAgICAg
ID0gU3BlY05vbkludEFzRG91YmxlIHwgU3BlY0FueUludEFzRG91YmxlOyAvLyBJdCdzIGRlZmlu
aXRlbHkgYSBub24tTmFOIGRvdWJsZS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
RG91YmxlUHVyZU5hTiAgICAgID0gMXVsbCA8PCAzMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgTmFO
IHRoYXQgaXMgc2FlIHRvIHRhZyAoaS5lLiBwdXJlKS4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVk
VHlwZSBTcGVjRG91YmxlSW1wdXJlTmFOICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0
ZWx5IGEgTmFOIHRoYXQgaXMgdW5zYWZlIHRvIHRhZyAoaS5lLiBpbXB1cmUpLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVQdXJlTmFOICAgICAgPSAxdWxsIDw8IDMzOyAv
LyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyBzYWUgdG8gdGFnIChpLmUuIHB1cmUpLgor
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVJbXB1cmVOYU4gICAgPSAxdWxs
IDw8IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBpcyB1bnNhZmUgdG8gdGFnIChp
LmUuIGltcHVyZSkuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZU5hTiAg
ICAgICAgICA9IFNwZWNEb3VibGVQdXJlTmFOIHwgU3BlY0RvdWJsZUltcHVyZU5hTjsgLy8gSXQn
cyBkZWZpbml0ZWx5IHNvbWUga2luZCBvZiBOYU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0J5dGVjb2RlRG91YmxlICAgICA9IFNwZWNEb3VibGVSZWFsIHwgU3BlY0RvdWJsZVB1
cmVOYU47IC8vIEl0J3MgZWl0aGVyIGEgbm9uLU5hTiBvciBhIE5hTiBkb3VibGUsIGJ1dCBpdCdz
IGRlZmluaXRlbHkgbm90IGltcHVyZSBOYU4uCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY0Z1bGxEb3VibGUgICAgICAgICA9IFNwZWNEb3VibGVSZWFsIHwgU3BlY0RvdWJsZU5hTjsg
Ly8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZS4KQEAgLTg0LDEyICs4OCwx
MiBAQCBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0J5dGVjb2RlUmVhbE51bWJlciA9
IFNwZWNJbnQzMk9ubHkgfCBTcGVjRG91YmxlUgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNGdWxsUmVhbE51bWJlciAgICAgPSBTcGVjQW55SW50IHwgU3BlY0RvdWJsZVJlYWw7IC8v
IEl0J3MgZWl0aGVyIGFuIEludDMyIG9yIGEgRG91YmxlUmVhbCwgb3IgYSBJbnQ1Mi4KIHN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVOdW1iZXIgICAgID0gU3BlY0ludDMy
T25seSB8IFNwZWNCeXRlY29kZURvdWJsZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIgb3IgYSBE
b3VibGUsIGFuZCB0aGUgRG91YmxlIGNhbm5vdCBiZSBhbiBpbXB1cmUgTmFOLgogc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNGdWxsTnVtYmVyICAgICAgICAgPSBTcGVjQW55SW50IHwg
U3BlY0Z1bGxEb3VibGU7IC8vIEl0J3MgZWl0aGVyIGFuIEludDMyLCBJbnQ1Miwgb3IgYSBEb3Vi
bGUsIGFuZCB0aGUgRG91YmxlIGNhbiBiZSBpbXB1cmUgTmFOLgotc3RhdGljIGNvbnN0IFNwZWN1
bGF0ZWRUeXBlIFNwZWNCb29sZWFuICAgICAgICAgICAgPSAxdWxsIDw8IDMyOyAvLyBJdCdzIGRl
ZmluaXRlbHkgYSBCb29sZWFuLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhl
ciAgICAgICAgICAgICAgPSAxdWxsIDw8IDMzOyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51
bGwgb3IgVW5kZWZpbmVkLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNCb29sZWFu
ICAgICAgICAgICAgPSAxdWxsIDw8IDM1OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBCb29sZWFuLgor
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNPdGhlciAgICAgICAgICAgICAgPSAxdWxs
IDw8IDM2OyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIE51bGwgb3IgVW5kZWZpbmVkLgogc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNNaXNjICAgICAgICAgICAgICAgPSBTcGVjQm9v
bGVhbiB8IFNwZWNPdGhlcjsgLy8gSXQncyBkZWZpbml0ZWx5IGVpdGhlciBhIGJvb2xlYW4sIE51
bGwsIG9yIFVuZGVmaW5lZC4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjSGVhcFRv
cCAgICAgICAgICAgID0gU3BlY0NlbGwgfCBTcGVjQnl0ZWNvZGVOdW1iZXIgfCBTcGVjTWlzYzsg
Ly8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUyT25seSBh
bmQgU3BlY0RvdWJsZUltcHVyZU5hTi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
UHJpbWl0aXZlICAgICAgICAgID0gU3BlY1N0cmluZyB8IFNwZWNTeW1ib2wgfCBTcGVjQnl0ZWNv
ZGVOdW1iZXIgfCBTcGVjTWlzYzsgLy8gSXQncyBhbnkgbm9uLU9iamVjdCBKU1ZhbHVlLgotc3Rh
dGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNFbXB0eSAgICAgICAgICAgICAgPSAxdWxsIDw8
IDM0OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gZW1wdHkgdmFsdWUgbWFya2VyLgorc3RhdGljIGNv
bnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNFbXB0eSAgICAgICAgICAgICAgPSAxdWxsIDw8IDM3OyAv
LyBJdCdzIGRlZmluaXRlbHkgYW4gZW1wdHkgdmFsdWUgbWFya2VyLgogc3RhdGljIGNvbnN0IFNw
ZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZVRvcCAgICAgICAgPSBTcGVjSGVhcFRvcCB8IFNwZWNF
bXB0eTsgLy8gSXQgY2FuIGJlIGFueSBvZiB0aGUgYWJvdmUsIGV4Y2VwdCBmb3IgU3BlY0ludDUy
T25seSBhbmQgU3BlY0RvdWJsZUltcHVyZU5hTi4gQ29ycmVzcG9uZHMgdG8gd2hhdCBjb3VsZCBi
ZSBmb3VuZCBpbiBhIGJ5dGVjb2RlIGxvY2FsLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNGdWxsVG9wICAgICAgICAgICAgPSBTcGVjQnl0ZWNvZGVUb3AgfCBTcGVjRnVsbE51bWJl
cjsgLy8gSXQgY2FuIGJlIGFueXRoaW5nIHRoYXQgYnl0ZWNvZGUgY291bGQgc2VlIHBsdXMgZXhv
dGljIGVuY29kaW5ncyBvZiBudW1iZXJzLgogCkBAIC00MTgsNiArNDIyLDIxIEBAIGlubGluZSBi
b29sIGlzVW50eXBlZFNwZWN1bGF0aW9uRm9yQml0T3BzKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQog
ICAgIHJldHVybiAhISh2YWx1ZSAmIH4oU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbiB8IFNw
ZWNPdGhlcikpOwogfQogCitpbmxpbmUgYm9vbCBpc0RPTU5vZGVTcGVjdWxhdGlvbihTcGVjdWxh
dGVkVHlwZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4gISEodmFsdWUgJiBTcGVjRE9NTm9kZSkgJiYg
ISh2YWx1ZSAmIH5TcGVjRE9NTm9kZSk7Cit9CisKK2lubGluZSBib29sIGlzRE9NRWxlbWVudFNw
ZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSBT
cGVjRE9NRWxlbWVudDsKK30KKworaW5saW5lIGJvb2wgaXNET01Eb2N1bWVudFdyYXBwZXJTcGVj
dWxhdGlvbihTcGVjdWxhdGVkVHlwZSB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPT0gU3Bl
Y0RPTURvY3VtZW50V3JhcHBlcjsKK30KKwogdm9pZCBkdW1wU3BlY3VsYXRpb24oUHJpbnRTdHJl
YW0mLCBTcGVjdWxhdGVkVHlwZSk7CiB2b2lkIGR1bXBTcGVjdWxhdGlvbkFiYnJldmlhdGVkKFBy
aW50U3RyZWFtJiwgU3BlY3VsYXRlZFR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaAppbmRleCA4ZTg4YTE0NjM3NzEyZWZhZGM0MWRmZDQ0
MTY0MDAyOWQ1NDRlNzcwLi4yOTA4OTBlNTAxZTVmODUzYzBlNzA3OTVjMGEwYzRhZmI4ZGExOTY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVy
eS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgK
QEAgLTE3Miw3ICsxNzIsNyBAQCBjbGFzcyBWYWx1ZVJlY292ZXJ5IHsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlQo
ZGF0YUZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSAmJiBkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXRT
dG9yYWdlKTsKKyAgICAgICAgICAgIEFTU0VSVChkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXROb25l
ICYmIGRhdGFGb3JtYXQgIT0gRGF0YUZvcm1hdFN0b3JhZ2UgJiYgZGF0YUZvcm1hdCAhPSBEYXRh
Rm9ybWF0T3BhcXVlUG9pbnRlcik7CiAgICAgICAgICAgICByZXN1bHQubV90ZWNobmlxdWUgPSBE
aXNwbGFjZWRJbkpTU3RhY2s7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RIZWFwLmgKaW5kZXggMGFiZDUwMjdiMjZh
ZWIzOTRmMjljMDM4ZmQ5ZjJkNTkyZTZjMTYzOS4uZjI0N2ViMmM0NmQzNTIyYzE1ZjIzNjA2MDE4
OGQzMmI3NjZkODlkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEhlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SGVhcC5oCkBAIC03Myw2ICs3Myw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsK
ICAgICBtYWNybyhNYXRoRG90UmFuZG9tU3RhdGUpIFwKICAgICBtYWNybyhJbnRlcm5hbFN0YXRl
KSBcCiAgICAgbWFjcm8oQWJzb2x1dGUpIFwKKyAgICBtYWNybyhPcGFxdWVQb2ludGVyKSBcCiAg
ICAgLyogVXNlIHRoaXMgZm9yIHdyaXRlcyBvbmx5LCB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgbWF5
IGZpcmUgd2F0Y2hwb2ludHMuIFVzdWFsbHkgdGhpcyBpcyBuZXZlciBkaXJlY3RseSB3cml0dGVu
IGJ1dCBpbnN0ZWFkIHdlIHRlc3QgdG8gc2VlIGlmIGEgbm9kZSBjbG9iYmVycyB0aGlzOyBpdCBq
dXN0IHNvIGhhcHBlbnMgdGhhdCB5b3UgaGF2ZSB0byB3cml0ZSB3b3JsZCB0byBjbG9iYmVyIGl0
LiAqL1wKICAgICBtYWNybyhXYXRjaHBvaW50X2ZpcmUpIFwKICAgICAvKiBVc2UgdGhlc2UgZm9y
IHJlYWRzIG9ubHksIGp1c3QgdG8gaW5kaWNhdGUgdGhhdCBpZiB0aGUgd29ybGQgZ290IGNsb2Ji
ZXJlZCwgdGhlbiB0aGlzIG9wZXJhdGlvbiB3aWxsIG5vdCB3b3JrLiAqL1wKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaAppbmRleCA5ZGIxM2UzYTg3ZTZiNzhkYWExZTliMDEyMzMyZmExNWY1NjQ0NDkwLi4yNTlj
MTA0OGU2ZTFmZTZmMzRlNWFhMDBjMWE2ODExY2YxMmE2OWY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
CkBAIC0yMjYxLDggKzIyNjEsMTQgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0
U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICBjYXNl
IEdldEJ1dHRlcmZseToKICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgIGNh
c2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKKyAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVy
OgorICAgIGNhc2UgR2V0RE9NV3JhcHBlZDoKICAgICAgICAgZm9yTm9kZShub2RlKS5jbGVhcigp
OyAvLyBUaGUgcmVzdWx0IGlzIG5vdCBhIEpTIHZhbHVlLgogICAgICAgICBicmVhazsKKyAgICBj
YXNlIFRvRE9NV3JhcHBlcjoKKyAgICAgICAgY2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgY2xvYmJlckxpbWl0KTsKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKG1fZ3Jh
cGgsIFNwZWNET01Ob2RlIHwgU3BlY090aGVyKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
aGVja0FycmF5OiB7CiAgICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tl
ZChtX2dyYXBoLCBub2RlLCBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKSkpIHsKICAgICAgICAgICAg
IG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CkBAIC0yODE2LDYgKzI4MjIsNyBAQCBi
b29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6CiAgICAg
Y2FzZSBDaGVja1RpZXJVcEF0UmV0dXJuOgogICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgor
ICAgIGNhc2UgQ2hlY2tOb2RlRmxhZ3M6CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDcmVh
dGVSZXN0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcAppbmRleCAwNDUyMjgwZGQyNmY0MGIwYmNhNDVkMzg1MWQxMTBkZjQxNmEwZmE3Li5lNWI4
NDEwYjkwYTk1NWRmYmIxYTQ0OGQ2ZjlhYjI5ZmFjZWViN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtNDEsNiArNDEsNyBAQAog
I2luY2x1ZGUgIkRGR0Nsb2JiZXJzRXhpdFN0YXRlLmgiCiAjaW5jbHVkZSAiREZHR3JhcGguaCIK
ICNpbmNsdWRlICJERkdKSVRDb2RlLmgiCisjaW5jbHVkZSAiRE9NSklUSVIuaCIKICNpbmNsdWRl
ICJHZXRCeUlkU3RhdHVzLmgiCiAjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIkpTQ0lubGlu
ZXMuaCIKQEAgLTIxOSw2ICsyMjAsNyBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgYm9v
bCBoYW5kbGVDb25zdGFudEludGVybmFsRnVuY3Rpb24oTm9kZSogY2FsbFRhcmdldE5vZGUsIGlu
dCByZXN1bHRPcGVyYW5kLCBJbnRlcm5hbEZ1bmN0aW9uKiwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBp
bnQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIFNw
ZWN1bGF0ZWRUeXBlLCBjb25zdCBDaGVja3NGdW5jdG9yJiBpbnNlcnRDaGVja3MpOwogICAgIE5v
ZGUqIGhhbmRsZVB1dEJ5T2Zmc2V0KE5vZGUqIGJhc2UsIHVuc2lnbmVkIGlkZW50aWZpZXIsIFBy
b3BlcnR5T2Zmc2V0LCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBOb2RlKiB2YWx1
ZSk7CiAgICAgTm9kZSogaGFuZGxlR2V0QnlPZmZzZXQoU3BlY3VsYXRlZFR5cGUsIE5vZGUqIGJh
c2UsIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIFByb3BlcnR5T2Zmc2V0LCBjb25zdCBJbmZl
cnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBOb2RlVHlwZSA9IEdldEJ5T2Zmc2V0KTsKKyAgICBib29s
IGhhbmRsZURPTUpJVEdldHRlcihpbnQgcmVzdWx0T3BlcmFuZCwgY29uc3QgR2V0QnlJZFZhcmlh
bnQmLCBOb2RlKiB0aGlzTm9kZSwgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbik7CiAKICAgICAv
LyBDcmVhdGUgYSBwcmVzZW5jZSBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBiYXNlZCBvbiBzb21l
IGtub3duIG9mZnNldCBhbmQgc3RydWN0dXJlIHNldC4gRG9lcyBub3QKICAgICAvLyBjaGVjayB0
aGUgdmFsaWRpdHkgb2YgdGhlIGNvbmRpdGlvbiwgYnV0IGl0IG1heSByZXR1cm4gYSBudWxsIG9u
ZSBpZiBpdCBlbmNvdW50ZXJzIGEgY29udHJhZGljdGlvbi4KQEAgLTI2NTksNiArMjY2MSw1NyBA
QCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNHZXR0ZXIoaW50IHJlc3VsdE9w
ZXJhbmQsIGNvbnN0IEdldEJ5SWRWYXJpYQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKK2Jvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZURPTUpJVEdldHRlcihpbnQgcmVz
dWx0T3BlcmFuZCwgY29uc3QgR2V0QnlJZFZhcmlhbnQmIHZhcmlhbnQsIE5vZGUqIHRoaXNOb2Rl
LCBTcGVjdWxhdGVkVHlwZSkKK3sKKyAgICBpZiAoIXZhcmlhbnQuZG9tSklUKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIEhhc2hNYXA8RE9NSklUOjpJUiosIE5vZGUqPiBub2RlTWFw
OworCisgICAgYXV0byBsb29rVXBOb2RlID0gWyZdKERPTUpJVDo6SVIqIGlyKSAtPiBOb2RlKiB7
CisgICAgICAgIHJldHVybiBub2RlTWFwLmdldChpcik7CisgICAgfTsKKworICAgIGF1dG8gcmVn
aXN0ZXJOb2RlID0gWyZdKERPTUpJVDo6SVIqIGlyLCBOb2RlKiBub2RlKSB7CisgICAgICAgIG5v
ZGVNYXAuYWRkKGlyLCBub2RlKTsKKyAgICB9OworCisgICAgcmVnaXN0ZXJOb2RlKERPTUpJVDo6
SVI6OnRoaXNWYWx1ZSgpLCB0aGlzTm9kZSk7CisKKyAgICBmb3IgKERPTUpJVDo6SVImIGlyIDog
dmFyaWFudC5kb21KSVQoKS0+aXIoKSkgeworICAgICAgICBzd2l0Y2ggKGlyLm1fa2luZCkgewor
ICAgICAgICBjYXNlIERPTUpJVDo6S2luZDo6Q2hlY2tOb2RlOgorICAgICAgICAgICAgYWRkVG9H
cmFwaChDaGVjaywgRWRnZShsb29rVXBOb2RlKGlyLm1fY2hpbGQxKSwgRE9NTm9kZVVzZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBET01KSVQ6OktpbmQ6OkNoZWNrTm9k
ZUZsYWdzOgorICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja05vZGVGbGFncywgT3BJbmZvKGly
Lm1fb3BJbmZvMSksIE9wSW5mbyhpci5tX29wSW5mbzIpLCBsb29rVXBOb2RlKGlyLm1fY2hpbGQx
KSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERPTUpJVDo6S2luZDo6R2V0
V3JhcHBlZDoKKyAgICAgICAgICAgIHJlZ2lzdGVyTm9kZSgmaXIsIGFkZFRvR3JhcGgoR2V0RE9N
V3JhcHBlZCwgT3BJbmZvKGlyLm1fb3BJbmZvMSksIGxvb2tVcE5vZGUoaXIubV9jaGlsZDEpKSk7
CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERPTUpJVDo6S2luZDo6TG9hZFBv
aW50ZXI6CisgICAgICAgICAgICByZWdpc3Rlck5vZGUoJmlyLCBhZGRUb0dyYXBoKExvYWRPcGFx
dWVQb2ludGVyLCBPcEluZm8oaXIubV9vcEluZm8xKSwgbG9va1VwTm9kZShpci5tX2NoaWxkMSkp
KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRE9NSklUOjpLaW5kOjpUb1dy
YXBwZXI6CisgICAgICAgICAgICByZWdpc3Rlck5vZGUoJmlyLCBhZGRUb0dyYXBoKFRvRE9NV3Jh
cHBlciwgT3BJbmZvKGlyLm1fb3BJbmZvMSksIE9wSW5mbyhpci5tX29wSW5mbzIpLCBsb29rVXBO
b2RlKGlyLm1fY2hpbGQxKSwgbG9va1VwTm9kZShpci5tX2NoaWxkMikpKTsKKyAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgIGNhc2UgRE9NSklUOjpLaW5kOjpSZXR1cm46CisgICAgICAgICAg
ICBzZXQoVmlydHVhbFJlZ2lzdGVyKHJlc3VsdE9wZXJhbmQpLCBsb29rVXBOb2RlKGlyLm1fY2hp
bGQxKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERPTUpJVDo6S2luZDo6
RXh0ZXJuYWw6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJl
dHVybiB0cnVlOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGVja3NGdW5jdG9yPgogYm9vbCBC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlVHlwZWRBcnJheUNvbnN0cnVjdG9yKAogICAgIGludCByZXN1
bHRPcGVyYW5kLCBJbnRlcm5hbEZ1bmN0aW9uKiBmdW5jdGlvbiwgaW50IHJlZ2lzdGVyT2Zmc2V0
LApAQCAtMzMxMiw2ICszMzY1LDcgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlR2V0QnlJ
ZCgKICAgICAKICAgICBBU1NFUlQoZ2V0QnlJZFN0YXR1cy5udW1WYXJpYW50cygpID09IDEpOwog
ICAgIEdldEJ5SWRWYXJpYW50IHZhcmlhbnQgPSBnZXRCeUlkU3RhdHVzWzBdOworCiAgICAgICAg
ICAgICAgICAgCiAgICAgTm9kZSogbG9hZGVkVmFsdWUgPSBsb2FkKHByZWRpY3Rpb24sIGJhc2Us
IGlkZW50aWZpZXJOdW1iZXIsIHZhcmlhbnQpOwogICAgIGlmICghbG9hZGVkVmFsdWUpIHsKQEAg
LTMzMjQsNiArMzM3OCwxNCBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVHZXRCeUlkKAog
ICAgICAgICBtX2dyYXBoLmNvbXBpbGF0aW9uKCktPm5vdGljZUlubGluZWRHZXRCeUlkKCk7CiAK
ICAgICBBU1NFUlQodHlwZSA9PSBBY2Nlc3NUeXBlOjpHZXQgfHwgIXZhcmlhbnQuY2FsbExpbmtT
dGF0dXMoKSk7CisKKyAgICBpZiAodmFyaWFudC5kb21KSVQoKSkgeworICAgICAgICBpZiAoaGFu
ZGxlRE9NSklUR2V0dGVyKGRlc3RpbmF0aW9uT3BlcmFuZCwgdmFyaWFudCwgYmFzZSwgcHJlZGlj
dGlvbikpIHsKKyAgICAgICAgICAgIGFkZFRvR3JhcGgoUGhhbnRvbSwgbG9hZGVkVmFsdWUpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKCF2YXJpYW50
LmNhbGxMaW5rU3RhdHVzKCkgJiYgdmFyaWFudC5pbnRyaW5zaWMoKSA9PSBOb0ludHJpbnNpYykg
ewogICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGRlc3RpbmF0aW9uT3BlcmFuZCksIGxvYWRl
ZFZhbHVlKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaAppbmRleCA4N2Q4YjUyZDhjZDc5ZmQ0OTI0Yzg1ODIxNDI2MTZlNzJkYTcyM2M0
Li5iNzU1ZjJjZWY2ZTA2YjI3YzdmYTAxMDJiN2ZlZDMwM2ZjN2FiNDA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtODQ1LDYgKzg0NSwxMCBAQCB2b2lk
IGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYg
cmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKENoZWNrVHlwZUlu
Zm9GbGFnc0xvYywgSlNDZWxsX3R5cGVJbmZvRmxhZ3MsIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5v
ZGUobm9kZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgor
ICAgICAgICByZWFkKFdvcmxkKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBPdmVycmlk
ZXNIYXNJbnN0YW5jZToKICAgICAgICAgcmVhZChKU0NlbGxfdHlwZUluZm9GbGFncyk7CiAgICAg
ICAgIGRlZihIZWFwTG9jYXRpb24oT3ZlcnJpZGVzSGFzSW5zdGFuY2VMb2MsIEpTQ2VsbF90eXBl
SW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKQEAgLTg4Myw2ICs4
ODcsMTggQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3Qg
UmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlv
bihCdXR0ZXJmbHlMb2MsIEpTT2JqZWN0X2J1dHRlcmZseSwgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5
Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBQcmVjaXNlbHkg
bW9kZWwgaXQuCisgICAgY2FzZSBMb2FkT3BhcXVlUG9pbnRlcjoKKyAgICBjYXNlIEdldERPTVdy
YXBwZWQ6CisgICAgICAgIHJlYWQoT3BhcXVlUG9pbnRlcik7CisgICAgICAgIHdyaXRlKEhlYXAp
OworICAgICAgICByZXR1cm47CisKKyAgICBjYXNlIFRvRE9NV3JhcHBlcjoKKyAgICAgICAgcmVh
ZChPcGFxdWVQb2ludGVyKTsKKyAgICAgICAgd3JpdGUoSGVhcCk7CisgICAgICAgIHJldHVybjsK
KwogICAgIGNhc2UgQXJyYXlpZnk6CiAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgogICAg
ICAgICByZWFkKEpTQ2VsbF9zdHJ1Y3R1cmVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJzRXhpdFN0YXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcnNFeGl0U3RhdGUuY3BwCmluZGV4IGJkMzM5Yjg5YTUxMjRiM2Y3
NDczYWExMmE3ZDQwODk2MGIwY2VmZjMuLmMzZTM4ZTIwODc2ZWVkMTc1YjFmNWEzOWQyNTdmZjY5
MjFjZTBmNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJl
cnNFeGl0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJl
cnNFeGl0U3RhdGUuY3BwCkBAIC02OSw2ICs2OSw4IEBAIGJvb2wgY2xvYmJlcnNFeGl0U3RhdGUo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3Rv
cmFnZToKICAgICBjYXNlIFN0b3JlQmFycmllcjoKICAgICBjYXNlIEZlbmNlZFN0b3JlQmFycmll
cjoKKyAgICBjYXNlIEdldERPTVdyYXBwZWQ6CisgICAgY2FzZSBMb2FkT3BhcXVlUG9pbnRlcjoK
ICAgICAgICAgLy8gVGhlc2UgZG8gY2xvYmJlciBtZW1vcnksIGJ1dCBub3RoaW5nIHRoYXQgaXMg
b2JzZXJ2YWJsZS4gSXQgbWF5IGJlIG5pY2UgdG8gc2VwYXJhdGUgdGhlCiAgICAgICAgIC8vIGhl
YXBzIGludG8gdGhvc2UgdGhhdCBhcmUgb2JzZXJ2YWJsZSBhbmQgdGhvc2UgdGhhdCBhcmVuJ3Qs
IGJ1dCB3ZSBkb24ndCBkbyB0aGF0IHJpZ2h0IG5vdy4KICAgICAgICAgLy8gRklYTUU6IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg0NDAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCAwYWQ1NGZlZTJmZjM5ZDg4NTcwYjE3NzY3ODFm
MjQxOTYwOWZkY2RhLi43YjVhNzc0OGQzODM0ODE3NjY0ZGUxYTZmZDdjMjQzZDg0ZWI3ZGRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC0xMTYsNiArMTE2LDkg
QEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tT
dHJ1Y3R1cmU6CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgIGNhc2UgR2V0QnV0dGVyZmx5
OgorICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CisgICAgY2FzZSBHZXRET01XcmFwcGVkOgor
ICAgIGNhc2UgVG9ET01XcmFwcGVyOgogICAgIGNhc2UgQ2hlY2tBcnJheToKICAgICBjYXNlIEdl
dFNjb3BlOgogICAgIGNhc2UgU2tpcFNjb3BlOgpAQCAtMjAzLDYgKzIwNiw3IEBAIGJvb2wgZG9l
c0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENvbnN0YW50U3RvcmFnZVBv
aW50ZXI6CiAgICAgY2FzZSBDaGVjazoKICAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKKyAg
ICBjYXNlIENoZWNrTm9kZUZsYWdzOgogICAgIGNhc2UgTXVsdGlHZXRCeU9mZnNldDoKICAgICBj
YXNlIFZhbHVlUmVwOgogICAgIGNhc2UgRG91YmxlUmVwOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggNWFkNmFmZDQ3YjQ4MjUwMzkwMjQzNzU5ODE5
ODYzNmRmYWExMTgwMC4uMDBiMDlmYzM0ZGZkMWQ3NjEyNWQyYjY1YzllMTA2NDE0MDk0OTZjNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xMjQ0
LDcgKzEyNDQsOCBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAg
Y2FzZSBDaGVja1N0cnVjdHVyZToKICAgICAgICAgY2FzZSBDaGVja0NlbGw6CiAgICAgICAgIGNh
c2UgQ3JlYXRlVGhpczoKLSAgICAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6IHsKKyAgICAgICAgY2Fz
ZSBHZXRCdXR0ZXJmbHk6CisgICAgICAgIGNhc2UgR2V0RE9NV3JhcHBlZDogewogICAgICAgICAg
ICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQpAQCAtMTYwMyw2ICsxNjA0LDEwIEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJs
aWMgUGhhc2UgewogICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIFRvRE9NV3JhcHBlcjoKKyAg
ICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAg
YnJlYWs7CisKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAgIC8vIEhhdmUgdGhlc2Ugbm8t
b3AgY2FzZXMgaGVyZSB0byBlbnN1cmUgdGhhdCBub2JvZHkgZm9yZ2V0cyB0byBhZGQgaGFuZGxl
cnMgZm9yIG5ldyBvcGNvZGVzLgogICAgICAgICBjYXNlIFNldEFyZ3VtZW50OgpAQCAtMTYyMSw2
ICsxNjI2LDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNh
c2UgTm90aWZ5V3JpdGU6CiAgICAgICAgIGNhc2UgQ2FsbDoKICAgICAgICAgY2FzZSBDaGVja1R5
cGVJbmZvRmxhZ3M6CisgICAgICAgIGNhc2UgQ2hlY2tOb2RlRmxhZ3M6CiAgICAgICAgIGNhc2Ug
VGFpbENhbGxJbmxpbmVkQ2FsbGVyOgogICAgICAgICBjYXNlIENvbnN0cnVjdDoKICAgICAgICAg
Y2FzZSBDYWxsVmFyYXJnczoKQEAgLTE2NzEsNiArMTY3Nyw3IEBAIGNsYXNzIEZpeHVwUGhhc2Ug
OiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIFB1dEJ5VmFsV2l0aFRoaXM6CiAgICAgICAg
IGNhc2UgR2V0QnlWYWxXaXRoVGhpczoKICAgICAgICAgY2FzZSBDb21wYXJlRXFQdHI6CisgICAg
ICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dlbmVyYXRpb25JbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dlbmVyYXRpb25JbmZvLmgKaW5kZXggZTlkZjg0MTA2ODUyNThjNjQ5MzdhZjRlNmUzNmU1ZTAw
Nzc2ZGU5MC4uMzgyZGVhMWM2MjJmYjNjNTQ0MGRiOGQ4ZDEwZWU3ZThiYTc4MDBiMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR2VuZXJhdGlvbkluZm8uaApAQCAtMTQ2LDYg
KzE0NiwxMSBAQCBjbGFzcyBHZW5lcmF0aW9uSW5mbyB7CiAgICAgewogICAgICAgICBpbml0R1BS
KG5vZGUsIHVzZUNvdW50LCBncHIsIERhdGFGb3JtYXRTdG9yYWdlKTsKICAgICB9CisgICAgdm9p
ZCBpbml0T3BhcXVlUG9pbnRlcihOb2RlKiBub2RlLCB1aW50MzJfdCB1c2VDb3VudCwgR1BSUmVn
IGdwcikKKyAgICB7CisgICAgICAgIGluaXRHUFIobm9kZSwgdXNlQ291bnQsIGdwciwgRGF0YUZv
cm1hdE9wYXF1ZVBvaW50ZXIpOworICAgIH0KKwogCiAgICAgLy8gR2V0IHRoZSBub2RlIHRoYXQg
cHJvZHVjZWQgdGhpcyB2YWx1ZS4KICAgICBOb2RlKiBub2RlKCkgeyByZXR1cm4gbV9ub2RlOyB9
CkBAIC0zNzEsNiArMzc2LDEwIEBAIGNsYXNzIEdlbmVyYXRpb25JbmZvIHsKICAgICB7CiAgICAg
ICAgIGZpbGxHUFIoc3RyZWFtLCBncHIsIERhdGFGb3JtYXRTdG9yYWdlKTsKICAgICB9CisgICAg
dm9pZCBmaWxsT3BhcXVlUG9pbnRlcihWYXJpYWJsZUV2ZW50U3RyZWFtJiBzdHJlYW0sIEdQUlJl
ZyBncHIpCisgICAgeworICAgICAgICBmaWxsR1BSKHN0cmVhbSwgZ3ByLCBEYXRhRm9ybWF0T3Bh
cXVlUG9pbnRlcik7CisgICAgfQogCiAgICAgYm9vbCBhbGl2ZSgpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGUuaAppbmRleCA0YmFlOWFlOTYzNjA5YzNmMzczMDZiMTRmNTcyZjJi
NGZhYzU3NDRiLi41MmNmMTVkZGQ5MmRlY2E3OGI0YTgzMzIxODFmNjA1NjZiNTFmNzlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtNTgsNiArNTgsMTAgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKK25hbWVzcGFjZSBET01KSVQgeworY2xhc3MgR3JhcGg7Cit9CisKIG5hbWVz
cGFjZSBQcm9maWxlciB7CiBjbGFzcyBFeGVjdXRpb25Db3VudGVyOwogfQpAQCAtMTIxNSw2ICsx
MjE5LDExIEBAIHN0cnVjdCBOb2RlIHsKICAgICB7CiAgICAgICAgIHJldHVybiByZXN1bHQoKSA9
PSBOb2RlUmVzdWx0U3RvcmFnZTsKICAgICB9CisKKyAgICBib29sIGhhc09wYXF1ZVBvaW50ZXJS
ZXN1bHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlc3VsdCgpID09IE5vZGVSZXN1bHRPcGFx
dWVQb2ludGVyOworICAgIH0KICAgICAKICAgICBVc2VLaW5kIGRlZmF1bHRVc2VLaW5kKCkKICAg
ICB7CkBAIC0yMjU5LDYgKzIyNjgsMjEgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAg
cmV0dXJuIG9wMS0+c2hvdWxkU3BlY3VsYXRlQXJyYXkoKSAmJiBvcDItPnNob3VsZFNwZWN1bGF0
ZUFycmF5KCk7CiAgICAgfQorCisgICAgYm9vbCBzaG91bGRTcGVjdWxhdGVET01Ob2RlKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBpc0RPTU5vZGVTcGVjdWxhdGlvbihwcmVkaWN0aW9uKCkpOwor
ICAgIH0KKworICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlRE9NRWxlbWVudCgpCisgICAgeworICAg
ICAgICByZXR1cm4gaXNET01FbGVtZW50U3BlY3VsYXRpb24ocHJlZGljdGlvbigpKTsKKyAgICB9
CisKKyAgICBib29sIHNob3VsZFNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcigpCisgICAgewor
ICAgICAgICByZXR1cm4gaXNET01Eb2N1bWVudFdyYXBwZXJTcGVjdWxhdGlvbihwcmVkaWN0aW9u
KCkpOworICAgIH0KICAgICAKICAgICBib29sIGNhblNwZWN1bGF0ZUludDMyKFJhcmVDYXNlUHJv
ZmlsaW5nU291cmNlIHNvdXJjZSkKICAgICB7CkBAIC0yMzA4LDcgKzIzMzIsNDIgQEAgc3RydWN0
IE5vZGUgewogICAgICAgICBBU1NFUlQoaGFzQmFzaWNCbG9ja0xvY2F0aW9uKCkpOwogICAgICAg
ICByZXR1cm4gbV9vcEluZm8uYXM8QmFzaWNCbG9ja0xvY2F0aW9uKj4oKTsKICAgICB9Ci0gICAg
CisKKyAgICBib29sIGhhc09wYXF1ZVBvaW50ZXJPZmZzZXQoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIG9wKCkgPT0gTG9hZE9wYXF1ZVBvaW50ZXIgfHwgb3AoKSA9PSBHZXRET01XcmFwcGVkIHx8
IG9wKCkgPT0gQ2hlY2tOb2RlRmxhZ3MgfHwgb3AoKSA9PSBUb0RPTVdyYXBwZXI7CisgICAgfQor
CisgICAgcHRyZGlmZl90IG9wYXF1ZVBvaW50ZXJPZmZzZXQoKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKGhhc09wYXF1ZVBvaW50ZXJPZmZzZXQoKSk7CisgICAgICAgIHJldHVybiBtX29wSW5mby5h
czxwdHJkaWZmX3Q+KCk7CisgICAgfQorCisgICAgYm9vbCBoYXNOb2RlRmxhZ3NPcGVyYW5kKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBvcCgpID09IENoZWNrTm9kZUZsYWdzOworICAgIH0KKwor
ICAgIHVpbnQzMl90IG5vZGVGbGFnc09wZXJhbmQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhh
c05vZGVGbGFnc09wZXJhbmQoKSk7CisgICAgICAgIHJldHVybiBtX29wSW5mbzIuYXM8dWludDMy
X3Q+KCk7CisgICAgfQorCisgICAgYm9vbCBoYXNTbG93VG9KU09wZXJhdGlvbigpCisgICAgewor
ICAgICAgICByZXR1cm4gb3AoKSA9PSBUb0RPTVdyYXBwZXI7CisgICAgfQorCisgICAgdHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSAoKlRvSlNPcGVyYXRpb24pKEpTQzo6RXhlY1N0YXRlKiwgdm9pZCos
IHZvaWQqKTsKKworICAgIFRvSlNPcGVyYXRpb24gc2xvd1RvSlNPcGVyYXRpb24oKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKGhhc1Nsb3dUb0pTT3BlcmF0aW9uKCkpOworICAgICAgICByZXR1cm4g
Yml0d2lzZV9jYXN0PFRvSlNPcGVyYXRpb24+KG1fb3BJbmZvMi5hczx1aW50cHRyX3Q+KCkpOwor
ICAgIH0KKwogICAgIE5vZGUqIHJlcGxhY2VtZW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJl
dHVybiBtX21pc2MucmVwbGFjZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVGbGFncy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVGbGFncy5jcHAKaW5kZXggMzQwODQyMTkwMjBmMTEyMWM0ZDhlZGJiNDZiM2RlNjhhYzI5MjA2
Zi4uYTQwM2ZkNDIzYjIwNzU3MmM5Y2FjMmZiMTE5Y2ZiZjRjNmM5ZGQxOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcApAQCAtNjIsNiArNjIsOSBAQCB2b2lk
IGR1bXBOb2RlRmxhZ3MoUHJpbnRTdHJlYW0mIGFjdHVhbE91dCwgTm9kZUZsYWdzIGZsYWdzKQog
ICAgICAgICBjYXNlIE5vZGVSZXN1bHRTdG9yYWdlOgogICAgICAgICAgICAgb3V0LnByaW50KGNv
bW1hLCAiU3RvcmFnZSIpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZVJl
c3VsdE9wYXF1ZVBvaW50ZXI6CisgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICJPcGFxdWVQ
b2ludGVyIik7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCmluZGV4IDRhYmFkZGYyNDkzYzYz
ZjU0MDY1Y2QzMDFhMzRiYmM2NzBkYmZkMWEuLjU0NzE4YWM1Mjc0M2JjYmM3ZDc4MTNmZDFmYzM3
ODJmOGI4NTMxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZUZsYWdzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaApA
QCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIC8vIEVu
dHJpZXMgaW4gdGhlIE5vZGVUeXBlIGVudW0gKGJlbG93KSBhcmUgY29tcG9zZWQgb2YgYW4gaWQs
IGEgcmVzdWx0IHR5cGUgKHBvc3NpYmx5IG5vbmUpCiAvLyBhbmQgc29tZSBhZGRpdGlvbmFsIGlu
Zm9ybWF0aXZlIGZsYWdzIChtdXN0IGdlbmVyYXRlLCBpcyBjb25zdGFudCwgZXRjKS4KLSNkZWZp
bmUgTm9kZVJlc3VsdE1hc2sgICAgICAgICAgICAgICAgICAgMHgwMDA3CisjZGVmaW5lIE5vZGVS
ZXN1bHRNYXNrICAgICAgICAgICAgICAgICAgIDB4MDAwZgogI2RlZmluZSBOb2RlUmVzdWx0SlMg
ICAgICAgICAgICAgICAgICAgICAweDAwMDEKICNkZWZpbmUgTm9kZVJlc3VsdE51bWJlciAgICAg
ICAgICAgICAgICAgMHgwMDAyCiAjZGVmaW5lIE5vZGVSZXN1bHREb3VibGUgICAgICAgICAgICAg
ICAgIDB4MDAwMwpAQCAtNDIsMzUgKzQyLDM2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
REZHIHsKICNkZWZpbmUgTm9kZVJlc3VsdEludDUyICAgICAgICAgICAgICAgICAgMHgwMDA1CiAj
ZGVmaW5lIE5vZGVSZXN1bHRCb29sZWFuICAgICAgICAgICAgICAgIDB4MDAwNgogI2RlZmluZSBO
b2RlUmVzdWx0U3RvcmFnZSAgICAgICAgICAgICAgICAweDAwMDcKKyNkZWZpbmUgTm9kZVJlc3Vs
dE9wYXF1ZVBvaW50ZXIgICAgICAgICAgMHgwMDA4CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAotI2RlZmluZSBOb2RlTXVzdEdlbmVyYXRlICAgICAgICAgICAgICAgICAweDAwMDgg
Ly8gc2V0IG9uIG5vZGVzIHRoYXQgaGF2ZSBzaWRlIGVmZmVjdHMsIGFuZCBtYXkgbm90IHRyaXZp
YWxseSBiZSByZW1vdmVkIGJ5IERDRS4KLSNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAgICAgICAg
ICAgICAgICAgMHgwMDEwCisjZGVmaW5lIE5vZGVNdXN0R2VuZXJhdGUgICAgICAgICAgICAgICAg
IDB4MDAxMCAvLyBzZXQgb24gbm9kZXMgdGhhdCBoYXZlIHNpZGUgZWZmZWN0cywgYW5kIG1heSBu
b3QgdHJpdmlhbGx5IGJlIHJlbW92ZWQgYnkgRENFLgorI2RlZmluZSBOb2RlSGFzVmFyQXJncyAg
ICAgICAgICAgICAgICAgICAweDAwMjAKICAgICAKLSNkZWZpbmUgTm9kZUJlaGF2aW9yTWFzayAg
ICAgICAgICAgICAgICAgMHgwN2UwCi0jZGVmaW5lIE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0ICAg
ICAgICAgIDB4MDAyMAotI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiAgICAgICAgICAgICAw
eDAwNDAKLSNkZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDgwCi0j
ZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgICAgICAgIDB4MDEwMAotI2RlZmluZSBO
b2RlTWF5TmVnWmVyb0luQmFzZWxpbmUgICAgICAgICAweDAyMDAKLSNkZWZpbmUgTm9kZU1heU5l
Z1plcm9JbkRGRyAgICAgICAgICAgICAgMHgwNDAwCi0jZGVmaW5lIE5vZGVNYXlIYXZlTm9uTnVt
YmVyUmVzdWx0ICAgICAgIDB4MDgwMAorI2RlZmluZSBOb2RlQmVoYXZpb3JNYXNrICAgICAgICAg
ICAgICAgICAweDBmYzAKKyNkZWZpbmUgTm9kZU1heUhhdmVEb3VibGVSZXN1bHQgICAgICAgICAg
MHgwMDQwCisjZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDUyICAgICAgICAgICAgIDB4MDA4MAor
I2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUgICAweDAxMDAKKyNkZWZpbmUg
Tm9kZU1heU92ZXJmbG93SW50MzJJbkRGRyAgICAgICAgMHgwMjAwCisjZGVmaW5lIE5vZGVNYXlO
ZWdaZXJvSW5CYXNlbGluZSAgICAgICAgIDB4MDQwMAorI2RlZmluZSBOb2RlTWF5TmVnWmVyb0lu
REZHICAgICAgICAgICAgICAweDA4MDAKKyNkZWZpbmUgTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1
bHQgICAgICAgMHgxMDAwCiAjZGVmaW5lIE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0ICAgICAgICAg
IChOb2RlTWF5SGF2ZURvdWJsZVJlc3VsdCB8IE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0KQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlQmFj
a1Byb3BNYXNrICAgICAgICAweDFmMDAwCisjZGVmaW5lIE5vZGVCeXRlY29kZUJhY2tQcm9wTWFz
ayAgICAgICAgMHgzZTAwMAogI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VCb3R0b20gICAgICAgICAg
IDB4MDAwMDAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyICAgICAgICAweDAxMDAw
IC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBhIGNvbnRl
eHQgdGhhdCBvYnNlcnZlcyBmcmFjdGlvbmFsLCBvciBiaWdnZXItdGhhbi1pbnQzMiwgcmVzdWx0
cy4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvICAgICAgICAweDAyMDAwIC8vIFRo
ZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhh
dCBvYnNlcnZlcyAtMC4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIgICAgICAgICAw
eDA0MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBh
IGNvbnRleHQgdGhhdCBkaXN0aW5ndWlzaGVzIGJldHdlZW4gTmFOIGFuZCBvdGhlciB0aGluZ3Mg
KGxpa2UgdW5kZWZpbmVkKS4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyICAgICAg
ICAweDAyMDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBp
biBhIGNvbnRleHQgdGhhdCBvYnNlcnZlcyBmcmFjdGlvbmFsLCBvciBiaWdnZXItdGhhbi1pbnQz
MiwgcmVzdWx0cy4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvICAgICAgICAweDA0
MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBhIGNv
bnRleHQgdGhhdCBvYnNlcnZlcyAtMC4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIg
ICAgICAgICAweDA4MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUg
dXNlZCBpbiBhIGNvbnRleHQgdGhhdCBkaXN0aW5ndWlzaGVzIGJldHdlZW4gTmFOIGFuZCBvdGhl
ciB0aGluZ3MgKGxpa2UgdW5kZWZpbmVkKS4KICNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzVmFs
dWUgICAgICAgICAoTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyIHwgTm9kZUJ5dGVjb2RlTmVlZHNO
ZWdaZXJvIHwgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIpCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVz
ZXNBc0ludCAgICAgICAgICAgMHgwODAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRp
b24gaXMga25vd24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBwcmVmZXJzLCBidXQgZG9l
cyBub3QgcmVxdWlyZSwgaW50ZWdlciB2YWx1ZXMuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNB
c0FycmF5SW5kZXggICAgMHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24g
aXMga25vd24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBzdHJvbmdseSBwcmVmZXJzIGlu
dGVnZXIgdmFsdWVzLCB0byB0aGUgcG9pbnQgdGhhdCB3ZSBzaG91bGQgYXZvaWQgdXNpbmcgZG91
YmxlcyBpZiBhdCBhbGwgcG9zc2libGUuCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc0ludCAg
ICAgICAgICAgMHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gaXMga25v
d24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBwcmVmZXJzLCBidXQgZG9lcyBub3QgcmVx
dWlyZSwgaW50ZWdlciB2YWx1ZXMuCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc0FycmF5SW5k
ZXggICAgMHgyMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gaXMga25vd24g
dG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBzdHJvbmdseSBwcmVmZXJzIGludGVnZXIgdmFs
dWVzLCB0byB0aGUgcG9pbnQgdGhhdCB3ZSBzaG91bGQgYXZvaWQgdXNpbmcgZG91YmxlcyBpZiBh
dCBhbGwgcG9zc2libGUuCiAKICNkZWZpbmUgTm9kZUFyaXRoRmxhZ3NNYXNrICAgICAgICAgICAg
ICAgKE5vZGVCZWhhdmlvck1hc2sgfCBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2spCiAKLSNkZWZp
bmUgTm9kZUlzRmx1c2hlZCAgICAgICAgICAgICAgICAgICAweDIwMDAwIC8vIENvbXB1dGVkIGJ5
IENQU1JldGhyZWFkaW5nUGhhc2UsIHdpbGwgdGVsbCB5b3Ugd2hpY2ggbG9jYWwgbm9kZXMgYXJl
IGJhY2t3YXJkcy1yZWFjaGFibGUgZnJvbSBhIEZsdXNoLgorI2RlZmluZSBOb2RlSXNGbHVzaGVk
ICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwIC8vIENvbXB1dGVkIGJ5IENQU1JldGhyZWFkaW5n
UGhhc2UsIHdpbGwgdGVsbCB5b3Ugd2hpY2ggbG9jYWwgbm9kZXMgYXJlIGJhY2t3YXJkcy1yZWFj
aGFibGUgZnJvbSBhIEZsdXNoLgogCi0jZGVmaW5lIE5vZGVNaXNjRmxhZzEgICAgICAgICAgICAg
ICAgICAgMHg0MDAwMAotI2RlZmluZSBOb2RlTWlzY0ZsYWcyICAgICAgICAgICAgICAgICAgIDB4
ODAwMDAKKyNkZWZpbmUgTm9kZU1pc2NGbGFnMSAgICAgICAgICAgICAgICAgICAweDA4MDAwMAor
I2RlZmluZSBOb2RlTWlzY0ZsYWcyICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwCiAKIHR5cGVk
ZWYgdWludDMyX3QgTm9kZUZsYWdzOwogCkBAIC0xNjQsNiArMTY1LDcgQEAgc3RhdGljIGlubGlu
ZSBOb2RlRmxhZ3MgY2Fub25pY2FsUmVzdWx0UmVwcmVzZW50YXRpb24oTm9kZUZsYWdzIGZsYWdz
KQogICAgIGNhc2UgTm9kZVJlc3VsdERvdWJsZToKICAgICBjYXNlIE5vZGVSZXN1bHRJbnQ1MjoK
ICAgICBjYXNlIE5vZGVSZXN1bHRTdG9yYWdlOgorICAgIGNhc2UgTm9kZVJlc3VsdE9wYXF1ZVBv
aW50ZXI6CiAgICAgICAgIHJldHVybiBmbGFnczsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1
cm4gTm9kZVJlc3VsdEpTOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmlu
ZGV4IDhiNGQ5ZjBjMzA5YTdjMTg5ZDY1MjI3NjliMDdkNTI5NGQ2NmM0ZmQuLjY0M2U3NzI4ZTM3
OGYwNWVhYjljMDg5ODExOTdmMzc5YTIyOTMxYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVUeXBlLmgKQEAgLTM5NCw2ICszOTQsMTIgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogICAgIG1hY3JvKEdldE1hcEJ1Y2tldCwgTm9kZVJlc3VsdEpTKSBcCiAgICAg
bWFjcm8oTG9hZEZyb21KU01hcEJ1Y2tldCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oSXNO
b25FbXB0eU1hcEJ1Y2tldCwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKKyAgICBcCisgICAgLyogTm9k
ZXMgZm9yIERPTSBKSVQgKi9cCisgICAgbWFjcm8oTG9hZE9wYXF1ZVBvaW50ZXIsIE5vZGVSZXN1
bHRPcGFxdWVQb2ludGVyKSBcCisgICAgbWFjcm8oQ2hlY2tOb2RlRmxhZ3MsIE5vZGVNdXN0R2Vu
ZXJhdGUpIFwKKyAgICBtYWNybyhHZXRET01XcmFwcGVkLCBOb2RlUmVzdWx0T3BhcXVlUG9pbnRl
cikgXAorICAgIG1hY3JvKFRvRE9NV3JhcHBlciwgTm9kZVJlc3VsdEpTKSBcCiAKIC8vIFRoaXMg
ZW51bSBnZW5lcmF0ZXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgaWQgZm9yIGFsbCBOb2Rl
IHR5cGVzLAogLy8gYW5kIGlzIHVzZWQgYnkgdGhlIHN1YnNlcXVlbnQgZW51bSB0byBmaWxsIG91
dCB0aGUgaWQgKGFzIGFjY2Vzc2VkIHZpYSB0aGUgTm9kZUlkTWFzaykuCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwCmluZGV4IGJhZmRmOTA2ZWJmNmY3MzA3Y2FmNDBmNmI4NWMxMWIwMTE5ZTFmMjIuLjI3
NDU3MGNjZjlmZjZiNWJmMDJlNTkxMDJiNjE0YjRkYTdlNTcxOTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwCkBAIC04MTksNiArODE5LDE2IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlIDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyAg
ICAgICAgY2FzZSBMb2FkT3BhcXVlUG9pbnRlcjoKKyAgICAgICAgY2FzZSBHZXRET01XcmFwcGVk
OgorICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjT3RoZXIpOworICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgLy8gRklYTUU6IE1vZGVsIHByZWNpc2VseS4KKyAgICAgICAgY2FzZSBU
b0RPTVdyYXBwZXI6CisgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNET01Ob2RlIHwgU3Bl
Y090aGVyKTsKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgQ2FsbE9iamVjdENv
bnN0cnVjdG9yOiB7CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNPYmplY3QpOwogICAg
ICAgICAgICAgYnJlYWs7CkBAIC0xMDU4LDYgKzEwNjgsNyBAQCBjbGFzcyBQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJl
OgogICAgICAgICBjYXNlIFBoYW50b206CiAgICAgICAgIGNhc2UgQ2hlY2s6CisgICAgICAgIGNh
c2UgQ2hlY2tOb2RlRmxhZ3M6CiAgICAgICAgIGNhc2UgUHV0R2xvYmFsVmFyaWFibGU6CiAgICAg
ICAgIGNhc2UgQ2hlY2tXYXRjaGRvZ1RpbWVyOgogICAgICAgICBjYXNlIExvZ1NoYWRvd0NoaWNr
ZW5Qcm9sb2d1ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRl
LmgKaW5kZXggYmRkZDQ2NjAxN2U5Zjg3YjZjMDM1NDQwY2Q4YWYxNDdiODY1ZGY0Zi4uNjAxOGY1
MmFkZjhhZjcyMzdmZDczZWFhY2ZiZDYxNTA5YTQwMGU1MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTU5LDYgKzU5LDkgQEAgY2xhc3MgU2Fm
ZVRvRXhlY3V0ZUVkZ2UgewogICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNlOgogICAgICAgICBj
YXNlIFJlZ0V4cE9iamVjdFVzZToKICAgICAgICAgY2FzZSBQcm94eU9iamVjdFVzZToKKyAgICAg
ICAgY2FzZSBET01Ob2RlVXNlOgorICAgICAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAgICAg
IGNhc2UgRE9NRG9jdW1lbnRXcmFwcGVyVXNlOgogICAgICAgICBjYXNlIERlcml2ZWRBcnJheVVz
ZToKICAgICAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgU2V0T2JqZWN0VXNl
OgpAQCAtMjE2LDYgKzIxOSw5IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlw
ZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNrU3RydWN0
dXJlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBjYXNlIEdldEJ1dHRlcmZseToKKyAg
ICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgorICAgIGNhc2UgR2V0RE9NV3JhcHBlZDoKKyAgICBj
YXNlIFRvRE9NV3JhcHBlcjoKICAgICBjYXNlIENoZWNrQXJyYXk6CiAgICAgY2FzZSBBcnJheWlm
eToKICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CkBAIC0yNTksNiArMjY1LDcgQEAgYm9v
bCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBO
b2RlKiBub2RlKQogICAgIGNhc2UgUHJvZmlsZVR5cGU6CiAgICAgY2FzZSBQcm9maWxlQ29udHJv
bEZsb3c6CiAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CisgICAgY2FzZSBDaGVja05vZGVG
bGFnczoKICAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgogICAgIGNhc2UgSW5zdGFuY2VP
ZjoKICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDEwZWZiNzIwNDNmMWFjODc3MDFhYmQ4
NmY5ZWNjYTFhZGY4ZDM3YjEuLmE2OTA0ZmJlNWZiOWFmYjk4NDYwYTFiMDFlNGE5MjdlMjRkZTUy
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCkBAIC00MjQsNyArNDI0LDcgQEAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2
ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWwKICAgICAgICAg
QVNTRVJUKGluZm8uZ3ByKCkgPT0gc291cmNlKTsKICAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0
ID09IERhdGFGb3JtYXRJbnQzMikKICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBh
eWxvYWQ7Ci0gICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxs
IHx8IHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQorICAgICAgICBlbHNlIGlm
IChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBE
YXRhRm9ybWF0U3RvcmFnZSB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0T3BhcXVlUG9p
bnRlcikKICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7CiAgICAgICAgIGVsc2Ug
aWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnQ1MiB8fCByZWdpc3RlckZvcm1hdCA9
PSBEYXRhRm9ybWF0U3RyaWN0SW50NTIpCiAgICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3Jl
NjQ7CkBAIC00NzgsNyArNDc4LDcgQEAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2
ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWwKICAgICAgICAg
ICAgIGZpbGxBY3Rpb24gPSBMb2FkMzJQYXlsb2FkOwogI2VuZGlmCiAgICAgICAgIH0KLSAgICB9
IGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7CisgICAgfSBl
bHNlIGlmIChyZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFnZSB8fCByZWdpc3RlckZv
cm1hdCA9PSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcikgewogICAgICAgICBBU1NFUlQoaW5mby5n
cHIoKSA9PSBzb3VyY2UpOwogICAgICAgICBmaWxsQWN0aW9uID0gTG9hZFB0cjsKICAgICB9IGVs
c2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnQ1MikgewpAQCAtOTYwLDYgKzk2
MCwzNiBAQCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTdG9yYWdlKEVkZ2UgZWRnZSkKICAg
ICB9CiB9CiAKK0dQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbE9wYXF1ZVBvaW50ZXIoRWRnZSBl
ZGdlKQoreworICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBlZGdlLT52aXJ0
dWFsUmVnaXN0ZXIoKTsKKyAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IGdlbmVyYXRpb25JbmZv
RnJvbVZpcnR1YWxSZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpOworICAgIAorICAgIHN3aXRjaCAo
aW5mby5yZWdpc3RlckZvcm1hdCgpKSB7CisgICAgY2FzZSBEYXRhRm9ybWF0Tm9uZTogeworICAg
ICAgICBpZiAoaW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRPcGFxdWVQb2ludGVyKSB7
CisgICAgICAgICAgICBHUFJSZWcgZ3ByID0gYWxsb2NhdGUoKTsKKyAgICAgICAgICAgIG1fZ3By
cy5yZXRhaW4oZ3ByLCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxsT3JkZXJTcGlsbGVkKTsKKyAgICAg
ICAgICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lz
dGVyKSwgZ3ByKTsKKyAgICAgICAgICAgIGluZm8uZmlsbE9wYXF1ZVBvaW50ZXIoKm1fc3RyZWFt
LCBncHIpOworICAgICAgICAgICAgcmV0dXJuIGdwcjsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgLy8gTXVzdCBiZSBhIGNlbGw7IGZpbGwgaXQgYXMgYSBjZWxsIGFuZCB0aGVuIHJldHVy
biB0aGUgcG9pbnRlci4KKyAgICAgICAgcmV0dXJuIGZpbGxTcGVjdWxhdGVDZWxsKGVkZ2UpOwor
ICAgIH0KKyAgICAgICAgCisgICAgY2FzZSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcjogeworICAg
ICAgICBHUFJSZWcgZ3ByID0gaW5mby5ncHIoKTsKKyAgICAgICAgbV9ncHJzLmxvY2soZ3ByKTsK
KyAgICAgICAgcmV0dXJuIGdwcjsKKyAgICB9CisgICAgICAgIAorICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJldHVybiBmaWxsU3BlY3VsYXRlQ2VsbChlZGdlKTsKKyAgICB9Cit9CisKIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OnVzZUNoaWxkcmVuKE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKG5vZGUtPmZs
YWdzKCkgJiBOb2RlSGFzVmFyQXJncykgewpAQCAtMjEwNSw2ICsyMTM1LDcgQEAgR2VuZXJhdGVk
T3BlcmFuZFR5cGUgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrR2VuZXJhdGVkVHlwZUZvclRvSW50MzIo
Tm9kZSogbm9kZSkKIAogICAgIHN3aXRjaCAoaW5mby5yZWdpc3RlckZvcm1hdCgpKSB7CiAgICAg
Y2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKKyAgICBjYXNlIERhdGFGb3JtYXRPcGFxdWVQb2ludGVy
OgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCiAgICAgY2FzZSBEYXRh
Rm9ybWF0Qm9vbGVhbjoKQEAgLTMwNTQsNiArMzA4NSwxNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQ2hlY2tUeXBlSW5mb0ZsYWdzKE5vZGUqIG5vZGUpCiAgICAgbm9SZXN1bHQobm9k
ZSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja05vZGVGbGFncyhOb2Rl
KiBub2RlKQoreworICAgIE9wYXF1ZVBvaW50ZXJPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOworCisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworCisgICAgc3BlY3Vs
YXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIo
TWFjcm9Bc3NlbWJsZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIG5v
ZGUtPm9wYXF1ZVBvaW50ZXJPZmZzZXQoKSksIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIo
bm9kZS0+bm9kZUZsYWdzT3BlcmFuZCgpKSkpOworCisgICAgbm9SZXN1bHQobm9kZSk7Cit9CisK
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnN0YW5jZU9mKE5vZGUqIG5vZGUpCiB7CiAg
ICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlKSB7CkBAIC03MDU3
LDYgKzcwOTksNzQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ1dHRlcmZseShO
b2RlKiBub2RlKQogICAgIHN0b3JhZ2VSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKIH0KIAordm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRPcGFxdWVQb2ludGVyKE5vZGUqIG5vZGUpCit7
CisgICAgT3BhcXVlUG9pbnRlck9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Cisg
ICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgYmFzZSk7CisKKyAgICBHUFJSZWcg
YmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIo
KTsKKworICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFkZHJlc3MoYmFzZUdQUiwgbm9k
ZS0+b3BhcXVlUG9pbnRlck9mZnNldCgpKSwgcmVzdWx0R1BSKTsKKworICAgIG9wYXF1ZVBvaW50
ZXJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldERPTVdyYXBwZWQoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFu
ZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRo
aXMsIFJldXNlLCBiYXNlKTsKKworICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAg
ICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworCisgICAgbV9qaXQubG9hZFB0cihK
SVRDb21waWxlcjo6QWRkcmVzcyhiYXNlR1BSLCBub2RlLT5vcGFxdWVQb2ludGVyT2Zmc2V0KCkp
LCByZXN1bHRHUFIpOworCisgICAgb3BhcXVlUG9pbnRlclJlc3VsdChyZXN1bHRHUFIsIG5vZGUp
OworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9ET01XcmFwcGVyKE5vZGUqIG5v
ZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEo
KSk7CisgICAgT3BhcXVlUG9pbnRlck9wZXJhbmQgd3JhcHBlZCh0aGlzLCBub2RlLT5jaGlsZDIo
KSk7CisgICAgSlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworCisgICAgR1BSUmVn
IGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyB3cmFwcGVkR1BSID0gd3JhcHBlZC5n
cHIoKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKworICAg
IHNwZWN1bGF0ZURPTU5vZGUobm9kZS0+Y2hpbGQxKCksIGJhc2VHUFIpOworCisgICAgSklUQ29t
cGlsZXI6Okp1bXAgbm90TnVsbCA9IG1faml0LmJyYW5jaFRlc3RQdHIoSklUQ29tcGlsZXI6Ok5v
blplcm8sIHdyYXBwZWRHUFIpOworICAgIG1faml0Lm1vdmVUcnVzdGVkVmFsdWUoanNOdWxsKCks
IHJlc3VsdFJlZ3MpOworICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7
CisKKyAgICBub3ROdWxsLmxpbmsoJm1faml0KTsKKworICAgIC8vIFRoaXMgc2hvdWxkIGJlIHJl
bW92ZWQgYnkgREZHLgorICAgIC8vIG1faml0LT5tX2ppdC5lbWl0TG9hZFN0cnVjdHVyZSh3cmFw
cGVyUmVnLCBnbG9iYWxPYmplY3RSZWcsIHNjcmF0Y2hSZWcpOworICAgIC8vIG1faml0LT5tX2pp
dC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGdsb2JhbE9iamVjdFJlZywgSlNDOjpT
dHJ1Y3R1cmU6Omdsb2JhbE9iamVjdE9mZnNldCgpKSwgZ2xvYmFsT2JqZWN0UmVnKTsKKworICAg
IEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CisKKyAgICAvLyBzbG93Q2FzZXMuYXBw
ZW5kKG1faml0LT5tX2ppdC5icmFuY2hUZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MoZ2xvYmFsT2JqZWN0UmVnLCBKU0RPTUdsb2JhbE9iamVjdDo6b2Zm
c2V0T2ZXb3JsZElzTm9ybWFsKCkpKSk7CisKKyAgICAvLyBXZWFrUG9pbnRlciBkZXJlZmVyZW5j
ZS4KKyAgICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKHdyYXBwZWRHUFIsIG5v
ZGUtPm9wYXF1ZVBvaW50ZXJPZmZzZXQoKSksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKKyAg
ICBtX2ppdC5sb2FkUHRyKEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdFJlZ3MucGF5bG9hZEdQ
UigpKSwgcmVzdWx0UmVncy5wYXlsb2FkR1BSKCkpOworICAgIHNsb3dDYXNlcy5hcHBlbmQobV9q
aXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6WmVybywgcmVzdWx0UmVncy5wYXlsb2Fk
R1BSKCkpKTsKKworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgbV9qaXQubW92ZShNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCByZXN1bHRSZWdzLnRhZ0dQ
UigpKTsKKyNlbmRpZgorCisgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHNs
b3dDYXNlcywgdGhpcywgbm9kZS0+c2xvd1RvSlNPcGVyYXRpb24oKSwgcmVzdWx0UmVncywgd3Jh
cHBlZEdQUiwgYmFzZUdQUikpOworCisgICAgZG9uZS5saW5rKCZtX2ppdCk7CisKKyAgICBqc1Zh
bHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworfQorCiBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6
OnRlbXBvcmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwoR1BSVGVtcG9yYXJ5JiB0ZW1wb3JhcnksIEFy
cmF5TW9kZSBhcnJheU1vZGUpCiB7CiAgICAgaWYgKCFwdXRCeVZhbFdpbGxOZWVkRXh0cmFSZWdp
c3RlcihhcnJheU1vZGUpKQpAQCAtNzUwMCw2ICs3NjEwLDQ4IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OnNwZWN1bGF0ZVNldE9iamVjdChFZGdlIGVkZ2UpCiAgICAgc3BlY3VsYXRlU2V0T2JqZWN0
KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVET01Ob2RlKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0so
SlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNET01Ob2RlLCBtX2pp
dC5icmFuY2hJZk5vdERPTU5vZGUoY2VsbCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGVET01Ob2RlKEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVk
Z2UsIFNwZWNET01Ob2RlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVET01Ob2RlKGVkZ2UsIG9w
ZXJhbmQuZ3ByKCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01FbGVt
ZW50KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1
ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNET01FbGVtZW50LCBtX2ppdC5i
cmFuY2hJZk5vdERPTUVsZW1lbnQoY2VsbCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGVET01FbGVtZW50KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNr
KGVkZ2UsIFNwZWNET01FbGVtZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRl
Q2VsbE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVET01FbGVtZW50
KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVET01Eb2N1bWVudFdyYXBwZXIoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCkKK3sKKyAgICBzcGVj
dWxhdGVDZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyLCBET01Eb2N1
bWVudFdyYXBwZXJUeXBlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9N
RG9jdW1lbnRXcmFwcGVyKEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVk
Z2UsIFNwZWNET01Eb2N1bWVudFdyYXBwZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZURPTURv
Y3VtZW50V3JhcHBlcihlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlT2JqZWN0T3JPdGhlcihFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVk
c1R5cGVDaGVjayhlZGdlLCBTcGVjT2JqZWN0IHwgU3BlY090aGVyKSkKQEAgLTc4MDUsNiArNzk1
NywxNSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUoTm9kZSosIEVkZ2UgZWRnZSkK
ICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgIHNwZWN1bGF0ZU9iamVjdE9yT3Ro
ZXIoZWRnZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAg
c3BlY3VsYXRlRE9NTm9kZShlZGdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01FbGVt
ZW50VXNlOgorICAgICAgICBzcGVjdWxhdGVET01FbGVtZW50KGVkZ2UpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKKyAgICAgICAgc3BlY3VsYXRlRE9N
RG9jdW1lbnRXcmFwcGVyKGVkZ2UpOworICAgICAgICBicmVhazsKICAgICBjYXNlIFN0cmluZ0lk
ZW50VXNlOgogICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChlZGdlKTsKICAgICAgICAgYnJl
YWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5k
ZXggY2E5NzhmNmI3Mzk1MTM5NTAxNTEwZDA1ODI4YTAyOTgyMmY4NWExYi4uM2Q1ZjdjZmRjNjgz
YmY4MThjODk2MjE5M2FhZGYzMTEzZmJhZGRlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtOTIsMjUgKzkyLDI3IEBAIGNsYXNzIFNwZWN1
bGF0aXZlSklUIHsKICAgICAvLyB0aGUgcmVnaXN0ZXIgYWxsb2NhdG9yLgogI2lmIFVTRShKU1ZB
TFVFNjQpCiAgICAgZW51bSBTcGlsbE9yZGVyIHsKLSAgICAgICAgU3BpbGxPcmRlckNvbnN0YW50
ID0gMSwgLy8gbm8gc3BpbGwsIGFuZCBjaGVhcCBmaWxsCi0gICAgICAgIFNwaWxsT3JkZXJTcGls
bGVkICA9IDIsIC8vIG5vIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJKUyAgICAgICA9IDQsIC8v
IG5lZWRzIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJDZWxsICAgICA9IDQsIC8vIG5lZWRzIHNw
aWxsCi0gICAgICAgIFNwaWxsT3JkZXJTdG9yYWdlICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0gICAg
ICAgIFNwaWxsT3JkZXJJbnRlZ2VyICA9IDUsIC8vIG5lZWRzIHNwaWxsIGFuZCBib3gKLSAgICAg
ICAgU3BpbGxPcmRlckJvb2xlYW4gID0gNSwgLy8gbmVlZHMgc3BpbGwgYW5kIGJveAotICAgICAg
ICBTcGlsbE9yZGVyRG91YmxlICAgPSA2LCAvLyBuZWVkcyBzcGlsbCBhbmQgY29udmVydAorICAg
ICAgICBTcGlsbE9yZGVyQ29uc3RhbnQgICAgICA9IDEsIC8vIG5vIHNwaWxsLCBhbmQgY2hlYXAg
ZmlsbAorICAgICAgICBTcGlsbE9yZGVyU3BpbGxlZCAgICAgICA9IDIsIC8vIG5vIHNwaWxsCisg
ICAgICAgIFNwaWxsT3JkZXJKUyAgICAgICAgICAgID0gNCwgLy8gbmVlZHMgc3BpbGwKKyAgICAg
ICAgU3BpbGxPcmRlckNlbGwgICAgICAgICAgPSA0LCAvLyBuZWVkcyBzcGlsbAorICAgICAgICBT
cGlsbE9yZGVyU3RvcmFnZSAgICAgICA9IDQsIC8vIG5lZWRzIHNwaWxsCisgICAgICAgIFNwaWxs
T3JkZXJPcGFxdWVQb2ludGVyID0gNCwgLy8gbmVlZHMgc3BpbGwKKyAgICAgICAgU3BpbGxPcmRl
ckludGVnZXIgICAgICAgPSA1LCAvLyBuZWVkcyBzcGlsbCBhbmQgYm94CisgICAgICAgIFNwaWxs
T3JkZXJCb29sZWFuICAgICAgID0gNSwgLy8gbmVlZHMgc3BpbGwgYW5kIGJveAorICAgICAgICBT
cGlsbE9yZGVyRG91YmxlICAgICAgICA9IDYsIC8vIG5lZWRzIHNwaWxsIGFuZCBjb252ZXJ0CiAg
ICAgfTsKICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgZW51bSBTcGlsbE9yZGVyIHsKLSAg
ICAgICAgU3BpbGxPcmRlckNvbnN0YW50ID0gMSwgLy8gbm8gc3BpbGwsIGFuZCBjaGVhcCBmaWxs
Ci0gICAgICAgIFNwaWxsT3JkZXJTcGlsbGVkICA9IDIsIC8vIG5vIHNwaWxsCi0gICAgICAgIFNw
aWxsT3JkZXJKUyAgICAgICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJT
dG9yYWdlICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJEb3VibGUgICA9
IDQsIC8vIG5lZWRzIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJJbnRlZ2VyICA9IDUsIC8vIG5l
ZWRzIHNwaWxsIGFuZCBib3gKLSAgICAgICAgU3BpbGxPcmRlckNlbGwgICAgID0gNSwgLy8gbmVl
ZHMgc3BpbGwgYW5kIGJveAotICAgICAgICBTcGlsbE9yZGVyQm9vbGVhbiAgPSA1LCAvLyBuZWVk
cyBzcGlsbCBhbmQgYm94CisgICAgICAgIFNwaWxsT3JkZXJDb25zdGFudCAgICAgID0gMSwgLy8g
bm8gc3BpbGwsIGFuZCBjaGVhcCBmaWxsCisgICAgICAgIFNwaWxsT3JkZXJTcGlsbGVkICAgICAg
ID0gMiwgLy8gbm8gc3BpbGwKKyAgICAgICAgU3BpbGxPcmRlckpTICAgICAgICAgICAgPSA0LCAv
LyBuZWVkcyBzcGlsbAorICAgICAgICBTcGlsbE9yZGVyU3RvcmFnZSAgICAgICA9IDQsIC8vIG5l
ZWRzIHNwaWxsCisgICAgICAgIFNwaWxsT3JkZXJPcGFxdWVQb2ludGVyID0gNCwgLy8gbmVlZHMg
c3BpbGwKKyAgICAgICAgU3BpbGxPcmRlckRvdWJsZSAgICAgICAgPSA0LCAvLyBuZWVkcyBzcGls
bAorICAgICAgICBTcGlsbE9yZGVySW50ZWdlciAgICAgICA9IDUsIC8vIG5lZWRzIHNwaWxsIGFu
ZCBib3gKKyAgICAgICAgU3BpbGxPcmRlckNlbGwgICAgICAgICAgPSA1LCAvLyBuZWVkcyBzcGls
bCBhbmQgYm94CisgICAgICAgIFNwaWxsT3JkZXJCb29sZWFuICAgICAgID0gNSwgLy8gbmVlZHMg
c3BpbGwgYW5kIGJveAogICAgIH07CiAjZW5kaWYKIApAQCAtMTQxLDYgKzE0Myw3IEBAIGNsYXNz
IFNwZWN1bGF0aXZlSklUIHsKICAgICBib29sIGZpbGxKU1ZhbHVlKEVkZ2UsIEdQUlJlZyYsIEdQ
UlJlZyYsIEZQUlJlZyYpOwogI2VuZGlmCiAgICAgR1BSUmVnIGZpbGxTdG9yYWdlKEVkZ2UpOwor
ICAgIEdQUlJlZyBmaWxsT3BhcXVlUG9pbnRlcihFZGdlKTsKIAogICAgIC8vIGxvY2sgYW5kIHVu
bG9jayBHUFIgJiBGUFIgcmVnaXN0ZXJzLgogICAgIHZvaWQgbG9jayhHUFJSZWcgcmVnKQpAQCAt
NTE2LDYgKzUxOSwxNCBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIERhdGFGb3JtYXRPcGFxdWVQb2ludGVyOiB7
CisgICAgICAgICAgICAvLyBUaGlzIGlzIHNwZWNpYWwsIHNpbmNlIGl0J3Mgbm90IGEgSlMgdmFs
dWUgLSBhcyBpbiBpdCdzIG5vdCB2aXNpYmxlIHRvIEpTCisgICAgICAgICAgICAvLyBjb2RlLgor
ICAgICAgICAgICAgbV9qaXQuc3RvcmVQdHIoaW5mby5ncHIoKSwgSklUQ29tcGlsZXI6OmFkZHJl
c3NGb3Ioc3BpbGxNZSkpOworICAgICAgICAgICAgaW5mby5zcGlsbCgqbV9zdHJlYW0sIHNwaWxs
TWUsIERhdGFGb3JtYXRPcGFxdWVQb2ludGVyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCiAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEludDMyOiB7CiAgICAgICAgICAgICBtX2pp
dC5zdG9yZTMyKGluZm8uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHNwaWxsTWUpKTsK
ICAgICAgICAgICAgIGluZm8uc3BpbGwoKm1fc3RyZWFtLCBzcGlsbE1lLCBEYXRhRm9ybWF0SW50
MzIpOwpAQCAtOTAxLDYgKzkxMiwxNiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgICAg
IEdlbmVyYXRpb25JbmZvJiBpbmZvID0gZ2VuZXJhdGlvbkluZm9Gcm9tVmlydHVhbFJlZ2lzdGVy
KHZpcnR1YWxSZWdpc3Rlcik7CiAgICAgICAgIGluZm8uaW5pdFN0b3JhZ2Uobm9kZSwgbm9kZS0+
cmVmQ291bnQoKSwgcmVnKTsKICAgICB9CisgICAgdm9pZCBvcGFxdWVQb2ludGVyUmVzdWx0KEdQ
UlJlZyByZWcsIE5vZGUqIG5vZGUsIFVzZUNoaWxkcmVuTW9kZSBtb2RlID0gQ2FsbFVzZUNoaWxk
cmVuKQorICAgIHsKKyAgICAgICAgaWYgKG1vZGUgPT0gQ2FsbFVzZUNoaWxkcmVuKQorICAgICAg
ICAgICAgdXNlQ2hpbGRyZW4obm9kZSk7CisKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHZpcnR1
YWxSZWdpc3RlciA9IG5vZGUtPnZpcnR1YWxSZWdpc3RlcigpOworICAgICAgICBtX2dwcnMucmV0
YWluKHJlZywgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVyT3BhcXVlUG9pbnRlcik7CisgICAg
ICAgIEdlbmVyYXRpb25JbmZvJiBpbmZvID0gZ2VuZXJhdGlvbkluZm9Gcm9tVmlydHVhbFJlZ2lz
dGVyKHZpcnR1YWxSZWdpc3Rlcik7CisgICAgICAgIGluZm8uaW5pdE9wYXF1ZVBvaW50ZXIobm9k
ZSwgbm9kZS0+cmVmQ291bnQoKSwgcmVnKTsKKyAgICB9CiAgICAgdm9pZCBkb3VibGVSZXN1bHQo
RlBSUmVnIHJlZywgTm9kZSogbm9kZSwgVXNlQ2hpbGRyZW5Nb2RlIG1vZGUgPSBDYWxsVXNlQ2hp
bGRyZW4pCiAgICAgewogICAgICAgICBpZiAobW9kZSA9PSBDYWxsVXNlQ2hpbGRyZW4pCkBAIC0y
NDU5LDYgKzI0ODAsOSBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxl
QWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVJlYWxsb2Nh
dGVQcm9wZXJ0eVN0b3JhZ2UoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldEJ1dHRlcmZseShO
b2RlKik7CisgICAgdm9pZCBjb21waWxlTG9hZE9wYXF1ZVBvaW50ZXIoTm9kZSopOworICAgIHZv
aWQgY29tcGlsZUdldERPTVdyYXBwZWQoTm9kZSopOworICAgIHZvaWQgY29tcGlsZVRvRE9NV3Jh
cHBlcihOb2RlKik7CiAgICAgCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBCYXNlT3BlcmFuZFR5cGUsIHR5cGVuYW1lIFByb3BlcnR5T3BlcmFuZFR5cGUsIHR5
cGVuYW1lIFZhbHVlT3BlcmFuZFR5cGUsIHR5cGVuYW1lIFRhZ1R5cGU+CkBAIC0yNDkwLDYgKzI1
MTQsNyBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAKICAgICB2b2lkIGNvbXBpbGVDaGVja1R5
cGVJbmZvRmxhZ3MoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNoZWNrU3RyaW5nSWRlbnQoTm9k
ZSopOworICAgIHZvaWQgY29tcGlsZUNoZWNrTm9kZUZsYWdzKE5vZGUqKTsKICAgICAKICAgICB2
b2lkIGNvbXBpbGVWYWx1ZVJlcChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlRG91YmxlUmVwKE5v
ZGUqKTsKQEAgLTI2ODksNiArMjcxNCwxMiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAg
dm9pZCBzcGVjdWxhdGVNYXBPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3Bl
Y3VsYXRlU2V0T2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2Us
IEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTU5vZGUoRWRnZSk7CisgICAgdm9p
ZCBzcGVjdWxhdGVET01Ob2RlKEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0
ZURPTUVsZW1lbnQoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UsIEdQ
UlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlKTsK
KyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlLCBHUFJSZWcgY2VsbCk7
CiAgICAgdm9pZCBzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3BlY3Vs
YXRlU3RyaW5nKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlU3Ry
aW5nSWRlbnRBbmRMb2FkU3RvcmFnZShFZGdlIGVkZ2UsIEdQUlJlZyBzdHJpbmcsIEdQUlJlZyBz
dG9yYWdlKTsKQEAgLTMwMTEsNiArMzA0Miw1MyBAQCBjbGFzcyBTdG9yYWdlT3BlcmFuZCB7CiAg
ICAgR1BSUmVnIG1fZ3ByT3JJbnZhbGlkOwogfTsKIAorY2xhc3MgT3BhcXVlUG9pbnRlck9wZXJh
bmQgeworcHVibGljOgorICAgIGV4cGxpY2l0IE9wYXF1ZVBvaW50ZXJPcGVyYW5kKFNwZWN1bGF0
aXZlSklUKiBqaXQsIEVkZ2UgZWRnZSkKKyAgICAgICAgOiBtX2ppdChqaXQpCisgICAgICAgICwg
bV9lZGdlKGVkZ2UpCisgICAgICAgICwgbV9ncHJPckludmFsaWQoSW52YWxpZEdQUlJlZykKKyAg
ICB7CisgICAgICAgIEFTU0VSVChtX2ppdCk7CisgICAgICAgIEFTU0VSVChlZGdlLnVzZUtpbmQo
KSA9PSBVbnR5cGVkVXNlIHx8IGVkZ2UudXNlS2luZCgpID09IEtub3duQ2VsbFVzZSk7CisgICAg
ICAgIGlmIChqaXQtPmlzRmlsbGVkKG5vZGUoKSkpCisgICAgICAgICAgICBncHIoKTsKKyAgICB9
CisKKyAgICB+T3BhcXVlUG9pbnRlck9wZXJhbmQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1f
Z3ByT3JJbnZhbGlkICE9IEludmFsaWRHUFJSZWcpOworICAgICAgICBtX2ppdC0+dW5sb2NrKG1f
Z3ByT3JJbnZhbGlkKTsKKyAgICB9CisKKyAgICBFZGdlIGVkZ2UoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1fZWRnZTsKKyAgICB9CisKKyAgICBOb2RlKiBub2RlKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiBlZGdlKCkubm9kZSgpOworICAgIH0KKworICAgIEdQUlJlZyBn
cHIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fZ3ByT3JJbnZhbGlkID09IEludmFsaWRHUFJSZWcp
CisgICAgICAgICAgICBtX2dwck9ySW52YWxpZCA9IG1faml0LT5maWxsT3BhcXVlUG9pbnRlcihl
ZGdlKCkpOworICAgICAgICByZXR1cm4gbV9ncHJPckludmFsaWQ7CisgICAgfQorCisgICAgdm9p
ZCB1c2UoKQorICAgIHsKKyAgICAgICAgbV9qaXQtPnVzZShub2RlKCkpOworICAgIH0KKworcHJp
dmF0ZToKKyAgICBTcGVjdWxhdGl2ZUpJVCogbV9qaXQ7CisgICAgRWRnZSBtX2VkZ2U7CisgICAg
R1BSUmVnIG1fZ3ByT3JJbnZhbGlkOworfTsKKwogCiAvLyA9PT0gVGVtcG9yYXJpZXMgPT09CiAv
LwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKaW5kZXggM2ExMGExMGQ3YjQyMjU0NDA5ZGQyMzI5Y2MwZjIxN2Y5Njk5NWQzZS4u
ZjJiMWRmOTg3ZDQwMzVmYWRhNGM4YWFlZmJlOWU3NTI5YTZmMGU0MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC03
Myw3ICs3Myw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKEVkZ2UgZWRnZSwg
R1BSUmVnJiB0YWdHUFIsIEdQUlJlZyYgcGF5bG9hZEdQUiwKICAgICAgICAgICAgIGluZm8uZmls
bEpTVmFsdWUoKm1fc3RyZWFtLCB0YWdHUFIsIHBheWxvYWRHUFIsIERhdGFGb3JtYXRKUyk7CiAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IHNwaWxsRm9ybWF0ID0gaW5m
by5zcGlsbEZvcm1hdCgpOwotICAgICAgICAgICAgQVNTRVJUKHNwaWxsRm9ybWF0ICE9IERhdGFG
b3JtYXROb25lICYmIHNwaWxsRm9ybWF0ICE9IERhdGFGb3JtYXRTdG9yYWdlKTsKKyAgICAgICAg
ICAgIEFTU0VSVChzcGlsbEZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSAmJiBzcGlsbEZvcm1hdCAh
PSBEYXRhRm9ybWF0U3RvcmFnZSAmJiBzcGlsbEZvcm1hdCAhPSBEYXRhRm9ybWF0T3BhcXVlUG9p
bnRlcik7CiAgICAgICAgICAgICB0YWdHUFIgPSBhbGxvY2F0ZSgpOwogICAgICAgICAgICAgcGF5
bG9hZEdQUiA9IGFsbG9jYXRlKCk7CiAgICAgICAgICAgICBzd2l0Y2ggKHNwaWxsRm9ybWF0KSB7
CkBAIC0xNTUsNiArMTU1LDcgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6ZmlsbEpTVmFsdWUoRWRn
ZSBlZGdlLCBHUFJSZWcmIHRhZ0dQUiwgR1BSUmVnJiBwYXlsb2FkR1BSLAogICAgIH0KICAgICAg
ICAgCiAgICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKKyAgICBjYXNlIERhdGFGb3JtYXRPcGFx
dWVQb2ludGVyOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToKICAgICAgICAgLy8gdGhpcyB0
eXBlIGN1cnJlbnRseSBuZXZlciBvY2N1cnMKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKQEAgLTEwNTcsNiArMTA1OCw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6Zmls
bFNwZWN1bGF0ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBEYXRhRm9ybWF0JiByZXR1cm5GCiAg
ICAgY2FzZSBEYXRhRm9ybWF0SlNCb29sZWFuOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToK
ICAgICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgorICAgIGNhc2UgRGF0YUZvcm1hdE9wYXF1ZVBv
aW50ZXI6CiAgICAgZGVmYXVsdDoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuIEludmFsaWRHUFJSZWc7CkBAIC0xMTg0LDYgKzExODYsNyBAQCBH
UFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKEVkZ2UgZWRnZSkKICAgICBj
YXNlIERhdGFGb3JtYXRCb29sZWFuOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToKICAgICBj
YXNlIERhdGFGb3JtYXRTdG9yYWdlOgorICAgIGNhc2UgRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXI6
CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKICAgICBkZWZhdWx0OgpA
QCAtMTI2MCw2ICsxMjYzLDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRl
Qm9vbGVhbihFZGdlIGVkZ2UpCiAgICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKICAgICBjYXNlIERh
dGFGb3JtYXREb3VibGU6CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKKyAgICBjYXNlIERh
dGFGb3JtYXRPcGFxdWVQb2ludGVyOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogCiAgICAgZGVmYXVsdDoKQEAgLTU0MjAsNiArNTQyNCwyMiBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAg
IGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CisgICAgICAgIGNvbXBpbGVMb2FkT3BhcXVlUG9pbnRl
cihub2RlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEdldERPTVdyYXBwZWQ6CisgICAg
ICAgIGNvbXBpbGVHZXRET01XcmFwcGVkKG5vZGUpOworICAgICAgICBicmVhazsKKworICAgIGNh
c2UgQ2hlY2tOb2RlRmxhZ3M6CisgICAgICAgIGNvbXBpbGVDaGVja05vZGVGbGFncyhub2RlKTsK
KyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFRvRE9NV3JhcHBlcjoKKyAgICAgICAgY29tcGls
ZVRvRE9NV3JhcHBlcihub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIFVucmVhY2hh
YmxlOgogICAgICAgICB1bnJlYWNoYWJsZShub2RlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBm
NWVhNzRiMmU3MTA1OTc1YzdmYjA3MTM2YjcxM2IxYWMxNTY3YjdjLi4zN2NkM2I2MzJhNTliNjI4
MjI3OGZjM2U3MDMxNTE2YWI0NDM2MzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTE0NCw2ICsxNDQsNyBAQCBHUFJSZWcg
U3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKEVkZ2UgZWRnZSkKICAgICAgICAgCiAgICAgY2Fz
ZSBEYXRhRm9ybWF0Qm9vbGVhbjoKICAgICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgorICAgIGNh
c2UgRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXI6CiAgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgog
ICAgIGNhc2UgRGF0YUZvcm1hdEludDUyOgogICAgICAgICAvLyB0aGlzIHR5cGUgY3VycmVudGx5
IG5ldmVyIG9jY3VycwpAQCAtMTA2MCw2ICsxMDYxLDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklU
OjpmaWxsU3BlY3VsYXRlSW50MzJJbnRlcm5hbChFZGdlIGVkZ2UsIERhdGFGb3JtYXQmIHJldHVy
bkYKICAgICBjYXNlIERhdGFGb3JtYXRKU0Jvb2xlYW46CiAgICAgY2FzZSBEYXRhRm9ybWF0RG91
YmxlOgogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgY2FzZSBEYXRhRm9ybWF0T3Bh
cXVlUG9pbnRlcjoKICAgICBjYXNlIERhdGFGb3JtYXRJbnQ1MjoKICAgICBjYXNlIERhdGFGb3Jt
YXRTdHJpY3RJbnQ1MjoKICAgICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG1fY3VycmVu
dE5vZGUsICJCYWQgZGF0YSBmb3JtYXQiKTsKQEAgLTEyOTAsNiArMTI5Miw3IEBAIEdQUlJlZyBT
cGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwoRWRnZSBlZGdlKQogICAgIGNhc2UgRGF0
YUZvcm1hdEJvb2xlYW46CiAgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgogICAgIGNhc2UgRGF0
YUZvcm1hdFN0b3JhZ2U6CisgICAgY2FzZSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcjoKICAgICBj
YXNlIERhdGFGb3JtYXRJbnQ1MjoKICAgICBjYXNlIERhdGFGb3JtYXRTdHJpY3RJbnQ1MjoKICAg
ICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG1fY3VycmVudE5vZGUsICJCYWQgZGF0YSBm
b3JtYXQiKTsKQEAgLTEzNjYsNiArMTM2OSw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6Zmls
bFNwZWN1bGF0ZUJvb2xlYW4oRWRnZSBlZGdlKQogICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6CiAg
ICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6Cisg
ICAgY2FzZSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcjoKICAgICBjYXNlIERhdGFGb3JtYXRJbnQ1
MjoKICAgICBjYXNlIERhdGFGb3JtYXRTdHJpY3RJbnQ1MjoKICAgICAgICAgREZHX0NSQVNIKG1f
aml0LmdyYXBoKCksIG1fY3VycmVudE5vZGUsICJCYWQgZGF0YSBmb3JtYXQiKTsKQEAgLTU0MzYs
NiArNTQ0MCwyMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAg
ICAgICAgIGNvbXBpbGVNYXRlcmlhbGl6ZU5ld09iamVjdChub2RlKTsKICAgICAgICAgYnJlYWs7
CiAKKyAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgorICAgICAgICBjb21waWxlTG9hZE9wYXF1
ZVBvaW50ZXIobm9kZSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBHZXRET01XcmFwcGVk
OgorICAgICAgICBjb21waWxlR2V0RE9NV3JhcHBlZChub2RlKTsKKyAgICAgICAgYnJlYWs7CisK
KyAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgorICAgICAgICBjb21waWxlQ2hlY2tOb2RlRmxhZ3Mo
bm9kZSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBUb0RPTVdyYXBwZXI6CisgICAgICAg
IGNvbXBpbGVUb0RPTVdyYXBwZXIobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAjaWYgRU5BQkxF
KEZUTF9KSVQpICAgICAgICAKICAgICBjYXNlIENoZWNrVGllclVwSW5Mb29wOiB7CiAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIGNhbGxUaWVyVXAgPSBtX2ppdC5icmFuY2hBZGQzMigKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVHlwZUNoZWNrSG9pc3RpbmdQ
aGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5n
UGhhc2UuY3BwCmluZGV4IDIzZGYyOTZhM2NmNjMyNjM2MmEzMzMyMmVkOTJhMmJmZjFiN2MyYWUu
LjhjYWM1MjRiMGVkNmZmMTJmMjIzYmRkNzM3NDc0ZDQ1ZDljZjRmZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNw
cApAQCAtMjQ3LDYgKzI0Nyw3IEBAIGNsYXNzIFR5cGVDaGVja0hvaXN0aW5nUGhhc2UgOiBwdWJs
aWMgUGhhc2UgewogICAgICAgICAgICAgICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6
CiAgICAgICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgICAg
ICAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgorICAgICAgICAgICAgICAgIGNhc2UgTG9hZE9w
YXF1ZVBvaW50ZXI6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAgICAgICAg
ICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWw6
CkBAIC0zMjUsNiArMzI2LDcgQEAgY2xhc3MgVHlwZUNoZWNrSG9pc3RpbmdQaGFzZSA6IHB1Ymxp
YyBQaGFzZSB7CiAgICAgICAgICAgICAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6CiAgICAgICAgICAg
ICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgICAgICAgICAgICAgIGNh
c2UgR2V0QnV0dGVyZmx5OgorICAgICAgICAgICAgICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6
CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAgICAgICAgICAgICBjYXNlIFB1
dEJ5VmFsRGlyZWN0OgogICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWw6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCBlODM4MjliNzEzMDYxNzNkZTk1YjAx
MDg4YmYzZTljZDg0ZmRmNmVjLi4yMDIwYTU1ZmRjZDg4YWQ2NjcwY2M1NWExMWExYjRlM2JkMjk4
MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKQEAgLTExMiw2
ICsxMTIsMTUgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVzZUtpbmQg
dXNlS2luZCkKICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgIG91dC5wcmludCgi
T2JqZWN0T3JPdGhlciIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBET01Ob2RlVXNlOgor
ICAgICAgICBvdXQucHJpbnQoIkRPTU5vZGUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2Ug
RE9NRWxlbWVudFVzZToKKyAgICAgICAgb3V0LnByaW50KCJET01FbGVtZW50Iik7CisgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKKyAgICAgICAgb3V0LnBy
aW50KCJET01Eb2N1bWVudFdyYXBwZXIiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3Ry
aW5nSWRlbnRVc2U6CiAgICAgICAgIG91dC5wcmludCgiU3RyaW5nSWRlbnQiKTsKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5k
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaAppbmRleCA4ZjYzM2Ex
OTY4OGNjZTAyZjM0ZjE1MTJlZDg5M2RmMjk3ZDNhNWZiLi4xNjhkMDQ4YzNhM2RhOTljNDlkODE1
NTQ1MjZiMDc2MjI2NjI5MjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1VzZUtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQu
aApAQCAtNzMsNiArNzMsOSBAQCBlbnVtIFVzZUtpbmQgewogICAgIE5vdENlbGxVc2UsCiAgICAg
T3RoZXJVc2UsCiAgICAgTWlzY1VzZSwKKyAgICBET01Ob2RlVXNlLAorICAgIERPTUVsZW1lbnRV
c2UsCisgICAgRE9NRG9jdW1lbnRXcmFwcGVyVXNlLAogCiAgICAgLy8gMi4gVGhlIERvdWJsZSBy
ZXByZXNlbnRhdGlvbiBmb3IgYW4gdW5ib3hlZCBkb3VibGUgdmFsdWUgdGhhdCBtdXN0IGJlIHN0
b3JlZAogICAgIC8vICAgIGluIGFuIEZQIHJlZ2lzdGVyLgpAQCAtMTYwLDYgKzE2MywxMiBAQCBp
bmxpbmUgU3BlY3VsYXRlZFR5cGUgdHlwZUZpbHRlckZvcihVc2VLaW5kIHVzZUtpbmQpCiAgICAg
ICAgIHJldHVybiBTcGVjT3RoZXI7CiAgICAgY2FzZSBNaXNjVXNlOgogICAgICAgICByZXR1cm4g
U3BlY01pc2M7CisgICAgY2FzZSBET01Ob2RlVXNlOgorICAgICAgICByZXR1cm4gU3BlY0RPTU5v
ZGU7CisgICAgY2FzZSBET01FbGVtZW50VXNlOgorICAgICAgICByZXR1cm4gU3BlY0RPTUVsZW1l
bnQ7CisgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CisgICAgICAgIHJldHVybiBTcGVj
RE9NRG9jdW1lbnRXcmFwcGVyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBTcGVjRnVsbFRvcDsKQEAgLTI0MCw2ICsy
NDksOSBAQCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAgIGNhc2UgU3RyaW5n
T3JTdHJpbmdPYmplY3RVc2U6CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgY2FzZSBTZXRP
YmplY3RVc2U6CisgICAgY2FzZSBET01Ob2RlVXNlOgorICAgIGNhc2UgRE9NRWxlbWVudFVzZToK
KyAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZG9taml0L0RPTUpJVEdyYXBoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjBhYzFlNzhkMDQ2NmZiN2Yx
OWNhZWE3MmE3NTYzMjFhYzU2ZGU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJET01KSVRHcmFwaC5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVz
cGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CisKK0RGRzo6VXNlS2luZCBHcmFwaDo6ZWRn
ZUZpbHRlcigpCit7CisgICAgaWYgKGlzRE9NRG9jdW1lbnRXcmFwcGVyU3BlY3VsYXRpb24obV9z
cGVjdWxhdGVkQ2hpbGRUeXBlKSkKKyAgICAgICAgcmV0dXJuIERGRzo6RE9NRG9jdW1lbnRXcmFw
cGVyVXNlOworICAgIGlmIChpc0RPTUVsZW1lbnRTcGVjdWxhdGlvbihtX3NwZWN1bGF0ZWRDaGls
ZFR5cGUpKQorICAgICAgICByZXR1cm4gREZHOjpET01FbGVtZW50VXNlOworICAgIGlmIChpc0RP
TU5vZGVTcGVjdWxhdGlvbihtX3NwZWN1bGF0ZWRDaGlsZFR5cGUpKQorICAgICAgICByZXR1cm4g
REZHOjpET01Ob2RlVXNlOworICAgIHJldHVybiBERkc6OlVudHlwZWRVc2U7Cit9CisKK30gfQor
CisjZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZG9taml0L0RPTUpJVEdyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0
L0RPTUpJVEdyYXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI3YWQzYjU0MTM4MmY5NThiMDE2YjAxN2QyZDhm
MjExOGQ3NWI4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21q
aXQvRE9NSklUR3JhcGguaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJET01KSVRJ
UkJ1aWxkZXIuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eVNsb3QuaCIKKyNpbmNsdWRlICJQdXRQcm9w
ZXJ0eVNsb3QuaCIKKyNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgorCisjaWYgRU5BQkxFKERG
R19KSVQpCisjaW5jbHVkZSAiREZHVXNlS2luZC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgRE9NSklUIHsKKworY2xhc3MgR3JhcGggOiBwdWJsaWMgSVJCdWlsZGVyIHsK
K3B1YmxpYzoKKyAgICB0eXBlZGVmIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIEN1c3RvbUdl
dHRlcjsKKyAgICB0eXBlZGVmIFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jIEN1c3RvbVNl
dHRlcjsKKworICAgIEdyYXBoKEN1c3RvbUdldHRlciBnZXR0ZXIsIEN1c3RvbVNldHRlciBzZXR0
ZXIsIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0ZWRDaGlsZFR5cGUpCisgICAgICAgIDogbV9nZXR0
ZXIoZ2V0dGVyKQorICAgICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAgICAgICAgLCBtX3NwZWN1
bGF0ZWRDaGlsZFR5cGUoc3BlY3VsYXRlZENoaWxkVHlwZSkKKyAgICB7CisgICAgfQorCisgICAg
dmlydHVhbCB+R3JhcGgoKSB7IH0KKworICAgIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0ZWRDaGls
ZFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3NwZWN1bGF0ZWRDaGlsZFR5cGU7IH0KKyAgICBDdXN0
b21HZXR0ZXIgZ2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9nZXR0ZXI7IH0KKyAgICBDdXN0b21T
ZXR0ZXIgc2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0ZXI7IH0KKworI2lmIEVOQUJMRShE
RkdfSklUKQorICAgIERGRzo6VXNlS2luZCBlZGdlRmlsdGVyKCk7CisjZW5kaWYKKworcHJpdmF0
ZToKKyAgICBDdXN0b21HZXR0ZXIgbV9nZXR0ZXI7CisgICAgQ3VzdG9tU2V0dGVyIG1fc2V0dGVy
OworICAgIFNwZWN1bGF0ZWRUeXBlIG1fc3BlY3VsYXRlZENoaWxkVHlwZTsKK307CisKK30gfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVElSLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmNi
Y2JiMWU1Yjg1YjljMjMzZmFiYWNhYzUxYmU1MzM4NGQ4MzRjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUi5jcHAKQEAgLTAsMCArMSw0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJET01KSVRJUi5oIgorCisjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRE9NSklUIHsKKworSVIq
IElSOjp0aGlzVmFsdWUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxJUj4gaXI7Cisg
ICAgcmV0dXJuICZpci5nZXQoKTsKK30KKworCit9IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kb21qaXQvRE9NSklUSVIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21q
aXQvRE9NSklUSVIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjk0ZGE4MzM0NDBiZTZmOThiYjAzMzM0Zjc0YzVi
YzViNzg0YTJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWpp
dC9ET01KSVRJUi5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVjdWxhdGVkVHlw
ZS5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJVCB7CisKK3R5cGVkZWYgdWlu
dHB0cl90IE9wSW5mbzsKKworLy8gRmlyc3QsIHdlIGRlZmluZSBzcGVjaWZpYyB0byBOb2RlIG9w
ZXJhdGlvbnMuIExhdGVyIHdlIHdpbGwgcGFyYW1ldGVyaXplIHRoZW0uCitlbnVtIGNsYXNzIEtp
bmQgOiB1aW50MzJfdCB7CisgICAgQ2hlY2tOb2RlLAorICAgIENoZWNrTm9kZUZsYWdzLAorICAg
IEdldFdyYXBwZWQsCisgICAgTG9hZFBvaW50ZXIsCisgICAgVG9XcmFwcGVyLAorICAgIFJldHVy
biwKKyAgICBFeHRlcm5hbCwKK307CisKK3N0cnVjdCBJUiB7CisgICAgSlNfRVhQT1JUX1BSSVZB
VEUgc3RhdGljIElSKiB0aGlzVmFsdWUoKTsKKworICAgIElSKCkgPSBkZWZhdWx0OworCisgICAg
SVIoS2luZCBraW5kLCBJUiogY2hpbGQxLCBJUiogY2hpbGQyLCBPcEluZm8gb3BJbmZvMSwgT3BJ
bmZvIG9wSW5mbzIpCisgICAgICAgIDogbV9raW5kKGtpbmQpCisgICAgICAgICwgbV9jaGlsZDEo
Y2hpbGQxKQorICAgICAgICAsIG1fY2hpbGQyKGNoaWxkMikKKyAgICAgICAgLCBtX29wSW5mbzEo
b3BJbmZvMSkKKyAgICAgICAgLCBtX29wSW5mbzIob3BJbmZvMikKKyAgICB7CisgICAgfQorCisg
ICAgS2luZCBtX2tpbmQgeyBLaW5kOjpFeHRlcm5hbCB9OworICAgIElSKiBtX2NoaWxkMSB7IG51
bGxwdHIgfTsKKyAgICBJUiogbV9jaGlsZDIgeyBudWxscHRyIH07CisgICAgT3BJbmZvIG1fb3BJ
bmZvMSB7IDAgfTsKKyAgICBPcEluZm8gbV9vcEluZm8yIHsgMCB9OworfTsKKworfSB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVElSQnVpbGRlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUkJ1aWxkZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40NjJkZGVmZDY1YWYzZWEwM2U3YWNlMDMyYTllM2UyOTVkMjQwNWRjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUkJ1aWxkZXIuaApAQCAt
MCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJET01KSVRJUi5oIgorI2luY2x1ZGUgPHd0Zi9T
ZWdtZW50ZWRWZWN0b3IuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBET01KSVQgewor
CitjbGFzcyBJUkJ1aWxkZXIgeworcHVibGljOgorICAgIElSKiBhcHBlbmQoS2luZCBraW5kLCBJ
UiogY2hpbGQxLCBJUiogY2hpbGQyLCBPcEluZm8gb3BJbmZvMSA9IDAsIE9wSW5mbyBvcEluZm8y
ID0gMCkKKyAgICB7CisgICAgICAgIHJldHVybiAmbV9hbGxvY2F0b3IuYWxsb2Moa2luZCwgY2hp
bGQxLCBjaGlsZDIsIG9wSW5mbzEsIG9wSW5mbzIpOworICAgIH0KKworICAgIFNlZ21lbnRlZFZl
Y3RvcjxJUj4mIGlyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FsbG9jYXRvcjsKKyAgICB9
CisKK3ByaXZhdGU6CisgICAgU2VnbWVudGVkVmVjdG9yPElSPiBtX2FsbG9jYXRvcjsKK307CisK
KworfSB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5oCmluZGV4IDcxOWY1MmMzZmUzZDljNTg4MWQ3OTgzZDIwMzhiZGQ3MTM0
MjVkMDkuLjc5ZmE1MGUxZTEyZWU4YTlmZmMzMjRiMGFiY2VkNmQ4MTM3MDVhNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9y
eS5oCkBAIC0xMTIsNiArMTEyLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewog
ICAgIG1hY3JvKEhhc2hNYXBCdWNrZXRfdmFsdWUsIEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tl
dERhdGFLZXlWYWx1ZT46Om9mZnNldE9mVmFsdWUoKSkgXAogICAgIG1hY3JvKEhhc2hNYXBCdWNr
ZXRfa2V5LCBIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5VmFsdWU+OjpvZmZzZXRP
ZktleSgpKSBcCiAgICAgbWFjcm8oU3ltYm9sX3N5bWJvbEltcGwsIFN5bWJvbDo6b2Zmc2V0T2ZT
eW1ib2xJbXBsKCkpIFwKKyAgICBtYWNybyhPcGFxdWVQb2ludGVyLCAwKSBcCiAKICNkZWZpbmUg
Rk9SX0VBQ0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8oRGlyZWN0
QXJndW1lbnRzX3N0b3JhZ2UsIERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpLCBzaXpl
b2YoRW5jb2RlZEpTVmFsdWUpKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHAKaW5kZXggYjZlYjJlNWY3MjE5ZGFlNmZlMGMyYTg0YWYwNWU4MjJjYTA2
ZDgxZi4uZTdiNjZhMDAxNjgwNDViMDk2NzE3ODA0ZDdkZWNlYTc4NjgxNTgwMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMjYzLDYgKzI2
MywxMCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAg
ICBjYXNlIENvbXBhcmVHcmVhdGVyOgogICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKICAgICBj
YXNlIENvbXBhcmVTdHJpY3RFcToKKyAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgorICAgIGNh
c2UgR2V0RE9NV3JhcHBlZDoKKyAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgorICAgIGNhc2UgVG9E
T01XcmFwcGVyOgogICAgICAgICAvLyBUaGVzZSBhcmUgT0suCiAgICAgICAgIGJyZWFrOwogCkBA
IC00NDUsNiArNDQ5LDkgQEAgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBo
KQogICAgICAgICAgICAgICAgIGNhc2UgTm90U3RyaW5nVmFyVXNlOgogICAgICAgICAgICAgICAg
IGNhc2UgQW55SW50VXNlOgogICAgICAgICAgICAgICAgIGNhc2UgRG91YmxlUmVwQW55SW50VXNl
OgorICAgICAgICAgICAgICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAgICAgICAgICBjYXNl
IERPTUVsZW1lbnRVc2U6CisgICAgICAgICAgICAgICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJV
c2U6CiAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAwNjNjYzU5NDQwNjI0ODk2Mzdh
OWMyYmQzMTgyOTM1NTc1NjRlNDIwLi41ZTI4NTQ1NDAxYjA2YjIxMGQyMWMzODFmZDliMTU4ODA1
MDA4NzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCkBAIC0xMDM3LDYgKzEwMzcsMTggQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
Y2FzZSBVbnJlYWNoYWJsZToKICAgICAgICAgICAgIGNvbXBpbGVVbnJlYWNoYWJsZSgpOwogICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CisgICAgICAg
ICAgICBjb21waWxlTG9hZE9wYXF1ZVBvaW50ZXIoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENoZWNrTm9kZUZsYWdzOgorICAgICAgICAgICAgY29tcGlsZUNoZWNrTm9kZUZs
YWdzKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHZXRET01XcmFwcGVkOgor
ICAgICAgICAgICAgY29tcGlsZUdldERPTVdyYXBwZWQoKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFRvRE9NV3JhcHBlcjoKKyAgICAgICAgICAgIGNvbXBpbGVUb0RPTVdyYXBw
ZXIoKTsKKyAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgUGhhbnRvbUxvY2FsOgog
ICAgICAgICBjYXNlIExvb3BIaW50OgpAQCAtODQ1Miw2ICs4NDY0LDYxIEBAIGNsYXNzIExvd2Vy
REZHVG9CMyB7CiAgICAgICAgIAogICAgICAgICBjcmFzaCgpOwogICAgIH0KKworICAgIHZvaWQg
Y29tcGlsZUxvYWRPcGFxdWVQb2ludGVyKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBwb2ludGVy
ID0gbG93T3BhcXVlUG9pbnRlcihtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgc2V0T3BhcXVl
UG9pbnRlcihtX291dC5sb2FkUHRyKG1fb3V0LmFkZHJlc3MobV9oZWFwcy5PcGFxdWVQb2ludGVy
LCBwb2ludGVyLCBtX25vZGUtPm9wYXF1ZVBvaW50ZXJPZmZzZXQoKSkpKTsKKyAgICB9CisKKyAg
ICB2b2lkIGNvbXBpbGVDaGVja05vZGVGbGFncygpCisgICAgeworICAgICAgICBMVmFsdWUgcG9p
bnRlciA9IGxvd09wYXF1ZVBvaW50ZXIobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1
ZSBub2RlRmxhZ3MgPSBtX291dC5sb2FkMzIobV9vdXQuYWRkcmVzcyhtX2hlYXBzLk9wYXF1ZVBv
aW50ZXIsIHBvaW50ZXIsIG1fbm9kZS0+b3BhcXVlUG9pbnRlck9mZnNldCgpKSk7CisgICAgICAg
IHNwZWN1bGF0ZShCYWRDYWNoZSwgbm9WYWx1ZSgpLCBudWxscHRyLCBtX291dC50ZXN0SXNaZXJv
MzIobm9kZUZsYWdzLCBtX291dC5jb25zdEludDMyKG1fbm9kZS0+bm9kZUZsYWdzT3BlcmFuZCgp
KSkpOworICAgIH0KKworICAgIHZvaWQgY29tcGlsZUdldERPTVdyYXBwZWQoKQorICAgIHsKKyAg
ICAgICAgTFZhbHVlIG5vZGUgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICBz
ZXRPcGFxdWVQb2ludGVyKG1fb3V0LmxvYWRQdHIobV9vdXQuYWRkcmVzcyhtX2hlYXBzLk9wYXF1
ZVBvaW50ZXIsIG5vZGUsIG1fbm9kZS0+b3BhcXVlUG9pbnRlck9mZnNldCgpKSkpOworICAgIH0K
KworICAgIHZvaWQgY29tcGlsZVRvRE9NV3JhcHBlcigpCisgICAgeworICAgICAgICBMQmFzaWNC
bG9jayBudWxsUGF0aCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgIExCYXNpY0Jsb2NrIG1h
aW5QYXRoID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGgg
PSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBt
X291dC5uZXdCbG9jaygpOworCisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93Q2VsbChtX25vZGUt
PmNoaWxkMSgpKTsKKyAgICAgICAgc3BlY3VsYXRlRE9NTm9kZShtX25vZGUtPmNoaWxkMSgpLCBi
YXNlKTsKKyAgICAgICAgTFZhbHVlIHdyYXBwZWQgPSBsb3dPcGFxdWVQb2ludGVyKG1fbm9kZS0+
Y2hpbGQyKCkpOworICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNOdWxsKHdyYXBwZWQpLCBy
YXJlbHkobnVsbFBhdGgpLCB1c3VhbGx5KG1haW5QYXRoKSk7CisKKyAgICAgICAgTEJhc2ljQmxv
Y2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhudWxsUGF0aCwgbWFpblBhdGgpOworICAgICAg
ICBMVmFsdWUgbnVsbFZhbHVlID0gbV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUoanNO
dWxsKCkpKTsKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgbnVsbFJlc3VsdCA9IG1fb3V0LmFuY2hv
cihudWxsVmFsdWUpOworICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAg
ICAgbV9vdXQuYXBwZW5kVG8obWFpblBhdGgsIHNsb3dQYXRoKTsKKyAgICAgICAgTFZhbHVlIGNh
Y2hlUGxhY2UgPSBtX291dC5sb2FkUHRyKG1fb3V0LmFkZHJlc3MobV9oZWFwcy5PcGFxdWVQb2lu
dGVyLCB3cmFwcGVkLCBtX25vZGUtPm9wYXF1ZVBvaW50ZXJPZmZzZXQoKSkpOworICAgICAgICBM
VmFsdWUgY2FjaGVkV3JhcHBlclZhbHVlID0gbV9vdXQubG9hZFB0cihtX291dC5hZGRyZXNzKG1f
aGVhcHMuT3BhcXVlUG9pbnRlciwgY2FjaGVQbGFjZSkpOworICAgICAgICBWYWx1ZUZyb21CbG9j
ayBjYWNoZWRXcmFwcGVyUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGNhY2hlZFdyYXBwZXJWYWx1ZSk7
CisgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc051bGwoY2FjaGVkV3JhcHBlclZhbHVlKSwg
cmFyZWx5KHNsb3dQYXRoKSwgdXN1YWxseShjb250aW51YXRpb24pKTsKKworICAgICAgICBtX291
dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKKyAgICAgICAgTFZhbHVlIHNsb3dS
ZXN1bHRWYWx1ZSA9IGxhenlTbG93UGF0aCgKKyAgICAgICAgICAgIFs9XSAoY29uc3QgVmVjdG9y
PExvY2F0aW9uPiYgbG9jYXRpb25zKSAtPiBSZWZQdHI8TGF6eVNsb3dQYXRoOjpHZW5lcmF0b3I+
IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlTGF6eUNhbGxHZW5lcmF0b3IobV9ub2Rl
LT5zbG93VG9KU09wZXJhdGlvbigpLCBsb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCksIGxvY2F0aW9u
c1sxXS5kaXJlY3RHUFIoKSwgbG9jYXRpb25zWzJdLmRpcmVjdEdQUigpKTsKKyAgICAgICAgICAg
IH0sIHdyYXBwZWQsIGJhc2UpOworICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0ID0g
bV9vdXQuYW5jaG9yKHNsb3dSZXN1bHRWYWx1ZSk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGlu
dWF0aW9uKTsKKworICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxhc3ROZXh0
KTsKKworICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShwb2ludGVyVHlwZSgpLCBudWxsUmVz
dWx0LCBjYWNoZWRXcmFwcGVyUmVzdWx0LCBzbG93UmVzdWx0KSk7CisgICAgfQogICAgIAogICAg
IHZvaWQgY29tcGFyZUVxT2JqZWN0T3JPdGhlclRvT2JqZWN0KEVkZ2UgbGVmdENoaWxkLCBFZGdl
IHJpZ2h0Q2hpbGQpCiAgICAgewpAQCAtMTA0NjcsNiArMTA1MzQsMTcgQEAgY2xhc3MgTG93ZXJE
RkdUb0IzIHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKKyAgICBMVmFsdWUgbG93
T3BhcXVlUG9pbnRlcihFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBMb3dlcmVkTm9kZVZhbHVl
IHZhbHVlID0gbV9vcGFxdWVQb2ludGVyVmFsdWVzLmdldChlZGdlLm5vZGUoKSk7CisgICAgICAg
IGlmIChpc1ZhbGlkKHZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS52YWx1ZSgpOwor
CisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UpOworICAgICAgICBzZXRPcGFx
dWVQb2ludGVyKGVkZ2Uubm9kZSgpLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgIH0KKwogICAgIExWYWx1ZSBsb3dNYXBCdWNrZXQoRWRnZSBlZGdlKQogICAgIHsKICAgICAg
ICAgTG93ZXJlZE5vZGVWYWx1ZSB2YWx1ZSA9IG1fbWFwQnVja2V0VmFsdWVzLmdldChlZGdlLm5v
ZGUoKSk7CkBAIC0xMDc5NSw2ICsxMDg3MywxNSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAg
ICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0ZVNldE9iamVjdChl
ZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPTU5vZGVVc2U6CisgICAg
ICAgICAgICBzcGVjdWxhdGVET01Ob2RlKGVkZ2UpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0ZURPTUVsZW1lbnQo
ZWRnZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET01Eb2N1bWVudFdyYXBw
ZXJVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoZWRnZSk7Cisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAgICAgICAgICAgICBz
cGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEwOTIzLDYgKzEx
MDEwLDI0IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBtX291dC5jb25zdElu
dDMyKE9iamVjdFR5cGUpKTsKICAgICB9CiAKKyAgICBMVmFsdWUgaXNOb3RET01Ob2RlKExWYWx1
ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCisgICAgeworICAgICAg
ICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAmIFNwZWNDZWxsLCB+U3Bl
Y0RPTU5vZGUpKQorICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsKKyAgICAgICAgcmV0dXJuIG1f
b3V0LmJlbG93KAorICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFw
cy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoRE9N
Tm9kZVR5cGUpKTsKKyAgICB9CisKKyAgICBMVmFsdWUgaXNOb3RET01FbGVtZW50KExWYWx1ZSBj
ZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCisgICAgeworICAgICAgICBp
ZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAmIFNwZWNDZWxsLCB+U3BlY0RP
TUVsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsKKyAgICAgICAgcmV0dXJuIG1f
b3V0LmJlbG93KAorICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIoY2VsbCwgbV9oZWFw
cy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKKyAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoRE9N
RWxlbWVudFR5cGUpKTsKKyAgICB9CisKICAgICBMVmFsdWUgaXNOb3RTdHJpbmcoTFZhbHVlIGNl
bGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKICAgICB7CiAgICAgICAgIGlm
IChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0NlbGwsIH5TcGVjU3Ry
aW5nKSkKQEAgLTExMTY5LDYgKzExMjc0LDM3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAg
ewogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSwgbG93Q2VsbChlZGdlKSk7CiAgICAg
fQorCisgICAgdm9pZCBzcGVjdWxhdGVET01Ob2RlKEVkZ2UgZWRnZSwgTFZhbHVlIGNlbGwpCisg
ICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNw
ZWNET01FbGVtZW50LCBpc05vdERPTU5vZGUoY2VsbCkpOworICAgIH0KKworICAgIHZvaWQgc3Bl
Y3VsYXRlRE9NTm9kZShFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVjdWxhdGVET01Ob2Rl
KGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKworICAgIHZvaWQgc3BlY3VsYXRlRE9NRWxl
bWVudChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hF
Q0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjRE9NRWxlbWVudCwgaXNOb3RET01FbGVt
ZW50KGNlbGwpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURPTUVsZW1lbnQoRWRnZSBl
ZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlRE9NRWxlbWVudChlZGdlLCBsb3dDZWxsKGVk
Z2UpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdl
IGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVfQ0hFQ0soCisgICAg
ICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNEZXJpdmVkQXJyYXksIGlzTm90
VHlwZShjZWxsLCBET01Eb2N1bWVudFdyYXBwZXJUeXBlKSk7CisgICAgfQorCisgICAgdm9pZCBz
cGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3Bl
Y3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KICAg
ICAKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZyhFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQogICAg
IHsKQEAgLTExOTU4LDYgKzEyMDk0LDEwIEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgewog
ICAgICAgICBtX3N0b3JhZ2VWYWx1ZXMuc2V0KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFsdWUs
IG1faGlnaEJsb2NrKSk7CiAgICAgfQorICAgIHZvaWQgc2V0T3BhcXVlUG9pbnRlcihOb2RlKiBu
b2RlLCBMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBtX29wYXF1ZVBvaW50ZXJWYWx1ZXMu
c2V0KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFsdWUsIG1faGlnaEJsb2NrKSk7CisgICAgfQog
ICAgIHZvaWQgc2V0TWFwQnVja2V0KE5vZGUqIG5vZGUsIExWYWx1ZSB2YWx1ZSkKICAgICB7CiAg
ICAgICAgIG1fbWFwQnVja2V0VmFsdWVzLnNldChub2RlLCBMb3dlcmVkTm9kZVZhbHVlKHZhbHVl
LCBtX2hpZ2hCbG9jaykpOwpAQCAtMTE5OTUsNiArMTIxMzUsMTAgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKICAgICB7CiAgICAgICAgIHNldFN0b3JhZ2UobV9ub2RlLCB2YWx1ZSk7CiAgICAgfQor
ICAgIHZvaWQgc2V0T3BhcXVlUG9pbnRlcihMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBz
ZXRPcGFxdWVQb2ludGVyKG1fbm9kZSwgdmFsdWUpOworICAgIH0KICAgICB2b2lkIHNldE1hcEJ1
Y2tldChMVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBzZXRNYXBCdWNrZXQobV9ub2RlLCB2
YWx1ZSk7CkBAIC0xMjE4Miw2ICsxMjMyNiw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAg
SGFzaE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1ZT4gbV9qc1ZhbHVlVmFsdWVzOwogICAgIEhh
c2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+IG1fYm9vbGVhblZhbHVlczsKICAgICBIYXNo
TWFwPE5vZGUqLCBMb3dlcmVkTm9kZVZhbHVlPiBtX3N0b3JhZ2VWYWx1ZXM7CisgICAgSGFzaE1h
cDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1ZT4gbV9vcGFxdWVQb2ludGVyVmFsdWVzOwogICAgIEhh
c2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+IG1fbWFwQnVja2V0VmFsdWVzOwogICAgIEhh
c2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+IG1fZG91YmxlVmFsdWVzOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggNzY5NDkxYTM2
N2JhNWZmMTQwYjUzODdiOGI1ZmMyYjdmOGM2YzY4MC4uZWQxMDEyYjQxYzBiMDM4OGUwODhkNDli
OWQxZWM4ZDVlOTE0NjRmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5oCkBAIC04NTQsNiArODU0LDMwIEBAIGNsYXNzIEFzc2VtYmx5SGVscGVycyA6IHB1
YmxpYyBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgIHJldHVybiBicmFuY2g4KAogICAgICAgICAg
ICAgQmVsb3csIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSks
IFRydXN0ZWRJbW0zMihPYmplY3RUeXBlKSk7CiAgICAgfQorCisgICAgSnVtcCBicmFuY2hJZkRP
TU5vZGUoR1BSUmVnIGNlbGxHUFIpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoOCgKKyAg
ICAgICAgICAgIEFib3ZlT3JFcXVhbCwgQWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZv
VHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKERPTU5vZGVUeXBlKSk7CisgICAgfQorCisgICAg
SnVtcCBicmFuY2hJZk5vdERPTU5vZGUoR1BSUmVnIGNlbGxHUFIpCisgICAgeworICAgICAgICBy
ZXR1cm4gYnJhbmNoOCgKKyAgICAgICAgICAgIEJlbG93LCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2Vs
bDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoRE9NTm9kZVR5cGUpKTsKKyAg
ICB9CisKKyAgICBKdW1wIGJyYW5jaElmRE9NRWxlbWVudChHUFJSZWcgY2VsbEdQUikKKyAgICB7
CisgICAgICAgIHJldHVybiBicmFuY2g4KAorICAgICAgICAgICAgQWJvdmVPckVxdWFsLCBBZGRy
ZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIo
RE9NRWxlbWVudFR5cGUpKTsKKyAgICB9CisKKyAgICBKdW1wIGJyYW5jaElmTm90RE9NRWxlbWVu
dChHUFJSZWcgY2VsbEdQUikKKyAgICB7CisgICAgICAgIHJldHVybiBicmFuY2g4KAorICAgICAg
ICAgICAgQmVsb3csIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQo
KSksIFRydXN0ZWRJbW0zMihET01FbGVtZW50VHlwZSkpOworICAgIH0KICAgICAKICAgICBKdW1w
IGJyYW5jaElmVHlwZShHUFJSZWcgY2VsbEdQUiwgSlNUeXBlIHR5cGUpCiAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCAxZDRhZDM4YzU5YjRlNzM2
OTMwNjViM2FjNWUwMWNhNmQ0MTY0Y2QxLi5iZTRlYTk2MWM1ODU0NjU1OTQwNGViNmNhYTQzMzU2
MmFiNjAyMTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApA
QCAtMTEyLDYgKzExMiw3IEBAIHR5cGVkZWYgY2hhciogVW51c2VkUHRyOwogICAgIFN5bXRhYjog
U3ltYm9sVGFibGUqCiAgICAgVDogU3RyaW5nSW1wbCoKICAgICBWOiB2b2lkCisgICAgVnA6IHZv
aWQqCiAgICAgVm06IFZNKgogICAgIFdzOiBXYXRjaHBvaW50U2V0KgogICAgIFo6IGludDMyX3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCmluZGV4IGQ0NTkzOWM1OTU5YTgwN2Q0
NTA1Yjk0ZWEzY2VhMTU1ZmZmNWM0YjguLjVlMGQxMTIwY2E1ZDQ0Mjc0NzczZDkxYzlmNmY4OWM3
ZjAzNTNmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkNhbGxGcmFtZVNodWZmbGVyLmgiCiAjaW5jbHVkZSAiREZHT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCisjaW5jbHVkZSAiRE9N
SklUR3JhcGguaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMuaCIKICNpbmNsdWRlICJGVExU
aHVua3MuaCIKICNpbmNsdWRlICJHQ0F3YXJlSklUU3R1YlJvdXRpbmUuaCIKQEAgLTI2MCw2ICsy
NjEsMTAgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRChFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb24KICAgICAgICAgaWYgKHNsb3QuaXNDYWNo
ZWFibGVHZXR0ZXIoKSkKICAgICAgICAgICAgIGdldHRlciA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5j
dGlvbio+KHNsb3QuZ2V0dGVyU2V0dGVyKCktPmdldHRlcigpKTsKIAorICAgICAgICBET01KSVQ6
OkdyYXBoKiBkb21KSVQgPSBudWxscHRyOworICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUN1
c3RvbSgpICYmIHNsb3QuZG9tSklUKCkpCisgICAgICAgICAgICBkb21KSVQgPSBzbG90LmRvbUpJ
VCgpOworCiAgICAgICAgIGlmIChraW5kID09IEdldEJ5SURLaW5kOjpQdXJlKSB7CiAgICAgICAg
ICAgICBBY2Nlc3NDYXNlOjpBY2Nlc3NUeXBlIHR5cGU7CiAgICAgICAgICAgICBpZiAoc2xvdC5p
c0NhY2hlYWJsZVZhbHVlKCkpCkBAIC0yOTAsNyArMjk1LDggQEAgc3RhdGljIElubGluZUNhY2hl
QWN0aW9uIHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVl
LCBjb24KICAgICAgICAgICAgIG5ld0Nhc2UgPSBBY2Nlc3NDYXNlOjpnZXQoCiAgICAgICAgICAg
ICAgICAgdm0sIGNvZGVCbG9jaywgdHlwZSwgb2Zmc2V0LCBzdHJ1Y3R1cmUsIGNvbmRpdGlvblNl
dCwgbG9hZFRhcmdldEZyb21Qcm94eSwKICAgICAgICAgICAgICAgICBzbG90LndhdGNocG9pbnRT
ZXQoKSwgc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpID8gc2xvdC5jdXN0b21HZXR0ZXIoKSA6IG51
bGxwdHIsCi0gICAgICAgICAgICAgICAgc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpID8gc2xvdC5z
bG90QmFzZSgpIDogbnVsbHB0cik7CisgICAgICAgICAgICAgICAgc2xvdC5pc0NhY2hlYWJsZUN1
c3RvbSgpID8gc2xvdC5zbG90QmFzZSgpIDogbnVsbHB0ciwKKyAgICAgICAgICAgICAgICBkb21K
SVQpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCmluZGV4IGQ3MDJkZGY0ZGEwNTc2OTA1Zjc5Y2Vh
ZDYwYjZhMjNjZGI5YzM2NjYuLjFlYWQ0MDI3ZTlmODZjODUxODVlZTNlMzA1YjY5YmU3NDEzY2Rl
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRl
clNldHRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRl
clNldHRlci5oCkBAIC0zMSw2ICszMSw5IEBACiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKIG5h
bWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CitjbGFzcyBHcmFwaDsKK30KIAogY2xh
c3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6CkBA
IC00MCwxNSArNDMsMTYgQEAgY2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFsIDogcHVibGlj
IEpTQ2VsbCB7CiAgICAgdHlwZWRlZiBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBDdXN0b21H
ZXR0ZXI7CiAgICAgdHlwZWRlZiBQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYyBDdXN0b21T
ZXR0ZXI7CiAKLSAgICBzdGF0aWMgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjcmVhdGUoVk0mIHZtLCBD
dXN0b21HZXR0ZXIgY3VzdG9tR2V0dGVyLCBDdXN0b21TZXR0ZXIgY3VzdG9tU2V0dGVyKQorICAg
IHN0YXRpYyBDdXN0b21HZXR0ZXJTZXR0ZXIqIGNyZWF0ZShWTSYgdm0sIEN1c3RvbUdldHRlciBj
dXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlciBjdXN0b21TZXR0ZXIsIERPTUpJVDo6R3JhcGgqIGRv
bUpJVCA9IG51bGxwdHIpCiAgICAgewotICAgICAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3Rv
bUdldHRlclNldHRlciA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEN1c3RvbUdldHRlclNl
dHRlcj4odm0uaGVhcCkpIEN1c3RvbUdldHRlclNldHRlcih2bSwgY3VzdG9tR2V0dGVyLCBjdXN0
b21TZXR0ZXIpOworICAgICAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRl
ciA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEN1c3RvbUdldHRlclNldHRlcj4odm0uaGVh
cCkpIEN1c3RvbUdldHRlclNldHRlcih2bSwgY3VzdG9tR2V0dGVyLCBjdXN0b21TZXR0ZXIsIGRv
bUpJVCk7CiAgICAgICAgIGN1c3RvbUdldHRlclNldHRlci0+ZmluaXNoQ3JlYXRpb24odm0pOwog
ICAgICAgICByZXR1cm4gY3VzdG9tR2V0dGVyU2V0dGVyOwogICAgIH0KIAogICAgIEN1c3RvbUdl
dHRlclNldHRlcjo6Q3VzdG9tR2V0dGVyIGdldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2V0dGVy
OyB9CiAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyOjpDdXN0b21TZXR0ZXIgc2V0dGVyKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXR0ZXI7IH0KKyAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdCB7
IHJldHVybiBtX2RvbUpJVDsgfQogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5
cGUpCiAgICAgewpAQCAtNTgsMTUgKzYyLDE3IEBAIGNsYXNzIEN1c3RvbUdldHRlclNldHRlciBm
aW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKIHByaXZh
dGU6Ci0gICAgQ3VzdG9tR2V0dGVyU2V0dGVyKFZNJiB2bSwgQ3VzdG9tR2V0dGVyIGdldHRlciwg
Q3VzdG9tU2V0dGVyIHNldHRlcikKKyAgICBDdXN0b21HZXR0ZXJTZXR0ZXIoVk0mIHZtLCBDdXN0
b21HZXR0ZXIgZ2V0dGVyLCBDdXN0b21TZXR0ZXIgc2V0dGVyLCBET01KSVQ6OkdyYXBoKiBkb21K
SVQpCiAgICAgICAgIDogSlNDZWxsKHZtLCB2bS5jdXN0b21HZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUu
Z2V0KCkpCiAgICAgICAgICwgbV9nZXR0ZXIoZ2V0dGVyKQogICAgICAgICAsIG1fc2V0dGVyKHNl
dHRlcikKKyAgICAgICAgLCBtX2RvbUpJVChkb21KSVQpCiAgICAgewogICAgIH0KIAogICAgIEN1
c3RvbUdldHRlciBtX2dldHRlcjsKICAgICBDdXN0b21TZXR0ZXIgbV9zZXR0ZXI7CisgICAgRE9N
SklUOjpHcmFwaCogbV9kb21KSVQ7CiB9OwogCiBKU19FWFBPUlRfUFJJVkFURSBib29sIGNhbGxD
dXN0b21TZXR0ZXIoRXhlY1N0YXRlKiwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpDdXN0b21TZXR0ZXIs
IGJvb2wgaXNBY2Nlc3NvciwgSlNWYWx1ZSB0aGlzVmFsdWUsIEpTVmFsdWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAppbmRleCAzZWU5ZGJlYmE1Zjg3ZTNhM2Rk
NGU4ZDRiMTUxNjBhMmJkYzc3YmQ0Li4wNDE1Y2RhYzdhMjg3M2QzNDhkODNhYmE1ODE2ZDliMGUy
Yjg0NTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5z
aWMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaApAQCAt
NzAsNiArNzAsNyBAQCBlbnVtIEpTX0VYUE9SVF9QUklWQVRFIEludHJpbnNpYyB7CiAgICAgVHlw
ZWRBcnJheUxlbmd0aEludHJpbnNpYywKICAgICBUeXBlZEFycmF5Qnl0ZUxlbmd0aEludHJpbnNp
YywKICAgICBUeXBlZEFycmF5Qnl0ZU9mZnNldEludHJpbnNpYywKKyAgICBET01Ob2RlRmlyc3RD
aGlsZEludHJpbnNpYywKIAogICAgIC8vIERlYnVnZ2luZyBpbnRyaW5zaWNzLiBUaGVzZSBhcmUg
bWVhbnQgdG8gYmUgdXNlZCBhcyB0ZXN0aW5nIGhhY2tzIHdpdGhpbgogICAgIC8vIGpzYy5jcHAg
YW5kIHNob3VsZCBuZXZlciBiZSBleHBvc2VkIHRvIHVzZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggNjk1YmZiNzJlZmQ0Njc2ZmZhYjFiZDVjNjJkZDI2
NDU3ODA1ZTg5MC4uYTYwOWE0OGM5MDg2YzQzYmQ0ZmJlMTVjYjdlZDk5YzczODQ0Zjk1YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xMjkwLDcgKzEyOTAs
NyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgSlNPYmplY3Q6OmZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0
eVNsb3QoUHJvcGVydHlTbG90JiBzbG90LCBKUwogCiAgICAgLy8gVGhpcyBhY2Nlc3MgaXMgY2Fj
aGVhYmxlIGJlY2F1c2UgU3RydWN0dXJlIHJlcXVpcmVzIGFuIGF0dHJpYnV0ZUNoYW5nZWRUcmFu
c2l0aW9uCiAgICAgLy8gaWYgdGhpcyBwcm9wZXJ0eSBzdG9wcyBiZWluZyBhbiBhY2Nlc3Nvci4K
LSAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzLCBhdHRyaWJ1dGVzLCBqc0Nhc3Q8Q3Vz
dG9tR2V0dGVyU2V0dGVyKj4oY3VzdG9tR2V0dGVyU2V0dGVyKS0+Z2V0dGVyKCkpOworICAgIHNs
b3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXMsIGF0dHJpYnV0ZXMsIGpzQ2FzdDxDdXN0b21HZXR0
ZXJTZXR0ZXIqPihjdXN0b21HZXR0ZXJTZXR0ZXIpLT5nZXR0ZXIoKSwganNDYXN0PEN1c3RvbUdl
dHRlclNldHRlcio+KGN1c3RvbUdldHRlclNldHRlciktPmRvbUpJVCgpKTsKIH0KIAogLy8gSXQg
bWF5IHNlZW0gY3JhenkgdG8gaW5saW5lIGEgZnVuY3Rpb24gdGhpcyBsYXJnZSwgZXNwZWNpYWxs
eSBhIHZpcnR1YWwgZnVuY3Rpb24sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5o
CmluZGV4IDAxMGU5MDQ3YjdlZGVhNjY0NDhmYjk3MWUzZDRlZTk2YmYwOGNiOTguLjgzNjI3ZWZl
OWM0ODExMmM4ZTgwMDYxZDNkNjJiYmQ5ZjMzZDhhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVHlwZS5oCkBAIC04Niw3ICs4NiwxMyBAQCBlbnVtIEpTVHlwZSA6IHVpbnQ4X3Qg
ewogICAgIEpTTWFwVHlwZSwKICAgICBKU1NldFR5cGUsCiAKLSAgICBMYXN0SlNDT2JqZWN0VHlw
ZSA9IEpTU2V0VHlwZSwKKyAgICAvLyBUaGUgRE9NTm9kZVR5cGUgdmFsdWUgbXVzdCBjb21lIGJl
Zm9yZSBhbnkgSlNUeXBlIHRoYXQgaXMgYSBzdWJjbGFzcyBvZiBKU05vZGUuCisgICAgRE9NTm9k
ZVR5cGUsCisgICAgRE9NRG9jdW1lbnRXcmFwcGVyVHlwZSwKKyAgICAvLyBUaGUgRE9NRWxlbWVu
dFR5cGUgdmFsdWUgbXVzdCBjb21lIGJlZm9yZSBhbnkgSlNUeXBlIHRoYXQgaXMgYSBzdWJjbGFz
cyBvZiBKU0VsZW1lbnQuCisgICAgRE9NRWxlbWVudFR5cGUsCisKKyAgICBMYXN0SlNDT2JqZWN0
VHlwZSA9IERPTUVsZW1lbnRUeXBlLAogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEpTVHlw
ZSkgPT0gc2l6ZW9mKHVpbnQ4X3QpLCBzaXplb2ZfanN0eXBlX2lzX29uZV9ieXRlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKaW5kZXggNjkyZDdjNzg5ZmVkNDdiNWFkNzQw
YzliZGE3MmM2NjI0YTY1YTRlNy4uZDk3MDQ1NmM4OTYwODBjMGI0ZjVhYWQzZWJiNDZjYTk2M2Fj
YmVjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKQEAgLTIzLDYgKzIz
LDcgQEAKICNpbmNsdWRlICJCYXRjaGVkVHJhbnNpdGlvbk9wdGltaXplci5oIgogI2luY2x1ZGUg
IkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkN1c3RvbUdldHRlclNldHRlci5oIgorI2luY2x1ZGUg
IkRPTUpJVEdyYXBoLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklkZW50
aWZpZXJJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSW50cmluc2ljLmgiCkBAIC00Niw2ICs0Nyw3IEBA
IHR5cGVkZWYgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgR2V0RnVuY3Rpb247CiB0eXBlZGVm
IFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jIFB1dEZ1bmN0aW9uOwogdHlwZWRlZiBGdW5j
dGlvbkV4ZWN1dGFibGUqICgqQnVpbHRpbkdlbmVyYXRvcikoVk0mKTsKIHR5cGVkZWYgSlNWYWx1
ZSAoKkxhenlQcm9wZXJ0eUNhbGxiYWNrKShWTSYsIEpTT2JqZWN0Kik7Cit0eXBlZGVmIERPTUpJ
VDo6R3JhcGgqICgqRE9NSklUR3JhcGhHZW5lcmF0b3IpKHZvaWQpOwogCiAvLyBIYXNoIHRhYmxl
IGdlbmVyYXRlZCBieSB0aGUgY3JlYXRlX2hhc2hfdGFibGUgc2NyaXB0Lgogc3RydWN0IEhhc2hU
YWJsZVZhbHVlIHsKQEAgLTc4LDYgKzgwLDggQEAgc3RydWN0IEhhc2hUYWJsZVZhbHVlIHsKICAg
ICBHZXRGdW5jdGlvbiBwcm9wZXJ0eUdldHRlcigpIGNvbnN0IHsgQVNTRVJUKCEobV9hdHRyaWJ1
dGVzICYgQnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29yT3JMYXp5UHJvcGVydHlPckNvbnN0YW50
KSk7IHJldHVybiByZWludGVycHJldF9jYXN0PEdldEZ1bmN0aW9uPihtX3ZhbHVlcy52YWx1ZTEp
OyB9CiAgICAgUHV0RnVuY3Rpb24gcHJvcGVydHlQdXR0ZXIoKSBjb25zdCB7IEFTU0VSVCghKG1f
YXR0cmlidXRlcyAmIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6eVByb3BlcnR5T3JD
b25zdGFudCkpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQdXRGdW5jdGlvbj4obV92YWx1ZXMu
dmFsdWUyKTsgfQogCisgICAgRE9NSklUOjpHcmFwaCogZG9tSklUKCkgY29uc3QgeyBBU1NFUlQo
bV9hdHRyaWJ1dGVzICYgRE9NSklUQXR0cmlidXRlKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
RE9NSklUR3JhcGhHZW5lcmF0b3I+KG1fdmFsdWVzLnZhbHVlMSkoKTsgfQorCiAgICAgTmF0aXZl
RnVuY3Rpb24gYWNjZXNzb3JHZXR0ZXIoKSBjb25zdCB7IEFTU0VSVChtX2F0dHJpYnV0ZXMgJiBB
Y2Nlc3Nvcik7IHJldHVybiByZWludGVycHJldF9jYXN0PE5hdGl2ZUZ1bmN0aW9uPihtX3ZhbHVl
cy52YWx1ZTEpOyB9CiAgICAgTmF0aXZlRnVuY3Rpb24gYWNjZXNzb3JTZXR0ZXIoKSBjb25zdCB7
IEFTU0VSVChtX2F0dHJpYnV0ZXMgJiBBY2Nlc3Nvcik7IHJldHVybiByZWludGVycHJldF9jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihtX3ZhbHVlcy52YWx1ZTIpOyB9CiAgICAgQnVpbHRpbkdlbmVyYXRv
ciBidWlsdGluQWNjZXNzb3JHZXR0ZXJHZW5lcmF0b3IoKSBjb25zdDsKQEAgLTIyNCw2ICsyMjgs
MTIgQEAgaW5saW5lIGJvb2wgZ2V0U3RhdGljUHJvcGVydHlTbG90RnJvbVRhYmxlKFZNJiB2bSwg
Y29uc3QgSGFzaFRhYmxlJiB0YWJsZSwgSlNPYmoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCisgICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBET01KSVRBdHRyaWJ1dGUpIHsKKyAg
ICAgICAgRE9NSklUOjpHcmFwaCogZG9tSklUID0gZW50cnktPmRvbUpJVCgpOworICAgICAgICBz
bG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJl
KGVudHJ5LT5hdHRyaWJ1dGVzKCkpLCBkb21KSVQtPmdldHRlcigpLCBkb21KSVQpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlz
T2JqZWN0LCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKGVudHJ5LT5hdHRyaWJ1dGVzKCkpLCBlbnRy
eS0+cHJvcGVydHlHZXR0ZXIoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0yNTksNiArMjY5
LDcgQEAgaW5saW5lIGJvb2wgcHV0RW50cnkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBIYXNoVGFi
bGVWYWx1ZSogZW50cnksIEpTT2JqZWN0KiBiYXMKICAgICAgICAgcmV0dXJuIHJlamVjdChleGVj
LCBzbG90LmlzU3RyaWN0TW9kZSgpLCBTdHJpY3RNb2RlUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJy
b3IpOwogCiAgICAgaWYgKCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIFJlYWRPbmx5KSkgeworICAg
ICAgICBBU1NFUlQoIShlbnRyeS0+YXR0cmlidXRlcygpICYgRE9NSklUQXR0cmlidXRlKSk7CiAg
ICAgICAgIGJvb2wgaXNBY2Nlc3NvciA9IGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBDdXN0b21BY2Nl
c3NvcjsKICAgICAgICAgSlNWYWx1ZSB1cGRhdGVUaGlzVmFsdWUgPSBlbnRyeS0+YXR0cmlidXRl
cygpICYgQ3VzdG9tQWNjZXNzb3IgPyBzbG90LnRoaXNWYWx1ZSgpIDogSlNWYWx1ZShiYXNlKTsK
ICAgICAgICAgYm9vbCByZXN1bHQgPSBjYWxsQ3VzdG9tU2V0dGVyKGV4ZWMsIGVudHJ5LT5wcm9w
ZXJ0eVB1dHRlcigpLCBpc0FjY2Vzc29yLCB1cGRhdGVUaGlzVmFsdWUsIHZhbHVlKTsKQEAgLTMz
Niw2ICszNDcsMTMgQEAgaW5saW5lIHZvaWQgcmVpZnlTdGF0aWNQcm9wZXJ0eShWTSYgdm0sIGNv
bnN0IFByb3BlcnR5TmFtZSYgcHJvcGVydHlOYW1lLCBjb25zdAogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgaWYgKHZhbHVlLmF0dHJpYnV0ZXMoKSAmIERPTUpJVEF0dHJpYnV0ZSkgewor
ICAgICAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQgPSB2YWx1ZS5kb21KSVQoKTsKKyAgICAgICAg
Q3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBDdXN0b21HZXR0ZXJTZXR0
ZXI6OmNyZWF0ZSh2bSwgZG9tSklULT5nZXR0ZXIoKSwgZG9tSklULT5zZXR0ZXIoKSwgZG9tSklU
KTsKKyAgICAgICAgdGhpc09iai5wdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgcHJvcGVydHlO
YW1lLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0
cmlidXRlcygpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBDdXN0b21HZXR0ZXJT
ZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZt
LCB2YWx1ZS5wcm9wZXJ0eUdldHRlcigpLCB2YWx1ZS5wcm9wZXJ0eVB1dHRlcigpKTsKICAgICB0
aGlzT2JqLnB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBwcm9wZXJ0eU5hbWUsIGN1c3RvbUdl
dHRlclNldHRlciwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSh2YWx1ZS5hdHRyaWJ1dGVzKCkpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xv
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKaW5kZXgg
ZTEzN2Q4NDVkNWZjMzEzODg2NWQxNzZhMjJhN2UzYmQ1MTdjZWIxMy4uMzQ0YzE0OGY5OTNkOTU1
NjlmN2RjOTdkZjI2NDcyZTdiZmFlN2ZlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlTbG90LmgKQEAgLTI2LDcgKzI2LDkgQEAKICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKLQorbmFtZXNwYWNlIERPTUpJVCB7CitjbGFz
cyBHcmFwaDsKK30KIGNsYXNzIEV4ZWNTdGF0ZTsKIGNsYXNzIEdldHRlclNldHRlcjsKIGNsYXNz
IEpTT2JqZWN0OwpAQCAtNDgsNiArNTAsNyBAQCBlbnVtIEF0dHJpYnV0ZSB7CiAgICAgQ2VsbFBy
b3BlcnR5ICAgICAgPSAxIDw8IDExLCAvLyBwcm9wZXJ0eSBpcyBhIGxhenkgcHJvcGVydHkgLSBv
bmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBDbGFzc1N0cnVjdHVyZSAgICA9IDEg
PDwgMTIsIC8vIHByb3BlcnR5IGlzIGEgbGF6eSBjbGFzcyBzdHJ1Y3R1cmUgLSBvbmx5IHVzZWQg
Ynkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBQcm9wZXJ0eUNhbGxiYWNrICA9IDEgPDwgMTMsIC8v
IHByb3BlcnR5IHRoYXQgaXMgYSBsYXp5IHByb3BlcnR5IGNhbGxiYWNrIC0gb25seSB1c2VkIGJ5
IHN0YXRpYyBoYXNodGFibGVzCisgICAgRE9NSklUQXR0cmlidXRlICAgPSAxIDw8IDE0LCAvLyBw
cm9wZXJ0eSBpcyBhIERPTSBKSVQgYXR0cmlidXRlIC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNo
dGFibGVzCiAgICAgQnVpbHRpbk9yRnVuY3Rpb24gPSBCdWlsdGluIHwgRnVuY3Rpb24sIC8vIGhl
bHBlciBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKICAgICBCdWlsdGluT3JGdW5jdGlv
bk9yTGF6eVByb3BlcnR5ID0gQnVpbHRpbiB8IEZ1bmN0aW9uIHwgQ2VsbFByb3BlcnR5IHwgQ2xh
c3NTdHJ1Y3R1cmUgfCBQcm9wZXJ0eUNhbGxiYWNrLCAvLyBoZWxwZXIgb25seSB1c2VkIGJ5IHN0
YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29yT3JMYXp5UHJv
cGVydHkgPSBCdWlsdGluIHwgRnVuY3Rpb24gfCBBY2Nlc3NvciB8IENlbGxQcm9wZXJ0eSB8IENs
YXNzU3RydWN0dXJlIHwgUHJvcGVydHlDYWxsYmFjaywgLy8gaGVscGVyIG9ubHkgdXNlZCBieSBz
dGF0aWMgaGFzaHRhYmxlcwpAQCAtMTU3LDYgKzE2MCwxMSBAQCBjbGFzcyBQcm9wZXJ0eVNsb3Qg
ewogICAgICAgICByZXR1cm4gbV93YXRjaHBvaW50U2V0OwogICAgIH0KIAorICAgIERPTUpJVDo6
R3JhcGgqIGRvbUpJVCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9kb21KSVQ7Cisg
ICAgfQorCiAgICAgdm9pZCBzZXRWYWx1ZShKU09iamVjdCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0
dHJpYnV0ZXMsIEpTVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBBU1NFUlQoYXR0cmlidXRl
cyA9PSBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKGF0dHJpYnV0ZXMpKTsKQEAgLTIxMSw3ICsyMTks
NyBAQCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogICAgICAgICBtX29mZnNldCA9IGludmFsaWRPZmZz
ZXQ7CiAgICAgfQogICAgIAotICAgIHZvaWQgc2V0Q2FjaGVhYmxlQ3VzdG9tKEpTT2JqZWN0KiBz
bG90QmFzZSwgdW5zaWduZWQgYXR0cmlidXRlcywgR2V0VmFsdWVGdW5jIGdldFZhbHVlKQorICAg
IHZvaWQgc2V0Q2FjaGVhYmxlQ3VzdG9tKEpTT2JqZWN0KiBzbG90QmFzZSwgdW5zaWduZWQgYXR0
cmlidXRlcywgR2V0VmFsdWVGdW5jIGdldFZhbHVlLCBET01KSVQ6OkdyYXBoKiBkb21KSVQgPSBu
dWxscHRyKQogICAgIHsKICAgICAgICAgQVNTRVJUKGF0dHJpYnV0ZXMgPT0gYXR0cmlidXRlc0Zv
clN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CiAgICAgICAgIApAQCAtMjIzLDYgKzIzMSw3IEBAIGNs
YXNzIFByb3BlcnR5U2xvdCB7CiAgICAgICAgIG1fc2xvdEJhc2UgPSBzbG90QmFzZTsKICAgICAg
ICAgbV9wcm9wZXJ0eVR5cGUgPSBUeXBlQ3VzdG9tOwogICAgICAgICBtX29mZnNldCA9ICFpbnZh
bGlkT2Zmc2V0OworICAgICAgICBtX2RvbUpJVCA9IGRvbUpJVDsKICAgICB9CiAKICAgICB2b2lk
IHNldEN1c3RvbUdldHRlclNldHRlcihKU09iamVjdCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJp
YnV0ZXMsIEN1c3RvbUdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyKQpAQCAtMzE4LDYgKzMyNyw3
IEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAgQ2FjaGVhYmlsaXR5VHlwZSBtX2NhY2hlYWJp
bGl0eTsKICAgICBQcm9wZXJ0eVR5cGUgbV9wcm9wZXJ0eVR5cGU7CiAgICAgSW50ZXJuYWxNZXRo
b2RUeXBlIG1faW50ZXJuYWxNZXRob2RUeXBlOworICAgIERPTUpJVDo6R3JhcGgqIG1fZG9tSklU
IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9pc1RhaW50ZWRCeU9wYXF1ZU9iamVjdDsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oIGIvU291cmNlL1dURi93
dGYvU3RkTGliRXh0cmFzLmgKaW5kZXggNmU4YTIxNDRjMTFjMWI4YjJmNWYyN2Y3ZmMwYzNkZWZh
YzdkZjJiNi4uOTIwODMwOTJiOTMxZjg5YjA2ZGM4NWI5ZTFhNTQ2ZmEyNjMyNzJlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYv
U3RkTGliRXh0cmFzLmgKQEAgLTY4LDYgKzY4LDggQEAKIC8vIE5VTEwgY2FuIGNhdXNlIGNvbXBp
bGVyIHByb2JsZW1zLCBlc3BlY2lhbGx5IGluIGNhc2VzIG9mIG11bHRpcGxlIGluaGVyaXRhbmNl
LgogI2RlZmluZSBPQkpFQ1RfT0ZGU0VUT0YoY2xhc3MsIGZpZWxkKSAocmVpbnRlcnByZXRfY2Fz
dDxwdHJkaWZmX3Q+KCYocmVpbnRlcnByZXRfY2FzdDxjbGFzcyo+KDB4NDAwMCktPmZpZWxkKSkg
LSAweDQwMDApCiAKKyNkZWZpbmUgQ0FTVF9PRkZTRVQoZnJvbSwgdG8pIChyZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4oc3RhdGljX2Nhc3Q8dG8+KChyZWludGVycHJldF9jYXN0PGZyb20+KDB4
NDAwMCkpKSkgLSAweDQwMDApCisKIC8vIFNUUklOR0laRTogQ2FuIGNvbnZlcnQgYW55IHZhbHVl
IHRvIHF1b3RlZCBzdHJpbmcsIGV2ZW4gZXhwYW5kYWJsZSBtYWNyb3MKICNkZWZpbmUgU1RSSU5H
SVpFKGV4cCkgI2V4cAogI2RlZmluZSBTVFJJTkdJWkVfVkFMVUVfT0YoZXhwKSBTVFJJTkdJWkUo
ZXhwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvZG9taml0
L0RPTUpJVEdyYXBoLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9kb21qaXQv
RE9NSklUR3JhcGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDgwM2M3ZjhiZjU0NDZjZDRiZTVjMzg0Y2RiNGM1
MWIzMjYxN2MzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hl
YWRlcnMvZG9taml0L0RPTUpJVEdyYXBoLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNv
cmVfRldEX0RPTUpJVEdyYXBoX2gKKyNkZWZpbmUgV2ViQ29yZV9GV0RfRE9NSklUR3JhcGhfaAor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RPTUpJVEdyYXBoLmg+CisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1FZmwuY21ha2UKaW5kZXggNmY2ODdlOGVjZDczZGE4OGI0OWQ4Nzk3NThjYWJkNTU2N2Yw
MzcyYS4uN2U5OWE0OTFlNjQ4NzZkMGNhODYxM2FkYzQ5MjAzY2JhNGZkNjE5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1FZmwuY21ha2UKQEAgLTE0LDYgKzE0LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9J
TkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29tcGls
ZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZmciCiAgICAgIiR7SkFWQVNDUklQVENP
UkVfRElSfS9kaXNhc3NlbWJsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kb21qaXQi
CiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9oZWFwIgogICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vZGVidWdnZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnRlcnByZXRlciIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYjE1M2U0MDI0ZDE1ZTlhNDc5NjQ3MDM3ZTY1
ZTZlMWI2ZDM2YTA4Zi4uMDQ2NmNlNWE2YWZkYzY5YmJhYzVmNWY1Zjc1ZWYzNWYwMTVlOWRiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTE5LDYgKzE5LDcgQEAgbGlzdChBUFBFTkQg
V2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9i
eXRlY29tcGlsZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZmciCiAgICAgIiR7SkFW
QVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9kb21qaXQiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9oZWFwIgogICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0vZGVidWdnZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnRl
cnByZXRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggMzRiOGRiMjcwYmY2OTRiMmUw
N2QxODQ5MWFhODc0Njc0MzU2N2ZjOC4uYmM0N2M0ZWFhZGQ2NjliNDU0Zjc2ODZiYTMyMjU0ZWNj
MTg2YzgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTgwLDYgKzgwLDcgQEAgbGlz
dChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L0ZvcndhcmRpbmdIZWFkZXJzL2JpbmRpbmdzIgogICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJk
aW5nSGVhZGVycy9ieXRlY29kZSIKICAgICAiJHtXRUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRl
cnMvZGVidWdnZXIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2RvbWpp
dCIKICAgICAiJHtXRUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvaGVhcCIKICAgICAiJHtX
RUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvaW5zcGVjdG9yIgogICAgICIke1dFQkNPUkVf
RElSfS9Gb3J3YXJkaW5nSGVhZGVycy9pbnRlcnByZXRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21h
a2UKaW5kZXggYWVkOGRlYjBhMjg4NzdkOTU2NmQzNzhiZDU5YWRjZDBlZjhhN2NlZC4uYTM4ZmUx
OTNlY2NhMzA3ZDE1OTVhYjRiYTM3YWYyNWM2YzUyMTBlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4u
Y21ha2UKQEAgLTE1LDYgKzE1LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVD
VE9SSUVTCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyIgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0Zv
cndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2RmZyIKICAgICAiJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIiCisg
ICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENv
cmUvZG9taml0IgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJz
L0phdmFTY3JpcHRDb3JlL2hlYXAiCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2Fy
ZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIiCiAgICAgIiR7REVSSVZFRF9TT1VS
Q0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBk
NDBjNDNmNjNkNTdlN2U1OTcwYzdlNjJlZmE4NTZhZTY0ZTMyZjI5Li4xMTZkNWRkZjUxOTkzN2Zj
NjYxMzU1YTJjODliZWJiMzgwNWJjMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTcyLDYgKzcyLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQoKSB7IHJldHVybiBtX3dvcmxk
LmdldCgpOyB9CiAgICAgICAgIGJvb2wgd29ybGRJc05vcm1hbCgpIGNvbnN0IHsgcmV0dXJuIG1f
d29ybGRJc05vcm1hbDsgfQorICAgICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV29ybGRJ
c05vcm1hbCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0RPTUdsb2JhbE9iamVjdCwgbV93
b3JsZElzTm9ybWFsKTsgfQogCiAgICAgICAgIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zJiBi
dWlsdGluSW50ZXJuYWxGdW5jdGlvbnMoKSB7IHJldHVybiBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0
aW9uczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdy
YXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCmluZGV4
IGNkNTBhZWY4MDFiODU5MjlkNjczODZhZTYyNmM3Y2FlNTg3MmY0YTQuLmNlYzZiOGQ2YmQ3ZjY0
NTBjNGQwYTlkNzE3M2IzYTVjOTBmMzk3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV3JhcHBlci5oCkBAIC0zMCwxMCArMzAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBKU0RPTVdpbmRvdzsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLXN0YXRp
YyBjb25zdCB1aW50OF90IEpTTm9kZVR5cGUgPSBKU0M6Okxhc3RKU0NPYmplY3RUeXBlICsgMTsK
LXN0YXRpYyBjb25zdCB1aW50OF90IEpTRG9jdW1lbnRXcmFwcGVyVHlwZSA9IEpTQzo6TGFzdEpT
Q09iamVjdFR5cGUgKyAyOwotc3RhdGljIGNvbnN0IHVpbnQ4X3QgSlNFbGVtZW50VHlwZSA9IEpT
Qzo6TGFzdEpTQ09iamVjdFR5cGUgKyAzOwotCiBjbGFzcyBKU0RPTU9iamVjdCA6IHB1YmxpYyBK
U0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQzo6SlNE
ZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKQEAgLTU5LDYgKzU1LDcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgSW1wbGVtZW50YXRpb25DbGFzcz4gY2xhc3MgSlNET01XcmFwcGVyIDogcHVibGljIEpTRE9N
T2JqZWN0IHsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNET01XcmFwcGVyID0gdHJ1ZTsK
IAogICAgIEltcGxlbWVudGF0aW9uQ2xhc3MmIHdyYXBwZWQoKSBjb25zdCB7IHJldHVybiBjb25z
dF9jYXN0PEltcGxlbWVudGF0aW9uQ2xhc3MmPihtX3dyYXBwZWQuZ2V0KCkpOyB9CisgICAgc3Rh
dGljIHB0cmRpZmZfdCBvZmZzZXRPZldyYXBwZWQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0Yo
SlNET01XcmFwcGVyPEltcGxlbWVudGF0aW9uQ2xhc3M+LCBtX3dyYXBwZWQpOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICBKU0RPTVdyYXBwZXIoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNDOjpK
U0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBSZWY8SW1wbGVtZW50YXRpb25DbGFzcz4mJiBp
bXBsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1
c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oCmlu
ZGV4IDY5YzRjYTgyODkxOWM5YjEzYWJhYjFjODNiNmJhYTAyYTlkNmJjMmEuLmYwYWM3Yzc0MThi
MDU4ZTVjMTBkMTY4YjAxMjM2NTA5ZDIzNTEyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmgKQEAgLTM1LDcgKzM1LDcgQEAgQUxXQVlTX0lOTElO
RSBKU0RvY3VtZW50KiBqc0RvY3VtZW50Q2FzdChKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
aWYgKFVOTElLRUxZKCF2YWx1ZS5pc0NlbGwoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEpTRG9jdW1lbnRXcmFwcGVyVHlw
ZSA/IEpTQzo6anNDYXN0PEpTRG9jdW1lbnQqPih2YWx1ZSkgOiBudWxscHRyOworICAgIHJldHVy
biB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID09IEpTQzo6RE9NRG9jdW1lbnRXcmFwcGVyVHlwZSA/
IEpTQzo6anNDYXN0PEpTRG9jdW1lbnQqPih2YWx1ZSkgOiBudWxscHRyOwogfQogCiBKU0M6OkpT
T2JqZWN0KiBjYWNoZWREb2N1bWVudFdyYXBwZXIoSlNDOjpFeGVjU3RhdGUmLCBKU0RPTUdsb2Jh
bE9iamVjdCYsIERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0VsZW1lbnRDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxl
bWVudEN1c3RvbS5oCmluZGV4IDJhMWJhMDE4MDMyNGQwODRiNGFjNWI2YjJjOTU3ZWRjMzlhNzk2
ZjcuLmYyYmEwZDliYWNjNTAyNjA5YmM2MmE3MWJmOTVjYmFhN2NmYTQ5NTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5oCkBAIC0zNSw3ICszNSw3IEBA
IEFMV0FZU19JTkxJTkUgSlNFbGVtZW50KiBqc0VsZW1lbnRDYXN0KEpTQzo6SlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBpZiAoVU5MSUtFTFkoIXZhbHVlLmlzQ2VsbCgpKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPj0gSlNFbGVtZW50
VHlwZSA/IEpTQzo6anNDYXN0PEpTRWxlbWVudCo+KHZhbHVlKSA6IG51bGxwdHI7CisgICAgcmV0
dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPj0gSlNDOjpET01FbGVtZW50VHlwZSA/IEpTQzo6
anNDYXN0PEpTRWxlbWVudCo+KHZhbHVlKSA6IG51bGxwdHI7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1
c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKaW5kZXgg
YWI2MzYxYzY1M2VlMTg2ZTA3NGJjZTIzNTJkNTJjYmI4NmY3MTNmMC4uNTAxNDlmODI5ODljOGFh
OWNiMTI2NjdjNWQyM2Q2ODQ2ZTY3MDdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOb2RlQ3VzdG9tLmgKQEAgLTgyLDcgKzgyLDcgQEAgQUxXQVlTX0lOTElORSBKU05vZGUqIGpz
Tm9kZUNhc3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmIChVTkxJS0VMWSghdmFsdWUu
aXNDZWxsKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gdmFsdWUuYXND
ZWxsKCktPnR5cGUoKSA+PSBKU05vZGVUeXBlID8gSlNDOjpqc0Nhc3Q8SlNOb2RlKj4odmFsdWUp
IDogbnVsbHB0cjsKKyAgICByZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA+PSBKU0M6OkRP
TU5vZGVUeXBlID8gSlNDOjpqc0Nhc3Q8SlNOb2RlKj4odmFsdWUpIDogbnVsbHB0cjsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRXcmFwcGFibGUuaAppbmRleCA1ZDkzMjYxMTRhYTZmMGMxZDRmMGI3YmNlMTY0YTEyMzhlMjZh
OTBjLi4yZTU4MmJiNTBiYzk5ZWFiM2IwODYxZGNlMGY4OTc4YjdiYzk1NGU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaApAQCAtNDcsNiArNDcsNyBA
QCBjbGFzcyBTY3JpcHRXcmFwcGFibGUgewogICAgIEpTRE9NT2JqZWN0KiB3cmFwcGVyKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRXcmFwcGVyKEpTRE9NT2JqZWN0KiwgSlNDOjpXZWFrSGFuZGxlT3du
ZXIqLCB2b2lkKik7CiAgICAgdm9pZCBjbGVhcldyYXBwZXIoSlNET01PYmplY3QqKTsKKyAgICBz
dGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV3JhcHBlcigpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRP
RihTY3JpcHRXcmFwcGFibGUsIG1fd3JhcHBlcik7IH0KIAogcHJvdGVjdGVkOgogICAgIH5TY3Jp
cHRXcmFwcGFibGUoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggYTZiOTAwZWUzMmMxZTk0ZDkwMDc1M2M0ZTkwYzMy
MTQ5Y2IxN2I0NC4uN2E3OGYzMTg4NDcwZmQyOTg1NDE0YzhhNzcyNWIxMjI1MDBhZDU3NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTYyNiw2ICs2MjYsNyBAQCBzdWIgR2V0SlNDQXR0cmlidXRlc0ZvckF0dHJpYnV0ZQog
ICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udEVudW0iKSBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm90RW51bWVyYWJsZSJ9IHx8ICRpc19nbG9iYWxfY29u
c3RydWN0b3IpOwogICAgIHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5
KCRhdHRyaWJ1dGUpOwogICAgIHB1c2goQHNwZWNpYWxzLCAiQ3VzdG9tQWNjZXNzb3IiKSB1bmxl
c3MgJGlzX2dsb2JhbF9jb25zdHJ1Y3RvciBvciBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkYXR0
cmlidXRlKTsKKyAgICBwdXNoKEBzcGVjaWFscywgIkRPTUpJVEF0dHJpYnV0ZSIpIGlmICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9OwogICAgIHB1
c2goQHNwZWNpYWxzLCAiQWNjZXNzb3IgfCBCdWlsdGluIikgaWYgIElzSlNCdWlsdGluKCRpbnRl
cmZhY2UsICRhdHRyaWJ1dGUpOwogICAgIHJldHVybiAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIg
fCAiLCBAc3BlY2lhbHMpIDogIjAiOwogfQpAQCAtMTI4NiwxMSArMTI4NywxMSBAQCBzdWIgR2Vu
ZXJhdGVIZWFkZXIKICAgICBpZiAoSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSkpIHsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
R2xvYmFsT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfSBl
bHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJEb2N1
bWVudCIpKSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6OkpTVHlwZShKU0RvY3VtZW50V3JhcHBlclR5cGUpLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAg
cmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBKU0M6OlR5cGVJbmZvKEpTQzo6RE9NRG9jdW1lbnRXcmFwcGVyVHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRz
SW50ZXJmYWNlKCRpbnRlcmZhY2UsICJFbGVtZW50IikpIHsKLSAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6SlNUeXBlKEpTRWxlbWVudFR5
cGUpLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6RE9NRWxlbWVudFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOwogICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiTm9kZSIpKSB7Ci0gICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkpTVHlwZShKU05v
ZGVUeXBlKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkRPTU5vZGVUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKICAgICB9CkBAIC0xMzQ4LDYgKzEzNDks
OCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBteSAkaGFzRm9yd2FyZERlY2xhcmluZ0Z1bmN0
aW9ucyA9IDA7CiAgICAgbXkgJGhhc0ZvcndhcmREZWNsYXJpbmdBdHRyaWJ1dGVzID0gMDsKIAor
ICAgIG15ICRoYXNET01KSVRBdHRyaWJ1dGVzID0gMDsKKwogICAgICMgQXR0cmlidXRlIGFuZCBm
dW5jdGlvbiBlbnVtcwogICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDApIHsKICAgICAgICAgZm9y
ZWFjaCAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewpAQCAtMTM2Miw2ICsxMzY1LDcgQEAg
c3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICAgICAgJG5lZWRzVmlzaXRDaGlsZHJlbiA9
IDE7CiAgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZlxuIikgaWYg
JGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgJGhhc0RPTUpJ
VEF0dHJpYnV0ZXMgPSAxIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkRPTUpJVCJ9OwogCiAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xhcmVJbkhlYWRlciJ9KSB7CiAgICAg
ICAgICAgICAgICAgJGhhc0ZvcndhcmREZWNsYXJpbmdBdHRyaWJ1dGVzID0gMTsKQEAgLTE1Nzks
NiArMTU4MywxNSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgfQogICAgIH0KIAorICAg
IGlmICgkaGFzRE9NSklUQXR0cmlidXRlcykgeworICAgICAgICAkaGVhZGVySW5jbHVkZXN7Ijxk
b21qaXQvRE9NSklUR3JhcGguaD4ifSA9IDE7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
Ii8vIERPTUpJVCBlbWl0dGVycyBmb3IgYXR0cmlidXRlc1xuXG4iKTsKKyAgICAgICAgZm9yZWFj
aCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgICAg
ICBuZXh0IHVubGVzcyAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJET01KSVQifTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkRPTUpJ
VDo6R3JhcGgqIGRvbUpJVEdyYXBoRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdlbmVy
YXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gIih2b2lkKTtc
biIpOworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKEhhc0N1c3RvbUNvbnN0cnVjdG9yKCRp
bnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIvLyBDdXN0b20gY29u
c3RydWN0b3JcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdCR7Y2xhc3NOYW1lfShKU0M6OkV4ZWNTdGF0
ZSYpO1xuXG4iKTsKQEAgLTE2NTUsMTQgKzE2NjgsMTkgQEAgc3ViIEdlbmVyYXRlUHJvcGVydGll
c0hhc2hUYWJsZQogICAgICAgICBteSAkc3BlY2lhbCA9IEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRy
aWJ1dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgIHB1c2goQCRoYXNoU3BlY2lh
bHMsICRzcGVjaWFsKTsKIAotICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVy
TmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgcHVzaChA
JGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwotCi0gICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1
dGUpKSB7CisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJET01KSVQifSkgeworICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTEsICJkb21K
SVRHcmFwaEZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmly
c3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSk7CiAgICAgICAgICAgICBwdXNoKEAkaGFz
aFZhbHVlMiwgIjAiKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG15ICRzZXR0ZXIg
PSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1
dGUpOwotICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAgICAg
ICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNz
TmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMSwgJGdldHRl
cik7CisKKyAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CisgICAgICAg
ICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICIwIik7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRl
cmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIHB1c2goQCRo
YXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAg
IG15ICRjb25kaXRpb25hbCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkNvbmRpdGlvbmFsIn07CkBAIC0yNDU0LDE3ICsyNDcyLDIzIEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSBAc3BlY2lhbHMgPSAoKTsKICAgICAgICAg
ICAgIHB1c2goQHNwZWNpYWxzLCAiRG9udERlbGV0ZSIpIHVubGVzcyAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxldGFibGUifTsKICAgICAgICAgICAgIHB1
c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpOworICAg
ICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1dGUiKSBpZiAkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifTsKICAgICAgICAgICAg
IG15ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6
ICIwIjsKICAgICAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOwogCi0gICAg
ICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAk
Y2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTEsICRn
ZXR0ZXIpOwotCi0gICAgICAgICAgICBpZiAoSXNSZWFkb25seSgkYXR0cmlidXRlKSkgeworICAg
ICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkRPTUpJVCJ9KSB7CisgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgImRvbUpJVEdy
YXBoRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpKTsKICAgICAgICAgICAgICAgICBwdXNoKEBoYXNo
VmFsdWUyLCAiMCIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBteSAk
c2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAk
YXR0cmlidXRlKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVyKTsK
KyAgICAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50
ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBo
YXNoVmFsdWUxLCAkZ2V0dGVyKTsKKworICAgICAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRh
dHRyaWJ1dGUpKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHNldHRl
ciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJp
YnV0ZSk7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRzZXR0ZXIpOwor
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbXkgJGNvbmRp
dGlvbmFsID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29u
ZGl0aW9uYWwifTsKQEAgLTMwMzQsNiArMzA1OCwzNSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKKyAgICAg
ICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
T01KSVQifSkgeworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Ijx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4ifSA9IDE7CisgICAgICAgICAgICAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50
ZXJmYWNlLT5uYW1lOworICAgICAgICAgICAgICAgIG15ICRkb21KSVRDbGFzc05hbWUgPSAiRE9N
SklUIiAuICRpbnRlcmZhY2VOYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0
QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsK
KyAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gSXNSZWFkb25seSgkYXR0cmlidXRlKSA/ICJu
dWxscHRyIiA6IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwg
JGF0dHJpYnV0ZSk7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImNsYXNz
ICRkb21KSVRDbGFzc05hbWUgOiBwdWJsaWMgSlNDOjpET01KSVQ6OkdyYXBoIHtcbiIpOworICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAicHVibGljOlxuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGRvbUpJVENsYXNzTmFtZSgpXG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgOiBKU0M6OkRPTUpJVDo6
R3JhcGgoJGdldHRlciwgJHNldHRlciwgSlNDOjpTcGVjRE9NTm9kZSlcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHtcbiIpOworICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICB1c2luZyBuYW1lc3BhY2UgSlNDOjpET01KSVQ7XG4i
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXBwZW5kKEtp
bmQ6OkNoZWNrTm9kZSwgSVI6OnRoaXNWYWx1ZSgpLCBudWxscHRyKTtcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJUiogd3JhcHBlZCA9IGFwcGVuZChL
aW5kOjpHZXRXcmFwcGVkLCBJUjo6dGhpc1ZhbHVlKCksIG51bGxwdHIsIEpTTm9kZTo6b2Zmc2V0
T2ZXcmFwcGVkKCkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIGFwcGVuZChLaW5kOjpDaGVja05vZGVGbGFncywgd3JhcHBlZCwgbnVsbHB0ciwgTm9k
ZTo6bm9kZUZsYWdzTWVtb3J5T2Zmc2V0KCksIE5vZGU6OklzQ29udGFpbmVyRmxhZyk7XG4iKTsK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSVIqIHJlc3VsdCA9
IGFwcGVuZChLaW5kOjpMb2FkUG9pbnRlciwgd3JhcHBlZCwgbnVsbHB0ciwgQ0FTVF9PRkZTRVQo
JGludGVyZmFjZU5hbWUqLCBDb250YWluZXJOb2RlKikgKyBDb250YWluZXJOb2RlOjpmaXJzdENo
aWxkTWVtb3J5T2Zmc2V0KCkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIElSKiB3cmFwcGVyID0gYXBwZW5kKEtpbmQ6OlRvV3JhcHBlciwgSVI6OnRo
aXNWYWx1ZSgpLCByZXN1bHQsIENBU1RfT0ZGU0VUKCRpbnRlcmZhY2VOYW1lKiwgU2NyaXB0V3Jh
cHBhYmxlKikgKyBTY3JpcHRXcmFwcGFibGU6Om9mZnNldE9mV3JhcHBlcigpLCBiaXR3aXNlX2Nh
c3Q8dWludHB0cl90PihzdGF0aWNfY2FzdDxKU0M6OkVuY29kZWRKU1ZhbHVlICgqKShKU0M6OkV4
ZWNTdGF0ZSosIHZvaWQqLCB2b2lkKik+KFtdKEpTQzo6RXhlY1N0YXRlKiBleGVjLCB2b2lkKiB3
cmFwcGVkLCB2b2lkKiBub2RlKSB7IHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZSh0b0pTKGV4
ZWMsIHN0YXRpY19jYXN0PEpTTm9kZSo+KG5vZGUpLT5nbG9iYWxPYmplY3QoKSwgc3RhdGljX2Nh
c3Q8Tm9kZSo+KHdyYXBwZWQpKSk7IH0pKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgYXBwZW5kKEtpbmQ6OlJldHVybiwgd3JhcHBlciwgbnVsbHB0
cik7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn07XG5cbiIpOworCisgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkRPTUpJVDo6R3JhcGgqIGRvbUpJVEdy
YXBoRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gIigpXG4iKTsKKyAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDwkZG9tSklUQ2xhc3NOYW1lPiBlbWl0dGVy
O1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICZl
bWl0dGVyLmdldCgpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9
XG5cbiIpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiNlbmRpZlxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nOwogCiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7CkBAIC01MDAxLDEyICs1MDU0LDE0IEBAIHN1YiBH
ZW5lcmF0ZUhhc2hUYWJsZVZhbHVlQXJyYXkKICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUg
PSAic3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4iOwogICAgICAgICB9IGVsc2lmICgiQCRz
cGVjaWFsc1skaV0iID1+IG0vQ29uc3RhbnRJbnRlZ2VyLykgewogICAgICAgICAgICAgJGZpcnN0
VGFyZ2V0VHlwZSA9ICIiOworICAgICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0v
RE9NSklUQXR0cmlidXRlLykgeworICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJzdGF0
aWNfY2FzdDxET01KSVRHcmFwaEdlbmVyYXRvcj4iOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4iOwogICAgICAgICAgICAgJHNlY29uZFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+IjsKICAgICAgICAgICAgICRoYXNTZXR0ZXIg
PSAidHJ1ZSI7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9D
b25zdGFudEludGVnZXIvKSB7CisgICAgICAgIGlmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQ29u
c3RhbnRJbnRlZ2VyfERPTUpJVEF0dHJpYnV0ZS8pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIHsgXCIka2V5XCIsIEAkc3BlY2lhbHNbJGldLCBOb0ludHJpbnNpYywgeyAo
bG9uZyBsb25nKSIgLiAkZmlyc3RUYXJnZXRUeXBlIC4gIihAJHZhbHVlMVskaV0pIH0gfSxcbiIp
OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
eyBcIiRrZXlcIiwgQCRzcGVjaWFsc1skaV0sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdCkiIC4g
JGZpcnN0VGFyZ2V0VHlwZSAuICIoQCR2YWx1ZTFbJGldKSwgKGludHB0cl90KSAiIC4gJHNlY29u
ZFRhcmdldFR5cGUgLiAiKEAkdmFsdWUyWyRpXSkgfSB9LFxuIik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCBkMjg4NWE4NDJk
NzQ0MDk5MWM2MzgzOTcwY2M3ZDliMmE2NWY0MjZkLi5mY2VmYjBlODg3NDcyOGExMDIzNWYxZDM0
OTRiOTA2YWQ3MzU0OWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTU0LDYgKzU0LDcgQEAgQ3VzdG9tUmV0dXJuCiBDdXN0
b21TZXRQcm90b3R5cGUKIEN1c3RvbVNldHRlcgogQ3VzdG9tVG9KU09iamVjdAorRE9NSklUCiBE
ZWxldGFibGUKIERvTm90Q2hlY2tDb25zdGFudHMKIERvTm90Q2hlY2tTZWN1cml0eQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgK
aW5kZXggNGEzMGNlYjU5NGM2YWIwOGQwMGQ0OTU2NjFmM2JiNjYwMzMyYTBkMy4uZWJjNzJiOGEy
YWYzZDA3ZDg5MDM2OGI0Njk2MzY5NzZlOWIwZmNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCkBAIC00Myw3ICs0Myw3
IEBAIGNsYXNzIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIEpTVGVzdE5vZGUgOiBwdWJsaWMg
SlNOb2RlIHsKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1
ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpKU1R5cGUo
SlNOb2RlVHlwZSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICAgICAgcmV0dXJuIEpT
Qzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5
cGVJbmZvKEpTQzo6RE9NTm9kZVR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9
CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25z
dCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBlMjZjMzMyOWVkZDIyZDA4
ODAxMjViZTIyZmJkMTYyYjZlN2FhOWJhLi4zNGNlZTFmZDQzOWYwOWFkZDhkNDJjNjA5ZDA5ZDVh
YzFhYTJkZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTEyMCw2ICsxMjAsNDYgQEAgY2xhc3MgTm9kZSA6
IHB1YmxpYyBFdmVudFRhcmdldCB7CiAgICAgICAgIERPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5F
RF9CWSA9IDB4MTAsCiAgICAgICAgIERPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQ
RUNJRklDID0gMHgyMCwKICAgICB9OworICAgIGVudW0gTm9kZUZsYWdzIHsKKyAgICAgICAgSXNU
ZXh0RmxhZyA9IDEsCisgICAgICAgIElzQ29udGFpbmVyRmxhZyA9IDEgPDwgMSwKKyAgICAgICAg
SXNFbGVtZW50RmxhZyA9IDEgPDwgMiwKKyAgICAgICAgSXNTdHlsZWRFbGVtZW50RmxhZyA9IDEg
PDwgMywKKyAgICAgICAgSXNIVE1MRmxhZyA9IDEgPDwgNCwKKyAgICAgICAgSXNTVkdGbGFnID0g
MSA8PCA1LAorICAgICAgICBDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCA3LAorICAg
ICAgICBJbkRvY3VtZW50RmxhZyA9IDEgPDwgOCwKKyAgICAgICAgSXNMaW5rRmxhZyA9IDEgPDwg
OSwKKyAgICAgICAgSXNVc2VyQWN0aW9uRWxlbWVudCA9IDEgPDwgMTAsCisgICAgICAgIEhhc1Jh
cmVEYXRhRmxhZyA9IDEgPDwgMTEsCisgICAgICAgIElzRG9jdW1lbnRGcmFnbWVudEZsYWcgPSAx
IDw8IDEyLAorCisgICAgICAgIC8vIFRoZXNlIGJpdHMgYXJlIHVzZWQgYnkgZGVyaXZlZCBjbGFz
c2VzLCBwdWxsZWQgdXAgaGVyZSBzbyB0aGV5IGNhbgorICAgICAgICAvLyBiZSBzdG9yZWQgaW4g
dGhlIHNhbWUgbWVtb3J5IHdvcmQgYXMgdGhlIE5vZGUgYml0cyBhYm92ZS4KKyAgICAgICAgSXNQ
YXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAxIDw8IDEzLCAvLyBFbGVtZW50CisKKyAgICAg
ICAgU3R5bGVDaGFuZ2VNYXNrID0gMSA8PCBub2RlU3R5bGVDaGFuZ2VTaGlmdCB8IDEgPDwgKG5v
ZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMSkgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCArIDIp
LAorICAgICAgICBJc0VkaXRpbmdUZXh0T3JVbmRlZmluZWRDdXN0b21FbGVtZW50RmxhZyA9IDEg
PDwgMTcsCisgICAgICAgIEhhc0ZvY3VzV2l0aGluID0gMSA8PCAxOCwKKyAgICAgICAgSGFzU3lu
dGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAxOSwKKyAgICAgICAgSGFzQ3VzdG9tU3R5
bGVSZXNvbHZlQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjAsCisgICAgICAgIEhhc0V2ZW50VGFyZ2V0
RGF0YUZsYWcgPSAxIDw8IDIxLAorICAgICAgICBJc0N1c3RvbUVsZW1lbnQgPSAxIDw8IDIyLAor
ICAgICAgICBJc0luU2hhZG93VHJlZUZsYWcgPSAxIDw8IDIzLAorICAgICAgICBJc01hdGhNTEZs
YWcgPSAxIDw8IDI0LAorCisgICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hpbGRSdWxl
c0ZsYWcgPSAxIDw8IDI1LAorICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlMYXN0Q2hpbGRSdWxl
c0ZsYWcgPSAxIDw8IDI2LAorICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlIb3ZlclJ1bGVzRmxh
ZyA9IDEgPDwgMjcsCisKKyAgICAgICAgRGlyZWN0Q2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9
IDEgPDwgMjgsCisgICAgICAgIEFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHlsZSA9IDEgPDwg
MjksCisgICAgICAgIFN0eWxlSXNBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nID0gMSA8PCAzMCwK
KworICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8PCAzMSwKKworICAg
ICAgICBEZWZhdWx0Tm9kZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcKKyAg
ICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc3RhcnRJZ25vcmluZ0xlYWtz
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc3RvcElnbm9yaW5nTGVha3MoKTsK
QEAgLTE1NSw2ICsxOTUsOCBAQCBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKICAg
ICBOb2RlKiBwc2V1ZG9Bd2FyZVByZXZpb3VzU2libGluZygpIGNvbnN0OwogICAgIE5vZGUqIHBz
ZXVkb0F3YXJlRmlyc3RDaGlsZCgpIGNvbnN0OwogICAgIE5vZGUqIHBzZXVkb0F3YXJlTGFzdENo
aWxkKCkgY29uc3Q7CisgICAgc3RhdGljIHB0cmRpZmZfdCBub2RlRmxhZ3NNZW1vcnlPZmZzZXQo
KSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTm9kZSwgbV9ub2RlRmxhZ3MpOyB9CisgICAgc3Rh
dGljIHB0cmRpZmZfdCByYXJlRGF0YU1lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihOb2RlLCBtX2RhdGEubV9yYXJlRGF0YSk7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IFVSTCYgYmFzZVVSSSgpIGNvbnN0OwogICAgIApAQCAtNTYwLDggKzYwMiw2IEBAIGNsYXNz
IE5vZGUgOiBwdWJsaWMgRXZlbnRUYXJnZXQgewogICAgIHZvaWQgdXBkYXRlQW5jZXN0b3JDb25u
ZWN0ZWRTdWJmcmFtZUNvdW50Rm9ySW5zZXJ0aW9uKCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoQ1NT
X1NFTEVDVE9SX0pJVCkKLSAgICBzdGF0aWMgcHRyZGlmZl90IG5vZGVGbGFnc01lbW9yeU9mZnNl
dCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihOb2RlLCBtX25vZGVGbGFncyk7IH0KLSAgICBz
dGF0aWMgcHRyZGlmZl90IHJhcmVEYXRhTWVtb3J5T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09G
RlNFVE9GKE5vZGUsIG1fZGF0YS5tX3JhcmVEYXRhKTsgfQogICAgIHN0YXRpYyBpbnQzMl90IGZs
YWdJc1RleHQoKSB7IHJldHVybiBJc1RleHRGbGFnOyB9CiAgICAgc3RhdGljIGludDMyX3QgZmxh
Z0lzRWxlbWVudCgpIHsgcmV0dXJuIElzRWxlbWVudEZsYWc7IH0KICAgICBzdGF0aWMgaW50MzJf
dCBmbGFnSXNIVE1MKCkgeyByZXR1cm4gSXNIVE1MRmxhZzsgfQpAQCAtNTc3LDQ3ICs2MTcsNiBA
QCBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKICNlbmRpZiAvLyBFTkFCTEUoQ1NT
X1NFTEVDVE9SX0pJVCkKIAogcHJvdGVjdGVkOgotICAgIGVudW0gTm9kZUZsYWdzIHsKLSAgICAg
ICAgSXNUZXh0RmxhZyA9IDEsCi0gICAgICAgIElzQ29udGFpbmVyRmxhZyA9IDEgPDwgMSwKLSAg
ICAgICAgSXNFbGVtZW50RmxhZyA9IDEgPDwgMiwKLSAgICAgICAgSXNTdHlsZWRFbGVtZW50Rmxh
ZyA9IDEgPDwgMywKLSAgICAgICAgSXNIVE1MRmxhZyA9IDEgPDwgNCwKLSAgICAgICAgSXNTVkdG
bGFnID0gMSA8PCA1LAotICAgICAgICBDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCA3
LAotICAgICAgICBJbkRvY3VtZW50RmxhZyA9IDEgPDwgOCwKLSAgICAgICAgSXNMaW5rRmxhZyA9
IDEgPDwgOSwKLSAgICAgICAgSXNVc2VyQWN0aW9uRWxlbWVudCA9IDEgPDwgMTAsCi0gICAgICAg
IEhhc1JhcmVEYXRhRmxhZyA9IDEgPDwgMTEsCi0gICAgICAgIElzRG9jdW1lbnRGcmFnbWVudEZs
YWcgPSAxIDw8IDEyLAotCi0gICAgICAgIC8vIFRoZXNlIGJpdHMgYXJlIHVzZWQgYnkgZGVyaXZl
ZCBjbGFzc2VzLCBwdWxsZWQgdXAgaGVyZSBzbyB0aGV5IGNhbgotICAgICAgICAvLyBiZSBzdG9y
ZWQgaW4gdGhlIHNhbWUgbWVtb3J5IHdvcmQgYXMgdGhlIE5vZGUgYml0cyBhYm92ZS4KLSAgICAg
ICAgSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAxIDw8IDEzLCAvLyBFbGVtZW50Ci0K
LSAgICAgICAgU3R5bGVDaGFuZ2VNYXNrID0gMSA8PCBub2RlU3R5bGVDaGFuZ2VTaGlmdCB8IDEg
PDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMSkgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlm
dCArIDIpLAotICAgICAgICBJc0VkaXRpbmdUZXh0T3JVbmRlZmluZWRDdXN0b21FbGVtZW50Rmxh
ZyA9IDEgPDwgMTcsCi0gICAgICAgIEhhc0ZvY3VzV2l0aGluID0gMSA8PCAxOCwKLSAgICAgICAg
SGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAxOSwKLSAgICAgICAgSGFzQ3Vz
dG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjAsCi0gICAgICAgIEhhc0V2ZW50
VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIxLAotICAgICAgICBJc0N1c3RvbUVsZW1lbnQgPSAxIDw8
IDIyLAotICAgICAgICBJc0luU2hhZG93VHJlZUZsYWcgPSAxIDw8IDIzLAotICAgICAgICBJc01h
dGhNTEZsYWcgPSAxIDw8IDI0LAotCi0gICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hp
bGRSdWxlc0ZsYWcgPSAxIDw8IDI1LAotICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlMYXN0Q2hp
bGRSdWxlc0ZsYWcgPSAxIDw8IDI2LAotICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlIb3ZlclJ1
bGVzRmxhZyA9IDEgPDwgMjcsCi0KLSAgICAgICAgRGlyZWN0Q2hpbGROZWVkc1N0eWxlUmVjYWxj
RmxhZyA9IDEgPDwgMjgsCi0gICAgICAgIEFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHlsZSA9
IDEgPDwgMjksCi0gICAgICAgIFN0eWxlSXNBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nID0gMSA8
PCAzMCwKLQotICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8PCAzMSwK
LQotICAgICAgICBEZWZhdWx0Tm9kZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZs
YWcKLSAgICB9OwotCiAgICAgYm9vbCBnZXRGbGFnKE5vZGVGbGFncyBtYXNrKSBjb25zdCB7IHJl
dHVybiBtX25vZGVGbGFncyAmIG1hc2s7IH0KICAgICB2b2lkIHNldEZsYWcoYm9vbCBmLCBOb2Rl
RmxhZ3MgbWFzaykgY29uc3QgeyBtX25vZGVGbGFncyA9IChtX25vZGVGbGFncyAmIH5tYXNrKSB8
ICgtKGludDMyX3QpZiAmIG1hc2spOyB9IAogICAgIHZvaWQgc2V0RmxhZyhOb2RlRmxhZ3MgbWFz
aykgY29uc3QgeyBtX25vZGVGbGFncyB8PSBtYXNrOyB9IApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCmluZGV4IDEx
ZDFlNmYzNjIzZDAxMDM3OTYzZjEyY2NjYzA2OGVlNGU1MDFlYmIuLjRjZTVhODRlM2Y0MGZmODBk
NzBhNzg0NDFlMzIwODAwNDc2MmYzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKQEAgLTQ5LDcgKzQ5LDcg
QEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgbm9kZVR5cGU7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHBhcmVudE5vZGU7CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIE5vZGVMaXN0IGNoaWxkTm9kZXM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IGZp
cnN0Q2hpbGQ7CisgICAgW0RPTUpJVF0gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IGZpcnN0Q2hp
bGQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IGxhc3RDaGlsZDsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZT8gcHJldmlvdXNTaWJsaW5nOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBOb2RlPyBuZXh0U2libGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNDdkMjk0ZGQ0OTVh
MzEzN2Q3NmZmMDg4NmVmNTEzYjdiZmM0OGVlNi4uMmMyMTliNWRhNzQ3NTlkNDIwMzE5ZDRhYjhh
ZGNmMGNhZDI5YzgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTE0OSw2ICsxNDksNyBAQCBz
ZXQoV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9jb2xsZWN0b3IvaGFuZGxlcyIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RmZyIKICAg
ICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Rpc2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2RvbWppdCIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2hlYXAiCiAgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnRlcnByZXRlciIKICAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2ppdCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290357</attachid>
            <date>2016-09-30 11:37:21 -0700</date>
            <delta_ts>2016-10-03 02:41:53 -0700</delta_ts>
            <desc>Prototype rev8</desc>
            <filename>bug-162544-20160930113417.patch</filename>
            <type>text/plain</type>
            <size>158051</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YzI5ZjVkOGZhNTE1ZjA0MjRhZmNkNTEzZWI1ZDFmZDE1ODZlYzZiLi44NjRjNjZmYTY4M2ViNmM2
OGJkMTk4NmJhNzU0OTIyZTJiNGRjZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxODQgQEAKKzIwMTYtMDktMzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0RhdGFGb3JtYXQuaDoKKyAgICAgICAgKiBieXRlY29k
ZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2spOgorICAgICAgICAqIGJ5dGVjb2Rl
L0dldEJ5SWRWYXJpYW50LmNwcDoKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OkdldEJ5
SWRWYXJpYW50KToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6Om9wZXJhdG9yPSk6Cisg
ICAgICAgIChKU0M6OkdldEJ5SWRWYXJpYW50OjphdHRlbXB0VG9NZXJnZSk6CisgICAgICAgIChK
U0M6OkdldEJ5SWRWYXJpYW50OjpkdW1wSW5Db250ZXh0KToKKyAgICAgICAgKiBieXRlY29kZS9H
ZXRCeUlkVmFyaWFudC5oOgorICAgICAgICAoSlNDOjpHZXRCeUlkVmFyaWFudDo6ZG9tSklUKToK
KyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmludHJpbnNpYyk6IERlbGV0ZWQuCisgICAg
ICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpBY2Nl
c3NDYXNlOjpnZXQpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpjbG9uZSk6CisgICAgICAg
ICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2Fz
ZTo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6UmFyZURhdGE6OlJhcmVEYXRh
KToKKyAgICAgICAgKiBieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHA6CisgICAgICAgIChKU0M6
OmR1bXBTcGVjdWxhdGlvbik6CisgICAgICAgIChKU0M6OnNwZWN1bGF0aW9uRnJvbVN0cnVjdHVy
ZSk6CisgICAgICAgICogYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaDoKKyAgICAgICAgKEpTQzo6
aXNET01Ob2RlU3BlY3VsYXRpb24pOgorICAgICAgICAoSlNDOjppc0RPTUVsZW1lbnRTcGVjdWxh
dGlvbik6CisgICAgICAgIChKU0M6OmlzRE9NRG9jdW1lbnRXcmFwcGVyU3BlY3VsYXRpb24pOgor
ICAgICAgICAqIGJ5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaDoKKyAgICAgICAgKEpTQzo6VmFsdWVS
ZWNvdmVyeTo6ZGlzcGxhY2VkSW5KU1N0YWNrKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RI
ZWFwLmg6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46
OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVET01KSVRHZXR0ZXIpOgor
ICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVHZXRCeUlkKToKKyAgICAg
ICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUp
OgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyc0V4aXRTdGF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6Y2xvYmJlcnNFeGl0U3RhdGUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAg
ICogZGZnL0RGR0dlbmVyYXRpb25JbmZvLmg6CisgICAgICAgIChKU0M6OkRGRzo6R2VuZXJhdGlv
bkluZm86OmluaXRPcGFxdWVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpHZW5lcmF0aW9u
SW5mbzo6ZmlsbE9wYXF1ZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpERkc6OkdlbmVyYXRpb25J
bmZvOjppbml0U3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6R2VuZXJhdGlv
bkluZm86OmZpbGxTdG9yYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6Omhhc09wYXF1ZVBvaW50ZXJSZXN1bHQpOgorICAgICAg
ICAoSlNDOjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZURPTU5vZGUpOgorICAgICAgICAoSlND
OjpERkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZURPTUVsZW1lbnQpOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcik6CisgICAgICAgIChK
U0M6OkRGRzo6Tm9kZTo6aGFzT3BhcXVlUG9pbnRlck9mZnNldDMyKToKKyAgICAgICAgKEpTQzo6
REZHOjpOb2RlOjpvcGFxdWVQb2ludGVyT2Zmc2V0MzIpOgorICAgICAgICAoSlNDOjpERkc6Ok5v
ZGU6Omhhc1dvcmxkSXNOb3JtYWxPZmZzZXQzMik6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6
d29ybGRJc05vcm1hbE9mZnNldDMyKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNOb2Rl
RmxhZ3NPcGVyYW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpub2RlRmxhZ3NPcGVyYW5k
KToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpoYXNTbG93VG9KU09wZXJhdGlvbik6CisgICAg
ICAgIChKU0M6OkRGRzo6Tm9kZTo6c2xvd1RvSlNPcGVyYXRpb24pOgorICAgICAgICAoSlNDOjpE
Rkc6Ok5vZGU6Omhhc1N0b3JhZ2VSZXN1bHQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6OnNob3VsZFNwZWN1bGF0ZUFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZH
Tm9kZUZsYWdzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkdW1wTm9kZUZsYWdzKToKKyAgICAg
ICAgKiBkZmcvREZHTm9kZUZsYWdzLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2Fub25pY2FsUmVz
dWx0UmVwcmVzZW50YXRpb24pOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAg
ICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZn
L0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTYWZlVG9FeGVjdXRlRWRn
ZTo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6c2lsZW50U2F2ZVBsYW5Gb3JHUFIpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpmaWxsT3BhcXVlUG9pbnRlcik6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNoZWNrR2VuZXJhdGVkVHlwZUZvclRvSW50MzIpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tOb2RlRmxhZ3MpOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlTG9hZE9wYXF1ZVBvaW50ZXIpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0RE9NV3JhcHBlZCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb0RPTVdyYXBwZXIpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01Ob2RlKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRWxlbWVudCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZURPTURvY3VtZW50V3Jh
cHBlcik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZSk6Cisg
ICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnNwaWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
b3BhcXVlUG9pbnRlclJlc3VsdCk6CisgICAgICAgIChKU0M6OkRGRzo6T3BhcXVlUG9pbnRlck9w
ZXJhbmQ6Ok9wYXF1ZVBvaW50ZXJPcGVyYW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpPcGFxdWVQ
b2ludGVyT3BlcmFuZDo6fk9wYXF1ZVBvaW50ZXJPcGVyYW5kKToKKyAgICAgICAgKEpTQzo6REZH
OjpPcGFxdWVQb2ludGVyT3BlcmFuZDo6ZWRnZSk6CisgICAgICAgIChKU0M6OkRGRzo6T3BhcXVl
UG9pbnRlck9wZXJhbmQ6Om5vZGUpOgorICAgICAgICAoSlNDOjpERkc6Ok9wYXF1ZVBvaW50ZXJP
cGVyYW5kOjpncHIpOgorICAgICAgICAoSlNDOjpERkc6Ok9wYXF1ZVBvaW50ZXJPcGVyYW5kOjp1
c2UpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpzdG9yYWdlUmVzdWx0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUludDMySW50ZXJuYWwpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQ2VsbCk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVCb29sZWFuKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpmaWxsSlNWYWx1ZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZp
bGxTcGVjdWxhdGVJbnQzMkludGVybmFsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpmaWxsU3BlY3VsYXRlQm9vbGVhbik6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNl
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlOjppZGVudGlm
eVJlZHVuZGFudFN0cnVjdHVyZUNoZWNrcyk6CisgICAgICAgIChKU0M6OkRGRzo6VHlwZUNoZWNr
SG9pc3RpbmdQaGFzZTo6aWRlbnRpZnlSZWR1bmRhbnRBcnJheUNoZWNrcyk6CisgICAgICAgICog
ZGZnL0RGR1VzZUtpbmQuY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAg
ICAgKiBkZmcvREZHVXNlS2luZC5oOgorICAgICAgICAoSlNDOjpERkc6OnR5cGVGaWx0ZXJGb3Ip
OgorICAgICAgICAoSlNDOjpERkc6OmlzQ2VsbCk6CisgICAgICAgICogZG9taml0L0RPTUpJVEdy
YXBoLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50
Q3VzdG9tLmguCisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OmVkZ2VGaWx0ZXIpOgorICAg
ICAgICAqIGRvbWppdC9ET01KSVRHcmFwaC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmguCisgICAgICAgIChKU0M6OkRPTUpJVDo6R3Jh
cGg6OkdyYXBoKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpHcmFwaDo6fkdyYXBoKToKKyAgICAg
ICAgKEpTQzo6RE9NSklUOjpHcmFwaDo6c3BlY3VsYXRlZENoaWxkVHlwZSk6CisgICAgICAgIChK
U0M6OkRPTUpJVDo6R3JhcGg6OmdldHRlcik6CisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6
OnNldHRlcik6CisgICAgICAgICogZG9taml0L0RPTUpJVElSLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmguCisgICAgICAgIChKU0M6
OkRPTUpJVDo6SVI6OnRoaXNWYWx1ZSk6CisgICAgICAgICogZG9taml0L0RPTUpJVElSLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaC4K
KyAgICAgICAgKEpTQzo6RE9NSklUOjpJUjo6SVIpOgorICAgICAgICAqIGRvbWppdC9ET01KSVRJ
UkJ1aWxkZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVt
ZW50Q3VzdG9tLmguCisgICAgICAgIChKU0M6OkRPTUpJVDo6SVJCdWlsZGVyOjphcHBlbmQpOgor
ICAgICAgICAoSlNDOjpET01KSVQ6OklSQnVpbGRlcjo6aXIpOgorICAgICAgICAqIGZ0bC9GVExB
YnN0cmFjdEhlYXBSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNv
bXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGls
ZUxvYWRPcGFxdWVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9C
Mzo6Y29tcGlsZUNoZWNrTm9kZUZsYWdzKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZUdldERPTVdyYXBwZWQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlVG9ET01XcmFwcGVyKToKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9CMzo6bG93T3BhcXVlUG9pbnRlcik6CisgICAgICAgIChKU0M6OkZUTDo6
REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OmlzTm90RE9NTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmlzTm90RE9NRWxlbWVudCk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OnNwZWN1bGF0ZURPTU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpzcGVjdWxhdGVET01FbGVtZW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6
Okxvd2VyREZHVG9CMzo6c3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKToKKyAgICAgICAgKEpT
Qzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6c2V0T3BhcXVlUG9pbnRlcik6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVVbnJlYWNoYWJsZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZVNldE9iamVj
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNldFN0
b3JhZ2UpOiBEZWxldGVkLgorICAgICAgICAqIGhlYXAvV2Vha0ltcGwuaDoKKyAgICAgICAgKEpT
Qzo6V2Vha0ltcGw6Om9mZnNldE9mSlNWYWx1ZSk6CisgICAgICAgIChKU0M6OldlYWtJbXBsOjpv
ZmZzZXRPZldlYWtIYW5kbGVPd25lcik6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5o
OgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmRE9NTm9kZSk6CisgICAg
ICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RET01Ob2RlKToKKyAgICAgICAg
KEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZkRPTUVsZW1lbnQpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90RE9NRWxlbWVudCk6CisgICAgICAgIChKU0M6
OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAq
IGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogaml0L1JlcGF0Y2guY3BwOgorICAgICAg
ICAoSlNDOjp0cnlDYWNoZUdldEJ5SUQpOgorICAgICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0dGVy
U2V0dGVyLmg6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoKKyAgICAgICAgKiBydW50
aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpmaWxsQ3VzdG9tR2V0dGVy
UHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6Okhhc2hUYWJsZVZhbHVlOjpkb21KSVQpOgor
ICAgICAgICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0eVNsb3RGcm9tVGFibGUpOgorICAgICAgICAo
SlNDOjpwdXRFbnRyeSk6CisgICAgICAgIChKU0M6OnJlaWZ5U3RhdGljUHJvcGVydHkpOgorICAg
ICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xv
dDo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90OjpzZXRDYWNoZWFibGVDdXN0
b20pOgorCiAyMDE2LTA5LTI4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlciB3aWxsIHJldHVybiBgbnVsbGAg
d2hlbiBpdCBzaG91bGQgbm90CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhN2E1NTc1YTQ2ZDk1Y2ZlNmNhYzA1Mzg1MWM1Zjdl
OWMxYTYzMjMuLmNjYTEzZGVkNmY2NDFjYmQyM2M5ZGQwYWVmMzM0YjAxMjhkOTczOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTYtMDktMzAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJ
VAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYv
U3RkTGliRXh0cmFzLmg6CisKIDIwMTYtMDktMjggIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlLWVuYWJsZSBTdHJpbmdWaWV3IGxpZmUtY3ljbGUgY2hlY2tpbmcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYzAzNzU1OTI5MGE4OTA4YTg0ZTVmZGMxYzMyZmIwMjFlM2ViNGNkOC4u
NmMzYmMyNTU5Y2VjODFhMzFmNzVmNzIxZTNiM2Q5MDZkN2E4M2NiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQzIEBACisyMDE2LTA5LTMwICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgorCisgICAgICAgIFtCaW5kaW5nXSBJbnRyb2R1Y2luZyBET00gYmluZGluZyBKSVQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU0NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRm9yd2Fy
ZGluZ0hlYWRlcnMvZG9taml0L0RPTUpJVEdyYXBoLmg6IEFkZGVkLgorICAgICAgICAqIFBsYXRm
b3JtRWZsLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFBs
YXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdyYXBwZXI6Om9mZnNldE9m
V3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdyYXBwZXI6OndyYXBwZWQpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uaDoKKyAgICAgICAg
KFdlYkNvcmU6OmpzRG9jdW1lbnRDYXN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0VsZW1l
bnRDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6OmpzRWxlbWVudENhc3QpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oOgorICAgICAgICAoV2ViQ29yZTo6anNOb2RlQ2Fz
dCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6Om9mZnNldE9mV3JhcHBlcik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZXRKU0NBdHRyaWJ1
dGVzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdl
bmVyYXRlUHJvcGVydGllc0hhc2hUYWJsZSk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSk6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oOgorICAgICAgICAq
IGRvbS9Db250YWluZXJOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjps
YXN0Q2hpbGRNZW1vcnlPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6
bGFzdENoaWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6bm9kZUZsYWdzTWVtb3J5T2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OnJhcmVEYXRhTWVtb3J5T2Zmc2V0KToKKyAgICAgICAgKiBkb20vTm9kZS5pZGw6CisKIDIw
MTYtMDktMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9w
IGZpcnN0ICdzdGF0ZScgcGFyYW1ldGVyIHRvIEpTRE9NV2luZG93Ojp0b1dyYXBwZWQoKSAvIEpT
RXZlbnRUYXJnZXQ6OnRvV3JhcHBlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzI3YjI4OGY4M2U3Y2I5OTBj
NTNkMTE0OGU1YWZmNTU3YjQzNzVlMi4uMzQ2NWY4NjFlNTE0MDNlZTBiYzEyZDdjNThkYjlmZDdl
YzlhYWEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE2LTA5LTMwICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtCaW5kaW5nXSBJbnRy
b2R1Y2luZyBET00gYmluZGluZyBKSVQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MjU0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisKIDIwMTYtMDktMjggIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXS1NoYXJlZEFQSUNhc3Qg
c2hvdWxkIG5vdCB3YXJuIGFib3V0IGFjY2VwdGFibGUgY3VzdG9tIGNvbnRleHQgbWVudSB0YWcg
dmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYTk4ZDg2NDc4OWM5
NjMyOTAzN2NhMmExM2RhZDRiNzg0ODMyYTNmNi4uNDBlYzIxMWJmM2UxNTg0OWI2MGYxYjVjZTI1
ZWU0NDFhYjI1Yjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYs
NiArMTYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9ieXRlY29tcGlsZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZmciCisgICAgIiR7
SkFWQVNDUklQVENPUkVfRElSfS9kb21qaXQiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9k
aXNhc3NlbWJsZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIvdWRp
czg2IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZnRsIgpAQCAtNDA1LDYgKzQwNiw5IEBA
IHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgZGlzYXNzZW1ibGVyL3VkaXM4Ni91ZGlz
ODZfc3luLWludGVsLmMKICAgICBkaXNhc3NlbWJsZXIvdWRpczg2L3VkaXM4Nl9zeW4uYwogCisg
ICAgZG9taml0L0RPTUpJVEdyYXBoLmNwcAorICAgIGRvbWppdC9ET01KSVRJUi5jcHAKKwogICAg
IGZ0bC9GVExBYnN0cmFjdEhlYXAuY3BwCiAgICAgZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuY3BwCiAgICAgZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAyOWZlYzJjZTlkZGVhYTNiOWZlODAyOWY1MDNjM2VjODNmMjYzMzBj
Li5mNzExZmM2NzUzOWUwYTI2MjU1MjkxMjhjNWIyYTc5NmU1OWUwNTY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzE2LDcgKzMxNiw3IEBACiAJCTBGMzNGQ0ZCMUMxNjI1QkUw
MDMyM0Y2NyAvKiBCM0NGRy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYzM0ZDRjkxQzE2MjVCRTAwMzIzRjY3IC8qIEIzQ0ZHLmggKi87IH07CiAJCTBG
MzNGQ0ZDMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0RvbWluYXRvcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzNGQ0ZBMUMxNjI1QkUwMDMyM0Y2NyAv
KiBCM0RvbWluYXRvcnMuaCAqLzsgfTsKIAkJMEYzNEIxNDkxNkQ0MjAxMDAwMUNEQTVBIC8qIERG
R1VzZUtpbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYzNEIxNDcxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwICovOyB9OwotCQkw
RjM0QjE0QTE2RDQyMDEzMDAxQ0RBNUEgLyogREZHVXNlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8q
IERGR1VzZUtpbmQuaCAqLzsgfTsKKwkJMEYzNEIxNEExNkQ0MjAxMzAwMUNEQTVBIC8qIERGR1Vz
ZUtpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTQ4MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzNzMwOEMxQzBCRDI5MTAwMDUyQkZB
IC8qIEIzUGhpQ2hpbGRyZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uY3Bw
ICovOyB9OwogCQkwRjM3MzA4RDFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNzMwOEIxQzBC
RDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uaCAqLzsgfTsKIAkJMEYzNzMwOEYxQzBDRDY4
NTAwMDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNzMwOEUxQzBDRDY4NTAw
MDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oICovOyB9OwpAQCAt
NTg3LDcgKzU4Nyw3IEBACiAJCTBGQTJDMTdCMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVy
VXRpbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZBMkMxNzkxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5jcHAgKi87IH07CiAJ
CTBGQTJDMTdDMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTJDMTdBMTdEN0NGODQwMDlE
MDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRkE1ODFCQTE1MEU5NTJDMDBCOUEyRDkgLyogREZHTm9kZUZs
YWdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
QTU4MUI3MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuY3BwICovOyB9OwotCQkwRkE1
ODFCQjE1MEU5NTMwMDBCOUEyRDkgLyogREZHTm9kZUZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkE1ODFCODE1MEU5NTJBMDBCOUEyRDkgLyog
REZHTm9kZUZsYWdzLmggKi87IH07CisJCTBGQTU4MUJCMTUwRTk1MzAwMEI5QTJEOSAvKiBERkdO
b2RlRmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQTU4MUI4MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkE1ODFCQzE1MEU5NTMwMDBC
OUEyRDkgLyogREZHTm9kZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQTU4MUI5MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlVHlwZS5oICov
OyB9OwogCQkwRkE3QThFQjE4QjQxM0M4MDA1MjM3MUQgLyogUmVnLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTdBOEU5MThCNDEzQzgwMDUyMzcx
RCAvKiBSZWcuY3BwICovOyB9OwogCQkwRkE3QThFQzE4QjQxM0M4MDA1MjM3MUQgLyogUmVnLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkE3QThFQTE4
QjQxM0M4MDA1MjM3MUQgLyogUmVnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTE0NDQsNyArMTQ0NCw3IEBACiAJCTg2RUM5REQwMTMyOERGODIw
MDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMDEzMjhERjgyMDAyQjJBRDcgLyogREZHT3BlcmF0aW9u
cy5oICovOyB9OwogCQk4NkVDOUREMTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5r
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURD
MTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5rLmggKi87IH07CiAJCTg2RUM5REQy
MTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMjEzMjhERjgyMDAyQjJBRDcg
LyogREZHU3BlY3VsYXRpdmVKSVQuY3BwICovOyB9OwotCQk4NkVDOUREMzEzMjhERjgyMDAyQjJB
RDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2RUM5REMzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2
ZUpJVC5oICovOyB9OworCQk4NkVDOUREMzEzMjhERjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRp
dmVKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
RUM5REMzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2RUNBM0VBMTMyREVGMUMw
MDJCMkFENyAvKiBERkdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NkVDQTNFOTEzMkRFRjFDMDAyQjJBRDcgLyogREZHTm9kZS5oICovOyB9Owog
CQk4NkVDQTNGQTEzMkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQ0EzRjkxMzJERjI1QTAwMkIy
QUQ3IC8qIERGR1Njb3JlQm9hcmQuaCAqLzsgfTsKIAkJODZGM0VFQkQxNjhDREU5MzAwNzdCOTJB
IC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCOTE2OENDRjc1MDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNr
RnVuY3Rpb24uaCAqLzsgfTsKQEAgLTIwNjksNiArMjA2OSw3IEBACiAJCUUzMzYzN0E1MUI2MzIy
MDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzYzN0EzMUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0
T2JqZWN0LmNwcCAqLzsgfTsKIAkJRTMzNjM3QTYxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RP
YmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
MzYzN0E0MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMzQjNFMjYxQjdBQkQ3NTAwNDhE
QjJFIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzM0IzRTI1MUI3QUJENzUwMDQ4REIy
RSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmggKi87IH07CisJCUUzM0I5
OTk2MUQ5RDgyQkYwMDI2Rjk1MCAvKiBET01KSVRJUi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRGQUUyQzFEOUQ4MjYzMDBEMTAyQzggLyogRE9N
SklUSVIuY3BwICovOyB9OwogCQlFMzNFOEQxQzFCOTAxM0MzMDAzNDZCNTIgLyogSlNOYXRpdmVT
dGRGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzNFOEQxQTFCOTAxM0MzMDAzNDZCNTIgLyogSlNOYXRpdmVTdGRGdW5jdGlvbi5jcHAg
Ki87IH07CiAJCUUzM0U4RDFEMUI5MDEzQzMwMDM0NkI1MiAvKiBKU05hdGl2ZVN0ZEZ1bmN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzNFOEQx
QjFCOTAxM0MzMDAzNDZCNTIgLyogSlNOYXRpdmVTdGRGdW5jdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzM0U4RDIwMUI5MDEzREUwMDM0
NkI1MiAvKiBOYXRpdmVTdGRGdW5jdGlvbkNlbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzRThEMUUxQjkwMTNERTAwMzQ2QjUyIC8qIE5hdGl2
ZVN0ZEZ1bmN0aW9uQ2VsbC5jcHAgKi87IH07CkBAIC0yMDk4LDYgKzIwOTksMTAgQEAKIAkJRTNE
MjM5QzkxQjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDIzOUM3MUI4MjlDMUMwMEJC
RUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNFRjg4NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTNFRjg4NzIxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRl
cmF0b3IuY3BwICovOyB9OwogCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0ZG
NzUzMjFEOUNFQTE1MDBDN0UxNkQgLyogRE9NSklUR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGRjc1MkUxRDlDRUExMjAwQzdFMTZEIC8q
IERPTUpJVEdyYXBoLmNwcCAqLzsgfTsKKwkJRTNGRjc1MzMxRDlDRUExODAwQzdFMTZEIC8qIERP
TUpJVEdyYXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFM0ZGNzUyRjFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGguaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0ZGNzUzNDFEOUNFQTFFMDBD
N0UxNkQgLyogRE9NSklUSVIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzRkY3NTMwMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRJUi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzRkY3NTM1MUQ5Q0VB
MjUwMEM3RTE2RCAvKiBET01KSVRJUkJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRkY3NTMxMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRJ
UkJ1aWxkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1NTEy
RUYyNzcyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgKi87IH07CiAJCUU0OURD
MTZDMTJFRjI5NEUwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1MTEyRUYyNzIyMDAxODRB
MUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUU0OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQ
cm92aWRlckNhY2hlSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTQ5REMxNDkxMkVGMjYxQTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJ
dGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTQzNzEsNiArNDM3Niw3IEBACiAJCUUzM0Y1MDgzMUI4NDM3QTAwMDQxMzg1NiAvKiBKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTMzRjUwODYxQjg0NDlFRjAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3Iu
bHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW50ZXJuYWxQcm9taXNl
Q29uc3RydWN0b3IubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzM0Y1MDg4
MUI4NDRBMUEwMDQxMzg1NiAvKiBJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEludGVybmFsUHJvbWlzZUNvbnN0cnVj
dG9yLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzRGQUUyQzFEOUQ4MjYzMDBE
MTAyQzggLyogRE9NSklUSVIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRE9NSklUSVIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU0NjIyQTFC
NjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb25zdHJ1Y3RBYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzNTVGMzUwMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVMb2FkZXJQcm90b3R5cGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlTG9hZGVyUHJv
dG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1NUYzNTExQjdEQzg1
MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRlclByb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNb2R1bGVMb2FkZXJQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQzOTMsNiArNDM5OSwxMCBAQAogCQlFM0QyNjQyQTFEMzhDMDQyMDAwQkUx
NzQgLyogQnl0ZWNvZGVSZXdyaXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCeXRlY29kZVJld3JpdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRUY4
ODcyMUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGODg3MzFCNjZERjIzMDAzRjI2Q0Ig
LyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUzRkY3NTJFMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHcmFwaC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01KSVRHcmFwaC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzRkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHcmFw
aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRHcmFwaC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0ZGNzUzMDFEOUNFQTEyMDBDN0UxNkQgLyogRE9N
SklUSVIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSVIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNGRjc1MzExRDlDRUExMjAwQzdFMTZEIC8qIERP
TUpJVElSQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRJ
UkJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5REMxNDkxMkVGMjYx
QTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU0OURDMTUxMTJFRjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVy
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5REMxNTUxMkVGMjc3MjAw
MTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC00NjUwLDYgKzQ2NjAsNyBAQAogCQkJCTY1MEZERjhEMDlEMEZDQTcwMDc2
OUU1NCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3
IC8qIGRmZyAqLywKIAkJCQkwRkY0MjcyRTE1OEVCQ0NFMDA0Q0I5RkYgLyogZGlzYXNzZW1ibGVy
ICovLAorCQkJCUUzRkY3NTJEMUQ5Q0U5RUEwMEM3RTE2RCAvKiBkb21qaXQgKi8sCiAJCQkJMDg2
N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZyYW1ld29ya3MgKi8sCiAJCQkJMEZFQTA5RkMxNzA1
MTM3RjAwQkI3MjJDIC8qIGZ0bCAqLywKIAkJCQkxNDJFMzEyQTEzNEZGMEE2MDBBRkFEQjUgLyog
aGVhcCAqLywKQEAgLTcxNDksNiArNzE2MCwxOCBAQAogCQkJcGF0aCA9IGNvZGVnZW47CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFM0ZGNzUyRDFEOUNFOUVBMDBDN0UxNkQg
LyogZG9taml0ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJ
CQlFM0ZGNzUyRTFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGguY3BwICovLAorCQkJCUUz
RkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHcmFwaC5oICovLAorCQkJCUUzNEZBRTJD
MUQ5RDgyNjMwMEQxMDJDOCAvKiBET01KSVRJUi5jcHAgKi8sCisJCQkJRTNGRjc1MzAxRDlDRUEx
MjAwQzdFMTZEIC8qIERPTUpJVElSLmggKi8sCisJCQkJRTNGRjc1MzExRDlDRUExMjAwQzdFMTZE
IC8qIERPTUpJVElSQnVpbGRlci5oICovLAorCQkJKTsKKwkJCXBhdGggPSBkb21qaXQ7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogLyogRW5kIFBCWEdyb3VwIHNlY3Rpb24gKi8K
IAogLyogQmVnaW4gUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtNzE5Niw2ICs3
MjE5LDcgQEAKIAkJCQkwRkVDODU3NzFCREFDREM3MDA4MEZGNzQgLyogQWlyRnJlcXVlbnRlZEJs
b2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU3OTFCREFDREM3MDA4MEZGNzQgLyogQWly
R2VuZXJhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTdBMUJEQUNEQzcwMDgwRkY3NCAv
KiBBaXJHZW5lcmF0aW9uQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNGRjc1MzUxRDlD
RUEyNTAwQzdFMTZEIC8qIERPTUpJVElSQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
Qzg1N0MxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckhhbmRsZUNhbGxlZVNhdmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVDODU3RTFCREFDREM3MDA4MEZGNzQgLyogQWlySW5zZXJ0aW9uU2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU4MDFCREFDREM3MDA4MEZGNzQgLyogQWlySW5zdC5o
IGluIEhlYWRlcnMgKi8sCkBAIC03NTkzLDYgKzc2MTcsNyBAQAogCQkJCTBGQzIwQ0JBMTg1NTZB
MzUwMEM5RTk1NCAvKiBERkdTU0FMb3dlcmluZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjlGQjRGNTE3RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY0RjI5RTAxOEI2QUQxQzAwNTdCQzE1IC8qIERGR1N0YXRpY0V4ZWN1dGlv
bkNvdW50RXN0aW1hdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0ZGNzUzMzFEOUNF
QTE4MDBDN0UxNkQgLyogRE9NSklUR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUUzMjY0
MUIwNUFCMDQwMDgwMUVENSAvKiBERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDMjBDQjYxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVk
dWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjM5NDc4MTVEQ0UzNEIwMDZBNTk3
QyAvKiBERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTgwNTAs
NiArODA3NSw3IEBACiAJCQkJOTYwMDk3QTYwRUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjU0Njc3MTRGNTlCNUMwMDJDMjk4OSAvKiBMYXp5T3Bl
cmFuZFZhbHVlUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlEQTAwQjAxQkQ1OTk0RTAw
RjQ1NzVDIC8qIGxhenl3cml0ZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQlFM0ZGNzUzNDFEOUNF
QTFFMDBDN0UxNkQgLyogRE9NSklUSVIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDMxMEUx
NkY1Q0QwMEIzNDQ2MCAvKiBMZXhlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNGNDBFOTMxRDVB
NEFCMzAwOTlBMUI2IC8qIFdBU01CM0lSR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzUyRTBFMTZGQ0UxMDBCMzQ0NjAgLyogTGV4ZXIubHV0LmggaW4gSGVhZGVycyAqLywKQEAg
LTkzNzAsNiArOTM5Niw3IEBACiAJCQkJMEYyNEU1NEMxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9w
ZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1NTEzQTgxRDVBNjhDRDAwQzMyQkQ4
IC8qIEZyZWVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFOTlCMjRBMUMyNEMzRDcwMEM4
MjE1OSAvKiBKSVROZWdHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTMzQjk5OTYx
RDlEODJCRjAwMjZGOTUwIC8qIERPTUpJVElSLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2Q0M4
NUM0MEVFN0E4OTQwMDI4ODY4MiAvKiBKSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBN0MxRThFNDExMkU3MkVGMDBBMzdGOTggLyogSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI0MTU4NDFENzhGQjRDMDBERjhEMDkgLyogQXJy
YXlDb252ZW50aW9ucy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk0NTksNiArOTQ4Niw3IEBACiAJ
CQkJMTQ4NzRBRTUxNUVCREU0QTAwMkUzNTg3IC8qIEpTU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTdDMEM0QUQxNjgxMDY3RTAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGOTE5RDEwMTU3RjMzMjkwMDRBNEU3RCAvKiBKU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzRkY3NTMyMUQ5Q0VBMTUwMEM3RTE2
RCAvKiBET01KSVRHcmFwaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEQzE3RTgxNzFDOUM5MUQ2
MDA4QTZBQjMgLyogU2hhZG93Q2hpY2tlbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzI5OUQ5
RDE3RDEyODM3MDA1RjVGRjkgLyogSlNTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc5MERE
NkYxODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0RhdGFGb3JtYXQuaAppbmRleCAyMmM2NDky
MjY3MjllZmIxMDE3NjgyYzFmZTE0YWMwOGMyN2NlM2MyLi5jMGY2Y2Q4M2Y0Y2U3Nzk5OTk2ZjUw
NmNlYjU0YWVjNGFkM2VlNTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvRGF0YUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9E
YXRhRm9ybWF0LmgKQEAgLTQ0LDcgKzQ0LDggQEAgZW51bSBEYXRhRm9ybWF0IHsKICAgICBEYXRh
Rm9ybWF0Qm9vbGVhbiA9IDUsCiAgICAgRGF0YUZvcm1hdENlbGwgPSA2LAogICAgIERhdGFGb3Jt
YXRTdG9yYWdlID0gNywKLSAgICBEYXRhRm9ybWF0SlMgPSA4LAorICAgIERhdGFGb3JtYXRPcGFx
dWVQb2ludGVyID0gOCwKKyAgICBEYXRhRm9ybWF0SlMgPSAxNiwKICAgICBEYXRhRm9ybWF0SlNJ
bnQzMiA9IERhdGFGb3JtYXRKUyB8IERhdGFGb3JtYXRJbnQzMiwKICAgICBEYXRhRm9ybWF0SlNE
b3VibGUgPSBEYXRhRm9ybWF0SlMgfCBEYXRhRm9ybWF0RG91YmxlLAogICAgIERhdGFGb3JtYXRK
U0NlbGwgPSBEYXRhRm9ybWF0SlMgfCBEYXRhRm9ybWF0Q2VsbCwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAppbmRleCAxNWIzYzgxM2NiOGJl
ODA3MzNlM2I0MTVmNmE5OGU3ZjlhYzhkZDRmLi40MTgyYjkxZDZmNzdjNGQxNDg5ODc2ZGJiMDgz
NzMwMDBmZWVmODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
R2V0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dl
dEJ5SWRTdGF0dXMuY3BwCkBAIC0zNyw2ICszNyw5IEBACiAjaW5jbHVkZSA8d3RmL0xpc3REdW1w
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CitjbGFzcyBHcmFwaDsK
K30KIAogYm9vbCBHZXRCeUlkU3RhdHVzOjphcHBlbmRWYXJpYW50KGNvbnN0IEdldEJ5SWRWYXJp
YW50JiB2YXJpYW50KQogewpAQCAtMjE1LDYgKzIxOCw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJ
ZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAg
ICAgICAgICBjYXNlIENvbXBsZXhHZXRTdGF0dXM6OklubGluZWFibGU6IHsKICAgICAgICAgICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtTdGF0dXM+IGNhbGxMaW5rU3RhdHVzOwogICAg
ICAgICAgICAgICAgIEpTRnVuY3Rpb24qIGludHJpbnNpY0Z1bmN0aW9uID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgICAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQgPSBudWxscHRyOwogCiAgICAgICAg
ICAgICAgICAgc3dpdGNoIChhY2Nlc3MudHlwZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBB
Y2Nlc3NDYXNlOjpMb2FkOgpAQCAtMjM0LDYgKzIzOCwxMiBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5
SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAogICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIEFjY2Vzc0Nhc2U6OkN1c3RvbUFjY2Vzc29y
R2V0dGVyOiB7CisgICAgICAgICAgICAgICAgICAgIGRvbUpJVCA9IGFjY2Vzcy5kb21KSVQoKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFkb21KSVQpCisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gR2V0QnlJZFN0YXR1cyhzbG93UGF0aFN0YXRlLCB0cnVlKTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGRlZmF1
bHQ6IHsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIHRvdGFsbHkg
c3dlZXQgdG8gc3VwcG9ydCBtb3JlIG9mIHRoZXNlIGF0IHNvbWUgcG9pbnQgaW4gdGhlCiAgICAg
ICAgICAgICAgICAgICAgIC8vIGZ1dHVyZS4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMzA1MgpAQCAtMjQ0LDcgKzI1NCw4IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJ
ZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAg
ICAgICAgICAgICAgR2V0QnlJZFZhcmlhbnQgdmFyaWFudCgKICAgICAgICAgICAgICAgICAgICAg
U3RydWN0dXJlU2V0KHN0cnVjdHVyZSksIGNvbXBsZXhHZXRTdGF0dXMub2Zmc2V0KCksCiAgICAg
ICAgICAgICAgICAgICAgIGNvbXBsZXhHZXRTdGF0dXMuY29uZGl0aW9uU2V0KCksIFdURk1vdmUo
Y2FsbExpbmtTdGF0dXMpLAotICAgICAgICAgICAgICAgICAgICBpbnRyaW5zaWNGdW5jdGlvbik7
CisgICAgICAgICAgICAgICAgICAgIGludHJpbnNpY0Z1bmN0aW9uLAorICAgICAgICAgICAgICAg
ICAgICBkb21KSVQpOwogCiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuYXBwZW5kVmFyaWFu
dCh2YXJpYW50KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoc2xv
d1BhdGhTdGF0ZSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0dldEJ5SWRWYXJpYW50LmNwcAppbmRleCBhODY5ZDRhMWM5NGU3ZTQ3NTczMTc0NGM3YjMwM2Q1
MDY1ZTBmNDMxLi5lMjcxNmE4YTEyOWM3M2I0ZWQ1Mzk3OTg1NjZlNTFhZGEzYmJjMWZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5jcHAK
QEAgLTM2LDEyICszNiwxNCBAQCBHZXRCeUlkVmFyaWFudDo6R2V0QnlJZFZhcmlhbnQoCiAgICAg
Y29uc3QgU3RydWN0dXJlU2V0JiBzdHJ1Y3R1cmVTZXQsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCwK
ICAgICBjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCYgY29uZGl0aW9uU2V0LAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0YXR1cz4gY2FsbExpbmtTdGF0dXMsCi0gICAgSlNG
dW5jdGlvbiogaW50cmluc2ljRnVuY3Rpb24pCisgICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVu
Y3Rpb24sCisgICAgRE9NSklUOjpHcmFwaCogZG9tSklUKQogICAgIDogbV9zdHJ1Y3R1cmVTZXQo
c3RydWN0dXJlU2V0KQogICAgICwgbV9jb25kaXRpb25TZXQoY29uZGl0aW9uU2V0KQogICAgICwg
bV9vZmZzZXQob2Zmc2V0KQogICAgICwgbV9jYWxsTGlua1N0YXR1cyhXVEZNb3ZlKGNhbGxMaW5r
U3RhdHVzKSkKICAgICAsIG1faW50cmluc2ljRnVuY3Rpb24oaW50cmluc2ljRnVuY3Rpb24pCisg
ICAgLCBtX2RvbUpJVChkb21KSVQpCiB7CiAgICAgaWYgKCFzdHJ1Y3R1cmVTZXQuc2l6ZSgpKSB7
CiAgICAgICAgIEFTU0VSVChvZmZzZXQgPT0gaW52YWxpZE9mZnNldCk7CkBAIC02NSw2ICs2Nyw3
IEBAIEdldEJ5SWRWYXJpYW50JiBHZXRCeUlkVmFyaWFudDo6b3BlcmF0b3I9KGNvbnN0IEdldEJ5
SWRWYXJpYW50JiBvdGhlcikKICAgICBtX2NvbmRpdGlvblNldCA9IG90aGVyLm1fY29uZGl0aW9u
U2V0OwogICAgIG1fb2Zmc2V0ID0gb3RoZXIubV9vZmZzZXQ7CiAgICAgbV9pbnRyaW5zaWNGdW5j
dGlvbiA9IG90aGVyLm1faW50cmluc2ljRnVuY3Rpb247CisgICAgbV9kb21KSVQgPSBvdGhlci5t
X2RvbUpJVDsKICAgICBpZiAob3RoZXIubV9jYWxsTGlua1N0YXR1cykKICAgICAgICAgbV9jYWxs
TGlua1N0YXR1cyA9IHN0ZDo6bWFrZV91bmlxdWU8Q2FsbExpbmtTdGF0dXM+KCpvdGhlci5tX2Nh
bGxMaW5rU3RhdHVzKTsKICAgICBlbHNlCkBAIC0xMDMsNiArMTA2LDkgQEAgYm9vbCBHZXRCeUlk
VmFyaWFudDo6YXR0ZW1wdFRvTWVyZ2UoY29uc3QgR2V0QnlJZFZhcmlhbnQmIG90aGVyKQogICAg
IGlmICghY2FuTWVyZ2VJbnRyaW5zaWNTdHJ1Y3R1cmVzKG90aGVyKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCisgICAgaWYgKG1fZG9tSklUICE9IG90aGVyLm1fZG9tSklUKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKICAgICBpZiAobV9jb25kaXRpb25TZXQuaXNFbXB0eSgpICE9IG90aGVy
Lm1fY29uZGl0aW9uU2V0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIApA
QCAtMTM4LDYgKzE0NCw4IEBAIHZvaWQgR2V0QnlJZFZhcmlhbnQ6OmR1bXBJbkNvbnRleHQoUHJp
bnRTdHJlYW0mIG91dCwgRHVtcENvbnRleHQqIGNvbnRleHQpIGNvbnN0CiAgICAgICAgIG91dC5w
cmludCgiLCBjYWxsID0gIiwgKm1fY2FsbExpbmtTdGF0dXMpOwogICAgIGlmIChtX2ludHJpbnNp
Y0Z1bmN0aW9uKQogICAgICAgICBvdXQucHJpbnQoIiwgaW50cmluc2ljID0gIiwgKm1faW50cmlu
c2ljRnVuY3Rpb24pOworICAgIGlmIChtX2RvbUpJVCApCisgICAgICAgIG91dC5wcmludCgiLCBj
dXN0b20gPSAiLCBSYXdQb2ludGVyKG1fZG9tSklUKSk7CiAgICAgb3V0LnByaW50KCI+Iik7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFy
aWFudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmgK
aW5kZXggNjYyMTg5YmNlNWYyZWIxYTEzYmQwNTNlOTgwMDIxYzEzYzI2NmU2Ni4uZGNmNDA4OGVj
MzViOWJiMDI4YzViZThiZDMyNWExMTQxNzkwMzg5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmgKQEAgLTMyLDYgKzMyLDkgQEAKICNpbmNs
dWRlICJTdHJ1Y3R1cmVTZXQuaCIKIAogbmFtZXNwYWNlIEpTQyB7CituYW1lc3BhY2UgRE9NSklU
IHsKK2NsYXNzIEdyYXBoOworfQogCiBjbGFzcyBDYWxsTGlua1N0YXR1czsKIGNsYXNzIEdldEJ5
SWRTdGF0dXM7CkBAIC00Myw3ICs0Niw4IEBAIGNsYXNzIEdldEJ5SWRWYXJpYW50IHsKICAgICAg
ICAgY29uc3QgU3RydWN0dXJlU2V0JiBzdHJ1Y3R1cmVTZXQgPSBTdHJ1Y3R1cmVTZXQoKSwgUHJv
cGVydHlPZmZzZXQgb2Zmc2V0ID0gaW52YWxpZE9mZnNldCwKICAgICAgICAgY29uc3QgT2JqZWN0
UHJvcGVydHlDb25kaXRpb25TZXQmID0gT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQoKSwKICAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rU3RhdHVzPiA9IG51bGxwdHIsCi0gICAgICAg
IEpTRnVuY3Rpb24qID0gbnVsbHB0cik7CisgICAgICAgIEpTRnVuY3Rpb24qID0gbnVsbHB0ciwK
KyAgICAgICAgRE9NSklUOjpHcmFwaCogPSBudWxscHRyKTsKIAogICAgIH5HZXRCeUlkVmFyaWFu
dCgpOwogICAgIApAQCAtNjIsNiArNjYsNyBAQCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7CiAgICAg
Q2FsbExpbmtTdGF0dXMqIGNhbGxMaW5rU3RhdHVzKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsTGlu
a1N0YXR1cy5nZXQoKTsgfQogICAgIEpTRnVuY3Rpb24qIGludHJpbnNpY0Z1bmN0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9pbnRyaW5zaWNGdW5jdGlvbjsgfQogICAgIEludHJpbnNpYyBpbnRyaW5z
aWMoKSBjb25zdCB7IHJldHVybiBtX2ludHJpbnNpY0Z1bmN0aW9uID8gbV9pbnRyaW5zaWNGdW5j
dGlvbi0+aW50cmluc2ljKCkgOiBOb0ludHJpbnNpYzsgfQorICAgIERPTUpJVDo6R3JhcGgqIGRv
bUpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tSklUOyB9CiAKICAgICBib29sIGlzUHJvcGVydHlV
bnNldCgpIGNvbnN0IHsgcmV0dXJuIG9mZnNldCgpID09IGludmFsaWRPZmZzZXQ7IH0KIApAQCAt
ODAsNiArODUsNyBAQCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7CiAgICAgUHJvcGVydHlPZmZzZXQg
bV9vZmZzZXQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rU3RhdHVzPiBtX2NhbGxMaW5r
U3RhdHVzOwogICAgIEpTRnVuY3Rpb24qIG1faW50cmluc2ljRnVuY3Rpb247CisgICAgRE9NSklU
OjpHcmFwaCogbV9kb21KSVQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCmluZGV4
IDJjZjI2NjcwODY2NDZmMjAyYTA0YzZhMDc0MjljODFhNzVlOTQ2NDMuLjM5OTVlNjQwNGY0YjNj
ZTc1ZjEyMWYyMzdiYTU1NDlhYWZhYWZlNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcApAQCAtMjIwLDcgKzIyMCw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBBY2Nlc3NDYXNlOjp0cnlHZXQoCiBzdGQ6OnVu
aXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Z2V0KAogICAgIFZNJiB2bSwgSlNDZWxs
KiBvd25lciwgQWNjZXNzVHlwZSB0eXBlLCBQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLAogICAgIGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0JiBjb25k
aXRpb25TZXQsIGJvb2wgdmlhUHJveHksIFdhdGNocG9pbnRTZXQqIGFkZGl0aW9uYWxTZXQsCi0g
ICAgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgY3VzdG9tR2V0dGVyLCBKU09iamVjdCogY3Vz
dG9tU2xvdEJhc2UpCisgICAgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgY3VzdG9tR2V0dGVy
LCBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UsIERPTUpJVDo6R3JhcGgqIGRvbUpJVCkKIHsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gcmVzdWx0KG5ldyBBY2Nlc3NDYXNlKCkpOwog
CkBAIC0yMjksMTIgKzIyOSwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNz
Q2FzZTo6Z2V0KAogICAgIHJlc3VsdC0+bV9zdHJ1Y3R1cmUuc2V0KHZtLCBvd25lciwgc3RydWN0
dXJlKTsKICAgICByZXN1bHQtPm1fY29uZGl0aW9uU2V0ID0gY29uZGl0aW9uU2V0OwogCi0gICAg
aWYgKHZpYVByb3h5IHx8IGFkZGl0aW9uYWxTZXQgfHwgcmVzdWx0LT5kb2VzQ2FsbHMoKSB8fCBj
dXN0b21HZXR0ZXIgfHwgY3VzdG9tU2xvdEJhc2UpIHsKKyAgICBpZiAodmlhUHJveHkgfHwgYWRk
aXRpb25hbFNldCB8fCByZXN1bHQtPmRvZXNDYWxscygpIHx8IGN1c3RvbUdldHRlciB8fCBjdXN0
b21TbG90QmFzZSB8fCBkb21KSVQpIHsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhID0gc3Rk
OjptYWtlX3VuaXF1ZTxSYXJlRGF0YT4oKTsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT52
aWFQcm94eSA9IHZpYVByb3h5OwogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmFkZGl0aW9u
YWxTZXQgPSBhZGRpdGlvbmFsU2V0OwogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmN1c3Rv
bUFjY2Vzc29yLmdldHRlciA9IGN1c3RvbUdldHRlcjsKICAgICAgICAgcmVzdWx0LT5tX3JhcmVE
YXRhLT5jdXN0b21TbG90QmFzZS5zZXRNYXlCZU51bGwodm0sIG93bmVyLCBjdXN0b21TbG90QmFz
ZSk7CisgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+ZG9tSklUID0gZG9tSklUOwogICAgIH0K
IAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0zODUsNiArMzg2LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6OmNsb25lKCkgY29uc3QKICAgICAgICAgcmVzdWx0LT5t
X3JhcmVEYXRhLT5jdXN0b21BY2Nlc3Nvci5vcGFxdWUgPSByYXJlRGF0YS0+Y3VzdG9tQWNjZXNz
b3Iub3BhcXVlOwogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmN1c3RvbVNsb3RCYXNlID0g
cmFyZURhdGEtPmN1c3RvbVNsb3RCYXNlOwogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmlu
dHJpbnNpY0Z1bmN0aW9uID0gcmFyZURhdGEtPmludHJpbnNpY0Z1bmN0aW9uOworICAgICAgICBy
ZXN1bHQtPm1fcmFyZURhdGEtPmRvbUpJVCA9IHJhcmVEYXRhLT5kb21KSVQ7CiAgICAgfQogICAg
IHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCmluZGV4IGE2ZDE0OGNiZmIwZjE5ZjhiMzdhMTc3MzgxZTAw
ODEzNzJiODQ5MjIuLjVhZTNlMjllMDg1ZWY5YzYyZDcxMTU4MWViNmVlOWQwYzc2MDE0NjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vz
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vz
cy5oCkBAIC0zNyw2ICszNyw5IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworY2xhc3MgR3JhcGg7Cit9CiAKIGNsYXNzIENv
ZGVCbG9jazsKIGNsYXNzIFBvbHltb3JwaGljQWNjZXNzOwpAQCAtMTMwLDcgKzEzMyw4IEBAIGNs
YXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICBib29sIHZpYVByb3h5ID0gZmFsc2UsCiAgICAgICAg
IFdhdGNocG9pbnRTZXQqIGFkZGl0aW9uYWxTZXQgPSBudWxscHRyLAogICAgICAgICBQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYyA9IG51bGxwdHIsCi0gICAgICAgIEpTT2JqZWN0KiBjdXN0b21T
bG90QmFzZSA9IG51bGxwdHIpOworICAgICAgICBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UgPSBu
dWxscHRyLAorICAgICAgICBET01KSVQ6OkdyYXBoKiA9IG51bGxwdHIpOwogICAgIAogICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gbWVnYW1vcnBoaWNMb2FkKFZNJiwgSlND
ZWxsKiBvd25lcik7CiAgICAgCkBAIC0xODYsNiArMTkwLDEyIEBAIGNsYXNzIEFjY2Vzc0Nhc2Ug
ewogICAgICAgICByZXR1cm4gaW50cmluc2ljRnVuY3Rpb24oKS0+aW50cmluc2ljKCk7CiAgICAg
fQogCisgICAgRE9NSklUOjpHcmFwaCogZG9tSklUKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFT
U0VSVChtX3JhcmVEYXRhKTsKKyAgICAgICAgcmV0dXJuIG1fcmFyZURhdGEtPmRvbUpJVDsKKyAg
ICB9CisKICAgICBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0KCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiBtX3JhcmVEYXRhID8gbV9yYXJlRGF0YS0+YWRkaXRpb25hbFNldC5nZXQo
KSA6IG51bGxwdHI7CkBAIC0yODQsNiArMjk0LDcgQEAgY2xhc3MgQWNjZXNzQ2FzZSB7CiAgICAg
cHVibGljOgogICAgICAgICBSYXJlRGF0YSgpCiAgICAgICAgICAgICA6IHZpYVByb3h5KGZhbHNl
KQorICAgICAgICAgICAgLCBkb21KSVQobnVsbHB0cikKICAgICAgICAgewogICAgICAgICAgICAg
Y3VzdG9tQWNjZXNzb3Iub3BhcXVlID0gbnVsbHB0cjsKICAgICAgICAgfQpAQCAtMzAwLDYgKzMx
MSw3IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICB9IGN1c3RvbUFjY2Vzc29yOwogICAg
ICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IGN1c3RvbVNsb3RCYXNlOwogICAgICAgICBXcml0
ZUJhcnJpZXI8SlNGdW5jdGlvbj4gaW50cmluc2ljRnVuY3Rpb247CisgICAgICAgIERPTUpJVDo6
R3JhcGgqIGRvbUpJVDsKICAgICB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJhcmVEYXRhPiBt
X3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Nw
ZWN1bGF0ZWRUeXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxh
dGVkVHlwZS5jcHAKaW5kZXggNzE5ZDhmMjcyODNmNWQxMjNjZTU3NzE1NDVlNDY5YmY4MWFmZjIy
Ny4uMWZkMDRiNTU3NGJmZTA3MDIwNWZlMmJhMzMwYmUyYzVlNDA5YWQxZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCkBAIC0xNzAs
NiArMTcwLDIxIEBAIHZvaWQgZHVtcFNwZWN1bGF0aW9uKFByaW50U3RyZWFtJiBvdXQsIFNwZWN1
bGF0ZWRUeXBlIHZhbHVlKQogICAgICAgICAgICAgICAgIG15T3V0LnByaW50KCJEZXJpdmVkYXJy
YXkiKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNlOwor
CisgICAgICAgICAgICBpZiAodmFsdWUgJiBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyKQorICAgICAg
ICAgICAgICAgIG15T3V0LnByaW50KCJEb21kb2N1bWVudHdyYXBwZXIiKTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBpc1RvcCA9IGZhbHNlOworCisgICAgICAgICAgICBpZiAo
dmFsdWUgJiBTcGVjRE9NRWxlbWVudCkKKyAgICAgICAgICAgICAgICBteU91dC5wcmludCgiRG9t
ZWxlbWVudCIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlzVG9wID0gZmFs
c2U7CisKKyAgICAgICAgICAgIGlmICh2YWx1ZSAmIFNwZWNET01PdGhlck5vZGUpCisgICAgICAg
ICAgICAgICAgbXlPdXQucHJpbnQoIkRvbW90aGVybm9kZSIpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGlzVG9wID0gZmFsc2U7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
KHZhbHVlICYgU3BlY1N0cmluZykgPT0gU3BlY1N0cmluZykKQEAgLTM5NCwxMiArNDA5LDI1IEBA
IFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyhjb25zdCBDbGFzc0luZm8q
IGNsYXNzSW5mbykKIAogU3BlY3VsYXRlZFR5cGUgc3BlY3VsYXRpb25Gcm9tU3RydWN0dXJlKFN0
cnVjdHVyZSogc3RydWN0dXJlKQogewotICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlw
ZSgpID09IFN0cmluZ1R5cGUpCisgICAgSlNUeXBlIHR5cGUgPSBzdHJ1Y3R1cmUtPnR5cGVJbmZv
KCkudHlwZSgpOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgU3RyaW5nVHlwZToKICAg
ICAgICAgcmV0dXJuIFNwZWNTdHJpbmc7Ci0gICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS50
eXBlKCkgPT0gU3ltYm9sVHlwZSkKKyAgICBjYXNlIFN5bWJvbFR5cGU6CiAgICAgICAgIHJldHVy
biBTcGVjU3ltYm9sOwotICAgIGlmIChzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkudHlwZSgpID09IERl
cml2ZWRBcnJheVR5cGUpCisgICAgY2FzZSBEZXJpdmVkQXJyYXlUeXBlOgogICAgICAgICByZXR1
cm4gU3BlY0Rlcml2ZWRBcnJheTsKKyAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclR5cGU6Cisg
ICAgICAgIHJldHVybiBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIGJyZWFrOworICAgIH0KKworICAgIGlmICh0eXBlID49IERPTUVsZW1lbnRUeXBlKQorICAg
ICAgICByZXR1cm4gU3BlY0RPTUVsZW1lbnQ7CisgICAgaWYgKHR5cGUgPj0gRE9NTm9kZVR5cGUp
CisgICAgICAgIHJldHVybiBTcGVjRE9NT3RoZXJOb2RlOworCiAgICAgcmV0dXJuIHNwZWN1bGF0
aW9uRnJvbUNsYXNzSW5mbyhzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAppbmRleCBmNDNkZmNk
MzE1ODcxZTk4OTUzZWEyZGRkYzRiZjMzNTI1Y2NkZmRmLi40YzdiZGY3YzY4YjI2M2Y0NDU2OWMw
ODc0NjMzYTMwN2U0NjE2OTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvU3BlY3VsYXRlZFR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3BlY3VsYXRlZFR5cGUuaApAQCAtNTksMjQgKzU5LDI4IEBAIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjTWFwT2JqZWN0ICAgICAgICAgID0gMXVsbCA8PCAxNjsgLy8gSXQncyBk
ZWZpbml0CiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1NldE9iamVjdCAgICAgICAg
ICA9IDF1bGwgPDwgMTc7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFNldCBvYmplY3Qgb3Igb25lIG9m
IGl0cyBzdWJjbGFzc2VzLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcm94eU9i
amVjdCAgICAgICAgPSAxdWxsIDw8IDE4OyAvLyBJdCdzIGRlZmluaXRlbHkgYSBQcm94eSBvYmpl
Y3Qgb3Igb25lIG9mIGl0cyBzdWJjbGFzc2VzLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNEZXJpdmVkQXJyYXkgICAgICAgPSAxdWxsIDw8IDE5OyAvLyBJdCdzIGRlZmluaXRlbHkg
YSBEZXJpdmVkQXJyYXkgb2JqZWN0Lgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNP
YmplY3RPdGhlciAgICAgICAgPSAxdWxsIDw8IDIwOyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gb2Jq
ZWN0IGJ1dCBub3QgSlNGaW5hbE9iamVjdCwgSlNBcnJheSwgb3IgSlNGdW5jdGlvbi4KLXN0YXRp
YyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0ICAgICAgICAgICAgID0gU3BlY0ZpbmFs
T2JqZWN0IHwgU3BlY0FycmF5IHwgU3BlY0Z1bmN0aW9uIHwgU3BlY1R5cGVkQXJyYXlWaWV3IHwg
U3BlY0RpcmVjdEFyZ3VtZW50cyB8IFNwZWNTY29wZWRBcmd1bWVudHMgfCBTcGVjU3RyaW5nT2Jq
ZWN0IHwgU3BlY1JlZ0V4cE9iamVjdCB8IFNwZWNNYXBPYmplY3QgfCBTcGVjU2V0T2JqZWN0IHwg
U3BlY1Byb3h5T2JqZWN0IHwgU3BlY0Rlcml2ZWRBcnJheSB8IFNwZWNPYmplY3RPdGhlcjsgLy8g
Qml0bWFzayB1c2VkIGZvciB0ZXN0aW5nIGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlv
bi4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgID0g
MXVsbCA8PCAyMTsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlk
ZW50aWZpZXIuCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAg
ICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQn
cyBub3QgYW4gaWRlbnRpZmllci4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRE9N
RG9jdW1lbnRXcmFwcGVyID0gMXVsbCA8PCAyMDsgLy8gSXQncyBkZWZpbml0ZWx5IGEgRE9NIGRv
Y3VtZW50IHdyYXBwZXIgb2JqZWN0Lgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNE
T01FbGVtZW50ICAgICAgICAgPSAxdWxsIDw8IDIxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBET00g
ZWxlbWVudCBvYmplY3QuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RPTU90aGVy
Tm9kZSAgICAgICA9IDF1bGwgPDwgMjI7IC8vIEl0J3MgZGVmaW5pdGVseSBhIERPTSBOb2RlIG9i
amVjdCBidXQgbm90IERvY3VtZW50V3JhcHBlciBhbmQgRWxlbWVudC4KK3N0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjRE9NTm9kZSAgICAgICAgICAgID0gU3BlY0RPTURvY3VtZW50V3Jh
cHBlciB8IFNwZWNET01FbGVtZW50IHwgU3BlY0RPTU90aGVyTm9kZTsKK3N0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjT2JqZWN0T3RoZXIgICAgICAgID0gMXVsbCA8PCAyMzsgLy8gSXQn
cyBkZWZpbml0ZWx5IGFuIG9iamVjdCBidXQgbm90IEpTRmluYWxPYmplY3QsIEpTQXJyYXksIG9y
IEpTRnVuY3Rpb24uCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY09iamVjdCAgICAg
ICAgICAgICA9IFNwZWNGaW5hbE9iamVjdCB8IFNwZWNBcnJheSB8IFNwZWNGdW5jdGlvbiB8IFNw
ZWNUeXBlZEFycmF5VmlldyB8IFNwZWNEaXJlY3RBcmd1bWVudHMgfCBTcGVjU2NvcGVkQXJndW1l
bnRzIHwgU3BlY1N0cmluZ09iamVjdCB8IFNwZWNSZWdFeHBPYmplY3QgfCBTcGVjTWFwT2JqZWN0
IHwgU3BlY1NldE9iamVjdCB8IFNwZWNQcm94eU9iamVjdCB8IFNwZWNEZXJpdmVkQXJyYXkgfCBT
cGVjRE9NTm9kZSB8IFNwZWNPYmplY3RPdGhlcjsgLy8gQml0bWFzayB1c2VkIGZvciB0ZXN0aW5n
IGZvciBhbnkga2luZCBvZiBvYmplY3QgcHJlZGljdGlvbi4KK3N0YXRpYyBjb25zdCBTcGVjdWxh
dGVkVHlwZSBTcGVjU3RyaW5nSWRlbnQgICAgICAgID0gMXVsbCA8PCAyNDsgLy8gSXQncyBkZWZp
bml0ZWx5IGEgSlNTdHJpbmcsIGFuZCBpdCdzIGFuIGlkZW50aWZpZXIuCitzdGF0aWMgY29uc3Qg
U3BlY3VsYXRlZFR5cGUgU3BlY1N0cmluZ1ZhciAgICAgICAgICA9IDF1bGwgPDwgMjU7IC8vIEl0
J3MgZGVmaW5pdGVseSBhIEpTU3RyaW5nLCBhbmQgaXQncyBub3QgYW4gaWRlbnRpZmllci4KIHN0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjU3RyaW5nICAgICAgICAgICAgID0gU3BlY1N0
cmluZ0lkZW50IHwgU3BlY1N0cmluZ1ZhcjsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNTdHJpbmcu
Ci1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY1N5bWJvbCAgICAgICAgICAgICA9IDF1
bGwgPDwgMjM7IC8vIEl0J3MgZGVmaW5pdGVseSBhIFN5bWJvbC4KLXN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAgICAgID0gMXVsbCA8PCAyNDsgLy8gSXQncyBk
ZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBzdWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVm
aW5pdGVseSBub3QgYSBKU1N0cmluZyBvciBhIFN5bWJvbC4gRklYTUU6IFRoaXMgc2hvdWxkbid0
IGJlIHBhcnQgb2YgaGVhcC10b3Agb3IgYnl0ZWNvZGUtdG9wLiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDc4CitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUg
U3BlY1N5bWJvbCAgICAgICAgICAgICA9IDF1bGwgPDwgMjY7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IFN5bWJvbC4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQ2VsbE90aGVyICAgICAg
ICAgID0gMXVsbCA8PCAyNzsgLy8gSXQncyBkZWZpbml0ZWx5IGEgSlNDZWxsIGJ1dCBub3QgYSBz
dWJjbGFzcyBvZiBKU09iamVjdCBhbmQgZGVmaW5pdGVseSBub3QgYSBKU1N0cmluZyBvciBhIFN5
bWJvbC4gRklYTUU6IFRoaXMgc2hvdWxkbid0IGJlIHBhcnQgb2YgaGVhcC10b3Agb3IgYnl0ZWNv
ZGUtdG9wLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDc4CiBz
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0NlbGwgICAgICAgICAgICAgICA9IFNwZWNP
YmplY3QgfCBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNDZWxsT3RoZXI7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIEpTQ2VsbC4KLXN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQm9v
bEludDMyICAgICAgICAgID0gMXVsbCA8PCAyNTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIEludDMy
IHdpdGggdmFsdWUgMCBvciAxLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNOb25C
b29sSW50MzIgICAgICAgPSAxdWxsIDw8IDI2OyAvLyBJdCdzIGRlZmluaXRlbHkgYW4gSW50MzIg
d2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjQm9vbEludDMyICAgICAgICAgID0gMXVsbCA8PCAyODsgLy8gSXQncyBkZWZpbml0ZWx5
IGFuIEludDMyIHdpdGggdmFsdWUgMCBvciAxLgorc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBl
IFNwZWNOb25Cb29sSW50MzIgICAgICAgPSAxdWxsIDw8IDI5OyAvLyBJdCdzIGRlZmluaXRlbHkg
YW4gSW50MzIgd2l0aCB2YWx1ZSBvdGhlciB0aGFuIDAgb3IgMS4KIHN0YXRpYyBjb25zdCBTcGVj
dWxhdGVkVHlwZSBTcGVjSW50MzJPbmx5ICAgICAgICAgID0gU3BlY0Jvb2xJbnQzMiB8IFNwZWNO
b25Cb29sSW50MzI7IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQzMi4KLXN0YXRpYyBjb25zdCBT
cGVjdWxhdGVkVHlwZSBTcGVjSW50NTJPbmx5ICAgICAgICAgID0gMXVsbCA8PCAyNzsgLy8gSXQn
cyBkZWZpbml0ZWx5IGFuIEludDUyIGFuZCB3ZSBpbnRlbmQgaXQgdG8gdW5ib3ggaXQuIEl0J3Mg
YWxzbyBkZWZpbml0ZWx5IG5vdCBhbiBJbnQzMi4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjSW50NTJPbmx5ICAgICAgICAgID0gMXVsbCA8PCAzMDsgLy8gSXQncyBkZWZpbml0ZWx5
IGFuIEludDUyIGFuZCB3ZSBpbnRlbmQgaXQgdG8gdW5ib3ggaXQuIEl0J3MgYWxzbyBkZWZpbml0
ZWx5IG5vdCBhbiBJbnQzMi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQW55SW50
ICAgICAgICAgICAgID0gU3BlY0ludDMyT25seSB8IFNwZWNJbnQ1Mk9ubHk7IC8vIEl0J3Mgc29t
ZXRoaW5nIHRoYXQgd2UgY2FuIGRvIG1hY2hpbmUgaW50IGFyaXRobWV0aWMgb24uCi1zdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0FueUludEFzRG91YmxlICAgICA9IDF1bGwgPDwgMjg7
IC8vIEl0J3MgZGVmaW5pdGVseSBhbiBJbnQ1MiBhbmQgaXQncyBpbnNpZGUgYSBkb3VibGUuCi1z
dGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY05vbkludEFzRG91YmxlICAgICA9IDF1bGwg
PDwgMjk7IC8vIEl0J3MgZGVmaW5pdGVseSBub3QgYW4gSW50NTIgYnV0IGl0J3MgYSByZWFsIG51
bWJlciBhbmQgaXQncyBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
QW55SW50QXNEb3VibGUgICAgID0gMXVsbCA8PCAzMTsgLy8gSXQncyBkZWZpbml0ZWx5IGFuIElu
dDUyIGFuZCBpdCdzIGluc2lkZSBhIGRvdWJsZS4KK3N0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlw
ZSBTcGVjTm9uSW50QXNEb3VibGUgICAgID0gMXVsbCA8PCAzMjsgLy8gSXQncyBkZWZpbml0ZWx5
IG5vdCBhbiBJbnQ1MiBidXQgaXQncyBhIHJlYWwgbnVtYmVyIGFuZCBpdCdzIGEgZG91YmxlLgog
c3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVSZWFsICAgICAgICAgPSBTcGVj
Tm9uSW50QXNEb3VibGUgfCBTcGVjQW55SW50QXNEb3VibGU7IC8vIEl0J3MgZGVmaW5pdGVseSBh
IG5vbi1OYU4gZG91YmxlLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNEb3VibGVQ
dXJlTmFOICAgICAgPSAxdWxsIDw8IDMwOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBOYU4gdGhhdCBp
cyBzYWUgdG8gdGFnIChpLmUuIHB1cmUpLgotc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNw
ZWNEb3VibGVJbXB1cmVOYU4gICAgPSAxdWxsIDw8IDMxOyAvLyBJdCdzIGRlZmluaXRlbHkgYSBO
YU4gdGhhdCBpcyB1bnNhZmUgdG8gdGFnIChpLmUuIGltcHVyZSkuCitzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0RvdWJsZVB1cmVOYU4gICAgICA9IDF1bGwgPDwgMzM7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHNhZSB0byB0YWcgKGkuZS4gcHVyZSkuCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0RvdWJsZUltcHVyZU5hTiAgICA9IDF1bGwgPDwgMzQ7
IC8vIEl0J3MgZGVmaW5pdGVseSBhIE5hTiB0aGF0IGlzIHVuc2FmZSB0byB0YWcgKGkuZS4gaW1w
dXJlKS4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRG91YmxlTmFOICAgICAgICAg
ID0gU3BlY0RvdWJsZVB1cmVOYU4gfCBTcGVjRG91YmxlSW1wdXJlTmFOOyAvLyBJdCdzIGRlZmlu
aXRlbHkgc29tZSBraW5kIG9mIE5hTi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVj
Qnl0ZWNvZGVEb3VibGUgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlUHVyZU5hTjsg
Ly8gSXQncyBlaXRoZXIgYSBub24tTmFOIG9yIGEgTmFOIGRvdWJsZSwgYnV0IGl0J3MgZGVmaW5p
dGVseSBub3QgaW1wdXJlIE5hTi4KIHN0YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjRnVs
bERvdWJsZSAgICAgICAgID0gU3BlY0RvdWJsZVJlYWwgfCBTcGVjRG91YmxlTmFOOyAvLyBJdCdz
IGVpdGhlciBhIG5vbi1OYU4gb3IgYSBOYU4gZG91YmxlLgpAQCAtODQsMTIgKzg4LDEyIEBAIHN0
YXRpYyBjb25zdCBTcGVjdWxhdGVkVHlwZSBTcGVjQnl0ZWNvZGVSZWFsTnVtYmVyID0gU3BlY0lu
dDMyT25seSB8IFNwZWNEb3VibGVSCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1
bGxSZWFsTnVtYmVyICAgICA9IFNwZWNBbnlJbnQgfCBTcGVjRG91YmxlUmVhbDsgLy8gSXQncyBl
aXRoZXIgYW4gSW50MzIgb3IgYSBEb3VibGVSZWFsLCBvciBhIEludDUyLgogc3RhdGljIGNvbnN0
IFNwZWN1bGF0ZWRUeXBlIFNwZWNCeXRlY29kZU51bWJlciAgICAgPSBTcGVjSW50MzJPbmx5IHwg
U3BlY0J5dGVjb2RlRG91YmxlOyAvLyBJdCdzIGVpdGhlciBhbiBJbnQzMiBvciBhIERvdWJsZSwg
YW5kIHRoZSBEb3VibGUgY2Fubm90IGJlIGFuIGltcHVyZSBOYU4uCiBzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0Z1bGxOdW1iZXIgICAgICAgICA9IFNwZWNBbnlJbnQgfCBTcGVjRnVs
bERvdWJsZTsgLy8gSXQncyBlaXRoZXIgYW4gSW50MzIsIEludDUyLCBvciBhIERvdWJsZSwgYW5k
IHRoZSBEb3VibGUgY2FuIGJlIGltcHVyZSBOYU4uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5
cGUgU3BlY0Jvb2xlYW4gICAgICAgICAgICA9IDF1bGwgPDwgMzI7IC8vIEl0J3MgZGVmaW5pdGVs
eSBhIEJvb2xlYW4uCi1zdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAgICAg
ICAgICAgICA9IDF1bGwgPDwgMzM7IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBvciBV
bmRlZmluZWQuCitzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Jvb2xlYW4gICAgICAg
ICAgICA9IDF1bGwgPDwgMzU7IC8vIEl0J3MgZGVmaW5pdGVseSBhIEJvb2xlYW4uCitzdGF0aWMg
Y29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY090aGVyICAgICAgICAgICAgICA9IDF1bGwgPDwgMzY7
IC8vIEl0J3MgZGVmaW5pdGVseSBlaXRoZXIgTnVsbCBvciBVbmRlZmluZWQuCiBzdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY01pc2MgICAgICAgICAgICAgICA9IFNwZWNCb29sZWFuIHwg
U3BlY090aGVyOyAvLyBJdCdzIGRlZmluaXRlbHkgZWl0aGVyIGEgYm9vbGVhbiwgTnVsbCwgb3Ig
VW5kZWZpbmVkLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNIZWFwVG9wICAgICAg
ICAgICAgPSBTcGVjQ2VsbCB8IFNwZWNCeXRlY29kZU51bWJlciB8IFNwZWNNaXNjOyAvLyBJdCBj
YW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFuZCBTcGVj
RG91YmxlSW1wdXJlTmFOLgogc3RhdGljIGNvbnN0IFNwZWN1bGF0ZWRUeXBlIFNwZWNQcmltaXRp
dmUgICAgICAgICAgPSBTcGVjU3RyaW5nIHwgU3BlY1N5bWJvbCB8IFNwZWNCeXRlY29kZU51bWJl
ciB8IFNwZWNNaXNjOyAvLyBJdCdzIGFueSBub24tT2JqZWN0IEpTVmFsdWUuCi1zdGF0aWMgY29u
c3QgU3BlY3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzQ7IC8v
IEl0J3MgZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCitzdGF0aWMgY29uc3QgU3Bl
Y3VsYXRlZFR5cGUgU3BlY0VtcHR5ICAgICAgICAgICAgICA9IDF1bGwgPDwgMzc7IC8vIEl0J3Mg
ZGVmaW5pdGVseSBhbiBlbXB0eSB2YWx1ZSBtYXJrZXIuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRl
ZFR5cGUgU3BlY0J5dGVjb2RlVG9wICAgICAgICA9IFNwZWNIZWFwVG9wIHwgU3BlY0VtcHR5OyAv
LyBJdCBjYW4gYmUgYW55IG9mIHRoZSBhYm92ZSwgZXhjZXB0IGZvciBTcGVjSW50NTJPbmx5IGFu
ZCBTcGVjRG91YmxlSW1wdXJlTmFOLiBDb3JyZXNwb25kcyB0byB3aGF0IGNvdWxkIGJlIGZvdW5k
IGluIGEgYnl0ZWNvZGUgbG9jYWwuCiBzdGF0aWMgY29uc3QgU3BlY3VsYXRlZFR5cGUgU3BlY0Z1
bGxUb3AgICAgICAgICAgICA9IFNwZWNCeXRlY29kZVRvcCB8IFNwZWNGdWxsTnVtYmVyOyAvLyBJ
dCBjYW4gYmUgYW55dGhpbmcgdGhhdCBieXRlY29kZSBjb3VsZCBzZWUgcGx1cyBleG90aWMgZW5j
b2RpbmdzIG9mIG51bWJlcnMuCiAKQEAgLTQxOCw2ICs0MjIsMjEgQEAgaW5saW5lIGJvb2wgaXNV
bnR5cGVkU3BlY3VsYXRpb25Gb3JCaXRPcHMoU3BlY3VsYXRlZFR5cGUgdmFsdWUpCiAgICAgcmV0
dXJuICEhKHZhbHVlICYgfihTcGVjRnVsbE51bWJlciB8IFNwZWNCb29sZWFuIHwgU3BlY090aGVy
KSk7CiB9CiAKK2lubGluZSBib29sIGlzRE9NTm9kZVNwZWN1bGF0aW9uKFNwZWN1bGF0ZWRUeXBl
IHZhbHVlKQoreworICAgIHJldHVybiAhISh2YWx1ZSAmIFNwZWNET01Ob2RlKSAmJiAhKHZhbHVl
ICYgflNwZWNET01Ob2RlKTsKK30KKworaW5saW5lIGJvb2wgaXNET01FbGVtZW50U3BlY3VsYXRp
b24oU3BlY3VsYXRlZFR5cGUgdmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVlID09IFNwZWNET01F
bGVtZW50OworfQorCitpbmxpbmUgYm9vbCBpc0RPTURvY3VtZW50V3JhcHBlclNwZWN1bGF0aW9u
KFNwZWN1bGF0ZWRUeXBlIHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA9PSBTcGVjRE9NRG9j
dW1lbnRXcmFwcGVyOworfQorCiB2b2lkIGR1bXBTcGVjdWxhdGlvbihQcmludFN0cmVhbSYsIFNw
ZWN1bGF0ZWRUeXBlKTsKIHZvaWQgZHVtcFNwZWN1bGF0aW9uQWJicmV2aWF0ZWQoUHJpbnRTdHJl
YW0mLCBTcGVjdWxhdGVkVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVmFsdWVSZWNvdmVyeS5oCmluZGV4IDhlODhhMTQ2Mzc3MTJlZmFkYzQxZGZkNDQxNjQwMDI5
ZDU0NGU3NzAuLjI5MDg5MGU1MDFlNWY4NTNjMGU3MDc5NWMwYTBjNGFmYjhkYTE5NjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3ZlcnkuaApAQCAtMTcy
LDcgKzE3Miw3IEBAIGNsYXNzIFZhbHVlUmVjb3ZlcnkgewogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVChkYXRhRm9y
bWF0ICE9IERhdGFGb3JtYXROb25lICYmIGRhdGFGb3JtYXQgIT0gRGF0YUZvcm1hdFN0b3JhZ2Up
OworICAgICAgICAgICAgQVNTRVJUKGRhdGFGb3JtYXQgIT0gRGF0YUZvcm1hdE5vbmUgJiYgZGF0
YUZvcm1hdCAhPSBEYXRhRm9ybWF0U3RvcmFnZSAmJiBkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXRP
cGFxdWVQb2ludGVyKTsKICAgICAgICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IERpc3BsYWNl
ZEluSlNTdGFjazsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SGVhcC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEhlYXAuaAppbmRleCAwYWJkNTAyN2IyNmFlYjM5NGYy
OWMwMzhmZDlmMmQ1OTJlNmMxNjM5Li5mMjQ3ZWIyYzQ2ZDM1MjJjMTVmMjM2MDYwMTg4ZDMyYjc2
NmQ4OWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SGVhcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RIZWFwLmgK
QEAgLTczLDYgKzczLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1h
Y3JvKE1hdGhEb3RSYW5kb21TdGF0ZSkgXAogICAgIG1hY3JvKEludGVybmFsU3RhdGUpIFwKICAg
ICBtYWNybyhBYnNvbHV0ZSkgXAorICAgIG1hY3JvKE9wYXF1ZVBvaW50ZXIpIFwKICAgICAvKiBV
c2UgdGhpcyBmb3Igd3JpdGVzIG9ubHksIHRvIGluZGljYXRlIHRoYXQgdGhpcyBtYXkgZmlyZSB3
YXRjaHBvaW50cy4gVXN1YWxseSB0aGlzIGlzIG5ldmVyIGRpcmVjdGx5IHdyaXR0ZW4gYnV0IGlu
c3RlYWQgd2UgdGVzdCB0byBzZWUgaWYgYSBub2RlIGNsb2JiZXJzIHRoaXM7IGl0IGp1c3Qgc28g
aGFwcGVucyB0aGF0IHlvdSBoYXZlIHRvIHdyaXRlIHdvcmxkIHRvIGNsb2JiZXIgaXQuICovXAog
ICAgIG1hY3JvKFdhdGNocG9pbnRfZmlyZSkgXAogICAgIC8qIFVzZSB0aGVzZSBmb3IgcmVhZHMg
b25seSwganVzdCB0byBpbmRpY2F0ZSB0aGF0IGlmIHRoZSB3b3JsZCBnb3QgY2xvYmJlcmVkLCB0
aGVuIHRoaXMgb3BlcmF0aW9uIHdpbGwgbm90IHdvcmsuICovXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmlu
ZGV4IDlkYjEzZTNhODdlNmI3OGRhYTFlOWIwMTIzMzJmYTE1ZjU2NDQ0OTAuLjI1OWMxMDQ4ZTZl
MWZlNmYzNGU1YWEwMGMxYTY4MTFjZjEyYTY5ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTIy
NjEsOCArMjI2MSwxNCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgR2V0QnV0
dGVyZmx5OgogICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBSZWFs
bG9jYXRlUHJvcGVydHlTdG9yYWdlOgorICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CisgICAg
Y2FzZSBHZXRET01XcmFwcGVkOgogICAgICAgICBmb3JOb2RlKG5vZGUpLmNsZWFyKCk7IC8vIFRo
ZSByZXN1bHQgaXMgbm90IGEgSlMgdmFsdWUuCiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgVG9E
T01XcmFwcGVyOgorICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBj
bG9iYmVyTGltaXQpOworICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUobV9ncmFwaCwgU3Bl
Y0RPTU5vZGUgfCBTcGVjT3RoZXIpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENoZWNrQXJy
YXk6IHsKICAgICAgICAgaWYgKG5vZGUtPmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1fZ3Jh
cGgsIG5vZGUsIGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpKSkgewogICAgICAgICAgICAgbV9zdGF0
ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKQEAgLTI4MTYsNiArMjgyMiw3IEBAIGJvb2wgQWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2ln
bmVkIGNsb2JiZXJMaW1pCiAgICAgY2FzZSBDaGVja1RpZXJVcEluTG9vcDoKICAgICBjYXNlIENo
ZWNrVGllclVwQXRSZXR1cm46CiAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CisgICAgY2Fz
ZSBDaGVja05vZGVGbGFnczoKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENyZWF0ZVJlc3Q6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmlu
ZGV4IDA0NTIyODBkZDI2ZjQwYjBiY2E0NWQzODUxZDExMGRmNDE2YTBmYTcuLmFjZDU2OWYyYjkz
ODRiMWIzMGM0NWMwZWFkZjg1OTgzZDA1ODk5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVk
ZSAiREZHQ2xvYmJlcnNFeGl0U3RhdGUuaCIKICNpbmNsdWRlICJERkdHcmFwaC5oIgogI2luY2x1
ZGUgIkRGR0pJVENvZGUuaCIKKyNpbmNsdWRlICJET01KSVRJUi5oIgogI2luY2x1ZGUgIkdldEJ5
SWRTdGF0dXMuaCIKICNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgpA
QCAtMjE5LDYgKzIyMCw3IEBAIGNsYXNzIEJ5dGVDb2RlUGFyc2VyIHsKICAgICBib29sIGhhbmRs
ZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbihOb2RlKiBjYWxsVGFyZ2V0Tm9kZSwgaW50IHJlc3Vs
dE9wZXJhbmQsIEludGVybmFsRnVuY3Rpb24qLCBpbnQgcmVnaXN0ZXJPZmZzZXQsIGludCBhcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcywgQ29kZVNwZWNpYWxpemF0aW9uS2luZCwgU3BlY3VsYXRl
ZFR5cGUsIGNvbnN0IENoZWNrc0Z1bmN0b3ImIGluc2VydENoZWNrcyk7CiAgICAgTm9kZSogaGFu
ZGxlUHV0QnlPZmZzZXQoTm9kZSogYmFzZSwgdW5zaWduZWQgaWRlbnRpZmllciwgUHJvcGVydHlP
ZmZzZXQsIGNvbnN0IEluZmVycmVkVHlwZTo6RGVzY3JpcHRvciYsIE5vZGUqIHZhbHVlKTsKICAg
ICBOb2RlKiBoYW5kbGVHZXRCeU9mZnNldChTcGVjdWxhdGVkVHlwZSwgTm9kZSogYmFzZSwgdW5z
aWduZWQgaWRlbnRpZmllck51bWJlciwgUHJvcGVydHlPZmZzZXQsIGNvbnN0IEluZmVycmVkVHlw
ZTo6RGVzY3JpcHRvciYsIE5vZGVUeXBlID0gR2V0QnlPZmZzZXQpOworICAgIGJvb2wgaGFuZGxl
RE9NSklUR2V0dGVyKGludCByZXN1bHRPcGVyYW5kLCBjb25zdCBHZXRCeUlkVmFyaWFudCYsIE5v
ZGUqIHRoaXNOb2RlLCBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uKTsKIAogICAgIC8vIENyZWF0
ZSBhIHByZXNlbmNlIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uIGJhc2VkIG9uIHNvbWUga25vd24g
b2Zmc2V0IGFuZCBzdHJ1Y3R1cmUgc2V0LiBEb2VzIG5vdAogICAgIC8vIGNoZWNrIHRoZSB2YWxp
ZGl0eSBvZiB0aGUgY29uZGl0aW9uLCBidXQgaXQgbWF5IHJldHVybiBhIG51bGwgb25lIGlmIGl0
IGVuY291bnRlcnMgYSBjb250cmFkaWN0aW9uLgpAQCAtMjY1OSw2ICsyNjYxLDU3IEBAIGJvb2wg
Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0dldHRlcihpbnQgcmVzdWx0T3BlcmFuZCwg
Y29uc3QgR2V0QnlJZFZhcmlhCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IAorYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlRE9NSklUR2V0dGVyKGludCByZXN1bHRPcGVy
YW5kLCBjb25zdCBHZXRCeUlkVmFyaWFudCYgdmFyaWFudCwgTm9kZSogdGhpc05vZGUsIFNwZWN1
bGF0ZWRUeXBlKQoreworICAgIGlmICghdmFyaWFudC5kb21KSVQoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgSGFzaE1hcDxET01KSVQ6OklSKiwgTm9kZSo+IG5vZGVNYXA7CisKKyAg
ICBhdXRvIGxvb2tVcE5vZGUgPSBbJl0oRE9NSklUOjpJUiogaXIpIC0+IE5vZGUqIHsKKyAgICAg
ICAgcmV0dXJuIG5vZGVNYXAuZ2V0KGlyKTsKKyAgICB9OworCisgICAgYXV0byByZWdpc3Rlck5v
ZGUgPSBbJl0oRE9NSklUOjpJUiogaXIsIE5vZGUqIG5vZGUpIHsKKyAgICAgICAgbm9kZU1hcC5h
ZGQoaXIsIG5vZGUpOworICAgIH07CisKKyAgICByZWdpc3Rlck5vZGUoRE9NSklUOjpJUjo6dGhp
c1ZhbHVlKCksIHRoaXNOb2RlKTsKKworICAgIGZvciAoRE9NSklUOjpJUiYgaXIgOiB2YXJpYW50
LmRvbUpJVCgpLT5pcigpKSB7CisgICAgICAgIHN3aXRjaCAoaXIubV9raW5kKSB7CisgICAgICAg
IGNhc2UgRE9NSklUOjpLaW5kOjpDaGVja05vZGU6CisgICAgICAgICAgICBhZGRUb0dyYXBoKENo
ZWNrLCBFZGdlKGxvb2tVcE5vZGUoaXIubV9jaGlsZDEpLCBET01Ob2RlVXNlKSk7CisgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBjYXNlIERPTUpJVDo6S2luZDo6Q2hlY2tOb2RlRmxhZ3M6
CisgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrTm9kZUZsYWdzLCBPcEluZm8oaXIubV9vcElu
Zm8xKSwgT3BJbmZvKGlyLm1fb3BJbmZvMiksIGxvb2tVcE5vZGUoaXIubV9jaGlsZDEpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRE9NSklUOjpLaW5kOjpHZXRXcmFwcGVk
OgorICAgICAgICAgICAgcmVnaXN0ZXJOb2RlKCZpciwgYWRkVG9HcmFwaChHZXRET01XcmFwcGVk
LCBPcEluZm8oaXIubV9vcEluZm8xKSwgbG9va1VwTm9kZShpci5tX2NoaWxkMSkpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRE9NSklUOjpLaW5kOjpMb2FkUG9pbnRlcjoK
KyAgICAgICAgICAgIHJlZ2lzdGVyTm9kZSgmaXIsIGFkZFRvR3JhcGgoTG9hZE9wYXF1ZVBvaW50
ZXIsIE9wSW5mbyhpci5tX29wSW5mbzEpLCBsb29rVXBOb2RlKGlyLm1fY2hpbGQxKSkpOworICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBET01KSVQ6OktpbmQ6OlRvV3JhcHBlcjoK
KyAgICAgICAgICAgIHJlZ2lzdGVyTm9kZSgmaXIsIGFkZFRvR3JhcGgoVG9ET01XcmFwcGVyLCBP
cEluZm8oaXIubV9vcEluZm8xKSwgT3BJbmZvKGlyLm1fb3BJbmZvMiksIGFkZFRvR3JhcGgoR2V0
R2xvYmFsT2JqZWN0LCB0aGlzTm9kZSksIGxvb2tVcE5vZGUoaXIubV9jaGlsZDEpKSk7CisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIERPTUpJVDo6S2luZDo6UmV0dXJuOgorICAg
ICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihyZXN1bHRPcGVyYW5kKSwgbG9va1VwTm9kZShp
ci5tX2NoaWxkMSkpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBET01KSVQ6
OktpbmQ6OkV4dGVybmFsOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgQ2hlY2tzRnVuY3Rvcj4K
IGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVR5cGVkQXJyYXlDb25zdHJ1Y3RvcigKICAgICBp
bnQgcmVzdWx0T3BlcmFuZCwgSW50ZXJuYWxGdW5jdGlvbiogZnVuY3Rpb24sIGludCByZWdpc3Rl
ck9mZnNldCwKQEAgLTMzMTIsNiArMzM2NSw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRs
ZUdldEJ5SWQoCiAgICAgCiAgICAgQVNTRVJUKGdldEJ5SWRTdGF0dXMubnVtVmFyaWFudHMoKSA9
PSAxKTsKICAgICBHZXRCeUlkVmFyaWFudCB2YXJpYW50ID0gZ2V0QnlJZFN0YXR1c1swXTsKKwog
ICAgICAgICAgICAgICAgIAogICAgIE5vZGUqIGxvYWRlZFZhbHVlID0gbG9hZChwcmVkaWN0aW9u
LCBiYXNlLCBpZGVudGlmaWVyTnVtYmVyLCB2YXJpYW50KTsKICAgICBpZiAoIWxvYWRlZFZhbHVl
KSB7CkBAIC0zMzI0LDYgKzMzNzgsMTQgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlR2V0
QnlJZCgKICAgICAgICAgbV9ncmFwaC5jb21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkR2V0QnlJ
ZCgpOwogCiAgICAgQVNTRVJUKHR5cGUgPT0gQWNjZXNzVHlwZTo6R2V0IHx8ICF2YXJpYW50LmNh
bGxMaW5rU3RhdHVzKCkpOworCisgICAgaWYgKHZhcmlhbnQuZG9tSklUKCkpIHsKKyAgICAgICAg
aWYgKGhhbmRsZURPTUpJVEdldHRlcihkZXN0aW5hdGlvbk9wZXJhbmQsIHZhcmlhbnQsIGJhc2Us
IHByZWRpY3Rpb24pKSB7CisgICAgICAgICAgICBhZGRUb0dyYXBoKFBoYW50b20sIGxvYWRlZFZh
bHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICgh
dmFyaWFudC5jYWxsTGlua1N0YXR1cygpICYmIHZhcmlhbnQuaW50cmluc2ljKCkgPT0gTm9JbnRy
aW5zaWMpIHsKICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihkZXN0aW5hdGlvbk9wZXJhbmQp
LCBsb2FkZWRWYWx1ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDbG9iYmVyaXplLmgKaW5kZXggODdkOGI1MmQ4Y2Q3OWZkNDkyNGM4NTgyMTQyNjE2ZTcy
ZGE3MjNjNC4uYjc1NWYyY2VmNmUwNmIyN2M3ZmEwMTAyYjdmZWQzMDNmYzdhYjQwNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTg0NSw2ICs4NDUsMTAg
QEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1
bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihDaGVj
a1R5cGVJbmZvRmxhZ3NMb2MsIEpTQ2VsbF90eXBlSW5mb0ZsYWdzLCBub2RlLT5jaGlsZDEoKSks
IExhenlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwogCisgICAgY2FzZSBDaGVja05vZGVG
bGFnczoKKyAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2Ug
T3ZlcnJpZGVzSGFzSW5zdGFuY2U6CiAgICAgICAgIHJlYWQoSlNDZWxsX3R5cGVJbmZvRmxhZ3Mp
OwogICAgICAgICBkZWYoSGVhcExvY2F0aW9uKE92ZXJyaWRlc0hhc0luc3RhbmNlTG9jLCBKU0Nl
bGxfdHlwZUluZm9GbGFncywgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CkBAIC04
ODMsNiArODg3LDE4IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUs
IGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihIZWFw
TG9jYXRpb24oQnV0dGVyZmx5TG9jLCBKU09iamVjdF9idXR0ZXJmbHksIG5vZGUtPmNoaWxkMSgp
KSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBGSVhNRTogUHJl
Y2lzZWx5IG1vZGVsIGl0LgorICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CisgICAgY2FzZSBH
ZXRET01XcmFwcGVkOgorICAgICAgICByZWFkKE9wYXF1ZVBvaW50ZXIpOworICAgICAgICB3cml0
ZShIZWFwKTsKKyAgICAgICAgcmV0dXJuOworCisgICAgY2FzZSBUb0RPTVdyYXBwZXI6CisgICAg
ICAgIHJlYWQoT3BhcXVlUG9pbnRlcik7CisgICAgICAgIHdyaXRlKEhlYXApOworICAgICAgICBy
ZXR1cm47CisKICAgICBjYXNlIEFycmF5aWZ5OgogICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVy
ZToKICAgICAgICAgcmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyc0V4aXRTdGF0ZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJzRXhpdFN0YXRlLmNwcAppbmRleCBiZDMzOWI4OWE1
MTI0YjNmNzQ3M2FhMTJhN2Q0MDg5NjBiMGNlZmYzLi5jM2UzOGUyMDg3NmVlZDE3NWIxZjVhMzlk
MjU3ZmY2OTIxY2UwZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Nsb2JiZXJzRXhpdFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Nsb2JiZXJzRXhpdFN0YXRlLmNwcApAQCAtNjksNiArNjksOCBAQCBib29sIGNsb2JiZXJzRXhp
dFN0YXRlKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFJlYWxsb2NhdGVQcm9w
ZXJ0eVN0b3JhZ2U6CiAgICAgY2FzZSBTdG9yZUJhcnJpZXI6CiAgICAgY2FzZSBGZW5jZWRTdG9y
ZUJhcnJpZXI6CisgICAgY2FzZSBHZXRET01XcmFwcGVkOgorICAgIGNhc2UgTG9hZE9wYXF1ZVBv
aW50ZXI6CiAgICAgICAgIC8vIFRoZXNlIGRvIGNsb2JiZXIgbWVtb3J5LCBidXQgbm90aGluZyB0
aGF0IGlzIG9ic2VydmFibGUuIEl0IG1heSBiZSBuaWNlIHRvIHNlcGFyYXRlIHRoZQogICAgICAg
ICAvLyBoZWFwcyBpbnRvIHRob3NlIHRoYXQgYXJlIG9ic2VydmFibGUgYW5kIHRob3NlIHRoYXQg
YXJlbid0LCBidXQgd2UgZG9uJ3QgZG8gdGhhdCByaWdodCBub3cuCiAgICAgICAgIC8vIEZJWE1F
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4NDQwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggMGFkNTRmZWUyZmYzOWQ4ODU3MGIx
Nzc2NzgxZjI0MTk2MDlmZGNkYS4uN2I1YTc3NDhkMzgzNDgxNzY2NGRlMWE2ZmQ3YzI0M2Q4NGVi
N2RkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTE2LDYg
KzExNiw5IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNl
IENoZWNrU3RydWN0dXJlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBjYXNlIEdldEJ1
dHRlcmZseToKKyAgICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgorICAgIGNhc2UgR2V0RE9NV3Jh
cHBlZDoKKyAgICBjYXNlIFRvRE9NV3JhcHBlcjoKICAgICBjYXNlIENoZWNrQXJyYXk6CiAgICAg
Y2FzZSBHZXRTY29wZToKICAgICBjYXNlIFNraXBTY29wZToKQEAgLTIwMyw2ICsyMDYsNyBAQCBi
b29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDb25zdGFudFN0
b3JhZ2VQb2ludGVyOgogICAgIGNhc2UgQ2hlY2s6CiAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxh
Z3M6CisgICAgY2FzZSBDaGVja05vZGVGbGFnczoKICAgICBjYXNlIE11bHRpR2V0QnlPZmZzZXQ6
CiAgICAgY2FzZSBWYWx1ZVJlcDoKICAgICBjYXNlIERvdWJsZVJlcDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDVhZDZhZmQ0N2I0ODI1MDM5MDI0
Mzc1OTgxOTg2MzZkZmFhMTE4MDAuLmNmMmZjMDZiZWIzN2M3M2I2MTU0MTljMTkwMjNhMmNmZTg2
YzNlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApA
QCAtMTI0NCw3ICsxMjQ0LDggQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAg
ICAgICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgICAgIGNhc2UgQ2hlY2tDZWxsOgogICAg
ICAgICBjYXNlIENyZWF0ZVRoaXM6Ci0gICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OiB7CisgICAg
ICAgIGNhc2UgR2V0QnV0dGVyZmx5OgorICAgICAgICBjYXNlIEdldERPTVdyYXBwZWQ6IHsKICAg
ICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KQEAgLTE2MDMsNiArMTYwNCwxMCBAQCBjbGFzcyBGaXh1cFBoYXNl
IDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4obm9kZS0+
Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBUb0RPTVdyYXBw
ZXI6CisgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAgIC8vIEhh
dmUgdGhlc2Ugbm8tb3AgY2FzZXMgaGVyZSB0byBlbnN1cmUgdGhhdCBub2JvZHkgZm9yZ2V0cyB0
byBhZGQgaGFuZGxlcnMgZm9yIG5ldyBvcGNvZGVzLgogICAgICAgICBjYXNlIFNldEFyZ3VtZW50
OgpAQCAtMTYyMSw2ICsxNjI2LDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7
CiAgICAgICAgIGNhc2UgTm90aWZ5V3JpdGU6CiAgICAgICAgIGNhc2UgQ2FsbDoKICAgICAgICAg
Y2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CisgICAgICAgIGNhc2UgQ2hlY2tOb2RlRmxhZ3M6CiAg
ICAgICAgIGNhc2UgVGFpbENhbGxJbmxpbmVkQ2FsbGVyOgogICAgICAgICBjYXNlIENvbnN0cnVj
dDoKICAgICAgICAgY2FzZSBDYWxsVmFyYXJnczoKQEAgLTE2NzEsNiArMTY3Nyw3IEBAIGNsYXNz
IEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICBjYXNlIFB1dEJ5VmFsV2l0aFRo
aXM6CiAgICAgICAgIGNhc2UgR2V0QnlWYWxXaXRoVGhpczoKICAgICAgICAgY2FzZSBDb21wYXJl
RXFQdHI6CisgICAgICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIAogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dlbmVyYXRpb25JbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0dlbmVyYXRpb25JbmZvLmgKaW5kZXggZTlkZjg0MTA2ODUyNThjNjQ5Mzdh
ZjRlNmUzNmU1ZTAwNzc2ZGU5MC4uMzgyZGVhMWM2MjJmYjNjNTQ0MGRiOGQ4ZDEwZWU3ZThiYTc4
MDBiMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9u
SW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR2VuZXJhdGlvbkluZm8u
aApAQCAtMTQ2LDYgKzE0NiwxMSBAQCBjbGFzcyBHZW5lcmF0aW9uSW5mbyB7CiAgICAgewogICAg
ICAgICBpbml0R1BSKG5vZGUsIHVzZUNvdW50LCBncHIsIERhdGFGb3JtYXRTdG9yYWdlKTsKICAg
ICB9CisgICAgdm9pZCBpbml0T3BhcXVlUG9pbnRlcihOb2RlKiBub2RlLCB1aW50MzJfdCB1c2VD
b3VudCwgR1BSUmVnIGdwcikKKyAgICB7CisgICAgICAgIGluaXRHUFIobm9kZSwgdXNlQ291bnQs
IGdwciwgRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXIpOworICAgIH0KKwogCiAgICAgLy8gR2V0IHRo
ZSBub2RlIHRoYXQgcHJvZHVjZWQgdGhpcyB2YWx1ZS4KICAgICBOb2RlKiBub2RlKCkgeyByZXR1
cm4gbV9ub2RlOyB9CkBAIC0zNzEsNiArMzc2LDEwIEBAIGNsYXNzIEdlbmVyYXRpb25JbmZvIHsK
ICAgICB7CiAgICAgICAgIGZpbGxHUFIoc3RyZWFtLCBncHIsIERhdGFGb3JtYXRTdG9yYWdlKTsK
ICAgICB9CisgICAgdm9pZCBmaWxsT3BhcXVlUG9pbnRlcihWYXJpYWJsZUV2ZW50U3RyZWFtJiBz
dHJlYW0sIEdQUlJlZyBncHIpCisgICAgeworICAgICAgICBmaWxsR1BSKHN0cmVhbSwgZ3ByLCBE
YXRhRm9ybWF0T3BhcXVlUG9pbnRlcik7CisgICAgfQogCiAgICAgYm9vbCBhbGl2ZSgpCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRleCA0YmFlOWFlOTYzNjA5YzNmMzcz
MDZiMTRmNTcyZjJiNGZhYzU3NDRiLi44MDI2NzQ3NmEyZTE0MzQ2OTBhMjQ5NWEyNTJhZDk4YmIy
YTNlMTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtNTgsNiArNTgsMTAg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK25hbWVzcGFjZSBET01KSVQgeworY2xhc3MgR3JhcGg7
Cit9CisKIG5hbWVzcGFjZSBQcm9maWxlciB7CiBjbGFzcyBFeGVjdXRpb25Db3VudGVyOwogfQpA
QCAtMTIxNSw2ICsxMjE5LDExIEBAIHN0cnVjdCBOb2RlIHsKICAgICB7CiAgICAgICAgIHJldHVy
biByZXN1bHQoKSA9PSBOb2RlUmVzdWx0U3RvcmFnZTsKICAgICB9CisKKyAgICBib29sIGhhc09w
YXF1ZVBvaW50ZXJSZXN1bHQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlc3VsdCgpID09IE5v
ZGVSZXN1bHRPcGFxdWVQb2ludGVyOworICAgIH0KICAgICAKICAgICBVc2VLaW5kIGRlZmF1bHRV
c2VLaW5kKCkKICAgICB7CkBAIC0yMjU5LDYgKzIyNjgsMjEgQEAgc3RydWN0IE5vZGUgewogICAg
IHsKICAgICAgICAgcmV0dXJuIG9wMS0+c2hvdWxkU3BlY3VsYXRlQXJyYXkoKSAmJiBvcDItPnNo
b3VsZFNwZWN1bGF0ZUFycmF5KCk7CiAgICAgfQorCisgICAgYm9vbCBzaG91bGRTcGVjdWxhdGVE
T01Ob2RlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc0RPTU5vZGVTcGVjdWxhdGlvbihwcmVk
aWN0aW9uKCkpOworICAgIH0KKworICAgIGJvb2wgc2hvdWxkU3BlY3VsYXRlRE9NRWxlbWVudCgp
CisgICAgeworICAgICAgICByZXR1cm4gaXNET01FbGVtZW50U3BlY3VsYXRpb24ocHJlZGljdGlv
bigpKTsKKyAgICB9CisKKyAgICBib29sIHNob3VsZFNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBl
cigpCisgICAgeworICAgICAgICByZXR1cm4gaXNET01Eb2N1bWVudFdyYXBwZXJTcGVjdWxhdGlv
bihwcmVkaWN0aW9uKCkpOworICAgIH0KICAgICAKICAgICBib29sIGNhblNwZWN1bGF0ZUludDMy
KFJhcmVDYXNlUHJvZmlsaW5nU291cmNlIHNvdXJjZSkKICAgICB7CkBAIC0yMzA4LDcgKzIzMzIs
NTMgQEAgc3RydWN0IE5vZGUgewogICAgICAgICBBU1NFUlQoaGFzQmFzaWNCbG9ja0xvY2F0aW9u
KCkpOwogICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8QmFzaWNCbG9ja0xvY2F0aW9uKj4oKTsK
ICAgICB9Ci0gICAgCisKKyAgICBib29sIGhhc09wYXF1ZVBvaW50ZXJPZmZzZXQzMigpCisgICAg
eworICAgICAgICByZXR1cm4gb3AoKSA9PSBMb2FkT3BhcXVlUG9pbnRlciB8fCBvcCgpID09IEdl
dERPTVdyYXBwZWQgfHwgb3AoKSA9PSBDaGVja05vZGVGbGFncyB8fCBvcCgpID09IFRvRE9NV3Jh
cHBlcjsKKyAgICB9CisKKyAgICB1aW50MzJfdCBvcGFxdWVQb2ludGVyT2Zmc2V0MzIoKQorICAg
IHsKKyAgICAgICAgQVNTRVJUKGhhc09wYXF1ZVBvaW50ZXJPZmZzZXQzMigpKTsKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90PihtX29wSW5mby5hczx1aW50NjRfdD4oKSk7Cisg
ICAgfQorCisgICAgYm9vbCBoYXNXb3JsZElzTm9ybWFsT2Zmc2V0MzIoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG9wKCkgPT0gVG9ET01XcmFwcGVyOworICAgIH0KKworICAgIHVpbnQzMl90IHdv
cmxkSXNOb3JtYWxPZmZzZXQzMigpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzV29ybGRJc05v
cm1hbE9mZnNldDMyKCkpOworICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8dWludDY0X3Q+KCkg
Pj4gMzI7CisgICAgfQorCisgICAgYm9vbCBoYXNOb2RlRmxhZ3NPcGVyYW5kKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBvcCgpID09IENoZWNrTm9kZUZsYWdzOworICAgIH0KKworICAgIHVpbnQz
Ml90IG5vZGVGbGFnc09wZXJhbmQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc05vZGVGbGFn
c09wZXJhbmQoKSk7CisgICAgICAgIHJldHVybiBtX29wSW5mbzIuYXM8dWludDMyX3Q+KCk7Cisg
ICAgfQorCisgICAgYm9vbCBoYXNTbG93VG9KU09wZXJhdGlvbigpCisgICAgeworICAgICAgICBy
ZXR1cm4gb3AoKSA9PSBUb0RPTVdyYXBwZXI7CisgICAgfQorCisgICAgdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSAoKlRvSlNPcGVyYXRpb24pKEpTQzo6RXhlY1N0YXRlKiwgdm9pZCosIHZvaWQqKTsK
KworICAgIFRvSlNPcGVyYXRpb24gc2xvd1RvSlNPcGVyYXRpb24oKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKGhhc1Nsb3dUb0pTT3BlcmF0aW9uKCkpOworICAgICAgICByZXR1cm4gYml0d2lzZV9j
YXN0PFRvSlNPcGVyYXRpb24+KG1fb3BJbmZvMi5hczx1aW50cHRyX3Q+KCkpOworICAgIH0KKwog
ICAgIE5vZGUqIHJlcGxhY2VtZW50KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX21p
c2MucmVwbGFjZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVGbGFncy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5j
cHAKaW5kZXggMzQwODQyMTkwMjBmMTEyMWM0ZDhlZGJiNDZiM2RlNjhhYzI5MjA2Zi4uYTQwM2Zk
NDIzYjIwNzU3MmM5Y2FjMmZiMTE5Y2ZiZjRjNmM5ZGQxOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZUZsYWdzLmNwcApAQCAtNjIsNiArNjIsOSBAQCB2b2lkIGR1bXBOb2Rl
RmxhZ3MoUHJpbnRTdHJlYW0mIGFjdHVhbE91dCwgTm9kZUZsYWdzIGZsYWdzKQogICAgICAgICBj
YXNlIE5vZGVSZXN1bHRTdG9yYWdlOgogICAgICAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiU3Rv
cmFnZSIpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZVJlc3VsdE9wYXF1
ZVBvaW50ZXI6CisgICAgICAgICAgICBvdXQucHJpbnQoY29tbWEsICJPcGFxdWVQb2ludGVyIik7
CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVGbGFncy5oCmluZGV4IDRhYmFkZGYyNDkzYzYzZjU0MDY1Y2Qz
MDFhMzRiYmM2NzBkYmZkMWEuLjU0NzE4YWM1Mjc0M2JjYmM3ZDc4MTNmZDFmYzM3ODJmOGI4NTMx
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZUZsYWdzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlRmxhZ3MuaApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKIC8vIEVudHJpZXMgaW4g
dGhlIE5vZGVUeXBlIGVudW0gKGJlbG93KSBhcmUgY29tcG9zZWQgb2YgYW4gaWQsIGEgcmVzdWx0
IHR5cGUgKHBvc3NpYmx5IG5vbmUpCiAvLyBhbmQgc29tZSBhZGRpdGlvbmFsIGluZm9ybWF0aXZl
IGZsYWdzIChtdXN0IGdlbmVyYXRlLCBpcyBjb25zdGFudCwgZXRjKS4KLSNkZWZpbmUgTm9kZVJl
c3VsdE1hc2sgICAgICAgICAgICAgICAgICAgMHgwMDA3CisjZGVmaW5lIE5vZGVSZXN1bHRNYXNr
ICAgICAgICAgICAgICAgICAgIDB4MDAwZgogI2RlZmluZSBOb2RlUmVzdWx0SlMgICAgICAgICAg
ICAgICAgICAgICAweDAwMDEKICNkZWZpbmUgTm9kZVJlc3VsdE51bWJlciAgICAgICAgICAgICAg
ICAgMHgwMDAyCiAjZGVmaW5lIE5vZGVSZXN1bHREb3VibGUgICAgICAgICAgICAgICAgIDB4MDAw
MwpAQCAtNDIsMzUgKzQyLDM2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICNk
ZWZpbmUgTm9kZVJlc3VsdEludDUyICAgICAgICAgICAgICAgICAgMHgwMDA1CiAjZGVmaW5lIE5v
ZGVSZXN1bHRCb29sZWFuICAgICAgICAgICAgICAgIDB4MDAwNgogI2RlZmluZSBOb2RlUmVzdWx0
U3RvcmFnZSAgICAgICAgICAgICAgICAweDAwMDcKKyNkZWZpbmUgTm9kZVJlc3VsdE9wYXF1ZVBv
aW50ZXIgICAgICAgICAgMHgwMDA4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAot
I2RlZmluZSBOb2RlTXVzdEdlbmVyYXRlICAgICAgICAgICAgICAgICAweDAwMDggLy8gc2V0IG9u
IG5vZGVzIHRoYXQgaGF2ZSBzaWRlIGVmZmVjdHMsIGFuZCBtYXkgbm90IHRyaXZpYWxseSBiZSBy
ZW1vdmVkIGJ5IERDRS4KLSNkZWZpbmUgTm9kZUhhc1ZhckFyZ3MgICAgICAgICAgICAgICAgICAg
MHgwMDEwCisjZGVmaW5lIE5vZGVNdXN0R2VuZXJhdGUgICAgICAgICAgICAgICAgIDB4MDAxMCAv
LyBzZXQgb24gbm9kZXMgdGhhdCBoYXZlIHNpZGUgZWZmZWN0cywgYW5kIG1heSBub3QgdHJpdmlh
bGx5IGJlIHJlbW92ZWQgYnkgRENFLgorI2RlZmluZSBOb2RlSGFzVmFyQXJncyAgICAgICAgICAg
ICAgICAgICAweDAwMjAKICAgICAKLSNkZWZpbmUgTm9kZUJlaGF2aW9yTWFzayAgICAgICAgICAg
ICAgICAgMHgwN2UwCi0jZGVmaW5lIE5vZGVNYXlIYXZlRG91YmxlUmVzdWx0ICAgICAgICAgIDB4
MDAyMAotI2RlZmluZSBOb2RlTWF5T3ZlcmZsb3dJbnQ1MiAgICAgICAgICAgICAweDAwNDAKLSNk
ZWZpbmUgTm9kZU1heU92ZXJmbG93SW50MzJJbkJhc2VsaW5lICAgMHgwMDgwCi0jZGVmaW5lIE5v
ZGVNYXlPdmVyZmxvd0ludDMySW5ERkcgICAgICAgIDB4MDEwMAotI2RlZmluZSBOb2RlTWF5TmVn
WmVyb0luQmFzZWxpbmUgICAgICAgICAweDAyMDAKLSNkZWZpbmUgTm9kZU1heU5lZ1plcm9JbkRG
RyAgICAgICAgICAgICAgMHgwNDAwCi0jZGVmaW5lIE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0
ICAgICAgIDB4MDgwMAorI2RlZmluZSBOb2RlQmVoYXZpb3JNYXNrICAgICAgICAgICAgICAgICAw
eDBmYzAKKyNkZWZpbmUgTm9kZU1heUhhdmVEb3VibGVSZXN1bHQgICAgICAgICAgMHgwMDQwCisj
ZGVmaW5lIE5vZGVNYXlPdmVyZmxvd0ludDUyICAgICAgICAgICAgIDB4MDA4MAorI2RlZmluZSBO
b2RlTWF5T3ZlcmZsb3dJbnQzMkluQmFzZWxpbmUgICAweDAxMDAKKyNkZWZpbmUgTm9kZU1heU92
ZXJmbG93SW50MzJJbkRGRyAgICAgICAgMHgwMjAwCisjZGVmaW5lIE5vZGVNYXlOZWdaZXJvSW5C
YXNlbGluZSAgICAgICAgIDB4MDQwMAorI2RlZmluZSBOb2RlTWF5TmVnWmVyb0luREZHICAgICAg
ICAgICAgICAweDA4MDAKKyNkZWZpbmUgTm9kZU1heUhhdmVOb25OdW1iZXJSZXN1bHQgICAgICAg
MHgxMDAwCiAjZGVmaW5lIE5vZGVNYXlIYXZlTm9uSW50UmVzdWx0ICAgICAgICAgIChOb2RlTWF5
SGF2ZURvdWJsZVJlc3VsdCB8IE5vZGVNYXlIYXZlTm9uTnVtYmVyUmVzdWx0KQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKLSNkZWZpbmUgTm9kZUJ5dGVjb2RlQmFja1Byb3BNYXNr
ICAgICAgICAweDFmMDAwCisjZGVmaW5lIE5vZGVCeXRlY29kZUJhY2tQcm9wTWFzayAgICAgICAg
MHgzZTAwMAogI2RlZmluZSBOb2RlQnl0ZWNvZGVVc2VCb3R0b20gICAgICAgICAgIDB4MDAwMDAK
LSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyICAgICAgICAweDAxMDAwIC8vIFRoZSBy
ZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBv
YnNlcnZlcyBmcmFjdGlvbmFsLCBvciBiaWdnZXItdGhhbi1pbnQzMiwgcmVzdWx0cy4KLSNkZWZp
bmUgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvICAgICAgICAweDAyMDAwIC8vIFRoZSByZXN1bHQg
b2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBvYnNlcnZl
cyAtMC4KLSNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIgICAgICAgICAweDA0MDAwIC8v
IFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBhIGNvbnRleHQg
dGhhdCBkaXN0aW5ndWlzaGVzIGJldHdlZW4gTmFOIGFuZCBvdGhlciB0aGluZ3MgKGxpa2UgdW5k
ZWZpbmVkKS4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyICAgICAgICAweDAyMDAw
IC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBhIGNvbnRl
eHQgdGhhdCBvYnNlcnZlcyBmcmFjdGlvbmFsLCBvciBiaWdnZXItdGhhbi1pbnQzMiwgcmVzdWx0
cy4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvICAgICAgICAweDA0MDAwIC8vIFRo
ZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhh
dCBvYnNlcnZlcyAtMC4KKyNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIgICAgICAgICAw
eDA4MDAwIC8vIFRoZSByZXN1bHQgb2YgdGhpcyBjb21wdXRhdGlvbiBtYXkgYmUgdXNlZCBpbiBh
IGNvbnRleHQgdGhhdCBkaXN0aW5ndWlzaGVzIGJldHdlZW4gTmFOIGFuZCBvdGhlciB0aGluZ3Mg
KGxpa2UgdW5kZWZpbmVkKS4KICNkZWZpbmUgTm9kZUJ5dGVjb2RlVXNlc0FzVmFsdWUgICAgICAg
ICAoTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyIHwgTm9kZUJ5dGVjb2RlTmVlZHNOZWdaZXJvIHwg
Tm9kZUJ5dGVjb2RlVXNlc0FzT3RoZXIpCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc0ludCAg
ICAgICAgICAgMHgwODAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gaXMga25v
d24gdG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBwcmVmZXJzLCBidXQgZG9lcyBub3QgcmVx
dWlyZSwgaW50ZWdlciB2YWx1ZXMuCi0jZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc0FycmF5SW5k
ZXggICAgMHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gaXMga25vd24g
dG8gYmUgdXNlZCBpbiBhIGNvbnRleHQgdGhhdCBzdHJvbmdseSBwcmVmZXJzIGludGVnZXIgdmFs
dWVzLCB0byB0aGUgcG9pbnQgdGhhdCB3ZSBzaG91bGQgYXZvaWQgdXNpbmcgZG91YmxlcyBpZiBh
dCBhbGwgcG9zc2libGUuCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc0ludCAgICAgICAgICAg
MHgxMDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gaXMga25vd24gdG8gYmUg
dXNlZCBpbiBhIGNvbnRleHQgdGhhdCBwcmVmZXJzLCBidXQgZG9lcyBub3QgcmVxdWlyZSwgaW50
ZWdlciB2YWx1ZXMuCisjZGVmaW5lIE5vZGVCeXRlY29kZVVzZXNBc0FycmF5SW5kZXggICAgMHgy
MDAwMCAvLyBUaGUgcmVzdWx0IG9mIHRoaXMgY29tcHV0YXRpb24gaXMga25vd24gdG8gYmUgdXNl
ZCBpbiBhIGNvbnRleHQgdGhhdCBzdHJvbmdseSBwcmVmZXJzIGludGVnZXIgdmFsdWVzLCB0byB0
aGUgcG9pbnQgdGhhdCB3ZSBzaG91bGQgYXZvaWQgdXNpbmcgZG91YmxlcyBpZiBhdCBhbGwgcG9z
c2libGUuCiAKICNkZWZpbmUgTm9kZUFyaXRoRmxhZ3NNYXNrICAgICAgICAgICAgICAgKE5vZGVC
ZWhhdmlvck1hc2sgfCBOb2RlQnl0ZWNvZGVCYWNrUHJvcE1hc2spCiAKLSNkZWZpbmUgTm9kZUlz
Rmx1c2hlZCAgICAgICAgICAgICAgICAgICAweDIwMDAwIC8vIENvbXB1dGVkIGJ5IENQU1JldGhy
ZWFkaW5nUGhhc2UsIHdpbGwgdGVsbCB5b3Ugd2hpY2ggbG9jYWwgbm9kZXMgYXJlIGJhY2t3YXJk
cy1yZWFjaGFibGUgZnJvbSBhIEZsdXNoLgorI2RlZmluZSBOb2RlSXNGbHVzaGVkICAgICAgICAg
ICAgICAgICAgIDB4MDQwMDAwIC8vIENvbXB1dGVkIGJ5IENQU1JldGhyZWFkaW5nUGhhc2UsIHdp
bGwgdGVsbCB5b3Ugd2hpY2ggbG9jYWwgbm9kZXMgYXJlIGJhY2t3YXJkcy1yZWFjaGFibGUgZnJv
bSBhIEZsdXNoLgogCi0jZGVmaW5lIE5vZGVNaXNjRmxhZzEgICAgICAgICAgICAgICAgICAgMHg0
MDAwMAotI2RlZmluZSBOb2RlTWlzY0ZsYWcyICAgICAgICAgICAgICAgICAgIDB4ODAwMDAKKyNk
ZWZpbmUgTm9kZU1pc2NGbGFnMSAgICAgICAgICAgICAgICAgICAweDA4MDAwMAorI2RlZmluZSBO
b2RlTWlzY0ZsYWcyICAgICAgICAgICAgICAgICAgIDB4MTAwMDAwCiAKIHR5cGVkZWYgdWludDMy
X3QgTm9kZUZsYWdzOwogCkBAIC0xNjQsNiArMTY1LDcgQEAgc3RhdGljIGlubGluZSBOb2RlRmxh
Z3MgY2Fub25pY2FsUmVzdWx0UmVwcmVzZW50YXRpb24oTm9kZUZsYWdzIGZsYWdzKQogICAgIGNh
c2UgTm9kZVJlc3VsdERvdWJsZToKICAgICBjYXNlIE5vZGVSZXN1bHRJbnQ1MjoKICAgICBjYXNl
IE5vZGVSZXN1bHRTdG9yYWdlOgorICAgIGNhc2UgTm9kZVJlc3VsdE9wYXF1ZVBvaW50ZXI6CiAg
ICAgICAgIHJldHVybiBmbGFnczsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gTm9kZVJl
c3VsdEpTOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDhiNGQ5
ZjBjMzA5YTdjMTg5ZDY1MjI3NjliMDdkNTI5NGQ2NmM0ZmQuLjY0M2U3NzI4ZTM3OGYwNWVhYjlj
MDg5ODExOTdmMzc5YTIyOTMxYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVU
eXBlLmgKQEAgLTM5NCw2ICszOTQsMTIgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogICAgIG1hY3JvKEdldE1hcEJ1Y2tldCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oTG9h
ZEZyb21KU01hcEJ1Y2tldCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oSXNOb25FbXB0eU1h
cEJ1Y2tldCwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKKyAgICBcCisgICAgLyogTm9kZXMgZm9yIERP
TSBKSVQgKi9cCisgICAgbWFjcm8oTG9hZE9wYXF1ZVBvaW50ZXIsIE5vZGVSZXN1bHRPcGFxdWVQ
b2ludGVyKSBcCisgICAgbWFjcm8oQ2hlY2tOb2RlRmxhZ3MsIE5vZGVNdXN0R2VuZXJhdGUpIFwK
KyAgICBtYWNybyhHZXRET01XcmFwcGVkLCBOb2RlUmVzdWx0T3BhcXVlUG9pbnRlcikgXAorICAg
IG1hY3JvKFRvRE9NV3JhcHBlciwgTm9kZVJlc3VsdEpTKSBcCiAKIC8vIFRoaXMgZW51bSBnZW5l
cmF0ZXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgaWQgZm9yIGFsbCBOb2RlIHR5cGVzLAog
Ly8gYW5kIGlzIHVzZWQgYnkgdGhlIHN1YnNlcXVlbnQgZW51bSB0byBmaWxsIG91dCB0aGUgaWQg
KGFzIGFjY2Vzc2VkIHZpYSB0aGUgTm9kZUlkTWFzaykuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmlu
ZGV4IGJhZmRmOTA2ZWJmNmY3MzA3Y2FmNDBmNmI4NWMxMWIwMTE5ZTFmMjIuLjI3NDU3MGNjZjlm
ZjZiNWJmMDJlNTkxMDJiNjE0YjRkYTdlNTcxOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBA
IC04MTksNiArODE5LDE2IEBAIGNsYXNzIFByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlIDogcHVi
bGljIFBoYXNlIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyAgICAgICAgY2Fz
ZSBMb2FkT3BhcXVlUG9pbnRlcjoKKyAgICAgICAgY2FzZSBHZXRET01XcmFwcGVkOgorICAgICAg
ICAgICAgc2V0UHJlZGljdGlvbihTcGVjT3RoZXIpOworICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgLy8gRklYTUU6IE1vZGVsIHByZWNpc2VseS4KKyAgICAgICAgY2FzZSBUb0RPTVdyYXBw
ZXI6CisgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNET01Ob2RlIHwgU3BlY090aGVyKTsK
KyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgQ2FsbE9iamVjdENvbnN0cnVjdG9y
OiB7CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNPYmplY3QpOwogICAgICAgICAgICAg
YnJlYWs7CkBAIC0xMDU4LDYgKzEwNjgsNyBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgogICAgICAg
ICBjYXNlIFBoYW50b206CiAgICAgICAgIGNhc2UgQ2hlY2s6CisgICAgICAgIGNhc2UgQ2hlY2tO
b2RlRmxhZ3M6CiAgICAgICAgIGNhc2UgUHV0R2xvYmFsVmFyaWFibGU6CiAgICAgICAgIGNhc2Ug
Q2hlY2tXYXRjaGRvZ1RpbWVyOgogICAgICAgICBjYXNlIExvZ1NoYWRvd0NoaWNrZW5Qcm9sb2d1
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXgg
YmRkZDQ2NjAxN2U5Zjg3YjZjMDM1NDQwY2Q4YWYxNDdiODY1ZGY0Zi4uNjAxOGY1MmFkZjhhZjcy
MzdmZDczZWFhY2ZiZDYxNTA5YTQwMGU1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTU5LDYgKzU5LDkgQEAgY2xhc3MgU2FmZVRvRXhlY3V0
ZUVkZ2UgewogICAgICAgICBjYXNlIEZpbmFsT2JqZWN0VXNlOgogICAgICAgICBjYXNlIFJlZ0V4
cE9iamVjdFVzZToKICAgICAgICAgY2FzZSBQcm94eU9iamVjdFVzZToKKyAgICAgICAgY2FzZSBE
T01Ob2RlVXNlOgorICAgICAgICBjYXNlIERPTUVsZW1lbnRVc2U6CisgICAgICAgIGNhc2UgRE9N
RG9jdW1lbnRXcmFwcGVyVXNlOgogICAgICAgICBjYXNlIERlcml2ZWRBcnJheVVzZToKICAgICAg
ICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgICAgIGNhc2UgU2V0T2JqZWN0VXNlOgpAQCAtMjE2
LDYgKzIxOSw5IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUs
IEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAg
IGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBjYXNlIEdldEJ1dHRlcmZseToKKyAgICBjYXNlIExv
YWRPcGFxdWVQb2ludGVyOgorICAgIGNhc2UgR2V0RE9NV3JhcHBlZDoKKyAgICBjYXNlIFRvRE9N
V3JhcHBlcjoKICAgICBjYXNlIENoZWNrQXJyYXk6CiAgICAgY2FzZSBBcnJheWlmeToKICAgICBj
YXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CkBAIC0yNTksNiArMjY1LDcgQEAgYm9vbCBzYWZlVG9F
eGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2Rl
KQogICAgIGNhc2UgUHJvZmlsZVR5cGU6CiAgICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6CiAg
ICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CisgICAgY2FzZSBDaGVja05vZGVGbGFnczoKICAg
ICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgogICAgIGNhc2UgSW5zdGFuY2VPZjoKICAgICBj
YXNlIEluc3RhbmNlT2ZDdXN0b206CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDEwZWZiNzIwNDNmMWFjODc3MDFhYmQ4NmY5ZWNjYTFh
ZGY4ZDM3YjEuLmMyMTFkODg0MDBhMDZjZDk1YmYyODM4MDQyNmUxYmE5MjBmOTExNDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC00
MjQsNyArNDI0LDcgQEAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2ls
ZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWwKICAgICAgICAgQVNTRVJUKGlu
Zm8uZ3ByKCkgPT0gc291cmNlKTsKICAgICAgICAgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFG
b3JtYXRJbnQzMikKICAgICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmUzMlBheWxvYWQ7Ci0g
ICAgICAgIGVsc2UgaWYgKHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsIHx8IHJlZ2lz
dGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKQorICAgICAgICBlbHNlIGlmIChyZWdpc3Rl
ckZvcm1hdCA9PSBEYXRhRm9ybWF0Q2VsbCB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0
U3RvcmFnZSB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcikKICAg
ICAgICAgICAgIHNwaWxsQWN0aW9uID0gU3RvcmVQdHI7CiAgICAgICAgIGVsc2UgaWYgKHJlZ2lz
dGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnQ1MiB8fCByZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9y
bWF0U3RyaWN0SW50NTIpCiAgICAgICAgICAgICBzcGlsbEFjdGlvbiA9IFN0b3JlNjQ7CkBAIC00
NzgsNyArNDc4LDcgQEAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBTcGVjdWxhdGl2ZUpJVDo6c2ls
ZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWwKICAgICAgICAgICAgIGZpbGxB
Y3Rpb24gPSBMb2FkMzJQYXlsb2FkOwogI2VuZGlmCiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYg
KHJlZ2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRTdG9yYWdlKSB7CisgICAgfSBlbHNlIGlmIChy
ZWdpc3RlckZvcm1hdCA9PSBEYXRhRm9ybWF0U3RvcmFnZSB8fCByZWdpc3RlckZvcm1hdCA9PSBE
YXRhRm9ybWF0T3BhcXVlUG9pbnRlcikgewogICAgICAgICBBU1NFUlQoaW5mby5ncHIoKSA9PSBz
b3VyY2UpOwogICAgICAgICBmaWxsQWN0aW9uID0gTG9hZFB0cjsKICAgICB9IGVsc2UgaWYgKHJl
Z2lzdGVyRm9ybWF0ID09IERhdGFGb3JtYXRJbnQ1MikgewpAQCAtOTYwLDYgKzk2MCwzNiBAQCBH
UFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTdG9yYWdlKEVkZ2UgZWRnZSkKICAgICB9CiB9CiAK
K0dQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbE9wYXF1ZVBvaW50ZXIoRWRnZSBlZGdlKQorewor
ICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIgPSBlZGdlLT52aXJ0dWFsUmVnaXN0
ZXIoKTsKKyAgICBHZW5lcmF0aW9uSW5mbyYgaW5mbyA9IGdlbmVyYXRpb25JbmZvRnJvbVZpcnR1
YWxSZWdpc3Rlcih2aXJ0dWFsUmVnaXN0ZXIpOworICAgIAorICAgIHN3aXRjaCAoaW5mby5yZWdp
c3RlckZvcm1hdCgpKSB7CisgICAgY2FzZSBEYXRhRm9ybWF0Tm9uZTogeworICAgICAgICBpZiAo
aW5mby5zcGlsbEZvcm1hdCgpID09IERhdGFGb3JtYXRPcGFxdWVQb2ludGVyKSB7CisgICAgICAg
ICAgICBHUFJSZWcgZ3ByID0gYWxsb2NhdGUoKTsKKyAgICAgICAgICAgIG1fZ3Bycy5yZXRhaW4o
Z3ByLCB2aXJ0dWFsUmVnaXN0ZXIsIFNwaWxsT3JkZXJTcGlsbGVkKTsKKyAgICAgICAgICAgIG1f
aml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSwgZ3By
KTsKKyAgICAgICAgICAgIGluZm8uZmlsbE9wYXF1ZVBvaW50ZXIoKm1fc3RyZWFtLCBncHIpOwor
ICAgICAgICAgICAgcmV0dXJuIGdwcjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8g
TXVzdCBiZSBhIGNlbGw7IGZpbGwgaXQgYXMgYSBjZWxsIGFuZCB0aGVuIHJldHVybiB0aGUgcG9p
bnRlci4KKyAgICAgICAgcmV0dXJuIGZpbGxTcGVjdWxhdGVDZWxsKGVkZ2UpOworICAgIH0KKyAg
ICAgICAgCisgICAgY2FzZSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcjogeworICAgICAgICBHUFJS
ZWcgZ3ByID0gaW5mby5ncHIoKTsKKyAgICAgICAgbV9ncHJzLmxvY2soZ3ByKTsKKyAgICAgICAg
cmV0dXJuIGdwcjsKKyAgICB9CisgICAgICAgIAorICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy
biBmaWxsU3BlY3VsYXRlQ2VsbChlZGdlKTsKKyAgICB9Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OnVzZUNoaWxkcmVuKE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKG5vZGUtPmZsYWdzKCkgJiBO
b2RlSGFzVmFyQXJncykgewpAQCAtMjEwNSw2ICsyMTM1LDcgQEAgR2VuZXJhdGVkT3BlcmFuZFR5
cGUgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrR2VuZXJhdGVkVHlwZUZvclRvSW50MzIoTm9kZSogbm9k
ZSkKIAogICAgIHN3aXRjaCAoaW5mby5yZWdpc3RlckZvcm1hdCgpKSB7CiAgICAgY2FzZSBEYXRh
Rm9ybWF0U3RvcmFnZToKKyAgICBjYXNlIERhdGFGb3JtYXRPcGFxdWVQb2ludGVyOgogICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCiAgICAgY2FzZSBEYXRhRm9ybWF0Qm9v
bGVhbjoKQEAgLTMwNTQsNiArMzA4NSwxNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
Q2hlY2tUeXBlSW5mb0ZsYWdzKE5vZGUqIG5vZGUpCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CiAK
K3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja05vZGVGbGFncyhOb2RlKiBub2RlKQor
eworICAgIE9wYXF1ZVBvaW50ZXJPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwor
CisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworCisgICAgc3BlY3VsYXRpb25DaGVj
ayhCYWRUeXBlLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3Nl
bWJsZXI6Olplcm8sIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VHUFIsIG5vZGUtPm9wYXF1
ZVBvaW50ZXJPZmZzZXQzMigpKSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihub2RlLT5u
b2RlRmxhZ3NPcGVyYW5kKCkpKSk7CisKKyAgICBub1Jlc3VsdChub2RlKTsKK30KKwogdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2YoTm9kZSogbm9kZSkKIHsKICAgICBpZiAo
bm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpIHsKQEAgLTcwNTcsNiArNzA5
OSw3MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnV0dGVyZmx5KE5vZGUqIG5v
ZGUpCiAgICAgc3RvcmFnZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogfQogCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlTG9hZE9wYXF1ZVBvaW50ZXIoTm9kZSogbm9kZSkKK3sKKyAgICBP
cGFxdWVQb2ludGVyT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBHUFJU
ZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKKworICAgIEdQUlJlZyBiYXNlR1BS
ID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworCisg
ICAgbV9qaXQubG9hZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNlR1BSLCBub2RlLT5vcGFx
dWVQb2ludGVyT2Zmc2V0MzIoKSksIHJlc3VsdEdQUik7CisKKyAgICBvcGFxdWVQb2ludGVyUmVz
dWx0KHJlc3VsdEdQUiwgbm9kZSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRET01XcmFwcGVkKE5vZGUqIG5vZGUpCit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFz
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBS
ZXVzZSwgYmFzZSk7CisKKyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgR1BS
UmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAgIG1faml0LmxvYWRQdHIoSklUQ29t
cGlsZXI6OkFkZHJlc3MoYmFzZUdQUiwgbm9kZS0+b3BhcXVlUG9pbnRlck9mZnNldDMyKCkpLCBy
ZXN1bHRHUFIpOworCisgICAgb3BhcXVlUG9pbnRlclJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwor
fQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9ET01XcmFwcGVyKE5vZGUqIG5vZGUp
Cit7CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgZ2xvYmFsT2JqZWN0KHRoaXMsIG5vZGUtPmNo
aWxkMSgpKTsKKyAgICBPcGFxdWVQb2ludGVyT3BlcmFuZCB3cmFwcGVkKHRoaXMsIG5vZGUtPmNo
aWxkMigpKTsKKyAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcyk7CisKKyAgICBH
UFJSZWcgZ2xvYmFsT2JqZWN0R1BSID0gZ2xvYmFsT2JqZWN0LmdwcigpOworICAgIEdQUlJlZyB3
cmFwcGVkR1BSID0gd3JhcHBlZC5ncHIoKTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0g
cmVzdWx0LnJlZ3MoKTsKKworICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdE51bGwgPSBtX2ppdC5i
cmFuY2hUZXN0UHRyKEpJVENvbXBpbGVyOjpOb25aZXJvLCB3cmFwcGVkR1BSKTsKKyAgICBtX2pp
dC5tb3ZlVHJ1c3RlZFZhbHVlKGpzTnVsbCgpLCByZXN1bHRSZWdzKTsKKyAgICBKSVRDb21waWxl
cjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOworCisgICAgbm90TnVsbC5saW5rKCZtX2ppdCk7
CisKKyAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworCisgICAgc2xvd0Nhc2Vz
LmFwcGVuZChtX2ppdC5icmFuY2hUZXN0OChNYWNyb0Fzc2VtYmxlcjo6WmVybywgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoZ2xvYmFsT2JqZWN0R1BSLCBub2RlLT53b3JsZElzTm9ybWFsT2Zmc2V0
MzIoKSkpKTsKKworICAgIC8vIFdlYWsgZGVyZWZlcmVuY2UuCisgICAgbV9qaXQubG9hZFB0cihK
SVRDb21waWxlcjo6QWRkcmVzcyh3cmFwcGVkR1BSLCBub2RlLT5vcGFxdWVQb2ludGVyT2Zmc2V0
MzIoKSksIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKTsKKyAgICBzbG93Q2FzZXMuYXBwZW5kKG1f
aml0LmJyYW5jaFRlc3RQdHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJlc3VsdFJlZ3MucGF5bG9h
ZEdQUigpKSk7CisgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0UHRyKE1hY3Jv
QXNzZW1ibGVyOjpOb25aZXJvLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRSZWdzLnBheWxv
YWRHUFIoKSwgV2Vha0ltcGw6Om9mZnNldE9mV2Vha0hhbmRsZU93bmVyKCkpLCBUcnVzdGVkSW1t
MzIoMHgzKSkpOworICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFkZHJlc3MocmVzdWx0
UmVncy5wYXlsb2FkR1BSKCksIFdlYWtJbXBsOjpvZmZzZXRPZkpTVmFsdWUoKSksIHJlc3VsdFJl
Z3MucGF5bG9hZEdQUigpKTsKKyAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQ
dHIoTWFjcm9Bc3NlbWJsZXI6Olplcm8sIHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpKSk7CisKKyNp
ZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIG1faml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcmVzdWx0UmVncy50YWdHUFIoKSk7CisjZW5kaWYK
KworICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChzbG93Q2FzZXMsIHRoaXMs
IG5vZGUtPnNsb3dUb0pTT3BlcmF0aW9uKCksIHJlc3VsdFJlZ3MsIHdyYXBwZWRHUFIsIGdsb2Jh
bE9iamVjdEdQUikpOworCisgICAgZG9uZS5saW5rKCZtX2ppdCk7CisKKyAgICBqc1ZhbHVlUmVz
dWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworfQorCiBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OnRlbXBv
cmFyeVJlZ2lzdGVyRm9yUHV0QnlWYWwoR1BSVGVtcG9yYXJ5JiB0ZW1wb3JhcnksIEFycmF5TW9k
ZSBhcnJheU1vZGUpCiB7CiAgICAgaWYgKCFwdXRCeVZhbFdpbGxOZWVkRXh0cmFSZWdpc3Rlcihh
cnJheU1vZGUpKQpAQCAtNzUwMCw2ICs3NjA2LDQ4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNw
ZWN1bGF0ZVNldE9iamVjdChFZGdlIGVkZ2UpCiAgICAgc3BlY3VsYXRlU2V0T2JqZWN0KGVkZ2Us
IG9wZXJhbmQuZ3ByKCkpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01O
b2RlKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1
ZVNvdXJjZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNET01Ob2RlLCBtX2ppdC5icmFu
Y2hJZk5vdERPTU5vZGUoY2VsbCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVET01Ob2RlKEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNw
ZWNET01Ob2RlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQg
b3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVET01Ob2RlKGVkZ2UsIG9wZXJhbmQu
Z3ByKCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01FbGVtZW50KEVk
Z2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7CisgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJj
ZTo6dW5ib3hlZENlbGwoY2VsbCksIGVkZ2UsIFNwZWNET01FbGVtZW50LCBtX2ppdC5icmFuY2hJ
Zk5vdERPTUVsZW1lbnQoY2VsbCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxh
dGVET01FbGVtZW50KEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2Us
IFNwZWNET01FbGVtZW50KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKKyAgICBzcGVjdWxhdGVET01FbGVtZW50KGVkZ2Us
IG9wZXJhbmQuZ3ByKCkpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGVET01E
b2N1bWVudFdyYXBwZXIoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCkKK3sKKyAgICBzcGVjdWxhdGVD
ZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjRE9NRG9jdW1lbnRXcmFwcGVyLCBET01Eb2N1bWVudFdy
YXBwZXJUeXBlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlRE9NRG9jdW1l
bnRXcmFwcGVyKEVkZ2UgZWRnZSkKK3sKKyAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNw
ZWNET01Eb2N1bWVudFdyYXBwZXIpKQorICAgICAgICByZXR1cm47CisKKyAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBvcGVyYW5kKHRoaXMsIGVkZ2UpOworICAgIHNwZWN1bGF0ZURPTURvY3VtZW50
V3JhcHBlcihlZGdlLCBvcGVyYW5kLmdwcigpKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
c3BlY3VsYXRlT2JqZWN0T3JPdGhlcihFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVkc1R5cGVD
aGVjayhlZGdlLCBTcGVjT2JqZWN0IHwgU3BlY090aGVyKSkKQEAgLTc4MDUsNiArNzk1MywxNSBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpzcGVjdWxhdGUoTm9kZSosIEVkZ2UgZWRnZSkKICAgICBj
YXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgIHNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoZWRn
ZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NTm9kZVVzZToKKyAgICAgICAgc3BlY3Vs
YXRlRE9NTm9kZShlZGdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01FbGVtZW50VXNl
OgorICAgICAgICBzcGVjdWxhdGVET01FbGVtZW50KGVkZ2UpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKKyAgICAgICAgc3BlY3VsYXRlRE9NRG9jdW1l
bnRXcmFwcGVyKGVkZ2UpOworICAgICAgICBicmVhazsKICAgICBjYXNlIFN0cmluZ0lkZW50VXNl
OgogICAgICAgICBzcGVjdWxhdGVTdHJpbmdJZGVudChlZGdlKTsKICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggY2E5
NzhmNmI3Mzk1MTM5NTAxNTEwZDA1ODI4YTAyOTgyMmY4NWExYi4uM2Q1ZjdjZmRjNjgzYmY4MThj
ODk2MjE5M2FhZGYzMTEzZmJhZGRlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaApAQCAtOTIsMjUgKzkyLDI3IEBAIGNsYXNzIFNwZWN1bGF0aXZl
SklUIHsKICAgICAvLyB0aGUgcmVnaXN0ZXIgYWxsb2NhdG9yLgogI2lmIFVTRShKU1ZBTFVFNjQp
CiAgICAgZW51bSBTcGlsbE9yZGVyIHsKLSAgICAgICAgU3BpbGxPcmRlckNvbnN0YW50ID0gMSwg
Ly8gbm8gc3BpbGwsIGFuZCBjaGVhcCBmaWxsCi0gICAgICAgIFNwaWxsT3JkZXJTcGlsbGVkICA9
IDIsIC8vIG5vIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJKUyAgICAgICA9IDQsIC8vIG5lZWRz
IHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJDZWxsICAgICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0g
ICAgICAgIFNwaWxsT3JkZXJTdG9yYWdlICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0gICAgICAgIFNw
aWxsT3JkZXJJbnRlZ2VyICA9IDUsIC8vIG5lZWRzIHNwaWxsIGFuZCBib3gKLSAgICAgICAgU3Bp
bGxPcmRlckJvb2xlYW4gID0gNSwgLy8gbmVlZHMgc3BpbGwgYW5kIGJveAotICAgICAgICBTcGls
bE9yZGVyRG91YmxlICAgPSA2LCAvLyBuZWVkcyBzcGlsbCBhbmQgY29udmVydAorICAgICAgICBT
cGlsbE9yZGVyQ29uc3RhbnQgICAgICA9IDEsIC8vIG5vIHNwaWxsLCBhbmQgY2hlYXAgZmlsbAor
ICAgICAgICBTcGlsbE9yZGVyU3BpbGxlZCAgICAgICA9IDIsIC8vIG5vIHNwaWxsCisgICAgICAg
IFNwaWxsT3JkZXJKUyAgICAgICAgICAgID0gNCwgLy8gbmVlZHMgc3BpbGwKKyAgICAgICAgU3Bp
bGxPcmRlckNlbGwgICAgICAgICAgPSA0LCAvLyBuZWVkcyBzcGlsbAorICAgICAgICBTcGlsbE9y
ZGVyU3RvcmFnZSAgICAgICA9IDQsIC8vIG5lZWRzIHNwaWxsCisgICAgICAgIFNwaWxsT3JkZXJP
cGFxdWVQb2ludGVyID0gNCwgLy8gbmVlZHMgc3BpbGwKKyAgICAgICAgU3BpbGxPcmRlckludGVn
ZXIgICAgICAgPSA1LCAvLyBuZWVkcyBzcGlsbCBhbmQgYm94CisgICAgICAgIFNwaWxsT3JkZXJC
b29sZWFuICAgICAgID0gNSwgLy8gbmVlZHMgc3BpbGwgYW5kIGJveAorICAgICAgICBTcGlsbE9y
ZGVyRG91YmxlICAgICAgICA9IDYsIC8vIG5lZWRzIHNwaWxsIGFuZCBjb252ZXJ0CiAgICAgfTsK
ICNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgZW51bSBTcGlsbE9yZGVyIHsKLSAgICAgICAg
U3BpbGxPcmRlckNvbnN0YW50ID0gMSwgLy8gbm8gc3BpbGwsIGFuZCBjaGVhcCBmaWxsCi0gICAg
ICAgIFNwaWxsT3JkZXJTcGlsbGVkICA9IDIsIC8vIG5vIHNwaWxsCi0gICAgICAgIFNwaWxsT3Jk
ZXJKUyAgICAgICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJTdG9yYWdl
ICA9IDQsIC8vIG5lZWRzIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJEb3VibGUgICA9IDQsIC8v
IG5lZWRzIHNwaWxsCi0gICAgICAgIFNwaWxsT3JkZXJJbnRlZ2VyICA9IDUsIC8vIG5lZWRzIHNw
aWxsIGFuZCBib3gKLSAgICAgICAgU3BpbGxPcmRlckNlbGwgICAgID0gNSwgLy8gbmVlZHMgc3Bp
bGwgYW5kIGJveAotICAgICAgICBTcGlsbE9yZGVyQm9vbGVhbiAgPSA1LCAvLyBuZWVkcyBzcGls
bCBhbmQgYm94CisgICAgICAgIFNwaWxsT3JkZXJDb25zdGFudCAgICAgID0gMSwgLy8gbm8gc3Bp
bGwsIGFuZCBjaGVhcCBmaWxsCisgICAgICAgIFNwaWxsT3JkZXJTcGlsbGVkICAgICAgID0gMiwg
Ly8gbm8gc3BpbGwKKyAgICAgICAgU3BpbGxPcmRlckpTICAgICAgICAgICAgPSA0LCAvLyBuZWVk
cyBzcGlsbAorICAgICAgICBTcGlsbE9yZGVyU3RvcmFnZSAgICAgICA9IDQsIC8vIG5lZWRzIHNw
aWxsCisgICAgICAgIFNwaWxsT3JkZXJPcGFxdWVQb2ludGVyID0gNCwgLy8gbmVlZHMgc3BpbGwK
KyAgICAgICAgU3BpbGxPcmRlckRvdWJsZSAgICAgICAgPSA0LCAvLyBuZWVkcyBzcGlsbAorICAg
ICAgICBTcGlsbE9yZGVySW50ZWdlciAgICAgICA9IDUsIC8vIG5lZWRzIHNwaWxsIGFuZCBib3gK
KyAgICAgICAgU3BpbGxPcmRlckNlbGwgICAgICAgICAgPSA1LCAvLyBuZWVkcyBzcGlsbCBhbmQg
Ym94CisgICAgICAgIFNwaWxsT3JkZXJCb29sZWFuICAgICAgID0gNSwgLy8gbmVlZHMgc3BpbGwg
YW5kIGJveAogICAgIH07CiAjZW5kaWYKIApAQCAtMTQxLDYgKzE0Myw3IEBAIGNsYXNzIFNwZWN1
bGF0aXZlSklUIHsKICAgICBib29sIGZpbGxKU1ZhbHVlKEVkZ2UsIEdQUlJlZyYsIEdQUlJlZyYs
IEZQUlJlZyYpOwogI2VuZGlmCiAgICAgR1BSUmVnIGZpbGxTdG9yYWdlKEVkZ2UpOworICAgIEdQ
UlJlZyBmaWxsT3BhcXVlUG9pbnRlcihFZGdlKTsKIAogICAgIC8vIGxvY2sgYW5kIHVubG9jayBH
UFIgJiBGUFIgcmVnaXN0ZXJzLgogICAgIHZvaWQgbG9jayhHUFJSZWcgcmVnKQpAQCAtNTE2LDYg
KzUxOSwxNCBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIAorICAgICAgICBjYXNlIERhdGFGb3JtYXRPcGFxdWVQb2ludGVyOiB7CisgICAg
ICAgICAgICAvLyBUaGlzIGlzIHNwZWNpYWwsIHNpbmNlIGl0J3Mgbm90IGEgSlMgdmFsdWUgLSBh
cyBpbiBpdCdzIG5vdCB2aXNpYmxlIHRvIEpTCisgICAgICAgICAgICAvLyBjb2RlLgorICAgICAg
ICAgICAgbV9qaXQuc3RvcmVQdHIoaW5mby5ncHIoKSwgSklUQ29tcGlsZXI6OmFkZHJlc3NGb3Io
c3BpbGxNZSkpOworICAgICAgICAgICAgaW5mby5zcGlsbCgqbV9zdHJlYW0sIHNwaWxsTWUsIERh
dGFGb3JtYXRPcGFxdWVQb2ludGVyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CiAgICAgICAgIGNhc2UgRGF0YUZvcm1hdEludDMyOiB7CiAgICAgICAgICAgICBtX2ppdC5zdG9y
ZTMyKGluZm8uZ3ByKCksIEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHNwaWxsTWUpKTsKICAgICAg
ICAgICAgIGluZm8uc3BpbGwoKm1fc3RyZWFtLCBzcGlsbE1lLCBEYXRhRm9ybWF0SW50MzIpOwpA
QCAtOTAxLDYgKzkxMiwxNiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgICAgIEdlbmVy
YXRpb25JbmZvJiBpbmZvID0gZ2VuZXJhdGlvbkluZm9Gcm9tVmlydHVhbFJlZ2lzdGVyKHZpcnR1
YWxSZWdpc3Rlcik7CiAgICAgICAgIGluZm8uaW5pdFN0b3JhZ2Uobm9kZSwgbm9kZS0+cmVmQ291
bnQoKSwgcmVnKTsKICAgICB9CisgICAgdm9pZCBvcGFxdWVQb2ludGVyUmVzdWx0KEdQUlJlZyBy
ZWcsIE5vZGUqIG5vZGUsIFVzZUNoaWxkcmVuTW9kZSBtb2RlID0gQ2FsbFVzZUNoaWxkcmVuKQor
ICAgIHsKKyAgICAgICAgaWYgKG1vZGUgPT0gQ2FsbFVzZUNoaWxkcmVuKQorICAgICAgICAgICAg
dXNlQ2hpbGRyZW4obm9kZSk7CisKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdp
c3RlciA9IG5vZGUtPnZpcnR1YWxSZWdpc3RlcigpOworICAgICAgICBtX2dwcnMucmV0YWluKHJl
ZywgdmlydHVhbFJlZ2lzdGVyLCBTcGlsbE9yZGVyT3BhcXVlUG9pbnRlcik7CisgICAgICAgIEdl
bmVyYXRpb25JbmZvJiBpbmZvID0gZ2VuZXJhdGlvbkluZm9Gcm9tVmlydHVhbFJlZ2lzdGVyKHZp
cnR1YWxSZWdpc3Rlcik7CisgICAgICAgIGluZm8uaW5pdE9wYXF1ZVBvaW50ZXIobm9kZSwgbm9k
ZS0+cmVmQ291bnQoKSwgcmVnKTsKKyAgICB9CiAgICAgdm9pZCBkb3VibGVSZXN1bHQoRlBSUmVn
IHJlZywgTm9kZSogbm9kZSwgVXNlQ2hpbGRyZW5Nb2RlIG1vZGUgPSBDYWxsVXNlQ2hpbGRyZW4p
CiAgICAgewogICAgICAgICBpZiAobW9kZSA9PSBDYWxsVXNlQ2hpbGRyZW4pCkBAIC0yNDU5LDYg
KzI0ODAsOSBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlQWxsb2Nh
dGVQcm9wZXJ0eVN0b3JhZ2UoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVJlYWxsb2NhdGVQcm9w
ZXJ0eVN0b3JhZ2UoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldEJ1dHRlcmZseShOb2RlKik7
CisgICAgdm9pZCBjb21waWxlTG9hZE9wYXF1ZVBvaW50ZXIoTm9kZSopOworICAgIHZvaWQgY29t
cGlsZUdldERPTVdyYXBwZWQoTm9kZSopOworICAgIHZvaWQgY29tcGlsZVRvRE9NV3JhcHBlcihO
b2RlKik7CiAgICAgCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBCYXNlT3BlcmFuZFR5cGUsIHR5cGVuYW1lIFByb3BlcnR5T3BlcmFuZFR5cGUsIHR5cGVuYW1l
IFZhbHVlT3BlcmFuZFR5cGUsIHR5cGVuYW1lIFRhZ1R5cGU+CkBAIC0yNDkwLDYgKzI1MTQsNyBA
QCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAKICAgICB2b2lkIGNvbXBpbGVDaGVja1R5cGVJbmZv
RmxhZ3MoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUNoZWNrU3RyaW5nSWRlbnQoTm9kZSopOwor
ICAgIHZvaWQgY29tcGlsZUNoZWNrTm9kZUZsYWdzKE5vZGUqKTsKICAgICAKICAgICB2b2lkIGNv
bXBpbGVWYWx1ZVJlcChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlRG91YmxlUmVwKE5vZGUqKTsK
QEAgLTI2ODksNiArMjcxNCwxMiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBz
cGVjdWxhdGVNYXBPYmplY3QoRWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRl
U2V0T2JqZWN0KEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU2V0T2JqZWN0KEVkZ2UsIEdQUlJl
ZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTU5vZGUoRWRnZSk7CisgICAgdm9pZCBzcGVj
dWxhdGVET01Ob2RlKEVkZ2UsIEdQUlJlZyBjZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTUVs
ZW1lbnQoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVET01FbGVtZW50KEVkZ2UsIEdQUlJlZyBj
ZWxsKTsKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlKTsKKyAgICB2
b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50V3JhcHBlcihFZGdlLCBHUFJSZWcgY2VsbCk7CiAgICAg
dm9pZCBzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3Ry
aW5nKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlU3RyaW5nSWRl
bnRBbmRMb2FkU3RvcmFnZShFZGdlIGVkZ2UsIEdQUlJlZyBzdHJpbmcsIEdQUlJlZyBzdG9yYWdl
KTsKQEAgLTMwMTEsNiArMzA0Miw1MyBAQCBjbGFzcyBTdG9yYWdlT3BlcmFuZCB7CiAgICAgR1BS
UmVnIG1fZ3ByT3JJbnZhbGlkOwogfTsKIAorY2xhc3MgT3BhcXVlUG9pbnRlck9wZXJhbmQgewor
cHVibGljOgorICAgIGV4cGxpY2l0IE9wYXF1ZVBvaW50ZXJPcGVyYW5kKFNwZWN1bGF0aXZlSklU
KiBqaXQsIEVkZ2UgZWRnZSkKKyAgICAgICAgOiBtX2ppdChqaXQpCisgICAgICAgICwgbV9lZGdl
KGVkZ2UpCisgICAgICAgICwgbV9ncHJPckludmFsaWQoSW52YWxpZEdQUlJlZykKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX2ppdCk7CisgICAgICAgIEFTU0VSVChlZGdlLnVzZUtpbmQoKSA9PSBV
bnR5cGVkVXNlIHx8IGVkZ2UudXNlS2luZCgpID09IEtub3duQ2VsbFVzZSk7CisgICAgICAgIGlm
IChqaXQtPmlzRmlsbGVkKG5vZGUoKSkpCisgICAgICAgICAgICBncHIoKTsKKyAgICB9CisKKyAg
ICB+T3BhcXVlUG9pbnRlck9wZXJhbmQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fZ3ByT3JJ
bnZhbGlkICE9IEludmFsaWRHUFJSZWcpOworICAgICAgICBtX2ppdC0+dW5sb2NrKG1fZ3ByT3JJ
bnZhbGlkKTsKKyAgICB9CisKKyAgICBFZGdlIGVkZ2UoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fZWRnZTsKKyAgICB9CisKKyAgICBOb2RlKiBub2RlKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBlZGdlKCkubm9kZSgpOworICAgIH0KKworICAgIEdQUlJlZyBncHIoKQor
ICAgIHsKKyAgICAgICAgaWYgKG1fZ3ByT3JJbnZhbGlkID09IEludmFsaWRHUFJSZWcpCisgICAg
ICAgICAgICBtX2dwck9ySW52YWxpZCA9IG1faml0LT5maWxsT3BhcXVlUG9pbnRlcihlZGdlKCkp
OworICAgICAgICByZXR1cm4gbV9ncHJPckludmFsaWQ7CisgICAgfQorCisgICAgdm9pZCB1c2Uo
KQorICAgIHsKKyAgICAgICAgbV9qaXQtPnVzZShub2RlKCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBTcGVjdWxhdGl2ZUpJVCogbV9qaXQ7CisgICAgRWRnZSBtX2VkZ2U7CisgICAgR1BSUmVn
IG1fZ3ByT3JJbnZhbGlkOworfTsKKwogCiAvLyA9PT0gVGVtcG9yYXJpZXMgPT09CiAvLwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKaW5kZXggM2ExMGExMGQ3YjQyMjU0NDA5ZGQyMzI5Y2MwZjIxN2Y5Njk5NWQzZS4uZjJiMWRm
OTg3ZDQwMzVmYWRhNGM4YWFlZmJlOWU3NTI5YTZmMGU0MiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC03Myw3ICs3
Myw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKEVkZ2UgZWRnZSwgR1BSUmVn
JiB0YWdHUFIsIEdQUlJlZyYgcGF5bG9hZEdQUiwKICAgICAgICAgICAgIGluZm8uZmlsbEpTVmFs
dWUoKm1fc3RyZWFtLCB0YWdHUFIsIHBheWxvYWRHUFIsIERhdGFGb3JtYXRKUyk7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IHNwaWxsRm9ybWF0ID0gaW5mby5zcGls
bEZvcm1hdCgpOwotICAgICAgICAgICAgQVNTRVJUKHNwaWxsRm9ybWF0ICE9IERhdGFGb3JtYXRO
b25lICYmIHNwaWxsRm9ybWF0ICE9IERhdGFGb3JtYXRTdG9yYWdlKTsKKyAgICAgICAgICAgIEFT
U0VSVChzcGlsbEZvcm1hdCAhPSBEYXRhRm9ybWF0Tm9uZSAmJiBzcGlsbEZvcm1hdCAhPSBEYXRh
Rm9ybWF0U3RvcmFnZSAmJiBzcGlsbEZvcm1hdCAhPSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcik7
CiAgICAgICAgICAgICB0YWdHUFIgPSBhbGxvY2F0ZSgpOwogICAgICAgICAgICAgcGF5bG9hZEdQ
UiA9IGFsbG9jYXRlKCk7CiAgICAgICAgICAgICBzd2l0Y2ggKHNwaWxsRm9ybWF0KSB7CkBAIC0x
NTUsNiArMTU1LDcgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6ZmlsbEpTVmFsdWUoRWRnZSBlZGdl
LCBHUFJSZWcmIHRhZ0dQUiwgR1BSUmVnJiBwYXlsb2FkR1BSLAogICAgIH0KICAgICAgICAgCiAg
ICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKKyAgICBjYXNlIERhdGFGb3JtYXRPcGFxdWVQb2lu
dGVyOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToKICAgICAgICAgLy8gdGhpcyB0eXBlIGN1
cnJlbnRseSBuZXZlciBvY2N1cnMKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKQEAgLTEwNTcsNiArMTA1OCw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1
bGF0ZUludDMySW50ZXJuYWwoRWRnZSBlZGdlLCBEYXRhRm9ybWF0JiByZXR1cm5GCiAgICAgY2Fz
ZSBEYXRhRm9ybWF0SlNCb29sZWFuOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToKICAgICBj
YXNlIERhdGFGb3JtYXRTdG9yYWdlOgorICAgIGNhc2UgRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXI6
CiAgICAgZGVmYXVsdDoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuIEludmFsaWRHUFJSZWc7CkBAIC0xMTg0LDYgKzExODYsNyBAQCBHUFJSZWcg
U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKEVkZ2UgZWRnZSkKICAgICBjYXNlIERh
dGFGb3JtYXRCb29sZWFuOgogICAgIGNhc2UgRGF0YUZvcm1hdERvdWJsZToKICAgICBjYXNlIERh
dGFGb3JtYXRTdG9yYWdlOgorICAgIGNhc2UgRGF0YUZvcm1hdE9wYXF1ZVBvaW50ZXI6CiAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKICAgICBkZWZhdWx0OgpAQCAtMTI2
MCw2ICsxMjYzLDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQm9vbGVh
bihFZGdlIGVkZ2UpCiAgICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKICAgICBjYXNlIERhdGFGb3Jt
YXREb3VibGU6CiAgICAgY2FzZSBEYXRhRm9ybWF0U3RvcmFnZToKKyAgICBjYXNlIERhdGFGb3Jt
YXRPcGFxdWVQb2ludGVyOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
CiAgICAgZGVmYXVsdDoKQEAgLTU0MjAsNiArNTQyNCwyMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2Ug
TG9hZE9wYXF1ZVBvaW50ZXI6CisgICAgICAgIGNvbXBpbGVMb2FkT3BhcXVlUG9pbnRlcihub2Rl
KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEdldERPTVdyYXBwZWQ6CisgICAgICAgIGNv
bXBpbGVHZXRET01XcmFwcGVkKG5vZGUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgQ2hl
Y2tOb2RlRmxhZ3M6CisgICAgICAgIGNvbXBpbGVDaGVja05vZGVGbGFncyhub2RlKTsKKyAgICAg
ICAgYnJlYWs7CisKKyAgICBjYXNlIFRvRE9NV3JhcHBlcjoKKyAgICAgICAgY29tcGlsZVRvRE9N
V3JhcHBlcihub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIFVucmVhY2hhYmxlOgog
ICAgICAgICB1bnJlYWNoYWJsZShub2RlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBmNWVhNzRi
MmU3MTA1OTc1YzdmYjA3MTM2YjcxM2IxYWMxNTY3YjdjLi4zN2NkM2I2MzJhNTliNjI4MjI3OGZj
M2U3MDMxNTE2YWI0NDM2MzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTE0NCw2ICsxNDQsNyBAQCBHUFJSZWcgU3BlY3Vs
YXRpdmVKSVQ6OmZpbGxKU1ZhbHVlKEVkZ2UgZWRnZSkKICAgICAgICAgCiAgICAgY2FzZSBEYXRh
Rm9ybWF0Qm9vbGVhbjoKICAgICBjYXNlIERhdGFGb3JtYXRTdG9yYWdlOgorICAgIGNhc2UgRGF0
YUZvcm1hdE9wYXF1ZVBvaW50ZXI6CiAgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgogICAgIGNh
c2UgRGF0YUZvcm1hdEludDUyOgogICAgICAgICAvLyB0aGlzIHR5cGUgY3VycmVudGx5IG5ldmVy
IG9jY3VycwpAQCAtMTA2MCw2ICsxMDYxLDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxs
U3BlY3VsYXRlSW50MzJJbnRlcm5hbChFZGdlIGVkZ2UsIERhdGFGb3JtYXQmIHJldHVybkYKICAg
ICBjYXNlIERhdGFGb3JtYXRKU0Jvb2xlYW46CiAgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgog
ICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgY2FzZSBEYXRhRm9ybWF0T3BhcXVlUG9p
bnRlcjoKICAgICBjYXNlIERhdGFGb3JtYXRJbnQ1MjoKICAgICBjYXNlIERhdGFGb3JtYXRTdHJp
Y3RJbnQ1MjoKICAgICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG1fY3VycmVudE5vZGUs
ICJCYWQgZGF0YSBmb3JtYXQiKTsKQEAgLTEyOTAsNiArMTI5Miw3IEBAIEdQUlJlZyBTcGVjdWxh
dGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwoRWRnZSBlZGdlKQogICAgIGNhc2UgRGF0YUZvcm1h
dEJvb2xlYW46CiAgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgogICAgIGNhc2UgRGF0YUZvcm1h
dFN0b3JhZ2U6CisgICAgY2FzZSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcjoKICAgICBjYXNlIERh
dGFGb3JtYXRJbnQ1MjoKICAgICBjYXNlIERhdGFGb3JtYXRTdHJpY3RJbnQ1MjoKICAgICAgICAg
REZHX0NSQVNIKG1faml0LmdyYXBoKCksIG1fY3VycmVudE5vZGUsICJCYWQgZGF0YSBmb3JtYXQi
KTsKQEAgLTEzNjYsNiArMTM2OSw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1
bGF0ZUJvb2xlYW4oRWRnZSBlZGdlKQogICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6CiAgICAgY2Fz
ZSBEYXRhRm9ybWF0RG91YmxlOgogICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgY2Fz
ZSBEYXRhRm9ybWF0T3BhcXVlUG9pbnRlcjoKICAgICBjYXNlIERhdGFGb3JtYXRJbnQ1MjoKICAg
ICBjYXNlIERhdGFGb3JtYXRTdHJpY3RJbnQ1MjoKICAgICAgICAgREZHX0NSQVNIKG1faml0Lmdy
YXBoKCksIG1fY3VycmVudE5vZGUsICJCYWQgZGF0YSBmb3JtYXQiKTsKQEAgLTU0MzYsNiArNTQ0
MCwyMiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
IGNvbXBpbGVNYXRlcmlhbGl6ZU5ld09iamVjdChub2RlKTsKICAgICAgICAgYnJlYWs7CiAKKyAg
ICBjYXNlIExvYWRPcGFxdWVQb2ludGVyOgorICAgICAgICBjb21waWxlTG9hZE9wYXF1ZVBvaW50
ZXIobm9kZSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBHZXRET01XcmFwcGVkOgorICAg
ICAgICBjb21waWxlR2V0RE9NV3JhcHBlZChub2RlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBj
YXNlIENoZWNrTm9kZUZsYWdzOgorICAgICAgICBjb21waWxlQ2hlY2tOb2RlRmxhZ3Mobm9kZSk7
CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBUb0RPTVdyYXBwZXI6CisgICAgICAgIGNvbXBp
bGVUb0RPTVdyYXBwZXIobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAjaWYgRU5BQkxFKEZUTF9K
SVQpICAgICAgICAKICAgICBjYXNlIENoZWNrVGllclVwSW5Mb29wOiB7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGNhbGxUaWVyVXAgPSBtX2ppdC5icmFuY2hBZGQzMigKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2Uu
Y3BwCmluZGV4IDIzZGYyOTZhM2NmNjMyNjM2MmEzMzMyMmVkOTJhMmJmZjFiN2MyYWUuLjhjYWM1
MjRiMGVkNmZmMTJmMjIzYmRkNzM3NDc0ZDQ1ZDljZjRmZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcApAQCAt
MjQ3LDYgKzI0Nyw3IEBAIGNsYXNzIFR5cGVDaGVja0hvaXN0aW5nUGhhc2UgOiBwdWJsaWMgUGhh
c2UgewogICAgICAgICAgICAgICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAg
ICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgICAgICAgICAg
ICAgIGNhc2UgR2V0QnV0dGVyZmx5OgorICAgICAgICAgICAgICAgIGNhc2UgTG9hZE9wYXF1ZVBv
aW50ZXI6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAgICAgICAgICAgICBj
YXNlIFB1dEJ5VmFsRGlyZWN0OgogICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWw6CkBAIC0z
MjUsNiArMzI2LDcgQEAgY2xhc3MgVHlwZUNoZWNrSG9pc3RpbmdQaGFzZSA6IHB1YmxpYyBQaGFz
ZSB7CiAgICAgICAgICAgICAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6CiAgICAgICAgICAgICAgICAg
Y2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgICAgICAgICAgICAgIGNhc2UgR2V0
QnV0dGVyZmx5OgorICAgICAgICAgICAgICAgIGNhc2UgTG9hZE9wYXF1ZVBvaW50ZXI6CiAgICAg
ICAgICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAgICAgICAgICAgICBjYXNlIFB1dEJ5VmFs
RGlyZWN0OgogICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWw6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdVc2VLaW5kLmNwcAppbmRleCBlODM4MjliNzEzMDYxNzNkZTk1YjAxMDg4YmYz
ZTljZDg0ZmRmNmVjLi4yMDIwYTU1ZmRjZDg4YWQ2NjcwY2M1NWExMWExYjRlM2JkMjk4MzZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVXNlS2luZC5jcHAKQEAgLTExMiw2ICsxMTIs
MTUgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIFVzZUtpbmQgdXNlS2lu
ZCkKICAgICBjYXNlIE9iamVjdE9yT3RoZXJVc2U6CiAgICAgICAgIG91dC5wcmludCgiT2JqZWN0
T3JPdGhlciIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBET01Ob2RlVXNlOgorICAgICAg
ICBvdXQucHJpbnQoIkRPTU5vZGUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRE9NRWxl
bWVudFVzZToKKyAgICAgICAgb3V0LnByaW50KCJET01FbGVtZW50Iik7CisgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKKyAgICAgICAgb3V0LnByaW50KCJE
T01Eb2N1bWVudFdyYXBwZXIiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgU3RyaW5nSWRl
bnRVc2U6CiAgICAgICAgIG91dC5wcmludCgiU3RyaW5nSWRlbnQiKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdVc2VLaW5kLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaAppbmRleCA4ZjYzM2ExOTY4OGNj
ZTAyZjM0ZjE1MTJlZDg5M2RmMjk3ZDNhNWZiLi4xNjhkMDQ4YzNhM2RhOTljNDlkODE1NTQ1MjZi
MDc2MjI2NjI5MjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Vz
ZUtpbmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1VzZUtpbmQuaApAQCAt
NzMsNiArNzMsOSBAQCBlbnVtIFVzZUtpbmQgewogICAgIE5vdENlbGxVc2UsCiAgICAgT3RoZXJV
c2UsCiAgICAgTWlzY1VzZSwKKyAgICBET01Ob2RlVXNlLAorICAgIERPTUVsZW1lbnRVc2UsCisg
ICAgRE9NRG9jdW1lbnRXcmFwcGVyVXNlLAogCiAgICAgLy8gMi4gVGhlIERvdWJsZSByZXByZXNl
bnRhdGlvbiBmb3IgYW4gdW5ib3hlZCBkb3VibGUgdmFsdWUgdGhhdCBtdXN0IGJlIHN0b3JlZAog
ICAgIC8vICAgIGluIGFuIEZQIHJlZ2lzdGVyLgpAQCAtMTYwLDYgKzE2MywxMiBAQCBpbmxpbmUg
U3BlY3VsYXRlZFR5cGUgdHlwZUZpbHRlckZvcihVc2VLaW5kIHVzZUtpbmQpCiAgICAgICAgIHJl
dHVybiBTcGVjT3RoZXI7CiAgICAgY2FzZSBNaXNjVXNlOgogICAgICAgICByZXR1cm4gU3BlY01p
c2M7CisgICAgY2FzZSBET01Ob2RlVXNlOgorICAgICAgICByZXR1cm4gU3BlY0RPTU5vZGU7Cisg
ICAgY2FzZSBET01FbGVtZW50VXNlOgorICAgICAgICByZXR1cm4gU3BlY0RPTUVsZW1lbnQ7Cisg
ICAgY2FzZSBET01Eb2N1bWVudFdyYXBwZXJVc2U6CisgICAgICAgIHJldHVybiBTcGVjRE9NRG9j
dW1lbnRXcmFwcGVyOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBTcGVjRnVsbFRvcDsKQEAgLTI0MCw2ICsyNDksOSBA
QCBpbmxpbmUgYm9vbCBpc0NlbGwoVXNlS2luZCBraW5kKQogICAgIGNhc2UgU3RyaW5nT3JTdHJp
bmdPYmplY3RVc2U6CiAgICAgY2FzZSBNYXBPYmplY3RVc2U6CiAgICAgY2FzZSBTZXRPYmplY3RV
c2U6CisgICAgY2FzZSBET01Ob2RlVXNlOgorICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICBj
YXNlIERPTURvY3VtZW50V3JhcHBlclVzZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9t
aml0L0RPTUpJVEdyYXBoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjBhYzFlNzhkMDQ2NmZiN2YxOWNhZWE3
MmE3NTYzMjFhYzU2ZGU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RvbWppdC9ET01KSVRHcmFwaC5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJET01KSVRHcmFwaC5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVzcGFjZSBK
U0MgeworbmFtZXNwYWNlIERPTUpJVCB7CisKK0RGRzo6VXNlS2luZCBHcmFwaDo6ZWRnZUZpbHRl
cigpCit7CisgICAgaWYgKGlzRE9NRG9jdW1lbnRXcmFwcGVyU3BlY3VsYXRpb24obV9zcGVjdWxh
dGVkQ2hpbGRUeXBlKSkKKyAgICAgICAgcmV0dXJuIERGRzo6RE9NRG9jdW1lbnRXcmFwcGVyVXNl
OworICAgIGlmIChpc0RPTUVsZW1lbnRTcGVjdWxhdGlvbihtX3NwZWN1bGF0ZWRDaGlsZFR5cGUp
KQorICAgICAgICByZXR1cm4gREZHOjpET01FbGVtZW50VXNlOworICAgIGlmIChpc0RPTU5vZGVT
cGVjdWxhdGlvbihtX3NwZWN1bGF0ZWRDaGlsZFR5cGUpKQorICAgICAgICByZXR1cm4gREZHOjpE
T01Ob2RlVXNlOworICAgIHJldHVybiBERkc6OlVudHlwZWRVc2U7Cit9CisKK30gfQorCisjZW5k
aWYgLy8gRU5BQkxFKERGR19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZG9taml0L0RPTUpJVEdyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJ
VEdyYXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI3YWQzYjU0MTM4MmY5NThiMDE2YjAxN2QyZDhmMjExOGQ3
NWI4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9N
SklUR3JhcGguaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJET01KSVRJUkJ1aWxk
ZXIuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eVNsb3QuaCIKKyNpbmNsdWRlICJQdXRQcm9wZXJ0eVNs
b3QuaCIKKyNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgorCisjaWYgRU5BQkxFKERGR19KSVQp
CisjaW5jbHVkZSAiREZHVXNlS2luZC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgRE9NSklUIHsKKworY2xhc3MgR3JhcGggOiBwdWJsaWMgSVJCdWlsZGVyIHsKK3B1Ymxp
YzoKKyAgICB0eXBlZGVmIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIEN1c3RvbUdldHRlcjsK
KyAgICB0eXBlZGVmIFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jIEN1c3RvbVNldHRlcjsK
KworICAgIEdyYXBoKEN1c3RvbUdldHRlciBnZXR0ZXIsIEN1c3RvbVNldHRlciBzZXR0ZXIsIFNw
ZWN1bGF0ZWRUeXBlIHNwZWN1bGF0ZWRDaGlsZFR5cGUpCisgICAgICAgIDogbV9nZXR0ZXIoZ2V0
dGVyKQorICAgICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAgICAgICAgLCBtX3NwZWN1bGF0ZWRD
aGlsZFR5cGUoc3BlY3VsYXRlZENoaWxkVHlwZSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVh
bCB+R3JhcGgoKSB7IH0KKworICAgIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0ZWRDaGlsZFR5cGUo
KSBjb25zdCB7IHJldHVybiBtX3NwZWN1bGF0ZWRDaGlsZFR5cGU7IH0KKyAgICBDdXN0b21HZXR0
ZXIgZ2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9nZXR0ZXI7IH0KKyAgICBDdXN0b21TZXR0ZXIg
c2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0ZXI7IH0KKworI2lmIEVOQUJMRShERkdfSklU
KQorICAgIERGRzo6VXNlS2luZCBlZGdlRmlsdGVyKCk7CisjZW5kaWYKKworcHJpdmF0ZToKKyAg
ICBDdXN0b21HZXR0ZXIgbV9nZXR0ZXI7CisgICAgQ3VzdG9tU2V0dGVyIG1fc2V0dGVyOworICAg
IFNwZWN1bGF0ZWRUeXBlIG1fc3BlY3VsYXRlZENoaWxkVHlwZTsKK307CisKK30gfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVElSLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmNiY2JiMWU1
Yjg1YjljMjMzZmFiYWNhYzUxYmU1MzM4NGQ4MzRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUi5jcHAKQEAgLTAsMCArMSw0MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJET01KSVRJUi5oIgorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRE9NSklUIHsKKworSVIqIElSOjp0
aGlzVmFsdWUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxJUj4gaXI7CisgICAgcmV0
dXJuICZpci5nZXQoKTsKK30KKworCit9IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kb21qaXQvRE9NSklUSVIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9N
SklUSVIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMjk0ZGE4MzM0NDBiZTZmOThiYjAzMzM0Zjc0YzViYzViNzg0
YTJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01K
SVRJUi5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgor
CituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJVCB7CisKK3R5cGVkZWYgdWludHB0cl90
IE9wSW5mbzsKKworLy8gRmlyc3QsIHdlIGRlZmluZSBzcGVjaWZpYyB0byBOb2RlIG9wZXJhdGlv
bnMuIExhdGVyIHdlIHdpbGwgcGFyYW1ldGVyaXplIHRoZW0uCitlbnVtIGNsYXNzIEtpbmQgOiB1
aW50MzJfdCB7CisgICAgQ2hlY2tOb2RlLAorICAgIENoZWNrTm9kZUZsYWdzLAorICAgIEdldFdy
YXBwZWQsCisgICAgTG9hZFBvaW50ZXIsCisgICAgVG9XcmFwcGVyLAorICAgIFJldHVybiwKKyAg
ICBFeHRlcm5hbCwKK307CisKK3N0cnVjdCBJUiB7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3Rh
dGljIElSKiB0aGlzVmFsdWUoKTsKKworICAgIElSKCkgPSBkZWZhdWx0OworCisgICAgSVIoS2lu
ZCBraW5kLCBJUiogY2hpbGQxLCBJUiogY2hpbGQyLCBPcEluZm8gb3BJbmZvMSwgT3BJbmZvIG9w
SW5mbzIpCisgICAgICAgIDogbV9raW5kKGtpbmQpCisgICAgICAgICwgbV9jaGlsZDEoY2hpbGQx
KQorICAgICAgICAsIG1fY2hpbGQyKGNoaWxkMikKKyAgICAgICAgLCBtX29wSW5mbzEob3BJbmZv
MSkKKyAgICAgICAgLCBtX29wSW5mbzIob3BJbmZvMikKKyAgICB7CisgICAgfQorCisgICAgS2lu
ZCBtX2tpbmQgeyBLaW5kOjpFeHRlcm5hbCB9OworICAgIElSKiBtX2NoaWxkMSB7IG51bGxwdHIg
fTsKKyAgICBJUiogbV9jaGlsZDIgeyBudWxscHRyIH07CisgICAgT3BJbmZvIG1fb3BJbmZvMSB7
IDAgfTsKKyAgICBPcEluZm8gbV9vcEluZm8yIHsgMCB9OworfTsKKworfSB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVElSQnVpbGRlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUkJ1aWxkZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjJk
ZGVmZDY1YWYzZWEwM2U3YWNlMDMyYTllM2UyOTVkMjQwNWRjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRJUkJ1aWxkZXIuaApAQCAtMCwwICsx
LDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJET01KSVRJUi5oIgorI2luY2x1ZGUgPHd0Zi9TZWdtZW50
ZWRWZWN0b3IuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBET01KSVQgeworCitjbGFz
cyBJUkJ1aWxkZXIgeworcHVibGljOgorICAgIElSKiBhcHBlbmQoS2luZCBraW5kLCBJUiogY2hp
bGQxLCBJUiogY2hpbGQyLCBPcEluZm8gb3BJbmZvMSA9IDAsIE9wSW5mbyBvcEluZm8yID0gMCkK
KyAgICB7CisgICAgICAgIHJldHVybiAmbV9hbGxvY2F0b3IuYWxsb2Moa2luZCwgY2hpbGQxLCBj
aGlsZDIsIG9wSW5mbzEsIG9wSW5mbzIpOworICAgIH0KKworICAgIFNlZ21lbnRlZFZlY3RvcjxJ
Uj4mIGlyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FsbG9jYXRvcjsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgU2VnbWVudGVkVmVjdG9yPElSPiBtX2FsbG9jYXRvcjsKK307CisKKworfSB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJl
cG9zaXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oCmluZGV4IDcxOWY1MmMzZmUzZDljNTg4MWQ3OTgzZDIwMzhiZGQ3MTM0MjVkMDku
LmUzNDQ3YWUyYjVlNWIxMGI2ODAwYWE3YWFjZTI1MDhjZDZkZTZiZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCkBA
IC0xMTIsNiArMTEyLDkgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1h
Y3JvKEhhc2hNYXBCdWNrZXRfdmFsdWUsIEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFL
ZXlWYWx1ZT46Om9mZnNldE9mVmFsdWUoKSkgXAogICAgIG1hY3JvKEhhc2hNYXBCdWNrZXRfa2V5
LCBIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5VmFsdWU+OjpvZmZzZXRPZktleSgp
KSBcCiAgICAgbWFjcm8oU3ltYm9sX3N5bWJvbEltcGwsIFN5bWJvbDo6b2Zmc2V0T2ZTeW1ib2xJ
bXBsKCkpIFwKKyAgICBtYWNybyhXZWFrSW1wbF9qc1ZhbHVlLCBXZWFrSW1wbDo6b2Zmc2V0T2ZK
U1ZhbHVlKCkpIFwKKyAgICBtYWNybyhXZWFrSW1wbF93ZWFrSGFuZGxlT3duZXIsIFdlYWtJbXBs
OjpvZmZzZXRPZldlYWtIYW5kbGVPd25lcigpKSBcCisgICAgbWFjcm8oT3BhcXVlUG9pbnRlciwg
MCkgXAogCiAjZGVmaW5lIEZPUl9FQUNIX0lOREVYRURfQUJTVFJBQ1RfSEVBUChtYWNybykgXAog
ICAgIG1hY3JvKERpcmVjdEFyZ3VtZW50c19zdG9yYWdlLCBEaXJlY3RBcmd1bWVudHM6OnN0b3Jh
Z2VPZmZzZXQoKSwgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGI2ZWIyZTVmNzIxOWRhZTZmZTBj
MmE4NGFmMDVlODIyY2EwNmQ4MWYuLmU3YjY2YTAwMTY4MDQ1YjA5NjcxNzgwNGQ3ZGVjZWE3ODY4
MTU4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHAKQEAgLTI2Myw2ICsyNjMsMTAgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxl
KE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDb21wYXJlR3JlYXRlcjoKICAgICBjYXNlIENvbXBhcmVH
cmVhdGVyRXE6CiAgICAgY2FzZSBDb21wYXJlU3RyaWN0RXE6CisgICAgY2FzZSBMb2FkT3BhcXVl
UG9pbnRlcjoKKyAgICBjYXNlIEdldERPTVdyYXBwZWQ6CisgICAgY2FzZSBDaGVja05vZGVGbGFn
czoKKyAgICBjYXNlIFRvRE9NV3JhcHBlcjoKICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgogICAg
ICAgICBicmVhazsKIApAQCAtNDQ1LDYgKzQ0OSw5IEBAIENhcGFiaWxpdHlMZXZlbCBjYW5Db21w
aWxlKEdyYXBoJiBncmFwaCkKICAgICAgICAgICAgICAgICBjYXNlIE5vdFN0cmluZ1ZhclVzZToK
ICAgICAgICAgICAgICAgICBjYXNlIEFueUludFVzZToKICAgICAgICAgICAgICAgICBjYXNlIERv
dWJsZVJlcEFueUludFVzZToKKyAgICAgICAgICAgICAgICBjYXNlIERPTU5vZGVVc2U6CisgICAg
ICAgICAgICAgICAgY2FzZSBET01FbGVtZW50VXNlOgorICAgICAgICAgICAgICAgIGNhc2UgRE9N
RG9jdW1lbnRXcmFwcGVyVXNlOgogICAgICAgICAgICAgICAgICAgICAvLyBUaGVzZSBhcmUgT0su
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGRlZmF1bHQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggMDYz
Y2M1OTQ0MDYyNDg5NjM3YTljMmJkMzE4MjkzNTU3NTY0ZTQyMC4uZTI2ZmZkNzZhYzY1ZjI3N2Qz
YTkwY2M5NmEyMTMxOWEwMTdiYWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTAzNyw2ICsxMDM3LDE4IEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgICAgIGNhc2UgVW5yZWFjaGFibGU6CiAgICAgICAgICAgICBjb21waWxlVW5y
ZWFjaGFibGUoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIExvYWRPcGFxdWVQ
b2ludGVyOgorICAgICAgICAgICAgY29tcGlsZUxvYWRPcGFxdWVQb2ludGVyKCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDaGVja05vZGVGbGFnczoKKyAgICAgICAgICAgIGNv
bXBpbGVDaGVja05vZGVGbGFncygpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
R2V0RE9NV3JhcHBlZDoKKyAgICAgICAgICAgIGNvbXBpbGVHZXRET01XcmFwcGVkKCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUb0RPTVdyYXBwZXI6CisgICAgICAgICAgICBj
b21waWxlVG9ET01XcmFwcGVyKCk7CisgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNl
IFBoYW50b21Mb2NhbDoKICAgICAgICAgY2FzZSBMb29wSGludDoKQEAgLTg0NTIsNiArODQ2NCw3
MiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICAKICAgICAgICAgY3Jhc2goKTsKICAg
ICB9CisKKyAgICB2b2lkIGNvbXBpbGVMb2FkT3BhcXVlUG9pbnRlcigpCisgICAgeworICAgICAg
ICBMVmFsdWUgcG9pbnRlciA9IGxvd09wYXF1ZVBvaW50ZXIobV9ub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgIHNldE9wYXF1ZVBvaW50ZXIobV9vdXQubG9hZFB0cihtX291dC5hZGRyZXNzKG1faGVh
cHMuT3BhcXVlUG9pbnRlciwgcG9pbnRlciwgbV9ub2RlLT5vcGFxdWVQb2ludGVyT2Zmc2V0MzIo
KSkpKTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVDaGVja05vZGVGbGFncygpCisgICAgewor
ICAgICAgICBMVmFsdWUgcG9pbnRlciA9IGxvd09wYXF1ZVBvaW50ZXIobV9ub2RlLT5jaGlsZDEo
KSk7CisgICAgICAgIExWYWx1ZSBub2RlRmxhZ3MgPSBtX291dC5sb2FkMzIobV9vdXQuYWRkcmVz
cyhtX2hlYXBzLk9wYXF1ZVBvaW50ZXIsIHBvaW50ZXIsIG1fbm9kZS0+b3BhcXVlUG9pbnRlck9m
ZnNldDMyKCkpKTsKKyAgICAgICAgc3BlY3VsYXRlKEJhZENhY2hlLCBub1ZhbHVlKCksIG51bGxw
dHIsIG1fb3V0LnRlc3RJc1plcm8zMihub2RlRmxhZ3MsIG1fb3V0LmNvbnN0SW50MzIobV9ub2Rl
LT5ub2RlRmxhZ3NPcGVyYW5kKCkpKSk7CisgICAgfQorCisgICAgdm9pZCBjb21waWxlR2V0RE9N
V3JhcHBlZCgpCisgICAgeworICAgICAgICBMVmFsdWUgbm9kZSA9IGxvd0NlbGwobV9ub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgIHNldE9wYXF1ZVBvaW50ZXIobV9vdXQubG9hZFB0cihtX291dC5h
ZGRyZXNzKG1faGVhcHMuT3BhcXVlUG9pbnRlciwgbm9kZSwgbV9ub2RlLT5vcGFxdWVQb2ludGVy
T2Zmc2V0MzIoKSkpKTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVUb0RPTVdyYXBwZXIoKQor
ICAgIHsKKyAgICAgICAgTEJhc2ljQmxvY2sgbnVsbFBhdGggPSBtX291dC5uZXdCbG9jaygpOwor
ICAgICAgICBMQmFzaWNCbG9jayB3b3JsZFRlc3RQYXRoID0gbV9vdXQubmV3QmxvY2soKTsKKyAg
ICAgICAgTEJhc2ljQmxvY2sgd2Vha051bGxUZXN0UGF0aCA9IG1fb3V0Lm5ld0Jsb2NrKCk7Cisg
ICAgICAgIExCYXNpY0Jsb2NrIHdlYWtMaXZlQ2hlY2tQYXRoID0gbV9vdXQubmV3QmxvY2soKTsK
KyAgICAgICAgTEJhc2ljQmxvY2sgbG9va1VwUGF0aCA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAg
ICAgIExCYXNpY0Jsb2NrIHNsb3dQYXRoID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgTEJh
c2ljQmxvY2sgY29udGludWF0aW9uID0gbV9vdXQubmV3QmxvY2soKTsKKworICAgICAgICBMVmFs
dWUgZ2xvYmFsT2JqZWN0ID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZh
bHVlIHdyYXBwZWQgPSBsb3dPcGFxdWVQb2ludGVyKG1fbm9kZS0+Y2hpbGQyKCkpOworICAgICAg
ICBtX291dC5icmFuY2gobV9vdXQuaXNOdWxsKHdyYXBwZWQpLCByYXJlbHkobnVsbFBhdGgpLCB1
c3VhbGx5KHdvcmxkVGVzdFBhdGgpKTsKKworICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9
IG1fb3V0LmFwcGVuZFRvKG51bGxQYXRoLCB3b3JsZFRlc3RQYXRoKTsKKyAgICAgICAgTFZhbHVl
IG51bGxWYWx1ZSA9IG1fb3V0LmNvbnN0SW50NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKSk7
CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIG51bGxSZXN1bHQgPSBtX291dC5hbmNob3IobnVsbFZh
bHVlKTsKKyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAgICAgIG1fb3V0
LmFwcGVuZFRvKHdvcmxkVGVzdFBhdGgsIHdlYWtOdWxsVGVzdFBhdGgpOworICAgICAgICBMVmFs
dWUgd29ybGRJc05vcm1hbEZsYWcgPSBtX291dC5sb2FkOFplcm9FeHQzMihtX291dC5hZGRyZXNz
KG1faGVhcHMuT3BhcXVlUG9pbnRlciwgZ2xvYmFsT2JqZWN0LCBtX25vZGUtPndvcmxkSXNOb3Jt
YWxPZmZzZXQzMigpKSk7CisgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMih3b3Js
ZElzTm9ybWFsRmxhZyksIHJhcmVseShzbG93UGF0aCksIHVzdWFsbHkod2Vha051bGxUZXN0UGF0
aCkpOworCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKHdlYWtOdWxsVGVzdFBhdGgsIHdlYWtMaXZl
Q2hlY2tQYXRoKTsKKyAgICAgICAgTFZhbHVlIGNhY2hlUGxhY2UgPSBtX291dC5sb2FkUHRyKG1f
b3V0LmFkZHJlc3MobV9oZWFwcy5PcGFxdWVQb2ludGVyLCB3cmFwcGVkLCBtX25vZGUtPm9wYXF1
ZVBvaW50ZXJPZmZzZXQzMigpKSk7CisgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc051bGwo
Y2FjaGVQbGFjZSksIHJhcmVseShzbG93UGF0aCksIHVzdWFsbHkod2Vha0xpdmVDaGVja1BhdGgp
KTsKKworICAgICAgICBtX291dC5hcHBlbmRUbyh3ZWFrTGl2ZUNoZWNrUGF0aCwgbG9va1VwUGF0
aCk7CisgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC50ZXN0Tm9uWmVybzY0KG1fb3V0LmxvYWRQ
dHIoY2FjaGVQbGFjZSwgbV9oZWFwcy5XZWFrSW1wbF93ZWFrSGFuZGxlT3duZXIpLCBtX291dC5j
b25zdEludDY0KFdlYWtJbXBsOjpTdGF0ZU1hc2spKSwgcmFyZWx5KHNsb3dQYXRoKSwgdXN1YWxs
eShsb29rVXBQYXRoKSk7CisKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8obG9va1VwUGF0aCwgc2xv
d1BhdGgpOworICAgICAgICBMVmFsdWUgY2FjaGVkV3JhcHBlclZhbHVlID0gbV9vdXQubG9hZFB0
cihjYWNoZVBsYWNlLCBtX2hlYXBzLldlYWtJbXBsX2pzVmFsdWUpOworICAgICAgICBWYWx1ZUZy
b21CbG9jayBjYWNoZWRXcmFwcGVyUmVzdWx0ID0gbV9vdXQuYW5jaG9yKGNhY2hlZFdyYXBwZXJW
YWx1ZSk7CisgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc051bGwoY2FjaGVkV3JhcHBlclZh
bHVlKSwgcmFyZWx5KHNsb3dQYXRoKSwgdXN1YWxseShjb250aW51YXRpb24pKTsKKworICAgICAg
ICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29udGludWF0aW9uKTsKKyAgICAgICAgTFZhbHVl
IHNsb3dSZXN1bHRWYWx1ZSA9IGxhenlTbG93UGF0aCgKKyAgICAgICAgICAgIFs9XSAoY29uc3Qg
VmVjdG9yPExvY2F0aW9uPiYgbG9jYXRpb25zKSAtPiBSZWZQdHI8TGF6eVNsb3dQYXRoOjpHZW5l
cmF0b3I+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlTGF6eUNhbGxHZW5lcmF0b3Io
bV9ub2RlLT5zbG93VG9KU09wZXJhdGlvbigpLCBsb2NhdGlvbnNbMF0uZGlyZWN0R1BSKCksIGxv
Y2F0aW9uc1sxXS5kaXJlY3RHUFIoKSwgbG9jYXRpb25zWzJdLmRpcmVjdEdQUigpKTsKKyAgICAg
ICAgICAgIH0sIHdyYXBwZWQsIGdsb2JhbE9iamVjdCk7CisgICAgICAgIFZhbHVlRnJvbUJsb2Nr
IHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Ioc2xvd1Jlc3VsdFZhbHVlKTsKKyAgICAgICAgbV9v
dXQuanVtcChjb250aW51YXRpb24pOworCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVh
dGlvbiwgbGFzdE5leHQpOworICAgICAgICBzZXRKU1ZhbHVlKG1fb3V0LnBoaShwb2ludGVyVHlw
ZSgpLCBudWxsUmVzdWx0LCBjYWNoZWRXcmFwcGVyUmVzdWx0LCBzbG93UmVzdWx0KSk7CisgICAg
fQogICAgIAogICAgIHZvaWQgY29tcGFyZUVxT2JqZWN0T3JPdGhlclRvT2JqZWN0KEVkZ2UgbGVm
dENoaWxkLCBFZGdlIHJpZ2h0Q2hpbGQpCiAgICAgewpAQCAtMTA0NjcsNiArMTA1NDUsMTcgQEAg
Y2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKKyAg
ICBMVmFsdWUgbG93T3BhcXVlUG9pbnRlcihFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBMb3dl
cmVkTm9kZVZhbHVlIHZhbHVlID0gbV9vcGFxdWVQb2ludGVyVmFsdWVzLmdldChlZGdlLm5vZGUo
KSk7CisgICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiB2YWx1
ZS52YWx1ZSgpOworCisgICAgICAgIExWYWx1ZSByZXN1bHQgPSBsb3dDZWxsKGVkZ2UpOworICAg
ICAgICBzZXRPcGFxdWVQb2ludGVyKGVkZ2Uubm9kZSgpLCByZXN1bHQpOworICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgIH0KKwogICAgIExWYWx1ZSBsb3dNYXBCdWNrZXQoRWRnZSBlZGdlKQog
ICAgIHsKICAgICAgICAgTG93ZXJlZE5vZGVWYWx1ZSB2YWx1ZSA9IG1fbWFwQnVja2V0VmFsdWVz
LmdldChlZGdlLm5vZGUoKSk7CkBAIC0xMDc5NSw2ICsxMDg4NCwxNSBAQCBjbGFzcyBMb3dlckRG
R1RvQjMgewogICAgICAgICBjYXNlIFNldE9iamVjdFVzZToKICAgICAgICAgICAgIHNwZWN1bGF0
ZVNldE9iamVjdChlZGdlKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERPTU5v
ZGVVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVET01Ob2RlKGVkZ2UpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgRE9NRWxlbWVudFVzZToKKyAgICAgICAgICAgIHNwZWN1bGF0
ZURPTUVsZW1lbnQoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBET01E
b2N1bWVudFdyYXBwZXJVc2U6CisgICAgICAgICAgICBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBw
ZXIoZWRnZSk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdHJpbmdVc2U6CiAg
ICAgICAgICAgICBzcGVjdWxhdGVTdHJpbmcoZWRnZSk7CiAgICAgICAgICAgICBicmVhazsKQEAg
LTEwOTIzLDYgKzExMDIxLDI0IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICBt
X291dC5jb25zdEludDMyKE9iamVjdFR5cGUpKTsKICAgICB9CiAKKyAgICBMVmFsdWUgaXNOb3RE
T01Ob2RlKExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCisg
ICAgeworICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAmIFNw
ZWNDZWxsLCB+U3BlY0RPTU5vZGUpKQorICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsKKyAgICAg
ICAgcmV0dXJuIG1fb3V0LmJlbG93KAorICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIo
Y2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKKyAgICAgICAgICAgIG1fb3V0LmNv
bnN0SW50MzIoRE9NTm9kZVR5cGUpKTsKKyAgICB9CisKKyAgICBMVmFsdWUgaXNOb3RET01FbGVt
ZW50KExWYWx1ZSBjZWxsLCBTcGVjdWxhdGVkVHlwZSB0eXBlID0gU3BlY0Z1bGxUb3ApCisgICAg
eworICAgICAgICBpZiAoTFZhbHVlIHByb3ZlbiA9IGlzUHJvdmVuVmFsdWUodHlwZSAmIFNwZWND
ZWxsLCB+U3BlY0RPTUVsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJuIHByb3ZlbjsKKyAgICAg
ICAgcmV0dXJuIG1fb3V0LmJlbG93KAorICAgICAgICAgICAgbV9vdXQubG9hZDhaZXJvRXh0MzIo
Y2VsbCwgbV9oZWFwcy5KU0NlbGxfdHlwZUluZm9UeXBlKSwKKyAgICAgICAgICAgIG1fb3V0LmNv
bnN0SW50MzIoRE9NRWxlbWVudFR5cGUpKTsKKyAgICB9CisKICAgICBMVmFsdWUgaXNOb3RTdHJp
bmcoTFZhbHVlIGNlbGwsIFNwZWN1bGF0ZWRUeXBlIHR5cGUgPSBTcGVjRnVsbFRvcCkKICAgICB7
CiAgICAgICAgIGlmIChMVmFsdWUgcHJvdmVuID0gaXNQcm92ZW5WYWx1ZSh0eXBlICYgU3BlY0Nl
bGwsIH5TcGVjU3RyaW5nKSkKQEAgLTExMTY5LDYgKzExMjg1LDM3IEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgewogICAgICAgICBzcGVjdWxhdGVTZXRPYmplY3QoZWRnZSwgbG93Q2VsbChl
ZGdlKSk7CiAgICAgfQorCisgICAgdm9pZCBzcGVjdWxhdGVET01Ob2RlKEVkZ2UgZWRnZSwgTFZh
bHVlIGNlbGwpCisgICAgeworICAgICAgICBGVExfVFlQRV9DSEVDSyhqc1ZhbHVlVmFsdWUoY2Vs
bCksIGVkZ2UsIFNwZWNET01FbGVtZW50LCBpc05vdERPTU5vZGUoY2VsbCkpOworICAgIH0KKwor
ICAgIHZvaWQgc3BlY3VsYXRlRE9NTm9kZShFZGdlIGVkZ2UpCisgICAgeworICAgICAgICBzcGVj
dWxhdGVET01Ob2RlKGVkZ2UsIGxvd0NlbGwoZWRnZSkpOworICAgIH0KKworICAgIHZvaWQgc3Bl
Y3VsYXRlRE9NRWxlbWVudChFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAg
RlRMX1RZUEVfQ0hFQ0soanNWYWx1ZVZhbHVlKGNlbGwpLCBlZGdlLCBTcGVjRE9NRWxlbWVudCwg
aXNOb3RET01FbGVtZW50KGNlbGwpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURPTUVs
ZW1lbnQoRWRnZSBlZGdlKQorICAgIHsKKyAgICAgICAgc3BlY3VsYXRlRE9NRWxlbWVudChlZGdl
LCBsb3dDZWxsKGVkZ2UpKTsKKyAgICB9CisKKyAgICB2b2lkIHNwZWN1bGF0ZURPTURvY3VtZW50
V3JhcHBlcihFZGdlIGVkZ2UsIExWYWx1ZSBjZWxsKQorICAgIHsKKyAgICAgICAgRlRMX1RZUEVf
Q0hFQ0soCisgICAgICAgICAgICBqc1ZhbHVlVmFsdWUoY2VsbCksIGVkZ2UsIFNwZWNEZXJpdmVk
QXJyYXksIGlzTm90VHlwZShjZWxsLCBET01Eb2N1bWVudFdyYXBwZXJUeXBlKSk7CisgICAgfQor
CisgICAgdm9pZCBzcGVjdWxhdGVET01Eb2N1bWVudFdyYXBwZXIoRWRnZSBlZGdlKQorICAgIHsK
KyAgICAgICAgc3BlY3VsYXRlRE9NRG9jdW1lbnRXcmFwcGVyKGVkZ2UsIGxvd0NlbGwoZWRnZSkp
OworICAgIH0KICAgICAKICAgICB2b2lkIHNwZWN1bGF0ZVN0cmluZyhFZGdlIGVkZ2UsIExWYWx1
ZSBjZWxsKQogICAgIHsKQEAgLTExOTU4LDYgKzEyMTA1LDEwIEBAIGNsYXNzIExvd2VyREZHVG9C
MyB7CiAgICAgewogICAgICAgICBtX3N0b3JhZ2VWYWx1ZXMuc2V0KG5vZGUsIExvd2VyZWROb2Rl
VmFsdWUodmFsdWUsIG1faGlnaEJsb2NrKSk7CiAgICAgfQorICAgIHZvaWQgc2V0T3BhcXVlUG9p
bnRlcihOb2RlKiBub2RlLCBMVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBtX29wYXF1ZVBv
aW50ZXJWYWx1ZXMuc2V0KG5vZGUsIExvd2VyZWROb2RlVmFsdWUodmFsdWUsIG1faGlnaEJsb2Nr
KSk7CisgICAgfQogICAgIHZvaWQgc2V0TWFwQnVja2V0KE5vZGUqIG5vZGUsIExWYWx1ZSB2YWx1
ZSkKICAgICB7CiAgICAgICAgIG1fbWFwQnVja2V0VmFsdWVzLnNldChub2RlLCBMb3dlcmVkTm9k
ZVZhbHVlKHZhbHVlLCBtX2hpZ2hCbG9jaykpOwpAQCAtMTE5OTUsNiArMTIxNDYsMTAgQEAgY2xh
c3MgTG93ZXJERkdUb0IzIHsKICAgICB7CiAgICAgICAgIHNldFN0b3JhZ2UobV9ub2RlLCB2YWx1
ZSk7CiAgICAgfQorICAgIHZvaWQgc2V0T3BhcXVlUG9pbnRlcihMVmFsdWUgdmFsdWUpCisgICAg
eworICAgICAgICBzZXRPcGFxdWVQb2ludGVyKG1fbm9kZSwgdmFsdWUpOworICAgIH0KICAgICB2
b2lkIHNldE1hcEJ1Y2tldChMVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBzZXRNYXBCdWNr
ZXQobV9ub2RlLCB2YWx1ZSk7CkBAIC0xMjE4Miw2ICsxMjMzNyw3IEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgSGFzaE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1ZT4gbV9qc1ZhbHVlVmFs
dWVzOwogICAgIEhhc2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+IG1fYm9vbGVhblZhbHVl
czsKICAgICBIYXNoTWFwPE5vZGUqLCBMb3dlcmVkTm9kZVZhbHVlPiBtX3N0b3JhZ2VWYWx1ZXM7
CisgICAgSGFzaE1hcDxOb2RlKiwgTG93ZXJlZE5vZGVWYWx1ZT4gbV9vcGFxdWVQb2ludGVyVmFs
dWVzOwogICAgIEhhc2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+IG1fbWFwQnVja2V0VmFs
dWVzOwogICAgIEhhc2hNYXA8Tm9kZSosIExvd2VyZWROb2RlVmFsdWU+IG1fZG91YmxlVmFsdWVz
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0ltcGwu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJbXBsLmgKaW5kZXggZDgxN2I3Mjhi
NjZmOWUxM2NjZDA4OTBkNDE2ZTI3MWYyNjcyN2Y3Ny4uM2UzMDQ2OGQzOGJlMmZjMjNmMGQ5ZTQ5
MWFiNzhjOTM4ZWYwNmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
V2Vha0ltcGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrSW1wbC5oCkBA
IC01Niw2ICs1NiwxNiBAQCBjbGFzcyBXZWFrSW1wbCB7CiAKICAgICBzdGF0aWMgV2Vha0ltcGwq
IGFzV2Vha0ltcGwoSlNWYWx1ZSopOwogCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkpT
VmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihXZWFrSW1wbCwg
bV9qc1ZhbHVlKTsKKyAgICB9CisKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV2Vha0hh
bmRsZU93bmVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoV2Vha0lt
cGwsIG1fd2Vha0hhbmRsZU93bmVyKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgY29uc3QgSlNW
YWx1ZSBtX2pzVmFsdWU7CiAgICAgV2Vha0hhbmRsZU93bmVyKiBtX3dlYWtIYW5kbGVPd25lcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDc2OTQ5
MWEzNjdiYTVmZjE0MGI1Mzg3YjhiNWZjMmI3ZjhjNmM2ODAuLmVkMTAxMmI0MWMwYjAzODhlMDg4
ZDQ5YjlkMWVjOGQ1ZTkxNDY0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaApAQCAtODU0LDYgKzg1NCwzMCBAQCBjbGFzcyBBc3NlbWJseUhlbHBlcnMg
OiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXIgewogICAgICAgICByZXR1cm4gYnJhbmNoOCgKICAgICAg
ICAgICAgIEJlbG93LCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0
KCkpLCBUcnVzdGVkSW1tMzIoT2JqZWN0VHlwZSkpOwogICAgIH0KKworICAgIEp1bXAgYnJhbmNo
SWZET01Ob2RlKEdQUlJlZyBjZWxsR1BSKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDgo
CisgICAgICAgICAgICBBYm92ZU9yRXF1YWwsIEFkZHJlc3MoY2VsbEdQUiwgSlNDZWxsOjp0eXBl
SW5mb1R5cGVPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihET01Ob2RlVHlwZSkpOworICAgIH0KKwor
ICAgIEp1bXAgYnJhbmNoSWZOb3RET01Ob2RlKEdQUlJlZyBjZWxsR1BSKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGJyYW5jaDgoCisgICAgICAgICAgICBCZWxvdywgQWRkcmVzcyhjZWxsR1BSLCBK
U0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZEltbTMyKERPTU5vZGVUeXBlKSk7
CisgICAgfQorCisgICAgSnVtcCBicmFuY2hJZkRPTUVsZW1lbnQoR1BSUmVnIGNlbGxHUFIpCisg
ICAgeworICAgICAgICByZXR1cm4gYnJhbmNoOCgKKyAgICAgICAgICAgIEFib3ZlT3JFcXVhbCwg
QWRkcmVzcyhjZWxsR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgVHJ1c3RlZElt
bTMyKERPTUVsZW1lbnRUeXBlKSk7CisgICAgfQorCisgICAgSnVtcCBicmFuY2hJZk5vdERPTUVs
ZW1lbnQoR1BSUmVnIGNlbGxHUFIpCisgICAgeworICAgICAgICByZXR1cm4gYnJhbmNoOCgKKyAg
ICAgICAgICAgIEJlbG93LCBBZGRyZXNzKGNlbGxHUFIsIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zm
c2V0KCkpLCBUcnVzdGVkSW1tMzIoRE9NRWxlbWVudFR5cGUpKTsKKyAgICB9CiAgICAgCiAgICAg
SnVtcCBicmFuY2hJZlR5cGUoR1BSUmVnIGNlbGxHUFIsIEpTVHlwZSB0eXBlKQogICAgIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggMWQ0YWQzOGM1OWI0
ZTczNjkzMDY1YjNhYzVlMDFjYTZkNDE2NGNkMS4uYmU0ZWE5NjFjNTg1NDY1NTk0MDRlYjZjYWE0
MzM1NjJhYjYwMjE5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmgKQEAgLTExMiw2ICsxMTIsNyBAQCB0eXBlZGVmIGNoYXIqIFVudXNlZFB0cjsKICAgICBTeW10
YWI6IFN5bWJvbFRhYmxlKgogICAgIFQ6IFN0cmluZ0ltcGwqCiAgICAgVjogdm9pZAorICAgIFZw
OiB2b2lkKgogICAgIFZtOiBWTSoKICAgICBXczogV2F0Y2hwb2ludFNldCoKICAgICBaOiBpbnQz
Ml90CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAppbmRleCBkNDU5MzljNTk1OWE4
MDdkNDUwNWI5NGVhM2NlYTE1NWZmZjVjNGI4Li41ZTBkMTEyMGNhNWQ0NDI3NDc3M2Q5MWM5ZjZm
ODljN2YwMzUzZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0
Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWVTaHVmZmxlci5oIgogI2luY2x1ZGUgIkRG
R09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJERkdTcGVjdWxhdGl2ZUpJVC5oIgorI2luY2x1ZGUg
IkRPTUpJVEdyYXBoLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAi
RlRMVGh1bmtzLmgiCiAjaW5jbHVkZSAiR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmgiCkBAIC0yNjAs
NiArMjYxLDEwIEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5SUQoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uCiAgICAgICAgIGlmIChzbG90Lmlz
Q2FjaGVhYmxlR2V0dGVyKCkpCiAgICAgICAgICAgICBnZXR0ZXIgPSBqc0R5bmFtaWNDYXN0PEpT
RnVuY3Rpb24qPihzbG90LmdldHRlclNldHRlcigpLT5nZXR0ZXIoKSk7CiAKKyAgICAgICAgRE9N
SklUOjpHcmFwaCogZG9tSklUID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFi
bGVDdXN0b20oKSAmJiBzbG90LmRvbUpJVCgpKQorICAgICAgICAgICAgZG9tSklUID0gc2xvdC5k
b21KSVQoKTsKKwogICAgICAgICBpZiAoa2luZCA9PSBHZXRCeUlES2luZDo6UHVyZSkgewogICAg
ICAgICAgICAgQWNjZXNzQ2FzZTo6QWNjZXNzVHlwZSB0eXBlOwogICAgICAgICAgICAgaWYgKHNs
b3QuaXNDYWNoZWFibGVWYWx1ZSgpKQpAQCAtMjkwLDcgKzI5NSw4IEBAIHN0YXRpYyBJbmxpbmVD
YWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VW
YWx1ZSwgY29uCiAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Z2V0KAogICAgICAg
ICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIHR5cGUsIG9mZnNldCwgc3RydWN0dXJlLCBjb25kaXRp
b25TZXQsIGxvYWRUYXJnZXRGcm9tUHJveHksCiAgICAgICAgICAgICAgICAgc2xvdC53YXRjaHBv
aW50U2V0KCksIHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSA/IHNsb3QuY3VzdG9tR2V0dGVyKCkg
OiBudWxscHRyLAotICAgICAgICAgICAgICAgIHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSA/IHNs
b3Quc2xvdEJhc2UoKSA6IG51bGxwdHIpOworICAgICAgICAgICAgICAgIHNsb3QuaXNDYWNoZWFi
bGVDdXN0b20oKSA/IHNsb3Quc2xvdEJhc2UoKSA6IG51bGxwdHIsCisgICAgICAgICAgICAgICAg
ZG9tSklUKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuaAppbmRleCBkNzAyZGRmNGRhMDU3NjkwNWY3
OWNlYWQ2MGI2YTIzY2RiOWMzNjY2Li4xZWFkNDAyN2U5Zjg2Yzg1MTg1ZWUzZTMwNWI2OWJlNzQx
M2NkZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21H
ZXR0ZXJTZXR0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21H
ZXR0ZXJTZXR0ZXIuaApAQCAtMzEsNiArMzEsOSBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgog
CiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworY2xhc3MgR3JhcGg7Cit9CiAK
IGNsYXNzIEN1c3RvbUdldHRlclNldHRlciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogcHVibGlj
OgpAQCAtNDAsMTUgKzQzLDE2IEBAIGNsYXNzIEN1c3RvbUdldHRlclNldHRlciBmaW5hbCA6IHB1
YmxpYyBKU0NlbGwgewogICAgIHR5cGVkZWYgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgQ3Vz
dG9tR2V0dGVyOwogICAgIHR5cGVkZWYgUHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmMgQ3Vz
dG9tU2V0dGVyOwogCi0gICAgc3RhdGljIEN1c3RvbUdldHRlclNldHRlciogY3JlYXRlKFZNJiB2
bSwgQ3VzdG9tR2V0dGVyIGN1c3RvbUdldHRlciwgQ3VzdG9tU2V0dGVyIGN1c3RvbVNldHRlcikK
KyAgICBzdGF0aWMgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjcmVhdGUoVk0mIHZtLCBDdXN0b21HZXR0
ZXIgY3VzdG9tR2V0dGVyLCBDdXN0b21TZXR0ZXIgY3VzdG9tU2V0dGVyLCBET01KSVQ6OkdyYXBo
KiBkb21KSVQgPSBudWxscHRyKQogICAgIHsKLSAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBj
dXN0b21HZXR0ZXJTZXR0ZXIgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxDdXN0b21HZXR0
ZXJTZXR0ZXI+KHZtLmhlYXApKSBDdXN0b21HZXR0ZXJTZXR0ZXIodm0sIGN1c3RvbUdldHRlciwg
Y3VzdG9tU2V0dGVyKTsKKyAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJT
ZXR0ZXIgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxDdXN0b21HZXR0ZXJTZXR0ZXI+KHZt
LmhlYXApKSBDdXN0b21HZXR0ZXJTZXR0ZXIodm0sIGN1c3RvbUdldHRlciwgY3VzdG9tU2V0dGVy
LCBkb21KSVQpOwogICAgICAgICBjdXN0b21HZXR0ZXJTZXR0ZXItPmZpbmlzaENyZWF0aW9uKHZt
KTsKICAgICAgICAgcmV0dXJuIGN1c3RvbUdldHRlclNldHRlcjsKICAgICB9CiAKICAgICBDdXN0
b21HZXR0ZXJTZXR0ZXI6OkN1c3RvbUdldHRlciBnZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX2dl
dHRlcjsgfQogICAgIEN1c3RvbUdldHRlclNldHRlcjo6Q3VzdG9tU2V0dGVyIHNldHRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fc2V0dGVyOyB9CisgICAgRE9NSklUOjpHcmFwaCogZG9tSklUKCkgY29u
c3QgeyByZXR1cm4gbV9kb21KSVQ7IH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKQEAgLTU4LDE1ICs2MiwxNyBAQCBjbGFzcyBDdXN0b21HZXR0ZXJTZXR0
ZXIgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwogCiBw
cml2YXRlOgotICAgIEN1c3RvbUdldHRlclNldHRlcihWTSYgdm0sIEN1c3RvbUdldHRlciBnZXR0
ZXIsIEN1c3RvbVNldHRlciBzZXR0ZXIpCisgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKFZNJiB2bSwg
Q3VzdG9tR2V0dGVyIGdldHRlciwgQ3VzdG9tU2V0dGVyIHNldHRlciwgRE9NSklUOjpHcmFwaCog
ZG9tSklUKQogICAgICAgICA6IEpTQ2VsbCh2bSwgdm0uY3VzdG9tR2V0dGVyU2V0dGVyU3RydWN0
dXJlLmdldCgpKQogICAgICAgICAsIG1fZ2V0dGVyKGdldHRlcikKICAgICAgICAgLCBtX3NldHRl
cihzZXR0ZXIpCisgICAgICAgICwgbV9kb21KSVQoZG9tSklUKQogICAgIHsKICAgICB9CiAKICAg
ICBDdXN0b21HZXR0ZXIgbV9nZXR0ZXI7CiAgICAgQ3VzdG9tU2V0dGVyIG1fc2V0dGVyOworICAg
IERPTUpJVDo6R3JhcGgqIG1fZG9tSklUOwogfTsKIAogSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBj
YWxsQ3VzdG9tU2V0dGVyKEV4ZWNTdGF0ZSosIEN1c3RvbUdldHRlclNldHRlcjo6Q3VzdG9tU2V0
dGVyLCBib29sIGlzQWNjZXNzb3IsIEpTVmFsdWUgdGhpc1ZhbHVlLCBKU1ZhbHVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKaW5kZXggM2VlOWRiZWJhNWY4N2Uz
YTNkZDRlOGQ0YjE1MTYwYTJiZGM3N2JkNC4uMDQxNWNkYWM3YTI4NzNkMzQ4ZDgzYWJhNTgxNmQ5
YjBlMmI4NDU3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
cmluc2ljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgK
QEAgLTcwLDYgKzcwLDcgQEAgZW51bSBKU19FWFBPUlRfUFJJVkFURSBJbnRyaW5zaWMgewogICAg
IFR5cGVkQXJyYXlMZW5ndGhJbnRyaW5zaWMsCiAgICAgVHlwZWRBcnJheUJ5dGVMZW5ndGhJbnRy
aW5zaWMsCiAgICAgVHlwZWRBcnJheUJ5dGVPZmZzZXRJbnRyaW5zaWMsCisgICAgRE9NTm9kZUZp
cnN0Q2hpbGRJbnRyaW5zaWMsCiAKICAgICAvLyBEZWJ1Z2dpbmcgaW50cmluc2ljcy4gVGhlc2Ug
YXJlIG1lYW50IHRvIGJlIHVzZWQgYXMgdGVzdGluZyBoYWNrcyB3aXRoaW4KICAgICAvLyBqc2Mu
Y3BwIGFuZCBzaG91bGQgbmV2ZXIgYmUgZXhwb3NlZCB0byB1c2Vycy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDY5NWJmYjcyZWZkNDY3NmZmYWIxYmQ1YzYy
ZGQyNjQ1NzgwNWU4OTAuLmE2MDlhNDhjOTA4NmM0M2JkNGZiZTE1Y2I3ZWQ5OWM3Mzg0NGY5NWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTI5MCw3ICsx
MjkwLDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpTT2JqZWN0OjpmaWxsQ3VzdG9tR2V0dGVyUHJv
cGVydHlTbG90KFByb3BlcnR5U2xvdCYgc2xvdCwgSlMKIAogICAgIC8vIFRoaXMgYWNjZXNzIGlz
IGNhY2hlYWJsZSBiZWNhdXNlIFN0cnVjdHVyZSByZXF1aXJlcyBhbiBhdHRyaWJ1dGVDaGFuZ2Vk
VHJhbnNpdGlvbgogICAgIC8vIGlmIHRoaXMgcHJvcGVydHkgc3RvcHMgYmVpbmcgYW4gYWNjZXNz
b3IuCi0gICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpcywgYXR0cmlidXRlcywganNDYXN0
PEN1c3RvbUdldHRlclNldHRlcio+KGN1c3RvbUdldHRlclNldHRlciktPmdldHRlcigpKTsKKyAg
ICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzLCBhdHRyaWJ1dGVzLCBqc0Nhc3Q8Q3VzdG9t
R2V0dGVyU2V0dGVyKj4oY3VzdG9tR2V0dGVyU2V0dGVyKS0+Z2V0dGVyKCksIGpzQ2FzdDxDdXN0
b21HZXR0ZXJTZXR0ZXIqPihjdXN0b21HZXR0ZXJTZXR0ZXIpLT5kb21KSVQoKSk7CiB9CiAKIC8v
IEl0IG1heSBzZWVtIGNyYXp5IHRvIGlubGluZSBhIGZ1bmN0aW9uIHRoaXMgbGFyZ2UsIGVzcGVj
aWFsbHkgYSB2aXJ0dWFsIGZ1bmN0aW9uLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5
cGUuaAppbmRleCAwMTBlOTA0N2I3ZWRlYTY2NDQ4ZmI5NzFlM2Q0ZWU5NmJmMDhjYjk4Li44MzYy
N2VmZTljNDgxMTJjOGU4MDA2MWQzZDYyYmJkOWYzM2Q4YTlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGUuaApAQCAtODYsNyArODYsMTMgQEAgZW51bSBKU1R5cGUgOiB1aW50
OF90IHsKICAgICBKU01hcFR5cGUsCiAgICAgSlNTZXRUeXBlLAogCi0gICAgTGFzdEpTQ09iamVj
dFR5cGUgPSBKU1NldFR5cGUsCisgICAgLy8gVGhlIERPTU5vZGVUeXBlIHZhbHVlIG11c3QgY29t
ZSBiZWZvcmUgYW55IEpTVHlwZSB0aGF0IGlzIGEgc3ViY2xhc3Mgb2YgSlNOb2RlLgorICAgIERP
TU5vZGVUeXBlLAorICAgIERPTURvY3VtZW50V3JhcHBlclR5cGUsCisgICAgLy8gVGhlIERPTUVs
ZW1lbnRUeXBlIHZhbHVlIG11c3QgY29tZSBiZWZvcmUgYW55IEpTVHlwZSB0aGF0IGlzIGEgc3Vi
Y2xhc3Mgb2YgSlNFbGVtZW50LgorICAgIERPTUVsZW1lbnRUeXBlLAorCisgICAgTGFzdEpTQ09i
amVjdFR5cGUgPSBET01FbGVtZW50VHlwZSwKIH07CiAKIENPTVBJTEVfQVNTRVJUKHNpemVvZihK
U1R5cGUpID09IHNpemVvZih1aW50OF90KSwgc2l6ZW9mX2pzdHlwZV9pc19vbmVfYnl0ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCmluZGV4IDY5MmQ3Yzc4OWZlZDQ3YjVh
ZDc0MGM5YmRhNzJjNjYyNGE2NWE0ZTcuLmQ5NzA0NTZjODk2MDgwYzBiNGY1YWFkM2ViYjQ2Y2E5
NjNhY2JlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1
cC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCkBAIC0yMyw2
ICsyMyw3IEBACiAjaW5jbHVkZSAiQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaCIKICNpbmNs
dWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDdXN0b21HZXR0ZXJTZXR0ZXIuaCIKKyNpbmNs
dWRlICJET01KSVRHcmFwaC5oIgogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJ
ZGVudGlmaWVySW5saW5lcy5oIgogI2luY2x1ZGUgIkludHJpbnNpYy5oIgpAQCAtNDYsNiArNDcs
NyBAQCB0eXBlZGVmIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIEdldEZ1bmN0aW9uOwogdHlw
ZWRlZiBQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYyBQdXRGdW5jdGlvbjsKIHR5cGVkZWYg
RnVuY3Rpb25FeGVjdXRhYmxlKiAoKkJ1aWx0aW5HZW5lcmF0b3IpKFZNJik7CiB0eXBlZGVmIEpT
VmFsdWUgKCpMYXp5UHJvcGVydHlDYWxsYmFjaykoVk0mLCBKU09iamVjdCopOwordHlwZWRlZiBE
T01KSVQ6OkdyYXBoKiAoKkRPTUpJVEdyYXBoR2VuZXJhdG9yKSh2b2lkKTsKIAogLy8gSGFzaCB0
YWJsZSBnZW5lcmF0ZWQgYnkgdGhlIGNyZWF0ZV9oYXNoX3RhYmxlIHNjcmlwdC4KIHN0cnVjdCBI
YXNoVGFibGVWYWx1ZSB7CkBAIC03OCw2ICs4MCw4IEBAIHN0cnVjdCBIYXNoVGFibGVWYWx1ZSB7
CiAgICAgR2V0RnVuY3Rpb24gcHJvcGVydHlHZXR0ZXIoKSBjb25zdCB7IEFTU0VSVCghKG1fYXR0
cmlidXRlcyAmIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6eVByb3BlcnR5T3JDb25z
dGFudCkpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxHZXRGdW5jdGlvbj4obV92YWx1ZXMudmFs
dWUxKTsgfQogICAgIFB1dEZ1bmN0aW9uIHByb3BlcnR5UHV0dGVyKCkgY29uc3QgeyBBU1NFUlQo
IShtX2F0dHJpYnV0ZXMgJiBCdWlsdGluT3JGdW5jdGlvbk9yQWNjZXNzb3JPckxhenlQcm9wZXJ0
eU9yQ29uc3RhbnQpKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UHV0RnVuY3Rpb24+KG1fdmFs
dWVzLnZhbHVlMik7IH0KIAorICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCgpIGNvbnN0IHsgQVNT
RVJUKG1fYXR0cmlidXRlcyAmIERPTUpJVEF0dHJpYnV0ZSk7IHJldHVybiByZWludGVycHJldF9j
YXN0PERPTUpJVEdyYXBoR2VuZXJhdG9yPihtX3ZhbHVlcy52YWx1ZTEpKCk7IH0KKwogICAgIE5h
dGl2ZUZ1bmN0aW9uIGFjY2Vzc29yR2V0dGVyKCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVz
ICYgQWNjZXNzb3IpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOYXRpdmVGdW5jdGlvbj4obV92
YWx1ZXMudmFsdWUxKTsgfQogICAgIE5hdGl2ZUZ1bmN0aW9uIGFjY2Vzc29yU2V0dGVyKCkgY29u
c3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVzICYgQWNjZXNzb3IpOyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4obV92YWx1ZXMudmFsdWUyKTsgfQogICAgIEJ1aWx0aW5HZW5l
cmF0b3IgYnVpbHRpbkFjY2Vzc29yR2V0dGVyR2VuZXJhdG9yKCkgY29uc3Q7CkBAIC0yMjQsNiAr
MjI4LDEyIEBAIGlubGluZSBib29sIGdldFN0YXRpY1Byb3BlcnR5U2xvdEZyb21UYWJsZShWTSYg
dm0sIGNvbnN0IEhhc2hUYWJsZSYgdGFibGUsIEpTT2JqCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAorICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgRE9NSklUQXR0cmlidXRlKSB7
CisgICAgICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IGVudHJ5LT5kb21KSVQoKTsKKyAgICAg
ICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgYXR0cmlidXRlc0ZvclN0cnVj
dHVyZShlbnRyeS0+YXR0cmlidXRlcygpKSwgZG9tSklULT5nZXR0ZXIoKSwgZG9tSklUKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20o
dGhpc09iamVjdCwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShlbnRyeS0+YXR0cmlidXRlcygpKSwg
ZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjU5LDYg
KzI2OSw3IEBAIGlubGluZSBib29sIHB1dEVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSGFz
aFRhYmxlVmFsdWUqIGVudHJ5LCBKU09iamVjdCogYmFzCiAgICAgICAgIHJldHVybiByZWplY3Qo
ZXhlYywgc2xvdC5pc1N0cmljdE1vZGUoKSwgU3RyaWN0TW9kZVJlYWRvbmx5UHJvcGVydHlXcml0
ZUVycm9yKTsKIAogICAgIGlmICghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBSZWFkT25seSkpIHsK
KyAgICAgICAgQVNTRVJUKCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIERPTUpJVEF0dHJpYnV0ZSkp
OwogICAgICAgICBib29sIGlzQWNjZXNzb3IgPSBlbnRyeS0+YXR0cmlidXRlcygpICYgQ3VzdG9t
QWNjZXNzb3I7CiAgICAgICAgIEpTVmFsdWUgdXBkYXRlVGhpc1ZhbHVlID0gZW50cnktPmF0dHJp
YnV0ZXMoKSAmIEN1c3RvbUFjY2Vzc29yID8gc2xvdC50aGlzVmFsdWUoKSA6IEpTVmFsdWUoYmFz
ZSk7CiAgICAgICAgIGJvb2wgcmVzdWx0ID0gY2FsbEN1c3RvbVNldHRlcihleGVjLCBlbnRyeS0+
cHJvcGVydHlQdXR0ZXIoKSwgaXNBY2Nlc3NvciwgdXBkYXRlVGhpc1ZhbHVlLCB2YWx1ZSk7CkBA
IC0zMzYsNiArMzQ3LDEzIEBAIGlubGluZSB2b2lkIHJlaWZ5U3RhdGljUHJvcGVydHkoVk0mIHZt
LCBjb25zdCBQcm9wZXJ0eU5hbWUmIHByb3BlcnR5TmFtZSwgY29uc3QKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAorICAgIGlmICh2YWx1ZS5hdHRyaWJ1dGVzKCkgJiBET01KSVRBdHRyaWJ1dGUp
IHsKKyAgICAgICAgRE9NSklUOjpHcmFwaCogZG9tSklUID0gdmFsdWUuZG9tSklUKCk7CisgICAg
ICAgIEN1c3RvbUdldHRlclNldHRlciogY3VzdG9tR2V0dGVyU2V0dGVyID0gQ3VzdG9tR2V0dGVy
U2V0dGVyOjpjcmVhdGUodm0sIGRvbUpJVC0+Z2V0dGVyKCksIGRvbUpJVC0+c2V0dGVyKCksIGRv
bUpJVCk7CisgICAgICAgIHRoaXNPYmoucHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHByb3Bl
cnR5TmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHZhbHVl
LmF0dHJpYnV0ZXMoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQ3VzdG9tR2V0
dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0
ZSh2bSwgdmFsdWUucHJvcGVydHlHZXR0ZXIoKSwgdmFsdWUucHJvcGVydHlQdXR0ZXIoKSk7CiAg
ICAgdGhpc09iai5wdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgcHJvcGVydHlOYW1lLCBjdXN0
b21HZXR0ZXJTZXR0ZXIsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmlidXRlcygp
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eVNsb3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCmlu
ZGV4IGUxMzdkODQ1ZDVmYzMxMzg4NjVkMTc2YTIyYTdlM2JkNTE3Y2ViMTMuLjM0NGMxNDhmOTkz
ZDk1NTY5ZjdkYzk3ZGYyNjQ3MmU3YmZhZTdmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCkBAIC0yNiw3ICsyNiw5IEBACiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIEpTQyB7Ci0KK25hbWVzcGFjZSBET01KSVQgewor
Y2xhc3MgR3JhcGg7Cit9CiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBHZXR0ZXJTZXR0ZXI7CiBj
bGFzcyBKU09iamVjdDsKQEAgLTQ4LDYgKzUwLDcgQEAgZW51bSBBdHRyaWJ1dGUgewogICAgIENl
bGxQcm9wZXJ0eSAgICAgID0gMSA8PCAxMSwgLy8gcHJvcGVydHkgaXMgYSBsYXp5IHByb3BlcnR5
IC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQ2xhc3NTdHJ1Y3R1cmUgICAg
PSAxIDw8IDEyLCAvLyBwcm9wZXJ0eSBpcyBhIGxhenkgY2xhc3Mgc3RydWN0dXJlIC0gb25seSB1
c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgUHJvcGVydHlDYWxsYmFjayAgPSAxIDw8IDEz
LCAvLyBwcm9wZXJ0eSB0aGF0IGlzIGEgbGF6eSBwcm9wZXJ0eSBjYWxsYmFjayAtIG9ubHkgdXNl
ZCBieSBzdGF0aWMgaGFzaHRhYmxlcworICAgIERPTUpJVEF0dHJpYnV0ZSAgID0gMSA8PCAxNCwg
Ly8gcHJvcGVydHkgaXMgYSBET00gSklUIGF0dHJpYnV0ZSAtIG9ubHkgdXNlZCBieSBzdGF0aWMg
aGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uID0gQnVpbHRpbiB8IEZ1bmN0aW9uLCAv
LyBoZWxwZXIgb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRpbk9yRnVu
Y3Rpb25PckxhenlQcm9wZXJ0eSA9IEJ1aWx0aW4gfCBGdW5jdGlvbiB8IENlbGxQcm9wZXJ0eSB8
IENsYXNzU3RydWN0dXJlIHwgUHJvcGVydHlDYWxsYmFjaywgLy8gaGVscGVyIG9ubHkgdXNlZCBi
eSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6
eVByb3BlcnR5ID0gQnVpbHRpbiB8IEZ1bmN0aW9uIHwgQWNjZXNzb3IgfCBDZWxsUHJvcGVydHkg
fCBDbGFzc1N0cnVjdHVyZSB8IFByb3BlcnR5Q2FsbGJhY2ssIC8vIGhlbHBlciBvbmx5IHVzZWQg
Ynkgc3RhdGljIGhhc2h0YWJsZXMKQEAgLTE1Nyw2ICsxNjAsMTEgQEAgY2xhc3MgUHJvcGVydHlT
bG90IHsKICAgICAgICAgcmV0dXJuIG1fd2F0Y2hwb2ludFNldDsKICAgICB9CiAKKyAgICBET01K
SVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZG9tSklU
OworICAgIH0KKwogICAgIHZvaWQgc2V0VmFsdWUoSlNPYmplY3QqIHNsb3RCYXNlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzLCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGF0dHJp
YnV0ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CkBAIC0yMTEsNyAr
MjE5LDcgQEAgY2xhc3MgUHJvcGVydHlTbG90IHsKICAgICAgICAgbV9vZmZzZXQgPSBpbnZhbGlk
T2Zmc2V0OwogICAgIH0KICAgICAKLSAgICB2b2lkIHNldENhY2hlYWJsZUN1c3RvbShKU09iamVj
dCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEdldFZhbHVlRnVuYyBnZXRWYWx1ZSkK
KyAgICB2b2lkIHNldENhY2hlYWJsZUN1c3RvbShKU09iamVjdCogc2xvdEJhc2UsIHVuc2lnbmVk
IGF0dHJpYnV0ZXMsIEdldFZhbHVlRnVuYyBnZXRWYWx1ZSwgRE9NSklUOjpHcmFwaCogZG9tSklU
ID0gbnVsbHB0cikKICAgICB7CiAgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0
ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykpOwogICAgICAgICAKQEAgLTIyMyw2ICsyMzEsNyBA
QCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogICAgICAgICBtX3Nsb3RCYXNlID0gc2xvdEJhc2U7CiAg
ICAgICAgIG1fcHJvcGVydHlUeXBlID0gVHlwZUN1c3RvbTsKICAgICAgICAgbV9vZmZzZXQgPSAh
aW52YWxpZE9mZnNldDsKKyAgICAgICAgbV9kb21KSVQgPSBkb21KSVQ7CiAgICAgfQogCiAgICAg
dm9pZCBzZXRDdXN0b21HZXR0ZXJTZXR0ZXIoSlNPYmplY3QqIHNsb3RCYXNlLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzLCBDdXN0b21HZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlcikKQEAgLTMxOCw2ICsz
MjcsNyBAQCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogICAgIENhY2hlYWJpbGl0eVR5cGUgbV9jYWNo
ZWFiaWxpdHk7CiAgICAgUHJvcGVydHlUeXBlIG1fcHJvcGVydHlUeXBlOwogICAgIEludGVybmFs
TWV0aG9kVHlwZSBtX2ludGVybmFsTWV0aG9kVHlwZTsKKyAgICBET01KSVQ6OkdyYXBoKiBtX2Rv
bUpJVCB7IG51bGxwdHIgfTsKICAgICBib29sIG1faXNUYWludGVkQnlPcGFxdWVPYmplY3Q7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaCBiL1NvdXJjZS9X
VEYvd3RmL1N0ZExpYkV4dHJhcy5oCmluZGV4IDZlOGEyMTQ0YzExYzFiOGIyZjVmMjdmN2ZjMGMz
ZGVmYWM3ZGYyYjYuLjkyMDgzMDkyYjkzMWY4OWIwNmRjODViOWUxYTU0NmZhMjYzMjcyZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1N0ZExpYkV4dHJhcy5oCkBAIC02OCw2ICs2OCw4IEBACiAvLyBOVUxMIGNhbiBjYXVzZSBj
b21waWxlciBwcm9ibGVtcywgZXNwZWNpYWxseSBpbiBjYXNlcyBvZiBtdWx0aXBsZSBpbmhlcml0
YW5jZS4KICNkZWZpbmUgT0JKRUNUX09GRlNFVE9GKGNsYXNzLCBmaWVsZCkgKHJlaW50ZXJwcmV0
X2Nhc3Q8cHRyZGlmZl90PigmKHJlaW50ZXJwcmV0X2Nhc3Q8Y2xhc3MqPigweDQwMDApLT5maWVs
ZCkpIC0gMHg0MDAwKQogCisjZGVmaW5lIENBU1RfT0ZGU0VUKGZyb20sIHRvKSAocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KHN0YXRpY19jYXN0PHRvPigocmVpbnRlcnByZXRfY2FzdDxmcm9t
PigweDQwMDApKSkpIC0gMHg0MDAwKQorCiAvLyBTVFJJTkdJWkU6IENhbiBjb252ZXJ0IGFueSB2
YWx1ZSB0byBxdW90ZWQgc3RyaW5nLCBldmVuIGV4cGFuZGFibGUgbWFjcm9zCiAjZGVmaW5lIFNU
UklOR0laRShleHApICNleHAKICNkZWZpbmUgU1RSSU5HSVpFX1ZBTFVFX09GKGV4cCkgU1RSSU5H
SVpFKGV4cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2Rv
bWppdC9ET01KSVRHcmFwaC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvZG9t
aml0L0RPTUpJVEdyYXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ4MDNjN2Y4YmY1NDQ2Y2Q0YmU1YzM4NGNk
YjRjNTFiMzI2MTdjMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL2RvbWppdC9ET01KSVRHcmFwaC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRlZiBX
ZWJDb3JlX0ZXRF9ET01KSVRHcmFwaF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0RPTUpJVEdyYXBo
X2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9ET01KSVRHcmFwaC5oPgorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDZmNjg3ZThlY2Q3M2RhODhiNDlkODc5NzU4Y2FiZDU1
NjdmMDM3MmEuLjdlOTlhNDkxZTY0ODc2ZDBjYTg2MTNhZGM0OTIwM2NiYTRmZDYxOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xNCw2ICsxNCw3IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNv
bXBpbGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgogICAgICIke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZG9t
aml0IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKICAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2RlYnVnZ2VyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50ZXJwcmV0
ZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGIxNTNlNDAyNGQxNWU5YTQ3OTY0NzAz
N2U2NWU2ZTFiNmQzNmEwOGYuLjA0NjZjZTVhNmFmZGM2OWJiYWM1ZjVmNWY3NWVmMzVmMDE1ZTlk
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xOSw2ICsxOSw3IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJ
Un0vYnl0ZWNvbXBpbGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgogICAgICIk
e0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vZG9taml0IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKICAgICAiJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L2RlYnVnZ2VyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
aW50ZXJwcmV0ZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDM0YjhkYjI3MGJmNjk0
YjJlMDdkMTg0OTFhYTg3NDY3NDM1NjdmYzguLmJjNDdjNGVhYWRkNjY5YjQ1NGY3Njg2YmEzMjI1
NGVjYzE4NmM4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC04MCw2ICs4MCw3IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVf
RElSfS9Gb3J3YXJkaW5nSGVhZGVycy9iaW5kaW5ncyIKICAgICAiJHtXRUJDT1JFX0RJUn0vRm9y
d2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdI
ZWFkZXJzL2RlYnVnZ2VyIgorICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9k
b21qaXQiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2hlYXAiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3RvciIKICAgICAiJHtXRUJD
T1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvaW50ZXJwcmV0ZXIiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2lu
LmNtYWtlCmluZGV4IGFlZDhkZWIwYTI4ODc3ZDk1NjZkMzc4YmQ1OWFkY2QwZWY4YTdjZWQuLmEz
OGZlMTkzZWNjYTMwN2QxNTk1YWI0YmEzN2FmMjVjNmM1MjEwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
V2luLmNtYWtlCkBAIC0xNSw2ICsxNSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJz
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlciIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElS
fS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9kZmciCiAgICAgIiR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVy
IgorICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3Jp
cHRDb3JlL2RvbWppdCIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVh
ZGVycy9KYXZhU2NyaXB0Q29yZS9oZWFwIgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0Zv
cndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyIgogICAgICIke0RFUklWRURf
U09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5k
ZXggZDQwYzQzZjYzZDU3ZTdlNTk3MGM3ZTYyZWZhODU2YWU2NGUzMmYyOS4uMTE2ZDVkZGY1MTk5
MzdmYzY2MTM1NWEyYzg5YmViYjM4MDViYzJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC03Miw2ICs3Miw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkKCkgeyByZXR1cm4gbV93
b3JsZC5nZXQoKTsgfQogICAgICAgICBib29sIHdvcmxkSXNOb3JtYWwoKSBjb25zdCB7IHJldHVy
biBtX3dvcmxkSXNOb3JtYWw7IH0KKyAgICAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldv
cmxkSXNOb3JtYWwoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNET01HbG9iYWxPYmplY3Qs
IG1fd29ybGRJc05vcm1hbCk7IH0KIAogICAgICAgICBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9u
cyYgYnVpbHRpbkludGVybmFsRnVuY3Rpb25zKCkgeyByZXR1cm4gbV9idWlsdGluSW50ZXJuYWxG
dW5jdGlvbnM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApp
bmRleCBjZDUwYWVmODAxYjg1OTI5ZDY3Mzg2YWU2MjZjN2NhZTU4NzJmNGE0Li5jZWM2YjhkNmJk
N2Y2NDUwYzRkMGE5ZDcxNzNiM2E1YzkwZjM5NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdyYXBwZXIuaApAQCAtMzAsMTAgKzMwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgSlNET01XaW5kb3c7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1z
dGF0aWMgY29uc3QgdWludDhfdCBKU05vZGVUeXBlID0gSlNDOjpMYXN0SlNDT2JqZWN0VHlwZSAr
IDE7Ci1zdGF0aWMgY29uc3QgdWludDhfdCBKU0RvY3VtZW50V3JhcHBlclR5cGUgPSBKU0M6Okxh
c3RKU0NPYmplY3RUeXBlICsgMjsKLXN0YXRpYyBjb25zdCB1aW50OF90IEpTRWxlbWVudFR5cGUg
PSBKU0M6Okxhc3RKU0NPYmplY3RUeXBlICsgMzsKLQogY2xhc3MgSlNET01PYmplY3QgOiBwdWJs
aWMgSlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0M6
OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7CkBAIC01OSw2ICs1NSw3IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIEltcGxlbWVudGF0aW9uQ2xhc3M+IGNsYXNzIEpTRE9NV3JhcHBlciA6IHB1YmxpYyBK
U0RPTU9iamVjdCB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRE9NV3JhcHBlciA9IHRy
dWU7CiAKICAgICBJbXBsZW1lbnRhdGlvbkNsYXNzJiB3cmFwcGVkKCkgY29uc3QgeyByZXR1cm4g
Y29uc3RfY2FzdDxJbXBsZW1lbnRhdGlvbkNsYXNzJj4obV93cmFwcGVkLmdldCgpKTsgfQorICAg
IHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXcmFwcGVkKCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKEpTRE9NV3JhcHBlcjxJbXBsZW1lbnRhdGlvbkNsYXNzPiwgbV93cmFwcGVkKTsgfQogCiBw
cm90ZWN0ZWQ6CiAgICAgSlNET01XcmFwcGVyKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
Qzo6SlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgUmVmPEltcGxlbWVudGF0aW9uQ2xhc3M+
JiYgaW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20u
aAppbmRleCA2OWM0Y2E4Mjg5MTljOWIxM2FiYWIxYzgzYjZiYWEwMmE5ZDZiYzJhLi5mMGFjN2M3
NDE4YjA1OGU1YzEwZDE2OGIwMTIzNjUwOWQyMzUxMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5oCkBAIC0zNSw3ICszNSw3IEBAIEFMV0FZU19J
TkxJTkUgSlNEb2N1bWVudCoganNEb2N1bWVudENhc3QoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewog
ICAgIGlmIChVTkxJS0VMWSghdmFsdWUuaXNDZWxsKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICByZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA9PSBKU0RvY3VtZW50V3JhcHBl
clR5cGUgPyBKU0M6OmpzQ2FzdDxKU0RvY3VtZW50Kj4odmFsdWUpIDogbnVsbHB0cjsKKyAgICBy
ZXR1cm4gdmFsdWUuYXNDZWxsKCktPnR5cGUoKSA9PSBKU0M6OkRPTURvY3VtZW50V3JhcHBlclR5
cGUgPyBKU0M6OmpzQ2FzdDxKU0RvY3VtZW50Kj4odmFsdWUpIDogbnVsbHB0cjsKIH0KIAogSlND
OjpKU09iamVjdCogY2FjaGVkRG9jdW1lbnRXcmFwcGVyKEpTQzo6RXhlY1N0YXRlJiwgSlNET01H
bG9iYWxPYmplY3QmLCBEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0VsZW1lbnRDdXN0b20uaAppbmRleCAyYTFiYTAxODAzMjRkMDg0YjRhYzViNmIyYzk1N2VkYzM5
YTc5NmY3Li5mMmJhMGQ5YmFjYzUwMjYwOWJjNjJhNzFiZjk1Y2JhYTdjZmE0OTUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uaApAQCAtMzUsNyArMzUs
NyBAQCBBTFdBWVNfSU5MSU5FIEpTRWxlbWVudCoganNFbGVtZW50Q2FzdChKU0M6OkpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc0NlbGwoKSkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID49IEpTRWxl
bWVudFR5cGUgPyBKU0M6OmpzQ2FzdDxKU0VsZW1lbnQqPih2YWx1ZSkgOiBudWxscHRyOworICAg
IHJldHVybiB2YWx1ZS5hc0NlbGwoKS0+dHlwZSgpID49IEpTQzo6RE9NRWxlbWVudFR5cGUgPyBK
U0M6OmpzQ2FzdDxKU0VsZW1lbnQqPih2YWx1ZSkgOiBudWxscHRyOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCmlu
ZGV4IGFiNjM2MWM2NTNlZTE4NmUwNzRiY2UyMzUyZDUyY2JiODZmNzEzZjAuLjUwMTQ5ZjgyOTg5
YzhhYTljYjEyNjY3YzVkMjNkNjg0NmU2NzA3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUN1c3RvbS5oCkBAIC04Miw3ICs4Miw3IEBAIEFMV0FZU19JTkxJTkUgSlNOb2Rl
KiBqc05vZGVDYXN0KEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoVU5MSUtFTFkoIXZh
bHVlLmlzQ2VsbCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIHZhbHVl
LmFzQ2VsbCgpLT50eXBlKCkgPj0gSlNOb2RlVHlwZSA/IEpTQzo6anNDYXN0PEpTTm9kZSo+KHZh
bHVlKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHZhbHVlLmFzQ2VsbCgpLT50eXBlKCkgPj0gSlND
OjpET01Ob2RlVHlwZSA/IEpTQzo6anNDYXN0PEpTTm9kZSo+KHZhbHVlKSA6IG51bGxwdHI7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0V3JhcHBhYmxlLmgKaW5kZXggNWQ5MzI2MTE0YWE2ZjBjMWQ0ZjBiN2JjZTE2NGExMjM4
ZTI2YTkwYy4uMmU1ODJiYjUwYmM5OWVhYjNiMDg2MWRjZTBmODk3OGI3YmM5NTRlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKQEAgLTQ3LDYgKzQ3
LDcgQEAgY2xhc3MgU2NyaXB0V3JhcHBhYmxlIHsKICAgICBKU0RPTU9iamVjdCogd3JhcHBlcigp
IGNvbnN0OwogICAgIHZvaWQgc2V0V3JhcHBlcihKU0RPTU9iamVjdCosIEpTQzo6V2Vha0hhbmRs
ZU93bmVyKiwgdm9pZCopOwogICAgIHZvaWQgY2xlYXJXcmFwcGVyKEpTRE9NT2JqZWN0Kik7Cisg
ICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldyYXBwZXIoKSB7IHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoU2NyaXB0V3JhcHBhYmxlLCBtX3dyYXBwZXIpOyB9CiAKIHByb3RlY3RlZDoKICAgICB+
U2NyaXB0V3JhcHBhYmxlKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGE2YjkwMGVlMzJjMWU5NGQ5MDA3NTNjNGU5
MGMzMjE0OWNiMTdiNDQuLmEwNTAyYTYyMmQ2NmRiNWZiODI2MDE4NjdjNWNlZWQwZTRkM2ZiNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCkBAIC02MjYsNiArNjI2LDcgQEAgc3ViIEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1
dGUKICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVtIikgaWYgKCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1lcmFibGUifSB8fCAkaXNfZ2xvYmFs
X2NvbnN0cnVjdG9yKTsKICAgICBwdXNoKEBzcGVjaWFscywgIlJlYWRPbmx5IikgaWYgSXNSZWFk
b25seSgkYXR0cmlidXRlKTsKICAgICBwdXNoKEBzcGVjaWFscywgIkN1c3RvbUFjY2Vzc29yIikg
dW5sZXNzICRpc19nbG9iYWxfY29uc3RydWN0b3Igb3IgSXNKU0J1aWx0aW4oJGludGVyZmFjZSwg
JGF0dHJpYnV0ZSk7CisgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1dGUiKSBpZiAk
YXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifTsKICAg
ICBwdXNoKEBzcGVjaWFscywgIkFjY2Vzc29yIHwgQnVpbHRpbiIpIGlmICBJc0pTQnVpbHRpbigk
aW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAgICByZXR1cm4gKEBzcGVjaWFscyA+IDApID8gam9p
bigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKIH0KQEAgLTEyODYsMTEgKzEyODcsMTEgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKElzRE9NR2xvYmFsT2JqZWN0KCRpbnRlcmZhY2UpKSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Okdsb2JhbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOwogICAg
IH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAi
RG9jdW1lbnQiKSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpT
Qzo6VHlwZUluZm8oSlNDOjpKU1R5cGUoSlNEb2N1bWVudFdyYXBwZXJUeXBlKSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkRPTURvY3VtZW50V3JhcHBlclR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTtcbiIpOwogICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhl
cml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiRWxlbWVudCIpKSB7Ci0gICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkpTVHlwZShKU0VsZW1l
bnRUeXBlKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OkRPTUVsZW1lbnRUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7XG4iKTsKICAgICB9IGVsc2lmICgkY29kZUdlbmVy
YXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIk5vZGUiKSkgewotICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpKU1R5cGUo
SlNOb2RlVHlwZSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTtcbiIpOworICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpET01Ob2RlVHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpO1xuIik7CiAgICAgfQpAQCAtMTM0OCw2ICsx
MzQ5LDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgbXkgJGhhc0ZvcndhcmREZWNsYXJpbmdG
dW5jdGlvbnMgPSAwOwogICAgIG15ICRoYXNGb3J3YXJkRGVjbGFyaW5nQXR0cmlidXRlcyA9IDA7
CiAKKyAgICBteSAkaGFzRE9NSklUQXR0cmlidXRlcyA9IDA7CisKICAgICAjIEF0dHJpYnV0ZSBh
bmQgZnVuY3Rpb24gZW51bXMKICAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7CiAgICAgICAg
IGZvcmVhY2ggKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKQEAgLTEzNjIsNiArMTM2NSw3
IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgICAgICRuZWVkc1Zpc2l0Q2hpbGRy
ZW4gPSAxOwogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWZcbiIp
IGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRoYXNE
T01KSVRBdHRyaWJ1dGVzID0gMSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJET01KSVQifTsKIAogICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkZvcndhcmREZWNsYXJlSW5IZWFkZXIifSkgewog
ICAgICAgICAgICAgICAgICRoYXNGb3J3YXJkRGVjbGFyaW5nQXR0cmlidXRlcyA9IDE7CkBAIC0x
NTc5LDYgKzE1ODMsMTUgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0KICAgICB9CiAK
KyAgICBpZiAoJGhhc0RPTUpJVEF0dHJpYnV0ZXMpIHsKKyAgICAgICAgJGhlYWRlckluY2x1ZGVz
eyI8ZG9taml0L0RPTUpJVEdyYXBoLmg+In0gPSAxOworICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCIvLyBET01KSVQgZW1pdHRlcnMgZm9yIGF0dHJpYnV0ZXNcblxuIik7CisgICAgICAgIGZv
cmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgeworICAgICAg
ICAgICAgbmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiRE9NSklUIn07CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpE
T01KSVQ6OkdyYXBoKiBkb21KSVRHcmFwaEZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVH
ZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSAuICIodm9p
ZCk7XG4iKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmIChIYXNDdXN0b21Db25zdHJ1Y3Rv
cigkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiLy8gQ3VzdG9t
IGNvbnN0cnVjdG9yXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3Qke2NsYXNzTmFtZX0oSlNDOjpFeGVj
U3RhdGUmKTtcblxuIik7CkBAIC0xNjU1LDE0ICsxNjY4LDE5IEBAIHN1YiBHZW5lcmF0ZVByb3Bl
cnRpZXNIYXNoVGFibGUKICAgICAgICAgbXkgJHNwZWNpYWwgPSBHZXRKU0NBdHRyaWJ1dGVzRm9y
QXR0cmlidXRlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAgICAgICBwdXNoKEAkaGFzaFNw
ZWNpYWxzLCAkc3BlY2lhbCk7CiAKLSAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdl
dHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgIHB1
c2goQCRoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKLQotICAgICAgICBpZiAoSXNSZWFkb25seSgkYXR0
cmlidXRlKSkgeworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiRE9NSklUIn0pIHsKKyAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUxLCAi
ZG9tSklUR3JhcGhGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191
Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkpOwogICAgICAgICAgICAgcHVzaChA
JGhhc2hWYWx1ZTIsICIwIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBteSAkc2V0
dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0
cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAgICAg
ICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRj
bGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTEsICRn
ZXR0ZXIpOworCisgICAgICAgICAgICBpZiAoSXNSZWFkb25seSgkYXR0cmlidXRlKSkgeworICAg
ICAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUyLCAiMCIpOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgk
aW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEAkaGFzaFZhbHVlMiwgJHNldHRlcik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAg
ICAgICBteSAkY29uZGl0aW9uYWwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9OwpAQCAtMjQ1NCwxNyArMjQ3MiwyMyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgQHNwZWNpYWxzID0gKCk7CiAgICAg
ICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUiKSB1bmxlc3MgJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZXRhYmxlIn07CiAgICAgICAgICAg
ICBwdXNoKEBzcGVjaWFscywgIlJlYWRPbmx5IikgaWYgSXNSZWFkb25seSgkYXR0cmlidXRlKTsK
KyAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiRE9NSklUQXR0cmlidXRlIikgaWYgJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07CiAgICAgICAg
ICAgICBteSAkc3BlY2lhbCA9IChAc3BlY2lhbHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFs
cykgOiAiMCI7CiAgICAgICAgICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsICRzcGVjaWFsKTsKIAot
ICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFj
ZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUx
LCAkZ2V0dGVyKTsKLQotICAgICAgICAgICAgaWYgKElzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsK
KyAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJET01KSVQifSkgeworICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTEsICJkb21K
SVRHcmFwaEZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmly
c3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSk7CiAgICAgICAgICAgICAgICAgcHVzaChA
aGFzaFZhbHVlMiwgIjAiKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
bXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFt
ZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJHNldHRl
cik7CisgICAgICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUo
JGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgcHVz
aChAaGFzaFZhbHVlMSwgJGdldHRlcik7CisKKyAgICAgICAgICAgICAgICBpZiAoSXNSZWFkb25s
eSgkYXR0cmlidXRlKSkgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAi
MCIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRz
ZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRh
dHRyaWJ1dGUpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVy
KTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG15ICRj
b25kaXRpb25hbCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNvbmRpdGlvbmFsIn07CkBAIC0zMDM0LDYgKzMwNTgsMzggQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCisg
ICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiRE9NSklUIn0pIHsKKyAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyI8d3RmL05ldmVy
RGVzdHJveWVkLmg+In0gPSAxOworICAgICAgICAgICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0g
JGludGVyZmFjZS0+bmFtZTsKKyAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlTmFtZSA9ICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgICAgICAgICBteSAkZG9tSklUQ2xh
c3NOYW1lID0gIkRPTUpJVCIgLiAkaW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191
Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgICAgICAgICAgbXkg
JGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwg
JGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IElzUmVhZG9ubHkoJGF0
dHJpYnV0ZSkgPyAibnVsbHB0ciIgOiBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2Us
ICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgICMgQ0FTVF9PRkZTRVQo
JGludGVyZmFjZU5hbWUqLCBDb250YWluZXJOb2RlKikgKyBDb250YWluZXJOb2RlCisgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJjbGFzcyAkZG9tSklUQ2xhc3NOYW1lIDogcHVi
bGljIEpTQzo6RE9NSklUOjpHcmFwaCB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgInB1YmxpYzpcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICRkb21KSVRDbGFzc05hbWUoKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIDogSlNDOjpET01KSVQ6OkdyYXBoKCRnZXR0ZXIsICRzZXR0ZXIs
IEpTQzo6U3BlY0RPTU5vZGUpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6RE9NSklUO1xuIik7CisgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIGFwcGVuZChLaW5kOjpDaGVja05vZGUsIElSOjp0aGlz
VmFsdWUoKSwgbnVsbHB0cik7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgSVIqIHdyYXBwZWQgPSBhcHBlbmQoS2luZDo6R2V0V3JhcHBlZCwgSVI6OnRo
aXNWYWx1ZSgpLCBudWxscHRyLCBKU05vZGU6Om9mZnNldE9mV3JhcHBlZCgpKTtcbiIpOworICAg
ICAgICAgICAgICAgICMgaWYgKCRhdHRyaWJ1dGVOYW1lIGVxICJmaXJzdENoaWxkIiB8fCAkYXR0
cmlidXRlTmFtZSBlcSAibGFzdENoaWxkIikgeworICAgICAgICAgICAgICAgICMgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICBhcHBlbmQoS2luZDo6Q2hlY2tOb2RlRmxhZ3MsIHdyYXBw
ZWQsIG51bGxwdHIsIE5vZGU6Om5vZGVGbGFnc01lbW9yeU9mZnNldCgpLCBOb2RlOjpJc0NvbnRh
aW5lckZsYWcpO1xuIik7CisgICAgICAgICAgICAgICAgIyB9CisgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIElSKiByZXN1bHQgPSBhcHBlbmQoS2luZDo6TG9hZFBv
aW50ZXIsIHdyYXBwZWQsIG51bGxwdHIsICRpbnRlcmZhY2VOYW1lOjoke2F0dHJpYnV0ZU5hbWV9
TWVtb3J5T2Zmc2V0KCkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIElSKiB3cmFwcGVyID0gYXBwZW5kKEtpbmQ6OlRvV3JhcHBlciwgcmVzdWx0LCBu
dWxscHRyLCAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEpTRE9NR2xvYmFsT2JqZWN0OjpvZmZzZXRP
ZldvcmxkSXNOb3JtYWwoKSkgPDwgMzIpIHwgKENBU1RfT0ZGU0VUKCRpbnRlcmZhY2VOYW1lKiwg
U2NyaXB0V3JhcHBhYmxlKikgKyBTY3JpcHRXcmFwcGFibGU6Om9mZnNldE9mV3JhcHBlcigpKSwg
Yml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oc3RhdGljX2Nhc3Q8SlNDOjpFbmNvZGVkSlNWYWx1ZSAo
KikoSlNDOjpFeGVjU3RhdGUqLCB2b2lkKiwgdm9pZCopPihbXShKU0M6OkV4ZWNTdGF0ZSogZXhl
Yywgdm9pZCogd3JhcHBlZCwgdm9pZCogZ2xvYmFsT2JqZWN0KSB7IHJldHVybiBKU0M6OkpTVmFs
dWU6OmVuY29kZSh0b0pTKGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xv
YmFsT2JqZWN0KSwgc3RhdGljX2Nhc3Q8Tm9kZSo+KHdyYXBwZWQpKSk7IH0pKSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXBwZW5kKEtpbmQ6OlJl
dHVybiwgd3JhcHBlciwgbnVsbHB0cik7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In07XG5cbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkRP
TUpJVDo6R3JhcGgqIGRvbUpJVEdyYXBoRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdl
bmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gIigpXG4i
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDwkZG9t
SklUQ2xhc3NOYW1lPiBlbWl0dGVyO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgcmV0dXJuICZlbWl0dGVyLmdldCgpO1xuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFs
U3RyaW5nOwogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7CkBAIC01MDAx
LDEyICs1MDU3LDE0IEBAIHN1YiBHZW5lcmF0ZUhhc2hUYWJsZVZhbHVlQXJyYXkKICAgICAgICAg
ICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4iOwog
ICAgICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQ29uc3RhbnRJbnRlZ2VyLykg
ewogICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICIiOworICAgICAgICB9IGVsc2lmICgi
QCRzcGVjaWFsc1skaV0iID1+IG0vRE9NSklUQXR0cmlidXRlLykgeworICAgICAgICAgICAgJGZp
cnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxET01KSVRHcmFwaEdlbmVyYXRvcj4iOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4iOwogICAgICAgICAgICAgJHNlY29uZFRhcmdl
dFR5cGUgPSAic3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+IjsKICAg
ICAgICAgICAgICRoYXNTZXR0ZXIgPSAidHJ1ZSI7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCJA
JHNwZWNpYWxzWyRpXSIgPX4gbS9Db25zdGFudEludGVnZXIvKSB7CisgICAgICAgIGlmICgiQCRz
cGVjaWFsc1skaV0iID1+IG0vQ29uc3RhbnRJbnRlZ2VyfERPTUpJVEF0dHJpYnV0ZS8pIHsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHsgXCIka2V5XCIsIEAkc3BlY2lhbHNb
JGldLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSIgLiAkZmlyc3RUYXJnZXRUeXBlIC4gIihA
JHZhbHVlMVskaV0pIH0gfSxcbiIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgeyBcIiRrZXlcIiwgQCRzcGVjaWFsc1skaV0sIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdCkiIC4gJGZpcnN0VGFyZ2V0VHlwZSAuICIoQCR2YWx1ZTFbJGldKSwg
KGludHB0cl90KSAiIC4gJHNlY29uZFRhcmdldFR5cGUgLiAiKEAkdmFsdWUyWyRpXSkgfSB9LFxu
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJp
YnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
LnR4dAppbmRleCBkMjg4NWE4NDJkNzQ0MDk5MWM2MzgzOTcwY2M3ZDliMmE2NWY0MjZkLi5mY2Vm
YjBlODg3NDcyOGExMDIzNWYxZDM0OTRiOTA2YWQ3MzU0OWZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTU0LDYgKzU0LDcg
QEAgQ3VzdG9tUmV0dXJuCiBDdXN0b21TZXRQcm90b3R5cGUKIEN1c3RvbVNldHRlcgogQ3VzdG9t
VG9KU09iamVjdAorRE9NSklUCiBEZWxldGFibGUKIERvTm90Q2hlY2tDb25zdGFudHMKIERvTm90
Q2hlY2tTZWN1cml0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROb2RlLmgKaW5kZXggNGEzMGNlYjU5NGM2YWIwOGQwMGQ0OTU2NjFmM2Ji
NjYwMzMyYTBkMy4uZWJjNzJiOGEyYWYzZDA3ZDg5MDM2OGI0Njk2MzY5NzZlOWIwZmNhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Tm9kZS5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JU
IEpTVGVzdE5vZGUgOiBwdWJsaWMgSlNOb2RlIHsKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpKU1R5cGUoSlNOb2RlVHlwZSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6RE9NTm9kZVR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0
cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuaAppbmRleCA5Y2E3YTE4MzUxYWE5MWFiZmFkMmU0YjIzMzgxY2QxMTcw
MzUzZTg5Li41YWMyYTdjYjBmZTYzNmM0MGM3N2M5YzQ3MTA2YThlOWQ0MGY1YzIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTQxLDYgKzQxLDcgQEAgY2xhc3MgQ29udGFpbmVy
Tm9kZSA6IHB1YmxpYyBOb2RlIHsKICAgICBOb2RlKiBmaXJzdENoaWxkKCkgY29uc3QgeyByZXR1
cm4gbV9maXJzdENoaWxkOyB9CiAgICAgc3RhdGljIHB0cmRpZmZfdCBmaXJzdENoaWxkTWVtb3J5
T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENvbnRhaW5lck5vZGUsIG1fZmlyc3RD
aGlsZCk7IH0KICAgICBOb2RlKiBsYXN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2xhc3RDaGls
ZDsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3QgbGFzdENoaWxkTWVtb3J5T2Zmc2V0KCkgeyByZXR1
cm4gT0JKRUNUX09GRlNFVE9GKENvbnRhaW5lck5vZGUsIG1fbGFzdENoaWxkKTsgfQogICAgIGJv
b2wgaGFzQ2hpbGROb2RlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RDaGlsZDsgfQogICAgIGJv
b2wgaGFzT25lQ2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0Q2hpbGQgJiYgIW1fZmlyc3RD
aGlsZC0+bmV4dFNpYmxpbmcoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBlMjZjMzMyOWVkZDIyZDA4
ODAxMjViZTIyZmJkMTYyYjZlN2FhOWJhLi4zNGNlZTFmZDQzOWYwOWFkZDhkNDJjNjA5ZDA5ZDVh
YzFhYTJkZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTEyMCw2ICsxMjAsNDYgQEAgY2xhc3MgTm9kZSA6
IHB1YmxpYyBFdmVudFRhcmdldCB7CiAgICAgICAgIERPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5F
RF9CWSA9IDB4MTAsCiAgICAgICAgIERPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQ
RUNJRklDID0gMHgyMCwKICAgICB9OworICAgIGVudW0gTm9kZUZsYWdzIHsKKyAgICAgICAgSXNU
ZXh0RmxhZyA9IDEsCisgICAgICAgIElzQ29udGFpbmVyRmxhZyA9IDEgPDwgMSwKKyAgICAgICAg
SXNFbGVtZW50RmxhZyA9IDEgPDwgMiwKKyAgICAgICAgSXNTdHlsZWRFbGVtZW50RmxhZyA9IDEg
PDwgMywKKyAgICAgICAgSXNIVE1MRmxhZyA9IDEgPDwgNCwKKyAgICAgICAgSXNTVkdGbGFnID0g
MSA8PCA1LAorICAgICAgICBDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCA3LAorICAg
ICAgICBJbkRvY3VtZW50RmxhZyA9IDEgPDwgOCwKKyAgICAgICAgSXNMaW5rRmxhZyA9IDEgPDwg
OSwKKyAgICAgICAgSXNVc2VyQWN0aW9uRWxlbWVudCA9IDEgPDwgMTAsCisgICAgICAgIEhhc1Jh
cmVEYXRhRmxhZyA9IDEgPDwgMTEsCisgICAgICAgIElzRG9jdW1lbnRGcmFnbWVudEZsYWcgPSAx
IDw8IDEyLAorCisgICAgICAgIC8vIFRoZXNlIGJpdHMgYXJlIHVzZWQgYnkgZGVyaXZlZCBjbGFz
c2VzLCBwdWxsZWQgdXAgaGVyZSBzbyB0aGV5IGNhbgorICAgICAgICAvLyBiZSBzdG9yZWQgaW4g
dGhlIHNhbWUgbWVtb3J5IHdvcmQgYXMgdGhlIE5vZGUgYml0cyBhYm92ZS4KKyAgICAgICAgSXNQ
YXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAxIDw8IDEzLCAvLyBFbGVtZW50CisKKyAgICAg
ICAgU3R5bGVDaGFuZ2VNYXNrID0gMSA8PCBub2RlU3R5bGVDaGFuZ2VTaGlmdCB8IDEgPDwgKG5v
ZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMSkgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCArIDIp
LAorICAgICAgICBJc0VkaXRpbmdUZXh0T3JVbmRlZmluZWRDdXN0b21FbGVtZW50RmxhZyA9IDEg
PDwgMTcsCisgICAgICAgIEhhc0ZvY3VzV2l0aGluID0gMSA8PCAxOCwKKyAgICAgICAgSGFzU3lu
dGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAxOSwKKyAgICAgICAgSGFzQ3VzdG9tU3R5
bGVSZXNvbHZlQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjAsCisgICAgICAgIEhhc0V2ZW50VGFyZ2V0
RGF0YUZsYWcgPSAxIDw8IDIxLAorICAgICAgICBJc0N1c3RvbUVsZW1lbnQgPSAxIDw8IDIyLAor
ICAgICAgICBJc0luU2hhZG93VHJlZUZsYWcgPSAxIDw8IDIzLAorICAgICAgICBJc01hdGhNTEZs
YWcgPSAxIDw8IDI0LAorCisgICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hpbGRSdWxl
c0ZsYWcgPSAxIDw8IDI1LAorICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlMYXN0Q2hpbGRSdWxl
c0ZsYWcgPSAxIDw8IDI2LAorICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlIb3ZlclJ1bGVzRmxh
ZyA9IDEgPDwgMjcsCisKKyAgICAgICAgRGlyZWN0Q2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9
IDEgPDwgMjgsCisgICAgICAgIEFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHlsZSA9IDEgPDwg
MjksCisgICAgICAgIFN0eWxlSXNBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nID0gMSA8PCAzMCwK
KworICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8PCAzMSwKKworICAg
ICAgICBEZWZhdWx0Tm9kZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcKKyAg
ICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc3RhcnRJZ25vcmluZ0xlYWtz
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc3RvcElnbm9yaW5nTGVha3MoKTsK
QEAgLTE1NSw2ICsxOTUsOCBAQCBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKICAg
ICBOb2RlKiBwc2V1ZG9Bd2FyZVByZXZpb3VzU2libGluZygpIGNvbnN0OwogICAgIE5vZGUqIHBz
ZXVkb0F3YXJlRmlyc3RDaGlsZCgpIGNvbnN0OwogICAgIE5vZGUqIHBzZXVkb0F3YXJlTGFzdENo
aWxkKCkgY29uc3Q7CisgICAgc3RhdGljIHB0cmRpZmZfdCBub2RlRmxhZ3NNZW1vcnlPZmZzZXQo
KSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTm9kZSwgbV9ub2RlRmxhZ3MpOyB9CisgICAgc3Rh
dGljIHB0cmRpZmZfdCByYXJlRGF0YU1lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihOb2RlLCBtX2RhdGEubV9yYXJlRGF0YSk7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIGNv
bnN0IFVSTCYgYmFzZVVSSSgpIGNvbnN0OwogICAgIApAQCAtNTYwLDggKzYwMiw2IEBAIGNsYXNz
IE5vZGUgOiBwdWJsaWMgRXZlbnRUYXJnZXQgewogICAgIHZvaWQgdXBkYXRlQW5jZXN0b3JDb25u
ZWN0ZWRTdWJmcmFtZUNvdW50Rm9ySW5zZXJ0aW9uKCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoQ1NT
X1NFTEVDVE9SX0pJVCkKLSAgICBzdGF0aWMgcHRyZGlmZl90IG5vZGVGbGFnc01lbW9yeU9mZnNl
dCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihOb2RlLCBtX25vZGVGbGFncyk7IH0KLSAgICBz
dGF0aWMgcHRyZGlmZl90IHJhcmVEYXRhTWVtb3J5T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09G
RlNFVE9GKE5vZGUsIG1fZGF0YS5tX3JhcmVEYXRhKTsgfQogICAgIHN0YXRpYyBpbnQzMl90IGZs
YWdJc1RleHQoKSB7IHJldHVybiBJc1RleHRGbGFnOyB9CiAgICAgc3RhdGljIGludDMyX3QgZmxh
Z0lzRWxlbWVudCgpIHsgcmV0dXJuIElzRWxlbWVudEZsYWc7IH0KICAgICBzdGF0aWMgaW50MzJf
dCBmbGFnSXNIVE1MKCkgeyByZXR1cm4gSXNIVE1MRmxhZzsgfQpAQCAtNTc3LDQ3ICs2MTcsNiBA
QCBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKICNlbmRpZiAvLyBFTkFCTEUoQ1NT
X1NFTEVDVE9SX0pJVCkKIAogcHJvdGVjdGVkOgotICAgIGVudW0gTm9kZUZsYWdzIHsKLSAgICAg
ICAgSXNUZXh0RmxhZyA9IDEsCi0gICAgICAgIElzQ29udGFpbmVyRmxhZyA9IDEgPDwgMSwKLSAg
ICAgICAgSXNFbGVtZW50RmxhZyA9IDEgPDwgMiwKLSAgICAgICAgSXNTdHlsZWRFbGVtZW50Rmxh
ZyA9IDEgPDwgMywKLSAgICAgICAgSXNIVE1MRmxhZyA9IDEgPDwgNCwKLSAgICAgICAgSXNTVkdG
bGFnID0gMSA8PCA1LAotICAgICAgICBDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCA3
LAotICAgICAgICBJbkRvY3VtZW50RmxhZyA9IDEgPDwgOCwKLSAgICAgICAgSXNMaW5rRmxhZyA9
IDEgPDwgOSwKLSAgICAgICAgSXNVc2VyQWN0aW9uRWxlbWVudCA9IDEgPDwgMTAsCi0gICAgICAg
IEhhc1JhcmVEYXRhRmxhZyA9IDEgPDwgMTEsCi0gICAgICAgIElzRG9jdW1lbnRGcmFnbWVudEZs
YWcgPSAxIDw8IDEyLAotCi0gICAgICAgIC8vIFRoZXNlIGJpdHMgYXJlIHVzZWQgYnkgZGVyaXZl
ZCBjbGFzc2VzLCBwdWxsZWQgdXAgaGVyZSBzbyB0aGV5IGNhbgotICAgICAgICAvLyBiZSBzdG9y
ZWQgaW4gdGhlIHNhbWUgbWVtb3J5IHdvcmQgYXMgdGhlIE5vZGUgYml0cyBhYm92ZS4KLSAgICAg
ICAgSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAxIDw8IDEzLCAvLyBFbGVtZW50Ci0K
LSAgICAgICAgU3R5bGVDaGFuZ2VNYXNrID0gMSA8PCBub2RlU3R5bGVDaGFuZ2VTaGlmdCB8IDEg
PDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMSkgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlm
dCArIDIpLAotICAgICAgICBJc0VkaXRpbmdUZXh0T3JVbmRlZmluZWRDdXN0b21FbGVtZW50Rmxh
ZyA9IDEgPDwgMTcsCi0gICAgICAgIEhhc0ZvY3VzV2l0aGluID0gMSA8PCAxOCwKLSAgICAgICAg
SGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAxOSwKLSAgICAgICAgSGFzQ3Vz
dG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjAsCi0gICAgICAgIEhhc0V2ZW50
VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIxLAotICAgICAgICBJc0N1c3RvbUVsZW1lbnQgPSAxIDw8
IDIyLAotICAgICAgICBJc0luU2hhZG93VHJlZUZsYWcgPSAxIDw8IDIzLAotICAgICAgICBJc01h
dGhNTEZsYWcgPSAxIDw8IDI0LAotCi0gICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeUZpcnN0Q2hp
bGRSdWxlc0ZsYWcgPSAxIDw8IDI1LAotICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlMYXN0Q2hp
bGRSdWxlc0ZsYWcgPSAxIDw8IDI2LAotICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlIb3ZlclJ1
bGVzRmxhZyA9IDEgPDwgMjcsCi0KLSAgICAgICAgRGlyZWN0Q2hpbGROZWVkc1N0eWxlUmVjYWxj
RmxhZyA9IDEgPDwgMjgsCi0gICAgICAgIEFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHlsZSA9
IDEgPDwgMjksCi0gICAgICAgIFN0eWxlSXNBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nID0gMSA8
PCAzMCwKLQotICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8PCAzMSwK
LQotICAgICAgICBEZWZhdWx0Tm9kZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZs
YWcKLSAgICB9OwotCiAgICAgYm9vbCBnZXRGbGFnKE5vZGVGbGFncyBtYXNrKSBjb25zdCB7IHJl
dHVybiBtX25vZGVGbGFncyAmIG1hc2s7IH0KICAgICB2b2lkIHNldEZsYWcoYm9vbCBmLCBOb2Rl
RmxhZ3MgbWFzaykgY29uc3QgeyBtX25vZGVGbGFncyA9IChtX25vZGVGbGFncyAmIH5tYXNrKSB8
ICgtKGludDMyX3QpZiAmIG1hc2spOyB9IAogICAgIHZvaWQgc2V0RmxhZyhOb2RlRmxhZ3MgbWFz
aykgY29uc3QgeyBtX25vZGVGbGFncyB8PSBtYXNrOyB9IApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCmluZGV4IDEx
ZDFlNmYzNjIzZDAxMDM3OTYzZjEyY2NjYzA2OGVlNGU1MDFlYmIuLjVhMTAwZTQxNzhhNTVhODIw
ZjViMzczN2I5ZTU4MDJjMDQwYWU0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKQEAgLTQ3LDEyICs0Nywx
MiBAQAogICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBET01TdHJpbmc/IG5v
ZGVWYWx1ZTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBub2RlVHlw
ZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gcGFyZW50Tm9kZTsKKyAgICBbRE9NSklU
XSByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gcGFyZW50Tm9kZTsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgTm9kZUxpc3QgY2hpbGROb2RlczsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8g
Zmlyc3RDaGlsZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gbGFzdENoaWxkOwotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwcmV2aW91c1NpYmxpbmc7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIE5vZGU/IG5leHRTaWJsaW5nOworICAgIFtET01KSVRdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBOb2RlPyBwcmV2aW91c1NpYmxpbmc7CisgICAgW0RPTUpJVF0gcmVhZG9ubHkgYXR0cmli
dXRlIE5vZGU/IG5leHRTaWJsaW5nOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudD8g
b3duZXJEb2N1bWVudDsKIAogICAgIFtDdXN0b20sIFJhaXNlc0V4Y2VwdGlvbl0gTm9kZSBpbnNl
cnRCZWZvcmUoW0N1c3RvbVJldHVybl0gTm9kZSBuZXdDaGlsZCwgTm9kZT8gcmVmQ2hpbGQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA0N2QyOTRkZDQ5NWEzMTM3ZDc2ZmYwODg2ZWY1MTNiN2Jm
YzQ4ZWU2Li4yYzIxOWI1ZGE3NDc1OWQ0MjAzMTlkNGFiOGFkY2YwY2FkMjljODMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dApAQCAtMTQ5LDYgKzE0OSw3IEBAIHNldChXZWJLaXQyX0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2NvbGxlY3Rvci9oYW5kbGVzIgog
ICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJ
Un0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZG9taml0IgogICAg
ICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9
L2ludGVycHJldGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaml0Igo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290482</attachid>
            <date>2016-10-03 02:41:58 -0700</date>
            <delta_ts>2016-10-03 02:53:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162544-20161003183849.patch</filename>
            <type>text/plain</type>
            <size>103084</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NDMyMGJhYjQ2MzVmZTlhMDgxNGEwMzljNGE4YWEzN2EyYjg2MzkzLi42MzA1YjFiMDY1OWM5NWE5
ODM4N2NkYmI0MjYxN2RmNWUwNjc3NDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDggQEAKKzIwMTYtMTAtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAoSlND
OjpHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFj
ayk6CisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwOgorICAgICAgICAoSlND
OjpHZXRCeUlkVmFyaWFudDo6R2V0QnlJZFZhcmlhbnQpOgorICAgICAgICAoSlNDOjpHZXRCeUlk
VmFyaWFudDo6b3BlcmF0b3I9KToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmF0dGVt
cHRUb01lcmdlKToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmR1bXBJbkNvbnRleHQp
OgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRWYXJpYW50Lmg6CisgICAgICAgIChKU0M6Okdl
dEJ5SWRWYXJpYW50Ojpkb21KSVQpOgorICAgICAgICAoSlNDOjpHZXRCeUlkVmFyaWFudDo6aW50
cmluc2ljKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5j
cHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmdldCk6CisgICAgICAgIChKU0M6OkFjY2Vz
c0Nhc2U6OmNsb25lKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oOgor
ICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpkb21KSVQpOgorICAgICAgICAoSlNDOjpBY2Nlc3ND
YXNlOjpSYXJlRGF0YTo6UmFyZURhdGEpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlRE9NSklUR2V0dGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlR2V0QnlJZCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRm
Zy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzRE9NSklUR3JhcGgpOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmRvbUpJVCk6CisgICAgICAgICogZGZnL0RGR05vZGVU
eXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoK
KyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNh
ZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxsRE9NKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrRE9NKToKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZG9taml0L0RPTUpJVEdyYXBo
LmNwcDogQWRkZWQuCisgICAgICAgICogZG9taml0L0RPTUpJVEdyYXBoLmg6IEFkZGVkLgorICAg
ICAgICAoSlNDOjpET01KSVQ6OkdyYXBoOjpHcmFwaCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6
R3JhcGg6On5HcmFwaCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OmdldHRlcik6Cisg
ICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OnNldHRlcik6CisgICAgICAgICogZG9taml0L0RP
TUpJVFBhdGNocG9pbnQuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2lu
dDo6UGF0Y2hwb2ludCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2ludDo6Y3JlYXRl
KToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpQYXRjaHBvaW50OjpzZXRHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpET01KSVQ6OlBhdGNocG9pbnQ6OmdlbmVyYXRvcik6CisgICAgICAgICogZG9t
aml0L0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkRPTUpJ
VDo6UGF0Y2hwb2ludFBhcmFtczo6c2l6ZSk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hw
b2ludFBhcmFtczo6YXQpOgorICAgICAgICAoSlNDOjpET01KSVQ6OlBhdGNocG9pbnRQYXJhbXM6
Om9wZXJhdG9yW10pOgorICAgICAgICAoSlNDOjpET01KSVQ6OlBhdGNocG9pbnRQYXJhbXM6Omdw
U2NyYXRjaCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2ludFBhcmFtczo6ZnBTY3Jh
dGNoKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpQYXRjaHBvaW50UGFyYW1zOjpQYXRjaHBvaW50
UGFyYW1zKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgorICAg
ICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNv
bXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDaGVja0RPTSk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDYWxsRE9NKToKKyAgICAgICAgKEpTQzo6RlRM
OjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVVucmVhY2hhYmxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBoZWFwL1dlYWtJbXBsLmg6CisgICAgICAgIChKU0M6OldlYWtJbXBsOjpvZmZzZXRPZkpT
VmFsdWUpOgorICAgICAgICAoSlNDOjpXZWFrSW1wbDo6b2Zmc2V0T2ZXZWFrSGFuZGxlT3duZXIp
OgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVHZXRC
eUlEKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoV1RGOjpET01KSVRHZXR0ZXI6OkRP
TUpJVEdldHRlcik6CisgICAgICAgIChXVEY6OkRPTUpJVEdldHRlcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKFdURjo6RE9NSklUR2V0dGVyOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpE
T01KSVRHZXR0ZXI6OkRPTUpJVEdldHRlckRPTUpJVDo6RE9NSklUR2V0dGVyRE9NSklUKToKKyAg
ICAgICAgKFdURjo6RE9NSklUR2V0dGVyOjpkb21KSVRHZXR0ZXJHcmFwaCk6CisgICAgICAgIChX
VEY6OkRPTUpJVEdldHRlcjo6b2Zmc2V0T2ZWYWx1ZSk6CisgICAgICAgIChXVEY6OkRPTUpJVEdl
dHRlcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoV1RGOjpET01KSVRHZXR0ZXI6OmN1c3Rv
bUdldHRlcik6CisgICAgICAgIChHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAg
ICAgKGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1l
L0N1c3RvbUdldHRlclNldHRlci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6OmZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6Okhhc2hUYWJsZVZhbHVlOjpk
b21KSVQpOgorICAgICAgICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0eVNsb3RGcm9tVGFibGUpOgor
ICAgICAgICAoSlNDOjpwdXRFbnRyeSk6CisgICAgICAgIChKU0M6OnJlaWZ5U3RhdGljUHJvcGVy
dHkpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAgIChKU0M6OlBy
b3BlcnR5U2xvdDo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90OjpzZXRDYWNo
ZWFibGVDdXN0b20pOgorCiAyMDE2LTEwLTAxICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgogCiAgICAgICAgIFtFUzZdIEFsaWduIGF0dHJpYnV0ZXMgb2YgR2VuZXJhdG9y
IHJlbGF0ZWQgcHJvcGVydGllcyB0byBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhkNzBmMjY2MTRiZDQ4MmNiNWViNWFl
OTY0YWZmZjdkMDY0ZWYzOWIuLjBjZjIxNWZmYmY1MmE5YzU0ZmUyMWUxODBmMWQyOGU5ODYwMjc5
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMTAtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBi
aW5kaW5nIEpJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYyNTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvU3RkTGliRXh0cmFzLmg6CisKIDIwMTYtMDktMjkgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBJREwgdW5pb24g
Y29udmVyc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhhMDQxNDJjYjExNTA0NmU5MDY3ZDZhNzUxYTVkMzJl
ZmQ4YzU1NTQuLmM5M2M4MWVlZTkxMDc5ZmM2ZTQ1MWZjMTE5YmI2MDk2YjgwNzU2MmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxNi0xMC0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbQmluZGluZ10gSW50cm9kdWNpbmcgRE9NIGJp
bmRpbmcgSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjI1NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIEZvcndhcmRpbmdIZWFkZXJzL2RvbWppdC9ET01KSVRHcmFwaC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RPTVdyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6b2Zmc2V0T2ZX
cmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6d3JhcHBlZCk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6Om9mZnNldE9mV3JhcHBlcik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZXRKU0NBdHRyaWJ1
dGVzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdl
bmVyYXRlUHJvcGVydGllc0hhc2hUYWJsZSk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSk6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDoKKyAg
ICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVy
Tm9kZTo6bGFzdENoaWxkTWVtb3J5T2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5l
ck5vZGU6Omxhc3RDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6Om5vZGVGbGFnc01lbW9yeU9mZnNldCk6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlOjpyYXJlRGF0YU1lbW9yeU9mZnNldCk6CisgICAgICAgICogZG9tL05vZGUuaWRs
OgorCiAyMDE2LTEwLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICByZW1vdmluZyBGZXRjaEJveWQ6Om1fdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IGZiMjkxNDczYWU5N2ZhNGZmMDBmZGVkOTk4OGI2NGEzNjFiZmNhYzIuLjE5
MjkzYjUzY2VjNjc5NzA4ODRjNTNjOGE0NmQ2YTQ3ZjllMjk5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2LDYgKzE2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX0lO
Q0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVjb2RlIgog
ICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvbXBpbGVyIgogICAgICIke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0vZGZnIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZG9taml0IgogICAg
ICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgogICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vZGlzYXNzZW1ibGVyL3VkaXM4NiIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9
L2Z0bCIKQEAgLTQwOCw2ICs0MDksOCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAg
IGRpc2Fzc2VtYmxlci91ZGlzODYvdWRpczg2X3N5bi1pbnRlbC5jCiAgICAgZGlzYXNzZW1ibGVy
L3VkaXM4Ni91ZGlzODZfc3luLmMKIAorICAgIGRvbWppdC9ET01KSVRHcmFwaC5jcHAKKwogICAg
IGZ0bC9GVExBYnN0cmFjdEhlYXAuY3BwCiAgICAgZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuY3BwCiAgICAgZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA2ZWU1NzcyYTBlN2RlY2IzZTEzMTkxYmQ4NTk0MDZmZGY5YzVmZTU2
Li41NzcxNjE4YzYwNjllMGY5YTgxNjQ5N2E3MmM4YzRlZmQ0MDMzNjMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzE2LDcgKzMxNiw3IEBACiAJCTBGMzNGQ0ZCMUMxNjI1QkUw
MDMyM0Y2NyAvKiBCM0NGRy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYzM0ZDRjkxQzE2MjVCRTAwMzIzRjY3IC8qIEIzQ0ZHLmggKi87IH07CiAJCTBG
MzNGQ0ZDMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0RvbWluYXRvcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzNGQ0ZBMUMxNjI1QkUwMDMyM0Y2NyAv
KiBCM0RvbWluYXRvcnMuaCAqLzsgfTsKIAkJMEYzNEIxNDkxNkQ0MjAxMDAwMUNEQTVBIC8qIERG
R1VzZUtpbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYzNEIxNDcxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwICovOyB9OwotCQkw
RjM0QjE0QTE2RDQyMDEzMDAxQ0RBNUEgLyogREZHVXNlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8q
IERGR1VzZUtpbmQuaCAqLzsgfTsKKwkJMEYzNEIxNEExNkQ0MjAxMzAwMUNEQTVBIC8qIERGR1Vz
ZUtpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTQ4MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzNzMwOEMxQzBCRDI5MTAwMDUyQkZB
IC8qIEIzUGhpQ2hpbGRyZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uY3Bw
ICovOyB9OwogCQkwRjM3MzA4RDFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNzMwOEIxQzBC
RDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uaCAqLzsgfTsKIAkJMEYzNzMwOEYxQzBDRDY4
NTAwMDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNzMwOEUxQzBDRDY4NTAw
MDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oICovOyB9OwpAQCAt
NTg3LDcgKzU4Nyw3IEBACiAJCTBGQTJDMTdCMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVy
VXRpbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZBMkMxNzkxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5jcHAgKi87IH07CiAJ
CTBGQTJDMTdDMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTJDMTdBMTdEN0NGODQwMDlE
MDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRkE1ODFCQTE1MEU5NTJDMDBCOUEyRDkgLyogREZHTm9kZUZs
YWdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
QTU4MUI3MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuY3BwICovOyB9OwotCQkwRkE1
ODFCQjE1MEU5NTMwMDBCOUEyRDkgLyogREZHTm9kZUZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkE1ODFCODE1MEU5NTJBMDBCOUEyRDkgLyog
REZHTm9kZUZsYWdzLmggKi87IH07CisJCTBGQTU4MUJCMTUwRTk1MzAwMEI5QTJEOSAvKiBERkdO
b2RlRmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQTU4MUI4MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkE1ODFCQzE1MEU5NTMwMDBC
OUEyRDkgLyogREZHTm9kZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQTU4MUI5MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlVHlwZS5oICov
OyB9OwogCQkwRkE3QThFQjE4QjQxM0M4MDA1MjM3MUQgLyogUmVnLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTdBOEU5MThCNDEzQzgwMDUyMzcx
RCAvKiBSZWcuY3BwICovOyB9OwogCQkwRkE3QThFQzE4QjQxM0M4MDA1MjM3MUQgLyogUmVnLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkE3QThFQTE4
QjQxM0M4MDA1MjM3MUQgLyogUmVnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTE0NDgsNyArMTQ0OCw3IEBACiAJCTg2RUM5REQwMTMyOERGODIw
MDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMDEzMjhERjgyMDAyQjJBRDcgLyogREZHT3BlcmF0aW9u
cy5oICovOyB9OwogCQk4NkVDOUREMTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5r
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURD
MTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5rLmggKi87IH07CiAJCTg2RUM5REQy
MTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMjEzMjhERjgyMDAyQjJBRDcg
LyogREZHU3BlY3VsYXRpdmVKSVQuY3BwICovOyB9OwotCQk4NkVDOUREMzEzMjhERjgyMDAyQjJB
RDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2RUM5REMzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2
ZUpJVC5oICovOyB9OworCQk4NkVDOUREMzEzMjhERjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRp
dmVKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
RUM5REMzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2RUNBM0VBMTMyREVGMUMw
MDJCMkFENyAvKiBERkdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NkVDQTNFOTEzMkRFRjFDMDAyQjJBRDcgLyogREZHTm9kZS5oICovOyB9Owog
CQk4NkVDQTNGQTEzMkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQ0EzRjkxMzJERjI1QTAwMkIy
QUQ3IC8qIERGR1Njb3JlQm9hcmQuaCAqLzsgfTsKIAkJODZGM0VFQkQxNjhDREU5MzAwNzdCOTJB
IC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCOTE2OENDRjc1MDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNr
RnVuY3Rpb24uaCAqLzsgfTsKQEAgLTIwNzUsNiArMjA3NSw3IEBACiAJCUUzMzYzN0E1MUI2MzIy
MDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzYzN0EzMUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0
T2JqZWN0LmNwcCAqLzsgfTsKIAkJRTMzNjM3QTYxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RP
YmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
MzYzN0E0MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMzQjNFMjYxQjdBQkQ3NTAwNDhE
QjJFIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzM0IzRTI1MUI3QUJENzUwMDQ4REIy
RSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmggKi87IH07CisJCUUzM0I5
OTk2MUQ5RDgyQkYwMDI2Rjk1MCAvKiBET01KSVRJUi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRGQUUyQzFEOUQ4MjYzMDBEMTAyQzggLyogRE9N
SklUSVIuY3BwICovOyB9OwogCQlFMzNFOEQxQzFCOTAxM0MzMDAzNDZCNTIgLyogSlNOYXRpdmVT
dGRGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzNFOEQxQTFCOTAxM0MzMDAzNDZCNTIgLyogSlNOYXRpdmVTdGRGdW5jdGlvbi5jcHAg
Ki87IH07CiAJCUUzM0U4RDFEMUI5MDEzQzMwMDM0NkI1MiAvKiBKU05hdGl2ZVN0ZEZ1bmN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzNFOEQx
QjFCOTAxM0MzMDAzNDZCNTIgLyogSlNOYXRpdmVTdGRGdW5jdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzM0U4RDIwMUI5MDEzREUwMDM0
NkI1MiAvKiBOYXRpdmVTdGRGdW5jdGlvbkNlbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzRThEMUUxQjkwMTNERTAwMzQ2QjUyIC8qIE5hdGl2
ZVN0ZEZ1bmN0aW9uQ2VsbC5jcHAgKi87IH07CkBAIC0yMTA0LDYgKzIxMDUsMTAgQEAKIAkJRTNE
MjM5QzkxQjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDIzOUM3MUI4MjlDMUMwMEJC
RUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNFRjg4NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTNFRjg4NzIxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRl
cmF0b3IuY3BwICovOyB9OwogCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0ZG
NzUzMjFEOUNFQTE1MDBDN0UxNkQgLyogRE9NSklUR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGRjc1MkUxRDlDRUExMjAwQzdFMTZEIC8q
IERPTUpJVEdyYXBoLmNwcCAqLzsgfTsKKwkJRTNGRjc1MzMxRDlDRUExODAwQzdFMTZEIC8qIERP
TUpJVEdyYXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFM0ZGNzUyRjFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGguaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0ZGNzUzNDFEOUNFQTFFMDBD
N0UxNkQgLyogRE9NSklUSVIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzRkY3NTMwMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRJUi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzRkY3NTM1MUQ5Q0VB
MjUwMEM3RTE2RCAvKiBET01KSVRJUkJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRkY3NTMxMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRJ
UkJ1aWxkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1NTEy
RUYyNzcyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgKi87IH07CiAJCUU0OURD
MTZDMTJFRjI5NEUwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1MTEyRUYyNzIyMDAxODRB
MUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUU0OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQ
cm92aWRlckNhY2hlSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTQ5REMxNDkxMkVGMjYxQTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJ
dGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTQzODMsNiArNDM4OCw3IEBACiAJCUUzM0Y1MDgzMUI4NDM3QTAwMDQxMzg1NiAvKiBKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTMzRjUwODYxQjg0NDlFRjAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3Iu
bHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW50ZXJuYWxQcm9taXNl
Q29uc3RydWN0b3IubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzM0Y1MDg4
MUI4NDRBMUEwMDQxMzg1NiAvKiBJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEludGVybmFsUHJvbWlzZUNvbnN0cnVj
dG9yLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzRGQUUyQzFEOUQ4MjYzMDBE
MTAyQzggLyogRE9NSklUSVIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRE9NSklUSVIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU0NjIyQTFC
NjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb25zdHJ1Y3RBYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzNTVGMzUwMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVMb2FkZXJQcm90b3R5cGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlTG9hZGVyUHJv
dG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1NUYzNTExQjdEQzg1
MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRlclByb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNb2R1bGVMb2FkZXJQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQ0MDUsNiArNDQxMSwxMCBAQAogCQlFM0QyNjQyQTFEMzhDMDQyMDAwQkUx
NzQgLyogQnl0ZWNvZGVSZXdyaXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCeXRlY29kZVJld3JpdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRUY4
ODcyMUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGODg3MzFCNjZERjIzMDAzRjI2Q0Ig
LyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUzRkY3NTJFMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHcmFwaC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01KSVRHcmFwaC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzRkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHcmFw
aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRHcmFwaC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0ZGNzUzMDFEOUNFQTEyMDBDN0UxNkQgLyogRE9N
SklUSVIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSVIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNGRjc1MzExRDlDRUExMjAwQzdFMTZEIC8qIERP
TUpJVElSQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRJ
UkJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5REMxNDkxMkVGMjYx
QTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU0OURDMTUxMTJFRjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVy
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5REMxNTUxMkVGMjc3MjAw
MTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC00NjYyLDYgKzQ2NzIsNyBAQAogCQkJCTY1MEZERjhEMDlEMEZDQTcwMDc2
OUU1NCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3
IC8qIGRmZyAqLywKIAkJCQkwRkY0MjcyRTE1OEVCQ0NFMDA0Q0I5RkYgLyogZGlzYXNzZW1ibGVy
ICovLAorCQkJCUUzRkY3NTJEMUQ5Q0U5RUEwMEM3RTE2RCAvKiBkb21qaXQgKi8sCiAJCQkJMDg2
N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZyYW1ld29ya3MgKi8sCiAJCQkJMEZFQTA5RkMxNzA1
MTM3RjAwQkI3MjJDIC8qIGZ0bCAqLywKIAkJCQkxNDJFMzEyQTEzNEZGMEE2MDBBRkFEQjUgLyog
aGVhcCAqLywKQEAgLTcxNjcsNiArNzE3OCwxOCBAQAogCQkJcGF0aCA9IGNvZGVnZW47CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFM0ZGNzUyRDFEOUNFOUVBMDBDN0UxNkQg
LyogZG9taml0ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJ
CQlFM0ZGNzUyRTFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGguY3BwICovLAorCQkJCUUz
RkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHcmFwaC5oICovLAorCQkJCUUzNEZBRTJD
MUQ5RDgyNjMwMEQxMDJDOCAvKiBET01KSVRJUi5jcHAgKi8sCisJCQkJRTNGRjc1MzAxRDlDRUEx
MjAwQzdFMTZEIC8qIERPTUpJVElSLmggKi8sCisJCQkJRTNGRjc1MzExRDlDRUExMjAwQzdFMTZE
IC8qIERPTUpJVElSQnVpbGRlci5oICovLAorCQkJKTsKKwkJCXBhdGggPSBkb21qaXQ7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogLyogRW5kIFBCWEdyb3VwIHNlY3Rpb24gKi8K
IAogLyogQmVnaW4gUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtNzIxNCw2ICs3
MjM3LDcgQEAKIAkJCQkwRkVDODU3NzFCREFDREM3MDA4MEZGNzQgLyogQWlyRnJlcXVlbnRlZEJs
b2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU3OTFCREFDREM3MDA4MEZGNzQgLyogQWly
R2VuZXJhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTdBMUJEQUNEQzcwMDgwRkY3NCAv
KiBBaXJHZW5lcmF0aW9uQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNGRjc1MzUxRDlD
RUEyNTAwQzdFMTZEIC8qIERPTUpJVElSQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
Qzg1N0MxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckhhbmRsZUNhbGxlZVNhdmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVDODU3RTFCREFDREM3MDA4MEZGNzQgLyogQWlySW5zZXJ0aW9uU2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU4MDFCREFDREM3MDA4MEZGNzQgLyogQWlySW5zdC5o
IGluIEhlYWRlcnMgKi8sCkBAIC03NjEyLDYgKzc2MzYsNyBAQAogCQkJCTBGQzIwQ0JBMTg1NTZB
MzUwMEM5RTk1NCAvKiBERkdTU0FMb3dlcmluZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjlGQjRGNTE3RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY0RjI5RTAxOEI2QUQxQzAwNTdCQzE1IC8qIERGR1N0YXRpY0V4ZWN1dGlv
bkNvdW50RXN0aW1hdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0ZGNzUzMzFEOUNF
QTE4MDBDN0UxNkQgLyogRE9NSklUR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUUzMjY0
MUIwNUFCMDQwMDgwMUVENSAvKiBERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDMjBDQjYxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVk
dWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjM5NDc4MTVEQ0UzNEIwMDZBNTk3
QyAvKiBERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTgwNzAs
NiArODA5NSw3IEBACiAJCQkJOTYwMDk3QTYwRUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjU0Njc3MTRGNTlCNUMwMDJDMjk4OSAvKiBMYXp5T3Bl
cmFuZFZhbHVlUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlEQTAwQjAxQkQ1OTk0RTAw
RjQ1NzVDIC8qIGxhenl3cml0ZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQlFM0ZGNzUzNDFEOUNF
QTFFMDBDN0UxNkQgLyogRE9NSklUSVIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDMxMEUx
NkY1Q0QwMEIzNDQ2MCAvKiBMZXhlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNGNDBFOTMxRDVB
NEFCMzAwOTlBMUI2IC8qIFdBU01CM0lSR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzUyRTBFMTZGQ0UxMDBCMzQ0NjAgLyogTGV4ZXIubHV0LmggaW4gSGVhZGVycyAqLywKQEAg
LTkzOTMsNiArOTQxOSw3IEBACiAJCQkJMEYyNEU1NEMxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9w
ZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1NTEzQTgxRDVBNjhDRDAwQzMyQkQ4
IC8qIEZyZWVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFOTlCMjRBMUMyNEMzRDcwMEM4
MjE1OSAvKiBKSVROZWdHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTMzQjk5OTYx
RDlEODJCRjAwMjZGOTUwIC8qIERPTUpJVElSLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2Q0M4
NUM0MEVFN0E4OTQwMDI4ODY4MiAvKiBKSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBN0MxRThFNDExMkU3MkVGMDBBMzdGOTggLyogSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI0MTU4NDFENzhGQjRDMDBERjhEMDkgLyogQXJy
YXlDb252ZW50aW9ucy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk0ODIsNiArOTUwOSw3IEBACiAJ
CQkJMTQ4NzRBRTUxNUVCREU0QTAwMkUzNTg3IC8qIEpTU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTdDMEM0QUQxNjgxMDY3RTAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGOTE5RDEwMTU3RjMzMjkwMDRBNEU3RCAvKiBKU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzRkY3NTMyMUQ5Q0VBMTUwMEM3RTE2
RCAvKiBET01KSVRHcmFwaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEQzE3RTgxNzFDOUM5MUQ2
MDA4QTZBQjMgLyogU2hhZG93Q2hpY2tlbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzI5OUQ5
RDE3RDEyODM3MDA1RjVGRjkgLyogSlNTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc5MERE
NkYxODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKaW5k
ZXggMTViM2M4MTNjYjhiZTgwNzMzZTNiNDE1ZjZhOThlN2Y5YWM4ZGQ0Zi4uNDE4MmI5MWQ2Zjc3
YzRkMTQ4OTg3NmRiYjA4MzczMDAwZmVlZjg0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcApAQCAtMzcsNiArMzcsOSBAQAogI2luY2x1
ZGUgPHd0Zi9MaXN0RHVtcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQg
eworY2xhc3MgR3JhcGg7Cit9CiAKIGJvb2wgR2V0QnlJZFN0YXR1czo6YXBwZW5kVmFyaWFudChj
b25zdCBHZXRCeUlkVmFyaWFudCYgdmFyaWFudCkKIHsKQEAgLTIxNSw2ICsyMTgsNyBAQCBHZXRC
eUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0
ZUZlZWRiYWNrKAogICAgICAgICAgICAgY2FzZSBDb21wbGV4R2V0U3RhdHVzOjpJbmxpbmVhYmxl
OiB7CiAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rU3RhdHVzPiBjYWxs
TGlua1N0YXR1czsKICAgICAgICAgICAgICAgICBKU0Z1bmN0aW9uKiBpbnRyaW5zaWNGdW5jdGlv
biA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgRE9NSklUOjpHcmFwaCogZG9tSklUID0gbnVs
bHB0cjsKIAogICAgICAgICAgICAgICAgIHN3aXRjaCAoYWNjZXNzLnR5cGUoKSkgewogICAgICAg
ICAgICAgICAgIGNhc2UgQWNjZXNzQ2FzZTo6TG9hZDoKQEAgLTIzNCw2ICsyMzgsMTIgQEAgR2V0
QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNp
dGVGZWVkYmFjaygKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBBY2Nlc3NDYXNl
OjpDdXN0b21BY2Nlc3NvckdldHRlcjogeworICAgICAgICAgICAgICAgICAgICBkb21KSVQgPSBh
Y2Nlc3MuZG9tSklUKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghZG9tSklUKQorICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoc2xvd1BhdGhTdGF0ZSwgdHJ1
ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJdCB3
b3VsZCBiZSB0b3RhbGx5IHN3ZWV0IHRvIHN1cHBvcnQgbW9yZSBvZiB0aGVzZSBhdCBzb21lIHBv
aW50IGluIHRoZQogICAgICAgICAgICAgICAgICAgICAvLyBmdXR1cmUuIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwNTIKQEAgLTI0NCw3ICsyNTQsOCBAQCBHZXRC
eUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0
ZUZlZWRiYWNrKAogICAgICAgICAgICAgICAgIEdldEJ5SWRWYXJpYW50IHZhcmlhbnQoCiAgICAg
ICAgICAgICAgICAgICAgIFN0cnVjdHVyZVNldChzdHJ1Y3R1cmUpLCBjb21wbGV4R2V0U3RhdHVz
Lm9mZnNldCgpLAogICAgICAgICAgICAgICAgICAgICBjb21wbGV4R2V0U3RhdHVzLmNvbmRpdGlv
blNldCgpLCBXVEZNb3ZlKGNhbGxMaW5rU3RhdHVzKSwKLSAgICAgICAgICAgICAgICAgICAgaW50
cmluc2ljRnVuY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBpbnRyaW5zaWNGdW5jdGlvbiwK
KyAgICAgICAgICAgICAgICAgICAgZG9tSklUKTsKIAogICAgICAgICAgICAgICAgIGlmICghcmVz
dWx0LmFwcGVuZFZhcmlhbnQodmFyaWFudCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBH
ZXRCeUlkU3RhdHVzKHNsb3dQYXRoU3RhdGUsIHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5jcHAKaW5kZXggYTg2OWQ0YTFjOTRlN2U0
NzU3MzE3NDRjN2IzMDNkNTA2NWUwZjQzMS4uNGRkNTJjYTY4OGFjZjUxMDFiMmJkOGMyZjZiN2Uw
YThjYzRiNzljMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dl
dEJ5SWRWYXJpYW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0
QnlJZFZhcmlhbnQuY3BwCkBAIC0zNiwxMiArMzYsMTQgQEAgR2V0QnlJZFZhcmlhbnQ6OkdldEJ5
SWRWYXJpYW50KAogICAgIGNvbnN0IFN0cnVjdHVyZVNldCYgc3RydWN0dXJlU2V0LCBQcm9wZXJ0
eU9mZnNldCBvZmZzZXQsCiAgICAgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmIGNv
bmRpdGlvblNldCwKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtTdGF0dXM+IGNhbGxMaW5r
U3RhdHVzLAotICAgIEpTRnVuY3Rpb24qIGludHJpbnNpY0Z1bmN0aW9uKQorICAgIEpTRnVuY3Rp
b24qIGludHJpbnNpY0Z1bmN0aW9uLAorICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCkKICAgICA6
IG1fc3RydWN0dXJlU2V0KHN0cnVjdHVyZVNldCkKICAgICAsIG1fY29uZGl0aW9uU2V0KGNvbmRp
dGlvblNldCkKICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fY2FsbExpbmtTdGF0dXMo
V1RGTW92ZShjYWxsTGlua1N0YXR1cykpCiAgICAgLCBtX2ludHJpbnNpY0Z1bmN0aW9uKGludHJp
bnNpY0Z1bmN0aW9uKQorICAgICwgbV9kb21KSVQoZG9tSklUKQogewogICAgIGlmICghc3RydWN0
dXJlU2V0LnNpemUoKSkgewogICAgICAgICBBU1NFUlQob2Zmc2V0ID09IGludmFsaWRPZmZzZXQp
OwpAQCAtNjUsNiArNjcsNyBAQCBHZXRCeUlkVmFyaWFudCYgR2V0QnlJZFZhcmlhbnQ6Om9wZXJh
dG9yPShjb25zdCBHZXRCeUlkVmFyaWFudCYgb3RoZXIpCiAgICAgbV9jb25kaXRpb25TZXQgPSBv
dGhlci5tX2NvbmRpdGlvblNldDsKICAgICBtX29mZnNldCA9IG90aGVyLm1fb2Zmc2V0OwogICAg
IG1faW50cmluc2ljRnVuY3Rpb24gPSBvdGhlci5tX2ludHJpbnNpY0Z1bmN0aW9uOworICAgIG1f
ZG9tSklUID0gb3RoZXIubV9kb21KSVQ7CiAgICAgaWYgKG90aGVyLm1fY2FsbExpbmtTdGF0dXMp
CiAgICAgICAgIG1fY2FsbExpbmtTdGF0dXMgPSBzdGQ6Om1ha2VfdW5pcXVlPENhbGxMaW5rU3Rh
dHVzPigqb3RoZXIubV9jYWxsTGlua1N0YXR1cyk7CiAgICAgZWxzZQpAQCAtMTAzLDYgKzEwNiw5
IEBAIGJvb2wgR2V0QnlJZFZhcmlhbnQ6OmF0dGVtcHRUb01lcmdlKGNvbnN0IEdldEJ5SWRWYXJp
YW50JiBvdGhlcikKICAgICBpZiAoIWNhbk1lcmdlSW50cmluc2ljU3RydWN0dXJlcyhvdGhlcikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2RvbUpJVCAhPSBvdGhlci5tX2Rv
bUpJVCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKG1fY29uZGl0aW9uU2V0Lmlz
RW1wdHkoKSAhPSBvdGhlci5tX2NvbmRpdGlvblNldC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAKQEAgLTEzOCw2ICsxNDQsOCBAQCB2b2lkIEdldEJ5SWRWYXJpYW50Ojpk
dW1wSW5Db250ZXh0KFByaW50U3RyZWFtJiBvdXQsIER1bXBDb250ZXh0KiBjb250ZXh0KSBjb25z
dAogICAgICAgICBvdXQucHJpbnQoIiwgY2FsbCA9ICIsICptX2NhbGxMaW5rU3RhdHVzKTsKICAg
ICBpZiAobV9pbnRyaW5zaWNGdW5jdGlvbikKICAgICAgICAgb3V0LnByaW50KCIsIGludHJpbnNp
YyA9ICIsICptX2ludHJpbnNpY0Z1bmN0aW9uKTsKKyAgICBpZiAobV9kb21KSVQpCisgICAgICAg
IG91dC5wcmludCgiLCBjdXN0b20gPSAiLCBSYXdQb2ludGVyKG1fZG9tSklUKSk7CiAgICAgb3V0
LnByaW50KCI+Iik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9HZXRCeUlkVmFyaWFudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dl
dEJ5SWRWYXJpYW50LmgKaW5kZXggNjYyMTg5YmNlNWYyZWIxYTEzYmQwNTNlOTgwMDIxYzEzYzI2
NmU2Ni4uZGNmNDA4OGVjMzViOWJiMDI4YzViZThiZDMyNWExMTQxNzkwMzg5NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmgKQEAgLTMyLDYg
KzMyLDkgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVTZXQuaCIKIAogbmFtZXNwYWNlIEpTQyB7Citu
YW1lc3BhY2UgRE9NSklUIHsKK2NsYXNzIEdyYXBoOworfQogCiBjbGFzcyBDYWxsTGlua1N0YXR1
czsKIGNsYXNzIEdldEJ5SWRTdGF0dXM7CkBAIC00Myw3ICs0Niw4IEBAIGNsYXNzIEdldEJ5SWRW
YXJpYW50IHsKICAgICAgICAgY29uc3QgU3RydWN0dXJlU2V0JiBzdHJ1Y3R1cmVTZXQgPSBTdHJ1
Y3R1cmVTZXQoKSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gaW52YWxpZE9mZnNldCwKICAgICAg
ICAgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmID0gT2JqZWN0UHJvcGVydHlDb25k
aXRpb25TZXQoKSwKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rU3RhdHVzPiA9IG51
bGxwdHIsCi0gICAgICAgIEpTRnVuY3Rpb24qID0gbnVsbHB0cik7CisgICAgICAgIEpTRnVuY3Rp
b24qID0gbnVsbHB0ciwKKyAgICAgICAgRE9NSklUOjpHcmFwaCogPSBudWxscHRyKTsKIAogICAg
IH5HZXRCeUlkVmFyaWFudCgpOwogICAgIApAQCAtNjIsNiArNjYsNyBAQCBjbGFzcyBHZXRCeUlk
VmFyaWFudCB7CiAgICAgQ2FsbExpbmtTdGF0dXMqIGNhbGxMaW5rU3RhdHVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9jYWxsTGlua1N0YXR1cy5nZXQoKTsgfQogICAgIEpTRnVuY3Rpb24qIGludHJpbnNp
Y0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9pbnRyaW5zaWNGdW5jdGlvbjsgfQogICAgIElu
dHJpbnNpYyBpbnRyaW5zaWMoKSBjb25zdCB7IHJldHVybiBtX2ludHJpbnNpY0Z1bmN0aW9uID8g
bV9pbnRyaW5zaWNGdW5jdGlvbi0+aW50cmluc2ljKCkgOiBOb0ludHJpbnNpYzsgfQorICAgIERP
TUpJVDo6R3JhcGgqIGRvbUpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tSklUOyB9CiAKICAgICBi
b29sIGlzUHJvcGVydHlVbnNldCgpIGNvbnN0IHsgcmV0dXJuIG9mZnNldCgpID09IGludmFsaWRP
ZmZzZXQ7IH0KIApAQCAtODAsNiArODUsNyBAQCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7CiAgICAg
UHJvcGVydHlPZmZzZXQgbV9vZmZzZXQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rU3Rh
dHVzPiBtX2NhbGxMaW5rU3RhdHVzOwogICAgIEpTRnVuY3Rpb24qIG1faW50cmluc2ljRnVuY3Rp
b247CisgICAgRE9NSklUOjpHcmFwaCogbV9kb21KSVQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhp
Y0FjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNB
Y2Nlc3MuY3BwCmluZGV4IDJjZjI2NjcwODY2NDZmMjAyYTA0YzZhMDc0MjljODFhNzVlOTQ2NDMu
LjM5OTVlNjQwNGY0YjNjZTc1ZjEyMWYyMzdiYTU1NDlhYWZhYWZlNDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcApAQCAt
MjIwLDcgKzIyMCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBBY2Nlc3NDYXNlOjp0
cnlHZXQoCiBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Z2V0KAogICAg
IFZNJiB2bSwgSlNDZWxsKiBvd25lciwgQWNjZXNzVHlwZSB0eXBlLCBQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQsIFN0cnVjdHVyZSogc3RydWN0dXJlLAogICAgIGNvbnN0IE9iamVjdFByb3BlcnR5Q29u
ZGl0aW9uU2V0JiBjb25kaXRpb25TZXQsIGJvb2wgdmlhUHJveHksIFdhdGNocG9pbnRTZXQqIGFk
ZGl0aW9uYWxTZXQsCi0gICAgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgY3VzdG9tR2V0dGVy
LCBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UpCisgICAgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmMgY3VzdG9tR2V0dGVyLCBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UsIERPTUpJVDo6R3JhcGgq
IGRvbUpJVCkKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gcmVzdWx0KG5ldyBB
Y2Nlc3NDYXNlKCkpOwogCkBAIC0yMjksMTIgKzIyOSwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNj
ZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Z2V0KAogICAgIHJlc3VsdC0+bV9zdHJ1Y3R1cmUuc2V0KHZt
LCBvd25lciwgc3RydWN0dXJlKTsKICAgICByZXN1bHQtPm1fY29uZGl0aW9uU2V0ID0gY29uZGl0
aW9uU2V0OwogCi0gICAgaWYgKHZpYVByb3h5IHx8IGFkZGl0aW9uYWxTZXQgfHwgcmVzdWx0LT5k
b2VzQ2FsbHMoKSB8fCBjdXN0b21HZXR0ZXIgfHwgY3VzdG9tU2xvdEJhc2UpIHsKKyAgICBpZiAo
dmlhUHJveHkgfHwgYWRkaXRpb25hbFNldCB8fCByZXN1bHQtPmRvZXNDYWxscygpIHx8IGN1c3Rv
bUdldHRlciB8fCBjdXN0b21TbG90QmFzZSB8fCBkb21KSVQpIHsKICAgICAgICAgcmVzdWx0LT5t
X3JhcmVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxSYXJlRGF0YT4oKTsKICAgICAgICAgcmVzdWx0
LT5tX3JhcmVEYXRhLT52aWFQcm94eSA9IHZpYVByb3h5OwogICAgICAgICByZXN1bHQtPm1fcmFy
ZURhdGEtPmFkZGl0aW9uYWxTZXQgPSBhZGRpdGlvbmFsU2V0OwogICAgICAgICByZXN1bHQtPm1f
cmFyZURhdGEtPmN1c3RvbUFjY2Vzc29yLmdldHRlciA9IGN1c3RvbUdldHRlcjsKICAgICAgICAg
cmVzdWx0LT5tX3JhcmVEYXRhLT5jdXN0b21TbG90QmFzZS5zZXRNYXlCZU51bGwodm0sIG93bmVy
LCBjdXN0b21TbG90QmFzZSk7CisgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+ZG9tSklUID0g
ZG9tSklUOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0zODUsNiArMzg2LDcgQEAg
c3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6OmNsb25lKCkgY29uc3QKICAg
ICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5jdXN0b21BY2Nlc3Nvci5vcGFxdWUgPSByYXJlRGF0
YS0+Y3VzdG9tQWNjZXNzb3Iub3BhcXVlOwogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmN1
c3RvbVNsb3RCYXNlID0gcmFyZURhdGEtPmN1c3RvbVNsb3RCYXNlOwogICAgICAgICByZXN1bHQt
Pm1fcmFyZURhdGEtPmludHJpbnNpY0Z1bmN0aW9uID0gcmFyZURhdGEtPmludHJpbnNpY0Z1bmN0
aW9uOworICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmRvbUpJVCA9IHJhcmVEYXRhLT5kb21K
SVQ7CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCmluZGV4IGE2ZDE0OGNiZmIwZjE5
ZjhiMzdhMTc3MzgxZTAwODEzNzJiODQ5MjIuLjVhZTNlMjllMDg1ZWY5YzYyZDcxMTU4MWViNmVl
OWQwYzc2MDE0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Q
b2x5bW9ycGhpY0FjY2Vzcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Q
b2x5bW9ycGhpY0FjY2Vzcy5oCkBAIC0zNyw2ICszNyw5IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworY2xhc3MgR3JhcGg7
Cit9CiAKIGNsYXNzIENvZGVCbG9jazsKIGNsYXNzIFBvbHltb3JwaGljQWNjZXNzOwpAQCAtMTMw
LDcgKzEzMyw4IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICBib29sIHZpYVByb3h5ID0g
ZmFsc2UsCiAgICAgICAgIFdhdGNocG9pbnRTZXQqIGFkZGl0aW9uYWxTZXQgPSBudWxscHRyLAog
ICAgICAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyA9IG51bGxwdHIsCi0gICAgICAgIEpT
T2JqZWN0KiBjdXN0b21TbG90QmFzZSA9IG51bGxwdHIpOworICAgICAgICBKU09iamVjdCogY3Vz
dG9tU2xvdEJhc2UgPSBudWxscHRyLAorICAgICAgICBET01KSVQ6OkdyYXBoKiA9IG51bGxwdHIp
OwogICAgIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gbWVnYW1vcnBo
aWNMb2FkKFZNJiwgSlNDZWxsKiBvd25lcik7CiAgICAgCkBAIC0xODYsNiArMTkwLDEyIEBAIGNs
YXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICByZXR1cm4gaW50cmluc2ljRnVuY3Rpb24oKS0+aW50
cmluc2ljKCk7CiAgICAgfQogCisgICAgRE9NSklUOjpHcmFwaCogZG9tSklUKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIEFTU0VSVChtX3JhcmVEYXRhKTsKKyAgICAgICAgcmV0dXJuIG1fcmFyZURh
dGEtPmRvbUpJVDsKKyAgICB9CisKICAgICBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0KCkg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhID8gbV9yYXJlRGF0YS0+YWRk
aXRpb25hbFNldC5nZXQoKSA6IG51bGxwdHI7CkBAIC0yODQsNiArMjk0LDcgQEAgY2xhc3MgQWNj
ZXNzQ2FzZSB7CiAgICAgcHVibGljOgogICAgICAgICBSYXJlRGF0YSgpCiAgICAgICAgICAgICA6
IHZpYVByb3h5KGZhbHNlKQorICAgICAgICAgICAgLCBkb21KSVQobnVsbHB0cikKICAgICAgICAg
ewogICAgICAgICAgICAgY3VzdG9tQWNjZXNzb3Iub3BhcXVlID0gbnVsbHB0cjsKICAgICAgICAg
fQpAQCAtMzAwLDYgKzMxMSw3IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICB9IGN1c3Rv
bUFjY2Vzc29yOwogICAgICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IGN1c3RvbVNsb3RCYXNl
OwogICAgICAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gaW50cmluc2ljRnVuY3Rpb247Cisg
ICAgICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVDsKICAgICB9OwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFJhcmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDlkYjEzZTNh
ODdlNmI3OGRhYTFlOWIwMTIzMzJmYTE1ZjU2NDQ0OTAuLjdjMTdmYTNmZjg2MzcyOGIxYWEyNjgx
MjU1YmU2Zjg3ODBhZjUxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJERkdBYnN0cmFjdElu
dGVycHJldGVyLmgiCisjaW5jbHVkZSAiRE9NSklUR3JhcGguaCIKICNpbmNsdWRlICJHZXRCeUlk
U3RhdHVzLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSGFzaE1hcElt
cGwuaCIKQEAgLTIyNjMsNiArMjI2NCwxMiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAg
IGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICAgICAgZm9yTm9kZShub2RlKS5j
bGVhcigpOyAvLyBUaGUgcmVzdWx0IGlzIG5vdCBhIEpTIHZhbHVlLgogICAgICAgICBicmVhazsK
KyAgICBjYXNlIENoZWNrRE9NOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENhbGxET006Cisg
ICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7
CisgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShtX2dyYXBoLCBub2RlLT5kb21KSVQoKS0+
cmVzdWx0VHlwZSgpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDaGVja0FycmF5OiB7CiAg
ICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZChtX2dyYXBoLCBub2Rl
LCBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKSkpIHsKICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91
bmRDb25zdGFudHModHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDA0NTIyODBkZDI2ZjQwYjBiY2E0NWQzODUxZDExMGRmNDE2
YTBmYTcuLmE4MWE0YzUwZjhjYTBlMzBjYjNhYzYwOWFhMjhmMmNkNzg2MzhmNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0yMTks
NiArMjE5LDcgQEAgY2xhc3MgQnl0ZUNvZGVQYXJzZXIgewogICAgIGJvb2wgaGFuZGxlQ29uc3Rh
bnRJbnRlcm5hbEZ1bmN0aW9uKE5vZGUqIGNhbGxUYXJnZXROb2RlLCBpbnQgcmVzdWx0T3BlcmFu
ZCwgSW50ZXJuYWxGdW5jdGlvbiosIGludCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCBTcGVjdWxhdGVkVHlwZSwg
Y29uc3QgQ2hlY2tzRnVuY3RvciYgaW5zZXJ0Q2hlY2tzKTsKICAgICBOb2RlKiBoYW5kbGVQdXRC
eU9mZnNldChOb2RlKiBiYXNlLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0eU9mZnNldCwg
Y29uc3QgSW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9yJiwgTm9kZSogdmFsdWUpOwogICAgIE5vZGUq
IGhhbmRsZUdldEJ5T2Zmc2V0KFNwZWN1bGF0ZWRUeXBlLCBOb2RlKiBiYXNlLCB1bnNpZ25lZCBp
ZGVudGlmaWVyTnVtYmVyLCBQcm9wZXJ0eU9mZnNldCwgY29uc3QgSW5mZXJyZWRUeXBlOjpEZXNj
cmlwdG9yJiwgTm9kZVR5cGUgPSBHZXRCeU9mZnNldCk7CisgICAgYm9vbCBoYW5kbGVET01KSVRH
ZXR0ZXIoaW50IHJlc3VsdE9wZXJhbmQsIGNvbnN0IEdldEJ5SWRWYXJpYW50JiwgTm9kZSogdGhp
c05vZGUsIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24pOwogCiAgICAgLy8gQ3JlYXRlIGEgcHJl
c2VuY2UgT2JqZWN0UHJvcGVydHlDb25kaXRpb24gYmFzZWQgb24gc29tZSBrbm93biBvZmZzZXQg
YW5kIHN0cnVjdHVyZSBzZXQuIERvZXMgbm90CiAgICAgLy8gY2hlY2sgdGhlIHZhbGlkaXR5IG9m
IHRoZSBjb25kaXRpb24sIGJ1dCBpdCBtYXkgcmV0dXJuIGEgbnVsbCBvbmUgaWYgaXQgZW5jb3Vu
dGVycyBhIGNvbnRyYWRpY3Rpb24uCkBAIC0yNjU5LDYgKzI2NjAsMjAgQEAgYm9vbCBCeXRlQ29k
ZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljR2V0dGVyKGludCByZXN1bHRPcGVyYW5kLCBjb25zdCBH
ZXRCeUlkVmFyaWEKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCitib29s
IEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVET01KSVRHZXR0ZXIoaW50IHJlc3VsdE9wZXJhbmQsIGNv
bnN0IEdldEJ5SWRWYXJpYW50JiB2YXJpYW50LCBOb2RlKiB0aGlzTm9kZSwgU3BlY3VsYXRlZFR5
cGUpCit7CisgICAgaWYgKCF2YXJpYW50LmRvbUpJVCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQgPSB2YXJpYW50LmRvbUpJVCgpOworICAgIGFk
ZFRvR3JhcGgoQ2hlY2tET00sIE9wSW5mbyhkb21KSVQpLCB0aGlzTm9kZSk7CisgICAgTm9kZSog
Z2xvYmFsT2JqZWN0ID0gYWRkVG9HcmFwaChHZXRHbG9iYWxPYmplY3QsIHRoaXNOb2RlKTsKKyAg
ICBhZGRWYXJBcmdDaGlsZChnbG9iYWxPYmplY3QpOworICAgIGFkZFZhckFyZ0NoaWxkKHRoaXNO
b2RlKTsKKyAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKHJlc3VsdE9wZXJhbmQpLCBhZGRUb0dyYXBo
KE5vZGU6OlZhckFyZywgQ2FsbERPTSwgT3BJbmZvKGRvbUpJVCksIE9wSW5mbygwKSkpOworICAg
IHJldHVybiB0cnVlOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGVja3NGdW5jdG9yPgogYm9v
bCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlVHlwZWRBcnJheUNvbnN0cnVjdG9yKAogICAgIGludCBy
ZXN1bHRPcGVyYW5kLCBJbnRlcm5hbEZ1bmN0aW9uKiBmdW5jdGlvbiwgaW50IHJlZ2lzdGVyT2Zm
c2V0LApAQCAtMzMyNCw2ICszMzM5LDE0IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdl
dEJ5SWQoCiAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5lZEdldEJ5
SWQoKTsKIAogICAgIEFTU0VSVCh0eXBlID09IEFjY2Vzc1R5cGU6OkdldCB8fCAhdmFyaWFudC5j
YWxsTGlua1N0YXR1cygpKTsKKworICAgIGlmICh2YXJpYW50LmRvbUpJVCgpKSB7CisgICAgICAg
IGlmIChoYW5kbGVET01KSVRHZXR0ZXIoZGVzdGluYXRpb25PcGVyYW5kLCB2YXJpYW50LCBiYXNl
LCBwcmVkaWN0aW9uKSkgeworICAgICAgICAgICAgYWRkVG9HcmFwaChQaGFudG9tLCBsb2FkZWRW
YWx1ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAo
IXZhcmlhbnQuY2FsbExpbmtTdGF0dXMoKSAmJiB2YXJpYW50LmludHJpbnNpYygpID09IE5vSW50
cmluc2ljKSB7CiAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoZGVzdGluYXRpb25PcGVyYW5k
KSwgbG9hZGVkVmFsdWUpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDg3ZDhiNTJkOGNkNzlmZDQ5MjRjODU4MjE0MjYxNmU3
MmRhNzIzYzQuLmEzYzdmNDM1YzE3N2QwMDg5ZTBjNjUwZDI1NmQ1Mjc5YjFkYTJiMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC04ODMsNiArODgzLDE2
IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRG
dW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQnV0
dGVyZmx5TG9jLCBKU09iamVjdF9idXR0ZXJmbHksIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUo
bm9kZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBGSVhNRTogUHJlY2lzZWx5IG1vZGVs
IGl0LgorICAgIGNhc2UgQ2hlY2tET006CisgICAgICAgIHJlYWQoV29ybGQpOworICAgICAgICBy
ZXR1cm47CisKKyAgICBjYXNlIENhbGxET006CisgICAgICAgIHJlYWQoV29ybGQpOworICAgICAg
ICB3cml0ZShIZWFwKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBBcnJheWlmeToKICAg
ICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CiAgICAgICAgIHJlYWQoSlNDZWxsX3N0cnVjdHVy
ZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCAwYWQ1NGZl
ZTJmZjM5ZDg4NTcwYjE3NzY3ODFmMjQxOTYwOWZkY2RhLi41MWM4MDIzMzI4MzJhMTVhNzk5ZTQw
YzZhNGFhMWRhOWI5ODg1ODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0Mu
Y3BwCkBAIC0xMTYsNiArMTE2LDggQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlKQogICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgog
ICAgIGNhc2UgR2V0QnV0dGVyZmx5OgorICAgIGNhc2UgQ2FsbERPTToKKyAgICBjYXNlIENoZWNr
RE9NOgogICAgIGNhc2UgQ2hlY2tBcnJheToKICAgICBjYXNlIEdldFNjb3BlOgogICAgIGNhc2Ug
U2tpcFNjb3BlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAK
aW5kZXggNWFkNmFmZDQ3YjQ4MjUwMzkwMjQzNzU5ODE5ODYzNmRmYWExMTgwMC4uNzFiMGUxNjRl
ZmIzYTcwYmM0ZGM0NWE5YjY4MDAzZTZmYjY5YWE0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xNjAzLDYgKzE2MDMsMTUgQEAgY2xhc3MgRml4
dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+
KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgQ2hl
Y2tET006CisgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgQ2FsbERPTToKKyAgICAgICAgICAgIGZp
eEVkZ2U8S25vd25DZWxsVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsgLy8gR2xv
YmFsT2JqZWN0LgorICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihtX2dyYXBoLnZhckFyZ0No
aWxkKG5vZGUsIDEpKTsgLy8gRE9NLgorICAgICAgICAgICAgYnJlYWs7CisKICNpZiAhQVNTRVJU
X0RJU0FCTEVECiAgICAgICAgIC8vIEhhdmUgdGhlc2Ugbm8tb3AgY2FzZXMgaGVyZSB0byBlbnN1
cmUgdGhhdCBub2JvZHkgZm9yZ2V0cyB0byBhZGQgaGFuZGxlcnMgZm9yIG5ldyBvcGNvZGVzLgog
ICAgICAgICBjYXNlIFNldEFyZ3VtZW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApp
bmRleCA0YmFlOWFlOTYzNjA5YzNmMzczMDZiMTRmNTcyZjJiNGZhYzU3NDRiLi45MjJhYmUzODk0
Njk2MGUzMzFhZWQ1ZmNlN2EwYjk4NDRhODNlMmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGUuaApAQCAtNTgsNiArNTgsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK25hbWVzcGFj
ZSBET01KSVQgeworY2xhc3MgR3JhcGg7Cit9CisKIG5hbWVzcGFjZSBQcm9maWxlciB7CiBjbGFz
cyBFeGVjdXRpb25Db3VudGVyOwogfQpAQCAtMjMwOCw3ICsyMzEyLDE3IEBAIHN0cnVjdCBOb2Rl
IHsKICAgICAgICAgQVNTRVJUKGhhc0Jhc2ljQmxvY2tMb2NhdGlvbigpKTsKICAgICAgICAgcmV0
dXJuIG1fb3BJbmZvLmFzPEJhc2ljQmxvY2tMb2NhdGlvbio+KCk7CiAgICAgfQotICAgIAorCisg
ICAgYm9vbCBoYXNET01KSVRHcmFwaCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gb3Ao
KSA9PSBDaGVja0RPTSB8fCBvcCgpID09IENhbGxET007CisgICAgfQorCisgICAgRE9NSklUOjpH
cmFwaCogZG9tSklUKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX29wSW5mby5hczxET01KSVQ6
OkdyYXBoKj4oKTsKKyAgICB9CisKICAgICBOb2RlKiByZXBsYWNlbWVudCgpIGNvbnN0CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9taXNjLnJlcGxhY2VtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDhiNGQ5ZjBjMzA5YTdjMTg5ZDY1MjI3NjliMDdkNTI5
NGQ2NmM0ZmQuLjgzYjBmNTljMGQwNDk3YjU4YTMzZmJmYThlYTU4YjI1NDk3ZTNkYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTM5NCw2ICszOTQsMTAgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKEdldE1hcEJ1Y2tldCwg
Tm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oTG9hZEZyb21KU01hcEJ1Y2tldCwgTm9kZVJlc3Vs
dEpTKSBcCiAgICAgbWFjcm8oSXNOb25FbXB0eU1hcEJ1Y2tldCwgTm9kZVJlc3VsdEJvb2xlYW4p
IFwKKyAgICBcCisgICAgLyogTm9kZXMgZm9yIERPTSBKSVQgKi9cCisgICAgbWFjcm8oQ2hlY2tE
T00sIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDYWxsRE9NLCBOb2RlUmVzdWx0SlMg
fCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwKIAogLy8gVGhpcyBlbnVtIGdl
bmVyYXRlcyBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBpZCBmb3IgYWxsIE5vZGUgdHlwZXMs
CiAvLyBhbmQgaXMgdXNlZCBieSB0aGUgc3Vic2VxdWVudCBlbnVtIHRvIGZpbGwgb3V0IHRoZSBp
ZCAoYXMgYWNjZXNzZWQgdmlhIHRoZSBOb2RlSWRNYXNrKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
aW5kZXggYmFmZGY5MDZlYmY2ZjczMDdjYWY0MGY2Yjg1YzExYjAxMTllMWYyMi4uOGQ2NjQyZDQx
MDI2NzRkMGRjNjU5ZTJiZDFiY2ViNDY2NjMwMDBjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
QEAgLTgxOSw2ICs4MTksMTMgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBw
dWJsaWMgUGhhc2UgewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAgICAgICBj
YXNlIENhbGxET006CisgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKG1fY3VycmVudE5vZGUtPmRv
bUpJVCgpLT5wcmVkaWN0aW9uKCkpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2Fz
ZSBDaGVja0RPTToKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgQ2FsbE9iamVj
dENvbnN0cnVjdG9yOiB7CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNPYmplY3QpOwog
ICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCmluZGV4IGJkZGQ0NjYwMTdlOWY4N2I2YzAzNTQ0MGNkOGFmMTQ3Yjg2NWRmNGYu
LjBkYjU0NTFmODFjYjA1NTA4OWVjODllODBjYmRmNjkwNTBmN2IyYmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC0yMTYsNiArMjE2LDggQEAg
Ym9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBo
LCBOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgY2FzZSBHZXRFeGVj
dXRhYmxlOgogICAgIGNhc2UgR2V0QnV0dGVyZmx5OgorICAgIGNhc2UgQ2FsbERPTToKKyAgICBj
YXNlIENoZWNrRE9NOgogICAgIGNhc2UgQ2hlY2tBcnJheToKICAgICBjYXNlIEFycmF5aWZ5Ogog
ICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggMTBlZmI3MjA0M2YxYWM4NzcwMWFiZDg2
ZjllY2NhMWFkZjhkMzdiMS4uMzNkYjU1NTZiMjQ2Nzc4ZmRjZDUxYmE1NDJmMGQ2YzQ0N2YwNTIw
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJERkdPU1JFeGl0RnV6ei5oIgogI2luY2x1
ZGUgIkRGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
REZHU2xvd1BhdGhHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJET01KSVRQYXRjaHBvaW50LmgiCiAj
aW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9yLmgi
CiAjaW5jbHVkZSAiSklUQml0QW5kR2VuZXJhdG9yLmgiCkBAIC03MDU3LDYgKzcwNTgsODIgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ1dHRlcmZseShOb2RlKiBub2RlKQogICAg
IHN0b3JhZ2VSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUNhbGxET00oTm9kZSogbm9kZSkKK3sKKyAgICBSZWY8RE9NSklUOjpQYXRjaHBv
aW50PiBwYXRjaHBvaW50ID0gbm9kZS0+ZG9tSklUKCktPmNhbGxET00oKTsKKworICAgIFZlY3Rv
cjxHUFJSZWc+IGdwU2NyYXRjaDsKKyAgICBWZWN0b3I8RlBSUmVnPiBmcFNjcmF0Y2g7CisgICAg
VmVjdG9yPFJlZz4gcmVnczsKKworICAgIC8vIEZJWE1FOiBwYXRjaHBvaW50IHNob3VsZCBoYXZl
IGEgd2F5IHRvIHRlbGwgdGhpcyBjYW4gcmV1c2UgImJhc2UiIHJlZ2lzdGVyLgorICAgIC8vIFRl
YWNoaW5nIERGRyBhYm91dCBET01KSVQ6OlBhdGNocG9pbnQgY2xvYmJlciBpbmZvcm1hdGlvbiBp
cyBuaWNlLgorCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgZ2xvYmFsT2JqZWN0KHRoaXMsIG1f
aml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAg
SlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworCisgICAgcmVncy5hcHBlbmQocmVz
dWx0LnJlZ3MoKS5ncHIoKSk7CisgICAgcmVncy5hcHBlbmQoYmFzZS5ncHIoKSk7CisgICAgcmVn
cy5hcHBlbmQoZ2xvYmFsT2JqZWN0LmdwcigpKTsKKyAgICByZWdzLmFwcGVuZChzdGF0aWNfY2Fz
dDxHUFJSZWc+KEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgIHJlZ3MuYXBwZW5kKHN0
YXRpY19jYXN0PEdQUlJlZz4oR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisKKyAg
ICBWZWN0b3I8R1BSVGVtcG9yYXJ5PiBncFRlbXByYXJpZXM7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVyczsgKytpKSB7CisgICAg
ICAgIEdQUlRlbXBvcmFyeSB0ZW1wb3JhcnkodGhpcyk7CisgICAgICAgIGdwU2NyYXRjaC5hcHBl
bmQodGVtcG9yYXJ5LmdwcigpKTsKKyAgICAgICAgZ3BUZW1wcmFyaWVzLmFwcGVuZChXVEZNb3Zl
KHRlbXBvcmFyeSkpOworICAgIH0KKworICAgIFZlY3RvcjxGUFJUZW1wb3Jhcnk+IGZwVGVtcHJh
cmllczsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF0Y2hwb2ludC0+bnVtR1BTY3Jh
dGNoUmVnaXN0ZXJzOyArK2kpIHsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXBvcmFyeSh0aGlz
KTsKKyAgICAgICAgZnBTY3JhdGNoLmFwcGVuZCh0ZW1wb3JhcnkuZnByKCkpOworICAgICAgICBm
cFRlbXByYXJpZXMuYXBwZW5kKFdURk1vdmUodGVtcG9yYXJ5KSk7CisgICAgfQorCisgICAgRE9N
SklUOjpQYXRjaHBvaW50UGFyYW1zIHBhcmFtcyhXVEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2Ny
YXRjaCksIFdURk1vdmUoZnBTY3JhdGNoKSk7CisgICAgcGF0Y2hwb2ludC0+Z2VuZXJhdG9yKCkt
PnJ1bihtX2ppdCwgcGFyYW1zKTsKKyAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5yZWdzKCksIG5v
ZGUpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tET00oTm9kZSogbm9k
ZSkKK3sKKyAgICBSZWY8RE9NSklUOjpQYXRjaHBvaW50PiBwYXRjaHBvaW50ID0gbm9kZS0+ZG9t
SklUKCktPmNoZWNrRE9NKCk7CisKKyAgICBWZWN0b3I8R1BSUmVnPiBncFNjcmF0Y2g7CisgICAg
VmVjdG9yPEZQUlJlZz4gZnBTY3JhdGNoOworICAgIFZlY3RvcjxSZWc+IHJlZ3M7CisKKyAgICAv
LyBGSVhNRTogcGF0Y2hwb2ludCBzaG91bGQgaGF2ZSBhIHdheSB0byB0ZWxsIHRoaXMgY2FuIHJl
dXNlICJiYXNlIiByZWdpc3Rlci4KKyAgICAvLyBUZWFjaGluZyBERkcgYWJvdXQgRE9NSklUOjpQ
YXRjaHBvaW50IGNsb2JiZXIgaW5mb3JtYXRpb24gaXMgbmljZS4KKyAgICBTcGVjdWxhdGVDZWxs
T3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBHUFJUZW1wb3JhcnkgcmVz
dWx0KHRoaXMpOworCisgICAgcmVncy5hcHBlbmQocmVzdWx0LmdwcigpKTsKKyAgICByZWdzLmFw
cGVuZChiYXNlLmdwcigpKTsKKworICAgIFZlY3RvcjxHUFJUZW1wb3Jhcnk+IGdwVGVtcHJhcmll
czsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNo
UmVnaXN0ZXJzOyArK2kpIHsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFyeSh0aGlzKTsK
KyAgICAgICAgZ3BTY3JhdGNoLmFwcGVuZCh0ZW1wb3JhcnkuZ3ByKCkpOworICAgICAgICBncFRl
bXByYXJpZXMuYXBwZW5kKFdURk1vdmUodGVtcG9yYXJ5KSk7CisgICAgfQorCisgICAgVmVjdG9y
PEZQUlRlbXBvcmFyeT4gZnBUZW1wcmFyaWVzOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7ICsraSkgeworICAgICAgICBGUFJU
ZW1wb3JhcnkgdGVtcG9yYXJ5KHRoaXMpOworICAgICAgICBmcFNjcmF0Y2guYXBwZW5kKHRlbXBv
cmFyeS5mcHIoKSk7CisgICAgICAgIGZwVGVtcHJhcmllcy5hcHBlbmQoV1RGTW92ZSh0ZW1wb3Jh
cnkpKTsKKyAgICB9CisKKyAgICBET01KSVQ6OlBhdGNocG9pbnRQYXJhbXMgcGFyYW1zKFdURk1v
dmUocmVncyksIFdURk1vdmUoZ3BTY3JhdGNoKSwgV1RGTW92ZShmcFNjcmF0Y2gpKTsKKyAgICBw
YXRjaHBvaW50LT5nZW5lcmF0b3IoKS0+cnVuKG1faml0LCBwYXJhbXMpOworICAgIHNwZWN1bGF0
aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKE1h
Y3JvQXNzZW1ibGVyOjpaZXJvLCBwYXJhbXNbMF0uZ3ByKCkpKTsKKyAgICBub1Jlc3VsdChub2Rl
KTsKK30KKwogR1BSUmVnIFNwZWN1bGF0aXZlSklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5
VmFsKEdQUlRlbXBvcmFyeSYgdGVtcG9yYXJ5LCBBcnJheU1vZGUgYXJyYXlNb2RlKQogewogICAg
IGlmICghcHV0QnlWYWxXaWxsTmVlZEV4dHJhUmVnaXN0ZXIoYXJyYXlNb2RlKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBjYTk3OGY2Yjcz
OTUxMzk1MDE1MTBkMDU4MjhhMDI5ODIyZjg1YTFiLi40MjJmNzgzMGE1OWVhNTA1M2JmNmQyMzVh
MWQzNjkwNGYxZGMxZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCkBAIC0yNDU5LDYgKzI0NTksOCBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7
CiAgICAgdm9pZCBjb21waWxlQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoTm9kZSopOwogICAgIHZv
aWQgY29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZUdldEJ1dHRlcmZseShOb2RlKik7CisgICAgdm9pZCBjb21waWxlQ2FsbERPTShOb2RlKik7
CisgICAgdm9pZCBjb21waWxlQ2hlY2tET00oTm9kZSopOwogICAgIAogI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQmFzZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBQ
cm9wZXJ0eU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBWYWx1ZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBU
YWdUeXBlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAKaW5kZXggM2ExMGExMGQ3YjQyMjU0NDA5ZGQyMzI5Y2MwZjIxN2Y5Njk5
NWQzZS4uNmEyZTBhYTAwMjAzZTA5OGVhYjY3MTQyNzYwNDQ5YmE3YTI4NmEyZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CkBAIC01NDIwLDYgKzU0MjAsMTQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
KiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENhbGxET006CisgICAg
ICAgIGNvbXBpbGVDYWxsRE9NKG5vZGUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgQ2hl
Y2tET006CisgICAgICAgIGNvbXBpbGVDaGVja0RPTShub2RlKTsKKyAgICAgICAgYnJlYWs7CisK
ICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAgICAgICB1bnJlYWNoYWJsZShub2RlKTsKICAgICAg
ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAppbmRleCBmNWVhNzRiMmU3MTA1OTc1YzdmYjA3MTM2YjcxM2IxYWMxNTY3Yjdj
Li44OTdhMDhjZTdhZjdmODQ3YWM4MTE2ODQxNDkyNWIzOWZiNDIyOTQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTU0MzYs
NiArNTQzNiwxNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAg
ICAgICAgIGNvbXBpbGVNYXRlcmlhbGl6ZU5ld09iamVjdChub2RlKTsKICAgICAgICAgYnJlYWs7
CiAKKyAgICBjYXNlIENhbGxET006CisgICAgICAgIGNvbXBpbGVDYWxsRE9NKG5vZGUpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgQ2hlY2tET006CisgICAgICAgIGNvbXBpbGVDaGVja0RP
TShub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICNpZiBFTkFCTEUoRlRMX0pJVCkgICAgICAgIAog
ICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6IHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgY2FsbFRpZXJVcCA9IG1faml0LmJyYW5jaEFkZDMyKApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZG9taml0L0RPTUpJVEdyYXBoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTVlYjIxMTU3NGIyNDdlMzA2
ZDliYWZjNjY1YjBmOTg5OGQ0ZDAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJET01KSVRHcmFwaC5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVz
cGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CisKK30gfQorCisjZW5kaWYgLy8gRU5BQkxF
KERGR19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJ
VEdyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVEdyYXBoLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOWNhZmQwYzNiZTljYzQ0NDdlN2JjN2U2Y2FmNzAyM2JjZDY0N2RhZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR3JhcGguaApA
QCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJET01KSVRQYXRjaHBvaW50LmgiCisjaW5j
bHVkZSAiUHJvcGVydHlTbG90LmgiCisjaW5jbHVkZSAiUHV0UHJvcGVydHlTbG90LmgiCisjaW5j
bHVkZSAiU3BlY3VsYXRlZFR5cGUuaCIKKworI2lmIEVOQUJMRShERkdfSklUKQorI2luY2x1ZGUg
IkRGR1VzZUtpbmQuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJ
VCB7CisKK2NsYXNzIEdyYXBoIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jIEN1c3RvbUdldHRlcjsKKyAgICB0eXBlZGVmIFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jIEN1c3RvbVNldHRlcjsKKworICAgIEdyYXBoKEN1c3RvbUdldHRlciBnZXR0
ZXIsIEN1c3RvbVNldHRlciBzZXR0ZXIpCisgICAgICAgIDogbV9nZXR0ZXIoZ2V0dGVyKQorICAg
ICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+R3Jh
cGgoKSB7IH0KKworICAgIEN1c3RvbUdldHRlciBnZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX2dl
dHRlcjsgfQorICAgIEN1c3RvbVNldHRlciBzZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX3NldHRl
cjsgfQorCisgICAgdmlydHVhbCBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uKCkgPSAwOworICAg
IHZpcnR1YWwgU3BlY3VsYXRlZFR5cGUgcmVzdWx0VHlwZSgpID0gMDsKKworI2lmIEVOQUJMRShE
RkdfSklUKQorICAgIHZpcnR1YWwgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gY2FsbERPTSgpID0g
MDsKKyAgICB2aXJ0dWFsIFJlZjxET01KSVQ6OlBhdGNocG9pbnQ+IGNoZWNrRE9NKCkgPSAwOwor
I2VuZGlmCisKK3ByaXZhdGU6CisgICAgQ3VzdG9tR2V0dGVyIG1fZ2V0dGVyOworICAgIEN1c3Rv
bVNldHRlciBtX3NldHRlcjsKK307CisKK30gfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RvbWppdC9ET01KSVRQYXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZG9taml0L0RPTUpJVFBhdGNocG9pbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTk3OTAyODA5MjMzMGViOTM4
NWRkODViMDg3OTNkOTQ5MWZhMjU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RvbWppdC9ET01KSVRQYXRjaHBvaW50LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiRE9NSklUUGF0Y2hwb2ludFBhcmFt
cy5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyU2V0LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgRE9NSklUIHsKKwordHlwZWRlZiB2b2lkIFBhdGNocG9pbnRHZW5lcmF0b3JGdW5jdGlvbihD
Q2FsbEhlbHBlcnMmLCBjb25zdCBQYXRjaHBvaW50UGFyYW1zJik7Cit0eXBlZGVmIFNoYXJlZFRh
c2s8UGF0Y2hwb2ludEdlbmVyYXRvckZ1bmN0aW9uPiBQYXRjaHBvaW50R2VuZXJhdG9yOworCisv
LyBET01KSVQgcGF0Y2hwb2ludCBpcyB0aGUgd2F5IHRvIGluamVjdCBhbiBvcGFxdWUgY29kZSBn
ZW5lcmF0b3IgaW50byBERkcgYW5kIEZUTC4KK2NsYXNzIFBhdGNocG9pbnQgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8UGF0Y2hwb2ludD4geworcHVibGljOgorICAgIFBhdGNocG9pbnQo
KQorICAgIHsKKyAgICB9CisKKyAgICBzdGF0aWMgUmVmPFBhdGNocG9pbnQ+IGNyZWF0ZSgpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXRjaHBvaW50KCkpOworICAgIH0K
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCBzZXRHZW5lcmF0b3Io
Y29uc3QgRnVuY3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIG1fZ2VuZXJhdG9yID0gY3Jl
YXRlU2hhcmVkVGFzazxQYXRjaHBvaW50R2VuZXJhdG9yRnVuY3Rpb24+KGZ1bmN0b3IpOworICAg
IH0KKworICAgIFJlZlB0cjxQYXRjaHBvaW50R2VuZXJhdG9yPiBnZW5lcmF0b3IoKSBjb25zdCB7
IHJldHVybiBtX2dlbmVyYXRvcjsgfQorCisgICAgdWludDhfdCBudW1HUFNjcmF0Y2hSZWdpc3Rl
cnMgeyAwIH07CisgICAgdWludDhfdCBudW1GUFNjcmF0Y2hSZWdpc3RlcnMgeyAwIH07CisKK3By
aXZhdGU6CisgICAgUmVmUHRyPFBhdGNocG9pbnRHZW5lcmF0b3I+IG1fZ2VuZXJhdG9yOworfTsK
KworfSB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVFBh
dGNocG9pbnRQYXJhbXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUUGF0
Y2hwb2ludFBhcmFtcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNjM1NGZiOGU0ZGI3OThmMDliOGM2ZTJkYjlj
YWEwMTliYTUxMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9t
aml0L0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJSZWdpc3RlclNldC5oIgorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJVCB7CisKK2NsYXNzIFBhdGNocG9pbnRQYXJhbXMgewor
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGF0Y2hwb2ludFBhcmFtcyk7CitwdWJsaWM6CisgICAgdW5z
aWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVncy5zaXplKCk7IH0KKyAgICBjb25zdCBS
ZWcmIGF0KHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3JlZ3NbaW5kZXhdOyB9Cisg
ICAgY29uc3QgUmVnJiBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBh
dChpbmRleCk7IH0KKworICAgIEdQUlJlZyBncFNjcmF0Y2godW5zaWduZWQgaW5kZXgpIGNvbnN0
IHsgcmV0dXJuIG1fZ3BTY3JhdGNoW2luZGV4XTsgfQorICAgIEZQUlJlZyBmcFNjcmF0Y2godW5z
aWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fZnBTY3JhdGNoW2luZGV4XTsgfQorCisgICAg
UGF0Y2hwb2ludFBhcmFtcyhWZWN0b3I8UmVnPiYmIHJlZ3MsIFZlY3RvcjxHUFJSZWc+JiYgZ3BT
Y3JhdGNoLCBWZWN0b3I8RlBSUmVnPiYmIGZwU2NyYXRjaCkKKyAgICAgICAgOiBtX3JlZ3MoV1RG
TW92ZShyZWdzKSkKKyAgICAgICAgLCBtX2dwU2NyYXRjaChXVEZNb3ZlKGdwU2NyYXRjaCkpCisg
ICAgICAgICwgbV9mcFNjcmF0Y2goV1RGTW92ZShmcFNjcmF0Y2gpKQorICAgIHsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgVmVjdG9yPFJlZz4gbV9yZWdzOworICAgIFZlY3RvcjxHUFJSZWc+IG1f
Z3BTY3JhdGNoOworICAgIFZlY3RvcjxGUFJSZWc+IG1fZnBTY3JhdGNoOworfTsKKworfSB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oCmluZGV4IDcxOWY1MmMzZmUzZDljNTg4MWQ3OTgzZDIwMzhiZGQ3MTM0MjVkMDkuLmY1
ZGEzZmFiN2Y1YzA4ZDYxZmMyMmFjNzYyZTBiNjdhODY1NTU0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCkBAIC0x
MTIsNiArMTEyLDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3Jv
KEhhc2hNYXBCdWNrZXRfdmFsdWUsIEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXlW
YWx1ZT46Om9mZnNldE9mVmFsdWUoKSkgXAogICAgIG1hY3JvKEhhc2hNYXBCdWNrZXRfa2V5LCBI
YXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5VmFsdWU+OjpvZmZzZXRPZktleSgpKSBc
CiAgICAgbWFjcm8oU3ltYm9sX3N5bWJvbEltcGwsIFN5bWJvbDo6b2Zmc2V0T2ZTeW1ib2xJbXBs
KCkpIFwKKyAgICBtYWNybyhXZWFrSW1wbF9qc1ZhbHVlLCBXZWFrSW1wbDo6b2Zmc2V0T2ZKU1Zh
bHVlKCkpIFwKKyAgICBtYWNybyhXZWFrSW1wbF93ZWFrSGFuZGxlT3duZXIsIFdlYWtJbXBsOjpv
ZmZzZXRPZldlYWtIYW5kbGVPd25lcigpKSBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfSU5ERVhFRF9B
QlNUUkFDVF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2Us
IERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUp
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5k
ZXggYjZlYjJlNWY3MjE5ZGFlNmZlMGMyYTg0YWYwNWU4MjJjYTA2ZDgxZi4uZjZiMWQ1YTFjMGZh
MGY3M2UzNWRhZWE2YWZiZmYxMDZmYWU2NDk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMjYzLDYgKzI2Myw4IEBAIGlubGluZSBDYXBh
YmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgQ29tcGFyZUdyZWF0
ZXI6CiAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgogICAgIGNhc2UgQ29tcGFyZVN0cmljdEVx
OgorICAgIGNhc2UgQ2hlY2tET006CisgICAgY2FzZSBDYWxsRE9NOgogICAgICAgICAvLyBUaGVz
ZSBhcmUgT0suCiAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggMDYzY2M1OTQ0MDYyNDg5NjM3YTljMmJkMzE4Mjkz
NTU3NTY0ZTQyMC4uMmViZDk0NjQ0ODhhYmJjOWE4MDI0YWVkZjI3MDJhNTY0MzQwNDgzZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNDQs
NiArNDQsNyBAQAogI2luY2x1ZGUgIkRGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmgiCiAjaW5jbHVk
ZSAiREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5oIgogI2luY2x1ZGUgIkRGR09TUkV4
aXRGdXp6LmgiCisjaW5jbHVkZSAiRE9NSklUUGF0Y2hwb2ludC5oIgogI2luY2x1ZGUgIkRpcmVj
dEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCIKICNp
bmNsdWRlICJGVExBdmFpbGFibGVSZWNvdmVyeS5oIgpAQCAtMTAzNyw2ICsxMDM4LDEyIEBAIGNs
YXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIGNhc2UgVW5yZWFjaGFibGU6CiAgICAgICAgICAg
ICBjb21waWxlVW5yZWFjaGFibGUoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENoZWNrRE9NOgorICAgICAgICAgICAgY29tcGlsZUNoZWNrRE9NKCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBDYWxsRE9NOgorICAgICAgICAgICAgY29tcGlsZUNhbGxET00o
KTsKKyAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgUGhhbnRvbUxvY2FsOgogICAg
ICAgICBjYXNlIExvb3BIaW50OgpAQCAtODQ1Miw2ICs4NDU5LDg0IEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgICAgIAogICAgICAgICBjcmFzaCgpOwogICAgIH0KKworICAgIHZvaWQgY29t
cGlsZUNoZWNrRE9NKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25v
ZGUtPmNoaWxkMSgpKTsKKworICAgICAgICAvLyBXZSBhc3N1bWUgdGhhdCBDaGVja0RPTSBxdWVy
eSBvcGVyYXRpb24gaGFzIG5vIGVmZmVjdC4KKworICAgICAgICBSZWZQdHI8RE9NSklUOjpQYXRj
aHBvaW50PiBkb21KSVQgPSBtX25vZGUtPmRvbUpJVCgpLT5jaGVja0RPTSgpOworCisgICAgICAg
IFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQoSW50MzIpOwor
ICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIoY2VsbCk7CisgICAgICAgIHBh
dGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtR1BTY3JhdGNoUmVn
aXN0ZXJzOworICAgICAgICBwYXRjaHBvaW50LT5udW1GUFNjcmF0Y2hSZWdpc3RlcnMgPSBkb21K
SVQtPm51bUZQU2NyYXRjaFJlZ2lzdGVyczsKKyAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJh
dG9yKAorICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8R1BSUmVn
PiBncFNjcmF0Y2g7CisgICAgICAgICAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnBTY3JhdGNoOwor
ICAgICAgICAgICAgICAgIFZlY3RvcjxSZWc+IHJlZ3M7CisKKyAgICAgICAgICAgICAgICAvLyBG
SVhNRTogcGF0Y2hwb2ludCBzaG91bGQgaGF2ZSBhIHdheSB0byB0ZWxsIHRoaXMgY2FuIHJldXNl
ICJiYXNlIiByZWdpc3Rlci4KKyAgICAgICAgICAgICAgICAvLyBUZWFjaGluZyBERkcgYWJvdXQg
RE9NSklUOjpQYXRjaHBvaW50IGNsb2JiZXIgaW5mb3JtYXRpb24gaXMgbmljZS4KKyAgICAgICAg
ICAgICAgICByZWdzLmFwcGVuZChwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgICAgIHJl
Z3MuYXBwZW5kKHBhcmFtc1sxXS5ncHIoKSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7ICsraSkKKyAgICAg
ICAgICAgICAgICAgICAgZ3BTY3JhdGNoLmFwcGVuZChwYXJhbXMuZ3BTY3JhdGNoKGkpKTsKKwor
ICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkb21KSVQtPm51bUdQU2Ny
YXRjaFJlZ2lzdGVyczsgKytpKQorICAgICAgICAgICAgICAgICAgICBmcFNjcmF0Y2guYXBwZW5k
KHBhcmFtcy5mcFNjcmF0Y2goaSkpOworCisgICAgICAgICAgICAgICAgRE9NSklUOjpQYXRjaHBv
aW50UGFyYW1zIGRvbUpJVFBhcmFtcyhXVEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCks
IFdURk1vdmUoZnBTY3JhdGNoKSk7CisgICAgICAgICAgICAgICAgZG9tSklULT5nZW5lcmF0b3Io
KS0+cnVuKGppdCwgZG9tSklUUGFyYW1zKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBwYXRj
aHBvaW50LT5lZmZlY3RzID0gRWZmZWN0czo6bm9uZSgpOworICAgICAgICBzcGVjdWxhdGUoCisg
ICAgICAgICAgICBCYWRUeXBlLCBqc1ZhbHVlVmFsdWUoY2VsbCksIG1fbm9kZS0+Y2hpbGQxKCku
bm9kZSgpLAorICAgICAgICAgICAgbV9vdXQuaXNaZXJvMzIocGF0Y2hwb2ludCkpOworICAgIH0K
KworICAgIHZvaWQgY29tcGlsZUNhbGxET00oKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGdsb2Jh
bE9iamVjdCA9IGxvd0NlbGwobV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDApKTsKKyAgICAg
ICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSk7
CisKKyAgICAgICAgUmVmUHRyPERPTUpJVDo6UGF0Y2hwb2ludD4gZG9tSklUID0gbV9ub2RlLT5k
b21KSVQoKS0+Y2hlY2tET00oKTsKKyAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50
ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNv
bWVSZWdpc3RlcihnbG9iYWxPYmplY3QpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21l
UmVnaXN0ZXIoY2VsbCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ01hc2ssIFZh
bHVlUmVwOjpsYXRlUmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgICAgICBwYXRj
aHBvaW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZv
Ojp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlcihS
ZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkpOworICAgICAgICBwYXRjaHBvaW50
LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSBkb21KSVQtPm51bUdQU2NyYXRjaFJlZ2lzdGVyczsK
KyAgICAgICAgcGF0Y2hwb2ludC0+bnVtRlBTY3JhdGNoUmVnaXN0ZXJzID0gZG9tSklULT5udW1G
UFNjcmF0Y2hSZWdpc3RlcnM7CisgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKKyAg
ICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlv
blBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgVmVjdG9yPEdQUlJlZz4gZ3BTY3Jh
dGNoOworICAgICAgICAgICAgICAgIFZlY3RvcjxGUFJSZWc+IGZwU2NyYXRjaDsKKyAgICAgICAg
ICAgICAgICBWZWN0b3I8UmVnPiByZWdzOworCisgICAgICAgICAgICAgICAgLy8gRklYTUU6IHBh
dGNocG9pbnQgc2hvdWxkIGhhdmUgYSB3YXkgdG8gdGVsbCB0aGlzIGNhbiByZXVzZSAiYmFzZSIg
cmVnaXN0ZXIuCisgICAgICAgICAgICAgICAgLy8gVGVhY2hpbmcgREZHIGFib3V0IERPTUpJVDo6
UGF0Y2hwb2ludCBjbG9iYmVyIGluZm9ybWF0aW9uIGlzIG5pY2UuCisgICAgICAgICAgICAgICAg
cmVncy5hcHBlbmQocGFyYW1zWzBdLmdwcigpKTsKKyAgICAgICAgICAgICAgICByZWdzLmFwcGVu
ZChwYXJhbXNbMV0uZ3ByKCkpOworICAgICAgICAgICAgICAgIHJlZ3MuYXBwZW5kKHBhcmFtc1sy
XS5ncHIoKSk7CisgICAgICAgICAgICAgICAgcmVncy5hcHBlbmQocGFyYW1zWzNdLmdwcigpKTsK
KworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkb21KSVQtPm51bUdQ
U2NyYXRjaFJlZ2lzdGVyczsgKytpKQorICAgICAgICAgICAgICAgICAgICBncFNjcmF0Y2guYXBw
ZW5kKHBhcmFtcy5ncFNjcmF0Y2goaSkpOworCisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGRvbUpJVC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzOyArK2kpCisgICAgICAg
ICAgICAgICAgICAgIGZwU2NyYXRjaC5hcHBlbmQocGFyYW1zLmZwU2NyYXRjaChpKSk7CisKKyAg
ICAgICAgICAgICAgICBET01KSVQ6OlBhdGNocG9pbnRQYXJhbXMgZG9tSklUUGFyYW1zKFdURk1v
dmUocmVncyksIFdURk1vdmUoZ3BTY3JhdGNoKSwgV1RGTW92ZShmcFNjcmF0Y2gpKTsKKyAgICAg
ICAgICAgICAgICBkb21KSVQtPmdlbmVyYXRvcigpLT5ydW4oaml0LCBkb21KSVRQYXJhbXMpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMgPSBFZmZlY3RzOjpm
b3JDYWxsKCk7CisgICAgICAgIHNldEpTVmFsdWUocGF0Y2hwb2ludCk7CisgICAgfQogICAgIAog
ICAgIHZvaWQgY29tcGFyZUVxT2JqZWN0T3JPdGhlclRvT2JqZWN0KEVkZ2UgbGVmdENoaWxkLCBF
ZGdlIHJpZ2h0Q2hpbGQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvV2Vha0ltcGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJbXBsLmgK
aW5kZXggZDgxN2I3MjhiNjZmOWUxM2NjZDA4OTBkNDE2ZTI3MWYyNjcyN2Y3Ny4uM2UzMDQ2OGQz
OGJlMmZjMjNmMGQ5ZTQ5MWFiNzhjOTM4ZWYwNmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvV2Vha0ltcGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9XZWFrSW1wbC5oCkBAIC01Niw2ICs1NiwxNiBAQCBjbGFzcyBXZWFrSW1wbCB7CiAKICAgICBz
dGF0aWMgV2Vha0ltcGwqIGFzV2Vha0ltcGwoSlNWYWx1ZSopOwogCisgICAgc3RhdGljIHB0cmRp
ZmZfdCBvZmZzZXRPZkpTVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihXZWFrSW1wbCwgbV9qc1ZhbHVlKTsKKyAgICB9CisKKyAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mV2Vha0hhbmRsZU93bmVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBPQkpFQ1Rf
T0ZGU0VUT0YoV2Vha0ltcGwsIG1fd2Vha0hhbmRsZU93bmVyKTsKKyAgICB9CisKIHByaXZhdGU6
CiAgICAgY29uc3QgSlNWYWx1ZSBtX2pzVmFsdWU7CiAgICAgV2Vha0hhbmRsZU93bmVyKiBtX3dl
YWtIYW5kbGVPd25lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVw
YXRjaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCmluZGV4IGQ0
NTkzOWM1OTU5YTgwN2Q0NTA1Yjk0ZWEzY2VhMTU1ZmZmNWM0YjguLjVlMGQxMTIwY2E1ZDQ0Mjc0
NzczZDkxYzlmNmY4OWM3ZjAzNTNmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNo
LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkNhbGxGcmFtZVNodWZmbGVyLmgiCiAj
aW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgi
CisjaW5jbHVkZSAiRE9NSklUR3JhcGguaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMuaCIK
ICNpbmNsdWRlICJGVExUaHVua3MuaCIKICNpbmNsdWRlICJHQ0F3YXJlSklUU3R1YlJvdXRpbmUu
aCIKQEAgLTI2MCw2ICsyNjEsMTAgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hl
R2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb24KICAgICAgICAg
aWYgKHNsb3QuaXNDYWNoZWFibGVHZXR0ZXIoKSkKICAgICAgICAgICAgIGdldHRlciA9IGpzRHlu
YW1pY0Nhc3Q8SlNGdW5jdGlvbio+KHNsb3QuZ2V0dGVyU2V0dGVyKCktPmdldHRlcigpKTsKIAor
ICAgICAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQgPSBudWxscHRyOworICAgICAgICBpZiAoc2xv
dC5pc0NhY2hlYWJsZUN1c3RvbSgpICYmIHNsb3QuZG9tSklUKCkpCisgICAgICAgICAgICBkb21K
SVQgPSBzbG90LmRvbUpJVCgpOworCiAgICAgICAgIGlmIChraW5kID09IEdldEJ5SURLaW5kOjpQ
dXJlKSB7CiAgICAgICAgICAgICBBY2Nlc3NDYXNlOjpBY2Nlc3NUeXBlIHR5cGU7CiAgICAgICAg
ICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZVZhbHVlKCkpCkBAIC0yOTAsNyArMjk1LDggQEAgc3Rh
dGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgYmFzZVZhbHVlLCBjb24KICAgICAgICAgICAgIG5ld0Nhc2UgPSBBY2Nlc3NDYXNlOjpn
ZXQoCiAgICAgICAgICAgICAgICAgdm0sIGNvZGVCbG9jaywgdHlwZSwgb2Zmc2V0LCBzdHJ1Y3R1
cmUsIGNvbmRpdGlvblNldCwgbG9hZFRhcmdldEZyb21Qcm94eSwKICAgICAgICAgICAgICAgICBz
bG90LndhdGNocG9pbnRTZXQoKSwgc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpID8gc2xvdC5jdXN0
b21HZXR0ZXIoKSA6IG51bGxwdHIsCi0gICAgICAgICAgICAgICAgc2xvdC5pc0NhY2hlYWJsZUN1
c3RvbSgpID8gc2xvdC5zbG90QmFzZSgpIDogbnVsbHB0cik7CisgICAgICAgICAgICAgICAgc2xv
dC5pc0NhY2hlYWJsZUN1c3RvbSgpID8gc2xvdC5zbG90QmFzZSgpIDogbnVsbHB0ciwKKyAgICAg
ICAgICAgICAgICBkb21KSVQpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CmluZGV4IGYxNTAwMGIzODIzMTIxYzczNmIyNmJkNzdhNDg4MjQ3OWE1YmRjN2UuLjI1OTMzMDFh
MzhiNjkzMGVmNzJkOThkOTVjM2M1Yjg1MDFjMGM4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBA
IC0yOCw2ICsyOCw4IEBACiAjaW5jbHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUg
IkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkNvbXBsZXRpb24uaCIKKyNpbmNsdWRlICJET01KSVRH
cmFwaC5oIgorI2luY2x1ZGUgIkRPTUpJVFBhdGNocG9pbnQuaCIKICNpbmNsdWRlICJEaXNhc3Nl
bWJsZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb24uaCIKICNpbmNsdWRlICJFeGNlcHRpb25IZWxw
ZXJzLmgiCkBAIC03Miw2ICs3NCw3IEBACiAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CiAjaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJl
YW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTUzNywxMiAr
NTQwLDEwNyBAQCBjbGFzcyBTaW1wbGVPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7
CiAgICAgV3JpdGVCYXJyaWVyPEpTQzo6VW5rbm93bj4gbV9oaWRkZW5WYWx1ZTsKIH07CiAKK2Ns
YXNzIERPTUpJVEdldHRlciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAg
ICBET01KSVRHZXR0ZXIoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICAgICAgOiBC
YXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgeworICAgIH0KKworICAgIERFQ0xBUkVfSU5GTzsKKyAg
ICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKworICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSlNDOjpKU1R5
cGUoTGFzdEpTQ09iamVjdFR5cGUgKyAxKSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAg
IH0KKworICAgIHN0YXRpYyBET01KSVRHZXR0ZXIqIGNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQorICAgIHsKKyAgICAgICAgRE9NSklUR2V0dGVyKiBnZXR0ZXIgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxET01KSVRHZXR0ZXI+KHZtLmhlYXAsIHNpemVvZihET01KSVRH
ZXR0ZXIpKSkgRE9NSklUR2V0dGVyKHZtLCBzdHJ1Y3R1cmUpOworICAgICAgICBnZXR0ZXItPmZp
bmlzaENyZWF0aW9uKHZtKTsKKyAgICAgICAgcmV0dXJuIGdldHRlcjsKKyAgICB9CisKKyAgICBj
bGFzcyBET01KSVRHZXR0ZXJET01KSVQgOiBwdWJsaWMgRE9NSklUOjpHcmFwaCB7CisgICAgcHVi
bGljOgorICAgICAgICBET01KSVRHZXR0ZXJET01KSVQoKQorICAgICAgICAgICAgOiBET01KSVQ6
OkdyYXBoKERPTUpJVEdldHRlcjo6Y3VzdG9tR2V0dGVyLCBudWxscHRyKQorICAgICAgICB7Cisg
ICAgICAgIH0KKworICAgICAgICBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uKCkgb3ZlcnJpZGUK
KyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIFNwZWNJbnQzMk9ubHk7CisgICAgICAgIH0K
KworICAgICAgICBTcGVjdWxhdGVkVHlwZSByZXN1bHRUeXBlKCkgb3ZlcnJpZGUKKyAgICAgICAg
eworICAgICAgICAgICAgcmV0dXJuIFNwZWNCeXRlY29kZU51bWJlcjsKKyAgICAgICAgfQorCisg
ICAgICAgIFJlZjxET01KSVQ6OlBhdGNocG9pbnQ+IGNhbGxET00oKSBvdmVycmlkZQorICAgICAg
ICB7CisgICAgICAgICAgICBSZWY8RE9NSklUOjpQYXRjaHBvaW50PiBwYXRjaHBvaW50ID0gRE9N
SklUOjpQYXRjaHBvaW50OjpjcmVhdGUoKTsKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPnNldEdl
bmVyYXRvcihbPV0oQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IERPTUpJVDo6UGF0Y2hwb2ludFBh
cmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MocGFyYW1zWzJdLmdwcigpLCBET01KSVRHZXR0ZXI6Om9mZnNldE9mVmFsdWUoKSks
IHBhcmFtc1swXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgaml0Lm9yNjQoR1BSSW5mbzo6dGFn
VHlwZU51bWJlclJlZ2lzdGVyLCBwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICByZXR1cm4gcGF0Y2hwb2ludDsKKyAgICAgICAgfQorCisgICAgICAgIFJlZjxE
T01KSVQ6OlBhdGNocG9pbnQ+IGNoZWNrRE9NKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAg
ICAgICAgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gcGF0Y2hwb2ludCA9IERPTUpJVDo6UGF0Y2hw
b2ludDo6Y3JlYXRlKCk7CisgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoWz1d
KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBET01KSVQ6OlBhdGNocG9pbnRQYXJhbXMmIHBhcmFt
cykgeworICAgICAgICAgICAgICAgIGppdC5jb21wYXJlOCgKKyAgICAgICAgICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpFcXVhbCwKKyAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHBhcmFtc1sxXS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksCisg
ICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTQzo6SlNUeXBl
KExhc3RKU0NPYmplY3RUeXBlICsgMSkpLCBwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICByZXR1cm4gcGF0Y2hwb2ludDsKKyAgICAgICAgfQorICAgIH07CisK
KyAgICBzdGF0aWMgRE9NSklUOjpHcmFwaCogZG9tSklUR2V0dGVyR3JhcGgoKQorICAgIHsKKyAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERPTUpJVEdldHRlckRPTUpJVD4gZ3JhcGg7Cisg
ICAgICAgIHJldHVybiAmZ3JhcGguZ2V0KCk7CisgICAgfQorCisgICAgc3RhdGljIHB0cmRpZmZf
dCBvZmZzZXRPZlZhbHVlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKERPTUpJVEdldHRlciwg
bV92YWx1ZSk7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSkK
KyAgICB7CisgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICAgICAgRE9NSklU
OjpHcmFwaCogZG9tSklUID0gZG9tSklUR2V0dGVyR3JhcGgoKTsKKyAgICAgICAgQ3VzdG9tR2V0
dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0
ZSh2bSwgZG9tSklULT5nZXR0ZXIoKSwgZG9tSklULT5zZXR0ZXIoKSwgZG9tSklUKTsKKyAgICAg
ICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCAiY3VzdG9tR2V0dGVyIiksIGN1c3RvbUdldHRlclNldHRlciwgUmVhZE9ubHkgfCBDdXN0b21B
Y2Nlc3Nvcik7CisgICAgfQorCisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGN1c3RvbUdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorICAgIHsKKyAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgICAgIERPTUpJVEdldHRlciogdGhp
c09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUR2V0dGVyKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOworICAgICAgICBpZiAoIXRoaXNPYmplY3QpCisgICAgICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+bV92YWx1ZSkpOworICAgIH0KKworICAgIGludDMy
X3QgbV92YWx1ZSB7IDQyIH07Cit9OworCiAKIGNvbnN0IENsYXNzSW5mbyBFbGVtZW50OjpzX2lu
Zm8gPSB7ICJFbGVtZW50IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShF
bGVtZW50KSB9OwogY29uc3QgQ2xhc3NJbmZvIE1hc3F1ZXJhZGVyOjpzX2luZm8gPSB7ICJNYXNx
dWVyYWRlciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoTWFzcXVlcmFk
ZXIpIH07CiBjb25zdCBDbGFzc0luZm8gUm9vdDo6c19pbmZvID0geyAiUm9vdCIsICZCYXNlOjpz
X2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoUm9vdCkgfTsKIGNvbnN0IENsYXNzSW5mbyBJ
bXB1cmVHZXR0ZXI6OnNfaW5mbyA9IHsgIkltcHVyZUdldHRlciIsICZCYXNlOjpzX2luZm8sIDAs
IENSRUFURV9NRVRIT0RfVEFCTEUoSW1wdXJlR2V0dGVyKSB9OwogY29uc3QgQ2xhc3NJbmZvIEN1
c3RvbUdldHRlcjo6c19pbmZvID0geyAiQ3VzdG9tR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgMCwg
Q1JFQVRFX01FVEhPRF9UQUJMRShDdXN0b21HZXR0ZXIpIH07Citjb25zdCBDbGFzc0luZm8gRE9N
SklUR2V0dGVyOjpzX2luZm8gPSB7ICJET01KSVRHZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCAwLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKERPTUpJVEdldHRlcikgfTsKIGNvbnN0IENsYXNzSW5mbyBSdW50
aW1lQXJyYXk6OnNfaW5mbyA9IHsgIlJ1bnRpbWVBcnJheSIsICZCYXNlOjpzX2luZm8sIDAsIENS
RUFURV9NRVRIT0RfVEFCTEUoUnVudGltZUFycmF5KSB9OwogY29uc3QgQ2xhc3NJbmZvIFNpbXBs
ZU9iamVjdDo6c19pbmZvID0geyAiU2ltcGxlT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JF
QVRFX01FVEhPRF9UQUJMRShTaW1wbGVPYmplY3QpIH07CiBzdGF0aWMgYm9vbCB0ZXN0MjYyQXN5
bmNQYXNzZWQgeyBmYWxzZSB9OwpAQCAtNTcxLDYgKzY2OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlUHJveHkoRXhlY1N0YXRlKik7CiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVJ1bnRpbWVBcnJh
eShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uQ3JlYXRlSW1wdXJlR2V0dGVyKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QoRXhlY1N0YXRl
Kik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURP
TUpJVEdldHRlck9iamVjdChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbihFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0KEV4ZWNT
dGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRJ
bXB1cmVHZXR0ZXJEZWxlZ2F0ZShFeGVjU3RhdGUqKTsKQEAgLTg1NSw2ICs5NTQsNyBAQCBjbGFz
cyBHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNHbG9iYWxPYmplY3QgewogCiAgICAgICAgIGFkZEZ1
bmN0aW9uKHZtLCAiY3JlYXRlSW1wdXJlR2V0dGVyIiwgZnVuY3Rpb25DcmVhdGVJbXB1cmVHZXR0
ZXIsIDEpOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUN1c3RvbUdldHRlck9iamVj
dCIsIGZ1bmN0aW9uQ3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0LCAwKTsKKyAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJjcmVhdGVET01KSVRHZXR0ZXJPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURPTUpJ
VEdldHRlck9iamVjdCwgMCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQnVpbHRp
biIsIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbiwgMik7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Y3JlYXRlR2xvYmFsT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QsIDApOwogICAg
ICAgICBhZGRGdW5jdGlvbih2bSwgInNldEltcHVyZUdldHRlckRlbGVnYXRlIiwgZnVuY3Rpb25T
ZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZSwgMik7CkBAIC0xMzU5LDYgKzE0NTksMTQgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUN1c3RvbUdldHRlck9iamVjdChF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQog
CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVy
T2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsK
KyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IERPTUpJVEdldHRlcjo6Y3JlYXRlU3RydWN0dXJl
KGV4ZWMtPnZtKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwganNOdWxsKCkpOworICAg
IERPTUpJVEdldHRlciogcmVzdWx0ID0gRE9NSklUR2V0dGVyOjpjcmVhdGUoZXhlYy0+dm0oKSwg
c3RydWN0dXJlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0
ZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCmlu
ZGV4IGQ3MDJkZGY0ZGEwNTc2OTA1Zjc5Y2VhZDYwYjZhMjNjZGI5YzM2NjYuLjFlYWQ0MDI3ZTlm
ODZjODUxODVlZTNlMzA1YjY5YmU3NDEzY2RlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCkBAIC0zMSw2ICszMSw5IEBACiAj
aW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJ
VCB7CitjbGFzcyBHcmFwaDsKK30KIAogY2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFsIDog
cHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6CkBAIC00MCwxNSArNDMsMTYgQEAgY2xhc3MgQ3VzdG9t
R2V0dGVyU2V0dGVyIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgdHlwZWRlZiBQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYyBDdXN0b21HZXR0ZXI7CiAgICAgdHlwZWRlZiBQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYyBDdXN0b21TZXR0ZXI7CiAKLSAgICBzdGF0aWMgQ3VzdG9tR2V0
dGVyU2V0dGVyKiBjcmVhdGUoVk0mIHZtLCBDdXN0b21HZXR0ZXIgY3VzdG9tR2V0dGVyLCBDdXN0
b21TZXR0ZXIgY3VzdG9tU2V0dGVyKQorICAgIHN0YXRpYyBDdXN0b21HZXR0ZXJTZXR0ZXIqIGNy
ZWF0ZShWTSYgdm0sIEN1c3RvbUdldHRlciBjdXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlciBjdXN0
b21TZXR0ZXIsIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IG51bGxwdHIpCiAgICAgewotICAgICAg
ICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IG5ldyAoTm90TnVsbCwg
YWxsb2NhdGVDZWxsPEN1c3RvbUdldHRlclNldHRlcj4odm0uaGVhcCkpIEN1c3RvbUdldHRlclNl
dHRlcih2bSwgY3VzdG9tR2V0dGVyLCBjdXN0b21TZXR0ZXIpOworICAgICAgICBDdXN0b21HZXR0
ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxs
PEN1c3RvbUdldHRlclNldHRlcj4odm0uaGVhcCkpIEN1c3RvbUdldHRlclNldHRlcih2bSwgY3Vz
dG9tR2V0dGVyLCBjdXN0b21TZXR0ZXIsIGRvbUpJVCk7CiAgICAgICAgIGN1c3RvbUdldHRlclNl
dHRlci0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAgICByZXR1cm4gY3VzdG9tR2V0dGVyU2V0
dGVyOwogICAgIH0KIAogICAgIEN1c3RvbUdldHRlclNldHRlcjo6Q3VzdG9tR2V0dGVyIGdldHRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fZ2V0dGVyOyB9CiAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyOjpD
dXN0b21TZXR0ZXIgc2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0ZXI7IH0KKyAgICBET01K
SVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdCB7IHJldHVybiBtX2RvbUpJVDsgfQogCiAgICAgc3Rh
dGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtNTgsMTUgKzYyLDE3IEBA
IGNsYXNzIEN1c3RvbUdldHRlclNldHRlciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIERF
Q0xBUkVfRVhQT1JUX0lORk87CiAKIHByaXZhdGU6Ci0gICAgQ3VzdG9tR2V0dGVyU2V0dGVyKFZN
JiB2bSwgQ3VzdG9tR2V0dGVyIGdldHRlciwgQ3VzdG9tU2V0dGVyIHNldHRlcikKKyAgICBDdXN0
b21HZXR0ZXJTZXR0ZXIoVk0mIHZtLCBDdXN0b21HZXR0ZXIgZ2V0dGVyLCBDdXN0b21TZXR0ZXIg
c2V0dGVyLCBET01KSVQ6OkdyYXBoKiBkb21KSVQpCiAgICAgICAgIDogSlNDZWxsKHZtLCB2bS5j
dXN0b21HZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgICAgICwgbV9nZXR0ZXIoZ2V0
dGVyKQogICAgICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAgICAgICAgLCBtX2RvbUpJVChkb21K
SVQpCiAgICAgewogICAgIH0KIAogICAgIEN1c3RvbUdldHRlciBtX2dldHRlcjsKICAgICBDdXN0
b21TZXR0ZXIgbV9zZXR0ZXI7CisgICAgRE9NSklUOjpHcmFwaCogbV9kb21KSVQ7CiB9OwogCiBK
U19FWFBPUlRfUFJJVkFURSBib29sIGNhbGxDdXN0b21TZXR0ZXIoRXhlY1N0YXRlKiwgQ3VzdG9t
R2V0dGVyU2V0dGVyOjpDdXN0b21TZXR0ZXIsIGJvb2wgaXNBY2Nlc3NvciwgSlNWYWx1ZSB0aGlz
VmFsdWUsIEpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
aW5kZXggNjk1YmZiNzJlZmQ0Njc2ZmZhYjFiZDVjNjJkZDI2NDU3ODA1ZTg5MC4uYTYwOWE0OGM5
MDg2YzQzYmQ0ZmJlMTVjYjdlZDk5YzczODQ0Zjk1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oCkBAIC0xMjkwLDcgKzEyOTAsNyBAQCBBTFdBWVNfSU5MSU5FIHZv
aWQgSlNPYmplY3Q6OmZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNsb3QoUHJvcGVydHlTbG90JiBz
bG90LCBKUwogCiAgICAgLy8gVGhpcyBhY2Nlc3MgaXMgY2FjaGVhYmxlIGJlY2F1c2UgU3RydWN0
dXJlIHJlcXVpcmVzIGFuIGF0dHJpYnV0ZUNoYW5nZWRUcmFuc2l0aW9uCiAgICAgLy8gaWYgdGhp
cyBwcm9wZXJ0eSBzdG9wcyBiZWluZyBhbiBhY2Nlc3Nvci4KLSAgICBzbG90LnNldENhY2hlYWJs
ZUN1c3RvbSh0aGlzLCBhdHRyaWJ1dGVzLCBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oY3Vz
dG9tR2V0dGVyU2V0dGVyKS0+Z2V0dGVyKCkpOworICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9t
KHRoaXMsIGF0dHJpYnV0ZXMsIGpzQ2FzdDxDdXN0b21HZXR0ZXJTZXR0ZXIqPihjdXN0b21HZXR0
ZXJTZXR0ZXIpLT5nZXR0ZXIoKSwganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+KGN1c3RvbUdl
dHRlclNldHRlciktPmRvbUpJVCgpKTsKIH0KIAogLy8gSXQgbWF5IHNlZW0gY3JhenkgdG8gaW5s
aW5lIGEgZnVuY3Rpb24gdGhpcyBsYXJnZSwgZXNwZWNpYWxseSBhIHZpcnR1YWwgZnVuY3Rpb24s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCmluZGV4IDY5MmQ3Yzc4OWZlZDQ3
YjVhZDc0MGM5YmRhNzJjNjYyNGE2NWE0ZTcuLmQ5NzA0NTZjODk2MDgwYzBiNGY1YWFkM2ViYjQ2
Y2E5NjNhY2JlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xv
b2t1cC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCkBAIC0y
Myw2ICsyMyw3IEBACiAjaW5jbHVkZSAiQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaCIKICNp
bmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDdXN0b21HZXR0ZXJTZXR0ZXIuaCIKKyNp
bmNsdWRlICJET01KSVRHcmFwaC5oIgogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJJZGVudGlmaWVySW5saW5lcy5oIgogI2luY2x1ZGUgIkludHJpbnNpYy5oIgpAQCAtNDYsNiAr
NDcsNyBAQCB0eXBlZGVmIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIEdldEZ1bmN0aW9uOwog
dHlwZWRlZiBQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYyBQdXRGdW5jdGlvbjsKIHR5cGVk
ZWYgRnVuY3Rpb25FeGVjdXRhYmxlKiAoKkJ1aWx0aW5HZW5lcmF0b3IpKFZNJik7CiB0eXBlZGVm
IEpTVmFsdWUgKCpMYXp5UHJvcGVydHlDYWxsYmFjaykoVk0mLCBKU09iamVjdCopOwordHlwZWRl
ZiBET01KSVQ6OkdyYXBoKiAoKkRPTUpJVEdyYXBoR2VuZXJhdG9yKSh2b2lkKTsKIAogLy8gSGFz
aCB0YWJsZSBnZW5lcmF0ZWQgYnkgdGhlIGNyZWF0ZV9oYXNoX3RhYmxlIHNjcmlwdC4KIHN0cnVj
dCBIYXNoVGFibGVWYWx1ZSB7CkBAIC03OCw2ICs4MCw4IEBAIHN0cnVjdCBIYXNoVGFibGVWYWx1
ZSB7CiAgICAgR2V0RnVuY3Rpb24gcHJvcGVydHlHZXR0ZXIoKSBjb25zdCB7IEFTU0VSVCghKG1f
YXR0cmlidXRlcyAmIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6eVByb3BlcnR5T3JD
b25zdGFudCkpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxHZXRGdW5jdGlvbj4obV92YWx1ZXMu
dmFsdWUxKTsgfQogICAgIFB1dEZ1bmN0aW9uIHByb3BlcnR5UHV0dGVyKCkgY29uc3QgeyBBU1NF
UlQoIShtX2F0dHJpYnV0ZXMgJiBCdWlsdGluT3JGdW5jdGlvbk9yQWNjZXNzb3JPckxhenlQcm9w
ZXJ0eU9yQ29uc3RhbnQpKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UHV0RnVuY3Rpb24+KG1f
dmFsdWVzLnZhbHVlMik7IH0KIAorICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCgpIGNvbnN0IHsg
QVNTRVJUKG1fYXR0cmlidXRlcyAmIERPTUpJVEF0dHJpYnV0ZSk7IHJldHVybiByZWludGVycHJl
dF9jYXN0PERPTUpJVEdyYXBoR2VuZXJhdG9yPihtX3ZhbHVlcy52YWx1ZTEpKCk7IH0KKwogICAg
IE5hdGl2ZUZ1bmN0aW9uIGFjY2Vzc29yR2V0dGVyKCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1
dGVzICYgQWNjZXNzb3IpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOYXRpdmVGdW5jdGlvbj4o
bV92YWx1ZXMudmFsdWUxKTsgfQogICAgIE5hdGl2ZUZ1bmN0aW9uIGFjY2Vzc29yU2V0dGVyKCkg
Y29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVzICYgQWNjZXNzb3IpOyByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxOYXRpdmVGdW5jdGlvbj4obV92YWx1ZXMudmFsdWUyKTsgfQogICAgIEJ1aWx0aW5H
ZW5lcmF0b3IgYnVpbHRpbkFjY2Vzc29yR2V0dGVyR2VuZXJhdG9yKCkgY29uc3Q7CkBAIC0yMjQs
NiArMjI4LDEyIEBAIGlubGluZSBib29sIGdldFN0YXRpY1Byb3BlcnR5U2xvdEZyb21UYWJsZShW
TSYgdm0sIGNvbnN0IEhhc2hUYWJsZSYgdGFibGUsIEpTT2JqCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAorICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgRE9NSklUQXR0cmlidXRl
KSB7CisgICAgICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IGVudHJ5LT5kb21KSVQoKTsKKyAg
ICAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgYXR0cmlidXRlc0ZvclN0
cnVjdHVyZShlbnRyeS0+YXR0cmlidXRlcygpKSwgZG9tSklULT5nZXR0ZXIoKSwgZG9tSklUKTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0
b20odGhpc09iamVjdCwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShlbnRyeS0+YXR0cmlidXRlcygp
KSwgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjU5
LDYgKzI2OSw3IEBAIGlubGluZSBib29sIHB1dEVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SGFzaFRhYmxlVmFsdWUqIGVudHJ5LCBKU09iamVjdCogYmFzCiAgICAgICAgIHJldHVybiByZWpl
Y3QoZXhlYywgc2xvdC5pc1N0cmljdE1vZGUoKSwgU3RyaWN0TW9kZVJlYWRvbmx5UHJvcGVydHlX
cml0ZUVycm9yKTsKIAogICAgIGlmICghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBSZWFkT25seSkp
IHsKKyAgICAgICAgQVNTRVJUKCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIERPTUpJVEF0dHJpYnV0
ZSkpOwogICAgICAgICBib29sIGlzQWNjZXNzb3IgPSBlbnRyeS0+YXR0cmlidXRlcygpICYgQ3Vz
dG9tQWNjZXNzb3I7CiAgICAgICAgIEpTVmFsdWUgdXBkYXRlVGhpc1ZhbHVlID0gZW50cnktPmF0
dHJpYnV0ZXMoKSAmIEN1c3RvbUFjY2Vzc29yID8gc2xvdC50aGlzVmFsdWUoKSA6IEpTVmFsdWUo
YmFzZSk7CiAgICAgICAgIGJvb2wgcmVzdWx0ID0gY2FsbEN1c3RvbVNldHRlcihleGVjLCBlbnRy
eS0+cHJvcGVydHlQdXR0ZXIoKSwgaXNBY2Nlc3NvciwgdXBkYXRlVGhpc1ZhbHVlLCB2YWx1ZSk7
CkBAIC0zMzYsNiArMzQ3LDEzIEBAIGlubGluZSB2b2lkIHJlaWZ5U3RhdGljUHJvcGVydHkoVk0m
IHZtLCBjb25zdCBQcm9wZXJ0eU5hbWUmIHByb3BlcnR5TmFtZSwgY29uc3QKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAorICAgIGlmICh2YWx1ZS5hdHRyaWJ1dGVzKCkgJiBET01KSVRBdHRyaWJ1
dGUpIHsKKyAgICAgICAgRE9NSklUOjpHcmFwaCogZG9tSklUID0gdmFsdWUuZG9tSklUKCk7Cisg
ICAgICAgIEN1c3RvbUdldHRlclNldHRlciogY3VzdG9tR2V0dGVyU2V0dGVyID0gQ3VzdG9tR2V0
dGVyU2V0dGVyOjpjcmVhdGUodm0sIGRvbUpJVC0+Z2V0dGVyKCksIGRvbUpJVC0+c2V0dGVyKCks
IGRvbUpJVCk7CisgICAgICAgIHRoaXNPYmoucHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHBy
b3BlcnR5TmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHZh
bHVlLmF0dHJpYnV0ZXMoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQ3VzdG9t
R2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNy
ZWF0ZSh2bSwgdmFsdWUucHJvcGVydHlHZXR0ZXIoKSwgdmFsdWUucHJvcGVydHlQdXR0ZXIoKSk7
CiAgICAgdGhpc09iai5wdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgcHJvcGVydHlOYW1lLCBj
dXN0b21HZXR0ZXJTZXR0ZXIsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmlidXRl
cygpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eVNsb3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5o
CmluZGV4IGUxMzdkODQ1ZDVmYzMxMzg4NjVkMTc2YTIyYTdlM2JkNTE3Y2ViMTMuLjM0NGMxNDhm
OTkzZDk1NTY5ZjdkYzk3ZGYyNjQ3MmU3YmZhZTdmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCkBAIC0yNiw3ICsyNiw5IEBACiAjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIEpTQyB7Ci0KK25hbWVzcGFjZSBET01KSVQg
eworY2xhc3MgR3JhcGg7Cit9CiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBHZXR0ZXJTZXR0ZXI7
CiBjbGFzcyBKU09iamVjdDsKQEAgLTQ4LDYgKzUwLDcgQEAgZW51bSBBdHRyaWJ1dGUgewogICAg
IENlbGxQcm9wZXJ0eSAgICAgID0gMSA8PCAxMSwgLy8gcHJvcGVydHkgaXMgYSBsYXp5IHByb3Bl
cnR5IC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQ2xhc3NTdHJ1Y3R1cmUg
ICAgPSAxIDw8IDEyLCAvLyBwcm9wZXJ0eSBpcyBhIGxhenkgY2xhc3Mgc3RydWN0dXJlIC0gb25s
eSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgUHJvcGVydHlDYWxsYmFjayAgPSAxIDw8
IDEzLCAvLyBwcm9wZXJ0eSB0aGF0IGlzIGEgbGF6eSBwcm9wZXJ0eSBjYWxsYmFjayAtIG9ubHkg
dXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcworICAgIERPTUpJVEF0dHJpYnV0ZSAgID0gMSA8PCAx
NCwgLy8gcHJvcGVydHkgaXMgYSBET00gSklUIGF0dHJpYnV0ZSAtIG9ubHkgdXNlZCBieSBzdGF0
aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uID0gQnVpbHRpbiB8IEZ1bmN0aW9u
LCAvLyBoZWxwZXIgb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRpbk9y
RnVuY3Rpb25PckxhenlQcm9wZXJ0eSA9IEJ1aWx0aW4gfCBGdW5jdGlvbiB8IENlbGxQcm9wZXJ0
eSB8IENsYXNzU3RydWN0dXJlIHwgUHJvcGVydHlDYWxsYmFjaywgLy8gaGVscGVyIG9ubHkgdXNl
ZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9y
TGF6eVByb3BlcnR5ID0gQnVpbHRpbiB8IEZ1bmN0aW9uIHwgQWNjZXNzb3IgfCBDZWxsUHJvcGVy
dHkgfCBDbGFzc1N0cnVjdHVyZSB8IFByb3BlcnR5Q2FsbGJhY2ssIC8vIGhlbHBlciBvbmx5IHVz
ZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKQEAgLTE1Nyw2ICsxNjAsMTEgQEAgY2xhc3MgUHJvcGVy
dHlTbG90IHsKICAgICAgICAgcmV0dXJuIG1fd2F0Y2hwb2ludFNldDsKICAgICB9CiAKKyAgICBE
T01KSVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZG9t
SklUOworICAgIH0KKwogICAgIHZvaWQgc2V0VmFsdWUoSlNPYmplY3QqIHNsb3RCYXNlLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzLCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGF0
dHJpYnV0ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CkBAIC0yMTEs
NyArMjE5LDcgQEAgY2xhc3MgUHJvcGVydHlTbG90IHsKICAgICAgICAgbV9vZmZzZXQgPSBpbnZh
bGlkT2Zmc2V0OwogICAgIH0KICAgICAKLSAgICB2b2lkIHNldENhY2hlYWJsZUN1c3RvbShKU09i
amVjdCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEdldFZhbHVlRnVuYyBnZXRWYWx1
ZSkKKyAgICB2b2lkIHNldENhY2hlYWJsZUN1c3RvbShKU09iamVjdCogc2xvdEJhc2UsIHVuc2ln
bmVkIGF0dHJpYnV0ZXMsIEdldFZhbHVlRnVuYyBnZXRWYWx1ZSwgRE9NSklUOjpHcmFwaCogZG9t
SklUID0gbnVsbHB0cikKICAgICB7CiAgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJp
YnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykpOwogICAgICAgICAKQEAgLTIyMyw2ICsyMzEs
NyBAQCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogICAgICAgICBtX3Nsb3RCYXNlID0gc2xvdEJhc2U7
CiAgICAgICAgIG1fcHJvcGVydHlUeXBlID0gVHlwZUN1c3RvbTsKICAgICAgICAgbV9vZmZzZXQg
PSAhaW52YWxpZE9mZnNldDsKKyAgICAgICAgbV9kb21KSVQgPSBkb21KSVQ7CiAgICAgfQogCiAg
ICAgdm9pZCBzZXRDdXN0b21HZXR0ZXJTZXR0ZXIoSlNPYmplY3QqIHNsb3RCYXNlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzLCBDdXN0b21HZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlcikKQEAgLTMxOCw2
ICszMjcsNyBAQCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogICAgIENhY2hlYWJpbGl0eVR5cGUgbV9j
YWNoZWFiaWxpdHk7CiAgICAgUHJvcGVydHlUeXBlIG1fcHJvcGVydHlUeXBlOwogICAgIEludGVy
bmFsTWV0aG9kVHlwZSBtX2ludGVybmFsTWV0aG9kVHlwZTsKKyAgICBET01KSVQ6OkdyYXBoKiBt
X2RvbUpJVCB7IG51bGxwdHIgfTsKICAgICBib29sIG1faXNUYWludGVkQnlPcGFxdWVPYmplY3Q7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaCBiL1NvdXJj
ZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCmluZGV4IGJhMDQ5ZmE4N2RmYTFjOWUzZmE1OGViNGIw
ZDMyM2NmZDY5NmI1MjEuLjVmMzg4ZWI0ZjBmMjU0NzY3MjI5Zjk1YjM5NmExNWQ3ZjZmMDMxODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1N0ZExpYkV4dHJhcy5oCkBAIC02OCw2ICs2OCw4IEBACiAvLyBOVUxMIGNhbiBjYXVz
ZSBjb21waWxlciBwcm9ibGVtcywgZXNwZWNpYWxseSBpbiBjYXNlcyBvZiBtdWx0aXBsZSBpbmhl
cml0YW5jZS4KICNkZWZpbmUgT0JKRUNUX09GRlNFVE9GKGNsYXNzLCBmaWVsZCkgKHJlaW50ZXJw
cmV0X2Nhc3Q8cHRyZGlmZl90PigmKHJlaW50ZXJwcmV0X2Nhc3Q8Y2xhc3MqPigweDQwMDApLT5m
aWVsZCkpIC0gMHg0MDAwKQogCisjZGVmaW5lIENBU1RfT0ZGU0VUKGZyb20sIHRvKSAocmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KHN0YXRpY19jYXN0PHRvPigocmVpbnRlcnByZXRfY2FzdDxm
cm9tPigweDQwMDApKSkpIC0gMHg0MDAwKQorCiAvLyBTVFJJTkdJWkU6IENhbiBjb252ZXJ0IGFu
eSB2YWx1ZSB0byBxdW90ZWQgc3RyaW5nLCBldmVuIGV4cGFuZGFibGUgbWFjcm9zCiAjZGVmaW5l
IFNUUklOR0laRShleHApICNleHAKICNkZWZpbmUgU1RSSU5HSVpFX1ZBTFVFX09GKGV4cCkgU1RS
SU5HSVpFKGV4cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L2RvbWppdC9ET01KSVRHcmFwaC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMv
ZG9taml0L0RPTUpJVEdyYXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ4MDNjN2Y4YmY1NDQ2Y2Q0YmU1YzM4
NGNkYjRjNTFiMzI2MTdjMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Zvcndh
cmRpbmdIZWFkZXJzL2RvbWppdC9ET01KSVRHcmFwaC5oCkBAIC0wLDAgKzEsNCBAQAorI2lmbmRl
ZiBXZWJDb3JlX0ZXRF9ET01KSVRHcmFwaF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0RPTUpJVEdy
YXBoX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9ET01KSVRHcmFwaC5oPgorI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDZmNjg3ZThlY2Q3M2RhODhiNDlkODc5NzU4Y2Fi
ZDU1NjdmMDM3MmEuLjdlOTlhNDkxZTY0ODc2ZDBjYTg2MTNhZGM0OTIwM2NiYTRmZDYxOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xNCw2ICsxNCw3IEBAIGxpc3QoQVBQRU5EIFdl
YkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0
ZWNvbXBpbGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgogICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
ZG9taml0IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKICAgICAiJHtKQVZBU0NS
SVBUQ09SRV9ESVJ9L2RlYnVnZ2VyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50ZXJw
cmV0ZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGIxNTNlNDAyNGQxNWU5YTQ3OTY0
NzAzN2U2NWU2ZTFiNmQzNmEwOGYuLjA0NjZjZTVhNmFmZGM2OWJiYWM1ZjVmNWY3NWVmMzVmMDE1
ZTlkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xOSw2ICsxOSw3IEBAIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vYnl0ZWNvbXBpbGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgogICAg
ICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vZG9taml0IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKICAgICAi
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RlYnVnZ2VyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJ
Un0vaW50ZXJwcmV0ZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDM0YjhkYjI3MGJm
Njk0YjJlMDdkMTg0OTFhYTg3NDY3NDM1NjdmYzguLmJjNDdjNGVhYWRkNjY5YjQ1NGY3Njg2YmEz
MjI1NGVjYzE4NmM4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC04MCw2ICs4MCw3
IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNP
UkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9iaW5kaW5ncyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
Rm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRp
bmdIZWFkZXJzL2RlYnVnZ2VyIgorICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVy
cy9kb21qaXQiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2hlYXAiCiAg
ICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3RvciIKICAgICAiJHtX
RUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvaW50ZXJwcmV0ZXIiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
V2luLmNtYWtlCmluZGV4IGFlZDhkZWIwYTI4ODc3ZDk1NjZkMzc4YmQ1OWFkY2QwZWY4YTdjZWQu
LmEzOGZlMTkzZWNjYTMwN2QxNTk1YWI0YmEzN2FmMjVjNmM1MjEwZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtV2luLmNtYWtlCkBAIC0xNSw2ICsxNSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUwogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFk
ZXJzL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlciIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNf
RElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9kZmciCiAgICAgIiR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1i
bGVyIgorICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFT
Y3JpcHRDb3JlL2RvbWppdCIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5n
SGVhZGVycy9KYXZhU2NyaXB0Q29yZS9oZWFwIgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9
L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyIgogICAgICIke0RFUklW
RURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDc2YThkZWQ4Y2E4MTdiMWE0MzY3MTNiMWE0ZTgzNDBiYzdlNTdlMDMuLjJiYzZk
NTA3NWJjMGZmZTM0Y2Y4NTZjZWVjNzVlMzdmNzdiZDBmODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0ODMyLDYgKzE0ODMy
LDcgQEAKIAkJCQlGNTIzRDE4NDAyREU0MkU4MDE4NjM1Q0EgLyogY3NzICovLAogCQkJCTI2Qjk5
OThEMTgwM0FERkEwMEQwMTEyMSAvKiBjc3NqaXQgKi8sCiAJCQkJRjUyM0QzMjQwMkRFNDQ3ODAx
ODYzNUNBIC8qIGRvbSAqLywKKwkJCQlFM0ZFMkEzQTFEOUYxNUI1MDBDNTBCMUYgLyogZG9taml0
ICovLAogCQkJCTkzMzA5RDg2MDk5RTY0OTEwMDU2RTU4MSAvKiBlZGl0aW5nICovLAogCQkJCTk3
NkQ2QzU3MTIyQjhBMTgwMDFGRDFGNyAvKiBmaWxlYXBpICovLAogCQkJCTUxNzQxRDA4MEIwNzI1
NzAwMEVENDQyQyAvKiBoaXN0b3J5ICovLApAQCAtMjIyNDMsNiArMjIyNDQsMTMgQEAKIAkJCW5h
bWUgPSBDcnlwdG87CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFM0ZFMkEz
QTFEOUYxNUI1MDBDNTBCMUYgLyogZG9taml0ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCSk7CisJCQlwYXRoID0gZG9taml0OworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRTQ2RTk3ODYwREFBRDYxQjAwNzFFODk0IC8qIGFuaW1hdGlv
biAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBkNDBjNDNmNjNk
NTdlN2U1OTcwYzdlNjJlZmE4NTZhZTY0ZTMyZjI5Li4xMTZkNWRkZjUxOTkzN2ZjNjYxMzU1YTJj
ODliZWJiMzgwNWJjMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
R2xvYmFsT2JqZWN0LmgKQEAgLTcyLDYgKzcyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQoKSB7IHJldHVybiBtX3dvcmxkLmdldCgpOyB9
CiAgICAgICAgIGJvb2wgd29ybGRJc05vcm1hbCgpIGNvbnN0IHsgcmV0dXJuIG1fd29ybGRJc05v
cm1hbDsgfQorICAgICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV29ybGRJc05vcm1hbCgp
IHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0RPTUdsb2JhbE9iamVjdCwgbV93b3JsZElzTm9y
bWFsKTsgfQogCiAgICAgICAgIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zJiBidWlsdGluSW50
ZXJuYWxGdW5jdGlvbnMoKSB7IHJldHVybiBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCmluZGV4IDYyNTEwY2Rj
MjVhZWJkYWZmOWJhMjM1MDc1YmM5NzQ0NDczZTk4Y2EuLjAwOWY2ZGYwN2VlYjExNjIwMDE4Yjgz
MjViOTBlYzUyMjczMTFmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3Jh
cHBlci5oCkBAIC01OSw2ICs1OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEltcGxlbWVudGF0aW9u
Q2xhc3M+IGNsYXNzIEpTRE9NV3JhcHBlciA6IHB1YmxpYyBKU0RPTU9iamVjdCB7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIGlzRE9NV3JhcHBlciA9IHRydWU7CiAKICAgICBJbXBsZW1lbnRh
dGlvbkNsYXNzJiB3cmFwcGVkKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxJbXBsZW1lbnRh
dGlvbkNsYXNzJj4obV93cmFwcGVkLmdldCgpKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zm
c2V0T2ZXcmFwcGVkKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTRE9NV3JhcHBlcjxJbXBs
ZW1lbnRhdGlvbkNsYXNzPiwgbV93cmFwcGVkKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgSlNET01X
cmFwcGVyKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTQzo6SlNHbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCwgUmVmPEltcGxlbWVudGF0aW9uQ2xhc3M+JiYgaW1wbCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKaW5kZXggNWQ5MzI2MTE0YWE2ZjBj
MWQ0ZjBiN2JjZTE2NGExMjM4ZTI2YTkwYy4uMmU1ODJiYjUwYmM5OWVhYjNiMDg2MWRjZTBmODk3
OGI3YmM5NTRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
V3JhcHBhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBh
YmxlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgU2NyaXB0V3JhcHBhYmxlIHsKICAgICBKU0RP
TU9iamVjdCogd3JhcHBlcigpIGNvbnN0OwogICAgIHZvaWQgc2V0V3JhcHBlcihKU0RPTU9iamVj
dCosIEpTQzo6V2Vha0hhbmRsZU93bmVyKiwgdm9pZCopOwogICAgIHZvaWQgY2xlYXJXcmFwcGVy
KEpTRE9NT2JqZWN0Kik7CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldyYXBwZXIoKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU2NyaXB0V3JhcHBhYmxlLCBtX3dyYXBwZXIpOyB9CiAK
IHByb3RlY3RlZDoKICAgICB+U2NyaXB0V3JhcHBhYmxlKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDk2NzBjNTcx
MGZmODMwMjA3MDdmN2Q3YzBkMmZkOTY3YjIyZGE5OWYuLjA3NDgyNGUyMmE2ZDFhOWMyYjU0YWEy
NGFjMDY0NDAwM2IwNjc5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02MjYsNiArNjI2LDcgQEAgc3ViIEdldEpTQ0F0
dHJpYnV0ZXNGb3JBdHRyaWJ1dGUKICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVtIikgaWYg
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vdEVudW1lcmFi
bGUifSB8fCAkaXNfZ2xvYmFsX2NvbnN0cnVjdG9yKTsKICAgICBwdXNoKEBzcGVjaWFscywgIlJl
YWRPbmx5IikgaWYgSXNSZWFkb25seSgkYXR0cmlidXRlKTsKICAgICBwdXNoKEBzcGVjaWFscywg
IkN1c3RvbUFjY2Vzc29yIikgdW5sZXNzICRpc19nbG9iYWxfY29uc3RydWN0b3Igb3IgSXNKU0J1
aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CisgICAgcHVzaChAc3BlY2lhbHMsICJET01K
SVRBdHRyaWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJET01KSVQifTsKICAgICBwdXNoKEBzcGVjaWFscywgIkFjY2Vzc29yIHwgQnVpbHRpbiIp
IGlmICBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAgICByZXR1cm4gKEBz
cGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKIH0KQEAgLTEzNDgs
NiArMTM0OSw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIG15ICRoYXNGb3J3YXJkRGVjbGFy
aW5nRnVuY3Rpb25zID0gMDsKICAgICBteSAkaGFzRm9yd2FyZERlY2xhcmluZ0F0dHJpYnV0ZXMg
PSAwOwogCisgICAgbXkgJGhhc0RPTUpJVEF0dHJpYnV0ZXMgPSAwOworCiAgICAgIyBBdHRyaWJ1
dGUgYW5kIGZ1bmN0aW9uIGVudW1zCiAgICAgaWYgKCRudW1BdHRyaWJ1dGVzID4gMCkgewogICAg
ICAgICBmb3JlYWNoIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CkBAIC0xMzYyLDYgKzEz
NjUsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgICAgICAkbmVlZHNWaXNpdENo
aWxkcmVuID0gMTsKICAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2VuZGlm
XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAk
aGFzRE9NSklUQXR0cmlidXRlcyA9IDEgaWYgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07CiAKICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJGb3J3YXJkRGVjbGFyZUluSGVhZGVyIn0p
IHsKICAgICAgICAgICAgICAgICAkaGFzRm9yd2FyZERlY2xhcmluZ0F0dHJpYnV0ZXMgPSAxOwpA
QCAtMTU3OSw2ICsxNTgzLDE1IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICB9CiAgICAg
fQogCisgICAgaWYgKCRoYXNET01KSVRBdHRyaWJ1dGVzKSB7CisgICAgICAgICRoZWFkZXJJbmNs
dWRlc3siPGRvbWppdC9ET01KSVRHcmFwaC5oPiJ9ID0gMTsKKyAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwiLy8gRE9NSklUIGVtaXR0ZXJzIGZvciBhdHRyaWJ1dGVzXG5cbiIpOworICAgICAg
ICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKKyAg
ICAgICAgICAgIG5leHQgdW5sZXNzICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkRPTUpJVCJ9OworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpT
Qzo6RE9NSklUOjpHcmFwaCogZG9tSklUR3JhcGhGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRj
b2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAi
KHZvaWQpO1xuIik7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoSGFzQ3VzdG9tQ29uc3Ry
dWN0b3IoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIi8vIEN1
c3RvbSBjb25zdHJ1Y3RvclxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0JHtjbGFzc05hbWV9KEpTQzo6
RXhlY1N0YXRlJik7XG5cbiIpOwpAQCAtMTY1NSwxNCArMTY2OCwxOSBAQCBzdWIgR2VuZXJhdGVQ
cm9wZXJ0aWVzSGFzaFRhYmxlCiAgICAgICAgIG15ICRzcGVjaWFsID0gR2V0SlNDQXR0cmlidXRl
c0ZvckF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAgICAgICAgcHVzaChAJGhh
c2hTcGVjaWFscywgJHNwZWNpYWwpOwogCi0gICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1
dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAg
ICBwdXNoKEAkaGFzaFZhbHVlMSwgJGdldHRlcik7Ci0KLSAgICAgICAgaWYgKElzUmVhZG9ubHko
JGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9KSB7CisgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVl
MSwgImRvbUpJVEdyYXBoRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+
V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpKTsKICAgICAgICAgICAgIHB1
c2goQCRoYXNoVmFsdWUyLCAiMCIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbXkg
JHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwg
JGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMiwgJHNldHRlcik7Cisg
ICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNl
LCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUx
LCAkZ2V0dGVyKTsKKworICAgICAgICAgICAgaWYgKElzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsK
KyAgICAgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMiwgIjAiKTsKKyAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5h
bWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAg
cHVzaChAJGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAK
ICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKQEAgLTI0NTksMTcgKzI0NzcsMjMgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15IEBzcGVjaWFscyA9ICgpOwog
ICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVsZXRlIikgdW5sZXNzICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGV0YWJsZSJ9OwogICAgICAg
ICAgICAgcHVzaChAc3BlY2lhbHMsICJSZWFkT25seSIpIGlmIElzUmVhZG9ubHkoJGF0dHJpYnV0
ZSk7CisgICAgICAgICAgICBwdXNoKEBzcGVjaWFscywgIkRPTUpJVEF0dHJpYnV0ZSIpIGlmICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9OwogICAg
ICAgICAgICAgbXkgJHNwZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3Bl
Y2lhbHMpIDogIjAiOwogICAgICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7
CiAKLSAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRl
cmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaGFzaFZh
bHVlMSwgJGdldHRlcik7Ci0KLSAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUp
KSB7CisgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiRE9NSklUIn0pIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAi
ZG9tSklUR3JhcGhGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191
Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkpOwogICAgICAgICAgICAgICAgIHB1
c2goQGhhc2hWYWx1ZTIsICIwIik7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFz
c05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRz
ZXR0ZXIpOworICAgICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJO
YW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAg
IHB1c2goQGhhc2hWYWx1ZTEsICRnZXR0ZXIpOworCisgICAgICAgICAgICAgICAgaWYgKElzUmVh
ZG9ubHkoJGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVl
MiwgIjAiKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBt
eSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1l
LCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJHNl
dHRlcik7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBt
eSAkY29uZGl0aW9uYWwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDb25kaXRpb25hbCJ9OwpAQCAtMzAzOSw2ICszMDYzLDM4IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
IAorICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkRPTUpJVCJ9KSB7CisgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPiJ9ID0gMTsKKyAgICAgICAgICAgICAgICBteSAkaW50ZXJmYWNlTmFt
ZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZU5hbWUg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgICAgICAgICAgbXkgJGRvbUpJ
VENsYXNzTmFtZSA9ICJET01KSVQiIC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdlbmVyYXRvci0+
V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpOworICAgICAgICAgICAgICAg
IG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05h
bWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBJc1JlYWRvbmx5
KCRhdHRyaWJ1dGUpID8gIm51bGxwdHIiIDogR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJm
YWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgICAjIENBU1RfT0ZG
U0VUKCRpbnRlcmZhY2VOYW1lKiwgQ29udGFpbmVyTm9kZSopICsgQ29udGFpbmVyTm9kZQorICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiY2xhc3MgJGRvbUpJVENsYXNzTmFtZSA6
IHB1YmxpYyBKU0M6OkRPTUpJVDo6R3JhcGgge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJwdWJsaWM6XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAkZG9tSklUQ2xhc3NOYW1lKClcbiIpOworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICA6IEpTQzo6RE9NSklUOjpHcmFwaCgkZ2V0dGVyLCAkc2V0
dGVyLCBKU0M6OlNwZWNET01Ob2RlKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHVzaW5nIG5hbWVzcGFjZSBKU0M6OkRPTUpJVDtcbiIpOworICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBhcHBlbmQoS2luZDo6Q2hlY2tOb2RlLCBJUjo6
dGhpc1ZhbHVlKCksIG51bGxwdHIpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIElSKiB3cmFwcGVkID0gYXBwZW5kKEtpbmQ6OkdldFdyYXBwZWQsIElS
Ojp0aGlzVmFsdWUoKSwgbnVsbHB0ciwgSlNOb2RlOjpvZmZzZXRPZldyYXBwZWQoKSk7XG4iKTsK
KyAgICAgICAgICAgICAgICAjIGlmICgkYXR0cmlidXRlTmFtZSBlcSAiZmlyc3RDaGlsZCIgfHwg
JGF0dHJpYnV0ZU5hbWUgZXEgImxhc3RDaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAjICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXBwZW5kKEtpbmQ6OkNoZWNrTm9kZUZsYWdzLCB3
cmFwcGVkLCBudWxscHRyLCBOb2RlOjpub2RlRmxhZ3NNZW1vcnlPZmZzZXQoKSwgTm9kZTo6SXND
b250YWluZXJGbGFnKTtcbiIpOworICAgICAgICAgICAgICAgICMgfQorICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJUiogcmVzdWx0ID0gYXBwZW5kKEtpbmQ6Okxv
YWRQb2ludGVyLCB3cmFwcGVkLCBudWxscHRyLCAkaW50ZXJmYWNlTmFtZTo6JHthdHRyaWJ1dGVO
YW1lfU1lbW9yeU9mZnNldCgpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICBJUiogd3JhcHBlciA9IGFwcGVuZChLaW5kOjpUb1dyYXBwZXIsIHJlc3Vs
dCwgbnVsbHB0ciwgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihKU0RPTUdsb2JhbE9iamVjdDo6b2Zm
c2V0T2ZXb3JsZElzTm9ybWFsKCkpIDw8IDMyKSB8IChDQVNUX09GRlNFVCgkaW50ZXJmYWNlTmFt
ZSosIFNjcmlwdFdyYXBwYWJsZSopICsgU2NyaXB0V3JhcHBhYmxlOjpvZmZzZXRPZldyYXBwZXIo
KSksIGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KHN0YXRpY19jYXN0PEpTQzo6RW5jb2RlZEpTVmFs
dWUgKCopKEpTQzo6RXhlY1N0YXRlKiwgdm9pZCosIHZvaWQqKT4oW10oSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIHZvaWQqIHdyYXBwZWQsIHZvaWQqIGdsb2JhbE9iamVjdCkgeyByZXR1cm4gSlNDOjpK
U1ZhbHVlOjplbmNvZGUodG9KUyhleGVjLCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KGdsb2JhbE9iamVjdCksIHN0YXRpY19jYXN0PE5vZGUqPih3cmFwcGVkKSkpOyB9KSkpO1xuIik7
CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGFwcGVuZChLaW5k
OjpSZXR1cm4sIHdyYXBwZXIsIG51bGxwdHIpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgfVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ9O1xuXG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlND
OjpET01KSVQ6OkdyYXBoKiBkb21KSVRHcmFwaEZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNv
ZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSAuICIo
KVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
JGRvbUpJVENsYXNzTmFtZT4gZW1pdHRlcjtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiAmZW1pdHRlci5nZXQoKTtcbiIpOworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKKyAgICAgICAgICAgIH0KKwogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRhdHRyaWJ1dGVDb25kaXRp
b25hbFN0cmluZzsKIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIpOwpAQCAt
NTAwNiwxMiArNTA2MiwxNCBAQCBzdWIgR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5CiAgICAg
ICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+
IjsKICAgICAgICAgfSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0YW50SW50ZWdl
ci8pIHsKICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAiIjsKKyAgICAgICAgfSBlbHNp
ZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0RPTUpJVEF0dHJpYnV0ZS8pIHsKKyAgICAgICAgICAg
ICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8RE9NSklUR3JhcGhHZW5lcmF0b3I+IjsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+IjsKICAgICAgICAgICAgICRzZWNvbmRU
YXJnZXRUeXBlID0gInN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPiI7
CiAgICAgICAgICAgICAkaGFzU2V0dGVyID0gInRydWUiOwogICAgICAgICB9Ci0gICAgICAgIGlm
ICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQ29uc3RhbnRJbnRlZ2VyLykgeworICAgICAgICBpZiAo
IkAkc3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0YW50SW50ZWdlcnxET01KSVRBdHRyaWJ1dGUvKSB7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB7IFwiJGtleVwiLCBAJHNwZWNp
YWxzWyRpXSwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykiIC4gJGZpcnN0VGFyZ2V0VHlwZSAu
ICIoQCR2YWx1ZTFbJGldKSB9IH0sXG4iKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHsgXCIka2V5XCIsIEAkc3BlY2lhbHNbJGldLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3QpIiAuICRmaXJzdFRhcmdldFR5cGUgLiAiKEAkdmFsdWUxWyRp
XSksIChpbnRwdHJfdCkgIiAuICRzZWNvbmRUYXJnZXRUeXBlIC4gIihAJHZhbHVlMlskaV0pIH0g
fSxcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExB
dHRyaWJ1dGVzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmli
dXRlcy50eHQKaW5kZXggZDI4ODVhODQyZDc0NDA5OTFjNjM4Mzk3MGNjN2Q5YjJhNjVmNDI2ZC4u
ZmNlZmIwZTg4NzQ3MjhhMTAyMzVmMWQzNDk0YjkwNmFkNzM1NDlmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CkBAIC01NCw2ICs1
NCw3IEBAIEN1c3RvbVJldHVybgogQ3VzdG9tU2V0UHJvdG90eXBlCiBDdXN0b21TZXR0ZXIKIEN1
c3RvbVRvSlNPYmplY3QKK0RPTUpJVAogRGVsZXRhYmxlCiBEb05vdENoZWNrQ29uc3RhbnRzCiBE
b05vdENoZWNrU2VjdXJpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCmluZGV4IDljYTdh
MTgzNTFhYTkxYWJmYWQyZTRiMjMzODFjZDExNzAzNTNlODkuLjVhYzJhN2NiMGZlNjM2YzQwYzc3
YzljNDcxMDZhOGU5ZDQwZjVjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApAQCAt
NDEsNiArNDEsNyBAQCBjbGFzcyBDb250YWluZXJOb2RlIDogcHVibGljIE5vZGUgewogICAgIE5v
ZGUqIGZpcnN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0Q2hpbGQ7IH0KICAgICBzdGF0
aWMgcHRyZGlmZl90IGZpcnN0Q2hpbGRNZW1vcnlPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoQ29udGFpbmVyTm9kZSwgbV9maXJzdENoaWxkKTsgfQogICAgIE5vZGUqIGxhc3RDaGls
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdENoaWxkOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBs
YXN0Q2hpbGRNZW1vcnlPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQ29udGFpbmVy
Tm9kZSwgbV9sYXN0Q2hpbGQpOyB9CiAgICAgYm9vbCBoYXNDaGlsZE5vZGVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9maXJzdENoaWxkOyB9CiAgICAgYm9vbCBoYXNPbmVDaGlsZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZmlyc3RDaGlsZCAmJiAhbV9maXJzdENoaWxkLT5uZXh0U2libGluZygpOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCmluZGV4IGUyNmMzMzI5ZWRkMjJkMDg4MDEyNWJlMjJmYmQxNjJiNmU3YWE5YmEuLjM0
Y2VlMWZkNDM5ZjA5YWRkOGQ0MmM2MDlkMDlkNWFjMWFhMmRmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAt
MTIwLDYgKzEyMCw0NiBAQCBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKICAgICAg
ICAgRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZID0gMHgxMCwKICAgICAgICAgRE9DVU1F
TlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMgPSAweDIwLAogICAgIH07CisgICAg
ZW51bSBOb2RlRmxhZ3MgeworICAgICAgICBJc1RleHRGbGFnID0gMSwKKyAgICAgICAgSXNDb250
YWluZXJGbGFnID0gMSA8PCAxLAorICAgICAgICBJc0VsZW1lbnRGbGFnID0gMSA8PCAyLAorICAg
ICAgICBJc1N0eWxlZEVsZW1lbnRGbGFnID0gMSA8PCAzLAorICAgICAgICBJc0hUTUxGbGFnID0g
MSA8PCA0LAorICAgICAgICBJc1NWR0ZsYWcgPSAxIDw8IDUsCisgICAgICAgIENoaWxkTmVlZHNT
dHlsZVJlY2FsY0ZsYWcgPSAxIDw8IDcsCisgICAgICAgIEluRG9jdW1lbnRGbGFnID0gMSA8PCA4
LAorICAgICAgICBJc0xpbmtGbGFnID0gMSA8PCA5LAorICAgICAgICBJc1VzZXJBY3Rpb25FbGVt
ZW50ID0gMSA8PCAxMCwKKyAgICAgICAgSGFzUmFyZURhdGFGbGFnID0gMSA8PCAxMSwKKyAgICAg
ICAgSXNEb2N1bWVudEZyYWdtZW50RmxhZyA9IDEgPDwgMTIsCisKKyAgICAgICAgLy8gVGhlc2Ug
Yml0cyBhcmUgdXNlZCBieSBkZXJpdmVkIGNsYXNzZXMsIHB1bGxlZCB1cCBoZXJlIHNvIHRoZXkg
Y2FuCisgICAgICAgIC8vIGJlIHN0b3JlZCBpbiB0aGUgc2FtZSBtZW1vcnkgd29yZCBhcyB0aGUg
Tm9kZSBiaXRzIGFib3ZlLgorICAgICAgICBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZyA9
IDEgPDwgMTMsIC8vIEVsZW1lbnQKKworICAgICAgICBTdHlsZUNoYW5nZU1hc2sgPSAxIDw8IG5v
ZGVTdHlsZUNoYW5nZVNoaWZ0IHwgMSA8PCAobm9kZVN0eWxlQ2hhbmdlU2hpZnQgKyAxKSB8IDEg
PDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMiksCisgICAgICAgIElzRWRpdGluZ1RleHRPclVu
ZGVmaW5lZEN1c3RvbUVsZW1lbnRGbGFnID0gMSA8PCAxNywKKyAgICAgICAgSGFzRm9jdXNXaXRo
aW4gPSAxIDw8IDE4LAorICAgICAgICBIYXNTeW50aGV0aWNBdHRyQ2hpbGROb2Rlc0ZsYWcgPSAx
IDw8IDE5LAorICAgICAgICBIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3NGbGFnID0gMSA8
PCAyMCwKKyAgICAgICAgSGFzRXZlbnRUYXJnZXREYXRhRmxhZyA9IDEgPDwgMjEsCisgICAgICAg
IElzQ3VzdG9tRWxlbWVudCA9IDEgPDwgMjIsCisgICAgICAgIElzSW5TaGFkb3dUcmVlRmxhZyA9
IDEgPDwgMjMsCisgICAgICAgIElzTWF0aE1MRmxhZyA9IDEgPDwgMjQsCisKKyAgICAgICAgQ2hp
bGRyZW5BZmZlY3RlZEJ5Rmlyc3RDaGlsZFJ1bGVzRmxhZyA9IDEgPDwgMjUsCisgICAgICAgIENo
aWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzRmxhZyA9IDEgPDwgMjYsCisgICAgICAgIENo
aWxkcmVuQWZmZWN0ZWRCeUhvdmVyUnVsZXNGbGFnID0gMSA8PCAyNywKKworICAgICAgICBEaXJl
Y3RDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCAyOCwKKyAgICAgICAgQWZmZWN0c05l
eHRTaWJsaW5nRWxlbWVudFN0eWxlID0gMSA8PCAyOSwKKyAgICAgICAgU3R5bGVJc0FmZmVjdGVk
QnlQcmV2aW91c1NpYmxpbmcgPSAxIDw8IDMwLAorCisgICAgICAgIFNlbGZPckFuY2VzdG9ySGFz
RGlyQXV0b0ZsYWcgPSAxIDw8IDMxLAorCisgICAgICAgIERlZmF1bHROb2RlRmxhZ3MgPSBJc1Bh
cnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZworICAgIH07CiAKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgdm9pZCBzdGFydElnbm9yaW5nTGVha3MoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBzdG9wSWdub3JpbmdMZWFrcygpOwpAQCAtMTU1LDYgKzE5NSw4IEBAIGNsYXNzIE5v
ZGUgOiBwdWJsaWMgRXZlbnRUYXJnZXQgewogICAgIE5vZGUqIHBzZXVkb0F3YXJlUHJldmlvdXNT
aWJsaW5nKCkgY29uc3Q7CiAgICAgTm9kZSogcHNldWRvQXdhcmVGaXJzdENoaWxkKCkgY29uc3Q7
CiAgICAgTm9kZSogcHNldWRvQXdhcmVMYXN0Q2hpbGQoKSBjb25zdDsKKyAgICBzdGF0aWMgcHRy
ZGlmZl90IG5vZGVGbGFnc01lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihO
b2RlLCBtX25vZGVGbGFncyk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IHJhcmVEYXRhTWVtb3J5
T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE5vZGUsIG1fZGF0YS5tX3JhcmVEYXRh
KTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgVVJMJiBiYXNlVVJJKCkgY29uc3Q7CiAg
ICAgCkBAIC01NjAsOCArNjAyLDYgQEAgY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7
CiAgICAgdm9pZCB1cGRhdGVBbmNlc3RvckNvbm5lY3RlZFN1YmZyYW1lQ291bnRGb3JJbnNlcnRp
b24oKSBjb25zdDsKIAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQotICAgIHN0YXRpYyBw
dHJkaWZmX3Qgbm9kZUZsYWdzTWVtb3J5T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9G
KE5vZGUsIG1fbm9kZUZsYWdzKTsgfQotICAgIHN0YXRpYyBwdHJkaWZmX3QgcmFyZURhdGFNZW1v
cnlPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTm9kZSwgbV9kYXRhLm1fcmFyZURh
dGEpOyB9CiAgICAgc3RhdGljIGludDMyX3QgZmxhZ0lzVGV4dCgpIHsgcmV0dXJuIElzVGV4dEZs
YWc7IH0KICAgICBzdGF0aWMgaW50MzJfdCBmbGFnSXNFbGVtZW50KCkgeyByZXR1cm4gSXNFbGVt
ZW50RmxhZzsgfQogICAgIHN0YXRpYyBpbnQzMl90IGZsYWdJc0hUTUwoKSB7IHJldHVybiBJc0hU
TUxGbGFnOyB9CkBAIC01NzcsNDcgKzYxNyw2IEBAIGNsYXNzIE5vZGUgOiBwdWJsaWMgRXZlbnRU
YXJnZXQgewogI2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogCiBwcm90ZWN0ZWQ6
Ci0gICAgZW51bSBOb2RlRmxhZ3MgewotICAgICAgICBJc1RleHRGbGFnID0gMSwKLSAgICAgICAg
SXNDb250YWluZXJGbGFnID0gMSA8PCAxLAotICAgICAgICBJc0VsZW1lbnRGbGFnID0gMSA8PCAy
LAotICAgICAgICBJc1N0eWxlZEVsZW1lbnRGbGFnID0gMSA8PCAzLAotICAgICAgICBJc0hUTUxG
bGFnID0gMSA8PCA0LAotICAgICAgICBJc1NWR0ZsYWcgPSAxIDw8IDUsCi0gICAgICAgIENoaWxk
TmVlZHNTdHlsZVJlY2FsY0ZsYWcgPSAxIDw8IDcsCi0gICAgICAgIEluRG9jdW1lbnRGbGFnID0g
MSA8PCA4LAotICAgICAgICBJc0xpbmtGbGFnID0gMSA8PCA5LAotICAgICAgICBJc1VzZXJBY3Rp
b25FbGVtZW50ID0gMSA8PCAxMCwKLSAgICAgICAgSGFzUmFyZURhdGFGbGFnID0gMSA8PCAxMSwK
LSAgICAgICAgSXNEb2N1bWVudEZyYWdtZW50RmxhZyA9IDEgPDwgMTIsCi0KLSAgICAgICAgLy8g
VGhlc2UgYml0cyBhcmUgdXNlZCBieSBkZXJpdmVkIGNsYXNzZXMsIHB1bGxlZCB1cCBoZXJlIHNv
IHRoZXkgY2FuCi0gICAgICAgIC8vIGJlIHN0b3JlZCBpbiB0aGUgc2FtZSBtZW1vcnkgd29yZCBh
cyB0aGUgTm9kZSBiaXRzIGFib3ZlLgotICAgICAgICBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVk
RmxhZyA9IDEgPDwgMTMsIC8vIEVsZW1lbnQKLQotICAgICAgICBTdHlsZUNoYW5nZU1hc2sgPSAx
IDw8IG5vZGVTdHlsZUNoYW5nZVNoaWZ0IHwgMSA8PCAobm9kZVN0eWxlQ2hhbmdlU2hpZnQgKyAx
KSB8IDEgPDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMiksCi0gICAgICAgIElzRWRpdGluZ1Rl
eHRPclVuZGVmaW5lZEN1c3RvbUVsZW1lbnRGbGFnID0gMSA8PCAxNywKLSAgICAgICAgSGFzRm9j
dXNXaXRoaW4gPSAxIDw8IDE4LAotICAgICAgICBIYXNTeW50aGV0aWNBdHRyQ2hpbGROb2Rlc0Zs
YWcgPSAxIDw8IDE5LAotICAgICAgICBIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3NGbGFn
ID0gMSA8PCAyMCwKLSAgICAgICAgSGFzRXZlbnRUYXJnZXREYXRhRmxhZyA9IDEgPDwgMjEsCi0g
ICAgICAgIElzQ3VzdG9tRWxlbWVudCA9IDEgPDwgMjIsCi0gICAgICAgIElzSW5TaGFkb3dUcmVl
RmxhZyA9IDEgPDwgMjMsCi0gICAgICAgIElzTWF0aE1MRmxhZyA9IDEgPDwgMjQsCi0KLSAgICAg
ICAgQ2hpbGRyZW5BZmZlY3RlZEJ5Rmlyc3RDaGlsZFJ1bGVzRmxhZyA9IDEgPDwgMjUsCi0gICAg
ICAgIENoaWxkcmVuQWZmZWN0ZWRCeUxhc3RDaGlsZFJ1bGVzRmxhZyA9IDEgPDwgMjYsCi0gICAg
ICAgIENoaWxkcmVuQWZmZWN0ZWRCeUhvdmVyUnVsZXNGbGFnID0gMSA8PCAyNywKLQotICAgICAg
ICBEaXJlY3RDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0gMSA8PCAyOCwKLSAgICAgICAgQWZm
ZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxlID0gMSA8PCAyOSwKLSAgICAgICAgU3R5bGVJc0Fm
ZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcgPSAxIDw8IDMwLAotCi0gICAgICAgIFNlbGZPckFuY2Vz
dG9ySGFzRGlyQXV0b0ZsYWcgPSAxIDw8IDMxLAotCi0gICAgICAgIERlZmF1bHROb2RlRmxhZ3Mg
PSBJc1BhcnNpbmdDaGlsZHJlbkZpbmlzaGVkRmxhZwotICAgIH07Ci0KICAgICBib29sIGdldEZs
YWcoTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsgcmV0dXJuIG1fbm9kZUZsYWdzICYgbWFzazsgfQog
ICAgIHZvaWQgc2V0RmxhZyhib29sIGYsIE5vZGVGbGFncyBtYXNrKSBjb25zdCB7IG1fbm9kZUZs
YWdzID0gKG1fbm9kZUZsYWdzICYgfm1hc2spIHwgKC0oaW50MzJfdClmICYgbWFzayk7IH0gCiAg
ICAgdm9pZCBzZXRGbGFnKE5vZGVGbGFncyBtYXNrKSBjb25zdCB7IG1fbm9kZUZsYWdzIHw9IG1h
c2s7IH0gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5pZGwKaW5kZXggMTFkMWU2ZjM2MjNkMDEwMzc5NjNmMTJjY2NjMDY4
ZWU0ZTUwMWViYi4uNWExMDBlNDE3OGE1NWE4MjBmNWIzNzM3YjllNTgwMmMwNDBhZTQyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmlkbApAQCAtNDcsMTIgKzQ3LDEyIEBACiAgICAgW1NldHRlclJhaXNlc0V4Y2Vw
dGlvbl0gYXR0cmlidXRlIERPTVN0cmluZz8gbm9kZVZhbHVlOwogCiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIHNob3J0IG5vZGVUeXBlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBO
b2RlPyBwYXJlbnROb2RlOworICAgIFtET01KSVRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBw
YXJlbnROb2RlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBjaGlsZE5vZGVzOwog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBmaXJzdENoaWxkOwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBOb2RlPyBsYXN0Q2hpbGQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHBy
ZXZpb3VzU2libGluZzsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gbmV4dFNpYmxpbmc7
CisgICAgW0RPTUpJVF0gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHByZXZpb3VzU2libGluZzsK
KyAgICBbRE9NSklUXSByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gbmV4dFNpYmxpbmc7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50PyBvd25lckRvY3VtZW50OwogCiAgICAgW0N1c3Rv
bSwgUmFpc2VzRXhjZXB0aW9uXSBOb2RlIGluc2VydEJlZm9yZShbQ3VzdG9tUmV0dXJuXSBOb2Rl
IG5ld0NoaWxkLCBOb2RlPyByZWZDaGlsZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290483</attachid>
            <date>2016-10-03 02:53:45 -0700</date>
            <delta_ts>2016-10-03 11:22:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162544-20161003185036.patch</filename>
            <type>text/plain</type>
            <size>103130</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
NDMyMGJhYjQ2MzVmZTlhMDgxNGEwMzljNGE4YWEzN2EyYjg2MzkzLi42MzA1YjFiMDY1OWM5NWE5
ODM4N2NkYmI0MjYxN2RmNWUwNjc3NDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDggQEAKKzIwMTYtMTAtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAoSlND
OjpHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFj
ayk6CisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwOgorICAgICAgICAoSlND
OjpHZXRCeUlkVmFyaWFudDo6R2V0QnlJZFZhcmlhbnQpOgorICAgICAgICAoSlNDOjpHZXRCeUlk
VmFyaWFudDo6b3BlcmF0b3I9KToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmF0dGVt
cHRUb01lcmdlKToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmR1bXBJbkNvbnRleHQp
OgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRWYXJpYW50Lmg6CisgICAgICAgIChKU0M6Okdl
dEJ5SWRWYXJpYW50Ojpkb21KSVQpOgorICAgICAgICAoSlNDOjpHZXRCeUlkVmFyaWFudDo6aW50
cmluc2ljKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5j
cHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmdldCk6CisgICAgICAgIChKU0M6OkFjY2Vz
c0Nhc2U6OmNsb25lKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oOgor
ICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpkb21KSVQpOgorICAgICAgICAoSlNDOjpBY2Nlc3ND
YXNlOjpSYXJlRGF0YTo6UmFyZURhdGEpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlRE9NSklUR2V0dGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlR2V0QnlJZCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRm
Zy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzRE9NSklUR3JhcGgpOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmRvbUpJVCk6CisgICAgICAgICogZGZnL0RGR05vZGVU
eXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoK
KyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNh
ZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxsRE9NKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrRE9NKToKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZG9taml0L0RPTUpJVEdyYXBo
LmNwcDogQWRkZWQuCisgICAgICAgICogZG9taml0L0RPTUpJVEdyYXBoLmg6IEFkZGVkLgorICAg
ICAgICAoSlNDOjpET01KSVQ6OkdyYXBoOjpHcmFwaCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6
R3JhcGg6On5HcmFwaCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OmdldHRlcik6Cisg
ICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OnNldHRlcik6CisgICAgICAgICogZG9taml0L0RP
TUpJVFBhdGNocG9pbnQuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2lu
dDo6UGF0Y2hwb2ludCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2ludDo6Y3JlYXRl
KToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpQYXRjaHBvaW50OjpzZXRHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpET01KSVQ6OlBhdGNocG9pbnQ6OmdlbmVyYXRvcik6CisgICAgICAgICogZG9t
aml0L0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkRPTUpJ
VDo6UGF0Y2hwb2ludFBhcmFtczo6c2l6ZSk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hw
b2ludFBhcmFtczo6YXQpOgorICAgICAgICAoSlNDOjpET01KSVQ6OlBhdGNocG9pbnRQYXJhbXM6
Om9wZXJhdG9yW10pOgorICAgICAgICAoSlNDOjpET01KSVQ6OlBhdGNocG9pbnRQYXJhbXM6Omdw
U2NyYXRjaCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2ludFBhcmFtczo6ZnBTY3Jh
dGNoKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpQYXRjaHBvaW50UGFyYW1zOjpQYXRjaHBvaW50
UGFyYW1zKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgorICAg
ICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNv
bXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDaGVja0RPTSk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDYWxsRE9NKToKKyAgICAgICAgKEpTQzo6RlRM
OjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVVucmVhY2hhYmxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBoZWFwL1dlYWtJbXBsLmg6CisgICAgICAgIChKU0M6OldlYWtJbXBsOjpvZmZzZXRPZkpT
VmFsdWUpOgorICAgICAgICAoSlNDOjpXZWFrSW1wbDo6b2Zmc2V0T2ZXZWFrSGFuZGxlT3duZXIp
OgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVHZXRC
eUlEKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoV1RGOjpET01KSVRHZXR0ZXI6OkRP
TUpJVEdldHRlcik6CisgICAgICAgIChXVEY6OkRPTUpJVEdldHRlcjo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKFdURjo6RE9NSklUR2V0dGVyOjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpE
T01KSVRHZXR0ZXI6OkRPTUpJVEdldHRlckRPTUpJVDo6RE9NSklUR2V0dGVyRE9NSklUKToKKyAg
ICAgICAgKFdURjo6RE9NSklUR2V0dGVyOjpkb21KSVRHZXR0ZXJHcmFwaCk6CisgICAgICAgIChX
VEY6OkRPTUpJVEdldHRlcjo6b2Zmc2V0T2ZWYWx1ZSk6CisgICAgICAgIChXVEY6OkRPTUpJVEdl
dHRlcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoV1RGOjpET01KSVRHZXR0ZXI6OmN1c3Rv
bUdldHRlcik6CisgICAgICAgIChHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAg
ICAgKGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1l
L0N1c3RvbUdldHRlclNldHRlci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAg
ICAgICAgKEpTQzo6SlNPYmplY3Q6OmZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6Okhhc2hUYWJsZVZhbHVlOjpk
b21KSVQpOgorICAgICAgICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0eVNsb3RGcm9tVGFibGUpOgor
ICAgICAgICAoSlNDOjpwdXRFbnRyeSk6CisgICAgICAgIChKU0M6OnJlaWZ5U3RhdGljUHJvcGVy
dHkpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAgIChKU0M6OlBy
b3BlcnR5U2xvdDo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90OjpzZXRDYWNo
ZWFibGVDdXN0b20pOgorCiAyMDE2LTEwLTAxICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgogCiAgICAgICAgIFtFUzZdIEFsaWduIGF0dHJpYnV0ZXMgb2YgR2VuZXJhdG9y
IHJlbGF0ZWQgcHJvcGVydGllcyB0byBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhkNzBmMjY2MTRiZDQ4MmNiNWViNWFl
OTY0YWZmZjdkMDY0ZWYzOWIuLjBjZjIxNWZmYmY1MmE5YzU0ZmUyMWUxODBmMWQyOGU5ODYwMjc5
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMTAtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBi
aW5kaW5nIEpJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYyNTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvU3RkTGliRXh0cmFzLmg6CisKIDIwMTYtMDktMjkgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBJREwgdW5pb24g
Y29udmVyc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDhhMDQxNDJjYjExNTA0NmU5MDY3ZDZhNzUxYTVkMzJl
ZmQ4YzU1NTQuLmM5M2M4MWVlZTkxMDc5ZmM2ZTQ1MWZjMTE5YmI2MDk2YjgwNzU2MmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxNi0xMC0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRh
bmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbQmluZGluZ10gSW50cm9kdWNpbmcgRE9NIGJp
bmRpbmcgSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjI1NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIEZvcndhcmRpbmdIZWFkZXJzL2RvbWppdC9ET01KSVRHcmFwaC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAg
ICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RPTVdyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6b2Zmc2V0T2ZX
cmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6d3JhcHBlZCk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRXcmFwcGFibGU6Om9mZnNldE9mV3JhcHBlcik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZXRKU0NBdHRyaWJ1
dGVzRm9yQXR0cmlidXRlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdl
bmVyYXRlUHJvcGVydGllc0hhc2hUYWJsZSk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSk6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDoKKyAg
ICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVy
Tm9kZTo6bGFzdENoaWxkTWVtb3J5T2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5l
ck5vZGU6Omxhc3RDaGlsZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6Om5vZGVGbGFnc01lbW9yeU9mZnNldCk6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlOjpyYXJlRGF0YU1lbW9yeU9mZnNldCk6CisgICAgICAgICogZG9tL05vZGUuaWRs
OgorCiAyMDE2LTEwLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICByZW1vdmluZyBGZXRjaEJveWQ6Om1fdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IGZiMjkxNDczYWU5N2ZhNGZmMDBmZGVkOTk4OGI2NGEzNjFiZmNhYzIuLjE5
MjkzYjUzY2VjNjc5NzA4ODRjNTNjOGE0NmQ2YTQ3ZjllMjk5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2LDYgKzE2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX0lO
Q0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVjb2RlIgog
ICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvbXBpbGVyIgogICAgICIke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0vZGZnIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZG9taml0IgogICAg
ICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgogICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vZGlzYXNzZW1ibGVyL3VkaXM4NiIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9
L2Z0bCIKQEAgLTQwOCw2ICs0MDksOCBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAg
IGRpc2Fzc2VtYmxlci91ZGlzODYvdWRpczg2X3N5bi1pbnRlbC5jCiAgICAgZGlzYXNzZW1ibGVy
L3VkaXM4Ni91ZGlzODZfc3luLmMKIAorICAgIGRvbWppdC9ET01KSVRHcmFwaC5jcHAKKwogICAg
IGZ0bC9GVExBYnN0cmFjdEhlYXAuY3BwCiAgICAgZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuY3BwCiAgICAgZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA2ZWU1NzcyYTBlN2RlY2IzZTEzMTkxYmQ4NTk0MDZmZGY5YzVmZTU2
Li41NzcxNjE4YzYwNjllMGY5YTgxNjQ5N2E3MmM4YzRlZmQ0MDMzNjMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzE2LDcgKzMxNiw3IEBACiAJCTBGMzNGQ0ZCMUMxNjI1QkUw
MDMyM0Y2NyAvKiBCM0NGRy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYzM0ZDRjkxQzE2MjVCRTAwMzIzRjY3IC8qIEIzQ0ZHLmggKi87IH07CiAJCTBG
MzNGQ0ZDMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0RvbWluYXRvcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzNGQ0ZBMUMxNjI1QkUwMDMyM0Y2NyAv
KiBCM0RvbWluYXRvcnMuaCAqLzsgfTsKIAkJMEYzNEIxNDkxNkQ0MjAxMDAwMUNEQTVBIC8qIERG
R1VzZUtpbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYzNEIxNDcxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwICovOyB9OwotCQkw
RjM0QjE0QTE2RDQyMDEzMDAxQ0RBNUEgLyogREZHVXNlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8q
IERGR1VzZUtpbmQuaCAqLzsgfTsKKwkJMEYzNEIxNEExNkQ0MjAxMzAwMUNEQTVBIC8qIERGR1Vz
ZUtpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTQ4MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzNzMwOEMxQzBCRDI5MTAwMDUyQkZB
IC8qIEIzUGhpQ2hpbGRyZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uY3Bw
ICovOyB9OwogCQkwRjM3MzA4RDFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNzMwOEIxQzBC
RDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uaCAqLzsgfTsKIAkJMEYzNzMwOEYxQzBDRDY4
NTAwMDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNzMwOEUxQzBDRDY4NTAw
MDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oICovOyB9OwpAQCAt
NTg3LDcgKzU4Nyw3IEBACiAJCTBGQTJDMTdCMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVy
VXRpbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZBMkMxNzkxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5jcHAgKi87IH07CiAJ
CTBGQTJDMTdDMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTJDMTdBMTdEN0NGODQwMDlE
MDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRkE1ODFCQTE1MEU5NTJDMDBCOUEyRDkgLyogREZHTm9kZUZs
YWdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
QTU4MUI3MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuY3BwICovOyB9OwotCQkwRkE1
ODFCQjE1MEU5NTMwMDBCOUEyRDkgLyogREZHTm9kZUZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkE1ODFCODE1MEU5NTJBMDBCOUEyRDkgLyog
REZHTm9kZUZsYWdzLmggKi87IH07CisJCTBGQTU4MUJCMTUwRTk1MzAwMEI5QTJEOSAvKiBERkdO
b2RlRmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQTU4MUI4MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkE1ODFCQzE1MEU5NTMwMDBC
OUEyRDkgLyogREZHTm9kZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQTU4MUI5MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlVHlwZS5oICov
OyB9OwogCQkwRkE3QThFQjE4QjQxM0M4MDA1MjM3MUQgLyogUmVnLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTdBOEU5MThCNDEzQzgwMDUyMzcx
RCAvKiBSZWcuY3BwICovOyB9OwogCQkwRkE3QThFQzE4QjQxM0M4MDA1MjM3MUQgLyogUmVnLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkE3QThFQTE4
QjQxM0M4MDA1MjM3MUQgLyogUmVnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTE0NDgsNyArMTQ0OCw3IEBACiAJCTg2RUM5REQwMTMyOERGODIw
MDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMDEzMjhERjgyMDAyQjJBRDcgLyogREZHT3BlcmF0aW9u
cy5oICovOyB9OwogCQk4NkVDOUREMTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5r
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURD
MTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5rLmggKi87IH07CiAJCTg2RUM5REQy
MTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMjEzMjhERjgyMDAyQjJBRDcg
LyogREZHU3BlY3VsYXRpdmVKSVQuY3BwICovOyB9OwotCQk4NkVDOUREMzEzMjhERjgyMDAyQjJB
RDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2RUM5REMzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2
ZUpJVC5oICovOyB9OworCQk4NkVDOUREMzEzMjhERjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRp
dmVKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
RUM5REMzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2RUNBM0VBMTMyREVGMUMw
MDJCMkFENyAvKiBERkdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NkVDQTNFOTEzMkRFRjFDMDAyQjJBRDcgLyogREZHTm9kZS5oICovOyB9Owog
CQk4NkVDQTNGQTEzMkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQ0EzRjkxMzJERjI1QTAwMkIy
QUQ3IC8qIERGR1Njb3JlQm9hcmQuaCAqLzsgfTsKIAkJODZGM0VFQkQxNjhDREU5MzAwNzdCOTJB
IC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCOTE2OENDRjc1MDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNr
RnVuY3Rpb24uaCAqLzsgfTsKQEAgLTIwNzUsNiArMjA3NSw3IEBACiAJCUUzMzYzN0E1MUI2MzIy
MDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzYzN0EzMUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0
T2JqZWN0LmNwcCAqLzsgfTsKIAkJRTMzNjM3QTYxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RP
YmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
MzYzN0E0MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMzQjNFMjYxQjdBQkQ3NTAwNDhE
QjJFIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzM0IzRTI1MUI3QUJENzUwMDQ4REIy
RSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmggKi87IH07CisJCUUzM0I5
OTk2MUQ5RDgyQkYwMDI2Rjk1MCAvKiBET01KSVRJUi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzRGQUUyQzFEOUQ4MjYzMDBEMTAyQzggLyogRE9N
SklUSVIuY3BwICovOyB9OwogCQlFMzNFOEQxQzFCOTAxM0MzMDAzNDZCNTIgLyogSlNOYXRpdmVT
dGRGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzNFOEQxQTFCOTAxM0MzMDAzNDZCNTIgLyogSlNOYXRpdmVTdGRGdW5jdGlvbi5jcHAg
Ki87IH07CiAJCUUzM0U4RDFEMUI5MDEzQzMwMDM0NkI1MiAvKiBKU05hdGl2ZVN0ZEZ1bmN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzNFOEQx
QjFCOTAxM0MzMDAzNDZCNTIgLyogSlNOYXRpdmVTdGRGdW5jdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzM0U4RDIwMUI5MDEzREUwMDM0
NkI1MiAvKiBOYXRpdmVTdGRGdW5jdGlvbkNlbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzRThEMUUxQjkwMTNERTAwMzQ2QjUyIC8qIE5hdGl2
ZVN0ZEZ1bmN0aW9uQ2VsbC5jcHAgKi87IH07CkBAIC0yMTA0LDYgKzIxMDUsMTAgQEAKIAkJRTNE
MjM5QzkxQjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDIzOUM3MUI4MjlDMUMwMEJC
RUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNFRjg4NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTNFRjg4NzIxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRl
cmF0b3IuY3BwICovOyB9OwogCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0ZG
NzUzMjFEOUNFQTE1MDBDN0UxNkQgLyogRE9NSklUR3JhcGguY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNGRjc1MkUxRDlDRUExMjAwQzdFMTZEIC8q
IERPTUpJVEdyYXBoLmNwcCAqLzsgfTsKKwkJRTNGRjc1MzMxRDlDRUExODAwQzdFMTZEIC8qIERP
TUpJVEdyYXBoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFM0ZGNzUyRjFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGguaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0ZGNzUzNDFEOUNFQTFFMDBD
N0UxNkQgLyogRE9NSklUSVIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzRkY3NTMwMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRJUi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzRkY3NTM1MUQ5Q0VB
MjUwMEM3RTE2RCAvKiBET01KSVRJUkJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRkY3NTMxMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRJ
UkJ1aWxkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1NTEy
RUYyNzcyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgKi87IH07CiAJCUU0OURD
MTZDMTJFRjI5NEUwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1MTEyRUYyNzIyMDAxODRB
MUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUU0OURDMTZEMTJFRjI5NTMwMDE4NEExRiAvKiBTb3VyY2VQ
cm92aWRlckNhY2hlSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTQ5REMxNDkxMkVGMjYxQTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJ
dGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTQzODMsNiArNDM4OCw3IEBACiAJCUUzM0Y1MDgzMUI4NDM3QTAwMDQxMzg1NiAvKiBKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
SW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTMzRjUwODYxQjg0NDlFRjAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3Iu
bHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW50ZXJuYWxQcm9taXNl
Q29uc3RydWN0b3IubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzM0Y1MDg4
MUI4NDRBMUEwMDQxMzg1NiAvKiBJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5qcyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEludGVybmFsUHJvbWlzZUNvbnN0cnVj
dG9yLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzRGQUUyQzFEOUQ4MjYzMDBE
MTAyQzggLyogRE9NSklUSVIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRE9NSklUSVIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU0NjIyQTFC
NjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb25zdHJ1Y3RBYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzNTVGMzUwMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVMb2FkZXJQcm90b3R5cGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlTG9hZGVyUHJv
dG90eXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1NUYzNTExQjdEQzg1
MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRlclByb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNb2R1bGVMb2FkZXJQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQ0MDUsNiArNDQxMSwxMCBAQAogCQlFM0QyNjQyQTFEMzhDMDQyMDAwQkUx
NzQgLyogQnl0ZWNvZGVSZXdyaXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCeXRlY29kZVJld3JpdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRUY4
ODcyMUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGODg3MzFCNjZERjIzMDAzRjI2Q0Ig
LyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUzRkY3NTJFMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHcmFwaC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01KSVRHcmFwaC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzRkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHcmFw
aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRHcmFwaC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0ZGNzUzMDFEOUNFQTEyMDBDN0UxNkQgLyogRE9N
SklUSVIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUSVIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNGRjc1MzExRDlDRUExMjAwQzdFMTZEIC8qIERP
TUpJVElSQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRJ
UkJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5REMxNDkxMkVGMjYx
QTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU0OURDMTUxMTJFRjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVy
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5REMxNTUxMkVGMjc3MjAw
MTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC00NjYyLDYgKzQ2NzIsNyBAQAogCQkJCTY1MEZERjhEMDlEMEZDQTcwMDc2
OUU1NCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJODZFQzlEQjMxMzI4REY0NDAwMkIyQUQ3
IC8qIGRmZyAqLywKIAkJCQkwRkY0MjcyRTE1OEVCQ0NFMDA0Q0I5RkYgLyogZGlzYXNzZW1ibGVy
ICovLAorCQkJCUUzRkY3NTJEMUQ5Q0U5RUEwMEM3RTE2RCAvKiBkb21qaXQgKi8sCiAJCQkJMDg2
N0Q2OUFGRTg0MDI4RkMwMkFBQzA3IC8qIEZyYW1ld29ya3MgKi8sCiAJCQkJMEZFQTA5RkMxNzA1
MTM3RjAwQkI3MjJDIC8qIGZ0bCAqLywKIAkJCQkxNDJFMzEyQTEzNEZGMEE2MDBBRkFEQjUgLyog
aGVhcCAqLywKQEAgLTcxNjcsNiArNzE3OCwxOCBAQAogCQkJcGF0aCA9IGNvZGVnZW47CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFM0ZGNzUyRDFEOUNFOUVBMDBDN0UxNkQg
LyogZG9taml0ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJ
CQlFM0ZGNzUyRTFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGguY3BwICovLAorCQkJCUUz
RkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHcmFwaC5oICovLAorCQkJCUUzNEZBRTJD
MUQ5RDgyNjMwMEQxMDJDOCAvKiBET01KSVRJUi5jcHAgKi8sCisJCQkJRTNGRjc1MzAxRDlDRUEx
MjAwQzdFMTZEIC8qIERPTUpJVElSLmggKi8sCisJCQkJRTNGRjc1MzExRDlDRUExMjAwQzdFMTZE
IC8qIERPTUpJVElSQnVpbGRlci5oICovLAorCQkJKTsKKwkJCXBhdGggPSBkb21qaXQ7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogLyogRW5kIFBCWEdyb3VwIHNlY3Rpb24gKi8K
IAogLyogQmVnaW4gUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtNzIxNCw2ICs3
MjM3LDcgQEAKIAkJCQkwRkVDODU3NzFCREFDREM3MDA4MEZGNzQgLyogQWlyRnJlcXVlbnRlZEJs
b2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU3OTFCREFDREM3MDA4MEZGNzQgLyogQWly
R2VuZXJhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTdBMUJEQUNEQzcwMDgwRkY3NCAv
KiBBaXJHZW5lcmF0aW9uQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNGRjc1MzUxRDlD
RUEyNTAwQzdFMTZEIC8qIERPTUpJVElSQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
Qzg1N0MxQkRBQ0RDNzAwODBGRjc0IC8qIEFpckhhbmRsZUNhbGxlZVNhdmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVDODU3RTFCREFDREM3MDA4MEZGNzQgLyogQWlySW5zZXJ0aW9uU2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU4MDFCREFDREM3MDA4MEZGNzQgLyogQWlySW5zdC5o
IGluIEhlYWRlcnMgKi8sCkBAIC03NjEyLDYgKzc2MzYsNyBAQAogCQkJCTBGQzIwQ0JBMTg1NTZB
MzUwMEM5RTk1NCAvKiBERkdTU0FMb3dlcmluZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjlGQjRGNTE3RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY0RjI5RTAxOEI2QUQxQzAwNTdCQzE1IC8qIERGR1N0YXRpY0V4ZWN1dGlv
bkNvdW50RXN0aW1hdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0ZGNzUzMzFEOUNF
QTE4MDBDN0UxNkQgLyogRE9NSklUR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUUzMjY0
MUIwNUFCMDQwMDgwMUVENSAvKiBERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDMjBDQjYxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVk
dWN0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjM5NDc4MTVEQ0UzNEIwMDZBNTk3
QyAvKiBERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTgwNzAs
NiArODA5NSw3IEBACiAJCQkJOTYwMDk3QTYwRUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjU0Njc3MTRGNTlCNUMwMDJDMjk4OSAvKiBMYXp5T3Bl
cmFuZFZhbHVlUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlEQTAwQjAxQkQ1OTk0RTAw
RjQ1NzVDIC8qIGxhenl3cml0ZXIucHkgaW4gSGVhZGVycyAqLywKKwkJCQlFM0ZGNzUzNDFEOUNF
QTFFMDBDN0UxNkQgLyogRE9NSklUSVIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDMxMEUx
NkY1Q0QwMEIzNDQ2MCAvKiBMZXhlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTNGNDBFOTMxRDVB
NEFCMzAwOTlBMUI2IC8qIFdBU01CM0lSR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzUyRTBFMTZGQ0UxMDBCMzQ0NjAgLyogTGV4ZXIubHV0LmggaW4gSGVhZGVycyAqLywKQEAg
LTkzOTMsNiArOTQxOSw3IEBACiAJCQkJMEYyNEU1NEMxN0VFMjc0OTAwQUJCMjE3IC8qIEpJVE9w
ZXJhdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1NTEzQTgxRDVBNjhDRDAwQzMyQkQ4
IC8qIEZyZWVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFOTlCMjRBMUMyNEMzRDcwMEM4
MjE1OSAvKiBKSVROZWdHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTMzQjk5OTYx
RDlEODJCRjAwMjZGOTUwIC8qIERPTUpJVElSLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2Q0M4
NUM0MEVFN0E4OTQwMDI4ODY4MiAvKiBKSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBN0MxRThFNDExMkU3MkVGMDBBMzdGOTggLyogSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI0MTU4NDFENzhGQjRDMDBERjhEMDkgLyogQXJy
YXlDb252ZW50aW9ucy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk0ODIsNiArOTUwOSw3IEBACiAJ
CQkJMTQ4NzRBRTUxNUVCREU0QTAwMkUzNTg3IC8qIEpTU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTdDMEM0QUQxNjgxMDY3RTAwMTcwMTFEIC8qIEpTU2NyaXB0UmVmLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGOTE5RDEwMTU3RjMzMjkwMDRBNEU3RCAvKiBKU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzRkY3NTMyMUQ5Q0VBMTUwMEM3RTE2
RCAvKiBET01KSVRHcmFwaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEQzE3RTgxNzFDOUM5MUQ2
MDA4QTZBQjMgLyogU2hhZG93Q2hpY2tlbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzI5OUQ5
RDE3RDEyODM3MDA1RjVGRjkgLyogSlNTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc5MERE
NkYxODJGNDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKaW5k
ZXggMTViM2M4MTNjYjhiZTgwNzMzZTNiNDE1ZjZhOThlN2Y5YWM4ZGQ0Zi4uNDE4MmI5MWQ2Zjc3
YzRkMTQ4OTg3NmRiYjA4MzczMDAwZmVlZjg0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcApAQCAtMzcsNiArMzcsOSBAQAogI2luY2x1
ZGUgPHd0Zi9MaXN0RHVtcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQg
eworY2xhc3MgR3JhcGg7Cit9CiAKIGJvb2wgR2V0QnlJZFN0YXR1czo6YXBwZW5kVmFyaWFudChj
b25zdCBHZXRCeUlkVmFyaWFudCYgdmFyaWFudCkKIHsKQEAgLTIxNSw2ICsyMTgsNyBAQCBHZXRC
eUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0
ZUZlZWRiYWNrKAogICAgICAgICAgICAgY2FzZSBDb21wbGV4R2V0U3RhdHVzOjpJbmxpbmVhYmxl
OiB7CiAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rU3RhdHVzPiBjYWxs
TGlua1N0YXR1czsKICAgICAgICAgICAgICAgICBKU0Z1bmN0aW9uKiBpbnRyaW5zaWNGdW5jdGlv
biA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgRE9NSklUOjpHcmFwaCogZG9tSklUID0gbnVs
bHB0cjsKIAogICAgICAgICAgICAgICAgIHN3aXRjaCAoYWNjZXNzLnR5cGUoKSkgewogICAgICAg
ICAgICAgICAgIGNhc2UgQWNjZXNzQ2FzZTo6TG9hZDoKQEAgLTIzNCw2ICsyMzgsMTIgQEAgR2V0
QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNp
dGVGZWVkYmFjaygKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBBY2Nlc3NDYXNl
OjpDdXN0b21BY2Nlc3NvckdldHRlcjogeworICAgICAgICAgICAgICAgICAgICBkb21KSVQgPSBh
Y2Nlc3MuZG9tSklUKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghZG9tSklUKQorICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMoc2xvd1BhdGhTdGF0ZSwgdHJ1
ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBJdCB3
b3VsZCBiZSB0b3RhbGx5IHN3ZWV0IHRvIHN1cHBvcnQgbW9yZSBvZiB0aGVzZSBhdCBzb21lIHBv
aW50IGluIHRoZQogICAgICAgICAgICAgICAgICAgICAvLyBmdXR1cmUuIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwNTIKQEAgLTI0NCw3ICsyNTQsOCBAQCBHZXRC
eUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0
ZUZlZWRiYWNrKAogICAgICAgICAgICAgICAgIEdldEJ5SWRWYXJpYW50IHZhcmlhbnQoCiAgICAg
ICAgICAgICAgICAgICAgIFN0cnVjdHVyZVNldChzdHJ1Y3R1cmUpLCBjb21wbGV4R2V0U3RhdHVz
Lm9mZnNldCgpLAogICAgICAgICAgICAgICAgICAgICBjb21wbGV4R2V0U3RhdHVzLmNvbmRpdGlv
blNldCgpLCBXVEZNb3ZlKGNhbGxMaW5rU3RhdHVzKSwKLSAgICAgICAgICAgICAgICAgICAgaW50
cmluc2ljRnVuY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBpbnRyaW5zaWNGdW5jdGlvbiwK
KyAgICAgICAgICAgICAgICAgICAgZG9tSklUKTsKIAogICAgICAgICAgICAgICAgIGlmICghcmVz
dWx0LmFwcGVuZFZhcmlhbnQodmFyaWFudCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBH
ZXRCeUlkU3RhdHVzKHNsb3dQYXRoU3RhdGUsIHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5jcHAKaW5kZXggYTg2OWQ0YTFjOTRlN2U0
NzU3MzE3NDRjN2IzMDNkNTA2NWUwZjQzMS4uNGRkNTJjYTY4OGFjZjUxMDFiMmJkOGMyZjZiN2Uw
YThjYzRiNzljMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dl
dEJ5SWRWYXJpYW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0
QnlJZFZhcmlhbnQuY3BwCkBAIC0zNiwxMiArMzYsMTQgQEAgR2V0QnlJZFZhcmlhbnQ6OkdldEJ5
SWRWYXJpYW50KAogICAgIGNvbnN0IFN0cnVjdHVyZVNldCYgc3RydWN0dXJlU2V0LCBQcm9wZXJ0
eU9mZnNldCBvZmZzZXQsCiAgICAgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmIGNv
bmRpdGlvblNldCwKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtTdGF0dXM+IGNhbGxMaW5r
U3RhdHVzLAotICAgIEpTRnVuY3Rpb24qIGludHJpbnNpY0Z1bmN0aW9uKQorICAgIEpTRnVuY3Rp
b24qIGludHJpbnNpY0Z1bmN0aW9uLAorICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCkKICAgICA6
IG1fc3RydWN0dXJlU2V0KHN0cnVjdHVyZVNldCkKICAgICAsIG1fY29uZGl0aW9uU2V0KGNvbmRp
dGlvblNldCkKICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1fY2FsbExpbmtTdGF0dXMo
V1RGTW92ZShjYWxsTGlua1N0YXR1cykpCiAgICAgLCBtX2ludHJpbnNpY0Z1bmN0aW9uKGludHJp
bnNpY0Z1bmN0aW9uKQorICAgICwgbV9kb21KSVQoZG9tSklUKQogewogICAgIGlmICghc3RydWN0
dXJlU2V0LnNpemUoKSkgewogICAgICAgICBBU1NFUlQob2Zmc2V0ID09IGludmFsaWRPZmZzZXQp
OwpAQCAtNjUsNiArNjcsNyBAQCBHZXRCeUlkVmFyaWFudCYgR2V0QnlJZFZhcmlhbnQ6Om9wZXJh
dG9yPShjb25zdCBHZXRCeUlkVmFyaWFudCYgb3RoZXIpCiAgICAgbV9jb25kaXRpb25TZXQgPSBv
dGhlci5tX2NvbmRpdGlvblNldDsKICAgICBtX29mZnNldCA9IG90aGVyLm1fb2Zmc2V0OwogICAg
IG1faW50cmluc2ljRnVuY3Rpb24gPSBvdGhlci5tX2ludHJpbnNpY0Z1bmN0aW9uOworICAgIG1f
ZG9tSklUID0gb3RoZXIubV9kb21KSVQ7CiAgICAgaWYgKG90aGVyLm1fY2FsbExpbmtTdGF0dXMp
CiAgICAgICAgIG1fY2FsbExpbmtTdGF0dXMgPSBzdGQ6Om1ha2VfdW5pcXVlPENhbGxMaW5rU3Rh
dHVzPigqb3RoZXIubV9jYWxsTGlua1N0YXR1cyk7CiAgICAgZWxzZQpAQCAtMTAzLDYgKzEwNiw5
IEBAIGJvb2wgR2V0QnlJZFZhcmlhbnQ6OmF0dGVtcHRUb01lcmdlKGNvbnN0IEdldEJ5SWRWYXJp
YW50JiBvdGhlcikKICAgICBpZiAoIWNhbk1lcmdlSW50cmluc2ljU3RydWN0dXJlcyhvdGhlcikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2RvbUpJVCAhPSBvdGhlci5tX2Rv
bUpJVCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKG1fY29uZGl0aW9uU2V0Lmlz
RW1wdHkoKSAhPSBvdGhlci5tX2NvbmRpdGlvblNldC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAKQEAgLTEzOCw2ICsxNDQsOCBAQCB2b2lkIEdldEJ5SWRWYXJpYW50Ojpk
dW1wSW5Db250ZXh0KFByaW50U3RyZWFtJiBvdXQsIER1bXBDb250ZXh0KiBjb250ZXh0KSBjb25z
dAogICAgICAgICBvdXQucHJpbnQoIiwgY2FsbCA9ICIsICptX2NhbGxMaW5rU3RhdHVzKTsKICAg
ICBpZiAobV9pbnRyaW5zaWNGdW5jdGlvbikKICAgICAgICAgb3V0LnByaW50KCIsIGludHJpbnNp
YyA9ICIsICptX2ludHJpbnNpY0Z1bmN0aW9uKTsKKyAgICBpZiAobV9kb21KSVQpCisgICAgICAg
IG91dC5wcmludCgiLCBjdXN0b20gPSAiLCBSYXdQb2ludGVyKG1fZG9tSklUKSk7CiAgICAgb3V0
LnByaW50KCI+Iik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9HZXRCeUlkVmFyaWFudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dl
dEJ5SWRWYXJpYW50LmgKaW5kZXggNjYyMTg5YmNlNWYyZWIxYTEzYmQwNTNlOTgwMDIxYzEzYzI2
NmU2Ni4uZGNmNDA4OGVjMzViOWJiMDI4YzViZThiZDMyNWExMTQxNzkwMzg5NiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmgKQEAgLTMyLDYg
KzMyLDkgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVTZXQuaCIKIAogbmFtZXNwYWNlIEpTQyB7Citu
YW1lc3BhY2UgRE9NSklUIHsKK2NsYXNzIEdyYXBoOworfQogCiBjbGFzcyBDYWxsTGlua1N0YXR1
czsKIGNsYXNzIEdldEJ5SWRTdGF0dXM7CkBAIC00Myw3ICs0Niw4IEBAIGNsYXNzIEdldEJ5SWRW
YXJpYW50IHsKICAgICAgICAgY29uc3QgU3RydWN0dXJlU2V0JiBzdHJ1Y3R1cmVTZXQgPSBTdHJ1
Y3R1cmVTZXQoKSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0ID0gaW52YWxpZE9mZnNldCwKICAgICAg
ICAgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQmID0gT2JqZWN0UHJvcGVydHlDb25k
aXRpb25TZXQoKSwKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rU3RhdHVzPiA9IG51
bGxwdHIsCi0gICAgICAgIEpTRnVuY3Rpb24qID0gbnVsbHB0cik7CisgICAgICAgIEpTRnVuY3Rp
b24qID0gbnVsbHB0ciwKKyAgICAgICAgRE9NSklUOjpHcmFwaCogPSBudWxscHRyKTsKIAogICAg
IH5HZXRCeUlkVmFyaWFudCgpOwogICAgIApAQCAtNjIsNiArNjYsNyBAQCBjbGFzcyBHZXRCeUlk
VmFyaWFudCB7CiAgICAgQ2FsbExpbmtTdGF0dXMqIGNhbGxMaW5rU3RhdHVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9jYWxsTGlua1N0YXR1cy5nZXQoKTsgfQogICAgIEpTRnVuY3Rpb24qIGludHJpbnNp
Y0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9pbnRyaW5zaWNGdW5jdGlvbjsgfQogICAgIElu
dHJpbnNpYyBpbnRyaW5zaWMoKSBjb25zdCB7IHJldHVybiBtX2ludHJpbnNpY0Z1bmN0aW9uID8g
bV9pbnRyaW5zaWNGdW5jdGlvbi0+aW50cmluc2ljKCkgOiBOb0ludHJpbnNpYzsgfQorICAgIERP
TUpJVDo6R3JhcGgqIGRvbUpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tSklUOyB9CiAKICAgICBi
b29sIGlzUHJvcGVydHlVbnNldCgpIGNvbnN0IHsgcmV0dXJuIG9mZnNldCgpID09IGludmFsaWRP
ZmZzZXQ7IH0KIApAQCAtODAsNiArODUsNyBAQCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7CiAgICAg
UHJvcGVydHlPZmZzZXQgbV9vZmZzZXQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rU3Rh
dHVzPiBtX2NhbGxMaW5rU3RhdHVzOwogICAgIEpTRnVuY3Rpb24qIG1faW50cmluc2ljRnVuY3Rp
b247CisgICAgRE9NSklUOjpHcmFwaCogbV9kb21KSVQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhp
Y0FjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNB
Y2Nlc3MuY3BwCmluZGV4IDJjZjI2NjcwODY2NDZmMjAyYTA0YzZhMDc0MjljODFhNzVlOTQ2NDMu
LjM5OTVlNjQwNGY0YjNjZTc1ZjEyMWYyMzdiYTU1NDlhYWZhYWZlNDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcApAQCAt
MjIwLDcgKzIyMCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBBY2Nlc3NDYXNlOjp0
cnlHZXQoCiBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Z2V0KAogICAg
IFZNJiB2bSwgSlNDZWxsKiBvd25lciwgQWNjZXNzVHlwZSB0eXBlLCBQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQsIFN0cnVjdHVyZSogc3RydWN0dXJlLAogICAgIGNvbnN0IE9iamVjdFByb3BlcnR5Q29u
ZGl0aW9uU2V0JiBjb25kaXRpb25TZXQsIGJvb2wgdmlhUHJveHksIFdhdGNocG9pbnRTZXQqIGFk
ZGl0aW9uYWxTZXQsCi0gICAgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgY3VzdG9tR2V0dGVy
LCBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UpCisgICAgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmMgY3VzdG9tR2V0dGVyLCBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UsIERPTUpJVDo6R3JhcGgq
IGRvbUpJVCkKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gcmVzdWx0KG5ldyBB
Y2Nlc3NDYXNlKCkpOwogCkBAIC0yMjksMTIgKzIyOSwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNj
ZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Z2V0KAogICAgIHJlc3VsdC0+bV9zdHJ1Y3R1cmUuc2V0KHZt
LCBvd25lciwgc3RydWN0dXJlKTsKICAgICByZXN1bHQtPm1fY29uZGl0aW9uU2V0ID0gY29uZGl0
aW9uU2V0OwogCi0gICAgaWYgKHZpYVByb3h5IHx8IGFkZGl0aW9uYWxTZXQgfHwgcmVzdWx0LT5k
b2VzQ2FsbHMoKSB8fCBjdXN0b21HZXR0ZXIgfHwgY3VzdG9tU2xvdEJhc2UpIHsKKyAgICBpZiAo
dmlhUHJveHkgfHwgYWRkaXRpb25hbFNldCB8fCByZXN1bHQtPmRvZXNDYWxscygpIHx8IGN1c3Rv
bUdldHRlciB8fCBjdXN0b21TbG90QmFzZSB8fCBkb21KSVQpIHsKICAgICAgICAgcmVzdWx0LT5t
X3JhcmVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxSYXJlRGF0YT4oKTsKICAgICAgICAgcmVzdWx0
LT5tX3JhcmVEYXRhLT52aWFQcm94eSA9IHZpYVByb3h5OwogICAgICAgICByZXN1bHQtPm1fcmFy
ZURhdGEtPmFkZGl0aW9uYWxTZXQgPSBhZGRpdGlvbmFsU2V0OwogICAgICAgICByZXN1bHQtPm1f
cmFyZURhdGEtPmN1c3RvbUFjY2Vzc29yLmdldHRlciA9IGN1c3RvbUdldHRlcjsKICAgICAgICAg
cmVzdWx0LT5tX3JhcmVEYXRhLT5jdXN0b21TbG90QmFzZS5zZXRNYXlCZU51bGwodm0sIG93bmVy
LCBjdXN0b21TbG90QmFzZSk7CisgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+ZG9tSklUID0g
ZG9tSklUOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0zODUsNiArMzg2LDcgQEAg
c3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6OmNsb25lKCkgY29uc3QKICAg
ICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5jdXN0b21BY2Nlc3Nvci5vcGFxdWUgPSByYXJlRGF0
YS0+Y3VzdG9tQWNjZXNzb3Iub3BhcXVlOwogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmN1
c3RvbVNsb3RCYXNlID0gcmFyZURhdGEtPmN1c3RvbVNsb3RCYXNlOwogICAgICAgICByZXN1bHQt
Pm1fcmFyZURhdGEtPmludHJpbnNpY0Z1bmN0aW9uID0gcmFyZURhdGEtPmludHJpbnNpY0Z1bmN0
aW9uOworICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmRvbUpJVCA9IHJhcmVEYXRhLT5kb21K
SVQ7CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCmluZGV4IGE2ZDE0OGNiZmIwZjE5
ZjhiMzdhMTc3MzgxZTAwODEzNzJiODQ5MjIuLjVhZTNlMjllMDg1ZWY5YzYyZDcxMTU4MWViNmVl
OWQwYzc2MDE0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Q
b2x5bW9ycGhpY0FjY2Vzcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Q
b2x5bW9ycGhpY0FjY2Vzcy5oCkBAIC0zNyw2ICszNyw5IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworY2xhc3MgR3JhcGg7
Cit9CiAKIGNsYXNzIENvZGVCbG9jazsKIGNsYXNzIFBvbHltb3JwaGljQWNjZXNzOwpAQCAtMTMw
LDcgKzEzMyw4IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICBib29sIHZpYVByb3h5ID0g
ZmFsc2UsCiAgICAgICAgIFdhdGNocG9pbnRTZXQqIGFkZGl0aW9uYWxTZXQgPSBudWxscHRyLAog
ICAgICAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyA9IG51bGxwdHIsCi0gICAgICAgIEpT
T2JqZWN0KiBjdXN0b21TbG90QmFzZSA9IG51bGxwdHIpOworICAgICAgICBKU09iamVjdCogY3Vz
dG9tU2xvdEJhc2UgPSBudWxscHRyLAorICAgICAgICBET01KSVQ6OkdyYXBoKiA9IG51bGxwdHIp
OwogICAgIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gbWVnYW1vcnBo
aWNMb2FkKFZNJiwgSlNDZWxsKiBvd25lcik7CiAgICAgCkBAIC0xODYsNiArMTkwLDEyIEBAIGNs
YXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICByZXR1cm4gaW50cmluc2ljRnVuY3Rpb24oKS0+aW50
cmluc2ljKCk7CiAgICAgfQogCisgICAgRE9NSklUOjpHcmFwaCogZG9tSklUKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIEFTU0VSVChtX3JhcmVEYXRhKTsKKyAgICAgICAgcmV0dXJuIG1fcmFyZURh
dGEtPmRvbUpJVDsKKyAgICB9CisKICAgICBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0KCkg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhID8gbV9yYXJlRGF0YS0+YWRk
aXRpb25hbFNldC5nZXQoKSA6IG51bGxwdHI7CkBAIC0yODQsNiArMjk0LDcgQEAgY2xhc3MgQWNj
ZXNzQ2FzZSB7CiAgICAgcHVibGljOgogICAgICAgICBSYXJlRGF0YSgpCiAgICAgICAgICAgICA6
IHZpYVByb3h5KGZhbHNlKQorICAgICAgICAgICAgLCBkb21KSVQobnVsbHB0cikKICAgICAgICAg
ewogICAgICAgICAgICAgY3VzdG9tQWNjZXNzb3Iub3BhcXVlID0gbnVsbHB0cjsKICAgICAgICAg
fQpAQCAtMzAwLDYgKzMxMSw3IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICB9IGN1c3Rv
bUFjY2Vzc29yOwogICAgICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IGN1c3RvbVNsb3RCYXNl
OwogICAgICAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gaW50cmluc2ljRnVuY3Rpb247Cisg
ICAgICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVDsKICAgICB9OwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFJhcmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDlkYjEzZTNh
ODdlNmI3OGRhYTFlOWIwMTIzMzJmYTE1ZjU2NDQ0OTAuLjdjMTdmYTNmZjg2MzcyOGIxYWEyNjgx
MjU1YmU2Zjg3ODBhZjUxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJERkdBYnN0cmFjdElu
dGVycHJldGVyLmgiCisjaW5jbHVkZSAiRE9NSklUR3JhcGguaCIKICNpbmNsdWRlICJHZXRCeUlk
U3RhdHVzLmgiCiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSGFzaE1hcElt
cGwuaCIKQEAgLTIyNjMsNiArMjI2NCwxMiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAg
IGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICAgICAgZm9yTm9kZShub2RlKS5j
bGVhcigpOyAvLyBUaGUgcmVzdWx0IGlzIG5vdCBhIEpTIHZhbHVlLgogICAgICAgICBicmVhazsK
KyAgICBjYXNlIENoZWNrRE9NOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIENhbGxET006Cisg
ICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7
CisgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShtX2dyYXBoLCBub2RlLT5kb21KSVQoKS0+
cmVzdWx0VHlwZSgpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDaGVja0FycmF5OiB7CiAg
ICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZChtX2dyYXBoLCBub2Rl
LCBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKSkpIHsKICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91
bmRDb25zdGFudHModHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDA0NTIyODBkZDI2ZjQwYjBiY2E0NWQzODUxZDExMGRmNDE2
YTBmYTcuLmE4MWE0YzUwZjhjYTBlMzBjYjNhYzYwOWFhMjhmMmNkNzg2MzhmNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0yMTks
NiArMjE5LDcgQEAgY2xhc3MgQnl0ZUNvZGVQYXJzZXIgewogICAgIGJvb2wgaGFuZGxlQ29uc3Rh
bnRJbnRlcm5hbEZ1bmN0aW9uKE5vZGUqIGNhbGxUYXJnZXROb2RlLCBpbnQgcmVzdWx0T3BlcmFu
ZCwgSW50ZXJuYWxGdW5jdGlvbiosIGludCByZWdpc3Rlck9mZnNldCwgaW50IGFyZ3VtZW50Q291
bnRJbmNsdWRpbmdUaGlzLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCBTcGVjdWxhdGVkVHlwZSwg
Y29uc3QgQ2hlY2tzRnVuY3RvciYgaW5zZXJ0Q2hlY2tzKTsKICAgICBOb2RlKiBoYW5kbGVQdXRC
eU9mZnNldChOb2RlKiBiYXNlLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0eU9mZnNldCwg
Y29uc3QgSW5mZXJyZWRUeXBlOjpEZXNjcmlwdG9yJiwgTm9kZSogdmFsdWUpOwogICAgIE5vZGUq
IGhhbmRsZUdldEJ5T2Zmc2V0KFNwZWN1bGF0ZWRUeXBlLCBOb2RlKiBiYXNlLCB1bnNpZ25lZCBp
ZGVudGlmaWVyTnVtYmVyLCBQcm9wZXJ0eU9mZnNldCwgY29uc3QgSW5mZXJyZWRUeXBlOjpEZXNj
cmlwdG9yJiwgTm9kZVR5cGUgPSBHZXRCeU9mZnNldCk7CisgICAgYm9vbCBoYW5kbGVET01KSVRH
ZXR0ZXIoaW50IHJlc3VsdE9wZXJhbmQsIGNvbnN0IEdldEJ5SWRWYXJpYW50JiwgTm9kZSogdGhp
c05vZGUsIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24pOwogCiAgICAgLy8gQ3JlYXRlIGEgcHJl
c2VuY2UgT2JqZWN0UHJvcGVydHlDb25kaXRpb24gYmFzZWQgb24gc29tZSBrbm93biBvZmZzZXQg
YW5kIHN0cnVjdHVyZSBzZXQuIERvZXMgbm90CiAgICAgLy8gY2hlY2sgdGhlIHZhbGlkaXR5IG9m
IHRoZSBjb25kaXRpb24sIGJ1dCBpdCBtYXkgcmV0dXJuIGEgbnVsbCBvbmUgaWYgaXQgZW5jb3Vu
dGVycyBhIGNvbnRyYWRpY3Rpb24uCkBAIC0yNjU5LDYgKzI2NjAsMjAgQEAgYm9vbCBCeXRlQ29k
ZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljR2V0dGVyKGludCByZXN1bHRPcGVyYW5kLCBjb25zdCBH
ZXRCeUlkVmFyaWEKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCitib29s
IEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVET01KSVRHZXR0ZXIoaW50IHJlc3VsdE9wZXJhbmQsIGNv
bnN0IEdldEJ5SWRWYXJpYW50JiB2YXJpYW50LCBOb2RlKiB0aGlzTm9kZSwgU3BlY3VsYXRlZFR5
cGUpCit7CisgICAgaWYgKCF2YXJpYW50LmRvbUpJVCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQgPSB2YXJpYW50LmRvbUpJVCgpOworICAgIGFk
ZFRvR3JhcGgoQ2hlY2tET00sIE9wSW5mbyhkb21KSVQpLCB0aGlzTm9kZSk7CisgICAgTm9kZSog
Z2xvYmFsT2JqZWN0ID0gYWRkVG9HcmFwaChHZXRHbG9iYWxPYmplY3QsIHRoaXNOb2RlKTsKKyAg
ICBhZGRWYXJBcmdDaGlsZChnbG9iYWxPYmplY3QpOworICAgIGFkZFZhckFyZ0NoaWxkKHRoaXNO
b2RlKTsKKyAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKHJlc3VsdE9wZXJhbmQpLCBhZGRUb0dyYXBo
KE5vZGU6OlZhckFyZywgQ2FsbERPTSwgT3BJbmZvKGRvbUpJVCksIE9wSW5mbygwKSkpOworICAg
IHJldHVybiB0cnVlOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGVja3NGdW5jdG9yPgogYm9v
bCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlVHlwZWRBcnJheUNvbnN0cnVjdG9yKAogICAgIGludCBy
ZXN1bHRPcGVyYW5kLCBJbnRlcm5hbEZ1bmN0aW9uKiBmdW5jdGlvbiwgaW50IHJlZ2lzdGVyT2Zm
c2V0LApAQCAtMzMyNCw2ICszMzM5LDE0IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdl
dEJ5SWQoCiAgICAgICAgIG1fZ3JhcGguY29tcGlsYXRpb24oKS0+bm90aWNlSW5saW5lZEdldEJ5
SWQoKTsKIAogICAgIEFTU0VSVCh0eXBlID09IEFjY2Vzc1R5cGU6OkdldCB8fCAhdmFyaWFudC5j
YWxsTGlua1N0YXR1cygpKTsKKworICAgIGlmICh2YXJpYW50LmRvbUpJVCgpKSB7CisgICAgICAg
IGlmIChoYW5kbGVET01KSVRHZXR0ZXIoZGVzdGluYXRpb25PcGVyYW5kLCB2YXJpYW50LCBiYXNl
LCBwcmVkaWN0aW9uKSkgeworICAgICAgICAgICAgYWRkVG9HcmFwaChQaGFudG9tLCBsb2FkZWRW
YWx1ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAo
IXZhcmlhbnQuY2FsbExpbmtTdGF0dXMoKSAmJiB2YXJpYW50LmludHJpbnNpYygpID09IE5vSW50
cmluc2ljKSB7CiAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoZGVzdGluYXRpb25PcGVyYW5k
KSwgbG9hZGVkVmFsdWUpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDg3ZDhiNTJkOGNkNzlmZDQ5MjRjODU4MjE0MjYxNmU3
MmRhNzIzYzQuLmEzYzdmNDM1YzE3N2QwMDg5ZTBjNjUwZDI1NmQ1Mjc5YjFkYTJiMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC04ODMsNiArODgzLDE2
IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRG
dW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQnV0
dGVyZmx5TG9jLCBKU09iamVjdF9idXR0ZXJmbHksIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUo
bm9kZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBGSVhNRTogUHJlY2lzZWx5IG1vZGVs
IGl0LgorICAgIGNhc2UgQ2hlY2tET006CisgICAgICAgIHJlYWQoV29ybGQpOworICAgICAgICBy
ZXR1cm47CisKKyAgICBjYXNlIENhbGxET006CisgICAgICAgIHJlYWQoV29ybGQpOworICAgICAg
ICB3cml0ZShIZWFwKTsKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBBcnJheWlmeToKICAg
ICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CiAgICAgICAgIHJlYWQoSlNDZWxsX3N0cnVjdHVy
ZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCAwYWQ1NGZl
ZTJmZjM5ZDg4NTcwYjE3NzY3ODFmMjQxOTYwOWZkY2RhLi41MWM4MDIzMzI4MzJhMTVhNzk5ZTQw
YzZhNGFhMWRhOWI5ODg1ODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0Mu
Y3BwCkBAIC0xMTYsNiArMTE2LDggQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlKQogICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgog
ICAgIGNhc2UgR2V0QnV0dGVyZmx5OgorICAgIGNhc2UgQ2FsbERPTToKKyAgICBjYXNlIENoZWNr
RE9NOgogICAgIGNhc2UgQ2hlY2tBcnJheToKICAgICBjYXNlIEdldFNjb3BlOgogICAgIGNhc2Ug
U2tpcFNjb3BlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAK
aW5kZXggNWFkNmFmZDQ3YjQ4MjUwMzkwMjQzNzU5ODE5ODYzNmRmYWExMTgwMC4uNzFiMGUxNjRl
ZmIzYTcwYmM0ZGM0NWE5YjY4MDAzZTZmYjY5YWE0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xNjAzLDYgKzE2MDMsMTUgQEAgY2xhc3MgRml4
dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+
KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgQ2hl
Y2tET006CisgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgQ2FsbERPTToKKyAgICAgICAgICAgIGZp
eEVkZ2U8S25vd25DZWxsVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsgLy8gR2xv
YmFsT2JqZWN0LgorICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihtX2dyYXBoLnZhckFyZ0No
aWxkKG5vZGUsIDEpKTsgLy8gRE9NLgorICAgICAgICAgICAgYnJlYWs7CisKICNpZiAhQVNTRVJU
X0RJU0FCTEVECiAgICAgICAgIC8vIEhhdmUgdGhlc2Ugbm8tb3AgY2FzZXMgaGVyZSB0byBlbnN1
cmUgdGhhdCBub2JvZHkgZm9yZ2V0cyB0byBhZGQgaGFuZGxlcnMgZm9yIG5ldyBvcGNvZGVzLgog
ICAgICAgICBjYXNlIFNldEFyZ3VtZW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApp
bmRleCA0YmFlOWFlOTYzNjA5YzNmMzczMDZiMTRmNTcyZjJiNGZhYzU3NDRiLi45MjJhYmUzODk0
Njk2MGUzMzFhZWQ1ZmNlN2EwYjk4NDRhODNlMmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGUuaApAQCAtNTgsNiArNTgsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK25hbWVzcGFj
ZSBET01KSVQgeworY2xhc3MgR3JhcGg7Cit9CisKIG5hbWVzcGFjZSBQcm9maWxlciB7CiBjbGFz
cyBFeGVjdXRpb25Db3VudGVyOwogfQpAQCAtMjMwOCw3ICsyMzEyLDE3IEBAIHN0cnVjdCBOb2Rl
IHsKICAgICAgICAgQVNTRVJUKGhhc0Jhc2ljQmxvY2tMb2NhdGlvbigpKTsKICAgICAgICAgcmV0
dXJuIG1fb3BJbmZvLmFzPEJhc2ljQmxvY2tMb2NhdGlvbio+KCk7CiAgICAgfQotICAgIAorCisg
ICAgYm9vbCBoYXNET01KSVRHcmFwaCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gb3Ao
KSA9PSBDaGVja0RPTSB8fCBvcCgpID09IENhbGxET007CisgICAgfQorCisgICAgRE9NSklUOjpH
cmFwaCogZG9tSklUKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX29wSW5mby5hczxET01KSVQ6
OkdyYXBoKj4oKTsKKyAgICB9CisKICAgICBOb2RlKiByZXBsYWNlbWVudCgpIGNvbnN0CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9taXNjLnJlcGxhY2VtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDhiNGQ5ZjBjMzA5YTdjMTg5ZDY1MjI3NjliMDdkNTI5
NGQ2NmM0ZmQuLjgzYjBmNTljMGQwNDk3YjU4YTMzZmJmYThlYTU4YjI1NDk3ZTNkYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTM5NCw2ICszOTQsMTAgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKEdldE1hcEJ1Y2tldCwg
Tm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oTG9hZEZyb21KU01hcEJ1Y2tldCwgTm9kZVJlc3Vs
dEpTKSBcCiAgICAgbWFjcm8oSXNOb25FbXB0eU1hcEJ1Y2tldCwgTm9kZVJlc3VsdEJvb2xlYW4p
IFwKKyAgICBcCisgICAgLyogTm9kZXMgZm9yIERPTSBKSVQgKi9cCisgICAgbWFjcm8oQ2hlY2tE
T00sIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDYWxsRE9NLCBOb2RlUmVzdWx0SlMg
fCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwKIAogLy8gVGhpcyBlbnVtIGdl
bmVyYXRlcyBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBpZCBmb3IgYWxsIE5vZGUgdHlwZXMs
CiAvLyBhbmQgaXMgdXNlZCBieSB0aGUgc3Vic2VxdWVudCBlbnVtIHRvIGZpbGwgb3V0IHRoZSBp
ZCAoYXMgYWNjZXNzZWQgdmlhIHRoZSBOb2RlSWRNYXNrKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
aW5kZXggYmFmZGY5MDZlYmY2ZjczMDdjYWY0MGY2Yjg1YzExYjAxMTllMWYyMi4uOGQ2NjQyZDQx
MDI2NzRkMGRjNjU5ZTJiZDFiY2ViNDY2NjMwMDBjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAK
QEAgLTgxOSw2ICs4MTksMTMgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBw
dWJsaWMgUGhhc2UgewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAgICAgICBj
YXNlIENhbGxET006CisgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKG1fY3VycmVudE5vZGUtPmRv
bUpJVCgpLT5wcmVkaWN0aW9uKCkpOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2Fz
ZSBDaGVja0RPTToKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgQ2FsbE9iamVj
dENvbnN0cnVjdG9yOiB7CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNPYmplY3QpOwog
ICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCmluZGV4IGJkZGQ0NjYwMTdlOWY4N2I2YzAzNTQ0MGNkOGFmMTQ3Yjg2NWRmNGYu
LjBkYjU0NTFmODFjYjA1NTA4OWVjODllODBjYmRmNjkwNTBmN2IyYmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC0yMTYsNiArMjE2LDggQEAg
Ym9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBo
LCBOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hlY2tTdHJ1Y3R1cmU6CiAgICAgY2FzZSBHZXRFeGVj
dXRhYmxlOgogICAgIGNhc2UgR2V0QnV0dGVyZmx5OgorICAgIGNhc2UgQ2FsbERPTToKKyAgICBj
YXNlIENoZWNrRE9NOgogICAgIGNhc2UgQ2hlY2tBcnJheToKICAgICBjYXNlIEFycmF5aWZ5Ogog
ICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggMTBlZmI3MjA0M2YxYWM4NzcwMWFiZDg2
ZjllY2NhMWFkZjhkMzdiMS4uMzNkYjU1NTZiMjQ2Nzc4ZmRjZDUxYmE1NDJmMGQ2YzQ0N2YwNTIw
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJERkdPU1JFeGl0RnV6ei5oIgogI2luY2x1
ZGUgIkRGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAi
REZHU2xvd1BhdGhHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJET01KSVRQYXRjaHBvaW50LmgiCiAj
aW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9yLmgi
CiAjaW5jbHVkZSAiSklUQml0QW5kR2VuZXJhdG9yLmgiCkBAIC03MDU3LDYgKzcwNTgsODIgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ1dHRlcmZseShOb2RlKiBub2RlKQogICAg
IHN0b3JhZ2VSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUNhbGxET00oTm9kZSogbm9kZSkKK3sKKyAgICBSZWY8RE9NSklUOjpQYXRjaHBv
aW50PiBwYXRjaHBvaW50ID0gbm9kZS0+ZG9tSklUKCktPmNhbGxET00oKTsKKworICAgIFZlY3Rv
cjxHUFJSZWc+IGdwU2NyYXRjaDsKKyAgICBWZWN0b3I8RlBSUmVnPiBmcFNjcmF0Y2g7CisgICAg
VmVjdG9yPFJlZz4gcmVnczsKKworICAgIC8vIEZJWE1FOiBwYXRjaHBvaW50IHNob3VsZCBoYXZl
IGEgd2F5IHRvIHRlbGwgdGhpcyBjYW4gcmV1c2UgImJhc2UiIHJlZ2lzdGVyLgorICAgIC8vIFRl
YWNoaW5nIERGRyBhYm91dCBET01KSVQ6OlBhdGNocG9pbnQgY2xvYmJlciBpbmZvcm1hdGlvbiBp
cyBuaWNlLgorCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgZ2xvYmFsT2JqZWN0KHRoaXMsIG1f
aml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAg
SlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworCisgICAgcmVncy5hcHBlbmQocmVz
dWx0LnJlZ3MoKS5ncHIoKSk7CisgICAgcmVncy5hcHBlbmQoYmFzZS5ncHIoKSk7CisgICAgcmVn
cy5hcHBlbmQoZ2xvYmFsT2JqZWN0LmdwcigpKTsKKyAgICByZWdzLmFwcGVuZChzdGF0aWNfY2Fz
dDxHUFJSZWc+KEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgIHJlZ3MuYXBwZW5kKHN0
YXRpY19jYXN0PEdQUlJlZz4oR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisKKyAg
ICBWZWN0b3I8R1BSVGVtcG9yYXJ5PiBncFRlbXByYXJpZXM7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVyczsgKytpKSB7CisgICAg
ICAgIEdQUlRlbXBvcmFyeSB0ZW1wb3JhcnkodGhpcyk7CisgICAgICAgIGdwU2NyYXRjaC5hcHBl
bmQodGVtcG9yYXJ5LmdwcigpKTsKKyAgICAgICAgZ3BUZW1wcmFyaWVzLmFwcGVuZChXVEZNb3Zl
KHRlbXBvcmFyeSkpOworICAgIH0KKworICAgIFZlY3RvcjxGUFJUZW1wb3Jhcnk+IGZwVGVtcHJh
cmllczsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF0Y2hwb2ludC0+bnVtR1BTY3Jh
dGNoUmVnaXN0ZXJzOyArK2kpIHsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXBvcmFyeSh0aGlz
KTsKKyAgICAgICAgZnBTY3JhdGNoLmFwcGVuZCh0ZW1wb3JhcnkuZnByKCkpOworICAgICAgICBm
cFRlbXByYXJpZXMuYXBwZW5kKFdURk1vdmUodGVtcG9yYXJ5KSk7CisgICAgfQorCisgICAgRE9N
SklUOjpQYXRjaHBvaW50UGFyYW1zIHBhcmFtcyhXVEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2Ny
YXRjaCksIFdURk1vdmUoZnBTY3JhdGNoKSk7CisgICAgcGF0Y2hwb2ludC0+Z2VuZXJhdG9yKCkt
PnJ1bihtX2ppdCwgcGFyYW1zKTsKKyAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5yZWdzKCksIG5v
ZGUpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tET00oTm9kZSogbm9k
ZSkKK3sKKyAgICBSZWY8RE9NSklUOjpQYXRjaHBvaW50PiBwYXRjaHBvaW50ID0gbm9kZS0+ZG9t
SklUKCktPmNoZWNrRE9NKCk7CisKKyAgICBWZWN0b3I8R1BSUmVnPiBncFNjcmF0Y2g7CisgICAg
VmVjdG9yPEZQUlJlZz4gZnBTY3JhdGNoOworICAgIFZlY3RvcjxSZWc+IHJlZ3M7CisKKyAgICAv
LyBGSVhNRTogcGF0Y2hwb2ludCBzaG91bGQgaGF2ZSBhIHdheSB0byB0ZWxsIHRoaXMgY2FuIHJl
dXNlICJiYXNlIiByZWdpc3Rlci4KKyAgICAvLyBUZWFjaGluZyBERkcgYWJvdXQgRE9NSklUOjpQ
YXRjaHBvaW50IGNsb2JiZXIgaW5mb3JtYXRpb24gaXMgbmljZS4KKyAgICBTcGVjdWxhdGVDZWxs
T3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBHUFJUZW1wb3JhcnkgcmVz
dWx0KHRoaXMpOworCisgICAgcmVncy5hcHBlbmQocmVzdWx0LmdwcigpKTsKKyAgICByZWdzLmFw
cGVuZChiYXNlLmdwcigpKTsKKworICAgIFZlY3RvcjxHUFJUZW1wb3Jhcnk+IGdwVGVtcHJhcmll
czsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNo
UmVnaXN0ZXJzOyArK2kpIHsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFyeSh0aGlzKTsK
KyAgICAgICAgZ3BTY3JhdGNoLmFwcGVuZCh0ZW1wb3JhcnkuZ3ByKCkpOworICAgICAgICBncFRl
bXByYXJpZXMuYXBwZW5kKFdURk1vdmUodGVtcG9yYXJ5KSk7CisgICAgfQorCisgICAgVmVjdG9y
PEZQUlRlbXBvcmFyeT4gZnBUZW1wcmFyaWVzOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7ICsraSkgeworICAgICAgICBGUFJU
ZW1wb3JhcnkgdGVtcG9yYXJ5KHRoaXMpOworICAgICAgICBmcFNjcmF0Y2guYXBwZW5kKHRlbXBv
cmFyeS5mcHIoKSk7CisgICAgICAgIGZwVGVtcHJhcmllcy5hcHBlbmQoV1RGTW92ZSh0ZW1wb3Jh
cnkpKTsKKyAgICB9CisKKyAgICBET01KSVQ6OlBhdGNocG9pbnRQYXJhbXMgcGFyYW1zKFdURk1v
dmUocmVncyksIFdURk1vdmUoZ3BTY3JhdGNoKSwgV1RGTW92ZShmcFNjcmF0Y2gpKTsKKyAgICBw
YXRjaHBvaW50LT5nZW5lcmF0b3IoKS0+cnVuKG1faml0LCBwYXJhbXMpOworICAgIHNwZWN1bGF0
aW9uQ2hlY2soQmFkVHlwZSwgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKE1h
Y3JvQXNzZW1ibGVyOjpaZXJvLCBwYXJhbXNbMF0uZ3ByKCkpKTsKKyAgICBub1Jlc3VsdChub2Rl
KTsKK30KKwogR1BSUmVnIFNwZWN1bGF0aXZlSklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5
VmFsKEdQUlRlbXBvcmFyeSYgdGVtcG9yYXJ5LCBBcnJheU1vZGUgYXJyYXlNb2RlKQogewogICAg
IGlmICghcHV0QnlWYWxXaWxsTmVlZEV4dHJhUmVnaXN0ZXIoYXJyYXlNb2RlKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBjYTk3OGY2Yjcz
OTUxMzk1MDE1MTBkMDU4MjhhMDI5ODIyZjg1YTFiLi40MjJmNzgzMGE1OWVhNTA1M2JmNmQyMzVh
MWQzNjkwNGYxZGMxZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCkBAIC0yNDU5LDYgKzI0NTksOCBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7
CiAgICAgdm9pZCBjb21waWxlQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoTm9kZSopOwogICAgIHZv
aWQgY29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoTm9kZSopOwogICAgIHZvaWQgY29t
cGlsZUdldEJ1dHRlcmZseShOb2RlKik7CisgICAgdm9pZCBjb21waWxlQ2FsbERPTShOb2RlKik7
CisgICAgdm9pZCBjb21waWxlQ2hlY2tET00oTm9kZSopOwogICAgIAogI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQmFzZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBQ
cm9wZXJ0eU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBWYWx1ZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBU
YWdUeXBlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAKaW5kZXggM2ExMGExMGQ3YjQyMjU0NDA5ZGQyMzI5Y2MwZjIxN2Y5Njk5
NWQzZS4uNmEyZTBhYTAwMjAzZTA5OGVhYjY3MTQyNzYwNDQ5YmE3YTI4NmEyZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CkBAIC01NDIwLDYgKzU0MjAsMTQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
KiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIENhbGxET006CisgICAg
ICAgIGNvbXBpbGVDYWxsRE9NKG5vZGUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgQ2hl
Y2tET006CisgICAgICAgIGNvbXBpbGVDaGVja0RPTShub2RlKTsKKyAgICAgICAgYnJlYWs7CisK
ICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAgICAgICB1bnJlYWNoYWJsZShub2RlKTsKICAgICAg
ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAppbmRleCBmNWVhNzRiMmU3MTA1OTc1YzdmYjA3MTM2YjcxM2IxYWMxNTY3Yjdj
Li44OTdhMDhjZTdhZjdmODQ3YWM4MTE2ODQxNDkyNWIzOWZiNDIyOTQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTU0MzYs
NiArNTQzNiwxNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAg
ICAgICAgIGNvbXBpbGVNYXRlcmlhbGl6ZU5ld09iamVjdChub2RlKTsKICAgICAgICAgYnJlYWs7
CiAKKyAgICBjYXNlIENhbGxET006CisgICAgICAgIGNvbXBpbGVDYWxsRE9NKG5vZGUpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgQ2hlY2tET006CisgICAgICAgIGNvbXBpbGVDaGVja0RP
TShub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICNpZiBFTkFCTEUoRlRMX0pJVCkgICAgICAgIAog
ICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6IHsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgY2FsbFRpZXJVcCA9IG1faml0LmJyYW5jaEFkZDMyKApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZG9taml0L0RPTUpJVEdyYXBoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTVlYjIxMTU3NGIyNDdlMzA2
ZDliYWZjNjY1YjBmOTg5OGQ0ZDAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJET01KSVRHcmFwaC5oIgorCisjaWYgRU5BQkxFKERGR19KSVQpCisKK25hbWVz
cGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CisKK30gfQorCisjZW5kaWYgLy8gRU5BQkxF
KERGR19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJ
VEdyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVEdyYXBoLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOWNhZmQwYzNiZTljYzQ0NDdlN2JjN2U2Y2FmNzAyM2JjZDY0N2RhZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR3JhcGguaApA
QCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJET01KSVRQYXRjaHBvaW50LmgiCisjaW5j
bHVkZSAiUHJvcGVydHlTbG90LmgiCisjaW5jbHVkZSAiUHV0UHJvcGVydHlTbG90LmgiCisjaW5j
bHVkZSAiU3BlY3VsYXRlZFR5cGUuaCIKKworI2lmIEVOQUJMRShERkdfSklUKQorI2luY2x1ZGUg
IkRGR1VzZUtpbmQuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJ
VCB7CisKK2NsYXNzIEdyYXBoIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jIEN1c3RvbUdldHRlcjsKKyAgICB0eXBlZGVmIFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jIEN1c3RvbVNldHRlcjsKKworICAgIEdyYXBoKEN1c3RvbUdldHRlciBnZXR0
ZXIsIEN1c3RvbVNldHRlciBzZXR0ZXIpCisgICAgICAgIDogbV9nZXR0ZXIoZ2V0dGVyKQorICAg
ICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB+R3Jh
cGgoKSB7IH0KKworICAgIEN1c3RvbUdldHRlciBnZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX2dl
dHRlcjsgfQorICAgIEN1c3RvbVNldHRlciBzZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX3NldHRl
cjsgfQorCisgICAgdmlydHVhbCBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uKCkgPSAwOworICAg
IHZpcnR1YWwgU3BlY3VsYXRlZFR5cGUgcmVzdWx0VHlwZSgpID0gMDsKKworI2lmIEVOQUJMRShE
RkdfSklUKQorICAgIHZpcnR1YWwgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gY2FsbERPTSgpID0g
MDsKKyAgICB2aXJ0dWFsIFJlZjxET01KSVQ6OlBhdGNocG9pbnQ+IGNoZWNrRE9NKCkgPSAwOwor
I2VuZGlmCisKK3ByaXZhdGU6CisgICAgQ3VzdG9tR2V0dGVyIG1fZ2V0dGVyOworICAgIEN1c3Rv
bVNldHRlciBtX3NldHRlcjsKK307CisKK30gfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RvbWppdC9ET01KSVRQYXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZG9taml0L0RPTUpJVFBhdGNocG9pbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTk3OTAyODA5MjMzMGViOTM4
NWRkODViMDg3OTNkOTQ5MWZhMjU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RvbWppdC9ET01KSVRQYXRjaHBvaW50LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiRE9NSklUUGF0Y2hwb2ludFBhcmFt
cy5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyU2V0LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgRE9NSklUIHsKKwordHlwZWRlZiB2b2lkIFBhdGNocG9pbnRHZW5lcmF0b3JGdW5jdGlvbihD
Q2FsbEhlbHBlcnMmLCBjb25zdCBQYXRjaHBvaW50UGFyYW1zJik7Cit0eXBlZGVmIFNoYXJlZFRh
c2s8UGF0Y2hwb2ludEdlbmVyYXRvckZ1bmN0aW9uPiBQYXRjaHBvaW50R2VuZXJhdG9yOworCisv
LyBET01KSVQgcGF0Y2hwb2ludCBpcyB0aGUgd2F5IHRvIGluamVjdCBhbiBvcGFxdWUgY29kZSBn
ZW5lcmF0b3IgaW50byBERkcgYW5kIEZUTC4KK2NsYXNzIFBhdGNocG9pbnQgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8UGF0Y2hwb2ludD4geworcHVibGljOgorICAgIFBhdGNocG9pbnQo
KQorICAgIHsKKyAgICB9CisKKyAgICBzdGF0aWMgUmVmPFBhdGNocG9pbnQ+IGNyZWF0ZSgpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQYXRjaHBvaW50KCkpOworICAgIH0K
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCBzZXRHZW5lcmF0b3Io
Y29uc3QgRnVuY3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIG1fZ2VuZXJhdG9yID0gY3Jl
YXRlU2hhcmVkVGFzazxQYXRjaHBvaW50R2VuZXJhdG9yRnVuY3Rpb24+KGZ1bmN0b3IpOworICAg
IH0KKworICAgIFJlZlB0cjxQYXRjaHBvaW50R2VuZXJhdG9yPiBnZW5lcmF0b3IoKSBjb25zdCB7
IHJldHVybiBtX2dlbmVyYXRvcjsgfQorCisgICAgdWludDhfdCBudW1HUFNjcmF0Y2hSZWdpc3Rl
cnMgeyAwIH07CisgICAgdWludDhfdCBudW1GUFNjcmF0Y2hSZWdpc3RlcnMgeyAwIH07CisKK3By
aXZhdGU6CisgICAgUmVmUHRyPFBhdGNocG9pbnRHZW5lcmF0b3I+IG1fZ2VuZXJhdG9yOworfTsK
KworfSB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVFBh
dGNocG9pbnRQYXJhbXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUUGF0
Y2hwb2ludFBhcmFtcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNjM1NGZiOGU0ZGI3OThmMDliOGM2ZTJkYjlj
YWEwMTliYTUxMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9t
aml0L0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJSZWdpc3RlclNldC5oIgorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJVCB7CisKK2NsYXNzIFBhdGNocG9pbnRQYXJhbXMgewor
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGF0Y2hwb2ludFBhcmFtcyk7CitwdWJsaWM6CisgICAgdW5z
aWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVncy5zaXplKCk7IH0KKyAgICBjb25zdCBS
ZWcmIGF0KHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3JlZ3NbaW5kZXhdOyB9Cisg
ICAgY29uc3QgUmVnJiBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBh
dChpbmRleCk7IH0KKworICAgIEdQUlJlZyBncFNjcmF0Y2godW5zaWduZWQgaW5kZXgpIGNvbnN0
IHsgcmV0dXJuIG1fZ3BTY3JhdGNoW2luZGV4XTsgfQorICAgIEZQUlJlZyBmcFNjcmF0Y2godW5z
aWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fZnBTY3JhdGNoW2luZGV4XTsgfQorCisgICAg
UGF0Y2hwb2ludFBhcmFtcyhWZWN0b3I8UmVnPiYmIHJlZ3MsIFZlY3RvcjxHUFJSZWc+JiYgZ3BT
Y3JhdGNoLCBWZWN0b3I8RlBSUmVnPiYmIGZwU2NyYXRjaCkKKyAgICAgICAgOiBtX3JlZ3MoV1RG
TW92ZShyZWdzKSkKKyAgICAgICAgLCBtX2dwU2NyYXRjaChXVEZNb3ZlKGdwU2NyYXRjaCkpCisg
ICAgICAgICwgbV9mcFNjcmF0Y2goV1RGTW92ZShmcFNjcmF0Y2gpKQorICAgIHsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgVmVjdG9yPFJlZz4gbV9yZWdzOworICAgIFZlY3RvcjxHUFJSZWc+IG1f
Z3BTY3JhdGNoOworICAgIFZlY3RvcjxGUFJSZWc+IG1fZnBTY3JhdGNoOworfTsKKworfSB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oCmluZGV4IDcxOWY1MmMzZmUzZDljNTg4MWQ3OTgzZDIwMzhiZGQ3MTM0MjVkMDkuLmY1
ZGEzZmFiN2Y1YzA4ZDYxZmMyMmFjNzYyZTBiNjdhODY1NTU0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCkBAIC0x
MTIsNiArMTEyLDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3Jv
KEhhc2hNYXBCdWNrZXRfdmFsdWUsIEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXlW
YWx1ZT46Om9mZnNldE9mVmFsdWUoKSkgXAogICAgIG1hY3JvKEhhc2hNYXBCdWNrZXRfa2V5LCBI
YXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5VmFsdWU+OjpvZmZzZXRPZktleSgpKSBc
CiAgICAgbWFjcm8oU3ltYm9sX3N5bWJvbEltcGwsIFN5bWJvbDo6b2Zmc2V0T2ZTeW1ib2xJbXBs
KCkpIFwKKyAgICBtYWNybyhXZWFrSW1wbF9qc1ZhbHVlLCBXZWFrSW1wbDo6b2Zmc2V0T2ZKU1Zh
bHVlKCkpIFwKKyAgICBtYWNybyhXZWFrSW1wbF93ZWFrSGFuZGxlT3duZXIsIFdlYWtJbXBsOjpv
ZmZzZXRPZldlYWtIYW5kbGVPd25lcigpKSBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfSU5ERVhFRF9B
QlNUUkFDVF9IRUFQKG1hY3JvKSBcCiAgICAgbWFjcm8oRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2Us
IERpcmVjdEFyZ3VtZW50czo6c3RvcmFnZU9mZnNldCgpLCBzaXplb2YoRW5jb2RlZEpTVmFsdWUp
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5k
ZXggYjZlYjJlNWY3MjE5ZGFlNmZlMGMyYTg0YWYwNWU4MjJjYTA2ZDgxZi4uZjZiMWQ1YTFjMGZh
MGY3M2UzNWRhZWE2YWZiZmYxMDZmYWU2NDk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMjYzLDYgKzI2Myw4IEBAIGlubGluZSBDYXBh
YmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgQ29tcGFyZUdyZWF0
ZXI6CiAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgogICAgIGNhc2UgQ29tcGFyZVN0cmljdEVx
OgorICAgIGNhc2UgQ2hlY2tET006CisgICAgY2FzZSBDYWxsRE9NOgogICAgICAgICAvLyBUaGVz
ZSBhcmUgT0suCiAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggMDYzY2M1OTQ0MDYyNDg5NjM3YTljMmJkMzE4Mjkz
NTU3NTY0ZTQyMC4uNzZkYmU3NzkwNDJmZjg0YzcwYTAwYTdkNGM1ZTI3MDFkNGJiMTc0YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNDQs
NiArNDQsNyBAQAogI2luY2x1ZGUgIkRGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmgiCiAjaW5jbHVk
ZSAiREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5oIgogI2luY2x1ZGUgIkRGR09TUkV4
aXRGdXp6LmgiCisjaW5jbHVkZSAiRE9NSklUUGF0Y2hwb2ludC5oIgogI2luY2x1ZGUgIkRpcmVj
dEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCIKICNp
bmNsdWRlICJGVExBdmFpbGFibGVSZWNvdmVyeS5oIgpAQCAtMTAzNyw2ICsxMDM4LDEyIEBAIGNs
YXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIGNhc2UgVW5yZWFjaGFibGU6CiAgICAgICAgICAg
ICBjb21waWxlVW5yZWFjaGFibGUoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENoZWNrRE9NOgorICAgICAgICAgICAgY29tcGlsZUNoZWNrRE9NKCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBDYWxsRE9NOgorICAgICAgICAgICAgY29tcGlsZUNhbGxET00o
KTsKKyAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgUGhhbnRvbUxvY2FsOgogICAg
ICAgICBjYXNlIExvb3BIaW50OgpAQCAtODQ1Miw2ICs4NDU5LDg1IEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgICAgIAogICAgICAgICBjcmFzaCgpOwogICAgIH0KKworICAgIHZvaWQgY29t
cGlsZUNoZWNrRE9NKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25v
ZGUtPmNoaWxkMSgpKTsKKworICAgICAgICAvLyBXZSBhc3N1bWUgdGhhdCBDaGVja0RPTSBxdWVy
eSBvcGVyYXRpb24gaGFzIG5vIGVmZmVjdC4KKworICAgICAgICBSZWZQdHI8RE9NSklUOjpQYXRj
aHBvaW50PiBkb21KSVQgPSBtX25vZGUtPmRvbUpJVCgpLT5jaGVja0RPTSgpOworCisgICAgICAg
IFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQoSW50MzIpOwor
ICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIoY2VsbCk7CisgICAgICAgIHBh
dGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtR1BTY3JhdGNoUmVn
aXN0ZXJzOworICAgICAgICBwYXRjaHBvaW50LT5udW1GUFNjcmF0Y2hSZWdpc3RlcnMgPSBkb21K
SVQtPm51bUZQU2NyYXRjaFJlZ2lzdGVyczsKKyAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJh
dG9yKAorICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8R1BSUmVn
PiBncFNjcmF0Y2g7CisgICAgICAgICAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnBTY3JhdGNoOwor
ICAgICAgICAgICAgICAgIFZlY3RvcjxSZWc+IHJlZ3M7CisKKyAgICAgICAgICAgICAgICAvLyBG
SVhNRTogcGF0Y2hwb2ludCBzaG91bGQgaGF2ZSBhIHdheSB0byB0ZWxsIHRoaXMgY2FuIHJldXNl
ICJiYXNlIiByZWdpc3Rlci4KKyAgICAgICAgICAgICAgICAvLyBUZWFjaGluZyBERkcgYWJvdXQg
RE9NSklUOjpQYXRjaHBvaW50IGNsb2JiZXIgaW5mb3JtYXRpb24gaXMgbmljZS4KKyAgICAgICAg
ICAgICAgICByZWdzLmFwcGVuZChwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgICAgIHJl
Z3MuYXBwZW5kKHBhcmFtc1sxXS5ncHIoKSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7ICsraSkKKyAgICAg
ICAgICAgICAgICAgICAgZ3BTY3JhdGNoLmFwcGVuZChwYXJhbXMuZ3BTY3JhdGNoKGkpKTsKKwor
ICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkb21KSVQtPm51bUdQU2Ny
YXRjaFJlZ2lzdGVyczsgKytpKQorICAgICAgICAgICAgICAgICAgICBmcFNjcmF0Y2guYXBwZW5k
KHBhcmFtcy5mcFNjcmF0Y2goaSkpOworCisgICAgICAgICAgICAgICAgRE9NSklUOjpQYXRjaHBv
aW50UGFyYW1zIGRvbUpJVFBhcmFtcyhXVEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCks
IFdURk1vdmUoZnBTY3JhdGNoKSk7CisgICAgICAgICAgICAgICAgZG9tSklULT5nZW5lcmF0b3Io
KS0+cnVuKGppdCwgZG9tSklUUGFyYW1zKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBwYXRj
aHBvaW50LT5lZmZlY3RzID0gRWZmZWN0czo6bm9uZSgpOworICAgICAgICBzcGVjdWxhdGUoCisg
ICAgICAgICAgICBCYWRUeXBlLCBqc1ZhbHVlVmFsdWUoY2VsbCksIG1fbm9kZS0+Y2hpbGQxKCku
bm9kZSgpLAorICAgICAgICAgICAgbV9vdXQuaXNaZXJvMzIocGF0Y2hwb2ludCkpOworICAgIH0K
KworICAgIHZvaWQgY29tcGlsZUNhbGxET00oKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGdsb2Jh
bE9iamVjdCA9IGxvd0NlbGwobV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDApKTsKKyAgICAg
ICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxKSk7
CisKKyAgICAgICAgUmVmUHRyPERPTUpJVDo6UGF0Y2hwb2ludD4gZG9tSklUID0gbV9ub2RlLT5k
b21KSVQoKS0+Y2FsbERPTSgpOworICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQg
PSBtX291dC5wYXRjaHBvaW50KEludDY0KTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29t
ZVJlZ2lzdGVyKGdsb2JhbE9iamVjdCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVS
ZWdpc3RlcihjZWxsKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnTWFzaywgVmFs
dWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7CisgICAgICAgIHBhdGNo
cG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86
OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOworICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJl
Z2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAgICAgIHBhdGNocG9pbnQt
Pm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzOwor
ICAgICAgICBwYXRjaHBvaW50LT5udW1GUFNjcmF0Y2hSZWdpc3RlcnMgPSBkb21KSVQtPm51bUZQ
U2NyYXRjaFJlZ2lzdGVyczsKKyAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAorICAg
ICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8R1BSUmVnPiBncFNjcmF0
Y2g7CisgICAgICAgICAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnBTY3JhdGNoOworICAgICAgICAg
ICAgICAgIFZlY3RvcjxSZWc+IHJlZ3M7CisKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogcGF0
Y2hwb2ludCBzaG91bGQgaGF2ZSBhIHdheSB0byB0ZWxsIHRoaXMgY2FuIHJldXNlICJiYXNlIiBy
ZWdpc3Rlci4KKyAgICAgICAgICAgICAgICAvLyBUZWFjaGluZyBERkcgYWJvdXQgRE9NSklUOjpQ
YXRjaHBvaW50IGNsb2JiZXIgaW5mb3JtYXRpb24gaXMgbmljZS4KKyAgICAgICAgICAgICAgICBy
ZWdzLmFwcGVuZChwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgICAgIHJlZ3MuYXBwZW5k
KHBhcmFtc1sxXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgcmVncy5hcHBlbmQocGFyYW1zWzJd
LmdwcigpKTsKKyAgICAgICAgICAgICAgICByZWdzLmFwcGVuZChwYXJhbXNbM10uZ3ByKCkpOwor
ICAgICAgICAgICAgICAgIHJlZ3MuYXBwZW5kKHBhcmFtc1s0XS5ncHIoKSk7CisKKyAgICAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZG9tSklULT5udW1HUFNjcmF0Y2hSZWdp
c3RlcnM7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgZ3BTY3JhdGNoLmFwcGVuZChwYXJhbXMu
Z3BTY3JhdGNoKGkpKTsKKworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBkb21KSVQtPm51bUdQU2NyYXRjaFJlZ2lzdGVyczsgKytpKQorICAgICAgICAgICAgICAgICAg
ICBmcFNjcmF0Y2guYXBwZW5kKHBhcmFtcy5mcFNjcmF0Y2goaSkpOworCisgICAgICAgICAgICAg
ICAgRE9NSklUOjpQYXRjaHBvaW50UGFyYW1zIGRvbUpJVFBhcmFtcyhXVEZNb3ZlKHJlZ3MpLCBX
VEZNb3ZlKGdwU2NyYXRjaCksIFdURk1vdmUoZnBTY3JhdGNoKSk7CisgICAgICAgICAgICAgICAg
ZG9tSklULT5nZW5lcmF0b3IoKS0+cnVuKGppdCwgZG9tSklUUGFyYW1zKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzID0gRWZmZWN0czo6Zm9yQ2FsbCgpOwor
ICAgICAgICBzZXRKU1ZhbHVlKHBhdGNocG9pbnQpOworICAgIH0KICAgICAKICAgICB2b2lkIGNv
bXBhcmVFcU9iamVjdE9yT3RoZXJUb09iamVjdChFZGdlIGxlZnRDaGlsZCwgRWRnZSByaWdodENo
aWxkKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJ
bXBsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrSW1wbC5oCmluZGV4IGQ4MTdi
NzI4YjY2ZjllMTNjY2QwODkwZDQxNmUyNzFmMjY3MjdmNzcuLjNlMzA0NjhkMzhiZTJmYzIzZjBk
OWU0OTFhYjc4YzkzOGVmMDZhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1dlYWtJbXBsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0ltcGwu
aApAQCAtNTYsNiArNTYsMTYgQEAgY2xhc3MgV2Vha0ltcGwgewogCiAgICAgc3RhdGljIFdlYWtJ
bXBsKiBhc1dlYWtJbXBsKEpTVmFsdWUqKTsKIAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0
T2ZKU1ZhbHVlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoV2Vha0lt
cGwsIG1fanNWYWx1ZSk7CisgICAgfQorCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldl
YWtIYW5kbGVPd25lcigpCisgICAgeworICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFdl
YWtJbXBsLCBtX3dlYWtIYW5kbGVPd25lcik7CisgICAgfQorCiBwcml2YXRlOgogICAgIGNvbnN0
IEpTVmFsdWUgbV9qc1ZhbHVlOwogICAgIFdlYWtIYW5kbGVPd25lciogbV93ZWFrSGFuZGxlT3du
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAppbmRleCBkNDU5MzljNTk1OWE4
MDdkNDUwNWI5NGVhM2NlYTE1NWZmZjVjNGI4Li41ZTBkMTEyMGNhNWQ0NDI3NDc3M2Q5MWM5ZjZm
ODljN2YwMzUzZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0
Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWVTaHVmZmxlci5oIgogI2luY2x1ZGUgIkRG
R09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJERkdTcGVjdWxhdGl2ZUpJVC5oIgorI2luY2x1ZGUg
IkRPTUpJVEdyYXBoLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAi
RlRMVGh1bmtzLmgiCiAjaW5jbHVkZSAiR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmgiCkBAIC0yNjAs
NiArMjYxLDEwIEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5SUQoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uCiAgICAgICAgIGlmIChzbG90Lmlz
Q2FjaGVhYmxlR2V0dGVyKCkpCiAgICAgICAgICAgICBnZXR0ZXIgPSBqc0R5bmFtaWNDYXN0PEpT
RnVuY3Rpb24qPihzbG90LmdldHRlclNldHRlcigpLT5nZXR0ZXIoKSk7CiAKKyAgICAgICAgRE9N
SklUOjpHcmFwaCogZG9tSklUID0gbnVsbHB0cjsKKyAgICAgICAgaWYgKHNsb3QuaXNDYWNoZWFi
bGVDdXN0b20oKSAmJiBzbG90LmRvbUpJVCgpKQorICAgICAgICAgICAgZG9tSklUID0gc2xvdC5k
b21KSVQoKTsKKwogICAgICAgICBpZiAoa2luZCA9PSBHZXRCeUlES2luZDo6UHVyZSkgewogICAg
ICAgICAgICAgQWNjZXNzQ2FzZTo6QWNjZXNzVHlwZSB0eXBlOwogICAgICAgICAgICAgaWYgKHNs
b3QuaXNDYWNoZWFibGVWYWx1ZSgpKQpAQCAtMjkwLDcgKzI5NSw4IEBAIHN0YXRpYyBJbmxpbmVD
YWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VW
YWx1ZSwgY29uCiAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6Z2V0KAogICAgICAg
ICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIHR5cGUsIG9mZnNldCwgc3RydWN0dXJlLCBjb25kaXRp
b25TZXQsIGxvYWRUYXJnZXRGcm9tUHJveHksCiAgICAgICAgICAgICAgICAgc2xvdC53YXRjaHBv
aW50U2V0KCksIHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSA/IHNsb3QuY3VzdG9tR2V0dGVyKCkg
OiBudWxscHRyLAotICAgICAgICAgICAgICAgIHNsb3QuaXNDYWNoZWFibGVDdXN0b20oKSA/IHNs
b3Quc2xvdEJhc2UoKSA6IG51bGxwdHIpOworICAgICAgICAgICAgICAgIHNsb3QuaXNDYWNoZWFi
bGVDdXN0b20oKSA/IHNsb3Quc2xvdEJhc2UoKSA6IG51bGxwdHIsCisgICAgICAgICAgICAgICAg
ZG9tSklUKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBmMTUw
MDBiMzgyMzEyMWM3MzZiMjZiZDc3YTQ4ODI0NzlhNWJkYzdlLi4yNTkzMzAxYTM4YjY5MzBlZjcy
ZDk4ZDk1YzNjNWI4NTAxYzBjOGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMjgsNiArMjgs
OCBAQAogI2luY2x1ZGUgIkJ1dHRlcmZseUlubGluZXMuaCIKICNpbmNsdWRlICJDb2RlQmxvY2su
aCIKICNpbmNsdWRlICJDb21wbGV0aW9uLmgiCisjaW5jbHVkZSAiRE9NSklUR3JhcGguaCIKKyNp
bmNsdWRlICJET01KSVRQYXRjaHBvaW50LmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgpAQCAt
NzIsNiArNzQsNyBAQAogI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC01MzcsMTIgKzU0MCwxMDcgQEAg
Y2xhc3MgU2ltcGxlT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIFdyaXRl
QmFycmllcjxKU0M6OlVua25vd24+IG1faGlkZGVuVmFsdWU7CiB9OwogCitjbGFzcyBET01KSVRH
ZXR0ZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitwdWJsaWM6CisgICAgRE9NSklUR2V0
dGVyKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlKQorICAgIHsKKyAgICB9CisKKyAgICBERUNMQVJFX0lORk87CisgICAgdHlwZWRlZiBK
U05vbkZpbmFsT2JqZWN0IEJhc2U7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTQzo6SlNUeXBlKExhc3RKU0NP
YmplY3RUeXBlICsgMSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgRE9NSklUR2V0dGVyKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
KyAgICB7CisgICAgICAgIERPTUpJVEdldHRlciogZ2V0dGVyID0gbmV3IChOb3ROdWxsLCBhbGxv
Y2F0ZUNlbGw8RE9NSklUR2V0dGVyPih2bS5oZWFwLCBzaXplb2YoRE9NSklUR2V0dGVyKSkpIERP
TUpJVEdldHRlcih2bSwgc3RydWN0dXJlKTsKKyAgICAgICAgZ2V0dGVyLT5maW5pc2hDcmVhdGlv
bih2bSk7CisgICAgICAgIHJldHVybiBnZXR0ZXI7CisgICAgfQorCisgICAgY2xhc3MgRE9NSklU
R2V0dGVyRE9NSklUIDogcHVibGljIERPTUpJVDo6R3JhcGggeworICAgIHB1YmxpYzoKKyAgICAg
ICAgRE9NSklUR2V0dGVyRE9NSklUKCkKKyAgICAgICAgICAgIDogRE9NSklUOjpHcmFwaChET01K
SVRHZXR0ZXI6OmN1c3RvbUdldHRlciwgbnVsbHB0cikKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICAgICAgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbigpIG92ZXJyaWRlCisgICAgICAgIHsK
KyAgICAgICAgICAgIHJldHVybiBTcGVjSW50MzJPbmx5OworICAgICAgICB9CisKKyAgICAgICAg
U3BlY3VsYXRlZFR5cGUgcmVzdWx0VHlwZSgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHJldHVybiBTcGVjQnl0ZWNvZGVOdW1iZXI7CisgICAgICAgIH0KKworICAgICAgICBSZWY8
RE9NSklUOjpQYXRjaHBvaW50PiBjYWxsRE9NKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAg
ICAgICAgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gcGF0Y2hwb2ludCA9IERPTUpJVDo6UGF0Y2hw
b2ludDo6Y3JlYXRlKCk7CisgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoWz1d
KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBET01KSVQ6OlBhdGNocG9pbnRQYXJhbXMmIHBhcmFt
cykgeworICAgICAgICAgICAgICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBh
cmFtc1syXS5ncHIoKSwgRE9NSklUR2V0dGVyOjpvZmZzZXRPZlZhbHVlKCkpLCBwYXJhbXNbMF0u
Z3ByKCkpOworICAgICAgICAgICAgICAgIGppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJS
ZWdpc3RlciwgcGFyYW1zWzBdLmdwcigpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
cmV0dXJuIHBhdGNocG9pbnQ7CisgICAgICAgIH0KKworICAgICAgICBSZWY8RE9NSklUOjpQYXRj
aHBvaW50PiBjaGVja0RPTSgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZjxE
T01KSVQ6OlBhdGNocG9pbnQ+IHBhdGNocG9pbnQgPSBET01KSVQ6OlBhdGNocG9pbnQ6OmNyZWF0
ZSgpOworICAgICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFs9XShDQ2FsbEhlbHBl
cnMmIGppdCwgY29uc3QgRE9NSklUOjpQYXRjaHBvaW50UGFyYW1zJiBwYXJhbXMpIHsKKyAgICAg
ICAgICAgICAgICBqaXQuY29tcGFyZTgoCisgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6RXF1YWwsCisgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhwYXJh
bXNbMV0uZ3ByKCksIEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLAorICAgICAgICAgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU0M6OkpTVHlwZShMYXN0SlNDT2Jq
ZWN0VHlwZSArIDEpKSwgcGFyYW1zWzBdLmdwcigpKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgcmV0dXJuIHBhdGNocG9pbnQ7CisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RhdGlj
IERPTUpJVDo6R3JhcGgqIGRvbUpJVEdldHRlckdyYXBoKCkKKyAgICB7CisgICAgICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxET01KSVRHZXR0ZXJET01KSVQ+IGdyYXBoOworICAgICAgICByZXR1
cm4gJmdyYXBoLmdldCgpOworICAgIH0KKworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZW
YWx1ZSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihET01KSVRHZXR0ZXIsIG1fdmFsdWUpOyB9
CisKK3ByaXZhdGU6CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYgdm0pCisgICAgeworICAg
ICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CisgICAgICAgIERPTUpJVDo6R3JhcGgqIGRv
bUpJVCA9IGRvbUpJVEdldHRlckdyYXBoKCk7CisgICAgICAgIEN1c3RvbUdldHRlclNldHRlciog
Y3VzdG9tR2V0dGVyU2V0dGVyID0gQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGRvbUpJ
VC0+Z2V0dGVyKCksIGRvbUpJVC0+c2V0dGVyKCksIGRvbUpJVCk7CisgICAgICAgIHB1dERpcmVj
dEN1c3RvbUFjY2Vzc29yKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImN1c3RvbUdl
dHRlciIpLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNzb3IpOwor
ICAgIH0KKworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKKyAgICB7Cisg
ICAgICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKworICAgICAgICBET01KSVRHZXR0ZXIqIHRoaXNPYmplY3QgPSBq
c0R5bmFtaWNDYXN0PERPTUpJVEdldHRlcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
KyAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZXhlYywgc2NvcGUpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKHRoaXNPYmplY3QtPm1fdmFsdWUpKTsKKyAgICB9CisKKyAgICBpbnQzMl90IG1fdmFsdWUg
eyA0MiB9OworfTsKKwogCiBjb25zdCBDbGFzc0luZm8gRWxlbWVudDo6c19pbmZvID0geyAiRWxl
bWVudCIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoRWxlbWVudCkgfTsK
IGNvbnN0IENsYXNzSW5mbyBNYXNxdWVyYWRlcjo6c19pbmZvID0geyAiTWFzcXVlcmFkZXIiLCAm
QmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE1hc3F1ZXJhZGVyKSB9OwogY29u
c3QgQ2xhc3NJbmZvIFJvb3Q6OnNfaW5mbyA9IHsgIlJvb3QiLCAmQmFzZTo6c19pbmZvLCAwLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKFJvb3QpIH07CiBjb25zdCBDbGFzc0luZm8gSW1wdXJlR2V0dGVy
OjpzX2luZm8gPSB7ICJJbXB1cmVHZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEltcHVyZUdldHRlcikgfTsKIGNvbnN0IENsYXNzSW5mbyBDdXN0b21HZXR0ZXI6
OnNfaW5mbyA9IHsgIkN1c3RvbUdldHRlciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRI
T0RfVEFCTEUoQ3VzdG9tR2V0dGVyKSB9OworY29uc3QgQ2xhc3NJbmZvIERPTUpJVEdldHRlcjo6
c19pbmZvID0geyAiRE9NSklUR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhP
RF9UQUJMRShET01KSVRHZXR0ZXIpIH07CiBjb25zdCBDbGFzc0luZm8gUnVudGltZUFycmF5Ojpz
X2luZm8gPSB7ICJSdW50aW1lQXJyYXkiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKFJ1bnRpbWVBcnJheSkgfTsKIGNvbnN0IENsYXNzSW5mbyBTaW1wbGVPYmplY3Q6OnNf
aW5mbyA9IHsgIlNpbXBsZU9iamVjdCIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0Rf
VEFCTEUoU2ltcGxlT2JqZWN0KSB9Owogc3RhdGljIGJvb2wgdGVzdDI2MkFzeW5jUGFzc2VkIHsg
ZmFsc2UgfTsKQEAgLTU3MSw2ICs2NjksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVByb3h5KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVSdW50aW1lQXJyYXkoRXhlY1N0YXRl
Kik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUlt
cHVyZUdldHRlcihFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQ3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0KEV4ZWNTdGF0ZSopOworc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJP
YmplY3QoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkNyZWF0ZUJ1aWx0aW4oRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdChFeGVjU3RhdGUqKTsKIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVy
RGVsZWdhdGUoRXhlY1N0YXRlKik7CkBAIC04NTUsNiArOTU0LDcgQEAgY2xhc3MgR2xvYmFsT2Jq
ZWN0IDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsKIAogICAgICAgICBhZGRGdW5jdGlvbih2bSwg
ImNyZWF0ZUltcHVyZUdldHRlciIsIGZ1bmN0aW9uQ3JlYXRlSW1wdXJlR2V0dGVyLCAxKTsKICAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QiLCBmdW5jdGlv
bkNyZWF0ZUN1c3RvbUdldHRlck9iamVjdCwgMCk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Y3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmpl
Y3QsIDApOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUJ1aWx0aW4iLCBmdW5jdGlv
bkNyZWF0ZUJ1aWx0aW4sIDIpOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUdsb2Jh
bE9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0LCAwKTsKICAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJzZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZSIsIGZ1bmN0aW9uU2V0SW1wdXJlR2V0
dGVyRGVsZWdhdGUsIDIpOwpAQCAtMTM1OSw2ICsxNDU5LDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QoRXhlY1N0YXRlKiBl
eGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAorRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlck9iamVjdChFeGVj
U3RhdGUqIGV4ZWMpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgPSBET01KSVRHZXR0ZXI6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT52bSgp
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGpzTnVsbCgpKTsKKyAgICBET01KSVRHZXR0
ZXIqIHJlc3VsdCA9IERPTUpJVEdldHRlcjo6Y3JlYXRlKGV4ZWMtPnZtKCksIHN0cnVjdHVyZSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOworfQorCiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUoRXhlY1N0YXRl
KiBleGVjKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuaAppbmRleCBkNzAyZGRm
NGRhMDU3NjkwNWY3OWNlYWQ2MGI2YTIzY2RiOWMzNjY2Li4xZWFkNDAyN2U5Zjg2Yzg1MTg1ZWUz
ZTMwNWI2OWJlNzQxM2NkZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuaApAQCAtMzEsNiArMzEsOSBAQAogI2luY2x1ZGUgIlN0
cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworY2xhc3Mg
R3JhcGg7Cit9CiAKIGNsYXNzIEN1c3RvbUdldHRlclNldHRlciBmaW5hbCA6IHB1YmxpYyBKU0Nl
bGwgewogcHVibGljOgpAQCAtNDAsMTUgKzQzLDE2IEBAIGNsYXNzIEN1c3RvbUdldHRlclNldHRl
ciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIHR5cGVkZWYgUHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmMgQ3VzdG9tR2V0dGVyOwogICAgIHR5cGVkZWYgUHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmMgQ3VzdG9tU2V0dGVyOwogCi0gICAgc3RhdGljIEN1c3RvbUdldHRlclNldHRlciog
Y3JlYXRlKFZNJiB2bSwgQ3VzdG9tR2V0dGVyIGN1c3RvbUdldHRlciwgQ3VzdG9tU2V0dGVyIGN1
c3RvbVNldHRlcikKKyAgICBzdGF0aWMgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjcmVhdGUoVk0mIHZt
LCBDdXN0b21HZXR0ZXIgY3VzdG9tR2V0dGVyLCBDdXN0b21TZXR0ZXIgY3VzdG9tU2V0dGVyLCBE
T01KSVQ6OkdyYXBoKiBkb21KSVQgPSBudWxscHRyKQogICAgIHsKLSAgICAgICAgQ3VzdG9tR2V0
dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2Vs
bDxDdXN0b21HZXR0ZXJTZXR0ZXI+KHZtLmhlYXApKSBDdXN0b21HZXR0ZXJTZXR0ZXIodm0sIGN1
c3RvbUdldHRlciwgY3VzdG9tU2V0dGVyKTsKKyAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBj
dXN0b21HZXR0ZXJTZXR0ZXIgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxDdXN0b21HZXR0
ZXJTZXR0ZXI+KHZtLmhlYXApKSBDdXN0b21HZXR0ZXJTZXR0ZXIodm0sIGN1c3RvbUdldHRlciwg
Y3VzdG9tU2V0dGVyLCBkb21KSVQpOwogICAgICAgICBjdXN0b21HZXR0ZXJTZXR0ZXItPmZpbmlz
aENyZWF0aW9uKHZtKTsKICAgICAgICAgcmV0dXJuIGN1c3RvbUdldHRlclNldHRlcjsKICAgICB9
CiAKICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6OkN1c3RvbUdldHRlciBnZXR0ZXIoKSBjb25zdCB7
IHJldHVybiBtX2dldHRlcjsgfQogICAgIEN1c3RvbUdldHRlclNldHRlcjo6Q3VzdG9tU2V0dGVy
IHNldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGVyOyB9CisgICAgRE9NSklUOjpHcmFwaCog
ZG9tSklUKCkgY29uc3QgeyByZXR1cm4gbV9kb21KSVQ7IH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTU4LDE1ICs2MiwxNyBAQCBjbGFzcyBDdXN0
b21HZXR0ZXJTZXR0ZXIgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICBERUNMQVJFX0VYUE9S
VF9JTkZPOwogCiBwcml2YXRlOgotICAgIEN1c3RvbUdldHRlclNldHRlcihWTSYgdm0sIEN1c3Rv
bUdldHRlciBnZXR0ZXIsIEN1c3RvbVNldHRlciBzZXR0ZXIpCisgICAgQ3VzdG9tR2V0dGVyU2V0
dGVyKFZNJiB2bSwgQ3VzdG9tR2V0dGVyIGdldHRlciwgQ3VzdG9tU2V0dGVyIHNldHRlciwgRE9N
SklUOjpHcmFwaCogZG9tSklUKQogICAgICAgICA6IEpTQ2VsbCh2bSwgdm0uY3VzdG9tR2V0dGVy
U2V0dGVyU3RydWN0dXJlLmdldCgpKQogICAgICAgICAsIG1fZ2V0dGVyKGdldHRlcikKICAgICAg
ICAgLCBtX3NldHRlcihzZXR0ZXIpCisgICAgICAgICwgbV9kb21KSVQoZG9tSklUKQogICAgIHsK
ICAgICB9CiAKICAgICBDdXN0b21HZXR0ZXIgbV9nZXR0ZXI7CiAgICAgQ3VzdG9tU2V0dGVyIG1f
c2V0dGVyOworICAgIERPTUpJVDo6R3JhcGgqIG1fZG9tSklUOwogfTsKIAogSlNfRVhQT1JUX1BS
SVZBVEUgYm9vbCBjYWxsQ3VzdG9tU2V0dGVyKEV4ZWNTdGF0ZSosIEN1c3RvbUdldHRlclNldHRl
cjo6Q3VzdG9tU2V0dGVyLCBib29sIGlzQWNjZXNzb3IsIEpTVmFsdWUgdGhpc1ZhbHVlLCBKU1Zh
bHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDY5NWJm
YjcyZWZkNDY3NmZmYWIxYmQ1YzYyZGQyNjQ1NzgwNWU4OTAuLmE2MDlhNDhjOTA4NmM0M2JkNGZi
ZTE1Y2I3ZWQ5OWM3Mzg0NGY5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuaApAQCAtMTI5MCw3ICsxMjkwLDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpTT2JqZWN0
OjpmaWxsQ3VzdG9tR2V0dGVyUHJvcGVydHlTbG90KFByb3BlcnR5U2xvdCYgc2xvdCwgSlMKIAog
ICAgIC8vIFRoaXMgYWNjZXNzIGlzIGNhY2hlYWJsZSBiZWNhdXNlIFN0cnVjdHVyZSByZXF1aXJl
cyBhbiBhdHRyaWJ1dGVDaGFuZ2VkVHJhbnNpdGlvbgogICAgIC8vIGlmIHRoaXMgcHJvcGVydHkg
c3RvcHMgYmVpbmcgYW4gYWNjZXNzb3IuCi0gICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhp
cywgYXR0cmlidXRlcywganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+KGN1c3RvbUdldHRlclNl
dHRlciktPmdldHRlcigpKTsKKyAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzLCBhdHRy
aWJ1dGVzLCBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oY3VzdG9tR2V0dGVyU2V0dGVyKS0+
Z2V0dGVyKCksIGpzQ2FzdDxDdXN0b21HZXR0ZXJTZXR0ZXIqPihjdXN0b21HZXR0ZXJTZXR0ZXIp
LT5kb21KSVQoKSk7CiB9CiAKIC8vIEl0IG1heSBzZWVtIGNyYXp5IHRvIGlubGluZSBhIGZ1bmN0
aW9uIHRoaXMgbGFyZ2UsIGVzcGVjaWFsbHkgYSB2aXJ0dWFsIGZ1bmN0aW9uLApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAppbmRleCA2OTJkN2M3ODlmZWQ0N2I1YWQ3NDBjOWJk
YTcyYzY2MjRhNjVhNGU3Li5kOTcwNDU2Yzg5NjA4MGMwYjRmNWFhZDNlYmI0NmNhOTYzYWNiZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaApAQCAtMjMsNiArMjMsNyBA
QAogI2luY2x1ZGUgIkJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmgiCiAjaW5jbHVkZSAiQ2Fs
bEZyYW1lLmgiCiAjaW5jbHVkZSAiQ3VzdG9tR2V0dGVyU2V0dGVyLmgiCisjaW5jbHVkZSAiRE9N
SklUR3JhcGguaCIKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmll
cklubGluZXMuaCIKICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKQEAgLTQ2LDYgKzQ3LDcgQEAgdHlw
ZWRlZiBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBHZXRGdW5jdGlvbjsKIHR5cGVkZWYgUHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmMgUHV0RnVuY3Rpb247CiB0eXBlZGVmIEZ1bmN0aW9u
RXhlY3V0YWJsZSogKCpCdWlsdGluR2VuZXJhdG9yKShWTSYpOwogdHlwZWRlZiBKU1ZhbHVlICgq
TGF6eVByb3BlcnR5Q2FsbGJhY2spKFZNJiwgSlNPYmplY3QqKTsKK3R5cGVkZWYgRE9NSklUOjpH
cmFwaCogKCpET01KSVRHcmFwaEdlbmVyYXRvcikodm9pZCk7CiAKIC8vIEhhc2ggdGFibGUgZ2Vu
ZXJhdGVkIGJ5IHRoZSBjcmVhdGVfaGFzaF90YWJsZSBzY3JpcHQuCiBzdHJ1Y3QgSGFzaFRhYmxl
VmFsdWUgewpAQCAtNzgsNiArODAsOCBAQCBzdHJ1Y3QgSGFzaFRhYmxlVmFsdWUgewogICAgIEdl
dEZ1bmN0aW9uIHByb3BlcnR5R2V0dGVyKCkgY29uc3QgeyBBU1NFUlQoIShtX2F0dHJpYnV0ZXMg
JiBCdWlsdGluT3JGdW5jdGlvbk9yQWNjZXNzb3JPckxhenlQcm9wZXJ0eU9yQ29uc3RhbnQpKTsg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8R2V0RnVuY3Rpb24+KG1fdmFsdWVzLnZhbHVlMSk7IH0K
ICAgICBQdXRGdW5jdGlvbiBwcm9wZXJ0eVB1dHRlcigpIGNvbnN0IHsgQVNTRVJUKCEobV9hdHRy
aWJ1dGVzICYgQnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29yT3JMYXp5UHJvcGVydHlPckNvbnN0
YW50KSk7IHJldHVybiByZWludGVycHJldF9jYXN0PFB1dEZ1bmN0aW9uPihtX3ZhbHVlcy52YWx1
ZTIpOyB9CiAKKyAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdCB7IEFTU0VSVChtX2F0
dHJpYnV0ZXMgJiBET01KSVRBdHRyaWJ1dGUpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxET01K
SVRHcmFwaEdlbmVyYXRvcj4obV92YWx1ZXMudmFsdWUxKSgpOyB9CisKICAgICBOYXRpdmVGdW5j
dGlvbiBhY2Nlc3NvckdldHRlcigpIGNvbnN0IHsgQVNTRVJUKG1fYXR0cmlidXRlcyAmIEFjY2Vz
c29yKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KG1fdmFsdWVzLnZh
bHVlMSk7IH0KICAgICBOYXRpdmVGdW5jdGlvbiBhY2Nlc3NvclNldHRlcigpIGNvbnN0IHsgQVNT
RVJUKG1fYXR0cmlidXRlcyAmIEFjY2Vzc29yKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KG1fdmFsdWVzLnZhbHVlMik7IH0KICAgICBCdWlsdGluR2VuZXJhdG9yIGJ1
aWx0aW5BY2Nlc3NvckdldHRlckdlbmVyYXRvcigpIGNvbnN0OwpAQCAtMjI0LDYgKzIyOCwxMiBA
QCBpbmxpbmUgYm9vbCBnZXRTdGF0aWNQcm9wZXJ0eVNsb3RGcm9tVGFibGUoVk0mIHZtLCBjb25z
dCBIYXNoVGFibGUmIHRhYmxlLCBKU09iagogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
KyAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIERPTUpJVEF0dHJpYnV0ZSkgeworICAgICAg
ICBET01KSVQ6OkdyYXBoKiBkb21KSVQgPSBlbnRyeS0+ZG9tSklUKCk7CisgICAgICAgIHNsb3Qu
c2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoZW50
cnktPmF0dHJpYnV0ZXMoKSksIGRvbUpJVC0+Z2V0dGVyKCksIGRvbUpJVCk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKwogICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmpl
Y3QsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoZW50cnktPmF0dHJpYnV0ZXMoKSksIGVudHJ5LT5w
cm9wZXJ0eUdldHRlcigpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI1OSw2ICsyNjksNyBA
QCBpbmxpbmUgYm9vbCBwdXRFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEhhc2hUYWJsZVZh
bHVlKiBlbnRyeSwgSlNPYmplY3QqIGJhcwogICAgICAgICByZXR1cm4gcmVqZWN0KGV4ZWMsIHNs
b3QuaXNTdHJpY3RNb2RlKCksIFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcik7
CiAKICAgICBpZiAoIShlbnRyeS0+YXR0cmlidXRlcygpICYgUmVhZE9ubHkpKSB7CisgICAgICAg
IEFTU0VSVCghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBET01KSVRBdHRyaWJ1dGUpKTsKICAgICAg
ICAgYm9vbCBpc0FjY2Vzc29yID0gZW50cnktPmF0dHJpYnV0ZXMoKSAmIEN1c3RvbUFjY2Vzc29y
OwogICAgICAgICBKU1ZhbHVlIHVwZGF0ZVRoaXNWYWx1ZSA9IGVudHJ5LT5hdHRyaWJ1dGVzKCkg
JiBDdXN0b21BY2Nlc3NvciA/IHNsb3QudGhpc1ZhbHVlKCkgOiBKU1ZhbHVlKGJhc2UpOwogICAg
ICAgICBib29sIHJlc3VsdCA9IGNhbGxDdXN0b21TZXR0ZXIoZXhlYywgZW50cnktPnByb3BlcnR5
UHV0dGVyKCksIGlzQWNjZXNzb3IsIHVwZGF0ZVRoaXNWYWx1ZSwgdmFsdWUpOwpAQCAtMzM2LDYg
KzM0NywxMyBAQCBpbmxpbmUgdm9pZCByZWlmeVN0YXRpY1Byb3BlcnR5KFZNJiB2bSwgY29uc3Qg
UHJvcGVydHlOYW1lJiBwcm9wZXJ0eU5hbWUsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBpZiAodmFsdWUuYXR0cmlidXRlcygpICYgRE9NSklUQXR0cmlidXRlKSB7CisgICAg
ICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IHZhbHVlLmRvbUpJVCgpOworICAgICAgICBDdXN0
b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IEN1c3RvbUdldHRlclNldHRlcjo6
Y3JlYXRlKHZtLCBkb21KSVQtPmdldHRlcigpLCBkb21KSVQtPnNldHRlcigpLCBkb21KSVQpOwor
ICAgICAgICB0aGlzT2JqLnB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBwcm9wZXJ0eU5hbWUs
IGN1c3RvbUdldHRlclNldHRlciwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSh2YWx1ZS5hdHRyaWJ1
dGVzKCkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEN1c3RvbUdldHRlclNldHRl
ciogY3VzdG9tR2V0dGVyU2V0dGVyID0gQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIHZh
bHVlLnByb3BlcnR5R2V0dGVyKCksIHZhbHVlLnByb3BlcnR5UHV0dGVyKCkpOwogICAgIHRoaXNP
YmoucHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHByb3BlcnR5TmFtZSwgY3VzdG9tR2V0dGVy
U2V0dGVyLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHZhbHVlLmF0dHJpYnV0ZXMoKSkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuaAppbmRleCBlMTM3
ZDg0NWQ1ZmMzMTM4ODY1ZDE3NmEyMmE3ZTNiZDUxN2NlYjEzLi4zNDRjMTQ4Zjk5M2Q5NTU2OWY3
ZGM5N2RmMjY0NzJlN2JmYWU3ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9wZXJ0eVNsb3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm9wZXJ0eVNsb3QuaApAQCAtMjYsNyArMjYsOSBAQAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+CiAKIG5hbWVzcGFjZSBKU0MgewotCituYW1lc3BhY2UgRE9NSklUIHsKK2NsYXNzIEdy
YXBoOworfQogY2xhc3MgRXhlY1N0YXRlOwogY2xhc3MgR2V0dGVyU2V0dGVyOwogY2xhc3MgSlNP
YmplY3Q7CkBAIC00OCw2ICs1MCw3IEBAIGVudW0gQXR0cmlidXRlIHsKICAgICBDZWxsUHJvcGVy
dHkgICAgICA9IDEgPDwgMTEsIC8vIHByb3BlcnR5IGlzIGEgbGF6eSBwcm9wZXJ0eSAtIG9ubHkg
dXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIENsYXNzU3RydWN0dXJlICAgID0gMSA8PCAx
MiwgLy8gcHJvcGVydHkgaXMgYSBsYXp5IGNsYXNzIHN0cnVjdHVyZSAtIG9ubHkgdXNlZCBieSBz
dGF0aWMgaGFzaHRhYmxlcwogICAgIFByb3BlcnR5Q2FsbGJhY2sgID0gMSA8PCAxMywgLy8gcHJv
cGVydHkgdGhhdCBpcyBhIGxhenkgcHJvcGVydHkgY2FsbGJhY2sgLSBvbmx5IHVzZWQgYnkgc3Rh
dGljIGhhc2h0YWJsZXMKKyAgICBET01KSVRBdHRyaWJ1dGUgICA9IDEgPDwgMTQsIC8vIHByb3Bl
cnR5IGlzIGEgRE9NIEpJVCBhdHRyaWJ1dGUgLSBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJs
ZXMKICAgICBCdWlsdGluT3JGdW5jdGlvbiA9IEJ1aWx0aW4gfCBGdW5jdGlvbiwgLy8gaGVscGVy
IG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uT3JM
YXp5UHJvcGVydHkgPSBCdWlsdGluIHwgRnVuY3Rpb24gfCBDZWxsUHJvcGVydHkgfCBDbGFzc1N0
cnVjdHVyZSB8IFByb3BlcnR5Q2FsbGJhY2ssIC8vIGhlbHBlciBvbmx5IHVzZWQgYnkgc3RhdGlj
IGhhc2h0YWJsZXMKICAgICBCdWlsdGluT3JGdW5jdGlvbk9yQWNjZXNzb3JPckxhenlQcm9wZXJ0
eSA9IEJ1aWx0aW4gfCBGdW5jdGlvbiB8IEFjY2Vzc29yIHwgQ2VsbFByb3BlcnR5IHwgQ2xhc3NT
dHJ1Y3R1cmUgfCBQcm9wZXJ0eUNhbGxiYWNrLCAvLyBoZWxwZXIgb25seSB1c2VkIGJ5IHN0YXRp
YyBoYXNodGFibGVzCkBAIC0xNTcsNiArMTYwLDExIEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAg
ICAgICAgIHJldHVybiBtX3dhdGNocG9pbnRTZXQ7CiAgICAgfQogCisgICAgRE9NSklUOjpHcmFw
aCogZG9tSklUKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RvbUpJVDsKKyAgICB9
CisKICAgICB2b2lkIHNldFZhbHVlKEpTT2JqZWN0KiBzbG90QmFzZSwgdW5zaWduZWQgYXR0cmli
dXRlcywgSlNWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09
IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykpOwpAQCAtMjExLDcgKzIxOSw3IEBA
IGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAgICAgIG1fb2Zmc2V0ID0gaW52YWxpZE9mZnNldDsK
ICAgICB9CiAgICAgCi0gICAgdm9pZCBzZXRDYWNoZWFibGVDdXN0b20oSlNPYmplY3QqIHNsb3RC
YXNlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBHZXRWYWx1ZUZ1bmMgZ2V0VmFsdWUpCisgICAgdm9p
ZCBzZXRDYWNoZWFibGVDdXN0b20oSlNPYmplY3QqIHNsb3RCYXNlLCB1bnNpZ25lZCBhdHRyaWJ1
dGVzLCBHZXRWYWx1ZUZ1bmMgZ2V0VmFsdWUsIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IG51bGxw
dHIpCiAgICAgewogICAgICAgICBBU1NFUlQoYXR0cmlidXRlcyA9PSBhdHRyaWJ1dGVzRm9yU3Ry
dWN0dXJlKGF0dHJpYnV0ZXMpKTsKICAgICAgICAgCkBAIC0yMjMsNiArMjMxLDcgQEAgY2xhc3Mg
UHJvcGVydHlTbG90IHsKICAgICAgICAgbV9zbG90QmFzZSA9IHNsb3RCYXNlOwogICAgICAgICBt
X3Byb3BlcnR5VHlwZSA9IFR5cGVDdXN0b207CiAgICAgICAgIG1fb2Zmc2V0ID0gIWludmFsaWRP
ZmZzZXQ7CisgICAgICAgIG1fZG9tSklUID0gZG9tSklUOwogICAgIH0KIAogICAgIHZvaWQgc2V0
Q3VzdG9tR2V0dGVyU2V0dGVyKEpTT2JqZWN0KiBzbG90QmFzZSwgdW5zaWduZWQgYXR0cmlidXRl
cywgQ3VzdG9tR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIpCkBAIC0zMTgsNiArMzI3LDcgQEAg
Y2xhc3MgUHJvcGVydHlTbG90IHsKICAgICBDYWNoZWFiaWxpdHlUeXBlIG1fY2FjaGVhYmlsaXR5
OwogICAgIFByb3BlcnR5VHlwZSBtX3Byb3BlcnR5VHlwZTsKICAgICBJbnRlcm5hbE1ldGhvZFR5
cGUgbV9pbnRlcm5hbE1ldGhvZFR5cGU7CisgICAgRE9NSklUOjpHcmFwaCogbV9kb21KSVQgeyBu
dWxscHRyIH07CiAgICAgYm9vbCBtX2lzVGFpbnRlZEJ5T3BhcXVlT2JqZWN0OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmggYi9Tb3VyY2UvV1RGL3d0Zi9T
dGRMaWJFeHRyYXMuaAppbmRleCBiYTA0OWZhODdkZmExYzllM2ZhNThlYjRiMGQzMjNjZmQ2OTZi
NTIxLi41ZjM4OGViNGYwZjI1NDc2NzIyOWY5NWIzOTZhMTVkN2Y2ZjAzMTgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TdGRM
aWJFeHRyYXMuaApAQCAtNjgsNiArNjgsOCBAQAogLy8gTlVMTCBjYW4gY2F1c2UgY29tcGlsZXIg
cHJvYmxlbXMsIGVzcGVjaWFsbHkgaW4gY2FzZXMgb2YgbXVsdGlwbGUgaW5oZXJpdGFuY2UuCiAj
ZGVmaW5lIE9CSkVDVF9PRkZTRVRPRihjbGFzcywgZmllbGQpIChyZWludGVycHJldF9jYXN0PHB0
cmRpZmZfdD4oJihyZWludGVycHJldF9jYXN0PGNsYXNzKj4oMHg0MDAwKS0+ZmllbGQpKSAtIDB4
NDAwMCkKIAorI2RlZmluZSBDQVNUX09GRlNFVChmcm9tLCB0bykgKHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90PihzdGF0aWNfY2FzdDx0bz4oKHJlaW50ZXJwcmV0X2Nhc3Q8ZnJvbT4oMHg0MDAw
KSkpKSAtIDB4NDAwMCkKKwogLy8gU1RSSU5HSVpFOiBDYW4gY29udmVydCBhbnkgdmFsdWUgdG8g
cXVvdGVkIHN0cmluZywgZXZlbiBleHBhbmRhYmxlIG1hY3JvcwogI2RlZmluZSBTVFJJTkdJWkUo
ZXhwKSAjZXhwCiAjZGVmaW5lIFNUUklOR0laRV9WQUxVRV9PRihleHApIFNUUklOR0laRShleHAp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9kb21qaXQvRE9N
SklUR3JhcGguaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2RvbWppdC9ET01K
SVRHcmFwaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ODAzYzdmOGJmNTQ0NmNkNGJlNWMzODRjZGI0YzUxYjMy
NjE3YzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9kb21qaXQvRE9NSklUR3JhcGguaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9G
V0RfRE9NSklUR3JhcGhfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9ET01KSVRHcmFwaF9oCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRE9NSklUR3JhcGguaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUVmbC5jbWFrZQppbmRleCA2ZjY4N2U4ZWNkNzNkYTg4YjQ5ZDg3OTc1OGNhYmQ1NTY3ZjAzNzJh
Li43ZTk5YTQ5MWU2NDg3NmQwY2E4NjEzYWRjNDkyMDNjYmE0ZmQ2MTlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUVmbC5jbWFrZQpAQCAtMTQsNiArMTQsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xV
REVfRElSRUNUT1JJRVMKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVjb21waWxlciIK
ICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RmZyIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L2Rpc2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RvbWppdCIKICAg
ICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2hlYXAiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9kZWJ1Z2dlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2ludGVycHJldGVyIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBiMTUzZTQwMjRkMTVlOWE0Nzk2NDcwMzdlNjVlNmUx
YjZkMzZhMDhmLi4wNDY2Y2U1YTZhZmRjNjliYmFjNWY1ZjVmNzVlZjM1ZjAxNWU5ZGI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTksNiArMTksNyBAQCBsaXN0KEFQUEVORCBXZWJD
b3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVj
b21waWxlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RmZyIKICAgICAiJHtKQVZBU0NS
SVBUQ09SRV9ESVJ9L2Rpc2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Rv
bWppdCIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2hlYXAiCiAgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9kZWJ1Z2dlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2ludGVycHJl
dGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCAzNGI4ZGIyNzBiZjY5NGIyZTA3ZDE4
NDkxYWE4NzQ2NzQzNTY3ZmM4Li5iYzQ3YzRlYWFkZDY2OWI0NTRmNzY4NmJhMzIyNTRlY2MxODZj
ODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtODAsNiArODAsNyBAQCBsaXN0KEFQ
UEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vRm9y
d2FyZGluZ0hlYWRlcnMvYmluZGluZ3MiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdI
ZWFkZXJzL2J5dGVjb2RlIgogICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9k
ZWJ1Z2dlciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvZG9taml0Igog
ICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9oZWFwIgogICAgICIke1dFQkNP
UkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IiCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L0ZvcndhcmRpbmdIZWFkZXJzL2ludGVycHJldGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpp
bmRleCBhZWQ4ZGViMGEyODg3N2Q5NTY2ZDM3OGJkNTlhZGNkMGVmOGE3Y2VkLi5hMzhmZTE5M2Vj
Y2EzMDdkMTU5NWFiNGJhMzdhZjI1YzZjNTIxMGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFr
ZQpAQCAtMTUsNiArMTUsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIiCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2Fy
ZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvZGZnIgogICAgICIke0RFUklWRURfU09VUkNFU19E
SVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlciIKKyAgICAi
JHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9k
b21qaXQiCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2
YVNjcmlwdENvcmUvaGVhcCIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5n
SGVhZGVycy9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlciIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNf
RElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlciIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3
NmE4ZGVkOGNhODE3YjFhNDM2NzEzYjFhNGU4MzQwYmM3ZTU3ZTAzLi4yYmM2ZDUwNzViYzBmZmUz
NGNmODU2Y2VlYzc1ZTM3Zjc3YmQwZjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDgzMiw2ICsxNDgzMiw3IEBACiAJCQkJ
RjUyM0QxODQwMkRFNDJFODAxODYzNUNBIC8qIGNzcyAqLywKIAkJCQkyNkI5OTk4RDE4MDNBREZB
MDBEMDExMjEgLyogY3Nzaml0ICovLAogCQkJCUY1MjNEMzI0MDJERTQ0NzgwMTg2MzVDQSAvKiBk
b20gKi8sCisJCQkJRTNGRTJBM0ExRDlGMTVCNTAwQzUwQjFGIC8qIGRvbWppdCAqLywKIAkJCQk5
MzMwOUQ4NjA5OUU2NDkxMDA1NkU1ODEgLyogZWRpdGluZyAqLywKIAkJCQk5NzZENkM1NzEyMkI4
QTE4MDAxRkQxRjcgLyogZmlsZWFwaSAqLywKIAkJCQk1MTc0MUQwODBCMDcyNTcwMDBFRDQ0MkMg
LyogaGlzdG9yeSAqLywKQEAgLTIyMjQzLDYgKzIyMjQ0LDEzIEBACiAJCQluYW1lID0gQ3J5cHRv
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTNGRTJBM0ExRDlGMTVCNTAw
QzUwQjFGIC8qIGRvbWppdCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkpOworCQkJcGF0aCA9IGRvbWppdDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCUU0NkU5Nzg2MERBQUQ2MUIwMDcxRTg5NCAvKiBhbmltYXRpb24gKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggZDQwYzQzZjYzZDU3ZTdlNTk3MGM3
ZTYyZWZhODU2YWU2NGUzMmYyOS4uMTE2ZDVkZGY1MTk5MzdmYzY2MTM1NWEyYzg5YmViYjM4MDVi
YzJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5oCkBAIC03Miw2ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBET01X
cmFwcGVyV29ybGQmIHdvcmxkKCkgeyByZXR1cm4gbV93b3JsZC5nZXQoKTsgfQogICAgICAgICBi
b29sIHdvcmxkSXNOb3JtYWwoKSBjb25zdCB7IHJldHVybiBtX3dvcmxkSXNOb3JtYWw7IH0KKyAg
ICAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldvcmxkSXNOb3JtYWwoKSB7IHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoSlNET01HbG9iYWxPYmplY3QsIG1fd29ybGRJc05vcm1hbCk7IH0KIAog
ICAgICAgICBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucyYgYnVpbHRpbkludGVybmFsRnVuY3Rp
b25zKCkgeyByZXR1cm4gbV9idWlsdGluSW50ZXJuYWxGdW5jdGlvbnM7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAppbmRleCA2MjUxMGNkYzI1YWViZGFmZjli
YTIzNTA3NWJjOTc0NDQ3M2U5OGNhLi4wMDlmNmRmMDdlZWIxMTYyMDAxOGI4MzI1YjkwZWM1MjI3
MzExZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBw
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApAQCAt
NTksNiArNTksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBJbXBsZW1lbnRhdGlvbkNsYXNzPiBjbGFz
cyBKU0RPTVdyYXBwZXIgOiBwdWJsaWMgSlNET01PYmplY3QgewogICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBpc0RPTVdyYXBwZXIgPSB0cnVlOwogCiAgICAgSW1wbGVtZW50YXRpb25DbGFzcyYg
d3JhcHBlZCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8SW1wbGVtZW50YXRpb25DbGFzcyY+
KG1fd3JhcHBlZC5nZXQoKSk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV3JhcHBl
ZCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0RPTVdyYXBwZXI8SW1wbGVtZW50YXRpb25D
bGFzcz4sIG1fd3JhcHBlZCk7IH0KIAogcHJvdGVjdGVkOgogICAgIEpTRE9NV3JhcHBlcihKU0M6
OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qs
IFJlZjxJbXBsZW1lbnRhdGlvbkNsYXNzPiYmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IDVkOTMyNjExNGFhNmYwYzFkNGYwYjdiY2Ux
NjRhMTIzOGUyNmE5MGMuLjJlNTgyYmI1MGJjOTllYWIzYjA4NjFkY2UwZjg5NzhiN2JjOTU0ZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCkBAIC00
Nyw2ICs0Nyw3IEBAIGNsYXNzIFNjcmlwdFdyYXBwYWJsZSB7CiAgICAgSlNET01PYmplY3QqIHdy
YXBwZXIoKSBjb25zdDsKICAgICB2b2lkIHNldFdyYXBwZXIoSlNET01PYmplY3QqLCBKU0M6Oldl
YWtIYW5kbGVPd25lciosIHZvaWQqKTsKICAgICB2b2lkIGNsZWFyV3JhcHBlcihKU0RPTU9iamVj
dCopOworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXcmFwcGVyKCkgeyByZXR1cm4gT0JK
RUNUX09GRlNFVE9GKFNjcmlwdFdyYXBwYWJsZSwgbV93cmFwcGVyKTsgfQogCiBwcm90ZWN0ZWQ6
CiAgICAgflNjcmlwdFdyYXBwYWJsZSgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA5NjcwYzU3MTBmZjgzMDIwNzA3
ZjdkN2MwZDJmZDk2N2IyMmRhOTlmLi4wNzQ4MjRlMjJhNmQxYTljMmI1NGFhMjRhYzA2NDQwMDNi
MDY3OWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQpAQCAtNjI2LDYgKzYyNiw3IEBAIHN1YiBHZXRKU0NBdHRyaWJ1dGVzRm9y
QXR0cmlidXRlCiAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RW51bSIpIGlmICgkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb3RFbnVtZXJhYmxlIn0gfHwgJGlz
X2dsb2JhbF9jb25zdHJ1Y3Rvcik7CiAgICAgcHVzaChAc3BlY2lhbHMsICJSZWFkT25seSIpIGlm
IElzUmVhZG9ubHkoJGF0dHJpYnV0ZSk7CiAgICAgcHVzaChAc3BlY2lhbHMsICJDdXN0b21BY2Nl
c3NvciIpIHVubGVzcyAkaXNfZ2xvYmFsX2NvbnN0cnVjdG9yIG9yIElzSlNCdWlsdGluKCRpbnRl
cmZhY2UsICRhdHRyaWJ1dGUpOworICAgIHB1c2goQHNwZWNpYWxzLCAiRE9NSklUQXR0cmlidXRl
IikgaWYgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklU
In07CiAgICAgcHVzaChAc3BlY2lhbHMsICJBY2Nlc3NvciB8IEJ1aWx0aW4iKSBpZiAgSXNKU0J1
aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAgICAgcmV0dXJuIChAc3BlY2lhbHMgPiAw
KSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7CiB9CkBAIC0xMzQ4LDYgKzEzNDksOCBA
QCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBteSAkaGFzRm9yd2FyZERlY2xhcmluZ0Z1bmN0aW9u
cyA9IDA7CiAgICAgbXkgJGhhc0ZvcndhcmREZWNsYXJpbmdBdHRyaWJ1dGVzID0gMDsKIAorICAg
IG15ICRoYXNET01KSVRBdHRyaWJ1dGVzID0gMDsKKwogICAgICMgQXR0cmlidXRlIGFuZCBmdW5j
dGlvbiBlbnVtcwogICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDApIHsKICAgICAgICAgZm9yZWFj
aCAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewpAQCAtMTM2Miw2ICsxMzY1LDcgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICAgICAgJG5lZWRzVmlzaXRDaGlsZHJlbiA9IDE7
CiAgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNv
bmRpdGlvbmFsU3RyaW5nOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgJGhhc0RPTUpJVEF0
dHJpYnV0ZXMgPSAxIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRPTUpJVCJ9OwogCiAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiRm9yd2FyZERlY2xhcmVJbkhlYWRlciJ9KSB7CiAgICAgICAg
ICAgICAgICAgJGhhc0ZvcndhcmREZWNsYXJpbmdBdHRyaWJ1dGVzID0gMTsKQEAgLTE1NzksNiAr
MTU4MywxNSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgfQogICAgIH0KIAorICAgIGlm
ICgkaGFzRE9NSklUQXR0cmlidXRlcykgeworICAgICAgICAkaGVhZGVySW5jbHVkZXN7Ijxkb21q
aXQvRE9NSklUR3JhcGguaD4ifSA9IDE7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIi8v
IERPTUpJVCBlbWl0dGVycyBmb3IgYXR0cmlidXRlc1xuXG4iKTsKKyAgICAgICAgZm9yZWFjaCBt
eSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgICAgICBu
ZXh0IHVubGVzcyAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
T01KSVQifTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkRPTUpJVDo6
R3JhcGgqIGRvbUpJVEdyYXBoRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gIih2b2lkKTtcbiIp
OworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKEhhc0N1c3RvbUNvbnN0cnVjdG9yKCRpbnRl
cmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIvLyBDdXN0b20gY29uc3Ry
dWN0b3JcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdCR7Y2xhc3NOYW1lfShKU0M6OkV4ZWNTdGF0ZSYp
O1xuXG4iKTsKQEAgLTE2NTUsMTQgKzE2NjgsMTkgQEAgc3ViIEdlbmVyYXRlUHJvcGVydGllc0hh
c2hUYWJsZQogICAgICAgICBteSAkc3BlY2lhbCA9IEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1
dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgIHB1c2goQCRoYXNoU3BlY2lhbHMs
ICRzcGVjaWFsKTsKIAotICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFt
ZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgcHVzaChAJGhh
c2hWYWx1ZTEsICRnZXR0ZXIpOwotCi0gICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUp
KSB7CisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJET01KSVQifSkgeworICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTEsICJkb21KSVRH
cmFwaEZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3Qo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSk7CiAgICAgICAgICAgICBwdXNoKEAkaGFzaFZh
bHVlMiwgIjAiKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBH
ZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUp
OwotICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAgICAgICAg
bXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFt
ZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMSwgJGdldHRlcik7
CisKKyAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAg
ICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICIwIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZh
Y2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIHB1c2goQCRoYXNo
VmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIG15
ICRjb25kaXRpb25hbCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNvbmRpdGlvbmFsIn07CkBAIC0yNDU5LDE3ICsyNDc3LDIzIEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSBAc3BlY2lhbHMgPSAoKTsKICAgICAgICAgICAg
IHB1c2goQHNwZWNpYWxzLCAiRG9udERlbGV0ZSIpIHVubGVzcyAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxldGFibGUifTsKICAgICAgICAgICAgIHB1c2go
QHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpOworICAgICAg
ICAgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifTsKICAgICAgICAgICAgIG15
ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIw
IjsKICAgICAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOwogCi0gICAgICAg
ICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xh
c3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTEsICRnZXR0
ZXIpOwotCi0gICAgICAgICAgICBpZiAoSXNSZWFkb25seSgkYXR0cmlidXRlKSkgeworICAgICAg
ICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRP
TUpJVCJ9KSB7CisgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgImRvbUpJVEdyYXBo
Rm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0
cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpKTsKICAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFs
dWUyLCAiMCIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBteSAkc2V0
dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0
cmlidXRlKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAg
ICAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJm
YWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBoYXNo
VmFsdWUxLCAkZ2V0dGVyKTsKKworICAgICAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRy
aWJ1dGUpKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9
IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0
ZSk7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbXkgJGNvbmRpdGlv
bmFsID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0
aW9uYWwifTsKQEAgLTMwMzksNiArMzA2MywzOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKKyAgICAgICAg
ICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01K
SVQifSkgeworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Ijx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4ifSA9IDE7CisgICAgICAgICAgICAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJm
YWNlLT5uYW1lOworICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5uYW1lOworICAgICAgICAgICAgICAgIG15ICRkb21KSVRDbGFzc05hbWUg
PSAiRE9NSklUIiAuICRpbnRlcmZhY2VOYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3Qo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBteSAkZ2V0dGVy
ID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmli
dXRlKTsKKyAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gSXNSZWFkb25seSgkYXR0cmlidXRl
KSA/ICJudWxscHRyIiA6IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNz
TmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgIyBDQVNUX09GRlNFVCgkaW50ZXJm
YWNlTmFtZSosIENvbnRhaW5lck5vZGUqKSArIENvbnRhaW5lck5vZGUKKyAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgImNsYXNzICRkb21KSVRDbGFzc05hbWUgOiBwdWJsaWMgSlND
OjpET01KSVQ6OkdyYXBoIHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAicHVibGljOlxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JGRvbUpJVENsYXNzTmFtZSgpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgOiBKU0M6OkRPTUpJVDo6R3JhcGgoJGdldHRlciwgJHNldHRlciwgSlNDOjpT
cGVjRE9NTm9kZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB1c2lu
ZyBuYW1lc3BhY2UgSlNDOjpET01KSVQ7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgYXBwZW5kKEtpbmQ6OkNoZWNrTm9kZSwgSVI6OnRoaXNWYWx1ZSgp
LCBudWxscHRyKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICAgICBJUiogd3JhcHBlZCA9IGFwcGVuZChLaW5kOjpHZXRXcmFwcGVkLCBJUjo6dGhpc1ZhbHVl
KCksIG51bGxwdHIsIEpTTm9kZTo6b2Zmc2V0T2ZXcmFwcGVkKCkpO1xuIik7CisgICAgICAgICAg
ICAgICAgIyBpZiAoJGF0dHJpYnV0ZU5hbWUgZXEgImZpcnN0Q2hpbGQiIHx8ICRhdHRyaWJ1dGVO
YW1lIGVxICJsYXN0Q2hpbGQiKSB7CisgICAgICAgICAgICAgICAgIyAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIGFwcGVuZChLaW5kOjpDaGVja05vZGVGbGFncywgd3JhcHBlZCwgbnVs
bHB0ciwgTm9kZTo6bm9kZUZsYWdzTWVtb3J5T2Zmc2V0KCksIE5vZGU6OklzQ29udGFpbmVyRmxh
Zyk7XG4iKTsKKyAgICAgICAgICAgICAgICAjIH0KKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgSVIqIHJlc3VsdCA9IGFwcGVuZChLaW5kOjpMb2FkUG9pbnRlciwg
d3JhcHBlZCwgbnVsbHB0ciwgJGludGVyZmFjZU5hbWU6OiR7YXR0cmlidXRlTmFtZX1NZW1vcnlP
ZmZzZXQoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAg
ICAgSVIqIHdyYXBwZXIgPSBhcHBlbmQoS2luZDo6VG9XcmFwcGVyLCByZXN1bHQsIG51bGxwdHIs
IChzdGF0aWNfY2FzdDx1aW50NjRfdD4oSlNET01HbG9iYWxPYmplY3Q6Om9mZnNldE9mV29ybGRJ
c05vcm1hbCgpKSA8PCAzMikgfCAoQ0FTVF9PRkZTRVQoJGludGVyZmFjZU5hbWUqLCBTY3JpcHRX
cmFwcGFibGUqKSArIFNjcmlwdFdyYXBwYWJsZTo6b2Zmc2V0T2ZXcmFwcGVyKCkpLCBiaXR3aXNl
X2Nhc3Q8dWludHB0cl90PihzdGF0aWNfY2FzdDxKU0M6OkVuY29kZWRKU1ZhbHVlICgqKShKU0M6
OkV4ZWNTdGF0ZSosIHZvaWQqLCB2b2lkKik+KFtdKEpTQzo6RXhlY1N0YXRlKiBleGVjLCB2b2lk
KiB3cmFwcGVkLCB2b2lkKiBnbG9iYWxPYmplY3QpIHsgcmV0dXJuIEpTQzo6SlNWYWx1ZTo6ZW5j
b2RlKHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QpLCBzdGF0aWNfY2FzdDxOb2RlKj4od3JhcHBlZCkpKTsgfSkpKTtcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBhcHBlbmQoS2luZDo6UmV0dXJuLCB3
cmFwcGVyLCBudWxscHRyKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIH1cbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifTtcblxu
Iik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RE9NSklUOjpH
cmFwaCogZG9tSklUR3JhcGhGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9y
LT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAiKClcbiIpOworICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPCRkb21KSVRDbGFz
c05hbWU+IGVtaXR0ZXI7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICByZXR1cm4gJmVtaXR0ZXIuZ2V0KCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIn1cblxuIik7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmc7
CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iKTsKQEAgLTUwMDYsMTIgKzUw
NjIsMTQgQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheQogICAgICAgICAgICAgJGZp
cnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJhdG9yPiI7CiAgICAgICAg
IH0gZWxzaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9Db25zdGFudEludGVnZXIvKSB7CiAgICAg
ICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gIiI7CisgICAgICAgIH0gZWxzaWYgKCJAJHNwZWNp
YWxzWyRpXSIgPX4gbS9ET01KSVRBdHRyaWJ1dGUvKSB7CisgICAgICAgICAgICAkZmlyc3RUYXJn
ZXRUeXBlID0gInN0YXRpY19jYXN0PERPTUpJVEdyYXBoR2VuZXJhdG9yPiI7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPiI7CiAgICAgICAgICAgICAkc2Vjb25kVGFyZ2V0VHlwZSA9
ICJzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4iOwogICAgICAgICAg
ICAgJGhhc1NldHRlciA9ICJ0cnVlIjsKICAgICAgICAgfQotICAgICAgICBpZiAoIkAkc3BlY2lh
bHNbJGldIiA9fiBtL0NvbnN0YW50SW50ZWdlci8pIHsKKyAgICAgICAgaWYgKCJAJHNwZWNpYWxz
WyRpXSIgPX4gbS9Db25zdGFudEludGVnZXJ8RE9NSklUQXR0cmlidXRlLykgewogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgeyBcIiRrZXlcIiwgQCRzcGVjaWFsc1skaV0sIE5v
SW50cmluc2ljLCB7IChsb25nIGxvbmcpIiAuICRmaXJzdFRhcmdldFR5cGUgLiAiKEAkdmFsdWUx
WyRpXSkgfSB9LFxuIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB7IFwiJGtleVwiLCBAJHNwZWNpYWxzWyRpXSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KSIgLiAkZmlyc3RUYXJnZXRUeXBlIC4gIihAJHZhbHVlMVskaV0pLCAoaW50cHRy
X3QpICIgLiAkc2Vjb25kVGFyZ2V0VHlwZSAuICIoQCR2YWx1ZTJbJGldKSB9IH0sXG4iKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0Cmlu
ZGV4IGQyODg1YTg0MmQ3NDQwOTkxYzYzODM5NzBjYzdkOWIyYTY1ZjQyNmQuLmZjZWZiMGU4ODc0
NzI4YTEwMjM1ZjFkMzQ5NGI5MDZhZDczNTQ5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dApAQCAtNTQsNiArNTQsNyBAQCBDdXN0
b21SZXR1cm4KIEN1c3RvbVNldFByb3RvdHlwZQogQ3VzdG9tU2V0dGVyCiBDdXN0b21Ub0pTT2Jq
ZWN0CitET01KSVQKIERlbGV0YWJsZQogRG9Ob3RDaGVja0NvbnN0YW50cwogRG9Ob3RDaGVja1Nl
Y3VyaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCA5Y2E3YTE4MzUxYWE5MWFi
ZmFkMmU0YjIzMzgxY2QxMTcwMzUzZTg5Li41YWMyYTdjYjBmZTYzNmM0MGM3N2M5YzQ3MTA2YThl
OWQ0MGY1YzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTQxLDYgKzQxLDcg
QEAgY2xhc3MgQ29udGFpbmVyTm9kZSA6IHB1YmxpYyBOb2RlIHsKICAgICBOb2RlKiBmaXJzdENo
aWxkKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdENoaWxkOyB9CiAgICAgc3RhdGljIHB0cmRpZmZf
dCBmaXJzdENoaWxkTWVtb3J5T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENvbnRh
aW5lck5vZGUsIG1fZmlyc3RDaGlsZCk7IH0KICAgICBOb2RlKiBsYXN0Q2hpbGQoKSBjb25zdCB7
IHJldHVybiBtX2xhc3RDaGlsZDsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3QgbGFzdENoaWxkTWVt
b3J5T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENvbnRhaW5lck5vZGUsIG1fbGFz
dENoaWxkKTsgfQogICAgIGJvb2wgaGFzQ2hpbGROb2RlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmly
c3RDaGlsZDsgfQogICAgIGJvb2wgaGFzT25lQ2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0
Q2hpbGQgJiYgIW1fZmlyc3RDaGlsZC0+bmV4dFNpYmxpbmcoKTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRl
eCBlMjZjMzMyOWVkZDIyZDA4ODAxMjViZTIyZmJkMTYyYjZlN2FhOWJhLi4zNGNlZTFmZDQzOWYw
OWFkZDhkNDJjNjA5ZDA5ZDVhYzFhYTJkZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTEyMCw2ICsxMjAs
NDYgQEAgY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7CiAgICAgICAgIERPQ1VNRU5U
X1BPU0lUSU9OX0NPTlRBSU5FRF9CWSA9IDB4MTAsCiAgICAgICAgIERPQ1VNRU5UX1BPU0lUSU9O
X0lNUExFTUVOVEFUSU9OX1NQRUNJRklDID0gMHgyMCwKICAgICB9OworICAgIGVudW0gTm9kZUZs
YWdzIHsKKyAgICAgICAgSXNUZXh0RmxhZyA9IDEsCisgICAgICAgIElzQ29udGFpbmVyRmxhZyA9
IDEgPDwgMSwKKyAgICAgICAgSXNFbGVtZW50RmxhZyA9IDEgPDwgMiwKKyAgICAgICAgSXNTdHls
ZWRFbGVtZW50RmxhZyA9IDEgPDwgMywKKyAgICAgICAgSXNIVE1MRmxhZyA9IDEgPDwgNCwKKyAg
ICAgICAgSXNTVkdGbGFnID0gMSA8PCA1LAorICAgICAgICBDaGlsZE5lZWRzU3R5bGVSZWNhbGNG
bGFnID0gMSA8PCA3LAorICAgICAgICBJbkRvY3VtZW50RmxhZyA9IDEgPDwgOCwKKyAgICAgICAg
SXNMaW5rRmxhZyA9IDEgPDwgOSwKKyAgICAgICAgSXNVc2VyQWN0aW9uRWxlbWVudCA9IDEgPDwg
MTAsCisgICAgICAgIEhhc1JhcmVEYXRhRmxhZyA9IDEgPDwgMTEsCisgICAgICAgIElzRG9jdW1l
bnRGcmFnbWVudEZsYWcgPSAxIDw8IDEyLAorCisgICAgICAgIC8vIFRoZXNlIGJpdHMgYXJlIHVz
ZWQgYnkgZGVyaXZlZCBjbGFzc2VzLCBwdWxsZWQgdXAgaGVyZSBzbyB0aGV5IGNhbgorICAgICAg
ICAvLyBiZSBzdG9yZWQgaW4gdGhlIHNhbWUgbWVtb3J5IHdvcmQgYXMgdGhlIE5vZGUgYml0cyBh
Ym92ZS4KKyAgICAgICAgSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAxIDw8IDEzLCAv
LyBFbGVtZW50CisKKyAgICAgICAgU3R5bGVDaGFuZ2VNYXNrID0gMSA8PCBub2RlU3R5bGVDaGFu
Z2VTaGlmdCB8IDEgPDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMSkgfCAxIDw8IChub2RlU3R5
bGVDaGFuZ2VTaGlmdCArIDIpLAorICAgICAgICBJc0VkaXRpbmdUZXh0T3JVbmRlZmluZWRDdXN0
b21FbGVtZW50RmxhZyA9IDEgPDwgMTcsCisgICAgICAgIEhhc0ZvY3VzV2l0aGluID0gMSA8PCAx
OCwKKyAgICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAxOSwKKyAg
ICAgICAgSGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjAsCisgICAg
ICAgIEhhc0V2ZW50VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIxLAorICAgICAgICBJc0N1c3RvbUVs
ZW1lbnQgPSAxIDw8IDIyLAorICAgICAgICBJc0luU2hhZG93VHJlZUZsYWcgPSAxIDw8IDIzLAor
ICAgICAgICBJc01hdGhNTEZsYWcgPSAxIDw8IDI0LAorCisgICAgICAgIENoaWxkcmVuQWZmZWN0
ZWRCeUZpcnN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI1LAorICAgICAgICBDaGlsZHJlbkFmZmVj
dGVkQnlMYXN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI2LAorICAgICAgICBDaGlsZHJlbkFmZmVj
dGVkQnlIb3ZlclJ1bGVzRmxhZyA9IDEgPDwgMjcsCisKKyAgICAgICAgRGlyZWN0Q2hpbGROZWVk
c1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgMjgsCisgICAgICAgIEFmZmVjdHNOZXh0U2libGluZ0Vs
ZW1lbnRTdHlsZSA9IDEgPDwgMjksCisgICAgICAgIFN0eWxlSXNBZmZlY3RlZEJ5UHJldmlvdXNT
aWJsaW5nID0gMSA8PCAzMCwKKworICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFn
ID0gMSA8PCAzMSwKKworICAgICAgICBEZWZhdWx0Tm9kZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRy
ZW5GaW5pc2hlZEZsYWcKKyAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQg
c3RhcnRJZ25vcmluZ0xlYWtzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc3Rv
cElnbm9yaW5nTGVha3MoKTsKQEAgLTE1NSw2ICsxOTUsOCBAQCBjbGFzcyBOb2RlIDogcHVibGlj
IEV2ZW50VGFyZ2V0IHsKICAgICBOb2RlKiBwc2V1ZG9Bd2FyZVByZXZpb3VzU2libGluZygpIGNv
bnN0OwogICAgIE5vZGUqIHBzZXVkb0F3YXJlRmlyc3RDaGlsZCgpIGNvbnN0OwogICAgIE5vZGUq
IHBzZXVkb0F3YXJlTGFzdENoaWxkKCkgY29uc3Q7CisgICAgc3RhdGljIHB0cmRpZmZfdCBub2Rl
RmxhZ3NNZW1vcnlPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTm9kZSwgbV9ub2Rl
RmxhZ3MpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCByYXJlRGF0YU1lbW9yeU9mZnNldCgpIHsg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihOb2RlLCBtX2RhdGEubV9yYXJlRGF0YSk7IH0KIAogICAg
IFdFQkNPUkVfRVhQT1JUIGNvbnN0IFVSTCYgYmFzZVVSSSgpIGNvbnN0OwogICAgIApAQCAtNTYw
LDggKzYwMiw2IEBAIGNsYXNzIE5vZGUgOiBwdWJsaWMgRXZlbnRUYXJnZXQgewogICAgIHZvaWQg
dXBkYXRlQW5jZXN0b3JDb25uZWN0ZWRTdWJmcmFtZUNvdW50Rm9ySW5zZXJ0aW9uKCkgY29uc3Q7
CiAKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKLSAgICBzdGF0aWMgcHRyZGlmZl90IG5v
ZGVGbGFnc01lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihOb2RlLCBtX25v
ZGVGbGFncyk7IH0KLSAgICBzdGF0aWMgcHRyZGlmZl90IHJhcmVEYXRhTWVtb3J5T2Zmc2V0KCkg
eyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE5vZGUsIG1fZGF0YS5tX3JhcmVEYXRhKTsgfQogICAg
IHN0YXRpYyBpbnQzMl90IGZsYWdJc1RleHQoKSB7IHJldHVybiBJc1RleHRGbGFnOyB9CiAgICAg
c3RhdGljIGludDMyX3QgZmxhZ0lzRWxlbWVudCgpIHsgcmV0dXJuIElzRWxlbWVudEZsYWc7IH0K
ICAgICBzdGF0aWMgaW50MzJfdCBmbGFnSXNIVE1MKCkgeyByZXR1cm4gSXNIVE1MRmxhZzsgfQpA
QCAtNTc3LDQ3ICs2MTcsNiBAQCBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKICNl
bmRpZiAvLyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKIAogcHJvdGVjdGVkOgotICAgIGVudW0g
Tm9kZUZsYWdzIHsKLSAgICAgICAgSXNUZXh0RmxhZyA9IDEsCi0gICAgICAgIElzQ29udGFpbmVy
RmxhZyA9IDEgPDwgMSwKLSAgICAgICAgSXNFbGVtZW50RmxhZyA9IDEgPDwgMiwKLSAgICAgICAg
SXNTdHlsZWRFbGVtZW50RmxhZyA9IDEgPDwgMywKLSAgICAgICAgSXNIVE1MRmxhZyA9IDEgPDwg
NCwKLSAgICAgICAgSXNTVkdGbGFnID0gMSA8PCA1LAotICAgICAgICBDaGlsZE5lZWRzU3R5bGVS
ZWNhbGNGbGFnID0gMSA8PCA3LAotICAgICAgICBJbkRvY3VtZW50RmxhZyA9IDEgPDwgOCwKLSAg
ICAgICAgSXNMaW5rRmxhZyA9IDEgPDwgOSwKLSAgICAgICAgSXNVc2VyQWN0aW9uRWxlbWVudCA9
IDEgPDwgMTAsCi0gICAgICAgIEhhc1JhcmVEYXRhRmxhZyA9IDEgPDwgMTEsCi0gICAgICAgIElz
RG9jdW1lbnRGcmFnbWVudEZsYWcgPSAxIDw8IDEyLAotCi0gICAgICAgIC8vIFRoZXNlIGJpdHMg
YXJlIHVzZWQgYnkgZGVyaXZlZCBjbGFzc2VzLCBwdWxsZWQgdXAgaGVyZSBzbyB0aGV5IGNhbgot
ICAgICAgICAvLyBiZSBzdG9yZWQgaW4gdGhlIHNhbWUgbWVtb3J5IHdvcmQgYXMgdGhlIE5vZGUg
Yml0cyBhYm92ZS4KLSAgICAgICAgSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAxIDw8
IDEzLCAvLyBFbGVtZW50Ci0KLSAgICAgICAgU3R5bGVDaGFuZ2VNYXNrID0gMSA8PCBub2RlU3R5
bGVDaGFuZ2VTaGlmdCB8IDEgPDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMSkgfCAxIDw8IChu
b2RlU3R5bGVDaGFuZ2VTaGlmdCArIDIpLAotICAgICAgICBJc0VkaXRpbmdUZXh0T3JVbmRlZmlu
ZWRDdXN0b21FbGVtZW50RmxhZyA9IDEgPDwgMTcsCi0gICAgICAgIEhhc0ZvY3VzV2l0aGluID0g
MSA8PCAxOCwKLSAgICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAx
OSwKLSAgICAgICAgSGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjAs
Ci0gICAgICAgIEhhc0V2ZW50VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIxLAotICAgICAgICBJc0N1
c3RvbUVsZW1lbnQgPSAxIDw8IDIyLAotICAgICAgICBJc0luU2hhZG93VHJlZUZsYWcgPSAxIDw8
IDIzLAotICAgICAgICBJc01hdGhNTEZsYWcgPSAxIDw8IDI0LAotCi0gICAgICAgIENoaWxkcmVu
QWZmZWN0ZWRCeUZpcnN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI1LAotICAgICAgICBDaGlsZHJl
bkFmZmVjdGVkQnlMYXN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI2LAotICAgICAgICBDaGlsZHJl
bkFmZmVjdGVkQnlIb3ZlclJ1bGVzRmxhZyA9IDEgPDwgMjcsCi0KLSAgICAgICAgRGlyZWN0Q2hp
bGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgMjgsCi0gICAgICAgIEFmZmVjdHNOZXh0U2li
bGluZ0VsZW1lbnRTdHlsZSA9IDEgPDwgMjksCi0gICAgICAgIFN0eWxlSXNBZmZlY3RlZEJ5UHJl
dmlvdXNTaWJsaW5nID0gMSA8PCAzMCwKLQotICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1
dG9GbGFnID0gMSA8PCAzMSwKLQotICAgICAgICBEZWZhdWx0Tm9kZUZsYWdzID0gSXNQYXJzaW5n
Q2hpbGRyZW5GaW5pc2hlZEZsYWcKLSAgICB9OwotCiAgICAgYm9vbCBnZXRGbGFnKE5vZGVGbGFn
cyBtYXNrKSBjb25zdCB7IHJldHVybiBtX25vZGVGbGFncyAmIG1hc2s7IH0KICAgICB2b2lkIHNl
dEZsYWcoYm9vbCBmLCBOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyBtX25vZGVGbGFncyA9IChtX25v
ZGVGbGFncyAmIH5tYXNrKSB8ICgtKGludDMyX3QpZiAmIG1hc2spOyB9IAogICAgIHZvaWQgc2V0
RmxhZyhOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyBtX25vZGVGbGFncyB8PSBtYXNrOyB9IApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaWRsCmluZGV4IDExZDFlNmYzNjIzZDAxMDM3OTYzZjEyY2NjYzA2OGVlNGU1MDFlYmIu
LjVhMTAwZTQxNzhhNTVhODIwZjViMzczN2I5ZTU4MDJjMDQwYWU0MmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5p
ZGwKQEAgLTQ3LDEyICs0NywxMiBAQAogICAgIFtTZXR0ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJp
YnV0ZSBET01TdHJpbmc/IG5vZGVWYWx1ZTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBzaG9ydCBub2RlVHlwZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gcGFyZW50
Tm9kZTsKKyAgICBbRE9NSklUXSByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gcGFyZW50Tm9kZTsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgY2hpbGROb2RlczsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgTm9kZT8gZmlyc3RDaGlsZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZT8gbGFzdENoaWxkOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwcmV2aW91c1NpYmxp
bmc7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IG5leHRTaWJsaW5nOworICAgIFtET01K
SVRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwcmV2aW91c1NpYmxpbmc7CisgICAgW0RPTUpJ
VF0gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IG5leHRTaWJsaW5nOwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBEb2N1bWVudD8gb3duZXJEb2N1bWVudDsKIAogICAgIFtDdXN0b20sIFJhaXNlc0V4
Y2VwdGlvbl0gTm9kZSBpbnNlcnRCZWZvcmUoW0N1c3RvbVJldHVybl0gTm9kZSBuZXdDaGlsZCwg
Tm9kZT8gcmVmQ2hpbGQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290496</attachid>
            <date>2016-10-03 11:22:13 -0700</date>
            <delta_ts>2016-10-03 22:17:18 -0700</delta_ts>
            <desc>Prototype rev9</desc>
            <filename>bug-162544-20161003111904.patch</filename>
            <type>text/plain</type>
            <size>103881</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ODNlYzFjNDVkYWFkYzYwYzkzNDkxYjE1MGJjYTFhMjk5ZTcxNjQyLi5kMTMwMThjMTgyODY0YTgy
NGMzZWIxZjhlMjk0ZGVkY2FhYTQ0MTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDcgQEAKKzIwMTYtMTAtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAoSlND
OjpHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFj
ayk6CisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwOgorICAgICAgICAoSlND
OjpHZXRCeUlkVmFyaWFudDo6R2V0QnlJZFZhcmlhbnQpOgorICAgICAgICAoSlNDOjpHZXRCeUlk
VmFyaWFudDo6b3BlcmF0b3I9KToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmF0dGVt
cHRUb01lcmdlKToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmR1bXBJbkNvbnRleHQp
OgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRWYXJpYW50Lmg6CisgICAgICAgIChKU0M6Okdl
dEJ5SWRWYXJpYW50Ojpkb21KSVQpOgorICAgICAgICAoSlNDOjpHZXRCeUlkVmFyaWFudDo6aW50
cmluc2ljKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5j
cHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmdldCk6CisgICAgICAgIChKU0M6OkFjY2Vz
c0Nhc2U6OmNsb25lKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oOgor
ICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpkb21KSVQpOgorICAgICAgICAoSlNDOjpBY2Nlc3ND
YXNlOjpSYXJlRGF0YTo6UmFyZURhdGEpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8
QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlRE9NSklUR2V0dGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlR2V0QnlJZCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRm
Zy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzRE9NSklUR3JhcGgpOgor
ICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmRvbUpJVCk6CisgICAgICAgICogZGZnL0RGR05vZGVU
eXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoK
KyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNh
ZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDYWxsRE9NKToKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNoZWNrRE9NKToKKyAgICAgICAgKiBk
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZG9taml0L0RPTUpJVEdyYXBo
LmNwcDogQWRkZWQuCisgICAgICAgICogZG9taml0L0RPTUpJVEdyYXBoLmg6IEFkZGVkLgorICAg
ICAgICAoSlNDOjpET01KSVQ6OkdyYXBoOjpHcmFwaCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6
R3JhcGg6On5HcmFwaCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OmdldHRlcik6Cisg
ICAgICAgIChKU0M6OkRPTUpJVDo6R3JhcGg6OnNldHRlcik6CisgICAgICAgICogZG9taml0L0RP
TUpJVFBhdGNocG9pbnQuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2lu
dDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpQYXRjaHBvaW50OjpzZXRHZW5lcmF0
b3IpOgorICAgICAgICAoSlNDOjpET01KSVQ6OlBhdGNocG9pbnQ6OmdlbmVyYXRvcik6CisgICAg
ICAgICogZG9taml0L0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaDogQWRkZWQuCisgICAgICAgIChK
U0M6OkRPTUpJVDo6UGF0Y2hwb2ludFBhcmFtczo6c2l6ZSk6CisgICAgICAgIChKU0M6OkRPTUpJ
VDo6UGF0Y2hwb2ludFBhcmFtczo6YXQpOgorICAgICAgICAoSlNDOjpET01KSVQ6OlBhdGNocG9p
bnRQYXJhbXM6Om9wZXJhdG9yW10pOgorICAgICAgICAoSlNDOjpET01KSVQ6OlBhdGNocG9pbnRQ
YXJhbXM6OmdwU2NyYXRjaCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2ludFBhcmFt
czo6ZnBTY3JhdGNoKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpQYXRjaHBvaW50UGFyYW1zOjpQ
YXRjaHBvaW50UGFyYW1zKToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9y
eS5oOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpG
VEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDaGVja0RPTSk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDYWxsRE9NKToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVVucmVhY2hhYmxlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBoZWFwL1dlYWtJbXBsLmg6CisgICAgICAgIChKU0M6OldlYWtJbXBsOjpv
ZmZzZXRPZkpTVmFsdWUpOgorICAgICAgICAoSlNDOjpXZWFrSW1wbDo6b2Zmc2V0T2ZXZWFrSGFu
ZGxlT3duZXIpOgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAgICAgICAgKEpTQzo6dHJ5
Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoV1RGOjpET01KSVRH
ZXR0ZXI6OkRPTUpJVEdldHRlcik6CisgICAgICAgIChXVEY6OkRPTUpJVEdldHRlcjo6Y3JlYXRl
U3RydWN0dXJlKToKKyAgICAgICAgKFdURjo6RE9NSklUR2V0dGVyOjpjcmVhdGUpOgorICAgICAg
ICAoV1RGOjpET01KSVRHZXR0ZXI6OkRPTUpJVEdldHRlckRPTUpJVDo6RE9NSklUR2V0dGVyRE9N
SklUKToKKyAgICAgICAgKFdURjo6RE9NSklUR2V0dGVyOjpkb21KSVRHZXR0ZXJHcmFwaCk6Cisg
ICAgICAgIChXVEY6OkRPTUpJVEdldHRlcjo6b2Zmc2V0T2ZWYWx1ZSk6CisgICAgICAgIChXVEY6
OkRPTUpJVEdldHRlcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoV1RGOjpET01KSVRHZXR0
ZXI6OmN1c3RvbUdldHRlcik6CisgICAgICAgIChHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0KToKKyAgICAgICAg
KiBydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmpl
Y3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNs
b3QpOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgIChKU0M6Okhhc2hUYWJs
ZVZhbHVlOjpkb21KSVQpOgorICAgICAgICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0eVNsb3RGcm9t
VGFibGUpOgorICAgICAgICAoSlNDOjpwdXRFbnRyeSk6CisgICAgICAgIChKU0M6OnJlaWZ5U3Rh
dGljUHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAg
IChKU0M6OlByb3BlcnR5U2xvdDo6ZG9tSklUKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90
OjpzZXRDYWNoZWFibGVDdXN0b20pOgorCiAyMDE2LTEwLTAzICBOaWNvbGFzIEJyZWlkaW5nZXIg
IDxOaWNvbGFzLkJyZWlkaW5nZXJAc29ueS5jb20+CiAKICAgICAgICAgSlNTdHJpbmdSZWYgc2hv
dWxkIGRlZmluZSBKU0NoYXIgd2l0aG91dCBwbGF0Zm9ybSBjaGVja3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggOGQ3MGYyNjYx
NGJkNDgyY2I1ZWI1YWU5NjRhZmZmN2QwNjRlZjM5Yi4uMGNmMjE1ZmZiZjUyYTljNTRmZTIxZTE4
MGYxZDI4ZTk4NjAyNzlkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNi0xMC0wMyAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbQmluZGluZ10gSW50
cm9kdWNpbmcgRE9NIGJpbmRpbmcgSklUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjI1NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHd0Zi9TdGRMaWJFeHRyYXMuaDoKKwogMjAxNi0wOS0yOSAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQg
Zm9yIElETCB1bmlvbiBjb252ZXJzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY3ZjJhODE2NTY1OWZjZTIz
NWQ5N2IwOWIyMzRmM2E0ZjhhNjU3Mi4uZDY5MjhlMGMzNjgyYmYxODAwNGUzYjllOGRiMzdjZWU1
ZDYxNjRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE2LTEwLTAzICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtCaW5kaW5nXSBJbnRy
b2R1Y2luZyBET00gYmluZGluZyBKSVQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MjU0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvZG9taml0L0RPTUpJVEdyYXBoLmg6
IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3Jt
R1RLLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFBsYXRm
b3JtV2luLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XcmFw
cGVyOjpvZmZzZXRPZldyYXBwZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XcmFwcGVyOjp3
cmFwcGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFdyYXBwYWJsZTo6b2Zmc2V0T2ZXcmFwcGVyKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAg
KEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1dGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIp
OgorICAgICAgICAoR2VuZXJhdGVQcm9wZXJ0aWVzSGFzaFRhYmxlKToKKyAgICAgICAgKEdlbmVy
YXRlSW1wbGVtZW50YXRpb24pOiBEZWxldGVkLgorICAgICAgICAoR2VuZXJhdGVIYXNoVGFibGVW
YWx1ZUFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJp
YnV0ZXMudHh0OgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmg6CisgICAgICAgIChXZWJD
b3JlOjpDb250YWluZXJOb2RlOjpsYXN0Q2hpbGRNZW1vcnlPZmZzZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGFpbmVyTm9kZTo6bGFzdENoaWxkKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb20v
Tm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bm9kZUZsYWdzTWVtb3J5T2Zmc2V0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJhcmVEYXRhTWVtb3J5T2Zmc2V0KToKKyAgICAgICAg
KiBkb20vTm9kZS5pZGw6CisKIDIwMTYtMTAtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICB0ZC5zY29wZSBzaG91bGQgb25seSByZXR1cm4ga25vd24gdmFsdWVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZmIyOTE0NzNhZTk3ZmE0ZmYw
MGZkZWQ5OTg4YjY0YTM2MWJmY2FjMi4uMTkyOTNiNTNjZWM2Nzk3MDg4NGM1M2M4YTQ2ZDZhNDdm
OWUyOTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYsNiArMTYs
NyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRl
Y29tcGlsZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZmciCisgICAgIiR7SkFWQVND
UklQVENPUkVfRElSfS9kb21qaXQiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3Nl
bWJsZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIvdWRpczg2Igog
ICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZnRsIgpAQCAtNDA4LDYgKzQwOSw4IEBAIHNldChK
YXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgZGlzYXNzZW1ibGVyL3VkaXM4Ni91ZGlzODZfc3lu
LWludGVsLmMKICAgICBkaXNhc3NlbWJsZXIvdWRpczg2L3VkaXM4Nl9zeW4uYwogCisgICAgZG9t
aml0L0RPTUpJVEdyYXBoLmNwcAorCiAgICAgZnRsL0ZUTEFic3RyYWN0SGVhcC5jcHAKICAgICBm
dGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5jcHAKICAgICBmdGwvRlRMQXZhaWxhYmxlUmVj
b3ZlcnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZlZTU3NzJhMGU3ZGVj
YjNlMTMxOTFiZDg1OTQwNmZkZjljNWZlNTYuLjUxZTBiNjdmZGYyNzZjMjcyYjE4ZGE4NTJlZGQ4
NmNjMWQ4MTQxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTYsNyArMzE2
LDcgQEAKIAkJMEYzM0ZDRkIxQzE2MjVCRTAwMzIzRjY3IC8qIEIzQ0ZHLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMzRkNGOTFDMTYyNUJFMDAzMjNG
NjcgLyogQjNDRkcuaCAqLzsgfTsKIAkJMEYzM0ZDRkMxQzE2MjVCRTAwMzIzRjY3IC8qIEIzRG9t
aW5hdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYzM0ZDRkExQzE2MjVCRTAwMzIzRjY3IC8qIEIzRG9taW5hdG9ycy5oICovOyB9OwogCQkwRjM0
QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0NzE2RDQyMDBFMDAxQ0RBNUEgLyog
REZHVXNlS2luZC5jcHAgKi87IH07Ci0JCTBGMzRCMTRBMTZENDIwMTMwMDFDREE1QSAvKiBERkdV
c2VLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM0QjE0ODE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5oICovOyB9OworCQkwRjM0QjE0
QTE2RDQyMDEzMDAxQ0RBNUEgLyogREZHVXNlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1Vz
ZUtpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRjM3MzA4QzFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM3MzA4QTFDMEJEMjkxMDAw
NTJCRkEgLyogQjNQaGlDaGlsZHJlbi5jcHAgKi87IH07CiAJCTBGMzczMDhEMUMwQkQyOTEwMDA1
MkJGQSAvKiBCM1BoaUNoaWxkcmVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjM3MzA4QjFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5o
ICovOyB9OwogCQkwRjM3MzA4RjFDMENENjg1MDAwNTJCRkEgLyogRGlzYWxsb3dNYWNyb1NjcmF0
Y2hSZWdpc3RlclVzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjM3MzA4RTFDMENENjg1MDAwNTJCRkEgLyogRGlzYWxsb3dNYWNyb1NjcmF0Y2hS
ZWdpc3RlclVzYWdlLmggKi87IH07CkBAIC01ODcsNyArNTg3LDcgQEAKIAkJMEZBMkMxN0IxN0Q3
Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkEyQzE3OTE3RDdDRjg0MDA5RDAxNUYgLyogVGVz
dFJ1bm5lclV0aWxzLmNwcCAqLzsgfTsKIAkJMEZBMkMxN0MxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRl
c3RSdW5uZXJVdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZBMkMxN0ExN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQTU4MUJBMTUw
RTk1MkMwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBNTgxQjcxNTBFOTUyQTAwQjlBMkQ5IC8qIERGR05v
ZGVGbGFncy5jcHAgKi87IH07Ci0JCTBGQTU4MUJCMTUwRTk1MzAwMEI5QTJEOSAvKiBERkdOb2Rl
RmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
QTU4MUI4MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuaCAqLzsgfTsKKwkJMEZBNTgx
QkIxNTBFOTUzMDAwQjlBMkQ5IC8qIERGR05vZGVGbGFncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBNTgxQjgxNTBFOTUyQTAwQjlBMkQ5IC8qIERG
R05vZGVGbGFncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGQTU4MUJDMTUwRTk1MzAwMEI5QTJEOSAvKiBERkdOb2RlVHlwZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBNTgxQjkxNTBFOTUyQTAw
QjlBMkQ5IC8qIERGR05vZGVUeXBlLmggKi87IH07CiAJCTBGQTdBOEVCMThCNDEzQzgwMDUyMzcx
RCAvKiBSZWcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZBN0E4RTkxOEI0MTNDODAwNTIzNzFEIC8qIFJlZy5jcHAgKi87IH07CiAJCTBGQTdBOEVD
MThCNDEzQzgwMDUyMzcxRCAvKiBSZWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGQTdBOEVBMThCNDEzQzgwMDUyMzcxRCAvKiBSZWcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTQ0OCw3ICsxNDQ4
LDcgQEAKIAkJODZFQzlERDAxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09wZXJhdGlvbnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMwMTMyOERG
ODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggKi87IH07CiAJCTg2RUM5REQxMTMyOERGODIw
MDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3Rl
ckJhbmsuaCAqLzsgfTsKIAkJODZFQzlERDIxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0
aXZlSklULmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg2RUM5REMyMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5jcHAgKi87IH07
Ci0JCTg2RUM5REQzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQzMxMzI4REY4
MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmggKi87IH07CisJCTg2RUM5REQzMTMyOERG
ODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQzMxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1Nw
ZWN1bGF0aXZlSklULmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODZFQ0EzRUExMzJERUYxQzAwMkIyQUQ3IC8qIERGR05vZGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUNBM0U5MTMyREVGMUMwMDJC
MkFENyAvKiBERkdOb2RlLmggKi87IH07CiAJCTg2RUNBM0ZBMTMyREYyNUEwMDJCMkFENyAvKiBE
RkdTY29yZUJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NkVDQTNGOTEzMkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oICovOyB9Owog
CQk4NkYzRUVCRDE2OENERTkzMDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNrRnVuY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RjNFRUI5MTY4Q0NG
NzUwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlvbi5oICovOyB9OwpAQCAtMjA4OCw2ICsy
MDg4LDggQEAKIAkJRTMzRjUwODQxQjg0MzdBMDAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNl
RGVmZXJyZWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTMzRjUwODIxQjg0MzdBMDAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQu
Y3BwICovOyB9OwogCQlFMzNGNTA4NTFCODQzN0EwMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21p
c2VEZWZlcnJlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTMzRjUwODMxQjg0MzdBMDAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzNG
NTA4NzFCODQ0OUVGMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5sdXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzM0Y1MDg2
MUI4NDQ5RUYwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmx1dC5oICov
OyB9OworCQlFMzQxQjAwMzFEQTJDNUE3MDA4NjUzRDcgLyogRE9NSklUUGF0Y2hwb2ludFBhcmFt
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0MUIw
MDIxREEyQzVBNDAwODY1M0Q3IC8qIERPTUpJVFBhdGNocG9pbnRQYXJhbXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzQxQjAwNDFEQTJDNUFE
MDA4NjUzRDcgLyogRE9NSklUUGF0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0MUIwMDExREEyQzVBNDAwODY1M0Q3IC8qIERPTUpJVFBh
dGNocG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFMzU0NjIyQjFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1NDYyMkExQjYwNjVE
MTAwNTQ1Mzg2IC8qIENvbnN0cnVjdEFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU1RjM1MjFCN0RDODUzMDBDNTBEQzUgLyogTW9k
dWxlTG9hZGVyUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzNTVGMzUwMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVMb2FkZXJQcm90
b3R5cGUuY3BwICovOyB9OwogCQlFMzU1RjM1MzFCN0RDODUzMDBDNTBEQzUgLyogTW9kdWxlTG9h
ZGVyUHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzU1RjM1MTFCN0RDODUzMDBDNTBEQzUgLyogTW9kdWxlTG9hZGVyUHJvdG90eXBlLmgg
Ki87IH07CkBAIC0yMTA0LDYgKzIxMDYsOCBAQAogCQlFM0QyMzlDOTFCODI5QzFDMDBCQkVGNjcg
LyogSlNNb2R1bGVFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTNEMjM5QzcxQjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJv
bm1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFM0VGODg3NDFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0VGODg3MjFC
NjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi87IH07CiAJCUUz
RUY4ODc1MUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0VGODg3MzFCNjZERjIz
MDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzRkY3NTMyMUQ5Q0VBMTUwMEM3RTE2RCAv
KiBET01KSVRHcmFwaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0ZGNzUyRTFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR3JhcGguY3BwICovOyB9
OworCQlFM0ZGNzUzMzFEOUNFQTE4MDBDN0UxNkQgLyogRE9NSklUR3JhcGguaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRkY3NTJGMUQ5Q0VBMTIwMEM3
RTE2RCAvKiBET01KSVRHcmFwaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUU0OURDMTZCMTJFRjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0OURDMTU1MTJFRjI3NzIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLzsg
fTsKIAkJRTQ5REMxNkMxMkVGMjk0RTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTUxMTJF
RjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ5REMxNkQxMkVGMjk1MzAwMTg0QTFG
IC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE0OTEyRUYyNjFBMDAxODRBMUYgLyogU291cmNlUHJv
dmlkZXJDYWNoZUl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtNDM4Myw2ICs0Mzg3LDggQEAKIAkJRTMzRjUwODMxQjg0MzdBMDAwNDEzODU2
IC8qIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzNGNTA4NjFCODQ0OUVGMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VD
b25zdHJ1Y3Rvci5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbnRl
cm5hbFByb21pc2VDb25zdHJ1Y3Rvci5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTMzRjUwODgxQjg0NEExQTAwNDEzODU2IC8qIEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9y
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gSW50ZXJuYWxQcm9t
aXNlQ29uc3RydWN0b3IuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNDFCMDAx
MURBMkM1QTQwMDg2NTNENyAvKiBET01KSVRQYXRjaHBvaW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTUpJVFBhdGNocG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTM0MUIwMDIxREEyQzVBNDAwODY1M0Q3IC8qIERPTUpJVFBhdGNocG9pbnRQYXJh
bXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUUGF0Y2hwb2ludFBh
cmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU0NjIyQTFCNjA2NUQxMDA1
NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb25zdHJ1Y3RBYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
NTVGMzUwMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kdWxlTG9hZGVyUHJvdG90eXBlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1NUYzNTExQjdEQzg1MzAwQzUwREM1
IC8qIE1vZHVsZUxvYWRlclByb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2R1bGVMb2FkZXJQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTQ0MDUsNiArNDQxMSw4IEBACiAJCUUzRDI2NDJBMUQzOEMwNDIwMDBCRTE3NCAvKiBCeXRl
Y29kZVJld3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5dGVjb2Rl
UmV3cml0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFRjg4NzIxQjY2REYy
MzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRUY4ODczMUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNGRjc1
MkUxRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERPTUpJVEdyYXBoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTNGRjc1MkYxRDlDRUExMjAwQzdFMTZEIC8qIERPTUpJVEdyYXBoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVEdyYXBoLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU0OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92
aWRlckNhY2hlSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE1MTEy
RUYyNzIyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0OURDMTU1MTJFRjI3NzIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNh
Y2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZVByb3Zp
ZGVyQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDY2Miw2ICs0Njcw
LDcgQEAKIAkJCQk2NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICov
LAogCQkJCTg2RUM5REIzMTMyOERGNDQwMDJCMkFENyAvKiBkZmcgKi8sCiAJCQkJMEZGNDI3MkUx
NThFQkNDRTAwNENCOUZGIC8qIGRpc2Fzc2VtYmxlciAqLywKKwkJCQlFM0ZGNzUyRDFEOUNFOUVB
MDBDN0UxNkQgLyogZG9taml0ICovLAogCQkJCTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAvKiBG
cmFtZXdvcmtzICovLAogCQkJCTBGRUEwOUZDMTcwNTEzN0YwMEJCNzIyQyAvKiBmdGwgKi8sCiAJ
CQkJMTQyRTMxMkExMzRGRjBBNjAwQUZBREI1IC8qIGhlYXAgKi8sCkBAIC03MTY3LDYgKzcxNzYs
MTcgQEAKIAkJCXBhdGggPSBjb2RlZ2VuOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJRTNGRjc1MkQxRDlDRTlFQTAwQzdFMTZEIC8qIGRvbWppdCAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJRTM0MUIwMDExREEyQzVBNDAwODY1M0Q3
IC8qIERPTUpJVFBhdGNocG9pbnQuaCAqLywKKwkJCQlFMzQxQjAwMjFEQTJDNUE0MDA4NjUzRDcg
LyogRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oICovLAorCQkJCUUzRkY3NTJFMUQ5Q0VBMTIwMEM3
RTE2RCAvKiBET01KSVRHcmFwaC5jcHAgKi8sCisJCQkJRTNGRjc1MkYxRDlDRUExMjAwQzdFMTZE
IC8qIERPTUpJVEdyYXBoLmggKi8sCisJCQkpOworCQkJcGF0aCA9IGRvbWppdDsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAvKiBFbmQgUEJYR3JvdXAgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhIZWFkZXJzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC03MjM3LDYgKzcyNTcs
NyBAQAogCQkJCTBGNkIxQ0I5MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTFBMDA5QzExODMxQTI2RTAwQ0Y4NzExIC8qIEFSTTY0QXNzZW1i
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkQzQjJDNDEwMTU2QkRFMDAyODY1RTcgLyogQVJN
QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQxQjAwNDFEQTJDNUFEMDA4NjUzRDcg
LyogRE9NSklUUGF0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZBREQxNDUwRkRERUE5
ODAwMDZFRUMyIC8qIEFSTXY3QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUMwMjg1
RDE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdET3Bjb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjgzMzVCODE2MzlDMUVBMDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC03NjEyLDYgKzc2MzMsNyBAQAogCQkJCTBGQzIwQ0JBMTg1NTZBMzUwMEM5
RTk1NCAvKiBERkdTU0FMb3dlcmluZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlGQjRG
NTE3RkNCOTE3MDBDQjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY0RjI5RTAxOEI2QUQxQzAwNTdCQzE1IC8qIERGR1N0YXRpY0V4ZWN1dGlvbkNvdW50
RXN0aW1hdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0ZGNzUzMzFEOUNFQTE4MDBD
N0UxNkQgLyogRE9NSklUR3JhcGguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUUzMjY0MUIwNUFC
MDQwMDgwMUVENSAvKiBERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDMjBDQjYxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9u
UGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjM5NDc4MTVEQ0UzNEIwMDZBNTk3QyAvKiBE
RkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTc3NDAsNiArNzc2
Miw3IEBACiAJCQkJMEYyQjY2QUYxN0I2QjU0NTAwQTdBRTNGIC8qIEdDSW5jb21pbmdSZWZDb3Vu
dGVkU2V0SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTMxMzc0QkQxRDVDRTY3NjAwQUY3
QTBCIC8qIFdBU01QbGFuLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQUFCQ0RFNzE4RUYyOTQyMDAw
MDIwOTYgLyogR0NMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQxQjAwMzFEQTJDNUE3
MDA4NjUzRDcgLyogRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYyQkJEOTgxQzVGRjNGNTAwMjNFRjIzIC8qIEIzVmFyaWFibGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1NEU4RUIwMThCRkZCQkIwMDU1NkQyOCAvKiBHQ1NlZ21lbnRlZEFycmF5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNTRFOEVCMTE4QkZGQkJFMDA1NTZEMjggLyogR0NTZWdtZW50ZWRBcnJh
eUlubGluZXMuaCBpbiBIZWFkZXJzICovLApAQCAtOTQ4Miw2ICs5NTA1LDcgQEAKIAkJCQkxNDg3
NEFFNTE1RUJERTRBMDAyRTM1ODcgLyogSlNTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
N0MwQzRBRDE2ODEwNjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY5MTlEMTAxNTdGMzMyOTAwNEE0RTdEIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTNGRjc1MzIxRDlDRUExNTAwQzdFMTZEIC8qIERP
TUpJVEdyYXBoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURDMTdFODE3MUM5QzkxRDYwMDhBNkFC
MyAvKiBTaGFkb3dDaGlja2VuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Mjk5RDlEMTdEMTI4
MzcwMDVGNUZGOSAvKiBKU1NldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzkwREQ2RjE4MkY0
OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAppbmRleCAxNWIz
YzgxM2NiOGJlODA3MzNlM2I0MTVmNmE5OGU3ZjlhYzhkZDRmLi40MTgyYjkxZDZmNzdjNGQxNDg5
ODc2ZGJiMDgzNzMwMDBmZWVmODQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCkBAIC0zNyw2ICszNyw5IEBACiAjaW5jbHVkZSA8d3Rm
L0xpc3REdW1wLmg+CiAKIG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CitjbGFz
cyBHcmFwaDsKK30KIAogYm9vbCBHZXRCeUlkU3RhdHVzOjphcHBlbmRWYXJpYW50KGNvbnN0IEdl
dEJ5SWRWYXJpYW50JiB2YXJpYW50KQogewpAQCAtMjE1LDYgKzIxOCw3IEBAIEdldEJ5SWRTdGF0
dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJh
Y2soCiAgICAgICAgICAgICBjYXNlIENvbXBsZXhHZXRTdGF0dXM6OklubGluZWFibGU6IHsKICAg
ICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtTdGF0dXM+IGNhbGxMaW5rU3Rh
dHVzOwogICAgICAgICAgICAgICAgIEpTRnVuY3Rpb24qIGludHJpbnNpY0Z1bmN0aW9uID0gbnVs
bHB0cjsKKyAgICAgICAgICAgICAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQgPSBudWxscHRyOwog
CiAgICAgICAgICAgICAgICAgc3dpdGNoIChhY2Nlc3MudHlwZSgpKSB7CiAgICAgICAgICAgICAg
ICAgY2FzZSBBY2Nlc3NDYXNlOjpMb2FkOgpAQCAtMjM0LDYgKzIzOCwxMiBAQCBHZXRCeUlkU3Rh
dHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRi
YWNrKAogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIEFjY2Vzc0Nhc2U6OkN1c3Rv
bUFjY2Vzc29yR2V0dGVyOiB7CisgICAgICAgICAgICAgICAgICAgIGRvbUpJVCA9IGFjY2Vzcy5k
b21KSVQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFkb21KSVQpCisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhzbG93UGF0aFN0YXRlLCB0cnVlKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJl
IHRvdGFsbHkgc3dlZXQgdG8gc3VwcG9ydCBtb3JlIG9mIHRoZXNlIGF0IHNvbWUgcG9pbnQgaW4g
dGhlCiAgICAgICAgICAgICAgICAgICAgIC8vIGZ1dHVyZS4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMzA1MgpAQCAtMjQ0LDcgKzI1NCw4IEBAIEdldEJ5SWRTdGF0
dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91dEV4aXRTaXRlRmVlZGJh
Y2soCiAgICAgICAgICAgICAgICAgR2V0QnlJZFZhcmlhbnQgdmFyaWFudCgKICAgICAgICAgICAg
ICAgICAgICAgU3RydWN0dXJlU2V0KHN0cnVjdHVyZSksIGNvbXBsZXhHZXRTdGF0dXMub2Zmc2V0
KCksCiAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXhHZXRTdGF0dXMuY29uZGl0aW9uU2V0KCks
IFdURk1vdmUoY2FsbExpbmtTdGF0dXMpLAotICAgICAgICAgICAgICAgICAgICBpbnRyaW5zaWNG
dW5jdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGludHJpbnNpY0Z1bmN0aW9uLAorICAgICAg
ICAgICAgICAgICAgICBkb21KSVQpOwogCiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuYXBw
ZW5kVmFyaWFudCh2YXJpYW50KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdldEJ5SWRT
dGF0dXMoc2xvd1BhdGhTdGF0ZSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmNwcAppbmRleCBhODY5ZDRhMWM5NGU3ZTQ3NTczMTc0
NGM3YjMwM2Q1MDY1ZTBmNDMxLi40ZGQ1MmNhNjg4YWNmNTEwMWIyYmQ4YzJmNmI3ZTBhOGNjNGI3
OWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZh
cmlhbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFy
aWFudC5jcHAKQEAgLTM2LDEyICszNiwxNCBAQCBHZXRCeUlkVmFyaWFudDo6R2V0QnlJZFZhcmlh
bnQoCiAgICAgY29uc3QgU3RydWN0dXJlU2V0JiBzdHJ1Y3R1cmVTZXQsIFByb3BlcnR5T2Zmc2V0
IG9mZnNldCwKICAgICBjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCYgY29uZGl0aW9u
U2V0LAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0YXR1cz4gY2FsbExpbmtTdGF0dXMs
Ci0gICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rpb24pCisgICAgSlNGdW5jdGlvbiogaW50
cmluc2ljRnVuY3Rpb24sCisgICAgRE9NSklUOjpHcmFwaCogZG9tSklUKQogICAgIDogbV9zdHJ1
Y3R1cmVTZXQoc3RydWN0dXJlU2V0KQogICAgICwgbV9jb25kaXRpb25TZXQoY29uZGl0aW9uU2V0
KQogICAgICwgbV9vZmZzZXQob2Zmc2V0KQogICAgICwgbV9jYWxsTGlua1N0YXR1cyhXVEZNb3Zl
KGNhbGxMaW5rU3RhdHVzKSkKICAgICAsIG1faW50cmluc2ljRnVuY3Rpb24oaW50cmluc2ljRnVu
Y3Rpb24pCisgICAgLCBtX2RvbUpJVChkb21KSVQpCiB7CiAgICAgaWYgKCFzdHJ1Y3R1cmVTZXQu
c2l6ZSgpKSB7CiAgICAgICAgIEFTU0VSVChvZmZzZXQgPT0gaW52YWxpZE9mZnNldCk7CkBAIC02
NSw2ICs2Nyw3IEBAIEdldEJ5SWRWYXJpYW50JiBHZXRCeUlkVmFyaWFudDo6b3BlcmF0b3I9KGNv
bnN0IEdldEJ5SWRWYXJpYW50JiBvdGhlcikKICAgICBtX2NvbmRpdGlvblNldCA9IG90aGVyLm1f
Y29uZGl0aW9uU2V0OwogICAgIG1fb2Zmc2V0ID0gb3RoZXIubV9vZmZzZXQ7CiAgICAgbV9pbnRy
aW5zaWNGdW5jdGlvbiA9IG90aGVyLm1faW50cmluc2ljRnVuY3Rpb247CisgICAgbV9kb21KSVQg
PSBvdGhlci5tX2RvbUpJVDsKICAgICBpZiAob3RoZXIubV9jYWxsTGlua1N0YXR1cykKICAgICAg
ICAgbV9jYWxsTGlua1N0YXR1cyA9IHN0ZDo6bWFrZV91bmlxdWU8Q2FsbExpbmtTdGF0dXM+KCpv
dGhlci5tX2NhbGxMaW5rU3RhdHVzKTsKICAgICBlbHNlCkBAIC0xMDMsNiArMTA2LDkgQEAgYm9v
bCBHZXRCeUlkVmFyaWFudDo6YXR0ZW1wdFRvTWVyZ2UoY29uc3QgR2V0QnlJZFZhcmlhbnQmIG90
aGVyKQogICAgIGlmICghY2FuTWVyZ2VJbnRyaW5zaWNTdHJ1Y3R1cmVzKG90aGVyKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKG1fZG9tSklUICE9IG90aGVyLm1fZG9tSklUKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAobV9jb25kaXRpb25TZXQuaXNFbXB0eSgp
ICE9IG90aGVyLm1fY29uZGl0aW9uU2V0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIApAQCAtMTM4LDYgKzE0NCw4IEBAIHZvaWQgR2V0QnlJZFZhcmlhbnQ6OmR1bXBJbkNv
bnRleHQoUHJpbnRTdHJlYW0mIG91dCwgRHVtcENvbnRleHQqIGNvbnRleHQpIGNvbnN0CiAgICAg
ICAgIG91dC5wcmludCgiLCBjYWxsID0gIiwgKm1fY2FsbExpbmtTdGF0dXMpOwogICAgIGlmICht
X2ludHJpbnNpY0Z1bmN0aW9uKQogICAgICAgICBvdXQucHJpbnQoIiwgaW50cmluc2ljID0gIiwg
Km1faW50cmluc2ljRnVuY3Rpb24pOworICAgIGlmIChtX2RvbUpJVCkKKyAgICAgICAgb3V0LnBy
aW50KCIsIGN1c3RvbSA9ICIsIFJhd1BvaW50ZXIobV9kb21KSVQpKTsKICAgICBvdXQucHJpbnQo
Ij4iKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dl
dEJ5SWRWYXJpYW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZh
cmlhbnQuaAppbmRleCA2NjIxODliY2U1ZjJlYjFhMTNiZDA1M2U5ODAwMjFjMTNjMjY2ZTY2Li5k
Y2Y0MDg4ZWMzNWI5YmIwMjhjNWJlOGJkMzI1YTExNDE3OTAzODk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuaApAQCAtMzIsNiArMzIsOSBA
QAogI2luY2x1ZGUgIlN0cnVjdHVyZVNldC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFj
ZSBET01KSVQgeworY2xhc3MgR3JhcGg7Cit9CiAKIGNsYXNzIENhbGxMaW5rU3RhdHVzOwogY2xh
c3MgR2V0QnlJZFN0YXR1czsKQEAgLTQzLDcgKzQ2LDggQEAgY2xhc3MgR2V0QnlJZFZhcmlhbnQg
ewogICAgICAgICBjb25zdCBTdHJ1Y3R1cmVTZXQmIHN0cnVjdHVyZVNldCA9IFN0cnVjdHVyZVNl
dCgpLCBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBpbnZhbGlkT2Zmc2V0LAogICAgICAgICBjb25z
dCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCYgPSBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNl
dCgpLAogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtTdGF0dXM+ID0gbnVsbHB0ciwK
LSAgICAgICAgSlNGdW5jdGlvbiogPSBudWxscHRyKTsKKyAgICAgICAgSlNGdW5jdGlvbiogPSBu
dWxscHRyLAorICAgICAgICBET01KSVQ6OkdyYXBoKiA9IG51bGxwdHIpOwogCiAgICAgfkdldEJ5
SWRWYXJpYW50KCk7CiAgICAgCkBAIC02Miw2ICs2Niw3IEBAIGNsYXNzIEdldEJ5SWRWYXJpYW50
IHsKICAgICBDYWxsTGlua1N0YXR1cyogY2FsbExpbmtTdGF0dXMoKSBjb25zdCB7IHJldHVybiBt
X2NhbGxMaW5rU3RhdHVzLmdldCgpOyB9CiAgICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX2ludHJpbnNpY0Z1bmN0aW9uOyB9CiAgICAgSW50cmluc2lj
IGludHJpbnNpYygpIGNvbnN0IHsgcmV0dXJuIG1faW50cmluc2ljRnVuY3Rpb24gPyBtX2ludHJp
bnNpY0Z1bmN0aW9uLT5pbnRyaW5zaWMoKSA6IE5vSW50cmluc2ljOyB9CisgICAgRE9NSklUOjpH
cmFwaCogZG9tSklUKCkgY29uc3QgeyByZXR1cm4gbV9kb21KSVQ7IH0KIAogICAgIGJvb2wgaXNQ
cm9wZXJ0eVVuc2V0KCkgY29uc3QgeyByZXR1cm4gb2Zmc2V0KCkgPT0gaW52YWxpZE9mZnNldDsg
fQogCkBAIC04MCw2ICs4NSw3IEBAIGNsYXNzIEdldEJ5SWRWYXJpYW50IHsKICAgICBQcm9wZXJ0
eU9mZnNldCBtX29mZnNldDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtTdGF0dXM+IG1f
Y2FsbExpbmtTdGF0dXM7CiAgICAgSlNGdW5jdGlvbiogbV9pbnRyaW5zaWNGdW5jdGlvbjsKKyAg
ICBET01KSVQ6OkdyYXBoKiBtX2RvbUpJVDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5j
cHAKaW5kZXggMmNmMjY2NzA4NjY0NmYyMDJhMDRjNmEwNzQyOWM4MWE3NWU5NDY0My4uMzk5NWU2
NDA0ZjRiM2NlNzVmMTIxZjIzN2JhNTU0OWFhZmFhZmU0NSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCkBAIC0yMjAsNyAr
MjIwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6OnRyeUdldCgK
IHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBBY2Nlc3NDYXNlOjpnZXQoCiAgICAgVk0mIHZt
LCBKU0NlbGwqIG93bmVyLCBBY2Nlc3NUeXBlIHR5cGUsIFByb3BlcnR5T2Zmc2V0IG9mZnNldCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsCiAgICAgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRpb25T
ZXQmIGNvbmRpdGlvblNldCwgYm9vbCB2aWFQcm94eSwgV2F0Y2hwb2ludFNldCogYWRkaXRpb25h
bFNldCwKLSAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBjdXN0b21HZXR0ZXIsIEpTT2Jq
ZWN0KiBjdXN0b21TbG90QmFzZSkKKyAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBjdXN0
b21HZXR0ZXIsIEpTT2JqZWN0KiBjdXN0b21TbG90QmFzZSwgRE9NSklUOjpHcmFwaCogZG9tSklU
KQogewogICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiByZXN1bHQobmV3IEFjY2Vzc0Nh
c2UoKSk7CiAKQEAgLTIyOSwxMiArMjI5LDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNl
PiBBY2Nlc3NDYXNlOjpnZXQoCiAgICAgcmVzdWx0LT5tX3N0cnVjdHVyZS5zZXQodm0sIG93bmVy
LCBzdHJ1Y3R1cmUpOwogICAgIHJlc3VsdC0+bV9jb25kaXRpb25TZXQgPSBjb25kaXRpb25TZXQ7
CiAKLSAgICBpZiAodmlhUHJveHkgfHwgYWRkaXRpb25hbFNldCB8fCByZXN1bHQtPmRvZXNDYWxs
cygpIHx8IGN1c3RvbUdldHRlciB8fCBjdXN0b21TbG90QmFzZSkgeworICAgIGlmICh2aWFQcm94
eSB8fCBhZGRpdGlvbmFsU2V0IHx8IHJlc3VsdC0+ZG9lc0NhbGxzKCkgfHwgY3VzdG9tR2V0dGVy
IHx8IGN1c3RvbVNsb3RCYXNlIHx8IGRvbUpJVCkgewogICAgICAgICByZXN1bHQtPm1fcmFyZURh
dGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFJhcmVEYXRhPigpOwogICAgICAgICByZXN1bHQtPm1fcmFy
ZURhdGEtPnZpYVByb3h5ID0gdmlhUHJveHk7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+
YWRkaXRpb25hbFNldCA9IGFkZGl0aW9uYWxTZXQ7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0
YS0+Y3VzdG9tQWNjZXNzb3IuZ2V0dGVyID0gY3VzdG9tR2V0dGVyOwogICAgICAgICByZXN1bHQt
Pm1fcmFyZURhdGEtPmN1c3RvbVNsb3RCYXNlLnNldE1heUJlTnVsbCh2bSwgb3duZXIsIGN1c3Rv
bVNsb3RCYXNlKTsKKyAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5kb21KSVQgPSBkb21KSVQ7
CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTM4NSw2ICszODYsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Y2xvbmUoKSBjb25zdAogICAgICAgICBy
ZXN1bHQtPm1fcmFyZURhdGEtPmN1c3RvbUFjY2Vzc29yLm9wYXF1ZSA9IHJhcmVEYXRhLT5jdXN0
b21BY2Nlc3Nvci5vcGFxdWU7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+Y3VzdG9tU2xv
dEJhc2UgPSByYXJlRGF0YS0+Y3VzdG9tU2xvdEJhc2U7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJl
RGF0YS0+aW50cmluc2ljRnVuY3Rpb24gPSByYXJlRGF0YS0+aW50cmluc2ljRnVuY3Rpb247Cisg
ICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+ZG9tSklUID0gcmFyZURhdGEtPmRvbUpJVDsKICAg
ICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmgKaW5kZXggYTZkMTQ4Y2JmYjBmMTlmOGIzN2Ex
NzczODFlMDA4MTM3MmI4NDkyMi4uNWFlM2UyOWUwODVlZjljNjJkNzExNTgxZWI2ZWU5ZDBjNzYw
MTQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmgKQEAgLTM3LDYgKzM3LDkgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CitjbGFzcyBHcmFwaDsKK30KIAog
Y2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgUG9seW1vcnBoaWNBY2Nlc3M7CkBAIC0xMzAsNyArMTMz
LDggQEAgY2xhc3MgQWNjZXNzQ2FzZSB7CiAgICAgICAgIGJvb2wgdmlhUHJveHkgPSBmYWxzZSwK
ICAgICAgICAgV2F0Y2hwb2ludFNldCogYWRkaXRpb25hbFNldCA9IG51bGxwdHIsCiAgICAgICAg
IFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jID0gbnVsbHB0ciwKLSAgICAgICAgSlNPYmplY3Qq
IGN1c3RvbVNsb3RCYXNlID0gbnVsbHB0cik7CisgICAgICAgIEpTT2JqZWN0KiBjdXN0b21TbG90
QmFzZSA9IG51bGxwdHIsCisgICAgICAgIERPTUpJVDo6R3JhcGgqID0gbnVsbHB0cik7CiAgICAg
CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBtZWdhbW9ycGhpY0xvYWQo
Vk0mLCBKU0NlbGwqIG93bmVyKTsKICAgICAKQEAgLTE4Niw2ICsxOTAsMTIgQEAgY2xhc3MgQWNj
ZXNzQ2FzZSB7CiAgICAgICAgIHJldHVybiBpbnRyaW5zaWNGdW5jdGlvbigpLT5pbnRyaW5zaWMo
KTsKICAgICB9CiAKKyAgICBET01KSVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgQVNTRVJUKG1fcmFyZURhdGEpOworICAgICAgICByZXR1cm4gbV9yYXJlRGF0YS0+ZG9t
SklUOworICAgIH0KKwogICAgIFdhdGNocG9pbnRTZXQqIGFkZGl0aW9uYWxTZXQoKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIG1fcmFyZURhdGEgPyBtX3JhcmVEYXRhLT5hZGRpdGlvbmFs
U2V0LmdldCgpIDogbnVsbHB0cjsKQEAgLTI4NCw2ICsyOTQsNyBAQCBjbGFzcyBBY2Nlc3NDYXNl
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIFJhcmVEYXRhKCkKICAgICAgICAgICAgIDogdmlhUHJv
eHkoZmFsc2UpCisgICAgICAgICAgICAsIGRvbUpJVChudWxscHRyKQogICAgICAgICB7CiAgICAg
ICAgICAgICBjdXN0b21BY2Nlc3Nvci5vcGFxdWUgPSBudWxscHRyOwogICAgICAgICB9CkBAIC0z
MDAsNiArMzExLDcgQEAgY2xhc3MgQWNjZXNzQ2FzZSB7CiAgICAgICAgIH0gY3VzdG9tQWNjZXNz
b3I7CiAgICAgICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gY3VzdG9tU2xvdEJhc2U7CiAgICAg
ICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBpbnRyaW5zaWNGdW5jdGlvbjsKKyAgICAgICAg
RE9NSklUOjpHcmFwaCogZG9tSklUOwogICAgIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmFy
ZURhdGE+IG1fcmFyZURhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggOWRiMTNlM2E4N2U2Yjc4
ZGFhMWU5YjAxMjMzMmZhMTVmNTY0NDQ5MC4uN2MxN2ZhM2ZmODYzNzI4YjFhYTI2ODEyNTViZTZm
ODc4MGFmNTEzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5j
bHVkZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkRGR0Fic3RyYWN0SW50ZXJwcmV0
ZXIuaCIKKyNpbmNsdWRlICJET01KSVRHcmFwaC5oIgogI2luY2x1ZGUgIkdldEJ5SWRTdGF0dXMu
aCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJIYXNoTWFwSW1wbC5oIgpA
QCAtMjI2Myw2ICsyMjY0LDEyIEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0
YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgY2FzZSBS
ZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgICAgICBmb3JOb2RlKG5vZGUpLmNsZWFyKCk7
IC8vIFRoZSByZXN1bHQgaXMgbm90IGEgSlMgdmFsdWUuCiAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ2hlY2tET006CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2FsbERPTToKKyAgICAgICAg
Y2xvYmJlcldvcmxkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2xvYmJlckxpbWl0KTsKKyAgICAg
ICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKG1fZ3JhcGgsIG5vZGUtPmRvbUpJVCgpLT5yZXN1bHRU
eXBlKCkpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENoZWNrQXJyYXk6IHsKICAgICAgICAg
aWYgKG5vZGUtPmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1fZ3JhcGgsIG5vZGUsIGZvck5v
ZGUobm9kZS0+Y2hpbGQxKCkpKSkgewogICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0
YW50cyh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAKaW5kZXggMDQ1MjI4MGRkMjZmNDBiMGJjYTQ1ZDM4NTFkMTEwZGY0MTZhMGZhNy4u
YTgxYTRjNTBmOGNhMGUzMGNiM2FjNjA5YWEyOGYyY2Q3ODYzOGY2NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTIxOSw2ICsyMTks
NyBAQCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgYm9vbCBoYW5kbGVDb25zdGFudEludGVy
bmFsRnVuY3Rpb24oTm9kZSogY2FsbFRhcmdldE5vZGUsIGludCByZXN1bHRPcGVyYW5kLCBJbnRl
cm5hbEZ1bmN0aW9uKiwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIFNwZWN1bGF0ZWRUeXBlLCBjb25zdCBD
aGVja3NGdW5jdG9yJiBpbnNlcnRDaGVja3MpOwogICAgIE5vZGUqIGhhbmRsZVB1dEJ5T2Zmc2V0
KE5vZGUqIGJhc2UsIHVuc2lnbmVkIGlkZW50aWZpZXIsIFByb3BlcnR5T2Zmc2V0LCBjb25zdCBJ
bmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBOb2RlKiB2YWx1ZSk7CiAgICAgTm9kZSogaGFuZGxl
R2V0QnlPZmZzZXQoU3BlY3VsYXRlZFR5cGUsIE5vZGUqIGJhc2UsIHVuc2lnbmVkIGlkZW50aWZp
ZXJOdW1iZXIsIFByb3BlcnR5T2Zmc2V0LCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3Im
LCBOb2RlVHlwZSA9IEdldEJ5T2Zmc2V0KTsKKyAgICBib29sIGhhbmRsZURPTUpJVEdldHRlcihp
bnQgcmVzdWx0T3BlcmFuZCwgY29uc3QgR2V0QnlJZFZhcmlhbnQmLCBOb2RlKiB0aGlzTm9kZSwg
U3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbik7CiAKICAgICAvLyBDcmVhdGUgYSBwcmVzZW5jZSBP
YmplY3RQcm9wZXJ0eUNvbmRpdGlvbiBiYXNlZCBvbiBzb21lIGtub3duIG9mZnNldCBhbmQgc3Ry
dWN0dXJlIHNldC4gRG9lcyBub3QKICAgICAvLyBjaGVjayB0aGUgdmFsaWRpdHkgb2YgdGhlIGNv
bmRpdGlvbiwgYnV0IGl0IG1heSByZXR1cm4gYSBudWxsIG9uZSBpZiBpdCBlbmNvdW50ZXJzIGEg
Y29udHJhZGljdGlvbi4KQEAgLTI2NTksNiArMjY2MCwyMCBAQCBib29sIEJ5dGVDb2RlUGFyc2Vy
OjpoYW5kbGVJbnRyaW5zaWNHZXR0ZXIoaW50IHJlc3VsdE9wZXJhbmQsIGNvbnN0IEdldEJ5SWRW
YXJpYQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKK2Jvb2wgQnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZURPTUpJVEdldHRlcihpbnQgcmVzdWx0T3BlcmFuZCwgY29uc3QgR2V0
QnlJZFZhcmlhbnQmIHZhcmlhbnQsIE5vZGUqIHRoaXNOb2RlLCBTcGVjdWxhdGVkVHlwZSkKK3sK
KyAgICBpZiAoIXZhcmlhbnQuZG9tSklUKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IHZhcmlhbnQuZG9tSklUKCk7CisgICAgYWRkVG9HcmFw
aChDaGVja0RPTSwgT3BJbmZvKGRvbUpJVCksIHRoaXNOb2RlKTsKKyAgICBOb2RlKiBnbG9iYWxP
YmplY3QgPSBhZGRUb0dyYXBoKEdldEdsb2JhbE9iamVjdCwgdGhpc05vZGUpOworICAgIGFkZFZh
ckFyZ0NoaWxkKGdsb2JhbE9iamVjdCk7CisgICAgYWRkVmFyQXJnQ2hpbGQodGhpc05vZGUpOwor
ICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0T3BlcmFuZCksIGFkZFRvR3JhcGgoTm9kZTo6
VmFyQXJnLCBDYWxsRE9NLCBPcEluZm8oZG9tSklUKSwgT3BJbmZvKDApKSk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIENoZWNrc0Z1bmN0b3I+CiBib29sIEJ5dGVD
b2RlUGFyc2VyOjpoYW5kbGVUeXBlZEFycmF5Q29uc3RydWN0b3IoCiAgICAgaW50IHJlc3VsdE9w
ZXJhbmQsIEludGVybmFsRnVuY3Rpb24qIGZ1bmN0aW9uLCBpbnQgcmVnaXN0ZXJPZmZzZXQsCkBA
IC0zMzI0LDYgKzMzMzksMTQgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlR2V0QnlJZCgK
ICAgICAgICAgbV9ncmFwaC5jb21waWxhdGlvbigpLT5ub3RpY2VJbmxpbmVkR2V0QnlJZCgpOwog
CiAgICAgQVNTRVJUKHR5cGUgPT0gQWNjZXNzVHlwZTo6R2V0IHx8ICF2YXJpYW50LmNhbGxMaW5r
U3RhdHVzKCkpOworCisgICAgaWYgKHZhcmlhbnQuZG9tSklUKCkpIHsKKyAgICAgICAgaWYgKGhh
bmRsZURPTUpJVEdldHRlcihkZXN0aW5hdGlvbk9wZXJhbmQsIHZhcmlhbnQsIGJhc2UsIHByZWRp
Y3Rpb24pKSB7CisgICAgICAgICAgICBhZGRUb0dyYXBoKFBoYW50b20sIGxvYWRlZFZhbHVlKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICghdmFyaWFu
dC5jYWxsTGlua1N0YXR1cygpICYmIHZhcmlhbnQuaW50cmluc2ljKCkgPT0gTm9JbnRyaW5zaWMp
IHsKICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihkZXN0aW5hdGlvbk9wZXJhbmQpLCBsb2Fk
ZWRWYWx1ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmgKaW5kZXggODdkOGI1MmQ4Y2Q3OWZkNDkyNGM4NTgyMTQyNjE2ZTcyZGE3MjNj
NC4uYTNjN2Y0MzVjMTc3ZDAwODllMGM2NTBkMjU2ZDUyNzliMWRhMmIxMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTg4Myw2ICs4ODMsMTYgQEAgdm9p
ZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3Im
IHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihCdXR0ZXJmbHlM
b2MsIEpTT2JqZWN0X2J1dHRlcmZseSwgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7
CiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBQcmVjaXNlbHkgbW9kZWwgaXQuCisg
ICAgY2FzZSBDaGVja0RPTToKKyAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgIHJldHVybjsK
KworICAgIGNhc2UgQ2FsbERPTToKKyAgICAgICAgcmVhZChXb3JsZCk7CisgICAgICAgIHdyaXRl
KEhlYXApOworICAgICAgICByZXR1cm47CisKICAgICBjYXNlIEFycmF5aWZ5OgogICAgIGNhc2Ug
QXJyYXlpZnlUb1N0cnVjdHVyZToKICAgICAgICAgcmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDBhZDU0ZmVlMmZmMzlk
ODg1NzBiMTc3Njc4MWYyNDE5NjA5ZmRjZGEuLjUxYzgwMjMzMjgzMmExNWE3OTllNDBjNmE0YWEx
ZGE5Yjk4ODU4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9l
c0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAg
LTExNiw2ICsxMTYsOCBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAg
ICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2Fz
ZSBHZXRCdXR0ZXJmbHk6CisgICAgY2FzZSBDYWxsRE9NOgorICAgIGNhc2UgQ2hlY2tET006CiAg
ICAgY2FzZSBDaGVja0FycmF5OgogICAgIGNhc2UgR2V0U2NvcGU6CiAgICAgY2FzZSBTa2lwU2Nv
cGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCA1
YWQ2YWZkNDdiNDgyNTAzOTAyNDM3NTk4MTk4NjM2ZGZhYTExODAwLi43MWIwZTE2NGVmYjNhNzBi
YzRkYzQ1YTliNjgwMDNlNmZiNjlhYTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKQEAgLTE2MDMsNiArMTYwMywxNSBAQCBjbGFzcyBGaXh1cFBoYXNl
IDogcHVibGljIFBoYXNlIHsKICAgICAgICAgICAgIGZpeEVkZ2U8VW50eXBlZFVzZT4obm9kZS0+
Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBDaGVja0RPTToK
KyAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBDYWxsRE9NOgorICAgICAgICAgICAgZml4RWRnZTxL
bm93bkNlbGxVc2U+KG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOyAvLyBHbG9iYWxPYmpl
Y3QuCisgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9k
ZSwgMSkpOyAvLyBET00uCisgICAgICAgICAgICBicmVhazsKKwogI2lmICFBU1NFUlRfRElTQUJM
RUQKICAgICAgICAgLy8gSGF2ZSB0aGVzZSBuby1vcCBjYXNlcyBoZXJlIHRvIGVuc3VyZSB0aGF0
IG5vYm9keSBmb3JnZXRzIHRvIGFkZCBoYW5kbGVycyBmb3IgbmV3IG9wY29kZXMuCiAgICAgICAg
IGNhc2UgU2V0QXJndW1lbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IDRi
YWU5YWU5NjM2MDljM2YzNzMwNmIxNGY1NzJmMmI0ZmFjNTc0NGIuLjkyMmFiZTM4OTQ2OTYwZTMz
MWFlZDVmY2U3YTBiOTg0NGE4M2UyYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
CkBAIC01OCw2ICs1OCwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorbmFtZXNwYWNlIERPTUpJ
VCB7CitjbGFzcyBHcmFwaDsKK30KKwogbmFtZXNwYWNlIFByb2ZpbGVyIHsKIGNsYXNzIEV4ZWN1
dGlvbkNvdW50ZXI7CiB9CkBAIC0yMzA4LDcgKzIzMTIsMTcgQEAgc3RydWN0IE5vZGUgewogICAg
ICAgICBBU1NFUlQoaGFzQmFzaWNCbG9ja0xvY2F0aW9uKCkpOwogICAgICAgICByZXR1cm4gbV9v
cEluZm8uYXM8QmFzaWNCbG9ja0xvY2F0aW9uKj4oKTsKICAgICB9Ci0gICAgCisKKyAgICBib29s
IGhhc0RPTUpJVEdyYXBoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBvcCgpID09IENo
ZWNrRE9NIHx8IG9wKCkgPT0gQ2FsbERPTTsKKyAgICB9CisKKyAgICBET01KSVQ6OkdyYXBoKiBk
b21KSVQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fb3BJbmZvLmFzPERPTUpJVDo6R3JhcGgq
PigpOworICAgIH0KKwogICAgIE5vZGUqIHJlcGxhY2VtZW50KCkgY29uc3QKICAgICB7CiAgICAg
ICAgIHJldHVybiBtX21pc2MucmVwbGFjZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVUeXBlLmgKaW5kZXggOGI0ZDlmMGMzMDlhN2MxODlkNjUyMjc2OWIwN2Q1Mjk0ZDY2YzRm
ZC4uODNiMGY1OWMwZDA0OTdiNThhMzNmYmZhOGVhNThiMjU0OTdlM2RhOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtMzk0LDYgKzM5NCwxMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oR2V0TWFwQnVja2V0LCBOb2RlUmVz
dWx0SlMpIFwKICAgICBtYWNybyhMb2FkRnJvbUpTTWFwQnVja2V0LCBOb2RlUmVzdWx0SlMpIFwK
ICAgICBtYWNybyhJc05vbkVtcHR5TWFwQnVja2V0LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAorICAg
IFwKKyAgICAvKiBOb2RlcyBmb3IgRE9NIEpJVCAqL1wKKyAgICBtYWNybyhDaGVja0RPTSwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKENhbGxET00sIE5vZGVSZXN1bHRKUyB8IE5vZGVN
dXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAogCiAvLyBUaGlzIGVudW0gZ2VuZXJhdGVz
IGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGlkIGZvciBhbGwgTm9kZSB0eXBlcywKIC8vIGFu
ZCBpcyB1c2VkIGJ5IHRoZSBzdWJzZXF1ZW50IGVudW0gdG8gZmlsbCBvdXQgdGhlIGlkIChhcyBh
Y2Nlc3NlZCB2aWEgdGhlIE5vZGVJZE1hc2spLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBi
YWZkZjkwNmViZjZmNzMwN2NhZjQwZjZiODVjMTFiMDExOWUxZjIyLi44ZDY2NDJkNDEwMjY3NGQw
ZGM2NTllMmJkMWJjZWI0NjY2MzAwMGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtODE5
LDYgKzgxOSwxMyBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQ
aGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCisgICAgICAgIGNhc2UgQ2Fs
bERPTToKKyAgICAgICAgICAgIHNldFByZWRpY3Rpb24obV9jdXJyZW50Tm9kZS0+ZG9tSklUKCkt
PnByZWRpY3Rpb24oKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIENoZWNr
RE9NOgorICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBDYWxsT2JqZWN0Q29uc3Ry
dWN0b3I6IHsKICAgICAgICAgICAgIHNldFByZWRpY3Rpb24oU3BlY09iamVjdCk7CiAgICAgICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRl
LmgKaW5kZXggYmRkZDQ2NjAxN2U5Zjg3YjZjMDM1NDQwY2Q4YWYxNDdiODY1ZGY0Zi4uMGRiNTQ1
MWY4MWNiMDU1MDg5ZWM4OWU4MGNiZGY2OTA1MGY3YjJiZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTIxNiw2ICsyMTYsOCBAQCBib29sIHNh
ZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUpCiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6
CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6CisgICAgY2FzZSBDYWxsRE9NOgorICAgIGNhc2UgQ2hl
Y2tET006CiAgICAgY2FzZSBDaGVja0FycmF5OgogICAgIGNhc2UgQXJyYXlpZnk6CiAgICAgY2Fz
ZSBBcnJheWlmeVRvU3RydWN0dXJlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAxMGVmYjcyMDQzZjFhYzg3NzAxYWJkODZmOWVjY2Ex
YWRmOGQzN2IxLi40YTI4YjljYTNiNjk2NjVhZjMzYjJhZTlmNGVkNTIyOGFlMTU0MjlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAt
MzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRGR09TUkV4aXRGdXp6LmgiCiAjaW5jbHVkZSAiREZH
U2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJERkdTbG93
UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIkRPTUpJVFBhdGNocG9pbnQuaCIKICNpbmNsdWRl
ICJEaXJlY3RBcmd1bWVudHMuaCIKICNpbmNsdWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKICNpbmNs
dWRlICJKSVRCaXRBbmRHZW5lcmF0b3IuaCIKQEAgLTcwNTcsNiArNzA1OCw3NiBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnV0dGVyZmx5KE5vZGUqIG5vZGUpCiAgICAgc3RvcmFn
ZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ2FsbERPTShOb2RlKiBub2RlKQoreworICAgIFJlZjxET01KSVQ6OlBhdGNocG9pbnQ+IHBh
dGNocG9pbnQgPSBub2RlLT5kb21KSVQoKS0+Y2FsbERPTSgpOworCisgICAgVmVjdG9yPEdQUlJl
Zz4gZ3BTY3JhdGNoOworICAgIFZlY3RvcjxGUFJSZWc+IGZwU2NyYXRjaDsKKyAgICBWZWN0b3I8
UmVnPiByZWdzOworCisgICAgLy8gRklYTUU6IHBhdGNocG9pbnQgc2hvdWxkIGhhdmUgYSB3YXkg
dG8gdGVsbCB0aGlzIGNhbiByZXVzZSAiYmFzZSIgcmVnaXN0ZXIuCisgICAgLy8gVGVhY2hpbmcg
REZHIGFib3V0IERPTUpJVDo6UGF0Y2hwb2ludCBjbG9iYmVyIGluZm9ybWF0aW9uIGlzIG5pY2Uu
CisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgZ2xvYmFsT2JqZWN0KHRoaXMsIG1faml0LmdyYXBo
KCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2Uo
dGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgSlNWYWx1ZVJl
Z3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworCisgICAgcmVncy5hcHBlbmQocmVzdWx0LnJlZ3Mo
KS5ncHIoKSk7CisgICAgcmVncy5hcHBlbmQoYmFzZS5ncHIoKSk7CisgICAgcmVncy5hcHBlbmQo
Z2xvYmFsT2JqZWN0LmdwcigpKTsKKyAgICByZWdzLmFwcGVuZChzdGF0aWNfY2FzdDxHUFJSZWc+
KEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgIHJlZ3MuYXBwZW5kKHN0YXRpY19jYXN0
PEdQUlJlZz4oR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisKKyAgICBWZWN0b3I8
R1BSVGVtcG9yYXJ5PiBncFRlbXByYXJpZXM7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVyczsgKytpKSB7CisgICAgICAgIEdQUlRl
bXBvcmFyeSB0ZW1wb3JhcnkodGhpcyk7CisgICAgICAgIGdwU2NyYXRjaC5hcHBlbmQodGVtcG9y
YXJ5LmdwcigpKTsKKyAgICAgICAgZ3BUZW1wcmFyaWVzLmFwcGVuZChXVEZNb3ZlKHRlbXBvcmFy
eSkpOworICAgIH0KKworICAgIFZlY3RvcjxGUFJUZW1wb3Jhcnk+IGZwVGVtcHJhcmllczsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0
ZXJzOyArK2kpIHsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXBvcmFyeSh0aGlzKTsKKyAgICAg
ICAgZnBTY3JhdGNoLmFwcGVuZCh0ZW1wb3JhcnkuZnByKCkpOworICAgICAgICBmcFRlbXByYXJp
ZXMuYXBwZW5kKFdURk1vdmUodGVtcG9yYXJ5KSk7CisgICAgfQorCisgICAgRE9NSklUOjpQYXRj
aHBvaW50UGFyYW1zIHBhcmFtcyhXVEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCksIFdU
Rk1vdmUoZnBTY3JhdGNoKSk7CisgICAgcGF0Y2hwb2ludC0+Z2VuZXJhdG9yKCktPnJ1bihtX2pp
dCwgcGFyYW1zKTsKKyAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5yZWdzKCksIG5vZGUpOworfQor
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tET00oTm9kZSogbm9kZSkKK3sKKyAg
ICBSZWY8RE9NSklUOjpQYXRjaHBvaW50PiBwYXRjaHBvaW50ID0gbm9kZS0+ZG9tSklUKCktPmNo
ZWNrRE9NKCk7CisKKyAgICBWZWN0b3I8R1BSUmVnPiBncFNjcmF0Y2g7CisgICAgVmVjdG9yPEZQ
UlJlZz4gZnBTY3JhdGNoOworICAgIFZlY3RvcjxSZWc+IHJlZ3M7CisKKyAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICByZWdzLmFwcGVuZChi
YXNlLmdwcigpKTsKKworICAgIFZlY3RvcjxHUFJUZW1wb3Jhcnk+IGdwVGVtcHJhcmllczsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0
ZXJzOyArK2kpIHsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXBvcmFyeSh0aGlzKTsKKyAgICAg
ICAgZ3BTY3JhdGNoLmFwcGVuZCh0ZW1wb3JhcnkuZ3ByKCkpOworICAgICAgICBncFRlbXByYXJp
ZXMuYXBwZW5kKFdURk1vdmUodGVtcG9yYXJ5KSk7CisgICAgfQorCisgICAgVmVjdG9yPEZQUlRl
bXBvcmFyeT4gZnBUZW1wcmFyaWVzOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXRj
aHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7ICsraSkgeworICAgICAgICBGUFJUZW1wb3Jh
cnkgdGVtcG9yYXJ5KHRoaXMpOworICAgICAgICBmcFNjcmF0Y2guYXBwZW5kKHRlbXBvcmFyeS5m
cHIoKSk7CisgICAgICAgIGZwVGVtcHJhcmllcy5hcHBlbmQoV1RGTW92ZSh0ZW1wb3JhcnkpKTsK
KyAgICB9CisKKyAgICBET01KSVQ6OlBhdGNocG9pbnRQYXJhbXMgcGFyYW1zKFdURk1vdmUocmVn
cyksIFdURk1vdmUoZ3BTY3JhdGNoKSwgV1RGTW92ZShmcFNjcmF0Y2gpKTsKKyAgICBDQ2FsbEhl
bHBlcnM6Okp1bXBMaXN0IGZhaWx1cmVDYXNlcyA9IHBhdGNocG9pbnQtPmdlbmVyYXRvcigpLT5y
dW4obV9qaXQsIHBhcmFtcyk7CisgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1ZhbHVl
UmVncyhiYXNlLmdwcigpKSwgbm9kZS0+Y2hpbGQxKCksIGZhaWx1cmVDYXNlcyk7CisgICAgbm9S
ZXN1bHQobm9kZSk7Cit9CisKIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6dGVtcG9yYXJ5UmVnaXN0
ZXJGb3JQdXRCeVZhbChHUFJUZW1wb3JhcnkmIHRlbXBvcmFyeSwgQXJyYXlNb2RlIGFycmF5TW9k
ZSkKIHsKICAgICBpZiAoIXB1dEJ5VmFsV2lsbE5lZWRFeHRyYVJlZ2lzdGVyKGFycmF5TW9kZSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXgg
Y2E5NzhmNmI3Mzk1MTM5NTAxNTEwZDA1ODI4YTAyOTgyMmY4NWExYi4uNDIyZjc4MzBhNTllYTUw
NTNiZjZkMjM1YTFkMzY5MDRmMWRjMWY4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMjQ1OSw2ICsyNDU5LDggQEAgY2xhc3MgU3BlY3Vs
YXRpdmVKSVQgewogICAgIHZvaWQgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKE5vZGUq
KTsKICAgICB2b2lkIGNvbXBpbGVSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKE5vZGUqKTsKICAg
ICB2b2lkIGNvbXBpbGVHZXRCdXR0ZXJmbHkoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUNhbGxE
T00oTm9kZSopOworICAgIHZvaWQgY29tcGlsZUNoZWNrRE9NKE5vZGUqKTsKICAgICAKICNpZiBV
U0UoSlNWQUxVRTMyXzY0KQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEJhc2VPcGVyYW5kVHlwZSwg
dHlwZW5hbWUgUHJvcGVydHlPcGVyYW5kVHlwZSwgdHlwZW5hbWUgVmFsdWVPcGVyYW5kVHlwZSwg
dHlwZW5hbWUgVGFnVHlwZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDNhMTBhMTBkN2I0MjI1NDQwOWRkMjMyOWNj
MGYyMTdmOTY5OTVkM2UuLjZhMmUwYWEwMDIwM2UwOThlYWI2NzE0Mjc2MDQ0OWJhN2EyODZhMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcApAQCAtNTQyMCw2ICs1NDIwLDE0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBDYWxs
RE9NOgorICAgICAgICBjb21waWxlQ2FsbERPTShub2RlKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIENoZWNrRE9NOgorICAgICAgICBjb21waWxlQ2hlY2tET00obm9kZSk7CisgICAgICAg
IGJyZWFrOworCiAgICAgY2FzZSBVbnJlYWNoYWJsZToKICAgICAgICAgdW5yZWFjaGFibGUobm9k
ZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggZjVlYTc0YjJlNzEwNTk3NWM3ZmIwNzEzNmI3MTNi
MWFjMTU2N2I3Yy4uODk3YTA4Y2U3YWY3Zjg0N2FjODExNjg0MTQ5MjViMzlmYjQyMjk0MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CkBAIC01NDM2LDYgKzU0MzYsMTQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
KiBub2RlKQogICAgICAgICBjb21waWxlTWF0ZXJpYWxpemVOZXdPYmplY3Qobm9kZSk7CiAgICAg
ICAgIGJyZWFrOwogCisgICAgY2FzZSBDYWxsRE9NOgorICAgICAgICBjb21waWxlQ2FsbERPTShu
b2RlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIENoZWNrRE9NOgorICAgICAgICBjb21w
aWxlQ2hlY2tET00obm9kZSk7CisgICAgICAgIGJyZWFrOworCiAjaWYgRU5BQkxFKEZUTF9KSVQp
ICAgICAgICAKICAgICBjYXNlIENoZWNrVGllclVwSW5Mb29wOiB7CiAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIGNhbGxUaWVyVXAgPSBtX2ppdC5icmFuY2hBZGQzMigKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR3JhcGguY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRHcmFwaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk1ZWIyMTE1
NzRiMjQ3ZTMwNmQ5YmFmYzY2NWIwZjk4OThkNGQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR3JhcGguY3BwCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRE9NSklUR3JhcGguaCIKKworI2lmIEVOQUJMRShERkdfSklU
KQorCituYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworCit9IH0KKworI2VuZGlm
IC8vIEVOQUJMRShERkdfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rv
bWppdC9ET01KSVRHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRH
cmFwaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjljYWZkMGMzYmU5Y2M0NDQ3ZTdiYzdlNmNhZjcwMjNiY2Q2NDdk
YWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJ
VEdyYXBoLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRE9NSklUUGF0Y2hwb2lu
dC5oIgorI2luY2x1ZGUgIlByb3BlcnR5U2xvdC5oIgorI2luY2x1ZGUgIlB1dFByb3BlcnR5U2xv
dC5oIgorI2luY2x1ZGUgIlNwZWN1bGF0ZWRUeXBlLmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkK
KyNpbmNsdWRlICJERkdVc2VLaW5kLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBET01KSVQgeworCitjbGFzcyBHcmFwaCB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBDdXN0b21HZXR0ZXI7CisgICAgdHlwZWRlZiBQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYyBDdXN0b21TZXR0ZXI7CisKKyAgICBHcmFwaChDdXN0b21H
ZXR0ZXIgZ2V0dGVyLCBDdXN0b21TZXR0ZXIgc2V0dGVyKQorICAgICAgICA6IG1fZ2V0dGVyKGdl
dHRlcikKKyAgICAgICAgLCBtX3NldHRlcihzZXR0ZXIpCisgICAgeworICAgIH0KKworICAgIHZp
cnR1YWwgfkdyYXBoKCkgeyB9CisKKyAgICBDdXN0b21HZXR0ZXIgZ2V0dGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9nZXR0ZXI7IH0KKyAgICBDdXN0b21TZXR0ZXIgc2V0dGVyKCkgY29uc3QgeyByZXR1
cm4gbV9zZXR0ZXI7IH0KKworICAgIHZpcnR1YWwgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbigp
ID0gMDsKKyAgICB2aXJ0dWFsIFNwZWN1bGF0ZWRUeXBlIHJlc3VsdFR5cGUoKSA9IDA7CisKKyNp
ZiBFTkFCTEUoREZHX0pJVCkKKyAgICB2aXJ0dWFsIFJlZjxET01KSVQ6OlBhdGNocG9pbnQ+IGNh
bGxET00oKSA9IDA7CisgICAgdmlydHVhbCBSZWY8RE9NSklUOjpQYXRjaHBvaW50PiBjaGVja0RP
TSgpID0gMDsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEN1c3RvbUdldHRlciBtX2dldHRlcjsK
KyAgICBDdXN0b21TZXR0ZXIgbV9zZXR0ZXI7Cit9OworCit9IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUUGF0Y2hwb2ludC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RvbWppdC9ET01KSVRQYXRjaHBvaW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE3NTQ4OGM4
YWE2OTY0YmI1MzMxMWE4ZjNkYzUyZDJkNTgyNTM5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUUGF0Y2hwb2ludC5oCkBAIC0wLDAgKzEsNjgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkRPTUpJVFBhdGNo
cG9pbnRQYXJhbXMuaCIKKyNpbmNsdWRlICJSZWdpc3RlclNldC5oIgorCituYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIERPTUpJVCB7CisKK3R5cGVkZWYgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBQ
YXRjaHBvaW50R2VuZXJhdG9yRnVuY3Rpb24oQ0NhbGxIZWxwZXJzJiwgY29uc3QgUGF0Y2hwb2lu
dFBhcmFtcyYpOwordHlwZWRlZiBTaGFyZWRUYXNrPFBhdGNocG9pbnRHZW5lcmF0b3JGdW5jdGlv
bj4gUGF0Y2hwb2ludEdlbmVyYXRvcjsKKworLy8gRE9NSklUIHBhdGNocG9pbnQgaXMgdGhlIHdh
eSB0byBpbmplY3QgYW4gb3BhcXVlIGNvZGUgZ2VuZXJhdG9yIGludG8gREZHIGFuZCBGVEwuCisv
LyBXaGlsZSBCMzo6UGF0Y2hwb2ludCBpcyBzZWxmLWNvbnRhaW5lZCBhYm91dCBpdHMgY29tcGls
YXRpb24gaW5mb3JtYXRpb24sCisvLyBET01KSVQ6OlBhdGNocG9pbnQgZGVwZW5kcyBvbiB3aGlj
aCBERkcgTm9kZSBpbnZva2VzLiBGb3IgZXhhbXBsZSwgQ2hlY2tET00gd2lsbAorLy8gbGluayBy
ZXR1cm5lZCBmYWlsdXJlQ2FzZXMgdG8gQmFkVHlwZSBPU1JFeGl0LCBidXQgdGhpcyBpbmZvcm1h
dGlvbiBpcyBvZmZlcmVkCisvLyBmcm9tIENoZWNrRE9NIERGRyBOb2RlLCBub3QgZnJvbSB0aGlz
IHBhdGNocG9pbnQuIFRoaXMgcGF0Y2hwb2ludCBtYWlubHkgZm9jdXNlcworLy8gb24gaW5qZWN0
aW5nIGEgc25pcHBldCBnZW5lcmF0b3IgdGhhdCBjYW4gdGVsbCByZWdpc3RlciB1c2FnZSBhbmQg
Y2FuIGJlIHVzZWQKKy8vIGluIGJvdGggREZHIGFuZCBGVEwuCitjbGFzcyBQYXRjaHBvaW50IDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBhdGNocG9pbnQ+IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPFBhdGNocG9pbnQ+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBQYXRjaHBvaW50KCkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEZ1bmN0b3I+CisgICAgdm9pZCBzZXRHZW5lcmF0b3IoY29uc3QgRnVuY3RvciYgZnVuY3RvcikK
KyAgICB7CisgICAgICAgIG1fZ2VuZXJhdG9yID0gY3JlYXRlU2hhcmVkVGFzazxQYXRjaHBvaW50
R2VuZXJhdG9yRnVuY3Rpb24+KGZ1bmN0b3IpOworICAgIH0KKworICAgIFJlZlB0cjxQYXRjaHBv
aW50R2VuZXJhdG9yPiBnZW5lcmF0b3IoKSBjb25zdCB7IHJldHVybiBtX2dlbmVyYXRvcjsgfQor
CisgICAgdWludDhfdCBudW1HUFNjcmF0Y2hSZWdpc3RlcnMgeyAwIH07CisgICAgdWludDhfdCBu
dW1GUFNjcmF0Y2hSZWdpc3RlcnMgeyAwIH07CisKK3ByaXZhdGU6CisgICAgUGF0Y2hwb2ludCgp
ID0gZGVmYXVsdDsKKworICAgIFJlZlB0cjxQYXRjaHBvaW50R2VuZXJhdG9yPiBtX2dlbmVyYXRv
cjsKK307CisKK30gfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9E
T01KSVRQYXRjaHBvaW50UGFyYW1zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RP
TUpJVFBhdGNocG9pbnRQYXJhbXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDYzNTRmYjhlNGRiNzk4ZjA5Yjhj
NmUyZGI5Y2FhMDE5YmE1MTFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RvbWppdC9ET01KSVRQYXRjaHBvaW50UGFyYW1zLmgKQEAgLTAsMCArMSw1NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJTZXQuaCIKKwor
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBET01KSVQgeworCitjbGFzcyBQYXRjaHBvaW50UGFy
YW1zIHsKK1dURl9NQUtFX05PTkNPUFlBQkxFKFBhdGNocG9pbnRQYXJhbXMpOworcHVibGljOgor
ICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3JlZ3Muc2l6ZSgpOyB9CisgICAg
Y29uc3QgUmVnJiBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9yZWdzW2luZGV4
XTsgfQorICAgIGNvbnN0IFJlZyYgb3BlcmF0b3JbXSh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyBy
ZXR1cm4gYXQoaW5kZXgpOyB9CisKKyAgICBHUFJSZWcgZ3BTY3JhdGNoKHVuc2lnbmVkIGluZGV4
KSBjb25zdCB7IHJldHVybiBtX2dwU2NyYXRjaFtpbmRleF07IH0KKyAgICBGUFJSZWcgZnBTY3Jh
dGNoKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2ZwU2NyYXRjaFtpbmRleF07IH0K
KworICAgIFBhdGNocG9pbnRQYXJhbXMoVmVjdG9yPFJlZz4mJiByZWdzLCBWZWN0b3I8R1BSUmVn
PiYmIGdwU2NyYXRjaCwgVmVjdG9yPEZQUlJlZz4mJiBmcFNjcmF0Y2gpCisgICAgICAgIDogbV9y
ZWdzKFdURk1vdmUocmVncykpCisgICAgICAgICwgbV9ncFNjcmF0Y2goV1RGTW92ZShncFNjcmF0
Y2gpKQorICAgICAgICAsIG1fZnBTY3JhdGNoKFdURk1vdmUoZnBTY3JhdGNoKSkKKyAgICB7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFZlY3RvcjxSZWc+IG1fcmVnczsKKyAgICBWZWN0b3I8R1BS
UmVnPiBtX2dwU2NyYXRjaDsKKyAgICBWZWN0b3I8RlBSUmVnPiBtX2ZwU2NyYXRjaDsKK307CisK
K30gfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVh
cFJlcG9zaXRvcnkuaAppbmRleCA3MTlmNTJjM2ZlM2Q5YzU4ODFkNzk4M2QyMDM4YmRkNzEzNDI1
ZDA5Li5mNWRhM2ZhYjdmNWMwOGQ2MWZjMjJhYzc2MmUwYjY3YTg2NTU1NGYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnku
aApAQCAtMTEyLDYgKzExMiw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAg
ICBtYWNybyhIYXNoTWFwQnVja2V0X3ZhbHVlLCBIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXRE
YXRhS2V5VmFsdWU+OjpvZmZzZXRPZlZhbHVlKCkpIFwKICAgICBtYWNybyhIYXNoTWFwQnVja2V0
X2tleSwgSGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleVZhbHVlPjo6b2Zmc2V0T2ZL
ZXkoKSkgXAogICAgIG1hY3JvKFN5bWJvbF9zeW1ib2xJbXBsLCBTeW1ib2w6Om9mZnNldE9mU3lt
Ym9sSW1wbCgpKSBcCisgICAgbWFjcm8oV2Vha0ltcGxfanNWYWx1ZSwgV2Vha0ltcGw6Om9mZnNl
dE9mSlNWYWx1ZSgpKSBcCisgICAgbWFjcm8oV2Vha0ltcGxfd2Vha0hhbmRsZU93bmVyLCBXZWFr
SW1wbDo6b2Zmc2V0T2ZXZWFrSGFuZGxlT3duZXIoKSkgXAogCiAjZGVmaW5lIEZPUl9FQUNIX0lO
REVYRURfQUJTVFJBQ1RfSEVBUChtYWNybykgXAogICAgIG1hY3JvKERpcmVjdEFyZ3VtZW50c19z
dG9yYWdlLCBEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VPZmZzZXQoKSwgc2l6ZW9mKEVuY29kZWRK
U1ZhbHVlKSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBh
YmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwCmluZGV4IGI2ZWIyZTVmNzIxOWRhZTZmZTBjMmE4NGFmMDVlODIyY2EwNmQ4MWYuLmY2YjFk
NWExYzBmYTBmNzNlMzVkYWVhNmFmYmZmMTA2ZmFlNjQ5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTI2Myw2ICsyNjMsOCBAQCBpbmxp
bmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIENvbXBh
cmVHcmVhdGVyOgogICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKICAgICBjYXNlIENvbXBhcmVT
dHJpY3RFcToKKyAgICBjYXNlIENoZWNrRE9NOgorICAgIGNhc2UgQ2FsbERPTToKICAgICAgICAg
Ly8gVGhlc2UgYXJlIE9LLgogICAgICAgICBicmVhazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDA2M2NjNTk0NDA2MjQ4OTYzN2E5YzJi
ZDMxODI5MzU1NzU2NGU0MjAuLjdjYjkzMmY4NjM0NTY0YWVjYWJhMjY0ZGY3YjhlOTk1N2Q2Yzlk
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
QEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIgog
I2luY2x1ZGUgIkRGR09TUkF2YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuaCIKICNpbmNsdWRlICJE
RkdPU1JFeGl0RnV6ei5oIgorI2luY2x1ZGUgIkRPTUpJVFBhdGNocG9pbnQuaCIKICNpbmNsdWRl
ICJEaXJlY3RBcmd1bWVudHMuaCIKICNpbmNsdWRlICJGVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5
LmgiCiAjaW5jbHVkZSAiRlRMQXZhaWxhYmxlUmVjb3ZlcnkuaCIKQEAgLTEwMzcsNiArMTAzOCwx
MiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAg
ICAgICAgICAgY29tcGlsZVVucmVhY2hhYmxlKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDaGVja0RPTToKKyAgICAgICAgICAgIGNvbXBpbGVDaGVja0RPTSgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2FsbERPTToKKyAgICAgICAgICAgIGNvbXBpbGVD
YWxsRE9NKCk7CisgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFBoYW50b21Mb2Nh
bDoKICAgICAgICAgY2FzZSBMb29wSGludDoKQEAgLTg0NTIsNiArODQ1OSwxMDggQEAgY2xhc3Mg
TG93ZXJERkdUb0IzIHsKICAgICAgICAgCiAgICAgICAgIGNyYXNoKCk7CiAgICAgfQorCisgICAg
dm9pZCBjb21waWxlQ2hlY2tET00oKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dD
ZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworCisgICAgICAgIFJlZlB0cjxET01KSVQ6OlBhdGNocG9p
bnQ+IGRvbUpJVCA9IG1fbm9kZS0+ZG9tSklUKCktPmNoZWNrRE9NKCk7CisKKyAgICAgICAgUGF0
Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChWb2lkKTsKKyAgICAg
ICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGNlbGwpOworICAgICAgICBwYXRjaHBv
aW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSBkb21KSVQtPm51bUdQU2NyYXRjaFJlZ2lzdGVy
czsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtRlBTY3JhdGNoUmVnaXN0ZXJzID0gZG9tSklULT5u
dW1GUFNjcmF0Y2hSZWdpc3RlcnM7CisKKyAgICAgICAgU3RhdGUqIHN0YXRlID0gJm1fZnRsU3Rh
dGU7CisgICAgICAgIE5vZGVPcmlnaW4gb3JpZ2luID0gbV9vcmlnaW47CisgICAgICAgIHVuc2ln
bmVkIG9zckV4aXRBcmd1bWVudE9mZnNldCA9IHBhdGNocG9pbnQtPm51bUNoaWxkcmVuKCk7Cisg
ICAgICAgIE9TUkV4aXREZXNjcmlwdG9yKiBleGl0RGVzY3JpcHRvciA9IGFwcGVuZE9TUkV4aXRE
ZXNjcmlwdG9yKGpzVmFsdWVWYWx1ZShjZWxsKSwgbV9ub2RlLT5jaGlsZDEoKS5ub2RlKCkpOwor
ICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRDb2xkQW55cyhidWlsZEV4aXRBcmd1bWVudHMoZXhp
dERlc2NyaXB0b3IsIG9yaWdpbi5mb3JFeGl0LCBqc1ZhbHVlVmFsdWUoY2VsbCkpKTsKKworICAg
ICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCisgICAgICAgICAgICBbPV0gKENDYWxsSGVs
cGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAg
ICAgICAgICAgICAgIFZlY3RvcjxHUFJSZWc+IGdwU2NyYXRjaDsKKyAgICAgICAgICAgICAgICBW
ZWN0b3I8RlBSUmVnPiBmcFNjcmF0Y2g7CisgICAgICAgICAgICAgICAgVmVjdG9yPFJlZz4gcmVn
czsKKworICAgICAgICAgICAgICAgIHJlZ3MuYXBwZW5kKHBhcmFtc1swXS5ncHIoKSk7CisKKyAg
ICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZG9tSklULT5udW1HUFNjcmF0
Y2hSZWdpc3RlcnM7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgZ3BTY3JhdGNoLmFwcGVuZChw
YXJhbXMuZ3BTY3JhdGNoKGkpKTsKKworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBkb21KSVQtPm51bUdQU2NyYXRjaFJlZ2lzdGVyczsgKytpKQorICAgICAgICAgICAg
ICAgICAgICBmcFNjcmF0Y2guYXBwZW5kKHBhcmFtcy5mcFNjcmF0Y2goaSkpOworCisgICAgICAg
ICAgICAgICAgUmVmUHRyPE9TUkV4aXRIYW5kbGU+IGhhbmRsZSA9IGV4aXREZXNjcmlwdG9yLT5l
bWl0T1NSRXhpdExhdGVyKCpzdGF0ZSwgQmFkVHlwZSwgb3JpZ2luLCBwYXJhbXMsIG9zckV4aXRB
cmd1bWVudE9mZnNldCk7CisKKyAgICAgICAgICAgICAgICBET01KSVQ6OlBhdGNocG9pbnRQYXJh
bXMgZG9tSklUUGFyYW1zKFdURk1vdmUocmVncyksIFdURk1vdmUoZ3BTY3JhdGNoKSwgV1RGTW92
ZShmcFNjcmF0Y2gpKTsKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGZh
aWx1cmVDYXNlcyA9IGRvbUpJVC0+Z2VuZXJhdG9yKCktPnJ1bihqaXQsIGRvbUpJVFBhcmFtcyk7
CisKKyAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dIChMaW5rQnVmZmVyJiBsaW5r
QnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhmYWlsdXJlQ2Fz
ZXMsIGxpbmtCdWZmZXIubG9jYXRpb25PZihoYW5kbGUtPmxhYmVsKSk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAvLyBTZXQgc29tZSBvYnZpb3VzIHRo
aW5ncy4KKyAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy50ZXJtaW5hbCA9IGZhbHNlOworICAg
ICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLndyaXRlc0xvY2FsU3RhdGUgPSBmYWxzZTsKKyAgICAg
ICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy5yZWFkc0xvY2FsU3RhdGUgPSBmYWxzZTsKKworICAgICAg
ICAvLyBUaGlzIGlzIGhvdyB3ZSB0ZWxsIEIzIGFib3V0IHRoZSBwb3NzaWJpbGl0eSBvZiBqdW1w
IHJlcGxhY2VtZW50LgorICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLmV4aXRzU2lkZXdheXMg
PSB0cnVlOworCisgICAgICAgIC8vIEl0J3Mgbm90IHBvc3NpYmxlIGZvciBzb21lIHByaW9yIGJy
YW5jaCB0byBkZXRlcm1pbmUgdGhlIHNhZmV0eSBvZiB0aGlzIG9wZXJhdGlvbi4gSXQncyBhbHdh
eXMKKyAgICAgICAgLy8gZmluZSB0byBleGVjdXRlIHRoaXMgb24gc29tZSBwYXRoIHRoYXQgd291
bGRuJ3QgaGF2ZSBvcmlnaW5hbGx5IGV4ZWN1dGVkIGl0IGJlZm9yZQorICAgICAgICAvLyBvcHRp
bWl6YXRpb24uCisgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMuY29udHJvbERlcGVuZGVudCA9
IGZhbHNlOworCisgICAgICAgIC8vIElmIHRoaXMgZmFsbHMgdGhyb3VnaCB0aGVuIGl0IHdvbid0
IHdyaXRlIGFueXRoaW5nLgorICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLndyaXRlcyA9IEhl
YXBSYW5nZSgpOworCisgICAgICAgIC8vIFdoZW4gdGhpcyBhYnJ1cHRseSB0ZXJtaW5hdGVzLCBp
dCBjb3VsZCByZWFkIGFueSBoZWFwIGxvY2F0aW9uLgorICAgICAgICBwYXRjaHBvaW50LT5lZmZl
Y3RzLnJlYWRzID0gSGVhcFJhbmdlOjp0b3AoKTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVD
YWxsRE9NKCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBnbG9iYWxPYmplY3QgPSBsb3dDZWxsKG1f
Z3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAwKSk7CisgICAgICAgIExWYWx1ZSBjZWxsID0gbG93
Q2VsbChtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMSkpOworCisgICAgICAgIFJlZlB0cjxE
T01KSVQ6OlBhdGNocG9pbnQ+IGRvbUpJVCA9IG1fbm9kZS0+ZG9tSklUKCktPmNhbGxET00oKTsK
KyAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJ
bnQ2NCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihnbG9iYWxPYmpl
Y3QpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIoY2VsbCk7CisgICAg
ICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ01hc2ssIFZhbHVlUmVwOjpsYXRlUmVnKEdQUklu
Zm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdU
eXBlTnVtYmVyLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0
ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3Jh
dGNoUmVnaXN0ZXJzKCkpOworICAgICAgICBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3Rl
cnMgPSBkb21KSVQtPm51bUdQU2NyYXRjaFJlZ2lzdGVyczsKKyAgICAgICAgcGF0Y2hwb2ludC0+
bnVtRlBTY3JhdGNoUmVnaXN0ZXJzID0gZG9tSklULT5udW1GUFNjcmF0Y2hSZWdpc3RlcnM7Cisg
ICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKKyAgICAgICAgICAgIFs9XSAoQ0NhbGxI
ZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7Cisg
ICAgICAgICAgICAgICAgVmVjdG9yPEdQUlJlZz4gZ3BTY3JhdGNoOworICAgICAgICAgICAgICAg
IFZlY3RvcjxGUFJSZWc+IGZwU2NyYXRjaDsKKyAgICAgICAgICAgICAgICBWZWN0b3I8UmVnPiBy
ZWdzOworCisgICAgICAgICAgICAgICAgLy8gRklYTUU6IHBhdGNocG9pbnQgc2hvdWxkIGhhdmUg
YSB3YXkgdG8gdGVsbCB0aGlzIGNhbiByZXVzZSAiYmFzZSIgcmVnaXN0ZXIuCisgICAgICAgICAg
ICAgICAgLy8gVGVhY2hpbmcgREZHIGFib3V0IERPTUpJVDo6UGF0Y2hwb2ludCBjbG9iYmVyIGlu
Zm9ybWF0aW9uIGlzIG5pY2UuCisgICAgICAgICAgICAgICAgcmVncy5hcHBlbmQocGFyYW1zWzBd
LmdwcigpKTsKKyAgICAgICAgICAgICAgICByZWdzLmFwcGVuZChwYXJhbXNbMV0uZ3ByKCkpOwor
ICAgICAgICAgICAgICAgIHJlZ3MuYXBwZW5kKHBhcmFtc1syXS5ncHIoKSk7CisgICAgICAgICAg
ICAgICAgcmVncy5hcHBlbmQocGFyYW1zWzNdLmdwcigpKTsKKyAgICAgICAgICAgICAgICByZWdz
LmFwcGVuZChwYXJhbXNbNF0uZ3ByKCkpOworCisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGRvbUpJVC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzOyArK2kpCisgICAgICAg
ICAgICAgICAgICAgIGdwU2NyYXRjaC5hcHBlbmQocGFyYW1zLmdwU2NyYXRjaChpKSk7CisKKyAg
ICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZG9tSklULT5udW1HUFNjcmF0
Y2hSZWdpc3RlcnM7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgZnBTY3JhdGNoLmFwcGVuZChw
YXJhbXMuZnBTY3JhdGNoKGkpKTsKKworICAgICAgICAgICAgICAgIERPTUpJVDo6UGF0Y2hwb2lu
dFBhcmFtcyBkb21KSVRQYXJhbXMoV1RGTW92ZShyZWdzKSwgV1RGTW92ZShncFNjcmF0Y2gpLCBX
VEZNb3ZlKGZwU2NyYXRjaCkpOworICAgICAgICAgICAgICAgIGRvbUpJVC0+Z2VuZXJhdG9yKCkt
PnJ1bihqaXQsIGRvbUpJVFBhcmFtcyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgcGF0Y2hw
b2ludC0+ZWZmZWN0cyA9IEVmZmVjdHM6OmZvckNhbGwoKTsKKyAgICAgICAgc2V0SlNWYWx1ZShw
YXRjaHBvaW50KTsKKyAgICB9CiAgICAgCiAgICAgdm9pZCBjb21wYXJlRXFPYmplY3RPck90aGVy
VG9PYmplY3QoRWRnZSBsZWZ0Q2hpbGQsIEVkZ2UgcmlnaHRDaGlsZCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrSW1wbC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvV2Vha0ltcGwuaAppbmRleCBkODE3YjcyOGI2NmY5ZTEzY2NkMDg5MGQ0
MTZlMjcxZjI2NzI3Zjc3Li4zZTMwNDY4ZDM4YmUyZmMyM2YwZDllNDkxYWI3OGM5MzhlZjA2YTUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrSW1wbC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJbXBsLmgKQEAgLTU2LDYgKzU2LDE2IEBA
IGNsYXNzIFdlYWtJbXBsIHsKIAogICAgIHN0YXRpYyBXZWFrSW1wbCogYXNXZWFrSW1wbChKU1Zh
bHVlKik7CiAKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSlNWYWx1ZSgpCisgICAgewor
ICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFdlYWtJbXBsLCBtX2pzVmFsdWUpOworICAg
IH0KKworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXZWFrSGFuZGxlT3duZXIoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihXZWFrSW1wbCwgbV93ZWFrSGFuZGxl
T3duZXIpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBjb25zdCBKU1ZhbHVlIG1fanNWYWx1ZTsK
ICAgICBXZWFrSGFuZGxlT3duZXIqIG1fd2Vha0hhbmRsZU93bmVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAKaW5kZXggZDQ1OTM5YzU5NTlhODA3ZDQ1MDViOTRlYTNjZWExNTVm
ZmY1YzRiOC4uNWUwZDExMjBjYTVkNDQyNzQ3NzNkOTFjOWY2Zjg5YzdmMDM1M2ZiZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiQ2FsbEZyYW1lU2h1ZmZsZXIuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiREZHU3BlY3VsYXRpdmVKSVQuaCIKKyNpbmNsdWRlICJET01KSVRHcmFwaC5oIgogI2lu
Y2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkZUTFRodW5rcy5oIgogI2luY2x1
ZGUgIkdDQXdhcmVKSVRTdHViUm91dGluZS5oIgpAQCAtMjYwLDYgKzI2MSwxMCBAQCBzdGF0aWMg
SW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBiYXNlVmFsdWUsIGNvbgogICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUdldHRlcigpKQog
ICAgICAgICAgICAgZ2V0dGVyID0ganNEeW5hbWljQ2FzdDxKU0Z1bmN0aW9uKj4oc2xvdC5nZXR0
ZXJTZXR0ZXIoKS0+Z2V0dGVyKCkpOwogCisgICAgICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9
IG51bGxwdHI7CisgICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgJiYgc2xvdC5k
b21KSVQoKSkKKyAgICAgICAgICAgIGRvbUpJVCA9IHNsb3QuZG9tSklUKCk7CisKICAgICAgICAg
aWYgKGtpbmQgPT0gR2V0QnlJREtpbmQ6OlB1cmUpIHsKICAgICAgICAgICAgIEFjY2Vzc0Nhc2U6
OkFjY2Vzc1R5cGUgdHlwZTsKICAgICAgICAgICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlVmFsdWUo
KSkKQEAgLTI5MCw3ICsyOTUsOCBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVH
ZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbgogICAgICAgICAg
ICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6OmdldCgKICAgICAgICAgICAgICAgICB2bSwgY29kZUJs
b2NrLCB0eXBlLCBvZmZzZXQsIHN0cnVjdHVyZSwgY29uZGl0aW9uU2V0LCBsb2FkVGFyZ2V0RnJv
bVByb3h5LAogICAgICAgICAgICAgICAgIHNsb3Qud2F0Y2hwb2ludFNldCgpLCBzbG90LmlzQ2Fj
aGVhYmxlQ3VzdG9tKCkgPyBzbG90LmN1c3RvbUdldHRlcigpIDogbnVsbHB0ciwKLSAgICAgICAg
ICAgICAgICBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgPyBzbG90LnNsb3RCYXNlKCkgOiBudWxs
cHRyKTsKKyAgICAgICAgICAgICAgICBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgPyBzbG90LnNs
b3RCYXNlKCkgOiBudWxscHRyLAorICAgICAgICAgICAgICAgIGRvbUpJVCk7CiAgICAgICAgIH0K
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggZjE1MDAwYjM4MjMxMjFjNzM2YjI2YmQ3
N2E0ODgyNDc5YTViZGM3ZS4uYmFkYjQ1YThjNWViZDAzY2M3NmZkNjUxZjMwOGZjZWE1NzhkNGE4
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTI4LDYgKzI4LDggQEAKICNpbmNsdWRlICJCdXR0
ZXJmbHlJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29tcGxl
dGlvbi5oIgorI2luY2x1ZGUgIkRPTUpJVEdyYXBoLmgiCisjaW5jbHVkZSAiRE9NSklUUGF0Y2hw
b2ludC5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKQEAgLTcyLDYgKzc0LDcgQEAKICNpbmNs
dWRlIDx0eXBlX3RyYWl0cz4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KIApAQCAtNTM3LDEyICs1NDAsMTEwIEBAIGNsYXNzIFNpbXBsZU9iamVjdCA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBXcml0ZUJhcnJpZXI8SlNDOjpVbmtub3du
PiBtX2hpZGRlblZhbHVlOwogfTsKIAorY2xhc3MgRE9NSklUR2V0dGVyIDogcHVibGljIEpTTm9u
RmluYWxPYmplY3QgeworcHVibGljOgorICAgIERPTUpJVEdldHRlcihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQorICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICB7CisgICAg
fQorCisgICAgREVDTEFSRV9JTkZPOworICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNl
OworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAg
eworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhKU0M6OkpTVHlwZShMYXN0SlNDT2JqZWN0VHlwZSArIDEpLCBTdHJ1
Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgfQorCisgICAgc3RhdGljIERPTUpJVEdldHRlciog
Y3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgeworICAgICAgICBET01K
SVRHZXR0ZXIqIGdldHRlciA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPERPTUpJVEdldHRl
cj4odm0uaGVhcCwgc2l6ZW9mKERPTUpJVEdldHRlcikpKSBET01KSVRHZXR0ZXIodm0sIHN0cnVj
dHVyZSk7CisgICAgICAgIGdldHRlci0+ZmluaXNoQ3JlYXRpb24odm0pOworICAgICAgICByZXR1
cm4gZ2V0dGVyOworICAgIH0KKworICAgIGNsYXNzIERPTUpJVEdldHRlckRPTUpJVCA6IHB1Ymxp
YyBET01KSVQ6OkdyYXBoIHsKKyAgICBwdWJsaWM6CisgICAgICAgIERPTUpJVEdldHRlckRPTUpJ
VCgpCisgICAgICAgICAgICA6IERPTUpJVDo6R3JhcGgoRE9NSklUR2V0dGVyOjpjdXN0b21HZXR0
ZXIsIG51bGxwdHIpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFNwZWN1bGF0ZWRU
eXBlIHByZWRpY3Rpb24oKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
U3BlY0ludDMyT25seTsKKyAgICAgICAgfQorCisgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHJlc3Vs
dFR5cGUoKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gU3BlY0J5dGVj
b2RlTnVtYmVyOworICAgICAgICB9CisKKyAgICAgICAgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4g
Y2FsbERPTSgpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZjxET01KSVQ6OlBh
dGNocG9pbnQ+IHBhdGNocG9pbnQgPSBET01KSVQ6OlBhdGNocG9pbnQ6OmNyZWF0ZSgpOworICAg
ICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKFs9XShDQ2FsbEhlbHBlcnMmIGppdCwg
Y29uc3QgRE9NSklUOjpQYXRjaHBvaW50UGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAg
ICBqaXQubG9hZDMyKENDYWxsSGVscGVyczo6QWRkcmVzcyhwYXJhbXNbMl0uZ3ByKCksIERPTUpJ
VEdldHRlcjo6b2Zmc2V0T2ZWYWx1ZSgpKSwgcGFyYW1zWzBdLmdwcigpKTsKKyAgICAgICAgICAg
ICAgICBqaXQub3I2NChHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIHBhcmFtc1swXS5n
cHIoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIENDYWxsSGVscGVyczo6SnVtcExpc3QoKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuIHBhdGNocG9pbnQ7CisgICAgICAg
IH0KKworICAgICAgICBSZWY8RE9NSklUOjpQYXRjaHBvaW50PiBjaGVja0RPTSgpIG92ZXJyaWRl
CisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZjxET01KSVQ6OlBhdGNocG9pbnQ+IHBhdGNocG9p
bnQgPSBET01KSVQ6OlBhdGNocG9pbnQ6OmNyZWF0ZSgpOworICAgICAgICAgICAgcGF0Y2hwb2lu
dC0+c2V0R2VuZXJhdG9yKFs9XShDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgRE9NSklUOjpQYXRj
aHBvaW50UGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1
bXBMaXN0IGZhaWx1cmVDYXNlczsKKyAgICAgICAgICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5k
KGppdC5icmFuY2g4KAorICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFs
LAorICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocGFyYW1zWzBdLmdw
cigpLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwKKyAgICAgICAgICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNDOjpKU1R5cGUoTGFzdEpTQ09iamVjdFR5cGUg
KyAxKSkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFpbHVyZUNhc2VzOworICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICByZXR1cm4gcGF0Y2hwb2ludDsKKyAgICAgICAgfQorICAgIH07
CisKKyAgICBzdGF0aWMgRE9NSklUOjpHcmFwaCogZG9tSklUR2V0dGVyR3JhcGgoKQorICAgIHsK
KyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERPTUpJVEdldHRlckRPTUpJVD4gZ3JhcGg7
CisgICAgICAgIHJldHVybiAmZ3JhcGguZ2V0KCk7CisgICAgfQorCisgICAgc3RhdGljIHB0cmRp
ZmZfdCBvZmZzZXRPZlZhbHVlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKERPTUpJVEdldHRl
ciwgbV92YWx1ZSk7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2
bSkKKyAgICB7CisgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICAgICAgRE9N
SklUOjpHcmFwaCogZG9tSklUID0gZG9tSklUR2V0dGVyR3JhcGgoKTsKKyAgICAgICAgQ3VzdG9t
R2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNy
ZWF0ZSh2bSwgZG9tSklULT5nZXR0ZXIoKSwgZG9tSklULT5zZXR0ZXIoKSwgZG9tSklUKTsKKyAg
ICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAiY3VzdG9tR2V0dGVyIiksIGN1c3RvbUdldHRlclNldHRlciwgUmVhZE9ubHkgfCBDdXN0
b21BY2Nlc3Nvcik7CisgICAgfQorCisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGN1c3RvbUdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorICAgIHsKKyAgICAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgICAgIERPTUpJVEdldHRlciog
dGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUR2V0dGVyKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOworICAgICAgICBpZiAoIXRoaXNPYmplY3QpCisgICAgICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+bV92YWx1ZSkpOworICAgIH0KKworICAgIGlu
dDMyX3QgbV92YWx1ZSB7IDQyIH07Cit9OworCiAKIGNvbnN0IENsYXNzSW5mbyBFbGVtZW50Ojpz
X2luZm8gPSB7ICJFbGVtZW50IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJM
RShFbGVtZW50KSB9OwogY29uc3QgQ2xhc3NJbmZvIE1hc3F1ZXJhZGVyOjpzX2luZm8gPSB7ICJN
YXNxdWVyYWRlciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoTWFzcXVl
cmFkZXIpIH07CiBjb25zdCBDbGFzc0luZm8gUm9vdDo6c19pbmZvID0geyAiUm9vdCIsICZCYXNl
OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoUm9vdCkgfTsKIGNvbnN0IENsYXNzSW5m
byBJbXB1cmVHZXR0ZXI6OnNfaW5mbyA9IHsgIkltcHVyZUdldHRlciIsICZCYXNlOjpzX2luZm8s
IDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSW1wdXJlR2V0dGVyKSB9OwogY29uc3QgQ2xhc3NJbmZv
IEN1c3RvbUdldHRlcjo6c19pbmZvID0geyAiQ3VzdG9tR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShDdXN0b21HZXR0ZXIpIH07Citjb25zdCBDbGFzc0luZm8g
RE9NSklUR2V0dGVyOjpzX2luZm8gPSB7ICJET01KSVRHZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCAw
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKERPTUpJVEdldHRlcikgfTsKIGNvbnN0IENsYXNzSW5mbyBS
dW50aW1lQXJyYXk6OnNfaW5mbyA9IHsgIlJ1bnRpbWVBcnJheSIsICZCYXNlOjpzX2luZm8sIDAs
IENSRUFURV9NRVRIT0RfVEFCTEUoUnVudGltZUFycmF5KSB9OwogY29uc3QgQ2xhc3NJbmZvIFNp
bXBsZU9iamVjdDo6c19pbmZvID0geyAiU2ltcGxlT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgMCwg
Q1JFQVRFX01FVEhPRF9UQUJMRShTaW1wbGVPYmplY3QpIH07CiBzdGF0aWMgYm9vbCB0ZXN0MjYy
QXN5bmNQYXNzZWQgeyBmYWxzZSB9OwpAQCAtNTcxLDYgKzY3Miw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlUHJveHkoRXhlY1N0YXRlKik7CiBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVJ1bnRpbWVB
cnJheShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQ3JlYXRlSW1wdXJlR2V0dGVyKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QoRXhlY1N0
YXRlKik7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0
ZURPTUpJVEdldHRlck9iamVjdChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbihFeGVjU3RhdGUqKTsKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0KEV4
ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25T
ZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZShFeGVjU3RhdGUqKTsKQEAgLTg1NSw2ICs5NTcsNyBAQCBj
bGFzcyBHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNHbG9iYWxPYmplY3QgewogCiAgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiY3JlYXRlSW1wdXJlR2V0dGVyIiwgZnVuY3Rpb25DcmVhdGVJbXB1cmVH
ZXR0ZXIsIDEpOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZUN1c3RvbUdldHRlck9i
amVjdCIsIGZ1bmN0aW9uQ3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0LCAwKTsKKyAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJjcmVhdGVET01KSVRHZXR0ZXJPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZURP
TUpJVEdldHRlck9iamVjdCwgMCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQnVp
bHRpbiIsIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbiwgMik7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAiY3JlYXRlR2xvYmFsT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QsIDApOwog
ICAgICAgICBhZGRGdW5jdGlvbih2bSwgInNldEltcHVyZUdldHRlckRlbGVnYXRlIiwgZnVuY3Rp
b25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZSwgMik7CkBAIC0xMzU5LDYgKzE0NjIsMTQgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUN1c3RvbUdldHRlck9iamVj
dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0
dGVyT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVj
KTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IERPTUpJVEdldHRlcjo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPnZtKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwganNOdWxsKCkpOwor
ICAgIERPTUpJVEdldHRlciogcmVzdWx0ID0gRE9NSklUR2V0dGVyOjpjcmVhdGUoZXhlYy0+dm0o
KSwgc3RydWN0dXJlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Cit9CisK
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxl
Z2F0ZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5o
CmluZGV4IGQ3MDJkZGY0ZGEwNTc2OTA1Zjc5Y2VhZDYwYjZhMjNjZGI5YzM2NjYuLjFlYWQ0MDI3
ZTlmODZjODUxODVlZTNlMzA1YjY5YmU3NDEzY2RlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCkBAIC0zMSw2ICszMSw5IEBA
CiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERP
TUpJVCB7CitjbGFzcyBHcmFwaDsKK30KIAogY2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFs
IDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6CkBAIC00MCwxNSArNDMsMTYgQEAgY2xhc3MgQ3Vz
dG9tR2V0dGVyU2V0dGVyIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgdHlwZWRlZiBQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBDdXN0b21HZXR0ZXI7CiAgICAgdHlwZWRlZiBQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYyBDdXN0b21TZXR0ZXI7CiAKLSAgICBzdGF0aWMgQ3VzdG9t
R2V0dGVyU2V0dGVyKiBjcmVhdGUoVk0mIHZtLCBDdXN0b21HZXR0ZXIgY3VzdG9tR2V0dGVyLCBD
dXN0b21TZXR0ZXIgY3VzdG9tU2V0dGVyKQorICAgIHN0YXRpYyBDdXN0b21HZXR0ZXJTZXR0ZXIq
IGNyZWF0ZShWTSYgdm0sIEN1c3RvbUdldHRlciBjdXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlciBj
dXN0b21TZXR0ZXIsIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IG51bGxwdHIpCiAgICAgewotICAg
ICAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IG5ldyAoTm90TnVs
bCwgYWxsb2NhdGVDZWxsPEN1c3RvbUdldHRlclNldHRlcj4odm0uaGVhcCkpIEN1c3RvbUdldHRl
clNldHRlcih2bSwgY3VzdG9tR2V0dGVyLCBjdXN0b21TZXR0ZXIpOworICAgICAgICBDdXN0b21H
ZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPEN1c3RvbUdldHRlclNldHRlcj4odm0uaGVhcCkpIEN1c3RvbUdldHRlclNldHRlcih2bSwg
Y3VzdG9tR2V0dGVyLCBjdXN0b21TZXR0ZXIsIGRvbUpJVCk7CiAgICAgICAgIGN1c3RvbUdldHRl
clNldHRlci0+ZmluaXNoQ3JlYXRpb24odm0pOwogICAgICAgICByZXR1cm4gY3VzdG9tR2V0dGVy
U2V0dGVyOwogICAgIH0KIAogICAgIEN1c3RvbUdldHRlclNldHRlcjo6Q3VzdG9tR2V0dGVyIGdl
dHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2V0dGVyOyB9CiAgICAgQ3VzdG9tR2V0dGVyU2V0dGVy
OjpDdXN0b21TZXR0ZXIgc2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXR0ZXI7IH0KKyAgICBE
T01KSVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdCB7IHJldHVybiBtX2RvbUpJVDsgfQogCiAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtNTgsMTUgKzYyLDE3
IEBAIGNsYXNzIEN1c3RvbUdldHRlclNldHRlciBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAg
IERFQ0xBUkVfRVhQT1JUX0lORk87CiAKIHByaXZhdGU6Ci0gICAgQ3VzdG9tR2V0dGVyU2V0dGVy
KFZNJiB2bSwgQ3VzdG9tR2V0dGVyIGdldHRlciwgQ3VzdG9tU2V0dGVyIHNldHRlcikKKyAgICBD
dXN0b21HZXR0ZXJTZXR0ZXIoVk0mIHZtLCBDdXN0b21HZXR0ZXIgZ2V0dGVyLCBDdXN0b21TZXR0
ZXIgc2V0dGVyLCBET01KSVQ6OkdyYXBoKiBkb21KSVQpCiAgICAgICAgIDogSlNDZWxsKHZtLCB2
bS5jdXN0b21HZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgICAgICwgbV9nZXR0ZXIo
Z2V0dGVyKQogICAgICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAgICAgICAgLCBtX2RvbUpJVChk
b21KSVQpCiAgICAgewogICAgIH0KIAogICAgIEN1c3RvbUdldHRlciBtX2dldHRlcjsKICAgICBD
dXN0b21TZXR0ZXIgbV9zZXR0ZXI7CisgICAgRE9NSklUOjpHcmFwaCogbV9kb21KSVQ7CiB9Owog
CiBKU19FWFBPUlRfUFJJVkFURSBib29sIGNhbGxDdXN0b21TZXR0ZXIoRXhlY1N0YXRlKiwgQ3Vz
dG9tR2V0dGVyU2V0dGVyOjpDdXN0b21TZXR0ZXIsIGJvb2wgaXNBY2Nlc3NvciwgSlNWYWx1ZSB0
aGlzVmFsdWUsIEpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmgKaW5kZXggNjk1YmZiNzJlZmQ0Njc2ZmZhYjFiZDVjNjJkZDI2NDU3ODA1ZTg5MC4uYTYwOWE0
OGM5MDg2YzQzYmQ0ZmJlMTVjYjdlZDk5YzczODQ0Zjk1YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xMjkwLDcgKzEyOTAsNyBAQCBBTFdBWVNfSU5MSU5F
IHZvaWQgSlNPYmplY3Q6OmZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNsb3QoUHJvcGVydHlTbG90
JiBzbG90LCBKUwogCiAgICAgLy8gVGhpcyBhY2Nlc3MgaXMgY2FjaGVhYmxlIGJlY2F1c2UgU3Ry
dWN0dXJlIHJlcXVpcmVzIGFuIGF0dHJpYnV0ZUNoYW5nZWRUcmFuc2l0aW9uCiAgICAgLy8gaWYg
dGhpcyBwcm9wZXJ0eSBzdG9wcyBiZWluZyBhbiBhY2Nlc3Nvci4KLSAgICBzbG90LnNldENhY2hl
YWJsZUN1c3RvbSh0aGlzLCBhdHRyaWJ1dGVzLCBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4o
Y3VzdG9tR2V0dGVyU2V0dGVyKS0+Z2V0dGVyKCkpOworICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3Vz
dG9tKHRoaXMsIGF0dHJpYnV0ZXMsIGpzQ2FzdDxDdXN0b21HZXR0ZXJTZXR0ZXIqPihjdXN0b21H
ZXR0ZXJTZXR0ZXIpLT5nZXR0ZXIoKSwganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+KGN1c3Rv
bUdldHRlclNldHRlciktPmRvbUpJVCgpKTsKIH0KIAogLy8gSXQgbWF5IHNlZW0gY3JhenkgdG8g
aW5saW5lIGEgZnVuY3Rpb24gdGhpcyBsYXJnZSwgZXNwZWNpYWxseSBhIHZpcnR1YWwgZnVuY3Rp
b24sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCmluZGV4IDY5MmQ3Yzc4OWZl
ZDQ3YjVhZDc0MGM5YmRhNzJjNjYyNGE2NWE0ZTcuLmQ5NzA0NTZjODk2MDgwYzBiNGY1YWFkM2Vi
YjQ2Y2E5NjNhY2JlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0xvb2t1cC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCkBA
IC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaCIK
ICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDdXN0b21HZXR0ZXJTZXR0ZXIuaCIK
KyNpbmNsdWRlICJET01KSVRHcmFwaC5oIgogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJJZGVudGlmaWVySW5saW5lcy5oIgogI2luY2x1ZGUgIkludHJpbnNpYy5oIgpAQCAtNDYs
NiArNDcsNyBAQCB0eXBlZGVmIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIEdldEZ1bmN0aW9u
OwogdHlwZWRlZiBQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYyBQdXRGdW5jdGlvbjsKIHR5
cGVkZWYgRnVuY3Rpb25FeGVjdXRhYmxlKiAoKkJ1aWx0aW5HZW5lcmF0b3IpKFZNJik7CiB0eXBl
ZGVmIEpTVmFsdWUgKCpMYXp5UHJvcGVydHlDYWxsYmFjaykoVk0mLCBKU09iamVjdCopOwordHlw
ZWRlZiBET01KSVQ6OkdyYXBoKiAoKkRPTUpJVEdyYXBoR2VuZXJhdG9yKSh2b2lkKTsKIAogLy8g
SGFzaCB0YWJsZSBnZW5lcmF0ZWQgYnkgdGhlIGNyZWF0ZV9oYXNoX3RhYmxlIHNjcmlwdC4KIHN0
cnVjdCBIYXNoVGFibGVWYWx1ZSB7CkBAIC03OCw2ICs4MCw4IEBAIHN0cnVjdCBIYXNoVGFibGVW
YWx1ZSB7CiAgICAgR2V0RnVuY3Rpb24gcHJvcGVydHlHZXR0ZXIoKSBjb25zdCB7IEFTU0VSVCgh
KG1fYXR0cmlidXRlcyAmIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6eVByb3BlcnR5
T3JDb25zdGFudCkpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxHZXRGdW5jdGlvbj4obV92YWx1
ZXMudmFsdWUxKTsgfQogICAgIFB1dEZ1bmN0aW9uIHByb3BlcnR5UHV0dGVyKCkgY29uc3QgeyBB
U1NFUlQoIShtX2F0dHJpYnV0ZXMgJiBCdWlsdGluT3JGdW5jdGlvbk9yQWNjZXNzb3JPckxhenlQ
cm9wZXJ0eU9yQ29uc3RhbnQpKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UHV0RnVuY3Rpb24+
KG1fdmFsdWVzLnZhbHVlMik7IH0KIAorICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCgpIGNvbnN0
IHsgQVNTRVJUKG1fYXR0cmlidXRlcyAmIERPTUpJVEF0dHJpYnV0ZSk7IHJldHVybiByZWludGVy
cHJldF9jYXN0PERPTUpJVEdyYXBoR2VuZXJhdG9yPihtX3ZhbHVlcy52YWx1ZTEpKCk7IH0KKwog
ICAgIE5hdGl2ZUZ1bmN0aW9uIGFjY2Vzc29yR2V0dGVyKCkgY29uc3QgeyBBU1NFUlQobV9hdHRy
aWJ1dGVzICYgQWNjZXNzb3IpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOYXRpdmVGdW5jdGlv
bj4obV92YWx1ZXMudmFsdWUxKTsgfQogICAgIE5hdGl2ZUZ1bmN0aW9uIGFjY2Vzc29yU2V0dGVy
KCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVzICYgQWNjZXNzb3IpOyByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDxOYXRpdmVGdW5jdGlvbj4obV92YWx1ZXMudmFsdWUyKTsgfQogICAgIEJ1aWx0
aW5HZW5lcmF0b3IgYnVpbHRpbkFjY2Vzc29yR2V0dGVyR2VuZXJhdG9yKCkgY29uc3Q7CkBAIC0y
MjQsNiArMjI4LDEyIEBAIGlubGluZSBib29sIGdldFN0YXRpY1Byb3BlcnR5U2xvdEZyb21UYWJs
ZShWTSYgdm0sIGNvbnN0IEhhc2hUYWJsZSYgdGFibGUsIEpTT2JqCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAorICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgRE9NSklUQXR0cmli
dXRlKSB7CisgICAgICAgIERPTUpJVDo6R3JhcGgqIGRvbUpJVCA9IGVudHJ5LT5kb21KSVQoKTsK
KyAgICAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgYXR0cmlidXRlc0Zv
clN0cnVjdHVyZShlbnRyeS0+YXR0cmlidXRlcygpKSwgZG9tSklULT5nZXR0ZXIoKSwgZG9tSklU
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgc2xvdC5zZXRDYWNoZWFibGVD
dXN0b20odGhpc09iamVjdCwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShlbnRyeS0+YXR0cmlidXRl
cygpKSwgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAt
MjU5LDYgKzI2OSw3IEBAIGlubGluZSBib29sIHB1dEVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSGFzaFRhYmxlVmFsdWUqIGVudHJ5LCBKU09iamVjdCogYmFzCiAgICAgICAgIHJldHVybiBy
ZWplY3QoZXhlYywgc2xvdC5pc1N0cmljdE1vZGUoKSwgU3RyaWN0TW9kZVJlYWRvbmx5UHJvcGVy
dHlXcml0ZUVycm9yKTsKIAogICAgIGlmICghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBSZWFkT25s
eSkpIHsKKyAgICAgICAgQVNTRVJUKCEoZW50cnktPmF0dHJpYnV0ZXMoKSAmIERPTUpJVEF0dHJp
YnV0ZSkpOwogICAgICAgICBib29sIGlzQWNjZXNzb3IgPSBlbnRyeS0+YXR0cmlidXRlcygpICYg
Q3VzdG9tQWNjZXNzb3I7CiAgICAgICAgIEpTVmFsdWUgdXBkYXRlVGhpc1ZhbHVlID0gZW50cnkt
PmF0dHJpYnV0ZXMoKSAmIEN1c3RvbUFjY2Vzc29yID8gc2xvdC50aGlzVmFsdWUoKSA6IEpTVmFs
dWUoYmFzZSk7CiAgICAgICAgIGJvb2wgcmVzdWx0ID0gY2FsbEN1c3RvbVNldHRlcihleGVjLCBl
bnRyeS0+cHJvcGVydHlQdXR0ZXIoKSwgaXNBY2Nlc3NvciwgdXBkYXRlVGhpc1ZhbHVlLCB2YWx1
ZSk7CkBAIC0zMzYsNiArMzQ3LDEzIEBAIGlubGluZSB2b2lkIHJlaWZ5U3RhdGljUHJvcGVydHko
Vk0mIHZtLCBjb25zdCBQcm9wZXJ0eU5hbWUmIHByb3BlcnR5TmFtZSwgY29uc3QKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAorICAgIGlmICh2YWx1ZS5hdHRyaWJ1dGVzKCkgJiBET01KSVRBdHRy
aWJ1dGUpIHsKKyAgICAgICAgRE9NSklUOjpHcmFwaCogZG9tSklUID0gdmFsdWUuZG9tSklUKCk7
CisgICAgICAgIEN1c3RvbUdldHRlclNldHRlciogY3VzdG9tR2V0dGVyU2V0dGVyID0gQ3VzdG9t
R2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGRvbUpJVC0+Z2V0dGVyKCksIGRvbUpJVC0+c2V0dGVy
KCksIGRvbUpJVCk7CisgICAgICAgIHRoaXNPYmoucHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0s
IHByb3BlcnR5TmFtZSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJl
KHZhbHVlLmF0dHJpYnV0ZXMoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQ3Vz
dG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBDdXN0b21HZXR0ZXJTZXR0ZXI6
OmNyZWF0ZSh2bSwgdmFsdWUucHJvcGVydHlHZXR0ZXIoKSwgdmFsdWUucHJvcGVydHlQdXR0ZXIo
KSk7CiAgICAgdGhpc09iai5wdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgcHJvcGVydHlOYW1l
LCBjdXN0b21HZXR0ZXJTZXR0ZXIsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmli
dXRlcygpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm9wZXJ0eVNsb3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xv
dC5oCmluZGV4IGUxMzdkODQ1ZDVmYzMxMzg4NjVkMTc2YTIyYTdlM2JkNTE3Y2ViMTMuLjM0NGMx
NDhmOTkzZDk1NTY5ZjdkYzk3ZGYyNjQ3MmU3YmZhZTdmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCkBAIC0yNiw3ICsyNiw5IEBACiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIEpTQyB7Ci0KK25hbWVzcGFjZSBET01K
SVQgeworY2xhc3MgR3JhcGg7Cit9CiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBHZXR0ZXJTZXR0
ZXI7CiBjbGFzcyBKU09iamVjdDsKQEAgLTQ4LDYgKzUwLDcgQEAgZW51bSBBdHRyaWJ1dGUgewog
ICAgIENlbGxQcm9wZXJ0eSAgICAgID0gMSA8PCAxMSwgLy8gcHJvcGVydHkgaXMgYSBsYXp5IHBy
b3BlcnR5IC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQ2xhc3NTdHJ1Y3R1
cmUgICAgPSAxIDw8IDEyLCAvLyBwcm9wZXJ0eSBpcyBhIGxhenkgY2xhc3Mgc3RydWN0dXJlIC0g
b25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgUHJvcGVydHlDYWxsYmFjayAgPSAx
IDw8IDEzLCAvLyBwcm9wZXJ0eSB0aGF0IGlzIGEgbGF6eSBwcm9wZXJ0eSBjYWxsYmFjayAtIG9u
bHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcworICAgIERPTUpJVEF0dHJpYnV0ZSAgID0gMSA8
PCAxNCwgLy8gcHJvcGVydHkgaXMgYSBET00gSklUIGF0dHJpYnV0ZSAtIG9ubHkgdXNlZCBieSBz
dGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uID0gQnVpbHRpbiB8IEZ1bmN0
aW9uLCAvLyBoZWxwZXIgb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRp
bk9yRnVuY3Rpb25PckxhenlQcm9wZXJ0eSA9IEJ1aWx0aW4gfCBGdW5jdGlvbiB8IENlbGxQcm9w
ZXJ0eSB8IENsYXNzU3RydWN0dXJlIHwgUHJvcGVydHlDYWxsYmFjaywgLy8gaGVscGVyIG9ubHkg
dXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nv
ck9yTGF6eVByb3BlcnR5ID0gQnVpbHRpbiB8IEZ1bmN0aW9uIHwgQWNjZXNzb3IgfCBDZWxsUHJv
cGVydHkgfCBDbGFzc1N0cnVjdHVyZSB8IFByb3BlcnR5Q2FsbGJhY2ssIC8vIGhlbHBlciBvbmx5
IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKQEAgLTE1Nyw2ICsxNjAsMTEgQEAgY2xhc3MgUHJv
cGVydHlTbG90IHsKICAgICAgICAgcmV0dXJuIG1fd2F0Y2hwb2ludFNldDsKICAgICB9CiAKKyAg
ICBET01KSVQ6OkdyYXBoKiBkb21KSVQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1f
ZG9tSklUOworICAgIH0KKwogICAgIHZvaWQgc2V0VmFsdWUoSlNPYmplY3QqIHNsb3RCYXNlLCB1
bnNpZ25lZCBhdHRyaWJ1dGVzLCBKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgQVNTRVJU
KGF0dHJpYnV0ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CkBAIC0y
MTEsNyArMjE5LDcgQEAgY2xhc3MgUHJvcGVydHlTbG90IHsKICAgICAgICAgbV9vZmZzZXQgPSBp
bnZhbGlkT2Zmc2V0OwogICAgIH0KICAgICAKLSAgICB2b2lkIHNldENhY2hlYWJsZUN1c3RvbShK
U09iamVjdCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEdldFZhbHVlRnVuYyBnZXRW
YWx1ZSkKKyAgICB2b2lkIHNldENhY2hlYWJsZUN1c3RvbShKU09iamVjdCogc2xvdEJhc2UsIHVu
c2lnbmVkIGF0dHJpYnV0ZXMsIEdldFZhbHVlRnVuYyBnZXRWYWx1ZSwgRE9NSklUOjpHcmFwaCog
ZG9tSklUID0gbnVsbHB0cikKICAgICB7CiAgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0
dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykpOwogICAgICAgICAKQEAgLTIyMyw2ICsy
MzEsNyBAQCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogICAgICAgICBtX3Nsb3RCYXNlID0gc2xvdEJh
c2U7CiAgICAgICAgIG1fcHJvcGVydHlUeXBlID0gVHlwZUN1c3RvbTsKICAgICAgICAgbV9vZmZz
ZXQgPSAhaW52YWxpZE9mZnNldDsKKyAgICAgICAgbV9kb21KSVQgPSBkb21KSVQ7CiAgICAgfQog
CiAgICAgdm9pZCBzZXRDdXN0b21HZXR0ZXJTZXR0ZXIoSlNPYmplY3QqIHNsb3RCYXNlLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzLCBDdXN0b21HZXR0ZXJTZXR0ZXIqIGdldHRlclNldHRlcikKQEAgLTMx
OCw2ICszMjcsNyBAQCBjbGFzcyBQcm9wZXJ0eVNsb3QgewogICAgIENhY2hlYWJpbGl0eVR5cGUg
bV9jYWNoZWFiaWxpdHk7CiAgICAgUHJvcGVydHlUeXBlIG1fcHJvcGVydHlUeXBlOwogICAgIElu
dGVybmFsTWV0aG9kVHlwZSBtX2ludGVybmFsTWV0aG9kVHlwZTsKKyAgICBET01KSVQ6OkdyYXBo
KiBtX2RvbUpJVCB7IG51bGxwdHIgfTsKICAgICBib29sIG1faXNUYWludGVkQnlPcGFxdWVPYmpl
Y3Q7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaCBiL1Nv
dXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCmluZGV4IGJhMDQ5ZmE4N2RmYTFjOWUzZmE1OGVi
NGIwZDMyM2NmZDY5NmI1MjEuLjVmMzg4ZWI0ZjBmMjU0NzY3MjI5Zjk1YjM5NmExNWQ3ZjZmMDMx
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oCkBAIC02OCw2ICs2OCw4IEBACiAvLyBOVUxMIGNhbiBj
YXVzZSBjb21waWxlciBwcm9ibGVtcywgZXNwZWNpYWxseSBpbiBjYXNlcyBvZiBtdWx0aXBsZSBp
bmhlcml0YW5jZS4KICNkZWZpbmUgT0JKRUNUX09GRlNFVE9GKGNsYXNzLCBmaWVsZCkgKHJlaW50
ZXJwcmV0X2Nhc3Q8cHRyZGlmZl90PigmKHJlaW50ZXJwcmV0X2Nhc3Q8Y2xhc3MqPigweDQwMDAp
LT5maWVsZCkpIC0gMHg0MDAwKQogCisjZGVmaW5lIENBU1RfT0ZGU0VUKGZyb20sIHRvKSAocmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHN0YXRpY19jYXN0PHRvPigocmVpbnRlcnByZXRfY2Fz
dDxmcm9tPigweDQwMDApKSkpIC0gMHg0MDAwKQorCiAvLyBTVFJJTkdJWkU6IENhbiBjb252ZXJ0
IGFueSB2YWx1ZSB0byBxdW90ZWQgc3RyaW5nLCBldmVuIGV4cGFuZGFibGUgbWFjcm9zCiAjZGVm
aW5lIFNUUklOR0laRShleHApICNleHAKICNkZWZpbmUgU1RSSU5HSVpFX1ZBTFVFX09GKGV4cCkg
U1RSSU5HSVpFKGV4cCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFk
ZXJzL2RvbWppdC9ET01KSVRHcmFwaC5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMvZG9taml0L0RPTUpJVEdyYXBoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ4MDNjN2Y4YmY1NDQ2Y2Q0YmU1
YzM4NGNkYjRjNTFiMzI2MTdjMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL2RvbWppdC9ET01KSVRHcmFwaC5oCkBAIC0wLDAgKzEsNCBAQAorI2lm
bmRlZiBXZWJDb3JlX0ZXRF9ET01KSVRHcmFwaF9oCisjZGVmaW5lIFdlYkNvcmVfRldEX0RPTUpJ
VEdyYXBoX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9ET01KSVRHcmFwaC5oPgorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDZmNjg3ZThlY2Q3M2RhODhiNDlkODc5NzU4
Y2FiZDU1NjdmMDM3MmEuLjdlOTlhNDkxZTY0ODc2ZDBjYTg2MTNhZGM0OTIwM2NiYTRmZDYxOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xNCw2ICsxNCw3IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
Ynl0ZWNvbXBpbGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgogICAgICIke0pB
VkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJ
Un0vZG9taml0IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKICAgICAiJHtKQVZB
U0NSSVBUQ09SRV9ESVJ9L2RlYnVnZ2VyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50
ZXJwcmV0ZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDQxYmUyODMxMjk5N2E0ODgz
Yzk4ZjllYTFiZjYxNWNhOWQ4MjViOWYuLmFkMjdlNTZjMDdjZTNmNmNlMDM0YTFhZDdhM2NhNmQ3
MDJmMTliYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xOSw2ICsxOSw3IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vYnl0ZWNvbXBpbGVyIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgog
ICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0vZG9taml0IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKICAg
ICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RlYnVnZ2VyIgogICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vaW50ZXJwcmV0ZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1h
Yy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IDM0YjhkYjI3
MGJmNjk0YjJlMDdkMTg0OTFhYTg3NDY3NDM1NjdmYzguLmJjNDdjNGVhYWRkNjY5YjQ1NGY3Njg2
YmEzMjI1NGVjYzE4NmM4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFj
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC04MCw2ICs4
MCw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dF
QkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9iaW5kaW5ncyIKICAgICAiJHtXRUJDT1JFX0RJ
Un0vRm9yd2FyZGluZ0hlYWRlcnMvYnl0ZWNvZGUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0Zvcndh
cmRpbmdIZWFkZXJzL2RlYnVnZ2VyIgorICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVh
ZGVycy9kb21qaXQiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2hlYXAi
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2luc3BlY3RvciIKICAgICAi
JHtXRUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvaW50ZXJwcmV0ZXIiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtV2luLmNtYWtlCmluZGV4IGFlZDhkZWIwYTI4ODc3ZDk1NjZkMzc4YmQ1OWFkY2QwZWY4YTdj
ZWQuLmEzOGZlMTkzZWNjYTMwN2QxNTk1YWI0YmEzN2FmMjVjNmM1MjEwZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtV2luLmNtYWtlCkBAIC0xNSw2ICsxNSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfSU5D
TFVERV9ESVJFQ1RPUklFUwogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdI
ZWFkZXJzL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlciIKICAgICAiJHtERVJJVkVEX1NPVVJD
RVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9kZmciCiAgICAgIiR7REVS
SVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvZGlzYXNz
ZW1ibGVyIgorICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0ph
dmFTY3JpcHRDb3JlL2RvbWppdCIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJk
aW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9oZWFwIgogICAgICIke0RFUklWRURfU09VUkNFU19E
SVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyIgogICAgICIke0RF
UklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDc2YThkZWQ4Y2E4MTdiMWE0MzY3MTNiMWE0ZTgzNDBiYzdlNTdlMDMuLjJi
YzZkNTA3NWJjMGZmZTM0Y2Y4NTZjZWVjNzVlMzdmNzdiZDBmODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0ODMyLDYgKzE0
ODMyLDcgQEAKIAkJCQlGNTIzRDE4NDAyREU0MkU4MDE4NjM1Q0EgLyogY3NzICovLAogCQkJCTI2
Qjk5OThEMTgwM0FERkEwMEQwMTEyMSAvKiBjc3NqaXQgKi8sCiAJCQkJRjUyM0QzMjQwMkRFNDQ3
ODAxODYzNUNBIC8qIGRvbSAqLywKKwkJCQlFM0ZFMkEzQTFEOUYxNUI1MDBDNTBCMUYgLyogZG9t
aml0ICovLAogCQkJCTkzMzA5RDg2MDk5RTY0OTEwMDU2RTU4MSAvKiBlZGl0aW5nICovLAogCQkJ
CTk3NkQ2QzU3MTIyQjhBMTgwMDFGRDFGNyAvKiBmaWxlYXBpICovLAogCQkJCTUxNzQxRDA4MEIw
NzI1NzAwMEVENDQyQyAvKiBoaXN0b3J5ICovLApAQCAtMjIyNDMsNiArMjIyNDQsMTMgQEAKIAkJ
CW5hbWUgPSBDcnlwdG87CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFM0ZF
MkEzQTFEOUYxNUI1MDBDNTBCMUYgLyogZG9taml0ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCSk7CisJCQlwYXRoID0gZG9taml0OworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRTQ2RTk3ODYwREFBRDYxQjAwNzFFODk0IC8qIGFuaW1h
dGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAppbmRleCBkNDBjNDNm
NjNkNTdlN2U1OTcwYzdlNjJlZmE4NTZhZTY0ZTMyZjI5Li4xMTZkNWRkZjUxOTkzN2ZjNjYxMzU1
YTJjODliZWJiMzgwNWJjMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmgKQEAgLTcyLDYgKzcyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQoKSB7IHJldHVybiBtX3dvcmxkLmdldCgp
OyB9CiAgICAgICAgIGJvb2wgd29ybGRJc05vcm1hbCgpIGNvbnN0IHsgcmV0dXJuIG1fd29ybGRJ
c05vcm1hbDsgfQorICAgICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV29ybGRJc05vcm1h
bCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0RPTUdsb2JhbE9iamVjdCwgbV93b3JsZElz
Tm9ybWFsKTsgfQogCiAgICAgICAgIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zJiBidWlsdGlu
SW50ZXJuYWxGdW5jdGlvbnMoKSB7IHJldHVybiBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCmluZGV4IDYyNTEw
Y2RjMjVhZWJkYWZmOWJhMjM1MDc1YmM5NzQ0NDczZTk4Y2EuLjAwOWY2ZGYwN2VlYjExNjIwMDE4
YjgzMjViOTBlYzUyMjczMTFmZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V3JhcHBlci5oCkBAIC01OSw2ICs1OSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEltcGxlbWVudGF0
aW9uQ2xhc3M+IGNsYXNzIEpTRE9NV3JhcHBlciA6IHB1YmxpYyBKU0RPTU9iamVjdCB7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIGlzRE9NV3JhcHBlciA9IHRydWU7CiAKICAgICBJbXBsZW1l
bnRhdGlvbkNsYXNzJiB3cmFwcGVkKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxJbXBsZW1l
bnRhdGlvbkNsYXNzJj4obV93cmFwcGVkLmdldCgpKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qg
b2Zmc2V0T2ZXcmFwcGVkKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTRE9NV3JhcHBlcjxJ
bXBsZW1lbnRhdGlvbkNsYXNzPiwgbV93cmFwcGVkKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgSlNE
T01XcmFwcGVyKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTQzo6SlNHbG9iYWxPYmplY3Qm
IGdsb2JhbE9iamVjdCwgUmVmPEltcGxlbWVudGF0aW9uQ2xhc3M+JiYgaW1wbCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKaW5kZXggNWQ5MzI2MTE0YWE2
ZjBjMWQ0ZjBiN2JjZTE2NGExMjM4ZTI2YTkwYy4uMmU1ODJiYjUwYmM5OWVhYjNiMDg2MWRjZTBm
ODk3OGI3YmM5NTRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0V3JhcHBhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3Jh
cHBhYmxlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgU2NyaXB0V3JhcHBhYmxlIHsKICAgICBK
U0RPTU9iamVjdCogd3JhcHBlcigpIGNvbnN0OwogICAgIHZvaWQgc2V0V3JhcHBlcihKU0RPTU9i
amVjdCosIEpTQzo6V2Vha0hhbmRsZU93bmVyKiwgdm9pZCopOwogICAgIHZvaWQgY2xlYXJXcmFw
cGVyKEpTRE9NT2JqZWN0Kik7CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldyYXBwZXIo
KSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoU2NyaXB0V3JhcHBhYmxlLCBtX3dyYXBwZXIpOyB9
CiAKIHByb3RlY3RlZDoKICAgICB+U2NyaXB0V3JhcHBhYmxlKCkgeyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGQxZmQy
NDEzMWIwMjZmMjg4OTFlNjE4OGUzYmI2ODE1MjliMTBiN2EuLmE4MTU3YmE1Njg3YzRlYzI4MDkz
MGRhMTUwNDQ0OGNlOTQyM2JmY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02MTAsNiArNjEwLDcgQEAgc3ViIEdldEpT
Q0F0dHJpYnV0ZXNGb3JBdHRyaWJ1dGUKICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnRFbnVtIikg
aWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Tm90RW51bWVy
YWJsZX0gfHwgJGlzX2dsb2JhbF9jb25zdHJ1Y3Rvcik7CiAgICAgcHVzaChAc3BlY2lhbHMsICJS
ZWFkT25seSIpIGlmIElzUmVhZG9ubHkoJGF0dHJpYnV0ZSk7CiAgICAgcHVzaChAc3BlY2lhbHMs
ICJDdXN0b21BY2Nlc3NvciIpIHVubGVzcyAkaXNfZ2xvYmFsX2NvbnN0cnVjdG9yIG9yIElzSlNC
dWlsdGluKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOworICAgIHB1c2goQHNwZWNpYWxzLCAiRE9N
SklUQXR0cmlidXRlIikgaWYgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiRE9NSklUIn07CiAgICAgcHVzaChAc3BlY2lhbHMsICJBY2Nlc3NvciB8IEJ1aWx0aW4i
KSBpZiAgSXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAgICAgcmV0dXJuIChA
c3BlY2lhbHMgPiAwKSA/IGpvaW4oIiB8ICIsIEBzcGVjaWFscykgOiAiMCI7CiB9CkBAIC0xMzA2
LDYgKzEzMDcsOCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBteSAkaGFzRm9yd2FyZERlY2xh
cmluZ0Z1bmN0aW9ucyA9IDA7CiAgICAgbXkgJGhhc0ZvcndhcmREZWNsYXJpbmdBdHRyaWJ1dGVz
ID0gMDsKIAorICAgIG15ICRoYXNET01KSVRBdHRyaWJ1dGVzID0gMDsKKwogICAgICMgQXR0cmli
dXRlIGFuZCBmdW5jdGlvbiBlbnVtcwogICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDApIHsKICAg
ICAgICAgZm9yZWFjaCAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewpAQCAtMTMyMCw2ICsx
MzIzLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICAgICAgJG5lZWRzVmlzaXRD
aGlsZHJlbiA9IDE7CiAgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRp
ZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICAgICAgfQorICAgICAgICAgICAg
JGhhc0RPTUpJVEF0dHJpYnV0ZXMgPSAxIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9OwogCiAgICAgICAgICAgICAkaGFzRm9yd2FyZERlY2xh
cmluZ0F0dHJpYnV0ZXMgPSAxIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Rm9yd2FyZERlY2xhcmVJbkhlYWRlcn07CiAgICAgICAgIH0KQEAgLTE1MjcsNiAr
MTUzMSwxNSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgfQogICAgIH0KIAorICAgIGlm
ICgkaGFzRE9NSklUQXR0cmlidXRlcykgeworICAgICAgICAkaGVhZGVySW5jbHVkZXN7Ijxkb21q
aXQvRE9NSklUR3JhcGguaD4ifSA9IDE7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIi8v
IERPTUpJVCBlbWl0dGVycyBmb3IgYXR0cmlidXRlc1xuXG4iKTsKKyAgICAgICAgZm9yZWFjaCBt
eSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgICAgICBu
ZXh0IHVubGVzcyAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
T01KSVQifTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6OkRPTUpJVDo6
R3JhcGgqIGRvbUpJVEdyYXBoRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gIih2b2lkKTtcbiIp
OworICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKEhhc0N1c3RvbUNvbnN0cnVjdG9yKCRpbnRl
cmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIvLyBDdXN0b20gY29uc3Ry
dWN0b3JcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdCR7Y2xhc3NOYW1lfShKU0M6OkV4ZWNTdGF0ZSYp
O1xuXG4iKTsKQEAgLTE2MDMsMTQgKzE2MTYsMTkgQEAgc3ViIEdlbmVyYXRlUHJvcGVydGllc0hh
c2hUYWJsZQogICAgICAgICBteSAkc3BlY2lhbCA9IEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1
dGUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgIHB1c2goQCRoYXNoU3BlY2lhbHMs
ICRzcGVjaWFsKTsKIAotICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFt
ZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgcHVzaChAJGhh
c2hWYWx1ZTEsICRnZXR0ZXIpOwotCi0gICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUp
KSB7CisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJET01KSVQifSkgeworICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTEsICJkb21KSVRH
cmFwaEZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3Qo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSk7CiAgICAgICAgICAgICBwdXNoKEAkaGFzaFZh
bHVlMiwgIjAiKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBH
ZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUp
OwotICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAgICAgICAg
bXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFt
ZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMSwgJGdldHRlcik7
CisKKyAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAg
ICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICIwIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZh
Y2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIHB1c2goQCRoYXNo
VmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIG15
ICRjb25kaXRpb25hbCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Q29uZGl0aW9uYWx9OwpAQCAtMjM5MSwxNyArMjQwOSwyMyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgQHNwZWNpYWxzID0gKCk7CiAgICAgICAgICAgICBw
dXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUiKSB1bmxlc3MgJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntEZWxldGFibGV9OwogICAgICAgICAgICAgcHVzaChAc3Bl
Y2lhbHMsICJSZWFkT25seSIpIGlmIElzUmVhZG9ubHkoJGF0dHJpYnV0ZSk7CisgICAgICAgICAg
ICBwdXNoKEBzcGVjaWFscywgIkRPTUpJVEF0dHJpYnV0ZSIpIGlmICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9OwogICAgICAgICAgICAgbXkgJHNw
ZWNpYWwgPSAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwog
ICAgICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7CiAKLSAgICAgICAgICAg
IG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05h
bWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGdldHRlcik7
Ci0KLSAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAg
ICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklU
In0pIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAiZG9tSklUR3JhcGhGb3Ii
IC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZSkpOwogICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIs
ICIwIik7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIg
PSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1
dGUpOwotICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAg
ICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2Us
ICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1
ZTEsICRnZXR0ZXIpOworCisgICAgICAgICAgICAgICAgaWYgKElzUmVhZG9ubHkoJGF0dHJpYnV0
ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgIjAiKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0
QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMiwgJHNldHRlcik7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWwg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFs
fTsKQEAgLTI5NTksNiArMjk4MywzOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKKyAgICAgICAgICAgIGlm
ICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifSkg
eworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Ijx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4i
fSA9IDE7CisgICAgICAgICAgICAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5u
YW1lOworICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5uYW1lOworICAgICAgICAgICAgICAgIG15ICRkb21KSVRDbGFzc05hbWUgPSAiRE9N
SklUIiAuICRpbnRlcmZhY2VOYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0
QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsK
KyAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gSXNSZWFkb25seSgkYXR0cmlidXRlKSA/ICJu
dWxscHRyIiA6IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwg
JGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgIyBDQVNUX09GRlNFVCgkaW50ZXJmYWNlTmFt
ZSosIENvbnRhaW5lck5vZGUqKSArIENvbnRhaW5lck5vZGUKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgImNsYXNzICRkb21KSVRDbGFzc05hbWUgOiBwdWJsaWMgSlNDOjpET01K
SVQ6OkdyYXBoIHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAicHVi
bGljOlxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGRvbUpJ
VENsYXNzTmFtZSgpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAgICAgOiBKU0M6OkRPTUpJVDo6R3JhcGgoJGdldHRlciwgJHNldHRlciwgSlNDOjpTcGVjRE9N
Tm9kZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHtcbiIp
OworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB1c2luZyBuYW1l
c3BhY2UgSlNDOjpET01KSVQ7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgYXBwZW5kKEtpbmQ6OkNoZWNrTm9kZSwgSVI6OnRoaXNWYWx1ZSgpLCBudWxs
cHRyKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJ
Uiogd3JhcHBlZCA9IGFwcGVuZChLaW5kOjpHZXRXcmFwcGVkLCBJUjo6dGhpc1ZhbHVlKCksIG51
bGxwdHIsIEpTTm9kZTo6b2Zmc2V0T2ZXcmFwcGVkKCkpO1xuIik7CisgICAgICAgICAgICAgICAg
IyBpZiAoJGF0dHJpYnV0ZU5hbWUgZXEgImZpcnN0Q2hpbGQiIHx8ICRhdHRyaWJ1dGVOYW1lIGVx
ICJsYXN0Q2hpbGQiKSB7CisgICAgICAgICAgICAgICAgIyAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIGFwcGVuZChLaW5kOjpDaGVja05vZGVGbGFncywgd3JhcHBlZCwgbnVsbHB0ciwg
Tm9kZTo6bm9kZUZsYWdzTWVtb3J5T2Zmc2V0KCksIE5vZGU6OklzQ29udGFpbmVyRmxhZyk7XG4i
KTsKKyAgICAgICAgICAgICAgICAjIH0KKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgSVIqIHJlc3VsdCA9IGFwcGVuZChLaW5kOjpMb2FkUG9pbnRlciwgd3JhcHBl
ZCwgbnVsbHB0ciwgJGludGVyZmFjZU5hbWU6OiR7YXR0cmlidXRlTmFtZX1NZW1vcnlPZmZzZXQo
KSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSVIq
IHdyYXBwZXIgPSBhcHBlbmQoS2luZDo6VG9XcmFwcGVyLCByZXN1bHQsIG51bGxwdHIsIChzdGF0
aWNfY2FzdDx1aW50NjRfdD4oSlNET01HbG9iYWxPYmplY3Q6Om9mZnNldE9mV29ybGRJc05vcm1h
bCgpKSA8PCAzMikgfCAoQ0FTVF9PRkZTRVQoJGludGVyZmFjZU5hbWUqLCBTY3JpcHRXcmFwcGFi
bGUqKSArIFNjcmlwdFdyYXBwYWJsZTo6b2Zmc2V0T2ZXcmFwcGVyKCkpLCBiaXR3aXNlX2Nhc3Q8
dWludHB0cl90PihzdGF0aWNfY2FzdDxKU0M6OkVuY29kZWRKU1ZhbHVlICgqKShKU0M6OkV4ZWNT
dGF0ZSosIHZvaWQqLCB2b2lkKik+KFtdKEpTQzo6RXhlY1N0YXRlKiBleGVjLCB2b2lkKiB3cmFw
cGVkLCB2b2lkKiBnbG9iYWxPYmplY3QpIHsgcmV0dXJuIEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKHRv
SlMoZXhlYywgc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpLCBz
dGF0aWNfY2FzdDxOb2RlKj4od3JhcHBlZCkpKTsgfSkpKTtcbiIpOworICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBhcHBlbmQoS2luZDo6UmV0dXJuLCB3cmFwcGVy
LCBudWxscHRyKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IH1cbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifTtcblxuIik7CisK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RE9NSklUOjpHcmFwaCog
ZG9tSklUR3JhcGhGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191
Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAiKClcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPCRkb21KSVRDbGFzc05hbWU+
IGVtaXR0ZXI7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4gJmVtaXR0ZXIuZ2V0KCk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn1cblxuIik7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiI2VuZGlmXG4iKSBpZiAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmc7CiAKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iKTsKQEAgLTQ4OTQsMTIgKzQ5NTAsMTQg
QEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheQogICAgICAgICAgICAgJGZpcnN0VGFy
Z2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJhdG9yPiI7CiAgICAgICAgIH0gZWxz
aWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9Db25zdGFudEludGVnZXIvKSB7CiAgICAgICAgICAg
ICAkZmlyc3RUYXJnZXRUeXBlID0gIiI7CisgICAgICAgIH0gZWxzaWYgKCJAJHNwZWNpYWxzWyRp
XSIgPX4gbS9ET01KSVRBdHRyaWJ1dGUvKSB7CisgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBl
ID0gInN0YXRpY19jYXN0PERPTUpJVEdyYXBoR2VuZXJhdG9yPiI7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAkZmlyc3RUYXJnZXRUeXBlID0gInN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPiI7CiAgICAgICAgICAgICAkc2Vjb25kVGFyZ2V0VHlwZSA9ICJzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4iOwogICAgICAgICAgICAgJGhh
c1NldHRlciA9ICJ0cnVlIjsKICAgICAgICAgfQotICAgICAgICBpZiAoIkAkc3BlY2lhbHNbJGld
IiA9fiBtL0NvbnN0YW50SW50ZWdlci8pIHsKKyAgICAgICAgaWYgKCJAJHNwZWNpYWxzWyRpXSIg
PX4gbS9Db25zdGFudEludGVnZXJ8RE9NSklUQXR0cmlidXRlLykgewogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgeyBcIiRrZXlcIiwgQCRzcGVjaWFsc1skaV0sIE5vSW50cmlu
c2ljLCB7IChsb25nIGxvbmcpIiAuICRmaXJzdFRhcmdldFR5cGUgLiAiKEAkdmFsdWUxWyRpXSkg
fSB9LFxuIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICB7IFwiJGtleVwiLCBAJHNwZWNpYWxzWyRpXSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KSIgLiAkZmlyc3RUYXJnZXRUeXBlIC4gIihAJHZhbHVlMVskaV0pLCAoaW50cHRyX3QpICIg
LiAkc2Vjb25kVGFyZ2V0VHlwZSAuICIoQCR2YWx1ZTJbJGldKSB9IH0sXG4iKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IDNj
MjRhNTQyMWFjYTMyY2Q3MjZiOThiN2Q5OWM4ZDgzMDZhYzZmNmUuLjE5Y2Q0YmIxM2Q3YzZmYjhj
YjgyOTUxMTBjNDNiNGNlZTA5OWI1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dApAQCAtNTQsNiArNTQsNyBAQCBDdXN0b21SZXR1
cm4KIEN1c3RvbVNldFByb3RvdHlwZQogQ3VzdG9tU2V0dGVyCiBDdXN0b21Ub0pTT2JqZWN0CitE
T01KSVQKIERlbGV0YWJsZQogRG9Ob3RDaGVja0NvbnN0YW50cwogRG9Ob3RDaGVja1NlY3VyaXR5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCA5Y2E3YTE4MzUxYWE5MWFiZmFkMmU0
YjIzMzgxY2QxMTcwMzUzZTg5Li41YWMyYTdjYjBmZTYzNmM0MGM3N2M5YzQ3MTA2YThlOWQ0MGY1
YzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTQxLDYgKzQxLDcgQEAgY2xh
c3MgQ29udGFpbmVyTm9kZSA6IHB1YmxpYyBOb2RlIHsKICAgICBOb2RlKiBmaXJzdENoaWxkKCkg
Y29uc3QgeyByZXR1cm4gbV9maXJzdENoaWxkOyB9CiAgICAgc3RhdGljIHB0cmRpZmZfdCBmaXJz
dENoaWxkTWVtb3J5T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENvbnRhaW5lck5v
ZGUsIG1fZmlyc3RDaGlsZCk7IH0KICAgICBOb2RlKiBsYXN0Q2hpbGQoKSBjb25zdCB7IHJldHVy
biBtX2xhc3RDaGlsZDsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3QgbGFzdENoaWxkTWVtb3J5T2Zm
c2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENvbnRhaW5lck5vZGUsIG1fbGFzdENoaWxk
KTsgfQogICAgIGJvb2wgaGFzQ2hpbGROb2RlcygpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RDaGls
ZDsgfQogICAgIGJvb2wgaGFzT25lQ2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0Q2hpbGQg
JiYgIW1fZmlyc3RDaGlsZC0+bmV4dFNpYmxpbmcoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBlMjZj
MzMyOWVkZDIyZDA4ODAxMjViZTIyZmJkMTYyYjZlN2FhOWJhLi4zNGNlZTFmZDQzOWYwOWFkZDhk
NDJjNjA5ZDA5ZDVhYzFhYTJkZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTEyMCw2ICsxMjAsNDYgQEAg
Y2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7CiAgICAgICAgIERPQ1VNRU5UX1BPU0lU
SU9OX0NPTlRBSU5FRF9CWSA9IDB4MTAsCiAgICAgICAgIERPQ1VNRU5UX1BPU0lUSU9OX0lNUExF
TUVOVEFUSU9OX1NQRUNJRklDID0gMHgyMCwKICAgICB9OworICAgIGVudW0gTm9kZUZsYWdzIHsK
KyAgICAgICAgSXNUZXh0RmxhZyA9IDEsCisgICAgICAgIElzQ29udGFpbmVyRmxhZyA9IDEgPDwg
MSwKKyAgICAgICAgSXNFbGVtZW50RmxhZyA9IDEgPDwgMiwKKyAgICAgICAgSXNTdHlsZWRFbGVt
ZW50RmxhZyA9IDEgPDwgMywKKyAgICAgICAgSXNIVE1MRmxhZyA9IDEgPDwgNCwKKyAgICAgICAg
SXNTVkdGbGFnID0gMSA8PCA1LAorICAgICAgICBDaGlsZE5lZWRzU3R5bGVSZWNhbGNGbGFnID0g
MSA8PCA3LAorICAgICAgICBJbkRvY3VtZW50RmxhZyA9IDEgPDwgOCwKKyAgICAgICAgSXNMaW5r
RmxhZyA9IDEgPDwgOSwKKyAgICAgICAgSXNVc2VyQWN0aW9uRWxlbWVudCA9IDEgPDwgMTAsCisg
ICAgICAgIEhhc1JhcmVEYXRhRmxhZyA9IDEgPDwgMTEsCisgICAgICAgIElzRG9jdW1lbnRGcmFn
bWVudEZsYWcgPSAxIDw8IDEyLAorCisgICAgICAgIC8vIFRoZXNlIGJpdHMgYXJlIHVzZWQgYnkg
ZGVyaXZlZCBjbGFzc2VzLCBwdWxsZWQgdXAgaGVyZSBzbyB0aGV5IGNhbgorICAgICAgICAvLyBi
ZSBzdG9yZWQgaW4gdGhlIHNhbWUgbWVtb3J5IHdvcmQgYXMgdGhlIE5vZGUgYml0cyBhYm92ZS4K
KyAgICAgICAgSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAxIDw8IDEzLCAvLyBFbGVt
ZW50CisKKyAgICAgICAgU3R5bGVDaGFuZ2VNYXNrID0gMSA8PCBub2RlU3R5bGVDaGFuZ2VTaGlm
dCB8IDEgPDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMSkgfCAxIDw8IChub2RlU3R5bGVDaGFu
Z2VTaGlmdCArIDIpLAorICAgICAgICBJc0VkaXRpbmdUZXh0T3JVbmRlZmluZWRDdXN0b21FbGVt
ZW50RmxhZyA9IDEgPDwgMTcsCisgICAgICAgIEhhc0ZvY3VzV2l0aGluID0gMSA8PCAxOCwKKyAg
ICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAxOSwKKyAgICAgICAg
SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjAsCisgICAgICAgIEhh
c0V2ZW50VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIxLAorICAgICAgICBJc0N1c3RvbUVsZW1lbnQg
PSAxIDw8IDIyLAorICAgICAgICBJc0luU2hhZG93VHJlZUZsYWcgPSAxIDw8IDIzLAorICAgICAg
ICBJc01hdGhNTEZsYWcgPSAxIDw8IDI0LAorCisgICAgICAgIENoaWxkcmVuQWZmZWN0ZWRCeUZp
cnN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI1LAorICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlM
YXN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI2LAorICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlI
b3ZlclJ1bGVzRmxhZyA9IDEgPDwgMjcsCisKKyAgICAgICAgRGlyZWN0Q2hpbGROZWVkc1N0eWxl
UmVjYWxjRmxhZyA9IDEgPDwgMjgsCisgICAgICAgIEFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRT
dHlsZSA9IDEgPDwgMjksCisgICAgICAgIFN0eWxlSXNBZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5n
ID0gMSA8PCAzMCwKKworICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFnID0gMSA8
PCAzMSwKKworICAgICAgICBEZWZhdWx0Tm9kZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRyZW5GaW5p
c2hlZEZsYWcKKyAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc3RhcnRJ
Z25vcmluZ0xlYWtzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc3RvcElnbm9y
aW5nTGVha3MoKTsKQEAgLTE1NSw2ICsxOTUsOCBAQCBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50
VGFyZ2V0IHsKICAgICBOb2RlKiBwc2V1ZG9Bd2FyZVByZXZpb3VzU2libGluZygpIGNvbnN0Owog
ICAgIE5vZGUqIHBzZXVkb0F3YXJlRmlyc3RDaGlsZCgpIGNvbnN0OwogICAgIE5vZGUqIHBzZXVk
b0F3YXJlTGFzdENoaWxkKCkgY29uc3Q7CisgICAgc3RhdGljIHB0cmRpZmZfdCBub2RlRmxhZ3NN
ZW1vcnlPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTm9kZSwgbV9ub2RlRmxhZ3Mp
OyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCByYXJlRGF0YU1lbW9yeU9mZnNldCgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihOb2RlLCBtX2RhdGEubV9yYXJlRGF0YSk7IH0KIAogICAgIFdFQkNP
UkVfRVhQT1JUIGNvbnN0IFVSTCYgYmFzZVVSSSgpIGNvbnN0OwogICAgIApAQCAtNTYwLDggKzYw
Miw2IEBAIGNsYXNzIE5vZGUgOiBwdWJsaWMgRXZlbnRUYXJnZXQgewogICAgIHZvaWQgdXBkYXRl
QW5jZXN0b3JDb25uZWN0ZWRTdWJmcmFtZUNvdW50Rm9ySW5zZXJ0aW9uKCkgY29uc3Q7CiAKICNp
ZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKLSAgICBzdGF0aWMgcHRyZGlmZl90IG5vZGVGbGFn
c01lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihOb2RlLCBtX25vZGVGbGFn
cyk7IH0KLSAgICBzdGF0aWMgcHRyZGlmZl90IHJhcmVEYXRhTWVtb3J5T2Zmc2V0KCkgeyByZXR1
cm4gT0JKRUNUX09GRlNFVE9GKE5vZGUsIG1fZGF0YS5tX3JhcmVEYXRhKTsgfQogICAgIHN0YXRp
YyBpbnQzMl90IGZsYWdJc1RleHQoKSB7IHJldHVybiBJc1RleHRGbGFnOyB9CiAgICAgc3RhdGlj
IGludDMyX3QgZmxhZ0lzRWxlbWVudCgpIHsgcmV0dXJuIElzRWxlbWVudEZsYWc7IH0KICAgICBz
dGF0aWMgaW50MzJfdCBmbGFnSXNIVE1MKCkgeyByZXR1cm4gSXNIVE1MRmxhZzsgfQpAQCAtNTc3
LDQ3ICs2MTcsNiBAQCBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKICNlbmRpZiAv
LyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKIAogcHJvdGVjdGVkOgotICAgIGVudW0gTm9kZUZs
YWdzIHsKLSAgICAgICAgSXNUZXh0RmxhZyA9IDEsCi0gICAgICAgIElzQ29udGFpbmVyRmxhZyA9
IDEgPDwgMSwKLSAgICAgICAgSXNFbGVtZW50RmxhZyA9IDEgPDwgMiwKLSAgICAgICAgSXNTdHls
ZWRFbGVtZW50RmxhZyA9IDEgPDwgMywKLSAgICAgICAgSXNIVE1MRmxhZyA9IDEgPDwgNCwKLSAg
ICAgICAgSXNTVkdGbGFnID0gMSA8PCA1LAotICAgICAgICBDaGlsZE5lZWRzU3R5bGVSZWNhbGNG
bGFnID0gMSA8PCA3LAotICAgICAgICBJbkRvY3VtZW50RmxhZyA9IDEgPDwgOCwKLSAgICAgICAg
SXNMaW5rRmxhZyA9IDEgPDwgOSwKLSAgICAgICAgSXNVc2VyQWN0aW9uRWxlbWVudCA9IDEgPDwg
MTAsCi0gICAgICAgIEhhc1JhcmVEYXRhRmxhZyA9IDEgPDwgMTEsCi0gICAgICAgIElzRG9jdW1l
bnRGcmFnbWVudEZsYWcgPSAxIDw8IDEyLAotCi0gICAgICAgIC8vIFRoZXNlIGJpdHMgYXJlIHVz
ZWQgYnkgZGVyaXZlZCBjbGFzc2VzLCBwdWxsZWQgdXAgaGVyZSBzbyB0aGV5IGNhbgotICAgICAg
ICAvLyBiZSBzdG9yZWQgaW4gdGhlIHNhbWUgbWVtb3J5IHdvcmQgYXMgdGhlIE5vZGUgYml0cyBh
Ym92ZS4KLSAgICAgICAgSXNQYXJzaW5nQ2hpbGRyZW5GaW5pc2hlZEZsYWcgPSAxIDw8IDEzLCAv
LyBFbGVtZW50Ci0KLSAgICAgICAgU3R5bGVDaGFuZ2VNYXNrID0gMSA8PCBub2RlU3R5bGVDaGFu
Z2VTaGlmdCB8IDEgPDwgKG5vZGVTdHlsZUNoYW5nZVNoaWZ0ICsgMSkgfCAxIDw8IChub2RlU3R5
bGVDaGFuZ2VTaGlmdCArIDIpLAotICAgICAgICBJc0VkaXRpbmdUZXh0T3JVbmRlZmluZWRDdXN0
b21FbGVtZW50RmxhZyA9IDEgPDwgMTcsCi0gICAgICAgIEhhc0ZvY3VzV2l0aGluID0gMSA8PCAx
OCwKLSAgICAgICAgSGFzU3ludGhldGljQXR0ckNoaWxkTm9kZXNGbGFnID0gMSA8PCAxOSwKLSAg
ICAgICAgSGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzRmxhZyA9IDEgPDwgMjAsCi0gICAg
ICAgIEhhc0V2ZW50VGFyZ2V0RGF0YUZsYWcgPSAxIDw8IDIxLAotICAgICAgICBJc0N1c3RvbUVs
ZW1lbnQgPSAxIDw8IDIyLAotICAgICAgICBJc0luU2hhZG93VHJlZUZsYWcgPSAxIDw8IDIzLAot
ICAgICAgICBJc01hdGhNTEZsYWcgPSAxIDw8IDI0LAotCi0gICAgICAgIENoaWxkcmVuQWZmZWN0
ZWRCeUZpcnN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI1LAotICAgICAgICBDaGlsZHJlbkFmZmVj
dGVkQnlMYXN0Q2hpbGRSdWxlc0ZsYWcgPSAxIDw8IDI2LAotICAgICAgICBDaGlsZHJlbkFmZmVj
dGVkQnlIb3ZlclJ1bGVzRmxhZyA9IDEgPDwgMjcsCi0KLSAgICAgICAgRGlyZWN0Q2hpbGROZWVk
c1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgMjgsCi0gICAgICAgIEFmZmVjdHNOZXh0U2libGluZ0Vs
ZW1lbnRTdHlsZSA9IDEgPDwgMjksCi0gICAgICAgIFN0eWxlSXNBZmZlY3RlZEJ5UHJldmlvdXNT
aWJsaW5nID0gMSA8PCAzMCwKLQotICAgICAgICBTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9GbGFn
ID0gMSA8PCAzMSwKLQotICAgICAgICBEZWZhdWx0Tm9kZUZsYWdzID0gSXNQYXJzaW5nQ2hpbGRy
ZW5GaW5pc2hlZEZsYWcKLSAgICB9OwotCiAgICAgYm9vbCBnZXRGbGFnKE5vZGVGbGFncyBtYXNr
KSBjb25zdCB7IHJldHVybiBtX25vZGVGbGFncyAmIG1hc2s7IH0KICAgICB2b2lkIHNldEZsYWco
Ym9vbCBmLCBOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyBtX25vZGVGbGFncyA9IChtX25vZGVGbGFn
cyAmIH5tYXNrKSB8ICgtKGludDMyX3QpZiAmIG1hc2spOyB9IAogICAgIHZvaWQgc2V0RmxhZyhO
b2RlRmxhZ3MgbWFzaykgY29uc3QgeyBtX25vZGVGbGFncyB8PSBtYXNrOyB9IApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aWRsCmluZGV4IDZiNzdlMzM0NTgzOTRjNzY1ZjQwNmNhZjgwYWU1ZmNmYTFkYjEyMzMuLmU1ODk1
NDhmNmM4MzhmM2NlZmQyMDhkYTkxNzkzMjkwN2EwZmRhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKQEAg
LTQ3LDEyICs0NywxMiBAQAogICAgIFtTZXR0ZXJNYXlUaHJvd0xlZ2FjeUV4Y2VwdGlvbl0gYXR0
cmlidXRlIERPTVN0cmluZz8gbm9kZVZhbHVlOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIHNob3J0IG5vZGVUeXBlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwYXJl
bnROb2RlOworICAgIFtET01KSVRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwYXJlbnROb2Rl
OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlTGlzdCBjaGlsZE5vZGVzOwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBOb2RlPyBmaXJzdENoaWxkOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBO
b2RlPyBsYXN0Q2hpbGQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHByZXZpb3VzU2li
bGluZzsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gbmV4dFNpYmxpbmc7CisgICAgW0RP
TUpJVF0gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IHByZXZpb3VzU2libGluZzsKKyAgICBbRE9N
SklUXSByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gbmV4dFNpYmxpbmc7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERvY3VtZW50PyBvd25lckRvY3VtZW50OwogCiAgICAgW0N1c3RvbSwgTWF5VGhy
b3dMZWdhY3lFeGNlcHRpb25dIE5vZGUgaW5zZXJ0QmVmb3JlKFtDdXN0b21SZXR1cm5dIE5vZGUg
bmV3Q2hpbGQsIE5vZGU/IHJlZkNoaWxkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290567</attachid>
            <date>2016-10-03 22:17:21 -0700</date>
            <delta_ts>2016-10-03 23:32:24 -0700</delta_ts>
            <desc>Prototype rev10, CheckDOM becomes very effective</desc>
            <filename>bug-162544-20161003221411.patch</filename>
            <type>text/plain</type>
            <size>137032</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ODNlYzFjNDVkYWFkYzYwYzkzNDkxYjE1MGJjYTFhMjk5ZTcxNjQyLi5iMGE4OTNmOTU2ODViMDM3
NjU1M2YwNTkzZTgwYzRjNmRhMWEyZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDcgQEAKKzIwMTYtMTAtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAoSlND
OjpHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFj
ayk6CisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwOgorICAgICAgICAoSlND
OjpHZXRCeUlkVmFyaWFudDo6R2V0QnlJZFZhcmlhbnQpOgorICAgICAgICAoSlNDOjpHZXRCeUlk
VmFyaWFudDo6b3BlcmF0b3I9KToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmF0dGVt
cHRUb01lcmdlKToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmR1bXBJbkNvbnRleHQp
OgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRWYXJpYW50Lmg6CisgICAgICAgIChKU0M6Okdl
dEJ5SWRWYXJpYW50Ojpkb21KSVQpOgorICAgICAgICAoSlNDOjpHZXRCeUlkVmFyaWFudDo6aW50
cmluc2ljKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5j
cHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmdldCk6CisgICAgICAgIChKU0M6OkFjY2Vz
c0Nhc2U6OmNsb25lKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oOgor
ICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpkb21KSVQpOgorICAgICAgICAoSlNDOjpBY2Nlc3ND
YXNlOjpSYXJlRGF0YTo6UmFyZURhdGEpOgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6c3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKToKKyAgICAg
ICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlci5oOgorICAgICAgICAoSlNDOjpERkc6OkFi
c3RyYWN0SW50ZXJwcmV0ZXI6OmZpbHRlckNsYXNzSW5mbyk6CisgICAgICAgICogZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJ
bnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAg
KEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZmlsdGVy
Q2xhc3NJbmZvKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6QWJzdHJhY3RWYWx1ZTo6ZmlsdGVyQ2xhc3NJbmZvKToKKyAgICAgICAgKiBk
ZmcvREZHQWJzdHJhY3RWYWx1ZS5oOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZURPTUpJVEdldHRl
cik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQpOgor
ICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJl
cml6ZSk6CisgICAgICAgICogZGZnL0RGR0NvbW1vbkRhdGEuaDoKKyAgICAgICAgKiBkZmcvREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9s
ZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRE9NSklUUGF0Y2hw
b2ludFBhcmFtcy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
SW5mby5oLgorICAgICAgICAoSlNDOjpERkc6OkRPTUpJVFBhdGNocG9pbnRQYXJhbXM6OkRPTUpJ
VFBhdGNocG9pbnRQYXJhbXMpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZn
L0RGR0pJVENvbXBpbGVyLmg6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpOb2RlOjpoYXNET01KSVRHZXR0ZXJTZXR0ZXIpOgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6OmRvbUpJVCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aGFzQ2xhc3NJbmZvKToK
KyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpjbGFzc0luZm8pOgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6Ok9wSW5mb1dyYXBwZXI6Ok9wSW5mb1dyYXBwZXIpOgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6Ok9wSW5mb1dyYXBwZXI6Om9wZXJhdG9yPSk6CisgICAgICAgICogZGZnL0RGR05vZGVU
eXBlLmg6CisgICAgICAgICogZGZnL0RGR09wSW5mby5oOgorICAgICAgICAoSlNDOjpERkc6Ok9w
SW5mbzo6T3BJbmZvKToKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6
OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9y
Lmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxET00pOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tET00pOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1
ZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3RydWN0dXJlQWJzdHJhY3RWYWx1ZTo6ZmlsdGVy
Q2xhc3NJbmZvU2xvdyk6CisgICAgICAgIChKU0M6OkRGRzo6U3RydWN0dXJlQWJzdHJhY3RWYWx1
ZTo6aXNTdWJDbGFzc09mKToKKyAgICAgICAgKiBkZmcvREZHU3RydWN0dXJlQWJzdHJhY3RWYWx1
ZS5oOgorICAgICAgICAoSlNDOjpERkc6OlN0cnVjdHVyZUFic3RyYWN0VmFsdWU6OmZpbHRlckNs
YXNzSW5mbyk6CisgICAgICAgIChKU0M6OkRGRzo6U3RydWN0dXJlQWJzdHJhY3RWYWx1ZTo6Zmls
dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBkb21qaXQvRE9NSklUR2V0dGVyU2V0dGVyLmNwcDog
Q29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcEluZm8uaC4KKyAgICAg
ICAgKiBkb21qaXQvRE9NSklUR2V0dGVyU2V0dGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BJbmZvLmguCisgICAgICAgIChKU0M6OkRPTUpJVDo6R2V0dGVy
U2V0dGVyOjpHZXR0ZXJTZXR0ZXIpOgorICAgICAgICAoSlNDOjpET01KSVQ6OkdldHRlclNldHRl
cjo6fkdldHRlclNldHRlcik6CisgICAgICAgIChKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyOjpn
ZXR0ZXIpOgorICAgICAgICAoSlNDOjpET01KSVQ6OkdldHRlclNldHRlcjo6c2V0dGVyKToKKyAg
ICAgICAgKEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXI6OnRoaXNDbGFzc0luZm8pOgorICAgICAg
ICAqIGRvbWppdC9ET01KSVRQYXRjaHBvaW50Lmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpET01K
SVQ6OlBhdGNocG9pbnQ6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2lu
dDo6c2V0R2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpQYXRjaHBvaW50OjpnZW5l
cmF0b3IpOgorICAgICAgICAqIGRvbWppdC9ET01KSVRQYXRjaHBvaW50UGFyYW1zLmg6IEFkZGVk
LgorICAgICAgICAoSlNDOjpET01KSVQ6OlBhdGNocG9pbnRQYXJhbXM6On5QYXRjaHBvaW50UGFy
YW1zKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpQYXRjaHBvaW50UGFyYW1zOjpzaXplKToKKyAg
ICAgICAgKEpTQzo6RE9NSklUOjpQYXRjaHBvaW50UGFyYW1zOjphdCk6CisgICAgICAgIChKU0M6
OkRPTUpJVDo6UGF0Y2hwb2ludFBhcmFtczo6b3BlcmF0b3JbXSk6CisgICAgICAgIChKU0M6OkRP
TUpJVDo6UGF0Y2hwb2ludFBhcmFtczo6Z3BTY3JhdGNoKToKKyAgICAgICAgKEpTQzo6RE9NSklU
OjpQYXRjaHBvaW50UGFyYW1zOjpmcFNjcmF0Y2gpOgorICAgICAgICAoSlNDOjpET01KSVQ6OlBh
dGNocG9pbnRQYXJhbXM6OlBhdGNocG9pbnRQYXJhbXMpOgorICAgICAgICAoSlNDOjpET01KSVQ6
OlBhdGNocG9pbnRQYXJhbXM6OmFkZFNsb3dQYXRoQ2FsbCk6CisgICAgICAgICogZG9taml0L0RP
TUpJVFNsb3dQYXRoR2VuZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpET01KSVQ6OlNs
b3dQYXRoR2VuZXJhdG9yOjpTbG93UGF0aEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkRPTUpJ
VDo6U2xvd1BhdGhHZW5lcmF0b3I6On5TbG93UGF0aEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6
OkRPTUpJVDo6U2xvd1BhdGhDYWxsR2VuZXJhdG9yOjpTbG93UGF0aENhbGxHZW5lcmF0b3IpOgor
ICAgICAgICAoSlNDOjpET01KSVQ6OlNsb3dQYXRoQ2FsbEdlbmVyYXRvcjo6dW5wYWNrQW5kQWRk
KToKKyAgICAgICAgKiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgorICAgICAgICAq
IGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUp
OgorICAgICAgICAqIGZ0bC9GVExET01KSVRQYXRjaHBvaW50UGFyYW1zLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BJbmZvLmguCisgICAgICAgIChKU0M6OkZU
TDo6RE9NSklUUGF0Y2hwb2ludFBhcmFtczo6RE9NSklUUGF0Y2hwb2ludFBhcmFtcyk6CisgICAg
ICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZUNoZWNrRE9NKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZUNhbGxET00pOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJE
RkdUb0IzOjpjb21waWxlVW5yZWFjaGFibGUpOiBEZWxldGVkLgorICAgICAgICAqIGZ0bC9GVExT
bG93UGF0aENhbGwuaDoKKyAgICAgICAgKiBoZWFwL1dlYWtJbXBsLmg6CisgICAgICAgIChKU0M6
OldlYWtJbXBsOjpvZmZzZXRPZkpTVmFsdWUpOgorICAgICAgICAoSlNDOjpXZWFrSW1wbDo6b2Zm
c2V0T2ZXZWFrSGFuZGxlT3duZXIpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoK
KyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJ
RCk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKFdURjo6RE9NSklUR2V0dGVyOjpET01K
SVRHZXR0ZXIpOgorICAgICAgICAoV1RGOjpET01KSVRHZXR0ZXI6OmNyZWF0ZVN0cnVjdHVyZSk6
CisgICAgICAgIChXVEY6OkRPTUpJVEdldHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdURjo6RE9N
SklUR2V0dGVyOjp2YWx1ZSk6CisgICAgICAgIChXVEY6OkRPTUpJVEdldHRlcjo6RE9NSklUR2V0
dGVyRE9NSklUOjpET01KSVRHZXR0ZXJET01KSVQpOgorICAgICAgICAoV1RGOjpET01KSVRHZXR0
ZXI6OmRvbUpJVEdldHRlckdldHRlclNldHRlcik6CisgICAgICAgIChXVEY6OkRPTUpJVEdldHRl
cjo6b2Zmc2V0T2ZWYWx1ZSk6CisgICAgICAgIChXVEY6OkRPTUpJVEdldHRlcjo6ZmluaXNoQ3Jl
YXRpb24pOgorICAgICAgICAoV1RGOjpET01KSVRHZXR0ZXI6OmN1c3RvbUdldHRlcik6CisgICAg
ICAgIChHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKGZ1bmN0aW9uQ3Jl
YXRlRE9NSklUR2V0dGVyT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0N1c3RvbUdldHRlclNl
dHRlci5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNP
YmplY3Q6OmZpbGxDdXN0b21HZXR0ZXJQcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUv
TG9va3VwLmg6CisgICAgICAgIChKU0M6Okhhc2hUYWJsZVZhbHVlOjpkb21KSVQpOgorICAgICAg
ICAoSlNDOjpnZXRTdGF0aWNQcm9wZXJ0eVNsb3RGcm9tVGFibGUpOgorICAgICAgICAoSlNDOjpw
dXRFbnRyeSk6CisgICAgICAgIChKU0M6OnJlaWZ5U3RhdGljUHJvcGVydHkpOgorICAgICAgICAq
IHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6ZG9t
SklUKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90OjpzZXRDYWNoZWFibGVDdXN0b20pOgor
CiAyMDE2LTEwLTAzICBOaWNvbGFzIEJyZWlkaW5nZXIgIDxOaWNvbGFzLkJyZWlkaW5nZXJAc29u
eS5jb20+CiAKICAgICAgICAgSlNTdHJpbmdSZWYgc2hvdWxkIGRlZmluZSBKU0NoYXIgd2l0aG91
dCBwbGF0Zm9ybSBjaGVja3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggOGQ3MGYyNjYxNGJkNDgyY2I1ZWI1YWU5NjRhZmZmN2Qw
NjRlZjM5Yi4uMzMyOGY4OTMyZjIyZTYxNjJjODMzMWE1NmQ5N2FhMWM0MWM1YjYxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxNi0xMC0wMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KKworICAgICAgICBbQmluZGluZ10gSW50cm9kdWNpbmcgRE9NIGJpbmRpbmcgSklU
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1NDQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9C
b3guaDoKKyAgICAgICAgKFdURjo6Qm94OjpCb3gpOgorICAgICAgICAqIHd0Zi9TdGRMaWJFeHRy
YXMuaDoKKwogMjAxNi0wOS0yOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIElETCB1bmlvbiBjb252ZXJzaW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNDY3ZjJhODE2NTY1OWZjZTIzNWQ5N2IwOWIyMzRmM2E0ZjhhNjU3Mi4uZDY5MjhlMGMz
NjgyYmYxODAwNGUzYjllOGRiMzdjZWU1ZDYxNjRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDE2LTEwLTAzICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgor
CisgICAgICAgIFtCaW5kaW5nXSBJbnRyb2R1Y2luZyBET00gYmluZGluZyBKSVQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU0NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRl
cnMvZG9taml0L0RPTUpJVEdyYXBoLmg6IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNt
YWtlOgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtTWFj
LmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oOgorICAg
ICAgICAoV2ViQ29yZTo6SlNET01XcmFwcGVyOjpvZmZzZXRPZldyYXBwZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01XcmFwcGVyOjp3cmFwcGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFdyYXBw
YWJsZTo6b2Zmc2V0T2ZXcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1dGUpOgor
ICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVQcm9wZXJ0aWVzSGFz
aFRhYmxlKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAoR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OgorICAgICAgICAqIGRvbS9Db250YWlu
ZXJOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpsYXN0Q2hpbGRNZW1v
cnlPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6bGFzdENoaWxkKTog
RGVsZXRlZC4KKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
bm9kZUZsYWdzTWVtb3J5T2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJhcmVEYXRh
TWVtb3J5T2Zmc2V0KToKKyAgICAgICAgKiBkb20vTm9kZS5pZGw6CisKIDIwMTYtMTAtMDMgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICB0ZC5zY29wZSBzaG91bGQg
b25seSByZXR1cm4ga25vd24gdmFsdWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggZmIyOTE0NzNhZTk3ZmE0ZmYwMGZkZWQ5OTg4YjY0YTM2MWJmY2FjMi4uOGY1N2I2ODZk
ZmU1MWZjNWIwMGIzNmUwMDcyNTRmYWRhY2RiYjZiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMTYsNiArMTYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUiCiAgICAgIiR7
SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29tcGlsZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9kZmciCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kb21qaXQiCiAgICAgIiR7SkFW
QVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9kaXNhc3NlbWJsZXIvdWRpczg2IgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZnRsIgpA
QCAtNDA4LDYgKzQwOSw4IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgZGlzYXNz
ZW1ibGVyL3VkaXM4Ni91ZGlzODZfc3luLWludGVsLmMKICAgICBkaXNhc3NlbWJsZXIvdWRpczg2
L3VkaXM4Nl9zeW4uYwogCisgICAgZG9taml0L0RPTUpJVEdldHRlclNldHRlci5jcHAKKwogICAg
IGZ0bC9GVExBYnN0cmFjdEhlYXAuY3BwCiAgICAgZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuY3BwCiAgICAgZnRsL0ZUTEF2YWlsYWJsZVJlY292ZXJ5LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA2ZWU1NzcyYTBlN2RlY2IzZTEzMTkxYmQ4NTk0MDZmZGY5YzVmZTU2
Li4xOTg3ZTU0ZTJiN2I4NjM1OWQyNmRiMmEzODk1ZmQ5NzMzNDYwNDJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzE2LDcgKzMxNiw3IEBACiAJCTBGMzNGQ0ZCMUMxNjI1QkUw
MDMyM0Y2NyAvKiBCM0NGRy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYzM0ZDRjkxQzE2MjVCRTAwMzIzRjY3IC8qIEIzQ0ZHLmggKi87IH07CiAJCTBG
MzNGQ0ZDMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0RvbWluYXRvcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzNGQ0ZBMUMxNjI1QkUwMDMyM0Y2NyAv
KiBCM0RvbWluYXRvcnMuaCAqLzsgfTsKIAkJMEYzNEIxNDkxNkQ0MjAxMDAwMUNEQTVBIC8qIERG
R1VzZUtpbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYzNEIxNDcxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwICovOyB9OwotCQkw
RjM0QjE0QTE2RDQyMDEzMDAxQ0RBNUEgLyogREZHVXNlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8q
IERGR1VzZUtpbmQuaCAqLzsgfTsKKwkJMEYzNEIxNEExNkQ0MjAxMzAwMUNEQTVBIC8qIERGR1Vz
ZUtpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MzRCMTQ4MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYzNzMwOEMxQzBCRDI5MTAwMDUyQkZB
IC8qIEIzUGhpQ2hpbGRyZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uY3Bw
ICovOyB9OwogCQkwRjM3MzA4RDFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNzMwOEIxQzBC
RDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uaCAqLzsgfTsKIAkJMEYzNzMwOEYxQzBDRDY4
NTAwMDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNzMwOEUxQzBDRDY4NTAw
MDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oICovOyB9OwpAQCAt
NTg3LDcgKzU4Nyw3IEBACiAJCTBGQTJDMTdCMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVy
VXRpbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZBMkMxNzkxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5jcHAgKi87IH07CiAJ
CTBGQTJDMTdDMTdEN0NGODQwMDlEMDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTJDMTdBMTdEN0NGODQwMDlE
MDE1RiAvKiBUZXN0UnVubmVyVXRpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRkE1ODFCQTE1MEU5NTJDMDBCOUEyRDkgLyogREZHTm9kZUZs
YWdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
QTU4MUI3MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuY3BwICovOyB9OwotCQkwRkE1
ODFCQjE1MEU5NTMwMDBCOUEyRDkgLyogREZHTm9kZUZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkE1ODFCODE1MEU5NTJBMDBCOUEyRDkgLyog
REZHTm9kZUZsYWdzLmggKi87IH07CisJCTBGQTU4MUJCMTUwRTk1MzAwMEI5QTJEOSAvKiBERkdO
b2RlRmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQTU4MUI4MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkE1ODFCQzE1MEU5NTMwMDBC
OUEyRDkgLyogREZHTm9kZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQTU4MUI5MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlVHlwZS5oICov
OyB9OwogCQkwRkE3QThFQjE4QjQxM0M4MDA1MjM3MUQgLyogUmVnLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTdBOEU5MThCNDEzQzgwMDUyMzcx
RCAvKiBSZWcuY3BwICovOyB9OwogCQkwRkE3QThFQzE4QjQxM0M4MDA1MjM3MUQgLyogUmVnLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkE3QThFQTE4
QjQxM0M4MDA1MjM3MUQgLyogUmVnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTE0NDgsNyArMTQ0OCw3IEBACiAJCTg2RUM5REQwMTMyOERGODIw
MDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMDEzMjhERjgyMDAyQjJBRDcgLyogREZHT3BlcmF0aW9u
cy5oICovOyB9OwogCQk4NkVDOUREMTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5r
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURD
MTEzMjhERjgyMDAyQjJBRDcgLyogREZHUmVnaXN0ZXJCYW5rLmggKi87IH07CiAJCTg2RUM5REQy
MTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDOURDMjEzMjhERjgyMDAyQjJBRDcg
LyogREZHU3BlY3VsYXRpdmVKSVQuY3BwICovOyB9OwotCQk4NkVDOUREMzEzMjhERjgyMDAyQjJB
RDcgLyogREZHU3BlY3VsYXRpdmVKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2RUM5REMzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2
ZUpJVC5oICovOyB9OworCQk4NkVDOUREMzEzMjhERjgyMDAyQjJBRDcgLyogREZHU3BlY3VsYXRp
dmVKSVQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
RUM5REMzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2RUNBM0VBMTMyREVGMUMw
MDJCMkFENyAvKiBERkdOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NkVDQTNFOTEzMkRFRjFDMDAyQjJBRDcgLyogREZHTm9kZS5oICovOyB9Owog
CQk4NkVDQTNGQTEzMkRGMjVBMDAyQjJBRDcgLyogREZHU2NvcmVCb2FyZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQ0EzRjkxMzJERjI1QTAwMkIy
QUQ3IC8qIERGR1Njb3JlQm9hcmQuaCAqLzsgfTsKIAkJODZGM0VFQkQxNjhDREU5MzAwNzdCOTJB
IC8qIE9iakNDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NkYzRUVCOTE2OENDRjc1MDA3N0I5MkEgLyogT2JqQ0NhbGxiYWNr
RnVuY3Rpb24uaCAqLzsgfTsKQEAgLTIwODgsNiArMjA4OCw4IEBACiAJCUUzM0Y1MDg0MUI4NDM3
QTAwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzM0Y1MDgyMUI4NDM3QTAwMDQxMzg1
NiAvKiBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcCAqLzsgfTsKIAkJRTMzRjUwODUxQjg0
MzdBMDAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzM0Y1MDgzMUI4NDM3QTAwMDQxMzg1
NiAvKiBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMzRjUwODcxQjg0NDlFRjAwNDEzODU2IC8qIEpT
SW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzNGNTA4NjFCODQ0OUVGMDA0MTM4NTYgLyogSlNJbnRl
cm5hbFByb21pc2VDb25zdHJ1Y3Rvci5sdXQuaCAqLzsgfTsKKwkJRTM0MUIwMDMxREEyQzVBNzAw
ODY1M0Q3IC8qIERPTUpJVFBhdGNocG9pbnRQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDFCMDAyMURBMkM1QTQwMDg2NTNENyAvKiBET01K
SVRQYXRjaHBvaW50UGFyYW1zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJRTM0MUIwMDQxREEyQzVBRDAwODY1M0Q3IC8qIERPTUpJVFBhdGNocG9p
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDFC
MDAxMURBMkM1QTQwMDg2NTNENyAvKiBET01KSVRQYXRjaHBvaW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1NDYyMkIxQjYwNjVEMTAwNTQ1
Mzg2IC8qIENvbnN0cnVjdEFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzNTQ2MjJBMUI2MDY1RDEwMDU0NTM4NiAvKiBDb25zdHJ1Y3RBYmls
aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTM1NUYzNTIxQjdEQzg1MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU1RjM1MDFCN0RD
ODUzMDBDNTBEQzUgLyogTW9kdWxlTG9hZGVyUHJvdG90eXBlLmNwcCAqLzsgfTsKIAkJRTM1NUYz
NTMxQjdEQzg1MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRlclByb3RvdHlwZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1NUYzNTExQjdEQzg1MzAwQzUw
REM1IC8qIE1vZHVsZUxvYWRlclByb3RvdHlwZS5oICovOyB9OwpAQCAtMjEwNCw2ICsyMTA2LDgg
QEAKIAkJRTNEMjM5QzkxQjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJvbm1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDIzOUM3MUI4
MjlDMUMwMEJCRUY2NyAvKiBKU01vZHVsZUVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNFRjg4NzQxQjY2REYyMzAwM0YyNkNC
IC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTNFRjg4NzIxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVy
dHlOYW1lSXRlcmF0b3IuY3BwICovOyB9OwogCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyog
SlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1l
SXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlFM0ZGNzUzMjFEOUNFQTE1MDBDN0UxNkQgLyogRE9NSklUR2V0dGVyU2V0dGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRkY3NTJFMUQ5
Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHZXR0ZXJTZXR0ZXIuY3BwICovOyB9OworCQlFM0ZGNzUz
MzFEOUNFQTE4MDBDN0UxNkQgLyogRE9NSklUR2V0dGVyU2V0dGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ZGNzUyRjFEOUNFQTEyMDBDN0UxNkQg
LyogRE9NSklUR2V0dGVyU2V0dGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTQ5REMxNkIxMkVGMjkzRTAwMTg0QTFGIC8qIFNvdXJjZVByb3Zp
ZGVyQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTQ5REMxNTUxMkVGMjc3MjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwICov
OyB9OwogCQlFNDlEQzE2QzEyRUYyOTRFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5REMxNTEx
MkVGMjcyMjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2RDEyRUYyOTUzMDAxODRB
MUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQ
cm92aWRlckNhY2hlSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC00MzgzLDYgKzQzODcsOCBAQAogCQlFMzNGNTA4MzFCODQzN0EwMDA0MTM4
NTYgLyogSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzM0Y1MDg2MUI4NDQ5RUYwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlz
ZUNvbnN0cnVjdG9yLmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0lu
dGVybmFsUHJvbWlzZUNvbnN0cnVjdG9yLmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzNGNTA4ODFCODQ0QTFBMDA0MTM4NTYgLyogSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0
b3IuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBJbnRlcm5hbFBy
b21pc2VDb25zdHJ1Y3Rvci5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM0MUIw
MDExREEyQzVBNDAwODY1M0Q3IC8qIERPTUpJVFBhdGNocG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUUGF0Y2hwb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMzQxQjAwMjFEQTJDNUE0MDA4NjUzRDcgLyogRE9NSklUUGF0Y2hwb2ludFBh
cmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01KSVRQYXRjaHBvaW50
UGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTQ2MjJBMUI2MDY1RDEw
MDU0NTM4NiAvKiBDb25zdHJ1Y3RBYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENvbnN0cnVjdEFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTM1NUYzNTAxQjdEQzg1MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVMb2FkZXJQcm90b3R5cGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU1RjM1MTFCN0RDODUzMDBDNTBE
QzUgLyogTW9kdWxlTG9hZGVyUHJvdG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1vZHVsZUxvYWRlclByb3RvdHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDQwNSw2ICs0NDExLDggQEAKIAkJRTNEMjY0MkExRDM4QzA0MjAwMEJFMTc0IC8qIEJ5
dGVjb2RlUmV3cml0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQnl0ZWNv
ZGVSZXdyaXRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGODg3MjFCNjZE
RjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0ZG
NzUyRTFEOUNFQTEyMDBDN0UxNkQgLyogRE9NSklUR2V0dGVyU2V0dGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUpJVEdldHRlclNldHRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01K
SVRHZXR0ZXJTZXR0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklU
R2V0dGVyU2V0dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0OURDMTQ5MTJF
RjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE1MTEyRUYyNzIyMDAxODRBMUYgLyogU291cmNlUHJv
dmlkZXJDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92
aWRlckNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0OURDMTU1MTJFRjI3
NzIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDY2Miw2ICs0NjcwLDcgQEAKIAkJCQk2NTBGREY4RDA5RDBGQ0E3
MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTg2RUM5REIzMTMyOERGNDQwMDJC
MkFENyAvKiBkZmcgKi8sCiAJCQkJMEZGNDI3MkUxNThFQkNDRTAwNENCOUZGIC8qIGRpc2Fzc2Vt
YmxlciAqLywKKwkJCQlFM0ZGNzUyRDFEOUNFOUVBMDBDN0UxNkQgLyogZG9taml0ICovLAogCQkJ
CTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAvKiBGcmFtZXdvcmtzICovLAogCQkJCTBGRUEwOUZD
MTcwNTEzN0YwMEJCNzIyQyAvKiBmdGwgKi8sCiAJCQkJMTQyRTMxMkExMzRGRjBBNjAwQUZBREI1
IC8qIGhlYXAgKi8sCkBAIC03MTY3LDYgKzcxNzYsMTcgQEAKIAkJCXBhdGggPSBjb2RlZ2VuOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTNGRjc1MkQxRDlDRTlFQTAwQzdF
MTZEIC8qIGRvbWppdCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJRTM0MUIwMDExREEyQzVBNDAwODY1M0Q3IC8qIERPTUpJVFBhdGNocG9pbnQuaCAqLywK
KwkJCQlFMzQxQjAwMjFEQTJDNUE0MDA4NjUzRDcgLyogRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5o
ICovLAorCQkJCUUzRkY3NTJFMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHZXR0ZXJTZXR0ZXIu
Y3BwICovLAorCQkJCUUzRkY3NTJGMUQ5Q0VBMTIwMEM3RTE2RCAvKiBET01KSVRHZXR0ZXJTZXR0
ZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gZG9taml0OworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEhl
YWRlcnNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTcyMzcsNiArNzI1Nyw3IEBACiAJCQkJMEY2
QjFDQjkxODYxMjQ0QzAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tNb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMUEwMDlDMTE4MzFBMjZFMDBDRjg3MTEgLyogQVJNNjRBc3NlbWJsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg2RDNCMkM0MTAxNTZCREUwMDI4NjVFNyAvKiBBUk1Bc3NlbWJsZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCUUzNDFCMDA0MURBMkM1QUQwMDg2NTNENyAvKiBET01KSVRQYXRj
aHBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkFERDE0NTBGRERFQTk4MDAwNkVFQzIgLyog
QVJNdjdBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1QzAyODVEMTcxNzk2NjgwMDM1
MUUzNSAvKiBBUk12N0RPcGNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODMzNUI4MTYzOUMx
RUEwMDE0NDNCNSAvKiBBcnJheUFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLywKQEAg
LTc2MTIsNiArNzYzMyw3IEBACiAJCQkJMEZDMjBDQkExODU1NkEzNTAwQzlFOTU0IC8qIERGR1NT
QUxvd2VyaW5nUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUZCNEY1MTdGQ0I5MTcwMENC
NjdGOCAvKiBERkdTdGFja0xheW91dFBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRGMjlF
MDE4QjZBRDFDMDA1N0JDMTUgLyogREZHU3RhdGljRXhlY3V0aW9uQ291bnRFc3RpbWF0aW9uUGhh
c2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzRkY3NTMzMUQ5Q0VBMTgwMEM3RTE2RCAvKiBET01K
SVRHZXR0ZXJTZXR0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUUzMjY0MUIwNUFCMDQwMDgw
MUVENSAvKiBERkdTdG9yZUJhcnJpZXJJbnNlcnRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDMjBDQjYxODUyRTJDNjAwQzlFOTU0IC8qIERGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjM5NDc4MTVEQ0UzNEIwMDZBNTk3QyAvKiBERkdTdHJ1
Y3R1cmVBYnN0cmFjdFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTc3NDAsNiArNzc2Miw3IEBA
CiAJCQkJMEYyQjY2QUYxN0I2QjU0NTAwQTdBRTNGIC8qIEdDSW5jb21pbmdSZWZDb3VudGVkU2V0
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTMxMzc0QkQxRDVDRTY3NjAwQUY3QTBCIC8q
IFdBU01QbGFuLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQUFCQ0RFNzE4RUYyOTQyMDAwMDIwOTYg
LyogR0NMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQxQjAwMzFEQTJDNUE3MDA4NjUz
RDcgLyogRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQkJE
OTgxQzVGRjNGNTAwMjNFRjIzIC8qIEIzVmFyaWFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
NEU4RUIwMThCRkZCQkIwMDU1NkQyOCAvKiBHQ1NlZ21lbnRlZEFycmF5LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNTRFOEVCMTE4QkZGQkJFMDA1NTZEMjggLyogR0NTZWdtZW50ZWRBcnJheUlubGlu
ZXMuaCBpbiBIZWFkZXJzICovLApAQCAtOTQ4Miw2ICs5NTA1LDcgQEAKIAkJCQkxNDg3NEFFNTE1
RUJERTRBMDAyRTM1ODcgLyogSlNTY29wZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0MwQzRB
RDE2ODEwNjdFMDAxNzAxMUQgLyogSlNTY3JpcHRSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY5MTlEMTAxNTdGMzMyOTAwNEE0RTdEIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRTNGRjc1MzIxRDlDRUExNTAwQzdFMTZEIC8qIERPTUpJVEdl
dHRlclNldHRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEQzE3RTgxNzFDOUM5MUQ2MDA4QTZB
QjMgLyogU2hhZG93Q2hpY2tlbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzI5OUQ5RDE3RDEy
ODM3MDA1RjVGRjkgLyogSlNTZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc5MERENkYxODJG
NDk5NzAwNTg4ODA3IC8qIEpTU2V0SXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKaW5kZXggMTVi
M2M4MTNjYjhiZTgwNzMzZTNiNDE1ZjZhOThlN2Y5YWM4ZGQ0Zi4uY2I3NmQwNWYwOWYxODY2NjRh
Y2IzYmJlMGZjNzg4NjkyZjAxMDgyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcApAQCAtMzcsNiArMzcsOSBAQAogI2luY2x1ZGUgPHd0
Zi9MaXN0RHVtcC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworY2xh
c3MgR2V0dGVyU2V0dGVyOworfQogCiBib29sIEdldEJ5SWRTdGF0dXM6OmFwcGVuZFZhcmlhbnQo
Y29uc3QgR2V0QnlJZFZhcmlhbnQmIHZhcmlhbnQpCiB7CkBAIC0yMTUsNiArMjE4LDcgQEAgR2V0
QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNp
dGVGZWVkYmFjaygKICAgICAgICAgICAgIGNhc2UgQ29tcGxleEdldFN0YXR1czo6SW5saW5lYWJs
ZTogewogICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0YXR1cz4gY2Fs
bExpbmtTdGF0dXM7CiAgICAgICAgICAgICAgICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rp
b24gPSBudWxscHRyOworICAgICAgICAgICAgICAgIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21K
SVQgPSBudWxscHRyOwogCiAgICAgICAgICAgICAgICAgc3dpdGNoIChhY2Nlc3MudHlwZSgpKSB7
CiAgICAgICAgICAgICAgICAgY2FzZSBBY2Nlc3NDYXNlOjpMb2FkOgpAQCAtMjM0LDYgKzIzOCwx
MiBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHViSW5mb1dpdGhv
dXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIEFj
Y2Vzc0Nhc2U6OkN1c3RvbUFjY2Vzc29yR2V0dGVyOiB7CisgICAgICAgICAgICAgICAgICAgIGRv
bUpJVCA9IGFjY2Vzcy5kb21KSVQoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFkb21KSVQp
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gR2V0QnlJZFN0YXR1cyhzbG93UGF0aFN0
YXRlLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IEl0IHdvdWxkIGJlIHRvdGFsbHkgc3dlZXQgdG8gc3VwcG9ydCBtb3JlIG9mIHRoZXNlIGF0
IHNvbWUgcG9pbnQgaW4gdGhlCiAgICAgICAgICAgICAgICAgICAgIC8vIGZ1dHVyZS4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzA1MgpAQCAtMjQ0LDcgKzI1NCw4
IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0aG91
dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgICAgICAgICAgR2V0QnlJZFZhcmlhbnQgdmFyaWFu
dCgKICAgICAgICAgICAgICAgICAgICAgU3RydWN0dXJlU2V0KHN0cnVjdHVyZSksIGNvbXBsZXhH
ZXRTdGF0dXMub2Zmc2V0KCksCiAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXhHZXRTdGF0dXMu
Y29uZGl0aW9uU2V0KCksIFdURk1vdmUoY2FsbExpbmtTdGF0dXMpLAotICAgICAgICAgICAgICAg
ICAgICBpbnRyaW5zaWNGdW5jdGlvbik7CisgICAgICAgICAgICAgICAgICAgIGludHJpbnNpY0Z1
bmN0aW9uLAorICAgICAgICAgICAgICAgICAgICBkb21KSVQpOwogCiAgICAgICAgICAgICAgICAg
aWYgKCFyZXN1bHQuYXBwZW5kVmFyaWFudCh2YXJpYW50KSkKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEdldEJ5SWRTdGF0dXMoc2xvd1BhdGhTdGF0ZSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmNwcAppbmRleCBhODY5ZDRh
MWM5NGU3ZTQ3NTczMTc0NGM3YjMwM2Q1MDY1ZTBmNDMxLi4wMzE3MDg0ZDA5OWNhYjcwYTQ0MTUw
YjY0ZjkxOTZlNTY2N2JhNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9HZXRCeUlkVmFyaWFudC5jcHAKQEAgLTM2LDEyICszNiwxNCBAQCBHZXRCeUlkVmFyaWFu
dDo6R2V0QnlJZFZhcmlhbnQoCiAgICAgY29uc3QgU3RydWN0dXJlU2V0JiBzdHJ1Y3R1cmVTZXQs
IFByb3BlcnR5T2Zmc2V0IG9mZnNldCwKICAgICBjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlv
blNldCYgY29uZGl0aW9uU2V0LAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0YXR1cz4g
Y2FsbExpbmtTdGF0dXMsCi0gICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rpb24pCisgICAg
SlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rpb24sCisgICAgRE9NSklUOjpHZXR0ZXJTZXR0ZXIq
IGRvbUpJVCkKICAgICA6IG1fc3RydWN0dXJlU2V0KHN0cnVjdHVyZVNldCkKICAgICAsIG1fY29u
ZGl0aW9uU2V0KGNvbmRpdGlvblNldCkKICAgICAsIG1fb2Zmc2V0KG9mZnNldCkKICAgICAsIG1f
Y2FsbExpbmtTdGF0dXMoV1RGTW92ZShjYWxsTGlua1N0YXR1cykpCiAgICAgLCBtX2ludHJpbnNp
Y0Z1bmN0aW9uKGludHJpbnNpY0Z1bmN0aW9uKQorICAgICwgbV9kb21KSVQoZG9tSklUKQogewog
ICAgIGlmICghc3RydWN0dXJlU2V0LnNpemUoKSkgewogICAgICAgICBBU1NFUlQob2Zmc2V0ID09
IGludmFsaWRPZmZzZXQpOwpAQCAtNjUsNiArNjcsNyBAQCBHZXRCeUlkVmFyaWFudCYgR2V0QnlJ
ZFZhcmlhbnQ6Om9wZXJhdG9yPShjb25zdCBHZXRCeUlkVmFyaWFudCYgb3RoZXIpCiAgICAgbV9j
b25kaXRpb25TZXQgPSBvdGhlci5tX2NvbmRpdGlvblNldDsKICAgICBtX29mZnNldCA9IG90aGVy
Lm1fb2Zmc2V0OwogICAgIG1faW50cmluc2ljRnVuY3Rpb24gPSBvdGhlci5tX2ludHJpbnNpY0Z1
bmN0aW9uOworICAgIG1fZG9tSklUID0gb3RoZXIubV9kb21KSVQ7CiAgICAgaWYgKG90aGVyLm1f
Y2FsbExpbmtTdGF0dXMpCiAgICAgICAgIG1fY2FsbExpbmtTdGF0dXMgPSBzdGQ6Om1ha2VfdW5p
cXVlPENhbGxMaW5rU3RhdHVzPigqb3RoZXIubV9jYWxsTGlua1N0YXR1cyk7CiAgICAgZWxzZQpA
QCAtMTAzLDYgKzEwNiw5IEBAIGJvb2wgR2V0QnlJZFZhcmlhbnQ6OmF0dGVtcHRUb01lcmdlKGNv
bnN0IEdldEJ5SWRWYXJpYW50JiBvdGhlcikKICAgICBpZiAoIWNhbk1lcmdlSW50cmluc2ljU3Ry
dWN0dXJlcyhvdGhlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmIChtX2RvbUpJ
VCAhPSBvdGhlci5tX2RvbUpJVCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKG1f
Y29uZGl0aW9uU2V0LmlzRW1wdHkoKSAhPSBvdGhlci5tX2NvbmRpdGlvblNldC5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKQEAgLTEzOCw2ICsxNDQsOCBAQCB2b2lkIEdl
dEJ5SWRWYXJpYW50OjpkdW1wSW5Db250ZXh0KFByaW50U3RyZWFtJiBvdXQsIER1bXBDb250ZXh0
KiBjb250ZXh0KSBjb25zdAogICAgICAgICBvdXQucHJpbnQoIiwgY2FsbCA9ICIsICptX2NhbGxM
aW5rU3RhdHVzKTsKICAgICBpZiAobV9pbnRyaW5zaWNGdW5jdGlvbikKICAgICAgICAgb3V0LnBy
aW50KCIsIGludHJpbnNpYyA9ICIsICptX2ludHJpbnNpY0Z1bmN0aW9uKTsKKyAgICBpZiAobV9k
b21KSVQpCisgICAgICAgIG91dC5wcmludCgiLCBjdXN0b20gPSAiLCBSYXdQb2ludGVyKG1fZG9t
SklUKSk7CiAgICAgb3V0LnByaW50KCI+Iik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmgKaW5kZXggNjYyMTg5YmNlNWYyZWIxYTEzYmQw
NTNlOTgwMDIxYzEzYzI2NmU2Ni4uOGRlZDI0ODY3NWY4NzFkNzkwOGYyMmE1Njk0MzcyOTc4Yjg5
NTNhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRW
YXJpYW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJp
YW50LmgKQEAgLTMyLDYgKzMyLDkgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVTZXQuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CituYW1lc3BhY2UgRE9NSklUIHsKK2NsYXNzIEdldHRlclNldHRlcjsKK30K
IAogY2xhc3MgQ2FsbExpbmtTdGF0dXM7CiBjbGFzcyBHZXRCeUlkU3RhdHVzOwpAQCAtNDMsNyAr
NDYsOCBAQCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7CiAgICAgICAgIGNvbnN0IFN0cnVjdHVyZVNl
dCYgc3RydWN0dXJlU2V0ID0gU3RydWN0dXJlU2V0KCksIFByb3BlcnR5T2Zmc2V0IG9mZnNldCA9
IGludmFsaWRPZmZzZXQsCiAgICAgICAgIGNvbnN0IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0
JiA9IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uU2V0KCksCiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxDYWxsTGlua1N0YXR1cz4gPSBudWxscHRyLAotICAgICAgICBKU0Z1bmN0aW9uKiA9IG51bGxw
dHIpOworICAgICAgICBKU0Z1bmN0aW9uKiA9IG51bGxwdHIsCisgICAgICAgIERPTUpJVDo6R2V0
dGVyU2V0dGVyKiA9IG51bGxwdHIpOwogCiAgICAgfkdldEJ5SWRWYXJpYW50KCk7CiAgICAgCkBA
IC02Miw2ICs2Niw3IEBAIGNsYXNzIEdldEJ5SWRWYXJpYW50IHsKICAgICBDYWxsTGlua1N0YXR1
cyogY2FsbExpbmtTdGF0dXMoKSBjb25zdCB7IHJldHVybiBtX2NhbGxMaW5rU3RhdHVzLmdldCgp
OyB9CiAgICAgSlNGdW5jdGlvbiogaW50cmluc2ljRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBt
X2ludHJpbnNpY0Z1bmN0aW9uOyB9CiAgICAgSW50cmluc2ljIGludHJpbnNpYygpIGNvbnN0IHsg
cmV0dXJuIG1faW50cmluc2ljRnVuY3Rpb24gPyBtX2ludHJpbnNpY0Z1bmN0aW9uLT5pbnRyaW5z
aWMoKSA6IE5vSW50cmluc2ljOyB9CisgICAgRE9NSklUOjpHZXR0ZXJTZXR0ZXIqIGRvbUpJVCgp
IGNvbnN0IHsgcmV0dXJuIG1fZG9tSklUOyB9CiAKICAgICBib29sIGlzUHJvcGVydHlVbnNldCgp
IGNvbnN0IHsgcmV0dXJuIG9mZnNldCgpID09IGludmFsaWRPZmZzZXQ7IH0KIApAQCAtODAsNiAr
ODUsNyBAQCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7CiAgICAgUHJvcGVydHlPZmZzZXQgbV9vZmZz
ZXQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENhbGxMaW5rU3RhdHVzPiBtX2NhbGxMaW5rU3RhdHVz
OwogICAgIEpTRnVuY3Rpb24qIG1faW50cmluc2ljRnVuY3Rpb247CisgICAgRE9NSklUOjpHZXR0
ZXJTZXR0ZXIqIG1fZG9tSklUOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAppbmRl
eCAyY2YyNjY3MDg2NjQ2ZjIwMmEwNGM2YTA3NDI5YzgxYTc1ZTk0NjQzLi45YThhOGU1MjAwOThh
OTZhZTZkYzg1MDlmMDJmMTUzMWEwMDEyNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKQEAgLTIyMCw3ICsyMjAsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6dHJ5R2V0KAogc3RkOjp1
bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6OmdldCgKICAgICBWTSYgdm0sIEpTQ2Vs
bCogb3duZXIsIEFjY2Vzc1R5cGUgdHlwZSwgUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwKICAgICBjb25zdCBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCYgY29u
ZGl0aW9uU2V0LCBib29sIHZpYVByb3h5LCBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0LAot
ICAgIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIGN1c3RvbUdldHRlciwgSlNPYmplY3QqIGN1
c3RvbVNsb3RCYXNlKQorICAgIFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIGN1c3RvbUdldHRl
ciwgSlNPYmplY3QqIGN1c3RvbVNsb3RCYXNlLCBET01KSVQ6OkdldHRlclNldHRlciogZG9tSklU
KQogewogICAgIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiByZXN1bHQobmV3IEFjY2Vzc0Nh
c2UoKSk7CiAKQEAgLTIyOSwxMiArMjI5LDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNl
PiBBY2Nlc3NDYXNlOjpnZXQoCiAgICAgcmVzdWx0LT5tX3N0cnVjdHVyZS5zZXQodm0sIG93bmVy
LCBzdHJ1Y3R1cmUpOwogICAgIHJlc3VsdC0+bV9jb25kaXRpb25TZXQgPSBjb25kaXRpb25TZXQ7
CiAKLSAgICBpZiAodmlhUHJveHkgfHwgYWRkaXRpb25hbFNldCB8fCByZXN1bHQtPmRvZXNDYWxs
cygpIHx8IGN1c3RvbUdldHRlciB8fCBjdXN0b21TbG90QmFzZSkgeworICAgIGlmICh2aWFQcm94
eSB8fCBhZGRpdGlvbmFsU2V0IHx8IHJlc3VsdC0+ZG9lc0NhbGxzKCkgfHwgY3VzdG9tR2V0dGVy
IHx8IGN1c3RvbVNsb3RCYXNlIHx8IGRvbUpJVCkgewogICAgICAgICByZXN1bHQtPm1fcmFyZURh
dGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFJhcmVEYXRhPigpOwogICAgICAgICByZXN1bHQtPm1fcmFy
ZURhdGEtPnZpYVByb3h5ID0gdmlhUHJveHk7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+
YWRkaXRpb25hbFNldCA9IGFkZGl0aW9uYWxTZXQ7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0
YS0+Y3VzdG9tQWNjZXNzb3IuZ2V0dGVyID0gY3VzdG9tR2V0dGVyOwogICAgICAgICByZXN1bHQt
Pm1fcmFyZURhdGEtPmN1c3RvbVNsb3RCYXNlLnNldE1heUJlTnVsbCh2bSwgb3duZXIsIGN1c3Rv
bVNsb3RCYXNlKTsKKyAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5kb21KSVQgPSBkb21KSVQ7
CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTM4NSw2ICszODYsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Y2xvbmUoKSBjb25zdAogICAgICAgICBy
ZXN1bHQtPm1fcmFyZURhdGEtPmN1c3RvbUFjY2Vzc29yLm9wYXF1ZSA9IHJhcmVEYXRhLT5jdXN0
b21BY2Nlc3Nvci5vcGFxdWU7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+Y3VzdG9tU2xv
dEJhc2UgPSByYXJlRGF0YS0+Y3VzdG9tU2xvdEJhc2U7CiAgICAgICAgIHJlc3VsdC0+bV9yYXJl
RGF0YS0+aW50cmluc2ljRnVuY3Rpb24gPSByYXJlRGF0YS0+aW50cmluc2ljRnVuY3Rpb247Cisg
ICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+ZG9tSklUID0gcmFyZURhdGEtPmRvbUpJVDsKICAg
ICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmgKaW5kZXggYTZkMTQ4Y2JmYjBmMTlmOGIzN2Ex
NzczODFlMDA4MTM3MmI4NDkyMi4uOTcwYTIzNWJmZGUzMmU2M2FmNmI5NWRhZmY3MzIzYzJiOTQ4
YzY1YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmgKQEAgLTM3LDYgKzM3LDkgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CitjbGFzcyBHZXR0ZXJTZXR0ZXI7
Cit9CiAKIGNsYXNzIENvZGVCbG9jazsKIGNsYXNzIFBvbHltb3JwaGljQWNjZXNzOwpAQCAtMTMw
LDcgKzEzMyw4IEBAIGNsYXNzIEFjY2Vzc0Nhc2UgewogICAgICAgICBib29sIHZpYVByb3h5ID0g
ZmFsc2UsCiAgICAgICAgIFdhdGNocG9pbnRTZXQqIGFkZGl0aW9uYWxTZXQgPSBudWxscHRyLAog
ICAgICAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyA9IG51bGxwdHIsCi0gICAgICAgIEpT
T2JqZWN0KiBjdXN0b21TbG90QmFzZSA9IG51bGxwdHIpOworICAgICAgICBKU09iamVjdCogY3Vz
dG9tU2xvdEJhc2UgPSBudWxscHRyLAorICAgICAgICBET01KSVQ6OkdldHRlclNldHRlciogPSBu
dWxscHRyKTsKICAgICAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IG1l
Z2Ftb3JwaGljTG9hZChWTSYsIEpTQ2VsbCogb3duZXIpOwogICAgIApAQCAtMTg2LDYgKzE5MCwx
MiBAQCBjbGFzcyBBY2Nlc3NDYXNlIHsKICAgICAgICAgcmV0dXJuIGludHJpbnNpY0Z1bmN0aW9u
KCktPmludHJpbnNpYygpOwogICAgIH0KIAorICAgIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21K
SVQoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fcmFyZURhdGEpOworICAgICAgICBy
ZXR1cm4gbV9yYXJlRGF0YS0+ZG9tSklUOworICAgIH0KKwogICAgIFdhdGNocG9pbnRTZXQqIGFk
ZGl0aW9uYWxTZXQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1fcmFyZURhdGEgPyBt
X3JhcmVEYXRhLT5hZGRpdGlvbmFsU2V0LmdldCgpIDogbnVsbHB0cjsKQEAgLTI4NCw2ICsyOTQs
NyBAQCBjbGFzcyBBY2Nlc3NDYXNlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFJhcmVEYXRhKCkK
ICAgICAgICAgICAgIDogdmlhUHJveHkoZmFsc2UpCisgICAgICAgICAgICAsIGRvbUpJVChudWxs
cHRyKQogICAgICAgICB7CiAgICAgICAgICAgICBjdXN0b21BY2Nlc3Nvci5vcGFxdWUgPSBudWxs
cHRyOwogICAgICAgICB9CkBAIC0zMDAsNiArMzExLDcgQEAgY2xhc3MgQWNjZXNzQ2FzZSB7CiAg
ICAgICAgIH0gY3VzdG9tQWNjZXNzb3I7CiAgICAgICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4g
Y3VzdG9tU2xvdEJhc2U7CiAgICAgICAgIFdyaXRlQmFycmllcjxKU0Z1bmN0aW9uPiBpbnRyaW5z
aWNGdW5jdGlvbjsKKyAgICAgICAgRE9NSklUOjpHZXR0ZXJTZXR0ZXIqIGRvbUpJVDsKICAgICB9
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJhcmVEYXRhPiBtX3JhcmVEYXRhOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKaW5kZXggNzE5
ZDhmMjcyODNmNWQxMjNjZTU3NzE1NDVlNDY5YmY4MWFmZjIyNy4uMjQyNTI5MmFmZjYwNTlhYWE3
OGNiODQ5N2QxODZiOWI1MDQyZTY5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3BwCkBAIC0zNTMsNiArMzUzLDEyIEBAIFNwZWN1bGF0
ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbVR5cGVkQXJyYXlUeXBlKFR5cGVkQXJyYXlUeXBlIHR5cGUp
CiAKIFNwZWN1bGF0ZWRUeXBlIHNwZWN1bGF0aW9uRnJvbUNsYXNzSW5mbyhjb25zdCBDbGFzc0lu
Zm8qIGNsYXNzSW5mbykKIHsKKyAgICBpZiAoY2xhc3NJbmZvID09IEpTU3RyaW5nOjppbmZvKCkp
CisgICAgICAgIHJldHVybiBTcGVjU3RyaW5nOworCisgICAgaWYgKGNsYXNzSW5mbyA9PSBTeW1i
b2w6OmluZm8oKSkKKyAgICAgICAgcmV0dXJuIFNwZWNTeW1ib2w7CisKICAgICBpZiAoY2xhc3NJ
bmZvID09IEpTRmluYWxPYmplY3Q6OmluZm8oKSkKICAgICAgICAgcmV0dXJuIFNwZWNGaW5hbE9i
amVjdDsKICAgICAKQEAgLTM4NSw2ICszOTEsOSBAQCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlv
bkZyb21DbGFzc0luZm8oY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAgICAgCiAgICAgaWYg
KGlzVHlwZWRWaWV3KGNsYXNzSW5mby0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlKSkKICAgICAgICAg
cmV0dXJuIHNwZWN1bGF0aW9uRnJvbVR5cGVkQXJyYXlUeXBlKGNsYXNzSW5mby0+dHlwZWRBcnJh
eVN0b3JhZ2VUeXBlKTsKKworICAgIGlmIChjbGFzc0luZm8tPmlzU3ViQ2xhc3NPZihKU0FycmF5
OjppbmZvKCkpKQorICAgICAgICByZXR1cm4gU3BlY0Rlcml2ZWRBcnJheTsKICAgICAKICAgICBp
ZiAoY2xhc3NJbmZvLT5pc1N1YkNsYXNzT2YoSlNPYmplY3Q6OmluZm8oKSkpCiAgICAgICAgIHJl
dHVybiBTcGVjT2JqZWN0T3RoZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlci5oCmluZGV4IDU5NzI4MTY2MmU4YWQxZmZhYTg1NTYyMmM3
MDU5YTQ3NGIyZjQ0NmUuLmJjZjZkN2U3MzFmY2Q3ZTA1MzUzYWZkNjliOGI5YTQzOTNmYmE4M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlci5oCkBAIC0xMzQsMTAgKzEzNCwxNyBAQCBjbGFzcyBBYnN0cmFjdEludGVycHJldGVyIHsK
ICAgICAgICAgcmV0dXJuIGZpbHRlckJ5VmFsdWUoZm9yTm9kZShub2RlKSwgdmFsdWUpOwogICAg
IH0KICAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIEZpbHRyYXRpb25SZXN1bHQg
ZmlsdGVyQ2xhc3NJbmZvKFQgbm9kZSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCisgICAg
eworICAgICAgICByZXR1cm4gZmlsdGVyQ2xhc3NJbmZvKGZvck5vZGUobm9kZSksIGNsYXNzSW5m
byk7CisgICAgfQorCiAgICAgRmlsdHJhdGlvblJlc3VsdCBmaWx0ZXIoQWJzdHJhY3RWYWx1ZSYs
IGNvbnN0IFN0cnVjdHVyZVNldCYsIFNwZWN1bGF0ZWRUeXBlIGFkbWl0dGVkVHlwZXMgPSBTcGVj
Tm9uZSk7CiAgICAgRmlsdHJhdGlvblJlc3VsdCBmaWx0ZXJBcnJheU1vZGVzKEFic3RyYWN0VmFs
dWUmLCBBcnJheU1vZGVzKTsKICAgICBGaWx0cmF0aW9uUmVzdWx0IGZpbHRlcihBYnN0cmFjdFZh
bHVlJiwgU3BlY3VsYXRlZFR5cGUpOwogICAgIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyQnlWYWx1
ZShBYnN0cmFjdFZhbHVlJiwgRnJvemVuVmFsdWUpOworICAgIEZpbHRyYXRpb25SZXN1bHQgZmls
dGVyQ2xhc3NJbmZvKEFic3RyYWN0VmFsdWUmLCBjb25zdCBDbGFzc0luZm8qKTsKICAgICAKICAg
ICBQaGlDaGlsZHJlbiogcGhpQ2hpbGRyZW4oKSB7IHJldHVybiBtX3BoaUNoaWxkcmVuLmdldCgp
OyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5kZXggOWRiMTNlM2E4N2U2Yjc4ZGFhMWU5YjAx
MjMzMmZhMTVmNTY0NDQ5MC4uZTNkNGQ2MDUzY2M1NjY5MmIzYWJlMGM0MGQ4MTU4MGZhMjIwNDdl
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQXJy
YXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkRGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaCIKKyNp
bmNsdWRlICJET01KSVRHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJHZXRCeUlkU3RhdHVzLmgi
CiAjaW5jbHVkZSAiR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSGFzaE1hcEltcGwuaCIKQEAg
LTIyNjMsNiArMjI2NCwyOCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgUmVh
bGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICAgICAgZm9yTm9kZShub2RlKS5jbGVhcigpOyAv
LyBUaGUgcmVzdWx0IGlzIG5vdCBhIEpTIHZhbHVlLgogICAgICAgICBicmVhazsKKyAgICBjYXNl
IENoZWNrRE9NOiB7CisgICAgICAgIEpTVmFsdWUgY29uc3RhbnQgPSBmb3JOb2RlKG5vZGUtPmNo
aWxkMSgpKS52YWx1ZSgpOworICAgICAgICBpZiAoY29uc3RhbnQpIHsKKyAgICAgICAgICAgIGlm
IChjb25zdGFudC5pc0NlbGwoKSAmJiBjb25zdGFudC5hc0NlbGwoKS0+aW5oZXJpdHMobm9kZS0+
Y2xhc3NJbmZvKCkpKSB7CisgICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50
cyh0cnVlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoY29uc3RhbnQpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgQWJzdHJhY3RW
YWx1ZSYgdmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKKworICAgICAgICBpZiAodmFs
dWUubV9zdHJ1Y3R1cmUuaXNTdWJDbGFzc09mKG5vZGUtPmNsYXNzSW5mbygpKSkKKyAgICAgICAg
ICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisKKyAgICAgICAgZmlsdGVyQ2xh
c3NJbmZvKHZhbHVlLCBub2RlLT5jbGFzc0luZm8oKSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICBjYXNlIENhbGxET006CisgICAgICAgIGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2Vt
YW50aWMsIGNsb2JiZXJMaW1pdCk7CisgICAgICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShtX2dy
YXBoLCBub2RlLT5kb21KSVQoKS0+cmVzdWx0VHlwZSgpKTsKKyAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDaGVja0FycmF5OiB7CiAgICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5
Q2hlY2tlZChtX2dyYXBoLCBub2RlLCBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKSkpIHsKICAgICAg
ICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CkBAIC0zMDQ2LDYgKzMwNjks
MTYgQEAgRmlsdHJhdGlvblJlc3VsdCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVU
eXBlPjo6ZmlsdGVyQnlWYWx1ZSgKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQWJzdHJhY3RTdGF0
ZVR5cGU+CitGaWx0cmF0aW9uUmVzdWx0IEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpmaWx0ZXJDbGFzc0luZm8oCisgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUsIGNvbnN0
IENsYXNzSW5mbyogY2xhc3NJbmZvKQoreworICAgIGlmICh2YWx1ZS5maWx0ZXJDbGFzc0luZm8o
bV9ncmFwaCwgY2xhc3NJbmZvKSA9PSBGaWx0cmF0aW9uT0spCisgICAgICAgIHJldHVybiBGaWx0
cmF0aW9uT0s7CisgICAgbV9zdGF0ZS5zZXRJc1ZhbGlkKGZhbHNlKTsKKyAgICByZXR1cm4gQ29u
dHJhZGljdGlvbjsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgQWJzdHJhY3RTdGF0ZVR5cGU+CiB2
b2lkIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRG91Ymxl
VW5hcnlPcEVmZmVjdHMoTm9kZSogbm9kZSwgZG91YmxlKCplcXVpdmFsZW50RnVuY3Rpb24pKGRv
dWJsZSkpCiB7CiAgICAgSlNWYWx1ZSBjaGlsZCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZh
bHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
VmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmNw
cAppbmRleCBjM2VmZGFjZWU3OGQ2YWNlZWY2NWE5ODMyODQxYmQ2ZjQxYmNhNDdmLi42NzJiMjI4
MTY3MTUyZDhlMzEyN2Y0NTg3ZWUzNDdjZGYxODM4ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAKQEAgLTMwNiw2ICszMDYsMjMgQEAgRmls
dHJhdGlvblJlc3VsdCBBYnN0cmFjdFZhbHVlOjpmaWx0ZXJBcnJheU1vZGVzKEFycmF5TW9kZXMg
YXJyYXlNb2RlcykKICAgICByZXR1cm4gbm9ybWFsaXplQ2xhcml0eSgpOwogfQogCitGaWx0cmF0
aW9uUmVzdWx0IEFic3RyYWN0VmFsdWU6OmZpbHRlckNsYXNzSW5mbyhHcmFwaCYgZ3JhcGgsIGNv
bnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQoreworICAgIEFTU0VSVChhcnJheU1vZGVzKTsKKwor
ICAgIGlmIChpc0NsZWFyKCkpCisgICAgICAgIHJldHVybiBGaWx0cmF0aW9uT0s7CisKKyAgICBt
X3R5cGUgJj0gc3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKGNsYXNzSW5mbyk7CisgICAgbV9zdHJ1
Y3R1cmUuZmlsdGVyQ2xhc3NJbmZvKGNsYXNzSW5mbyk7CisKKyAgICBtX3N0cnVjdHVyZS5maWx0
ZXIobV90eXBlKTsKKworICAgIGZpbHRlckFycmF5TW9kZXNCeVR5cGUoKTsKKyAgICBmaWx0ZXJW
YWx1ZUJ5VHlwZSgpOworICAgIHJldHVybiBub3JtYWxpemVDbGFyaXR5KGdyYXBoKTsKK30KKwog
RmlsdHJhdGlvblJlc3VsdCBBYnN0cmFjdFZhbHVlOjpmaWx0ZXIoU3BlY3VsYXRlZFR5cGUgdHlw
ZSkKIHsKICAgICBpZiAoKG1fdHlwZSAmIHR5cGUpID09IG1fdHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVlLmgKaW5kZXggMzJlYjBmMTljNWM5MWY2Nzcx
OGU3M2QwYTdjMzhlMTlmY2YyODNlZi4uOGE5MTAxNDA3NTYzYWIxM2VhMDBkNWM2YmNlODg0YzU5
MjgwMzE2YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dFZhbHVlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFZhbHVl
LmgKQEAgLTMwNyw2ICszMDcsNyBAQCBzdHJ1Y3QgQWJzdHJhY3RWYWx1ZSB7CiAgICAgRmlsdHJh
dGlvblJlc3VsdCBmaWx0ZXIoU3BlY3VsYXRlZFR5cGUpOwogICAgIEZpbHRyYXRpb25SZXN1bHQg
ZmlsdGVyQnlWYWx1ZShjb25zdCBGcm96ZW5WYWx1ZSYgdmFsdWUpOwogICAgIEZpbHRyYXRpb25S
ZXN1bHQgZmlsdGVyKGNvbnN0IEFic3RyYWN0VmFsdWUmKTsKKyAgICBGaWx0cmF0aW9uUmVzdWx0
IGZpbHRlckNsYXNzSW5mbyhHcmFwaCYsIGNvbnN0IENsYXNzSW5mbyopOwogCiAgICAgRmlsdHJh
dGlvblJlc3VsdCBmaWx0ZXIoR3JhcGgmLCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3Im
KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKaW5kZXggMDQ1MjI4MGRkMjZmNDBiMGJjYTQ1ZDM4NTFkMTEwZGY0MTZhMGZhNy4uNTAz
MmU1M2UzYzg3NjgyNGYxNTBkMjA0ZDYzODIzNjFkNmNhMGYyOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTIxOSw2ICsyMTksNyBA
QCBjbGFzcyBCeXRlQ29kZVBhcnNlciB7CiAgICAgYm9vbCBoYW5kbGVDb25zdGFudEludGVybmFs
RnVuY3Rpb24oTm9kZSogY2FsbFRhcmdldE5vZGUsIGludCByZXN1bHRPcGVyYW5kLCBJbnRlcm5h
bEZ1bmN0aW9uKiwgaW50IHJlZ2lzdGVyT2Zmc2V0LCBpbnQgYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIFNwZWN1bGF0ZWRUeXBlLCBjb25zdCBDaGVj
a3NGdW5jdG9yJiBpbnNlcnRDaGVja3MpOwogICAgIE5vZGUqIGhhbmRsZVB1dEJ5T2Zmc2V0KE5v
ZGUqIGJhc2UsIHVuc2lnbmVkIGlkZW50aWZpZXIsIFByb3BlcnR5T2Zmc2V0LCBjb25zdCBJbmZl
cnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBOb2RlKiB2YWx1ZSk7CiAgICAgTm9kZSogaGFuZGxlR2V0
QnlPZmZzZXQoU3BlY3VsYXRlZFR5cGUsIE5vZGUqIGJhc2UsIHVuc2lnbmVkIGlkZW50aWZpZXJO
dW1iZXIsIFByb3BlcnR5T2Zmc2V0LCBjb25zdCBJbmZlcnJlZFR5cGU6OkRlc2NyaXB0b3ImLCBO
b2RlVHlwZSA9IEdldEJ5T2Zmc2V0KTsKKyAgICBib29sIGhhbmRsZURPTUpJVEdldHRlcihpbnQg
cmVzdWx0T3BlcmFuZCwgY29uc3QgR2V0QnlJZFZhcmlhbnQmLCBOb2RlKiB0aGlzTm9kZSwgU3Bl
Y3VsYXRlZFR5cGUgcHJlZGljdGlvbik7CiAKICAgICAvLyBDcmVhdGUgYSBwcmVzZW5jZSBPYmpl
Y3RQcm9wZXJ0eUNvbmRpdGlvbiBiYXNlZCBvbiBzb21lIGtub3duIG9mZnNldCBhbmQgc3RydWN0
dXJlIHNldC4gRG9lcyBub3QKICAgICAvLyBjaGVjayB0aGUgdmFsaWRpdHkgb2YgdGhlIGNvbmRp
dGlvbiwgYnV0IGl0IG1heSByZXR1cm4gYSBudWxsIG9uZSBpZiBpdCBlbmNvdW50ZXJzIGEgY29u
dHJhZGljdGlvbi4KQEAgLTI2NTksNiArMjY2MCwyMCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpo
YW5kbGVJbnRyaW5zaWNHZXR0ZXIoaW50IHJlc3VsdE9wZXJhbmQsIGNvbnN0IEdldEJ5SWRWYXJp
YQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKK2Jvb2wgQnl0ZUNvZGVQ
YXJzZXI6OmhhbmRsZURPTUpJVEdldHRlcihpbnQgcmVzdWx0T3BlcmFuZCwgY29uc3QgR2V0QnlJ
ZFZhcmlhbnQmIHZhcmlhbnQsIE5vZGUqIHRoaXNOb2RlLCBTcGVjdWxhdGVkVHlwZSkKK3sKKyAg
ICBpZiAoIXZhcmlhbnQuZG9tSklUKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIERP
TUpJVDo6R2V0dGVyU2V0dGVyKiBkb21KSVQgPSB2YXJpYW50LmRvbUpJVCgpOworICAgIGFkZFRv
R3JhcGgoQ2hlY2tET00sIE9wSW5mbyhkb21KSVQpLCBPcEluZm8oZG9tSklULT50aGlzQ2xhc3NJ
bmZvKCkpLCB0aGlzTm9kZSk7CisgICAgTm9kZSogZ2xvYmFsT2JqZWN0ID0gYWRkVG9HcmFwaChH
ZXRHbG9iYWxPYmplY3QsIHRoaXNOb2RlKTsKKyAgICBhZGRWYXJBcmdDaGlsZChnbG9iYWxPYmpl
Y3QpOworICAgIGFkZFZhckFyZ0NoaWxkKHRoaXNOb2RlKTsKKyAgICBzZXQoVmlydHVhbFJlZ2lz
dGVyKHJlc3VsdE9wZXJhbmQpLCBhZGRUb0dyYXBoKE5vZGU6OlZhckFyZywgQ2FsbERPTSwgT3BJ
bmZvKGRvbUpJVCksIE9wSW5mbygwKSkpOworICAgIHJldHVybiB0cnVlOworfQorCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBDaGVja3NGdW5jdG9yPgogYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlVHlw
ZWRBcnJheUNvbnN0cnVjdG9yKAogICAgIGludCByZXN1bHRPcGVyYW5kLCBJbnRlcm5hbEZ1bmN0
aW9uKiBmdW5jdGlvbiwgaW50IHJlZ2lzdGVyT2Zmc2V0LApAQCAtMzMyNCw2ICszMzM5LDE0IEBA
IHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQoCiAgICAgICAgIG1fZ3JhcGguY29t
cGlsYXRpb24oKS0+bm90aWNlSW5saW5lZEdldEJ5SWQoKTsKIAogICAgIEFTU0VSVCh0eXBlID09
IEFjY2Vzc1R5cGU6OkdldCB8fCAhdmFyaWFudC5jYWxsTGlua1N0YXR1cygpKTsKKworICAgIGlm
ICh2YXJpYW50LmRvbUpJVCgpKSB7CisgICAgICAgIGlmIChoYW5kbGVET01KSVRHZXR0ZXIoZGVz
dGluYXRpb25PcGVyYW5kLCB2YXJpYW50LCBiYXNlLCBwcmVkaWN0aW9uKSkgeworICAgICAgICAg
ICAgYWRkVG9HcmFwaChQaGFudG9tLCBsb2FkZWRWYWx1ZSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoIXZhcmlhbnQuY2FsbExpbmtTdGF0dXMoKSAm
JiB2YXJpYW50LmludHJpbnNpYygpID09IE5vSW50cmluc2ljKSB7CiAgICAgICAgIHNldChWaXJ0
dWFsUmVnaXN0ZXIoZGVzdGluYXRpb25PcGVyYW5kKSwgbG9hZGVkVmFsdWUpOwogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJp
emUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IDg3
ZDhiNTJkOGNkNzlmZDQ5MjRjODU4MjE0MjYxNmU3MmRhNzIzYzQuLmZlOWNlOThlYmI2ODM3ZjRk
NTk3NWFmYjhiZmUwMzY3Yzg0MWM3NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oCkBAIC04ODMsNiArODgzLDE1IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1
CiAgICAgICAgIGRlZihIZWFwTG9jYXRpb24oQnV0dGVyZmx5TG9jLCBKU09iamVjdF9idXR0ZXJm
bHksIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUobm9kZSkpOwogICAgICAgICByZXR1cm47CiAK
KyAgICBjYXNlIENoZWNrRE9NOgorICAgICAgICBkZWYoUHVyZVZhbHVlKENoZWNrRE9NLCBBZGph
Y2VuY3lMaXN0KEFkamFjZW5jeUxpc3Q6OkZpeGVkLCBub2RlLT5jaGlsZDEoKSksIG5vZGUtPmNs
YXNzSW5mbygpKSk7CisgICAgICAgIHJldHVybjsKKworICAgIGNhc2UgQ2FsbERPTToKKyAgICAg
ICAgcmVhZChXb3JsZCk7CisgICAgICAgIHdyaXRlKEhlYXApOworICAgICAgICByZXR1cm47CisK
ICAgICBjYXNlIEFycmF5aWZ5OgogICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVyZToKICAgICAg
ICAgcmVhZChKU0NlbGxfc3RydWN0dXJlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NvbW1vbkRhdGEuaAppbmRleCBlNThhMmViZTZiNTlhZjYyZTYxYjU1ZmI3ZDg0M2Y4MDA3ZGVj
ODZiLi41ZWRkMzNlOTQ2YTlkYTI0OTZiOTI0MDY4MTNmMTUxNDYwMDg0ZjYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEuaApAQCAtNzgsNyArNzgsNyBAQCBjbGFz
cyBDb21tb25EYXRhIHsKICAgICB7IH0KICAgICAKICAgICB2b2lkIG5vdGlmeUNvbXBpbGluZ1N0
cnVjdHVyZVRyYW5zaXRpb24oUGxhbiYsIENvZGVCbG9jayosIE5vZGUqKTsKLSAgICBDYWxsU2l0
ZUluZGV4IGFkZENvZGVPcmlnaW4oQ29kZU9yaWdpbik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUg
Q2FsbFNpdGVJbmRleCBhZGRDb2RlT3JpZ2luKENvZGVPcmlnaW4pOwogICAgIENhbGxTaXRlSW5k
ZXggYWRkVW5pcXVlQ2FsbFNpdGVJbmRleChDb2RlT3JpZ2luKTsKICAgICBDYWxsU2l0ZUluZGV4
IGxhc3RDYWxsU2l0ZSgpIGNvbnN0OwogICAgIHZvaWQgcmVtb3ZlQ2FsbFNpdGVJbmRleChDYWxs
U2l0ZUluZGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29u
c3RhbnRGb2xkaW5nUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5jcHAKaW5kZXggNWQ2MzI5ZDI4ZjVmZjNiZjY1YTFjZmNhNDdhYTY3
NzQxNjkzNWUyZi4uZDliYzdlNzA5YTExY2Q0ZTNkMTliZWI1ZWI4ZTIwMDFiZjNhMGYwMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQ
aGFzZS5jcHAKQEAgLTE1OCw2ICsxNTgsMjggQEAgY2xhc3MgQ29uc3RhbnRGb2xkaW5nUGhhc2Ug
OiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2FzZSBDaGVja0RPTTogeworICAgICAg
ICAgICAgICAgIEpTVmFsdWUgY29uc3RhbnQgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQx
KCkpLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgaWYgKGNvbnN0YW50KSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChjb25zdGFudC5pc0NlbGwoKSAmJiBjb25zdGFudC5hc0NlbGwoKS0+aW5o
ZXJpdHMobm9kZS0+Y2xhc3NJbmZvKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2lu
dGVycHJldGVyLmV4ZWN1dGUoaW5kZXhJbkJsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5vZGUtPnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxpbWluYXRlZCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIEFic3RyYWN0VmFsdWUmIHZh
bHVlID0gbV9zdGF0ZS5mb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKKworICAgICAgICAgICAgICAg
IGlmICh2YWx1ZS5tX3N0cnVjdHVyZS5pc1N1YkNsYXNzT2Yobm9kZS0+Y2xhc3NJbmZvKCkpKSB7
CisgICAgICAgICAgICAgICAgICAgIG1faW50ZXJwcmV0ZXIuZXhlY3V0ZShpbmRleEluQmxvY2sp
OworICAgICAgICAgICAgICAgICAgICBub2RlLT5yZW1vdmUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgZWxpbWluYXRlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGNhc2UgR2V0SW5kZXhlZFByb3BlcnR5U3RvcmFnZTog
ewogICAgICAgICAgICAgICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB2aWV3ID0gbV9ncmFwaC50cnlH
ZXRGb2xkYWJsZVZpZXcoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwM2ZlMjc3MjcyN2I2ZWFhNzRl
ZWI2MjM2NzI1OWNmMGFkOTJmNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaApAQCAtMCwwICsxLDUzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworI2luY2x1ZGUgIkRPTUpJVFBhdGNocG9pbnRQYXJh
bXMuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgeworCitjbGFzcyBET01KSVRQ
YXRjaHBvaW50UGFyYW1zIDogcHVibGljIERPTUpJVDo6UGF0Y2hwb2ludFBhcmFtcyB7CitwdWJs
aWM6CisgICAgRE9NSklUUGF0Y2hwb2ludFBhcmFtcyhTcGVjdWxhdGl2ZUpJVCYgaml0LCBWZWN0
b3I8UmVnPiYmIHJlZ3MsIFZlY3RvcjxHUFJSZWc+JiYgZ3BTY3JhdGNoLCBWZWN0b3I8RlBSUmVn
PiYmIGZwU2NyYXRjaCkKKyAgICAgICAgOiBET01KSVQ6OlBhdGNocG9pbnRQYXJhbXMoV1RGTW92
ZShyZWdzKSwgV1RGTW92ZShncFNjcmF0Y2gpLCBXVEZNb3ZlKGZwU2NyYXRjaCkpCisgICAgICAg
ICwgbV9qaXQoaml0KQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBhZGRTbG93
UGF0aENhbGxJbXBsKENDYWxsSGVscGVycyYsIHN0ZDo6dW5pcXVlX3B0cjxET01KSVQ6OlNsb3dQ
YXRoR2VuZXJhdG9yPiBnZW5lcmF0b3IpIGNvbnN0IG92ZXJyaWRlCisgICAgeworICAgICAgICBn
ZW5lcmF0b3ItPmFkZChtX2ppdCk7CisgICAgfQorCisgICAgU3BlY3VsYXRpdmVKSVQmIG1faml0
OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisjZW5kaWYgLy8gRU5BQkxFKERG
R19KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggMGFkNTRm
ZWUyZmYzOWQ4ODU3MGIxNzc2NzgxZjI0MTk2MDlmZGNkYS4uNTFjODAyMzMyODMyYTE1YTc5OWU0
MGM2YTRhYTFkYTliOTg4NTg5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcApAQCAtMTE2LDYgKzExNiw4IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSog
bm9kZSkKICAgICBjYXNlIENoZWNrU3RydWN0dXJlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToK
ICAgICBjYXNlIEdldEJ1dHRlcmZseToKKyAgICBjYXNlIENhbGxET006CisgICAgY2FzZSBDaGVj
a0RPTToKICAgICBjYXNlIENoZWNrQXJyYXk6CiAgICAgY2FzZSBHZXRTY29wZToKICAgICBjYXNl
IFNraXBTY29wZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
CmluZGV4IDVhZDZhZmQ0N2I0ODI1MDM5MDI0Mzc1OTgxOTg2MzZkZmFhMTE4MDAuLjcxYjBlMTY0
ZWZiM2E3MGJjNGRjNDVhOWI2ODAwM2U2ZmI2OWFhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTYwMyw2ICsxNjAzLDE1IEBAIGNsYXNzIEZp
eHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNl
Pihub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIENo
ZWNrRE9NOgorICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIENhbGxET006CisgICAgICAgICAgICBm
aXhFZGdlPEtub3duQ2VsbFVzZT4obV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSk7IC8vIEds
b2JhbE9iamVjdC4KKyAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVzZT4obV9ncmFwaC52YXJBcmdD
aGlsZChub2RlLCAxKSk7IC8vIERPTS4KKyAgICAgICAgICAgIGJyZWFrOworCiAjaWYgIUFTU0VS
VF9ESVNBQkxFRAogICAgICAgICAvLyBIYXZlIHRoZXNlIG5vLW9wIGNhc2VzIGhlcmUgdG8gZW5z
dXJlIHRoYXQgbm9ib2R5IGZvcmdldHMgdG8gYWRkIGhhbmRsZXJzIGZvciBuZXcgb3Bjb2Rlcy4K
ICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29tcGlsZXIuaAppbmRleCBmMjMzNDg4NTc3ZWY5MTNmODY5ZWFjMDMzNmJjODZlY2M2NGVi
YTU5Li5mMzU3OGJhNWY1M2ZlYmI1MGQyODkwNmMwYzU3MTQwNzg0ZWEwZmExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCkBAIC0xNjYsNyArMTY2LDcgQEAg
Y2xhc3MgSklUQ29tcGlsZXIgOiBwdWJsaWMgQ0NhbGxIZWxwZXJzIHsKICAgICAgICAgcmV0dXJu
IGZ1bmN0aW9uQ2FsbDsKICAgICB9CiAgICAgCi0gICAgdm9pZCBleGNlcHRpb25DaGVjaygpOwor
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZXhjZXB0aW9uQ2hlY2soKTsKIAogICAgIHZvaWQg
ZXhjZXB0aW9uQ2hlY2tXaXRoQ2FsbEZyYW1lUm9sbGJhY2soKQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggNGJhZTlhZTk2MzYwOWMzZjM3MzA2YjE0ZjU3MmYyYjRm
YWM1NzQ0Yi4uYmI5MWEzMjRiMzFjNTYzMTQ0YThhNzRhYWNkZTNhZGFhNzczODJhOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTU4LDYgKzU4LDEwIEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCituYW1lc3BhY2UgRE9NSklUIHsKK2NsYXNzIEdldHRlclNldHRlcjsKK30KKwog
bmFtZXNwYWNlIFByb2ZpbGVyIHsKIGNsYXNzIEV4ZWN1dGlvbkNvdW50ZXI7CiB9CkBAIC0yMzA4
LDcgKzIzMTIsMjcgQEAgc3RydWN0IE5vZGUgewogICAgICAgICBBU1NFUlQoaGFzQmFzaWNCbG9j
a0xvY2F0aW9uKCkpOwogICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8QmFzaWNCbG9ja0xvY2F0
aW9uKj4oKTsKICAgICB9Ci0gICAgCisKKyAgICBib29sIGhhc0RPTUpJVEdldHRlclNldHRlcigp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gb3AoKSA9PSBDaGVja0RPTSB8fCBvcCgpID09
IENhbGxET007CisgICAgfQorCisgICAgRE9NSklUOjpHZXR0ZXJTZXR0ZXIqIGRvbUpJVCgpCisg
ICAgeworICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigp
OworICAgIH0KKworICAgIGJvb2wgaGFzQ2xhc3NJbmZvKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBvcCgpID09IENoZWNrRE9NOworICAgIH0KKworICAgIGNvbnN0IENsYXNzSW5mbyog
Y2xhc3NJbmZvKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX29wSW5mbzIuYXM8Y29uc3QgQ2xh
c3NJbmZvKj4oKTsKKyAgICB9CisKICAgICBOb2RlKiByZXBsYWNlbWVudCgpIGNvbnN0CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9taXNjLnJlcGxhY2VtZW50OwpAQCAtMjM4OCw2ICsyNDEyLDEx
IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgICAgIHUuaW50NjQgPSAwOwogICAgICAgICAgICAg
dS5wb2ludGVyID0gcG9pbnRlcjsKICAgICAgICAgfQorICAgICAgICBPcEluZm9XcmFwcGVyKGNv
bnN0IHZvaWQqIGNvbnN0UG9pbnRlcikKKyAgICAgICAgeworICAgICAgICAgICAgdS5pbnQ2NCA9
IDA7CisgICAgICAgICAgICB1LmNvbnN0UG9pbnRlciA9IGNvbnN0UG9pbnRlcjsKKyAgICAgICAg
fQogICAgICAgICBPcEluZm9XcmFwcGVyJiBvcGVyYXRvcj0odWludDMyX3QgaW50MzIpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIHUuaW50NjQgPSAwOwpAQCAtMjQxMSwxMiArMjQ0MCwyMyBAQCBz
dHJ1Y3QgTm9kZSB7CiAgICAgICAgICAgICB1LnBvaW50ZXIgPSBwb2ludGVyOwogICAgICAgICAg
ICAgcmV0dXJuICp0aGlzOwogICAgICAgICB9CisgICAgICAgIE9wSW5mb1dyYXBwZXImIG9wZXJh
dG9yPShjb25zdCB2b2lkKiBjb25zdFBvaW50ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHUu
aW50NjQgPSAwOworICAgICAgICAgICAgdS5jb25zdFBvaW50ZXIgPSBjb25zdFBvaW50ZXI7Cisg
ICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KICAgICAgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci0gICAgICAgIEFMV0FZU19JTkxJTkUgYXV0byBhcygpIGNvbnN0IC0+IHR5cGVu
YW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfcG9pbnRlcjxUPjo6dmFsdWUsIFQ+Ojp0eXBlCisg
ICAgICAgIEFMV0FZU19JTkxJTkUgYXV0byBhcygpIGNvbnN0IC0+IHR5cGVuYW1lIHN0ZDo6ZW5h
YmxlX2lmPHN0ZDo6aXNfcG9pbnRlcjxUPjo6dmFsdWUgJiYgIXN0ZDo6aXNfY29uc3Q8dHlwZW5h
bWUgc3RkOjpyZW1vdmVfcG9pbnRlcjxUPjo6dHlwZT46OnZhbHVlLCBUPjo6dHlwZQogICAgICAg
ICB7CiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VD4odS5wb2ludGVyKTsKICAgICAg
ICAgfQogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICAgICAgQUxXQVlTX0lOTElO
RSBhdXRvIGFzKCkgY29uc3QgLT4gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19wb2lu
dGVyPFQ+Ojp2YWx1ZSAmJiBzdGQ6OmlzX2NvbnN0PHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3BvaW50
ZXI8VD46OnR5cGU+Ojp2YWx1ZSwgVD46OnR5cGUKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFQ+KHUuY29uc3RQb2ludGVyKTsKKyAgICAgICAgfQorICAgICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgICAgICAgQUxXQVlTX0lOTElORSBhdXRvIGFzKCkgY29u
c3QgLT4gdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUg
JiYgc2l6ZW9mKFQpID09IDQsIFQ+Ojp0eXBlCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVy
biB1LmludDMyOwpAQCAtMjQzMCw2ICsyNDcwLDcgQEAgc3RydWN0IE5vZGUgewogICAgICAgICAg
ICAgdWludDMyX3QgaW50MzI7CiAgICAgICAgICAgICB1aW50NjRfdCBpbnQ2NDsKICAgICAgICAg
ICAgIHZvaWQqIHBvaW50ZXI7CisgICAgICAgICAgICBjb25zdCB2b2lkKiBjb25zdFBvaW50ZXI7
CiAgICAgICAgIH0gdTsKICAgICB9OwogICAgIE9wSW5mb1dyYXBwZXIgbV9vcEluZm87CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggOGI0ZDlmMGMzMDlhN2MxODlk
NjUyMjc2OWIwN2Q1Mjk0ZDY2YzRmZC4uODNiMGY1OWMwZDA0OTdiNThhMzNmYmZhOGVhNThiMjU0
OTdlM2RhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtMzk0
LDYgKzM5NCwxMCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8o
R2V0TWFwQnVja2V0LCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhMb2FkRnJvbUpTTWFwQnVj
a2V0LCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhJc05vbkVtcHR5TWFwQnVja2V0LCBOb2Rl
UmVzdWx0Qm9vbGVhbikgXAorICAgIFwKKyAgICAvKiBOb2RlcyBmb3IgRE9NIEpJVCAqL1wKKyAg
ICBtYWNybyhDaGVja0RPTSwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKENhbGxET00s
IE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFyQXJncykgXAogCiAv
LyBUaGlzIGVudW0gZ2VuZXJhdGVzIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGlkIGZvciBh
bGwgTm9kZSB0eXBlcywKIC8vIGFuZCBpcyB1c2VkIGJ5IHRoZSBzdWJzZXF1ZW50IGVudW0gdG8g
ZmlsbCBvdXQgdGhlIGlkIChhcyBhY2Nlc3NlZCB2aWEgdGhlIE5vZGVJZE1hc2spLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcEluZm8uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT3BJbmZvLmgKaW5kZXggZDQ3YTk3MDljMjliNTJkM2I1ZDhlZjRm
MzNlMDliNWQ3ZTVjYmRlNy4uNTdmMzMyOTdlZTc0ZTFiN2U0YmE1Zjg5Mzg2N2Y5ZWM0NzA2ZDEx
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcEluZm8uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wSW5mby5oCkBAIC00Myw2ICs0Myw3IEBA
IHN0cnVjdCBPcEluZm8gewogICAgIGV4cGxpY2l0IE9wSW5mbyh1aW50cHRyX3QgdmFsdWUpIDog
bV92YWx1ZShzdGF0aWNfY2FzdDx1aW50NjRfdD4odmFsdWUpKSB7IH0KICNlbmRpZgogICAgIGV4
cGxpY2l0IE9wSW5mbyh2b2lkKiB2YWx1ZSkgOiBtX3ZhbHVlKHN0YXRpY19jYXN0PHVpbnQ2NF90
PihyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4odmFsdWUpKSkgeyB9CisgICAgZXhwbGljaXQg
T3BJbmZvKGNvbnN0IHZvaWQqIHZhbHVlKSA6IG1fdmFsdWUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pih2YWx1ZSkpKSB7IH0KICAgICB1aW50NjRfdCBt
X3ZhbHVlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBiYWZkZjkwNmViZjZmNzMw
N2NhZjQwZjZiODVjMTFiMDExOWUxZjIyLi44ZDY2NDJkNDEwMjY3NGQwZGM2NTllMmJkMWJjZWI0
NjY2MzAwMGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtODE5LDYgKzgxOSwxMyBAQCBj
bGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogCisgICAgICAgIGNhc2UgQ2FsbERPTToKKyAgICAgICAg
ICAgIHNldFByZWRpY3Rpb24obV9jdXJyZW50Tm9kZS0+ZG9tSklUKCktPnByZWRpY3Rpb24oKSk7
CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIENoZWNrRE9NOgorICAgICAgICAg
ICAgYnJlYWs7CisKICAgICAgICAgY2FzZSBDYWxsT2JqZWN0Q29uc3RydWN0b3I6IHsKICAgICAg
ICAgICAgIHNldFByZWRpY3Rpb24oU3BlY09iamVjdCk7CiAgICAgICAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggYmRkZDQ2
NjAxN2U5Zjg3YjZjMDM1NDQwY2Q4YWYxNDdiODY1ZGY0Zi4uMGRiNTQ1MWY4MWNiMDU1MDg5ZWM4
OWU4MGNiZGY2OTA1MGY3YjJiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
YWZlVG9FeGVjdXRlLmgKQEAgLTIxNiw2ICsyMTYsOCBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJz
dHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2Fz
ZSBDaGVja1N0cnVjdHVyZToKICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBHZXRC
dXR0ZXJmbHk6CisgICAgY2FzZSBDYWxsRE9NOgorICAgIGNhc2UgQ2hlY2tET006CiAgICAgY2Fz
ZSBDaGVja0FycmF5OgogICAgIGNhc2UgQXJyYXlpZnk6CiAgICAgY2FzZSBBcnJheWlmeVRvU3Ry
dWN0dXJlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0
aEdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVy
YXRvci5oCmluZGV4IDYwODFjNTdiMjg2MThlNDNkOWVhMjhkNTU2MTAxNTgyYTYyYzU4Y2EuLjA2
YjJhOWJkMDVjNzNjMzhjY2UxNjRjMDcwYWY5M2I5Yjg0ODBhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgKQEAgLTM0LDcgKzM0LDcg
QEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCi1jbGFzcyBTbG93UGF0aEdl
bmVyYXRvciB7CitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBTbG93UGF0aEdlbmVyYXRvciB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgU2xvd1BhdGhHZW5lcmF0
b3IoU3BlY3VsYXRpdmVKSVQqIGppdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggMTBlZmI3MjA0M2YxYWM4NzcwMWFiZDg2ZjllY2Nh
MWFkZjhkMzdiMS4uZjFjMTFiY2U3MDM4YzA1YmExNzI5OTVhNTQ5YzYzYmY1NzU3ZTUwZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAg
LTM0LDEwICszNCwxMiBAQAogI2luY2x1ZGUgIkRGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRo
R2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiREZHQ2FsbENyZWF0ZURpcmVjdEFyZ3VtZW50c1Nsb3dQ
YXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiREZHQ2FwYWJpbGl0aWVzLmgiCisjaW5jbHVkZSAi
REZHRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oIgogI2luY2x1ZGUgIkRGR01heUV4aXQuaCIKICNp
bmNsdWRlICJERkdPU1JFeGl0RnV6ei5oIgogI2luY2x1ZGUgIkRGR1NhbmVTdHJpbmdHZXRCeVZh
bFNsb3dQYXRoR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiREZHU2xvd1BhdGhHZW5lcmF0b3IuaCIK
KyNpbmNsdWRlICJET01KSVRQYXRjaHBvaW50LmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRz
LmgiCiAjaW5jbHVkZSAiSklUQWRkR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiSklUQml0QW5kR2Vu
ZXJhdG9yLmgiCkBAIC03MDU3LDYgKzcwNTksNzYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldEJ1dHRlcmZseShOb2RlKiBub2RlKQogICAgIHN0b3JhZ2VSZXN1bHQocmVzdWx0R1BS
LCBub2RlKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNhbGxET00oTm9kZSog
bm9kZSkKK3sKKyAgICBSZWY8RE9NSklUOjpQYXRjaHBvaW50PiBwYXRjaHBvaW50ID0gbm9kZS0+
ZG9tSklUKCktPmNhbGxET00oKTsKKworICAgIFZlY3RvcjxHUFJSZWc+IGdwU2NyYXRjaDsKKyAg
ICBWZWN0b3I8RlBSUmVnPiBmcFNjcmF0Y2g7CisgICAgVmVjdG9yPFJlZz4gcmVnczsKKworICAg
IC8vIEZJWE1FOiBwYXRjaHBvaW50IHNob3VsZCBoYXZlIGEgd2F5IHRvIHRlbGwgdGhpcyBjYW4g
cmV1c2UgImJhc2UiIHJlZ2lzdGVyLgorICAgIC8vIFRlYWNoaW5nIERGRyBhYm91dCBET01KSVQ6
OlBhdGNocG9pbnQgY2xvYmJlciBpbmZvcm1hdGlvbiBpcyBuaWNlLgorICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGdsb2JhbE9iamVjdCh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5v
ZGUsIDApKTsKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBo
KCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3Vs
dCh0aGlzKTsKKworICAgIHJlZ3MuYXBwZW5kKHJlc3VsdC5yZWdzKCkuZ3ByKCkpOworICAgIHJl
Z3MuYXBwZW5kKGdsb2JhbE9iamVjdC5ncHIoKSk7CisgICAgcmVncy5hcHBlbmQoYmFzZS5ncHIo
KSk7CisgICAgcmVncy5hcHBlbmQoc3RhdGljX2Nhc3Q8R1BSUmVnPihHUFJJbmZvOjp0YWdNYXNr
UmVnaXN0ZXIpKTsKKyAgICByZWdzLmFwcGVuZChzdGF0aWNfY2FzdDxHUFJSZWc+KEdQUkluZm86
OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOworCisgICAgVmVjdG9yPEdQUlRlbXBvcmFyeT4gZ3BU
ZW1wcmFyaWVzOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXRjaHBvaW50LT5udW1H
UFNjcmF0Y2hSZWdpc3RlcnM7ICsraSkgeworICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcG9yYXJ5
KHRoaXMpOworICAgICAgICBncFNjcmF0Y2guYXBwZW5kKHRlbXBvcmFyeS5ncHIoKSk7CisgICAg
ICAgIGdwVGVtcHJhcmllcy5hcHBlbmQoV1RGTW92ZSh0ZW1wb3JhcnkpKTsKKyAgICB9CisKKyAg
ICBWZWN0b3I8RlBSVGVtcG9yYXJ5PiBmcFRlbXByYXJpZXM7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVyczsgKytpKSB7CisgICAg
ICAgIEZQUlRlbXBvcmFyeSB0ZW1wb3JhcnkodGhpcyk7CisgICAgICAgIGZwU2NyYXRjaC5hcHBl
bmQodGVtcG9yYXJ5LmZwcigpKTsKKyAgICAgICAgZnBUZW1wcmFyaWVzLmFwcGVuZChXVEZNb3Zl
KHRlbXBvcmFyeSkpOworICAgIH0KKworICAgIERGRzo6RE9NSklUUGF0Y2hwb2ludFBhcmFtcyBw
YXJhbXMoKnRoaXMsIFdURk1vdmUocmVncyksIFdURk1vdmUoZ3BTY3JhdGNoKSwgV1RGTW92ZShm
cFNjcmF0Y2gpKTsKKyAgICBwYXRjaHBvaW50LT5nZW5lcmF0b3IoKS0+cnVuKG1faml0LCBwYXJh
bXMpOworICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LnJlZ3MoKSwgbm9kZSk7Cit9CisKK3ZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVDaGVja0RPTShOb2RlKiBub2RlKQoreworICAgIFJlZjxE
T01KSVQ6OlBhdGNocG9pbnQ+IHBhdGNocG9pbnQgPSBub2RlLT5kb21KSVQoKS0+Y2hlY2tET00o
KTsKKworICAgIFZlY3RvcjxHUFJSZWc+IGdwU2NyYXRjaDsKKyAgICBWZWN0b3I8RlBSUmVnPiBm
cFNjcmF0Y2g7CisgICAgVmVjdG9yPFJlZz4gcmVnczsKKworICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIHJlZ3MuYXBwZW5kKGJhc2UuZ3By
KCkpOworCisgICAgVmVjdG9yPEdQUlRlbXBvcmFyeT4gZ3BUZW1wcmFyaWVzOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7ICsr
aSkgeworICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcG9yYXJ5KHRoaXMpOworICAgICAgICBncFNj
cmF0Y2guYXBwZW5kKHRlbXBvcmFyeS5ncHIoKSk7CisgICAgICAgIGdwVGVtcHJhcmllcy5hcHBl
bmQoV1RGTW92ZSh0ZW1wb3JhcnkpKTsKKyAgICB9CisKKyAgICBWZWN0b3I8RlBSVGVtcG9yYXJ5
PiBmcFRlbXByYXJpZXM7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBhdGNocG9pbnQt
Pm51bUdQU2NyYXRjaFJlZ2lzdGVyczsgKytpKSB7CisgICAgICAgIEZQUlRlbXBvcmFyeSB0ZW1w
b3JhcnkodGhpcyk7CisgICAgICAgIGZwU2NyYXRjaC5hcHBlbmQodGVtcG9yYXJ5LmZwcigpKTsK
KyAgICAgICAgZnBUZW1wcmFyaWVzLmFwcGVuZChXVEZNb3ZlKHRlbXBvcmFyeSkpOworICAgIH0K
KworICAgIERGRzo6RE9NSklUUGF0Y2hwb2ludFBhcmFtcyBwYXJhbXMoKnRoaXMsIFdURk1vdmUo
cmVncyksIFdURk1vdmUoZ3BTY3JhdGNoKSwgV1RGTW92ZShmcFNjcmF0Y2gpKTsKKyAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0IGZhaWx1cmVDYXNlcyA9IHBhdGNocG9pbnQtPmdlbmVyYXRvcigp
LT5ydW4obV9qaXQsIHBhcmFtcyk7CisgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCBKU1Zh
bHVlUmVncyhiYXNlLmdwcigpKSwgbm9kZS0+Y2hpbGQxKCksIGZhaWx1cmVDYXNlcyk7CisgICAg
bm9SZXN1bHQobm9kZSk7Cit9CisKIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6dGVtcG9yYXJ5UmVn
aXN0ZXJGb3JQdXRCeVZhbChHUFJUZW1wb3JhcnkmIHRlbXBvcmFyeSwgQXJyYXlNb2RlIGFycmF5
TW9kZSkKIHsKICAgICBpZiAoIXB1dEJ5VmFsV2lsbE5lZWRFeHRyYVJlZ2lzdGVyKGFycmF5TW9k
ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5k
ZXggY2E5NzhmNmI3Mzk1MTM5NTAxNTEwZDA1ODI4YTAyOTgyMmY4NWExYi4uZWJjNGZlYWE3ODk3
YzA1MjRlNTJmYTNhMTVlODZjMDQyODU1YzE0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMzEyLDcgKzMxMiw3IEBAIGNsYXNzIFNwZWN1
bGF0aXZlSklUIHsKICAgICBHUFJSZWcgZmlsbFNwZWN1bGF0ZUJvb2xlYW4oRWRnZSk7CiAgICAg
R2VuZXJhdGVkT3BlcmFuZFR5cGUgY2hlY2tHZW5lcmF0ZWRUeXBlRm9yVG9JbnQzMihOb2RlKik7
CiAKLSAgICB2b2lkIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0
aEdlbmVyYXRvcj4pOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgYWRkU2xvd1BhdGhHZW5l
cmF0b3Ioc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPik7CiAgICAgdm9pZCBhZGRT
bG93UGF0aEdlbmVyYXRvcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOwogICAgIHZvaWQgcnVuU2xv
d1BhdGhHZW5lcmF0b3JzKFBDVG9Db2RlT3JpZ2luTWFwQnVpbGRlciYpOwogICAgIApAQCAtMzMw
LDEwICszMzAsMTAgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIC8vIHRoZXkgc3BpbGwg
YWxsIGxpdmUgdmFsdWVzIHRvIHRoZSBhcHByb3ByaWF0ZQogICAgIC8vIHNsb3RzIGluIHRoZSBK
U1N0YWNrIHdpdGhvdXQgY2hhbmdpbmcgYW55IHN0YXRlCiAgICAgLy8gaW4gdGhlIEdlbmVyYXRp
b25JbmZvLgotICAgIFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4gc2lsZW50U2F2ZVBsYW5Gb3JHUFIo
VmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUsIEdQUlJlZyBzb3VyY2UpOwotICAgIFNpbGVudFJlZ2lz
dGVyU2F2ZVBsYW4gc2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUs
IEZQUlJlZyBzb3VyY2UpOwotICAgIHZvaWQgc2lsZW50U3BpbGwoY29uc3QgU2lsZW50UmVnaXN0
ZXJTYXZlUGxhbiYpOwotICAgIHZvaWQgc2lsZW50RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNh
dmVQbGFuJiwgR1BSUmVnIGNhblRyYW1wbGUpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFNpbGVu
dFJlZ2lzdGVyU2F2ZVBsYW4gc2lsZW50U2F2ZVBsYW5Gb3JHUFIoVmlydHVhbFJlZ2lzdGVyIHNw
aWxsTWUsIEdQUlJlZyBzb3VyY2UpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFNpbGVudFJlZ2lz
dGVyU2F2ZVBsYW4gc2lsZW50U2F2ZVBsYW5Gb3JGUFIoVmlydHVhbFJlZ2lzdGVyIHNwaWxsTWUs
IEZQUlJlZyBzb3VyY2UpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2lsZW50U3BpbGwo
Y29uc3QgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgc2lsZW50RmlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFuJiwgR1BSUmVnIGNhblRy
YW1wbGUpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+CiAgICAgdm9p
ZCBzaWxlbnRTcGlsbChjb25zdCBDb2xsZWN0aW9uVHlwZSYgc2F2ZVBsYW5zKQpAQCAtMjQ1OSw2
ICsyNDU5LDggQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIHZvaWQgY29tcGlsZUFsbG9j
YXRlUHJvcGVydHlTdG9yYWdlKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVSZWFsbG9jYXRlUHJv
cGVydHlTdG9yYWdlKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVHZXRCdXR0ZXJmbHkoTm9kZSop
OworICAgIHZvaWQgY29tcGlsZUNhbGxET00oTm9kZSopOworICAgIHZvaWQgY29tcGlsZUNoZWNr
RE9NKE5vZGUqKTsKICAgICAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEJhc2VPcGVyYW5kVHlwZSwgdHlwZW5hbWUgUHJvcGVydHlPcGVyYW5kVHlwZSwgdHlw
ZW5hbWUgVmFsdWVPcGVyYW5kVHlwZSwgdHlwZW5hbWUgVGFnVHlwZT4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDNh
MTBhMTBkN2I0MjI1NDQwOWRkMjMyOWNjMGYyMTdmOTY5OTVkM2UuLjZhMmUwYWEwMDIwM2UwOThl
YWI2NzE0Mjc2MDQ0OWJhN2EyODZhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNTQyMCw2ICs1NDIwLDE0IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7
CiAgICAgfQogCisgICAgY2FzZSBDYWxsRE9NOgorICAgICAgICBjb21waWxlQ2FsbERPTShub2Rl
KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIENoZWNrRE9NOgorICAgICAgICBjb21waWxl
Q2hlY2tET00obm9kZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBVbnJlYWNoYWJsZToK
ICAgICAgICAgdW5yZWFjaGFibGUobm9kZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggZjVlYTc0
YjJlNzEwNTk3NWM3ZmIwNzEzNmI3MTNiMWFjMTU2N2I3Yy4uODk3YTA4Y2U3YWY3Zjg0N2FjODEx
Njg0MTQ5MjViMzlmYjQyMjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC01NDM2LDYgKzU0MzYsMTQgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBjb21waWxlTWF0ZXJpYWxp
emVOZXdPYmplY3Qobm9kZSk7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBDYWxsRE9NOgor
ICAgICAgICBjb21waWxlQ2FsbERPTShub2RlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNl
IENoZWNrRE9NOgorICAgICAgICBjb21waWxlQ2hlY2tET00obm9kZSk7CisgICAgICAgIGJyZWFr
OworCiAjaWYgRU5BQkxFKEZUTF9KSVQpICAgICAgICAKICAgICBjYXNlIENoZWNrVGllclVwSW5M
b29wOiB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGNhbGxUaWVyVXAgPSBtX2ppdC5i
cmFuY2hBZGQzMigKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Ry
dWN0dXJlQWJzdHJhY3RWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0
cnVjdHVyZUFic3RyYWN0VmFsdWUuY3BwCmluZGV4IDdhODIzZWU4NmNhOTNhZGFiNDYzMzRkNWRl
ZjIyNjE2ZTc3MmIwMzguLjc0OTI5ZThkOTI3NTA5ZmNlYjUyNDgzYjI4NzY2MDQ5NTcxZWQ5MjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQWJzdHJh
Y3RWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVB
YnN0cmFjdFZhbHVlLmNwcApAQCAtMjU4LDYgKzI1OCwxNSBAQCB2b2lkIFN0cnVjdHVyZUFic3Ry
YWN0VmFsdWU6OmZpbHRlclNsb3coU3BlY3VsYXRlZFR5cGUgdHlwZSkKICAgICAgICAgfSk7CiB9
CiAKK3ZvaWQgU3RydWN0dXJlQWJzdHJhY3RWYWx1ZTo6ZmlsdGVyQ2xhc3NJbmZvU2xvdyhjb25z
dCBDbGFzc0luZm8qIGNsYXNzSW5mbykKK3sKKyAgICBBU1NFUlQoIWlzVG9wKCkpOworICAgIG1f
c2V0LmdlbmVyaWNGaWx0ZXIoCisgICAgICAgIFsmXSAoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpIHsK
KyAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT5pc1N1YkNsYXNzT2Yo
Y2xhc3NJbmZvKTsKKyAgICAgICAgfSk7Cit9CisKIGJvb2wgU3RydWN0dXJlQWJzdHJhY3RWYWx1
ZTo6Y29udGFpbnMoU3RydWN0dXJlKiBzdHJ1Y3R1cmUpIGNvbnN0CiB7CiAgICAgaWYgKGlzSW5m
aW5pdGUoKSkKQEAgLTMxOSw2ICszMjgsMTkgQEAgYm9vbCBTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVl
OjpvdmVybGFwcyhjb25zdCBTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlJiBvdGhlcikgY29uc3QKICAg
ICByZXR1cm4gb3ZlcmxhcHMob3RoZXIubV9zZXQpOwogfQogCitib29sIFN0cnVjdHVyZUFic3Ry
YWN0VmFsdWU6OmlzU3ViQ2xhc3NPZihjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykgY29uc3QK
K3sKKyAgICBpZiAoaXNJbmZpbml0ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAv
LyBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3RydWN0dXJlIHNldCBpcyBlbXB0eS4KKyAgICBmb3IgKGNv
bnN0IFN0cnVjdHVyZSogc3RydWN0dXJlIDogbV9zZXQpIHsKKyAgICAgICAgaWYgKCFzdHJ1Y3R1
cmUtPmNsYXNzSW5mbygpLT5pc1N1YkNsYXNzT2YoY2xhc3NJbmZvKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgU3RydWN0dXJl
QWJzdHJhY3RWYWx1ZTo6ZXF1YWxzU2xvdyhjb25zdCBTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlJiBv
dGhlcikgY29uc3QKIHsKICAgICBBU1NFUlQobV9zZXQubV9wb2ludGVyICE9IG90aGVyLm1fc2V0
Lm1fcG9pbnRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0
cnVjdHVyZUFic3RyYWN0VmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Ry
dWN0dXJlQWJzdHJhY3RWYWx1ZS5oCmluZGV4IGNhOTRhNzliNzQ3YmQ5MTI2OGIxMmNlMmQwODQy
MTc4MGY3NjI5NjMuLjUxZjc5MzdkNTUxODFmNWZmNmM1NmNmNDAwZWU1OTQ1YTM5MjgxNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQWJzdHJhY3RW
YWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQWJzdHJh
Y3RWYWx1ZS5oCkBAIC0xNjMsNiArMTYzLDEyIEBAIGNsYXNzIFN0cnVjdHVyZUFic3RyYWN0VmFs
dWUgewogICAgICAgICBpZiAoaXNOZWl0aGVyQ2xlYXJOb3JUb3AoKSkKICAgICAgICAgICAgIGZp
bHRlclNsb3codHlwZSk7CiAgICAgfQorCisgICAgQUxXQVlTX0lOTElORSB2b2lkIGZpbHRlckNs
YXNzSW5mbyhjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykKKyAgICB7CisgICAgICAgIGlmIChp
c05laXRoZXJDbGVhck5vclRvcCgpKQorICAgICAgICAgICAgZmlsdGVyQ2xhc3NJbmZvU2xvdyhj
bGFzc0luZm8pOworICAgIH0KICAgICAKICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlJiBvdGhlcikgY29uc3QKICAgICB7CkBAIC0y
MzEsNiArMjM3LDggQEAgY2xhc3MgU3RydWN0dXJlQWJzdHJhY3RWYWx1ZSB7CiAgICAgCiAgICAg
Ym9vbCBvdmVybGFwcyhjb25zdCBTdHJ1Y3R1cmVTZXQmIG90aGVyKSBjb25zdDsKICAgICBib29s
IG92ZXJsYXBzKGNvbnN0IFN0cnVjdHVyZUFic3RyYWN0VmFsdWUmIG90aGVyKSBjb25zdDsKKwor
ICAgIGJvb2wgaXNTdWJDbGFzc09mKGNvbnN0IENsYXNzSW5mbyopIGNvbnN0OwogICAgIAogICAg
IHZvaWQgdmFsaWRhdGVSZWZlcmVuY2VzKGNvbnN0IFRyYWNrZWRSZWZlcmVuY2VzJikgY29uc3Q7
CiAgICAgCkBAIC0yNDEsNiArMjQ5LDcgQEAgY2xhc3MgU3RydWN0dXJlQWJzdHJhY3RWYWx1ZSB7
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNsb2JiZXJlZFN1cHJlbWFjeVRocmVzaG9sZCA9
IDI7CiAgICAgCiAgICAgdm9pZCBmaWx0ZXJTbG93KFNwZWN1bGF0ZWRUeXBlIHR5cGUpOworICAg
IHZvaWQgZmlsdGVyQ2xhc3NJbmZvU2xvdyhjb25zdCBDbGFzc0luZm8qKTsKICAgICBib29sIG1l
cmdlU2xvdyhjb25zdCBTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlJiBvdGhlcik7CiAgICAgCiAgICAg
Ym9vbCBlcXVhbHNTbG93KGNvbnN0IFN0cnVjdHVyZUFic3RyYWN0VmFsdWUmIG90aGVyKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR2V0dGVy
U2V0dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR2V0dGVyU2V0
dGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NDQ3MTIzOWZmOWE5ZmQwZDQ2MmM4YWFhNDQ1MTgyOTU5NGQx
NzQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01K
SVRHZXR0ZXJTZXR0ZXIuY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RE9NSklUR2V0dGVyU2V0dGVyLmgiCisKKyNpZiBFTkFCTEUoREZHX0pJVCkKKworbmFtZXNwYWNl
IEpTQyB7CituYW1lc3BhY2UgRE9NSklUIHsKKworfSB9CisKKyNlbmRpZiAvLyBFTkFCTEUoREZH
X0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR2V0
dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVEdldHRlclNl
dHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZmNGEzNjkwMTY0ZjU5NjU2NTFlN2ViZWNhNDczNDBkMDQwYTQ2
MGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJ
VEdldHRlclNldHRlci5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRPTUpJVFBh
dGNocG9pbnQuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eVNsb3QuaCIKKyNpbmNsdWRlICJQdXRQcm9w
ZXJ0eVNsb3QuaCIKKyNpbmNsdWRlICJTcGVjdWxhdGVkVHlwZS5oIgorCituYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIERPTUpJVCB7CisKK2NsYXNzIEdldHRlclNldHRlciB7CitwdWJsaWM6Cisg
ICAgdHlwZWRlZiBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBDdXN0b21HZXR0ZXI7CisgICAg
dHlwZWRlZiBQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYyBDdXN0b21TZXR0ZXI7CisKKyAg
ICBHZXR0ZXJTZXR0ZXIoQ3VzdG9tR2V0dGVyIGdldHRlciwgQ3VzdG9tU2V0dGVyIHNldHRlciwg
Y29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCisgICAgICAgIDogbV9nZXR0ZXIoZ2V0dGVyKQor
ICAgICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAgICAgICAgLCBtX3RoaXNDbGFzc0luZm8oY2xh
c3NJbmZvKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5HZXR0ZXJTZXR0ZXIoKSB7IH0K
KworICAgIEN1c3RvbUdldHRlciBnZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX2dldHRlcjsgfQor
ICAgIEN1c3RvbVNldHRlciBzZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX3NldHRlcjsgfQorICAg
IGNvbnN0IENsYXNzSW5mbyogdGhpc0NsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1fdGhpc0Ns
YXNzSW5mbzsgfQorCisgICAgdmlydHVhbCBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0aW9uKCkgPSAw
OworICAgIHZpcnR1YWwgU3BlY3VsYXRlZFR5cGUgcmVzdWx0VHlwZSgpID0gMDsKKworI2lmIEVO
QUJMRShERkdfSklUKQorICAgIHZpcnR1YWwgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gY2FsbERP
TSgpID0gMDsKKyAgICB2aXJ0dWFsIFJlZjxET01KSVQ6OlBhdGNocG9pbnQ+IGNoZWNrRE9NKCkg
PSAwOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgQ3VzdG9tR2V0dGVyIG1fZ2V0dGVyOworICAg
IEN1c3RvbVNldHRlciBtX3NldHRlcjsKKyAgICBjb25zdCBDbGFzc0luZm8qIG1fdGhpc0NsYXNz
SW5mbzsKK307CisKK30gfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWpp
dC9ET01KSVRQYXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJ
VFBhdGNocG9pbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzg5Yzg2MDBkOGFmOGQ3OGMzMzVlMDMxOTY5YWJk
YTA4MjlmNWU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWpp
dC9ET01KSVRQYXRjaHBvaW50LmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJTZXQuaCIKKworbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBET01KSVQgeworCitjbGFzcyBQYXRjaHBvaW50UGFyYW1zOworCit0eXBlZGVm
IENDYWxsSGVscGVyczo6SnVtcExpc3QgUGF0Y2hwb2ludEdlbmVyYXRvckZ1bmN0aW9uKENDYWxs
SGVscGVycyYsIGNvbnN0IFBhdGNocG9pbnRQYXJhbXMmKTsKK3R5cGVkZWYgU2hhcmVkVGFzazxQ
YXRjaHBvaW50R2VuZXJhdG9yRnVuY3Rpb24+IFBhdGNocG9pbnRHZW5lcmF0b3I7CisKKy8vIERP
TUpJVCBwYXRjaHBvaW50IGlzIHRoZSB3YXkgdG8gaW5qZWN0IGFuIG9wYXF1ZSBjb2RlIGdlbmVy
YXRvciBpbnRvIERGRyBhbmQgRlRMLgorLy8gV2hpbGUgQjM6OlBhdGNocG9pbnQgaXMgc2VsZi1j
b250YWluZWQgYWJvdXQgaXRzIGNvbXBpbGF0aW9uIGluZm9ybWF0aW9uLAorLy8gRE9NSklUOjpQ
YXRjaHBvaW50IGRlcGVuZHMgb24gd2hpY2ggREZHIE5vZGUgaW52b2tlcy4gRm9yIGV4YW1wbGUs
IENoZWNrRE9NIHdpbGwKKy8vIGxpbmsgcmV0dXJuZWQgZmFpbHVyZUNhc2VzIHRvIEJhZFR5cGUg
T1NSRXhpdCwgYnV0IHRoaXMgaW5mb3JtYXRpb24gaXMgb2ZmZXJlZAorLy8gZnJvbSBDaGVja0RP
TSBERkcgTm9kZSwgbm90IGZyb20gdGhpcyBwYXRjaHBvaW50LiBUaGlzIHBhdGNocG9pbnQgbWFp
bmx5IGZvY3VzZXMKKy8vIG9uIGluamVjdGluZyBhIHNuaXBwZXQgZ2VuZXJhdG9yIHRoYXQgY2Fu
IHRlbGwgcmVnaXN0ZXIgdXNhZ2UgYW5kIGNhbiBiZSB1c2VkCisvLyBpbiBib3RoIERGRyBhbmQg
RlRMLgorY2xhc3MgUGF0Y2hwb2ludCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXRj
aHBvaW50PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQYXRjaHBvaW50PiBjcmVhdGUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGF0Y2hwb2ludCgpKTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIHZvaWQgc2V0R2VuZXJhdG9y
KGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCisgICAgeworICAgICAgICBtX2dlbmVyYXRvciA9IGNy
ZWF0ZVNoYXJlZFRhc2s8UGF0Y2hwb2ludEdlbmVyYXRvckZ1bmN0aW9uPihmdW5jdG9yKTsKKyAg
ICB9CisKKyAgICBSZWZQdHI8UGF0Y2hwb2ludEdlbmVyYXRvcj4gZ2VuZXJhdG9yKCkgY29uc3Qg
eyByZXR1cm4gbV9nZW5lcmF0b3I7IH0KKworICAgIHVpbnQ4X3QgbnVtR1BTY3JhdGNoUmVnaXN0
ZXJzIHsgMCB9OworICAgIHVpbnQ4X3QgbnVtRlBTY3JhdGNoUmVnaXN0ZXJzIHsgMCB9OworCitw
cml2YXRlOgorICAgIFBhdGNocG9pbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBSZWZQdHI8UGF0Y2hw
b2ludEdlbmVyYXRvcj4gbV9nZW5lcmF0b3I7Cit9OworCit9IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRQYXRjaHBvaW50UGFyYW1zLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGFhMDkwNWQ2M2ZiNWMyMzFkMGUxODM1MWU2NTViMjVlNDkwMTI4NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUUGF0Y2hwb2ludFBhcmFt
cy5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2lu
Y2x1ZGUgIkRPTUpJVFNsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiUmVnaXN0ZXJTZXQu
aCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBET01KSVQgeworCitjbGFzcyBQYXRjaHBv
aW50UGFyYW1zIHsKK1dURl9NQUtFX05PTkNPUFlBQkxFKFBhdGNocG9pbnRQYXJhbXMpOworcHVi
bGljOgorICAgIHZpcnR1YWwgflBhdGNocG9pbnRQYXJhbXMoKSB7IH0KKworICAgIHVuc2lnbmVk
IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3JlZ3Muc2l6ZSgpOyB9CisgICAgY29uc3QgUmVnJiBh
dCh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9yZWdzW2luZGV4XTsgfQorICAgIGNv
bnN0IFJlZyYgb3BlcmF0b3JbXSh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gYXQoaW5k
ZXgpOyB9CisKKyAgICBHUFJSZWcgZ3BTY3JhdGNoKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJl
dHVybiBtX2dwU2NyYXRjaFtpbmRleF07IH0KKyAgICBGUFJSZWcgZnBTY3JhdGNoKHVuc2lnbmVk
IGluZGV4KSBjb25zdCB7IHJldHVybiBtX2ZwU2NyYXRjaFtpbmRleF07IH0KKworICAgIFBhdGNo
cG9pbnRQYXJhbXMoVmVjdG9yPFJlZz4mJiByZWdzLCBWZWN0b3I8R1BSUmVnPiYmIGdwU2NyYXRj
aCwgVmVjdG9yPEZQUlJlZz4mJiBmcFNjcmF0Y2gpCisgICAgICAgIDogbV9yZWdzKFdURk1vdmUo
cmVncykpCisgICAgICAgICwgbV9ncFNjcmF0Y2goV1RGTW92ZShncFNjcmF0Y2gpKQorICAgICAg
ICAsIG1fZnBTY3JhdGNoKFdURk1vdmUoZnBTY3JhdGNoKSkKKyAgICB7CisgICAgfQorCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgSnVtcFR5cGUsIHR5cGVuYW1lIEZ1bmN0aW9uVHlwZSwgdHlwZW5h
bWUgUmVzdWx0VHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgorICAgIHZvaWQgYWRkU2xvd1Bh
dGhDYWxsKEp1bXBUeXBlIGZyb20sIENDYWxsSGVscGVycyYgaml0LCBGdW5jdGlvblR5cGUgZnVu
Y3Rpb24sIFJlc3VsdFR5cGUgcmVzdWx0LCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKSBjb25zdAor
ICAgIHsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBnZW5lcmF0
b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPFNsb3dQYXRoQ2FsbEdlbmVyYXRvcjxKdW1wVHlwZSwgRnVu
Y3Rpb25UeXBlLCBSZXN1bHRUeXBlLCBBcmd1bWVudHMuLi4+Pihmcm9tLCBmdW5jdGlvbiwgcmVz
dWx0LCBhcmd1bWVudHMuLi4pOworICAgICAgICBhZGRTbG93UGF0aENhbGxJbXBsKGppdCwgV1RG
TW92ZShnZW5lcmF0b3IpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGFk
ZFNsb3dQYXRoQ2FsbEltcGwoQ0NhbGxIZWxwZXJzJiwgc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRo
R2VuZXJhdG9yPikgY29uc3QgPSAwOworCisgICAgVmVjdG9yPFJlZz4gbV9yZWdzOworICAgIFZl
Y3RvcjxHUFJSZWc+IG1fZ3BTY3JhdGNoOworICAgIFZlY3RvcjxGUFJSZWc+IG1fZnBTY3JhdGNo
OworfTsKKworfSB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RP
TUpJVFNsb3dQYXRoR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RP
TUpJVFNsb3dQYXRoR2VuZXJhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZkNTE1MWFjYjVkMTQwMzY5MmU5
YThjZmI4NDU3ZDY1MjM2YzVhOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kb21qaXQvRE9NSklUU2xvd1BhdGhHZW5lcmF0b3IuaApAQCAtMCwwICsxLDEwMyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCisjaW5jbHVk
ZSAiQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaCIKKyNpbmNsdWRlICJERkdTbG93UGF0aEdl
bmVyYXRvci5oIgorI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCisjaW5jbHVkZSAiRlRM
U2xvd1BhdGhDYWxsLmgiCisjaW5jbHVkZSAiRlRMU3RhdGUuaCIKKworbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBET01KSVQgeworCitjbGFzcyBTbG93UGF0aEdlbmVyYXRvciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgU2xvd1BhdGhHZW5lcmF0b3IoKQor
ICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5TbG93UGF0aEdlbmVyYXRvcigpIHsgfQorCisg
ICAgdmlydHVhbCB2b2lkIGFkZChDQ2FsbEhlbHBlcnMmLCBGVEw6OlN0YXRlJiwgY29uc3QgQjM6
OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYsIERGRzo6Tm9kZSosIEJveDxDQ2FsbEhlbHBlcnM6
Okp1bXBMaXN0PikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGQoREZHOjpTcGVjdWxhdGl2ZUpJ
VCYpID0gMDsKKworcHJvdGVjdGVkOgorICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2xhYmVs
OworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgSnVtcFR5cGUsIHR5cGVuYW1lIEZ1bmN0aW9uVHlw
ZSwgdHlwZW5hbWUgUmVzdWx0VHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgorY2xhc3MgU2xv
d1BhdGhDYWxsR2VuZXJhdG9yIDogcHVibGljIFNsb3dQYXRoR2VuZXJhdG9yIHsKK3B1YmxpYzoK
KyAgICBTbG93UGF0aENhbGxHZW5lcmF0b3IoSnVtcFR5cGUgZnJvbSwgRnVuY3Rpb25UeXBlIGZ1
bmN0aW9uLCBSZXN1bHRUeXBlIHJlc3VsdCwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykKKyAgICAg
ICAgOiBTbG93UGF0aEdlbmVyYXRvcigpCisgICAgICAgICwgbV9mcm9tKGZyb20pCisgICAgICAg
ICwgbV9mdW5jdGlvbihmdW5jdGlvbikKKyAgICAgICAgLCBtX3Jlc3VsdChyZXN1bHQpCisgICAg
ICAgICwgbV9hcmd1bWVudHMoc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLikK
KyAgICB7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBhZGQoQ0NhbGxIZWxwZXJzJiBq
aXQsIEZUTDo6U3RhdGUmIHN0YXRlLCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JiBwYXJhbXMsIERGRzo6Tm9kZSogbm9kZSwgQm94PENDYWxsSGVscGVyczo6SnVtcExpc3Q+IGV4
Y2VwdGlvbnMpIG92ZXJyaWRlCisgICAgeworICAgICAgICB1bnBhY2tBbmRBZGQoaml0LCAmc3Rh
dGUsIHBhcmFtcywgbm9kZSwgZXhjZXB0aW9ucywgc3RkOjptYWtlX2luZGV4X3NlcXVlbmNlPHN0
ZDo6dHVwbGVfc2l6ZTxzdGQ6OnR1cGxlPEFyZ3VtZW50cy4uLj4+Ojp2YWx1ZT4oKSk7CisgICAg
fQorCisgICAgdGVtcGxhdGU8c2l6ZV90Li4uIEFyZ3VtZW50c0luZGV4PgorICAgIHZvaWQgdW5w
YWNrQW5kQWRkKENDYWxsSGVscGVycyYgaml0LCBGVEw6OlN0YXRlKiBzdGF0ZSwgY29uc3QgQjM6
OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zLCBERkc6Ok5vZGUqIG5vZGUsIEJveDxD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zLCBzdGQ6OmluZGV4X3NlcXVlbmNlPEFy
Z3VtZW50c0luZGV4Li4uPikKKyAgICB7CisgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgZG9u
ZSA9IGppdC5sYWJlbCgpOworICAgICAgICBwYXJhbXMuYWRkTGF0ZVBhdGgoWz1dIChDQ2FsbEhl
bHBlcnMmIGppdCkgeworICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdl
IGFsbG93U2NyYXRjaChqaXQpOworCisgICAgICAgICAgICBtX2Zyb20ubGluaygmaml0KTsKKyAg
ICAgICAgICAgIGNhbGxPcGVyYXRpb24oCisgICAgICAgICAgICAgICAgKnN0YXRlLCBwYXJhbXMu
dW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgaml0LCBub2RlLT5vcmlnaW4uc2VtYW50aWMsCisgICAg
ICAgICAgICAgICAgZXhjZXB0aW9ucy5nZXQoKSwgbV9mdW5jdGlvbiwgbV9yZXN1bHQsIHN0ZDo6
Z2V0PEFyZ3VtZW50c0luZGV4PihtX2FyZ3VtZW50cykuLi4pOworICAgICAgICAgICAgaml0Lmp1
bXAoKS5saW5rVG8oZG9uZSwgJmppdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHZvaWQg
YWRkKERGRzo6U3BlY3VsYXRpdmVKSVQmIGppdCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHVu
cGFja0FuZEFkZChqaXQsIHN0ZDo6bWFrZV9pbmRleF9zZXF1ZW5jZTxzdGQ6OnR1cGxlX3NpemU8
c3RkOjp0dXBsZTxBcmd1bWVudHMuLi4+Pjo6dmFsdWU+KCkpOworICAgIH0KKworICAgIHRlbXBs
YXRlPHNpemVfdC4uLiBBcmd1bWVudHNJbmRleD4KKyAgICB2b2lkIHVucGFja0FuZEFkZChERkc6
OlNwZWN1bGF0aXZlSklUJiBqaXQsIHN0ZDo6aW5kZXhfc2VxdWVuY2U8QXJndW1lbnRzSW5kZXgu
Li4+KQorICAgIHsKKyAgICAgICAgaml0LmFkZFNsb3dQYXRoR2VuZXJhdG9yKERGRzo6c2xvd1Bh
dGhDYWxsKG1fZnJvbSwgJmppdCwgbV9mdW5jdGlvbiwgbV9yZXN1bHQsIHN0ZDo6Z2V0PEFyZ3Vt
ZW50c0luZGV4PihtX2FyZ3VtZW50cykuLi4pKTsKKyAgICB9CisKKyAgICBKdW1wVHlwZSBtX2Zy
b207CisgICAgRnVuY3Rpb25UeXBlIG1fZnVuY3Rpb247CisgICAgUmVzdWx0VHlwZSBtX3Jlc3Vs
dDsKKyAgICBzdGQ6OnR1cGxlPEFyZ3VtZW50cy4uLj4gbV9hcmd1bWVudHM7Cit9OworCit9IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5LmgKaW5kZXggNzE5ZjUyYzNmZTNkOWM1ODgxZDc5ODNkMjAzOGJkZDcxMzQyNWQwOS4u
ZjVkYTNmYWI3ZjVjMDhkNjFmYzIyYWM3NjJlMGI2N2E4NjU1NTRmMiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgKQEAg
LTExMiw2ICsxMTIsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFj
cm8oSGFzaE1hcEJ1Y2tldF92YWx1ZSwgSGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtl
eVZhbHVlPjo6b2Zmc2V0T2ZWYWx1ZSgpKSBcCiAgICAgbWFjcm8oSGFzaE1hcEJ1Y2tldF9rZXks
IEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXlWYWx1ZT46Om9mZnNldE9mS2V5KCkp
IFwKICAgICBtYWNybyhTeW1ib2xfc3ltYm9sSW1wbCwgU3ltYm9sOjpvZmZzZXRPZlN5bWJvbElt
cGwoKSkgXAorICAgIG1hY3JvKFdlYWtJbXBsX2pzVmFsdWUsIFdlYWtJbXBsOjpvZmZzZXRPZkpT
VmFsdWUoKSkgXAorICAgIG1hY3JvKFdlYWtJbXBsX3dlYWtIYW5kbGVPd25lciwgV2Vha0ltcGw6
Om9mZnNldE9mV2Vha0hhbmRsZU93bmVyKCkpIFwKIAogI2RlZmluZSBGT1JfRUFDSF9JTkRFWEVE
X0FCU1RSQUNUX0hFQVAobWFjcm8pIFwKICAgICBtYWNybyhEaXJlY3RBcmd1bWVudHNfc3RvcmFn
ZSwgRGlyZWN0QXJndW1lbnRzOjpzdG9yYWdlT2Zmc2V0KCksIHNpemVvZihFbmNvZGVkSlNWYWx1
ZSkpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApp
bmRleCBiNmViMmU1ZjcyMTlkYWU2ZmUwYzJhODRhZjA1ZTgyMmNhMDZkODFmLi5mNmIxZDVhMWMw
ZmEwZjczZTM1ZGFlYTZhZmJmZjEwNmZhZTY0OTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0yNjMsNiArMjYzLDggQEAgaW5saW5lIENh
cGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDb21wYXJlR3Jl
YXRlcjoKICAgICBjYXNlIENvbXBhcmVHcmVhdGVyRXE6CiAgICAgY2FzZSBDb21wYXJlU3RyaWN0
RXE6CisgICAgY2FzZSBDaGVja0RPTToKKyAgICBjYXNlIENhbGxET006CiAgICAgICAgIC8vIFRo
ZXNlIGFyZSBPSy4KICAgICAgICAgYnJlYWs7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExET01KSVRQYXRjaHBvaW50UGFyYW1zLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRiYzU3
YmVlNjg1MmViMjhhMWEzYzgzYjI2NzNlN2E4MjJiZmY0OAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oCkBAIC0w
LDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShGVExfSklUKQorCisjaW5jbHVkZSAiQjNTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMuaCIKKyNpbmNsdWRlICJET01KSVRQYXRjaHBvaW50UGFyYW1z
LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKKworY2xhc3MgRE9NSklUUGF0
Y2hwb2ludFBhcmFtcyA6IHB1YmxpYyBET01KSVQ6OlBhdGNocG9pbnRQYXJhbXMgeworcHVibGlj
OgorICAgIERPTUpJVFBhdGNocG9pbnRQYXJhbXMoU3RhdGUmIHN0YXRlLCBjb25zdCBCMzo6U3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMsIERGRzo6Tm9kZSogbm9kZSwgQm94PENDYWxs
SGVscGVyczo6SnVtcExpc3Q+IGV4Y2VwdGlvbnMsIFZlY3RvcjxSZWc+JiYgcmVncywgVmVjdG9y
PEdQUlJlZz4mJiBncFNjcmF0Y2gsIFZlY3RvcjxGUFJSZWc+JiYgZnBTY3JhdGNoKQorICAgICAg
ICA6IERPTUpJVDo6UGF0Y2hwb2ludFBhcmFtcyhXVEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2Ny
YXRjaCksIFdURk1vdmUoZnBTY3JhdGNoKSkKKyAgICAgICAgLCBtX3N0YXRlKHN0YXRlKQorICAg
ICAgICAsIG1fcGFyYW1zKHBhcmFtcykKKyAgICAgICAgLCBtX25vZGUobm9kZSkKKyAgICAgICAg
LCBtX2V4Y2VwdGlvbnMoZXhjZXB0aW9ucykKKyAgICB7CisgICAgfQorCitwcml2YXRlOgorICAg
IHZvaWQgYWRkU2xvd1BhdGhDYWxsSW1wbChDQ2FsbEhlbHBlcnMmIGppdCwgc3RkOjp1bmlxdWVf
cHRyPERPTUpJVDo6U2xvd1BhdGhHZW5lcmF0b3I+IGdlbmVyYXRvcikgY29uc3Qgb3ZlcnJpZGUK
KyAgICB7CisgICAgICAgIGdlbmVyYXRvci0+YWRkKGppdCwgbV9zdGF0ZSwgbV9wYXJhbXMsIG1f
bm9kZSwgbV9leGNlcHRpb25zKTsKKyAgICB9CisKKyAgICBTdGF0ZSYgbV9zdGF0ZTsKKyAgICBj
b25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBtX3BhcmFtczsKKyAgICBERkc6Ok5v
ZGUqIG1fbm9kZTsKKyAgICBCb3g8Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4gbV9leGNlcHRpb25z
OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZU
TF9KSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
aW5kZXggMDYzY2M1OTQ0MDYyNDg5NjM3YTljMmJkMzE4MjkzNTU3NTY0ZTQyMC4uMDU3YWNkZTNm
OWYzMjc5YzExODU3OTYzNzExODFjMmNkYjliMzUxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNDQsOSArNDQsMTIgQEAKICNpbmNsdWRl
ICJERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIgogI2luY2x1ZGUgIkRGR09TUkF2YWlsYWJpbGl0
eUFuYWx5c2lzUGhhc2UuaCIKICNpbmNsdWRlICJERkdPU1JFeGl0RnV6ei5oIgorI2luY2x1ZGUg
IkRPTUpJVFBhdGNocG9pbnQuaCIKKyNpbmNsdWRlICJET01KSVRQYXRjaHBvaW50UGFyYW1zLmgi
CiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiRlRMQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeS5oIgogI2luY2x1ZGUgIkZUTEF2YWlsYWJsZVJlY292ZXJ5LmgiCisjaW5jbHVk
ZSAiRlRMRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oIgogI2luY2x1ZGUgIkZUTEV4Y2VwdGlvblRh
cmdldC5oIgogI2luY2x1ZGUgIkZUTEZvck9TUkVudHJ5SklUQ29kZS5oIgogI2luY2x1ZGUgIkZU
TEZvcm1hdHRlZFZhbHVlLmgiCkBAIC0xMDM3LDYgKzEwNDAsMTIgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKICAgICAgICAgY2FzZSBVbnJlYWNoYWJsZToKICAgICAgICAgICAgIGNvbXBpbGVVbnJl
YWNoYWJsZSgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2hlY2tET006Cisg
ICAgICAgICAgICBjb21waWxlQ2hlY2tET00oKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIENhbGxET006CisgICAgICAgICAgICBjb21waWxlQ2FsbERPTSgpOworICAgICAgICAg
ICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAgICAgICAgIGNhc2UgTG9v
cEhpbnQ6CkBAIC04NDUyLDYgKzg0NjEsMTE1IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAg
ICAgIAogICAgICAgICBjcmFzaCgpOwogICAgIH0KKworICAgIHZvaWQgY29tcGlsZUNoZWNrRE9N
KCkKKyAgICB7CisgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChtX25vZGUtPmNoaWxkMSgp
KTsKKworICAgICAgICBSZWZQdHI8RE9NSklUOjpQYXRjaHBvaW50PiBkb21KSVQgPSBtX25vZGUt
PmRvbUpJVCgpLT5jaGVja0RPTSgpOworCisgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hw
b2ludCA9IG1fb3V0LnBhdGNocG9pbnQoVm9pZCk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVu
ZFNvbWVSZWdpc3RlcihjZWxsKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVn
aXN0ZXJzID0gZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7CisgICAgICAgIHBhdGNocG9p
bnQtPm51bUZQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtRlBTY3JhdGNoUmVnaXN0ZXJz
OworCisgICAgICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOworICAgICAgICBOb2RlKiBu
b2RlID0gbV9ub2RlOworICAgICAgICBOb2RlT3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAg
ICAgICB1bnNpZ25lZCBvc3JFeGl0QXJndW1lbnRPZmZzZXQgPSBwYXRjaHBvaW50LT5udW1DaGls
ZHJlbigpOworICAgICAgICBPU1JFeGl0RGVzY3JpcHRvciogZXhpdERlc2NyaXB0b3IgPSBhcHBl
bmRPU1JFeGl0RGVzY3JpcHRvcihqc1ZhbHVlVmFsdWUoY2VsbCksIG1fbm9kZS0+Y2hpbGQxKCku
bm9kZSgpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kQ29sZEFueXMoYnVpbGRFeGl0QXJn
dW1lbnRzKGV4aXREZXNjcmlwdG9yLCBvcmlnaW4uZm9yRXhpdCwganNWYWx1ZVZhbHVlKGNlbGwp
KSk7CisKKyAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAorICAgICAgICAgICAgWz1d
IChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJh
bXMpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8R1BSUmVnPiBncFNjcmF0Y2g7CisgICAgICAg
ICAgICAgICAgVmVjdG9yPEZQUlJlZz4gZnBTY3JhdGNoOworICAgICAgICAgICAgICAgIFZlY3Rv
cjxSZWc+IHJlZ3M7CisKKyAgICAgICAgICAgICAgICByZWdzLmFwcGVuZChwYXJhbXNbMF0uZ3By
KCkpOworCisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRvbUpJVC0+
bnVtR1BTY3JhdGNoUmVnaXN0ZXJzOyArK2kpCisgICAgICAgICAgICAgICAgICAgIGdwU2NyYXRj
aC5hcHBlbmQocGFyYW1zLmdwU2NyYXRjaChpKSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7ICsraSkKKyAg
ICAgICAgICAgICAgICAgICAgZnBTY3JhdGNoLmFwcGVuZChwYXJhbXMuZnBTY3JhdGNoKGkpKTsK
KworICAgICAgICAgICAgICAgIFJlZlB0cjxPU1JFeGl0SGFuZGxlPiBoYW5kbGUgPSBleGl0RGVz
Y3JpcHRvci0+ZW1pdE9TUkV4aXRMYXRlcigqc3RhdGUsIEJhZFR5cGUsIG9yaWdpbiwgcGFyYW1z
LCBvc3JFeGl0QXJndW1lbnRPZmZzZXQpOworCisgICAgICAgICAgICAgICAgRlRMOjpET01KSVRQ
YXRjaHBvaW50UGFyYW1zIGRvbUpJVFBhcmFtcygqc3RhdGUsIHBhcmFtcywgbm9kZSwgbnVsbHB0
ciwgV1RGTW92ZShyZWdzKSwgV1RGTW92ZShncFNjcmF0Y2gpLCBXVEZNb3ZlKGZwU2NyYXRjaCkp
OworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZmFpbHVyZUNhc2VzID0g
ZG9tSklULT5nZW5lcmF0b3IoKS0+cnVuKGppdCwgZG9tSklUUGFyYW1zKTsKKworICAgICAgICAg
ICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGZhaWx1cmVDYXNlcywgbGlua0J1ZmZl
ci5sb2NhdGlvbk9mKGhhbmRsZS0+bGFiZWwpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIH0pOworCisgICAgICAgIC8vIFNldCBzb21lIG9idmlvdXMgdGhpbmdzLgorICAgICAg
ICBwYXRjaHBvaW50LT5lZmZlY3RzLnRlcm1pbmFsID0gZmFsc2U7CisgICAgICAgIHBhdGNocG9p
bnQtPmVmZmVjdHMud3JpdGVzTG9jYWxTdGF0ZSA9IGZhbHNlOworICAgICAgICBwYXRjaHBvaW50
LT5lZmZlY3RzLnJlYWRzTG9jYWxTdGF0ZSA9IGZhbHNlOworCisgICAgICAgIC8vIFRoaXMgaXMg
aG93IHdlIHRlbGwgQjMgYWJvdXQgdGhlIHBvc3NpYmlsaXR5IG9mIGp1bXAgcmVwbGFjZW1lbnQu
CisgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMuZXhpdHNTaWRld2F5cyA9IHRydWU7CisKKyAg
ICAgICAgLy8gSXQncyBub3QgcG9zc2libGUgZm9yIHNvbWUgcHJpb3IgYnJhbmNoIHRvIGRldGVy
bWluZSB0aGUgc2FmZXR5IG9mIHRoaXMgb3BlcmF0aW9uLiBJdCdzIGFsd2F5cworICAgICAgICAv
LyBmaW5lIHRvIGV4ZWN1dGUgdGhpcyBvbiBzb21lIHBhdGggdGhhdCB3b3VsZG4ndCBoYXZlIG9y
aWdpbmFsbHkgZXhlY3V0ZWQgaXQgYmVmb3JlCisgICAgICAgIC8vIG9wdGltaXphdGlvbi4KKyAg
ICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy5jb250cm9sRGVwZW5kZW50ID0gZmFsc2U7CisKKyAg
ICAgICAgLy8gSWYgdGhpcyBmYWxscyB0aHJvdWdoIHRoZW4gaXQgd29uJ3Qgd3JpdGUgYW55dGhp
bmcuCisgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMud3JpdGVzID0gSGVhcFJhbmdlKCk7CisK
KyAgICAgICAgLy8gV2hlbiB0aGlzIGFicnVwdGx5IHRlcm1pbmF0ZXMsIGl0IGNvdWxkIHJlYWQg
YW55IGhlYXAgbG9jYXRpb24uCisgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMucmVhZHMgPSBI
ZWFwUmFuZ2U6OnRvcCgpOworICAgIH0KKworICAgIHZvaWQgY29tcGlsZUNhbGxET00oKQorICAg
IHsKKyAgICAgICAgTFZhbHVlIGdsb2JhbE9iamVjdCA9IGxvd0NlbGwobV9ncmFwaC52YXJBcmdD
aGlsZChtX25vZGUsIDApKTsKKyAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKG1fZ3JhcGgu
dmFyQXJnQ2hpbGQobV9ub2RlLCAxKSk7CisKKyAgICAgICAgUmVmUHRyPERPTUpJVDo6UGF0Y2hw
b2ludD4gZG9tSklUID0gbV9ub2RlLT5kb21KSVQoKS0+Y2FsbERPTSgpOworICAgICAgICBQYXRj
aHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KEludDY0KTsKKyAgICAg
ICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGdsb2JhbE9iamVjdCk7CisgICAgICAg
IHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihjZWxsKTsKKyAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kKG1fdGFnTWFzaywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6dGFnTWFza1Jl
Z2lzdGVyKSk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZh
bHVlUmVwOjpsYXRlUmVnKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOworICAgICAg
ICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZT4gZXhjZXB0aW9uSGFuZGxlID0gcHJl
cGFyZVBhdGNocG9pbnRGb3JFeGNlcHRpb25zKHBhdGNocG9pbnQpOworICAgICAgICBwYXRjaHBv
aW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAg
ICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtR1BTY3Jh
dGNoUmVnaXN0ZXJzOworICAgICAgICBwYXRjaHBvaW50LT5udW1GUFNjcmF0Y2hSZWdpc3RlcnMg
PSBkb21KSVQtPm51bUZQU2NyYXRjaFJlZ2lzdGVyczsKKworICAgICAgICBTdGF0ZSogc3RhdGUg
PSAmbV9mdGxTdGF0ZTsKKyAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9kZTsKKyAgICAgICAgcGF0
Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAorICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAg
ICAgICBWZWN0b3I8R1BSUmVnPiBncFNjcmF0Y2g7CisgICAgICAgICAgICAgICAgVmVjdG9yPEZQ
UlJlZz4gZnBTY3JhdGNoOworICAgICAgICAgICAgICAgIFZlY3RvcjxSZWc+IHJlZ3M7CisKKyAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogcGF0Y2hwb2ludCBzaG91bGQgaGF2ZSBhIHdheSB0byB0
ZWxsIHRoaXMgY2FuIHJldXNlICJiYXNlIiByZWdpc3Rlci4KKyAgICAgICAgICAgICAgICAvLyBU
ZWFjaGluZyBERkcgYWJvdXQgRE9NSklUOjpQYXRjaHBvaW50IGNsb2JiZXIgaW5mb3JtYXRpb24g
aXMgbmljZS4KKyAgICAgICAgICAgICAgICByZWdzLmFwcGVuZChwYXJhbXNbMF0uZ3ByKCkpOwor
ICAgICAgICAgICAgICAgIHJlZ3MuYXBwZW5kKHBhcmFtc1sxXS5ncHIoKSk7CisgICAgICAgICAg
ICAgICAgcmVncy5hcHBlbmQocGFyYW1zWzJdLmdwcigpKTsKKyAgICAgICAgICAgICAgICByZWdz
LmFwcGVuZChwYXJhbXNbM10uZ3ByKCkpOworICAgICAgICAgICAgICAgIHJlZ3MuYXBwZW5kKHBh
cmFtc1s0XS5ncHIoKSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7ICsraSkKKyAgICAgICAgICAgICAgICAg
ICAgZ3BTY3JhdGNoLmFwcGVuZChwYXJhbXMuZ3BTY3JhdGNoKGkpKTsKKworICAgICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkb21KSVQtPm51bUdQU2NyYXRjaFJlZ2lzdGVy
czsgKytpKQorICAgICAgICAgICAgICAgICAgICBmcFNjcmF0Y2guYXBwZW5kKHBhcmFtcy5mcFNj
cmF0Y2goaSkpOworCisgICAgICAgICAgICAgICAgQm94PENDYWxsSGVscGVyczo6SnVtcExpc3Q+
IGV4Y2VwdGlvbnMgPSBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uKHBhcmFt
cyktPmp1bXBzKGppdCk7CisKKyAgICAgICAgICAgICAgICBGVEw6OkRPTUpJVFBhdGNocG9pbnRQ
YXJhbXMgZG9tSklUUGFyYW1zKCpzdGF0ZSwgcGFyYW1zLCBub2RlLCBleGNlcHRpb25zLCBXVEZN
b3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCksIFdURk1vdmUoZnBTY3JhdGNoKSk7CisgICAg
ICAgICAgICAgICAgZG9tSklULT5nZW5lcmF0b3IoKS0+cnVuKGppdCwgZG9tSklUUGFyYW1zKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzID0gRWZmZWN0czo6
Zm9yQ2FsbCgpOworICAgICAgICBzZXRKU1ZhbHVlKHBhdGNocG9pbnQpOworICAgIH0KICAgICAK
ICAgICB2b2lkIGNvbXBhcmVFcU9iamVjdE9yT3RoZXJUb09iamVjdChFZGdlIGxlZnRDaGlsZCwg
RWRnZSByaWdodENoaWxkKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNs
b3dQYXRoQ2FsbC5oCmluZGV4IDFkNmViOTYyM2I5ZWFlM2FhMjg0ZDY5Zjc5NGYwMzQ1OWUxYjVk
NjMuLjZmODA5Mjg4YjdjMDNmOWU3NDk4Mjg1OTVkMWM0MjdhZTkzNGY3NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuaApAQCAtNTQsNyArNTQsNyBAQCBj
bGFzcyBTbG93UGF0aENhbGwgewogfTsKIAogLy8gVGhpcyB3aWxsIGJlIGFuIFJBSUkgdGhpbmd5
IHRoYXQgd2lsbCBzZXQgdXAgdGhlIG5lY2Vzc2FyeSBzdGFjayBzaXplcyBhbmQgb2Zmc2V0cyBh
bmQgc3VjaC4KLWNsYXNzIFNsb3dQYXRoQ2FsbENvbnRleHQgeworY2xhc3MgSlNfRVhQT1JUX1BS
SVZBVEUgU2xvd1BhdGhDYWxsQ29udGV4dCB7CiBwdWJsaWM6CiAgICAgU2xvd1BhdGhDYWxsQ29u
dGV4dChSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzLCBDQ2FsbEhlbHBlcnMmLCB1bnNpZ25lZCBu
dW1BcmdzLCBHUFJSZWcgcmV0dXJuUmVnaXN0ZXIpOwogICAgIH5TbG93UGF0aENhbGxDb250ZXh0
KCk7CkBAIC0xMDcsNyArMTA3LDcgQEAgU2xvd1BhdGhDYWxsIGNhbGxPcGVyYXRpb24oCiAgICAg
cmV0dXJuIGNhbGxPcGVyYXRpb24odXNlZFJlZ2lzdGVycywgaml0LCBleGNlcHRpb25UYXJnZXQs
IGZ1bmN0aW9uLCByZXN1bHRHUFIsIGFyZ3VtZW50cy4uLik7CiB9CiAKLUNhbGxTaXRlSW5kZXgg
Y2FsbFNpdGVJbmRleEZvckNvZGVPcmlnaW4oU3RhdGUmLCBDb2RlT3JpZ2luKTsKK0pTX0VYUE9S
VF9QUklWQVRFIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleEZvckNvZGVPcmlnaW4oU3RhdGUm
LCBDb2RlT3JpZ2luKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRUeXBlcz4KIFNs
b3dQYXRoQ2FsbCBjYWxsT3BlcmF0aW9uKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvV2Vha0ltcGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJbXBs
LmgKaW5kZXggZDgxN2I3MjhiNjZmOWUxM2NjZDA4OTBkNDE2ZTI3MWYyNjcyN2Y3Ny4uM2UzMDQ2
OGQzOGJlMmZjMjNmMGQ5ZTQ5MWFiNzhjOTM4ZWYwNmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvV2Vha0ltcGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9XZWFrSW1wbC5oCkBAIC01Niw2ICs1NiwxNiBAQCBjbGFzcyBXZWFrSW1wbCB7CiAKICAg
ICBzdGF0aWMgV2Vha0ltcGwqIGFzV2Vha0ltcGwoSlNWYWx1ZSopOwogCisgICAgc3RhdGljIHB0
cmRpZmZfdCBvZmZzZXRPZkpTVmFsdWUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihXZWFrSW1wbCwgbV9qc1ZhbHVlKTsKKyAgICB9CisKKyAgICBzdGF0aWMgcHRyZGlm
Zl90IG9mZnNldE9mV2Vha0hhbmRsZU93bmVyKCkKKyAgICB7CisgICAgICAgIHJldHVybiBPQkpF
Q1RfT0ZGU0VUT0YoV2Vha0ltcGwsIG1fd2Vha0hhbmRsZU93bmVyKTsKKyAgICB9CisKIHByaXZh
dGU6CiAgICAgY29uc3QgSlNWYWx1ZSBtX2pzVmFsdWU7CiAgICAgV2Vha0hhbmRsZU93bmVyKiBt
X3dlYWtIYW5kbGVPd25lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
QXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oCmluZGV4IDc2OTQ5MWEzNjdiYTVmZjE0MGI1Mzg3YjhiNWZjMmI3ZjhjNmM2ODAuLmM2
ZDhiYzNlZGVjNWUyMzRjZWZlNzI3OGRiZWE1ODRhMjdiNzNkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtMTIwOSw5ICsxMjA5LDkgQEAgY2xh
c3MgQXNzZW1ibHlIZWxwZXJzIDogcHVibGljIE1hY3JvQXNzZW1ibGVyIHsKICAgICAKICAgICBl
bnVtIEV4Y2VwdGlvbkNoZWNrS2luZCB7IE5vcm1hbEV4Y2VwdGlvbkNoZWNrLCBJbnZlcnRlZEV4
Y2VwdGlvbkNoZWNrIH07CiAgICAgZW51bSBFeGNlcHRpb25KdW1wV2lkdGggeyBOb3JtYWxKdW1w
V2lkdGgsIEZhckp1bXBXaWR0aCB9OwotICAgIEp1bXAgZW1pdEV4Y2VwdGlvbkNoZWNrKAorICAg
IEpTX0VYUE9SVF9QUklWQVRFIEp1bXAgZW1pdEV4Y2VwdGlvbkNoZWNrKAogICAgICAgICBFeGNl
cHRpb25DaGVja0tpbmQgPSBOb3JtYWxFeGNlcHRpb25DaGVjaywgRXhjZXB0aW9uSnVtcFdpZHRo
ID0gTm9ybWFsSnVtcFdpZHRoKTsKLSAgICBKdW1wIGVtaXROb25QYXRjaGFibGVFeGNlcHRpb25D
aGVjaygpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIEp1bXAgZW1pdE5vblBhdGNoYWJsZUV4Y2Vw
dGlvbkNoZWNrKCk7CiAKICNpZiBFTkFCTEUoU0FNUExJTkdfQ09VTlRFUlMpCiAgICAgc3RhdGlj
IHZvaWQgZW1pdENvdW50KE1hY3JvQXNzZW1ibGVyJiBqaXQsIEFic3RyYWN0U2FtcGxpbmdDb3Vu
dGVyJiBjb3VudGVyLCBpbnQzMl90IGluY3JlbWVudCA9IDEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZXBhdGNoLmNwcAppbmRleCBkNDU5MzljNTk1OWE4MDdkNDUwNWI5NGVhM2NlYTE1NWZmZjVj
NGI4Li4yNTgxYzI1ZDZhZmMxYTNlZDBmZjRhZWRhNDBkYjQ0OWFhNDg2MTdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJD
YWxsRnJhbWVTaHVmZmxlci5oIgogI2luY2x1ZGUgIkRGR09wZXJhdGlvbnMuaCIKICNpbmNsdWRl
ICJERkdTcGVjdWxhdGl2ZUpJVC5oIgorI2luY2x1ZGUgIkRPTUpJVEdldHRlclNldHRlci5oIgog
I2luY2x1ZGUgIkRpcmVjdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkZUTFRodW5rcy5oIgogI2lu
Y2x1ZGUgIkdDQXdhcmVKSVRTdHViUm91dGluZS5oIgpAQCAtMjYwLDYgKzI2MSwxMCBAQCBzdGF0
aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBiYXNlVmFsdWUsIGNvbgogICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUdldHRlcigp
KQogICAgICAgICAgICAgZ2V0dGVyID0ganNEeW5hbWljQ2FzdDxKU0Z1bmN0aW9uKj4oc2xvdC5n
ZXR0ZXJTZXR0ZXIoKS0+Z2V0dGVyKCkpOwogCisgICAgICAgIERPTUpJVDo6R2V0dGVyU2V0dGVy
KiBkb21KSVQgPSBudWxscHRyOworICAgICAgICBpZiAoc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgp
ICYmIHNsb3QuZG9tSklUKCkpCisgICAgICAgICAgICBkb21KSVQgPSBzbG90LmRvbUpJVCgpOwor
CiAgICAgICAgIGlmIChraW5kID09IEdldEJ5SURLaW5kOjpQdXJlKSB7CiAgICAgICAgICAgICBB
Y2Nlc3NDYXNlOjpBY2Nlc3NUeXBlIHR5cGU7CiAgICAgICAgICAgICBpZiAoc2xvdC5pc0NhY2hl
YWJsZVZhbHVlKCkpCkBAIC0yOTAsNyArMjk1LDggQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9u
IHRyeUNhY2hlR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb24K
ICAgICAgICAgICAgIG5ld0Nhc2UgPSBBY2Nlc3NDYXNlOjpnZXQoCiAgICAgICAgICAgICAgICAg
dm0sIGNvZGVCbG9jaywgdHlwZSwgb2Zmc2V0LCBzdHJ1Y3R1cmUsIGNvbmRpdGlvblNldCwgbG9h
ZFRhcmdldEZyb21Qcm94eSwKICAgICAgICAgICAgICAgICBzbG90LndhdGNocG9pbnRTZXQoKSwg
c2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpID8gc2xvdC5jdXN0b21HZXR0ZXIoKSA6IG51bGxwdHIs
Ci0gICAgICAgICAgICAgICAgc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgpID8gc2xvdC5zbG90QmFz
ZSgpIDogbnVsbHB0cik7CisgICAgICAgICAgICAgICAgc2xvdC5pc0NhY2hlYWJsZUN1c3RvbSgp
ID8gc2xvdC5zbG90QmFzZSgpIDogbnVsbHB0ciwKKyAgICAgICAgICAgICAgICBkb21KSVQpOwog
ICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IGYxNTAwMGIzODIzMTIx
YzczNmIyNmJkNzdhNDg4MjQ3OWE1YmRjN2UuLmUwYjlkZTZlZTIzN2E1YjM3OWJiYTZhMDUwOGZk
OWY3M2VmNDdmZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0yOCw2ICsyOCw5IEBACiAjaW5j
bHVkZSAiQnV0dGVyZmx5SW5saW5lcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1
ZGUgIkNvbXBsZXRpb24uaCIKKyNpbmNsdWRlICJET01KSVRHZXR0ZXJTZXR0ZXIuaCIKKyNpbmNs
dWRlICJET01KSVRQYXRjaHBvaW50LmgiCisjaW5jbHVkZSAiRE9NSklUUGF0Y2hwb2ludFBhcmFt
cy5oIgogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKQEAgLTcyLDYgKzc1LDcgQEAKICNpbmNsdWRl
IDx0eXBlX3RyYWl0cz4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1
ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KIApAQCAtNTM3LDEyICs1NDEsMTQxIEBAIGNsYXNzIFNpbXBsZU9iamVjdCA6IHB1
YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBXcml0ZUJhcnJpZXI8SlNDOjpVbmtub3duPiBt
X2hpZGRlblZhbHVlOwogfTsKIAorY2xhc3MgRE9NSklUR2V0dGVyIDogcHVibGljIEpTTm9uRmlu
YWxPYmplY3QgeworcHVibGljOgorICAgIERPTUpJVEdldHRlcihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQorICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKKyAgICB7CisgICAgfQor
CisgICAgREVDTEFSRV9JTkZPOworICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwor
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzOworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgewor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBUeXBlSW5mbyhKU0M6OkpTVHlwZShMYXN0SlNDT2JqZWN0VHlwZSArIDEpLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CisgICAgfQorCisgICAgc3RhdGljIERPTUpJVEdldHRlciogY3Jl
YXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgeworICAgICAgICBET01KSVRH
ZXR0ZXIqIGdldHRlciA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPERPTUpJVEdldHRlcj4o
dm0uaGVhcCwgc2l6ZW9mKERPTUpJVEdldHRlcikpKSBET01KSVRHZXR0ZXIodm0sIHN0cnVjdHVy
ZSk7CisgICAgICAgIGdldHRlci0+ZmluaXNoQ3JlYXRpb24odm0pOworICAgICAgICByZXR1cm4g
Z2V0dGVyOworICAgIH0KKworICAgIGludDMyX3QgdmFsdWUoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fdmFsdWU7CisgICAgfQorCisgICAgY2xhc3MgRE9NSklUR2V0dGVyRE9NSklU
IDogcHVibGljIERPTUpJVDo6R2V0dGVyU2V0dGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIERP
TUpJVEdldHRlckRPTUpJVCgpCisgICAgICAgICAgICA6IERPTUpJVDo6R2V0dGVyU2V0dGVyKERP
TUpJVEdldHRlcjo6Y3VzdG9tR2V0dGVyLCBudWxscHRyLCBET01KSVRHZXR0ZXI6OmluZm8oKSkK
KyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlv
bigpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBTcGVjSW50MzJPbmx5
OworICAgICAgICB9CisKKyAgICAgICAgU3BlY3VsYXRlZFR5cGUgcmVzdWx0VHlwZSgpIG92ZXJy
aWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBTcGVjQnl0ZWNvZGVOdW1iZXI7Cisg
ICAgICAgIH0KKworICAgICAgICBSZWY8RE9NSklUOjpQYXRjaHBvaW50PiBjYWxsRE9NKCkgb3Zl
cnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gcGF0
Y2hwb2ludCA9IERPTUpJVDo6UGF0Y2hwb2ludDo6Y3JlYXRlKCk7CisgICAgICAgICAgICBwYXRj
aHBvaW50LT5zZXRHZW5lcmF0b3IoWz1dKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBET01KSVQ6
OlBhdGNocG9pbnRQYXJhbXMmIHBhcmFtcykgeworI2lmIDAKKyAgICAgICAgICAgICAgICBqaXQu
bG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocGFyYW1zWzJdLmdwcigpLCBKU05vZGU6Om9m
ZnNldE9mV3JhcHBlZCgpKSwgcGFyYW1zLmdwU2NyYXRjaCgwKSk7CisgICAgICAgICAgICAgICAg
aml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFtcy5ncFNjcmF0Y2goMCksIE5v
ZGU6OnBhcmVudE5vZGVNZW1vcnlPZmZzZXQoKSksIHBhcmFtcy5ncFNjcmF0Y2goMCkpOworICAg
ICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBub3ROdWxsID0gaml0LmJyYW5jaFRlc3RQ
dHIoQ0NhbGxIZWxwZXJzOjpOb25aZXJvLCBwYXJhbXMuZ3BTY3JhdGNoKDApKTsKKyAgICAgICAg
ICAgICAgICBqaXQubW92ZShKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpLCBwYXJhbXNbMF0uZ3By
KCkpOworICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAo
KTsKKworICAgICAgICAgICAgICAgIG5vdE51bGwubGluaygmaml0KTsKKyAgICAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dDYXNlczsKKyAgICAgICAgICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKGppdC5icmFuY2hUZXN0OChDQ2FsbEhlbHBlcnM6Olplcm8sIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhwYXJhbXNbMV0uZ3ByKCksIEpTRE9NR2xvYmFsT2JqZWN0OjpvZmZzZXRP
ZldvcmxkSXNOb3JtYWwoKSkpKTsKKworICAgICAgICAgICAgICAgIC8vIFdlYWsgZGVyZWZlcmVu
Y2UuCisgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBh
cmFtcy5ncFNjcmF0Y2goMCksIFNjcmlwdFdyYXBwYWJsZTo6b2Zmc2V0T2ZXcmFwcGVyPE5vZGU+
KCkpLCBwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQo
bV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHBhcmFtc1swXS5ncHIoKSkp
OworICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihD
Q2FsbEhlbHBlcnM6Ok5vblplcm8sIENDYWxsSGVscGVyczo6QWRkcmVzcyhwYXJhbXNbMF0uZ3By
KCksIFdlYWtJbXBsOjpvZmZzZXRPZldlYWtIYW5kbGVPd25lcigpKSwgVHJ1c3RlZEltbTMyKDB4
MykpKTsKKyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
cGFyYW1zWzBdLmdwcigpLCBXZWFrSW1wbDo6b2Zmc2V0T2ZKU1ZhbHVlKCkpLCBwYXJhbXNbMF0u
Z3ByKCkpOworICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVz
dFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHBhcmFtc1swXS5ncHIoKSkpOworCisgICAgICAgICAg
ICAgICAgcGFyYW1zLmFkZFNsb3dQYXRoQ2FsbChzbG93Q2FzZXMsIGppdCwgdG9KUywgcGFyYW1z
WzBdLmdwcigpLCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtcy5ncFNjcmF0Y2goMCkpOworCisgICAg
ICAgICAgICAgICAgZG9uZS5saW5rKCZqaXQpOworI2Vsc2UKKyAgICAgICAgICAgICAgICBwYXJh
bXMuYWRkU2xvd1BhdGhDYWxsKGppdC5qdW1wKCksIGppdCwgc3RhdGljX2Nhc3Q8RW5jb2RlZEpT
VmFsdWUoKikoRXhlY1N0YXRlKiwgdm9pZCopPihbXShFeGVjU3RhdGUqLCB2b2lkKiBwb2ludGVy
KSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
c3RhdGljX2Nhc3Q8RE9NSklUR2V0dGVyKj4ocG9pbnRlciktPnZhbHVlKCkpKTsKKyAgICAgICAg
ICAgICAgICB9KSwgcGFyYW1zWzBdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCkpOworICAgICAgICAg
ICAgICAgIC8vIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFtc1syXS5ncHIo
KSwgRE9NSklUR2V0dGVyOjpvZmZzZXRPZlZhbHVlKCkpLCBwYXJhbXNbMF0uZ3ByKCkpOworICAg
ICAgICAgICAgICAgIC8vIGppdC5vcjY0KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlciwg
cGFyYW1zWzBdLmdwcigpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQ0NhbGxIZWxwZXJzOjpK
dW1wTGlzdCgpOworI2VuZGlmCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVybiBw
YXRjaHBvaW50OworICAgICAgICB9CisKKyAgICAgICAgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4g
Y2hlY2tET00oKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBSZWY8RE9NSklUOjpQ
YXRjaHBvaW50PiBwYXRjaHBvaW50ID0gRE9NSklUOjpQYXRjaHBvaW50OjpjcmVhdGUoKTsKKyAg
ICAgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcihbPV0oQ0NhbGxIZWxwZXJzJiBqaXQs
IGNvbnN0IERPTUpJVDo6UGF0Y2hwb2ludFBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBmYWlsdXJlQ2FzZXM7CisgICAgICAgICAgICAgICAg
ZmFpbHVyZUNhc2VzLmFwcGVuZChqaXQuYnJhbmNoOCgKKyAgICAgICAgICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpOb3RFcXVhbCwKKyAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHBhcmFtc1swXS5ncHIoKSwgSlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksCisg
ICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTQzo6SlNUeXBl
KExhc3RKU0NPYmplY3RUeXBlICsgMSkpKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWx1
cmVDYXNlczsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuIHBhdGNocG9pbnQ7
CisgICAgICAgIH0KKyAgICB9OworCisgICAgc3RhdGljIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBk
b21KSVRHZXR0ZXJHZXR0ZXJTZXR0ZXIoKQorICAgIHsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPERPTUpJVEdldHRlckRPTUpJVD4gZ3JhcGg7CisgICAgICAgIHJldHVybiAmZ3JhcGgu
Z2V0KCk7CisgICAgfQorCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlZhbHVlKCkgeyBy
ZXR1cm4gT0JKRUNUX09GRlNFVE9GKERPTUpJVEdldHRlciwgbV92YWx1ZSk7IH0KKworcHJpdmF0
ZToKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiB2bSkKKyAgICB7CisgICAgICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICAgICAgRE9NSklUOjpHZXR0ZXJTZXR0ZXIqIGRvbUpJ
VCA9IGRvbUpJVEdldHRlckdldHRlclNldHRlcigpOworICAgICAgICBDdXN0b21HZXR0ZXJTZXR0
ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBk
b21KSVQtPmdldHRlcigpLCBkb21KSVQtPnNldHRlcigpLCBkb21KSVQpOworICAgICAgICBwdXRE
aXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjdXN0
b21HZXR0ZXIiKSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBSZWFkT25seSB8IEN1c3RvbUFjY2Vzc29y
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCisgICAg
eworICAgICAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICAgICAgRE9NSklUR2V0dGVyKiB0aGlzT2JqZWN0
ID0ganNEeW5hbWljQ2FzdDxET01KSVRHZXR0ZXIqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CisgICAgICAgIGlmICghdGhpc09iamVjdCkKKyAgICAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcih0aGlzT2JqZWN0LT5tX3ZhbHVlKSk7CisgICAgfQorCisgICAgaW50MzJfdCBtX3Zh
bHVlIHsgNDIgfTsKK307CisKIAogY29uc3QgQ2xhc3NJbmZvIEVsZW1lbnQ6OnNfaW5mbyA9IHsg
IkVsZW1lbnQiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEVsZW1lbnQp
IH07CiBjb25zdCBDbGFzc0luZm8gTWFzcXVlcmFkZXI6OnNfaW5mbyA9IHsgIk1hc3F1ZXJhZGVy
IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShNYXNxdWVyYWRlcikgfTsK
IGNvbnN0IENsYXNzSW5mbyBSb290OjpzX2luZm8gPSB7ICJSb290IiwgJkJhc2U6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShSb290KSB9OwogY29uc3QgQ2xhc3NJbmZvIEltcHVyZUdl
dHRlcjo6c19pbmZvID0geyAiSW1wdXJlR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShJbXB1cmVHZXR0ZXIpIH07CiBjb25zdCBDbGFzc0luZm8gQ3VzdG9tR2V0
dGVyOjpzX2luZm8gPSB7ICJDdXN0b21HZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEN1c3RvbUdldHRlcikgfTsKK2NvbnN0IENsYXNzSW5mbyBET01KSVRHZXR0
ZXI6OnNfaW5mbyA9IHsgIkRPTUpJVEdldHRlciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9N
RVRIT0RfVEFCTEUoRE9NSklUR2V0dGVyKSB9OwogY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVBcnJh
eTo6c19pbmZvID0geyAiUnVudGltZUFycmF5IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01F
VEhPRF9UQUJMRShSdW50aW1lQXJyYXkpIH07CiBjb25zdCBDbGFzc0luZm8gU2ltcGxlT2JqZWN0
OjpzX2luZm8gPSB7ICJTaW1wbGVPYmplY3QiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKFNpbXBsZU9iamVjdCkgfTsKIHN0YXRpYyBib29sIHRlc3QyNjJBc3luY1Bhc3Nl
ZCB7IGZhbHNlIH07CkBAIC01NzEsNiArNzA0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVQcm94eShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlUnVudGltZUFycmF5KEV4ZWNT
dGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVh
dGVJbXB1cmVHZXR0ZXIoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUN1c3RvbUdldHRlck9iamVjdChFeGVjU3RhdGUqKTsKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0
dGVyT2JqZWN0KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DcmVhdGVCdWlsdGluKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QoRXhlY1N0YXRlKik7
CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldEltcHVyZUdl
dHRlckRlbGVnYXRlKEV4ZWNTdGF0ZSopOwpAQCAtODU1LDYgKzk4OSw3IEBAIGNsYXNzIEdsb2Jh
bE9iamVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAKICAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJjcmVhdGVJbXB1cmVHZXR0ZXIiLCBmdW5jdGlvbkNyZWF0ZUltcHVyZUdldHRlciwgMSk7
CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0IiwgZnVu
Y3Rpb25DcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2
bSwgImNyZWF0ZURPTUpJVEdldHRlck9iamVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVy
T2JqZWN0LCAwKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVCdWlsdGluIiwgZnVu
Y3Rpb25DcmVhdGVCdWlsdGluLCAyKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVH
bG9iYWxPYmplY3QiLCBmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdCwgMCk7CiAgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAic2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUiLCBmdW5jdGlvblNldEltcHVy
ZUdldHRlckRlbGVnYXRlLCAyKTsKQEAgLTEzNTksNiArMTQ5NCwxNCBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0KEV4ZWNTdGF0
ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmplY3Qo
RXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOworICAgIFN0
cnVjdHVyZSogc3RydWN0dXJlID0gRE9NSklUR2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+
dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBqc051bGwoKSk7CisgICAgRE9NSklU
R2V0dGVyKiByZXN1bHQgPSBET01KSVRHZXR0ZXI6OmNyZWF0ZShleGVjLT52bSgpLCBzdHJ1Y3R1
cmUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKK30KKwogRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldEltcHVyZUdldHRlckRlbGVnYXRlKEV4ZWNT
dGF0ZSogZXhlYykKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmgKaW5kZXggZDcw
MmRkZjRkYTA1NzY5MDVmNzljZWFkNjBiNmEyM2NkYjljMzY2Ni4uNDRiNzMwNmE1ODk5NTlhZjJm
YmUzNmQxNTEwMDY2NGQ0YTA2OGQyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmgKQEAgLTMxLDYgKzMxLDkgQEAKICNpbmNsdWRl
ICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNwYWNlIEpTQyB7CituYW1lc3BhY2UgRE9NSklUIHsKK2Ns
YXNzIEdldHRlclNldHRlcjsKK30KIAogY2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFsIDog
cHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6CkBAIC00MCwxNSArNDMsMTYgQEAgY2xhc3MgQ3VzdG9t
R2V0dGVyU2V0dGVyIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgdHlwZWRlZiBQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYyBDdXN0b21HZXR0ZXI7CiAgICAgdHlwZWRlZiBQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYyBDdXN0b21TZXR0ZXI7CiAKLSAgICBzdGF0aWMgQ3VzdG9tR2V0
dGVyU2V0dGVyKiBjcmVhdGUoVk0mIHZtLCBDdXN0b21HZXR0ZXIgY3VzdG9tR2V0dGVyLCBDdXN0
b21TZXR0ZXIgY3VzdG9tU2V0dGVyKQorICAgIHN0YXRpYyBDdXN0b21HZXR0ZXJTZXR0ZXIqIGNy
ZWF0ZShWTSYgdm0sIEN1c3RvbUdldHRlciBjdXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlciBjdXN0
b21TZXR0ZXIsIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21KSVQgPSBudWxscHRyKQogICAgIHsK
LSAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBuZXcgKE5v
dE51bGwsIGFsbG9jYXRlQ2VsbDxDdXN0b21HZXR0ZXJTZXR0ZXI+KHZtLmhlYXApKSBDdXN0b21H
ZXR0ZXJTZXR0ZXIodm0sIGN1c3RvbUdldHRlciwgY3VzdG9tU2V0dGVyKTsKKyAgICAgICAgQ3Vz
dG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBuZXcgKE5vdE51bGwsIGFsbG9j
YXRlQ2VsbDxDdXN0b21HZXR0ZXJTZXR0ZXI+KHZtLmhlYXApKSBDdXN0b21HZXR0ZXJTZXR0ZXIo
dm0sIGN1c3RvbUdldHRlciwgY3VzdG9tU2V0dGVyLCBkb21KSVQpOwogICAgICAgICBjdXN0b21H
ZXR0ZXJTZXR0ZXItPmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICAgICAgcmV0dXJuIGN1c3RvbUdl
dHRlclNldHRlcjsKICAgICB9CiAKICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6OkN1c3RvbUdldHRl
ciBnZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX2dldHRlcjsgfQogICAgIEN1c3RvbUdldHRlclNl
dHRlcjo6Q3VzdG9tU2V0dGVyIHNldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGVyOyB9Cisg
ICAgRE9NSklUOjpHZXR0ZXJTZXR0ZXIqIGRvbUpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tSklU
OyB9CiAKICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CkBAIC01
OCwxNSArNjIsMTcgQEAgY2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFsIDogcHVibGljIEpT
Q2VsbCB7CiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKIAogcHJpdmF0ZToKLSAgICBDdXN0b21H
ZXR0ZXJTZXR0ZXIoVk0mIHZtLCBDdXN0b21HZXR0ZXIgZ2V0dGVyLCBDdXN0b21TZXR0ZXIgc2V0
dGVyKQorICAgIEN1c3RvbUdldHRlclNldHRlcihWTSYgdm0sIEN1c3RvbUdldHRlciBnZXR0ZXIs
IEN1c3RvbVNldHRlciBzZXR0ZXIsIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21KSVQpCiAgICAg
ICAgIDogSlNDZWxsKHZtLCB2bS5jdXN0b21HZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUuZ2V0KCkpCiAg
ICAgICAgICwgbV9nZXR0ZXIoZ2V0dGVyKQogICAgICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAg
ICAgICAgLCBtX2RvbUpJVChkb21KSVQpCiAgICAgewogICAgIH0KIAogICAgIEN1c3RvbUdldHRl
ciBtX2dldHRlcjsKICAgICBDdXN0b21TZXR0ZXIgbV9zZXR0ZXI7CisgICAgRE9NSklUOjpHZXR0
ZXJTZXR0ZXIqIG1fZG9tSklUOwogfTsKIAogSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYWxsQ3Vz
dG9tU2V0dGVyKEV4ZWNTdGF0ZSosIEN1c3RvbUdldHRlclNldHRlcjo6Q3VzdG9tU2V0dGVyLCBi
b29sIGlzQWNjZXNzb3IsIEpTVmFsdWUgdGhpc1ZhbHVlLCBKU1ZhbHVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDY5NWJmYjcyZWZkNDY3NmZmYWIxYmQ1
YzYyZGQyNjQ1NzgwNWU4OTAuLmE2MDlhNDhjOTA4NmM0M2JkNGZiZTE1Y2I3ZWQ5OWM3Mzg0NGY5
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTI5MCw3
ICsxMjkwLDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpTT2JqZWN0OjpmaWxsQ3VzdG9tR2V0dGVy
UHJvcGVydHlTbG90KFByb3BlcnR5U2xvdCYgc2xvdCwgSlMKIAogICAgIC8vIFRoaXMgYWNjZXNz
IGlzIGNhY2hlYWJsZSBiZWNhdXNlIFN0cnVjdHVyZSByZXF1aXJlcyBhbiBhdHRyaWJ1dGVDaGFu
Z2VkVHJhbnNpdGlvbgogICAgIC8vIGlmIHRoaXMgcHJvcGVydHkgc3RvcHMgYmVpbmcgYW4gYWNj
ZXNzb3IuCi0gICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpcywgYXR0cmlidXRlcywganND
YXN0PEN1c3RvbUdldHRlclNldHRlcio+KGN1c3RvbUdldHRlclNldHRlciktPmdldHRlcigpKTsK
KyAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzLCBhdHRyaWJ1dGVzLCBqc0Nhc3Q8Q3Vz
dG9tR2V0dGVyU2V0dGVyKj4oY3VzdG9tR2V0dGVyU2V0dGVyKS0+Z2V0dGVyKCksIGpzQ2FzdDxD
dXN0b21HZXR0ZXJTZXR0ZXIqPihjdXN0b21HZXR0ZXJTZXR0ZXIpLT5kb21KSVQoKSk7CiB9CiAK
IC8vIEl0IG1heSBzZWVtIGNyYXp5IHRvIGlubGluZSBhIGZ1bmN0aW9uIHRoaXMgbGFyZ2UsIGVz
cGVjaWFsbHkgYSB2aXJ0dWFsIGZ1bmN0aW9uLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTG9va3VwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9M
b29rdXAuaAppbmRleCA2OTJkN2M3ODlmZWQ0N2I1YWQ3NDBjOWJkYTcyYzY2MjRhNjVhNGU3Li44
ZmY1ZmUyNThlYTgzY2VkMTUyNzMxNDRlMDYxODMzNmEyMWI0NTViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Mb29rdXAuaApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkJhdGNo
ZWRUcmFuc2l0aW9uT3B0aW1pemVyLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVk
ZSAiQ3VzdG9tR2V0dGVyU2V0dGVyLmgiCisjaW5jbHVkZSAiRE9NSklUR2V0dGVyU2V0dGVyLmgi
CiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklkZW50aWZpZXJJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiSW50cmluc2ljLmgiCkBAIC00Niw2ICs0Nyw3IEBAIHR5cGVkZWYgUHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmMgR2V0RnVuY3Rpb247CiB0eXBlZGVmIFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jIFB1dEZ1bmN0aW9uOwogdHlwZWRlZiBGdW5jdGlvbkV4ZWN1dGFibGUq
ICgqQnVpbHRpbkdlbmVyYXRvcikoVk0mKTsKIHR5cGVkZWYgSlNWYWx1ZSAoKkxhenlQcm9wZXJ0
eUNhbGxiYWNrKShWTSYsIEpTT2JqZWN0Kik7Cit0eXBlZGVmIERPTUpJVDo6R2V0dGVyU2V0dGVy
KiAoKkRPTUpJVEdldHRlclNldHRlckdlbmVyYXRvcikodm9pZCk7CiAKIC8vIEhhc2ggdGFibGUg
Z2VuZXJhdGVkIGJ5IHRoZSBjcmVhdGVfaGFzaF90YWJsZSBzY3JpcHQuCiBzdHJ1Y3QgSGFzaFRh
YmxlVmFsdWUgewpAQCAtNzgsNiArODAsOCBAQCBzdHJ1Y3QgSGFzaFRhYmxlVmFsdWUgewogICAg
IEdldEZ1bmN0aW9uIHByb3BlcnR5R2V0dGVyKCkgY29uc3QgeyBBU1NFUlQoIShtX2F0dHJpYnV0
ZXMgJiBCdWlsdGluT3JGdW5jdGlvbk9yQWNjZXNzb3JPckxhenlQcm9wZXJ0eU9yQ29uc3RhbnQp
KTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8R2V0RnVuY3Rpb24+KG1fdmFsdWVzLnZhbHVlMSk7
IH0KICAgICBQdXRGdW5jdGlvbiBwcm9wZXJ0eVB1dHRlcigpIGNvbnN0IHsgQVNTRVJUKCEobV9h
dHRyaWJ1dGVzICYgQnVpbHRpbk9yRnVuY3Rpb25PckFjY2Vzc29yT3JMYXp5UHJvcGVydHlPckNv
bnN0YW50KSk7IHJldHVybiByZWludGVycHJldF9jYXN0PFB1dEZ1bmN0aW9uPihtX3ZhbHVlcy52
YWx1ZTIpOyB9CiAKKyAgICBET01KSVQ6OkdldHRlclNldHRlciogZG9tSklUKCkgY29uc3QgeyBB
U1NFUlQobV9hdHRyaWJ1dGVzICYgRE9NSklUQXR0cmlidXRlKTsgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8RE9NSklUR2V0dGVyU2V0dGVyR2VuZXJhdG9yPihtX3ZhbHVlcy52YWx1ZTEpKCk7IH0K
KwogICAgIE5hdGl2ZUZ1bmN0aW9uIGFjY2Vzc29yR2V0dGVyKCkgY29uc3QgeyBBU1NFUlQobV9h
dHRyaWJ1dGVzICYgQWNjZXNzb3IpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOYXRpdmVGdW5j
dGlvbj4obV92YWx1ZXMudmFsdWUxKTsgfQogICAgIE5hdGl2ZUZ1bmN0aW9uIGFjY2Vzc29yU2V0
dGVyKCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVzICYgQWNjZXNzb3IpOyByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxOYXRpdmVGdW5jdGlvbj4obV92YWx1ZXMudmFsdWUyKTsgfQogICAgIEJ1
aWx0aW5HZW5lcmF0b3IgYnVpbHRpbkFjY2Vzc29yR2V0dGVyR2VuZXJhdG9yKCkgY29uc3Q7CkBA
IC0yMjQsNiArMjI4LDEyIEBAIGlubGluZSBib29sIGdldFN0YXRpY1Byb3BlcnR5U2xvdEZyb21U
YWJsZShWTSYgdm0sIGNvbnN0IEhhc2hUYWJsZSYgdGFibGUsIEpTT2JqCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAorICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgRE9NSklUQXR0
cmlidXRlKSB7CisgICAgICAgIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21KSVQgPSBlbnRyeS0+
ZG9tSklUKCk7CisgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIGF0
dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoZW50cnktPmF0dHJpYnV0ZXMoKSksIGRvbUpJVC0+Z2V0dGVy
KCksIGRvbUpJVCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAgIHNsb3Quc2V0
Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoZW50cnkt
PmF0dHJpYnV0ZXMoKSksIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KQEAgLTI1OSw2ICsyNjksNyBAQCBpbmxpbmUgYm9vbCBwdXRFbnRyeShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IEhhc2hUYWJsZVZhbHVlKiBlbnRyeSwgSlNPYmplY3QqIGJhcwogICAgICAg
ICByZXR1cm4gcmVqZWN0KGV4ZWMsIHNsb3QuaXNTdHJpY3RNb2RlKCksIFN0cmljdE1vZGVSZWFk
b25seVByb3BlcnR5V3JpdGVFcnJvcik7CiAKICAgICBpZiAoIShlbnRyeS0+YXR0cmlidXRlcygp
ICYgUmVhZE9ubHkpKSB7CisgICAgICAgIEFTU0VSVCghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBE
T01KSVRBdHRyaWJ1dGUpKTsKICAgICAgICAgYm9vbCBpc0FjY2Vzc29yID0gZW50cnktPmF0dHJp
YnV0ZXMoKSAmIEN1c3RvbUFjY2Vzc29yOwogICAgICAgICBKU1ZhbHVlIHVwZGF0ZVRoaXNWYWx1
ZSA9IGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBDdXN0b21BY2Nlc3NvciA/IHNsb3QudGhpc1ZhbHVl
KCkgOiBKU1ZhbHVlKGJhc2UpOwogICAgICAgICBib29sIHJlc3VsdCA9IGNhbGxDdXN0b21TZXR0
ZXIoZXhlYywgZW50cnktPnByb3BlcnR5UHV0dGVyKCksIGlzQWNjZXNzb3IsIHVwZGF0ZVRoaXNW
YWx1ZSwgdmFsdWUpOwpAQCAtMzM2LDYgKzM0NywxMyBAQCBpbmxpbmUgdm9pZCByZWlmeVN0YXRp
Y1Byb3BlcnR5KFZNJiB2bSwgY29uc3QgUHJvcGVydHlOYW1lJiBwcm9wZXJ0eU5hbWUsIGNvbnN0
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAodmFsdWUuYXR0cmlidXRlcygpICYg
RE9NSklUQXR0cmlidXRlKSB7CisgICAgICAgIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21KSVQg
PSB2YWx1ZS5kb21KSVQoKTsKKyAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0
ZXJTZXR0ZXIgPSBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZG9tSklULT5nZXR0ZXIo
KSwgZG9tSklULT5zZXR0ZXIoKSwgZG9tSklUKTsKKyAgICAgICAgdGhpc09iai5wdXREaXJlY3RD
dXN0b21BY2Nlc3Nvcih2bSwgcHJvcGVydHlOYW1lLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIGF0dHJp
YnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUuYXR0cmlidXRlcygpKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IEN1
c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCB2YWx1ZS5wcm9wZXJ0eUdldHRlcigpLCB2YWx1
ZS5wcm9wZXJ0eVB1dHRlcigpKTsKICAgICB0aGlzT2JqLnB1dERpcmVjdEN1c3RvbUFjY2Vzc29y
KHZtLCBwcm9wZXJ0eU5hbWUsIGN1c3RvbUdldHRlclNldHRlciwgYXR0cmlidXRlc0ZvclN0cnVj
dHVyZSh2YWx1ZS5hdHRyaWJ1dGVzKCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlTbG90LmgKaW5kZXggZTEzN2Q4NDVkNWZjMzEzODg2NWQxNzZhMjJhN2Uz
YmQ1MTdjZWIxMy4uOWRlMTUxYTU2YWEyNzU2Y2ZkMGM2MDAzNjY4MjY2YjE5Zjk5MzJkZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKQEAgLTI2LDcg
KzI2LDkgQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
LQorbmFtZXNwYWNlIERPTUpJVCB7CitjbGFzcyBHZXR0ZXJTZXR0ZXI7Cit9CiBjbGFzcyBFeGVj
U3RhdGU7CiBjbGFzcyBHZXR0ZXJTZXR0ZXI7CiBjbGFzcyBKU09iamVjdDsKQEAgLTQ4LDYgKzUw
LDcgQEAgZW51bSBBdHRyaWJ1dGUgewogICAgIENlbGxQcm9wZXJ0eSAgICAgID0gMSA8PCAxMSwg
Ly8gcHJvcGVydHkgaXMgYSBsYXp5IHByb3BlcnR5IC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNo
dGFibGVzCiAgICAgQ2xhc3NTdHJ1Y3R1cmUgICAgPSAxIDw8IDEyLCAvLyBwcm9wZXJ0eSBpcyBh
IGxhenkgY2xhc3Mgc3RydWN0dXJlIC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAg
ICAgUHJvcGVydHlDYWxsYmFjayAgPSAxIDw8IDEzLCAvLyBwcm9wZXJ0eSB0aGF0IGlzIGEgbGF6
eSBwcm9wZXJ0eSBjYWxsYmFjayAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcworICAg
IERPTUpJVEF0dHJpYnV0ZSAgID0gMSA8PCAxNCwgLy8gcHJvcGVydHkgaXMgYSBET00gSklUIGF0
dHJpYnV0ZSAtIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1
bmN0aW9uID0gQnVpbHRpbiB8IEZ1bmN0aW9uLCAvLyBoZWxwZXIgb25seSB1c2VkIGJ5IHN0YXRp
YyBoYXNodGFibGVzCiAgICAgQnVpbHRpbk9yRnVuY3Rpb25PckxhenlQcm9wZXJ0eSA9IEJ1aWx0
aW4gfCBGdW5jdGlvbiB8IENlbGxQcm9wZXJ0eSB8IENsYXNzU3RydWN0dXJlIHwgUHJvcGVydHlD
YWxsYmFjaywgLy8gaGVscGVyIG9ubHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1
aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nvck9yTGF6eVByb3BlcnR5ID0gQnVpbHRpbiB8IEZ1bmN0
aW9uIHwgQWNjZXNzb3IgfCBDZWxsUHJvcGVydHkgfCBDbGFzc1N0cnVjdHVyZSB8IFByb3BlcnR5
Q2FsbGJhY2ssIC8vIGhlbHBlciBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKQEAgLTE1
Nyw2ICsxNjAsMTEgQEAgY2xhc3MgUHJvcGVydHlTbG90IHsKICAgICAgICAgcmV0dXJuIG1fd2F0
Y2hwb2ludFNldDsKICAgICB9CiAKKyAgICBET01KSVQ6OkdldHRlclNldHRlciogZG9tSklUKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2RvbUpJVDsKKyAgICB9CisKICAgICB2b2lk
IHNldFZhbHVlKEpTT2JqZWN0KiBzbG90QmFzZSwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNWYWx1
ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0ZXNG
b3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykpOwpAQCAtMjExLDcgKzIxOSw3IEBAIGNsYXNzIFByb3Bl
cnR5U2xvdCB7CiAgICAgICAgIG1fb2Zmc2V0ID0gaW52YWxpZE9mZnNldDsKICAgICB9CiAgICAg
Ci0gICAgdm9pZCBzZXRDYWNoZWFibGVDdXN0b20oSlNPYmplY3QqIHNsb3RCYXNlLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzLCBHZXRWYWx1ZUZ1bmMgZ2V0VmFsdWUpCisgICAgdm9pZCBzZXRDYWNoZWFi
bGVDdXN0b20oSlNPYmplY3QqIHNsb3RCYXNlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBHZXRWYWx1
ZUZ1bmMgZ2V0VmFsdWUsIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21KSVQgPSBudWxscHRyKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKGF0dHJpYnV0ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVjdHVy
ZShhdHRyaWJ1dGVzKSk7CiAgICAgICAgIApAQCAtMjIzLDYgKzIzMSw3IEBAIGNsYXNzIFByb3Bl
cnR5U2xvdCB7CiAgICAgICAgIG1fc2xvdEJhc2UgPSBzbG90QmFzZTsKICAgICAgICAgbV9wcm9w
ZXJ0eVR5cGUgPSBUeXBlQ3VzdG9tOwogICAgICAgICBtX29mZnNldCA9ICFpbnZhbGlkT2Zmc2V0
OworICAgICAgICBtX2RvbUpJVCA9IGRvbUpJVDsKICAgICB9CiAKICAgICB2b2lkIHNldEN1c3Rv
bUdldHRlclNldHRlcihKU09iamVjdCogc2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEN1
c3RvbUdldHRlclNldHRlciogZ2V0dGVyU2V0dGVyKQpAQCAtMzE4LDYgKzMyNyw3IEBAIGNsYXNz
IFByb3BlcnR5U2xvdCB7CiAgICAgQ2FjaGVhYmlsaXR5VHlwZSBtX2NhY2hlYWJpbGl0eTsKICAg
ICBQcm9wZXJ0eVR5cGUgbV9wcm9wZXJ0eVR5cGU7CiAgICAgSW50ZXJuYWxNZXRob2RUeXBlIG1f
aW50ZXJuYWxNZXRob2RUeXBlOworICAgIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBtX2RvbUpJVCB7
IG51bGxwdHIgfTsKICAgICBib29sIG1faXNUYWludGVkQnlPcGFxdWVPYmplY3Q7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Cb3guaCBiL1NvdXJjZS9XVEYvd3RmL0JveC5oCmlu
ZGV4IGFkOWQ1YzU3M2YwYmYwNWQwODNlM2I2NWIyMjI3NzViYTM0OTIxNjcuLmI2NjEzMjE5MTkx
NzU4MDY4MTRiNDZhMWQyMGEyZDE3ZDk4YWE2Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0JveC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0JveC5oCkBAIC00MCw2ICs0MCwxMCBAQCBjbGFz
cyBCb3ggewogICAgIHsKICAgICB9CiAKKyAgICBCb3goc3RkOjpudWxscHRyX3QpCisgICAgewor
ICAgIH0KKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBzdGF0aWMg
Qm94IGNyZWF0ZShBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmggYi9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRy
YXMuaAppbmRleCBiYTA0OWZhODdkZmExYzllM2ZhNThlYjRiMGQzMjNjZmQ2OTZiNTIxLi41ZjM4
OGViNGYwZjI1NDc2NzIyOWY5NWIzOTZhMTVkN2Y2ZjAzMTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMu
aApAQCAtNjgsNiArNjgsOCBAQAogLy8gTlVMTCBjYW4gY2F1c2UgY29tcGlsZXIgcHJvYmxlbXMs
IGVzcGVjaWFsbHkgaW4gY2FzZXMgb2YgbXVsdGlwbGUgaW5oZXJpdGFuY2UuCiAjZGVmaW5lIE9C
SkVDVF9PRkZTRVRPRihjbGFzcywgZmllbGQpIChyZWludGVycHJldF9jYXN0PHB0cmRpZmZfdD4o
JihyZWludGVycHJldF9jYXN0PGNsYXNzKj4oMHg0MDAwKS0+ZmllbGQpKSAtIDB4NDAwMCkKIAor
I2RlZmluZSBDQVNUX09GRlNFVChmcm9tLCB0bykgKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihzdGF0aWNfY2FzdDx0bz4oKHJlaW50ZXJwcmV0X2Nhc3Q8ZnJvbT4oMHg0MDAwKSkpKSAtIDB4
NDAwMCkKKwogLy8gU1RSSU5HSVpFOiBDYW4gY29udmVydCBhbnkgdmFsdWUgdG8gcXVvdGVkIHN0
cmluZywgZXZlbiBleHBhbmRhYmxlIG1hY3JvcwogI2RlZmluZSBTVFJJTkdJWkUoZXhwKSAjZXhw
CiAjZGVmaW5lIFNUUklOR0laRV9WQUxVRV9PRihleHApIFNUUklOR0laRShleHApCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9kb21qaXQvRE9NSklUR3JhcGgu
aCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2RvbWppdC9ET01KSVRHcmFwaC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY0ODAzYzdmOGJmNTQ0NmNkNGJlNWMzODRjZGI0YzUxYjMyNjE3YzMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9kb21qaXQv
RE9NSklUR3JhcGguaApAQCAtMCwwICsxLDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfRE9NSklU
R3JhcGhfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9ET01KSVRHcmFwaF9oCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvRE9NSklUR3JhcGguaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFr
ZQppbmRleCA2ZjY4N2U4ZWNkNzNkYTg4YjQ5ZDg3OTc1OGNhYmQ1NTY3ZjAzNzJhLi43ZTk5YTQ5
MWU2NDg3NmQwY2E4NjEzYWRjNDkyMDNjYmE0ZmQ2MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5j
bWFrZQpAQCAtMTQsNiArMTQsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNU
T1JJRVMKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVjb21waWxlciIKICAgICAiJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L2RmZyIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Rpc2Fz
c2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RvbWppdCIKICAgICAiJHtKQVZB
U0NSSVBUQ09SRV9ESVJ9L2hlYXAiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZWJ1Z2dl
ciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2ludGVycHJldGVyIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bUdUSy5jbWFrZQppbmRleCA0MWJlMjgzMTI5OTdhNDg4M2M5OGY5ZWExYmY2MTVjYTlkODI1Yjlm
Li5hZDI3ZTU2YzA3Y2UzZjZjZTAzNGExYWQ3YTNjYTZkNzAyZjE5YmE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUdUSy5jbWFrZQpAQCAtMTksNiArMTksNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xV
REVfRElSRUNUT1JJRVMKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVjb21waWxlciIK
ICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RmZyIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L2Rpc2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RvbWppdCIKICAg
ICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2hlYXAiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElS
fS9kZWJ1Z2dlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2ludGVycHJldGVyIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCAzNGI4ZGIyNzBiZjY5NGIyZTA3ZDE4NDkxYWE4NzQ2
NzQzNTY3ZmM4Li5iYzQ3YzRlYWFkZDY2OWI0NTRmNzY4NmJhMzIyNTRlY2MxODZjODIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtODAsNiArODAsNyBAQCBsaXN0KEFQUEVORCBXZWJD
b3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hl
YWRlcnMvYmluZGluZ3MiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2J5
dGVjb2RlIgogICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9kZWJ1Z2dlciIK
KyAgICAiJHtXRUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvZG9taml0IgogICAgICIke1dF
QkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9oZWFwIgogICAgICIke1dFQkNPUkVfRElSfS9G
b3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0b3IiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRp
bmdIZWFkZXJzL2ludGVycHJldGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBhZWQ4
ZGViMGEyODg3N2Q5NTY2ZDM3OGJkNTlhZGNkMGVmOGE3Y2VkLi5hMzhmZTE5M2VjY2EzMDdkMTU5
NWFiNGJhMzdhZjI1YzZjNTIxMGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTUs
NiArMTUsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIiCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRl
cnMvSmF2YVNjcmlwdENvcmUvZGZnIgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0Zvcndh
cmRpbmdIZWFkZXJzL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlciIKKyAgICAiJHtERVJJVkVE
X1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9kb21qaXQiCiAg
ICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENv
cmUvaGVhcCIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlciIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3
YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlciIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NmE4ZGVkOGNh
ODE3YjFhNDM2NzEzYjFhNGU4MzQwYmM3ZTU3ZTAzLi4yYmM2ZDUwNzViYzBmZmUzNGNmODU2Y2Vl
Yzc1ZTM3Zjc3YmQwZjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDgzMiw2ICsxNDgzMiw3IEBACiAJCQkJRjUyM0QxODQw
MkRFNDJFODAxODYzNUNBIC8qIGNzcyAqLywKIAkJCQkyNkI5OTk4RDE4MDNBREZBMDBEMDExMjEg
LyogY3Nzaml0ICovLAogCQkJCUY1MjNEMzI0MDJERTQ0NzgwMTg2MzVDQSAvKiBkb20gKi8sCisJ
CQkJRTNGRTJBM0ExRDlGMTVCNTAwQzUwQjFGIC8qIGRvbWppdCAqLywKIAkJCQk5MzMwOUQ4NjA5
OUU2NDkxMDA1NkU1ODEgLyogZWRpdGluZyAqLywKIAkJCQk5NzZENkM1NzEyMkI4QTE4MDAxRkQx
RjcgLyogZmlsZWFwaSAqLywKIAkJCQk1MTc0MUQwODBCMDcyNTcwMDBFRDQ0MkMgLyogaGlzdG9y
eSAqLywKQEAgLTIyMjQzLDYgKzIyMjQ0LDEzIEBACiAJCQluYW1lID0gQ3J5cHRvOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTNGRTJBM0ExRDlGMTVCNTAwQzUwQjFGIC8q
IGRvbWppdCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkp
OworCQkJcGF0aCA9IGRvbWppdDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJ
CUU0NkU5Nzg2MERBQUQ2MUIwMDcxRTg5NCAvKiBhbmltYXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggZDQwYzQzZjYzZDU3ZTdlNTk3MGM3ZTYyZWZhODU2
YWU2NGUzMmYyOS4uMTE2ZDVkZGY1MTk5MzdmYzY2MTM1NWEyYzg5YmViYjM4MDViYzJhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC03
Miw2ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBET01XcmFwcGVyV29y
bGQmIHdvcmxkKCkgeyByZXR1cm4gbV93b3JsZC5nZXQoKTsgfQogICAgICAgICBib29sIHdvcmxk
SXNOb3JtYWwoKSBjb25zdCB7IHJldHVybiBtX3dvcmxkSXNOb3JtYWw7IH0KKyAgICAgICAgc3Rh
dGljIHB0cmRpZmZfdCBvZmZzZXRPZldvcmxkSXNOb3JtYWwoKSB7IHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoSlNET01HbG9iYWxPYmplY3QsIG1fd29ybGRJc05vcm1hbCk7IH0KIAogICAgICAgICBK
U0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucyYgYnVpbHRpbkludGVybmFsRnVuY3Rpb25zKCkgeyBy
ZXR1cm4gbV9idWlsdGluSW50ZXJuYWxGdW5jdGlvbnM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdyYXBwZXIuaAppbmRleCA2MjUxMGNkYzI1YWViZGFmZjliYTIzNTA3NWJj
OTc0NDQ3M2U5OGNhLi4wMDlmNmRmMDdlZWIxMTYyMDAxOGI4MzI1YjkwZWM1MjI3MzExZmRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApAQCAtNTksNiArNTks
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBJbXBsZW1lbnRhdGlvbkNsYXNzPiBjbGFzcyBKU0RPTVdy
YXBwZXIgOiBwdWJsaWMgSlNET01PYmplY3QgewogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBp
c0RPTVdyYXBwZXIgPSB0cnVlOwogCiAgICAgSW1wbGVtZW50YXRpb25DbGFzcyYgd3JhcHBlZCgp
IGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8SW1wbGVtZW50YXRpb25DbGFzcyY+KG1fd3JhcHBl
ZC5nZXQoKSk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mV3JhcHBlZCgpIHsgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihKU0RPTVdyYXBwZXI8SW1wbGVtZW50YXRpb25DbGFzcz4sIG1f
d3JhcHBlZCk7IH0KIAogcHJvdGVjdGVkOgogICAgIEpTRE9NV3JhcHBlcihKU0M6OlN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJlZjxJbXBs
ZW1lbnRhdGlvbkNsYXNzPiYmIGltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFdyYXBwYWJsZS5oCmluZGV4IDVkOTMyNjExNGFhNmYwYzFkNGYwYjdiY2UxNjRhMTIzOGUy
NmE5MGMuLjJlNTgyYmI1MGJjOTllYWIzYjA4NjFkY2UwZjg5NzhiN2JjOTU0ZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCkBAIC00Nyw2ICs0Nyw3
IEBAIGNsYXNzIFNjcmlwdFdyYXBwYWJsZSB7CiAgICAgSlNET01PYmplY3QqIHdyYXBwZXIoKSBj
b25zdDsKICAgICB2b2lkIHNldFdyYXBwZXIoSlNET01PYmplY3QqLCBKU0M6OldlYWtIYW5kbGVP
d25lciosIHZvaWQqKTsKICAgICB2b2lkIGNsZWFyV3JhcHBlcihKU0RPTU9iamVjdCopOworICAg
IHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXcmFwcGVyKCkgeyByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKFNjcmlwdFdyYXBwYWJsZSwgbV93cmFwcGVyKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgflNj
cmlwdFdyYXBwYWJsZSgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBkMWZkMjQxMzFiMDI2ZjI4ODkxZTYxODhlM2Ji
NjgxNTI5YjEwYjdhLi5hODE1N2JhNTY4N2M0ZWMyODA5MzBkYTE1MDQ0NDhjZTk0MjNiZmNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQpAQCAtNjEwLDYgKzYxMCw3IEBAIHN1YiBHZXRKU0NBdHRyaWJ1dGVzRm9yQXR0cmlidXRl
CiAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RW51bSIpIGlmICgkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e05vdEVudW1lcmFibGV9IHx8ICRpc19nbG9iYWxfY29u
c3RydWN0b3IpOwogICAgIHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5
KCRhdHRyaWJ1dGUpOwogICAgIHB1c2goQHNwZWNpYWxzLCAiQ3VzdG9tQWNjZXNzb3IiKSB1bmxl
c3MgJGlzX2dsb2JhbF9jb25zdHJ1Y3RvciBvciBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkYXR0
cmlidXRlKTsKKyAgICBwdXNoKEBzcGVjaWFscywgIkRPTUpJVEF0dHJpYnV0ZSIpIGlmICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9OwogICAgIHB1
c2goQHNwZWNpYWxzLCAiQWNjZXNzb3IgfCBCdWlsdGluIikgaWYgIElzSlNCdWlsdGluKCRpbnRl
cmZhY2UsICRhdHRyaWJ1dGUpOwogICAgIHJldHVybiAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIg
fCAiLCBAc3BlY2lhbHMpIDogIjAiOwogfQpAQCAtMTMwNiw2ICsxMzA3LDggQEAgc3ViIEdlbmVy
YXRlSGVhZGVyCiAgICAgbXkgJGhhc0ZvcndhcmREZWNsYXJpbmdGdW5jdGlvbnMgPSAwOwogICAg
IG15ICRoYXNGb3J3YXJkRGVjbGFyaW5nQXR0cmlidXRlcyA9IDA7CiAKKyAgICBteSAkaGFzRE9N
SklUQXR0cmlidXRlcyA9IDA7CisKICAgICAjIEF0dHJpYnV0ZSBhbmQgZnVuY3Rpb24gZW51bXMK
ICAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwKSB7CiAgICAgICAgIGZvcmVhY2ggKEB7JGludGVy
ZmFjZS0+YXR0cmlidXRlc30pIHsKQEAgLTEzMjAsNiArMTMyMyw3IEBAIHN1YiBHZW5lcmF0ZUhl
YWRlcgogICAgICAgICAgICAgICAgICRuZWVkc1Zpc2l0Q2hpbGRyZW4gPSAxOwogICAgICAgICAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0
cmluZzsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRoYXNET01KSVRBdHRyaWJ1dGVzID0g
MSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQi
fTsKIAogICAgICAgICAgICAgJGhhc0ZvcndhcmREZWNsYXJpbmdBdHRyaWJ1dGVzID0gMSBpZiAk
YXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0ZvcndhcmREZWNsYXJl
SW5IZWFkZXJ9OwogICAgICAgICB9CkBAIC0xNTI3LDYgKzE1MzEsMTUgQEAgc3ViIEdlbmVyYXRl
SGVhZGVyCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAoJGhhc0RPTUpJVEF0dHJpYnV0ZXMp
IHsKKyAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8ZG9taml0L0RPTUpJVEdyYXBoLmg+In0gPSAx
OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCIvLyBET01KSVQgZW1pdHRlcnMgZm9yIGF0
dHJpYnV0ZXNcblxuIik7CisgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJm
YWNlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn07CisgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpET01KSVQ6OkdyYXBoKiBkb21KSVRHcmFwaEZvciIg
LiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5uYW1lKSAuICIodm9pZCk7XG4iKTsKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIGlmIChIYXNDdXN0b21Db25zdHJ1Y3RvcigkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiLy8gQ3VzdG9tIGNvbnN0cnVjdG9yXG4iKTsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3Qke2NsYXNzTmFtZX0oSlNDOjpFeGVjU3RhdGUmKTtcblxuIik7CkBAIC0xNjAzLDE0ICsx
NjE2LDE5IEBAIHN1YiBHZW5lcmF0ZVByb3BlcnRpZXNIYXNoVGFibGUKICAgICAgICAgbXkgJHNw
ZWNpYWwgPSBHZXRKU0NBdHRyaWJ1dGVzRm9yQXR0cmlidXRlKCRpbnRlcmZhY2UsICRhdHRyaWJ1
dGUpOwogICAgICAgICBwdXNoKEAkaGFzaFNwZWNpYWxzLCAkc3BlY2lhbCk7CiAKLSAgICAgICAg
bXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFt
ZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgIHB1c2goQCRoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKLQot
ICAgICAgICBpZiAoSXNSZWFkb25seSgkYXR0cmlidXRlKSkgeworICAgICAgICBpZiAoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn0pIHsKKyAgICAg
ICAgICAgIHB1c2goQCRoYXNoVmFsdWUxLCAiZG9tSklUR3JhcGhGb3IiIC4gJGludGVyZmFjZS0+
bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
bmFtZSkpOwogICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICIwIik7CiAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgk
aW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQCRo
YXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1
dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAg
ICAgICAgcHVzaChAJGhhc2hWYWx1ZTEsICRnZXR0ZXIpOworCisgICAgICAgICAgICBpZiAoSXNS
ZWFkb25seSgkYXR0cmlidXRlKSkgeworICAgICAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUy
LCAiMCIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBteSAkc2V0dGVy
ID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmli
dXRlKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkaGFzaFZhbHVlMiwgJHNldHRlcik7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkYXR0cmli
dXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsfTsKQEAgLTIz
OTEsMTcgKzI0MDksMjMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
IG15IEBzcGVjaWFscyA9ICgpOwogICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVs
ZXRlIikgdW5sZXNzICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
RGVsZXRhYmxlfTsKICAgICAgICAgICAgIHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJ
c1JlYWRvbmx5KCRhdHRyaWJ1dGUpOworICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJET01K
SVRBdHRyaWJ1dGUiKSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJET01KSVQifTsKICAgICAgICAgICAgIG15ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDAp
ID8gam9pbigiIHwgIiwgQHNwZWNpYWxzKSA6ICIwIjsKICAgICAgICAgICAgIHB1c2goQGhhc2hT
cGVjaWFscywgJHNwZWNpYWwpOwogCi0gICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmli
dXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAg
ICAgICAgIHB1c2goQGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwotCi0gICAgICAgICAgICBpZiAoSXNS
ZWFkb25seSgkYXR0cmlidXRlKSkgeworICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9KSB7CisgICAgICAgICAgICAgICAg
cHVzaChAaGFzaFZhbHVlMSwgImRvbUpJVEdyYXBoRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAk
Y29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpKTsK
ICAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAiMCIpOwogICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFt
ZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgICAgICBw
dXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAgICAgICAgICAgICAgICBteSAkZ2V0dGVyID0g
R2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRl
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKKworICAgICAg
ICAgICAgICAgIGlmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGlu
dGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGhhc2hWYWx1ZTIsICRzZXR0ZXIpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH07CkBAIC0yOTU5LDYgKzI5ODMsMzgg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG5cbiIpOwogCisgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn0pIHsKKyAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyI8d3RmL05ldmVyRGVzdHJveWVkLmg+In0gPSAxOworICAgICAgICAgICAgICAg
IG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICAgICAgICAgICAgICBt
eSAkYXR0cmlidXRlTmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAg
ICAgICAgICBteSAkZG9tSklUQ2xhc3NOYW1lID0gIkRPTUpJVCIgLiAkaW50ZXJmYWNlTmFtZSAu
ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7
CisgICAgICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGlu
dGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgbXkgJHNl
dHRlciA9IElzUmVhZG9ubHkoJGF0dHJpYnV0ZSkgPyAibnVsbHB0ciIgOiBHZXRBdHRyaWJ1dGVT
ZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAg
ICAgICAgICMgQ0FTVF9PRkZTRVQoJGludGVyZmFjZU5hbWUqLCBDb250YWluZXJOb2RlKikgKyBD
b250YWluZXJOb2RlCisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJjbGFzcyAk
ZG9tSklUQ2xhc3NOYW1lIDogcHVibGljIEpTQzo6RE9NSklUOjpHcmFwaCB7XG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInB1YmxpYzpcbiIpOworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRkb21KSVRDbGFzc05hbWUoKVxuIik7CisgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIDogSlNDOjpET01KSVQ6Okdy
YXBoKCRnZXR0ZXIsICRzZXR0ZXIsIEpTQzo6U3BlY0RPTU5vZGUpXG4iKTsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6RE9NSklUO1xuIik7
CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGFwcGVuZChLaW5k
OjpDaGVja05vZGUsIElSOjp0aGlzVmFsdWUoKSwgbnVsbHB0cik7XG4iKTsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSVIqIHdyYXBwZWQgPSBhcHBlbmQoS2lu
ZDo6R2V0V3JhcHBlZCwgSVI6OnRoaXNWYWx1ZSgpLCBudWxscHRyLCBKU05vZGU6Om9mZnNldE9m
V3JhcHBlZCgpKTtcbiIpOworICAgICAgICAgICAgICAgICMgaWYgKCRhdHRyaWJ1dGVOYW1lIGVx
ICJmaXJzdENoaWxkIiB8fCAkYXR0cmlidXRlTmFtZSBlcSAibGFzdENoaWxkIikgeworICAgICAg
ICAgICAgICAgICMgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBhcHBlbmQoS2luZDo6
Q2hlY2tOb2RlRmxhZ3MsIHdyYXBwZWQsIG51bGxwdHIsIE5vZGU6Om5vZGVGbGFnc01lbW9yeU9m
ZnNldCgpLCBOb2RlOjpJc0NvbnRhaW5lckZsYWcpO1xuIik7CisgICAgICAgICAgICAgICAgIyB9
CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIElSKiByZXN1bHQg
PSBhcHBlbmQoS2luZDo6TG9hZFBvaW50ZXIsIHdyYXBwZWQsIG51bGxwdHIsICRpbnRlcmZhY2VO
YW1lOjoke2F0dHJpYnV0ZU5hbWV9TWVtb3J5T2Zmc2V0KCkpO1xuIik7CisgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIElSKiB3cmFwcGVyID0gYXBwZW5kKEtpbmQ6
OlRvV3JhcHBlciwgcmVzdWx0LCBudWxscHRyLCAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEpTRE9N
R2xvYmFsT2JqZWN0OjpvZmZzZXRPZldvcmxkSXNOb3JtYWwoKSkgPDwgMzIpIHwgKENBU1RfT0ZG
U0VUKCRpbnRlcmZhY2VOYW1lKiwgU2NyaXB0V3JhcHBhYmxlKikgKyBTY3JpcHRXcmFwcGFibGU6
Om9mZnNldE9mV3JhcHBlcigpKSwgYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oc3RhdGljX2Nhc3Q8
SlNDOjpFbmNvZGVkSlNWYWx1ZSAoKikoSlNDOjpFeGVjU3RhdGUqLCB2b2lkKiwgdm9pZCopPihb
XShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgdm9pZCogd3JhcHBlZCwgdm9pZCogZ2xvYmFsT2JqZWN0
KSB7IHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMsIHN0YXRpY19jYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgc3RhdGljX2Nhc3Q8Tm9kZSo+KHdyYXBw
ZWQpKSk7IH0pKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICAgICAgYXBwZW5kKEtpbmQ6OlJldHVybiwgd3JhcHBlciwgbnVsbHB0cik7XG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIn07XG5cbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJKU0M6OkRPTUpJVDo6R3JhcGgqIGRvbUpJVEdyYXBoRm9yIiAuICRpbnRl
cmZhY2UtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPm5hbWUpIC4gIigpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIntcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDwkZG9tSklUQ2xhc3NOYW1lPiBlbWl0dGVyO1xuIik7CisgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuICZlbWl0dGVyLmdldCgpO1xu
Iik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAg
ICAgICAgfQorCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYg
JGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nOwogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIlxuIik7CkBAIC00ODk0LDEyICs0OTUwLDE0IEBAIHN1YiBHZW5lcmF0ZUhhc2hUYWJs
ZVZhbHVlQXJyYXkKICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8
QnVpbHRpbkdlbmVyYXRvcj4iOwogICAgICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+
IG0vQ29uc3RhbnRJbnRlZ2VyLykgewogICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICIi
OworICAgICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vRE9NSklUQXR0cmlidXRl
LykgeworICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxET01KSVRH
cmFwaEdlbmVyYXRvcj4iOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgJGZpcnN0VGFy
Z2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4iOwogICAg
ICAgICAgICAgJHNlY29uZFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+IjsKICAgICAgICAgICAgICRoYXNTZXR0ZXIgPSAidHJ1ZSI7CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9Db25zdGFudEludGVnZXIv
KSB7CisgICAgICAgIGlmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQ29uc3RhbnRJbnRlZ2VyfERP
TUpJVEF0dHJpYnV0ZS8pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHsg
XCIka2V5XCIsIEAkc3BlY2lhbHNbJGldLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSIgLiAk
Zmlyc3RUYXJnZXRUeXBlIC4gIihAJHZhbHVlMVskaV0pIH0gfSxcbiIpOwogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgeyBcIiRrZXlcIiwgQCRz
cGVjaWFsc1skaV0sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdCkiIC4gJGZpcnN0VGFyZ2V0VHlw
ZSAuICIoQCR2YWx1ZTFbJGldKSwgKGludHB0cl90KSAiIC4gJHNlY29uZFRhcmdldFR5cGUgLiAi
KEAkdmFsdWUyWyRpXSkgfSB9LFxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCAzYzI0YTU0MjFhY2EzMmNkNzI2Yjk4Yjdk
OTljOGQ4MzA2YWM2ZjZlLi4xOWNkNGJiMTNkN2M2ZmI4Y2I4Mjk1MTEwYzQzYjRjZWUwOTliNTlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQKQEAgLTU0LDYgKzU0LDcgQEAgQ3VzdG9tUmV0dXJuCiBDdXN0b21TZXRQcm90b3R5cGUK
IEN1c3RvbVNldHRlcgogQ3VzdG9tVG9KU09iamVjdAorRE9NSklUCiBEZWxldGFibGUKIERvTm90
Q2hlY2tDb25zdGFudHMKIERvTm90Q2hlY2tTZWN1cml0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmgKaW5kZXggOWNhN2ExODM1MWFhOTFhYmZhZDJlNGIyMzM4MWNkMTE3MDM1M2U4OS4uNWFj
MmE3Y2IwZmU2MzZjNDBjNzdjOWM0NzEwNmE4ZTlkNDBmNWMyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5oCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIENvbnRhaW5lck5vZGUgOiBwdWJs
aWMgTm9kZSB7CiAgICAgTm9kZSogZmlyc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RD
aGlsZDsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3QgZmlyc3RDaGlsZE1lbW9yeU9mZnNldCgpIHsg
cmV0dXJuIE9CSkVDVF9PRkZTRVRPRihDb250YWluZXJOb2RlLCBtX2ZpcnN0Q2hpbGQpOyB9CiAg
ICAgTm9kZSogbGFzdENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0Q2hpbGQ7IH0KKyAgICBz
dGF0aWMgcHRyZGlmZl90IGxhc3RDaGlsZE1lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9P
RkZTRVRPRihDb250YWluZXJOb2RlLCBtX2xhc3RDaGlsZCk7IH0KICAgICBib29sIGhhc0NoaWxk
Tm9kZXMoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0Q2hpbGQ7IH0KICAgICBib29sIGhhc09uZUNo
aWxkKCkgY29uc3QgeyByZXR1cm4gbV9maXJzdENoaWxkICYmICFtX2ZpcnN0Q2hpbGQtPm5leHRT
aWJsaW5nKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggZTI2YzMzMjllZGQyMmQwODgwMTI1YmUyMmZi
ZDE2MmI2ZTdhYTliYS4uMzRjZWUxZmQ0MzlmMDlhZGQ4ZDQyYzYwOWQwOWQ1YWMxYWEyZGY2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oCkBAIC0xMjAsNiArMTIwLDQ2IEBAIGNsYXNzIE5vZGUgOiBwdWJsaWMgRXZl
bnRUYXJnZXQgewogICAgICAgICBET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkgPSAweDEw
LAogICAgICAgICBET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQyA9IDB4
MjAsCiAgICAgfTsKKyAgICBlbnVtIE5vZGVGbGFncyB7CisgICAgICAgIElzVGV4dEZsYWcgPSAx
LAorICAgICAgICBJc0NvbnRhaW5lckZsYWcgPSAxIDw8IDEsCisgICAgICAgIElzRWxlbWVudEZs
YWcgPSAxIDw8IDIsCisgICAgICAgIElzU3R5bGVkRWxlbWVudEZsYWcgPSAxIDw8IDMsCisgICAg
ICAgIElzSFRNTEZsYWcgPSAxIDw8IDQsCisgICAgICAgIElzU1ZHRmxhZyA9IDEgPDwgNSwKKyAg
ICAgICAgQ2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgNywKKyAgICAgICAgSW5Eb2N1
bWVudEZsYWcgPSAxIDw8IDgsCisgICAgICAgIElzTGlua0ZsYWcgPSAxIDw8IDksCisgICAgICAg
IElzVXNlckFjdGlvbkVsZW1lbnQgPSAxIDw8IDEwLAorICAgICAgICBIYXNSYXJlRGF0YUZsYWcg
PSAxIDw8IDExLAorICAgICAgICBJc0RvY3VtZW50RnJhZ21lbnRGbGFnID0gMSA8PCAxMiwKKwor
ICAgICAgICAvLyBUaGVzZSBiaXRzIGFyZSB1c2VkIGJ5IGRlcml2ZWQgY2xhc3NlcywgcHVsbGVk
IHVwIGhlcmUgc28gdGhleSBjYW4KKyAgICAgICAgLy8gYmUgc3RvcmVkIGluIHRoZSBzYW1lIG1l
bW9yeSB3b3JkIGFzIHRoZSBOb2RlIGJpdHMgYWJvdmUuCisgICAgICAgIElzUGFyc2luZ0NoaWxk
cmVuRmluaXNoZWRGbGFnID0gMSA8PCAxMywgLy8gRWxlbWVudAorCisgICAgICAgIFN0eWxlQ2hh
bmdlTWFzayA9IDEgPDwgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgfCAxIDw8IChub2RlU3R5bGVDaGFu
Z2VTaGlmdCArIDEpIHwgMSA8PCAobm9kZVN0eWxlQ2hhbmdlU2hpZnQgKyAyKSwKKyAgICAgICAg
SXNFZGl0aW5nVGV4dE9yVW5kZWZpbmVkQ3VzdG9tRWxlbWVudEZsYWcgPSAxIDw8IDE3LAorICAg
ICAgICBIYXNGb2N1c1dpdGhpbiA9IDEgPDwgMTgsCisgICAgICAgIEhhc1N5bnRoZXRpY0F0dHJD
aGlsZE5vZGVzRmxhZyA9IDEgPDwgMTksCisgICAgICAgIEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNh
bGxiYWNrc0ZsYWcgPSAxIDw8IDIwLAorICAgICAgICBIYXNFdmVudFRhcmdldERhdGFGbGFnID0g
MSA8PCAyMSwKKyAgICAgICAgSXNDdXN0b21FbGVtZW50ID0gMSA8PCAyMiwKKyAgICAgICAgSXNJ
blNoYWRvd1RyZWVGbGFnID0gMSA8PCAyMywKKyAgICAgICAgSXNNYXRoTUxGbGFnID0gMSA8PCAy
NCwKKworICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXNGbGFnID0gMSA8
PCAyNSwKKyAgICAgICAgQ2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXNGbGFnID0gMSA8
PCAyNiwKKyAgICAgICAgQ2hpbGRyZW5BZmZlY3RlZEJ5SG92ZXJSdWxlc0ZsYWcgPSAxIDw8IDI3
LAorCisgICAgICAgIERpcmVjdENoaWxkTmVlZHNTdHlsZVJlY2FsY0ZsYWcgPSAxIDw8IDI4LAor
ICAgICAgICBBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUgPSAxIDw8IDI5LAorICAgICAg
ICBTdHlsZUlzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZyA9IDEgPDwgMzAsCisKKyAgICAgICAg
U2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvRmxhZyA9IDEgPDwgMzEsCisKKyAgICAgICAgRGVmYXVs
dE5vZGVGbGFncyA9IElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnCisgICAgfTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHN0YXJ0SWdub3JpbmdMZWFrcygpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHN0b3BJZ25vcmluZ0xlYWtzKCk7CkBAIC0xNTUsNiAr
MTk1LDggQEAgY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7CiAgICAgTm9kZSogcHNl
dWRvQXdhcmVQcmV2aW91c1NpYmxpbmcoKSBjb25zdDsKICAgICBOb2RlKiBwc2V1ZG9Bd2FyZUZp
cnN0Q2hpbGQoKSBjb25zdDsKICAgICBOb2RlKiBwc2V1ZG9Bd2FyZUxhc3RDaGlsZCgpIGNvbnN0
OworICAgIHN0YXRpYyBwdHJkaWZmX3Qgbm9kZUZsYWdzTWVtb3J5T2Zmc2V0KCkgeyByZXR1cm4g
T0JKRUNUX09GRlNFVE9GKE5vZGUsIG1fbm9kZUZsYWdzKTsgfQorICAgIHN0YXRpYyBwdHJkaWZm
X3QgcmFyZURhdGFNZW1vcnlPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTm9kZSwg
bV9kYXRhLm1fcmFyZURhdGEpOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBVUkwmIGJh
c2VVUkkoKSBjb25zdDsKICAgICAKQEAgLTU2MCw4ICs2MDIsNiBAQCBjbGFzcyBOb2RlIDogcHVi
bGljIEV2ZW50VGFyZ2V0IHsKICAgICB2b2lkIHVwZGF0ZUFuY2VzdG9yQ29ubmVjdGVkU3ViZnJh
bWVDb3VudEZvckluc2VydGlvbigpIGNvbnN0OwogCiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9K
SVQpCi0gICAgc3RhdGljIHB0cmRpZmZfdCBub2RlRmxhZ3NNZW1vcnlPZmZzZXQoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoTm9kZSwgbV9ub2RlRmxhZ3MpOyB9Ci0gICAgc3RhdGljIHB0cmRp
ZmZfdCByYXJlRGF0YU1lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihOb2Rl
LCBtX2RhdGEubV9yYXJlRGF0YSk7IH0KICAgICBzdGF0aWMgaW50MzJfdCBmbGFnSXNUZXh0KCkg
eyByZXR1cm4gSXNUZXh0RmxhZzsgfQogICAgIHN0YXRpYyBpbnQzMl90IGZsYWdJc0VsZW1lbnQo
KSB7IHJldHVybiBJc0VsZW1lbnRGbGFnOyB9CiAgICAgc3RhdGljIGludDMyX3QgZmxhZ0lzSFRN
TCgpIHsgcmV0dXJuIElzSFRNTEZsYWc7IH0KQEAgLTU3Nyw0NyArNjE3LDYgQEAgY2xhc3MgTm9k
ZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7CiAjZW5kaWYgLy8gRU5BQkxFKENTU19TRUxFQ1RPUl9K
SVQpCiAKIHByb3RlY3RlZDoKLSAgICBlbnVtIE5vZGVGbGFncyB7Ci0gICAgICAgIElzVGV4dEZs
YWcgPSAxLAotICAgICAgICBJc0NvbnRhaW5lckZsYWcgPSAxIDw8IDEsCi0gICAgICAgIElzRWxl
bWVudEZsYWcgPSAxIDw8IDIsCi0gICAgICAgIElzU3R5bGVkRWxlbWVudEZsYWcgPSAxIDw8IDMs
Ci0gICAgICAgIElzSFRNTEZsYWcgPSAxIDw8IDQsCi0gICAgICAgIElzU1ZHRmxhZyA9IDEgPDwg
NSwKLSAgICAgICAgQ2hpbGROZWVkc1N0eWxlUmVjYWxjRmxhZyA9IDEgPDwgNywKLSAgICAgICAg
SW5Eb2N1bWVudEZsYWcgPSAxIDw8IDgsCi0gICAgICAgIElzTGlua0ZsYWcgPSAxIDw8IDksCi0g
ICAgICAgIElzVXNlckFjdGlvbkVsZW1lbnQgPSAxIDw8IDEwLAotICAgICAgICBIYXNSYXJlRGF0
YUZsYWcgPSAxIDw8IDExLAotICAgICAgICBJc0RvY3VtZW50RnJhZ21lbnRGbGFnID0gMSA8PCAx
MiwKLQotICAgICAgICAvLyBUaGVzZSBiaXRzIGFyZSB1c2VkIGJ5IGRlcml2ZWQgY2xhc3Nlcywg
cHVsbGVkIHVwIGhlcmUgc28gdGhleSBjYW4KLSAgICAgICAgLy8gYmUgc3RvcmVkIGluIHRoZSBz
YW1lIG1lbW9yeSB3b3JkIGFzIHRoZSBOb2RlIGJpdHMgYWJvdmUuCi0gICAgICAgIElzUGFyc2lu
Z0NoaWxkcmVuRmluaXNoZWRGbGFnID0gMSA8PCAxMywgLy8gRWxlbWVudAotCi0gICAgICAgIFN0
eWxlQ2hhbmdlTWFzayA9IDEgPDwgbm9kZVN0eWxlQ2hhbmdlU2hpZnQgfCAxIDw8IChub2RlU3R5
bGVDaGFuZ2VTaGlmdCArIDEpIHwgMSA8PCAobm9kZVN0eWxlQ2hhbmdlU2hpZnQgKyAyKSwKLSAg
ICAgICAgSXNFZGl0aW5nVGV4dE9yVW5kZWZpbmVkQ3VzdG9tRWxlbWVudEZsYWcgPSAxIDw8IDE3
LAotICAgICAgICBIYXNGb2N1c1dpdGhpbiA9IDEgPDwgMTgsCi0gICAgICAgIEhhc1N5bnRoZXRp
Y0F0dHJDaGlsZE5vZGVzRmxhZyA9IDEgPDwgMTksCi0gICAgICAgIEhhc0N1c3RvbVN0eWxlUmVz
b2x2ZUNhbGxiYWNrc0ZsYWcgPSAxIDw8IDIwLAotICAgICAgICBIYXNFdmVudFRhcmdldERhdGFG
bGFnID0gMSA8PCAyMSwKLSAgICAgICAgSXNDdXN0b21FbGVtZW50ID0gMSA8PCAyMiwKLSAgICAg
ICAgSXNJblNoYWRvd1RyZWVGbGFnID0gMSA8PCAyMywKLSAgICAgICAgSXNNYXRoTUxGbGFnID0g
MSA8PCAyNCwKLQotICAgICAgICBDaGlsZHJlbkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXNGbGFn
ID0gMSA8PCAyNSwKLSAgICAgICAgQ2hpbGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXNGbGFn
ID0gMSA8PCAyNiwKLSAgICAgICAgQ2hpbGRyZW5BZmZlY3RlZEJ5SG92ZXJSdWxlc0ZsYWcgPSAx
IDw8IDI3LAotCi0gICAgICAgIERpcmVjdENoaWxkTmVlZHNTdHlsZVJlY2FsY0ZsYWcgPSAxIDw8
IDI4LAotICAgICAgICBBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUgPSAxIDw8IDI5LAot
ICAgICAgICBTdHlsZUlzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZyA9IDEgPDwgMzAsCi0KLSAg
ICAgICAgU2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRvRmxhZyA9IDEgPDwgMzEsCi0KLSAgICAgICAg
RGVmYXVsdE5vZGVGbGFncyA9IElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnCi0gICAgfTsK
LQogICAgIGJvb2wgZ2V0RmxhZyhOb2RlRmxhZ3MgbWFzaykgY29uc3QgeyByZXR1cm4gbV9ub2Rl
RmxhZ3MgJiBtYXNrOyB9CiAgICAgdm9pZCBzZXRGbGFnKGJvb2wgZiwgTm9kZUZsYWdzIG1hc2sp
IGNvbnN0IHsgbV9ub2RlRmxhZ3MgPSAobV9ub2RlRmxhZ3MgJiB+bWFzaykgfCAoLShpbnQzMl90
KWYgJiBtYXNrKTsgfSAKICAgICB2b2lkIHNldEZsYWcoTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsg
bV9ub2RlRmxhZ3MgfD0gbWFzazsgfSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbAppbmRleCA2Yjc3ZTMzNDU4Mzk0
Yzc2NWY0MDZjYWY4MGFlNWZjZmExZGIxMjMzLi5lNTg5NTQ4ZjZjODM4ZjNjZWZkMjA4ZGE5MTc5
MzI5MDdhMGZkYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCkBAIC00NywxMiArNDcsMTIgQEAKICAgICBb
U2V0dGVyTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIGF0dHJpYnV0ZSBET01TdHJpbmc/IG5vZGVW
YWx1ZTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBub2RlVHlwZTsK
LSAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gcGFyZW50Tm9kZTsKKyAgICBbRE9NSklUXSBy
ZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gcGFyZW50Tm9kZTsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgTm9kZUxpc3QgY2hpbGROb2RlczsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gZmly
c3RDaGlsZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gbGFzdENoaWxkOwotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwcmV2aW91c1NpYmxpbmc7Ci0gICAgcmVhZG9ubHkgYXR0
cmlidXRlIE5vZGU/IG5leHRTaWJsaW5nOworICAgIFtET01KSVRdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBOb2RlPyBwcmV2aW91c1NpYmxpbmc7CisgICAgW0RPTUpJVF0gcmVhZG9ubHkgYXR0cmlidXRl
IE5vZGU/IG5leHRTaWJsaW5nOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudD8gb3du
ZXJEb2N1bWVudDsKIAogICAgIFtDdXN0b20sIE1heVRocm93TGVnYWN5RXhjZXB0aW9uXSBOb2Rl
IGluc2VydEJlZm9yZShbQ3VzdG9tUmV0dXJuXSBOb2RlIG5ld0NoaWxkLCBOb2RlPyByZWZDaGls
ZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290571</attachid>
            <date>2016-10-03 23:32:28 -0700</date>
            <delta_ts>2016-10-03 23:32:28 -0700</delta_ts>
            <desc>Prototype rev11, more clean up</desc>
            <filename>bug-162544-20161003232919.patch</filename>
            <type>text/plain</type>
            <size>138091</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
ODNlYzFjNDVkYWFkYzYwYzkzNDkxYjE1MGJjYTFhMjk5ZTcxNjQyLi5iMzY2NzUxODM1MmUwZWJk
MGNkNGJmMjRjMTE5YjZkMGY4MjhlM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNDggQEAKKzIwMTYtMTAtMDMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVjaW5nIERPTSBiaW5kaW5nIEpJVAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3BwOgorICAgICAgICAoSlND
OjpHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFj
ayk6CisgICAgICAgICogYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwOgorICAgICAgICAoSlND
OjpHZXRCeUlkVmFyaWFudDo6R2V0QnlJZFZhcmlhbnQpOgorICAgICAgICAoSlNDOjpHZXRCeUlk
VmFyaWFudDo6b3BlcmF0b3I9KToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmF0dGVt
cHRUb01lcmdlKToKKyAgICAgICAgKEpTQzo6R2V0QnlJZFZhcmlhbnQ6OmR1bXBJbkNvbnRleHQp
OgorICAgICAgICAqIGJ5dGVjb2RlL0dldEJ5SWRWYXJpYW50Lmg6CisgICAgICAgIChKU0M6Okdl
dEJ5SWRWYXJpYW50Ojpkb21KSVQpOgorICAgICAgICAoSlNDOjpHZXRCeUlkVmFyaWFudDo6aW50
cmluc2ljKTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5j
cHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmdldCk6CisgICAgICAgIChKU0M6OkFjY2Vz
c0Nhc2U6OmNsb25lKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oOgor
ICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpkb21KSVQpOgorICAgICAgICAoSlNDOjpBY2Nlc3ND
YXNlOjpSYXJlRGF0YTo6UmFyZURhdGEpOgorICAgICAgICAqIGJ5dGVjb2RlL1NwZWN1bGF0ZWRU
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6c3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKToKKyAgICAg
ICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlci5oOgorICAgICAgICAoSlNDOjpERkc6OkFi
c3RyYWN0SW50ZXJwcmV0ZXI6OmZpbHRlckNsYXNzSW5mbyk6CisgICAgICAgICogZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJ
bnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAg
KEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZmlsdGVy
Q2xhc3NJbmZvKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6QWJzdHJhY3RWYWx1ZTo6ZmlsdGVyQ2xhc3NJbmZvKToKKyAgICAgICAgKiBk
ZmcvREZHQWJzdHJhY3RWYWx1ZS5oOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZURPTUpJVEdldHRl
cik6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQpOgor
ICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJl
cml6ZSk6CisgICAgICAgICogZGZnL0RGR0NvbW1vbkRhdGEuaDoKKyAgICAgICAgKiBkZmcvREZH
Q29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9s
ZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKiBkZmcvREZHRE9NSklUUGF0Y2hw
b2ludFBhcmFtcy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
SW5mby5oLgorICAgICAgICAoSlNDOjpERkc6OkRPTUpJVFBhdGNocG9pbnRQYXJhbXM6OkRPTUpJ
VFBhdGNocG9pbnRQYXJhbXMpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZn
L0RGR0pJVENvbXBpbGVyLmg6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpOb2RlOjpoYXNIZWFwUHJlZGljdGlvbik6CisgICAgICAgIChKU0M6OkRGRzo6Tm9k
ZTo6aGFzRE9NSklUKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpkb21KSVQpOgorICAgICAg
ICAoSlNDOjpERkc6Ok5vZGU6Omhhc0NsYXNzSW5mbyk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9k
ZTo6Y2xhc3NJbmZvKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpPcEluZm9XcmFwcGVyOjpP
cEluZm9XcmFwcGVyKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpPcEluZm9XcmFwcGVyOjpv
cGVyYXRvcj0pOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9E
RkdPcEluZm8uaDoKKyAgICAgICAgKEpTQzo6REZHOjpPcEluZm86Ok9wSW5mbyk6CisgICAgICAg
ICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcv
REZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgor
ICAgICAgICAqIGRmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVDYWxsRE9NKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUNoZWNrRE9NKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAg
ICAgICogZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlN0cnVjdHVyZUFic3RyYWN0VmFsdWU6OmZpbHRlckNsYXNzSW5mb1Nsb3cpOgorICAgICAg
ICAoSlNDOjpERkc6OlN0cnVjdHVyZUFic3RyYWN0VmFsdWU6OmlzU3ViQ2xhc3NPZik6CisgICAg
ICAgICogZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFsdWUuaDoKKyAgICAgICAgKEpTQzo6REZH
OjpTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlOjpmaWx0ZXJDbGFzc0luZm8pOgorICAgICAgICAoSlND
OjpERkc6OlN0cnVjdHVyZUFic3RyYWN0VmFsdWU6OmZpbHRlcik6IERlbGV0ZWQuCisgICAgICAg
ICogZG9taml0L0RPTUpJVEdldHRlclNldHRlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wSW5mby5oLgorICAgICAgICAoSlNDOjpET01KSVQ6OkdldHRlclNl
dHRlcjo6R2V0dGVyU2V0dGVyKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXI6
On5HZXR0ZXJTZXR0ZXIpOgorICAgICAgICAoSlNDOjpET01KSVQ6OkdldHRlclNldHRlcjo6Z2V0
dGVyKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXI6OnNldHRlcik6CisgICAg
ICAgIChKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyOjp0aGlzQ2xhc3NJbmZvKToKKyAgICAgICAg
KiBkb21qaXQvRE9NSklUUGF0Y2hwb2ludC5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6RE9NSklU
OjpQYXRjaHBvaW50OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpET01KSVQ6OlBhdGNocG9pbnQ6
OnNldEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2ludDo6Z2VuZXJh
dG9yKToKKyAgICAgICAgKiBkb21qaXQvRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oOiBBZGRlZC4K
KyAgICAgICAgKEpTQzo6RE9NSklUOjpQYXRjaHBvaW50UGFyYW1zOjp+UGF0Y2hwb2ludFBhcmFt
cyk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2ludFBhcmFtczo6c2l6ZSk6CisgICAg
ICAgIChKU0M6OkRPTUpJVDo6UGF0Y2hwb2ludFBhcmFtczo6YXQpOgorICAgICAgICAoSlNDOjpE
T01KSVQ6OlBhdGNocG9pbnRQYXJhbXM6Om9wZXJhdG9yW10pOgorICAgICAgICAoSlNDOjpET01K
SVQ6OlBhdGNocG9pbnRQYXJhbXM6OmdwU2NyYXRjaCk6CisgICAgICAgIChKU0M6OkRPTUpJVDo6
UGF0Y2hwb2ludFBhcmFtczo6ZnBTY3JhdGNoKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpQYXRj
aHBvaW50UGFyYW1zOjpQYXRjaHBvaW50UGFyYW1zKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpQ
YXRjaHBvaW50UGFyYW1zOjphZGRTbG93UGF0aENhbGwpOgorICAgICAgICAqIGRvbWppdC9ET01K
SVRTaWduYXR1cmUuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cEluZm8uaC4KKyAgICAgICAgKiBkb21qaXQvRE9NSklUU2xvd1BhdGhHZW5lcmF0b3IuaDogQWRk
ZWQuCisgICAgICAgIChKU0M6OkRPTUpJVDo6U2xvd1BhdGhHZW5lcmF0b3I6OlNsb3dQYXRoR2Vu
ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpTbG93UGF0aEdlbmVyYXRvcjo6flNsb3dQ
YXRoR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6RE9NSklUOjpTbG93UGF0aENhbGxHZW5lcmF0
b3I6OlNsb3dQYXRoQ2FsbEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkRPTUpJVDo6U2xvd1Bh
dGhDYWxsR2VuZXJhdG9yOjp1bnBhY2tBbmRBZGQpOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6Cisg
ICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTERPTUpJVFBh
dGNocG9pbnRQYXJhbXMuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcEluZm8uaC4KKyAgICAgICAgKEpTQzo6RlRMOjpET01KSVRQYXRjaHBvaW50UGFyYW1zOjpE
T01KSVRQYXRjaHBvaW50UGFyYW1zKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ2hlY2tET00pOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ2FsbERPTSk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVVbnJlYWNoYWJsZSk6
IERlbGV0ZWQuCisgICAgICAgICogZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oOgorICAgICAgICAqIGhl
YXAvV2Vha0ltcGwuaDoKKyAgICAgICAgKEpTQzo6V2Vha0ltcGw6Om9mZnNldE9mSlNWYWx1ZSk6
CisgICAgICAgIChKU0M6OldlYWtJbXBsOjpvZmZzZXRPZldlYWtIYW5kbGVPd25lcik6CisgICAg
ICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoK
KyAgICAgICAgKEpTQzo6dHJ5Q2FjaGVHZXRCeUlEKToKKyAgICAgICAgKiBqc2MuY3BwOgorICAg
ICAgICAoV1RGOjpET01KSVRHZXR0ZXI6OkRPTUpJVEdldHRlcik6CisgICAgICAgIChXVEY6OkRP
TUpJVEdldHRlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdURjo6RE9NSklUR2V0dGVy
OjpjcmVhdGUpOgorICAgICAgICAoV1RGOjpET01KSVRHZXR0ZXI6OnZhbHVlKToKKyAgICAgICAg
KFdURjo6RE9NSklUR2V0dGVyOjpET01KSVRHZXR0ZXJET01KSVQ6OkRPTUpJVEdldHRlckRPTUpJ
VCk6CisgICAgICAgIChXVEY6OkRPTUpJVEdldHRlcjo6ZG9tSklUR2V0dGVyR2V0dGVyU2V0dGVy
KToKKyAgICAgICAgKFdURjo6RE9NSklUR2V0dGVyOjpvZmZzZXRPZlZhbHVlKToKKyAgICAgICAg
KFdURjo6RE9NSklUR2V0dGVyOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChXVEY6OkRPTUpJ
VEdldHRlcjo6Y3VzdG9tR2V0dGVyKToKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6ZmluaXNoQ3Jl
YXRpb24pOgorICAgICAgICAoZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmplY3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmg6CisgICAgICAgICogcnVudGltZS9K
U09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6ZmlsbEN1c3RvbUdldHRlclByb3Bl
cnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9Mb29rdXAuaDoKKyAgICAgICAgKEpTQzo6SGFz
aFRhYmxlVmFsdWU6OmRvbUpJVCk6CisgICAgICAgIChKU0M6OmdldFN0YXRpY1Byb3BlcnR5U2xv
dEZyb21UYWJsZSk6CisgICAgICAgIChKU0M6OnB1dEVudHJ5KToKKyAgICAgICAgKEpTQzo6cmVp
ZnlTdGF0aWNQcm9wZXJ0eSk6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eVNsb3QuaDoKKyAg
ICAgICAgKEpTQzo6UHJvcGVydHlTbG90Ojpkb21KSVQpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0
eVNsb3Q6OnNldENhY2hlYWJsZUN1c3RvbSk6CisKIDIwMTYtMTAtMDMgIE5pY29sYXMgQnJlaWRp
bmdlciAgPE5pY29sYXMuQnJlaWRpbmdlckBzb255LmNvbT4KIAogICAgICAgICBKU1N0cmluZ1Jl
ZiBzaG91bGQgZGVmaW5lIEpTQ2hhciB3aXRob3V0IHBsYXRmb3JtIGNoZWNrcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA4ZDcw
ZjI2NjE0YmQ0ODJjYjVlYjVhZTk2NGFmZmY3ZDA2NGVmMzliLi4zMzI4Zjg5MzJmMjJlNjE2MmM4
MzMxYTU2ZDk3YWExYzQxYzViNjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTEwLTAzICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtCaW5kaW5n
XSBJbnRyb2R1Y2luZyBET00gYmluZGluZyBKSVQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0JveC5oOgorICAgICAgICAoV1RGOjpCb3g6OkJv
eCk6CisgICAgICAgICogd3RmL1N0ZExpYkV4dHJhcy5oOgorCiAyMDE2LTA5LTI5ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGluaXRpYWwgc3VwcG9ydCBmb3Ig
SURMIHVuaW9uIGNvbnZlcnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0NjdmMmE4MTY1NjU5ZmNlMjM1ZDk3
YjA5YjIzNGYzYTRmOGE2NTcyLi5kNjkyOGUwYzM2ODJiZjE4MDA0ZTNiOWU4ZGIzN2NlZTVkNjE2
NGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTYtMTAtMDMgIFl1c3VrZSBTdXp1
a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0JpbmRpbmddIEludHJvZHVj
aW5nIERPTSBiaW5kaW5nIEpJVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYyNTQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9kb21qaXQvRE9NSklUR3JhcGguaDogQWRk
ZWQuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1HVEsu
Y21ha2U6CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1X
aW4uY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdyYXBwZXI6
Om9mZnNldE9mV3JhcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdyYXBwZXI6OndyYXBw
ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0V3JhcHBhYmxlOjpvZmZzZXRPZldyYXBwZXIpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2V0
SlNDQXR0cmlidXRlc0ZvckF0dHJpYnV0ZSk6CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6Cisg
ICAgICAgIChHZW5lcmF0ZVByb3BlcnRpZXNIYXNoVGFibGUpOgorICAgICAgICAoR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChHZW5lcmF0ZUhhc2hUYWJsZVZhbHVl
QXJyYXkpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQ6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRhaW5lck5vZGU6Omxhc3RDaGlsZE1lbW9yeU9mZnNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250YWluZXJOb2RlOjpsYXN0Q2hpbGQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9Ob2Rl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpub2RlRmxhZ3NNZW1vcnlPZmZzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmFyZURhdGFNZW1vcnlPZmZzZXQpOgorICAgICAgICAqIGRv
bS9Ob2RlLmlkbDoKKwogMjAxNi0xMC0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIHRkLnNjb3BlIHNob3VsZCBvbmx5IHJldHVybiBrbm93biB2YWx1ZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmYjI5MTQ3M2FlOTdmYTRmZjAwZmRl
ZDk5ODhiNjRhMzYxYmZjYWMyLi5lYjcyY2YzZGI0MjZlMjA5MWZhNjYyMGQwMDkwMzhmOWVmZTlj
NGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNiw2ICsxNiw3IEBA
IHNldChKYXZhU2NyaXB0Q29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9ieXRlY29kZSIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVjb21w
aWxlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RmZyIKKyAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2RvbWppdCIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Rpc2Fzc2VtYmxl
ciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Rpc2Fzc2VtYmxlci91ZGlzODYiCiAgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9mdGwiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDZlZTU3NzJhMGU3ZGVjYjNlMTMxOTFiZDg1OTQwNmZkZjljNWZlNTYuLjAxNDg4NzdkZGQw
MWFlOWQ2ZGNlZjc3NmQ1ODJhODFmMDA3YTE0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0zMTYsNyArMzE2LDcgQEAKIAkJMEYzM0ZDRkIxQzE2MjVCRTAwMzIzRjY3IC8qIEIz
Q0ZHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjMz
RkNGOTFDMTYyNUJFMDAzMjNGNjcgLyogQjNDRkcuaCAqLzsgfTsKIAkJMEYzM0ZDRkMxQzE2MjVC
RTAwMzIzRjY3IC8qIEIzRG9taW5hdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYzM0ZDRkExQzE2MjVCRTAwMzIzRjY3IC8qIEIzRG9taW5hdG9y
cy5oICovOyB9OwogCQkwRjM0QjE0OTE2RDQyMDEwMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0NzE2
RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5jcHAgKi87IH07Ci0JCTBGMzRCMTRBMTZENDIw
MTMwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjM0QjE0ODE2RDQyMDBFMDAxQ0RBNUEgLyogREZHVXNlS2luZC5o
ICovOyB9OworCQkwRjM0QjE0QTE2RDQyMDEzMDAxQ0RBNUEgLyogREZHVXNlS2luZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNDgxNkQ0MjAw
RTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjM3MzA4QzFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGls
ZHJlbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjM3MzA4QTFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5jcHAgKi87IH07CiAJCTBG
MzczMDhEMUMwQkQyOTEwMDA1MkJGQSAvKiBCM1BoaUNoaWxkcmVuLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM3MzA4QjFDMEJEMjkxMDAwNTJCRkEg
LyogQjNQaGlDaGlsZHJlbi5oICovOyB9OwogCQkwRjM3MzA4RjFDMENENjg1MDAwNTJCRkEgLyog
RGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjM3MzA4RTFDMENENjg1MDAwNTJCRkEgLyogRGlz
YWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmggKi87IH07CkBAIC01ODcsNyArNTg3LDcg
QEAKIAkJMEZBMkMxN0IxN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkEyQzE3OTE3RDdD
Rjg0MDA5RDAxNUYgLyogVGVzdFJ1bm5lclV0aWxzLmNwcCAqLzsgfTsKIAkJMEZBMkMxN0MxN0Q3
Q0Y4NDAwOUQwMTVGIC8qIFRlc3RSdW5uZXJVdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBMkMxN0ExN0Q3Q0Y4NDAwOUQwMTVGIC8qIFRlc3RS
dW5uZXJVdGlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGQTU4MUJBMTUwRTk1MkMwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBNTgxQjcxNTBFOTUy
QTAwQjlBMkQ5IC8qIERGR05vZGVGbGFncy5jcHAgKi87IH07Ci0JCTBGQTU4MUJCMTUwRTk1MzAw
MEI5QTJEOSAvKiBERkdOb2RlRmxhZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGQTU4MUI4MTUwRTk1MkEwMEI5QTJEOSAvKiBERkdOb2RlRmxhZ3Mu
aCAqLzsgfTsKKwkJMEZBNTgxQkIxNTBFOTUzMDAwQjlBMkQ5IC8qIERGR05vZGVGbGFncy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBNTgxQjgxNTBF
OTUyQTAwQjlBMkQ5IC8qIERGR05vZGVGbGFncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQTU4MUJDMTUwRTk1MzAwMEI5QTJEOSAvKiBERkdO
b2RlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZBNTgxQjkxNTBFOTUyQTAwQjlBMkQ5IC8qIERGR05vZGVUeXBlLmggKi87IH07CiAJCTBGQTdB
OEVCMThCNDEzQzgwMDUyMzcxRCAvKiBSZWcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZBN0E4RTkxOEI0MTNDODAwNTIzNzFEIC8qIFJlZy5jcHAg
Ki87IH07CiAJCTBGQTdBOEVDMThCNDEzQzgwMDUyMzcxRCAvKiBSZWcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQTdBOEVBMThCNDEzQzgwMDUyMzcx
RCAvKiBSZWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTQ0OCw3ICsxNDQ4LDcgQEAKIAkJODZFQzlERDAxMzI4REY4MjAwMkIyQUQ3IC8qIERG
R09wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2RUM5REMwMTMyOERGODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggKi87IH07CiAJ
CTg2RUM5REQxMTMyOERGODIwMDJCMkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMxMTMyOERGODIwMDJC
MkFENyAvKiBERkdSZWdpc3RlckJhbmsuaCAqLzsgfTsKIAkJODZFQzlERDIxMzI4REY4MjAwMkIy
QUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2RUM5REMyMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxh
dGl2ZUpJVC5jcHAgKi87IH07Ci0JCTg2RUM5REQzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVj
dWxhdGl2ZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODZFQzlEQzMxMzI4REY4MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmggKi87IH07
CisJCTg2RUM5REQzMTMyOERGODIwMDJCMkFENyAvKiBERkdTcGVjdWxhdGl2ZUpJVC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZFQzlEQzMxMzI4REY4
MjAwMkIyQUQ3IC8qIERGR1NwZWN1bGF0aXZlSklULmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZFQ0EzRUExMzJERUYxQzAwMkIyQUQ3IC8qIERG
R05vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2
RUNBM0U5MTMyREVGMUMwMDJCMkFENyAvKiBERkdOb2RlLmggKi87IH07CiAJCTg2RUNBM0ZBMTMy
REYyNUEwMDJCMkFENyAvKiBERkdTY29yZUJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkVDQTNGOTEzMkRGMjVBMDAyQjJBRDcgLyogREZHU2Nv
cmVCb2FyZC5oICovOyB9OwogCQk4NkYzRUVCRDE2OENERTkzMDA3N0I5MkEgLyogT2JqQ0NhbGxi
YWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg2RjNFRUI5MTY4Q0NGNzUwMDc3QjkyQSAvKiBPYmpDQ2FsbGJhY2tGdW5jdGlvbi5oICov
OyB9OwpAQCAtMjA4OCw2ICsyMDg4LDEwIEBACiAJCUUzM0Y1MDg0MUI4NDM3QTAwMDQxMzg1NiAv
KiBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzM0Y1MDgyMUI4NDM3QTAwMDQxMzg1NiAvKiBKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkLmNwcCAqLzsgfTsKIAkJRTMzRjUwODUxQjg0MzdBMDAwNDEzODU2
IC8qIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzM0Y1MDgzMUI4NDM3QTAwMDQxMzg1NiAvKiBKU0ludGVy
bmFsUHJvbWlzZURlZmVycmVkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTMzRjUwODcxQjg0NDlFRjAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9t
aXNlQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMzNGNTA4NjFCODQ0OUVGMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VD
b25zdHJ1Y3Rvci5sdXQuaCAqLzsgfTsKKwkJRTM0MUIwMDMxREEyQzVBNzAwODY1M0Q3IC8qIERP
TUpJVFBhdGNocG9pbnRQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzNDFCMDAyMURBMkM1QTQwMDg2NTNENyAvKiBET01KSVRQYXRjaHBvaW50
UGFyYW1zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJRTM0MUIwMDQxREEyQzVBRDAwODY1M0Q3IC8qIERPTUpJVFBhdGNocG9pbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNDFCMDAxMURBMkM1QTQw
MDg2NTNENyAvKiBET01KSVRQYXRjaHBvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM0MUIwMDcxREEzN0ZDRjAwODY1M0Q3IC8qIERPTUpJ
VFNpZ25hdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM0MUIwMDUxREEzN0ZCRTAwODY1M0Q3IC8qIERPTUpJVFNpZ25hdHVyZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzNDFCMDA4MURBMzdG
RDQwMDg2NTNENyAvKiBET01KSVRTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0MUIwMDYxREEzN0ZCRTAwODY1M0Q3IC8q
IERPTUpJVFNsb3dQYXRoR2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1NDYyMkIxQjYwNjVEMTAwNTQ1Mzg2IC8qIENvbnN0cnVj
dEFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzNTQ2MjJBMUI2MDY1RDEwMDU0NTM4NiAvKiBDb25zdHJ1Y3RBYmlsaXR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1NUYzNTIxQjdEQzg1
MzAwQzUwREM1IC8qIE1vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU1RjM1MDFCN0RDODUzMDBDNTBEQzUgLyog
TW9kdWxlTG9hZGVyUHJvdG90eXBlLmNwcCAqLzsgfTsKIAkJRTM1NUYzNTMxQjdEQzg1MzAwQzUw
REM1IC8qIE1vZHVsZUxvYWRlclByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1NUYzNTExQjdEQzg1MzAwQzUwREM1IC8qIE1vZHVsZUxv
YWRlclByb3RvdHlwZS5oICovOyB9OwpAQCAtMjEwNCw2ICsyMTA4LDcgQEAKIAkJRTNEMjM5Qzkx
QjgyOUMxQzAwQkJFRjY3IC8qIEpTTW9kdWxlRW52aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDIzOUM3MUI4MjlDMUMwMEJCRUY2NyAv
KiBKU01vZHVsZUVudmlyb25tZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTNFRjg4NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTNFRjg4NzIxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
Y3BwICovOyB9OwogCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFM0ZGNzUzMzFE
OUNFQTE4MDBDN0UxNkQgLyogRE9NSklUR2V0dGVyU2V0dGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0ZGNzUyRjFEOUNFQTEyMDBDN0UxNkQgLyog
RE9NSklUR2V0dGVyU2V0dGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTQ5REMxNkIxMkVGMjkzRTAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVy
Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQ5REMxNTUxMkVGMjc3MjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwICovOyB9
OwogCQlFNDlEQzE2QzEyRUYyOTRFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5REMxNTExMkVG
MjcyMjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2RDEyRUYyOTUzMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92
aWRlckNhY2hlSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC00MzgzLDYgKzQzODgsMTAgQEAKIAkJRTMzRjUwODMxQjg0MzdBMDAwNDEzODU2
IC8qIEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNJbnRlcm5hbFByb21pc2VEZWZlcnJlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzNGNTA4NjFCODQ0OUVGMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VD
b25zdHJ1Y3Rvci5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbnRl
cm5hbFByb21pc2VDb25zdHJ1Y3Rvci5sdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTMzRjUwODgxQjg0NEExQTAwNDEzODU2IC8qIEludGVybmFsUHJvbWlzZUNvbnN0cnVjdG9y
LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0gSW50ZXJuYWxQcm9t
aXNlQ29uc3RydWN0b3IuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNDFCMDAx
MURBMkM1QTQwMDg2NTNENyAvKiBET01KSVRQYXRjaHBvaW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTUpJVFBhdGNocG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTM0MUIwMDIxREEyQzVBNDAwODY1M0Q3IC8qIERPTUpJVFBhdGNocG9pbnRQYXJh
bXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUUGF0Y2hwb2ludFBh
cmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzQxQjAwNTFEQTM3RkJFMDA4
NjUzRDcgLyogRE9NSklUU2lnbmF0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUpJVFNpZ25hdHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzQx
QjAwNjFEQTM3RkJFMDA4NjUzRDcgLyogRE9NSklUU2xvd1BhdGhHZW5lcmF0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUU2xvd1BhdGhHZW5lcmF0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1NDYyMkExQjYwNjVEMTAwNTQ1Mzg2IC8qIENv
bnN0cnVjdEFiaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29uc3Ry
dWN0QWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzU1RjM1MDFCN0RD
ODUzMDBDNTBEQzUgLyogTW9kdWxlTG9hZGVyUHJvdG90eXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUxvYWRlclByb3RvdHlwZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTVGMzUxMUI3REM4NTMwMEM1MERDNSAvKiBNb2R1bGVM
b2FkZXJQcm90b3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxl
TG9hZGVyUHJvdG90eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDA1LDYg
KzQ0MTQsNyBAQAogCQlFM0QyNjQyQTFEMzhDMDQyMDAwQkUxNzQgLyogQnl0ZWNvZGVSZXdyaXRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlY29kZVJld3JpdGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRUY4ODcyMUI2NkRGMjMwMDNGMjZDQiAv
KiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFM0VGODg3MzFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRkY3NTJGMUQ5Q0VBMTIw
MEM3RTE2RCAvKiBET01KSVRHZXR0ZXJTZXR0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NSklUR2V0dGVyU2V0dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlSXRl
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE1MTEyRUYyNzIyMDAxODRB
MUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTb3VyY2VQcm92aWRlckNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU0OURDMTU1MTJFRjI3NzIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDY2Miw2ICs0NjcyLDcgQEAKIAkJCQk2
NTBGREY4RDA5RDBGQ0E3MDA3NjlFNTQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTg2RUM5
REIzMTMyOERGNDQwMDJCMkFENyAvKiBkZmcgKi8sCiAJCQkJMEZGNDI3MkUxNThFQkNDRTAwNENC
OUZGIC8qIGRpc2Fzc2VtYmxlciAqLywKKwkJCQlFM0ZGNzUyRDFEOUNFOUVBMDBDN0UxNkQgLyog
ZG9taml0ICovLAogCQkJCTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAvKiBGcmFtZXdvcmtzICov
LAogCQkJCTBGRUEwOUZDMTcwNTEzN0YwMEJCNzIyQyAvKiBmdGwgKi8sCiAJCQkJMTQyRTMxMkEx
MzRGRjBBNjAwQUZBREI1IC8qIGhlYXAgKi8sCkBAIC03MTY3LDYgKzcxNzgsMTggQEAKIAkJCXBh
dGggPSBjb2RlZ2VuOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTNGRjc1
MkQxRDlDRTlFQTAwQzdFMTZEIC8qIGRvbWppdCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJRTM0MUIwMDUxREEzN0ZCRTAwODY1M0Q3IC8qIERPTUpJVFNp
Z25hdHVyZS5oICovLAorCQkJCUUzNDFCMDA2MURBMzdGQkUwMDg2NTNENyAvKiBET01KSVRTbG93
UGF0aEdlbmVyYXRvci5oICovLAorCQkJCUUzNDFCMDAxMURBMkM1QTQwMDg2NTNENyAvKiBET01K
SVRQYXRjaHBvaW50LmggKi8sCisJCQkJRTM0MUIwMDIxREEyQzVBNDAwODY1M0Q3IC8qIERPTUpJ
VFBhdGNocG9pbnRQYXJhbXMuaCAqLywKKwkJCQlFM0ZGNzUyRjFEOUNFQTEyMDBDN0UxNkQgLyog
RE9NSklUR2V0dGVyU2V0dGVyLmggKi8sCisJCQkpOworCQkJcGF0aCA9IGRvbWppdDsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAvKiBFbmQgUEJYR3JvdXAgc2VjdGlvbiAqLwog
CiAvKiBCZWdpbiBQQlhIZWFkZXJzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC03MjM3LDYgKzcy
NjAsNyBAQAogCQkJCTBGNkIxQ0I5MTg2MTI0NEMwMDg0NUQ5NyAvKiBBcml0eUNoZWNrTW9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTFBMDA5QzExODMxQTI2RTAwQ0Y4NzExIC8qIEFSTTY0QXNz
ZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkQzQjJDNDEwMTU2QkRFMDAyODY1RTcgLyog
QVJNQXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzQxQjAwNDFEQTJDNUFEMDA4NjUz
RDcgLyogRE9NSklUUGF0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZBREQxNDUwRkRE
RUE5ODAwMDZFRUMyIC8qIEFSTXY3QXNzZW1ibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUMw
Mjg1RDE3MTc5NjY4MDAzNTFFMzUgLyogQVJNdjdET3Bjb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjgzMzVCODE2MzlDMUVBMDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC03NTMxLDYgKzc1NTUsNyBAQAogCQkJCTBGQjE0RTIzMTgxMzA5NTUw
MDlCNkI0RCAvKiBERkdJbmxpbmVDYWNoZVdyYXBwZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNzA0RDkwNjE3QTBCQUE4MDA2QkE1NTQgLyogREZHSW5QbGFjZUFic3RyYWN0U3RhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkJEQzIxMTUxRTgwM0IwMENEODkxMCAvKiBERkdJbnNl
cnRpb25TZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNDFCMDA3MURBMzdGQ0YwMDg2NTNENyAv
KiBET01KSVRTaWduYXR1cmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMzAwQjdDMThBQjFCMTQw
MEE2RDcyRSAvKiBERkdJbnRlZ2VyQ2hlY2tDb21iaW5pbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY4OThGMzIxQjI3Njg5RjAwODNBMzNDIC8qIERGR0ludGVnZXJSYW5nZU9wdGltaXph
dGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM5N0YzRTE4MjAyMTE5MDAyQzlCMjYg
LyogREZHSW52YWxpZGF0aW9uUG9pbnRJbmplY3Rpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC03NjEyLDYgKzc2MzcsNyBAQAogCQkJCTBGQzIwQ0JBMTg1NTZBMzUwMEM5RTk1NCAvKiBERkdT
U0FMb3dlcmluZ1BoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlGQjRGNTE3RkNCOTE3MDBD
QjY3RjggLyogREZHU3RhY2tMYXlvdXRQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0RjI5
RTAxOEI2QUQxQzAwNTdCQzE1IC8qIERGR1N0YXRpY0V4ZWN1dGlvbkNvdW50RXN0aW1hdGlvblBo
YXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0ZGNzUzMzFEOUNFQTE4MDBDN0UxNkQgLyogRE9N
SklUR2V0dGVyU2V0dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlFMzI2NDFCMDVBQjA0MDA4
MDFFRDUgLyogREZHU3RvcmVCYXJyaWVySW5zZXJ0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzIwQ0I2MTg1MkUyQzYwMEM5RTk1NCAvKiBERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYzOTQ3ODE1RENFMzRCMDA2QTU5N0MgLyogREZHU3Ry
dWN0dXJlQWJzdHJhY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC03NzEwLDYgKzc3MzYsNyBA
QAogCQkJCTBGMjM1QkREMTcxNzhFMUMwMDY5MEM3RiAvKiBGVExPU1JFeGl0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjIzNUJFMDE3MTc4RTFDMDA2OTBDN0YgLyogRlRMT1NSRXhpdENvbXBpbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQ4NTMyQTE4N0RGREVDMDA4M0I2ODcgLyogRlRMUmVj
b3ZlcnlPcGNvZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNDFCMDA4MURBMzdGRDQwMDg2NTNE
NyAvKiBET01KSVRTbG93UGF0aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDRUZB
QUMxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjI1RjFCMjE4MTYzNUYzMDA1MjJGMzkgLyogRlRMU2xvd1BhdGhDYWxsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjI1RjFCNDE4MTYzNUYzMDA1MjJGMzkgLyogRlRMU2xvd1BhdGhDYWxsS2V5
LmggaW4gSGVhZGVycyAqLywKQEAgLTc3NDAsNiArNzc2Nyw3IEBACiAJCQkJMEYyQjY2QUYxN0I2
QjU0NTAwQTdBRTNGIC8qIEdDSW5jb21pbmdSZWZDb3VudGVkU2V0SW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTMxMzc0QkQxRDVDRTY3NjAwQUY3QTBCIC8qIFdBU01QbGFuLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyQUFCQ0RFNzE4RUYyOTQyMDAwMDIwOTYgLyogR0NMb2dnaW5nLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMzQxQjAwMzFEQTJDNUE3MDA4NjUzRDcgLyogRE9NSklUUGF0Y2hw
b2ludFBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyQkJEOTgxQzVGRjNGNTAwMjNFRjIz
IC8qIEIzVmFyaWFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NEU4RUIwMThCRkZCQkIwMDU1
NkQyOCAvKiBHQ1NlZ21lbnRlZEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTRFOEVCMTE4
QkZGQkJFMDA1NTZEMjggLyogR0NTZWdtZW50ZWRBcnJheUlubGluZXMuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0
dXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuY3Bw
CmluZGV4IDE1YjNjODEzY2I4YmU4MDczM2UzYjQxNWY2YTk4ZTdmOWFjOGRkNGYuLmNiNzZkMDVm
MDlmMTg2NjY0YWNiM2JiZTBmYzc4ODY5MmYwMTA4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFN0YXR1cy5jcHAKQEAgLTM3LDYgKzM3LDkgQEAKICNp
bmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KIAogbmFtZXNwYWNlIEpTQyB7CituYW1lc3BhY2UgRE9N
SklUIHsKK2NsYXNzIEdldHRlclNldHRlcjsKK30KIAogYm9vbCBHZXRCeUlkU3RhdHVzOjphcHBl
bmRWYXJpYW50KGNvbnN0IEdldEJ5SWRWYXJpYW50JiB2YXJpYW50KQogewpAQCAtMjE1LDYgKzIx
OCw3IEBAIEdldEJ5SWRTdGF0dXMgR2V0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvV2l0
aG91dEV4aXRTaXRlRmVlZGJhY2soCiAgICAgICAgICAgICBjYXNlIENvbXBsZXhHZXRTdGF0dXM6
OklubGluZWFibGU6IHsKICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExpbmtT
dGF0dXM+IGNhbGxMaW5rU3RhdHVzOwogICAgICAgICAgICAgICAgIEpTRnVuY3Rpb24qIGludHJp
bnNpY0Z1bmN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICBET01KSVQ6OkdldHRlclNl
dHRlciogZG9tSklUID0gbnVsbHB0cjsKIAogICAgICAgICAgICAgICAgIHN3aXRjaCAoYWNjZXNz
LnR5cGUoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgQWNjZXNzQ2FzZTo6TG9hZDoKQEAgLTIz
NCw2ICsyMzgsMTIgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yU3R1
YkluZm9XaXRob3V0RXhpdFNpdGVGZWVkYmFjaygKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21BY2Nlc3NvckdldHRlcjogeworICAgICAgICAgICAg
ICAgICAgICBkb21KSVQgPSBhY2Nlc3MuZG9tSklUKCk7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghZG9tSklUKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEdldEJ5SWRTdGF0dXMo
c2xvd1BhdGhTdGF0ZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSB0b3RhbGx5IHN3ZWV0IHRvIHN1cHBvcnQgbW9yZSBv
ZiB0aGVzZSBhdCBzb21lIHBvaW50IGluIHRoZQogICAgICAgICAgICAgICAgICAgICAvLyBmdXR1
cmUuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwNTIKQEAgLTI0
NCw3ICsyNTQsOCBAQCBHZXRCeUlkU3RhdHVzIEdldEJ5SWRTdGF0dXM6OmNvbXB1dGVGb3JTdHVi
SW5mb1dpdGhvdXRFeGl0U2l0ZUZlZWRiYWNrKAogICAgICAgICAgICAgICAgIEdldEJ5SWRWYXJp
YW50IHZhcmlhbnQoCiAgICAgICAgICAgICAgICAgICAgIFN0cnVjdHVyZVNldChzdHJ1Y3R1cmUp
LCBjb21wbGV4R2V0U3RhdHVzLm9mZnNldCgpLAogICAgICAgICAgICAgICAgICAgICBjb21wbGV4
R2V0U3RhdHVzLmNvbmRpdGlvblNldCgpLCBXVEZNb3ZlKGNhbGxMaW5rU3RhdHVzKSwKLSAgICAg
ICAgICAgICAgICAgICAgaW50cmluc2ljRnVuY3Rpb24pOworICAgICAgICAgICAgICAgICAgICBp
bnRyaW5zaWNGdW5jdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZG9tSklUKTsKIAogICAgICAg
ICAgICAgICAgIGlmICghcmVzdWx0LmFwcGVuZFZhcmlhbnQodmFyaWFudCkpCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBHZXRCeUlkU3RhdHVzKHNsb3dQYXRoU3RhdGUsIHRydWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5jcHAKaW5k
ZXggYTg2OWQ0YTFjOTRlN2U0NzU3MzE3NDRjN2IzMDNkNTA2NWUwZjQzMS4uMDMxNzA4NGQwOTlj
YWI3MGE0NDE1MGI2NGY5MTk2ZTU2NjdiYTQxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRWYXJpYW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuY3BwCkBAIC0zNiwxMiArMzYsMTQgQEAgR2V0
QnlJZFZhcmlhbnQ6OkdldEJ5SWRWYXJpYW50KAogICAgIGNvbnN0IFN0cnVjdHVyZVNldCYgc3Ry
dWN0dXJlU2V0LCBQcm9wZXJ0eU9mZnNldCBvZmZzZXQsCiAgICAgY29uc3QgT2JqZWN0UHJvcGVy
dHlDb25kaXRpb25TZXQmIGNvbmRpdGlvblNldCwKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FsbExp
bmtTdGF0dXM+IGNhbGxMaW5rU3RhdHVzLAotICAgIEpTRnVuY3Rpb24qIGludHJpbnNpY0Z1bmN0
aW9uKQorICAgIEpTRnVuY3Rpb24qIGludHJpbnNpY0Z1bmN0aW9uLAorICAgIERPTUpJVDo6R2V0
dGVyU2V0dGVyKiBkb21KSVQpCiAgICAgOiBtX3N0cnVjdHVyZVNldChzdHJ1Y3R1cmVTZXQpCiAg
ICAgLCBtX2NvbmRpdGlvblNldChjb25kaXRpb25TZXQpCiAgICAgLCBtX29mZnNldChvZmZzZXQp
CiAgICAgLCBtX2NhbGxMaW5rU3RhdHVzKFdURk1vdmUoY2FsbExpbmtTdGF0dXMpKQogICAgICwg
bV9pbnRyaW5zaWNGdW5jdGlvbihpbnRyaW5zaWNGdW5jdGlvbikKKyAgICAsIG1fZG9tSklUKGRv
bUpJVCkKIHsKICAgICBpZiAoIXN0cnVjdHVyZVNldC5zaXplKCkpIHsKICAgICAgICAgQVNTRVJU
KG9mZnNldCA9PSBpbnZhbGlkT2Zmc2V0KTsKQEAgLTY1LDYgKzY3LDcgQEAgR2V0QnlJZFZhcmlh
bnQmIEdldEJ5SWRWYXJpYW50OjpvcGVyYXRvcj0oY29uc3QgR2V0QnlJZFZhcmlhbnQmIG90aGVy
KQogICAgIG1fY29uZGl0aW9uU2V0ID0gb3RoZXIubV9jb25kaXRpb25TZXQ7CiAgICAgbV9vZmZz
ZXQgPSBvdGhlci5tX29mZnNldDsKICAgICBtX2ludHJpbnNpY0Z1bmN0aW9uID0gb3RoZXIubV9p
bnRyaW5zaWNGdW5jdGlvbjsKKyAgICBtX2RvbUpJVCA9IG90aGVyLm1fZG9tSklUOwogICAgIGlm
IChvdGhlci5tX2NhbGxMaW5rU3RhdHVzKQogICAgICAgICBtX2NhbGxMaW5rU3RhdHVzID0gc3Rk
OjptYWtlX3VuaXF1ZTxDYWxsTGlua1N0YXR1cz4oKm90aGVyLm1fY2FsbExpbmtTdGF0dXMpOwog
ICAgIGVsc2UKQEAgLTEwMyw2ICsxMDYsOSBAQCBib29sIEdldEJ5SWRWYXJpYW50OjphdHRlbXB0
VG9NZXJnZShjb25zdCBHZXRCeUlkVmFyaWFudCYgb3RoZXIpCiAgICAgaWYgKCFjYW5NZXJnZUlu
dHJpbnNpY1N0cnVjdHVyZXMob3RoZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBp
ZiAobV9kb21KSVQgIT0gb3RoZXIubV9kb21KSVQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwog
ICAgIGlmIChtX2NvbmRpdGlvblNldC5pc0VtcHR5KCkgIT0gb3RoZXIubV9jb25kaXRpb25TZXQu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCkBAIC0xMzgsNiArMTQ0LDgg
QEAgdm9pZCBHZXRCeUlkVmFyaWFudDo6ZHVtcEluQ29udGV4dChQcmludFN0cmVhbSYgb3V0LCBE
dW1wQ29udGV4dCogY29udGV4dCkgY29uc3QKICAgICAgICAgb3V0LnByaW50KCIsIGNhbGwgPSAi
LCAqbV9jYWxsTGlua1N0YXR1cyk7CiAgICAgaWYgKG1faW50cmluc2ljRnVuY3Rpb24pCiAgICAg
ICAgIG91dC5wcmludCgiLCBpbnRyaW5zaWMgPSAiLCAqbV9pbnRyaW5zaWNGdW5jdGlvbik7Cisg
ICAgaWYgKG1fZG9tSklUKQorICAgICAgICBvdXQucHJpbnQoIiwgY3VzdG9tID0gIiwgUmF3UG9p
bnRlcihtX2RvbUpJVCkpOwogICAgIG91dC5wcmludCgiPiIpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0QnlJZFZhcmlhbnQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkVmFyaWFudC5oCmluZGV4IDY2MjE4OWJjZTVm
MmViMWExM2JkMDUzZTk4MDAyMWMxM2MyNjZlNjYuLjhkZWQyNDg2NzVmODcxZDc5MDhmMjJhNTY5
NDM3Mjk3OGI4OTUzYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9HZXRCeUlkVmFyaWFudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXRCeUlkVmFyaWFudC5oCkBAIC0zMiw2ICszMiw5IEBACiAjaW5jbHVkZSAiU3RydWN0dXJlU2V0
LmgiCiAKIG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIERPTUpJVCB7CitjbGFzcyBHZXR0ZXJT
ZXR0ZXI7Cit9CiAKIGNsYXNzIENhbGxMaW5rU3RhdHVzOwogY2xhc3MgR2V0QnlJZFN0YXR1czsK
QEAgLTQzLDcgKzQ2LDggQEAgY2xhc3MgR2V0QnlJZFZhcmlhbnQgewogICAgICAgICBjb25zdCBT
dHJ1Y3R1cmVTZXQmIHN0cnVjdHVyZVNldCA9IFN0cnVjdHVyZVNldCgpLCBQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQgPSBpbnZhbGlkT2Zmc2V0LAogICAgICAgICBjb25zdCBPYmplY3RQcm9wZXJ0eUNv
bmRpdGlvblNldCYgPSBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCgpLAogICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q2FsbExpbmtTdGF0dXM+ID0gbnVsbHB0ciwKLSAgICAgICAgSlNGdW5jdGlv
biogPSBudWxscHRyKTsKKyAgICAgICAgSlNGdW5jdGlvbiogPSBudWxscHRyLAorICAgICAgICBE
T01KSVQ6OkdldHRlclNldHRlciogPSBudWxscHRyKTsKIAogICAgIH5HZXRCeUlkVmFyaWFudCgp
OwogICAgIApAQCAtNjIsNiArNjYsNyBAQCBjbGFzcyBHZXRCeUlkVmFyaWFudCB7CiAgICAgQ2Fs
bExpbmtTdGF0dXMqIGNhbGxMaW5rU3RhdHVzKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsTGlua1N0
YXR1cy5nZXQoKTsgfQogICAgIEpTRnVuY3Rpb24qIGludHJpbnNpY0Z1bmN0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9pbnRyaW5zaWNGdW5jdGlvbjsgfQogICAgIEludHJpbnNpYyBpbnRyaW5zaWMo
KSBjb25zdCB7IHJldHVybiBtX2ludHJpbnNpY0Z1bmN0aW9uID8gbV9pbnRyaW5zaWNGdW5jdGlv
bi0+aW50cmluc2ljKCkgOiBOb0ludHJpbnNpYzsgfQorICAgIERPTUpJVDo6R2V0dGVyU2V0dGVy
KiBkb21KSVQoKSBjb25zdCB7IHJldHVybiBtX2RvbUpJVDsgfQogCiAgICAgYm9vbCBpc1Byb3Bl
cnR5VW5zZXQoKSBjb25zdCB7IHJldHVybiBvZmZzZXQoKSA9PSBpbnZhbGlkT2Zmc2V0OyB9CiAK
QEAgLTgwLDYgKzg1LDcgQEAgY2xhc3MgR2V0QnlJZFZhcmlhbnQgewogICAgIFByb3BlcnR5T2Zm
c2V0IG1fb2Zmc2V0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWxsTGlua1N0YXR1cz4gbV9jYWxs
TGlua1N0YXR1czsKICAgICBKU0Z1bmN0aW9uKiBtX2ludHJpbnNpY0Z1bmN0aW9uOworICAgIERP
TUpJVDo6R2V0dGVyU2V0dGVyKiBtX2RvbUpJVDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNj
ZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vz
cy5jcHAKaW5kZXggMmNmMjY2NzA4NjY0NmYyMDJhMDRjNmEwNzQyOWM4MWE3NWU5NDY0My4uOWE4
YThlNTIwMDk4YTk2YWU2ZGM4NTA5ZjAyZjE1MzFhMDAxMjU2MCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCkBAIC0yMjAs
NyArMjIwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6OnRyeUdl
dCgKIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPiBBY2Nlc3NDYXNlOjpnZXQoCiAgICAgVk0m
IHZtLCBKU0NlbGwqIG93bmVyLCBBY2Nlc3NUeXBlIHR5cGUsIFByb3BlcnR5T2Zmc2V0IG9mZnNl
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsCiAgICAgY29uc3QgT2JqZWN0UHJvcGVydHlDb25kaXRp
b25TZXQmIGNvbmRpdGlvblNldCwgYm9vbCB2aWFQcm94eSwgV2F0Y2hwb2ludFNldCogYWRkaXRp
b25hbFNldCwKLSAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBjdXN0b21HZXR0ZXIsIEpT
T2JqZWN0KiBjdXN0b21TbG90QmFzZSkKKyAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBj
dXN0b21HZXR0ZXIsIEpTT2JqZWN0KiBjdXN0b21TbG90QmFzZSwgRE9NSklUOjpHZXR0ZXJTZXR0
ZXIqIGRvbUpJVCkKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gcmVzdWx0KG5l
dyBBY2Nlc3NDYXNlKCkpOwogCkBAIC0yMjksMTIgKzIyOSwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
QWNjZXNzQ2FzZT4gQWNjZXNzQ2FzZTo6Z2V0KAogICAgIHJlc3VsdC0+bV9zdHJ1Y3R1cmUuc2V0
KHZtLCBvd25lciwgc3RydWN0dXJlKTsKICAgICByZXN1bHQtPm1fY29uZGl0aW9uU2V0ID0gY29u
ZGl0aW9uU2V0OwogCi0gICAgaWYgKHZpYVByb3h5IHx8IGFkZGl0aW9uYWxTZXQgfHwgcmVzdWx0
LT5kb2VzQ2FsbHMoKSB8fCBjdXN0b21HZXR0ZXIgfHwgY3VzdG9tU2xvdEJhc2UpIHsKKyAgICBp
ZiAodmlhUHJveHkgfHwgYWRkaXRpb25hbFNldCB8fCByZXN1bHQtPmRvZXNDYWxscygpIHx8IGN1
c3RvbUdldHRlciB8fCBjdXN0b21TbG90QmFzZSB8fCBkb21KSVQpIHsKICAgICAgICAgcmVzdWx0
LT5tX3JhcmVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxSYXJlRGF0YT4oKTsKICAgICAgICAgcmVz
dWx0LT5tX3JhcmVEYXRhLT52aWFQcm94eSA9IHZpYVByb3h5OwogICAgICAgICByZXN1bHQtPm1f
cmFyZURhdGEtPmFkZGl0aW9uYWxTZXQgPSBhZGRpdGlvbmFsU2V0OwogICAgICAgICByZXN1bHQt
Pm1fcmFyZURhdGEtPmN1c3RvbUFjY2Vzc29yLmdldHRlciA9IGN1c3RvbUdldHRlcjsKICAgICAg
ICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5jdXN0b21TbG90QmFzZS5zZXRNYXlCZU51bGwodm0sIG93
bmVyLCBjdXN0b21TbG90QmFzZSk7CisgICAgICAgIHJlc3VsdC0+bV9yYXJlRGF0YS0+ZG9tSklU
ID0gZG9tSklUOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0zODUsNiArMzg2LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPEFjY2Vzc0Nhc2U+IEFjY2Vzc0Nhc2U6OmNsb25lKCkgY29uc3QK
ICAgICAgICAgcmVzdWx0LT5tX3JhcmVEYXRhLT5jdXN0b21BY2Nlc3Nvci5vcGFxdWUgPSByYXJl
RGF0YS0+Y3VzdG9tQWNjZXNzb3Iub3BhcXVlOwogICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEt
PmN1c3RvbVNsb3RCYXNlID0gcmFyZURhdGEtPmN1c3RvbVNsb3RCYXNlOwogICAgICAgICByZXN1
bHQtPm1fcmFyZURhdGEtPmludHJpbnNpY0Z1bmN0aW9uID0gcmFyZURhdGEtPmludHJpbnNpY0Z1
bmN0aW9uOworICAgICAgICByZXN1bHQtPm1fcmFyZURhdGEtPmRvbUpJVCA9IHJhcmVEYXRhLT5k
b21KSVQ7CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCmluZGV4IGE2ZDE0OGNiZmIw
ZjE5ZjhiMzdhMTc3MzgxZTAwODEzNzJiODQ5MjIuLjk3MGEyMzViZmRlMzJlNjNhZjZiOTVkYWZm
NzMyM2MyYjk0OGM2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oCkBAIC0zNyw2ICszNyw5IEBACiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKK25hbWVzcGFjZSBET01KSVQgeworY2xhc3MgR2V0
dGVyU2V0dGVyOworfQogCiBjbGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBQb2x5bW9ycGhpY0FjY2Vz
czsKQEAgLTEzMCw3ICsxMzMsOCBAQCBjbGFzcyBBY2Nlc3NDYXNlIHsKICAgICAgICAgYm9vbCB2
aWFQcm94eSA9IGZhbHNlLAogICAgICAgICBXYXRjaHBvaW50U2V0KiBhZGRpdGlvbmFsU2V0ID0g
bnVsbHB0ciwKICAgICAgICAgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgPSBudWxscHRyLAot
ICAgICAgICBKU09iamVjdCogY3VzdG9tU2xvdEJhc2UgPSBudWxscHRyKTsKKyAgICAgICAgSlNP
YmplY3QqIGN1c3RvbVNsb3RCYXNlID0gbnVsbHB0ciwKKyAgICAgICAgRE9NSklUOjpHZXR0ZXJT
ZXR0ZXIqID0gbnVsbHB0cik7CiAgICAgCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxBY2Nl
c3NDYXNlPiBtZWdhbW9ycGhpY0xvYWQoVk0mLCBKU0NlbGwqIG93bmVyKTsKICAgICAKQEAgLTE4
Niw2ICsxOTAsMTIgQEAgY2xhc3MgQWNjZXNzQ2FzZSB7CiAgICAgICAgIHJldHVybiBpbnRyaW5z
aWNGdW5jdGlvbigpLT5pbnRyaW5zaWMoKTsKICAgICB9CiAKKyAgICBET01KSVQ6OkdldHRlclNl
dHRlciogZG9tSklUKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3JhcmVEYXRhKTsK
KyAgICAgICAgcmV0dXJuIG1fcmFyZURhdGEtPmRvbUpJVDsKKyAgICB9CisKICAgICBXYXRjaHBv
aW50U2V0KiBhZGRpdGlvbmFsU2V0KCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX3Jh
cmVEYXRhID8gbV9yYXJlRGF0YS0+YWRkaXRpb25hbFNldC5nZXQoKSA6IG51bGxwdHI7CkBAIC0y
ODQsNiArMjk0LDcgQEAgY2xhc3MgQWNjZXNzQ2FzZSB7CiAgICAgcHVibGljOgogICAgICAgICBS
YXJlRGF0YSgpCiAgICAgICAgICAgICA6IHZpYVByb3h5KGZhbHNlKQorICAgICAgICAgICAgLCBk
b21KSVQobnVsbHB0cikKICAgICAgICAgewogICAgICAgICAgICAgY3VzdG9tQWNjZXNzb3Iub3Bh
cXVlID0gbnVsbHB0cjsKICAgICAgICAgfQpAQCAtMzAwLDYgKzMxMSw3IEBAIGNsYXNzIEFjY2Vz
c0Nhc2UgewogICAgICAgICB9IGN1c3RvbUFjY2Vzc29yOwogICAgICAgICBXcml0ZUJhcnJpZXI8
SlNPYmplY3Q+IGN1c3RvbVNsb3RCYXNlOwogICAgICAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlv
bj4gaW50cmluc2ljRnVuY3Rpb247CisgICAgICAgIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21K
SVQ7CiAgICAgfTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSYXJlRGF0YT4gbV9yYXJlRGF0YTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3BlY3VsYXRlZFR5cGUuY3Bw
CmluZGV4IDcxOWQ4ZjI3MjgzZjVkMTIzY2U1NzcxNTQ1ZTQ2OWJmODFhZmYyMjcuLjI0MjUyOTJh
ZmY2MDU5YWFhNzhjYjg0OTdkMTg2YjliNTA0MmU2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TcGVjdWxhdGVkVHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1NwZWN1bGF0ZWRUeXBlLmNwcApAQCAtMzUzLDYgKzM1MywxMiBA
QCBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21UeXBlZEFycmF5VHlwZShUeXBlZEFycmF5
VHlwZSB0eXBlKQogCiBTcGVjdWxhdGVkVHlwZSBzcGVjdWxhdGlvbkZyb21DbGFzc0luZm8oY29u
c3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiB7CisgICAgaWYgKGNsYXNzSW5mbyA9PSBKU1N0cmlu
Zzo6aW5mbygpKQorICAgICAgICByZXR1cm4gU3BlY1N0cmluZzsKKworICAgIGlmIChjbGFzc0lu
Zm8gPT0gU3ltYm9sOjppbmZvKCkpCisgICAgICAgIHJldHVybiBTcGVjU3ltYm9sOworCiAgICAg
aWYgKGNsYXNzSW5mbyA9PSBKU0ZpbmFsT2JqZWN0OjppbmZvKCkpCiAgICAgICAgIHJldHVybiBT
cGVjRmluYWxPYmplY3Q7CiAgICAgCkBAIC0zODUsNiArMzkxLDkgQEAgU3BlY3VsYXRlZFR5cGUg
c3BlY3VsYXRpb25Gcm9tQ2xhc3NJbmZvKGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAg
IAogICAgIGlmIChpc1R5cGVkVmlldyhjbGFzc0luZm8tPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkp
CiAgICAgICAgIHJldHVybiBzcGVjdWxhdGlvbkZyb21UeXBlZEFycmF5VHlwZShjbGFzc0luZm8t
PnR5cGVkQXJyYXlTdG9yYWdlVHlwZSk7CisKKyAgICBpZiAoY2xhc3NJbmZvLT5pc1N1YkNsYXNz
T2YoSlNBcnJheTo6aW5mbygpKSkKKyAgICAgICAgcmV0dXJuIFNwZWNEZXJpdmVkQXJyYXk7CiAg
ICAgCiAgICAgaWYgKGNsYXNzSW5mby0+aXNTdWJDbGFzc09mKEpTT2JqZWN0OjppbmZvKCkpKQog
ICAgICAgICByZXR1cm4gU3BlY09iamVjdE90aGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaAppbmRleCA1OTcyODE2NjJlOGFkMWZm
YWE4NTU2MjJjNzA1OWE0NzRiMmY0NDZlLi5iY2Y2ZDdlNzMxZmNkN2UwNTM1M2FmZDY5YjhiOWE0
MzkzZmJhODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXIuaApAQCAtMTM0LDEwICsxMzQsMTcgQEAgY2xhc3MgQWJzdHJhY3RJbnRl
cnByZXRlciB7CiAgICAgICAgIHJldHVybiBmaWx0ZXJCeVZhbHVlKGZvck5vZGUobm9kZSksIHZh
bHVlKTsKICAgICB9CiAgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBGaWx0cmF0
aW9uUmVzdWx0IGZpbHRlckNsYXNzSW5mbyhUIG5vZGUsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJ
bmZvKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZpbHRlckNsYXNzSW5mbyhmb3JOb2RlKG5vZGUp
LCBjbGFzc0luZm8pOworICAgIH0KKwogICAgIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyKEFic3Ry
YWN0VmFsdWUmLCBjb25zdCBTdHJ1Y3R1cmVTZXQmLCBTcGVjdWxhdGVkVHlwZSBhZG1pdHRlZFR5
cGVzID0gU3BlY05vbmUpOwogICAgIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyQXJyYXlNb2RlcyhB
YnN0cmFjdFZhbHVlJiwgQXJyYXlNb2Rlcyk7CiAgICAgRmlsdHJhdGlvblJlc3VsdCBmaWx0ZXIo
QWJzdHJhY3RWYWx1ZSYsIFNwZWN1bGF0ZWRUeXBlKTsKICAgICBGaWx0cmF0aW9uUmVzdWx0IGZp
bHRlckJ5VmFsdWUoQWJzdHJhY3RWYWx1ZSYsIEZyb3plblZhbHVlKTsKKyAgICBGaWx0cmF0aW9u
UmVzdWx0IGZpbHRlckNsYXNzSW5mbyhBYnN0cmFjdFZhbHVlJiwgY29uc3QgQ2xhc3NJbmZvKik7
CiAgICAgCiAgICAgUGhpQ2hpbGRyZW4qIHBoaUNoaWxkcmVuKCkgeyByZXR1cm4gbV9waGlDaGls
ZHJlbi5nZXQoKTsgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDlkYjEzZTNhODdlNmI3
OGRhYTFlOWIwMTIzMzJmYTE1ZjU2NDQ0OTAuLmM0OTFjMDA0NmVlMDM1MzQ5MjIwODI5NWQ5ZWUz
NDc2OGViYjQ4OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lu
Y2x1ZGUgIkFycmF5Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJERkdBYnN0cmFjdEludGVycHJl
dGVyLmgiCisjaW5jbHVkZSAiRE9NSklUR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiR2V0QnlJ
ZFN0YXR1cy5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkhhc2hNYXBJ
bXBsLmgiCkBAIC0yMjYzLDYgKzIyNjQsMjggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFi
c3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAg
ICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgICAgIGZvck5vZGUobm9kZSku
Y2xlYXIoKTsgLy8gVGhlIHJlc3VsdCBpcyBub3QgYSBKUyB2YWx1ZS4KICAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDaGVja0RPTTogeworICAgICAgICBKU1ZhbHVlIGNvbnN0YW50ID0gZm9yTm9k
ZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKKyAgICAgICAgaWYgKGNvbnN0YW50KSB7CisgICAg
ICAgICAgICBpZiAoY29uc3RhbnQuaXNDZWxsKCkgJiYgY29uc3RhbnQuYXNDZWxsKCktPmluaGVy
aXRzKG5vZGUtPmNsYXNzSW5mbygpKSkgeworICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91
bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKGNvbnN0YW50KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IEFic3RyYWN0VmFsdWUmIHZhbHVlID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7CisKKyAgICAg
ICAgaWYgKHZhbHVlLm1fc3RydWN0dXJlLmlzU3ViQ2xhc3NPZihub2RlLT5jbGFzc0luZm8oKSkp
CisgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworCisgICAgICAg
IGZpbHRlckNsYXNzSW5mbyh2YWx1ZSwgbm9kZS0+Y2xhc3NJbmZvKCkpOworICAgICAgICBicmVh
azsKKyAgICB9CisgICAgY2FzZSBDYWxsRE9NOgorICAgICAgICBjbG9iYmVyV29ybGQobm9kZS0+
b3JpZ2luLnNlbWFudGljLCBjbG9iYmVyTGltaXQpOworICAgICAgICBmb3JOb2RlKG5vZGUpLm1h
a2VCeXRlY29kZVRvcCgpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENoZWNrQXJyYXk6IHsK
ICAgICAgICAgaWYgKG5vZGUtPmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1fZ3JhcGgsIG5v
ZGUsIGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpKSkgewogICAgICAgICAgICAgbV9zdGF0ZS5zZXRG
b3VuZENvbnN0YW50cyh0cnVlKTsKQEAgLTMwNDYsNiArMzA2OSwxNiBAQCBGaWx0cmF0aW9uUmVz
dWx0IEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpmaWx0ZXJCeVZhbHVl
KAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBYnN0cmFjdFN0YXRlVHlwZT4KK0ZpbHRyYXRpb25S
ZXN1bHQgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmZpbHRlckNsYXNz
SW5mbygKKyAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0lu
Zm8pCit7CisgICAgaWYgKHZhbHVlLmZpbHRlckNsYXNzSW5mbyhtX2dyYXBoLCBjbGFzc0luZm8p
ID09IEZpbHRyYXRpb25PSykKKyAgICAgICAgcmV0dXJuIEZpbHRyYXRpb25PSzsKKyAgICBtX3N0
YXRlLnNldElzVmFsaWQoZmFsc2UpOworICAgIHJldHVybiBDb250cmFkaWN0aW9uOworfQorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBBYnN0cmFjdFN0YXRlVHlwZT4KIHZvaWQgQWJzdHJhY3RJbnRlcnBy
ZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVEb3VibGVVbmFyeU9wRWZmZWN0cyhOb2Rl
KiBub2RlLCBkb3VibGUoKmVxdWl2YWxlbnRGdW5jdGlvbikoZG91YmxlKSkKIHsKICAgICBKU1Zh
bHVlIGNoaWxkID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RWYWx1ZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuY3BwCmluZGV4IGMzZWZkYWNlZTc4
ZDZhY2VlZjY1YTk4MzI4NDFiZDZmNDFiY2E0N2YuLjY3MmIyMjgxNjcxNTJkOGUzMTI3ZjQ1ODdl
ZTM0N2NkZjE4MzhmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdFZhbHVlLmNwcApAQCAtMzA2LDYgKzMwNiwyMyBAQCBGaWx0cmF0aW9uUmVzdWx0IEFic3Ry
YWN0VmFsdWU6OmZpbHRlckFycmF5TW9kZXMoQXJyYXlNb2RlcyBhcnJheU1vZGVzKQogICAgIHJl
dHVybiBub3JtYWxpemVDbGFyaXR5KCk7CiB9CiAKK0ZpbHRyYXRpb25SZXN1bHQgQWJzdHJhY3RW
YWx1ZTo6ZmlsdGVyQ2xhc3NJbmZvKEdyYXBoJiBncmFwaCwgY29uc3QgQ2xhc3NJbmZvKiBjbGFz
c0luZm8pCit7CisgICAgQVNTRVJUKGFycmF5TW9kZXMpOworCisgICAgaWYgKGlzQ2xlYXIoKSkK
KyAgICAgICAgcmV0dXJuIEZpbHRyYXRpb25PSzsKKworICAgIG1fdHlwZSAmPSBzcGVjdWxhdGlv
bkZyb21DbGFzc0luZm8oY2xhc3NJbmZvKTsKKyAgICBtX3N0cnVjdHVyZS5maWx0ZXJDbGFzc0lu
Zm8oY2xhc3NJbmZvKTsKKworICAgIG1fc3RydWN0dXJlLmZpbHRlcihtX3R5cGUpOworCisgICAg
ZmlsdGVyQXJyYXlNb2Rlc0J5VHlwZSgpOworICAgIGZpbHRlclZhbHVlQnlUeXBlKCk7CisgICAg
cmV0dXJuIG5vcm1hbGl6ZUNsYXJpdHkoZ3JhcGgpOworfQorCiBGaWx0cmF0aW9uUmVzdWx0IEFi
c3RyYWN0VmFsdWU6OmZpbHRlcihTcGVjdWxhdGVkVHlwZSB0eXBlKQogewogICAgIGlmICgobV90
eXBlICYgdHlwZSkgPT0gbV90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdFZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0VmFsdWUuaAppbmRleCAzMmViMGYxOWM1YzkxZjY3NzE4ZTczZDBhN2MzOGUxOWZjZjI4
M2VmLi44YTkxMDE0MDc1NjNhYjEzZWEwMGQ1YzZiY2U4ODRjNTkyODAzMTZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0VmFsdWUuaApAQCAtMzA3LDYgKzMwNyw3
IEBAIHN0cnVjdCBBYnN0cmFjdFZhbHVlIHsKICAgICBGaWx0cmF0aW9uUmVzdWx0IGZpbHRlcihT
cGVjdWxhdGVkVHlwZSk7CiAgICAgRmlsdHJhdGlvblJlc3VsdCBmaWx0ZXJCeVZhbHVlKGNvbnN0
IEZyb3plblZhbHVlJiB2YWx1ZSk7CiAgICAgRmlsdHJhdGlvblJlc3VsdCBmaWx0ZXIoY29uc3Qg
QWJzdHJhY3RWYWx1ZSYpOworICAgIEZpbHRyYXRpb25SZXN1bHQgZmlsdGVyQ2xhc3NJbmZvKEdy
YXBoJiwgY29uc3QgQ2xhc3NJbmZvKik7CiAKICAgICBGaWx0cmF0aW9uUmVzdWx0IGZpbHRlcihH
cmFwaCYsIGNvbnN0IEluZmVycmVkVHlwZTo6RGVzY3JpcHRvciYpOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCAwNDUyMjgw
ZGQyNmY0MGIwYmNhNDVkMzg1MWQxMTBkZjQxNmEwZmE3Li41MDMyZTUzZTNjODc2ODI0ZjE1MGQy
MDRkNjM4MjM2MWQ2Y2EwZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMjE5LDYgKzIxOSw3IEBAIGNsYXNzIEJ5dGVDb2RlUGFy
c2VyIHsKICAgICBib29sIGhhbmRsZUNvbnN0YW50SW50ZXJuYWxGdW5jdGlvbihOb2RlKiBjYWxs
VGFyZ2V0Tm9kZSwgaW50IHJlc3VsdE9wZXJhbmQsIEludGVybmFsRnVuY3Rpb24qLCBpbnQgcmVn
aXN0ZXJPZmZzZXQsIGludCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcywgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCwgU3BlY3VsYXRlZFR5cGUsIGNvbnN0IENoZWNrc0Z1bmN0b3ImIGluc2VydENo
ZWNrcyk7CiAgICAgTm9kZSogaGFuZGxlUHV0QnlPZmZzZXQoTm9kZSogYmFzZSwgdW5zaWduZWQg
aWRlbnRpZmllciwgUHJvcGVydHlPZmZzZXQsIGNvbnN0IEluZmVycmVkVHlwZTo6RGVzY3JpcHRv
ciYsIE5vZGUqIHZhbHVlKTsKICAgICBOb2RlKiBoYW5kbGVHZXRCeU9mZnNldChTcGVjdWxhdGVk
VHlwZSwgTm9kZSogYmFzZSwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgUHJvcGVydHlPZmZz
ZXQsIGNvbnN0IEluZmVycmVkVHlwZTo6RGVzY3JpcHRvciYsIE5vZGVUeXBlID0gR2V0QnlPZmZz
ZXQpOworICAgIGJvb2wgaGFuZGxlRE9NSklUR2V0dGVyKGludCByZXN1bHRPcGVyYW5kLCBjb25z
dCBHZXRCeUlkVmFyaWFudCYsIE5vZGUqIHRoaXNOb2RlLCBTcGVjdWxhdGVkVHlwZSBwcmVkaWN0
aW9uKTsKIAogICAgIC8vIENyZWF0ZSBhIHByZXNlbmNlIE9iamVjdFByb3BlcnR5Q29uZGl0aW9u
IGJhc2VkIG9uIHNvbWUga25vd24gb2Zmc2V0IGFuZCBzdHJ1Y3R1cmUgc2V0LiBEb2VzIG5vdAog
ICAgIC8vIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgY29uZGl0aW9uLCBidXQgaXQgbWF5IHJl
dHVybiBhIG51bGwgb25lIGlmIGl0IGVuY291bnRlcnMgYSBjb250cmFkaWN0aW9uLgpAQCAtMjY1
OSw2ICsyNjYwLDIwIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0dldHRl
cihpbnQgcmVzdWx0T3BlcmFuZCwgY29uc3QgR2V0QnlJZFZhcmlhCiAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAorYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlRE9NSklU
R2V0dGVyKGludCByZXN1bHRPcGVyYW5kLCBjb25zdCBHZXRCeUlkVmFyaWFudCYgdmFyaWFudCwg
Tm9kZSogdGhpc05vZGUsIFNwZWN1bGF0ZWRUeXBlKQoreworICAgIGlmICghdmFyaWFudC5kb21K
SVQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRE9NSklUOjpHZXR0ZXJTZXR0ZXIq
IGRvbUpJVCA9IHZhcmlhbnQuZG9tSklUKCk7CisgICAgYWRkVG9HcmFwaChDaGVja0RPTSwgT3BJ
bmZvKGRvbUpJVCksIE9wSW5mbyhkb21KSVQtPnRoaXNDbGFzc0luZm8oKSksIHRoaXNOb2RlKTsK
KyAgICBOb2RlKiBnbG9iYWxPYmplY3QgPSBhZGRUb0dyYXBoKEdldEdsb2JhbE9iamVjdCwgdGhp
c05vZGUpOworICAgIGFkZFZhckFyZ0NoaWxkKGdsb2JhbE9iamVjdCk7CisgICAgYWRkVmFyQXJn
Q2hpbGQodGhpc05vZGUpOworICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0T3BlcmFuZCks
IGFkZFRvR3JhcGgoTm9kZTo6VmFyQXJnLCBDYWxsRE9NLCBPcEluZm8oZG9tSklUKSwgT3BJbmZv
KDApKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIENoZWNrc0Z1
bmN0b3I+CiBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVUeXBlZEFycmF5Q29uc3RydWN0b3Io
CiAgICAgaW50IHJlc3VsdE9wZXJhbmQsIEludGVybmFsRnVuY3Rpb24qIGZ1bmN0aW9uLCBpbnQg
cmVnaXN0ZXJPZmZzZXQsCkBAIC0zMzI0LDYgKzMzMzksMTQgQEAgdm9pZCBCeXRlQ29kZVBhcnNl
cjo6aGFuZGxlR2V0QnlJZCgKICAgICAgICAgbV9ncmFwaC5jb21waWxhdGlvbigpLT5ub3RpY2VJ
bmxpbmVkR2V0QnlJZCgpOwogCiAgICAgQVNTRVJUKHR5cGUgPT0gQWNjZXNzVHlwZTo6R2V0IHx8
ICF2YXJpYW50LmNhbGxMaW5rU3RhdHVzKCkpOworCisgICAgaWYgKHZhcmlhbnQuZG9tSklUKCkp
IHsKKyAgICAgICAgaWYgKGhhbmRsZURPTUpJVEdldHRlcihkZXN0aW5hdGlvbk9wZXJhbmQsIHZh
cmlhbnQsIGJhc2UsIHByZWRpY3Rpb24pKSB7CisgICAgICAgICAgICBhZGRUb0dyYXBoKFBoYW50
b20sIGxvYWRlZFZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
KwogICAgIGlmICghdmFyaWFudC5jYWxsTGlua1N0YXR1cygpICYmIHZhcmlhbnQuaW50cmluc2lj
KCkgPT0gTm9JbnRyaW5zaWMpIHsKICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihkZXN0aW5h
dGlvbk9wZXJhbmQpLCBsb2FkZWRWYWx1ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggODdkOGI1MmQ4Y2Q3OWZkNDkyNGM4
NTgyMTQyNjE2ZTcyZGE3MjNjNC4uZmU5Y2U5OGViYjY4MzdmNGQ1OTc1YWZiOGJmZTAzNjdjODQx
Yzc0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXpl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTg4
Myw2ICs4ODMsMTUgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwg
Y29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICAgICAgZGVmKEhlYXBM
b2NhdGlvbihCdXR0ZXJmbHlMb2MsIEpTT2JqZWN0X2J1dHRlcmZseSwgbm9kZS0+Y2hpbGQxKCkp
LCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKIAorICAgIGNhc2UgQ2hlY2tET006
CisgICAgICAgIGRlZihQdXJlVmFsdWUoQ2hlY2tET00sIEFkamFjZW5jeUxpc3QoQWRqYWNlbmN5
TGlzdDo6Rml4ZWQsIG5vZGUtPmNoaWxkMSgpKSwgbm9kZS0+Y2xhc3NJbmZvKCkpKTsKKyAgICAg
ICAgcmV0dXJuOworCisgICAgY2FzZSBDYWxsRE9NOgorICAgICAgICByZWFkKFdvcmxkKTsKKyAg
ICAgICAgd3JpdGUoSGVhcCk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQXJyYXlpZnk6
CiAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgogICAgICAgICByZWFkKEpTQ2VsbF9zdHJ1
Y3R1cmVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1v
bkRhdGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5oCmluZGV4
IGU1OGEyZWJlNmI1OWFmNjJlNjFiNTVmYjdkODQzZjgwMDdkZWM4NmIuLjVlZGQzM2U5NDZhOWRh
MjQ5NmI5MjQwNjgxM2YxNTE0NjAwODRmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29tbW9uRGF0YS5oCkBAIC03OCw3ICs3OCw3IEBAIGNsYXNzIENvbW1vbkRhdGEgewogICAg
IHsgfQogICAgIAogICAgIHZvaWQgbm90aWZ5Q29tcGlsaW5nU3RydWN0dXJlVHJhbnNpdGlvbihQ
bGFuJiwgQ29kZUJsb2NrKiwgTm9kZSopOwotICAgIENhbGxTaXRlSW5kZXggYWRkQ29kZU9yaWdp
bihDb2RlT3JpZ2luKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBDYWxsU2l0ZUluZGV4IGFkZENv
ZGVPcmlnaW4oQ29kZU9yaWdpbik7CiAgICAgQ2FsbFNpdGVJbmRleCBhZGRVbmlxdWVDYWxsU2l0
ZUluZGV4KENvZGVPcmlnaW4pOwogICAgIENhbGxTaXRlSW5kZXggbGFzdENhbGxTaXRlKCkgY29u
c3Q7CiAgICAgdm9pZCByZW1vdmVDYWxsU2l0ZUluZGV4KENhbGxTaXRlSW5kZXgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNw
cAppbmRleCA1ZDYzMjlkMjhmNWZmM2JmNjVhMWNmY2E0N2FhNjc3NDE2OTM1ZTJmLi5kOWJjN2U3
MDlhMTFjZDRlM2QxOWJlYjVlYjhlMjAwMWJmM2EwZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcApAQCAtMTU4LDYg
KzE1OCwyOCBAQCBjbGFzcyBDb25zdGFudEZvbGRpbmdQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBjYXNlIENoZWNrRE9NOiB7CisgICAgICAgICAgICAgICAgSlNWYWx1ZSBj
b25zdGFudCA9IG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICBpZiAoY29uc3RhbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnN0
YW50LmlzQ2VsbCgpICYmIGNvbnN0YW50LmFzQ2VsbCgpLT5pbmhlcml0cyhub2RlLT5jbGFzc0lu
Zm8oKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1faW50ZXJwcmV0ZXIuZXhlY3V0ZShp
bmRleEluQmxvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+cmVtb3ZlKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBlbGltaW5hdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBtX3N0YXRlLmZvck5v
ZGUobm9kZS0+Y2hpbGQxKCkpOworCisgICAgICAgICAgICAgICAgaWYgKHZhbHVlLm1fc3RydWN0
dXJlLmlzU3ViQ2xhc3NPZihub2RlLT5jbGFzc0luZm8oKSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgbV9pbnRlcnByZXRlci5leGVjdXRlKGluZGV4SW5CbG9jayk7CisgICAgICAgICAgICAgICAg
ICAgIG5vZGUtPnJlbW92ZSgpOworICAgICAgICAgICAgICAgICAgICBlbGltaW5hdGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgY2FzZSBHZXRJbmRleGVkUHJvcGVydHlTdG9yYWdlOiB7CiAgICAgICAgICAgICAgICAg
SlNBcnJheUJ1ZmZlclZpZXcqIHZpZXcgPSBtX2dyYXBoLnRyeUdldEZvbGRhYmxlVmlldygKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRE9NSklUUGF0Y2hwb2ludFBh
cmFtcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdET01KSVRQYXRjaHBvaW50UGFy
YW1zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjAzZmUyNzcyNzI3YjZlYWE3NGVlYjYyMzY3MjU5Y2YwYWQ5MmY2
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRE9NSklU
UGF0Y2hwb2ludFBhcmFtcy5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShERkdf
SklUKQorCisjaW5jbHVkZSAiRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oIgorCituYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CisKK2NsYXNzIERPTUpJVFBhdGNocG9pbnRQYXJhbXMgOiBw
dWJsaWMgRE9NSklUOjpQYXRjaHBvaW50UGFyYW1zIHsKK3B1YmxpYzoKKyAgICBET01KSVRQYXRj
aHBvaW50UGFyYW1zKFNwZWN1bGF0aXZlSklUJiBqaXQsIFZlY3RvcjxSZWc+JiYgcmVncywgVmVj
dG9yPEdQUlJlZz4mJiBncFNjcmF0Y2gsIFZlY3RvcjxGUFJSZWc+JiYgZnBTY3JhdGNoKQorICAg
ICAgICA6IERPTUpJVDo6UGF0Y2hwb2ludFBhcmFtcyhXVEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdw
U2NyYXRjaCksIFdURk1vdmUoZnBTY3JhdGNoKSkKKyAgICAgICAgLCBtX2ppdChqaXQpCisgICAg
eworICAgIH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGFkZFNsb3dQYXRoQ2FsbEltcGwoQ0NhbGxI
ZWxwZXJzJiwgc3RkOjp1bmlxdWVfcHRyPERPTUpJVDo6U2xvd1BhdGhHZW5lcmF0b3I+IGdlbmVy
YXRvcikgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGdlbmVyYXRvci0+YWRkKG1faml0
KTsKKyAgICB9CisKKyAgICBTcGVjdWxhdGl2ZUpJVCYgbV9qaXQ7Cit9OworCit9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6REZHCisKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCAwYWQ1NGZlZTJmZjM5ZDg4NTcwYjE3NzY3
ODFmMjQxOTYwOWZkY2RhLi41MWM4MDIzMzI4MzJhMTVhNzk5ZTQwYzZhNGFhMWRhOWI5ODg1ODkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC0xMTYsNiArMTE2
LDggQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgQ2hl
Y2tTdHJ1Y3R1cmU6CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgIGNhc2UgR2V0QnV0dGVy
Zmx5OgorICAgIGNhc2UgQ2FsbERPTToKKyAgICBjYXNlIENoZWNrRE9NOgogICAgIGNhc2UgQ2hl
Y2tBcnJheToKICAgICBjYXNlIEdldFNjb3BlOgogICAgIGNhc2UgU2tpcFNjb3BlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggNWFkNmFmZDQ3YjQ4
MjUwMzkwMjQzNzU5ODE5ODYzNmRmYWExMTgwMC4uNzFiMGUxNjRlZmIzYTcwYmM0ZGM0NWE5YjY4
MDAzZTZmYjY5YWE0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCkBAIC0xNjAzLDYgKzE2MDMsMTUgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQ
aGFzZSB7CiAgICAgICAgICAgICBmaXhFZGdlPFVudHlwZWRVc2U+KG5vZGUtPmNoaWxkMSgpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgQ2hlY2tET006CisgICAgICAgICAg
ICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
CisgICAgICAgIGNhc2UgQ2FsbERPTToKKyAgICAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNl
PihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsgLy8gR2xvYmFsT2JqZWN0LgorICAgICAg
ICAgICAgZml4RWRnZTxDZWxsVXNlPihtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsgLy8g
RE9NLgorICAgICAgICAgICAgYnJlYWs7CisKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAg
IC8vIEhhdmUgdGhlc2Ugbm8tb3AgY2FzZXMgaGVyZSB0byBlbnN1cmUgdGhhdCBub2JvZHkgZm9y
Z2V0cyB0byBhZGQgaGFuZGxlcnMgZm9yIG5ldyBvcGNvZGVzLgogICAgICAgICBjYXNlIFNldEFy
Z3VtZW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCmluZGV4
IGYyMzM0ODg1NzdlZjkxM2Y4NjllYWMwMzM2YmM4NmVjYzY0ZWJhNTkuLmYzNTc4YmE1ZjUzZmVi
YjUwZDI4OTA2YzBjNTcxNDA3ODRlYTBmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0pJVENvbXBpbGVyLmgKQEAgLTE2Niw3ICsxNjYsNyBAQCBjbGFzcyBKSVRDb21waWxlciA6
IHB1YmxpYyBDQ2FsbEhlbHBlcnMgewogICAgICAgICByZXR1cm4gZnVuY3Rpb25DYWxsOwogICAg
IH0KICAgICAKLSAgICB2b2lkIGV4Y2VwdGlvbkNoZWNrKCk7CisgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBleGNlcHRpb25DaGVjaygpOwogCiAgICAgdm9pZCBleGNlcHRpb25DaGVja1dpdGhD
YWxsRnJhbWVSb2xsYmFjaygpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApp
bmRleCA0YmFlOWFlOTYzNjA5YzNmMzczMDZiMTRmNTcyZjJiNGZhYzU3NDRiLi40MjM3YTUyNjI0
OTkyMWQwM2ZjYmE2Zjg4YmIwNjU2YTdlNmIxN2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGUuaApAQCAtNTgsNiArNTgsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK25hbWVzcGFj
ZSBET01KSVQgeworY2xhc3MgR2V0dGVyU2V0dGVyOworfQorCiBuYW1lc3BhY2UgUHJvZmlsZXIg
ewogY2xhc3MgRXhlY3V0aW9uQ291bnRlcjsKIH0KQEAgLTE0NDIsNiArMTQ0Niw3IEBAIHN0cnVj
dCBOb2RlIHsKICAgICAgICAgY2FzZSBTdHJpbmdSZXBsYWNlUmVnRXhwOgogICAgICAgICBjYXNl
IFRvTnVtYmVyOgogICAgICAgICBjYXNlIExvYWRGcm9tSlNNYXBCdWNrZXQ6CisgICAgICAgIGNh
c2UgQ2FsbERPTToKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjMwOCw3ICsyMzEzLDI4IEBAIHN0cnVjdCBO
b2RlIHsKICAgICAgICAgQVNTRVJUKGhhc0Jhc2ljQmxvY2tMb2NhdGlvbigpKTsKICAgICAgICAg
cmV0dXJuIG1fb3BJbmZvLmFzPEJhc2ljQmxvY2tMb2NhdGlvbio+KCk7CiAgICAgfQotICAgIAor
CisgICAgYm9vbCBoYXNET01KSVQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG9wKCkg
PT0gQ2hlY2tET00gfHwgb3AoKSA9PSBDYWxsRE9NOworICAgIH0KKworICAgIERPTUpJVDo6R2V0
dGVyU2V0dGVyKiBkb21KSVQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc0RPTUpJVCgpKTsK
KyAgICAgICAgcmV0dXJuIG1fb3BJbmZvLmFzPERPTUpJVDo6R2V0dGVyU2V0dGVyKj4oKTsKKyAg
ICB9CisKKyAgICBib29sIGhhc0NsYXNzSW5mbygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gb3AoKSA9PSBDaGVja0RPTTsKKyAgICB9CisKKyAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNz
SW5mbygpCisgICAgeworICAgICAgICByZXR1cm4gbV9vcEluZm8yLmFzPGNvbnN0IENsYXNzSW5m
byo+KCk7CisgICAgfQorCiAgICAgTm9kZSogcmVwbGFjZW1lbnQoKSBjb25zdAogICAgIHsKICAg
ICAgICAgcmV0dXJuIG1fbWlzYy5yZXBsYWNlbWVudDsKQEAgLTIzODgsNiArMjQxNCwxMSBAQCBz
dHJ1Y3QgTm9kZSB7CiAgICAgICAgICAgICB1LmludDY0ID0gMDsKICAgICAgICAgICAgIHUucG9p
bnRlciA9IHBvaW50ZXI7CiAgICAgICAgIH0KKyAgICAgICAgT3BJbmZvV3JhcHBlcihjb25zdCB2
b2lkKiBjb25zdFBvaW50ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHUuaW50NjQgPSAwOwor
ICAgICAgICAgICAgdS5jb25zdFBvaW50ZXIgPSBjb25zdFBvaW50ZXI7CisgICAgICAgIH0KICAg
ICAgICAgT3BJbmZvV3JhcHBlciYgb3BlcmF0b3I9KHVpbnQzMl90IGludDMyKQogICAgICAgICB7
CiAgICAgICAgICAgICB1LmludDY0ID0gMDsKQEAgLTI0MTEsMTIgKzI0NDIsMjMgQEAgc3RydWN0
IE5vZGUgewogICAgICAgICAgICAgdS5wb2ludGVyID0gcG9pbnRlcjsKICAgICAgICAgICAgIHJl
dHVybiAqdGhpczsKICAgICAgICAgfQorICAgICAgICBPcEluZm9XcmFwcGVyJiBvcGVyYXRvcj0o
Y29uc3Qgdm9pZCogY29uc3RQb2ludGVyKQorICAgICAgICB7CisgICAgICAgICAgICB1LmludDY0
ID0gMDsKKyAgICAgICAgICAgIHUuY29uc3RQb2ludGVyID0gY29uc3RQb2ludGVyOworICAgICAg
ICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgotICAgICAgICBBTFdBWVNfSU5MSU5FIGF1dG8gYXMoKSBjb25zdCAtPiB0eXBlbmFtZSBz
dGQ6OmVuYWJsZV9pZjxzdGQ6OmlzX3BvaW50ZXI8VD46OnZhbHVlLCBUPjo6dHlwZQorICAgICAg
ICBBTFdBWVNfSU5MSU5FIGF1dG8gYXMoKSBjb25zdCAtPiB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9p
ZjxzdGQ6OmlzX3BvaW50ZXI8VD46OnZhbHVlICYmICFzdGQ6OmlzX2NvbnN0PHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX3BvaW50ZXI8VD46OnR5cGU+Ojp2YWx1ZSwgVD46OnR5cGUKICAgICAgICAgewog
ICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQ+KHUucG9pbnRlcik7CiAgICAgICAgIH0K
ICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICAgICAgIEFMV0FZU19JTkxJTkUgYXV0
byBhcygpIGNvbnN0IC0+IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfcG9pbnRlcjxU
Pjo6dmFsdWUgJiYgc3RkOjppc19jb25zdDx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9wb2ludGVyPFQ+
Ojp0eXBlPjo6dmFsdWUsIFQ+Ojp0eXBlCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxUPih1LmNvbnN0UG9pbnRlcik7CisgICAgICAgIH0KKyAgICAgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+CiAgICAgICAgIEFMV0FZU19JTkxJTkUgYXV0byBhcygpIGNvbnN0IC0+
IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlICYmIHNp
emVvZihUKSA9PSA0LCBUPjo6dHlwZQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gdS5p
bnQzMjsKQEAgLTI0MzAsNiArMjQ3Miw3IEBAIHN0cnVjdCBOb2RlIHsKICAgICAgICAgICAgIHVp
bnQzMl90IGludDMyOwogICAgICAgICAgICAgdWludDY0X3QgaW50NjQ7CiAgICAgICAgICAgICB2
b2lkKiBwb2ludGVyOworICAgICAgICAgICAgY29uc3Qgdm9pZCogY29uc3RQb2ludGVyOwogICAg
ICAgICB9IHU7CiAgICAgfTsKICAgICBPcEluZm9XcmFwcGVyIG1fb3BJbmZvOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDhiNGQ5ZjBjMzA5YTdjMTg5ZDY1MjI3
NjliMDdkNTI5NGQ2NmM0ZmQuLjgzYjBmNTljMGQwNDk3YjU4YTMzZmJmYThlYTU4YjI1NDk3ZTNk
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTM5NCw2ICsz
OTQsMTAgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKEdldE1h
cEJ1Y2tldCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oTG9hZEZyb21KU01hcEJ1Y2tldCwg
Tm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oSXNOb25FbXB0eU1hcEJ1Y2tldCwgTm9kZVJlc3Vs
dEJvb2xlYW4pIFwKKyAgICBcCisgICAgLyogTm9kZXMgZm9yIERPTSBKSVQgKi9cCisgICAgbWFj
cm8oQ2hlY2tET00sIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDYWxsRE9NLCBOb2Rl
UmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MpIFwKIAogLy8gVGhp
cyBlbnVtIGdlbmVyYXRlcyBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBpZCBmb3IgYWxsIE5v
ZGUgdHlwZXMsCiAvLyBhbmQgaXMgdXNlZCBieSB0aGUgc3Vic2VxdWVudCBlbnVtIHRvIGZpbGwg
b3V0IHRoZSBpZCAoYXMgYWNjZXNzZWQgdmlhIHRoZSBOb2RlSWRNYXNrKS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wSW5mby5oCmluZGV4IGQ0N2E5NzA5YzI5YjUyZDNiNWQ4ZWY0ZjMzZTA5
YjVkN2U1Y2JkZTcuLjU3ZjMzMjk3ZWU3NGUxYjdlNGJhNWY4OTM4NjdmOWVjNDcwNmQxMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BJbmZvLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcEluZm8uaApAQCAtNDMsNiArNDMsNyBAQCBzdHJ1
Y3QgT3BJbmZvIHsKICAgICBleHBsaWNpdCBPcEluZm8odWludHB0cl90IHZhbHVlKSA6IG1fdmFs
dWUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHZhbHVlKSkgeyB9CiAjZW5kaWYKICAgICBleHBsaWNp
dCBPcEluZm8odm9pZCogdmFsdWUpIDogbV92YWx1ZShzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHZhbHVlKSkpIHsgfQorICAgIGV4cGxpY2l0IE9wSW5m
byhjb25zdCB2b2lkKiB2YWx1ZSkgOiBtX3ZhbHVlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihyZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4odmFsdWUpKSkgeyB9CiAgICAgdWludDY0X3QgbV92YWx1
ZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGlj
dGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggYmFmZGY5MDZlYmY2ZjczMDdjYWY0
MGY2Yjg1YzExYjAxMTllMWYyMi4uZWU4NWU5YTcxMDZmODAwOGMxNzFjNzQ0MzM2NDc2ZDc0YmM5
ZDI5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTY5OSw3ICs2OTksOCBAQCBjbGFzcyBQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgIGNhc2Ug
R2V0Q2xvc3VyZVZhcjoKICAgICAgICAgY2FzZSBHZXRGcm9tQXJndW1lbnRzOgogICAgICAgICBj
YXNlIExvYWRGcm9tSlNNYXBCdWNrZXQ6Ci0gICAgICAgIGNhc2UgVG9OdW1iZXI6IHsKKyAgICAg
ICAgY2FzZSBUb051bWJlcjoKKyAgICAgICAgY2FzZSBDYWxsRE9NOiB7CiAgICAgICAgICAgICBz
ZXRQcmVkaWN0aW9uKG1fY3VycmVudE5vZGUtPmdldEhlYXBQcmVkaWN0aW9uKCkpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTgxOSw2ICs4MjAsOSBAQCBjbGFzcyBQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogCisgICAgICAgIGNhc2UgQ2hlY2tET006CisgICAgICAgICAgICBicmVhazsK
KwogICAgICAgICBjYXNlIENhbGxPYmplY3RDb25zdHJ1Y3RvcjogewogICAgICAgICAgICAgc2V0
UHJlZGljdGlvbihTcGVjT2JqZWN0KTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCBiZGRkNDY2MDE3ZTlmODdi
NmMwMzU0NDBjZDhhZjE0N2I4NjVkZjRmLi4wZGI1NDUxZjgxY2IwNTUwODllYzg5ZTgwY2JkZjY5
MDUwZjdiMmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVU
b0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1
dGUuaApAQCAtMjE2LDYgKzIxNiw4IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRl
VHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIENoZWNrU3Ry
dWN0dXJlOgogICAgIGNhc2UgR2V0RXhlY3V0YWJsZToKICAgICBjYXNlIEdldEJ1dHRlcmZseToK
KyAgICBjYXNlIENhbGxET006CisgICAgY2FzZSBDaGVja0RPTToKICAgICBjYXNlIENoZWNrQXJy
YXk6CiAgICAgY2FzZSBBcnJheWlmeToKICAgICBjYXNlIEFycmF5aWZ5VG9TdHJ1Y3R1cmU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgKaW5k
ZXggNjA4MWM1N2IyODYxOGU0M2Q5ZWEyOGQ1NTYxMDE1ODJhNjJjNThjYS4uMDZiMmE5YmQwNWM3
M2MzOGNjZTE2NGMwNzBhZjkzYjliODQ4MGFkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTbG93UGF0aEdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLWNsYXNzIFNsb3dQYXRoR2VuZXJhdG9yIHsK
K2NsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFNsb3dQYXRoR2VuZXJhdG9yIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBTbG93UGF0aEdlbmVyYXRvcihTcGVjdWxh
dGl2ZUpJVCogaml0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAppbmRleCAxMGVmYjcyMDQzZjFhYzg3NzAxYWJkODZmOWVjY2ExYWRmOGQzN2Ix
Li5mMWMxMWJjZTcwMzhjMDViYTE3Mjk5NWE1NDljNjNiZjU3NTdlNTBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMzQsMTAgKzM0
LDEyIEBACiAjaW5jbHVkZSAiREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3Iu
aCIKICNpbmNsdWRlICJERkdDYWxsQ3JlYXRlRGlyZWN0QXJndW1lbnRzU2xvd1BhdGhHZW5lcmF0
b3IuaCIKICNpbmNsdWRlICJERkdDYXBhYmlsaXRpZXMuaCIKKyNpbmNsdWRlICJERkdET01KSVRQ
YXRjaHBvaW50UGFyYW1zLmgiCiAjaW5jbHVkZSAiREZHTWF5RXhpdC5oIgogI2luY2x1ZGUgIkRG
R09TUkV4aXRGdXp6LmgiCiAjaW5jbHVkZSAiREZHU2FuZVN0cmluZ0dldEJ5VmFsU2xvd1BhdGhH
ZW5lcmF0b3IuaCIKICNpbmNsdWRlICJERkdTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUg
IkRPTUpJVFBhdGNocG9pbnQuaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMuaCIKICNpbmNs
dWRlICJKSVRBZGRHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJKSVRCaXRBbmRHZW5lcmF0b3IuaCIK
QEAgLTcwNTcsNiArNzA1OSw3NiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnV0
dGVyZmx5KE5vZGUqIG5vZGUpCiAgICAgc3RvcmFnZVJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwog
fQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2FsbERPTShOb2RlKiBub2RlKQorewor
ICAgIFJlZjxET01KSVQ6OlBhdGNocG9pbnQ+IHBhdGNocG9pbnQgPSBub2RlLT5kb21KSVQoKS0+
Y2FsbERPTSgpOworCisgICAgVmVjdG9yPEdQUlJlZz4gZ3BTY3JhdGNoOworICAgIFZlY3RvcjxG
UFJSZWc+IGZwU2NyYXRjaDsKKyAgICBWZWN0b3I8UmVnPiByZWdzOworCisgICAgLy8gRklYTUU6
IHBhdGNocG9pbnQgc2hvdWxkIGhhdmUgYSB3YXkgdG8gdGVsbCB0aGlzIGNhbiByZXVzZSAiYmFz
ZSIgcmVnaXN0ZXIuCisgICAgLy8gVGVhY2hpbmcgREZHIGFib3V0IERPTUpJVDo6UGF0Y2hwb2lu
dCBjbG9iYmVyIGluZm9ybWF0aW9uIGlzIG5pY2UuCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQg
Z2xvYmFsT2JqZWN0KHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwor
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdD
aGlsZChub2RlLCAxKSk7CisgICAgSlNWYWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwor
CisgICAgcmVncy5hcHBlbmQocmVzdWx0LnJlZ3MoKS5ncHIoKSk7CisgICAgcmVncy5hcHBlbmQo
Z2xvYmFsT2JqZWN0LmdwcigpKTsKKyAgICByZWdzLmFwcGVuZChiYXNlLmdwcigpKTsKKyAgICBy
ZWdzLmFwcGVuZChzdGF0aWNfY2FzdDxHUFJSZWc+KEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcikp
OworICAgIHJlZ3MuYXBwZW5kKHN0YXRpY19jYXN0PEdQUlJlZz4oR1BSSW5mbzo6dGFnVHlwZU51
bWJlclJlZ2lzdGVyKSk7CisKKyAgICBWZWN0b3I8R1BSVGVtcG9yYXJ5PiBncFRlbXByYXJpZXM7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJl
Z2lzdGVyczsgKytpKSB7CisgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wb3JhcnkodGhpcyk7Cisg
ICAgICAgIGdwU2NyYXRjaC5hcHBlbmQodGVtcG9yYXJ5LmdwcigpKTsKKyAgICAgICAgZ3BUZW1w
cmFyaWVzLmFwcGVuZChXVEZNb3ZlKHRlbXBvcmFyeSkpOworICAgIH0KKworICAgIFZlY3RvcjxG
UFJUZW1wb3Jhcnk+IGZwVGVtcHJhcmllczsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
cGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzOyArK2kpIHsKKyAgICAgICAgRlBSVGVt
cG9yYXJ5IHRlbXBvcmFyeSh0aGlzKTsKKyAgICAgICAgZnBTY3JhdGNoLmFwcGVuZCh0ZW1wb3Jh
cnkuZnByKCkpOworICAgICAgICBmcFRlbXByYXJpZXMuYXBwZW5kKFdURk1vdmUodGVtcG9yYXJ5
KSk7CisgICAgfQorCisgICAgREZHOjpET01KSVRQYXRjaHBvaW50UGFyYW1zIHBhcmFtcygqdGhp
cywgV1RGTW92ZShyZWdzKSwgV1RGTW92ZShncFNjcmF0Y2gpLCBXVEZNb3ZlKGZwU2NyYXRjaCkp
OworICAgIHBhdGNocG9pbnQtPmdlbmVyYXRvcigpLT5ydW4obV9qaXQsIHBhcmFtcyk7CisgICAg
anNWYWx1ZVJlc3VsdChyZXN1bHQucmVncygpLCBub2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUNoZWNrRE9NKE5vZGUqIG5vZGUpCit7CisgICAgUmVmPERPTUpJVDo6UGF0
Y2hwb2ludD4gcGF0Y2hwb2ludCA9IG5vZGUtPmRvbUpJVCgpLT5jaGVja0RPTSgpOworCisgICAg
VmVjdG9yPEdQUlJlZz4gZ3BTY3JhdGNoOworICAgIFZlY3RvcjxGUFJSZWc+IGZwU2NyYXRjaDsK
KyAgICBWZWN0b3I8UmVnPiByZWdzOworCisgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgcmVncy5hcHBlbmQoYmFzZS5ncHIoKSk7CisKKyAg
ICBWZWN0b3I8R1BSVGVtcG9yYXJ5PiBncFRlbXByYXJpZXM7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVyczsgKytpKSB7CisgICAg
ICAgIEdQUlRlbXBvcmFyeSB0ZW1wb3JhcnkodGhpcyk7CisgICAgICAgIGdwU2NyYXRjaC5hcHBl
bmQodGVtcG9yYXJ5LmdwcigpKTsKKyAgICAgICAgZ3BUZW1wcmFyaWVzLmFwcGVuZChXVEZNb3Zl
KHRlbXBvcmFyeSkpOworICAgIH0KKworICAgIFZlY3RvcjxGUFJUZW1wb3Jhcnk+IGZwVGVtcHJh
cmllczsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF0Y2hwb2ludC0+bnVtR1BTY3Jh
dGNoUmVnaXN0ZXJzOyArK2kpIHsKKyAgICAgICAgRlBSVGVtcG9yYXJ5IHRlbXBvcmFyeSh0aGlz
KTsKKyAgICAgICAgZnBTY3JhdGNoLmFwcGVuZCh0ZW1wb3JhcnkuZnByKCkpOworICAgICAgICBm
cFRlbXByYXJpZXMuYXBwZW5kKFdURk1vdmUodGVtcG9yYXJ5KSk7CisgICAgfQorCisgICAgREZH
OjpET01KSVRQYXRjaHBvaW50UGFyYW1zIHBhcmFtcygqdGhpcywgV1RGTW92ZShyZWdzKSwgV1RG
TW92ZShncFNjcmF0Y2gpLCBXVEZNb3ZlKGZwU2NyYXRjaCkpOworICAgIENDYWxsSGVscGVyczo6
SnVtcExpc3QgZmFpbHVyZUNhc2VzID0gcGF0Y2hwb2ludC0+Z2VuZXJhdG9yKCktPnJ1bihtX2pp
dCwgcGFyYW1zKTsKKyAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIEpTVmFsdWVSZWdzKGJh
c2UuZ3ByKCkpLCBub2RlLT5jaGlsZDEoKSwgZmFpbHVyZUNhc2VzKTsKKyAgICBub1Jlc3VsdChu
b2RlKTsKK30KKwogR1BSUmVnIFNwZWN1bGF0aXZlSklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1
dEJ5VmFsKEdQUlRlbXBvcmFyeSYgdGVtcG9yYXJ5LCBBcnJheU1vZGUgYXJyYXlNb2RlKQogewog
ICAgIGlmICghcHV0QnlWYWxXaWxsTmVlZEV4dHJhUmVnaXN0ZXIoYXJyYXlNb2RlKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCBjYTk3OGY2
YjczOTUxMzk1MDE1MTBkMDU4MjhhMDI5ODIyZjg1YTFiLi5lYmM0ZmVhYTc4OTdjMDUyNGU1MmZh
M2ExNWU4NmMwNDI4NTVjMTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCkBAIC0zMTIsNyArMzEyLDcgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQg
ewogICAgIEdQUlJlZyBmaWxsU3BlY3VsYXRlQm9vbGVhbihFZGdlKTsKICAgICBHZW5lcmF0ZWRP
cGVyYW5kVHlwZSBjaGVja0dlbmVyYXRlZFR5cGVGb3JUb0ludDMyKE5vZGUqKTsKIAotICAgIHZv
aWQgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9y
Pik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRTbG93UGF0aEdlbmVyYXRvcihzdGQ6
OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+KTsKICAgICB2b2lkIGFkZFNsb3dQYXRoR2Vu
ZXJhdG9yKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7CiAgICAgdm9pZCBydW5TbG93UGF0aEdlbmVy
YXRvcnMoUENUb0NvZGVPcmlnaW5NYXBCdWlsZGVyJik7CiAgICAgCkBAIC0zMzAsMTAgKzMzMCwx
MCBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgLy8gdGhleSBzcGlsbCBhbGwgbGl2ZSB2
YWx1ZXMgdG8gdGhlIGFwcHJvcHJpYXRlCiAgICAgLy8gc2xvdHMgaW4gdGhlIEpTU3RhY2sgd2l0
aG91dCBjaGFuZ2luZyBhbnkgc3RhdGUKICAgICAvLyBpbiB0aGUgR2VuZXJhdGlvbkluZm8uCi0g
ICAgU2lsZW50UmVnaXN0ZXJTYXZlUGxhbiBzaWxlbnRTYXZlUGxhbkZvckdQUihWaXJ0dWFsUmVn
aXN0ZXIgc3BpbGxNZSwgR1BSUmVnIHNvdXJjZSk7Ci0gICAgU2lsZW50UmVnaXN0ZXJTYXZlUGxh
biBzaWxlbnRTYXZlUGxhbkZvckZQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgRlBSUmVnIHNv
dXJjZSk7Ci0gICAgdm9pZCBzaWxlbnRTcGlsbChjb25zdCBTaWxlbnRSZWdpc3RlclNhdmVQbGFu
Jik7Ci0gICAgdm9pZCBzaWxlbnRGaWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mLCBH
UFJSZWcgY2FuVHJhbXBsZSk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU2lsZW50UmVnaXN0ZXJT
YXZlUGxhbiBzaWxlbnRTYXZlUGxhbkZvckdQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgR1BS
UmVnIHNvdXJjZSk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU2lsZW50UmVnaXN0ZXJTYXZlUGxh
biBzaWxlbnRTYXZlUGxhbkZvckZQUihWaXJ0dWFsUmVnaXN0ZXIgc3BpbGxNZSwgRlBSUmVnIHNv
dXJjZSk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzaWxlbnRTcGlsbChjb25zdCBTaWxl
bnRSZWdpc3RlclNhdmVQbGFuJik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzaWxlbnRG
aWxsKGNvbnN0IFNpbGVudFJlZ2lzdGVyU2F2ZVBsYW4mLCBHUFJSZWcgY2FuVHJhbXBsZSk7CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xsZWN0aW9uVHlwZT4KICAgICB2b2lkIHNpbGVudFNw
aWxsKGNvbnN0IENvbGxlY3Rpb25UeXBlJiBzYXZlUGxhbnMpCkBAIC0yNDU5LDYgKzI0NTksOCBA
QCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdm9pZCBjb21waWxlQWxsb2NhdGVQcm9wZXJ0
eVN0b3JhZ2UoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVJlYWxsb2NhdGVQcm9wZXJ0eVN0b3Jh
Z2UoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUdldEJ1dHRlcmZseShOb2RlKik7CisgICAgdm9p
ZCBjb21waWxlQ2FsbERPTShOb2RlKik7CisgICAgdm9pZCBjb21waWxlQ2hlY2tET00oTm9kZSop
OwogICAgIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQmFz
ZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBQcm9wZXJ0eU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBWYWx1
ZU9wZXJhbmRUeXBlLCB0eXBlbmFtZSBUYWdUeXBlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggM2ExMGExMGQ3YjQy
MjU0NDA5ZGQyMzI5Y2MwZjIxN2Y5Njk5NWQzZS4uNmEyZTBhYTAwMjAzZTA5OGVhYjY3MTQyNzYw
NDQ5YmE3YTI4NmEyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC01NDIwLDYgKzU0MjAsMTQgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAK
KyAgICBjYXNlIENhbGxET006CisgICAgICAgIGNvbXBpbGVDYWxsRE9NKG5vZGUpOworICAgICAg
ICBicmVhazsKKworICAgIGNhc2UgQ2hlY2tET006CisgICAgICAgIGNvbXBpbGVDaGVja0RPTShu
b2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAgICAgICB1
bnJlYWNoYWJsZShub2RlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBmNWVhNzRiMmU3MTA1OTc1
YzdmYjA3MTM2YjcxM2IxYWMxNTY3YjdjLi44OTdhMDhjZTdhZjdmODQ3YWM4MTE2ODQxNDkyNWIz
OWZiNDIyOTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAKQEAgLTU0MzYsNiArNTQzNiwxNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVNYXRlcmlhbGl6ZU5ld09iamVj
dChub2RlKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIENhbGxET006CisgICAgICAgIGNv
bXBpbGVDYWxsRE9NKG5vZGUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgQ2hlY2tET006
CisgICAgICAgIGNvbXBpbGVDaGVja0RPTShub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICNpZiBF
TkFCTEUoRlRMX0pJVCkgICAgICAgIAogICAgIGNhc2UgQ2hlY2tUaWVyVXBJbkxvb3A6IHsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgY2FsbFRpZXJVcCA9IG1faml0LmJyYW5jaEFkZDMy
KApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVBYnN0
cmFjdFZhbHVlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQWJz
dHJhY3RWYWx1ZS5jcHAKaW5kZXggN2E4MjNlZTg2Y2E5M2FkYWI0NjMzNGQ1ZGVmMjI2MTZlNzcy
YjAzOC4uNzQ5MjllOGQ5Mjc1MDlmY2ViNTI0ODNiMjg3NjYwNDk1NzFlZDkyNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZUFic3RyYWN0VmFs
dWUuY3BwCkBAIC0yNTgsNiArMjU4LDE1IEBAIHZvaWQgU3RydWN0dXJlQWJzdHJhY3RWYWx1ZTo6
ZmlsdGVyU2xvdyhTcGVjdWxhdGVkVHlwZSB0eXBlKQogICAgICAgICB9KTsKIH0KIAordm9pZCBT
dHJ1Y3R1cmVBYnN0cmFjdFZhbHVlOjpmaWx0ZXJDbGFzc0luZm9TbG93KGNvbnN0IENsYXNzSW5m
byogY2xhc3NJbmZvKQoreworICAgIEFTU0VSVCghaXNUb3AoKSk7CisgICAgbV9zZXQuZ2VuZXJp
Y0ZpbHRlcigKKyAgICAgICAgWyZdIChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgeworICAgICAgICAg
ICAgcmV0dXJuIHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCktPmlzU3ViQ2xhc3NPZihjbGFzc0luZm8p
OworICAgICAgICB9KTsKK30KKwogYm9vbCBTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlOjpjb250YWlu
cyhTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgY29uc3QKIHsKICAgICBpZiAoaXNJbmZpbml0ZSgpKQpA
QCAtMzE5LDYgKzMyOCwxOSBAQCBib29sIFN0cnVjdHVyZUFic3RyYWN0VmFsdWU6Om92ZXJsYXBz
KGNvbnN0IFN0cnVjdHVyZUFic3RyYWN0VmFsdWUmIG90aGVyKSBjb25zdAogICAgIHJldHVybiBv
dmVybGFwcyhvdGhlci5tX3NldCk7CiB9CiAKK2Jvb2wgU3RydWN0dXJlQWJzdHJhY3RWYWx1ZTo6
aXNTdWJDbGFzc09mKGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKSBjb25zdAoreworICAgIGlm
IChpc0luZmluaXRlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIFJldHVybiB0
cnVlIGlmIHRoZSBzdHJ1Y3R1cmUgc2V0IGlzIGVtcHR5LgorICAgIGZvciAoY29uc3QgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUgOiBtX3NldCkgeworICAgICAgICBpZiAoIXN0cnVjdHVyZS0+Y2xhc3NJ
bmZvKCktPmlzU3ViQ2xhc3NPZihjbGFzc0luZm8pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBTdHJ1Y3R1cmVBYnN0cmFjdFZh
bHVlOjplcXVhbHNTbG93KGNvbnN0IFN0cnVjdHVyZUFic3RyYWN0VmFsdWUmIG90aGVyKSBjb25z
dAogewogICAgIEFTU0VSVChtX3NldC5tX3BvaW50ZXIgIT0gb3RoZXIubV9zZXQubV9wb2ludGVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlQWJz
dHJhY3RWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVBYnN0
cmFjdFZhbHVlLmgKaW5kZXggY2E5NGE3OWI3NDdiZDkxMjY4YjEyY2UyZDA4NDIxNzgwZjc2Mjk2
My4uNTFmNzkzN2Q1NTE4MWY1ZmY2YzU2Y2Y0MDBlZTU5NDVhMzkyODE0MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlLmgK
QEAgLTE2Myw2ICsxNjMsMTIgQEAgY2xhc3MgU3RydWN0dXJlQWJzdHJhY3RWYWx1ZSB7CiAgICAg
ICAgIGlmIChpc05laXRoZXJDbGVhck5vclRvcCgpKQogICAgICAgICAgICAgZmlsdGVyU2xvdyh0
eXBlKTsKICAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgZmlsdGVyQ2xhc3NJbmZvKGNv
bnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQorICAgIHsKKyAgICAgICAgaWYgKGlzTmVpdGhlckNs
ZWFyTm9yVG9wKCkpCisgICAgICAgICAgICBmaWx0ZXJDbGFzc0luZm9TbG93KGNsYXNzSW5mbyk7
CisgICAgfQogICAgIAogICAgIEFMV0FZU19JTkxJTkUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFN0
cnVjdHVyZUFic3RyYWN0VmFsdWUmIG90aGVyKSBjb25zdAogICAgIHsKQEAgLTIzMSw2ICsyMzcs
OCBAQCBjbGFzcyBTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlIHsKICAgICAKICAgICBib29sIG92ZXJs
YXBzKGNvbnN0IFN0cnVjdHVyZVNldCYgb3RoZXIpIGNvbnN0OwogICAgIGJvb2wgb3ZlcmxhcHMo
Y29uc3QgU3RydWN0dXJlQWJzdHJhY3RWYWx1ZSYgb3RoZXIpIGNvbnN0OworCisgICAgYm9vbCBp
c1N1YkNsYXNzT2YoY29uc3QgQ2xhc3NJbmZvKikgY29uc3Q7CiAgICAgCiAgICAgdm9pZCB2YWxp
ZGF0ZVJlZmVyZW5jZXMoY29uc3QgVHJhY2tlZFJlZmVyZW5jZXMmKSBjb25zdDsKICAgICAKQEAg
LTI0MSw2ICsyNDksNyBAQCBjbGFzcyBTdHJ1Y3R1cmVBYnN0cmFjdFZhbHVlIHsKICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgY2xvYmJlcmVkU3VwcmVtYWN5VGhyZXNob2xkID0gMjsKICAgICAK
ICAgICB2b2lkIGZpbHRlclNsb3coU3BlY3VsYXRlZFR5cGUgdHlwZSk7CisgICAgdm9pZCBmaWx0
ZXJDbGFzc0luZm9TbG93KGNvbnN0IENsYXNzSW5mbyopOwogICAgIGJvb2wgbWVyZ2VTbG93KGNv
bnN0IFN0cnVjdHVyZUFic3RyYWN0VmFsdWUmIG90aGVyKTsKICAgICAKICAgICBib29sIGVxdWFs
c1Nsb3coY29uc3QgU3RydWN0dXJlQWJzdHJhY3RWYWx1ZSYgb3RoZXIpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRHZXR0ZXJTZXR0ZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR2V0dGVyU2V0dGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDViYWY2MmY2MjNhMDkyNGIzMjZjNjg3YjU4MGY5MjlhMDdlN2Q3NQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUR2V0dGVyU2V0dGVy
LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRE9NSklUUGF0Y2hwb2ludC5oIgor
I2luY2x1ZGUgIlByb3BlcnR5U2xvdC5oIgorI2luY2x1ZGUgIlB1dFByb3BlcnR5U2xvdC5oIgor
I2luY2x1ZGUgIlNwZWN1bGF0ZWRUeXBlLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
RE9NSklUIHsKKworY2xhc3MgR2V0dGVyU2V0dGVyIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jIEN1c3RvbUdldHRlcjsKKyAgICB0eXBlZGVmIFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jIEN1c3RvbVNldHRlcjsKKworICAgIEdldHRlclNldHRl
cihDdXN0b21HZXR0ZXIgZ2V0dGVyLCBDdXN0b21TZXR0ZXIgc2V0dGVyLCBjb25zdCBDbGFzc0lu
Zm8qIGNsYXNzSW5mbykKKyAgICAgICAgOiBtX2dldHRlcihnZXR0ZXIpCisgICAgICAgICwgbV9z
ZXR0ZXIoc2V0dGVyKQorICAgICAgICAsIG1fdGhpc0NsYXNzSW5mbyhjbGFzc0luZm8pCisgICAg
eworICAgIH0KKworICAgIHZpcnR1YWwgfkdldHRlclNldHRlcigpIHsgfQorCisgICAgQ3VzdG9t
R2V0dGVyIGdldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2V0dGVyOyB9CisgICAgQ3VzdG9tU2V0
dGVyIHNldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGVyOyB9CisgICAgY29uc3QgQ2xhc3NJ
bmZvKiB0aGlzQ2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gbV90aGlzQ2xhc3NJbmZvOyB9CisK
KyNpZiBFTkFCTEUoREZHX0pJVCkKKyAgICB2aXJ0dWFsIFJlZjxET01KSVQ6OlBhdGNocG9pbnQ+
IGNhbGxET00oKSA9IDA7CisgICAgdmlydHVhbCBSZWY8RE9NSklUOjpQYXRjaHBvaW50PiBjaGVj
a0RPTSgpID0gMDsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEN1c3RvbUdldHRlciBtX2dldHRl
cjsKKyAgICBDdXN0b21TZXR0ZXIgbV9zZXR0ZXI7CisgICAgY29uc3QgQ2xhc3NJbmZvKiBtX3Ro
aXNDbGFzc0luZm87Cit9OworCit9IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kb21qaXQvRE9NSklUUGF0Y2hwb2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWpp
dC9ET01KSVRQYXRjaHBvaW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTM4OWM4NjAwZDhhZjhkNzhjMzM1ZTAz
MTk2OWFiZGEwODI5ZjVlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kb21qaXQvRE9NSklUUGF0Y2hwb2ludC5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyU2V0LmgiCisKK25hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgRE9NSklUIHsKKworY2xhc3MgUGF0Y2hwb2ludFBhcmFtczsKKwor
dHlwZWRlZiBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IFBhdGNocG9pbnRHZW5lcmF0b3JGdW5jdGlv
bihDQ2FsbEhlbHBlcnMmLCBjb25zdCBQYXRjaHBvaW50UGFyYW1zJik7Cit0eXBlZGVmIFNoYXJl
ZFRhc2s8UGF0Y2hwb2ludEdlbmVyYXRvckZ1bmN0aW9uPiBQYXRjaHBvaW50R2VuZXJhdG9yOwor
CisvLyBET01KSVQgcGF0Y2hwb2ludCBpcyB0aGUgd2F5IHRvIGluamVjdCBhbiBvcGFxdWUgY29k
ZSBnZW5lcmF0b3IgaW50byBERkcgYW5kIEZUTC4KKy8vIFdoaWxlIEIzOjpQYXRjaHBvaW50IGlz
IHNlbGYtY29udGFpbmVkIGFib3V0IGl0cyBjb21waWxhdGlvbiBpbmZvcm1hdGlvbiwKKy8vIERP
TUpJVDo6UGF0Y2hwb2ludCBkZXBlbmRzIG9uIHdoaWNoIERGRyBOb2RlIGludm9rZXMuIEZvciBl
eGFtcGxlLCBDaGVja0RPTSB3aWxsCisvLyBsaW5rIHJldHVybmVkIGZhaWx1cmVDYXNlcyB0byBC
YWRUeXBlIE9TUkV4aXQsIGJ1dCB0aGlzIGluZm9ybWF0aW9uIGlzIG9mZmVyZWQKKy8vIGZyb20g
Q2hlY2tET00gREZHIE5vZGUsIG5vdCBmcm9tIHRoaXMgcGF0Y2hwb2ludC4gVGhpcyBwYXRjaHBv
aW50IG1haW5seSBmb2N1c2VzCisvLyBvbiBpbmplY3RpbmcgYSBzbmlwcGV0IGdlbmVyYXRvciB0
aGF0IGNhbiB0ZWxsIHJlZ2lzdGVyIHVzYWdlIGFuZCBjYW4gYmUgdXNlZAorLy8gaW4gYm90aCBE
RkcgYW5kIEZUTC4KK2NsYXNzIFBhdGNocG9pbnQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8UGF0Y2hwb2ludD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGF0Y2hwb2ludD4gY3Jl
YXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBhdGNocG9pbnQoKSk7
CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICB2b2lkIHNldEdl
bmVyYXRvcihjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAgbV9nZW5lcmF0
b3IgPSBjcmVhdGVTaGFyZWRUYXNrPFBhdGNocG9pbnRHZW5lcmF0b3JGdW5jdGlvbj4oZnVuY3Rv
cik7CisgICAgfQorCisgICAgUmVmUHRyPFBhdGNocG9pbnRHZW5lcmF0b3I+IGdlbmVyYXRvcigp
IGNvbnN0IHsgcmV0dXJuIG1fZ2VuZXJhdG9yOyB9CisKKyAgICB1aW50OF90IG51bUdQU2NyYXRj
aFJlZ2lzdGVycyB7IDAgfTsKKyAgICB1aW50OF90IG51bUZQU2NyYXRjaFJlZ2lzdGVycyB7IDAg
fTsKKworcHJpdmF0ZToKKyAgICBQYXRjaHBvaW50KCkgPSBkZWZhdWx0OworCisgICAgUmVmUHRy
PFBhdGNocG9pbnRHZW5lcmF0b3I+IG1fZ2VuZXJhdG9yOworfTsKKworfSB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVFBhdGNocG9pbnRQYXJhbXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9NSklUUGF0Y2hwb2ludFBhcmFtcy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhhYTA5MDVkNjNmYjVjMjMxZDBlMTgzNTFlNjU1YjI1ZTQ5MDEyODYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZG9taml0L0RPTUpJVFBhdGNocG9p
bnRQYXJhbXMuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKKyNpbmNsdWRlICJET01KSVRTbG93UGF0aEdlbmVyYXRvci5oIgorI2luY2x1ZGUgIlJlZ2lz
dGVyU2V0LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRE9NSklUIHsKKworY2xhc3Mg
UGF0Y2hwb2ludFBhcmFtcyB7CitXVEZfTUFLRV9OT05DT1BZQUJMRShQYXRjaHBvaW50UGFyYW1z
KTsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QYXRjaHBvaW50UGFyYW1zKCkgeyB9CisKKyAgICB1
bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9yZWdzLnNpemUoKTsgfQorICAgIGNvbnN0
IFJlZyYgYXQodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnc1tpbmRleF07IH0K
KyAgICBjb25zdCBSZWcmIG9wZXJhdG9yW10odW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJu
IGF0KGluZGV4KTsgfQorCisgICAgR1BSUmVnIGdwU2NyYXRjaCh1bnNpZ25lZCBpbmRleCkgY29u
c3QgeyByZXR1cm4gbV9ncFNjcmF0Y2hbaW5kZXhdOyB9CisgICAgRlBSUmVnIGZwU2NyYXRjaCh1
bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9mcFNjcmF0Y2hbaW5kZXhdOyB9CisKKyAg
ICBQYXRjaHBvaW50UGFyYW1zKFZlY3RvcjxSZWc+JiYgcmVncywgVmVjdG9yPEdQUlJlZz4mJiBn
cFNjcmF0Y2gsIFZlY3RvcjxGUFJSZWc+JiYgZnBTY3JhdGNoKQorICAgICAgICA6IG1fcmVncyhX
VEZNb3ZlKHJlZ3MpKQorICAgICAgICAsIG1fZ3BTY3JhdGNoKFdURk1vdmUoZ3BTY3JhdGNoKSkK
KyAgICAgICAgLCBtX2ZwU2NyYXRjaChXVEZNb3ZlKGZwU2NyYXRjaCkpCisgICAgeworICAgIH0K
KworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEp1bXBUeXBlLCB0eXBlbmFtZSBGdW5jdGlvblR5cGUs
IHR5cGVuYW1lIFJlc3VsdFR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KKyAgICB2b2lkIGFk
ZFNsb3dQYXRoQ2FsbChKdW1wVHlwZSBmcm9tLCBDQ2FsbEhlbHBlcnMmIGppdCwgRnVuY3Rpb25U
eXBlIGZ1bmN0aW9uLCBSZXN1bHRUeXBlIHJlc3VsdCwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykg
Y29uc3QKKyAgICB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4g
Z2VuZXJhdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxTbG93UGF0aENhbGxHZW5lcmF0b3I8SnVtcFR5
cGUsIEZ1bmN0aW9uVHlwZSwgUmVzdWx0VHlwZSwgQXJndW1lbnRzLi4uPj4oZnJvbSwgZnVuY3Rp
b24sIHJlc3VsdCwgYXJndW1lbnRzLi4uKTsKKyAgICAgICAgYWRkU2xvd1BhdGhDYWxsSW1wbChq
aXQsIFdURk1vdmUoZ2VuZXJhdG9yKSk7CisgICAgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwg
dm9pZCBhZGRTbG93UGF0aENhbGxJbXBsKENDYWxsSGVscGVycyYsIHN0ZDo6dW5pcXVlX3B0cjxT
bG93UGF0aEdlbmVyYXRvcj4pIGNvbnN0ID0gMDsKKworICAgIFZlY3RvcjxSZWc+IG1fcmVnczsK
KyAgICBWZWN0b3I8R1BSUmVnPiBtX2dwU2NyYXRjaDsKKyAgICBWZWN0b3I8RlBSUmVnPiBtX2Zw
U2NyYXRjaDsKK307CisKK30gfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rv
bWppdC9ET01KSVRTaWduYXR1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21qaXQvRE9N
SklUU2lnbmF0dXJlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU1YTQ1NDBmMzhhMDUzODIyN2MyMGQ3Y2NlZDM5
Njk0ZjlkZTZiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kb21q
aXQvRE9NSklUU2lnbmF0dXJlLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU3Bl
Y3VsYXRlZFR5cGVzLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRE9NSklUIHsKKwor
Ly8gUmVwcmVzZW50cyBmdW5jdGlvbidzIHNpZ25hdHVyZS4gVXRpbGl6ZSB0aGlzIGluZm9ybWF0
aW9uIHRvIGlubGluZSB0eXBlIGNoZWNrcyBpbnNpZGUgREZHIGFuZCBGVEwuCitjbGFzcyBTaWdu
YXR1cmUgeworICAgIFNwZWN1bGF0ZWRUeXBlIG1fcmVzdWx0OworICAgIFZlY3RvcjxTcGVjdWxh
dGVkVHlwZT4gbV9hcmd1bWVudHM7Cit9OworCit9IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kb21qaXQvRE9NSklUU2xvd1BhdGhHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kb21qaXQvRE9NSklUU2xvd1BhdGhHZW5lcmF0b3IuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
NmQ1MTUxYWNiNWQxNDAzNjkyZTlhOGNmYjg0NTdkNjUyMzZjNWE4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RvbWppdC9ET01KSVRTbG93UGF0aEdlbmVyYXRvci5o
CkBAIC0wLDAgKzEsMTAzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBbGxvd01hY3JvU2NyYXRjaFJlZ2lz
dGVyVXNhZ2UuaCIKKyNpbmNsdWRlICJCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIgorI2lu
Y2x1ZGUgIkRGR1Nsb3dQYXRoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiREZHU3BlY3VsYXRpdmVK
SVQuaCIKKyNpbmNsdWRlICJGVExTbG93UGF0aENhbGwuaCIKKyNpbmNsdWRlICJGVExTdGF0ZS5o
IgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERPTUpJVCB7CisKK2NsYXNzIFNsb3dQYXRo
R2VuZXJhdG9yIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBT
bG93UGF0aEdlbmVyYXRvcigpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgflNsb3dQYXRo
R2VuZXJhdG9yKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKENDYWxsSGVscGVycyYsIEZU
TDo6U3RhdGUmLCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiwgREZHOjpOb2Rl
KiwgQm94PENDYWxsSGVscGVyczo6SnVtcExpc3Q+KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFk
ZChERkc6OlNwZWN1bGF0aXZlSklUJikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgTWFjcm9Bc3Nl
bWJsZXI6OkxhYmVsIG1fbGFiZWw7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBKdW1wVHlwZSwg
dHlwZW5hbWUgRnVuY3Rpb25UeXBlLCB0eXBlbmFtZSBSZXN1bHRUeXBlLCB0eXBlbmFtZS4uLiBB
cmd1bWVudHM+CitjbGFzcyBTbG93UGF0aENhbGxHZW5lcmF0b3IgOiBwdWJsaWMgU2xvd1BhdGhH
ZW5lcmF0b3IgeworcHVibGljOgorICAgIFNsb3dQYXRoQ2FsbEdlbmVyYXRvcihKdW1wVHlwZSBm
cm9tLCBGdW5jdGlvblR5cGUgZnVuY3Rpb24sIFJlc3VsdFR5cGUgcmVzdWx0LCBBcmd1bWVudHMu
Li4gYXJndW1lbnRzKQorICAgICAgICA6IFNsb3dQYXRoR2VuZXJhdG9yKCkKKyAgICAgICAgLCBt
X2Zyb20oZnJvbSkKKyAgICAgICAgLCBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQorICAgICAgICAsIG1f
cmVzdWx0KHJlc3VsdCkKKyAgICAgICAgLCBtX2FyZ3VtZW50cyhzdGQ6OmZvcndhcmQ8QXJndW1l
bnRzPihhcmd1bWVudHMpLi4uKQorICAgIHsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICB2b2lk
IGFkZChDQ2FsbEhlbHBlcnMmIGppdCwgRlRMOjpTdGF0ZSYgc3RhdGUsIGNvbnN0IEIzOjpTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcywgREZHOjpOb2RlKiBub2RlLCBCb3g8Q0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdD4gZXhjZXB0aW9ucykgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHVu
cGFja0FuZEFkZChqaXQsICZzdGF0ZSwgcGFyYW1zLCBub2RlLCBleGNlcHRpb25zLCBzdGQ6Om1h
a2VfaW5kZXhfc2VxdWVuY2U8c3RkOjp0dXBsZV9zaXplPHN0ZDo6dHVwbGU8QXJndW1lbnRzLi4u
Pj46OnZhbHVlPigpKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTxzaXplX3QuLi4gQXJndW1lbnRz
SW5kZXg+CisgICAgdm9pZCB1bnBhY2tBbmRBZGQoQ0NhbGxIZWxwZXJzJiBqaXQsIEZUTDo6U3Rh
dGUqIHN0YXRlLCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMsIERG
Rzo6Tm9kZSogbm9kZSwgQm94PENDYWxsSGVscGVyczo6SnVtcExpc3Q+IGV4Y2VwdGlvbnMsIHN0
ZDo6aW5kZXhfc2VxdWVuY2U8QXJndW1lbnRzSW5kZXguLi4+KQorICAgIHsKKyAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpMYWJlbCBkb25lID0gaml0LmxhYmVsKCk7CisgICAgICAgIHBhcmFtcy5hZGRM
YXRlUGF0aChbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAgICBBbGxvd01hY3Jv
U2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CisKKyAgICAgICAgICAgIG1f
ZnJvbS5saW5rKCZqaXQpOworICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAg
ICAgICAqc3RhdGUsIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBqaXQsIG5vZGUtPm9y
aWdpbi5zZW1hbnRpYywKKyAgICAgICAgICAgICAgICBleGNlcHRpb25zLmdldCgpLCBtX2Z1bmN0
aW9uLCBtX3Jlc3VsdCwgc3RkOjpnZXQ8QXJndW1lbnRzSW5kZXg+KG1fYXJndW1lbnRzKS4uLik7
CisgICAgICAgICAgICBqaXQuanVtcCgpLmxpbmtUbyhkb25lLCAmaml0KTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgdm9pZCBhZGQoREZHOjpTcGVjdWxhdGl2ZUpJVCYgaml0KSBvdmVycmlk
ZQorICAgIHsKKyAgICAgICAgdW5wYWNrQW5kQWRkKGppdCwgc3RkOjptYWtlX2luZGV4X3NlcXVl
bmNlPHN0ZDo6dHVwbGVfc2l6ZTxzdGQ6OnR1cGxlPEFyZ3VtZW50cy4uLj4+Ojp2YWx1ZT4oKSk7
CisgICAgfQorCisgICAgdGVtcGxhdGU8c2l6ZV90Li4uIEFyZ3VtZW50c0luZGV4PgorICAgIHZv
aWQgdW5wYWNrQW5kQWRkKERGRzo6U3BlY3VsYXRpdmVKSVQmIGppdCwgc3RkOjppbmRleF9zZXF1
ZW5jZTxBcmd1bWVudHNJbmRleC4uLj4pCisgICAgeworICAgICAgICBqaXQuYWRkU2xvd1BhdGhH
ZW5lcmF0b3IoREZHOjpzbG93UGF0aENhbGwobV9mcm9tLCAmaml0LCBtX2Z1bmN0aW9uLCBtX3Jl
c3VsdCwgc3RkOjpnZXQ8QXJndW1lbnRzSW5kZXg+KG1fYXJndW1lbnRzKS4uLikpOworICAgIH0K
KworICAgIEp1bXBUeXBlIG1fZnJvbTsKKyAgICBGdW5jdGlvblR5cGUgbV9mdW5jdGlvbjsKKyAg
ICBSZXN1bHRUeXBlIG1fcmVzdWx0OworICAgIHN0ZDo6dHVwbGU8QXJndW1lbnRzLi4uPiBtX2Fy
Z3VtZW50czsKK307CisKK30gfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAppbmRleCA3MTlmNTJjM2ZlM2Q5YzU4ODFkNzk4
M2QyMDM4YmRkNzEzNDI1ZDA5Li5mNWRhM2ZhYjdmNWMwOGQ2MWZjMjJhYzc2MmUwYjY3YTg2NTU1
NGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVh
cFJlcG9zaXRvcnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0
SGVhcFJlcG9zaXRvcnkuaApAQCAtMTEyLDYgKzExMiw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgRlRMIHsKICAgICBtYWNybyhIYXNoTWFwQnVja2V0X3ZhbHVlLCBIYXNoTWFwQnVja2V0
PEhhc2hNYXBCdWNrZXREYXRhS2V5VmFsdWU+OjpvZmZzZXRPZlZhbHVlKCkpIFwKICAgICBtYWNy
byhIYXNoTWFwQnVja2V0X2tleSwgSGFzaE1hcEJ1Y2tldDxIYXNoTWFwQnVja2V0RGF0YUtleVZh
bHVlPjo6b2Zmc2V0T2ZLZXkoKSkgXAogICAgIG1hY3JvKFN5bWJvbF9zeW1ib2xJbXBsLCBTeW1i
b2w6Om9mZnNldE9mU3ltYm9sSW1wbCgpKSBcCisgICAgbWFjcm8oV2Vha0ltcGxfanNWYWx1ZSwg
V2Vha0ltcGw6Om9mZnNldE9mSlNWYWx1ZSgpKSBcCisgICAgbWFjcm8oV2Vha0ltcGxfd2Vha0hh
bmRsZU93bmVyLCBXZWFrSW1wbDo6b2Zmc2V0T2ZXZWFrSGFuZGxlT3duZXIoKSkgXAogCiAjZGVm
aW5lIEZPUl9FQUNIX0lOREVYRURfQUJTVFJBQ1RfSEVBUChtYWNybykgXAogICAgIG1hY3JvKERp
cmVjdEFyZ3VtZW50c19zdG9yYWdlLCBEaXJlY3RBcmd1bWVudHM6OnN0b3JhZ2VPZmZzZXQoKSwg
c2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGI2ZWIyZTVmNzIxOWRhZTZmZTBjMmE4NGFmMDVlODIy
Y2EwNmQ4MWYuLmY2YjFkNWExYzBmYTBmNzNlMzVkYWVhNmFmYmZmMTA2ZmFlNjQ5NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTI2Myw2
ICsyNjMsOCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICBjYXNlIENvbXBhcmVHcmVhdGVyOgogICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKICAg
ICBjYXNlIENvbXBhcmVTdHJpY3RFcToKKyAgICBjYXNlIENoZWNrRE9NOgorICAgIGNhc2UgQ2Fs
bERPTToKICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgogICAgICAgICBicmVhazsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExET01KSVRQYXRjaHBvaW50UGFyYW1z
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTERPTUpJVFBhdGNocG9pbnRQYXJhbXMu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ZGJjNTdiZWU2ODUyZWIyOGExYTNjODNiMjY3M2U3YTgyMmJmZjQ4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExET01KSVRQYXRj
aHBvaW50UGFyYW1zLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEZUTF9KSVQp
CisKKyNpbmNsdWRlICJCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIgorI2luY2x1ZGUgIkRP
TUpJVFBhdGNocG9pbnRQYXJhbXMuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwg
eworCitjbGFzcyBET01KSVRQYXRjaHBvaW50UGFyYW1zIDogcHVibGljIERPTUpJVDo6UGF0Y2hw
b2ludFBhcmFtcyB7CitwdWJsaWM6CisgICAgRE9NSklUUGF0Y2hwb2ludFBhcmFtcyhTdGF0ZSYg
c3RhdGUsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcywgREZHOjpO
b2RlKiBub2RlLCBCb3g8Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4gZXhjZXB0aW9ucywgVmVjdG9y
PFJlZz4mJiByZWdzLCBWZWN0b3I8R1BSUmVnPiYmIGdwU2NyYXRjaCwgVmVjdG9yPEZQUlJlZz4m
JiBmcFNjcmF0Y2gpCisgICAgICAgIDogRE9NSklUOjpQYXRjaHBvaW50UGFyYW1zKFdURk1vdmUo
cmVncyksIFdURk1vdmUoZ3BTY3JhdGNoKSwgV1RGTW92ZShmcFNjcmF0Y2gpKQorICAgICAgICAs
IG1fc3RhdGUoc3RhdGUpCisgICAgICAgICwgbV9wYXJhbXMocGFyYW1zKQorICAgICAgICAsIG1f
bm9kZShub2RlKQorICAgICAgICAsIG1fZXhjZXB0aW9ucyhleGNlcHRpb25zKQorICAgIHsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBhZGRTbG93UGF0aENhbGxJbXBsKENDYWxsSGVscGVy
cyYgaml0LCBzdGQ6OnVuaXF1ZV9wdHI8RE9NSklUOjpTbG93UGF0aEdlbmVyYXRvcj4gZ2VuZXJh
dG9yKSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgZ2VuZXJhdG9yLT5hZGQoaml0LCBt
X3N0YXRlLCBtX3BhcmFtcywgbV9ub2RlLCBtX2V4Y2VwdGlvbnMpOworICAgIH0KKworICAgIFN0
YXRlJiBtX3N0YXRlOworICAgIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIG1f
cGFyYW1zOworICAgIERGRzo6Tm9kZSogbV9ub2RlOworICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1
bXBMaXN0PiBtX2V4Y2VwdGlvbnM7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCisK
KyNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCAwNjNjYzU5NDQwNjI0ODk2MzdhOWMyYmQzMTgyOTM1
NTc1NjRlNDIwLi4wNTdhY2RlM2Y5ZjMyNzljMTE4NTc5NjM3MTE4MWMyY2RiOWIzNTE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC00NCw5
ICs0NCwxMiBAQAogI2luY2x1ZGUgIkRGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmgiCiAjaW5jbHVk
ZSAiREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFzZS5oIgogI2luY2x1ZGUgIkRGR09TUkV4
aXRGdXp6LmgiCisjaW5jbHVkZSAiRE9NSklUUGF0Y2hwb2ludC5oIgorI2luY2x1ZGUgIkRPTUpJ
VFBhdGNocG9pbnRQYXJhbXMuaCIKICNpbmNsdWRlICJEaXJlY3RBcmd1bWVudHMuaCIKICNpbmNs
dWRlICJGVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgiCiAjaW5jbHVkZSAiRlRMQXZhaWxhYmxl
UmVjb3ZlcnkuaCIKKyNpbmNsdWRlICJGVExET01KSVRQYXRjaHBvaW50UGFyYW1zLmgiCiAjaW5j
bHVkZSAiRlRMRXhjZXB0aW9uVGFyZ2V0LmgiCiAjaW5jbHVkZSAiRlRMRm9yT1NSRW50cnlKSVRD
b2RlLmgiCiAjaW5jbHVkZSAiRlRMRm9ybWF0dGVkVmFsdWUuaCIKQEAgLTEwMzcsNiArMTA0MCwx
MiBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAg
ICAgICAgICAgY29tcGlsZVVucmVhY2hhYmxlKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDaGVja0RPTToKKyAgICAgICAgICAgIGNvbXBpbGVDaGVja0RPTSgpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ2FsbERPTToKKyAgICAgICAgICAgIGNvbXBpbGVD
YWxsRE9NKCk7CisgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFBoYW50b21Mb2Nh
bDoKICAgICAgICAgY2FzZSBMb29wSGludDoKQEAgLTg0NTIsNiArODQ2MSwxMTUgQEAgY2xhc3Mg
TG93ZXJERkdUb0IzIHsKICAgICAgICAgCiAgICAgICAgIGNyYXNoKCk7CiAgICAgfQorCisgICAg
dm9pZCBjb21waWxlQ2hlY2tET00oKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dD
ZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOworCisgICAgICAgIFJlZlB0cjxET01KSVQ6OlBhdGNocG9p
bnQ+IGRvbUpJVCA9IG1fbm9kZS0+ZG9tSklUKCktPmNoZWNrRE9NKCk7CisKKyAgICAgICAgUGF0
Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChWb2lkKTsKKyAgICAg
ICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGNlbGwpOworICAgICAgICBwYXRjaHBv
aW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSBkb21KSVQtPm51bUdQU2NyYXRjaFJlZ2lzdGVy
czsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtRlBTY3JhdGNoUmVnaXN0ZXJzID0gZG9tSklULT5u
dW1GUFNjcmF0Y2hSZWdpc3RlcnM7CisKKyAgICAgICAgU3RhdGUqIHN0YXRlID0gJm1fZnRsU3Rh
dGU7CisgICAgICAgIE5vZGUqIG5vZGUgPSBtX25vZGU7CisgICAgICAgIE5vZGVPcmlnaW4gb3Jp
Z2luID0gbV9vcmlnaW47CisgICAgICAgIHVuc2lnbmVkIG9zckV4aXRBcmd1bWVudE9mZnNldCA9
IHBhdGNocG9pbnQtPm51bUNoaWxkcmVuKCk7CisgICAgICAgIE9TUkV4aXREZXNjcmlwdG9yKiBl
eGl0RGVzY3JpcHRvciA9IGFwcGVuZE9TUkV4aXREZXNjcmlwdG9yKGpzVmFsdWVWYWx1ZShjZWxs
KSwgbV9ub2RlLT5jaGlsZDEoKS5ub2RlKCkpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRD
b2xkQW55cyhidWlsZEV4aXRBcmd1bWVudHMoZXhpdERlc2NyaXB0b3IsIG9yaWdpbi5mb3JFeGl0
LCBqc1ZhbHVlVmFsdWUoY2VsbCkpKTsKKworICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0
b3IoCisgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAgICAgICAgIFZlY3RvcjxHUFJSZWc+
IGdwU2NyYXRjaDsKKyAgICAgICAgICAgICAgICBWZWN0b3I8RlBSUmVnPiBmcFNjcmF0Y2g7Cisg
ICAgICAgICAgICAgICAgVmVjdG9yPFJlZz4gcmVnczsKKworICAgICAgICAgICAgICAgIHJlZ3Mu
YXBwZW5kKHBhcmFtc1swXS5ncHIoKSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7ICsraSkKKyAgICAgICAg
ICAgICAgICAgICAgZ3BTY3JhdGNoLmFwcGVuZChwYXJhbXMuZ3BTY3JhdGNoKGkpKTsKKworICAg
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkb21KSVQtPm51bUdQU2NyYXRj
aFJlZ2lzdGVyczsgKytpKQorICAgICAgICAgICAgICAgICAgICBmcFNjcmF0Y2guYXBwZW5kKHBh
cmFtcy5mcFNjcmF0Y2goaSkpOworCisgICAgICAgICAgICAgICAgUmVmUHRyPE9TUkV4aXRIYW5k
bGU+IGhhbmRsZSA9IGV4aXREZXNjcmlwdG9yLT5lbWl0T1NSRXhpdExhdGVyKCpzdGF0ZSwgQmFk
VHlwZSwgb3JpZ2luLCBwYXJhbXMsIG9zckV4aXRBcmd1bWVudE9mZnNldCk7CisKKyAgICAgICAg
ICAgICAgICBGVEw6OkRPTUpJVFBhdGNocG9pbnRQYXJhbXMgZG9tSklUUGFyYW1zKCpzdGF0ZSwg
cGFyYW1zLCBub2RlLCBudWxscHRyLCBXVEZNb3ZlKHJlZ3MpLCBXVEZNb3ZlKGdwU2NyYXRjaCks
IFdURk1vdmUoZnBTY3JhdGNoKSk7CisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1w
TGlzdCBmYWlsdXJlQ2FzZXMgPSBkb21KSVQtPmdlbmVyYXRvcigpLT5ydW4oaml0LCBkb21KSVRQ
YXJhbXMpOworCisgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKFs9XSAoTGlua0J1ZmZl
ciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoZmFp
bHVyZUNhc2VzLCBsaW5rQnVmZmVyLmxvY2F0aW9uT2YoaGFuZGxlLT5sYWJlbCkpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgLy8gU2V0IHNvbWUgb2J2
aW91cyB0aGluZ3MuCisgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMudGVybWluYWwgPSBmYWxz
ZTsKKyAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy53cml0ZXNMb2NhbFN0YXRlID0gZmFsc2U7
CisgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMucmVhZHNMb2NhbFN0YXRlID0gZmFsc2U7CisK
KyAgICAgICAgLy8gVGhpcyBpcyBob3cgd2UgdGVsbCBCMyBhYm91dCB0aGUgcG9zc2liaWxpdHkg
b2YganVtcCByZXBsYWNlbWVudC4KKyAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy5leGl0c1Np
ZGV3YXlzID0gdHJ1ZTsKKworICAgICAgICAvLyBJdCdzIG5vdCBwb3NzaWJsZSBmb3Igc29tZSBw
cmlvciBicmFuY2ggdG8gZGV0ZXJtaW5lIHRoZSBzYWZldHkgb2YgdGhpcyBvcGVyYXRpb24uIEl0
J3MgYWx3YXlzCisgICAgICAgIC8vIGZpbmUgdG8gZXhlY3V0ZSB0aGlzIG9uIHNvbWUgcGF0aCB0
aGF0IHdvdWxkbid0IGhhdmUgb3JpZ2luYWxseSBleGVjdXRlZCBpdCBiZWZvcmUKKyAgICAgICAg
Ly8gb3B0aW1pemF0aW9uLgorICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLmNvbnRyb2xEZXBl
bmRlbnQgPSBmYWxzZTsKKworICAgICAgICAvLyBJZiB0aGlzIGZhbGxzIHRocm91Z2ggdGhlbiBp
dCB3b24ndCB3cml0ZSBhbnl0aGluZy4KKyAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy53cml0
ZXMgPSBIZWFwUmFuZ2UoKTsKKworICAgICAgICAvLyBXaGVuIHRoaXMgYWJydXB0bHkgdGVybWlu
YXRlcywgaXQgY291bGQgcmVhZCBhbnkgaGVhcCBsb2NhdGlvbi4KKyAgICAgICAgcGF0Y2hwb2lu
dC0+ZWZmZWN0cy5yZWFkcyA9IEhlYXBSYW5nZTo6dG9wKCk7CisgICAgfQorCisgICAgdm9pZCBj
b21waWxlQ2FsbERPTSgpCisgICAgeworICAgICAgICBMVmFsdWUgZ2xvYmFsT2JqZWN0ID0gbG93
Q2VsbChtX2dyYXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMCkpOworICAgICAgICBMVmFsdWUgY2Vs
bCA9IGxvd0NlbGwobV9ncmFwaC52YXJBcmdDaGlsZChtX25vZGUsIDEpKTsKKworICAgICAgICBS
ZWZQdHI8RE9NSklUOjpQYXRjaHBvaW50PiBkb21KSVQgPSBtX25vZGUtPmRvbUpJVCgpLT5jYWxs
RE9NKCk7CisgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNo
cG9pbnQoSW50NjQpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIoZ2xv
YmFsT2JqZWN0KTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGNlbGwp
OworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJlcDo6bGF0ZVJl
ZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5k
KG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6dGFnVHlwZU51bWJl
clJlZ2lzdGVyKSk7CisgICAgICAgIFJlZlB0cjxQYXRjaHBvaW50RXhjZXB0aW9uSGFuZGxlPiBl
eGNlcHRpb25IYW5kbGUgPSBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2VwdGlvbnMocGF0Y2hwb2lu
dCk7CisgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRj
aFJlZ2lzdGVycygpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJz
ID0gZG9tSklULT5udW1HUFNjcmF0Y2hSZWdpc3RlcnM7CisgICAgICAgIHBhdGNocG9pbnQtPm51
bUZQU2NyYXRjaFJlZ2lzdGVycyA9IGRvbUpJVC0+bnVtRlBTY3JhdGNoUmVnaXN0ZXJzOworCisg
ICAgICAgIFN0YXRlKiBzdGF0ZSA9ICZtX2Z0bFN0YXRlOworICAgICAgICBOb2RlKiBub2RlID0g
bV9ub2RlOworICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCisgICAgICAgICAgICBb
PV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBh
cmFtcykgeworICAgICAgICAgICAgICAgIFZlY3RvcjxHUFJSZWc+IGdwU2NyYXRjaDsKKyAgICAg
ICAgICAgICAgICBWZWN0b3I8RlBSUmVnPiBmcFNjcmF0Y2g7CisgICAgICAgICAgICAgICAgVmVj
dG9yPFJlZz4gcmVnczsKKworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBwYXRjaHBvaW50IHNo
b3VsZCBoYXZlIGEgd2F5IHRvIHRlbGwgdGhpcyBjYW4gcmV1c2UgImJhc2UiIHJlZ2lzdGVyLgor
ICAgICAgICAgICAgICAgIC8vIFRlYWNoaW5nIERGRyBhYm91dCBET01KSVQ6OlBhdGNocG9pbnQg
Y2xvYmJlciBpbmZvcm1hdGlvbiBpcyBuaWNlLgorICAgICAgICAgICAgICAgIHJlZ3MuYXBwZW5k
KHBhcmFtc1swXS5ncHIoKSk7CisgICAgICAgICAgICAgICAgcmVncy5hcHBlbmQocGFyYW1zWzFd
LmdwcigpKTsKKyAgICAgICAgICAgICAgICByZWdzLmFwcGVuZChwYXJhbXNbMl0uZ3ByKCkpOwor
ICAgICAgICAgICAgICAgIHJlZ3MuYXBwZW5kKHBhcmFtc1szXS5ncHIoKSk7CisgICAgICAgICAg
ICAgICAgcmVncy5hcHBlbmQocGFyYW1zWzRdLmdwcigpKTsKKworICAgICAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBkb21KSVQtPm51bUdQU2NyYXRjaFJlZ2lzdGVyczsgKytp
KQorICAgICAgICAgICAgICAgICAgICBncFNjcmF0Y2guYXBwZW5kKHBhcmFtcy5ncFNjcmF0Y2go
aSkpOworCisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRvbUpJVC0+
bnVtR1BTY3JhdGNoUmVnaXN0ZXJzOyArK2kpCisgICAgICAgICAgICAgICAgICAgIGZwU2NyYXRj
aC5hcHBlbmQocGFyYW1zLmZwU2NyYXRjaChpKSk7CisKKyAgICAgICAgICAgICAgICBCb3g8Q0Nh
bGxIZWxwZXJzOjpKdW1wTGlzdD4gZXhjZXB0aW9ucyA9IGV4Y2VwdGlvbkhhbmRsZS0+c2NoZWR1
bGVFeGl0Q3JlYXRpb24ocGFyYW1zKS0+anVtcHMoaml0KTsKKworICAgICAgICAgICAgICAgIEZU
TDo6RE9NSklUUGF0Y2hwb2ludFBhcmFtcyBkb21KSVRQYXJhbXMoKnN0YXRlLCBwYXJhbXMsIG5v
ZGUsIGV4Y2VwdGlvbnMsIFdURk1vdmUocmVncyksIFdURk1vdmUoZ3BTY3JhdGNoKSwgV1RGTW92
ZShmcFNjcmF0Y2gpKTsKKyAgICAgICAgICAgICAgICBkb21KSVQtPmdlbmVyYXRvcigpLT5ydW4o
aml0LCBkb21KSVRQYXJhbXMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIHBhdGNocG9pbnQt
PmVmZmVjdHMgPSBFZmZlY3RzOjpmb3JDYWxsKCk7CisgICAgICAgIHNldEpTVmFsdWUocGF0Y2hw
b2ludCk7CisgICAgfQogICAgIAogICAgIHZvaWQgY29tcGFyZUVxT2JqZWN0T3JPdGhlclRvT2Jq
ZWN0KEVkZ2UgbGVmdENoaWxkLCBFZGdlIHJpZ2h0Q2hpbGQpCiAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmgKaW5kZXggMWQ2ZWI5NjIzYjllYWUzYWEy
ODRkNjlmNzk0ZjAzNDU5ZTFiNWQ2My4uNmY4MDkyODhiN2MwM2Y5ZTc0OTgyODU5NWQxYzQyN2Fl
OTM0Zjc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0
aENhbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5o
CkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIFNsb3dQYXRoQ2FsbCB7CiB9OwogCiAvLyBUaGlzIHdp
bGwgYmUgYW4gUkFJSSB0aGluZ3kgdGhhdCB3aWxsIHNldCB1cCB0aGUgbmVjZXNzYXJ5IHN0YWNr
IHNpemVzIGFuZCBvZmZzZXRzIGFuZCBzdWNoLgotY2xhc3MgU2xvd1BhdGhDYWxsQ29udGV4dCB7
CitjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBTbG93UGF0aENhbGxDb250ZXh0IHsKIHB1YmxpYzoK
ICAgICBTbG93UGF0aENhbGxDb250ZXh0KFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMsIENDYWxs
SGVscGVycyYsIHVuc2lnbmVkIG51bUFyZ3MsIEdQUlJlZyByZXR1cm5SZWdpc3Rlcik7CiAgICAg
flNsb3dQYXRoQ2FsbENvbnRleHQoKTsKQEAgLTEwNyw3ICsxMDcsNyBAQCBTbG93UGF0aENhbGwg
Y2FsbE9wZXJhdGlvbigKICAgICByZXR1cm4gY2FsbE9wZXJhdGlvbih1c2VkUmVnaXN0ZXJzLCBq
aXQsIGV4Y2VwdGlvblRhcmdldCwgZnVuY3Rpb24sIHJlc3VsdEdQUiwgYXJndW1lbnRzLi4uKTsK
IH0KIAotQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4Rm9yQ29kZU9yaWdpbihTdGF0ZSYsIENv
ZGVPcmlnaW4pOworSlNfRVhQT1JUX1BSSVZBVEUgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZUluZGV4
Rm9yQ29kZU9yaWdpbihTdGF0ZSYsIENvZGVPcmlnaW4pOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZS4u
LiBBcmd1bWVudFR5cGVzPgogU2xvd1BhdGhDYWxsIGNhbGxPcGVyYXRpb24oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrSW1wbC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvV2Vha0ltcGwuaAppbmRleCBkODE3YjcyOGI2NmY5ZTEzY2NkMDg5MGQ0MTZl
MjcxZjI2NzI3Zjc3Li4zZTMwNDY4ZDM4YmUyZmMyM2YwZDllNDkxYWI3OGM5MzhlZjA2YTUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrSW1wbC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtJbXBsLmgKQEAgLTU2LDYgKzU2LDE2IEBAIGNs
YXNzIFdlYWtJbXBsIHsKIAogICAgIHN0YXRpYyBXZWFrSW1wbCogYXNXZWFrSW1wbChKU1ZhbHVl
Kik7CiAKKyAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mSlNWYWx1ZSgpCisgICAgeworICAg
ICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFdlYWtJbXBsLCBtX2pzVmFsdWUpOworICAgIH0K
KworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZXZWFrSGFuZGxlT3duZXIoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihXZWFrSW1wbCwgbV93ZWFrSGFuZGxlT3du
ZXIpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBjb25zdCBKU1ZhbHVlIG1fanNWYWx1ZTsKICAg
ICBXZWFrSGFuZGxlT3duZXIqIG1fd2Vha0hhbmRsZU93bmVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggNzY5NDkxYTM2N2JhNWZmMTQwYjUzODdi
OGI1ZmMyYjdmOGM2YzY4MC4uYzZkOGJjM2VkZWM1ZTIzNGNlZmU3Mjc4ZGJlYTU4NGEyN2I3M2Q2
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0x
MjA5LDkgKzEyMDksOSBAQCBjbGFzcyBBc3NlbWJseUhlbHBlcnMgOiBwdWJsaWMgTWFjcm9Bc3Nl
bWJsZXIgewogICAgIAogICAgIGVudW0gRXhjZXB0aW9uQ2hlY2tLaW5kIHsgTm9ybWFsRXhjZXB0
aW9uQ2hlY2ssIEludmVydGVkRXhjZXB0aW9uQ2hlY2sgfTsKICAgICBlbnVtIEV4Y2VwdGlvbkp1
bXBXaWR0aCB7IE5vcm1hbEp1bXBXaWR0aCwgRmFySnVtcFdpZHRoIH07Ci0gICAgSnVtcCBlbWl0
RXhjZXB0aW9uQ2hlY2soCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgSnVtcCBlbWl0RXhjZXB0aW9u
Q2hlY2soCiAgICAgICAgIEV4Y2VwdGlvbkNoZWNrS2luZCA9IE5vcm1hbEV4Y2VwdGlvbkNoZWNr
LCBFeGNlcHRpb25KdW1wV2lkdGggPSBOb3JtYWxKdW1wV2lkdGgpOwotICAgIEp1bXAgZW1pdE5v
blBhdGNoYWJsZUV4Y2VwdGlvbkNoZWNrKCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgSnVtcCBl
bWl0Tm9uUGF0Y2hhYmxlRXhjZXB0aW9uQ2hlY2soKTsKIAogI2lmIEVOQUJMRShTQU1QTElOR19D
T1VOVEVSUykKICAgICBzdGF0aWMgdm9pZCBlbWl0Q291bnQoTWFjcm9Bc3NlbWJsZXImIGppdCwg
QWJzdHJhY3RTYW1wbGluZ0NvdW50ZXImIGNvdW50ZXIsIGludDMyX3QgaW5jcmVtZW50ID0gMSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCmluZGV4IGQ0NTkzOWM1OTU5YTgwN2Q0
NTA1Yjk0ZWEzY2VhMTU1ZmZmNWM0YjguLjI1ODFjMjVkNmFmYzFhM2VkMGZmNGFlZGE0MGRiNDQ5
YWE0ODYxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkNhbGxGcmFtZVNodWZmbGVyLmgiCiAjaW5jbHVkZSAiREZHT3Bl
cmF0aW9ucy5oIgogI2luY2x1ZGUgIkRGR1NwZWN1bGF0aXZlSklULmgiCisjaW5jbHVkZSAiRE9N
SklUR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiRGlyZWN0QXJndW1lbnRzLmgiCiAjaW5jbHVk
ZSAiRlRMVGh1bmtzLmgiCiAjaW5jbHVkZSAiR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmgiCkBAIC0y
NjAsNiArMjYxLDEwIEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUdldEJ5SUQo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uCiAgICAgICAgIGlmIChzbG90
LmlzQ2FjaGVhYmxlR2V0dGVyKCkpCiAgICAgICAgICAgICBnZXR0ZXIgPSBqc0R5bmFtaWNDYXN0
PEpTRnVuY3Rpb24qPihzbG90LmdldHRlclNldHRlcigpLT5nZXR0ZXIoKSk7CiAKKyAgICAgICAg
RE9NSklUOjpHZXR0ZXJTZXR0ZXIqIGRvbUpJVCA9IG51bGxwdHI7CisgICAgICAgIGlmIChzbG90
LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgJiYgc2xvdC5kb21KSVQoKSkKKyAgICAgICAgICAgIGRvbUpJ
VCA9IHNsb3QuZG9tSklUKCk7CisKICAgICAgICAgaWYgKGtpbmQgPT0gR2V0QnlJREtpbmQ6OlB1
cmUpIHsKICAgICAgICAgICAgIEFjY2Vzc0Nhc2U6OkFjY2Vzc1R5cGUgdHlwZTsKICAgICAgICAg
ICAgIGlmIChzbG90LmlzQ2FjaGVhYmxlVmFsdWUoKSkKQEAgLTI5MCw3ICsyOTUsOCBAQCBzdGF0
aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVHZXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSBiYXNlVmFsdWUsIGNvbgogICAgICAgICAgICAgbmV3Q2FzZSA9IEFjY2Vzc0Nhc2U6Omdl
dCgKICAgICAgICAgICAgICAgICB2bSwgY29kZUJsb2NrLCB0eXBlLCBvZmZzZXQsIHN0cnVjdHVy
ZSwgY29uZGl0aW9uU2V0LCBsb2FkVGFyZ2V0RnJvbVByb3h5LAogICAgICAgICAgICAgICAgIHNs
b3Qud2F0Y2hwb2ludFNldCgpLCBzbG90LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgPyBzbG90LmN1c3Rv
bUdldHRlcigpIDogbnVsbHB0ciwKLSAgICAgICAgICAgICAgICBzbG90LmlzQ2FjaGVhYmxlQ3Vz
dG9tKCkgPyBzbG90LnNsb3RCYXNlKCkgOiBudWxscHRyKTsKKyAgICAgICAgICAgICAgICBzbG90
LmlzQ2FjaGVhYmxlQ3VzdG9tKCkgPyBzbG90LnNsb3RCYXNlKCkgOiBudWxscHRyLAorICAgICAg
ICAgICAgICAgIGRvbUpJVCk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
aW5kZXggZjE1MDAwYjM4MjMxMjFjNzM2YjI2YmQ3N2E0ODgyNDc5YTViZGM3ZS4uZTI4YWQ4YWZm
NDJlZWJlNTFkYzZmMTFlN2M5ZTAxYjA4MjUzMzIxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAg
LTI4LDYgKzI4LDkgQEAKICNpbmNsdWRlICJCdXR0ZXJmbHlJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
Q29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIkRPTUpJVEdl
dHRlclNldHRlci5oIgorI2luY2x1ZGUgIkRPTUpJVFBhdGNocG9pbnQuaCIKKyNpbmNsdWRlICJE
T01KSVRQYXRjaHBvaW50UGFyYW1zLmgiCiAjaW5jbHVkZSAiRGlzYXNzZW1ibGVyLmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgpAQCAtNzIs
NiArNzUsNyBAQAogI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC01MzcsMTIgKzU0MSwxMzEgQEAgY2xh
c3MgU2ltcGxlT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIFdyaXRlQmFy
cmllcjxKU0M6OlVua25vd24+IG1faGlkZGVuVmFsdWU7CiB9OwogCitjbGFzcyBET01KSVRHZXR0
ZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitwdWJsaWM6CisgICAgRE9NSklUR2V0dGVy
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgICAgIDogQmFzZSh2bSwgc3RydWN0
dXJlKQorICAgIHsKKyAgICB9CisKKyAgICBERUNMQVJFX0lORk87CisgICAgdHlwZWRlZiBKU05v
bkZpbmFsT2JqZWN0IEJhc2U7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEpTQzo6SlNUeXBlKExhc3RKU0NPYmpl
Y3RUeXBlICsgMSksIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisKKyAgICBzdGF0
aWMgRE9NSklUR2V0dGVyKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAg
ICB7CisgICAgICAgIERPTUpJVEdldHRlciogZ2V0dGVyID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0
ZUNlbGw8RE9NSklUR2V0dGVyPih2bS5oZWFwLCBzaXplb2YoRE9NSklUR2V0dGVyKSkpIERPTUpJ
VEdldHRlcih2bSwgc3RydWN0dXJlKTsKKyAgICAgICAgZ2V0dGVyLT5maW5pc2hDcmVhdGlvbih2
bSk7CisgICAgICAgIHJldHVybiBnZXR0ZXI7CisgICAgfQorCisgICAgaW50MzJfdCB2YWx1ZSgp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV92YWx1ZTsKKyAgICB9CisKKyAgICBjbGFz
cyBET01KSVRHZXR0ZXJET01KSVQgOiBwdWJsaWMgRE9NSklUOjpHZXR0ZXJTZXR0ZXIgeworICAg
IHB1YmxpYzoKKyAgICAgICAgRE9NSklUR2V0dGVyRE9NSklUKCkKKyAgICAgICAgICAgIDogRE9N
SklUOjpHZXR0ZXJTZXR0ZXIoRE9NSklUR2V0dGVyOjpjdXN0b21HZXR0ZXIsIG51bGxwdHIsIERP
TUpJVEdldHRlcjo6aW5mbygpKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBSZWY8
RE9NSklUOjpQYXRjaHBvaW50PiBjYWxsRE9NKCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAg
ICAgICAgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gcGF0Y2hwb2ludCA9IERPTUpJVDo6UGF0Y2hw
b2ludDo6Y3JlYXRlKCk7CisgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoWz1d
KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBET01KSVQ6OlBhdGNocG9pbnRQYXJhbXMmIHBhcmFt
cykgeworI2lmIDAKKyAgICAgICAgICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3MocGFyYW1zWzJdLmdwcigpLCBKU05vZGU6Om9mZnNldE9mV3JhcHBlZCgpKSwgcGFyYW1z
LmdwU2NyYXRjaCgwKSk7CisgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHBhcmFtcy5ncFNjcmF0Y2goMCksIE5vZGU6OnBhcmVudE5vZGVNZW1vcnlPZmZz
ZXQoKSksIHBhcmFtcy5ncFNjcmF0Y2goMCkpOworICAgICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6SnVtcCBub3ROdWxsID0gaml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpOb25aZXJv
LCBwYXJhbXMuZ3BTY3JhdGNoKDApKTsKKyAgICAgICAgICAgICAgICBqaXQubW92ZShKU1ZhbHVl
OjplbmNvZGUoanNOdWxsKCkpLCBwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgICAgIEND
YWxsSGVscGVyczo6SnVtcCBkb25lID0gaml0Lmp1bXAoKTsKKworICAgICAgICAgICAgICAgIG5v
dE51bGwubGluaygmaml0KTsKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0
IHNsb3dDYXNlczsKKyAgICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGppdC5icmFuY2hU
ZXN0OChDQ2FsbEhlbHBlcnM6Olplcm8sIENDYWxsSGVscGVyczo6QWRkcmVzcyhwYXJhbXNbMV0u
Z3ByKCksIEpTRE9NR2xvYmFsT2JqZWN0OjpvZmZzZXRPZldvcmxkSXNOb3JtYWwoKSkpKTsKKwor
ICAgICAgICAgICAgICAgIC8vIFdlYWsgZGVyZWZlcmVuY2UuCisgICAgICAgICAgICAgICAgaml0
LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFtcy5ncFNjcmF0Y2goMCksIFNjcmlw
dFdyYXBwYWJsZTo6b2Zmc2V0T2ZXcmFwcGVyPE5vZGU+KCkpLCBwYXJhbXNbMF0uZ3ByKCkpOwor
ICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2Fs
bEhlbHBlcnM6Olplcm8sIHBhcmFtc1swXS5ncHIoKSkpOworICAgICAgICAgICAgICAgIHNsb3dD
YXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Ok5vblplcm8sIEND
YWxsSGVscGVyczo6QWRkcmVzcyhwYXJhbXNbMF0uZ3ByKCksIFdlYWtJbXBsOjpvZmZzZXRPZldl
YWtIYW5kbGVPd25lcigpKSwgVHJ1c3RlZEltbTMyKDB4MykpKTsKKyAgICAgICAgICAgICAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MocGFyYW1zWzBdLmdwcigpLCBXZWFrSW1w
bDo6b2Zmc2V0T2ZKU1ZhbHVlKCkpLCBwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgICAg
IHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8s
IHBhcmFtc1swXS5ncHIoKSkpOworCisgICAgICAgICAgICAgICAgcGFyYW1zLmFkZFNsb3dQYXRo
Q2FsbChzbG93Q2FzZXMsIGppdCwgdG9KUywgcGFyYW1zWzBdLmdwcigpLCBwYXJhbXNbMV0uZ3By
KCksIHBhcmFtcy5ncFNjcmF0Y2goMCkpOworCisgICAgICAgICAgICAgICAgZG9uZS5saW5rKCZq
aXQpOworI2Vsc2UKKyAgICAgICAgICAgICAgICBwYXJhbXMuYWRkU2xvd1BhdGhDYWxsKGppdC5q
dW1wKCksIGppdCwgc3RhdGljX2Nhc3Q8RW5jb2RlZEpTVmFsdWUoKikoRXhlY1N0YXRlKiwgdm9p
ZCopPihbXShFeGVjU3RhdGUqLCB2b2lkKiBwb2ludGVyKSB7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8RE9NSklUR2V0dGVy
Kj4ocG9pbnRlciktPnZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICB9KSwgcGFyYW1zWzBdLmdw
cigpLCBwYXJhbXNbMl0uZ3ByKCkpOworICAgICAgICAgICAgICAgIC8vIGppdC5sb2FkMzIoQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFtc1syXS5ncHIoKSwgRE9NSklUR2V0dGVyOjpvZmZzZXRP
ZlZhbHVlKCkpLCBwYXJhbXNbMF0uZ3ByKCkpOworICAgICAgICAgICAgICAgIC8vIGppdC5vcjY0
KEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlciwgcGFyYW1zWzBdLmdwcigpKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCgpOworI2VuZGlmCisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVybiBwYXRjaHBvaW50OworICAgICAgICB9CisK
KyAgICAgICAgUmVmPERPTUpJVDo6UGF0Y2hwb2ludD4gY2hlY2tET00oKSBvdmVycmlkZQorICAg
ICAgICB7CisgICAgICAgICAgICBSZWY8RE9NSklUOjpQYXRjaHBvaW50PiBwYXRjaHBvaW50ID0g
RE9NSklUOjpQYXRjaHBvaW50OjpjcmVhdGUoKTsKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPnNl
dEdlbmVyYXRvcihbPV0oQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IERPTUpJVDo6UGF0Y2hwb2lu
dFBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlz
dCBmYWlsdXJlQ2FzZXM7CisgICAgICAgICAgICAgICAgZmFpbHVyZUNhc2VzLmFwcGVuZChqaXQu
YnJhbmNoOCgKKyAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwKKyAg
ICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFtc1swXS5ncHIoKSwg
SlNDZWxsOjp0eXBlSW5mb1R5cGVPZmZzZXQoKSksCisgICAgICAgICAgICAgICAgICAgIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTQzo6SlNUeXBlKExhc3RKU0NPYmplY3RUeXBlICsgMSkp
KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWx1cmVDYXNlczsKKyAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgcmV0dXJuIHBhdGNocG9pbnQ7CisgICAgICAgIH0KKyAgICB9OworCisg
ICAgc3RhdGljIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21KSVRHZXR0ZXJHZXR0ZXJTZXR0ZXIo
KQorICAgIHsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERPTUpJVEdldHRlckRPTUpJ
VD4gZ3JhcGg7CisgICAgICAgIHJldHVybiAmZ3JhcGguZ2V0KCk7CisgICAgfQorCisgICAgc3Rh
dGljIHB0cmRpZmZfdCBvZmZzZXRPZlZhbHVlKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKERP
TUpJVEdldHRlciwgbV92YWx1ZSk7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKFZNJiB2bSkKKyAgICB7CisgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAg
ICAgICAgRE9NSklUOjpHZXR0ZXJTZXR0ZXIqIGRvbUpJVCA9IGRvbUpJVEdldHRlckdldHRlclNl
dHRlcigpOworICAgICAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9
IEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBkb21KSVQtPmdldHRlcigpLCBkb21KSVQt
PnNldHRlcigpLCBkb21KSVQpOworICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjdXN0b21HZXR0ZXIiKSwgY3VzdG9tR2V0dGVy
U2V0dGVyLCBSZWFkT25seSB8IEN1c3RvbUFjY2Vzc29yKTsKKyAgICB9CisKKyAgICBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCisgICAgeworICAgICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOworICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisK
KyAgICAgICAgRE9NSklUR2V0dGVyKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxET01KSVRH
ZXR0ZXIqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CisgICAgICAgIGlmICghdGhpc09i
amVjdCkKKyAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT5tX3Zh
bHVlKSk7CisgICAgfQorCisgICAgaW50MzJfdCBtX3ZhbHVlIHsgNDIgfTsKK307CisKIAogY29u
c3QgQ2xhc3NJbmZvIEVsZW1lbnQ6OnNfaW5mbyA9IHsgIkVsZW1lbnQiLCAmQmFzZTo6c19pbmZv
LCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEVsZW1lbnQpIH07CiBjb25zdCBDbGFzc0luZm8gTWFz
cXVlcmFkZXI6OnNfaW5mbyA9IHsgIk1hc3F1ZXJhZGVyIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JF
QVRFX01FVEhPRF9UQUJMRShNYXNxdWVyYWRlcikgfTsKIGNvbnN0IENsYXNzSW5mbyBSb290Ojpz
X2luZm8gPSB7ICJSb290IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShS
b290KSB9OwogY29uc3QgQ2xhc3NJbmZvIEltcHVyZUdldHRlcjo6c19pbmZvID0geyAiSW1wdXJl
R2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbXB1cmVHZXR0
ZXIpIH07CiBjb25zdCBDbGFzc0luZm8gQ3VzdG9tR2V0dGVyOjpzX2luZm8gPSB7ICJDdXN0b21H
ZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEN1c3RvbUdldHRl
cikgfTsKK2NvbnN0IENsYXNzSW5mbyBET01KSVRHZXR0ZXI6OnNfaW5mbyA9IHsgIkRPTUpJVEdl
dHRlciIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoRE9NSklUR2V0dGVy
KSB9OwogY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVBcnJheTo6c19pbmZvID0geyAiUnVudGltZUFy
cmF5IiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShSdW50aW1lQXJyYXkp
IH07CiBjb25zdCBDbGFzc0luZm8gU2ltcGxlT2JqZWN0OjpzX2luZm8gPSB7ICJTaW1wbGVPYmpl
Y3QiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFNpbXBsZU9iamVjdCkg
fTsKIHN0YXRpYyBib29sIHRlc3QyNjJBc3luY1Bhc3NlZCB7IGZhbHNlIH07CkBAIC01NzEsNiAr
Njk0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVh
dGVQcm94eShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uQ3JlYXRlUnVudGltZUFycmF5KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVJbXB1cmVHZXR0ZXIoRXhlY1N0YXRl
Kik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUN1
c3RvbUdldHRlck9iamVjdChFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0KEV4ZWNTdGF0ZSopOwog
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVCdWlsdGlu
KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DcmVhdGVHbG9iYWxPYmplY3QoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldEltcHVyZUdldHRlckRlbGVnYXRlKEV4ZWNTdGF0ZSop
OwpAQCAtODU1LDYgKzk3OSw3IEBAIGNsYXNzIEdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2Jh
bE9iamVjdCB7CiAKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVJbXB1cmVHZXR0ZXIi
LCBmdW5jdGlvbkNyZWF0ZUltcHVyZUdldHRlciwgMSk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAiY3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0IiwgZnVuY3Rpb25DcmVhdGVDdXN0b21HZXR0ZXJP
YmplY3QsIDApOworICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNyZWF0ZURPTUpJVEdldHRlck9i
amVjdCIsIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0LCAwKTsKICAgICAgICAgYWRk
RnVuY3Rpb24odm0sICJjcmVhdGVCdWlsdGluIiwgZnVuY3Rpb25DcmVhdGVCdWlsdGluLCAyKTsK
ICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjcmVhdGVHbG9iYWxPYmplY3QiLCBmdW5jdGlvbkNy
ZWF0ZUdsb2JhbE9iamVjdCwgMCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAic2V0SW1wdXJl
R2V0dGVyRGVsZWdhdGUiLCBmdW5jdGlvblNldEltcHVyZUdldHRlckRlbGVnYXRlLCAyKTsKQEAg
LTEzNTksNiArMTQ4NCwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
Q3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmplY3QoRXhlY1N0YXRlKiBleGVjKQoreworICAg
IEpTTG9ja0hvbGRlciBsb2NrKGV4ZWMpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gRE9N
SklUR2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLCBqc051bGwoKSk7CisgICAgRE9NSklUR2V0dGVyKiByZXN1bHQgPSBET01KSVRH
ZXR0ZXI6OmNyZWF0ZShleGVjLT52bSgpLCBzdHJ1Y3R1cmUpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvblNldEltcHVyZUdldHRlckRlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0xv
Y2tIb2xkZXIgbG9jayhleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmgKaW5kZXggZDcwMmRkZjRkYTA1NzY5MDVmNzljZWFkNjBi
NmEyM2NkYjljMzY2Ni4uNDRiNzMwNmE1ODk5NTlhZjJmYmUzNmQxNTEwMDY2NGQ0YTA2OGQyMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0
dGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0
dGVyLmgKQEAgLTMxLDYgKzMxLDkgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKIAogbmFtZXNw
YWNlIEpTQyB7CituYW1lc3BhY2UgRE9NSklUIHsKK2NsYXNzIEdldHRlclNldHRlcjsKK30KIAog
Y2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiBwdWJsaWM6
CkBAIC00MCwxNSArNDMsMTYgQEAgY2xhc3MgQ3VzdG9tR2V0dGVyU2V0dGVyIGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CiAgICAgdHlwZWRlZiBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBDdXN0
b21HZXR0ZXI7CiAgICAgdHlwZWRlZiBQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYyBDdXN0
b21TZXR0ZXI7CiAKLSAgICBzdGF0aWMgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjcmVhdGUoVk0mIHZt
LCBDdXN0b21HZXR0ZXIgY3VzdG9tR2V0dGVyLCBDdXN0b21TZXR0ZXIgY3VzdG9tU2V0dGVyKQor
ICAgIHN0YXRpYyBDdXN0b21HZXR0ZXJTZXR0ZXIqIGNyZWF0ZShWTSYgdm0sIEN1c3RvbUdldHRl
ciBjdXN0b21HZXR0ZXIsIEN1c3RvbVNldHRlciBjdXN0b21TZXR0ZXIsIERPTUpJVDo6R2V0dGVy
U2V0dGVyKiBkb21KSVQgPSBudWxscHRyKQogICAgIHsKLSAgICAgICAgQ3VzdG9tR2V0dGVyU2V0
dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxDdXN0
b21HZXR0ZXJTZXR0ZXI+KHZtLmhlYXApKSBDdXN0b21HZXR0ZXJTZXR0ZXIodm0sIGN1c3RvbUdl
dHRlciwgY3VzdG9tU2V0dGVyKTsKKyAgICAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21H
ZXR0ZXJTZXR0ZXIgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxDdXN0b21HZXR0ZXJTZXR0
ZXI+KHZtLmhlYXApKSBDdXN0b21HZXR0ZXJTZXR0ZXIodm0sIGN1c3RvbUdldHRlciwgY3VzdG9t
U2V0dGVyLCBkb21KSVQpOwogICAgICAgICBjdXN0b21HZXR0ZXJTZXR0ZXItPmZpbmlzaENyZWF0
aW9uKHZtKTsKICAgICAgICAgcmV0dXJuIGN1c3RvbUdldHRlclNldHRlcjsKICAgICB9CiAKICAg
ICBDdXN0b21HZXR0ZXJTZXR0ZXI6OkN1c3RvbUdldHRlciBnZXR0ZXIoKSBjb25zdCB7IHJldHVy
biBtX2dldHRlcjsgfQogICAgIEN1c3RvbUdldHRlclNldHRlcjo6Q3VzdG9tU2V0dGVyIHNldHRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGVyOyB9CisgICAgRE9NSklUOjpHZXR0ZXJTZXR0ZXIq
IGRvbUpJVCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tSklUOyB9CiAKICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CkBAIC01OCwxNSArNjIsMTcgQEAgY2xhc3MgQ3Vz
dG9tR2V0dGVyU2V0dGVyIGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgREVDTEFSRV9FWFBP
UlRfSU5GTzsKIAogcHJpdmF0ZToKLSAgICBDdXN0b21HZXR0ZXJTZXR0ZXIoVk0mIHZtLCBDdXN0
b21HZXR0ZXIgZ2V0dGVyLCBDdXN0b21TZXR0ZXIgc2V0dGVyKQorICAgIEN1c3RvbUdldHRlclNl
dHRlcihWTSYgdm0sIEN1c3RvbUdldHRlciBnZXR0ZXIsIEN1c3RvbVNldHRlciBzZXR0ZXIsIERP
TUpJVDo6R2V0dGVyU2V0dGVyKiBkb21KSVQpCiAgICAgICAgIDogSlNDZWxsKHZtLCB2bS5jdXN0
b21HZXR0ZXJTZXR0ZXJTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgICAgICwgbV9nZXR0ZXIoZ2V0dGVy
KQogICAgICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAgICAgICAgLCBtX2RvbUpJVChkb21KSVQp
CiAgICAgewogICAgIH0KIAogICAgIEN1c3RvbUdldHRlciBtX2dldHRlcjsKICAgICBDdXN0b21T
ZXR0ZXIgbV9zZXR0ZXI7CisgICAgRE9NSklUOjpHZXR0ZXJTZXR0ZXIqIG1fZG9tSklUOwogfTsK
IAogSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYWxsQ3VzdG9tU2V0dGVyKEV4ZWNTdGF0ZSosIEN1
c3RvbUdldHRlclNldHRlcjo6Q3VzdG9tU2V0dGVyLCBib29sIGlzQWNjZXNzb3IsIEpTVmFsdWUg
dGhpc1ZhbHVlLCBKU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dC5oCmluZGV4IDY5NWJmYjcyZWZkNDY3NmZmYWIxYmQ1YzYyZGQyNjQ1NzgwNWU4OTAuLmE2MDlh
NDhjOTA4NmM0M2JkNGZiZTE1Y2I3ZWQ5OWM3Mzg0NGY5NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTI5MCw3ICsxMjkwLDcgQEAgQUxXQVlTX0lOTElO
RSB2b2lkIEpTT2JqZWN0OjpmaWxsQ3VzdG9tR2V0dGVyUHJvcGVydHlTbG90KFByb3BlcnR5U2xv
dCYgc2xvdCwgSlMKIAogICAgIC8vIFRoaXMgYWNjZXNzIGlzIGNhY2hlYWJsZSBiZWNhdXNlIFN0
cnVjdHVyZSByZXF1aXJlcyBhbiBhdHRyaWJ1dGVDaGFuZ2VkVHJhbnNpdGlvbgogICAgIC8vIGlm
IHRoaXMgcHJvcGVydHkgc3RvcHMgYmVpbmcgYW4gYWNjZXNzb3IuCi0gICAgc2xvdC5zZXRDYWNo
ZWFibGVDdXN0b20odGhpcywgYXR0cmlidXRlcywganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+
KGN1c3RvbUdldHRlclNldHRlciktPmdldHRlcigpKTsKKyAgICBzbG90LnNldENhY2hlYWJsZUN1
c3RvbSh0aGlzLCBhdHRyaWJ1dGVzLCBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oY3VzdG9t
R2V0dGVyU2V0dGVyKS0+Z2V0dGVyKCksIGpzQ2FzdDxDdXN0b21HZXR0ZXJTZXR0ZXIqPihjdXN0
b21HZXR0ZXJTZXR0ZXIpLT5kb21KSVQoKSk7CiB9CiAKIC8vIEl0IG1heSBzZWVtIGNyYXp5IHRv
IGlubGluZSBhIGZ1bmN0aW9uIHRoaXMgbGFyZ2UsIGVzcGVjaWFsbHkgYSB2aXJ0dWFsIGZ1bmN0
aW9uLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAppbmRleCA2OTJkN2M3ODlm
ZWQ0N2I1YWQ3NDBjOWJkYTcyYzY2MjRhNjVhNGU3Li44ZmY1ZmUyNThlYTgzY2VkMTUyNzMxNDRl
MDYxODMzNmEyMWI0NTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Mb29rdXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaApA
QCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmgi
CiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiQ3VzdG9tR2V0dGVyU2V0dGVyLmgi
CisjaW5jbHVkZSAiRE9NSklUR2V0dGVyU2V0dGVyLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIklkZW50aWZpZXJJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSW50cmluc2ljLmgi
CkBAIC00Niw2ICs0Nyw3IEBAIHR5cGVkZWYgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgR2V0
RnVuY3Rpb247CiB0eXBlZGVmIFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jIFB1dEZ1bmN0
aW9uOwogdHlwZWRlZiBGdW5jdGlvbkV4ZWN1dGFibGUqICgqQnVpbHRpbkdlbmVyYXRvcikoVk0m
KTsKIHR5cGVkZWYgSlNWYWx1ZSAoKkxhenlQcm9wZXJ0eUNhbGxiYWNrKShWTSYsIEpTT2JqZWN0
Kik7Cit0eXBlZGVmIERPTUpJVDo6R2V0dGVyU2V0dGVyKiAoKkRPTUpJVEdldHRlclNldHRlckdl
bmVyYXRvcikodm9pZCk7CiAKIC8vIEhhc2ggdGFibGUgZ2VuZXJhdGVkIGJ5IHRoZSBjcmVhdGVf
aGFzaF90YWJsZSBzY3JpcHQuCiBzdHJ1Y3QgSGFzaFRhYmxlVmFsdWUgewpAQCAtNzgsNiArODAs
OCBAQCBzdHJ1Y3QgSGFzaFRhYmxlVmFsdWUgewogICAgIEdldEZ1bmN0aW9uIHByb3BlcnR5R2V0
dGVyKCkgY29uc3QgeyBBU1NFUlQoIShtX2F0dHJpYnV0ZXMgJiBCdWlsdGluT3JGdW5jdGlvbk9y
QWNjZXNzb3JPckxhenlQcm9wZXJ0eU9yQ29uc3RhbnQpKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8R2V0RnVuY3Rpb24+KG1fdmFsdWVzLnZhbHVlMSk7IH0KICAgICBQdXRGdW5jdGlvbiBwcm9w
ZXJ0eVB1dHRlcigpIGNvbnN0IHsgQVNTRVJUKCEobV9hdHRyaWJ1dGVzICYgQnVpbHRpbk9yRnVu
Y3Rpb25PckFjY2Vzc29yT3JMYXp5UHJvcGVydHlPckNvbnN0YW50KSk7IHJldHVybiByZWludGVy
cHJldF9jYXN0PFB1dEZ1bmN0aW9uPihtX3ZhbHVlcy52YWx1ZTIpOyB9CiAKKyAgICBET01KSVQ6
OkdldHRlclNldHRlciogZG9tSklUKCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVzICYgRE9N
SklUQXR0cmlidXRlKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8RE9NSklUR2V0dGVyU2V0dGVy
R2VuZXJhdG9yPihtX3ZhbHVlcy52YWx1ZTEpKCk7IH0KKwogICAgIE5hdGl2ZUZ1bmN0aW9uIGFj
Y2Vzc29yR2V0dGVyKCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVzICYgQWNjZXNzb3IpOyBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOYXRpdmVGdW5jdGlvbj4obV92YWx1ZXMudmFsdWUxKTsg
fQogICAgIE5hdGl2ZUZ1bmN0aW9uIGFjY2Vzc29yU2V0dGVyKCkgY29uc3QgeyBBU1NFUlQobV9h
dHRyaWJ1dGVzICYgQWNjZXNzb3IpOyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOYXRpdmVGdW5j
dGlvbj4obV92YWx1ZXMudmFsdWUyKTsgfQogICAgIEJ1aWx0aW5HZW5lcmF0b3IgYnVpbHRpbkFj
Y2Vzc29yR2V0dGVyR2VuZXJhdG9yKCkgY29uc3Q7CkBAIC0yMjQsNiArMjI4LDEyIEBAIGlubGlu
ZSBib29sIGdldFN0YXRpY1Byb3BlcnR5U2xvdEZyb21UYWJsZShWTSYgdm0sIGNvbnN0IEhhc2hU
YWJsZSYgdGFibGUsIEpTT2JqCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIGlm
IChlbnRyeS0+YXR0cmlidXRlcygpICYgRE9NSklUQXR0cmlidXRlKSB7CisgICAgICAgIERPTUpJ
VDo6R2V0dGVyU2V0dGVyKiBkb21KSVQgPSBlbnRyeS0+ZG9tSklUKCk7CisgICAgICAgIHNsb3Qu
c2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoZW50
cnktPmF0dHJpYnV0ZXMoKSksIGRvbUpJVC0+Z2V0dGVyKCksIGRvbUpJVCk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKwogICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmpl
Y3QsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoZW50cnktPmF0dHJpYnV0ZXMoKSksIGVudHJ5LT5w
cm9wZXJ0eUdldHRlcigpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI1OSw2ICsyNjksNyBA
QCBpbmxpbmUgYm9vbCBwdXRFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEhhc2hUYWJsZVZh
bHVlKiBlbnRyeSwgSlNPYmplY3QqIGJhcwogICAgICAgICByZXR1cm4gcmVqZWN0KGV4ZWMsIHNs
b3QuaXNTdHJpY3RNb2RlKCksIFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcik7
CiAKICAgICBpZiAoIShlbnRyeS0+YXR0cmlidXRlcygpICYgUmVhZE9ubHkpKSB7CisgICAgICAg
IEFTU0VSVCghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBET01KSVRBdHRyaWJ1dGUpKTsKICAgICAg
ICAgYm9vbCBpc0FjY2Vzc29yID0gZW50cnktPmF0dHJpYnV0ZXMoKSAmIEN1c3RvbUFjY2Vzc29y
OwogICAgICAgICBKU1ZhbHVlIHVwZGF0ZVRoaXNWYWx1ZSA9IGVudHJ5LT5hdHRyaWJ1dGVzKCkg
JiBDdXN0b21BY2Nlc3NvciA/IHNsb3QudGhpc1ZhbHVlKCkgOiBKU1ZhbHVlKGJhc2UpOwogICAg
ICAgICBib29sIHJlc3VsdCA9IGNhbGxDdXN0b21TZXR0ZXIoZXhlYywgZW50cnktPnByb3BlcnR5
UHV0dGVyKCksIGlzQWNjZXNzb3IsIHVwZGF0ZVRoaXNWYWx1ZSwgdmFsdWUpOwpAQCAtMzM2LDYg
KzM0NywxMyBAQCBpbmxpbmUgdm9pZCByZWlmeVN0YXRpY1Byb3BlcnR5KFZNJiB2bSwgY29uc3Qg
UHJvcGVydHlOYW1lJiBwcm9wZXJ0eU5hbWUsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBpZiAodmFsdWUuYXR0cmlidXRlcygpICYgRE9NSklUQXR0cmlidXRlKSB7CisgICAg
ICAgIERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21KSVQgPSB2YWx1ZS5kb21KSVQoKTsKKyAgICAg
ICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBDdXN0b21HZXR0ZXJT
ZXR0ZXI6OmNyZWF0ZSh2bSwgZG9tSklULT5nZXR0ZXIoKSwgZG9tSklULT5zZXR0ZXIoKSwgZG9t
SklUKTsKKyAgICAgICAgdGhpc09iai5wdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgcHJvcGVy
dHlOYW1lLCBjdXN0b21HZXR0ZXJTZXR0ZXIsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUodmFsdWUu
YXR0cmlidXRlcygpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBDdXN0b21HZXR0
ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRl
KHZtLCB2YWx1ZS5wcm9wZXJ0eUdldHRlcigpLCB2YWx1ZS5wcm9wZXJ0eVB1dHRlcigpKTsKICAg
ICB0aGlzT2JqLnB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBwcm9wZXJ0eU5hbWUsIGN1c3Rv
bUdldHRlclNldHRlciwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZSh2YWx1ZS5hdHRyaWJ1dGVzKCkp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
U2xvdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKaW5k
ZXggZTEzN2Q4NDVkNWZjMzEzODg2NWQxNzZhMjJhN2UzYmQ1MTdjZWIxMy4uOWRlMTUxYTU2YWEy
NzU2Y2ZkMGM2MDAzNjY4MjY2YjE5Zjk5MzJkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJvcGVydHlTbG90LmgKQEAgLTI2LDcgKzI2LDkgQEAKICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKLQorbmFtZXNwYWNlIERPTUpJVCB7Citj
bGFzcyBHZXR0ZXJTZXR0ZXI7Cit9CiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBHZXR0ZXJTZXR0
ZXI7CiBjbGFzcyBKU09iamVjdDsKQEAgLTQ4LDYgKzUwLDcgQEAgZW51bSBBdHRyaWJ1dGUgewog
ICAgIENlbGxQcm9wZXJ0eSAgICAgID0gMSA8PCAxMSwgLy8gcHJvcGVydHkgaXMgYSBsYXp5IHBy
b3BlcnR5IC0gb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQ2xhc3NTdHJ1Y3R1
cmUgICAgPSAxIDw8IDEyLCAvLyBwcm9wZXJ0eSBpcyBhIGxhenkgY2xhc3Mgc3RydWN0dXJlIC0g
b25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgUHJvcGVydHlDYWxsYmFjayAgPSAx
IDw8IDEzLCAvLyBwcm9wZXJ0eSB0aGF0IGlzIGEgbGF6eSBwcm9wZXJ0eSBjYWxsYmFjayAtIG9u
bHkgdXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcworICAgIERPTUpJVEF0dHJpYnV0ZSAgID0gMSA8
PCAxNCwgLy8gcHJvcGVydHkgaXMgYSBET00gSklUIGF0dHJpYnV0ZSAtIG9ubHkgdXNlZCBieSBz
dGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uID0gQnVpbHRpbiB8IEZ1bmN0
aW9uLCAvLyBoZWxwZXIgb25seSB1c2VkIGJ5IHN0YXRpYyBoYXNodGFibGVzCiAgICAgQnVpbHRp
bk9yRnVuY3Rpb25PckxhenlQcm9wZXJ0eSA9IEJ1aWx0aW4gfCBGdW5jdGlvbiB8IENlbGxQcm9w
ZXJ0eSB8IENsYXNzU3RydWN0dXJlIHwgUHJvcGVydHlDYWxsYmFjaywgLy8gaGVscGVyIG9ubHkg
dXNlZCBieSBzdGF0aWMgaGFzaHRhYmxlcwogICAgIEJ1aWx0aW5PckZ1bmN0aW9uT3JBY2Nlc3Nv
ck9yTGF6eVByb3BlcnR5ID0gQnVpbHRpbiB8IEZ1bmN0aW9uIHwgQWNjZXNzb3IgfCBDZWxsUHJv
cGVydHkgfCBDbGFzc1N0cnVjdHVyZSB8IFByb3BlcnR5Q2FsbGJhY2ssIC8vIGhlbHBlciBvbmx5
IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKQEAgLTE1Nyw2ICsxNjAsMTEgQEAgY2xhc3MgUHJv
cGVydHlTbG90IHsKICAgICAgICAgcmV0dXJuIG1fd2F0Y2hwb2ludFNldDsKICAgICB9CiAKKyAg
ICBET01KSVQ6OkdldHRlclNldHRlciogZG9tSklUKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBtX2RvbUpJVDsKKyAgICB9CisKICAgICB2b2lkIHNldFZhbHVlKEpTT2JqZWN0KiBzbG90
QmFzZSwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAg
IEFTU0VSVChhdHRyaWJ1dGVzID09IGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoYXR0cmlidXRlcykp
OwpAQCAtMjExLDcgKzIxOSw3IEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAgICAgIG1fb2Zm
c2V0ID0gaW52YWxpZE9mZnNldDsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzZXRDYWNoZWFibGVD
dXN0b20oSlNPYmplY3QqIHNsb3RCYXNlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBHZXRWYWx1ZUZ1
bmMgZ2V0VmFsdWUpCisgICAgdm9pZCBzZXRDYWNoZWFibGVDdXN0b20oSlNPYmplY3QqIHNsb3RC
YXNlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBHZXRWYWx1ZUZ1bmMgZ2V0VmFsdWUsIERPTUpJVDo6
R2V0dGVyU2V0dGVyKiBkb21KSVQgPSBudWxscHRyKQogICAgIHsKICAgICAgICAgQVNTRVJUKGF0
dHJpYnV0ZXMgPT0gYXR0cmlidXRlc0ZvclN0cnVjdHVyZShhdHRyaWJ1dGVzKSk7CiAgICAgICAg
IApAQCAtMjIzLDYgKzIzMSw3IEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAgICAgIG1fc2xv
dEJhc2UgPSBzbG90QmFzZTsKICAgICAgICAgbV9wcm9wZXJ0eVR5cGUgPSBUeXBlQ3VzdG9tOwog
ICAgICAgICBtX29mZnNldCA9ICFpbnZhbGlkT2Zmc2V0OworICAgICAgICBtX2RvbUpJVCA9IGRv
bUpJVDsKICAgICB9CiAKICAgICB2b2lkIHNldEN1c3RvbUdldHRlclNldHRlcihKU09iamVjdCog
c2xvdEJhc2UsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEN1c3RvbUdldHRlclNldHRlciogZ2V0dGVy
U2V0dGVyKQpAQCAtMzE4LDYgKzMyNyw3IEBAIGNsYXNzIFByb3BlcnR5U2xvdCB7CiAgICAgQ2Fj
aGVhYmlsaXR5VHlwZSBtX2NhY2hlYWJpbGl0eTsKICAgICBQcm9wZXJ0eVR5cGUgbV9wcm9wZXJ0
eVR5cGU7CiAgICAgSW50ZXJuYWxNZXRob2RUeXBlIG1faW50ZXJuYWxNZXRob2RUeXBlOworICAg
IERPTUpJVDo6R2V0dGVyU2V0dGVyKiBtX2RvbUpJVCB7IG51bGxwdHIgfTsKICAgICBib29sIG1f
aXNUYWludGVkQnlPcGFxdWVPYmplY3Q7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9Cb3guaCBiL1NvdXJjZS9XVEYvd3RmL0JveC5oCmluZGV4IGFkOWQ1YzU3M2YwYmYwNWQwODNl
M2I2NWIyMjI3NzViYTM0OTIxNjcuLmI2NjEzMjE5MTkxNzU4MDY4MTRiNDZhMWQyMGEyZDE3ZDk4
YWE2Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0JveC5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0JveC5oCkBAIC00MCw2ICs0MCwxMCBAQCBjbGFzcyBCb3ggewogICAgIHsKICAgICB9CiAK
KyAgICBCb3goc3RkOjpudWxscHRyX3QpCisgICAgeworICAgIH0KKwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBzdGF0aWMgQm94IGNyZWF0ZShBcmd1bWVudHMmJi4u
LiBhcmd1bWVudHMpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RkTGliRXh0
cmFzLmggYi9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAppbmRleCBiYTA0OWZhODdkZmEx
YzllM2ZhNThlYjRiMGQzMjNjZmQ2OTZiNTIxLi41ZjM4OGViNGYwZjI1NDc2NzIyOWY5NWIzOTZh
MTVkN2Y2ZjAzMTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9TdGRMaWJFeHRyYXMuaApAQCAtNjgsNiArNjgsOCBAQAogLy8g
TlVMTCBjYW4gY2F1c2UgY29tcGlsZXIgcHJvYmxlbXMsIGVzcGVjaWFsbHkgaW4gY2FzZXMgb2Yg
bXVsdGlwbGUgaW5oZXJpdGFuY2UuCiAjZGVmaW5lIE9CSkVDVF9PRkZTRVRPRihjbGFzcywgZmll
bGQpIChyZWludGVycHJldF9jYXN0PHB0cmRpZmZfdD4oJihyZWludGVycHJldF9jYXN0PGNsYXNz
Kj4oMHg0MDAwKS0+ZmllbGQpKSAtIDB4NDAwMCkKIAorI2RlZmluZSBDQVNUX09GRlNFVChmcm9t
LCB0bykgKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihzdGF0aWNfY2FzdDx0bz4oKHJlaW50
ZXJwcmV0X2Nhc3Q8ZnJvbT4oMHg0MDAwKSkpKSAtIDB4NDAwMCkKKwogLy8gU1RSSU5HSVpFOiBD
YW4gY29udmVydCBhbnkgdmFsdWUgdG8gcXVvdGVkIHN0cmluZywgZXZlbiBleHBhbmRhYmxlIG1h
Y3JvcwogI2RlZmluZSBTVFJJTkdJWkUoZXhwKSAjZXhwCiAjZGVmaW5lIFNUUklOR0laRV9WQUxV
RV9PRihleHApIFNUUklOR0laRShleHApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9kb21qaXQvRE9NSklUR3JhcGguaCBiL1NvdXJjZS9XZWJDb3JlL0Zvcndh
cmRpbmdIZWFkZXJzL2RvbWppdC9ET01KSVRHcmFwaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0ODAzYzdmOGJm
NTQ0NmNkNGJlNWMzODRjZGI0YzUxYjMyNjE3YzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9kb21qaXQvRE9NSklUR3JhcGguaApAQCAtMCwwICsx
LDQgQEAKKyNpZm5kZWYgV2ViQ29yZV9GV0RfRE9NSklUR3JhcGhfaAorI2RlZmluZSBXZWJDb3Jl
X0ZXRF9ET01KSVRHcmFwaF9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRE9NSklUR3JhcGgu
aD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA2ZjY4N2U4ZWNkNzNkYTg4
YjQ5ZDg3OTc1OGNhYmQ1NTY3ZjAzNzJhLi43ZTk5YTQ5MWU2NDg3NmQwY2E4NjEzYWRjNDkyMDNj
YmE0ZmQ2MTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTQsNiArMTQsNyBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2J5dGVjb21waWxlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RmZyIK
ICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Rpc2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NS
SVBUQ09SRV9ESVJ9L2RvbWppdCIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2hlYXAiCiAg
ICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZWJ1Z2dlciIKICAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2ludGVycHJldGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1H
VEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA0MWJlMjgz
MTI5OTdhNDg4M2M5OGY5ZWExYmY2MTVjYTlkODI1YjlmLi5hZDI3ZTU2YzA3Y2UzZjZjZTAzNGEx
YWQ3YTNjYTZkNzAyZjE5YmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdU
Sy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTksNiAr
MTksNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L2J5dGVjb21waWxlciIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L2RmZyIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Rpc2Fzc2VtYmxlciIKKyAgICAi
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2RvbWppdCIKICAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9
L2hlYXAiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kZWJ1Z2dlciIKICAgICAiJHtKQVZB
U0NSSVBUQ09SRV9ESVJ9L2ludGVycHJldGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRl
eCAzNGI4ZGIyNzBiZjY5NGIyZTA3ZDE4NDkxYWE4NzQ2NzQzNTY3ZmM4Li5iYzQ3YzRlYWFkZDY2
OWI0NTRmNzY4NmJhMzIyNTRlY2MxODZjODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpA
QCAtODAsNiArODAsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXRUJDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvYmluZGluZ3MiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2J5dGVjb2RlIgogICAgICIke1dFQkNPUkVf
RElSfS9Gb3J3YXJkaW5nSGVhZGVycy9kZWJ1Z2dlciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vRm9y
d2FyZGluZ0hlYWRlcnMvZG9taml0IgogICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVh
ZGVycy9oZWFwIgogICAgICIke1dFQkNPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9pbnNwZWN0
b3IiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL2ludGVycHJldGVyIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBhZWQ4ZGViMGEyODg3N2Q5NTY2ZDM3OGJkNTlh
ZGNkMGVmOGE3Y2VkLi5hMzhmZTE5M2VjY2EzMDdkMTU5NWFiNGJhMzdhZjI1YzZjNTIxMGU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTUsNiArMTUsNyBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9G
b3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIiCiAgICAgIiR7REVS
SVZFRF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvZGZnIgog
ICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRD
b3JlL2Rpc2Fzc2VtYmxlciIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5n
SGVhZGVycy9KYXZhU2NyaXB0Q29yZS9kb21qaXQiCiAgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJ
Un0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvaGVhcCIKICAgICAiJHtERVJJVkVE
X1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlciIK
ICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA3NmE4ZGVkOGNhODE3YjFhNDM2NzEzYjFhNGU4MzQwYmM3
ZTU3ZTAzLi4yYmM2ZDUwNzViYzBmZmUzNGNmODU2Y2VlYzc1ZTM3Zjc3YmQwZjg4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NDgzMiw2ICsxNDgzMiw3IEBACiAJCQkJRjUyM0QxODQwMkRFNDJFODAxODYzNUNBIC8qIGNzcyAq
LywKIAkJCQkyNkI5OTk4RDE4MDNBREZBMDBEMDExMjEgLyogY3Nzaml0ICovLAogCQkJCUY1MjNE
MzI0MDJERTQ0NzgwMTg2MzVDQSAvKiBkb20gKi8sCisJCQkJRTNGRTJBM0ExRDlGMTVCNTAwQzUw
QjFGIC8qIGRvbWppdCAqLywKIAkJCQk5MzMwOUQ4NjA5OUU2NDkxMDA1NkU1ODEgLyogZWRpdGlu
ZyAqLywKIAkJCQk5NzZENkM1NzEyMkI4QTE4MDAxRkQxRjcgLyogZmlsZWFwaSAqLywKIAkJCQk1
MTc0MUQwODBCMDcyNTcwMDBFRDQ0MkMgLyogaGlzdG9yeSAqLywKQEAgLTIyMjQzLDYgKzIyMjQ0
LDEzIEBACiAJCQluYW1lID0gQ3J5cHRvOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJRTNGRTJBM0ExRDlGMTVCNTAwQzUwQjFGIC8qIGRvbWppdCAqLyA9IHsKKwkJCWlzYSA9
IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkpOworCQkJcGF0aCA9IGRvbWppdDsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUU0NkU5Nzg2MERBQUQ2MUIwMDcxRTg5
NCAvKiBhbmltYXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5k
ZXggZDQwYzQzZjYzZDU3ZTdlNTk3MGM3ZTYyZWZhODU2YWU2NGUzMmYyOS4uMTE2ZDVkZGY1MTk5
MzdmYzY2MTM1NWEyYzg5YmViYjM4MDViYzJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC03Miw2ICs3Miw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkKCkgeyByZXR1cm4gbV93
b3JsZC5nZXQoKTsgfQogICAgICAgICBib29sIHdvcmxkSXNOb3JtYWwoKSBjb25zdCB7IHJldHVy
biBtX3dvcmxkSXNOb3JtYWw7IH0KKyAgICAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZldv
cmxkSXNOb3JtYWwoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNET01HbG9iYWxPYmplY3Qs
IG1fd29ybGRJc05vcm1hbCk7IH0KIAogICAgICAgICBKU0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9u
cyYgYnVpbHRpbkludGVybmFsRnVuY3Rpb25zKCkgeyByZXR1cm4gbV9idWlsdGluSW50ZXJuYWxG
dW5jdGlvbnM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApp
bmRleCA2MjUxMGNkYzI1YWViZGFmZjliYTIzNTA3NWJjOTc0NDQ3M2U5OGNhLi4wMDlmNmRmMDdl
ZWIxMTYyMDAxOGI4MzI1YjkwZWM1MjI3MzExZmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdyYXBwZXIuaApAQCAtNTksNiArNTksNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBJ
bXBsZW1lbnRhdGlvbkNsYXNzPiBjbGFzcyBKU0RPTVdyYXBwZXIgOiBwdWJsaWMgSlNET01PYmpl
Y3QgewogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RPTVdyYXBwZXIgPSB0cnVlOwogCiAg
ICAgSW1wbGVtZW50YXRpb25DbGFzcyYgd3JhcHBlZCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nh
c3Q8SW1wbGVtZW50YXRpb25DbGFzcyY+KG1fd3JhcHBlZC5nZXQoKSk7IH0KKyAgICBzdGF0aWMg
cHRyZGlmZl90IG9mZnNldE9mV3JhcHBlZCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0RP
TVdyYXBwZXI8SW1wbGVtZW50YXRpb25DbGFzcz4sIG1fd3JhcHBlZCk7IH0KIAogcHJvdGVjdGVk
OgogICAgIEpTRE9NV3JhcHBlcihKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0M6OkpTR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJlZjxJbXBsZW1lbnRhdGlvbkNsYXNzPiYmIGltcGwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IDVk
OTMyNjExNGFhNmYwYzFkNGYwYjdiY2UxNjRhMTIzOGUyNmE5MGMuLjJlNTgyYmI1MGJjOTllYWIz
YjA4NjFkY2UwZjg5NzhiN2JjOTU0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdFdyYXBwYWJsZS5oCkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIFNjcmlwdFdyYXBwYWJs
ZSB7CiAgICAgSlNET01PYmplY3QqIHdyYXBwZXIoKSBjb25zdDsKICAgICB2b2lkIHNldFdyYXBw
ZXIoSlNET01PYmplY3QqLCBKU0M6OldlYWtIYW5kbGVPd25lciosIHZvaWQqKTsKICAgICB2b2lk
IGNsZWFyV3JhcHBlcihKU0RPTU9iamVjdCopOworICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0
T2ZXcmFwcGVyKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKFNjcmlwdFdyYXBwYWJsZSwgbV93
cmFwcGVyKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgflNjcmlwdFdyYXBwYWJsZSgpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpp
bmRleCBkMWZkMjQxMzFiMDI2ZjI4ODkxZTYxODhlM2JiNjgxNTI5YjEwYjdhLi5hODE1N2JhNTY4
N2M0ZWMyODA5MzBkYTE1MDQ0NDhjZTk0MjNiZmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNjEwLDYgKzYxMCw3IEBA
IHN1YiBHZXRKU0NBdHRyaWJ1dGVzRm9yQXR0cmlidXRlCiAgICAgcHVzaChAc3BlY2lhbHMsICJE
b250RW51bSIpIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e05vdEVudW1lcmFibGV9IHx8ICRpc19nbG9iYWxfY29uc3RydWN0b3IpOwogICAgIHB1c2goQHNw
ZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpOwogICAgIHB1c2go
QHNwZWNpYWxzLCAiQ3VzdG9tQWNjZXNzb3IiKSB1bmxlc3MgJGlzX2dsb2JhbF9jb25zdHJ1Y3Rv
ciBvciBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKKyAgICBwdXNoKEBzcGVj
aWFscywgIkRPTUpJVEF0dHJpYnV0ZSIpIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9OwogICAgIHB1c2goQHNwZWNpYWxzLCAiQWNjZXNzb3Ig
fCBCdWlsdGluIikgaWYgIElzSlNCdWlsdGluKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAg
IHJldHVybiAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDogIjAiOwog
fQpAQCAtMTMwNiw2ICsxMzA3LDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgbXkgJGhhc0Zv
cndhcmREZWNsYXJpbmdGdW5jdGlvbnMgPSAwOwogICAgIG15ICRoYXNGb3J3YXJkRGVjbGFyaW5n
QXR0cmlidXRlcyA9IDA7CiAKKyAgICBteSAkaGFzRE9NSklUQXR0cmlidXRlcyA9IDA7CisKICAg
ICAjIEF0dHJpYnV0ZSBhbmQgZnVuY3Rpb24gZW51bXMKICAgICBpZiAoJG51bUF0dHJpYnV0ZXMg
PiAwKSB7CiAgICAgICAgIGZvcmVhY2ggKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKQEAg
LTEzMjAsNiArMTMyMyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgICAgICRu
ZWVkc1Zpc2l0Q2hpbGRyZW4gPSAxOwogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICRoYXNET01KSVRBdHRyaWJ1dGVzID0gMSBpZiAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifTsKIAogICAgICAgICAgICAgJGhhc0Zv
cndhcmREZWNsYXJpbmdBdHRyaWJ1dGVzID0gMSBpZiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e0ZvcndhcmREZWNsYXJlSW5IZWFkZXJ9OwogICAgICAgICB9CkBA
IC0xNTI3LDYgKzE1MzEsMTUgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIH0KICAgICB9
CiAKKyAgICBpZiAoJGhhc0RPTUpJVEF0dHJpYnV0ZXMpIHsKKyAgICAgICAgJGhlYWRlckluY2x1
ZGVzeyI8ZG9taml0L0RPTUpJVEdyYXBoLmg+In0gPSAxOworICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCIvLyBET01KSVQgZW1pdHRlcnMgZm9yIGF0dHJpYnV0ZXNcblxuIik7CisgICAgICAg
IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgeworICAg
ICAgICAgICAgbmV4dCB1bmxlc3MgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiRE9NSklUIn07CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlND
OjpET01KSVQ6OkdyYXBoKiBkb21KSVRHcmFwaEZvciIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gJGNv
ZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSAuICIo
dm9pZCk7XG4iKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmIChIYXNDdXN0b21Db25zdHJ1
Y3RvcigkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiLy8gQ3Vz
dG9tIGNvbnN0cnVjdG9yXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3Qke2NsYXNzTmFtZX0oSlNDOjpF
eGVjU3RhdGUmKTtcblxuIik7CkBAIC0xNjAzLDE0ICsxNjE2LDE5IEBAIHN1YiBHZW5lcmF0ZVBy
b3BlcnRpZXNIYXNoVGFibGUKICAgICAgICAgbXkgJHNwZWNpYWwgPSBHZXRKU0NBdHRyaWJ1dGVz
Rm9yQXR0cmlidXRlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAgICAgICBwdXNoKEAkaGFz
aFNwZWNpYWxzLCAkc3BlY2lhbCk7CiAKLSAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0
ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAg
IHB1c2goQCRoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKLQotICAgICAgICBpZiAoSXNSZWFkb25seSgk
YXR0cmlidXRlKSkgeworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRE9NSklUIn0pIHsKKyAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUx
LCAiZG9tSklUR3JhcGhGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5X
S191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkpOwogICAgICAgICAgICAgcHVz
aChAJGhhc2hWYWx1ZTIsICIwIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBteSAk
c2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAk
YXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUyLCAkc2V0dGVyKTsKKyAg
ICAgICAgICAgIG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2Us
ICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTEs
ICRnZXR0ZXIpOworCisgICAgICAgICAgICBpZiAoSXNSZWFkb25seSgkYXR0cmlidXRlKSkgewor
ICAgICAgICAgICAgICAgIHB1c2goQCRoYXNoVmFsdWUyLCAiMCIpOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFt
ZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgICBw
dXNoKEAkaGFzaFZhbHVlMiwgJHNldHRlcik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAog
ICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsfTsKQEAgLTIzOTEsMTcgKzI0MDksMjMgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15IEBzcGVjaWFscyA9ICgpOwogICAg
ICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVsZXRlIikgdW5sZXNzICRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RGVsZXRhYmxlfTsKICAgICAgICAgICAg
IHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpOwor
ICAgICAgICAgICAgcHVzaChAc3BlY2lhbHMsICJET01KSVRBdHRyaWJ1dGUiKSBpZiAkYXR0cmli
dXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJET01KSVQifTsKICAgICAgICAg
ICAgIG15ICRzcGVjaWFsID0gKEBzcGVjaWFscyA+IDApID8gam9pbigiIHwgIiwgQHNwZWNpYWxz
KSA6ICIwIjsKICAgICAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOwogCi0g
ICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNl
LCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTEs
ICRnZXR0ZXIpOwotCi0gICAgICAgICAgICBpZiAoSXNSZWFkb25seSgkYXR0cmlidXRlKSkgewor
ICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRPTUpJVCJ9KSB7CisgICAgICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgImRvbUpJ
VEdyYXBoRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpKTsKICAgICAgICAgICAgICAgICBwdXNoKEBo
YXNoVmFsdWUyLCAiMCIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBt
eSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1l
LCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAkc2V0dGVy
KTsKKyAgICAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgk
aW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEBoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKKworICAgICAgICAgICAgICAgIGlmIChJc1JlYWRvbmx5
KCRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIw
Iik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHNl
dHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0
dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRzZXR0ZXIp
OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbXkgJGNv
bmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntD
b25kaXRpb25hbH07CkBAIC0yOTU5LDYgKzI5ODMsMzggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogCisgICAg
ICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RE9NSklUIn0pIHsKKyAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyI8d3RmL05ldmVyRGVz
dHJveWVkLmg+In0gPSAxOworICAgICAgICAgICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGlu
dGVyZmFjZS0+bmFtZTsKKyAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlTmFtZSA9ICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgICAgICAgICBteSAkZG9tSklUQ2xhc3NO
YW1lID0gIkRPTUpJVCIgLiAkaW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2Zp
cnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgICAgICAgICAgbXkgJGdl
dHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0
dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IElzUmVhZG9ubHkoJGF0dHJp
YnV0ZSkgPyAibnVsbHB0ciIgOiBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRj
bGFzc05hbWUsICRhdHRyaWJ1dGUpOworICAgICAgICAgICAgICAgICMgQ0FTVF9PRkZTRVQoJGlu
dGVyZmFjZU5hbWUqLCBDb250YWluZXJOb2RlKikgKyBDb250YWluZXJOb2RlCisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJjbGFzcyAkZG9tSklUQ2xhc3NOYW1lIDogcHVibGlj
IEpTQzo6RE9NSklUOjpHcmFwaCB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgInB1YmxpYzpcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICRkb21KSVRDbGFzc05hbWUoKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIDogSlNDOjpET01KSVQ6OkdyYXBoKCRnZXR0ZXIsICRzZXR0ZXIsIEpT
Qzo6U3BlY0RPTU5vZGUpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
dXNpbmcgbmFtZXNwYWNlIEpTQzo6RE9NSklUO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIGFwcGVuZChLaW5kOjpDaGVja05vZGUsIElSOjp0aGlzVmFs
dWUoKSwgbnVsbHB0cik7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAgICAgSVIqIHdyYXBwZWQgPSBhcHBlbmQoS2luZDo6R2V0V3JhcHBlZCwgSVI6OnRoaXNW
YWx1ZSgpLCBudWxscHRyLCBKU05vZGU6Om9mZnNldE9mV3JhcHBlZCgpKTtcbiIpOworICAgICAg
ICAgICAgICAgICMgaWYgKCRhdHRyaWJ1dGVOYW1lIGVxICJmaXJzdENoaWxkIiB8fCAkYXR0cmli
dXRlTmFtZSBlcSAibGFzdENoaWxkIikgeworICAgICAgICAgICAgICAgICMgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICBhcHBlbmQoS2luZDo6Q2hlY2tOb2RlRmxhZ3MsIHdyYXBwZWQs
IG51bGxwdHIsIE5vZGU6Om5vZGVGbGFnc01lbW9yeU9mZnNldCgpLCBOb2RlOjpJc0NvbnRhaW5l
ckZsYWcpO1xuIik7CisgICAgICAgICAgICAgICAgIyB9CisgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIElSKiByZXN1bHQgPSBhcHBlbmQoS2luZDo6TG9hZFBvaW50
ZXIsIHdyYXBwZWQsIG51bGxwdHIsICRpbnRlcmZhY2VOYW1lOjoke2F0dHJpYnV0ZU5hbWV9TWVt
b3J5T2Zmc2V0KCkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIElSKiB3cmFwcGVyID0gYXBwZW5kKEtpbmQ6OlRvV3JhcHBlciwgcmVzdWx0LCBudWxs
cHRyLCAoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEpTRE9NR2xvYmFsT2JqZWN0OjpvZmZzZXRPZldv
cmxkSXNOb3JtYWwoKSkgPDwgMzIpIHwgKENBU1RfT0ZGU0VUKCRpbnRlcmZhY2VOYW1lKiwgU2Ny
aXB0V3JhcHBhYmxlKikgKyBTY3JpcHRXcmFwcGFibGU6Om9mZnNldE9mV3JhcHBlcigpKSwgYml0
d2lzZV9jYXN0PHVpbnRwdHJfdD4oc3RhdGljX2Nhc3Q8SlNDOjpFbmNvZGVkSlNWYWx1ZSAoKiko
SlNDOjpFeGVjU3RhdGUqLCB2b2lkKiwgdm9pZCopPihbXShKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
dm9pZCogd3JhcHBlZCwgdm9pZCogZ2xvYmFsT2JqZWN0KSB7IHJldHVybiBKU0M6OkpTVmFsdWU6
OmVuY29kZSh0b0pTKGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFs
T2JqZWN0KSwgc3RhdGljX2Nhc3Q8Tm9kZSo+KHdyYXBwZWQpKSk7IH0pKSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXBwZW5kKEtpbmQ6OlJldHVy
biwgd3JhcHBlciwgbnVsbHB0cik7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn07
XG5cbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkRPTUpJ
VDo6R3JhcGgqIGRvbUpJVEdyYXBoRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdlbmVy
YXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gIigpXG4iKTsK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDwkZG9tSklU
Q2xhc3NOYW1lPiBlbWl0dGVyO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcmV0dXJuICZlbWl0dGVyLmdldCgpO1xuIik7CisgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3Ry
aW5nOwogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7CkBAIC00ODk0LDEy
ICs0OTUwLDE0IEBAIHN1YiBHZW5lcmF0ZUhhc2hUYWJsZVZhbHVlQXJyYXkKICAgICAgICAgICAg
ICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4iOwogICAg
ICAgICB9IGVsc2lmICgiQCRzcGVjaWFsc1skaV0iID1+IG0vQ29uc3RhbnRJbnRlZ2VyLykgewog
ICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICIiOworICAgICAgICB9IGVsc2lmICgiQCRz
cGVjaWFsc1skaV0iID1+IG0vRE9NSklUQXR0cmlidXRlLykgeworICAgICAgICAgICAgJGZpcnN0
VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxET01KSVRHcmFwaEdlbmVyYXRvcj4iOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgJGZpcnN0VGFyZ2V0VHlwZSA9ICJzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4iOwogICAgICAgICAgICAgJHNlY29uZFRhcmdldFR5
cGUgPSAic3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+IjsKICAgICAg
ICAgICAgICRoYXNTZXR0ZXIgPSAidHJ1ZSI7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCJAJHNw
ZWNpYWxzWyRpXSIgPX4gbS9Db25zdGFudEludGVnZXIvKSB7CisgICAgICAgIGlmICgiQCRzcGVj
aWFsc1skaV0iID1+IG0vQ29uc3RhbnRJbnRlZ2VyfERPTUpJVEF0dHJpYnV0ZS8pIHsKICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHsgXCIka2V5XCIsIEAkc3BlY2lhbHNbJGld
LCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSIgLiAkZmlyc3RUYXJnZXRUeXBlIC4gIihAJHZh
bHVlMVskaV0pIH0gfSxcbiIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgeyBcIiRrZXlcIiwgQCRzcGVjaWFsc1skaV0sIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdCkiIC4gJGZpcnN0VGFyZ2V0VHlwZSAuICIoQCR2YWx1ZTFbJGldKSwgKGlu
dHB0cl90KSAiIC4gJHNlY29uZFRhcmdldFR5cGUgLiAiKEAkdmFsdWUyWyRpXSkgfSB9LFxuIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4
dAppbmRleCAzYzI0YTU0MjFhY2EzMmNkNzI2Yjk4YjdkOTljOGQ4MzA2YWM2ZjZlLi4xOWNkNGJi
MTNkN2M2ZmI4Y2I4Mjk1MTEwYzQzYjRjZWUwOTliNTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTU0LDYgKzU0LDcgQEAg
Q3VzdG9tUmV0dXJuCiBDdXN0b21TZXRQcm90b3R5cGUKIEN1c3RvbVNldHRlcgogQ3VzdG9tVG9K
U09iamVjdAorRE9NSklUCiBEZWxldGFibGUKIERvTm90Q2hlY2tDb25zdGFudHMKIERvTm90Q2hl
Y2tTZWN1cml0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKaW5kZXggOWNhN2ExODM1MWFh
OTFhYmZhZDJlNGIyMzM4MWNkMTE3MDM1M2U4OS4uNWFjMmE3Y2IwZmU2MzZjNDBjNzdjOWM0NzEw
NmE4ZTlkNDBmNWMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCkBAIC00MSw2ICs0
MSw3IEBAIGNsYXNzIENvbnRhaW5lck5vZGUgOiBwdWJsaWMgTm9kZSB7CiAgICAgTm9kZSogZmly
c3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RDaGlsZDsgfQogICAgIHN0YXRpYyBwdHJk
aWZmX3QgZmlyc3RDaGlsZE1lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihD
b250YWluZXJOb2RlLCBtX2ZpcnN0Q2hpbGQpOyB9CiAgICAgTm9kZSogbGFzdENoaWxkKCkgY29u
c3QgeyByZXR1cm4gbV9sYXN0Q2hpbGQ7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90IGxhc3RDaGls
ZE1lbW9yeU9mZnNldCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihDb250YWluZXJOb2RlLCBt
X2xhc3RDaGlsZCk7IH0KICAgICBib29sIGhhc0NoaWxkTm9kZXMoKSBjb25zdCB7IHJldHVybiBt
X2ZpcnN0Q2hpbGQ7IH0KICAgICBib29sIGhhc09uZUNoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9m
aXJzdENoaWxkICYmICFtX2ZpcnN0Q2hpbGQtPm5leHRTaWJsaW5nKCk7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgK
aW5kZXggZTI2YzMzMjllZGQyMmQwODgwMTI1YmUyMmZiZDE2MmI2ZTdhYTliYS4uMzRjZWUxZmQ0
MzlmMDlhZGQ4ZDQyYzYwOWQwOWQ1YWMxYWEyZGY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0xMjAsNiAr
MTIwLDQ2IEBAIGNsYXNzIE5vZGUgOiBwdWJsaWMgRXZlbnRUYXJnZXQgewogICAgICAgICBET0NV
TUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkgPSAweDEwLAogICAgICAgICBET0NVTUVOVF9QT1NJ
VElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQyA9IDB4MjAsCiAgICAgfTsKKyAgICBlbnVtIE5v
ZGVGbGFncyB7CisgICAgICAgIElzVGV4dEZsYWcgPSAxLAorICAgICAgICBJc0NvbnRhaW5lckZs
YWcgPSAxIDw8IDEsCisgICAgICAgIElzRWxlbWVudEZsYWcgPSAxIDw8IDIsCisgICAgICAgIElz
U3R5bGVkRWxlbWVudEZsYWcgPSAxIDw8IDMsCisgICAgICAgIElzSFRNTEZsYWcgPSAxIDw8IDQs
CisgICAgICAgIElzU1ZHRmxhZyA9IDEgPDwgNSwKKyAgICAgICAgQ2hpbGROZWVkc1N0eWxlUmVj
YWxjRmxhZyA9IDEgPDwgNywKKyAgICAgICAgSW5Eb2N1bWVudEZsYWcgPSAxIDw8IDgsCisgICAg
ICAgIElzTGlua0ZsYWcgPSAxIDw8IDksCisgICAgICAgIElzVXNlckFjdGlvbkVsZW1lbnQgPSAx
IDw8IDEwLAorICAgICAgICBIYXNSYXJlRGF0YUZsYWcgPSAxIDw8IDExLAorICAgICAgICBJc0Rv
Y3VtZW50RnJhZ21lbnRGbGFnID0gMSA8PCAxMiwKKworICAgICAgICAvLyBUaGVzZSBiaXRzIGFy
ZSB1c2VkIGJ5IGRlcml2ZWQgY2xhc3NlcywgcHVsbGVkIHVwIGhlcmUgc28gdGhleSBjYW4KKyAg
ICAgICAgLy8gYmUgc3RvcmVkIGluIHRoZSBzYW1lIG1lbW9yeSB3b3JkIGFzIHRoZSBOb2RlIGJp
dHMgYWJvdmUuCisgICAgICAgIElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnID0gMSA8PCAx
MywgLy8gRWxlbWVudAorCisgICAgICAgIFN0eWxlQ2hhbmdlTWFzayA9IDEgPDwgbm9kZVN0eWxl
Q2hhbmdlU2hpZnQgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCArIDEpIHwgMSA8PCAobm9k
ZVN0eWxlQ2hhbmdlU2hpZnQgKyAyKSwKKyAgICAgICAgSXNFZGl0aW5nVGV4dE9yVW5kZWZpbmVk
Q3VzdG9tRWxlbWVudEZsYWcgPSAxIDw8IDE3LAorICAgICAgICBIYXNGb2N1c1dpdGhpbiA9IDEg
PDwgMTgsCisgICAgICAgIEhhc1N5bnRoZXRpY0F0dHJDaGlsZE5vZGVzRmxhZyA9IDEgPDwgMTks
CisgICAgICAgIEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrc0ZsYWcgPSAxIDw8IDIwLAor
ICAgICAgICBIYXNFdmVudFRhcmdldERhdGFGbGFnID0gMSA8PCAyMSwKKyAgICAgICAgSXNDdXN0
b21FbGVtZW50ID0gMSA8PCAyMiwKKyAgICAgICAgSXNJblNoYWRvd1RyZWVGbGFnID0gMSA8PCAy
MywKKyAgICAgICAgSXNNYXRoTUxGbGFnID0gMSA8PCAyNCwKKworICAgICAgICBDaGlsZHJlbkFm
ZmVjdGVkQnlGaXJzdENoaWxkUnVsZXNGbGFnID0gMSA8PCAyNSwKKyAgICAgICAgQ2hpbGRyZW5B
ZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXNGbGFnID0gMSA8PCAyNiwKKyAgICAgICAgQ2hpbGRyZW5B
ZmZlY3RlZEJ5SG92ZXJSdWxlc0ZsYWcgPSAxIDw8IDI3LAorCisgICAgICAgIERpcmVjdENoaWxk
TmVlZHNTdHlsZVJlY2FsY0ZsYWcgPSAxIDw8IDI4LAorICAgICAgICBBZmZlY3RzTmV4dFNpYmxp
bmdFbGVtZW50U3R5bGUgPSAxIDw8IDI5LAorICAgICAgICBTdHlsZUlzQWZmZWN0ZWRCeVByZXZp
b3VzU2libGluZyA9IDEgPDwgMzAsCisKKyAgICAgICAgU2VsZk9yQW5jZXN0b3JIYXNEaXJBdXRv
RmxhZyA9IDEgPDwgMzEsCisKKyAgICAgICAgRGVmYXVsdE5vZGVGbGFncyA9IElzUGFyc2luZ0No
aWxkcmVuRmluaXNoZWRGbGFnCisgICAgfTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIHN0YXJ0SWdub3JpbmdMZWFrcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lk
IHN0b3BJZ25vcmluZ0xlYWtzKCk7CkBAIC0xNTUsNiArMTk1LDggQEAgY2xhc3MgTm9kZSA6IHB1
YmxpYyBFdmVudFRhcmdldCB7CiAgICAgTm9kZSogcHNldWRvQXdhcmVQcmV2aW91c1NpYmxpbmco
KSBjb25zdDsKICAgICBOb2RlKiBwc2V1ZG9Bd2FyZUZpcnN0Q2hpbGQoKSBjb25zdDsKICAgICBO
b2RlKiBwc2V1ZG9Bd2FyZUxhc3RDaGlsZCgpIGNvbnN0OworICAgIHN0YXRpYyBwdHJkaWZmX3Qg
bm9kZUZsYWdzTWVtb3J5T2Zmc2V0KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE5vZGUsIG1f
bm9kZUZsYWdzKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3QgcmFyZURhdGFNZW1vcnlPZmZzZXQo
KSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTm9kZSwgbV9kYXRhLm1fcmFyZURhdGEpOyB9CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBVUkwmIGJhc2VVUkkoKSBjb25zdDsKICAgICAKQEAg
LTU2MCw4ICs2MDIsNiBAQCBjbGFzcyBOb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0IHsKICAgICB2
b2lkIHVwZGF0ZUFuY2VzdG9yQ29ubmVjdGVkU3ViZnJhbWVDb3VudEZvckluc2VydGlvbigpIGNv
bnN0OwogCiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCi0gICAgc3RhdGljIHB0cmRpZmZf
dCBub2RlRmxhZ3NNZW1vcnlPZmZzZXQoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoTm9kZSwg
bV9ub2RlRmxhZ3MpOyB9Ci0gICAgc3RhdGljIHB0cmRpZmZfdCByYXJlRGF0YU1lbW9yeU9mZnNl
dCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihOb2RlLCBtX2RhdGEubV9yYXJlRGF0YSk7IH0K
ICAgICBzdGF0aWMgaW50MzJfdCBmbGFnSXNUZXh0KCkgeyByZXR1cm4gSXNUZXh0RmxhZzsgfQog
ICAgIHN0YXRpYyBpbnQzMl90IGZsYWdJc0VsZW1lbnQoKSB7IHJldHVybiBJc0VsZW1lbnRGbGFn
OyB9CiAgICAgc3RhdGljIGludDMyX3QgZmxhZ0lzSFRNTCgpIHsgcmV0dXJuIElzSFRNTEZsYWc7
IH0KQEAgLTU3Nyw0NyArNjE3LDYgQEAgY2xhc3MgTm9kZSA6IHB1YmxpYyBFdmVudFRhcmdldCB7
CiAjZW5kaWYgLy8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAKIHByb3RlY3RlZDoKLSAgICBl
bnVtIE5vZGVGbGFncyB7Ci0gICAgICAgIElzVGV4dEZsYWcgPSAxLAotICAgICAgICBJc0NvbnRh
aW5lckZsYWcgPSAxIDw8IDEsCi0gICAgICAgIElzRWxlbWVudEZsYWcgPSAxIDw8IDIsCi0gICAg
ICAgIElzU3R5bGVkRWxlbWVudEZsYWcgPSAxIDw8IDMsCi0gICAgICAgIElzSFRNTEZsYWcgPSAx
IDw8IDQsCi0gICAgICAgIElzU1ZHRmxhZyA9IDEgPDwgNSwKLSAgICAgICAgQ2hpbGROZWVkc1N0
eWxlUmVjYWxjRmxhZyA9IDEgPDwgNywKLSAgICAgICAgSW5Eb2N1bWVudEZsYWcgPSAxIDw8IDgs
Ci0gICAgICAgIElzTGlua0ZsYWcgPSAxIDw8IDksCi0gICAgICAgIElzVXNlckFjdGlvbkVsZW1l
bnQgPSAxIDw8IDEwLAotICAgICAgICBIYXNSYXJlRGF0YUZsYWcgPSAxIDw8IDExLAotICAgICAg
ICBJc0RvY3VtZW50RnJhZ21lbnRGbGFnID0gMSA8PCAxMiwKLQotICAgICAgICAvLyBUaGVzZSBi
aXRzIGFyZSB1c2VkIGJ5IGRlcml2ZWQgY2xhc3NlcywgcHVsbGVkIHVwIGhlcmUgc28gdGhleSBj
YW4KLSAgICAgICAgLy8gYmUgc3RvcmVkIGluIHRoZSBzYW1lIG1lbW9yeSB3b3JkIGFzIHRoZSBO
b2RlIGJpdHMgYWJvdmUuCi0gICAgICAgIElzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnID0g
MSA8PCAxMywgLy8gRWxlbWVudAotCi0gICAgICAgIFN0eWxlQ2hhbmdlTWFzayA9IDEgPDwgbm9k
ZVN0eWxlQ2hhbmdlU2hpZnQgfCAxIDw8IChub2RlU3R5bGVDaGFuZ2VTaGlmdCArIDEpIHwgMSA8
PCAobm9kZVN0eWxlQ2hhbmdlU2hpZnQgKyAyKSwKLSAgICAgICAgSXNFZGl0aW5nVGV4dE9yVW5k
ZWZpbmVkQ3VzdG9tRWxlbWVudEZsYWcgPSAxIDw8IDE3LAotICAgICAgICBIYXNGb2N1c1dpdGhp
biA9IDEgPDwgMTgsCi0gICAgICAgIEhhc1N5bnRoZXRpY0F0dHJDaGlsZE5vZGVzRmxhZyA9IDEg
PDwgMTksCi0gICAgICAgIEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrc0ZsYWcgPSAxIDw8
IDIwLAotICAgICAgICBIYXNFdmVudFRhcmdldERhdGFGbGFnID0gMSA8PCAyMSwKLSAgICAgICAg
SXNDdXN0b21FbGVtZW50ID0gMSA8PCAyMiwKLSAgICAgICAgSXNJblNoYWRvd1RyZWVGbGFnID0g
MSA8PCAyMywKLSAgICAgICAgSXNNYXRoTUxGbGFnID0gMSA8PCAyNCwKLQotICAgICAgICBDaGls
ZHJlbkFmZmVjdGVkQnlGaXJzdENoaWxkUnVsZXNGbGFnID0gMSA8PCAyNSwKLSAgICAgICAgQ2hp
bGRyZW5BZmZlY3RlZEJ5TGFzdENoaWxkUnVsZXNGbGFnID0gMSA8PCAyNiwKLSAgICAgICAgQ2hp
bGRyZW5BZmZlY3RlZEJ5SG92ZXJSdWxlc0ZsYWcgPSAxIDw8IDI3LAotCi0gICAgICAgIERpcmVj
dENoaWxkTmVlZHNTdHlsZVJlY2FsY0ZsYWcgPSAxIDw8IDI4LAotICAgICAgICBBZmZlY3RzTmV4
dFNpYmxpbmdFbGVtZW50U3R5bGUgPSAxIDw8IDI5LAotICAgICAgICBTdHlsZUlzQWZmZWN0ZWRC
eVByZXZpb3VzU2libGluZyA9IDEgPDwgMzAsCi0KLSAgICAgICAgU2VsZk9yQW5jZXN0b3JIYXNE
aXJBdXRvRmxhZyA9IDEgPDwgMzEsCi0KLSAgICAgICAgRGVmYXVsdE5vZGVGbGFncyA9IElzUGFy
c2luZ0NoaWxkcmVuRmluaXNoZWRGbGFnCi0gICAgfTsKLQogICAgIGJvb2wgZ2V0RmxhZyhOb2Rl
RmxhZ3MgbWFzaykgY29uc3QgeyByZXR1cm4gbV9ub2RlRmxhZ3MgJiBtYXNrOyB9CiAgICAgdm9p
ZCBzZXRGbGFnKGJvb2wgZiwgTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsgbV9ub2RlRmxhZ3MgPSAo
bV9ub2RlRmxhZ3MgJiB+bWFzaykgfCAoLShpbnQzMl90KWYgJiBtYXNrKTsgfSAKICAgICB2b2lk
IHNldEZsYWcoTm9kZUZsYWdzIG1hc2spIGNvbnN0IHsgbV9ub2RlRmxhZ3MgfD0gbWFzazsgfSAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmlkbAppbmRleCA2Yjc3ZTMzNDU4Mzk0Yzc2NWY0MDZjYWY4MGFlNWZjZmExZGIx
MjMzLi5lNTg5NTQ4ZjZjODM4ZjNjZWZkMjA4ZGE5MTc5MzI5MDdhMGZkYTUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaWRsCkBAIC00NywxMiArNDcsMTIgQEAKICAgICBbU2V0dGVyTWF5VGhyb3dMZWdhY3lFeGNl
cHRpb25dIGF0dHJpYnV0ZSBET01TdHJpbmc/IG5vZGVWYWx1ZTsKIAogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBub2RlVHlwZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUg
Tm9kZT8gcGFyZW50Tm9kZTsKKyAgICBbRE9NSklUXSByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8g
cGFyZW50Tm9kZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUxpc3QgY2hpbGROb2RlczsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZT8gZmlyc3RDaGlsZDsKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgTm9kZT8gbGFzdENoaWxkOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBw
cmV2aW91c1NpYmxpbmc7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IG5leHRTaWJsaW5n
OworICAgIFtET01KSVRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlPyBwcmV2aW91c1NpYmxpbmc7
CisgICAgW0RPTUpJVF0gcmVhZG9ubHkgYXR0cmlidXRlIE5vZGU/IG5leHRTaWJsaW5nOwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudD8gb3duZXJEb2N1bWVudDsKIAogICAgIFtDdXN0
b20sIE1heVRocm93TGVnYWN5RXhjZXB0aW9uXSBOb2RlIGluc2VydEJlZm9yZShbQ3VzdG9tUmV0
dXJuXSBOb2RlIG5ld0NoaWxkLCBOb2RlPyByZWZDaGlsZCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>