<?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>14994</bug_id>
          
          <creation_ts>2007-08-16 19:54:12 -0700</creation_ts>
          <short_desc>No support for MessageEvent interface</short_desc>
          <delta_ts>2007-12-31 16:21:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.whatwg.org/specs/web-apps/current-work/multipage/section-event0.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>14997</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Henry Mason">hmason</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dev+webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2126</commentid>
    <comment_count>0</comment_count>
    <who name="Henry Mason">hmason</who>
    <bug_when>2007-08-16 19:54:12 -0700</bug_when>
    <thetext>As currently specified in HTML 5&apos;s section 6.1, WebKit should support the MessageEvent interface for cross-document messaging and server-sent DOM events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63782</commentid>
    <comment_count>1</comment_count>
      <attachid>17813</attachid>
    <who name="Henry Mason">hmason</who>
    <bug_when>2007-12-09 20:59:33 -0800</bug_when>
    <thetext>Created attachment 17813
MessageEvent implementation

Implements section 6.1 of the current draft of HTML5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63783</commentid>
    <comment_count>2</comment_count>
      <attachid>17813</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-09 21:15:59 -0800</bug_when>
    <thetext>Comment on attachment 17813
MessageEvent implementation

I&apos;m unclear on the value of having the MessageEvent class without any of the specific uses of message events. We might not want to add the class until we have at least one capability that uses these events.

For example, we didn&apos;t add TextEvent until we had to code to emit text events.

The code looks good.

Please make a new patch that includes the new files. You&apos;ll need to svn add them and use the svn-create-patch function to make the patch.

We&apos;d also want a test for this. Something simple that creates one of these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63785</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-09 21:48:03 -0800</bug_when>
    <thetext>By the way, thanks very much for the contribution and your interest in WebKit!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63786</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-09 21:50:41 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 17813 [edit])
&gt; I&apos;m unclear on the value of having the MessageEvent class without any of the
&gt; specific uses of message events. We might not want to add the class until we
&gt; have at least one capability that uses these events.

I guess if we implement server-sent events soon after this, then we&apos;ll have a use for the class. I had overlooked the bug this bug blocks. But we do still have to resolve the other issues I mentioned in the patch, and we may indeed want to wait to land this until we have a use for it.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65789</commentid>
    <comment_count>5</comment_count>
      <attachid>18200</attachid>
    <who name="Henry Mason">hmason</who>
    <bug_when>2007-12-30 20:53:06 -0800</bug_when>
    <thetext>Created attachment 18200
MessageEvent and cross-domain messaging implementation

Here&apos;s a slightly updated version of the patch. I&apos;ve now added support for cross-domain messaging (section 6.4 of HTML5) and a test. Now MessageEvent has a real use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65815</commentid>
    <comment_count>6</comment_count>
      <attachid>18200</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-30 23:41:21 -0800</bug_when>
    <thetext>Comment on attachment 18200
MessageEvent and cross-domain messaging implementation

Looks great. Thanks for tackling this!

I have quite a few comments.

+    if (args.size() != 1)
+        return throwError(exec, KJS::SyntaxError);

Normally JavaScript bindings do not check the number of parameters. So you should remove this. Instead, extra parameters are treated as undefined, and there&apos;s no need to check. Since the HTML 5 specification doesn&apos;t say anything specific about what to do here, I think we should do the usual, which will result in sending a message with a data string of &quot;undefined&quot;. If we did want to check this I think we would want a custom error message string.

+    if (!args[0]-&gt;isString())
+        return throwError(exec, KJS::SyntaxError);

JavaScript functions that take strings don&apos;t normally reject non-string arguments. Instead they just call toString. So you should remove this. Again, if we did want to check I&apos;d want a custom error string to explain what&apos;s wrong.

+    window-&gt;postMessage(args[0]-&gt;toString(exec), domain, uri, source);

The toString operation can raise an exception. You need to check if it did by calling exec-&gt;hadException() after it returns, and if an exception is present return without calling DOMWindow::postMessage. It&apos;s critical that the domain and uri are computed *before* calling toString, so please don&apos;t change that.

+        MessageEvent(const AtomicString&amp; type, bool canBubble, bool cancelable, const AtomicString&amp; data, const AtomicString&amp; domain, const AtomicString&amp; uri, DOMWindow* source);

Also, I suggest leaving the type, canBubble, and cancelable arguments out of this constructor&apos;s argument list. The constructor can just hard-code these to messageEvent, true, and true. There&apos;s no need for the constructor to match the init function parameters; it&apos;s only for use in postMessage and in fact I think it&apos;s clearer if it does not. Another alternative would be to include only the empty constructor and use initMessageEvent in the postMessage function.

+        MessageEvent(const AtomicString&amp; namespaceURI, const AtomicString&amp; type, bool canBubble, bool cancelable, const AtomicString&amp; data, const AtomicString&amp; domain, const AtomicString&amp; uri, DOMWindow* source);

I suggest omitting this constructor namespaceURI, since there&apos;s no client that needs it. It&apos;s just dead untested code.

Since I don&apos;t know much about server-side events, I don&apos;t know how much of what I am saying here is wrong for the server-side event case.

+        void setData(const AtomicString&amp; data) { m_data = data; }

Why is this included? MessageEvent.idl does not allow writing the data attribute, and none of the code seems to use this. Is this something used in the server-side event code?

+   ExceptionCode ec = 0;
+   document()-&gt;dispatchEvent(new MessageEvent(&quot;message&quot;, true, true, name, domain, uri, source), ec, true);

No need to initialize the exception code to 0 since you&apos;re not inspecting it. I know this isn&apos;t consistent in the existing code but it&apos;s good to not do the tiny bit of unnecessary work.

The event name &quot;message&quot; should be an AtomicString to avoid the overhead of computing its hash every time. The right way to do this is to add message to the list of event names in EventNames.h and then use messageEvent instead of &quot;message&quot;.

+        void postMessage(const String&amp; name, const String&amp; domain, const String&amp; uri, DOMWindow* source) const;

Why &quot;name&quot; for the first argument? This seems to be called &quot;message&quot; in DOMWindow.idl and &quot;data&quot; in MessageEvent.idl. I&apos;d prefer to use the single term &quot;data&quot; for this everywhere unless there&apos;s a good reason not to. It&apos;s particularly confusing to use the word &quot;name&quot; here since the event&apos;s name is &quot;message&quot;.

-			compatibilityVersion = &quot;Xcode 2.4&quot;;

This WebKit change should not be checked in. It&apos;s just something Xcode adds and removes and there&apos;s no reason to include it in your patch.

The regression test should call layoutTestController.dumpAsText() so that its results don&apos;t include platform dependent layout details.

Calling layoutTestController.notifyDone() doesn&apos;t do any good unless you first call layoutTestController.waitUntilDone(). I&apos;m not sure why the test works without the waitUntilDone() call; please add it.

Do you need to use queueScript instead of just calling the postIt() function directly? I think the right way to do this test is to put an onload handler on the &lt;iframe&gt; and run the function from that. We should avoid using layout test controller functions unless they are absolutely necessary.

The cross-domain-message-receive.html file should be put into a subdirectory named &quot;resources&quot;; that way it won&apos;t be treated as a test and run separately.

Some details of the test seem strange. Why does cross-domain-message-receive.html have a body with multiple paragraphs, since all it does is post the message back to the source? Also, it&apos;s confusing that the data posted back to the source includes multiple line content in the same format as the format used to dump the fields when the sender gets called back. This detail makes the test result a little bit hard to interpret.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65826</commentid>
    <comment_count>7</comment_count>
      <attachid>18213</attachid>
    <who name="Henry Mason">hmason</who>
    <bug_when>2007-12-31 02:01:42 -0800</bug_when>
    <thetext>Created attachment 18213
Updated patched

Ok, I tried to address the concerns raised above. Thanks for being so patient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65829</commentid>
    <comment_count>8</comment_count>
      <attachid>18213</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-31 03:12:12 -0800</bug_when>
    <thetext>Comment on attachment 18213
Updated patched

 41         MessageEvent(const AtomicString&amp; data, const AtomicString&amp; domain, const AtomicString&amp; uri, DOMWindow* source);

 44         void initMessageEvent(const AtomicString&amp; type, bool canBubble, bool cancelable, const AtomicString&amp; data, const AtomicString&amp; domain, const AtomicString&amp; uri, DOMWindow* source);

 46         void initMessageEventNS(const AtomicString&amp; namespaceURI, const AtomicString&amp; type, bool canBubble, bool cancelable, const AtomicString&amp; data, const AtomicString&amp; domain, const AtomicString&amp; uri, DOMWindow* source);

 48         const AtomicString&amp; data() const { return m_data; }

 50         const AtomicString&amp; domain() const { return m_domain; }

 52         const AtomicString&amp; uri() const { return m_uri; }

 60         AtomicString m_data;
 61         AtomicString m_domain;
 62         AtomicString m_uri;

Except for the namespace and type, these should be plain old String, not AtomicString. AtomicString are kept in a global hash table. They&apos;re used for strings where you want high speed comparison. There&apos;s no point in using them for strings that are just going to be fetched and manipulated in JavaScript code.

Everything else looks great! Thanks for addressing all my earlier comments.

Since the result goes into a &lt;div&gt;, the newlines don&apos;t end up making things go on new lines. Maybe you should use commas instead so the output looks more sensible.

review- only because of the AtomicString thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65851</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-31 16:00:48 -0800</bug_when>
    <thetext>I&apos;ll land this for you.

I had to take out initMessageEventNS, because we don&apos;t have namespaced types yet on events. That needs to be added at the Event.h level, not down here in MessageEvent.h, so for now I left it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65854</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-12-31 16:18:33 -0800</bug_when>
    <thetext>Committed revision 29051.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65855</commentid>
    <comment_count>11</comment_count>
    <who name="Henry Mason">hmason</who>
    <bug_when>2007-12-31 16:21:19 -0800</bug_when>
    <thetext>Thanks very much!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17813</attachid>
            <date>2007-12-09 20:59:33 -0800</date>
            <delta_ts>2007-12-30 20:53:06 -0800</delta_ts>
            <desc>MessageEvent implementation</desc>
            <filename>message_event.patch</filename>
            <type>text/plain</type>
            <size>17345</size>
            <attacher name="Henry Mason">hmason</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODU3NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDctMTItMDkgIEhlbnJ5IE1hc29uICA8aG1hc29uQG1hYy5jb20+
CisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5OTQK
KworICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciB0aGUgTWVzc2FnZUV2ZW50IGludGVyZmFjZS4K
KworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS5wcm86
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYkNvcmVTb3VyY2Vz
LmJrbDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudDo6aXNNZXNzYWdlRXZlbnQpOgorICAgICAgICAqIGRvbS9FdmVudC5oOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAwNy0xMi0wOSAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IE1hcmsgUm93ZS4KSW5k
ZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI4NTczKQorKysgV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsNiArMTMzLDcgQEAgYWxsIDogXAogICAg
IERPTUhUTUxUaXRsZUVsZW1lbnQuaCBcCiAgICAgRE9NSFRNTFVMaXN0RWxlbWVudC5oIFwKICAg
ICBET01LZXlib2FyZEV2ZW50LmggXAorICAgIERPTU1lc3NhZ2VFdmVudC5oIFwKICAgICBET01N
ZWRpYUxpc3QuaCBcCiAgICAgRE9NTW91c2VFdmVudC5oIFwKICAgICBET01NdXRhdGlvbkV2ZW50
LmggXApAQCAtNDExLDYgKzQxMiw3IEBAIGFsbCA6IFwKICAgICBKU0tleWJvYXJkRXZlbnQuaCBc
CiAgICAgSlNNZWRpYUVycm9yLmggXAogICAgIEpTTWVkaWFMaXN0LmggXAorICAgIEpTTWVzc2Fn
ZUV2ZW50LmggXAogICAgIEpTTW91c2VFdmVudC5oIFwKICAgICBKU011dGF0aW9uRXZlbnQuaCBc
CiAgICAgSlNOYW1lZE5vZGVNYXAuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDI4NTczKQorKysgV2ViQ29y
ZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjc2LDYgKzI3Niw3IEBAIElETF9CSU5E
SU5HUyArPSBcCiAjICAgIGRvbS9FdmVudExpc3RlbmVyLmlkbCBcCiAjICAgIGRvbS9FdmVudFRh
cmdldC5pZGwgXAogICAgIGRvbS9LZXlib2FyZEV2ZW50LmlkbCBcCisgICAgZG9tL01lc3NhZ2VF
dmVudC5pZGwgXAogICAgIGRvbS9Nb3VzZUV2ZW50LmlkbCBcCiAgICAgZG9tL011dGF0aW9uRXZl
bnQuaWRsIFwKICAgICBkb20vTmFtZWROb2RlTWFwLmlkbCBcCkBAIC00ODYsNiArNDg3LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgZG9tL0V4Y2VwdGlvbkNvZGUuY3BwIFwKICAgICBkb20vS2V5Ym9h
cmRFdmVudC5jcHAgXAogICAgIGRvbS9NYXBwZWRBdHRyaWJ1dGUuY3BwIFwKKyAgICBkb20vTWVz
c2FnZUV2ZW50LmNwcCBcCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwIFwKICAgICBkb20vTW91c2VS
ZWxhdGVkRXZlbnQuY3BwIFwKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAgXApJbmRleDogV2Vi
Q29yZS9XZWJDb3JlU291cmNlcy5ia2wKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlU291
cmNlcy5ia2wJKHJldmlzaW9uIDI4NTczKQorKysgV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wJ
KHdvcmtpbmcgY29weSkKQEAgLTI0MSw2ICsyNDEsNyBAQCBUaGlzIGZpbGUgY29udGFpbnMgdGhl
IGxpc3Qgb2YgZmlsZXMgbmVlCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaXN0
b3J5LmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTS2V5Ym9hcmRFdmVudC5j
cHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTGlzdC5jcHAKKyAgICAg
ICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VFdmVudC5jcHAKICAgICAgICAgRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuY3BwCiAgICAgICAgIERlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTmFtZWROb2RlTWFwLmNwcApAQCAtMzA2LDYgKzMwNyw3IEBAIFRoaXMgZmlsZSBj
b250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBuZWUKICAgICAgICAgZG9tL0V4Y2VwdGlvbkNvZGUu
Y3BwCiAgICAgICAgIGRvbS9LZXlib2FyZEV2ZW50LmNwcAogICAgICAgICBkb20vTWFwcGVkQXR0
cmlidXRlLmNwcAorICAgICAgICBkb20vTWVzc2FnZUV2ZW50LmNwcAogICAgICAgICBkb20vTW91
c2VFdmVudC5jcHAKICAgICAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAogICAgICAgICBk
b20vTXV0YXRpb25FdmVudC5jcHAKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagkocmV2aXNpb24gMjg1NzMpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMzLDYgKzExMzMsMTQgQEAKIAkJCQk+DQogCQkJ
PC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01lc3NhZ2VFdmVudC5jcHAiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktp
dE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWVzc2FnZUV2
ZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRo
PSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
TW91c2VFdmVudC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpAQCAtNTkwOSw2ICs1OTE3LDE0
IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxNZXNzYWdlRXZlbnQuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1lc3NhZ2VFdmVudC5oIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1vdXNlRXZlbnQuY3Bw
Ig0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyODU3MykKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NDAsNiArNTQwLDE0IEBA
CiAJCTY1REYzMjNFMDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVERjMy
MzgwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggKi87IH07
CiAJCTY1REYzMjYxMDlEMUUxOTkwMDBCRTMyNSAvKiBVc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgx
QUYwOUQxNEVFNjAwMEU2MUQ3IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAgKi87IH07
CiAJCTY1RkVBODY5MDk4MzNBREUwMEJFRDRBQiAvKiBQYWdlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RkVBODY4MDk4MzNBREUwMEJFRDRBQiAv
KiBQYWdlLmNwcCAqLzsgfTsKKwkJNzU3OTNFODMwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VF
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTc5M0U4MDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLzsgfTsKKwkJNzU3
OTNFODQwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8q
IE1lc3NhZ2VFdmVudC5oICovOyB9OworCQk3NTc5M0U4NTBEMENFMEIzMDA3RkMwQUMgLyogTWVz
c2FnZUV2ZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzU3OTNFODIwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5pZGwgKi87IH07
CisJCTc1NzkzRUM4MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VDNjBEMENFNzJE
MDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuY3BwICovOyB9OworCQk3NTc5M0VDOTBEMENFNzJE
MDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUM3MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VF
dmVudC5oICovOyB9OworCQk3NTc5M0VEMzBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5
M0VEMDBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50LmggKi87IH07CisJCTc1Nzkz
RUQ0MEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VEMTBEMENFODVCMDA3RkMwQUMg
LyogRE9NTWVzc2FnZUV2ZW50Lm1tICovOyB9OworCQk3NTc5M0VENTBEMENFODVCMDA3RkMwQUMg
LyogRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUQyMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdl
RXZlbnRJbnRlcm5hbC5oICovOyB9OwogCQk3RTZGRUVEODA4OTg1ODIzMDBDNDRDM0YgLyogV2Vi
Q29yZVNjcmlwdERlYnVnZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3RTZGRUVENjA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNjcmlwdERlYnVn
Z2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0U2RkVFRDkwODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dlci5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNkZFRUQ3MDg5ODU4
MjMwMEM0NEMzRiAvKiBXZWJDb3JlU2NyaXB0RGVidWdnZXIubW0gKi87IH07CiAJCTg1MDA0RDk0
MEFDRUVBRUYwMEM0MzhGNiAvKiBET01TVkdEZWZzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMDREODgwQUNFRUFFRjAwQzQzOEY2IC8q
IERPTVNWR0RlZnNFbGVtZW50LmggKi87IH07CkBAIC00ODg0LDYgKzQ4OTIsMTQgQEAKIAkJNjVE
RjMyMzgwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUY4MDY5NzA1NEQ5Rjg2MDA4QkY3
NzYgLyogQmxvY2tFeGNlcHRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmxvY2tFeGNlcHRpb25zLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNjVGRUE4Njgw
OTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTc5M0U4
MDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBNZXNzYWdlRXZlbnQuY3BwOyBwYXRoID0gZG9tL01lc3NhZ2VF
dmVudC5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNzU3OTNFODEwRDBDRTBC
MzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTWVzc2FnZUV2ZW50Lmg7IHBhdGggPSBkb20vTWVzc2FnZUV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNzU3OTNFODIwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3Nh
Z2VFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE1lc3NhZ2VFdmVudC5pZGw7IHBh
dGggPSBkb20vTWVzc2FnZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9Owor
CQk3NTc5M0VDNjBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU3OTNFQzcwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVz
c2FnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lc3NhZ2VF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTc5M0VEMDBEMENFODVCMDA3
RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01NZXNzYWdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU3
OTNFRDEwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01NZXNzYWdlRXZlbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NzkzRUQyMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNz
YWdlRXZlbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
TWVzc2FnZUV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0U2
RkVFRDYwODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVTY3JpcHRE
ZWJ1Z2dlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJN0U2RkVFRDcwODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1
Z2dlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViQ29yZVNjcmlwdERlYnVnZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJODRCMkIxRjcwNTZCRUYzQTAwRDJC
NzcxIC8qIFdlYkNvcmVLZXlHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUtleUdlbmVyYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTkxNDMsNiAr
OTE1OSw5IEBACiAJCQkJODVERjM0M0YwQUFGQzBFRDAwRTU5QUUzIC8qIERPTUtleWJvYXJkRXZl
bnRQcml2YXRlLmggKi8sCiAJCQkJODVGRjMxNTgwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJv
YXJkRXZlbnQuaCAqLywKIAkJCQk4NUZGMzE1OTBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9h
cmRFdmVudC5tbSAqLywKKwkJCQk3NTc5M0VEMDBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2Fn
ZUV2ZW50LmggKi8sCisJCQkJNzU3OTNFRDEwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VF
dmVudC5tbSAqLywKKwkJCQk3NTc5M0VEMjBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2
ZW50SW50ZXJuYWwuaCAqLywKIAkJCQk4NTdFMEIyQjBBQjA0M0ZDMDAzNkU0NDcgLyogRE9NTW91
c2VFdmVudFByaXZhdGUuaCAqLywKIAkJCQk4NTdFMEIyMzBBQjA0MzQ2MDAzNkU0NDcgLyogRE9N
TW91c2VFdmVudC5oICovLAogCQkJCTg1N0UwQjI0MEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3Vz
ZUV2ZW50Lm1tICovLApAQCAtMTA0ODYsNiArMTA1MDUsOCBAQAogCQkJCTE0RTgzNzhEMDlGODVE
NEYwMEI4NUFFNCAvKiBKU0V2ZW50LmggKi8sCiAJCQkJQTg2NjI5Q0UwOURBMkI0NzAwOTYzM0E1
IC8qIEpTS2V5Ym9hcmRFdmVudC5jcHAgKi8sCiAJCQkJQTg2NjI5Q0QwOURBMkI0NzAwOTYzM0E1
IC8qIEpTS2V5Ym9hcmRFdmVudC5oICovLAorCQkJCTc1NzkzRUM2MEQwQ0U3MkQwMDdGQzBBQyAv
KiBKU01lc3NhZ2VFdmVudC5jcHAgKi8sCisJCQkJNzU3OTNFQzcwRDBDRTcyRDAwN0ZDMEFDIC8q
IEpTTWVzc2FnZUV2ZW50LmggKi8sCiAJCQkJQTg2NjI5Q0MwOURBMkI0NzAwOTYzM0E1IC8qIEpT
TW91c2VFdmVudC5jcHAgKi8sCiAJCQkJQTg2NjI5Q0IwOURBMkI0NzAwOTYzM0E1IC8qIEpTTW91
c2VFdmVudC5oICovLAogCQkJCTY1REYzMUU3MDlEMUNDNjAwMDBCRTMyNSAvKiBKU011dGF0aW9u
RXZlbnQuY3BwICovLApAQCAtMTIxNTUsNiArMTIxNzYsOSBAQAogCQkJCUE4QzRBN0Y0MDlENTYz
MjcwMDAzQUM4RCAvKiBNYXBwZWRBdHRyaWJ1dGUuY3BwICovLAogCQkJCUE4QzRBN0YzMDlENTYz
MjcwMDAzQUM4RCAvKiBNYXBwZWRBdHRyaWJ1dGUuaCAqLywKIAkJCQlBOEM0QTg0QjA5RDU2NDlE
MDAwM0FDOEQgLyogTWFwcGVkQXR0cmlidXRlRW50cnkuaCAqLywKKwkJCQk3NTc5M0U4MDBEMENF
MEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLywKKwkJCQk3NTc5M0U4MTBEMENFMEIz
MDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggKi8sCisJCQkJNzU3OTNFODIwRDBDRTBCMzAwN0ZD
MEFDIC8qIE1lc3NhZ2VFdmVudC5pZGwgKi8sCiAJCQkJODUwMzFCMkYwQTQ0RUZDNzAwRjk5MkUw
IC8qIE1vdXNlRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjMwMEE0NEVGQzcwMEY5OTJFMCAvKiBN
b3VzZUV2ZW50LmggKi8sCiAJCQkJMTQxQjk0RTUwOUVDNDIyMzAwMEU5NDEzIC8qIE1vdXNlRXZl
bnQuaWRsICovLApAQCAtMTQwNjgsNiArMTQwOTIsMTAgQEAKIAkJCQlCMjU1OTlCODBEMDBEOEJB
MDBCQjgyNUMgLyogU1ZHUmVzb3VyY2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI1
NTk5QkEwRDAwRDhCQTAwQkI4MjVDIC8qIFNWR1Jlc291cmNlTWFya2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjU1OTlCQzBEMDBEOEJBMDBCQjgyNUMgLyogU1ZHUmVzb3VyY2VNYXNrZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTc1NzkzRTg0MEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZl
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NzkzRUM5MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01l
c3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU3OTNFRDMwRDBDRTg1QjAwN0ZDMEFD
IC8qIERPTU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU3OTNFRDUwRDBDRTg1
QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTE0MTA2LDcgKzE0MTM0LDYgQEAKIAkJMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2pl
Y3Qgb2JqZWN0ICovID0gewogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJh
dGlvbkxpc3QgPSAxNDlDMjg0MzA4OTAyQjExMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlv
biBsaXN0IGZvciBQQlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsKLQkJCWNvbXBhdGliaWxpdHlWZXJz
aW9uID0gIlhjb2RlIDIuNCI7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtu
b3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApAQCAtMTQzMjksNiArMTQzNTYsNyBAQAogCQkJ
CUIyNTU5OTY4MEQwMEQ4QkEwMEJCODI1QyAvKiBXS1NwZWN1bGFyTGlnaHRpbmdGaWx0ZXIuY2lr
ZXJuZWwgaW4gUmVzb3VyY2VzICovLAogCQkJCUIyNTU5OTZCMEQwMEQ4QkEwMEJCODI1QyAvKiBX
S1Nwb3RMaWdodEZpbHRlci5jaWtlcm5lbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQjI1NTk5NkUw
RDAwRDhCQTAwQkI4MjVDIC8qIFdLVGFibGVUcmFuc2ZlckZpbHRlci5jaWtlcm5lbCBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJNzU3OTNFODUwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5p
ZGwgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTU3NzYsNiArMTU4MDQsOSBAQAogCQkJCUIyNTU5OUI5
MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdSZXNvdXJjZU1hcmtlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCMjU1OTlCQjBEMDBEOEJBMDBCQjgyNUMgLyogU1ZHUmVzb3VyY2VNYXNrZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTM4MzFCNTcwRDA4N0Q2MDAwRTVDOTg0IC8qIEV4Y2VwdGlvbkNv
ZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU3OTNFODMwRDBDRTBCMzAwN0ZDMEFDIC8qIE1l
c3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTc5M0VDODBEMENFNzJEMDA3RkMw
QUMgLyogSlNNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU3OTNFRDQwRDBD
RTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCShyZXZpc2lvbiAyODU3MykKKysrIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmQuaCIKICNpbmNsdWRlICJFdmVudC5oIgog
I2luY2x1ZGUgIkpTS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIkpTTWVzc2FnZUV2ZW50Lmgi
CiAjaW5jbHVkZSAiSlNNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbkV2ZW50Lmgi
CiAjaW5jbHVkZSAiSlNPdmVyZmxvd0V2ZW50LmgiCkBAIC00MCw2ICs0MSw3IEBACiAjaW5jbHVk
ZSAiSlNVSUV2ZW50LmgiCiAjaW5jbHVkZSAiSlNXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiS2V5
Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk1vdXNl
RXZlbnQuaCIKICNpbmNsdWRlICJNdXRhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiT3ZlcmZsb3dF
dmVudC5oIgpAQCAtODQsNiArODYsOCBAQCBKU1ZhbHVlKiB0b0pTKEV4ZWNTdGF0ZSogZXhlYywg
RXZlbnQqIGV2CiAgICAgICAgIHJldCA9IG5ldyBKU011dGF0aW9uRXZlbnQoZXhlYywgc3RhdGlj
X2Nhc3Q8TXV0YXRpb25FdmVudCo+KGV2ZW50KSk7CiAgICAgZWxzZSBpZiAoZXZlbnQtPmlzT3Zl
cmZsb3dFdmVudCgpKQogICAgICAgICByZXQgPSBuZXcgSlNPdmVyZmxvd0V2ZW50KGV4ZWMsIHN0
YXRpY19jYXN0PE92ZXJmbG93RXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5p
c01lc3NhZ2VFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgSlNNZXNzYWdlRXZlbnQoZXhlYywg
c3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oZXZlbnQpKTsKICAgICBlbHNlIGlmIChldmVudC0+
aXNQcm9ncmVzc0V2ZW50KCkpCiAgICAgICAgIHJldCA9IG5ldyBKU1Byb2dyZXNzRXZlbnQoZXhl
Yywgc3RhdGljX2Nhc3Q8UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7CiAgICAgZWxzZQpJbmRleDog
V2ViQ29yZS9kb20vRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50LmNw
cAkocmV2aXNpb24gMjg1NzMpCisrKyBXZWJDb3JlL2RvbS9FdmVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExMCw2ICsxMTAsMTEgQEAgYm9vbCBFdmVudDo6aXNXaGVlbEV2ZW50KCkgY29uc3QK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgRXZlbnQ6OmlzTWVzc2FnZUV2ZW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgRXZlbnQ6OmlzQmVmb3JlVGV4dElu
c2VydGVkRXZlbnQoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFdlYkNvcmUv
ZG9tL0V2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZlbnQuaAkocmV2aXNpb24g
Mjg1NzMpCisrKyBXZWJDb3JlL2RvbS9FdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiAr
MTA2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0
RXZlbnQoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGlzRHJhZ0V2ZW50KCkgY29uc3Q7
IC8vIGEgc3Vic2V0IG9mIG1vdXNlIGV2ZW50cwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDbGlw
Ym9hcmRFdmVudCgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNZXNzYWdlRXZlbnQo
KSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGlzV2hlZWxFdmVudCgpIGNvbnN0OwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCgpIGNvbnN0OwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNPdmVyZmxvd0V2ZW50KCkgY29uc3Q7CkluZGV4OiBXZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAkocmV2aXNpb24gMjg1NzMpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjQwLDYgKzI0MCw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBh
dHRyaWJ1dGUgSFRNTFVMaXN0RWxlbWVudENvbnN0cnVjdG9yIEhUTUxVTGlzdEVsZW1lbnQ7CiAK
ICAgICAgICAgYXR0cmlidXRlIEV2ZW50Q29uc3RydWN0b3IgRXZlbnQ7CisgICAgICAgIGF0dHJp
YnV0ZSBNZXNzYWdlRXZlbnRDb25zdHJ1Y3RvciBNZXNzYWdlRXZlbnQ7CiAgICAgICAgIGF0dHJp
YnV0ZSBNdXRhdGlvbkV2ZW50Q29uc3RydWN0b3IgTXV0YXRpb25FdmVudDsKIAogICAgICAgICBh
dHRyaWJ1dGUgTm9kZUZpbHRlckNvbnN0cnVjdG9yIE5vZGVGaWx0ZXI7CkluZGV4OiBXZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NTc3
KQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkgQEAKKzIw
MDctMTItMDkgIEhlbnJ5IE1hc29uICA8aG1hc29uQG1hYy5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAwNy0xMS0xOSAgQnJhZHkgRWlkc29uIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWoKSW5kZXg6IFdlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4NTczKQorKysgV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQ0LDcgKzEzNDQs
NiBAQAogCQkwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi8gPSB7
CiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMy
ODMyMDg5MDJCMEYwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFBy
b2plY3QgIldlYktpdCIgKi87Ci0JCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQi
OwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJ
CQkJRW5nbGlzaCwKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NTc3KQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDctMTItMDkgIEhlbnJ5
IE1hc29uICA8aG1hc29uQG1hYy5jb20+CisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5OTQKKworICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciB0aGUg
TWVzc2FnZUV2ZW50IGludGVyZmFjZS4KKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisKIDIwMDctMTItMDkgIE9saXZlciBIdW50ICA8
b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOaWtvLgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyODU3MykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTY5Niw2ICs2OTYsOCBAQCB3aW5kb3cuTWVkaWFMaXN0LnByb3RvdHlwZSBbb2JqZWN0IE1lZGlh
CiB3aW5kb3cuTWVkaWFMaXN0LnByb3RvdHlwZS5hcHBlbmRNZWRpdW0gW2Z1bmN0aW9uXQogd2lu
ZG93Lk1lZGlhTGlzdC5wcm90b3R5cGUuZGVsZXRlTWVkaXVtIFtmdW5jdGlvbl0KIHdpbmRvdy5N
ZWRpYUxpc3QucHJvdG90eXBlLml0ZW0gW2Z1bmN0aW9uXQord2luZG93Lk1lc3NhZ2VFdmVudCBb
b2JqZWN0IE1lc3NhZ2VFdmVudENvbnN0cnVjdG9yXQord2luZG93Lk1lc3NhZ2VFdmVudC5wcm90
b3R5cGUgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93LkV2ZW50LnByb3RvdHlwZV0KIHdpbmRvdy5N
dXRhdGlvbkV2ZW50IFtvYmplY3QgTXV0YXRpb25FdmVudENvbnN0cnVjdG9yXQogd2luZG93Lk11
dGF0aW9uRXZlbnQuQURESVRJT04gW251bWJlcl0KIHdpbmRvdy5NdXRhdGlvbkV2ZW50Lk1PRElG
SUNBVElPTiBbbnVtYmVyXQo=
</data>
<flag name="review"
          id="7679"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18200</attachid>
            <date>2007-12-30 20:53:06 -0800</date>
            <delta_ts>2007-12-31 02:01:42 -0800</delta_ts>
            <desc>MessageEvent and cross-domain messaging implementation</desc>
            <filename>bug14994.patch</filename>
            <type>text/plain</type>
            <size>38411</size>
            <attacher name="Henry Mason">hmason</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTA0MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMDctMTItMzAgIEhlbnJ5IE1hc29uICA8aG1hc29uQG1hYy5jb20+
CisKKyAgICAgICAgVGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ5OTQKKyAgICAgICAgU3VwcG9ydCBmb3IgTWVzc2FnZUV2ZW50IGFuZCBjcm9zcy1kb21h
aW4gbWVzc2FnaW5nCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3Nz
LWRvbWFpbi1tZXNzYWdlLXJlY2VpdmUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9t
ZXNzYWdpbmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2Utc2VuZC5odG1sCisKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlU291cmNlcy5ia2w6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNE
T01XaW5kb3c6OmN1c3RvbUdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTVdpbmRvdzo6cG9zdE1lc3NhZ2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogZG9tL0V2ZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50Ojppc01lc3NhZ2VFdmVudCk6CisgICAgICAg
ICogZG9tL0V2ZW50Lmg6CisgICAgICAgICogZG9tL01lc3NhZ2VFdmVudC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZUV2ZW50OjpNZXNzYWdlRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVzc2FnZUV2ZW50Ojp+TWVzc2FnZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNz
YWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnROUyk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdl
RXZlbnQ6OmlzTWVzc2FnZUV2ZW50KToKKyAgICAgICAgKiBkb20vTWVzc2FnZUV2ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZUV2ZW50OjpzZXREYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lc3NhZ2VFdmVudDo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdl
RXZlbnQ6OmRvbWFpbik6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OnVyaSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OnNvdXJjZSk6CisgICAgICAgICogZG9tL01l
c3NhZ2VFdmVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cG9zdE1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDA3LTEyLTMw
ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xp
dmVyIEh1bnQuCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyOTA0MSkKKysrIFdlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTMzLDYgKzEzMyw3IEBA
IGFsbCA6IFwKICAgICBET01IVE1MVGl0bGVFbGVtZW50LmggXAogICAgIERPTUhUTUxVTGlzdEVs
ZW1lbnQuaCBcCiAgICAgRE9NS2V5Ym9hcmRFdmVudC5oIFwKKyAgICBET01NZXNzYWdlRXZlbnQu
aCBcCiAgICAgRE9NTWVkaWFMaXN0LmggXAogICAgIERPTU1vdXNlRXZlbnQuaCBcCiAgICAgRE9N
TXV0YXRpb25FdmVudC5oIFwKQEAgLTQxNSw2ICs0MTYsNyBAQCBhbGwgOiBcCiAgICAgSlNMb2Nh
dGlvbi5sdXQuaCBcCiAgICAgSlNNZWRpYUVycm9yLmggXAogICAgIEpTTWVkaWFMaXN0LmggXAor
ICAgIEpTTWVzc2FnZUV2ZW50LmggXAogICAgIEpTTW91c2VFdmVudC5oIFwKICAgICBKU011dGF0
aW9uRXZlbnQuaCBcCiAgICAgSlNOYW1lZE5vZGVNYXAuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNv
cmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDI5MDQx
KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjgxLDYgKzI4MSw3
IEBAIElETF9CSU5ESU5HUyArPSBcCiAjICAgIGRvbS9FdmVudExpc3RlbmVyLmlkbCBcCiAjICAg
IGRvbS9FdmVudFRhcmdldC5pZGwgXAogICAgIGRvbS9LZXlib2FyZEV2ZW50LmlkbCBcCisgICAg
ZG9tL01lc3NhZ2VFdmVudC5pZGwgXAogICAgIGRvbS9Nb3VzZUV2ZW50LmlkbCBcCiAgICAgZG9t
L011dGF0aW9uRXZlbnQuaWRsIFwKICAgICBkb20vTmFtZWROb2RlTWFwLmlkbCBcCkBAIC00OTgs
NiArNDk5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0V4Y2VwdGlvbkNvZGUuY3BwIFwKICAg
ICBkb20vS2V5Ym9hcmRFdmVudC5jcHAgXAogICAgIGRvbS9NYXBwZWRBdHRyaWJ1dGUuY3BwIFwK
KyAgICBkb20vTWVzc2FnZUV2ZW50LmNwcCBcCiAgICAgZG9tL01vdXNlRXZlbnQuY3BwIFwKICAg
ICBkb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwIFwKICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAg
XApJbmRleDogV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9XZWJDb3JlU291cmNlcy5ia2wJKHJldmlzaW9uIDI5MDQxKQorKysgV2ViQ29yZS9XZWJDb3Jl
U291cmNlcy5ia2wJKHdvcmtpbmcgY29weSkKQEAgLTI0NSw2ICsyNDUsNyBAQCBUaGlzIGZpbGUg
Y29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMgbmVlCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIaXN0b3J5LmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTS2V5
Ym9hcmRFdmVudC5jcHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTGlz
dC5jcHAKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VFdmVudC5jcHAK
ICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuY3BwCiAgICAgICAg
IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkV2ZW50LmNwcAogICAgICAgICBEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTmFtZWROb2RlTWFwLmNwcApAQCAtMzEzLDYgKzMxNCw3IEBA
IFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBuZWUKICAgICAgICAgZG9tL0V4
Y2VwdGlvbkNvZGUuY3BwCiAgICAgICAgIGRvbS9LZXlib2FyZEV2ZW50LmNwcAogICAgICAgICBk
b20vTWFwcGVkQXR0cmlidXRlLmNwcAorICAgICAgICBkb20vTWVzc2FnZUV2ZW50LmNwcAogICAg
ICAgICBkb20vTW91c2VFdmVudC5jcHAKICAgICAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNw
cAogICAgICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMjkwNDEpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTc3LDYgKzExNzcsMTQgQEAK
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01lc3NhZ2VF
dmVudC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQ
YXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTTWVzc2FnZUV2ZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTTW91c2VFdmVudC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpAQCAtNjA1
Myw2ICs2MDYxLDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxNZXNzYWdlRXZlbnQuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0K
KwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1lc3NhZ2VFdmVudC5oIg0KKwkJ
CQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1v
dXNlRXZlbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyOTA0MSkKKysrIFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NDAs
NiArNTQwLDE0IEBACiAJCTY1REYzMjNFMDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjVERjMyMzgwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmggKi87IH07CiAJCTY1REYzMjYxMDlEMUUxOTkwMDBCRTMyNSAvKiBVc2VyQWdlbnRTdHls
ZVNoZWV0c0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjU2NTgxQUYwOUQxNEVFNjAwMEU2MUQ3IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzRGF0
YS5jcHAgKi87IH07CiAJCTY1RkVBODY5MDk4MzNBREUwMEJFRDRBQiAvKiBQYWdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1RkVBODY4MDk4MzNB
REUwMEJFRDRBQiAvKiBQYWdlLmNwcCAqLzsgfTsKKwkJNzU3OTNFODMwRDBDRTBCMzAwN0ZDMEFD
IC8qIE1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTc5M0U4MDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAq
LzsgfTsKKwkJNzU3OTNFODQwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFODEwRDBDRTBC
MzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovOyB9OworCQk3NTc5M0U4NTBEMENFMEIzMDA3
RkMwQUMgLyogTWVzc2FnZUV2ZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFODIwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVu
dC5pZGwgKi87IH07CisJCTc1NzkzRUM4MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5
M0VDNjBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuY3BwICovOyB9OworCQk3NTc5
M0VDOTBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUM3MEQwQ0U3MkQwMDdGQzBBQyAv
KiBKU01lc3NhZ2VFdmVudC5oICovOyB9OworCQk3NTc5M0VEMzBEMENFODVCMDA3RkMwQUMgLyog
RE9NTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NTc5M0VEMDBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50LmggKi87
IH07CisJCTc1NzkzRUQ0MEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VEMTBEMENF
ODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50Lm1tICovOyB9OworCQk3NTc5M0VENTBEMENF
ODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUQyMEQwQ0U4NUIwMDdGQzBBQyAv
KiBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oICovOyB9OwogCQk3RTZGRUVEODA4OTg1ODIzMDBD
NDRDM0YgLyogV2ViQ29yZVNjcmlwdERlYnVnZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTZGRUVENjA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29y
ZVNjcmlwdERlYnVnZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJN0U2RkVFRDkwODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1
Z2dlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdF
NkZFRUQ3MDg5ODU4MjMwMEM0NEMzRiAvKiBXZWJDb3JlU2NyaXB0RGVidWdnZXIubW0gKi87IH07
CiAJCTg1MDA0RDk0MEFDRUVBRUYwMEM0MzhGNiAvKiBET01TVkdEZWZzRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMDREODgwQUNFRUFF
RjAwQzQzOEY2IC8qIERPTVNWR0RlZnNFbGVtZW50LmggKi87IH07CkBAIC00OTM3LDYgKzQ5NDUs
MTQgQEAKIAkJNjVERjMyMzgwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUY4MDY5NzA1
NEQ5Rjg2MDA4QkY3NzYgLyogQmxvY2tFeGNlcHRpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmxvY2tFeGNlcHRpb25zLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
IAkJNjVGRUE4NjgwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3NTc5M0U4MDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZXNzYWdlRXZlbnQuY3BwOyBwYXRoID0g
ZG9tL01lc3NhZ2VFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNzU3
OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gTWVzc2FnZUV2ZW50Lmg7IHBhdGggPSBkb20vTWVzc2FnZUV2ZW50
Lmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNzU3OTNFODIwRDBDRTBCMzAwN0ZD
MEFDIC8qIE1lc3NhZ2VFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE1lc3NhZ2VF
dmVudC5pZGw7IHBhdGggPSBkb20vTWVzc2FnZUV2ZW50LmlkbDsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OworCQk3NTc5M0VDNjBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUV2ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU3OTNFQzcwRDBDRTcyRDAwN0ZD
MEFDIC8qIEpTTWVzc2FnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU01lc3NhZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTc5M0VE
MDBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01NZXNzYWdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzU3OTNFRDEwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01NZXNzYWdlRXZlbnQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NzkzRUQyMEQwQ0U4NUIwMDdGQzBB
QyAvKiBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0U2RkVFRDYwODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkNvcmVTY3JpcHREZWJ1Z2dlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJN0U2RkVFRDcwODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNv
cmVTY3JpcHREZWJ1Z2dlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVNjcmlwdERlYnVnZ2VyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJODRCMkIxRjcw
NTZCRUYzQTAwRDJCNzcxIC8qIFdlYkNvcmVLZXlHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUtleUdlbmVyYXRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
QEAgLTkyNTksNiArOTI3NSw5IEBACiAJCQkJODVERjM0M0YwQUFGQzBFRDAwRTU5QUUzIC8qIERP
TUtleWJvYXJkRXZlbnRQcml2YXRlLmggKi8sCiAJCQkJODVGRjMxNTgwQUFGQkZDQjAwMzc0RjM4
IC8qIERPTUtleWJvYXJkRXZlbnQuaCAqLywKIAkJCQk4NUZGMzE1OTBBQUZCRkNCMDAzNzRGMzgg
LyogRE9NS2V5Ym9hcmRFdmVudC5tbSAqLywKKwkJCQk3NTc5M0VEMDBEMENFODVCMDA3RkMwQUMg
LyogRE9NTWVzc2FnZUV2ZW50LmggKi8sCisJCQkJNzU3OTNFRDEwRDBDRTg1QjAwN0ZDMEFDIC8q
IERPTU1lc3NhZ2VFdmVudC5tbSAqLywKKwkJCQk3NTc5M0VEMjBEMENFODVCMDA3RkMwQUMgLyog
RE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaCAqLywKIAkJCQk4NTdFMEIyQjBBQjA0M0ZDMDAzNkU0
NDcgLyogRE9NTW91c2VFdmVudFByaXZhdGUuaCAqLywKIAkJCQk4NTdFMEIyMzBBQjA0MzQ2MDAz
NkU0NDcgLyogRE9NTW91c2VFdmVudC5oICovLAogCQkJCTg1N0UwQjI0MEFCMDQzNDYwMDM2RTQ0
NyAvKiBET01Nb3VzZUV2ZW50Lm1tICovLApAQCAtMTA2MDksNiArMTA2MjgsOCBAQAogCQkJCTE0
RTgzNzhEMDlGODVENEYwMEI4NUFFNCAvKiBKU0V2ZW50LmggKi8sCiAJCQkJQTg2NjI5Q0UwOURB
MkI0NzAwOTYzM0E1IC8qIEpTS2V5Ym9hcmRFdmVudC5jcHAgKi8sCiAJCQkJQTg2NjI5Q0QwOURB
MkI0NzAwOTYzM0E1IC8qIEpTS2V5Ym9hcmRFdmVudC5oICovLAorCQkJCTc1NzkzRUM2MEQwQ0U3
MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5jcHAgKi8sCisJCQkJNzU3OTNFQzcwRDBDRTcy
RDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmggKi8sCiAJCQkJQTg2NjI5Q0MwOURBMkI0NzAw
OTYzM0E1IC8qIEpTTW91c2VFdmVudC5jcHAgKi8sCiAJCQkJQTg2NjI5Q0IwOURBMkI0NzAwOTYz
M0E1IC8qIEpTTW91c2VFdmVudC5oICovLAogCQkJCTY1REYzMUU3MDlEMUNDNjAwMDBCRTMyNSAv
KiBKU011dGF0aW9uRXZlbnQuY3BwICovLApAQCAtMTIzMDYsNiArMTIzMjcsOSBAQAogCQkJCUE4
QzRBN0Y0MDlENTYzMjcwMDAzQUM4RCAvKiBNYXBwZWRBdHRyaWJ1dGUuY3BwICovLAogCQkJCUE4
QzRBN0YzMDlENTYzMjcwMDAzQUM4RCAvKiBNYXBwZWRBdHRyaWJ1dGUuaCAqLywKIAkJCQlBOEM0
QTg0QjA5RDU2NDlEMDAwM0FDOEQgLyogTWFwcGVkQXR0cmlidXRlRW50cnkuaCAqLywKKwkJCQk3
NTc5M0U4MDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmNwcCAqLywKKwkJCQk3NTc5
M0U4MTBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggKi8sCisJCQkJNzU3OTNFODIw
RDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5pZGwgKi8sCiAJCQkJODUwMzFCMkYwQTQ0
RUZDNzAwRjk5MkUwIC8qIE1vdXNlRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjMwMEE0NEVGQzcw
MEY5OTJFMCAvKiBNb3VzZUV2ZW50LmggKi8sCiAJCQkJMTQxQjk0RTUwOUVDNDIyMzAwMEU5NDEz
IC8qIE1vdXNlRXZlbnQuaWRsICovLApAQCAtMTQyNDUsNiArMTQyNjksMTAgQEAKIAkJCQlCMkQx
OUE0OTBDRUY5REMxMDAwRTAzM0IgLyogU1ZHQ1NTRm9udEZhY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQTM3OTE1MEQxNjNFNTUwMEI3OTNENiAvKiBKU0xvY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0EzNzkzRjBEMTY0N0UwMDBCNzkzRDYgLyogSlNMb2NhdGlvbi5sdXQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTc1NzkzRTg0MEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTc1NzkzRUM5MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3Nh
Z2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU3OTNFRDMwRDBDRTg1QjAwN0ZDMEFDIC8q
IERPTU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU3OTNFRDUwRDBDRTg1QjAw
N0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzdGQTYyMTBEMUYwQ0JEMDBEQjIyQTkgLyogRHluYW1pY05vZGVMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzdGQTYyRDBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDN0ZBNjgxMEQxRjE2NzkwMERCMjJBOSAvKiBTZWxlY3Rvck5vZGVM
aXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTE0NDcxLDYgKzE0NDk5LDcgQEAKIAkJCQlCMjU1OTk2
ODBEMDBEOEJBMDBCQjgyNUMgLyogV0tTcGVjdWxhckxpZ2h0aW5nRmlsdGVyLmNpa2VybmVsIGlu
IFJlc291cmNlcyAqLywKIAkJCQlCMjU1OTk2QjBEMDBEOEJBMDBCQjgyNUMgLyogV0tTcG90TGln
aHRGaWx0ZXIuY2lrZXJuZWwgaW4gUmVzb3VyY2VzICovLAogCQkJCUIyNTU5OTZFMEQwMEQ4QkEw
MEJCODI1QyAvKiBXS1RhYmxlVHJhbnNmZXJGaWx0ZXIuY2lrZXJuZWwgaW4gUmVzb3VyY2VzICov
LAorCQkJCTc1NzkzRTg1MEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaWRsIGluIFJl
c291cmNlcyAqLywKIAkJCQk0NkY5RDVERDBCMEQ2MDE3MDAyOEVFMzYgLyogYWxpYXNDdXJzb3Iu
cG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk0NkQ0RjI0OTBBRjk3RTgxMDAzNTM4NUEgLyogY2Vs
bEN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCUIyQUZGQzkwMEQwMEE1REYwMDMwMDc0
RCAvKiBjaGFyYWN0ZXItc2V0cy50eHQgaW4gUmVzb3VyY2VzICovLApAQCAtMTU5NjcsNiArMTU5
OTYsOSBAQAogCQkJCTkzMzA5REY3MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTMzMDlFMUQwOTlFNjQ5MjAwNTZFNTgxIC8qIHZpc2libGVfdW5pdHMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMzc5MTQwRDE2M0U1NTAwQjc5M0Q2IC8qIEpTTG9j
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU3OTNFODMwRDBDRTBCMzAwN0ZDMEFDIC8q
IE1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTc5M0VDODBEMENFNzJEMDA3
RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU3OTNFRDQw
RDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUIyQTFGMkFBMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkExRjJBRDBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyQTFGMkIwMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNz
aW5nR2x5cGhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHJldmlzaW9uIDI5MDQxKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwLDgg
KzIwLDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIK
IAotI2luY2x1ZGUgImtqc193aW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJr
anNfd2luZG93LmgiCisjaW5jbHVkZSAia2pzL29iamVjdC5oIgorI2luY2x1ZGUgImtqcy92YWx1
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcwLDcgKzc0LDggQEAgYm9vbCBKU0RP
TVdpbmRvdzo6Y3VzdG9tR2V0T3duUHJvcGVydHlTbAogICAgICAgICAgICAgaWYgKGVudHJ5LT5h
dHRyICYgS0pTOjpGdW5jdGlvbikgewogICAgICAgICAgICAgICAgIGlmIChlbnRyeS0+dmFsdWUu
ZnVuY3Rpb25WYWx1ZSA9PSAmSlNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkZvY3VzOjpjcmVh
dGUKICAgICAgICAgICAgICAgICAgICAgfHwgZW50cnktPnZhbHVlLmZ1bmN0aW9uVmFsdWUgPT0g
JkpTRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25CbHVyOjpjcmVhdGUKLSAgICAgICAgICAgICAg
ICAgICAgfHwgZW50cnktPnZhbHVlLmZ1bmN0aW9uVmFsdWUgPT0gJkpTRE9NV2luZG93UHJvdG90
eXBlRnVuY3Rpb25DbG9zZTo6Y3JlYXRlKQorICAgICAgICAgICAgICAgICAgICB8fCBlbnRyeS0+
dmFsdWUuZnVuY3Rpb25WYWx1ZSA9PSAmSlNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkNsb3Nl
OjpjcmVhdGUKKyAgICAgICAgICAgICAgICAgICAgfHwgZW50cnktPnZhbHVlLmZ1bmN0aW9uVmFs
dWUgPT0gJkpTRE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZTo6Y3JlYXRlKQog
ICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlzLCBlbnRyeSwg
S0pTOjpzdGF0aWNGdW5jdGlvbkdldHRlcik7CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICghYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKQEAgLTEwOCw0ICsx
MTMsMjMgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Y3VzdG9tUHV0KEtKUzo6RXhlY1N0YQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorS0pTOjpKU1ZhbHVlKiBKU0RPTVdpbmRvdzo6cG9zdE1lc3NhZ2Uo
S0pTOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEtKUzo6TGlzdCYgYXJncykKK3sKKyAgICBET01X
aW5kb3cqIHdpbmRvdyA9IGltcGwoKTsKKyAgICAKKyAgICBpZiAoYXJncy5zaXplKCkgIT0gMSkK
KyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgS0pTOjpTeW50YXhFcnJvcik7CisgICAg
CisgICAgaWYgKCFhcmdzWzBdLT5pc1N0cmluZygpKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihleGVjLCBLSlM6OlN5bnRheEVycm9yKTsKKyAgICAKKyAgICBET01XaW5kb3cqIHNvdXJjZSA9
IHN0YXRpY19jYXN0PEpTRE9NV2luZG93Kj4oZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpKS0+
aW1wbCgpOworICAgIFN0cmluZyBkb21haW4gPSBzb3VyY2UtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCktPmRvbWFpbigpOworICAgIFN0cmluZyB1cmkgPSBzb3VyY2UtPmRvY3VtZW50KCkt
PmRvY3VtZW50VVJJKCk7CisgICAgCisgICAgd2luZG93LT5wb3N0TWVzc2FnZShhcmdzWzBdLT50
b1N0cmluZyhleGVjKSwgZG9tYWluLCB1cmksIHNvdXJjZSk7CisgICAgCisgICAgcmV0dXJuIEtK
Uzo6anNVbmRlZmluZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCShyZXZpc2lvbiAyOTA0MSkKKysrIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2lu
Y2x1ZGUgIkpTS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIkpTTWVzc2FnZUV2ZW50LmgiCiAj
aW5jbHVkZSAiSlNNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbkV2ZW50LmgiCiAj
aW5jbHVkZSAiSlNPdmVyZmxvd0V2ZW50LmgiCkBAIC00MCw2ICs0MSw3IEBACiAjaW5jbHVkZSAi
SlNVSUV2ZW50LmgiCiAjaW5jbHVkZSAiSlNXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiS2V5Ym9h
cmRFdmVudC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk1vdXNlRXZl
bnQuaCIKICNpbmNsdWRlICJNdXRhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiT3ZlcmZsb3dFdmVu
dC5oIgpAQCAtODQsNiArODYsOCBAQCBKU1ZhbHVlKiB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgRXZl
bnQqIGV2CiAgICAgICAgIHJldCA9IG5ldyBKU011dGF0aW9uRXZlbnQoZXhlYywgc3RhdGljX2Nh
c3Q8TXV0YXRpb25FdmVudCo+KGV2ZW50KSk7CiAgICAgZWxzZSBpZiAoZXZlbnQtPmlzT3ZlcmZs
b3dFdmVudCgpKQogICAgICAgICByZXQgPSBuZXcgSlNPdmVyZmxvd0V2ZW50KGV4ZWMsIHN0YXRp
Y19jYXN0PE92ZXJmbG93RXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5pc01l
c3NhZ2VFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgSlNNZXNzYWdlRXZlbnQoZXhlYywgc3Rh
dGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oZXZlbnQpKTsKICAgICBlbHNlIGlmIChldmVudC0+aXNQ
cm9ncmVzc0V2ZW50KCkpCiAgICAgICAgIHJldCA9IG5ldyBKU1Byb2dyZXNzRXZlbnQoZXhlYywg
c3RhdGljX2Nhc3Q8UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7CiAgICAgZWxzZQpJbmRleDogV2Vi
Q29yZS9kb20vRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50LmNwcAko
cmV2aXNpb24gMjkwNDEpCisrKyBXZWJDb3JlL2RvbS9FdmVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTExMCw2ICsxMTAsMTEgQEAgYm9vbCBFdmVudDo6aXNXaGVlbEV2ZW50KCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgRXZlbnQ6OmlzTWVzc2FnZUV2ZW50KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgRXZlbnQ6OmlzQmVmb3JlVGV4dEluc2Vy
dGVkRXZlbnQoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFdlYkNvcmUvZG9t
L0V2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZlbnQuaAkocmV2aXNpb24gMjkw
NDEpCisrKyBXZWJDb3JlL2RvbS9FdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNiArMTA2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RXZl
bnQoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGlzRHJhZ0V2ZW50KCkgY29uc3Q7IC8v
IGEgc3Vic2V0IG9mIG1vdXNlIGV2ZW50cwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDbGlwYm9h
cmRFdmVudCgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNNZXNzYWdlRXZlbnQoKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGlzV2hlZWxFdmVudCgpIGNvbnN0OwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCgpIGNvbnN0OwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNPdmVyZmxvd0V2ZW50KCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL2Rv
bS9NZXNzYWdlRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL01lc3NhZ2VFdmVu
dC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhlbnJ5
IE1hc29uIChobWFzb25AbWFjLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNSwgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
CisjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWVz
c2FnZUV2ZW50OjpNZXNzYWdlRXZlbnQoKQoreworfQorCitNZXNzYWdlRXZlbnQ6Ok1lc3NhZ2VF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJv
b2wgY2FuY2VsYWJsZUFyZywgY29uc3QgQXRvbWljU3RyaW5nJiBkYXRhLCBjb25zdCBBdG9taWNT
dHJpbmcmIGRvbWFpbiwgY29uc3QgQXRvbWljU3RyaW5nJiB1cmksIERPTVdpbmRvdyogc291cmNl
KQorICAgIDogRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcpCisg
ICAgLCBtX2RhdGEoZGF0YSkKKyAgICAsIG1fZG9tYWluKGRvbWFpbikKKyAgICAsIG1fdXJpKHVy
aSkKKyAgICAsIG1fc291cmNlKHNvdXJjZSkKK3sKK30KKworTWVzc2FnZUV2ZW50OjpNZXNzYWdl
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBjb25z
dCBBdG9taWNTdHJpbmcmIGRhdGEsIGNvbnN0IEF0b21pY1N0cmluZyYgZG9tYWluLCBjb25zdCBB
dG9taWNTdHJpbmcmIHVyaSwgRE9NV2luZG93KiBzb3VyY2UpCisgICAgOiBFdmVudChldmVudFR5
cGUsIGNhbkJ1YmJsZUFyZywgY2FuY2VsYWJsZUFyZykKKyAgICAsIG1fbmFtZXNwYWNlVVJJKG5h
bWVzcGFjZVVSSSkKKyAgICAsIG1fZGF0YShkYXRhKQorICAgICwgbV9kb21haW4oZG9tYWluKQor
ICAgICwgbV91cmkodXJpKQorICAgICwgbV9zb3VyY2Uoc291cmNlKQoreworfQorCitNZXNzYWdl
RXZlbnQ6On5NZXNzYWdlRXZlbnQoKQoreworfQorCit2b2lkIE1lc3NhZ2VFdmVudDo6aW5pdE1l
c3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIGNvbnN0IEF0b21pY1N0cmluZyYgZGF0YSwgY29uc3QgQXRvbWljU3RyaW5n
JiBkb21haW4sIGNvbnN0IEF0b21pY1N0cmluZyYgdXJpLCBET01XaW5kb3cqIHNvdXJjZSkKK3sK
KyAgICBpZiAoZGlzcGF0Y2hlZCgpKQorICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgIGlu
aXRFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUpOworICAgIAorICAgIG1fZGF0YSA9
IGRhdGE7CisgICAgbV9kb21haW4gPSBkb21haW47CisgICAgbV91cmkgPSB1cmk7CisgICAgbV9z
b3VyY2UgPSBzb3VyY2U7Cit9CisKK3ZvaWQgTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50
TlMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgY29uc3QgQXRvbWljU3RyaW5n
JiBkYXRhLCBjb25zdCBBdG9taWNTdHJpbmcmIGRvbWFpbiwgY29uc3QgQXRvbWljU3RyaW5nJiB1
cmksIERPTVdpbmRvdyogc291cmNlKQoreworICAgIGlmIChkaXNwYXRjaGVkKCkpCisgICAgICAg
IHJldHVybjsKKyAgICAgICAgCisgICAgaW5pdEV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2Vs
YWJsZSk7CisgICAgCisgICAgbV9kYXRhID0gZGF0YTsKKyAgICBtX2RvbWFpbiA9IGRvbWFpbjsK
KyAgICBtX3VyaSA9IHVyaTsKKyAgICBtX3NvdXJjZSA9IHNvdXJjZTsKKyAgICBtX25hbWVzcGFj
ZVVSSSA9IG5hbWVzcGFjZVVSSTsKK30KKworYm9vbCBNZXNzYWdlRXZlbnQ6OmlzTWVzc2FnZUV2
ZW50KCkgY29uc3QgCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFdlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL01lc3NhZ2VFdmVudC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9kb20vTWVz
c2FnZUV2ZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcgSGVucnkgTWFzb24gKGhtYXNvbkBtYWMuY29tKQorICogQ29weXJpZ2h0IChD
KSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKgorICovCisKKyNpZm5kZWYgTWVzc2FnZUV2ZW50X2gKKyNkZWZpbmUgTWVzc2Fn
ZUV2ZW50X2gKKworI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNs
YXNzIE1lc3NhZ2VFdmVudCA6IHB1YmxpYyBFdmVudCB7CisgICAgcHVibGljOgorCisgICAgICAg
IE1lc3NhZ2VFdmVudCgpOworICAgICAgICBNZXNzYWdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBjb25zdCBBdG9taWNTdHJp
bmcmIGRhdGEsIGNvbnN0IEF0b21pY1N0cmluZyYgZG9tYWluLCBjb25zdCBBdG9taWNTdHJpbmcm
IHVyaSwgRE9NV2luZG93KiBzb3VyY2UpOworICAgICAgICBNZXNzYWdlRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgY29uc3QgQXRvbWljU3RyaW5nJiBkYXRhLCBjb25z
dCBBdG9taWNTdHJpbmcmIGRvbWFpbiwgY29uc3QgQXRvbWljU3RyaW5nJiB1cmksIERPTVdpbmRv
dyogc291cmNlKTsKKyAgICAgICAgdmlydHVhbCB+TWVzc2FnZUV2ZW50KCk7CisKKyAgICAgICAg
dm9pZCBpbml0TWVzc2FnZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgY29uc3QgQXRvbWljU3RyaW5nJiBkYXRhLCBjb25zdCBB
dG9taWNTdHJpbmcmIGRvbWFpbiwgY29uc3QgQXRvbWljU3RyaW5nJiB1cmksIERPTVdpbmRvdyog
c291cmNlKTsKKyAgICAgICAgCisgICAgICAgIHZvaWQgaW5pdE1lc3NhZ2VFdmVudE5TKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGNvbnN0IEF0b21pY1N0cmluZyYgZGF0YSwg
Y29uc3QgQXRvbWljU3RyaW5nJiBkb21haW4sIGNvbnN0IEF0b21pY1N0cmluZyYgdXJpLCBET01X
aW5kb3cqIHNvdXJjZSk7CisgICAgICAgIAorICAgICAgICB2b2lkIHNldERhdGEoY29uc3QgQXRv
bWljU3RyaW5nJiBkYXRhKSB7IG1fZGF0YSA9IGRhdGE7IH0KKyAgICAgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CisKKyAgICAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBkb21haW4oKSBjb25zdCB7IHJldHVybiBtX2RvbWFpbjsgfQorICAgICAg
ICAKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB1cmkoKSBjb25zdCB7IHJldHVybiBtX3Vy
aTsgfQorICAgICAgICAKKyAgICAgICAgRE9NV2luZG93KiBzb3VyY2UoKSBjb25zdCB7IHJldHVy
biBtX3NvdXJjZS5nZXQoKTsgfQorICAgICAgICAKKyAgICAgICAgdmlydHVhbCBib29sIGlzTWVz
c2FnZUV2ZW50KCkgY29uc3Q7CisKKyAgICBwcml2YXRlOiAgICAKKyAgICAgICAgQXRvbWljU3Ry
aW5nIG1fbmFtZXNwYWNlVVJJOworICAgICAgICBBdG9taWNTdHJpbmcgbV9kYXRhOworICAgICAg
ICBBdG9taWNTdHJpbmcgbV9kb21haW47CisgICAgICAgIEF0b21pY1N0cmluZyBtX3VyaTsKKyAg
ICAgICAgCisgICAgICAgIFJlZlB0cjxET01XaW5kb3c+IG1fc291cmNlOworICAgICAgICAKKyAg
ICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBNZXNzYWdlRXZlbnRf
aApJbmRleDogV2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9NZXNzYWdlRXZlbnQuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9kb20vTWVz
c2FnZUV2ZW50LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNyBIZW5yeSBNYXNvbiA8aG1hc29uQG1hYy5jb20+CisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICoKKyAqLworCitt
b2R1bGUgZXZlbnRzIHsKKworICAgIGludGVyZmFjZSBbR2VuZXJhdGVDb25zdHJ1Y3Rvcl0gTWVz
c2FnZUV2ZW50IDogRXZlbnQgeworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgZGF0YTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb21haW47Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJpOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NV2luZG93IHNvdXJjZTsKKyAgICAgICAgCisgICAgICAgIHZvaWQgaW5p
dE1lc3NhZ2VFdmVudChpbiBET01TdHJpbmcgdHlwZUFyZywgaW4gYm9vbGVhbiBjYW5CdWJibGVB
cmcsIGluIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywgaW4gRE9NU3RyaW5nIGRhdGFBcmcsIGluIERP
TVN0cmluZyBkb21haW5BcmcsIGluIERPTVN0cmluZyB1cmlBcmcsIGluIERPTVdpbmRvdyBzb3Vy
Y2VBcmcpOworICAgICAgICAKKyAgICAgICAgdm9pZCBpbml0TWVzc2FnZUV2ZW50TlMoaW4gRE9N
U3RyaW5nIG5hbWVzcGFjZVVSSSwgaW4gRE9NU3RyaW5nIHR5cGVBcmcsIGluIGJvb2xlYW4gY2Fu
QnViYmxlQXJnLCBpbiBib29sZWFuIGNhbmNlbGFibGVBcmcsIGluIERPTVN0cmluZyBkYXRhQXJn
LCBpbiBET01TdHJpbmcgZG9tYWluQXJnLCBpbiBET01TdHJpbmcgdXJpQXJnLCBpbiBET01XaW5k
b3cgc291cmNlQXJnKTsKKworICAgIH07CisKK30KSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lv
biAyOTA0MSkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiSGlzdG9yeS5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCkBAIC0yMTksNiArMjIwLDEyIEBAIENvbnNvbGUqIERPTVdpbmRv
dzo6Y29uc29sZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29uc29sZS5nZXQoKTsKIH0KIAordm9p
ZCBET01XaW5kb3c6OnBvc3RNZXNzYWdlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBkb21haW4sIGNvbnN0IFN0cmluZyYgdXJpLCBET01XaW5kb3cqIHNvdXJjZSkgY29uc3QKK3sK
KyAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgZG9jdW1lbnQoKS0+ZGlzcGF0Y2hFdmVudChu
ZXcgTWVzc2FnZUV2ZW50KCJtZXNzYWdlIiwgdHJ1ZSwgdHJ1ZSwgbmFtZSwgZG9tYWluLCB1cmks
IHNvdXJjZSksIGVjLCB0cnVlKTsKK30KKwogRE9NU2VsZWN0aW9uKiBET01XaW5kb3c6OmdldFNl
bGVjdGlvbigpCiB7CiAgICAgaWYgKCFtX3NlbGVjdGlvbikKSW5kZXg6IFdlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlz
aW9uIDI5MDQxKQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDEsNiArMTQxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICAgICAgICAg
Q29uc29sZSogY29uc29sZSgpIGNvbnN0OworICAgICAgICAKKyAgICAgICAgdm9pZCBwb3N0TWVz
c2FnZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJp
bmcmIHVyaSwgRE9NV2luZG93KiBzb3VyY2UpIGNvbnN0OwogCiAgICAgICAgIHZvaWQgc2Nyb2xs
QnkoaW50IHgsIGludCB5KSBjb25zdDsKICAgICAgICAgdm9pZCBzY3JvbGxUbyhpbnQgeCwgaW50
IHkpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDI5MDQxKQorKysgV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEyNSw2ICsxMjUsOSBAQCBt
b2R1bGUgd2luZG93IHsKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxl
XSBDb25zb2xlIGNvbnNvbGU7CiAKKyAgICAgICAgLy8gY3Jvc3MtZG9jdW1lbnQgbWVzc2FnaW5n
CisgICAgICAgIFtEb05vdENoZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCBwb3N0TWVz
c2FnZShpbiBET01TdHJpbmcgbWVzc2FnZSk7CisKICNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpCiAgICAgICAgIC8vIEdsb2JhbCBjb25zdHJ1Y3RvcnMKICAgICAgICAgYXR0cmlidXRl
IFN0eWxlU2hlZXRDb25zdHJ1Y3RvciBTdHlsZVNoZWV0OwpAQCAtMjQwLDYgKzI0Myw3IEBAIG1v
ZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgSFRNTFVMaXN0RWxlbWVudENvbnN0cnVj
dG9yIEhUTUxVTGlzdEVsZW1lbnQ7CiAKICAgICAgICAgYXR0cmlidXRlIEV2ZW50Q29uc3RydWN0
b3IgRXZlbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBNZXNzYWdlRXZlbnRDb25zdHJ1Y3RvciBNZXNz
YWdlRXZlbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBLZXlib2FyZEV2ZW50Q29uc3RydWN0b3IgS2V5
Ym9hcmRFdmVudDsKICAgICAgICAgYXR0cmlidXRlIE1vdXNlRXZlbnRDb25zdHJ1Y3RvciBNb3Vz
ZUV2ZW50OwogICAgICAgICBhdHRyaWJ1dGUgTXV0YXRpb25FdmVudENvbnN0cnVjdG9yIE11dGF0
aW9uRXZlbnQ7CkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI5MDQxKQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEwIEBACisyMDA3LTEyLTMwICBIZW5yeSBNYXNvbiAgPGhtYXNvbkBt
YWMuY29tPgorCisgICAgICAgIFRlc3QgZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0OTk0CisgICAgICAgIFN1cHBvcnQgZm9yIE1lc3NhZ2VFdmVudCBhbmQgY3Jv
c3MtZG9tYWluIG1lc3NhZ2luZworCisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IFVwZGF0ZWQKKwogMjAwNy0xMi0xNiAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpJbmRleDogV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjkwNDEpCisrKyBX
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTEzNjAsNyArMTM2MCw2IEBACiAJCTA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0
IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRp
b25MaXN0ID0gMTQ5QzI4MzIwODkwMkIwRjAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViS2l0IiAqLzsKLQkJCWNvbXBhdGliaWxpdHlWZXJzaW9u
ID0gIlhjb2RlIDIuNCI7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3du
UmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjkwNDEpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAw
Ny0xMi0zMCAgSGVucnkgTWFzb24gIDxobWFzb25AbWFjLmNvbT4KKworICAgICAgICBUZXN0IGZv
ciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk5NAorICAgICAgICBT
dXBwb3J0IGZvciBNZXNzYWdlRXZlbnQgYW5kIGNyb3NzLWRvbWFpbiBtZXNzYWdpbmcKKworICAg
ICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdpbmc6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXJlY2VpdmUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9jcm9zcy1kb21haW4tbWVzc2Fn
ZS1yZWNlaXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVzc2FnaW5nL2Ny
b3NzLWRvbWFpbi1tZXNzYWdlLXNlbmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL21lc3NhZ2luZy9jcm9zcy1kb21haW4tbWVzc2FnZS1zZW5kLmh0bWw6IEFkZGVk
LgorCiAyMDA3LTEyLTMwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDI5MDQxKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzA0LDYgKzcwNCw4IEBAIHdpbmRv
dy5NZWRpYUxpc3QucHJvdG90eXBlIFtvYmplY3QgTWVkaWEKIHdpbmRvdy5NZWRpYUxpc3QucHJv
dG90eXBlLmFwcGVuZE1lZGl1bSBbZnVuY3Rpb25dCiB3aW5kb3cuTWVkaWFMaXN0LnByb3RvdHlw
ZS5kZWxldGVNZWRpdW0gW2Z1bmN0aW9uXQogd2luZG93Lk1lZGlhTGlzdC5wcm90b3R5cGUuaXRl
bSBbZnVuY3Rpb25dCit3aW5kb3cuTWVzc2FnZUV2ZW50IFtvYmplY3QgTWVzc2FnZUV2ZW50Q29u
c3RydWN0b3JdCit3aW5kb3cuTWVzc2FnZUV2ZW50LnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBh
cyB3aW5kb3cuRXZlbnQucHJvdG90eXBlXQogd2luZG93Lk1vdXNlRXZlbnQgW29iamVjdCBNb3Vz
ZUV2ZW50Q29uc3RydWN0b3JdCiB3aW5kb3cuTW91c2VFdmVudC5wcm90b3R5cGUgW3ByaW50ZWQg
YWJvdmUgYXMgd2luZG93LkV2ZW50LnByb3RvdHlwZV0KIHdpbmRvdy5NdXRhdGlvbkV2ZW50IFtv
YmplY3QgTXV0YXRpb25FdmVudENvbnN0cnVjdG9yXQpAQCAtMTI1NCw2ICsxMjU2LDcgQEAgd2lu
ZG93LnBhZ2VZT2Zmc2V0IFtudW1iZXJdCiB3aW5kb3cucGFyZW50IFtwcmludGVkIGFib3ZlIGFz
IHdpbmRvd10KIHdpbmRvdy5wZXJzb25hbGJhciBbb2JqZWN0IEJhckluZm9dCiB3aW5kb3cucGVy
c29uYWxiYXIudmlzaWJsZSBbYm9vbGVhbl0KK3dpbmRvdy5wb3N0TWVzc2FnZSBbZnVuY3Rpb25d
CiB3aW5kb3cucHJpbnQgW2Z1bmN0aW9uXQogd2luZG93LnByb21wdCBbZnVuY3Rpb25dCiB3aW5k
b3cucmVsZWFzZUV2ZW50cyBbZnVuY3Rpb25dCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21lc3NhZ2luZy9jcm9zcy1kb21haW4tbWVzc2FnZS1yZWNlaXZlLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9jcm9zcy1kb21haW4t
bWVzc2FnZS1yZWNlaXZlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXJlY2VpdmUtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDIyMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
MjIwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDE4OAorICAgICAg
UmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMweDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMzA6ICJkYXRhOiIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwzNCkgc2l6ZSA3
ODR4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzB4MTgKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMDogImVycm9yIgorICAgICAgUmVuZGVy
QmxvY2sge1B9IGF0ICgwLDY4KSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAyMXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDIxOiAidXJpOiIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwxMDIpIHNpemUgNzg0eDE4
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMweDE4CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzA6ICJlcnJvciIKKyAgICAgIFJlbmRlckJsb2Nr
IHtQfSBhdCAoMCwxMzYpIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDUxeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTE6
ICJkb21haW46IgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDE3MCkgc2l6ZSA3ODR4MTgK
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzB4MTgKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMDogImVycm9yIgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZXNzYWdpbmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2UtcmVjZWl2ZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFp
bi1tZXNzYWdlLXJlY2VpdmUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXJlY2VpdmUuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDx0aXRsZT5Dcm9zcy1Eb2MgVGVzdDwvdGl0bGU+Cis8L2hlYWQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorCitmdW5jdGlv
biByZWNlaXZlcihlKSB7CisgICAgdmFyIHJlc3VsdCA9ICIiOworICAgIHJlc3VsdCArPSAiZGF0
YTogIiArIGUuZGF0YSArICJcbiI7CisgICAgcmVzdWx0ICs9ICJ1cmk6ICIgKyBlLnVyaSArICJc
biI7CisgICAgcmVzdWx0ICs9ICJkb21haW46ICIgKyBlLmRvbWFpbiArICJcbiI7CisgICAgZS5z
b3VyY2UucG9zdE1lc3NhZ2UocmVzdWx0KTsgICAKK30KKworZG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcignbWVzc2FnZScsIHJlY2VpdmVyLCBmYWxzZSk7CisKKzwvc2NyaXB0PgorPGJvZHk+Cisg
ICAgCisgICAgPHA+ZGF0YTo8L3A+CisgICAgPHAgaWQ9ImRhdGEiPmVycm9yPC9wPgorICAgIAor
ICAgIDxwPnVyaTo8L3A+CisgICAgPHAgaWQ9InVyaSI+ZXJyb3I8L3A+CisKKyAgICA8cD5kb21h
aW46PC9wPgorICAgIDxwIGlkPSJkb21haW4iPmVycm9yPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lc3NhZ2luZy9jcm9zcy1kb21haW4tbWVz
c2FnZS1zZW5kLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lc3NhZ2luZy9jcm9zcy1kb21haW4tbWVzc2FnZS1zZW5kLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFp
bi1tZXNzYWdlLXNlbmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBA
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDI4MgorICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjgyCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkg
c2l6ZSA3ODR4MjYxCisgICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwwKSBzaXpl
IDc4NHgxNTgKKyAgICAgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBzaXpl
IDMwNHgxNTQgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDI4NXgyMjAKKyAgICAgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSAyODV4MTUwCisgICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyODV4MjIwCisgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAyODV4MjIwCisgICAgICAgICAg
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDI2OXgxODgKKyAgICAgICAgICAg
ICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSAyNjl4MTgKKyAgICAgICAgICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMweDE4CisgICAgICAgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMwOiAiZGF0YToiCisgICAgICAgICAgICAg
ICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDM0KSBzaXplIDI2OXgxOAorICAgICAgICAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzB4MTgKKyAgICAgICAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzA6ICJlcnJvciIKKyAgICAgICAgICAgICAg
ICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNjgpIHNpemUgMjY5eDE4CisgICAgICAgICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMXgxOAorICAgICAgICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMTogInVyaToiCisgICAgICAgICAgICAgICAg
UmVuZGVyQmxvY2sge1B9IGF0ICgwLDEwMikgc2l6ZSAyNjl4MTgKKyAgICAgICAgICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMweDE4CisgICAgICAgICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMwOiAiZXJyb3IiCisgICAgICAgICAgICAgICAg
UmVuZGVyQmxvY2sge1B9IGF0ICgwLDEzNikgc2l6ZSAyNjl4MTgKKyAgICAgICAgICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDUxeDE4CisgICAgICAgICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUxOiAiZG9tYWluOiIKKyAgICAgICAgICAgICAg
ICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMTcwKSBzaXplIDI2OXgxOAorICAgICAgICAgICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzB4MTgKKyAgICAgICAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzA6ICJlcnJvciIKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5kZXJCbG9jayB7UFJFfSBh
dCAoMCwxNzEpIHNpemUgNzg0eDkwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDU2MHg5MAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE2ODogImRh
dGE6IGRhdGE6IFNvbWV0aGluZyIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTY4LDApIHdpZHRo
IDA6ICIgIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE1KSB3aWR0aCA1MzY6ICJ1cmk6IGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9tZXNzYWdpbmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2Utc2VuZC5o
dG1sIgorICAgICAgICAgIHRleHQgcnVuIGF0ICg1MzYsMTUpIHdpZHRoIDA6ICIgIgorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDMwKSB3aWR0aCAxMzY6ICJkb21haW46IDEyNy4wLjAuMSIKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTM2LDMwKSB3aWR0aCAwOiAiICIKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCw0NSkgd2lkdGggMDogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNjAp
IHdpZHRoIDU2MDogInVyaTogaHR0cDovL2xvY2FsaG9zdDo4MDAwL21lc3NhZ2luZy9jcm9zcy1k
b21haW4tbWVzc2FnZS1yZWNlaXZlLmh0bWwiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDU2MCw2
MCkgd2lkdGggMDogIiAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNzUpIHdpZHRoIDEzNjog
ImRvbWFpbjogbG9jYWxob3N0IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgxMzYsNzUpIHdpZHRo
IDA6ICIgIgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvY3Jvc3MtZG9t
YWluLW1lc3NhZ2Utc2VuZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXNlbmQuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdl
LXNlbmQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+
CisKKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT5Dcm9zcy1Eb2MgVGVzdDwv
dGl0bGU+Cis8L2hlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0i
dXRmLTgiPgorZnVuY3Rpb24gcG9zdEl0ICgpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVjZWl2ZXIiKS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCJTb21ldGhpbmciKTsKK30K
KworZnVuY3Rpb24gcmVjZWl2ZXIoZSkgeworICAgIHZhciByZXN1bHQgPSAiIjsKKyAgICByZXN1
bHQgKz0gImRhdGE6ICIgKyBlLmRhdGEgKyAiXG4iOworICAgIHJlc3VsdCArPSAidXJpOiAiICsg
ZS51cmkgKyAiXG4iOworICAgIHJlc3VsdCArPSAiZG9tYWluOiAiICsgZS5kb21haW4gKyAiXG4i
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSByZXN1
bHQ7ICAgCisgICAgCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitkb2N1bWVudC5hZGRF
dmVudExpc3RlbmVyKCdtZXNzYWdlJywgcmVjZWl2ZXIsIGZhbHNlKTsKKworaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlw
dCgicG9zdEl0KCk7Iik7CisgICAgCis8L3NjcmlwdD4KKzxib2R5PgorICAgIAorICAgIDxpZnJh
bWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNz
YWdlLXJlY2VpdmUuaHRtbCIgaWQ9InJlY2VpdmVyIj48L2lmcmFtZT4KKyAgICAKKyAgICA8cHJl
IGlkPSJyZXN1bHQiPjwvcHJlPgorICAgIAorICAgIAorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="7916"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18213</attachid>
            <date>2007-12-31 02:01:42 -0800</date>
            <delta_ts>2007-12-31 03:12:12 -0800</delta_ts>
            <desc>Updated patched</desc>
            <filename>bug14994v2.patch</filename>
            <type>text/plain</type>
            <size>32996</size>
            <attacher name="Henry Mason">hmason</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTA0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDMgQEAKKzIwMDctMTItMzEgIEhlbnJ5IE1hc29uICA8aG1hc29uQG1hYy5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGF0Y2gg
Zm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTk0CisgICAgICAg
IFN1cHBvcnQgZm9yIE1lc3NhZ2VFdmVudCBhbmQgY3Jvc3MtZG9tYWluIG1lc3NhZ2luZworCisg
ICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXNl
bmQuaHRtbAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29y
ZVNvdXJjZXMuYmtsOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpjdXN0b21HZXRPd25Qcm9wZXJ0eVNs
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OnBvc3RNZXNzYWdlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
SlMpOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6
aXNNZXNzYWdlRXZlbnQpOgorICAgICAgICAqIGRvbS9FdmVudC5oOgorICAgICAgICAqIGRvbS9F
dmVudE5hbWVzLmg6IE5ldyBldmVudCBuYW1lCisgICAgICAgICogZG9tL01lc3NhZ2VFdmVudC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZUV2ZW50OjpNZXNzYWdlRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZUV2ZW50Ojp+TWVzc2FnZUV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lc3NhZ2VFdmVudDo6aW5pdE1lc3NhZ2VFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnROUyk6CisgICAgICAgIChXZWJD
b3JlOjpNZXNzYWdlRXZlbnQ6OmlzTWVzc2FnZUV2ZW50KToKKyAgICAgICAgKiBkb20vTWVzc2Fn
ZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZUV2ZW50OjpkYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VFdmVudDo6ZG9tYWluKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lc3NhZ2VFdmVudDo6dXJpKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VFdmVudDo6
c291cmNlKToKKyAgICAgICAgKiBkb20vTWVzc2FnZUV2ZW50LmlkbDogQWRkZWQuCisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwb3N0
TWVzc2FnZSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdlL0RP
TVdpbmRvdy5pZGw6CisKIDIwMDctMTItMzAgIEFscCBUb2tlciAgPGFscEBhdG9rZXIuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBXZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CShyZXZpc2lvbiAyOTA0OSkKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2lu
ZyBjb3B5KQpAQCAtMTMzLDYgKzEzMyw3IEBAIGFsbCA6IFwKICAgICBET01IVE1MVGl0bGVFbGVt
ZW50LmggXAogICAgIERPTUhUTUxVTGlzdEVsZW1lbnQuaCBcCiAgICAgRE9NS2V5Ym9hcmRFdmVu
dC5oIFwKKyAgICBET01NZXNzYWdlRXZlbnQuaCBcCiAgICAgRE9NTWVkaWFMaXN0LmggXAogICAg
IERPTU1vdXNlRXZlbnQuaCBcCiAgICAgRE9NTXV0YXRpb25FdmVudC5oIFwKQEAgLTQxNSw2ICs0
MTYsNyBAQCBhbGwgOiBcCiAgICAgSlNMb2NhdGlvbi5sdXQuaCBcCiAgICAgSlNNZWRpYUVycm9y
LmggXAogICAgIEpTTWVkaWFMaXN0LmggXAorICAgIEpTTWVzc2FnZUV2ZW50LmggXAogICAgIEpT
TW91c2VFdmVudC5oIFwKICAgICBKU011dGF0aW9uRXZlbnQuaCBcCiAgICAgSlNOYW1lZE5vZGVN
YXAuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS5wcm8JKHJldmlzaW9uIDI5MDQ5KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29y
a2luZyBjb3B5KQpAQCAtMjgxLDYgKzI4MSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAjICAgIGRv
bS9FdmVudExpc3RlbmVyLmlkbCBcCiAjICAgIGRvbS9FdmVudFRhcmdldC5pZGwgXAogICAgIGRv
bS9LZXlib2FyZEV2ZW50LmlkbCBcCisgICAgZG9tL01lc3NhZ2VFdmVudC5pZGwgXAogICAgIGRv
bS9Nb3VzZUV2ZW50LmlkbCBcCiAgICAgZG9tL011dGF0aW9uRXZlbnQuaWRsIFwKICAgICBkb20v
TmFtZWROb2RlTWFwLmlkbCBcCkBAIC00OTgsNiArNDk5LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
ZG9tL0V4Y2VwdGlvbkNvZGUuY3BwIFwKICAgICBkb20vS2V5Ym9hcmRFdmVudC5jcHAgXAogICAg
IGRvbS9NYXBwZWRBdHRyaWJ1dGUuY3BwIFwKKyAgICBkb20vTWVzc2FnZUV2ZW50LmNwcCBcCiAg
ICAgZG9tL01vdXNlRXZlbnQuY3BwIFwKICAgICBkb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwIFwK
ICAgICBkb20vTXV0YXRpb25FdmVudC5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlU291cmNl
cy5ia2wKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wJKHJldmlzaW9u
IDI5MDQ5KQorKysgV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wJKHdvcmtpbmcgY29weSkKQEAg
LTI0NSw2ICsyNDUsNyBAQCBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMgbmVl
CiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIaXN0b3J5LmNwcAogICAgICAgICBE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTS2V5Ym9hcmRFdmVudC5jcHAKICAgICAgICAgRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU01lZGlhTGlzdC5jcHAKKyAgICAgICAgRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU01lc3NhZ2VFdmVudC5jcHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU01vdXNlRXZlbnQuY3BwCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRh
dGlvbkV2ZW50LmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmFtZWROb2Rl
TWFwLmNwcApAQCAtMzEzLDYgKzMxNCw3IEBAIFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBv
ZiBmaWxlcyBuZWUKICAgICAgICAgZG9tL0V4Y2VwdGlvbkNvZGUuY3BwCiAgICAgICAgIGRvbS9L
ZXlib2FyZEV2ZW50LmNwcAogICAgICAgICBkb20vTWFwcGVkQXR0cmlidXRlLmNwcAorICAgICAg
ICBkb20vTWVzc2FnZUV2ZW50LmNwcAogICAgICAgICBkb20vTW91c2VFdmVudC5jcHAKICAgICAg
ICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAogICAgICAgICBkb20vTXV0YXRpb25FdmVudC5j
cHAKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMjkw
NDkpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTc3LDYgKzExNzcsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU01lc3NhZ2VFdmVudC5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZXNzYWdlRXZlbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01vdXNlRXZlbnQuY3BwIgogCQkJCT4KIAkJCTwv
RmlsZT4KQEAgLTYwNTMsNiArNjA2MSwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTWVzc2FnZUV2ZW50LmNwcCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXE1lc3NhZ2VFdmVudC5o
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21c
TW91c2VFdmVudC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI5MDQ5KQorKysgV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU0MCw2
ICs1NDAsMTQgQEAKIAkJNjVERjMyM0UwOUQxREU2NTAwMEJFMzI1IC8qIEpTQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2NURGMzIzODA5RDFERTY1MDAwQkUzMjUgLyogSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaCAqLzsgfTsKIAkJNjVERjMyNjEwOUQxRTE5OTAwMEJFMzI1IC8qIFVzZXJBZ2VudFN0eWxl
U2hlZXRzRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA2NTY1ODFBRjA5RDE0RUU2MDAwRTYxRDcgLyogVXNlckFnZW50U3R5bGVTaGVldHNEYXRh
LmNwcCAqLzsgfTsKIAkJNjVGRUE4NjkwOTgzM0FERTAwQkVENEFCIC8qIFBhZ2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVGRUE4NjgwOTgzM0FE
RTAwQkVENEFCIC8qIFBhZ2UuY3BwICovOyB9OworCQk3NTc5M0U4MzBEMENFMEIzMDA3RkMwQUMg
LyogTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1NzkzRTgwMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuY3BwICov
OyB9OworCQk3NTc5M0U4NDBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4MTBEMENFMEIz
MDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggKi87IH07CisJCTc1NzkzRTg1MEQwQ0UwQjMwMDdG
QzBBQyAvKiBNZXNzYWdlRXZlbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0U4MjBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50
LmlkbCAqLzsgfTsKKwkJNzU3OTNFQzgwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1Nzkz
RUM2MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5jcHAgKi87IH07CisJCTc1Nzkz
RUM5MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFQzcwRDBDRTcyRDAwN0ZDMEFDIC8q
IEpTTWVzc2FnZUV2ZW50LmggKi87IH07CisJCTc1NzkzRUQzMEQwQ0U4NUIwMDdGQzBBQyAvKiBE
T01NZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NzkzRUQwMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQuaCAqLzsg
fTsKKwkJNzU3OTNFRDQwRDBDRTg1QjAwN0ZDMEFDIC8qIERPTU1lc3NhZ2VFdmVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUQxMEQwQ0U4
NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQubW0gKi87IH07CisJCTc1NzkzRUQ1MEQwQ0U4
NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFRDIwRDBDRTg1QjAwN0ZDMEFDIC8q
IERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggKi87IH07CiAJCTdFNkZFRUQ4MDg5ODU4MjMwMEM0
NEMzRiAvKiBXZWJDb3JlU2NyaXB0RGVidWdnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFNkZFRUQ2MDg5ODU4MjMwMEM0NEMzRiAvKiBXZWJDb3Jl
U2NyaXB0RGVidWdnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3RTZGRUVEOTA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNjcmlwdERlYnVn
Z2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U2
RkVFRDcwODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dlci5tbSAqLzsgfTsK
IAkJODUwMDREOTQwQUNFRUFFRjAwQzQzOEY2IC8qIERPTVNWR0RlZnNFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAwNEQ4ODBBQ0VFQUVG
MDBDNDM4RjYgLyogRE9NU1ZHRGVmc0VsZW1lbnQuaCAqLzsgfTsKQEAgLTQ5MzcsNiArNDk0NSwx
NCBAQAogCQk2NURGMzIzODA5RDFERTY1MDAwQkUzMjUgLyogSlNDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1RjgwNjk3MDU0
RDlGODYwMDhCRjc3NiAvKiBCbG9ja0V4Y2VwdGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCbG9ja0V4Y2VwdGlvbnMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQk2NUZFQTg2ODA5ODMzQURFMDBCRUQ0QUIgLyogUGFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTc1NzkzRTgwMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1lc3NhZ2VFdmVudC5jcHA7IHBhdGggPSBk
b20vTWVzc2FnZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk3NTc5
M0U4MTBEMENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBNZXNzYWdlRXZlbnQuaDsgcGF0aCA9IGRvbS9NZXNzYWdlRXZlbnQu
aDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk3NTc5M0U4MjBEMENFMEIzMDA3RkMw
QUMgLyogTWVzc2FnZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTWVzc2FnZUV2
ZW50LmlkbDsgcGF0aCA9IGRvbS9NZXNzYWdlRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gU09VUkNF
X1JPT1Q7IH07CisJCTc1NzkzRUM2MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTc5M0VDNzBEMENFNzJEMDA3RkMw
QUMgLyogSlNNZXNzYWdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTTWVzc2FnZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NzkzRUQw
MEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTU1lc3NhZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3NTc5M0VEMTBEMENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU1lc3NhZ2VFdmVudC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU3OTNFRDIwRDBDRTg1QjAwN0ZDMEFD
IC8qIERPTU1lc3NhZ2VFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3RTZGRUVENjA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29yZVNjcmlwdERlYnVnZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
Q29yZVNjcmlwdERlYnVnZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQk3RTZGRUVENzA4OTg1ODIzMDBDNDRDM0YgLyogV2ViQ29y
ZVNjcmlwdERlYnVnZ2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlU2NyaXB0RGVidWdnZXIubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk4NEIyQjFGNzA1
NkJFRjNBMDBEMkI3NzEgLyogV2ViQ29yZUtleUdlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlS2V5R2VuZXJhdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpA
QCAtOTI1OSw2ICs5Mjc1LDkgQEAKIAkJCQk4NURGMzQzRjBBQUZDMEVEMDBFNTlBRTMgLyogRE9N
S2V5Ym9hcmRFdmVudFByaXZhdGUuaCAqLywKIAkJCQk4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzgg
LyogRE9NS2V5Ym9hcmRFdmVudC5oICovLAogCQkJCTg1RkYzMTU5MEFBRkJGQ0IwMDM3NEYzOCAv
KiBET01LZXlib2FyZEV2ZW50Lm1tICovLAorCQkJCTc1NzkzRUQwMEQwQ0U4NUIwMDdGQzBBQyAv
KiBET01NZXNzYWdlRXZlbnQuaCAqLywKKwkJCQk3NTc5M0VEMTBEMENFODVCMDA3RkMwQUMgLyog
RE9NTWVzc2FnZUV2ZW50Lm1tICovLAorCQkJCTc1NzkzRUQyMEQwQ0U4NUIwMDdGQzBBQyAvKiBE
T01NZXNzYWdlRXZlbnRJbnRlcm5hbC5oICovLAogCQkJCTg1N0UwQjJCMEFCMDQzRkMwMDM2RTQ0
NyAvKiBET01Nb3VzZUV2ZW50UHJpdmF0ZS5oICovLAogCQkJCTg1N0UwQjIzMEFCMDQzNDYwMDM2
RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggKi8sCiAJCQkJODU3RTBCMjQwQUIwNDM0NjAwMzZFNDQ3
IC8qIERPTU1vdXNlRXZlbnQubW0gKi8sCkBAIC0xMDYwOSw2ICsxMDYyOCw4IEBACiAJCQkJMTRF
ODM3OEQwOUY4NUQ0RjAwQjg1QUU0IC8qIEpTRXZlbnQuaCAqLywKIAkJCQlBODY2MjlDRTA5REEy
QjQ3MDA5NjMzQTUgLyogSlNLZXlib2FyZEV2ZW50LmNwcCAqLywKIAkJCQlBODY2MjlDRDA5REEy
QjQ3MDA5NjMzQTUgLyogSlNLZXlib2FyZEV2ZW50LmggKi8sCisJCQkJNzU3OTNFQzYwRDBDRTcy
RDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmNwcCAqLywKKwkJCQk3NTc5M0VDNzBEMENFNzJE
MDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCAqLywKIAkJCQlBODY2MjlDQzA5REEyQjQ3MDA5
NjMzQTUgLyogSlNNb3VzZUV2ZW50LmNwcCAqLywKIAkJCQlBODY2MjlDQjA5REEyQjQ3MDA5NjMz
QTUgLyogSlNNb3VzZUV2ZW50LmggKi8sCiAJCQkJNjVERjMxRTcwOUQxQ0M2MDAwMEJFMzI1IC8q
IEpTTXV0YXRpb25FdmVudC5jcHAgKi8sCkBAIC0xMjMwNiw2ICsxMjMyNyw5IEBACiAJCQkJQThD
NEE3RjQwOUQ1NjMyNzAwMDNBQzhEIC8qIE1hcHBlZEF0dHJpYnV0ZS5jcHAgKi8sCiAJCQkJQThD
NEE3RjMwOUQ1NjMyNzAwMDNBQzhEIC8qIE1hcHBlZEF0dHJpYnV0ZS5oICovLAogCQkJCUE4QzRB
ODRCMDlENTY0OUQwMDAzQUM4RCAvKiBNYXBwZWRBdHRyaWJ1dGVFbnRyeS5oICovLAorCQkJCTc1
NzkzRTgwMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuY3BwICovLAorCQkJCTc1Nzkz
RTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLywKKwkJCQk3NTc5M0U4MjBE
MENFMEIzMDA3RkMwQUMgLyogTWVzc2FnZUV2ZW50LmlkbCAqLywKIAkJCQk4NTAzMUIyRjBBNDRF
RkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5jcHAgKi8sCiAJCQkJODUwMzFCMzAwQTQ0RUZDNzAw
Rjk5MkUwIC8qIE1vdXNlRXZlbnQuaCAqLywKIAkJCQkxNDFCOTRFNTA5RUM0MjIzMDAwRTk0MTMg
LyogTW91c2VFdmVudC5pZGwgKi8sCkBAIC0xNDI0NSw2ICsxNDI2OSwxMCBAQAogCQkJCUIyRDE5
QTQ5MENFRjlEQzEwMDBFMDMzQiAvKiBTVkdDU1NGb250RmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNBMzc5MTUwRDE2M0U1NTAwQjc5M0Q2IC8qIEpTTG9jYXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQTM3OTNGMEQxNjQ3RTAwMEI3OTNENiAvKiBKU0xvY2F0aW9uLmx1dC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzU3OTNFODQwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNzU3OTNFQzkwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2Fn
ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTc5M0VEMzBEMENFODVCMDA3RkMwQUMgLyog
RE9NTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTc5M0VENTBEMENFODVCMDA3
RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
N0ZBNjIxMEQxRjBDQkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDN0ZBNjJEMEQxRjBFRkYwMERCMjJBOSAvKiBTdGF0aWNOb2RlTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM3RkE2ODEwRDFGMTY3OTAwREIyMkE5IC8qIFNlbGVjdG9yTm9kZUxp
c3QuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ0NzEsNiArMTQ0OTgsNyBAQAogCQkJCUIyNTU5OTY4
MEQwMEQ4QkEwMEJCODI1QyAvKiBXS1NwZWN1bGFyTGlnaHRpbmdGaWx0ZXIuY2lrZXJuZWwgaW4g
UmVzb3VyY2VzICovLAogCQkJCUIyNTU5OTZCMEQwMEQ4QkEwMEJCODI1QyAvKiBXS1Nwb3RMaWdo
dEZpbHRlci5jaWtlcm5lbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQjI1NTk5NkUwRDAwRDhCQTAw
QkI4MjVDIC8qIFdLVGFibGVUcmFuc2ZlckZpbHRlci5jaWtlcm5lbCBpbiBSZXNvdXJjZXMgKi8s
CisJCQkJNzU3OTNFODUwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5pZGwgaW4gUmVz
b3VyY2VzICovLAogCQkJCTQ2RjlENUREMEIwRDYwMTcwMDI4RUUzNiAvKiBhbGlhc0N1cnNvci5w
bmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTQ2RDRGMjQ5MEFGOTdFODEwMDM1Mzg1QSAvKiBjZWxs
Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQjJBRkZDOTAwRDAwQTVERjAwMzAwNzRE
IC8qIGNoYXJhY3Rlci1zZXRzLnR4dCBpbiBSZXNvdXJjZXMgKi8sCkBAIC0xNTk2Nyw2ICsxNTk5
NSw5IEBACiAJCQkJOTMzMDlERjcwOTlFNjQ5MjAwNTZFNTgxIC8qIG1hcmt1cC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5MzMwOUUxRDA5OUU2NDkyMDA1NkU1ODEgLyogdmlzaWJsZV91bml0cy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0EzNzkxNDBEMTYzRTU1MDBCNzkzRDYgLyogSlNMb2Nh
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTc5M0U4MzBEMENFMEIzMDA3RkMwQUMgLyog
TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NzkzRUM4MEQwQ0U3MkQwMDdG
QzBBQyAvKiBKU01lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTc5M0VENDBE
MENFODVCMDA3RkMwQUMgLyogRE9NTWVzc2FnZUV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjJBMUYyQUEwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUIyQTFGMkFEMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdHbHlwaEVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMUYyQjAwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3Np
bmdHbHlwaEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAkocmV2aXNpb24gMjkwNDkpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAsOCAr
MjAsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgog
Ci0jaW5jbHVkZSAia2pzX3dpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgImtq
c193aW5kb3cuaCIKKyNpbmNsdWRlICJranMvb2JqZWN0LmgiCisjaW5jbHVkZSAia2pzL3ZhbHVl
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzAsNyArNzQsOCBAQCBib29sIEpTRE9N
V2luZG93OjpjdXN0b21HZXRPd25Qcm9wZXJ0eVNsCiAgICAgICAgICAgICBpZiAoZW50cnktPmF0
dHIgJiBLSlM6OkZ1bmN0aW9uKSB7CiAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LT52YWx1ZS5m
dW5jdGlvblZhbHVlID09ICZKU0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uRm9jdXM6OmNyZWF0
ZQogICAgICAgICAgICAgICAgICAgICB8fCBlbnRyeS0+dmFsdWUuZnVuY3Rpb25WYWx1ZSA9PSAm
SlNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkJsdXI6OmNyZWF0ZQotICAgICAgICAgICAgICAg
ICAgICB8fCBlbnRyeS0+dmFsdWUuZnVuY3Rpb25WYWx1ZSA9PSAmSlNET01XaW5kb3dQcm90b3R5
cGVGdW5jdGlvbkNsb3NlOjpjcmVhdGUpCisgICAgICAgICAgICAgICAgICAgIHx8IGVudHJ5LT52
YWx1ZS5mdW5jdGlvblZhbHVlID09ICZKU0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uQ2xvc2U6
OmNyZWF0ZQorICAgICAgICAgICAgICAgICAgICB8fCBlbnRyeS0+dmFsdWUuZnVuY3Rpb25WYWx1
ZSA9PSAmSlNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlOjpjcmVhdGUpCiAg
ICAgICAgICAgICAgICAgICAgICAgICBzbG90LnNldFN0YXRpY0VudHJ5KHRoaXMsIGVudHJ5LCBL
SlM6OnN0YXRpY0Z1bmN0aW9uR2V0dGVyKTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQpAQCAtMTA4LDQgKzEx
MywyMSBAQCBib29sIEpTRE9NV2luZG93OjpjdXN0b21QdXQoS0pTOjpFeGVjU3RhCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCitLSlM6OkpTVmFsdWUqIEpTRE9NV2luZG93Ojpwb3N0TWVzc2FnZShL
SlM6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgS0pTOjpMaXN0JiBhcmdzKQoreworICAgIERPTVdp
bmRvdyogd2luZG93ID0gaW1wbCgpOworICAgIAorICAgIERPTVdpbmRvdyogc291cmNlID0gc3Rh
dGljX2Nhc3Q8SlNET01XaW5kb3cqPihleGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpLT5pbXBs
KCk7CisgICAgU3RyaW5nIGRvbWFpbiA9IHNvdXJjZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKS0+ZG9tYWluKCk7CisgICAgU3RyaW5nIHVyaSA9IHNvdXJjZS0+ZG9jdW1lbnQoKS0+ZG9j
dW1lbnRVUkkoKTsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMp
OworICAgIAorICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEtK
Uzo6anNVbmRlZmluZWQoKTsKKyAgICAKKyAgICB3aW5kb3ctPnBvc3RNZXNzYWdlKG1lc3NhZ2Us
IGRvbWFpbiwgdXJpLCBzb3VyY2UpOworICAgIAorICAgIHJldHVybiBLSlM6OmpzVW5kZWZpbmVk
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNFdmVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjkwNDkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiQ2xpcGJvYXJkLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJKU0tleWJv
YXJkRXZlbnQuaCIKKyNpbmNsdWRlICJKU01lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIkpTTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIkpTTXV0YXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkpTT3Zl
cmZsb3dFdmVudC5oIgpAQCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIkpTVUlFdmVudC5oIgog
I2luY2x1ZGUgIkpTV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNp
bmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiTXV0YXRpb25FdmVudC5oIgogI2luY2x1ZGUgIk92ZXJmbG93RXZlbnQuaCIKQEAgLTg0LDYg
Kzg2LDggQEAgSlNWYWx1ZSogdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEV2ZW50KiBldgogICAgICAg
ICByZXQgPSBuZXcgSlNNdXRhdGlvbkV2ZW50KGV4ZWMsIHN0YXRpY19jYXN0PE11dGF0aW9uRXZl
bnQqPihldmVudCkpOwogICAgIGVsc2UgaWYgKGV2ZW50LT5pc092ZXJmbG93RXZlbnQoKSkKICAg
ICAgICAgcmV0ID0gbmV3IEpTT3ZlcmZsb3dFdmVudChleGVjLCBzdGF0aWNfY2FzdDxPdmVyZmxv
d0V2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNNZXNzYWdlRXZlbnQoKSkK
KyAgICAgICAgcmV0ID0gbmV3IEpTTWVzc2FnZUV2ZW50KGV4ZWMsIHN0YXRpY19jYXN0PE1lc3Nh
Z2VFdmVudCo+KGV2ZW50KSk7CiAgICAgZWxzZSBpZiAoZXZlbnQtPmlzUHJvZ3Jlc3NFdmVudCgp
KQogICAgICAgICByZXQgPSBuZXcgSlNQcm9ncmVzc0V2ZW50KGV4ZWMsIHN0YXRpY19jYXN0PFBy
b2dyZXNzRXZlbnQqPihldmVudCkpOwogICAgIGVsc2UKSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FdmVudC5jcHAJKHJldmlzaW9uIDI5MDQ5
KQorKysgV2ViQ29yZS9kb20vRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNiArMTEw
LDExIEBAIGJvb2wgRXZlbnQ6OmlzV2hlZWxFdmVudCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCitib29sIEV2ZW50Ojppc01lc3NhZ2VFdmVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiBib29sIEV2ZW50Ojppc0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50KCkgY29u
c3QKIHsKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBXZWJDb3JlL2RvbS9FdmVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50LmgJKHJldmlzaW9uIDI5MDQ5KQorKysgV2ViQ29y
ZS9kb20vRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDYgKzEwNiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGlzVGV4dEV2ZW50KCkgY29uc3Q7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBpc0RyYWdFdmVudCgpIGNvbnN0OyAvLyBhIHN1YnNldCBvZiBt
b3VzZSBldmVudHMKICAgICAgICAgdmlydHVhbCBib29sIGlzQ2xpcGJvYXJkRXZlbnQoKSBjb25z
dDsKKyAgICAgICAgdmlydHVhbCBib29sIGlzTWVzc2FnZUV2ZW50KCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBpc1doZWVsRXZlbnQoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29s
IGlzQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29s
IGlzT3ZlcmZsb3dFdmVudCgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkocmV2aXNpb24gMjkwNDkp
CisrKyBXZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgeyBuYW1lc3BhY2UgRXZlbnROYW1lcwogICAgIG1hY3Jv
KGtleXByZXNzKSBcCiAgICAgbWFjcm8oa2V5dXApIFwKICAgICBtYWNybyhsb2FkKSBcCisgICAg
bWFjcm8obWVzc2FnZSkgXAogICAgIG1hY3JvKG1vdXNlZG93bikgXAogICAgIG1hY3JvKG1vdXNl
bW92ZSkgXAogICAgIG1hY3JvKG1vdXNlb3V0KSBcCkluZGV4OiBXZWJDb3JlL2RvbS9NZXNzYWdl
RXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5jcHAJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhlbnJ5IE1hc29uICho
bWFzb25AbWFjLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNSwgMjAwNiBBcHBsZSBD
b21wdXRlciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVk
ZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK01lc3NhZ2VFdmVudDo6TWVzc2FnZUV2ZW50KCkKK3sKK30KKworTWVzc2Fn
ZUV2ZW50OjpNZXNzYWdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBkYXRhLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGRvbWFpbiwgY29uc3QgQXRvbWljU3RyaW5nJiB1cmksIERPTVdpbmRvdyogc291
cmNlKQorICAgIDogRXZlbnQoRXZlbnROYW1lczo6bWVzc2FnZUV2ZW50LCB0cnVlLCB0cnVlKQor
ICAgICwgbV9kYXRhKGRhdGEpCisgICAgLCBtX2RvbWFpbihkb21haW4pCisgICAgLCBtX3VyaSh1
cmkpCisgICAgLCBtX3NvdXJjZShzb3VyY2UpCit7Cit9CisKK01lc3NhZ2VFdmVudDo6fk1lc3Nh
Z2VFdmVudCgpCit7Cit9CisKK3ZvaWQgTWVzc2FnZUV2ZW50Ojppbml0TWVzc2FnZUV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiBkYXRhLCBjb25zdCBBdG9taWNTdHJpbmcmIGRvbWFpbiwgY29u
c3QgQXRvbWljU3RyaW5nJiB1cmksIERPTVdpbmRvdyogc291cmNlKQoreworICAgIGlmIChkaXNw
YXRjaGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgaW5pdEV2ZW50KHR5cGUs
IGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSk7CisgICAgCisgICAgbV9kYXRhID0gZGF0YTsKKyAgICBt
X2RvbWFpbiA9IGRvbWFpbjsKKyAgICBtX3VyaSA9IHVyaTsKKyAgICBtX3NvdXJjZSA9IHNvdXJj
ZTsKK30KKwordm9pZCBNZXNzYWdlRXZlbnQ6OmluaXRNZXNzYWdlRXZlbnROUyhjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNh
bkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBjb25zdCBBdG9taWNTdHJpbmcmIGRhdGEsIGNvbnN0
IEF0b21pY1N0cmluZyYgZG9tYWluLCBjb25zdCBBdG9taWNTdHJpbmcmIHVyaSwgRE9NV2luZG93
KiBzb3VyY2UpCit7CisgICAgaWYgKGRpc3BhdGNoZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAg
ICAgICAKKyAgICBpbml0RXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlKTsKKyAgICAK
KyAgICBtX2RhdGEgPSBkYXRhOworICAgIG1fZG9tYWluID0gZG9tYWluOworICAgIG1fdXJpID0g
dXJpOworICAgIG1fc291cmNlID0gc291cmNlOworICAgIG1fbmFtZXNwYWNlVVJJID0gbmFtZXNw
YWNlVVJJOworfQorCitib29sIE1lc3NhZ2VFdmVudDo6aXNNZXNzYWdlRXZlbnQoKSBjb25zdCAK
K3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
V2ViQ29yZS9kb20vTWVzc2FnZUV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTWVz
c2FnZUV2ZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2RvbS9NZXNzYWdlRXZlbnQuaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBI
ZW5yeSBNYXNvbiAoaG1hc29uQG1hYy5jb20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqCisg
Ki8KKworI2lmbmRlZiBNZXNzYWdlRXZlbnRfaAorI2RlZmluZSBNZXNzYWdlRXZlbnRfaAorCisj
aW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVk
ZSAiRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgTWVzc2FnZUV2
ZW50IDogcHVibGljIEV2ZW50IHsKKyAgICBwdWJsaWM6CisKKyAgICAgICAgTWVzc2FnZUV2ZW50
KCk7CisgICAgICAgIE1lc3NhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGRhdGEsIGNvbnN0
IEF0b21pY1N0cmluZyYgZG9tYWluLCBjb25zdCBBdG9taWNTdHJpbmcmIHVyaSwgRE9NV2luZG93
KiBzb3VyY2UpOworICAgICAgICB2aXJ0dWFsIH5NZXNzYWdlRXZlbnQoKTsKKworICAgICAgICB2
b2lkIGluaXRNZXNzYWdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1
YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBjb25zdCBBdG9taWNTdHJpbmcmIGRhdGEsIGNvbnN0IEF0
b21pY1N0cmluZyYgZG9tYWluLCBjb25zdCBBdG9taWNTdHJpbmcmIHVyaSwgRE9NV2luZG93KiBz
b3VyY2UpOworICAgICAgICAKKyAgICAgICAgdm9pZCBpbml0TWVzc2FnZUV2ZW50TlMoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgY29uc3QgQXRvbWljU3RyaW5nJiBkYXRhLCBj
b25zdCBBdG9taWNTdHJpbmcmIGRvbWFpbiwgY29uc3QgQXRvbWljU3RyaW5nJiB1cmksIERPTVdp
bmRvdyogc291cmNlKTsKKyAgICAgICAgCisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGF0
YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQorCisgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZG9tYWluKCkgY29uc3QgeyByZXR1cm4gbV9kb21haW47IH0KKyAgICAgICAgCisgICAgICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgdXJpKCkgY29uc3QgeyByZXR1cm4gbV91cmk7IH0KKyAgICAg
ICAgCisgICAgICAgIERPTVdpbmRvdyogc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2Uu
Z2V0KCk7IH0KKyAgICAgICAgCisgICAgICAgIHZpcnR1YWwgYm9vbCBpc01lc3NhZ2VFdmVudCgp
IGNvbnN0OworCisgICAgcHJpdmF0ZTogICAgCisgICAgICAgIEF0b21pY1N0cmluZyBtX25hbWVz
cGFjZVVSSTsKKyAgICAgICAgQXRvbWljU3RyaW5nIG1fZGF0YTsKKyAgICAgICAgQXRvbWljU3Ry
aW5nIG1fZG9tYWluOworICAgICAgICBBdG9taWNTdHJpbmcgbV91cmk7CisgICAgICAgIAorICAg
ICAgICBSZWZQdHI8RE9NV2luZG93PiBtX3NvdXJjZTsKKyAgICAgICAgCisgICAgfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTWVzc2FnZUV2ZW50X2gKSW5kZXg6IFdl
YkNvcmUvZG9tL01lc3NhZ2VFdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTWVz
c2FnZUV2ZW50LmlkbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvZG9tL01lc3NhZ2VFdmVudC5p
ZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgSGVucnkgTWFzb24gPGhtYXNvbkBtYWMuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqCisgKi8KKworbW9kdWxlIGV2ZW50
cyB7CisKKyAgICBpbnRlcmZhY2UgW0dlbmVyYXRlQ29uc3RydWN0b3JdIE1lc3NhZ2VFdmVudCA6
IEV2ZW50IHsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRhdGE7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluOworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVyaTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVdpbmRvdyBzb3VyY2U7CisgICAgICAgIAorICAgICAgICB2b2lkIGluaXRNZXNzYWdlRXZl
bnQoaW4gRE9NU3RyaW5nIHR5cGVBcmcsIGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLCBpbiBib29s
ZWFuIGNhbmNlbGFibGVBcmcsIGluIERPTVN0cmluZyBkYXRhQXJnLCBpbiBET01TdHJpbmcgZG9t
YWluQXJnLCBpbiBET01TdHJpbmcgdXJpQXJnLCBpbiBET01XaW5kb3cgc291cmNlQXJnKTsKKyAg
ICAgICAgCisgICAgICAgIHZvaWQgaW5pdE1lc3NhZ2VFdmVudE5TKGluIERPTVN0cmluZyBuYW1l
c3BhY2VVUkksIGluIERPTVN0cmluZyB0eXBlQXJnLCBpbiBib29sZWFuIGNhbkJ1YmJsZUFyZywg
aW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLCBpbiBET01TdHJpbmcgZGF0YUFyZywgaW4gRE9NU3Ry
aW5nIGRvbWFpbkFyZywgaW4gRE9NU3RyaW5nIHVyaUFyZywgaW4gRE9NV2luZG93IHNvdXJjZUFy
Zyk7CisKKyAgICB9OworCit9CkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMjkwNDkpCisr
KyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2lu
Y2x1ZGUgIkhpc3RvcnkuaCIKKyNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgpAQCAtMjE5LDYgKzIyMCwxMiBAQCBDb25zb2xlKiBET01XaW5kb3c6OmNvbnNvbGUo
KSBjb25zdAogICAgIHJldHVybiBtX2NvbnNvbGUuZ2V0KCk7CiB9CiAKK3ZvaWQgRE9NV2luZG93
Ojpwb3N0TWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZG9tYWlu
LCBjb25zdCBTdHJpbmcmIHVyaSwgRE9NV2luZG93KiBzb3VyY2UpIGNvbnN0Cit7CisgICBFeGNl
cHRpb25Db2RlIGVjOworICAgZG9jdW1lbnQoKS0+ZGlzcGF0Y2hFdmVudChuZXcgTWVzc2FnZUV2
ZW50KG1lc3NhZ2UsIGRvbWFpbiwgdXJpLCBzb3VyY2UpLCBlYywgdHJ1ZSk7Cit9CisKIERPTVNl
bGVjdGlvbiogRE9NV2luZG93OjpnZXRTZWxlY3Rpb24oKQogewogICAgIGlmICghbV9zZWxlY3Rp
b24pCkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiAyOTA0OSkKKysrIFdlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDYgKzE0MSw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICNlbmRpZgogCiAgICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBjb25zdDsKKyAgICAg
ICAgCisgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiB1cmksIERPTVdpbmRvdyogc291cmNlKSBj
b25zdDsKIAogICAgICAgICB2b2lkIHNjcm9sbEJ5KGludCB4LCBpbnQgeSkgY29uc3Q7CiAgICAg
ICAgIHZvaWQgc2Nyb2xsVG8oaW50IHgsIGludCB5KSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
CShyZXZpc2lvbiAyOTA0OSkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjUsNiArMTI1LDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gQ29uc29sZSBjb25zb2xlOwogCisgICAgICAg
IC8vIGNyb3NzLWRvY3VtZW50IG1lc3NhZ2luZworICAgICAgICBbRG9Ob3RDaGVja0RvbWFpblNl
Y3VyaXR5LCBDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gRE9NU3RyaW5nIG1lc3NhZ2UpOwor
CiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQogICAgICAgICAvLyBHbG9iYWwgY29u
c3RydWN0b3JzCiAgICAgICAgIGF0dHJpYnV0ZSBTdHlsZVNoZWV0Q29uc3RydWN0b3IgU3R5bGVT
aGVldDsKQEAgLTI0MCw2ICsyNDMsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmli
dXRlIEhUTUxVTGlzdEVsZW1lbnRDb25zdHJ1Y3RvciBIVE1MVUxpc3RFbGVtZW50OwogCiAgICAg
ICAgIGF0dHJpYnV0ZSBFdmVudENvbnN0cnVjdG9yIEV2ZW50OworICAgICAgICBhdHRyaWJ1dGUg
TWVzc2FnZUV2ZW50Q29uc3RydWN0b3IgTWVzc2FnZUV2ZW50OwogICAgICAgICBhdHRyaWJ1dGUg
S2V5Ym9hcmRFdmVudENvbnN0cnVjdG9yIEtleWJvYXJkRXZlbnQ7CiAgICAgICAgIGF0dHJpYnV0
ZSBNb3VzZUV2ZW50Q29uc3RydWN0b3IgTW91c2VFdmVudDsKICAgICAgICAgYXR0cmlidXRlIE11
dGF0aW9uRXZlbnRDb25zdHJ1Y3RvciBNdXRhdGlvbkV2ZW50OwpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MjkwNDkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNyBAQAorMjAwNy0xMi0zMSAgSGVucnkgTWFzb24gIDxobWFzb25AbWFjLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGZvciBodHRw
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk5NAorICAgICAgICBTdXBwb3J0
IGZvciBNZXNzYWdlRXZlbnQgYW5kIGNyb3NzLWRvbWFpbiBtZXNzYWdpbmcKKworICAgICAgICAq
IGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaHR0cC90ZXN0cy9tZXNzYWdpbmc6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVz
c2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXNlbmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21lc3NhZ2luZy9jcm9zcy1kb21haW4tbWVzc2FnZS1zZW5kLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlczogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZXNzYWdpbmcvcmVzb3VyY2VzL2Nyb3NzLWRvbWFp
bi1tZXNzYWdlLXJlY2VpdmUuaHRtbDogQWRkZWQuCisKIDIwMDctMTItMzAgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjkwNDkpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC03MDQsNiArNzA0LDggQEAgd2luZG93Lk1lZGlhTGlzdC5wcm90b3R5cGUgW29iamVj
dCBNZWRpYQogd2luZG93Lk1lZGlhTGlzdC5wcm90b3R5cGUuYXBwZW5kTWVkaXVtIFtmdW5jdGlv
bl0KIHdpbmRvdy5NZWRpYUxpc3QucHJvdG90eXBlLmRlbGV0ZU1lZGl1bSBbZnVuY3Rpb25dCiB3
aW5kb3cuTWVkaWFMaXN0LnByb3RvdHlwZS5pdGVtIFtmdW5jdGlvbl0KK3dpbmRvdy5NZXNzYWdl
RXZlbnQgW29iamVjdCBNZXNzYWdlRXZlbnRDb25zdHJ1Y3Rvcl0KK3dpbmRvdy5NZXNzYWdlRXZl
bnQucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5FdmVudC5wcm90b3R5cGVdCiB3
aW5kb3cuTW91c2VFdmVudCBbb2JqZWN0IE1vdXNlRXZlbnRDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5N
b3VzZUV2ZW50LnByb3RvdHlwZSBbcHJpbnRlZCBhYm92ZSBhcyB3aW5kb3cuRXZlbnQucHJvdG90
eXBlXQogd2luZG93Lk11dGF0aW9uRXZlbnQgW29iamVjdCBNdXRhdGlvbkV2ZW50Q29uc3RydWN0
b3JdCkBAIC0xMjU0LDYgKzEyNTYsNyBAQCB3aW5kb3cucGFnZVlPZmZzZXQgW251bWJlcl0KIHdp
bmRvdy5wYXJlbnQgW3ByaW50ZWQgYWJvdmUgYXMgd2luZG93XQogd2luZG93LnBlcnNvbmFsYmFy
IFtvYmplY3QgQmFySW5mb10KIHdpbmRvdy5wZXJzb25hbGJhci52aXNpYmxlIFtib29sZWFuXQor
d2luZG93LnBvc3RNZXNzYWdlIFtmdW5jdGlvbl0KIHdpbmRvdy5wcmludCBbZnVuY3Rpb25dCiB3
aW5kb3cucHJvbXB0IFtmdW5jdGlvbl0KIHdpbmRvdy5yZWxlYXNlRXZlbnRzIFtmdW5jdGlvbl0K
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNz
YWdlLXNlbmQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXNlbmQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvY3Jvc3MtZG9tYWlu
LW1lc3NhZ2Utc2VuZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAor
CitkYXRhOiBTb21ldGhpbmcgdXJpOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWVzc2FnaW5nL2Ny
b3NzLWRvbWFpbi1tZXNzYWdlLXNlbmQuaHRtbCBkb21haW46IDEyNy4wLjAuMQpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvY3Jvc3MtZG9tYWluLW1lc3NhZ2Utc2VuZC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3Nz
LWRvbWFpbi1tZXNzYWdlLXNlbmQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVzc2FnaW5nL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXNlbmQuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sIGxhbmc9ImVu
Ij4KKzxoZWFkPgorICAgIDx0aXRsZT5Dcm9zcy1Eb2MgVGVzdDwvdGl0bGU+Cis8L2hlYWQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorCitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK30K
KworZnVuY3Rpb24gcG9zdEl0ICgpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVj
ZWl2ZXIiKS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCJTb21ldGhpbmciKTsKK30KKworZnVu
Y3Rpb24gcmVjZWl2ZXIoZSkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQi
KS5maXJzdENoaWxkLmRhdGEgPSBlLmRhdGE7ICAgCisgICAgCisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgfQorfQorCitkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywg
cmVjZWl2ZXIsIGZhbHNlKTsKKworICAgIAorPC9zY3JpcHQ+Cis8Ym9keT4KKyAgICAKKyAgICA8
aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL21lc3NhZ2luZy9yZXNvdXJjZXMvY3Jv
c3MtZG9tYWluLW1lc3NhZ2UtcmVjZWl2ZS5odG1sIiBpZD0icmVjZWl2ZXIiIG9ubG9hZD0icG9z
dEl0KCk7Ij48L2lmcmFtZT4KKyAgICAKKyAgICA8ZGl2IGlkPSJyZXN1bHQiPndhaXRpbmcuLi48
L2Rpdj4KKyAgICAKKyAgICAKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9jcm9zcy1kb21haW4tbWVzc2FnZS1yZWNlaXZl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZXNzYWdpbmcvcmVz
b3VyY2VzL2Nyb3NzLWRvbWFpbi1tZXNzYWdlLXJlY2VpdmUuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVzc2FnaW5nL3Jlc291cmNlcy9jcm9zcy1kb21haW4t
bWVzc2FnZS1yZWNlaXZlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9D
VFlQRSBodG1sPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+Q3Jvc3Mt
RG9jIFRlc3Q8L3RpdGxlPgorPC9oZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IGNoYXJzZXQ9InV0Zi04Ij4KKworZnVuY3Rpb24gcmVjZWl2ZXIoZSkgeworICAgIHZhciByZXN1
bHQgPSAiIjsKKyAgICByZXN1bHQgKz0gImRhdGE6ICIgKyBlLmRhdGEgKyAiXG4iOworICAgIHJl
c3VsdCArPSAidXJpOiAiICsgZS51cmkgKyAiXG4iOworICAgIHJlc3VsdCArPSAiZG9tYWluOiAi
ICsgZS5kb21haW4gKyAiXG4iOworICAgIGUuc291cmNlLnBvc3RNZXNzYWdlKHJlc3VsdCk7ICAg
Cit9CisKK2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZWNlaXZlciwgZmFs
c2UpOworCis8L3NjcmlwdD4KKzxib2R5PgorICAgIAorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="7923"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>