<?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>147942</bug_id>
          
          <creation_ts>2015-08-12 11:33:52 -0700</creation_ts>
          <short_desc>Add InspectorInstrumentation builtin object to instrument the code in JS builtins like Promises</short_desc>
          <delta_ts>2015-08-14 15:24:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>bburg</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1116992</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-12 11:33:52 -0700</bug_when>
    <thetext>To provide information to the inspector, JS builtins should have some sort of instrumentation system.
In this patch, we&apos;ll introduce a new private namespace object (like Reflect/Math) @InspectorInstrumentation into the builtin JS.
It gives the instrumentation ability to the builtin JS code in JSC.

Here&apos;s my design.
In @fulfillPromise in Operation.Promise.js,

function fulfillPromise(...)
{
    ...
    @InspectorInstrumentation.promiseFulfilled(promise);
    ...
}

And in InspectorInstrumentationObject.js (builtin JS code),

function promiseFulfilled(promise)
{
    if (!this.isEnabled)
        return;
    this.promiseFulfilledImpl(promise);  // call C++ code / other inspector code
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116997</commentid>
    <comment_count>1</comment_count>
      <attachid>258834</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-12 11:50:06 -0700</bug_when>
    <thetext>Created attachment 258834
Patch

Proof of Concept</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117004</commentid>
    <comment_count>2</comment_count>
      <attachid>258835</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-12 11:59:32 -0700</bug_when>
    <thetext>Created attachment 258835
Patch

Proof of Concept, with fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117012</commentid>
    <comment_count>3</comment_count>
      <attachid>258835</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-12 12:24:16 -0700</bug_when>
    <thetext>Comment on attachment 258835
Patch

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

Looking pretty awesome so far!

&gt; Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp:52
&gt; +    promiseRejected   inspectorInstrumentationObjectPromiseRejected  DontEnum|Function 3

Do these need to be in the table, even if they are defined inside InspectorImplementationObject.js?

&gt; Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp:65
&gt; +    putDirectWithoutTransition(vm, Identifier::fromString(&amp;vm, &quot;isEnabled&quot;), jsBoolean(false));

Is this InspectorInstrumentation object is instantiated once per context, per VM, or per page? Either way is fine, just need to know what objects we would need to find and set isEnabled for. We usually control whether inspector is enabled or not on a per-Page basis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117026</commentid>
    <comment_count>4</comment_count>
      <attachid>258835</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-12 12:50:54 -0700</bug_when>
    <thetext>Comment on attachment 258835
Patch

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

Later, I&apos;ll update the build fixed patch.

&gt;&gt; Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp:52
&gt;&gt; +    promiseRejected   inspectorInstrumentationObjectPromiseRejected  DontEnum|Function 3
&gt; 
&gt; Do these need to be in the table, even if they are defined inside InspectorImplementationObject.js?

Currently yes. InspectorImplementationObject.js just define the code. Picking up the function and set it as the method is the role of this table.
For example, Operations.Promise.js has the several functions which are not used as the methods of some objects (like rejectPromise).

If C++ or JS code becomes so typical, generating code by writing the new script may be nice.

&gt;&gt; Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp:65
&gt;&gt; +    putDirectWithoutTransition(vm, Identifier::fromString(&amp;vm, &quot;isEnabled&quot;), jsBoolean(false));
&gt; 
&gt; Is this InspectorInstrumentation object is instantiated once per context, per VM, or per page? Either way is fine, just need to know what objects we would need to find and set isEnabled for. We usually control whether inspector is enabled or not on a per-Page basis.

Currently, InspectorInstrumentation object is instantiated once per JSGlobalObject (so, window object in WebCore). So, it is per page I think.
And if there&apos;s the iframe that has the different global object, it has the different InspectorInstrumentation object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117027</commentid>
    <comment_count>5</comment_count>
      <attachid>258839</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-12 12:53:30 -0700</bug_when>
    <thetext>Created attachment 258839
Patch

Proof of Concept, with fix, part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117028</commentid>
    <comment_count>6</comment_count>
      <attachid>258835</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-12 12:55:10 -0700</bug_when>
    <thetext>Comment on attachment 258835
Patch

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

&gt; Source/JavaScriptCore/runtime/JSGlobalObject.cpp:510
&gt; +        GlobalPropertyInfo(vm.propertyNames-&gt;builtinNames().InspectorInstrumentationPrivateName(), InspectorInstrumentationObject::create(vm, this, InspectorInstrumentationObject::createStructure(vm, this, m_objectPrototype.get())), DontEnum | DontDelete | ReadOnly),

Here, we create the InspectorImplementation object and inject it into the JSGlobalObject&apos;s property (so it becomes the global variable with the private symbol name.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117134</commentid>
    <comment_count>7</comment_count>
      <attachid>258867</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-12 18:39:55 -0700</bug_when>
    <thetext>Created attachment 258867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117203</commentid>
    <comment_count>8</comment_count>
      <attachid>258885</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-13 00:44:53 -0700</bug_when>
    <thetext>Created attachment 258885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117219</commentid>
    <comment_count>9</comment_count>
      <attachid>258885</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-13 08:05:00 -0700</bug_when>
    <thetext>Comment on attachment 258885
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        This patch adds new private global object, @InspectorInstruments.

typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117269</commentid>
    <comment_count>10</comment_count>
      <attachid>258896</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-13 10:30:04 -0700</bug_when>
    <thetext>Created attachment 258896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117270</commentid>
    <comment_count>11</comment_count>
      <attachid>258885</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-13 10:30:36 -0700</bug_when>
    <thetext>Comment on attachment 258885
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:8
&gt;&gt; +        This patch adds new private global object, @InspectorInstruments.
&gt; 
&gt; typo.

Thank you. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117768</commentid>
    <comment_count>12</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-14 14:24:56 -0700</bug_when>
    <thetext>Inspector parts look good, would like a JSC reviewer to peek as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117788</commentid>
    <comment_count>13</comment_count>
      <attachid>258896</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-08-14 14:58:05 -0700</bug_when>
    <thetext>Comment on attachment 258896
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp:49
&gt; +    debug             inspectorInstrumentationObjectDebug            DontEnum|Function 1

Can we just have log, without debug? They seem to be the same.

&gt; Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp:50
&gt; +    dataLogImpl       inspectorInstrumentationObjectDataLogImpl      DontEnum|Function 1

Let&apos;s call this &quot;log&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117799</commentid>
    <comment_count>14</comment_count>
      <attachid>258896</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-14 15:06:13 -0700</bug_when>
    <thetext>Comment on attachment 258896
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp:49
&gt;&gt; +    debug             inspectorInstrumentationObjectDebug            DontEnum|Function 1
&gt; 
&gt; Can we just have log, without debug? They seem to be the same.

Make sense. I&apos;ll drop this function.

&gt;&gt; Source/JavaScriptCore/runtime/InspectorInstrumentationObject.cpp:50
&gt;&gt; +    dataLogImpl       inspectorInstrumentationObjectDataLogImpl      DontEnum|Function 1
&gt; 
&gt; Let&apos;s call this &quot;log&quot;.

And rename it to the &quot;log&quot; :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117813</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-08-14 15:24:48 -0700</bug_when>
    <thetext>Committed r188497: &lt;http://trac.webkit.org/changeset/188497&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258834</attachid>
            <date>2015-08-12 11:50:06 -0700</date>
            <delta_ts>2015-08-12 11:59:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147942-20150812114950.patch</filename>
            <type>text/plain</type>
            <size>29030</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YjAxZDFiNTU2MDc5NTViZDA0OGU2YjVkMWUwM2MxOTBmOWNhN2JlLi42OTMwNmYyZmY4YzdkNDlm
MGY4ZjUyYTdkN2VkMDE1MTliZmFmZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxNS0wOC0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBZGQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIGJ1aWx0aW4gb2Jq
ZWN0IHRvIGluc3RydW1lbnQgdGhlIGNvZGUgaW4gSlMgYnVpbHRpbnMgbGlrZSBQcm9taXNlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTQyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJ1aWx0aW5zL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5qczogQWRkZWQuCisgICAg
ICAgIChkZWJ1Zyk6CisgICAgICAgIChwcm9taXNlRnVsZmlsbGVkKToKKyAgICAgICAgKHByb21p
c2VSZWplY3RlZCk6CisgICAgICAgICogYnVpbHRpbnMvT3BlcmF0aW9ucy5Qcm9taXNlLmpzOgor
ICAgICAgICAocmVqZWN0UHJvbWlzZSk6CisgICAgICAgIChmdWxmaWxsUHJvbWlzZSk6CisgICAg
ICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0KToKKyAgICAgICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6aW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0RGF0YUxvZ0ltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgor
CiAyMDE1LTA4LTExICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIFZNOjpyZWxlYXNlRXhlY3V0YWJsZU1lbW9yeQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDIzZTJiYmMzYjIwYjBlZjM3NmQwNzgwNDk1ZGNhZmM0ZDBhNDU2
M2MuLjdkODBlMjMzZDcyOGE2ZDY2MjI0ZDE5YWMxZGE5YjIwYmJlZDBjYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ4Myw2ICs0ODMsNyBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfUlVOVElNRV9TT1VSQ0VTCiAgICAgcnVudGltZS9JbmRleGluZ1R5cGUuY3BwCiAgICAg
cnVudGltZS9JbmZlcnJlZFZhbHVlLmNwcAogICAgIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHAKKyAgICBydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAKICAg
ICBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3Iu
Y3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzNSw2ICs2
MzYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfTFVUX0ZJTEVTCiAgICAgcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuY3BwCiAgICAgcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUv
RXJyb3JQcm90b3R5cGUuY3BwCisgICAgcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3QuY3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKICAgICBy
dW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAKICAgICBydW50aW1lL0ludGxEYXRlVGlt
ZUZvcm1hdENvbnN0cnVjdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBkMDcxMjY1MmEwOWIxYzhhZjUxZGEyZTY2ZDlhMTg0YjMwNTlhZTU3Li4x
Y2IyZDVjYmEzYmQzNWUyMDlmOWQyYzdiYjQ2N2IyYjk2ZjdmYTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDEsNiArNDEsNyBAQCBhbGwgOiBcCiAg
ICAgRGF0ZUNvbnN0cnVjdG9yLmx1dC5oIFwKICAgICBEYXRlUHJvdG90eXBlLmx1dC5oIFwKICAg
ICBFcnJvclByb3RvdHlwZS5sdXQuaCBcCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0Lmx1dC5oIFwKICAgICBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaCBcCiAgICAgSW50
bENvbGxhdG9yUHJvdG90eXBlLmx1dC5oIFwKICAgICBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1
Y3Rvci5sdXQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCBj
Mzk4NDc0NTU3MWQwMjQzOTU4NmFjNTA1ODYzMWZjZWMwMmJkZDQ0Li5iMDQ0MmMzNmQzYjA5Yzg5
OGM0ZWU3MDRiYzA1OTdiYWQ5M2NhMTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oKQEAgLTczNyw2ICs3MzcsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxJbmRleGluZ1R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxJbmZlcnJlZFZhbHVlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxydW50aW1lXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24uY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3IuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3JDb25zdHJ1
Y3Rvci5jcHAiIC8+CkBAIC05MDcsNiArOTA4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbmplY3RlZFNjcmlwdFNvdXJjZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZv
cm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVycy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3Jt
QXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3QubHV0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9y
bUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVmlld1By
b3RvdHlwZS5sdXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0dsb2JhbE9iamVjdC5sdXQuaCIgLz4KQEAgLTE1NTgsNiArMTU2MCw3IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludDMyQXJyYXkuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW50OEFycmF5LmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24uaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGxDb2xsYXRv
ci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3JD
b25zdHJ1Y3Rvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRs
Q29sbGF0b3JQcm90b3R5cGUuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBlNjFkNDc2ZWVhYzAwNTRlYjg1NmU2MjhlMmViNDQz
MGM5MDVjNWRlLi45NGI1YjYwMmQ4NGNlMzY2ZTI2MTAzOTdlOTRmN2E0Njc4OGY0ZmM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02
MzMsNiArNjMzLDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW5pdGlh
bGl6ZVRocmVhZGluZy5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAiPgorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0
ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1l
XEludGVybmFsRnVuY3Rpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgpAQCAtMjcyMyw2ICsyNzI2LDkgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcSW5pdGlhbGl6ZVRocmVhZGluZy5oIj4KICAgICAgIDxGaWx0ZXI+
cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCI+CisgICAgICA8
RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW50ZXJuYWxGdW5jdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+
cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMzE3MSw2ICszMTc3LDkgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBs
YXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0
b3JGcm9udGVuZERpc3BhdGNoZXJzLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkIFNvdXJjZXM8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0Lmgi
PgorICAgICAgPEZpbHRlcj5EZXJpdmVkIFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNw
ZWN0b3JQcm90b2NvbE9iamVjdHMuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWQgU291cmNlczwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBkODVkN2FmYjVmMDg3ODBiNzMyODFkNmRiM2U5OThjNzg0NjM3MTdlLi44MmJjY2JjNmYzNzcz
YjMzODdiOWUxOWZiZGYyM2VkMjhmMjU3NWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTY5Miw3ICsxNjkyLDEwIEBACiAJCUUxOEUzQTU5MERGOTI3OEMwMEQ5MEIzNCAvKiBW
TS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThF
M0E1NzBERjkyNzhDMDBEOTBCMzQgLyogVk0uY3BwICovOyB9OwogCQlFMzM2MzdBNTFCNjMyMjAy
MDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM2MzdBMzFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9i
amVjdC5jcHAgKi87IH07CiAJCUUzMzYzN0E2MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2Jq
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM2
MzdBNDFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzM0IzRTI2MUI3QUJENzUwMDQ4REIy
RSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzNCM0UyNTFCN0FCRDc1MDA0OERCMkUg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oICovOyB9OwogCQlFMzU0NjIy
QjFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1NDYyMkExQjYwNjVEMTAwNTQ1Mzg2IC8q
IENvbnN0cnVjdEFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzNUUwMzVEMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QuY3BwICovOyB9OworCQlFMzVFMDM2MDFCN0FCNDNFMDA3M0FEMkEgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVFMDM1RTFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTNFRjg4NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTNFRjg4NzIxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
Y3BwICovOyB9OwogCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2QjEy
RUYyOTNFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgKi87IH07CkBAIC0zNTE2LDcgKzM1MTksMTEgQEAK
IAkJRTE4RTNBNTcwREY5Mjc4QzAwRDkwQjM0IC8qIFZNLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBWTS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcu
Y3BwOyB9OwogCQlFMzM2MzdBMzFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWZsZWN0T2JqZWN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMzNjM3QTQxQjYzMjIwMjAwRUUwODQwIC8q
IFJlZmxlY3RPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmbGVj
dE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzNCM0UyNTFCN0FCRDc1
MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qu
bHV0Lmg7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTQ2MjJBMUI2MDY1RDEwMDU0NTM4NiAvKiBDb25z
dHJ1Y3RBYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnN0cnVj
dEFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM1RTAzNUQxQjdBQjQz
RTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVFMDM1RTFCN0FCNDNFMDA3
M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVFMDM2MTFCN0FCNDg1MDA3M0FEMkEgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZh
c2NyaXB0OyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGODg3MjFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE0OTEyRUYyNjFBMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQzNDIsNiArNDM0OSw3IEBACiAJCQkJQTUzMjQzODIxODU2ODMxNzAwMkVENjkyIC8q
IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oICovLAogCQkJCUE1MzI0MzgzMTg1NjgzMTcw
MDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmNwcCAqLywKIAkJCQlBNTMy
NDM4NDE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oICov
LAorCQkJCUUzM0IzRTI1MUI3QUJENzUwMDQ4REIyRSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3QubHV0LmggKi8sCiAJCQkJQTUzMjQzODUxODU2ODMxNzAwMkVENjkyIC8qIEluc3Bl
Y3RvclByb3RvY29sT2JqZWN0cy5jcHAgKi8sCiAJCQkJQTUzMjQzODYxODU2ODMxNzAwMkVENjky
IC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oICovLAogCQkJCUExODE5M0UxMUI0RTBDREIw
MEZDMTAyOSAvKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaCAqLywKQEAgLTQ1ODcsNiAr
NDU5NSw4IEBACiAJCQkJMEZGOEJERTkxQUQ0Q0Y3MTAwREZFODg0IC8qIEluZmVycmVkVmFsdWUu
aCAqLywKIAkJCQlFMTc4NjM2QzBEOUJFRUMzMDBENzRFNzUgLyogSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHAgKi8sCiAJCQkJRTE3ODYzM0YwRDlCRUMwMDAwRDc0RTc1IC8qIEluaXRpYWxpemVUaHJl
YWRpbmcuaCAqLywKKwkJCQlFMzVFMDM1RDFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0LmNwcCAqLywKKwkJCQlFMzVFMDM1RTFCN0FCNDNFMDA3M0FEMkEg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi8sCiAJCQkJQTdBOEFGMkIxN0FE
QjVGMzAwNUFCMTc0IC8qIEludDhBcnJheS5oICovLAogCQkJCUE3QThBRjJDMTdBREI1RjMwMDVB
QjE3NCAvKiBJbnQxNkFycmF5LmggKi8sCiAJCQkJQTdBOEFGMkQxN0FEQjVGMzAwNUFCMTc0IC8q
IEludDMyQXJyYXkuaCAqLywKQEAgLTU2OTMsNiArNTcwMyw3IEBACiAJCQkJQTc1RUU5QjAxOEFB
QjdFMjAwQUFEMDQzIC8qIEJ1aWx0aW5OYW1lcy5oICovLAogCQkJCUE3QTk3OUM0MThCRThEOUUw
MDJDMzczMyAvKiBGdW5jdGlvbi5wcm90b3R5cGUuanMgKi8sCiAJCQkJN0NGOUJDNUExQjY1RDlB
MzAwOURCMUVGIC8qIEdsb2JhbE9iamVjdC5qcyAqLywKKwkJCQlFMzVFMDM2MTFCN0FCNDg1MDA3
M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzICovLAogCQkJCTdDRjlC
QzVCMUI2NUQ5QTMwMDlEQjFFRiAvKiBJdGVyYXRvci5wcm90b3R5cGUuanMgKi8sCiAJCQkJN0NG
OUJDNUMxQjY1RDlCMTAwOURCMUVGIC8qIE9iamVjdENvbnN0cnVjdG9yLmpzICovLAogCQkJCTdD
RjlCQzVEMUI2NUQ5QjEwMDlEQjFFRiAvKiBPcGVyYXRpb25zLlByb21pc2UuanMgKi8sCkBAIC02
MDQwLDYgKzYwNTEsNyBAQAogCQkJCTBGMzAwQjc4MThBQjA1MTEwMEE2RDcyRSAvKiBERkdOb2Rl
T3JpZ2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkE1ODFCQzE1MEU5NTMwMDBCOUEyRDkgLyog
REZHTm9kZVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RUM5REQwMTMyOERGODIwMDJCMkFE
NyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzNCM0UyNjFCN0FCRDc1
MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTdEODlDRkUxN0EwQjhDQzAwNzczQUQ4IC8qIERGR09TUkF2YWlsYWJpbGl0
eUFuYWx5c2lzUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDgyRTU3MTQxREFGMTAwMDE3
OUM5NCAvKiBERkdPU1JFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEOEEzMjYxN0Q1MUY1
NzAwQ0EyQzQwIC8qIERGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmggaW4gSGVhZGVycyAq
LywKQEAgLTYzNTEsNiArNjM2Myw3IEBACiAJCQkJQTU3RDIzRUExODkxQjA3NzAwMzFDN0ZBIC8q
IEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3NTZG
QzkwRTIwMzFCMjAwREU3RDEyIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTEwMDdDMTE4N0NDM0M2MDBCMzg4NzkgLyogSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzVFMDM2MDFCN0FCNDNFMDA3
M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1lQWdl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDNGQTJBMTg4RjEwNTkwMDExMEYxNCAvKiBKU0ds
b2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTEzRTVD
MDE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3QuaCBpbiBIZWFkZXJzICov
LApAQCAtNzM2Nyw2ICs3MzgwLDcgQEAKIAkJCQk3MEVDQTYwNzFBRkRCRUEyMDA0NDk3MzkgLyog
VGVtcGxhdGVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIzNUJFQjE3MTc4RTcz
MDA2OTBDN0YgLyogREZHT1NSRXhpdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMDk3
OTIxNDZBNkY3MzAwQ0YyNDQyIC8qIERGR09TUkV4aXRDb21waWxlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5Nzc2MTQ2OTQzQjAwMENGMjQ0
MiAvKiBERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMw
OTc3MjE0NjkzQUY5MDBDRjI0NDIgLyogREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzBFQzBFQzIxQUEwRDdEQTAwQjZBQUZBIC8qIEpTU3RyaW5nSXRlcmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NWVmNWYyYjBhZjdkZTcwN2M2NjJlMzljMmI0MjYwM2I4MjQ2MDRhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdC5qcwpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworZnVuY3Rpb24gZGVidWcodmFsdWUpCit7CisgICAgInVz
ZSBzdHJpY3QiOworCisgICAgaWYgKCF0aGlzLmlzRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgdGhpcy5kYXRhTG9nSW1wbCh2YWx1ZSk7Cit9CisKK2Z1bmN0aW9uIHByb21pc2VGdWxm
aWxsZWQocHJvbWlzZSwgdmFsdWUsIHJlYWN0aW9ucykKK3sKKyAgICAidXNlIHN0cmljdCI7CisK
KyAgICBpZiAoIXRoaXMuaXNFbmFibGVkKQorICAgICAgICByZXR1cm47Cit9CisKK2Z1bmN0aW9u
IHByb21pc2VSZWplY3RlZChwcm9taXNlLCByZWFzb24sIHJlYWN0aW9ucykKK3sKKyAgICAidXNl
IHN0cmljdCI7CisKKyAgICBpZiAoIXRoaXMuaXNFbmFibGVkKQorICAgICAgICByZXR1cm47Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT3BlcmF0aW9ucy5Q
cm9taXNlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL09wZXJhdGlvbnMuUHJv
bWlzZS5qcwppbmRleCA4MGM1N2FiMGI2NTk0MWUxOTI5ZjQ3YmEzNWJkNzc1ZjU4MmRkZDBiLi42
NmY5YzI1MTUzNTljN2E1MTI1NGY5MzdmYzdmNTFjY2QxMzEyNDFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT3BlcmF0aW9ucy5Qcm9taXNlLmpzCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PcGVyYXRpb25zLlByb21pc2UuanMKQEAgLTEw
Miw2ICsxMDIsOSBAQCBmdW5jdGlvbiByZWplY3RQcm9taXNlKHByb21pc2UsIHJlYXNvbikKICAg
ICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKICAgICBwcm9t
aXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkOwogICAgIHByb21pc2UuQHBy
b21pc2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0ZWQ7CisKKyAgICBASW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLnByb21pc2VSZWplY3RlZChwcm9taXNlLCByZWFzb24sIHJlYWN0aW9ucyk7CisKICAg
ICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCByZWFzb24pOwogfQogCkBAIC0x
MTQsNiArMTE3LDkgQEAgZnVuY3Rpb24gZnVsZmlsbFByb21pc2UocHJvbWlzZSwgdmFsdWUpCiAg
ICAgcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7CiAgICAgcHJv
bWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKICAgICBwcm9taXNlLkBw
cm9taXNlU3RhdGUgPSBAcHJvbWlzZUZ1bGZpbGxlZDsKKworICAgIEBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24ucHJvbWlzZUZ1bGZpbGxlZChwcm9taXNlLCB2YWx1ZSwgcmVhY3Rpb25zKTsKKwog
ICAgIEB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIHZhbHVlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5k
ZXggNjQ1MWZmMzQ0OTBmYmI2NmJkMmFmMjFkYjc2MGZhNWU3ZDJiNWIxNC4uYWE1NzIwMzRjNGI5
YTVmZjdkNTQzZmM4OTZiOTM3ZGU3NzlkZGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0yOTUsMTIgKzI5NSwxMSBAQAog
ICAgIG1hY3JvKGhhbmRsZXIpIFwKICAgICBtYWNybyhwcm9taXNlU3RhdGUpIFwKICAgICBtYWNy
byhwcm9taXNlUGVuZGluZykgXAotICAgIG1hY3JvKHByb21pc2VGdWxmaWxsZWQpIFwKLSAgICBt
YWNybyhwcm9taXNlUmVqZWN0ZWQpIFwKICAgICBtYWNybyhwcm9taXNlRnVsZmlsbFJlYWN0aW9u
cykgXAogICAgIG1hY3JvKHByb21pc2VSZWplY3RSZWFjdGlvbnMpIFwKICAgICBtYWNybyhwcm9t
aXNlUmVzdWx0KSBcCiAgICAgbWFjcm8oY2FwYWJpbGl0aWVzKSBcCisgICAgbWFjcm8oSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKSBcCiAKIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjVhNTNiYzIyYjZiZjcwNTY4MzY0MDAzYWQ3
OGMxOTIyOWRkMTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcApAQCAtMCwwICsxLDg1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oIgor
CisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIkxvb2t1cC5oIgorI2luY2x1ZGUg
PHd0Zi9EYXRhTG9nLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdEludGVybmFsRGF0YUxvZyhF
eGVjU3RhdGUqKTsKKworfQorCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0Lmx1dC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworU1RBVElDX0FTU0VSVF9JU19UUklWSUFM
TFlfREVTVFJVQ1RJQkxFKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdCk7CisKK2NvbnN0
IENsYXNzSW5mbyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OnNfaW5mbyA9IHsgIklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbiIsICZCYXNlOjpzX2luZm8sICZpbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25PYmplY3RUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25PYmplY3QpIH07CisKKy8qIFNvdXJjZSBmb3IgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uT2JqZWN0Lmx1dC5oCitAYmVnaW4gaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0VGFi
bGUKKyAgICBkZWJ1ZyAgICAgICAgICAgICBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RE
ZWJ1ZyAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKKyAgICBkYXRhTG9nSW1wbCAgICAg
ICBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3REYXRhTG9nSW1wbCAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uIDEKKyAgICBwcm9taXNlRnVsZmlsbGVkICBpbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3RQcm9taXNlRnVsZmlsbGVkIERvbnRFbnVtfEZ1bmN0aW9uIDMKKyAgICBwcm9taXNl
UmVqZWN0ZWQgICBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RQcm9taXNlUmVqZWN0ZWQg
IERvbnRFbnVtfEZ1bmN0aW9uIDMKK0BlbmQKKyovCisKK0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bk9iamVjdDo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpCit7Cit9
CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7
CisgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImlzRW5hYmxlZCIpLCBqc0Jv
b2xlYW4oZmFsc2UpKTsKK30KKworYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK3sKKyAgICByZXR1
cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEJhc2U+KGV4ZWMsIGluc3BlY3Rvckluc3RydW1lbnRh
dGlvbk9iamVjdFRhYmxlLCBqc0Nhc3Q8SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Kj4o
b2JqZWN0KSwgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdERhdGFMb2dJbXBsKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVlIHRhcmdldCA9
IGV4ZWMtPmFyZ3VtZW50KDApOworICAgIFN0cmluZyB2YWx1ZSA9IHRhcmdldC50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIGRhdGFMb2codmFs
dWUsICJcbiIpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lOTUxZmI0OTZmMzlhM2JiYTY3M2IyMDAyMzhhNTY1NjcyNGM0YTYwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0X2gKKyNkZWZpbmUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0X2gKKworI2luY2x1
ZGUgIkpTT2JqZWN0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7Citwcml2YXRlOgor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdChWTSYsIFN0cnVjdHVyZSopOworCitw
dWJsaWM6CisgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CisgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Q7CisKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICB7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdCogb2JqZWN0ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Pih2bS5oZWFwKSkgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpOworICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9u
KHZtLCBnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gb2JqZWN0OworICAgIH0KKworICAg
IERFQ0xBUkVfSU5GTzsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
OworICAgIH0KKworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCos
IEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisKK3Byb3RlY3RlZDoK
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcAppbmRleCBjZWU5YmJkOTQwNDQ5MTI4OTQzODI3MWQwMDQ0MTdjMjI5YWQwNDIzLi4xNDlk
NDYyZDE3ZTY1NTZiZmY4MWJjOGY5MGQ0Zjk2NjYxMDUxNmFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC01Miw2ICs1Miw3IEBA
CiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIu
aCIKICNpbmNsdWRlICJIZWFwSXRlcmF0aW9uU2NvcGUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25PYmplY3QuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIkl0ZXJhdG9yUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNBUElXcmFwcGVyT2JqZWN0Lmgi
CkBAIC00OTIsOCArNDkzLDggQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN5bWJvbEl0
ZXJhdG9yUHJpdmF0ZU5hbWUoKSwgU3ltYm9sOjpjcmVhdGUodm0sIHN0YXRpY19jYXN0PFN5bWJv
bEltcGwmPigqdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wuaW1wbCgpKSksIERvbnRF
bnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZv
KHZtLnByb3BlcnR5TmFtZXMtPlByb21pc2VQcml2YXRlTmFtZSwgbV9wcm9taXNlQ29uc3RydWN0
b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VQZW5kaW5nUHJpdmF0ZU5h
bWUsIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6UGVu
ZGluZykpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlRnVsZmlsbGVkUHJpdmF0ZU5h
bWUsIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6RnVs
ZmlsbGVkKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VSZWplY3RlZFByaXZhdGVO
YW1lLCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNQcm9taXNlOjpTdGF0dXM6OlJl
amVjdGVkKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VG
dWxmaWxsZWRQcml2YXRlTmFtZSwganNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTUHJv
bWlzZTo6U3RhdHVzOjpGdWxmaWxsZWQpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkucHJvbWlzZVJlamVjdGVkUHJpdmF0ZU5hbWUsIGpzTnVtYmVyKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6UmVqZWN0ZWQpKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudG9MZW5ndGhQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVu
Y1RvTGVuZ3RoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50b0ludGVn
ZXJQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1RvSW50ZWdlciwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNPYmplY3RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpj
cmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdElzT2JqZWN0Q29kZUdlbmVyYXRv
cih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCkBAIC01MDYs
NiArNTA3LDcgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNyZWF0ZVJlc29sdmluZ0Z1
bmN0aW9uc1ByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2
bSwgb3BlcmF0aW9uc1Byb21pc2VDcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnNDb2RlR2VuZXJhdG9y
KHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21p
c2VSZWFjdGlvbkpvYlByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5j
dGlvbih2bSwgb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVhY3Rpb25Kb2JDb2RlR2VuZXJhdG9y
KHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21p
c2VSZXNvbHZlVGhlbmFibGVKb2JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWls
dGluRnVuY3Rpb24odm0sIG9wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpv
YkNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uUHJpdmF0ZU5hbWUoKSwgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpjcmVhdGUodm0sIHRoaXMsIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlw
ZS5nZXQoKSkpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgfTsKICAg
ICBhZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGlj
R2xvYmFscykpOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258835</attachid>
            <date>2015-08-12 11:59:32 -0700</date>
            <delta_ts>2015-08-12 12:53:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147942-20150812115916.patch</filename>
            <type>text/plain</type>
            <size>29026</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YjAxZDFiNTU2MDc5NTViZDA0OGU2YjVkMWUwM2MxOTBmOWNhN2JlLi42OTMwNmYyZmY4YzdkNDlm
MGY4ZjUyYTdkN2VkMDE1MTliZmFmZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxNS0wOC0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBZGQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIGJ1aWx0aW4gb2Jq
ZWN0IHRvIGluc3RydW1lbnQgdGhlIGNvZGUgaW4gSlMgYnVpbHRpbnMgbGlrZSBQcm9taXNlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTQyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJ1aWx0aW5zL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5qczogQWRkZWQuCisgICAg
ICAgIChkZWJ1Zyk6CisgICAgICAgIChwcm9taXNlRnVsZmlsbGVkKToKKyAgICAgICAgKHByb21p
c2VSZWplY3RlZCk6CisgICAgICAgICogYnVpbHRpbnMvT3BlcmF0aW9ucy5Qcm9taXNlLmpzOgor
ICAgICAgICAocmVqZWN0UHJvbWlzZSk6CisgICAgICAgIChmdWxmaWxsUHJvbWlzZSk6CisgICAg
ICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0KToKKyAgICAgICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6aW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0RGF0YUxvZ0ltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgor
CiAyMDE1LTA4LTExICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIFZNOjpyZWxlYXNlRXhlY3V0YWJsZU1lbW9yeQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDIzZTJiYmMzYjIwYjBlZjM3NmQwNzgwNDk1ZGNhZmM0ZDBhNDU2
M2MuLjdkODBlMjMzZDcyOGE2ZDY2MjI0ZDE5YWMxZGE5YjIwYmJlZDBjYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ4Myw2ICs0ODMsNyBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfUlVOVElNRV9TT1VSQ0VTCiAgICAgcnVudGltZS9JbmRleGluZ1R5cGUuY3BwCiAgICAg
cnVudGltZS9JbmZlcnJlZFZhbHVlLmNwcAogICAgIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHAKKyAgICBydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAKICAg
ICBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3Iu
Y3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzNSw2ICs2
MzYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfTFVUX0ZJTEVTCiAgICAgcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuY3BwCiAgICAgcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUv
RXJyb3JQcm90b3R5cGUuY3BwCisgICAgcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3QuY3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKICAgICBy
dW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAKICAgICBydW50aW1lL0ludGxEYXRlVGlt
ZUZvcm1hdENvbnN0cnVjdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBkMDcxMjY1MmEwOWIxYzhhZjUxZGEyZTY2ZDlhMTg0YjMwNTlhZTU3Li4x
Y2IyZDVjYmEzYmQzNWUyMDlmOWQyYzdiYjQ2N2IyYjk2ZjdmYTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDEsNiArNDEsNyBAQCBhbGwgOiBcCiAg
ICAgRGF0ZUNvbnN0cnVjdG9yLmx1dC5oIFwKICAgICBEYXRlUHJvdG90eXBlLmx1dC5oIFwKICAg
ICBFcnJvclByb3RvdHlwZS5sdXQuaCBcCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0Lmx1dC5oIFwKICAgICBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaCBcCiAgICAgSW50
bENvbGxhdG9yUHJvdG90eXBlLmx1dC5oIFwKICAgICBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1
Y3Rvci5sdXQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCBj
Mzk4NDc0NTU3MWQwMjQzOTU4NmFjNTA1ODYzMWZjZWMwMmJkZDQ0Li5iMDQ0MmMzNmQzYjA5Yzg5
OGM0ZWU3MDRiYzA1OTdiYWQ5M2NhMTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oKQEAgLTczNyw2ICs3MzcsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxJbmRleGluZ1R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxJbmZlcnJlZFZhbHVlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxydW50aW1lXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24uY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3IuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3JDb25zdHJ1
Y3Rvci5jcHAiIC8+CkBAIC05MDcsNiArOTA4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbmplY3RlZFNjcmlwdFNvdXJjZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZv
cm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVycy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3Jt
QXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3QubHV0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9y
bUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVmlld1By
b3RvdHlwZS5sdXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0dsb2JhbE9iamVjdC5sdXQuaCIgLz4KQEAgLTE1NTgsNiArMTU2MCw3IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludDMyQXJyYXkuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW50OEFycmF5LmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24uaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGxDb2xsYXRv
ci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3JD
b25zdHJ1Y3Rvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRs
Q29sbGF0b3JQcm90b3R5cGUuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBlNjFkNDc2ZWVhYzAwNTRlYjg1NmU2MjhlMmViNDQz
MGM5MDVjNWRlLi45NGI1YjYwMmQ4NGNlMzY2ZTI2MTAzOTdlOTRmN2E0Njc4OGY0ZmM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02
MzMsNiArNjMzLDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW5pdGlh
bGl6ZVRocmVhZGluZy5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAiPgorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0
ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1l
XEludGVybmFsRnVuY3Rpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgpAQCAtMjcyMyw2ICsyNzI2LDkgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcSW5pdGlhbGl6ZVRocmVhZGluZy5oIj4KICAgICAgIDxGaWx0ZXI+
cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCI+CisgICAgICA8
RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW50ZXJuYWxGdW5jdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+
cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMzE3MSw2ICszMTc3LDkgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBs
YXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0
b3JGcm9udGVuZERpc3BhdGNoZXJzLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkIFNvdXJjZXM8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0Lmgi
PgorICAgICAgPEZpbHRlcj5EZXJpdmVkIFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNw
ZWN0b3JQcm90b2NvbE9iamVjdHMuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWQgU291cmNlczwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBkODVkN2FmYjVmMDg3ODBiNzMyODFkNmRiM2U5OThjNzg0NjM3MTdlLi44MmJjY2JjNmYzNzcz
YjMzODdiOWUxOWZiZGYyM2VkMjhmMjU3NWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTY5Miw3ICsxNjkyLDEwIEBACiAJCUUxOEUzQTU5MERGOTI3OEMwMEQ5MEIzNCAvKiBW
TS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThF
M0E1NzBERjkyNzhDMDBEOTBCMzQgLyogVk0uY3BwICovOyB9OwogCQlFMzM2MzdBNTFCNjMyMjAy
MDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM2MzdBMzFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9i
amVjdC5jcHAgKi87IH07CiAJCUUzMzYzN0E2MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2Jq
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM2
MzdBNDFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzM0IzRTI2MUI3QUJENzUwMDQ4REIy
RSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzNCM0UyNTFCN0FCRDc1MDA0OERCMkUg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oICovOyB9OwogCQlFMzU0NjIy
QjFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1NDYyMkExQjYwNjVEMTAwNTQ1Mzg2IC8q
IENvbnN0cnVjdEFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzNUUwMzVEMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QuY3BwICovOyB9OworCQlFMzVFMDM2MDFCN0FCNDNFMDA3M0FEMkEgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVFMDM1RTFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTNFRjg4NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTNFRjg4NzIxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
Y3BwICovOyB9OwogCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2QjEy
RUYyOTNFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgKi87IH07CkBAIC0zNTE2LDcgKzM1MTksMTEgQEAK
IAkJRTE4RTNBNTcwREY5Mjc4QzAwRDkwQjM0IC8qIFZNLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBWTS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcu
Y3BwOyB9OwogCQlFMzM2MzdBMzFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWZsZWN0T2JqZWN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMzNjM3QTQxQjYzMjIwMjAwRUUwODQwIC8q
IFJlZmxlY3RPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmbGVj
dE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzNCM0UyNTFCN0FCRDc1
MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qu
bHV0Lmg7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTQ2MjJBMUI2MDY1RDEwMDU0NTM4NiAvKiBDb25z
dHJ1Y3RBYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnN0cnVj
dEFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM1RTAzNUQxQjdBQjQz
RTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVFMDM1RTFCN0FCNDNFMDA3
M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVFMDM2MTFCN0FCNDg1MDA3M0FEMkEgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZh
c2NyaXB0OyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGODg3MjFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE0OTEyRUYyNjFBMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQzNDIsNiArNDM0OSw3IEBACiAJCQkJQTUzMjQzODIxODU2ODMxNzAwMkVENjkyIC8q
IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oICovLAogCQkJCUE1MzI0MzgzMTg1NjgzMTcw
MDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmNwcCAqLywKIAkJCQlBNTMy
NDM4NDE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oICov
LAorCQkJCUUzM0IzRTI1MUI3QUJENzUwMDQ4REIyRSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3QubHV0LmggKi8sCiAJCQkJQTUzMjQzODUxODU2ODMxNzAwMkVENjkyIC8qIEluc3Bl
Y3RvclByb3RvY29sT2JqZWN0cy5jcHAgKi8sCiAJCQkJQTUzMjQzODYxODU2ODMxNzAwMkVENjky
IC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oICovLAogCQkJCUExODE5M0UxMUI0RTBDREIw
MEZDMTAyOSAvKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaCAqLywKQEAgLTQ1ODcsNiAr
NDU5NSw4IEBACiAJCQkJMEZGOEJERTkxQUQ0Q0Y3MTAwREZFODg0IC8qIEluZmVycmVkVmFsdWUu
aCAqLywKIAkJCQlFMTc4NjM2QzBEOUJFRUMzMDBENzRFNzUgLyogSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHAgKi8sCiAJCQkJRTE3ODYzM0YwRDlCRUMwMDAwRDc0RTc1IC8qIEluaXRpYWxpemVUaHJl
YWRpbmcuaCAqLywKKwkJCQlFMzVFMDM1RDFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0LmNwcCAqLywKKwkJCQlFMzVFMDM1RTFCN0FCNDNFMDA3M0FEMkEg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi8sCiAJCQkJQTdBOEFGMkIxN0FE
QjVGMzAwNUFCMTc0IC8qIEludDhBcnJheS5oICovLAogCQkJCUE3QThBRjJDMTdBREI1RjMwMDVB
QjE3NCAvKiBJbnQxNkFycmF5LmggKi8sCiAJCQkJQTdBOEFGMkQxN0FEQjVGMzAwNUFCMTc0IC8q
IEludDMyQXJyYXkuaCAqLywKQEAgLTU2OTMsNiArNTcwMyw3IEBACiAJCQkJQTc1RUU5QjAxOEFB
QjdFMjAwQUFEMDQzIC8qIEJ1aWx0aW5OYW1lcy5oICovLAogCQkJCUE3QTk3OUM0MThCRThEOUUw
MDJDMzczMyAvKiBGdW5jdGlvbi5wcm90b3R5cGUuanMgKi8sCiAJCQkJN0NGOUJDNUExQjY1RDlB
MzAwOURCMUVGIC8qIEdsb2JhbE9iamVjdC5qcyAqLywKKwkJCQlFMzVFMDM2MTFCN0FCNDg1MDA3
M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzICovLAogCQkJCTdDRjlC
QzVCMUI2NUQ5QTMwMDlEQjFFRiAvKiBJdGVyYXRvci5wcm90b3R5cGUuanMgKi8sCiAJCQkJN0NG
OUJDNUMxQjY1RDlCMTAwOURCMUVGIC8qIE9iamVjdENvbnN0cnVjdG9yLmpzICovLAogCQkJCTdD
RjlCQzVEMUI2NUQ5QjEwMDlEQjFFRiAvKiBPcGVyYXRpb25zLlByb21pc2UuanMgKi8sCkBAIC02
MDQwLDYgKzYwNTEsNyBAQAogCQkJCTBGMzAwQjc4MThBQjA1MTEwMEE2RDcyRSAvKiBERkdOb2Rl
T3JpZ2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkE1ODFCQzE1MEU5NTMwMDBCOUEyRDkgLyog
REZHTm9kZVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RUM5REQwMTMyOERGODIwMDJCMkFE
NyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzNCM0UyNjFCN0FCRDc1
MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTdEODlDRkUxN0EwQjhDQzAwNzczQUQ4IC8qIERGR09TUkF2YWlsYWJpbGl0
eUFuYWx5c2lzUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDgyRTU3MTQxREFGMTAwMDE3
OUM5NCAvKiBERkdPU1JFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEOEEzMjYxN0Q1MUY1
NzAwQ0EyQzQwIC8qIERGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmggaW4gSGVhZGVycyAq
LywKQEAgLTYzNTEsNiArNjM2Myw3IEBACiAJCQkJQTU3RDIzRUExODkxQjA3NzAwMzFDN0ZBIC8q
IEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3NTZG
QzkwRTIwMzFCMjAwREU3RDEyIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTEwMDdDMTE4N0NDM0M2MDBCMzg4NzkgLyogSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzVFMDM2MDFCN0FCNDNFMDA3
M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1lQWdl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDNGQTJBMTg4RjEwNTkwMDExMEYxNCAvKiBKU0ds
b2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTEzRTVD
MDE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3QuaCBpbiBIZWFkZXJzICov
LApAQCAtNzM2Nyw2ICs3MzgwLDcgQEAKIAkJCQk3MEVDQTYwNzFBRkRCRUEyMDA0NDk3MzkgLyog
VGVtcGxhdGVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIzNUJFQjE3MTc4RTcz
MDA2OTBDN0YgLyogREZHT1NSRXhpdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMDk3
OTIxNDZBNkY3MzAwQ0YyNDQyIC8qIERGR09TUkV4aXRDb21waWxlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5Nzc2MTQ2OTQzQjAwMENGMjQ0
MiAvKiBERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMw
OTc3MjE0NjkzQUY5MDBDRjI0NDIgLyogREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzBFQzBFQzIxQUEwRDdEQTAwQjZBQUZBIC8qIEpTU3RyaW5nSXRlcmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NWVmNWYyYjBhZjdkZTcwN2M2NjJlMzljMmI0MjYwM2I4MjQ2MDRhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdC5qcwpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworZnVuY3Rpb24gZGVidWcodmFsdWUpCit7CisgICAgInVz
ZSBzdHJpY3QiOworCisgICAgaWYgKCF0aGlzLmlzRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgdGhpcy5kYXRhTG9nSW1wbCh2YWx1ZSk7Cit9CisKK2Z1bmN0aW9uIHByb21pc2VGdWxm
aWxsZWQocHJvbWlzZSwgdmFsdWUsIHJlYWN0aW9ucykKK3sKKyAgICAidXNlIHN0cmljdCI7CisK
KyAgICBpZiAoIXRoaXMuaXNFbmFibGVkKQorICAgICAgICByZXR1cm47Cit9CisKK2Z1bmN0aW9u
IHByb21pc2VSZWplY3RlZChwcm9taXNlLCByZWFzb24sIHJlYWN0aW9ucykKK3sKKyAgICAidXNl
IHN0cmljdCI7CisKKyAgICBpZiAoIXRoaXMuaXNFbmFibGVkKQorICAgICAgICByZXR1cm47Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT3BlcmF0aW9ucy5Q
cm9taXNlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL09wZXJhdGlvbnMuUHJv
bWlzZS5qcwppbmRleCA4MGM1N2FiMGI2NTk0MWUxOTI5ZjQ3YmEzNWJkNzc1ZjU4MmRkZDBiLi42
NmY5YzI1MTUzNTljN2E1MTI1NGY5MzdmYzdmNTFjY2QxMzEyNDFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT3BlcmF0aW9ucy5Qcm9taXNlLmpzCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PcGVyYXRpb25zLlByb21pc2UuanMKQEAgLTEw
Miw2ICsxMDIsOSBAQCBmdW5jdGlvbiByZWplY3RQcm9taXNlKHByb21pc2UsIHJlYXNvbikKICAg
ICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKICAgICBwcm9t
aXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkOwogICAgIHByb21pc2UuQHBy
b21pc2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0ZWQ7CisKKyAgICBASW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLnByb21pc2VSZWplY3RlZChwcm9taXNlLCByZWFzb24sIHJlYWN0aW9ucyk7CisKICAg
ICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCByZWFzb24pOwogfQogCkBAIC0x
MTQsNiArMTE3LDkgQEAgZnVuY3Rpb24gZnVsZmlsbFByb21pc2UocHJvbWlzZSwgdmFsdWUpCiAg
ICAgcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7CiAgICAgcHJv
bWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKICAgICBwcm9taXNlLkBw
cm9taXNlU3RhdGUgPSBAcHJvbWlzZUZ1bGZpbGxlZDsKKworICAgIEBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24ucHJvbWlzZUZ1bGZpbGxlZChwcm9taXNlLCB2YWx1ZSwgcmVhY3Rpb25zKTsKKwog
ICAgIEB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIHZhbHVlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5k
ZXggNjQ1MWZmMzQ0OTBmYmI2NmJkMmFmMjFkYjc2MGZhNWU3ZDJiNWIxNC4uYWE1NzIwMzRjNGI5
YTVmZjdkNTQzZmM4OTZiOTM3ZGU3NzlkZGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0yOTUsMTIgKzI5NSwxMSBAQAog
ICAgIG1hY3JvKGhhbmRsZXIpIFwKICAgICBtYWNybyhwcm9taXNlU3RhdGUpIFwKICAgICBtYWNy
byhwcm9taXNlUGVuZGluZykgXAotICAgIG1hY3JvKHByb21pc2VGdWxmaWxsZWQpIFwKLSAgICBt
YWNybyhwcm9taXNlUmVqZWN0ZWQpIFwKICAgICBtYWNybyhwcm9taXNlRnVsZmlsbFJlYWN0aW9u
cykgXAogICAgIG1hY3JvKHByb21pc2VSZWplY3RSZWFjdGlvbnMpIFwKICAgICBtYWNybyhwcm9t
aXNlUmVzdWx0KSBcCiAgICAgbWFjcm8oY2FwYWJpbGl0aWVzKSBcCisgICAgbWFjcm8oSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKSBcCiAKIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODE0NGNlNDBmNmU4YzY1ZDg4NWQyNDI2YTk2
MDVmMzBhOGY1Nzg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcApAQCAtMCwwICsxLDg1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oIgor
CisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIkxvb2t1cC5oIgorI2luY2x1ZGUg
PHd0Zi9EYXRhTG9nLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdERhdGFMb2dJbXBsKEV4ZWNT
dGF0ZSopOworCit9CisKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qu
bHV0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9E
RVNUUlVDVElCTEUoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KTsKKworY29uc3QgQ2xh
c3NJbmZvIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6c19pbmZvID0geyAiSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uIiwgJkJhc2U6OnNfaW5mbywgJmluc3BlY3Rvckluc3RydW1lbnRh
dGlvbk9iamVjdFRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbk9iamVjdCkgfTsKKworLyogU291cmNlIGZvciBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3QubHV0LmgKK0BiZWdpbiBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RUYWJsZQor
ICAgIGRlYnVnICAgICAgICAgICAgIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdERlYnVn
ICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQorICAgIGRhdGFMb2dJbXBsICAgICAgIGlu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdERhdGFMb2dJbXBsICAgICAgRG9udEVudW18RnVu
Y3Rpb24gMQorICAgIHByb21pc2VGdWxmaWxsZWQgIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdFByb21pc2VGdWxmaWxsZWQgRG9udEVudW18RnVuY3Rpb24gMworICAgIHByb21pc2VSZWpl
Y3RlZCAgIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdFByb21pc2VSZWplY3RlZCAgRG9u
dEVudW18RnVuY3Rpb24gMworQGVuZAorKi8KKworSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3Qodm0sIHN0cnVjdHVyZSkKK3sKK30KKwor
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAg
ICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNFbmFibGVkIiksIGpzQm9vbGVh
bihmYWxzZSkpOworfQorCitib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQoreworICAgIHJldHVybiBn
ZXRTdGF0aWNGdW5jdGlvblNsb3Q8QmFzZT4oZXhlYywgaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0VGFibGUsIGpzQ2FzdDxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QqPihvYmpl
Y3QpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0Vu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0
RGF0YUxvZ0ltcGwoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVmFsdWUgdGFyZ2V0ID0gZXhl
Yy0+YXJndW1lbnQoMCk7CisgICAgU3RyaW5nIHZhbHVlID0gdGFyZ2V0LnRvU3RyaW5nKGV4ZWMp
LT52YWx1ZShleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgZGF0YUxvZyh2YWx1ZSwg
IlxuIik7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU5NTFmYjQ5NmYzOWEzYmJhNjczYjIwMDIzOGE1NjU2NzI0YzRhNjAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3QuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Rf
aAorI2RlZmluZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RfaAorCisjaW5jbHVkZSAi
SlNPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3ByaXZhdGU6CisgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KFZNJiwgU3RydWN0dXJlKik7CisKK3B1Ymxp
YzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKyAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdDsKKworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3QqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uT2JqZWN0KiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25PYmplY3Q+KHZtLmhlYXApKSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3Qodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0s
IGdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgfQorCisgICAgREVD
TEFSRV9JTkZPOworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAg
eworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Cisg
ICAgfQorCisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKworcHJvdGVjdGVkOgorICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOworfTsKKworfSAvLyBu
YW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Rf
aApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
CmluZGV4IGNlZTliYmQ5NDA0NDkxMjg5NDM4MjcxZDAwNDQxN2MyMjlhZDA0MjMuLjE0OWQ0NjJk
MTdlNjU1NmJmZjgxYmM4ZjkwZDRmOTY2NjEwNTE2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNp
bmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgog
I2luY2x1ZGUgIkhlYXBJdGVyYXRpb25TY29wZS5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SXRlcmF0b3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0FQSVdyYXBwZXJPYmplY3QuaCIKQEAg
LTQ5Miw4ICs0OTMsOCBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3ltYm9sSXRlcmF0
b3JQcml2YXRlTmFtZSgpLCBTeW1ib2w6OmNyZWF0ZSh2bSwgc3RhdGljX2Nhc3Q8U3ltYm9sSW1w
bCY+KCp2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbC5pbXBsKCkpKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+UHJvbWlzZVByaXZhdGVOYW1lLCBtX3Byb21pc2VDb25zdHJ1Y3Rvci5n
ZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVBlbmRpbmdQcml2YXRlTmFtZSwg
anNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTUHJvbWlzZTo6U3RhdHVzOjpQZW5kaW5n
KSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VGdWxmaWxsZWRQcml2YXRlTmFtZSwg
anNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTUHJvbWlzZTo6U3RhdHVzOjpGdWxmaWxs
ZWQpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVJlamVjdGVkUHJpdmF0ZU5hbWUs
IGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6UmVqZWN0
ZWQpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZUZ1bGZp
bGxlZFByaXZhdGVOYW1lLCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNQcm9taXNl
OjpTdGF0dXM6OkZ1bGZpbGxlZCkpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5wcm9taXNlUmVqZWN0ZWRQcml2YXRlTmFtZSwganNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTUHJvbWlzZTo6U3RhdHVzOjpSZWplY3RlZCkpLCBEb250RW51bSB8IERvbnREZWxl
dGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5h
bWVzLT5idWlsdGluTmFtZXMoKS50b0xlbmd0aFByaXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVG9M
ZW5ndGgsIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFs
UHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRvSW50ZWdlclBy
aXZhdGVOYW1lKCksIHByaXZhdGVGdW5jVG9JbnRlZ2VyLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5pc09iamVjdFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0
ZUJ1aWx0aW5GdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0SXNPYmplY3RDb2RlR2VuZXJhdG9yKHZt
KSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKQEAgLTUwNiw2ICs1
MDcsNyBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUlu
Zm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY3JlYXRlUmVzb2x2aW5nRnVuY3Rp
b25zUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBv
cGVyYXRpb25zUHJvbWlzZUNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc0NvZGVHZW5lcmF0b3Iodm0p
LCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJl
YWN0aW9uSm9iUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9u
KHZtLCBvcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZWFjdGlvbkpvYkNvZGVHZW5lcmF0b3Iodm0p
LCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9i
YWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZVJl
c29sdmVUaGVuYWJsZUpvYlByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5G
dW5jdGlvbih2bSwgb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iQ29k
ZUdlbmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSks
CisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Qcml2YXRlTmFtZSgpLCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3Q6OmNyZWF0ZSh2bSwgdGhpcywgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdl
dCgpKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICB9OwogICAgIGFk
ZFN0YXRpY0dsb2JhbHMoc3RhdGljR2xvYmFscywgV1RGX0FSUkFZX0xFTkdUSChzdGF0aWNHbG9i
YWxzKSk7CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258839</attachid>
            <date>2015-08-12 12:53:30 -0700</date>
            <delta_ts>2015-08-12 18:39:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147942-20150812125313.patch</filename>
            <type>text/plain</type>
            <size>29030</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MzM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YjAxZDFiNTU2MDc5NTViZDA0OGU2YjVkMWUwM2MxOTBmOWNhN2JlLi42OTMwNmYyZmY4YzdkNDlm
MGY4ZjUyYTdkN2VkMDE1MTliZmFmZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxNS0wOC0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBZGQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIGJ1aWx0aW4gb2Jq
ZWN0IHRvIGluc3RydW1lbnQgdGhlIGNvZGUgaW4gSlMgYnVpbHRpbnMgbGlrZSBQcm9taXNlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTQyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGJ1aWx0aW5zL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5qczogQWRkZWQuCisgICAg
ICAgIChkZWJ1Zyk6CisgICAgICAgIChwcm9taXNlRnVsZmlsbGVkKToKKyAgICAgICAgKHByb21p
c2VSZWplY3RlZCk6CisgICAgICAgICogYnVpbHRpbnMvT3BlcmF0aW9ucy5Qcm9taXNlLmpzOgor
ICAgICAgICAocmVqZWN0UHJvbWlzZSk6CisgICAgICAgIChmdWxmaWxsUHJvbWlzZSk6CisgICAg
ICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0KToKKyAgICAgICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6aW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0RGF0YUxvZ0ltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgor
CiAyMDE1LTA4LTExICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIFZNOjpyZWxlYXNlRXhlY3V0YWJsZU1lbW9yeQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDIzZTJiYmMzYjIwYjBlZjM3NmQwNzgwNDk1ZGNhZmM0ZDBhNDU2
M2MuLjdkODBlMjMzZDcyOGE2ZDY2MjI0ZDE5YWMxZGE5YjIwYmJlZDBjYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ4Myw2ICs0ODMsNyBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfUlVOVElNRV9TT1VSQ0VTCiAgICAgcnVudGltZS9JbmRleGluZ1R5cGUuY3BwCiAgICAg
cnVudGltZS9JbmZlcnJlZFZhbHVlLmNwcAogICAgIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHAKKyAgICBydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAKICAg
ICBydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3Iu
Y3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzNSw2ICs2
MzYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfTFVUX0ZJTEVTCiAgICAgcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuY3BwCiAgICAgcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUv
RXJyb3JQcm90b3R5cGUuY3BwCisgICAgcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3QuY3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKICAgICBy
dW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAKICAgICBydW50aW1lL0ludGxEYXRlVGlt
ZUZvcm1hdENvbnN0cnVjdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBkMDcxMjY1MmEwOWIxYzhhZjUxZGEyZTY2ZDlhMTg0YjMwNTlhZTU3Li4x
Y2IyZDVjYmEzYmQzNWUyMDlmOWQyYzdiYjQ2N2IyYjk2ZjdmYTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDEsNiArNDEsNyBAQCBhbGwgOiBcCiAg
ICAgRGF0ZUNvbnN0cnVjdG9yLmx1dC5oIFwKICAgICBEYXRlUHJvdG90eXBlLmx1dC5oIFwKICAg
ICBFcnJvclByb3RvdHlwZS5sdXQuaCBcCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0Lmx1dC5oIFwKICAgICBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaCBcCiAgICAgSW50
bENvbGxhdG9yUHJvdG90eXBlLmx1dC5oIFwKICAgICBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1
Y3Rvci5sdXQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCBj
Mzk4NDc0NTU3MWQwMjQzOTU4NmFjNTA1ODYzMWZjZWMwMmJkZDQ0Li5iMDQ0MmMzNmQzYjA5Yzg5
OGM0ZWU3MDRiYzA1OTdiYWQ5M2NhMTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oKQEAgLTczNyw2ICs3MzcsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxJbmRleGluZ1R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxJbmZlcnJlZFZhbHVlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxydW50aW1lXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24uY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3IuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3JDb25zdHJ1
Y3Rvci5jcHAiIC8+CkBAIC05MDcsNiArOTA4LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbmplY3RlZFNjcmlwdFNvdXJjZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZv
cm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVycy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3Jt
QXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3QubHV0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9y
bUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVmlld1By
b3RvdHlwZS5sdXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0dsb2JhbE9iamVjdC5sdXQuaCIgLz4KQEAgLTE1NTgsNiArMTU2MCw3IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludDMyQXJyYXkuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW50OEFycmF5LmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24uaCIgLz4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGxDb2xsYXRv
ci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3JD
b25zdHJ1Y3Rvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRs
Q29sbGF0b3JQcm90b3R5cGUuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBlNjFkNDc2ZWVhYzAwNTRlYjg1NmU2MjhlMmViNDQz
MGM5MDVjNWRlLi45NGI1YjYwMmQ4NGNlMzY2ZTI2MTAzOTdlOTRmN2E0Njc4OGY0ZmM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02
MzMsNiArNjMzLDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW5pdGlh
bGl6ZVRocmVhZGluZy5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAiPgorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0
ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1l
XEludGVybmFsRnVuY3Rpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgog
ICAgIDwvQ2xDb21waWxlPgpAQCAtMjcyMyw2ICsyNzI2LDkgQEAKICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHJ1bnRpbWVcSW5pdGlhbGl6ZVRocmVhZGluZy5oIj4KICAgICAgIDxGaWx0ZXI+
cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCI+CisgICAgICA8
RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW50ZXJuYWxGdW5jdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+
cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMzE3MSw2ICszMTc3LDkgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBs
YXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0
b3JGcm9udGVuZERpc3BhdGNoZXJzLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkIFNvdXJjZXM8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0Lmgi
PgorICAgICAgPEZpbHRlcj5EZXJpdmVkIFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmok
KFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNw
ZWN0b3JQcm90b2NvbE9iamVjdHMuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWQgU291cmNlczwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBkODVkN2FmYjVmMDg3ODBiNzMyODFkNmRiM2U5OThjNzg0NjM3MTdlLi44MmJjY2JjNmYzNzcz
YjMzODdiOWUxOWZiZGYyM2VkMjhmMjU3NWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTY5Miw3ICsxNjkyLDEwIEBACiAJCUUxOEUzQTU5MERGOTI3OEMwMEQ5MEIzNCAvKiBW
TS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMThF
M0E1NzBERjkyNzhDMDBEOTBCMzQgLyogVk0uY3BwICovOyB9OwogCQlFMzM2MzdBNTFCNjMyMjAy
MDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM2MzdBMzFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9i
amVjdC5jcHAgKi87IH07CiAJCUUzMzYzN0E2MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2Jq
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM2
MzdBNDFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzM0IzRTI2MUI3QUJENzUwMDQ4REIy
RSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzNCM0UyNTFCN0FCRDc1MDA0OERCMkUg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oICovOyB9OwogCQlFMzU0NjIy
QjFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1NDYyMkExQjYwNjVEMTAwNTQ1Mzg2IC8q
IENvbnN0cnVjdEFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzNUUwMzVEMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QuY3BwICovOyB9OworCQlFMzVFMDM2MDFCN0FCNDNFMDA3M0FEMkEgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVFMDM1RTFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTNFRjg4NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTNFRjg4NzIxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
Y3BwICovOyB9OwogCQlFM0VGODg3NTFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2QjEy
RUYyOTNFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgKi87IH07CkBAIC0zNTE2LDcgKzM1MTksMTEgQEAK
IAkJRTE4RTNBNTcwREY5Mjc4QzAwRDkwQjM0IC8qIFZNLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBWTS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcu
Y3BwOyB9OwogCQlFMzM2MzdBMzFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWZsZWN0T2JqZWN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMzNjM3QTQxQjYzMjIwMjAwRUUwODQwIC8q
IFJlZmxlY3RPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmbGVj
dE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzNCM0UyNTFCN0FCRDc1
MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qu
bHV0Lmg7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTQ2MjJBMUI2MDY1RDEwMDU0NTM4NiAvKiBDb25z
dHJ1Y3RBYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnN0cnVj
dEFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM1RTAzNUQxQjdBQjQz
RTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVFMDM1RTFCN0FCNDNFMDA3
M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVFMDM2MTFCN0FCNDg1MDA3M0FEMkEgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZh
c2NyaXB0OyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGODg3MjFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE0OTEyRUYyNjFBMDAxODRBMUYg
LyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQzNDIsNiArNDM0OSw3IEBACiAJCQkJQTUzMjQzODIxODU2ODMxNzAwMkVENjkyIC8q
IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oICovLAogCQkJCUE1MzI0MzgzMTg1NjgzMTcw
MDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmNwcCAqLywKIAkJCQlBNTMy
NDM4NDE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5oICov
LAorCQkJCUUzM0IzRTI1MUI3QUJENzUwMDQ4REIyRSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3QubHV0LmggKi8sCiAJCQkJQTUzMjQzODUxODU2ODMxNzAwMkVENjkyIC8qIEluc3Bl
Y3RvclByb3RvY29sT2JqZWN0cy5jcHAgKi8sCiAJCQkJQTUzMjQzODYxODU2ODMxNzAwMkVENjky
IC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oICovLAogCQkJCUExODE5M0UxMUI0RTBDREIw
MEZDMTAyOSAvKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaCAqLywKQEAgLTQ1ODcsNiAr
NDU5NSw4IEBACiAJCQkJMEZGOEJERTkxQUQ0Q0Y3MTAwREZFODg0IC8qIEluZmVycmVkVmFsdWUu
aCAqLywKIAkJCQlFMTc4NjM2QzBEOUJFRUMzMDBENzRFNzUgLyogSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHAgKi8sCiAJCQkJRTE3ODYzM0YwRDlCRUMwMDAwRDc0RTc1IC8qIEluaXRpYWxpemVUaHJl
YWRpbmcuaCAqLywKKwkJCQlFMzVFMDM1RDFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0LmNwcCAqLywKKwkJCQlFMzVFMDM1RTFCN0FCNDNFMDA3M0FEMkEg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi8sCiAJCQkJQTdBOEFGMkIxN0FE
QjVGMzAwNUFCMTc0IC8qIEludDhBcnJheS5oICovLAogCQkJCUE3QThBRjJDMTdBREI1RjMwMDVB
QjE3NCAvKiBJbnQxNkFycmF5LmggKi8sCiAJCQkJQTdBOEFGMkQxN0FEQjVGMzAwNUFCMTc0IC8q
IEludDMyQXJyYXkuaCAqLywKQEAgLTU2OTMsNiArNTcwMyw3IEBACiAJCQkJQTc1RUU5QjAxOEFB
QjdFMjAwQUFEMDQzIC8qIEJ1aWx0aW5OYW1lcy5oICovLAogCQkJCUE3QTk3OUM0MThCRThEOUUw
MDJDMzczMyAvKiBGdW5jdGlvbi5wcm90b3R5cGUuanMgKi8sCiAJCQkJN0NGOUJDNUExQjY1RDlB
MzAwOURCMUVGIC8qIEdsb2JhbE9iamVjdC5qcyAqLywKKwkJCQlFMzVFMDM2MTFCN0FCNDg1MDA3
M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzICovLAogCQkJCTdDRjlC
QzVCMUI2NUQ5QTMwMDlEQjFFRiAvKiBJdGVyYXRvci5wcm90b3R5cGUuanMgKi8sCiAJCQkJN0NG
OUJDNUMxQjY1RDlCMTAwOURCMUVGIC8qIE9iamVjdENvbnN0cnVjdG9yLmpzICovLAogCQkJCTdD
RjlCQzVEMUI2NUQ5QjEwMDlEQjFFRiAvKiBPcGVyYXRpb25zLlByb21pc2UuanMgKi8sCkBAIC02
MDQwLDYgKzYwNTEsNyBAQAogCQkJCTBGMzAwQjc4MThBQjA1MTEwMEE2RDcyRSAvKiBERkdOb2Rl
T3JpZ2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkE1ODFCQzE1MEU5NTMwMDBCOUEyRDkgLyog
REZHTm9kZVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RUM5REQwMTMyOERGODIwMDJCMkFE
NyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzNCM0UyNjFCN0FCRDc1
MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTdEODlDRkUxN0EwQjhDQzAwNzczQUQ4IC8qIERGR09TUkF2YWlsYWJpbGl0
eUFuYWx5c2lzUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDgyRTU3MTQxREFGMTAwMDE3
OUM5NCAvKiBERkdPU1JFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEOEEzMjYxN0Q1MUY1
NzAwQ0EyQzQwIC8qIERGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmggaW4gSGVhZGVycyAq
LywKQEAgLTYzNTEsNiArNjM2Myw3IEBACiAJCQkJQTU3RDIzRUExODkxQjA3NzAwMzFDN0ZBIC8q
IEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3NTZG
QzkwRTIwMzFCMjAwREU3RDEyIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTEwMDdDMTE4N0NDM0M2MDBCMzg4NzkgLyogSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzVFMDM2MDFCN0FCNDNFMDA3
M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RSdW50aW1lQWdl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDNGQTJBMTg4RjEwNTkwMDExMEYxNCAvKiBKU0ds
b2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTEzRTVD
MDE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3QuaCBpbiBIZWFkZXJzICov
LApAQCAtNzM2Nyw2ICs3MzgwLDcgQEAKIAkJCQk3MEVDQTYwNzFBRkRCRUEyMDA0NDk3MzkgLyog
VGVtcGxhdGVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIzNUJFQjE3MTc4RTcz
MDA2OTBDN0YgLyogREZHT1NSRXhpdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMDk3
OTIxNDZBNkY3MzAwQ0YyNDQyIC8qIERGR09TUkV4aXRDb21waWxlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5Nzc2MTQ2OTQzQjAwMENGMjQ0
MiAvKiBERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMw
OTc3MjE0NjkzQUY5MDBDRjI0NDIgLyogREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzBFQzBFQzIxQUEwRDdEQTAwQjZBQUZBIC8qIEpTU3RyaW5nSXRlcmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NWVmNWYyYjBhZjdkZTcwN2M2NjJlMzljMmI0MjYwM2I4MjQ2MDRhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdC5qcwpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworZnVuY3Rpb24gZGVidWcodmFsdWUpCit7CisgICAgInVz
ZSBzdHJpY3QiOworCisgICAgaWYgKCF0aGlzLmlzRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgdGhpcy5kYXRhTG9nSW1wbCh2YWx1ZSk7Cit9CisKK2Z1bmN0aW9uIHByb21pc2VGdWxm
aWxsZWQocHJvbWlzZSwgdmFsdWUsIHJlYWN0aW9ucykKK3sKKyAgICAidXNlIHN0cmljdCI7CisK
KyAgICBpZiAoIXRoaXMuaXNFbmFibGVkKQorICAgICAgICByZXR1cm47Cit9CisKK2Z1bmN0aW9u
IHByb21pc2VSZWplY3RlZChwcm9taXNlLCByZWFzb24sIHJlYWN0aW9ucykKK3sKKyAgICAidXNl
IHN0cmljdCI7CisKKyAgICBpZiAoIXRoaXMuaXNFbmFibGVkKQorICAgICAgICByZXR1cm47Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT3BlcmF0aW9ucy5Q
cm9taXNlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL09wZXJhdGlvbnMuUHJv
bWlzZS5qcwppbmRleCA4MGM1N2FiMGI2NTk0MWUxOTI5ZjQ3YmEzNWJkNzc1ZjU4MmRkZDBiLi42
NmY5YzI1MTUzNTljN2E1MTI1NGY5MzdmYzdmNTFjY2QxMzEyNDFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT3BlcmF0aW9ucy5Qcm9taXNlLmpzCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PcGVyYXRpb25zLlByb21pc2UuanMKQEAgLTEw
Miw2ICsxMDIsOSBAQCBmdW5jdGlvbiByZWplY3RQcm9taXNlKHByb21pc2UsIHJlYXNvbikKICAg
ICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKICAgICBwcm9t
aXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkOwogICAgIHByb21pc2UuQHBy
b21pc2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0ZWQ7CisKKyAgICBASW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLnByb21pc2VSZWplY3RlZChwcm9taXNlLCByZWFzb24sIHJlYWN0aW9ucyk7CisKICAg
ICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCByZWFzb24pOwogfQogCkBAIC0x
MTQsNiArMTE3LDkgQEAgZnVuY3Rpb24gZnVsZmlsbFByb21pc2UocHJvbWlzZSwgdmFsdWUpCiAg
ICAgcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7CiAgICAgcHJv
bWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKICAgICBwcm9taXNlLkBw
cm9taXNlU3RhdGUgPSBAcHJvbWlzZUZ1bGZpbGxlZDsKKworICAgIEBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24ucHJvbWlzZUZ1bGZpbGxlZChwcm9taXNlLCB2YWx1ZSwgcmVhY3Rpb25zKTsKKwog
ICAgIEB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIHZhbHVlKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5k
ZXggNjQ1MWZmMzQ0OTBmYmI2NmJkMmFmMjFkYjc2MGZhNWU3ZDJiNWIxNC4uYWE1NzIwMzRjNGI5
YTVmZjdkNTQzZmM4OTZiOTM3ZGU3NzlkZGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0yOTUsMTIgKzI5NSwxMSBAQAog
ICAgIG1hY3JvKGhhbmRsZXIpIFwKICAgICBtYWNybyhwcm9taXNlU3RhdGUpIFwKICAgICBtYWNy
byhwcm9taXNlUGVuZGluZykgXAotICAgIG1hY3JvKHByb21pc2VGdWxmaWxsZWQpIFwKLSAgICBt
YWNybyhwcm9taXNlUmVqZWN0ZWQpIFwKICAgICBtYWNybyhwcm9taXNlRnVsZmlsbFJlYWN0aW9u
cykgXAogICAgIG1hY3JvKHByb21pc2VSZWplY3RSZWFjdGlvbnMpIFwKICAgICBtYWNybyhwcm9t
aXNlUmVzdWx0KSBcCiAgICAgbWFjcm8oY2FwYWJpbGl0aWVzKSBcCisgICAgbWFjcm8oSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKSBcCiAKIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODE0NGNlNDBmNmU4YzY1ZDg4NWQyNDI2YTk2
MDVmMzBhOGY1Nzg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcApAQCAtMCwwICsxLDg1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oIgor
CisjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIkxvb2t1cC5oIgorI2luY2x1ZGUg
PHd0Zi9EYXRhTG9nLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdERhdGFMb2dJbXBsKEV4ZWNT
dGF0ZSopOworCit9CisKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qu
bHV0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9E
RVNUUlVDVElCTEUoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KTsKKworY29uc3QgQ2xh
c3NJbmZvIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6c19pbmZvID0geyAiSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uIiwgJkJhc2U6OnNfaW5mbywgJmluc3BlY3Rvckluc3RydW1lbnRh
dGlvbk9iamVjdFRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbk9iamVjdCkgfTsKKworLyogU291cmNlIGZvciBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3QubHV0LmgKK0BiZWdpbiBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RUYWJsZQor
ICAgIGRlYnVnICAgICAgICAgICAgIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdERlYnVn
ICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQorICAgIGRhdGFMb2dJbXBsICAgICAgIGlu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdERhdGFMb2dJbXBsICAgICAgRG9udEVudW18RnVu
Y3Rpb24gMQorICAgIHByb21pc2VGdWxmaWxsZWQgIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdFByb21pc2VGdWxmaWxsZWQgRG9udEVudW18RnVuY3Rpb24gMworICAgIHByb21pc2VSZWpl
Y3RlZCAgIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdFByb21pc2VSZWplY3RlZCAgRG9u
dEVudW18RnVuY3Rpb24gMworQGVuZAorKi8KKworSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3Qodm0sIHN0cnVjdHVyZSkKK3sKK30KKwor
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAg
ICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiaXNFbmFibGVkIiksIGpzQm9vbGVh
bihmYWxzZSkpOworfQorCitib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQoreworICAgIHJldHVybiBn
ZXRTdGF0aWNGdW5jdGlvblNsb3Q8QmFzZT4oZXhlYywgaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0VGFibGUsIGpzQ2FzdDxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QqPihvYmpl
Y3QpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0Vu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0
RGF0YUxvZ0ltcGwoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVmFsdWUgdGFyZ2V0ID0gZXhl
Yy0+YXJndW1lbnQoMCk7CisgICAgU3RyaW5nIHZhbHVlID0gdGFyZ2V0LnRvU3RyaW5nKGV4ZWMp
LT52YWx1ZShleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgZGF0YUxvZyh2YWx1ZSwg
IlxuIik7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmU5NTFmYjQ5NmYzOWEzYmJhNjczYjIwMDIzOGE1NjU2NzI0YzRhNjAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3QuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Rf
aAorI2RlZmluZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RfaAorCisjaW5jbHVkZSAi
SlNPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3ByaXZhdGU6CisgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KFZNJiwgU3RydWN0dXJlKik7CisKK3B1Ymxp
YzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKyAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdDsKKworICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3QqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uT2JqZWN0KiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25PYmplY3Q+KHZtLmhlYXApKSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3Qodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0s
IGdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBvYmplY3Q7CisgICAgfQorCisgICAgREVD
TEFSRV9JTkZPOworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAg
eworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Cisg
ICAgfQorCisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKworcHJvdGVjdGVkOgorICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOworfTsKKworfSAvLyBu
YW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Rf
aApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
CmluZGV4IGNlZTliYmQ5NDA0NDkxMjg5NDM4MjcxZDAwNDQxN2MyMjlhZDA0MjMuLjI1YWNlOTI2
OTE4MGFkZDczYzRlYWU5OGQzODk1NzhlNDZhZWI1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNp
bmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgog
I2luY2x1ZGUgIkhlYXBJdGVyYXRpb25TY29wZS5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SXRlcmF0b3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0FQSVdyYXBwZXJPYmplY3QuaCIKQEAg
LTQ5Miw4ICs0OTMsOCBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3ltYm9sSXRlcmF0
b3JQcml2YXRlTmFtZSgpLCBTeW1ib2w6OmNyZWF0ZSh2bSwgc3RhdGljX2Nhc3Q8U3ltYm9sSW1w
bCY+KCp2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbC5pbXBsKCkpKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+UHJvbWlzZVByaXZhdGVOYW1lLCBtX3Byb21pc2VDb25zdHJ1Y3Rvci5n
ZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVBlbmRpbmdQcml2YXRlTmFtZSwg
anNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTUHJvbWlzZTo6U3RhdHVzOjpQZW5kaW5n
KSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VGdWxmaWxsZWRQcml2YXRlTmFtZSwg
anNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTUHJvbWlzZTo6U3RhdHVzOjpGdWxmaWxs
ZWQpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVJlamVjdGVkUHJpdmF0ZU5hbWUs
IGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6UmVqZWN0
ZWQpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZUZ1bGZp
bGxlZFByaXZhdGVOYW1lKCksIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21p
c2U6OlN0YXR1czo6RnVsZmlsbGVkKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnByb21pc2VSZWplY3RlZFByaXZhdGVOYW1lKCksIGpzTnVtYmVyKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6UmVqZWN0ZWQpKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudG9MZW5ndGhQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVu
Y1RvTGVuZ3RoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50b0ludGVn
ZXJQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1RvSW50ZWdlciwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNPYmplY3RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpj
cmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdElzT2JqZWN0Q29kZUdlbmVyYXRv
cih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCkBAIC01MDYs
NiArNTA3LDcgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNyZWF0ZVJlc29sdmluZ0Z1
bmN0aW9uc1ByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2
bSwgb3BlcmF0aW9uc1Byb21pc2VDcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnNDb2RlR2VuZXJhdG9y
KHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21p
c2VSZWFjdGlvbkpvYlByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5j
dGlvbih2bSwgb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVhY3Rpb25Kb2JDb2RlR2VuZXJhdG9y
KHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21p
c2VSZXNvbHZlVGhlbmFibGVKb2JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWls
dGluRnVuY3Rpb24odm0sIG9wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpv
YkNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uUHJpdmF0ZU5hbWUoKSwgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpjcmVhdGUodm0sIHRoaXMsIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlw
ZS5nZXQoKSkpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgfTsKICAg
ICBhZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGlj
R2xvYmFscykpOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258867</attachid>
            <date>2015-08-12 18:39:55 -0700</date>
            <delta_ts>2015-08-13 00:44:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147942-20150812183938.patch</filename>
            <type>text/plain</type>
            <size>31994</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZjU5YzBmZDRiMzgxOGI2Y2Q1Y2VlNTFiNGQzMGYxOTA2NzkxY2ZhLi4zZWY0NDA0ZGFkMzk2ZjQy
ZjRkNzQwMjVlNGI0OWZkNDQzODI3MzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0MyBAQAorMjAxNS0wOC0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBZGQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIGJ1aWx0aW4gb2Jq
ZWN0IHRvIGluc3RydW1lbnQgdGhlIGNvZGUgaW4gSlMgYnVpbHRpbnMgbGlrZSBQcm9taXNlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTQyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIG5ldyBwcml2YXRlIGdsb2JhbCBvYmplY3QsIEBJbnNwZWN0b3JJbnN0cnVtZW50cy4K
KyAgICAgICAgSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyB0aGUgbmFtZXNwYWNlIG9iamVj
dCAobGlrZSBSZWZsZWN0L01hdGgpIGZvciBJbnNwZWN0b3IncworICAgICAgICBpbnN0cnVtZW50
YXRpb24gc3lzdGVtIGFuZCBpdCBpcyB1c2VkIHRvIGluc3RydW1lbnQgdGhlIGJ1aWx0aW4gSlMg
Y29kZSwgbGlrZSBQcm9taXNlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVpbHRpbnMvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKGRlYnVnKToKKyAg
ICAgICAgKHByb21pc2VGdWxmaWxsZWQpOgorICAgICAgICAocHJvbWlzZVJlamVjdGVkKToKKyAg
ICAgICAgKiBidWlsdGlucy9PcGVyYXRpb25zLlByb21pc2UuanM6CisgICAgICAgIChyZWplY3RQ
cm9taXNlKToKKyAgICAgICAgKGZ1bGZpbGxQcm9taXNlKToKKyAgICAgICAgKiBydW50aW1lL0Nv
bW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QpOgorICAgICAgICAo
SlNDOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAg
ICAgICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAoSlNDOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6Omlz
RW5hYmxlZCk6CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6
ZW5hYmxlKToKKyAgICAgICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Ojpk
aXNhYmxlKToKKyAgICAgICAgKEpTQzo6aW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0RGF0
YUxvZ0ltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0Lmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgorCiAyMDE1LTA4LTEyICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtFUzZdIElt
cGxlbWVudCBSZWZsZWN0LmRlZmluZVByb3BlcnR5CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc5NDMKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDlkNGQyMDdlOGMzMDY4NTllMmFlZmFmOTUwYjEyY2I1YTRhNDJiMGYuLjg2
NTUyYTk2Zjc5NDMzMTE5ZTQ3ODhkZjk2MDQ3ZDZhYTJlZGRmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ4Niw2ICs0ODYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
UlVOVElNRV9TT1VSQ0VTCiAgICAgcnVudGltZS9JbmRleGluZ1R5cGUuY3BwCiAgICAgcnVudGlt
ZS9JbmZlcnJlZFZhbHVlLmNwcAogICAgIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAK
KyAgICBydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAKICAgICBydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3IuY3BwCiAg
ICAgcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzOCw2ICs2MzksNyBA
QCBzZXQoSmF2YVNjcmlwdENvcmVfTFVUX0ZJTEVTCiAgICAgcnVudGltZS9EYXRlQ29uc3RydWN0
b3IuY3BwCiAgICAgcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvRXJyb3JQ
cm90b3R5cGUuY3BwCisgICAgcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qu
Y3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKICAgICBydW50aW1l
L0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAKICAgICBydW50aW1lL0ludGxEYXRlVGltZUZvcm1h
dENvbnN0cnVjdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCBkMDcxMjY1MmEwOWIxYzhhZjUxZGEyZTY2ZDlhMTg0YjMwNTlhZTU3Li4xY2IyZDVj
YmEzYmQzNWUyMDlmOWQyYzdiYjQ2N2IyYjk2ZjdmYTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDEsNiArNDEsNyBAQCBhbGwgOiBcCiAgICAgRGF0
ZUNvbnN0cnVjdG9yLmx1dC5oIFwKICAgICBEYXRlUHJvdG90eXBlLmx1dC5oIFwKICAgICBFcnJv
clByb3RvdHlwZS5sdXQuaCBcCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1
dC5oIFwKICAgICBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaCBcCiAgICAgSW50bENvbGxh
dG9yUHJvdG90eXBlLmx1dC5oIFwKICAgICBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5s
dXQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCA2M2M5ZTNl
NThlYjdiZDJhM2E5NjlhNzg2ZTBjNWUyMzJkYWZmNDY5Li4wMWQ4MzdmMjk2Y2U0MmY3NjU2MTc5
MDI3MGNiMzY4MDM0MmRjYjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2oKQEAgLTc0MCw2ICs3NDAsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxJbmRleGluZ1R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxJbmZlcnJlZFZhbHVlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxydW50aW1lXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24uY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3IuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5j
cHAiIC8+CkBAIC05MTAsNiArOTExLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xJbmplY3RlZFNjcmlwdFNvdXJjZS5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNo
aXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVycy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIgLz4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0
ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QubHV0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hp
dGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVmlld1Byb3RvdHlw
ZS5sdXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0dsb2JhbE9iamVjdC5sdXQuaCIgLz4KQEAgLTE1NjMsNiArMTU2NSw3IEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludDMyQXJyYXkuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW50OEFycmF5LmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24uaCIgLz4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGxDb2xsYXRvci5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3JDb25zdHJ1
Y3Rvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0
b3JQcm90b3R5cGUuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ouZmlsdGVycwppbmRleCBjMWViYjg0MzI1NTBlODMzOWE3ZjNjMjhmNTZkODljNjkyNDYx
NWFhLi5jZTFhYjI0ODA4MWFlZmRiOGVhNWZlZGYzNGFhM2QyOWZjNDg5OTE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02NDIsNiAr
NjQyLDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW5pdGlhbGl6ZVRo
cmVhZGluZy5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdC5jcHAiPgorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+Cisg
ICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVy
bmFsRnVuY3Rpb24uY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtMjczOCw2ICsyNzQxLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcSW5pdGlhbGl6ZVRocmVhZGluZy5oIj4KICAgICAgIDxGaWx0ZXI+cnVudGlt
ZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
cnVudGltZVxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCI+CisgICAgICA8RmlsdGVy
PnJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcSW50ZXJuYWxGdW5jdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+cnVudGlt
ZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMzE4Niw2ICszMTkyLDkgQEAKICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3Jt
QXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JGcm9u
dGVuZERpc3BhdGNoZXJzLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkIFNvdXJjZXM8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmgiPgorICAg
ICAgPEZpbHRlcj5EZXJpdmVkIFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRm
b3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JQ
cm90b2NvbE9iamVjdHMuaCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWQgU291cmNlczwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlN2Vh
ODk2ZTkwY2RkYThlYzM3MzZmZTlmZDk0MjMzYTZhMDc4OGY0Li5mZGM2ODM3MWRkYjJiZTU1MzQ5
NDFmODMyYzhjNzIwMWI0MDZkYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTY5MiwxMiArMTY5MiwxNSBAQAogCQlFMThFM0E1OTBERjkyNzhDMDBEOTBCMzQgLyogVk0uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4RTNBNTcw
REY5Mjc4QzAwRDkwQjM0IC8qIFZNLmNwcCAqLzsgfTsKIAkJRTMzNjM3QTUxQjYzMjIwMjAwRUUw
ODQwIC8qIFJlZmxlY3RPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTMzNjM3QTMxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3Qu
Y3BwICovOyB9OwogCQlFMzM2MzdBNjFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzNjM3QTQx
QjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzNCM0UyNjFCN0FCRDc1MDA0OERCMkUgLyog
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzQjNFMjUxQjdBQkQ3NTAwNDhEQjJFIC8qIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5sdXQuaCAqLzsgfTsKIAkJRTM1NDYyMkIxQjYw
NjVEMTAwNTQ1Mzg2IC8qIENvbnN0cnVjdEFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTQ2MjJBMUI2MDY1RDEwMDU0NTM4NiAvKiBDb25z
dHJ1Y3RBYmlsaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTM3OTRFNzUxQjc3RUI5NzAwNTU0M0FFIC8qIE1vZHVsZUFuYWx5emVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNzk0RTczMUI3
N0VCOTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5jcHAgKi87IH07CiAJCUUzNzk0RTc2MUI3
N0VCOTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM3OTRFNzQxQjc3RUI5NzAwNTU0M0FFIC8qIE1vZHVs
ZUFuYWx5emVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTM5NjNDRUQxQjczRjc1MDAwRUI0Q0U1IC8qIE1vZHVsZVJlY29yZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjNDRUIxQjczRjc1MDAw
RUI0Q0U1IC8qIE1vZHVsZVJlY29yZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUUzOTYzQ0VFMUI3M0Y3NTAwMEVCNENFNSAvKiBOb2Rlc0FuYWx5
emVNb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM5NjNDRUMxQjczRjc1MDAwRUI0Q0U1IC8qIE5vZGVzQW5hbHl6ZU1vZHVsZS5jcHAgKi87
IH07CiAJCUUzQzA5RjU1MUI3OTY5MkEwMEVFMzZBMiAvKiBNb2R1bGVSZWNvcmQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDMDlGNTQxQjc5Njky
QTAwRUUzNkEyIC8qIE1vZHVsZVJlY29yZC5jcHAgKi87IH07CisJCUUzNUUwMzVGMUI3QUI0M0Uw
MDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1RTAzNUQxQjdBQjQzRTAwNzNB
RDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAgKi87IH07CisJCUUzNUUw
MzYwMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUUwMzVFMUI3
QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0VGODg3NDFCNjZE
RjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0VGODg3MjFCNjZERjIzMDAzRjI2Q0Ig
LyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi87IH07CiAJCUUzRUY4ODc1MUI2NkRGMjMw
MDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0VGODg3MzFCNjZERjIzMDAzRjI2Q0IgLyogSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUU0OURDMTZCMTJFRjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRl
ckNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0OURDMTU1MTJFRjI3NzIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLzsg
fTsKQEAgLTM1MjEsMTIgKzM1MjQsMTYgQEAKIAkJRTE4RTNBNTcwREY5Mjc4QzAwRDkwQjM0IC8q
IFZNLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBh
dGggPSBWTS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0
aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3BwOyB9OwogCQlFMzM2MzdBMzFCNjMyMjAyMDBF
RTA4NDAgLyogUmVmbGVjdE9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZWZsZWN0T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTMzNjM3QTQxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmbGVjdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMzNCM0UyNTFCN0FCRDc1MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0Lmx1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0Lmg7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25PYmplY3QubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTQ2
MjJBMUI2MDY1RDEwMDU0NTM4NiAvKiBDb25zdHJ1Y3RBYmlsaXR5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvbnN0cnVjdEFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTM3OTRFNzMxQjc3RUI5NzAwNTU0M0FFIC8qIE1vZHVsZUFuYWx5emVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUFuYWx5emVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM3OTRFNzQxQjc3RUI5NzAwNTU0M0FF
IC8qIE1vZHVsZUFuYWx5emVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1v
ZHVsZUFuYWx5emVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTYzQ0VCMUI3
M0Y3NTAwMEVCNENFNSAvKiBNb2R1bGVSZWNvcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTW9kdWxlUmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
OTYzQ0VDMUI3M0Y3NTAwMEVCNENFNSAvKiBOb2Rlc0FuYWx5emVNb2R1bGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZXNBbmFseXplTW9kdWxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDMDlGNTQxQjc5NjkyQTAwRUUzNkEyIC8qIE1v
ZHVsZVJlY29yZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1
bGVSZWNvcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVFMDM1RDFCN0FC
NDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNUUwMzVFMUI3QUI0M0Uw
MDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNUUwMzYxMUI3QUI0ODUwMDczQUQyQSAvKiBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmph
dmFzY3JpcHQ7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuanM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzRUY4ODcyMUI2NkRGMjMwMDNGMjZDQiAvKiBKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFM0VGODg3MzFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0OURDMTQ5MTJFRjI2MUEwMDE4NEEx
RiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNDM1Miw2ICs0MzU5LDcgQEAKIAkJCQlBNTMyNDM4MjE4NTY4MzE3MDAyRUQ2OTIg
LyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXJzLmggKi8sCiAJCQkJQTUzMjQzODMxODU2ODMx
NzAwMkVENjkyIC8qIEluc3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwICovLAogCQkJCUE1
MzI0Mzg0MTg1NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmgg
Ki8sCisJCQkJRTMzQjNFMjUxQjdBQkQ3NTAwNDhEQjJFIC8qIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbk9iamVjdC5sdXQuaCAqLywKIAkJCQlBNTMyNDM4NTE4NTY4MzE3MDAyRUQ2OTIgLyogSW5z
cGVjdG9yUHJvdG9jb2xPYmplY3RzLmNwcCAqLywKIAkJCQlBNTMyNDM4NjE4NTY4MzE3MDAyRUQ2
OTIgLyogSW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmggKi8sCiAJCQkJQTE4MTkzRTExQjRFMENE
QjAwRkMxMDI5IC8qIEludGxDb2xsYXRvckNvbnN0cnVjdG9yLmx1dC5oICovLApAQCAtNDYwMiw2
ICs0NjEwLDggQEAKIAkJCQkwRkY4QkRFOTFBRDRDRjcxMDBERkU4ODQgLyogSW5mZXJyZWRWYWx1
ZS5oICovLAogCQkJCUUxNzg2MzZDMEQ5QkVFQzMwMEQ3NEU3NSAvKiBJbml0aWFsaXplVGhyZWFk
aW5nLmNwcCAqLywKIAkJCQlFMTc4NjMzRjBEOUJFQzAwMDBENzRFNzUgLyogSW5pdGlhbGl6ZVRo
cmVhZGluZy5oICovLAorCQkJCUUzNUUwMzVEMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25PYmplY3QuY3BwICovLAorCQkJCUUzNUUwMzVFMUI3QUI0M0UwMDczQUQy
QSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCAqLywKIAkJCQlBN0E4QUYyQjE3
QURCNUYzMDA1QUIxNzQgLyogSW50OEFycmF5LmggKi8sCiAJCQkJQTdBOEFGMkMxN0FEQjVGMzAw
NUFCMTc0IC8qIEludDE2QXJyYXkuaCAqLywKIAkJCQlBN0E4QUYyRDE3QURCNUYzMDA1QUIxNzQg
LyogSW50MzJBcnJheS5oICovLApAQCAtNTcwOCw2ICs1NzE4LDcgQEAKIAkJCQlBNzVFRTlCMDE4
QUFCN0UyMDBBQUQwNDMgLyogQnVpbHRpbk5hbWVzLmggKi8sCiAJCQkJQTdBOTc5QzQxOEJFOEQ5
RTAwMkMzNzMzIC8qIEZ1bmN0aW9uLnByb3RvdHlwZS5qcyAqLywKIAkJCQk3Q0Y5QkM1QTFCNjVE
OUEzMDA5REIxRUYgLyogR2xvYmFsT2JqZWN0LmpzICovLAorCQkJCUUzNUUwMzYxMUI3QUI0ODUw
MDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuanMgKi8sCiAJCQkJN0NG
OUJDNUIxQjY1RDlBMzAwOURCMUVGIC8qIEl0ZXJhdG9yLnByb3RvdHlwZS5qcyAqLywKIAkJCQk3
Q0Y5QkM1QzFCNjVEOUIxMDA5REIxRUYgLyogT2JqZWN0Q29uc3RydWN0b3IuanMgKi8sCiAJCQkJ
N0NGOUJDNUQxQjY1RDlCMTAwOURCMUVGIC8qIE9wZXJhdGlvbnMuUHJvbWlzZS5qcyAqLywKQEAg
LTYwNTUsNiArNjA2Niw3IEBACiAJCQkJMEYzMDBCNzgxOEFCMDUxMTAwQTZENzJFIC8qIERGR05v
ZGVPcmlnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQTU4MUJDMTUwRTk1MzAwMEI5QTJEOSAv
KiBERkdOb2RlVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlERDAxMzI4REY4MjAwMkIy
QUQ3IC8qIERGR09wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzM0IzRTI2MUI3QUJE
NzUwMDQ4REIyRSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBN0Q4OUNGRTE3QTBCOENDMDA3NzNBRDggLyogREZHT1NSQXZhaWxhYmls
aXR5QW5hbHlzaXNQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEODJFNTcxNDFEQUYxMDAw
MTc5Qzk0IC8qIERGR09TUkVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4QTMyNjE3RDUx
RjU3MDBDQTJDNDAgLyogREZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuaCBpbiBIZWFkZXJz
ICovLApAQCAtNjM2OCw2ICs2MzgwLDcgQEAKIAkJCQlBNTdEMjNFQTE4OTFCMDc3MDAzMUM3RkEg
LyogSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzc1
NkZDOTBFMjAzMUIyMDBERTdEMTIgLyogSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE1MTAwN0MxMTg3Q0MzQzYwMEIzODg3OSAvKiBKU0dsb2JhbE9iamVjdElu
c3BlY3RvckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNUUwMzYwMUI3QUI0M0Uw
MDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1MEU0QjY0MTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUwM0ZBMkExODhGMTA1OTAwMTEwRjE0IC8qIEpT
R2xvYmFsT2JqZWN0U2NyaXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNF
NUMwMTg1QkZBQ0MwMDdFOTVBRCAvKiBKU0luamVjdGVkU2NyaXB0SG9zdC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC03Mzg1LDYgKzczOTgsNyBAQAogCQkJCTcwRUNBNjA3MUFGREJFQTIwMDQ0OTczOSAv
KiBUZW1wbGF0ZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjM1QkVCMTcxNzhF
NzMwMDY5MEM3RiAvKiBERkdPU1JFeGl0QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMw
OTc5MjE0NkE2RjczMDBDRjI0NDIgLyogREZHT1NSRXhpdENvbXBpbGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUUzNUUwMzVGMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMDk3NzYxNDY5NDNCMDAwQ0Yy
NDQyIC8qIERGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
QzA5NzcyMTQ2OTNBRjkwMENGMjQ0MiAvKiBERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3MEVDMEVDMjFBQTBEN0RBMDBCNkFBRkEgLyogSlNTdHJpbmdJdGVyYXRv
ci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnVpbHRpbnMvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg1ZWY1ZjJiMGFmN2RlNzA3YzY2MmUzOWMyYjQyNjAzYjgyNDYwNGEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uT2JqZWN0LmpzCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitmdW5jdGlvbiBkZWJ1Zyh2YWx1ZSkKK3sKKyAgICAi
dXNlIHN0cmljdCI7CisKKyAgICBpZiAoIXRoaXMuaXNFbmFibGVkKQorICAgICAgICByZXR1cm47
CisKKyAgICB0aGlzLmRhdGFMb2dJbXBsKHZhbHVlKTsKK30KKworZnVuY3Rpb24gcHJvbWlzZUZ1
bGZpbGxlZChwcm9taXNlLCB2YWx1ZSwgcmVhY3Rpb25zKQoreworICAgICJ1c2Ugc3RyaWN0IjsK
KworICAgIGlmICghdGhpcy5pc0VuYWJsZWQpCisgICAgICAgIHJldHVybjsKK30KKworZnVuY3Rp
b24gcHJvbWlzZVJlamVjdGVkKHByb21pc2UsIHJlYXNvbiwgcmVhY3Rpb25zKQoreworICAgICJ1
c2Ugc3RyaWN0IjsKKworICAgIGlmICghdGhpcy5pc0VuYWJsZWQpCisgICAgICAgIHJldHVybjsK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PcGVyYXRpb25z
LlByb21pc2UuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT3BlcmF0aW9ucy5Q
cm9taXNlLmpzCmluZGV4IDgwYzU3YWIwYjY1OTQxZTE5MjlmNDdiYTM1YmQ3NzVmNTgyZGRkMGIu
LjY2ZjljMjUxNTM1OWM3YTUxMjU0ZjkzN2ZjN2Y1MWNjZDEzMTI0MWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PcGVyYXRpb25zLlByb21pc2UuanMKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL09wZXJhdGlvbnMuUHJvbWlzZS5qcwpAQCAt
MTAyLDYgKzEwMiw5IEBAIGZ1bmN0aW9uIHJlamVjdFByb21pc2UocHJvbWlzZSwgcmVhc29uKQog
ICAgIHByb21pc2UuQHByb21pc2VGdWxmaWxsUmVhY3Rpb25zID0gdW5kZWZpbmVkOwogICAgIHBy
b21pc2UuQHByb21pc2VSZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7CiAgICAgcHJvbWlzZS5A
cHJvbWlzZVN0YXRlID0gQHByb21pc2VSZWplY3RlZDsKKworICAgIEBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24ucHJvbWlzZVJlamVjdGVkKHByb21pc2UsIHJlYXNvbiwgcmVhY3Rpb25zKTsKKwog
ICAgIEB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIHJlYXNvbik7CiB9CiAKQEAg
LTExNCw2ICsxMTcsOSBAQCBmdW5jdGlvbiBmdWxmaWxsUHJvbWlzZShwcm9taXNlLCB2YWx1ZSkK
ICAgICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKICAgICBw
cm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkOwogICAgIHByb21pc2Uu
QHByb21pc2VTdGF0ZSA9IEBwcm9taXNlRnVsZmlsbGVkOworCisgICAgQEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5wcm9taXNlRnVsZmlsbGVkKHByb21pc2UsIHZhbHVlLCByZWFjdGlvbnMpOwor
CiAgICAgQHRyaWdnZXJQcm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVy
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApp
bmRleCBkN2FlMDc3OTVhZjllNjkzYzllMzg0ZmJmM2Y1MWYzNmMxYWE1NjMwLi4zNDQ3YjM5OGZk
MDYxODA1OTA5ZTZmMDIyZTNkNjY1MjNiYWM0Njk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTEzMSw2ICsxMzEsNyBAQAog
ICAgIG1hY3JvKGlucHV0KSBcCiAgICAgbWFjcm8oaW5zdHJ1Y3Rpb25Db3VudCkgXAogICAgIG1h
Y3JvKGlzQXJyYXkpIFwKKyAgICBtYWNybyhpc0VuYWJsZWQpIFwKICAgICBtYWNybyhpc1Byb3Rv
dHlwZU9mKSBcCiAgICAgbWFjcm8oaXNWaWV3KSBcCiAgICAgbWFjcm8oaXNXYXRjaHBvaW50KSBc
CkBAIC0yOTUsMTMgKzI5NiwxMiBAQAogICAgIG1hY3JvKGhhbmRsZXIpIFwKICAgICBtYWNybyhw
cm9taXNlU3RhdGUpIFwKICAgICBtYWNybyhwcm9taXNlUGVuZGluZykgXAotICAgIG1hY3JvKHBy
b21pc2VGdWxmaWxsZWQpIFwKLSAgICBtYWNybyhwcm9taXNlUmVqZWN0ZWQpIFwKICAgICBtYWNy
byhwcm9taXNlRnVsZmlsbFJlYWN0aW9ucykgXAogICAgIG1hY3JvKHByb21pc2VSZWplY3RSZWFj
dGlvbnMpIFwKICAgICBtYWNybyhwcm9taXNlUmVzdWx0KSBcCiAgICAgbWFjcm8oY2FwYWJpbGl0
aWVzKSBcCiAgICAgbWFjcm8oc3RhckRlZmF1bHQpIFwKKyAgICBtYWNybyhJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24pIFwKIAogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NGQ4M2ZiZmQyMjAyNjE5MWJhYTVhYzA5ZmFhNzZjMzMy
Y2VjOTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwCkBAIC0wLDAgKzEsMTAwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oIgorCisjaW5j
bHVkZSAiSlNDSW5saW5lcy5oIgorI2luY2x1ZGUgIkxvb2t1cC5oIgorI2luY2x1ZGUgPHd0Zi9E
YXRhTG9nLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdERhdGFMb2dJbXBsKEV4ZWNTdGF0ZSop
OworCit9CisKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0Lmgi
CisKK25hbWVzcGFjZSBKU0MgeworCitTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVD
VElCTEUoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KTsKKworY29uc3QgQ2xhc3NJbmZv
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6c19pbmZvID0geyAiSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uIiwgJkJhc2U6OnNfaW5mbywgJmluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdFRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdCkgfTsKKworLyogU291cmNlIGZvciBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qu
bHV0LmgKK0BiZWdpbiBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RUYWJsZQorICAgIGRl
YnVnICAgICAgICAgICAgIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdERlYnVnICAgICAg
ICAgICAgRG9udEVudW18RnVuY3Rpb24gMQorICAgIGRhdGFMb2dJbXBsICAgICAgIGluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdERhdGFMb2dJbXBsICAgICAgRG9udEVudW18RnVuY3Rpb24g
MQorICAgIHByb21pc2VGdWxmaWxsZWQgIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdFBy
b21pc2VGdWxmaWxsZWQgRG9udEVudW18RnVuY3Rpb24gMworICAgIHByb21pc2VSZWplY3RlZCAg
IGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdFByb21pc2VSZWplY3RlZCAgRG9udEVudW18
RnVuY3Rpb24gMworQGVuZAorKi8KKworSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3Qodm0sIHN0cnVjdHVyZSkKK3sKK30KKwordm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NF
UlQoaW5oZXJpdHMoaW5mbygpKSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPmlzRW5hYmxlZCwganNCb29sZWFuKGZhbHNlKSk7Cit9CisKK2Jv
b2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QgJnNsb3QpCit7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xv
dDxCYXNlPihleGVjLCBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RUYWJsZSwganNDYXN0
PEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdCo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwg
c2xvdCk7Cit9CisKK2Jvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Ojppc0VuYWJs
ZWQoVk0mIHZtKSBjb25zdAoreworICAgIHJldHVybiBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPmlzRW5hYmxlZCkuYXNCb29sZWFuKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uT2JqZWN0OjplbmFibGUoVk0mIHZtKQoreworICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+aXNFbmFibGVkLCBqc0Jvb2xlYW4odHJ1ZSkpOworfQorCit2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6ZGlzYWJsZShWTSYgdm0pCit7CisgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pc0VuYWJsZWQsIGpzQm9vbGVhbihmYWxzZSkp
OworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0RGF0YUxvZ0ltcGwoRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIEpTVmFsdWUgdGFyZ2V0ID0gZXhlYy0+YXJndW1lbnQoMCk7CisgICAgU3Ry
aW5nIHZhbHVlID0gdGFyZ2V0LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CisgICAgZGF0YUxvZyh2YWx1ZSwgIlxuIik7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbk9iamVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3MjA3MTYwY2VhNGI2MTBmY2YyZTNj
OTJhZjg1NjRkZGUxNDNmZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaApAQCAtMCwwICsxLDY3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RfaAorI2RlZmluZSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3RfaAorCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKworbmFtZXNwYWNl
IEpTQyB7CisKK2NsYXNzIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdCA6IHB1YmxpYyBK
U05vbkZpbmFsT2JqZWN0IHsKK3ByaXZhdGU6CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0KFZNJiwgU3RydWN0dXJlKik7CisKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmlu
YWxPYmplY3QgQmFzZTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdDsKKwor
ICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QqIGNyZWF0ZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAg
IHsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KiBvYmplY3QgPSBuZXcg
KE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q+KHZt
LmhlYXApKSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qodm0sIHN0cnVjdHVyZSk7Cisg
ICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAg
IHJldHVybiBvYmplY3Q7CisgICAgfQorCisgICAgREVDTEFSRV9JTkZPOworCisgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKKworICAgIHZvaWQgZW5hYmxlKFZNJik7CisgICAgdm9pZCBkaXNhYmxl
KFZNJik7CisgICAgYm9vbCBpc0VuYWJsZWQoVk0mKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOworfTsKKworfSAvLyBu
YW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Rf
aApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
CmluZGV4IGNlZTliYmQ5NDA0NDkxMjg5NDM4MjcxZDAwNDQxN2MyMjlhZDA0MjMuLjI1YWNlOTI2
OTE4MGFkZDczYzRlYWU5OGQzODk1NzhlNDZhZWI1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNp
bmNsdWRlICJGdW5jdGlvblByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgog
I2luY2x1ZGUgIkhlYXBJdGVyYXRpb25TY29wZS5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdC5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAi
SXRlcmF0b3JQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0FQSVdyYXBwZXJPYmplY3QuaCIKQEAg
LTQ5Miw4ICs0OTMsOCBAQCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3ltYm9sSXRlcmF0
b3JQcml2YXRlTmFtZSgpLCBTeW1ib2w6OmNyZWF0ZSh2bSwgc3RhdGljX2Nhc3Q8U3ltYm9sSW1w
bCY+KCp2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbC5pbXBsKCkpKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+UHJvbWlzZVByaXZhdGVOYW1lLCBtX3Byb21pc2VDb25zdHJ1Y3Rvci5n
ZXQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVBlbmRpbmdQcml2YXRlTmFtZSwg
anNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTUHJvbWlzZTo6U3RhdHVzOjpQZW5kaW5n
KSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJv
cGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VGdWxmaWxsZWRQcml2YXRlTmFtZSwg
anNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTUHJvbWlzZTo6U3RhdHVzOjpGdWxmaWxs
ZWQpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+cHJvbWlzZVJlamVjdGVkUHJpdmF0ZU5hbWUs
IGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6UmVqZWN0
ZWQpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQ
cm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZUZ1bGZp
bGxlZFByaXZhdGVOYW1lKCksIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21p
c2U6OlN0YXR1czo6RnVsZmlsbGVkKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnByb21pc2VSZWplY3RlZFByaXZhdGVOYW1lKCksIGpzTnVtYmVyKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6UmVqZWN0ZWQpKSwgRG9udEVudW0gfCBEb250
RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudG9MZW5ndGhQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVu
Y1RvTGVuZ3RoLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50b0ludGVn
ZXJQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1RvSW50ZWdlciwgRG9udEVudW0gfCBEb250RGVs
ZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkuaXNPYmplY3RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpj
cmVhdGVCdWlsdGluRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdElzT2JqZWN0Q29kZUdlbmVyYXRv
cih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCkBAIC01MDYs
NiArNTA3LDcgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICAgICAgR2xvYmFsUHJvcGVy
dHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNyZWF0ZVJlc29sdmluZ0Z1
bmN0aW9uc1ByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2
bSwgb3BlcmF0aW9uc1Byb21pc2VDcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnNDb2RlR2VuZXJhdG9y
KHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21p
c2VSZWFjdGlvbkpvYlByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5j
dGlvbih2bSwgb3BlcmF0aW9uc1Byb21pc2VQcm9taXNlUmVhY3Rpb25Kb2JDb2RlR2VuZXJhdG9y
KHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21p
c2VSZXNvbHZlVGhlbmFibGVKb2JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWls
dGluRnVuY3Rpb24odm0sIG9wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpv
YkNvZGVHZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uUHJpdmF0ZU5hbWUoKSwgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpjcmVhdGUodm0sIHRoaXMsIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlw
ZS5nZXQoKSkpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgfTsKICAg
ICBhZGRTdGF0aWNHbG9iYWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGlj
R2xvYmFscykpOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258885</attachid>
            <date>2015-08-13 00:44:53 -0700</date>
            <delta_ts>2015-08-13 10:30:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147942-20150813004436.patch</filename>
            <type>text/plain</type>
            <size>31922</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZWM2NDI1YzVlMTZmODAzODQ5NWY3ZGFiMTA4NDZjZjE4YTBhNGVjLi41NjcxNzBjNGU4NWY2N2Uz
MDNhNWViNjQ4NTc0OTFlNmIxYzE3MGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxNS0wOC0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBZGQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIGJ1aWx0aW4gb2Jq
ZWN0IHRvIGluc3RydW1lbnQgdGhlIGNvZGUgaW4gSlMgYnVpbHRpbnMgbGlrZSBQcm9taXNlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTQyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIG5ldyBwcml2YXRlIGdsb2JhbCBvYmplY3QsIEBJbnNwZWN0b3JJbnN0cnVtZW50cy4K
KyAgICAgICAgSXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyB0aGUgbmFtZXNwYWNlIG9iamVj
dCAobGlrZSBSZWZsZWN0L01hdGgpIGZvciBJbnNwZWN0b3IncworICAgICAgICBpbnN0cnVtZW50
YXRpb24gc3lzdGVtIGFuZCBpdCBpcyB1c2VkIHRvIGluc3RydW1lbnQgdGhlIGJ1aWx0aW4gSlMg
Y29kZSwgbGlrZSBQcm9taXNlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnVpbHRpbnMvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzOiBBZGRlZC4KKyAgICAgICAgKGRlYnVnKToKKyAg
ICAgICAgKHByb21pc2VGdWxmaWxsZWQpOgorICAgICAgICAocHJvbWlzZVJlamVjdGVkKToKKyAg
ICAgICAgKiBidWlsdGlucy9PcGVyYXRpb25zLlByb21pc2UuanM6CisgICAgICAgIChyZWplY3RQ
cm9taXNlKToKKyAgICAgICAgKGZ1bGZpbGxQcm9taXNlKToKKyAgICAgICAgKiBydW50aW1lL0Nv
bW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QpOgorICAgICAgICAo
SlNDOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAg
ICAgICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAoSlNDOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6Omlz
RW5hYmxlZCk6CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6
ZW5hYmxlKToKKyAgICAgICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Ojpk
aXNhYmxlKToKKyAgICAgICAgKEpTQzo6aW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0RGF0
YUxvZ0ltcGwpOgorICAgICAgICAqIHJ1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0Lmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgorCiAyMDE1LTA4LTEyICBH
ZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlZCBjbGVh
ckV2YWxDb2RlQ2FjaGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDlk
NGQyMDdlOGMzMDY4NTllMmFlZmFmOTUwYjEyY2I1YTRhNDJiMGYuLjg2NTUyYTk2Zjc5NDMzMTE5
ZTQ3ODhkZjk2MDQ3ZDZhYTJlZGRmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTQ4Niw2ICs0ODYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUlVOVElNRV9TT1VSQ0VT
CiAgICAgcnVudGltZS9JbmRleGluZ1R5cGUuY3BwCiAgICAgcnVudGltZS9JbmZlcnJlZFZhbHVl
LmNwcAogICAgIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAKKyAgICBydW50aW1lL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAKICAgICBydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uY3BwCiAgICAgcnVudGltZS9JbnRsQ29sbGF0b3IuY3BwCiAgICAgcnVudGltZS9JbnRs
Q29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTYzOCw2ICs2MzksNyBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfTFVUX0ZJTEVTCiAgICAgcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCiAgICAgcnVu
dGltZS9EYXRlUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisg
ICAgcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwCiAgICAgcnVudGlt
ZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKICAgICBydW50aW1lL0ludGxDb2xsYXRvclBy
b3RvdHlwZS5jcHAKICAgICBydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2Ug
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBkMDcxMjY1
MmEwOWIxYzhhZjUxZGEyZTY2ZDlhMTg0YjMwNTlhZTU3Li4xY2IyZDVjYmEzYmQzNWUyMDlmOWQy
YzdiYjQ2N2IyYjk2ZjdmYTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtNDEsNiArNDEsNyBAQCBhbGwgOiBcCiAgICAgRGF0ZUNvbnN0cnVjdG9yLmx1
dC5oIFwKICAgICBEYXRlUHJvdG90eXBlLmx1dC5oIFwKICAgICBFcnJvclByb3RvdHlwZS5sdXQu
aCBcCisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oIFwKICAgICBJbnRs
Q29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaCBcCiAgICAgSW50bENvbGxhdG9yUHJvdG90eXBlLmx1
dC5oIFwKICAgICBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5sdXQuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagppbmRleCA2M2M5ZTNlNThlYjdiZDJhM2E5Njlh
Nzg2ZTBjNWUyMzJkYWZmNDY5Li4wMWQ4MzdmMjk2Y2U0MmY3NjU2MTc5MDI3MGNiMzY4MDM0MmRj
YjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKQEAgLTc0MCw2ICs3
NDAsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbmRleGluZ1R5cGUu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbmZlcnJlZFZhbHVl
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW5pdGlhbGl6ZVRo
cmVhZGluZy5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3IuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAiIC8+CkBAIC05MTAs
NiArOTExLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xJbmplY3RlZFNjcmlwdFNvdXJjZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQo
UGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEluc3Bl
Y3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVmlld1Byb3RvdHlwZS5sdXQuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRm
b3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0dsb2JhbE9i
amVjdC5sdXQuaCIgLz4KQEAgLTE1NjMsNiArMTU2NSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxydW50aW1lXEludDMyQXJyYXkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJ1bnRpbWVcSW50OEFycmF5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
dW50aW1lXEludGVybmFsRnVuY3Rpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGxDb2xsYXRvci5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0b3JQcm90b3R5cGUuaCIg
Lz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpp
bmRleCBjMWViYjg0MzI1NTBlODMzOWE3ZjNjMjhmNTZkODljNjkyNDYxNWFhLi5jZTFhYjI0ODA4
MWFlZmRiOGVhNWZlZGYzNGFhM2QyOWZjNDg5OTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZp
bHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02NDIsNiArNjQyLDkgQEAKICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAiPgog
ICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dC5jcHAiPgorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24uY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAt
MjczOCw2ICsyNzQxLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW5p
dGlhbGl6ZVRocmVhZGluZy5oIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCI+CisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRl
cj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVc
SW50ZXJuYWxGdW5jdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpAQCAtMzE4Niw2ICszMTkyLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJz
LmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkIFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmgiPgorICAgICAgPEZpbHRlcj5EZXJp
dmVkIFNvdXJjZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJl
KVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMu
aCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWQgU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlN2VhODk2ZTkwY2RkYThlYzM3
MzZmZTlmZDk0MjMzYTZhMDc4OGY0Li5mZGM2ODM3MWRkYjJiZTU1MzQ5NDFmODMyYzhjNzIwMWI0
MDZkYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY5MiwxMiArMTY5Miwx
NSBAQAogCQlFMThFM0E1OTBERjkyNzhDMDBEOTBCMzQgLyogVk0uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4RTNBNTcwREY5Mjc4QzAwRDkwQjM0
IC8qIFZNLmNwcCAqLzsgfTsKIAkJRTMzNjM3QTUxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RP
YmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTMzNjM3QTMxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuY3BwICovOyB9OwogCQlF
MzM2MzdBNjFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzNjM3QTQxQjYzMjIwMjAwRUUwODQw
IC8qIFJlZmxlY3RPYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlFMzNCM0UyNjFCN0FCRDc1MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTMzQjNFMjUxQjdBQkQ3NTAwNDhEQjJFIC8qIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdC5sdXQuaCAqLzsgfTsKIAkJRTM1NDYyMkIxQjYwNjVEMTAwNTQ1Mzg2IC8q
IENvbnN0cnVjdEFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzNTQ2MjJBMUI2MDY1RDEwMDU0NTM4NiAvKiBDb25zdHJ1Y3RBYmlsaXR5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3OTRF
NzUxQjc3RUI5NzAwNTU0M0FFIC8qIE1vZHVsZUFuYWx5emVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNzk0RTczMUI3N0VCOTcwMDU1NDNBRSAv
KiBNb2R1bGVBbmFseXplci5jcHAgKi87IH07CiAJCUUzNzk0RTc2MUI3N0VCOTcwMDU1NDNBRSAv
KiBNb2R1bGVBbmFseXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTM3OTRFNzQxQjc3RUI5NzAwNTU0M0FFIC8qIE1vZHVsZUFuYWx5emVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM5NjNDRUQx
QjczRjc1MDAwRUI0Q0U1IC8qIE1vZHVsZVJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjNDRUIxQjczRjc1MDAwRUI0Q0U1IC8qIE1vZHVs
ZVJlY29yZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUUzOTYzQ0VFMUI3M0Y3NTAwMEVCNENFNSAvKiBOb2Rlc0FuYWx5emVNb2R1bGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjNDRUMxQjcz
Rjc1MDAwRUI0Q0U1IC8qIE5vZGVzQW5hbHl6ZU1vZHVsZS5jcHAgKi87IH07CiAJCUUzQzA5RjU1
MUI3OTY5MkEwMEVFMzZBMiAvKiBNb2R1bGVSZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDMDlGNTQxQjc5NjkyQTAwRUUzNkEyIC8qIE1v
ZHVsZVJlY29yZC5jcHAgKi87IH07CisJCUUzNUUwMzVGMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1RTAzNUQxQjdBQjQzRTAwNzNBRDJBIC8qIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAgKi87IH07CisJCUUzNUUwMzYwMUI3QUI0M0UwMDcz
QUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUUwMzVFMUI3QUI0M0UwMDczQUQyQSAv
KiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0VGODg3NDFCNjZERjIzMDAzRjI2Q0IgLyog
SlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFM0VGODg3MjFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5jcHAgKi87IH07CiAJCUUzRUY4ODc1MUI2NkRGMjMwMDNGMjZDQiAvKiBKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFM0VGODg3MzFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUU0OURDMTZCMTJFRjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTU1MTJFRjI3
NzIwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLzsgfTsKQEAgLTM1MjEsMTIg
KzM1MjQsMTYgQEAKIAkJRTE4RTNBNTcwREY5Mjc4QzAwRDkwQjM0IC8qIFZNLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBWTS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9
IHhjb2RlLmxhbmcuY3BwOyB9OwogCQlFMzM2MzdBMzFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVj
dE9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWZsZWN0
T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMzNjM3QTQxQjYzMjIw
MjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVmbGVjdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzNC
M0UyNTFCN0FCRDc1MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QubHV0Lmg7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qu
bHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTQ2MjJBMUI2MDY1RDEwMDU0
NTM4NiAvKiBDb25zdHJ1Y3RBYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvbnN0cnVjdEFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM3
OTRFNzMxQjc3RUI5NzAwNTU0M0FFIC8qIE1vZHVsZUFuYWx5emVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZHVsZUFuYWx5emVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM3OTRFNzQxQjc3RUI5NzAwNTU0M0FFIC8qIE1vZHVsZUFuYWx5
emVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUFuYWx5emVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTYzQ0VCMUI3M0Y3NTAwMEVCNENFNSAv
KiBNb2R1bGVSZWNvcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxl
UmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTYzQ0VDMUI3M0Y3NTAw
MEVCNENFNSAvKiBOb2Rlc0FuYWx5emVNb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTm9kZXNBbmFseXplTW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTNDMDlGNTQxQjc5NjkyQTAwRUUzNkEyIC8qIE1vZHVsZVJlY29yZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVSZWNvcmQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVFMDM1RDFCN0FCNDNFMDA3M0FEMkEgLyog
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNUUwMzVFMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUzNUUwMzYxMUI3QUI0ODUwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25PYmplY3QuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGgg
PSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzRUY4ODcyMUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGODg3MzFC
NjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3VyY2VQcm92
aWRlckNhY2hlSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQ
cm92aWRlckNhY2hlSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDM1Miw2
ICs0MzU5LDcgQEAKIAkJCQlBNTMyNDM4MjE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yQmFj
a2VuZERpc3BhdGNoZXJzLmggKi8sCiAJCQkJQTUzMjQzODMxODU2ODMxNzAwMkVENjkyIC8qIElu
c3BlY3RvckZyb250ZW5kRGlzcGF0Y2hlcnMuY3BwICovLAogCQkJCUE1MzI0Mzg0MTg1NjgzMTcw
MDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmggKi8sCisJCQkJRTMzQjNF
MjUxQjdBQkQ3NTAwNDhEQjJFIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5sdXQu
aCAqLywKIAkJCQlBNTMyNDM4NTE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yUHJvdG9jb2xP
YmplY3RzLmNwcCAqLywKIAkJCQlBNTMyNDM4NjE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9y
UHJvdG9jb2xPYmplY3RzLmggKi8sCiAJCQkJQTE4MTkzRTExQjRFMENEQjAwRkMxMDI5IC8qIElu
dGxDb2xsYXRvckNvbnN0cnVjdG9yLmx1dC5oICovLApAQCAtNDYwMiw2ICs0NjEwLDggQEAKIAkJ
CQkwRkY4QkRFOTFBRDRDRjcxMDBERkU4ODQgLyogSW5mZXJyZWRWYWx1ZS5oICovLAogCQkJCUUx
Nzg2MzZDMEQ5QkVFQzMwMEQ3NEU3NSAvKiBJbml0aWFsaXplVGhyZWFkaW5nLmNwcCAqLywKIAkJ
CQlFMTc4NjMzRjBEOUJFQzAwMDBENzRFNzUgLyogSW5pdGlhbGl6ZVRocmVhZGluZy5oICovLAor
CQkJCUUzNUUwMzVEMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3QuY3BwICovLAorCQkJCUUzNUUwMzVFMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25PYmplY3QuaCAqLywKIAkJCQlBN0E4QUYyQjE3QURCNUYzMDA1QUIxNzQg
LyogSW50OEFycmF5LmggKi8sCiAJCQkJQTdBOEFGMkMxN0FEQjVGMzAwNUFCMTc0IC8qIEludDE2
QXJyYXkuaCAqLywKIAkJCQlBN0E4QUYyRDE3QURCNUYzMDA1QUIxNzQgLyogSW50MzJBcnJheS5o
ICovLApAQCAtNTcwOCw2ICs1NzE4LDcgQEAKIAkJCQlBNzVFRTlCMDE4QUFCN0UyMDBBQUQwNDMg
LyogQnVpbHRpbk5hbWVzLmggKi8sCiAJCQkJQTdBOTc5QzQxOEJFOEQ5RTAwMkMzNzMzIC8qIEZ1
bmN0aW9uLnByb3RvdHlwZS5qcyAqLywKIAkJCQk3Q0Y5QkM1QTFCNjVEOUEzMDA5REIxRUYgLyog
R2xvYmFsT2JqZWN0LmpzICovLAorCQkJCUUzNUUwMzYxMUI3QUI0ODUwMDczQUQyQSAvKiBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuanMgKi8sCiAJCQkJN0NGOUJDNUIxQjY1RDlBMzAw
OURCMUVGIC8qIEl0ZXJhdG9yLnByb3RvdHlwZS5qcyAqLywKIAkJCQk3Q0Y5QkM1QzFCNjVEOUIx
MDA5REIxRUYgLyogT2JqZWN0Q29uc3RydWN0b3IuanMgKi8sCiAJCQkJN0NGOUJDNUQxQjY1RDlC
MTAwOURCMUVGIC8qIE9wZXJhdGlvbnMuUHJvbWlzZS5qcyAqLywKQEAgLTYwNTUsNiArNjA2Niw3
IEBACiAJCQkJMEYzMDBCNzgxOEFCMDUxMTAwQTZENzJFIC8qIERGR05vZGVPcmlnaW4uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQTU4MUJDMTUwRTk1MzAwMEI5QTJEOSAvKiBERkdOb2RlVHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlERDAxMzI4REY4MjAwMkIyQUQ3IC8qIERGR09wZXJh
dGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzM0IzRTI2MUI3QUJENzUwMDQ4REIyRSAvKiBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
N0Q4OUNGRTE3QTBCOENDMDA3NzNBRDggLyogREZHT1NSQXZhaWxhYmlsaXR5QW5hbHlzaXNQaGFz
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEODJFNTcxNDFEQUYxMDAwMTc5Qzk0IC8qIERGR09T
UkVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4QTMyNjE3RDUxRjU3MDBDQTJDNDAgLyog
REZHT1NSRW50cnlwb2ludENyZWF0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtNjM2OCw2
ICs2MzgwLDcgQEAKIAkJCQlBNTdEMjNFQTE4OTFCMDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmpl
Y3REZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzc1NkZDOTBFMjAzMUIyMDBE
RTdEMTIgLyogSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
MTAwN0MxMTg3Q0MzQzYwMEIzODg3OSAvKiBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNUUwMzYwMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MEU0QjY0
MTg4MDlERDUwMDY4QTQ2RCAvKiBKU0dsb2JhbE9iamVjdFJ1bnRpbWVBZ2VudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTUwM0ZBMkExODhGMTA1OTAwMTEwRjE0IC8qIEpTR2xvYmFsT2JqZWN0U2Ny
aXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MTNFNUMwMTg1QkZBQ0MwMDdF
OTVBRCAvKiBKU0luamVjdGVkU2NyaXB0SG9zdC5oIGluIEhlYWRlcnMgKi8sCkBAIC03Mzg1LDYg
KzczOTgsNyBAQAogCQkJCTcwRUNBNjA3MUFGREJFQTIwMDQ0OTczOSAvKiBUZW1wbGF0ZVJlZ2lz
dHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjM1QkVCMTcxNzhFNzMwMDY5MEM3RiAvKiBE
RkdPU1JFeGl0QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMwOTc5MjE0NkE2RjczMDBD
RjI0NDIgLyogREZHT1NSRXhpdENvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzNUUw
MzVGMUI3QUI0M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMDk3NzYxNDY5NDNCMDAwQ0YyNDQyIC8qIERGR09TUkV4
aXRDb21waWxlcjMyXzY0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5NzcyMTQ2OTNBRjkw
MENGMjQ0MiAvKiBERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
MEVDMEVDMjFBQTBEN0RBMDBCNkFBRkEgLyogSlNTdHJpbmdJdGVyYXRvci5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25PYmplY3QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1ZWY1ZjJi
MGFmN2RlNzA3YzY2MmUzOWMyYjQyNjAzYjgyNDYwNGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0
LmpzCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitmdW5jdGlvbiBkZWJ1Zyh2YWx1ZSkKK3sKKyAgICAidXNlIHN0cmljdCI7CisK
KyAgICBpZiAoIXRoaXMuaXNFbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICB0aGlzLmRh
dGFMb2dJbXBsKHZhbHVlKTsKK30KKworZnVuY3Rpb24gcHJvbWlzZUZ1bGZpbGxlZChwcm9taXNl
LCB2YWx1ZSwgcmVhY3Rpb25zKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKworICAgIGlmICghdGhp
cy5pc0VuYWJsZWQpCisgICAgICAgIHJldHVybjsKK30KKworZnVuY3Rpb24gcHJvbWlzZVJlamVj
dGVkKHByb21pc2UsIHJlYXNvbiwgcmVhY3Rpb25zKQoreworICAgICJ1c2Ugc3RyaWN0IjsKKwor
ICAgIGlmICghdGhpcy5pc0VuYWJsZWQpCisgICAgICAgIHJldHVybjsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PcGVyYXRpb25zLlByb21pc2UuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT3BlcmF0aW9ucy5Qcm9taXNlLmpzCmluZGV4
IDgwYzU3YWIwYjY1OTQxZTE5MjlmNDdiYTM1YmQ3NzVmNTgyZGRkMGIuLjY2ZjljMjUxNTM1OWM3
YTUxMjU0ZjkzN2ZjN2Y1MWNjZDEzMTI0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9idWlsdGlucy9PcGVyYXRpb25zLlByb21pc2UuanMKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL09wZXJhdGlvbnMuUHJvbWlzZS5qcwpAQCAtMTAyLDYgKzEwMiw5IEBA
IGZ1bmN0aW9uIHJlamVjdFByb21pc2UocHJvbWlzZSwgcmVhc29uKQogICAgIHByb21pc2UuQHBy
b21pc2VGdWxmaWxsUmVhY3Rpb25zID0gdW5kZWZpbmVkOwogICAgIHByb21pc2UuQHByb21pc2VS
ZWplY3RSZWFjdGlvbnMgPSB1bmRlZmluZWQ7CiAgICAgcHJvbWlzZS5AcHJvbWlzZVN0YXRlID0g
QHByb21pc2VSZWplY3RlZDsKKworICAgIEBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24ucHJvbWlz
ZVJlamVjdGVkKHByb21pc2UsIHJlYXNvbiwgcmVhY3Rpb25zKTsKKwogICAgIEB0cmlnZ2VyUHJv
bWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIHJlYXNvbik7CiB9CiAKQEAgLTExNCw2ICsxMTcsOSBA
QCBmdW5jdGlvbiBmdWxmaWxsUHJvbWlzZShwcm9taXNlLCB2YWx1ZSkKICAgICBwcm9taXNlLkBw
cm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKICAgICBwcm9taXNlLkBwcm9taXNl
UmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkOwogICAgIHByb21pc2UuQHByb21pc2VTdGF0ZSA9
IEBwcm9taXNlRnVsZmlsbGVkOworCisgICAgQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5wcm9t
aXNlRnVsZmlsbGVkKHByb21pc2UsIHZhbHVlLCByZWFjdGlvbnMpOworCiAgICAgQHRyaWdnZXJQ
cm9taXNlUmVhY3Rpb25zKHJlYWN0aW9ucywgdmFsdWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCBkN2FlMDc3OTVh
ZjllNjkzYzllMzg0ZmJmM2Y1MWYzNmMxYWE1NjMwLi4zNDQ3YjM5OGZkMDYxODA1OTA5ZTZmMDIy
ZTNkNjY1MjNiYWM0Njk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTEzMSw2ICsxMzEsNyBAQAogICAgIG1hY3JvKGlucHV0
KSBcCiAgICAgbWFjcm8oaW5zdHJ1Y3Rpb25Db3VudCkgXAogICAgIG1hY3JvKGlzQXJyYXkpIFwK
KyAgICBtYWNybyhpc0VuYWJsZWQpIFwKICAgICBtYWNybyhpc1Byb3RvdHlwZU9mKSBcCiAgICAg
bWFjcm8oaXNWaWV3KSBcCiAgICAgbWFjcm8oaXNXYXRjaHBvaW50KSBcCkBAIC0yOTUsMTMgKzI5
NiwxMiBAQAogICAgIG1hY3JvKGhhbmRsZXIpIFwKICAgICBtYWNybyhwcm9taXNlU3RhdGUpIFwK
ICAgICBtYWNybyhwcm9taXNlUGVuZGluZykgXAotICAgIG1hY3JvKHByb21pc2VGdWxmaWxsZWQp
IFwKLSAgICBtYWNybyhwcm9taXNlUmVqZWN0ZWQpIFwKICAgICBtYWNybyhwcm9taXNlRnVsZmls
bFJlYWN0aW9ucykgXAogICAgIG1hY3JvKHByb21pc2VSZWplY3RSZWFjdGlvbnMpIFwKICAgICBt
YWNybyhwcm9taXNlUmVzdWx0KSBcCiAgICAgbWFjcm8oY2FwYWJpbGl0aWVzKSBcCiAgICAgbWFj
cm8oc3RhckRlZmF1bHQpIFwKKyAgICBtYWNybyhJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24pIFwK
IAogCiBuYW1lc3BhY2UgSlNDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmY3NGQ4M2ZiZmQyMjAyNjE5MWJhYTVhYzA5ZmFhNzZjMzMyY2VjOTMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25PYmplY3QuY3BwCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ikluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5oIgorCisjaW5jbHVkZSAiSlNDSW5saW5l
cy5oIgorI2luY2x1ZGUgIkxvb2t1cC5oIgorI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CisKK25h
bWVzcGFjZSBKU0MgeworCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbk9iamVjdERhdGFMb2dJbXBsKEV4ZWNTdGF0ZSopOworCit9CisKKyNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmgiCisKK25hbWVzcGFjZSBK
U0MgeworCitTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uT2JqZWN0KTsKKworY29uc3QgQ2xhc3NJbmZvIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdDo6c19pbmZvID0geyAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIiwg
JkJhc2U6OnNfaW5mbywgJmluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdFRhYmxlLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdCkgfTsKKworLyog
U291cmNlIGZvciBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmgKK0BiZWdpbiBp
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RUYWJsZQorICAgIGRlYnVnICAgICAgICAgICAg
IGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdERlYnVnICAgICAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gMQorICAgIGRhdGFMb2dJbXBsICAgICAgIGluc3BlY3Rvckluc3RydW1lbnRhdGlv
bk9iamVjdERhdGFMb2dJbXBsICAgICAgRG9udEVudW18RnVuY3Rpb24gMQorICAgIHByb21pc2VG
dWxmaWxsZWQgIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdFByb21pc2VGdWxmaWxsZWQg
RG9udEVudW18RnVuY3Rpb24gMworICAgIHByb21pc2VSZWplY3RlZCAgIGluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdFByb21pc2VSZWplY3RlZCAgRG9udEVudW18RnVuY3Rpb24gMworQGVu
ZAorKi8KKworSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25PYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKKyAgICA6IEpTTm9u
RmluYWxPYmplY3Qodm0sIHN0cnVjdHVyZSkKK3sKK30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25PYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqKQor
eworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoaW5m
bygpKSk7CisgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmlzRW5hYmxlZCwganNCb29sZWFuKGZhbHNlKSk7Cit9CisKK2Jvb2wgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qg
JnNsb3QpCit7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxCYXNlPihleGVjLCBp
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RUYWJsZSwganNDYXN0PEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdCo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jv
b2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Ojppc0VuYWJsZWQoVk0mIHZtKSBjb25z
dAoreworICAgIHJldHVybiBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmlzRW5hYmxl
ZCkuYXNCb29sZWFuKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0
OjplbmFibGUoVk0mIHZtKQoreworICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
aXNFbmFibGVkLCBqc0Jvb2xlYW4odHJ1ZSkpOworfQorCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdDo6ZGlzYWJsZShWTSYgdm0pCit7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5pc0VuYWJsZWQsIGpzQm9vbGVhbihmYWxzZSkpOworfQorCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0RGF0YUxvZ0ltcGwoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpT
VmFsdWUgdGFyZ2V0ID0gZXhlYy0+YXJndW1lbnQoMCk7CisgICAgU3RyaW5nIHZhbHVlID0gdGFy
Z2V0LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cisg
ICAgZGF0YUxvZyh2YWx1ZSwgIlxuIik7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM3MjA3MTYwY2VhNGI2MTBmY2YyZTNjOTJhZjg1NjRkZGUxNDNm
ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3RfaAorI2RlZmluZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3RfaAorCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNz
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0
IHsKK3ByaXZhdGU6CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KFZNJiwgU3Ry
dWN0dXJlKik7CisKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsK
KyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1
cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdDsKKworICAgIHN0YXRpYyBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QqIGNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9j
YXRlQ2VsbDxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q+KHZtLmhlYXApKSBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25PYmplY3Qodm0sIHN0cnVjdHVyZSk7CisgICAgICAgIG9iamVjdC0+
ZmluaXNoQ3JlYXRpb24odm0sIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBvYmplY3Q7
CisgICAgfQorCisgICAgREVDTEFSRV9JTkZPOworCisgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCisgICAgeworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
KworICAgIHZvaWQgZW5hYmxlKFZNJik7CisgICAgdm9pZCBkaXNhYmxlKFZNJik7CisgICAgYm9v
bCBpc0VuYWJsZWQoVk0mKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisK
KyNlbmRpZiAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RfaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IGNlZTliYmQ5
NDA0NDkxMjg5NDM4MjcxZDAwNDQxN2MyMjlhZDA0MjMuLjI1YWNlOTI2OTE4MGFkZDczYzRlYWU5
OGQzODk1NzhlNDZhZWI1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJGdW5jdGlv
blByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkhlYXBJ
dGVyYXRpb25TY29wZS5oIgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dC5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSXRlcmF0b3JQcm90b3R5
cGUuaCIKICNpbmNsdWRlICJKU0FQSVdyYXBwZXJPYmplY3QuaCIKQEAgLTQ5Miw4ICs0OTMsOCBA
QCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFt
ZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuc3ltYm9sSXRlcmF0b3JQcml2YXRlTmFtZSgp
LCBTeW1ib2w6OmNyZWF0ZSh2bSwgc3RhdGljX2Nhc3Q8U3ltYm9sSW1wbCY+KCp2bS5wcm9wZXJ0
eU5hbWVzLT5pdGVyYXRvclN5bWJvbC5pbXBsKCkpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+
UHJvbWlzZVByaXZhdGVOYW1lLCBtX3Byb21pc2VDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+cHJvbWlzZVBlbmRpbmdQcml2YXRlTmFtZSwganNOdW1iZXIoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTUHJvbWlzZTo6U3RhdHVzOjpQZW5kaW5nKSksIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPnByb21pc2VGdWxmaWxsZWRQcml2YXRlTmFtZSwganNOdW1iZXIoc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTUHJvbWlzZTo6U3RhdHVzOjpGdWxmaWxsZWQpKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+cHJvbWlzZVJlamVjdGVkUHJpdmF0ZU5hbWUsIGpzTnVtYmVyKHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6UmVqZWN0ZWQpKSwgRG9udEVudW0g
fCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0u
cHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvbWlzZUZ1bGZpbGxlZFByaXZhdGVOYW1l
KCksIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6RnVs
ZmlsbGVkKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAgR2xv
YmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VS
ZWplY3RlZFByaXZhdGVOYW1lKCksIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1By
b21pc2U6OlN0YXR1czo6UmVqZWN0ZWQpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9u
bHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkudG9MZW5ndGhQcml2YXRlTmFtZSgpLCBwcml2YXRlRnVuY1RvTGVuZ3RoLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5m
byh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS50b0ludGVnZXJQcml2YXRlTmFtZSgp
LCBwcml2YXRlRnVuY1RvSW50ZWdlciwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkp
LAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkuaXNPYmplY3RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVu
Y3Rpb24odm0sIGdsb2JhbE9iamVjdElzT2JqZWN0Q29kZUdlbmVyYXRvcih2bSksIHRoaXMpLCBE
b250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCkBAIC01MDYsNiArNTA3LDcgQEAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxv
d2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmNyZWF0ZVJlc29sdmluZ0Z1bmN0aW9uc1ByaXZhdGVO
YW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgb3BlcmF0aW9uc1By
b21pc2VDcmVhdGVSZXNvbHZpbmdGdW5jdGlvbnNDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VSZWFjdGlvbkpvYlBy
aXZhdGVOYW1lKCksIEpTRnVuY3Rpb246OmNyZWF0ZUJ1aWx0aW5GdW5jdGlvbih2bSwgb3BlcmF0
aW9uc1Byb21pc2VQcm9taXNlUmVhY3Rpb25Kb2JDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21pc2VSZXNvbHZlVGhlbmFi
bGVKb2JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVuY3Rpb24odm0s
IG9wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlc29sdmVUaGVuYWJsZUpvYkNvZGVHZW5lcmF0b3Io
dm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAorICAgICAgICBH
bG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uUHJpdmF0ZU5hbWUoKSwgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0OjpjcmVhdGUodm0sIHRoaXMsIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6
Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBEb250
RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAgICAgfTsKICAgICBhZGRTdGF0aWNHbG9i
YWxzKHN0YXRpY0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOwogICAg
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258896</attachid>
            <date>2015-08-13 10:30:04 -0700</date>
            <delta_ts>2015-08-14 14:58:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147942-20150813102947.patch</filename>
            <type>text/plain</type>
            <size>32058</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4Mzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NWRmZmI1YjAyNDM0Y2NlZThmMDBlY2JhZjU5NzI3MmI5NTQ3ODRkLi42MzM3OTAyNDg1OWZjNWRl
YmU0NmViNzM5MGQ2MzRjMTYyZTlhMDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0MyBAQAorMjAxNS0wOC0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBBZGQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIGJ1aWx0aW4gb2Jq
ZWN0IHRvIGluc3RydW1lbnQgdGhlIGNvZGUgaW4gSlMgYnVpbHRpbnMgbGlrZSBQcm9taXNlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTQyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhZGRzIG5ldyBwcml2YXRlIGdsb2JhbCBvYmplY3QsIEBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uCisgICAgICAgIEl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYXMgdGhlIG5hbWVzcGFjZSBv
YmplY3QgKGxpa2UgUmVmbGVjdC9NYXRoKSBmb3IgSW5zcGVjdG9yJ3MKKyAgICAgICAgaW5zdHJ1
bWVudGF0aW9uIHN5c3RlbSBhbmQgaXQgaXMgdXNlZCB0byBpbnN0cnVtZW50IHRoZSBidWlsdGlu
IEpTIGNvZGUsIGxpa2UgUHJvbWlzZXMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52
Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJ1aWx0aW5zL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5qczogQWRkZWQuCisgICAgICAgIChkZWJ1Zyk6
CisgICAgICAgIChwcm9taXNlRnVsZmlsbGVkKToKKyAgICAgICAgKHByb21pc2VSZWplY3RlZCk6
CisgICAgICAgICogYnVpbHRpbnMvT3BlcmF0aW9ucy5Qcm9taXNlLmpzOgorICAgICAgICAocmVq
ZWN0UHJvbWlzZSk6CisgICAgICAgIChmdWxmaWxsUHJvbWlzZSk6CisgICAgICAgICogcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbk9iamVjdDo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KToKKyAgICAg
ICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0
Ojppc0VuYWJsZWQpOgorICAgICAgICAoSlNDOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3Q6OmVuYWJsZSk6CisgICAgICAgIChKU0M6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dDo6ZGlzYWJsZSk6CisgICAgICAgIChKU0M6Omluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dERhdGFMb2dJbXBsKToKKyAgICAgICAgKiBydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bk9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKwogMjAxNS0wOC0x
MyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBYLltb
U2V0UHJvdG90eXBlT2ZdXShZKSBzaG91bGQgc3VjY2VlZCBpZiBYLltbUHJvdG90eXBlXV0gaXMg
YWxyZWFkeSBZIGV2ZW4gaWYgWCBpcyBub3QgZXh0ZW5zaWJsZQogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTMwCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCA5ZDRkMjA3ZThjMzA2ODU5ZTJhZWZhZjk1MGIxMmNiNWE0YTQy
YjBmLi44NjU1MmE5NmY3OTQzMzExOWU0Nzg4ZGY5NjA0N2Q2YWEyZWRkZmQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODYsNiArNDg2LDcgQEAgc2V0KEphdmFTY3Jp
cHRDb3JlX1JVTlRJTUVfU09VUkNFUwogICAgIHJ1bnRpbWUvSW5kZXhpbmdUeXBlLmNwcAogICAg
IHJ1bnRpbWUvSW5mZXJyZWRWYWx1ZS5jcHAKICAgICBydW50aW1lL0luaXRpYWxpemVUaHJlYWRp
bmcuY3BwCisgICAgcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwCiAg
ICAgcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAogICAgIHJ1bnRpbWUvSW50bENvbGxhdG9y
LmNwcAogICAgIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwCkBAIC02MzgsNiAr
NjM5LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX0xVVF9GSUxFUwogICAgIHJ1bnRpbWUvRGF0ZUNv
bnN0cnVjdG9yLmNwcAogICAgIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKICAgICBydW50aW1l
L0Vycm9yUHJvdG90eXBlLmNwcAorICAgIHJ1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0LmNwcAogICAgIHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwCiAgICAg
cnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9JbnRsRGF0ZVRp
bWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggZDA3MTI2NTJhMDliMWM4YWY1MWRhMmU2NmQ5YTE4NGIzMDU5YWU1Ny4u
MWNiMmQ1Y2JhM2JkMzVlMjA5ZjlkMmM3YmI0NjdiMmI5NmY3ZmE1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQxLDYgKzQxLDcgQEAgYWxsIDogXAog
ICAgIERhdGVDb25zdHJ1Y3Rvci5sdXQuaCBcCiAgICAgRGF0ZVByb3RvdHlwZS5sdXQuaCBcCiAg
ICAgRXJyb3JQcm90b3R5cGUubHV0LmggXAorICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdC5sdXQuaCBcCiAgICAgSW50bENvbGxhdG9yQ29uc3RydWN0b3IubHV0LmggXAogICAgIElu
dGxDb2xsYXRvclByb3RvdHlwZS5sdXQuaCBcCiAgICAgSW50bERhdGVUaW1lRm9ybWF0Q29uc3Ry
dWN0b3IubHV0LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKaW5kZXgg
NjNjOWUzZTU4ZWI3YmQyYTNhOTY5YTc4NmUwYzVlMjMyZGFmZjQ2OS4uMDFkODM3ZjI5NmNlNDJm
NzY1NjE3OTAyNzBjYjM2ODAzNDJkY2I5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qCkBAIC03NDAsNiArNzQwLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcSW5kZXhpbmdUeXBlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHJ1bnRpbWVcSW5mZXJyZWRWYWx1ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxydW50aW1lXEluaXRpYWxpemVUaHJlYWRpbmcuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRlcm5hbEZ1bmN0aW9uLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW50bENvbGxhdG9yLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW50bENvbGxhdG9yQ29uc3Ry
dWN0b3IuY3BwIiAvPgpAQCAtOTEwLDYgKzkxMSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSW5qZWN0ZWRTY3JpcHRTb3VyY2UuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRm
b3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcnMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmgiIC8+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9y
bUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZv
cm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YVZpZXdQ
cm90b3R5cGUubHV0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcSlNHbG9iYWxPYmplY3QubHV0LmgiIC8+CkBAIC0xNTYzLDYgKzE1NjUsNyBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnQzMkFycmF5LmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEludDhBcnJheS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRlcm5hbEZ1bmN0aW9uLmgiIC8+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnRsQ29sbGF0
b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW50bENvbGxhdG9y
Q29uc3RydWN0b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSW50
bENvbGxhdG9yUHJvdG90eXBlLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYzFlYmI4NDMyNTUwZTgzMzlhN2YzYzI4ZjU2ZDg5
YzY5MjQ2MTVhYS4uY2UxYWIyNDgwODFhZWZkYjhlYTVmZWRmMzRhYTNkMjlmYzQ4OTkxOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2
YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAt
NjQyLDYgKzY0Miw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEluaXRp
YWxpemVUaHJlYWRpbmcuY3BwIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmls
dGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGlt
ZVxJbnRlcm5hbEZ1bmN0aW9uLmNwcCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KQEAgLTI3MzgsNiArMjc0MSw5IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxydW50aW1lXEluaXRpYWxpemVUaHJlYWRpbmcuaCI+CiAgICAgICA8RmlsdGVy
PnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmgiPgorICAgICAg
PEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxydW50aW1lXEludGVybmFsRnVuY3Rpb24uaCI+CiAgICAgICA8RmlsdGVy
PnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTMxODYsNiArMzE5Miw5IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQ
bGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSW5zcGVj
dG9yRnJvbnRlbmREaXNwYXRjaGVycy5oIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZCBTb3VyY2Vz
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5o
Ij4KKyAgICAgIDxGaWx0ZXI+RGVyaXZlZCBTb3VyY2VzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1
ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
JChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSW5z
cGVjdG9yUHJvdG9jb2xPYmplY3RzLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkIFNvdXJjZXM8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZTdlYTg5NmU5MGNkZGE4ZWMzNzM2ZmU5ZmQ5NDIzM2E2YTA3ODhmNC4uZmRjNjgzNzFkZGIy
YmU1NTM0OTQxZjgzMmM4YzcyMDFiNDA2ZGFhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE2OTIsMTIgKzE2OTIsMTUgQEAKIAkJRTE4RTNBNTkwREY5Mjc4QzAwRDkwQjM0IC8q
IFZNLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
OEUzQTU3MERGOTI3OEMwMEQ5MEIzNCAvKiBWTS5jcHAgKi87IH07CiAJCUUzMzYzN0E1MUI2MzIy
MDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzMzYzN0EzMUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0
T2JqZWN0LmNwcCAqLzsgfTsKIAkJRTMzNjM3QTYxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RP
YmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
MzYzN0E0MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTMzQjNFMjYxQjdBQkQ3NTAwNDhE
QjJFIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzM0IzRTI1MUI3QUJENzUwMDQ4REIy
RSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QubHV0LmggKi87IH07CiAJCUUzNTQ2
MjJCMUI2MDY1RDEwMDU0NTM4NiAvKiBDb25zdHJ1Y3RBYmlsaXR5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU0NjIyQTFCNjA2NUQxMDA1NDUzODYg
LyogQ29uc3RydWN0QWJpbGl0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUUzNzk0RTc1MUI3N0VCOTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFseXpl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzc5
NEU3MzFCNzdFQjk3MDA1NTQzQUUgLyogTW9kdWxlQW5hbHl6ZXIuY3BwICovOyB9OwogCQlFMzc5
NEU3NjFCNzdFQjk3MDA1NTQzQUUgLyogTW9kdWxlQW5hbHl6ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNzk0RTc0MUI3N0VCOTcwMDU1NDNBRSAv
KiBNb2R1bGVBbmFseXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzOTYzQ0VEMUI3M0Y3NTAwMEVCNENFNSAvKiBNb2R1bGVSZWNvcmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYzQ0VCMUI3
M0Y3NTAwMEVCNENFNSAvKiBNb2R1bGVSZWNvcmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzk2M0NFRTFCNzNGNzUwMDBFQjRDRTUgLyogTm9k
ZXNBbmFseXplTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzOTYzQ0VDMUI3M0Y3NTAwMEVCNENFNSAvKiBOb2Rlc0FuYWx5emVNb2R1bGUu
Y3BwICovOyB9OwogCQlFM0MwOUY1NTFCNzk2OTJBMDBFRTM2QTIgLyogTW9kdWxlUmVjb3JkLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzA5RjU0
MUI3OTY5MkEwMEVFMzZBMiAvKiBNb2R1bGVSZWNvcmQuY3BwICovOyB9OworCQlFMzVFMDM1RjFC
N0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNUUwMzVEMUI3QUI0
M0UwMDczQUQyQSAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwICovOyB9Owor
CQlFMzVFMDM2MDFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzVF
MDM1RTFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNFRjg4
NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNFRjg4NzIxQjY2REYyMzAw
M0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwICovOyB9OwogCQlFM0VGODg3NTFC
NjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNC
IC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2QjEyRUYyOTNFMDAxODRBMUYgLyogU291cmNl
UHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5j
cHAgKi87IH07CkBAIC0zNTIxLDEyICszNTI0LDE2IEBACiAJCUUxOEUzQTU3MERGOTI3OEMwMEQ5
MEIzNCAvKiBWTS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gVk0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3Bl
Y2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsgfTsKIAkJRTMzNjM3QTMxQjYz
MjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVmbGVjdE9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzMzYzN0E0MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZmxlY3RPYmplY3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTMzQjNFMjUxQjdBQkQ3NTAwNDhEQjJFIC8qIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbk9iamVjdC5sdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oOyBwYXRoID0gSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzU0NjIyQTFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zdHJ1Y3RBYmlsaXR5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzNzk0RTczMUI3N0VCOTcwMDU1NDNBRSAvKiBNb2R1bGVBbmFs
eXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVBbmFs
eXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNzk0RTc0MUI3N0VCOTcw
MDU1NDNBRSAvKiBNb2R1bGVBbmFseXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2R1bGVBbmFseXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk2
M0NFQjFCNzNGNzUwMDBFQjRDRTUgLyogTW9kdWxlUmVjb3JkLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1vZHVsZVJlY29yZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMzk2M0NFQzFCNzNGNzUwMDBFQjRDRTUgLyogTm9kZXNBbmFseXplTW9kdWxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGVzQW5hbHl6ZU1vZHVsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQzA5RjU0MUI3OTY5MkEwMEVFMzZB
MiAvKiBNb2R1bGVSZWNvcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTW9kdWxlUmVjb3JkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM1RTAz
NUQxQjdBQjQzRTAwNzNBRDJBIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVFMDM1RTFC
N0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzVFMDM2MTFCN0FCNDg1MDA3M0FE
MkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmpz
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0VGODg3MjFCNjZERjIzMDAzRjI2Q0Ig
LyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRl
cmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDlEQzE0OTEyRUYyNjFB
MDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTQzNTIsNiArNDM1OSw3IEBACiAJCQkJQTUzMjQzODIxODU2ODMxNzAw
MkVENjkyIC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVycy5oICovLAogCQkJCUE1MzI0Mzgz
MTg1NjgzMTcwMDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmNwcCAqLywK
IAkJCQlBNTMyNDM4NDE4NTY4MzE3MDAyRUQ2OTIgLyogSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRj
aGVycy5oICovLAorCQkJCUUzM0IzRTI1MUI3QUJENzUwMDQ4REIyRSAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25PYmplY3QubHV0LmggKi8sCiAJCQkJQTUzMjQzODUxODU2ODMxNzAwMkVENjky
IC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5jcHAgKi8sCiAJCQkJQTUzMjQzODYxODU2ODMx
NzAwMkVENjkyIC8qIEluc3BlY3RvclByb3RvY29sT2JqZWN0cy5oICovLAogCQkJCUExODE5M0Ux
MUI0RTBDREIwMEZDMTAyOSAvKiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5sdXQuaCAqLywKQEAg
LTQ2MDIsNiArNDYxMCw4IEBACiAJCQkJMEZGOEJERTkxQUQ0Q0Y3MTAwREZFODg0IC8qIEluZmVy
cmVkVmFsdWUuaCAqLywKIAkJCQlFMTc4NjM2QzBEOUJFRUMzMDBENzRFNzUgLyogSW5pdGlhbGl6
ZVRocmVhZGluZy5jcHAgKi8sCiAJCQkJRTE3ODYzM0YwRDlCRUMwMDAwRDc0RTc1IC8qIEluaXRp
YWxpemVUaHJlYWRpbmcuaCAqLywKKwkJCQlFMzVFMDM1RDFCN0FCNDNFMDA3M0FEMkEgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcCAqLywKKwkJCQlFMzVFMDM1RTFCN0FCNDNF
MDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggKi8sCiAJCQkJQTdB
OEFGMkIxN0FEQjVGMzAwNUFCMTc0IC8qIEludDhBcnJheS5oICovLAogCQkJCUE3QThBRjJDMTdB
REI1RjMwMDVBQjE3NCAvKiBJbnQxNkFycmF5LmggKi8sCiAJCQkJQTdBOEFGMkQxN0FEQjVGMzAw
NUFCMTc0IC8qIEludDMyQXJyYXkuaCAqLywKQEAgLTU3MDgsNiArNTcxOCw3IEBACiAJCQkJQTc1
RUU5QjAxOEFBQjdFMjAwQUFEMDQzIC8qIEJ1aWx0aW5OYW1lcy5oICovLAogCQkJCUE3QTk3OUM0
MThCRThEOUUwMDJDMzczMyAvKiBGdW5jdGlvbi5wcm90b3R5cGUuanMgKi8sCiAJCQkJN0NGOUJD
NUExQjY1RDlBMzAwOURCMUVGIC8qIEdsb2JhbE9iamVjdC5qcyAqLywKKwkJCQlFMzVFMDM2MTFC
N0FCNDg1MDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzICovLAog
CQkJCTdDRjlCQzVCMUI2NUQ5QTMwMDlEQjFFRiAvKiBJdGVyYXRvci5wcm90b3R5cGUuanMgKi8s
CiAJCQkJN0NGOUJDNUMxQjY1RDlCMTAwOURCMUVGIC8qIE9iamVjdENvbnN0cnVjdG9yLmpzICov
LAogCQkJCTdDRjlCQzVEMUI2NUQ5QjEwMDlEQjFFRiAvKiBPcGVyYXRpb25zLlByb21pc2UuanMg
Ki8sCkBAIC02MDU1LDYgKzYwNjYsNyBAQAogCQkJCTBGMzAwQjc4MThBQjA1MTEwMEE2RDcyRSAv
KiBERkdOb2RlT3JpZ2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkE1ODFCQzE1MEU5NTMwMDBC
OUEyRDkgLyogREZHTm9kZVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RUM5REQwMTMyOERG
ODIwMDJCMkFENyAvKiBERkdPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzNCM0Uy
NjFCN0FCRDc1MDA0OERCMkUgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0Lmx1dC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEODlDRkUxN0EwQjhDQzAwNzczQUQ4IC8qIERGR09TUkF2
YWlsYWJpbGl0eUFuYWx5c2lzUGhhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDgyRTU3MTQx
REFGMTAwMDE3OUM5NCAvKiBERkdPU1JFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEOEEz
MjYxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmggaW4g
SGVhZGVycyAqLywKQEAgLTYzNjgsNiArNjM4MCw3IEBACiAJCQkJQTU3RDIzRUExODkxQjA3NzAw
MzFDN0ZBIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM3NTZGQzkwRTIwMzFCMjAwREU3RDEyIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNTEwMDdDMTE4N0NDM0M2MDBCMzg4NzkgLyogSlNHbG9iYWxP
YmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzVFMDM2MDFC
N0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNTBFNEI2NDE4ODA5REQ1MDA2OEE0NkQgLyogSlNHbG9iYWxPYmplY3RS
dW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MDNGQTJBMTg4RjEwNTkwMDExMEYx
NCAvKiBKU0dsb2JhbE9iamVjdFNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNTEzRTVDMDE4NUJGQUNDMDA3RTk1QUQgLyogSlNJbmplY3RlZFNjcmlwdEhvc3QuaCBpbiBI
ZWFkZXJzICovLApAQCAtNzM4NSw2ICs3Mzk4LDcgQEAKIAkJCQk3MEVDQTYwNzFBRkRCRUEyMDA0
NDk3MzkgLyogVGVtcGxhdGVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjIzNUJF
QjE3MTc4RTczMDA2OTBDN0YgLyogREZHT1NSRXhpdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDMDk3OTIxNDZBNkY3MzAwQ0YyNDQyIC8qIERGR09TUkV4aXRDb21waWxlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFMzVFMDM1RjFCN0FCNDNFMDA3M0FEMkEgLyogSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5Nzc2MTQ2OTQz
QjAwMENGMjQ0MiAvKiBERkdPU1JFeGl0Q29tcGlsZXIzMl82NC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkMwOTc3MjE0NjkzQUY5MDBDRjI0NDIgLyogREZHT1NSRXhpdENvbXBpbGVyNjQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNzBFQzBFQzIxQUEwRDdEQTAwQjZBQUZBIC8qIEpTU3RyaW5n
SXRlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44NWVmNWYyYjBhZjdkZTcwN2M2NjJlMzljMmI0MjYwM2I4MjQ2MDRhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdC5qcwpAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworZnVuY3Rpb24gZGVidWcodmFsdWUpCit7
CisgICAgInVzZSBzdHJpY3QiOworCisgICAgaWYgKCF0aGlzLmlzRW5hYmxlZCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgdGhpcy5kYXRhTG9nSW1wbCh2YWx1ZSk7Cit9CisKK2Z1bmN0aW9uIHBy
b21pc2VGdWxmaWxsZWQocHJvbWlzZSwgdmFsdWUsIHJlYWN0aW9ucykKK3sKKyAgICAidXNlIHN0
cmljdCI7CisKKyAgICBpZiAoIXRoaXMuaXNFbmFibGVkKQorICAgICAgICByZXR1cm47Cit9CisK
K2Z1bmN0aW9uIHByb21pc2VSZWplY3RlZChwcm9taXNlLCByZWFzb24sIHJlYWN0aW9ucykKK3sK
KyAgICAidXNlIHN0cmljdCI7CisKKyAgICBpZiAoIXRoaXMuaXNFbmFibGVkKQorICAgICAgICBy
ZXR1cm47Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT3Bl
cmF0aW9ucy5Qcm9taXNlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL09wZXJh
dGlvbnMuUHJvbWlzZS5qcwppbmRleCA4MGM1N2FiMGI2NTk0MWUxOTI5ZjQ3YmEzNWJkNzc1ZjU4
MmRkZDBiLi42NmY5YzI1MTUzNTljN2E1MTI1NGY5MzdmYzdmNTFjY2QxMzEyNDFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT3BlcmF0aW9ucy5Qcm9taXNlLmpz
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PcGVyYXRpb25zLlByb21pc2Uu
anMKQEAgLTEwMiw2ICsxMDIsOSBAQCBmdW5jdGlvbiByZWplY3RQcm9taXNlKHByb21pc2UsIHJl
YXNvbikKICAgICBwcm9taXNlLkBwcm9taXNlRnVsZmlsbFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsK
ICAgICBwcm9taXNlLkBwcm9taXNlUmVqZWN0UmVhY3Rpb25zID0gdW5kZWZpbmVkOwogICAgIHBy
b21pc2UuQHByb21pc2VTdGF0ZSA9IEBwcm9taXNlUmVqZWN0ZWQ7CisKKyAgICBASW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLnByb21pc2VSZWplY3RlZChwcm9taXNlLCByZWFzb24sIHJlYWN0aW9u
cyk7CisKICAgICBAdHJpZ2dlclByb21pc2VSZWFjdGlvbnMocmVhY3Rpb25zLCByZWFzb24pOwog
fQogCkBAIC0xMTQsNiArMTE3LDkgQEAgZnVuY3Rpb24gZnVsZmlsbFByb21pc2UocHJvbWlzZSwg
dmFsdWUpCiAgICAgcHJvbWlzZS5AcHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMgPSB1bmRlZmluZWQ7
CiAgICAgcHJvbWlzZS5AcHJvbWlzZVJlamVjdFJlYWN0aW9ucyA9IHVuZGVmaW5lZDsKICAgICBw
cm9taXNlLkBwcm9taXNlU3RhdGUgPSBAcHJvbWlzZUZ1bGZpbGxlZDsKKworICAgIEBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24ucHJvbWlzZUZ1bGZpbGxlZChwcm9taXNlLCB2YWx1ZSwgcmVhY3Rp
b25zKTsKKwogICAgIEB0cmlnZ2VyUHJvbWlzZVJlYWN0aW9ucyhyZWFjdGlvbnMsIHZhbHVlKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRl
bnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZp
ZXJzLmgKaW5kZXggZDdhZTA3Nzk1YWY5ZTY5M2M5ZTM4NGZiZjNmNTFmMzZjMWFhNTYzMC4uMzQ0
N2IzOThmZDA2MTgwNTkwOWU2ZjAyMmUzZDY2NTIzYmFjNDY5OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC0xMzEsNiArMTMx
LDcgQEAKICAgICBtYWNybyhpbnB1dCkgXAogICAgIG1hY3JvKGluc3RydWN0aW9uQ291bnQpIFwK
ICAgICBtYWNybyhpc0FycmF5KSBcCisgICAgbWFjcm8oaXNFbmFibGVkKSBcCiAgICAgbWFjcm8o
aXNQcm90b3R5cGVPZikgXAogICAgIG1hY3JvKGlzVmlldykgXAogICAgIG1hY3JvKGlzV2F0Y2hw
b2ludCkgXApAQCAtMjk1LDEzICsyOTYsMTIgQEAKICAgICBtYWNybyhoYW5kbGVyKSBcCiAgICAg
bWFjcm8ocHJvbWlzZVN0YXRlKSBcCiAgICAgbWFjcm8ocHJvbWlzZVBlbmRpbmcpIFwKLSAgICBt
YWNybyhwcm9taXNlRnVsZmlsbGVkKSBcCi0gICAgbWFjcm8ocHJvbWlzZVJlamVjdGVkKSBcCiAg
ICAgbWFjcm8ocHJvbWlzZUZ1bGZpbGxSZWFjdGlvbnMpIFwKICAgICBtYWNybyhwcm9taXNlUmVq
ZWN0UmVhY3Rpb25zKSBcCiAgICAgbWFjcm8ocHJvbWlzZVJlc3VsdCkgXAogICAgIG1hY3JvKGNh
cGFiaWxpdGllcykgXAogICAgIG1hY3JvKHN0YXJEZWZhdWx0KSBcCisgICAgbWFjcm8oSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uKSBcCiAKIAogbmFtZXNwYWNlIEpTQyB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzRkODNmYmZkMjIwMjYxOTFiYWE1YWMwOWZh
YTc2YzMzMmNlYzkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcApAQCAtMCwwICsxLDEwMCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCIK
KworI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJMb29rdXAuaCIKKyNpbmNsdWRl
IDx3dGYvRGF0YUxvZy5oPgorCituYW1lc3BhY2UgSlNDIHsKKworRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3REYXRhTG9nSW1wbChFeGVj
U3RhdGUqKTsKKworfQorCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0
Lmx1dC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlf
REVTVFJVQ1RJQkxFKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdCk7CisKK2NvbnN0IENs
YXNzSW5mbyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OnNfaW5mbyA9IHsgIkluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbiIsICZCYXNlOjpzX2luZm8sICZpbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3RUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25PYmplY3QpIH07CisKKy8qIFNvdXJjZSBmb3IgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0Lmx1dC5oCitAYmVnaW4gaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0VGFibGUK
KyAgICBkZWJ1ZyAgICAgICAgICAgICBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3REZWJ1
ZyAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKKyAgICBkYXRhTG9nSW1wbCAgICAgICBp
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3REYXRhTG9nSW1wbCAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uIDEKKyAgICBwcm9taXNlRnVsZmlsbGVkICBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25P
YmplY3RQcm9taXNlRnVsZmlsbGVkIERvbnRFbnVtfEZ1bmN0aW9uIDMKKyAgICBwcm9taXNlUmVq
ZWN0ZWQgICBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RQcm9taXNlUmVqZWN0ZWQgIERv
bnRFbnVtfEZ1bmN0aW9uIDMKK0BlbmQKKyovCisKK0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdDo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpCit7Cit9CisK
K3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KikKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Cisg
ICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pc0VuYWJsZWQsIGpzQm9vbGVhbihmYWxzZSkpOwor
fQorCitib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQoreworICAgIHJldHVybiBnZXRTdGF0aWNGdW5j
dGlvblNsb3Q8QmFzZT4oZXhlYywgaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0VGFibGUs
IGpzQ2FzdDxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QqPihvYmplY3QpLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOworfQorCitib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6
aXNFbmFibGVkKFZNJiB2bSkgY29uc3QKK3sKKyAgICByZXR1cm4gZ2V0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5pc0VuYWJsZWQpLmFzQm9vbGVhbigpOworfQorCit2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdDo6ZW5hYmxlKFZNJiB2bSkKK3sKKyAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmlzRW5hYmxlZCwganNCb29sZWFuKHRydWUpKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Q6OmRpc2FibGUoVk0mIHZtKQorewor
ICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXNFbmFibGVkLCBqc0Jvb2xlYW4o
ZmFsc2UpKTsKK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9u
cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdERhdGFMb2dJbXBsKEV4ZWNT
dGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVlIHRhcmdldCA9IGV4ZWMtPmFyZ3VtZW50KDApOwor
ICAgIFN0cmluZyB2YWx1ZSA9IHRhcmdldC50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7Cisg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOworICAgIGRhdGFMb2codmFsdWUsICJcbiIpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNzIwNzE2MGNlYTRiNjEw
ZmNmMmUzYzkyYWY4NTY0ZGRlMTQzZmQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmgKQEAgLTAs
MCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0X2gKKyNkZWZpbmUgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0X2gKKworI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisKK25h
bWVzcGFjZSBKU0MgeworCitjbGFzcyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QgOiBw
dWJsaWMgSlNOb25GaW5hbE9iamVjdCB7Citwcml2YXRlOgorICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbk9iamVjdChWTSYsIFN0cnVjdHVyZSopOworCitwdWJsaWM6CisgICAgdHlwZWRlZiBK
U05vbkZpbmFsT2JqZWN0IEJhc2U7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3Q7CisKKyAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KiBjcmVhdGUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKKyAgICB7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdCogb2JqZWN0
ID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2Jq
ZWN0Pih2bS5oZWFwKSkgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0KHZtLCBzdHJ1Y3R1
cmUpOworICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOwor
ICAgICAgICByZXR1cm4gb2JqZWN0OworICAgIH0KKworICAgIERFQ0xBUkVfSU5GTzsKKworICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIH0KKworICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CisKKyAgICB2b2lkIGVuYWJsZShWTSYpOworICAgIHZvaWQg
ZGlzYWJsZShWTSYpOworICAgIGJvb2wgaXNFbmFibGVkKFZNJikgY29uc3Q7CisKK3Byb3RlY3Rl
ZDoKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKK307CisK
K30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAppbmRleCBjZWU5YmJkOTQwNDQ5MTI4OTQzODI3MWQwMDQ0MTdjMjI5YWQwNDIzLi4y
NWFjZTkyNjkxODBhZGQ3M2M0ZWFlOThkMzg5NTc4ZTQ2YWViNTQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC01Miw2ICs1Miw3
IEBACiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJHZXR0ZXJTZXR0
ZXIuaCIKICNpbmNsdWRlICJIZWFwSXRlcmF0aW9uU2NvcGUuaCIKKyNpbmNsdWRlICJJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25PYmplY3QuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2lu
Y2x1ZGUgIkl0ZXJhdG9yUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNBUElXcmFwcGVyT2JqZWN0
LmgiCkBAIC00OTIsOCArNDkzLDggQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnN5bWJv
bEl0ZXJhdG9yUHJpdmF0ZU5hbWUoKSwgU3ltYm9sOjpjcmVhdGUodm0sIHN0YXRpY19jYXN0PFN5
bWJvbEltcGwmPigqdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wuaW1wbCgpKSksIERv
bnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJ
bmZvKHZtLnByb3BlcnR5TmFtZXMtPlByb21pc2VQcml2YXRlTmFtZSwgbV9wcm9taXNlQ29uc3Ry
dWN0b3IuZ2V0KCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VQZW5kaW5nUHJpdmF0
ZU5hbWUsIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6
UGVuZGluZykpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCi0gICAgICAgIEds
b2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5wcm9taXNlRnVsZmlsbGVkUHJpdmF0
ZU5hbWUsIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1Byb21pc2U6OlN0YXR1czo6
RnVsZmlsbGVkKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKLSAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPnByb21pc2VSZWplY3RlZFByaXZh
dGVOYW1lLCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNQcm9taXNlOjpTdGF0dXM6
OlJlamVjdGVkKSksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKKyAgICAgICAg
R2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb21p
c2VGdWxmaWxsZWRQcml2YXRlTmFtZSgpLCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNQcm9taXNlOjpTdGF0dXM6OkZ1bGZpbGxlZCkpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBS
ZWFkT25seSksCisgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5wcm9taXNlUmVqZWN0ZWRQcml2YXRlTmFtZSgpLCBqc051bWJlcihzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNQcm9taXNlOjpTdGF0dXM6OlJlamVjdGVkKSksIERvbnRFbnVt
IHwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRvTGVuZ3RoUHJpdmF0ZU5hbWUoKSwgcHJp
dmF0ZUZ1bmNUb0xlbmd0aCwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAg
ICAgICBHbG9iYWxQcm9wZXJ0eUluZm8odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCku
dG9JbnRlZ2VyUHJpdmF0ZU5hbWUoKSwgcHJpdmF0ZUZ1bmNUb0ludGVnZXIsIERvbnRFbnVtIHwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5KSwKICAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmlzT2JqZWN0UHJpdmF0ZU5hbWUoKSwgSlNGdW5j
dGlvbjo6Y3JlYXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3RJc09iamVjdENvZGVH
ZW5lcmF0b3Iodm0pLCB0aGlzKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLApA
QCAtNTA2LDYgKzUwNyw3IEBAIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgICAgIEdsb2Jh
bFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5jcmVhdGVSZXNv
bHZpbmdGdW5jdGlvbnNQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWlsdGluRnVu
Y3Rpb24odm0sIG9wZXJhdGlvbnNQcm9taXNlQ3JlYXRlUmVzb2x2aW5nRnVuY3Rpb25zQ29kZUdl
bmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAg
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5wcm9taXNlUmVhY3Rpb25Kb2JQcml2YXRlTmFtZSgpLCBKU0Z1bmN0aW9uOjpjcmVhdGVCdWls
dGluRnVuY3Rpb24odm0sIG9wZXJhdGlvbnNQcm9taXNlUHJvbWlzZVJlYWN0aW9uSm9iQ29kZUdl
bmVyYXRvcih2bSksIHRoaXMpLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSksCiAg
ICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyh2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5wcm9taXNlUmVzb2x2ZVRoZW5hYmxlSm9iUHJpdmF0ZU5hbWUoKSwgSlNGdW5jdGlvbjo6Y3Jl
YXRlQnVpbHRpbkZ1bmN0aW9uKHZtLCBvcGVyYXRpb25zUHJvbWlzZVByb21pc2VSZXNvbHZlVGhl
bmFibGVKb2JDb2RlR2VuZXJhdG9yKHZtKSwgdGhpcyksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5KSwKKyAgICAgICAgR2xvYmFsUHJvcGVydHlJbmZvKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLkluc3BlY3Rvckluc3RydW1lbnRhdGlvblByaXZhdGVOYW1lKCksIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6Y3JlYXRlKHZtLCB0aGlzLCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQ
cm90b3R5cGUuZ2V0KCkpKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwgUmVhZE9ubHkpLAogICAg
IH07CiAgICAgYWRkU3RhdGljR2xvYmFscyhzdGF0aWNHbG9iYWxzLCBXVEZfQVJSQVlfTEVOR1RI
KHN0YXRpY0dsb2JhbHMpKTsKICAgICAK
</data>
<flag name="review"
          id="284085"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>