<?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>38255</bug_id>
          
          <creation_ts>2010-04-28 04:49:51 -0700</creation_ts>
          <short_desc>Web Inspector: REGRESSION: Disabled style properties are absent in Styles sidebar after WebInspector is re-opened</short_desc>
          <delta_ts>2010-05-04 03:29:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>218334</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-04-28 04:49:51 -0700</bug_when>
    <thetext>1. Disable a style property in Web Inspector
2. Close and re-open Web Inspector

The disabled style property is missing in the Styles sidebar (rather than rendered disabled).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218409</commentid>
    <comment_count>1</comment_count>
      <attachid>54567</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-04-28 08:37:43 -0700</bug_when>
    <thetext>Created attachment 54567
[PATCH] Suggested solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218418</commentid>
    <comment_count>2</comment_count>
      <attachid>54567</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-28 09:08:22 -0700</bug_when>
    <thetext>Comment on attachment 54567
[PATCH] Suggested solution

Clearing cq+ since I want to doublecheck something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218422</commentid>
    <comment_count>3</comment_count>
      <attachid>54567</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-28 09:16:31 -0700</bug_when>
    <thetext>Comment on attachment 54567
[PATCH] Suggested solution

A couple of style nits so that InspectorDOMAgent was inline with InspectorController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218426</commentid>
    <comment_count>4</comment_count>
      <attachid>54567</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-28 09:21:00 -0700</bug_when>
    <thetext>Comment on attachment 54567
[PATCH] Suggested solution

Oops, lost the comments with the new inline feature.

WebCore/inspector/InspectorController.cpp:424
 +  void InspectorController::updateDOMAgent()
I&apos;d suggest this to be a domAgent lazy getter.

WebCore/inspector/InspectorController.cpp:439
 +      updateDOMAgent();
Now that dom agent lives longer, this should be domAgent()-&gt;setFrontend(m_frontend) instead of constructor with parameter.

and you should simply delegate disconnectFrontend event to the dom agent from the corresponding InspectorController method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219450</commentid>
    <comment_count>5</comment_count>
      <attachid>54797</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-04-30 05:07:37 -0700</bug_when>
    <thetext>Created attachment 54797
[PATCH] Factored out the style-related storage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219451</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-30 05:10:26 -0700</bug_when>
    <thetext>Attachment 54797 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/inspector/InspectorDOMAgent.cpp:79:  Use 0 instead of NULL.  [readability/null] [5]
WebCore/inspector/InspectorController.cpp:59:  Alphabetical sorting problem.  [build/include_order] [4]
WebCore/inspector/InspectorCSSStore.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 3 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219455</commentid>
    <comment_count>7</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-04-30 05:26:48 -0700</bug_when>
    <thetext>Attachment 54797 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/1841227</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219458</commentid>
    <comment_count>8</comment_count>
      <attachid>54799</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-04-30 05:54:12 -0700</bug_when>
    <thetext>Created attachment 54799
[PATCH] Style fixed, change description augmented</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219461</commentid>
    <comment_count>9</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-04-30 06:09:42 -0700</bug_when>
    <thetext>Attachment 54799 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/1938019</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219464</commentid>
    <comment_count>10</comment_count>
      <attachid>54800</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-04-30 06:24:08 -0700</bug_when>
    <thetext>Created attachment 54800
[PATCH] Added lost WebCore.pro change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219477</commentid>
    <comment_count>11</comment_count>
      <attachid>54800</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-04-30 07:20:40 -0700</bug_when>
    <thetext>Comment on attachment 54800
[PATCH] Added lost WebCore.pro change

WebCore/inspector/InspectorCSSStore.cpp:45
 +      reset();
Is it necessary?

WebCore/inspector/InspectorCSSStore.h:44
 +  typedef std::pair&lt;String, String&gt; PropertyValueAndPriority;
Consider moving these declarations into the struct below and impporting them with &quot;using&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219479</commentid>
    <comment_count>12</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-04-30 07:27:41 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 54800 [details])
&gt; WebCore/inspector/InspectorCSSStore.cpp:45
&gt;  +      reset();
&gt; Is it necessary?

Removed

&gt; WebCore/inspector/InspectorCSSStore.h:44
&gt;  +  typedef std::pair&lt;String, String&gt; PropertyValueAndPriority;
&gt; Consider moving these declarations into the struct below and impporting them
&gt; with &quot;using&quot;

As discovered, this is not feasible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219486</commentid>
    <comment_count>13</comment_count>
      <attachid>54800</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-04-30 07:53:08 -0700</bug_when>
    <thetext>Comment on attachment 54800
[PATCH] Added lost WebCore.pro change

I thought we agreed not to change the InspectorDOMAgent lifetime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219494</commentid>
    <comment_count>14</comment_count>
      <attachid>54806</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-04-30 08:34:35 -0700</bug_when>
    <thetext>Created attachment 54806
[PATCH] Reverted the lifespan of InspectorDOMAgent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219979</commentid>
    <comment_count>15</comment_count>
      <attachid>54567</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-02 19:21:51 -0700</bug_when>
    <thetext>Comment on attachment 54567
[PATCH] Suggested solution

Cleared Yury Semikhatsky&apos;s review+ from obsolete attachment 54567 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220540</commentid>
    <comment_count>16</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-05-04 03:29:05 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
        M       WebCore/ChangeLog
        M       WebCore/GNUmakefile.am
        M       WebCore/WebCore.gypi
        M       WebCore/WebCore.pro
        M       WebCore/WebCore.vcproj/WebCore.vcproj
        M       WebCore/WebCore.xcodeproj/project.pbxproj
        A       WebCore/inspector/InspectorCSSStore.cpp
        A       WebCore/inspector/InspectorCSSStore.h
        M       WebCore/inspector/InspectorController.cpp
        M       WebCore/inspector/InspectorController.h
        M       WebCore/inspector/InspectorDOMAgent.cpp
        M       WebCore/inspector/InspectorDOMAgent.h
Committed r58748</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54567</attachid>
            <date>2010-04-28 08:37:43 -0700</date>
            <delta_ts>2010-05-02 19:21:51 -0700</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>domagentstyles.patch</filename>
            <type>text/plain</type>
            <size>5918</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDE1Mzk2Ny4uNWVjNjc5NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNC0yOCAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT046IERpc2FibGVk
IHN0eWxlIHByb3BlcnRpZXMgYXJlIGFic2VudCBpbiBTdHlsZXMgc2lkZWJhcgorICAgICAgICBh
ZnRlciBXZWJJbnNwZWN0b3IgaXMgcmUtb3BlbmVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzgyNTUKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xs
ZXI6OnVwZGF0ZURPTUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xs
ZXI6OnNldEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6
OmRpc2Nvbm5lY3RGcm9udGVuZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckRPTUFnZW50OjpkaWRGcm9udGVuZENoYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTUFnZW50OjpkaXNjYXJkU3R5bGVCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JET01BZ2VudDo6ZGlzY2FyZE5vZGVCaW5kaW5ncyk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisKIDIwMTAtMDQtMjggIEFuZHJleSBLb3N5YWtvdiAg
PGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0
c2t5LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCAzZmY0
ZGE1Li5mMzNhMGZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cApAQCAtNDIxLDEzICs0MjEsMjIgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRTZWFy
Y2hpbmdGb3JOb2RlKGJvb2wgZW5hYmxlZCkKICAgICB9CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6dXBkYXRlRE9NQWdlbnQoKQoreworICAgIGlmICghbV9kb21BZ2VudCkgeworICAg
ICAgICBpZiAobV9mcm9udGVuZCkKKyAgICAgICAgICAgIG1fZG9tQWdlbnQgPSBJbnNwZWN0b3JE
T01BZ2VudDo6Y3JlYXRlKG1fZnJvbnRlbmQuZ2V0KCkpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIG1fZG9tQWdlbnQtPmRpZEZyb250ZW5kQ2hhbmdlKG1fZnJvbnRlbmQuZ2V0KCkpOwor
fQorCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldEZyb250ZW5kKFBhc3NPd25QdHI8SW5z
cGVjdG9yRnJvbnRlbmQ+IGZyb250ZW5kKQogewogICAgIEFTU0VSVChmcm9udGVuZCk7CiAgICAg
bV9vcGVuaW5nRnJvbnRlbmQgPSBmYWxzZTsKICAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQ7Ci0g
ICAgcmVsZWFzZURPTUFnZW50KCk7Ci0gICAgbV9kb21BZ2VudCA9IEluc3BlY3RvckRPTUFnZW50
OjpjcmVhdGUobV9mcm9udGVuZC5nZXQoKSk7CisgICAgdXBkYXRlRE9NQWdlbnQoKTsKICAgICBp
ZiAobV90aW1lbGluZUFnZW50KQogICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPnJlc2V0RnJvbnRl
bmRQcm94eU9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9E
RUJVR0dFUikgJiYgVVNFKEpTQykKQEAgLTUyNiw3ICs1MzUsNyBAQCB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9udGVuZCgpCiAgICAgc3RvcFVzZXJJbml0aWF0ZWRQcm9m
aWxpbmcoKTsKICNlbmRpZgogCi0gICAgcmVsZWFzZURPTUFnZW50KCk7CisgICAgdXBkYXRlRE9N
QWdlbnQoKTsKICAgICBtX3RpbWVsaW5lQWdlbnQuY2xlYXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDNjNjc5NzUuLjVkNDY1ZTMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTI2OCw2ICsyNjgsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgc3RvcmVMYXN0QWN0aXZlUGFuZWwoY29uc3QgU3RyaW5nJiBwYW5lbE5h
bWUpOwogICAgIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCgpIHsgcmV0dXJuIG1fZG9tQWdl
bnQuZ2V0KCk7IH0KICAgICB2b2lkIHJlbGVhc2VET01BZ2VudCgpOworICAgIHZvaWQgdXBkYXRl
RE9NQWdlbnQoKTsKIAogICAgIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFN0cmluZyYgY29va2ll
TmFtZSwgY29uc3QgU3RyaW5nJiBkb21haW4pOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHAKaW5kZXggMzFmYWQ4MC4uYzRkNGVjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcApAQCAtODksMTMgKzg5LDE5IEBAIEluc3BlY3RvckRPTUFnZW50
Ojp+SW5zcGVjdG9yRE9NQWdlbnQoKQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZXNldCgp
CiB7Ci0gICAgZGlzY2FyZEJpbmRpbmdzKCk7CisgICAgZGlzY2FyZFN0eWxlQmluZGluZ3MoKTsK
KyAgICBkaWRGcm9udGVuZENoYW5nZShtX2Zyb250ZW5kKTsKK30KIAordm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6ZGlkRnJvbnRlbmRDaGFuZ2UoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQor
eworICAgIGRpc2NhcmROb2RlQmluZGluZ3MoKTsKICAgICBMaXN0SGFzaFNldDxSZWZQdHI8RG9j
dW1lbnQ+ID4gY29weSA9IG1fZG9jdW1lbnRzOwogICAgIGZvciAoTGlzdEhhc2hTZXQ8UmVmUHRy
PERvY3VtZW50PiA+OjppdGVyYXRvciBpdCA9IGNvcHkuYmVnaW4oKTsgaXQgIT0gY29weS5lbmQo
KTsgKytpdCkKICAgICAgICAgc3RvcExpc3RlbmluZygoKml0KS5nZXQoKSk7CiAKICAgICBBU1NF
UlQoIW1fZG9jdW1lbnRzLnNpemUoKSk7CisgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kOwogfQog
CiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXREb2N1bWVudChEb2N1bWVudCogZG9jKQpAQCAt
MTAzLDcgKzEwOSw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldERvY3VtZW50KERvY3Vt
ZW50KiBkb2MpCiAgICAgaWYgKGRvYyA9PSBtYWluRnJhbWVEb2N1bWVudCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICByZXNldCgpOworICAgIGRpZEZyb250ZW5kQ2hhbmdlKG1fZnJvbnRlbmQp
OwogCiAgICAgaWYgKGRvYykgewogICAgICAgICBzdGFydExpc3RlbmluZyhkb2MpOwpAQCAtMTQ2
LDcgKzE1Miw4IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmhhbmRsZUV2ZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBFdmVudCogZXZlbnQpCiAKICAgICBpZiAodHlwZSA9PSBldmVudE5h
bWVzKCkuRE9NQ29udGVudExvYWRlZEV2ZW50KSB7CiAgICAgICAgIC8vIFJlLXB1c2ggZG9jdW1l
bnQgb25jZSBpdCBpcyBsb2FkZWQuCi0gICAgICAgIGRpc2NhcmRCaW5kaW5ncygpOworICAgICAg
ICBkaXNjYXJkTm9kZUJpbmRpbmdzKCk7CisgICAgICAgIGRpc2NhcmRTdHlsZUJpbmRpbmdzKCk7
CiAgICAgICAgIHB1c2hEb2N1bWVudFRvRnJvbnRlbmQoKTsKICAgICB9IGVsc2UgaWYgKHR5cGUg
PT0gZXZlbnROYW1lcygpLmxvYWRFdmVudCkgewogICAgICAgICBsb25nIGZyYW1lT3duZXJJZCA9
IG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQobm9kZSk7CkBAIC0yMzAsMTIgKzIzNyw4IEBAIHZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hDaGlsZE5vZGVzVG9Gcm9udGVuZChsb25nIG5vZGVJ
ZCkKICAgICBtX2Zyb250ZW5kLT5zZXRDaGlsZE5vZGVzKG5vZGVJZCwgY2hpbGRyZW4pOwogfQog
Ci12b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaXNjYXJkQmluZGluZ3MoKQordm9pZCBJbnNwZWN0
b3JET01BZ2VudDo6ZGlzY2FyZFN0eWxlQmluZGluZ3MoKQogewotICAgIG1fZG9jdW1lbnROb2Rl
VG9JZE1hcC5jbGVhcigpOwotICAgIG1faWRUb05vZGUuY2xlYXIoKTsKLSAgICByZWxlYXNlRGFu
Z2xpbmdOb2RlcygpOwotICAgIG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY2xlYXIoKTsKICAgICBtX3N0
eWxlVG9JZC5jbGVhcigpOwogICAgIG1faWRUb1N0eWxlLmNsZWFyKCk7CiAgICAgbV9ydWxlVG9J
ZC5jbGVhcigpOwpAQCAtMjQ0LDYgKzI0NywxNCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpk
aXNjYXJkQmluZGluZ3MoKQogICAgIG1faW5zcGVjdG9yU3R5bGVTaGVldCA9IDA7CiB9CiAKK3Zv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmROb2RlQmluZGluZ3MoKQoreworICAgIG1fZG9j
dW1lbnROb2RlVG9JZE1hcC5jbGVhcigpOworICAgIG1faWRUb05vZGUuY2xlYXIoKTsKKyAgICBy
ZWxlYXNlRGFuZ2xpbmdOb2RlcygpOworICAgIG1fY2hpbGRyZW5SZXF1ZXN0ZWQuY2xlYXIoKTsK
K30KKwogTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVGb3JJZChsb25nIGlkKQogewogICAg
IGlmICghaWQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCA3MjExZWQy
Li4xMDdlODJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTg5LDYg
Kzg5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB+SW5zcGVjdG9yRE9NQWdlbnQo
KTsKIAogICAgICAgICB2b2lkIHJlc2V0KCk7CisgICAgICAgIHZvaWQgZGlkRnJvbnRlbmRDaGFu
Z2UoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBvdGhlcik7CiAKQEAgLTE3Niw3ICsxNzcs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgcnVsZUFmZmVjdHNOb2RlKENT
U1N0eWxlUnVsZSosIE5vZGUqKTsKICAgICAgICAgU2NyaXB0QXJyYXkgdG9BcnJheShjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZGF0YSk7CiAKLSAgICAgICAgdm9pZCBkaXNjYXJkQmluZGluZ3MoKTsK
KyAgICAgICAgdm9pZCBkaXNjYXJkTm9kZUJpbmRpbmdzKCk7CisgICAgICAgIHZvaWQgZGlzY2Fy
ZFN0eWxlQmluZGluZ3MoKTsKIAogICAgICAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVu
ZDsKICAgICAgICAgTm9kZVRvSWRNYXAgbV9kb2N1bWVudE5vZGVUb0lkTWFwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54797</attachid>
            <date>2010-04-30 05:07:37 -0700</date>
            <delta_ts>2010-04-30 05:54:12 -0700</delta_ts>
            <desc>[PATCH] Factored out the style-related storage</desc>
            <filename>domagentstyles.patch</filename>
            <type>text/plain</type>
            <size>27938</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzQzNzdjNy4uZWU3NjIyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxMC0wNC0zMCAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT046IERpc2FibGVk
IHN0eWxlIHByb3BlcnRpZXMgYXJlIGFic2VudCBpbiBTdHlsZXMgc2lkZWJhciBhZnRlciBXZWJJ
bnNwZWN0b3IgaXMgcmUtb3BlbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zODI1NQorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNTU1N0b3JlOjpJbnNwZWN0b3JDU1NTdG9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6fkluc3BlY3RvckNTU1N0b3JlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpyZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckNTU1N0b3JlLmg6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Oklu
c3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6cmVzZXRET01BZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
OjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpk
aXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6ZGlzY2FyZEJpbmRpbmdzKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjphcHBseVN0eWxlVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0U3R5bGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRPTUFnZW50OjpzZXRTdHlsZVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRPTUFnZW50Ojp0b2dnbGVTdHlsZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldFJ1bGVTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01BZ2VudDo6YWRkUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JET01BZ2VudDo6YmluZFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpiaW5kUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YnVp
bGRPYmplY3RGb3JTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
YnVpbGRPYmplY3RGb3JSdWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmNzc1N0b3JlKToKKwogMjAxMC0wNC0z
MCAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYTk3NTIzMy4uZmQ5ZTIzNiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CkBAIC0xMjc0LDYgKzEyNzQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oIFwKIAlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kLmNwcCBcCiAJV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oIFwK
KwlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAgXAorCVdlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmggXAogCVdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRhdGFiYXNlUmVzb3VyY2UuY3BwIFwKIAlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRh
YmFzZVJlc291cmNlLmggXAogCVdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNw
cCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IGY0ZDNlMTMuLmE0OGY5OWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xNjQ5LDYgKzE2NDksOCBAQAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU1N0b3JlLmNwcCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3Jl
LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNw
cCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCcsCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1MzIyZDhhLi4yYzlhZGY0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQzMDkxLDYgKzQzMDkxLDE0IEBACiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3Bl
Y3RvclxJbnNwZWN0b3JDU1NTdG9yZS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yQ1NTU3RvcmUuaCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGlu
c3BlY3RvclxJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcCINCiAJCQkJPg0KIAkJCTwvRmls
ZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM1ZTg2
OWMuLmRiZjI0OGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMzQ5LDYgKzEzNDksOCBAQAogCQk3QUVEM0UwNjBGQkIxRUFBMDBEMkIwM0MgLyogSW5z
cGVjdG9yRnJvbnRlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdBRUQzRTA0MEZCQjFFQUEwMEQyQjAzQyAvKiBJbnNwZWN0b3JGcm9udGVuZC5oICov
OyB9OwogCQk3QUZENEE4QjExMzFDMjc2MDAzNUI4ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FGRDRBOEExMTMx
QzI3NjAwMzVCODgzIC8qIFNjcmlwdEJyZWFrcG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QUZENEZGNDExMzI3N0I2MDAzNUI4ODMgLyog
U2NyaXB0RGVidWdMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0FGRDRGRjMxMTMyNzdCNjAwMzVCODgzIC8qIFNjcmlwdERlYnVnTGlzdGVu
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4
MkI2NTg5ODExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgyQjY1ODk3MTE4OUUzOTIwMEUw
NTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTgyQjY1ODlBMTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0
b3JDU1NTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MkI2NTg5OTExODlFNDc2MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwICov
OyB9OwogCQk4NDFGREMyNjExNzhDOUJFMDBGOEFDOUIgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQx
RkRDMjQxMTc4QzlCRTAwRjhBQzlCIC8qIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCAqLzsg
fTsKIAkJODQxRkRDMjcxMTc4QzlCRTAwRjhBQzlCIC8qIFJlbmRlclNWR1Jlc291cmNlRmlsdGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDFGREMy
NTExNzhDOUJFMDBGOEFDOUIgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaCAqLzsgfTsKIAkJ
ODQyMjQxODMxMDdFNzdGNDAwNzY2QTg3IC8qIEpTU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDIyNDE4MTEw
N0U3N0Y0MDA3NjZBODcgLyogSlNTVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCAqLzsgfTsKQEAg
LTY4NzcsNiArNjg3OSw4IEBACiAJCTdBRUQzRTA0MEZCQjFFQUEwMEQyQjAzQyAvKiBJbnNwZWN0
b3JGcm9udGVuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JG
cm9udGVuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUZENEE4QTExMzFDMjc2
MDAzNUI4ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JpcHRCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdBRkQ0RkYzMTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdERlYnVnTGlzdGVuZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODJCNjU4OTcxMTg5RTM5MjAwRTA1MkExIC8qIEluc3Bl
Y3RvckNTU1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
ckNTU1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgyQjY1ODk5MTE4OUU0
NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDU1NTdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg0MUZEQzI0MTE3OEM5QkUwMEY4QUM5QiAvKiBSZW5kZXJTVkdSZXNvdXJj
ZUZpbHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJT
VkdSZXNvdXJjZUZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MUZE
QzI1MTE3OEM5QkUwMEY4QUM5QiAvKiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDIyNDE4MTEwN0U3N0Y0MDA3NjZBODcgLyogSlNT
VkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMDg4Miw2ICsxMDg4Niw4IEBACiAJCQkJOUZBMzdFRjAxMTcyRkQ0MTAwQzRD
RDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmlkbCAqLywKIAkJCQk3NTUzQ0ZFNzEwOEY0NzNGMDBF
QTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLywKIAkJCQk3NTUzQ0ZFNjEwOEY0
NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi8sCisJCQkJODJCNjU4OTcx
MTg5RTM5MjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmggKi8sCisJCQkJODJCNjU4OTkx
MTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmNwcCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gaW5zcGVjdG9yOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE4OTExLDYg
KzE4OTE3LDcgQEAKIAkJCQlCNTIzQ0YwNjExODI2NzU0MDBFQkIyOUMgLyogU1FMVHJhbnNhY3Rp
b25TeW5jQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUI1MjNDRjA4MTE4MjY3NTQwMEVC
QjI5QyAvKiBTUUxUcmFuc2FjdGlvblN5bmMuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1MjNDRjBC
MTE4MjY3NTQwMEVCQjI5QyAvKiBEYXRhYmFzZVN5bmMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgy
QjY1ODk4MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUEyN0NGOTcxMThBMzU0QzAwNDFENjMyIC8qIG5wdHlwZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpA
QCAtMjExNDksNiArMjExNTYsNyBAQAogCQkJCTBGRjI4NTkyMTE4NjQwNTQwMDdCN0NENiAvKiBS
ZW5kZXJNYXRoTUxTcXVhcmVSb290LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1MjNDRjA5MTE4
MjY3NTQwMEVCQjI5QyAvKiBTUUxUcmFuc2FjdGlvblN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQjUyM0NGMEExMTgyNjc1NDAwRUJCMjlDIC8qIERhdGFiYXNlU3luYy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk4MkI2NTg5QTExODlFNDc2MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NTdG9yZS5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMxMWZhOAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcApAQCAtMCwwICsx
LDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNTU1N0b3Jl
LmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTU3R5
bGVSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW5zcGVjdG9yQ1NTU3RvcmU6Oklu
c3BlY3RvckNTU1N0b3JlKCkKK3sKK30KKworSW5zcGVjdG9yQ1NTU3RvcmU6On5JbnNwZWN0b3JD
U1NTdG9yZSgpCit7CisgICAgcmVzZXQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JDU1NTdG9yZTo6
cmVzZXQoKQoreworICAgIHN0eWxlVG9JZC5jbGVhcigpOworICAgIGlkVG9TdHlsZS5jbGVhcigp
OworICAgIHJ1bGVUb0lkLmNsZWFyKCk7CisgICAgaWRUb1J1bGUuY2xlYXIoKTsKKyAgICBpZFRv
RGlzYWJsZWRTdHlsZS5jbGVhcigpOworICAgIGluc3BlY3RvclN0eWxlU2hlZXQgPSAwOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NTdG9yZS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Zjc0YjE5Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaApAQCAtMCwwICsx
LDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBB
cHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBJbnNwZWN0b3JDU1NTdG9yZV9oCisjZGVmaW5lIEluc3BlY3RvckNT
U1N0b3JlX2gKKworI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKKworI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKKyAgICBjbGFzcyBDU1NTdHlsZVJ1bGU7Cisg
ICAgY2xhc3MgQ1NTU3R5bGVTaGVldDsKKyAgICBjbGFzcyBTdHJpbmc7CisKKyAgICB0eXBlZGVm
IHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gUHJvcGVydHlWYWx1ZUFuZFByaW9yaXR5OworICAg
IHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFByb3BlcnR5VmFsdWVBbmRQcmlvcml0eT4gRGlzYWJs
ZWRTdHlsZURlY2xhcmF0aW9uOworICAgIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZURlY2xhcmF0
aW9uKiwgbG9uZz4gU3R5bGVUb0lkTWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxsb25nLCBSZWZQ
dHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gPiBJZFRvU3R5bGVNYXA7CisgICAgdHlwZWRlZiBIYXNo
TWFwPENTU1N0eWxlUnVsZSosIGxvbmc+IFJ1bGVUb0lkTWFwOworICAgIHR5cGVkZWYgSGFzaE1h
cDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVSdWxlPiA+IElkVG9SdWxlTWFwOworICAgIHR5cGVkZWYg
SGFzaE1hcDxsb25nLCBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24+IElkVG9EaXNhYmxlZFN0eWxl
TWFwOworCisgICAgc3RydWN0IEluc3BlY3RvckNTU1N0b3JlIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIEluc3BlY3RvckNTU1N0b3JlKCk7CisgICAgICAgIH5JbnNwZWN0b3JDU1NTdG9yZSgpOwor
ICAgICAgICB2b2lkIHJlc2V0KCk7CisKKyAgICAgICAgU3R5bGVUb0lkTWFwIHN0eWxlVG9JZDsK
KyAgICAgICAgSWRUb1N0eWxlTWFwIGlkVG9TdHlsZTsKKyAgICAgICAgUnVsZVRvSWRNYXAgcnVs
ZVRvSWQ7CisgICAgICAgIElkVG9SdWxlTWFwIGlkVG9SdWxlOworICAgICAgICBJZFRvRGlzYWJs
ZWRTdHlsZU1hcCBpZFRvRGlzYWJsZWRTdHlsZTsKKyAgICAgICAgUmVmUHRyPENTU1N0eWxlU2hl
ZXQ+IGluc3BlY3RvclN0eWxlU2hlZXQ7CisgICAgfTsKKworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JDU1NTdG9yZV9oKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCAzZmY0ZGE1Li41ZDRiMGM2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNTYsNiArNTYs
NyBAQAogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0SG9zdC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckJhY2tlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJJbnNw
ZWN0b3JDU1NTdG9yZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRGF0YWJhc2VSZXNvdXJjZS5oIgpAQCAtMTQ0LDYgKzE0NSw3IEBAIEluc3BlY3RvckNvbnRy
b2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBj
bGllbnQpCiAgICAgOiBtX2luc3BlY3RlZFBhZ2UocGFnZSkKICAgICAsIG1fY2xpZW50KGNsaWVu
dCkKICAgICAsIG1fb3BlbmluZ0Zyb250ZW5kKGZhbHNlKQorICAgICwgbV9jc3NTdG9yZShuZXcg
SW5zcGVjdG9yQ1NTU3RvcmUoKSkKICAgICAsIG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQo
MCkKICAgICAsIG1fc2hvd0FmdGVyVmlzaWJsZShDdXJyZW50UGFuZWwpCiAgICAgLCBtX2dyb3Vw
TGV2ZWwoMCkKQEAgLTQyMSwxMyArNDIzLDIyIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
c2V0U2VhcmNoaW5nRm9yTm9kZShib29sIGVuYWJsZWQpCiAgICAgfQogfQogCit2b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OnJlc2V0RE9NQWdlbnQoYm9vbCBjcmVhdGUpCit7CisgICAgaWYgKG1f
ZG9tQWdlbnQpCisgICAgICAgIG1fZG9tQWdlbnQtPnJlc2V0KCk7CisgICAgZWxzZSBpZiAoY3Jl
YXRlKQorICAgICAgICBtX2RvbUFnZW50ID0gSW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZShtX2Nz
c1N0b3JlLmdldCgpKTsKKyAgICBpZiAobV9kb21BZ2VudCkKKyAgICAgICAgbV9kb21BZ2VudC0+
c2V0RnJvbnRlbmQobV9mcm9udGVuZC5nZXQoKSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yQ29udHJv
bGxlcjo6c2V0RnJvbnRlbmQoUGFzc093blB0cjxJbnNwZWN0b3JGcm9udGVuZD4gZnJvbnRlbmQp
CiB7CiAgICAgQVNTRVJUKGZyb250ZW5kKTsKICAgICBtX29wZW5pbmdGcm9udGVuZCA9IGZhbHNl
OwogICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZDsKLSAgICByZWxlYXNlRE9NQWdlbnQoKTsKLSAg
ICBtX2RvbUFnZW50ID0gSW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZShtX2Zyb250ZW5kLmdldCgp
KTsKKyAgICByZXNldERPTUFnZW50KHRydWUpOwogICAgIGlmIChtX3RpbWVsaW5lQWdlbnQpCiAg
ICAgICAgIG1fdGltZWxpbmVBZ2VudC0+cmVzZXRGcm9udGVuZFByb3h5T2JqZWN0KG1fZnJvbnRl
bmQuZ2V0KCkpOwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBVU0UoSlNDKQpA
QCAtNTI2LDcgKzUzNyw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKCkKICAgICBzdG9wVXNlckluaXRpYXRlZFByb2ZpbGluZygpOwogI2VuZGlmCiAKLSAg
ICByZWxlYXNlRE9NQWdlbnQoKTsKKyAgICByZXNldERPTUFnZW50KGZhbHNlKTsKICAgICBtX3Rp
bWVsaW5lQWdlbnQuY2xlYXIoKTsKIH0KIApAQCAtNjY5LDcgKzY4MCw4IEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlkQ29tbWl0TG9hZChEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAg
ICAgICAKICAgICAgICAgaWYgKG1fZnJvbnRlbmQpIHsKICAgICAgICAgICAgIG1fZnJvbnRlbmQt
PnJlc2V0KCk7Ci0gICAgICAgICAgICBtX2RvbUFnZW50LT5yZXNldCgpOworICAgICAgICAgICAg
cmVzZXRET01BZ2VudCh0cnVlKTsKKyAgICAgICAgICAgIG1fY3NzU3RvcmUtPnJlc2V0KCk7CiAg
ICAgICAgIH0KICNpZiBFTkFCTEUoV09SS0VSUykKICAgICAgICAgbV93b3JrZXJzLmNsZWFyKCk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggM2M2Nzk3NS4uMTI0
NzMwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjUsNiAr
NjUsNyBAQCBjbGFzcyBJbmplY3RlZFNjcmlwdDsKIGNsYXNzIEluamVjdGVkU2NyaXB0SG9zdDsK
IGNsYXNzIEluc3BlY3RvckJhY2tlbmQ7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CitzdHJ1Y3Qg
SW5zcGVjdG9yQ1NTU3RvcmU7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsKQEAgLTI2
OCw2ICsyNjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcmVMYXN0QWN0aXZlUGFuZWwoY29u
c3QgU3RyaW5nJiBwYW5lbE5hbWUpOwogICAgIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCgp
IHsgcmV0dXJuIG1fZG9tQWdlbnQuZ2V0KCk7IH0KICAgICB2b2lkIHJlbGVhc2VET01BZ2VudCgp
OworICAgIHZvaWQgcmVzZXRET01BZ2VudChib29sIGNyZWF0ZSk7CiAKICAgICB2b2lkIGRlbGV0
ZUNvb2tpZShjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKTsK
IApAQCAtMzE4LDYgKzMyMCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX29wZW5pbmdGcm9udGVu
ZDsKICAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmQ+IG1fZnJvbnRlbmQ7CiAgICAgUmVmUHRy
PEluc3BlY3RvckRPTUFnZW50PiBtX2RvbUFnZW50OworICAgIE93blB0cjxJbnNwZWN0b3JDU1NT
dG9yZT4gbV9jc3NTdG9yZTsKICAgICBPd25QdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV90
aW1lbGluZUFnZW50OwogICAgIFJlZlB0cjxOb2RlPiBtX25vZGVUb0ZvY3VzOwogICAgIFJlZlB0
cjxJbnNwZWN0b3JSZXNvdXJjZT4gbV9tYWluUmVzb3VyY2U7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKaW5kZXggNmQ0MTY5Mi4uMTc4MjRjMyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtNzMsOSArNzMsMTAgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1JbnNwZWN0b3JET01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVj
dG9yRnJvbnRlbmQqIGZyb250ZW5kKQorSW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFn
ZW50KEluc3BlY3RvckNTU1N0b3JlKiBjc3NTdG9yZSkKICAgICA6IEV2ZW50TGlzdGVuZXIoSW5z
cGVjdG9yRE9NQWdlbnRUeXBlKQotICAgICwgbV9mcm9udGVuZChmcm9udGVuZCkKKyAgICAsIG1f
Y3NzU3RvcmUoY3NzU3RvcmUpCisgICAgLCBtX2Zyb250ZW5kKE5VTEwpCiAgICAgLCBtX2xhc3RO
b2RlSWQoMSkKICAgICAsIG1fbGFzdFN0eWxlSWQoMSkKICAgICAsIG1fbGFzdFJ1bGVJZCgxKQpA
QCAtMTEzLDYgKzExNCwxMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXREb2N1bWVudChE
b2N1bWVudCogZG9jKQogICAgICAgICBtX2Zyb250ZW5kLT5zZXREb2N1bWVudChTY3JpcHRPYmpl
Y3QoKSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kKiBmcm9udGVuZCkKK3sKKyAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQ7Cit9CisK
IHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlbGVhc2VEYW5nbGluZ05vZGVzKCkKIHsKICAgICBk
ZWxldGVBbGxWYWx1ZXMobV9kYW5nbGluZ05vZGVUb0lkTWFwcyk7CkBAIC0yMzYsMTIgKzI0Miw2
IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncygpCiAgICAgbV9pZFRv
Tm9kZS5jbGVhcigpOwogICAgIHJlbGVhc2VEYW5nbGluZ05vZGVzKCk7CiAgICAgbV9jaGlsZHJl
blJlcXVlc3RlZC5jbGVhcigpOwotICAgIG1fc3R5bGVUb0lkLmNsZWFyKCk7Ci0gICAgbV9pZFRv
U3R5bGUuY2xlYXIoKTsKLSAgICBtX3J1bGVUb0lkLmNsZWFyKCk7Ci0gICAgbV9pZFRvUnVsZS5j
bGVhcigpOwotICAgIG1faWRUb0Rpc2FibGVkU3R5bGUuY2xlYXIoKTsKLSAgICBtX2luc3BlY3Rv
clN0eWxlU2hlZXQgPSAwOwogfQogCiBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUZvcklk
KGxvbmcgaWQpCkBAIC05MDUsOCArOTA1LDggQEAgU2NyaXB0QXJyYXkgSW5zcGVjdG9yRE9NQWdl
bnQ6OmJ1aWxkQXJyYXlGb3JQc2V1ZG9FbGVtZW50cyhFbGVtZW50KiBlbGVtZW50LCBib28KIAog
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6YXBwbHlTdHlsZVRleHQobG9uZyBjYWxsSWQsIGxvbmcg
c3R5bGVJZCwgY29uc3QgU3RyaW5nJiBzdHlsZVRleHQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlO
YW1lKQogewotICAgIElkVG9TdHlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2lkVG9TdHlsZS5maW5k
KHN0eWxlSWQpOwotICAgIGlmIChpdCA9PSBtX2lkVG9TdHlsZS5lbmQoKSkgeworICAgIElkVG9T
dHlsZU1hcDo6aXRlcmF0b3IgaXQgPSBjc3NTdG9yZSgpLT5pZFRvU3R5bGUuZmluZChzdHlsZUlk
KTsKKyAgICBpZiAoaXQgPT0gY3NzU3RvcmUoKS0+aWRUb1N0eWxlLmVuZCgpKSB7CiAgICAgICAg
IG1fZnJvbnRlbmQtPmRpZEFwcGx5U3R5bGVUZXh0KGNhbGxJZCwgZmFsc2UsIFNjcmlwdFZhbHVl
Ojp1bmRlZmluZWQoKSwgbV9mcm9udGVuZC0+bmV3U2NyaXB0QXJyYXkoKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC05ODIsOCArOTgyLDggQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6
YXBwbHlTdHlsZVRleHQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJgog
CiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRTdHlsZVRleHQobG9uZyBjYWxsSWQsIGxvbmcg
c3R5bGVJZCwgY29uc3QgU3RyaW5nJiBjc3NUZXh0KQogewotICAgIElkVG9TdHlsZU1hcDo6aXRl
cmF0b3IgaXQgPSBtX2lkVG9TdHlsZS5maW5kKHN0eWxlSWQpOwotICAgIGlmIChpdCA9PSBtX2lk
VG9TdHlsZS5lbmQoKSkgeworICAgIElkVG9TdHlsZU1hcDo6aXRlcmF0b3IgaXQgPSBjc3NTdG9y
ZSgpLT5pZFRvU3R5bGUuZmluZChzdHlsZUlkKTsKKyAgICBpZiAoaXQgPT0gY3NzU3RvcmUoKS0+
aWRUb1N0eWxlLmVuZCgpKSB7CiAgICAgICAgIG1fZnJvbnRlbmQtPmRpZFNldFN0eWxlVGV4dChj
YWxsSWQsIGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTk5NSw4ICs5OTUsOCBA
QCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRTdHlsZVRleHQobG9uZyBjYWxsSWQsIGxvbmcg
c3R5bGVJZCwgY29uc3QgU3RyaW5nJiBjcwogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRT
dHlsZVByb3BlcnR5KGxvbmcgY2FsbElkLCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBJZFRvU3R5bGVNYXA6Oml0ZXJhdG9yIGl0
ID0gbV9pZFRvU3R5bGUuZmluZChzdHlsZUlkKTsKLSAgICBpZiAoaXQgPT0gbV9pZFRvU3R5bGUu
ZW5kKCkpIHsKKyAgICBJZFRvU3R5bGVNYXA6Oml0ZXJhdG9yIGl0ID0gY3NzU3RvcmUoKS0+aWRU
b1N0eWxlLmZpbmQoc3R5bGVJZCk7CisgICAgaWYgKGl0ID09IGNzc1N0b3JlKCktPmlkVG9TdHls
ZS5lbmQoKSkgewogICAgICAgICBtX2Zyb250ZW5kLT5kaWRTZXRTdHlsZVByb3BlcnR5KGNhbGxJ
ZCwgZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAwOSwxNiArMTAwOSwxNiBA
QCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRTdHlsZVByb3BlcnR5KGxvbmcgY2FsbElkLCBs
b25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZwogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp0b2dn
bGVTdHlsZUVuYWJsZWQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eU5hbWUsIGJvb2wgZGlzYWJsZWQpCiB7Ci0gICAgSWRUb1N0eWxlTWFwOjppdGVyYXRv
ciBpdCA9IG1faWRUb1N0eWxlLmZpbmQoc3R5bGVJZCk7Ci0gICAgaWYgKGl0ID09IG1faWRUb1N0
eWxlLmVuZCgpKSB7CisgICAgSWRUb1N0eWxlTWFwOjppdGVyYXRvciBpdCA9IGNzc1N0b3JlKCkt
PmlkVG9TdHlsZS5maW5kKHN0eWxlSWQpOworICAgIGlmIChpdCA9PSBjc3NTdG9yZSgpLT5pZFRv
U3R5bGUuZW5kKCkpIHsKICAgICAgICAgbV9mcm9udGVuZC0+ZGlkVG9nZ2xlU3R5bGVFbmFibGVk
KGNhbGxJZCwgU2NyaXB0VmFsdWU6OnVuZGVmaW5lZCgpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IGl0LT5zZWNvbmQuZ2V0KCk7CiAK
LSAgICBJZFRvRGlzYWJsZWRTdHlsZU1hcDo6aXRlcmF0b3IgZGlzYWJsZWRJdCA9IG1faWRUb0Rp
c2FibGVkU3R5bGUuZmluZChzdHlsZUlkKTsKLSAgICBpZiAoZGlzYWJsZWRJdCA9PSBtX2lkVG9E
aXNhYmxlZFN0eWxlLmVuZCgpKQotICAgICAgICBkaXNhYmxlZEl0ID0gbV9pZFRvRGlzYWJsZWRT
dHlsZS5zZXQoc3R5bGVJZCwgRGlzYWJsZWRTdHlsZURlY2xhcmF0aW9uKCkpLmZpcnN0OworICAg
IElkVG9EaXNhYmxlZFN0eWxlTWFwOjppdGVyYXRvciBkaXNhYmxlZEl0ID0gY3NzU3RvcmUoKS0+
aWRUb0Rpc2FibGVkU3R5bGUuZmluZChzdHlsZUlkKTsKKyAgICBpZiAoZGlzYWJsZWRJdCA9PSBj
c3NTdG9yZSgpLT5pZFRvRGlzYWJsZWRTdHlsZS5lbmQoKSkKKyAgICAgICAgZGlzYWJsZWRJdCA9
IGNzc1N0b3JlKCktPmlkVG9EaXNhYmxlZFN0eWxlLnNldChzdHlsZUlkLCBEaXNhYmxlZFN0eWxl
RGVjbGFyYXRpb24oKSkuZmlyc3Q7CiAKICAgICAvLyBUT0RPOiBtYWtlIHN1cmUgdGhpcyB3b3Jr
cyB3aXRoIHNob3J0aGFuZHMgcmlnaHQuCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC0x
MDQxLDggKzEwNDEsOCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp0b2dnbGVTdHlsZUVuYWJs
ZWQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaQogCiB2b2lkIEluc3BlY3Rv
ckRPTUFnZW50OjpzZXRSdWxlU2VsZWN0b3IobG9uZyBjYWxsSWQsIGxvbmcgcnVsZUlkLCBjb25z
dCBTdHJpbmcmIHNlbGVjdG9yLCBsb25nIHNlbGVjdGVkTm9kZUlkKQogewotICAgIElkVG9SdWxl
TWFwOjppdGVyYXRvciBpdCA9IG1faWRUb1J1bGUuZmluZChydWxlSWQpOwotICAgIGlmIChpdCA9
PSBtX2lkVG9SdWxlLmVuZCgpKSB7CisgICAgSWRUb1J1bGVNYXA6Oml0ZXJhdG9yIGl0ID0gY3Nz
U3RvcmUoKS0+aWRUb1J1bGUuZmluZChydWxlSWQpOworICAgIGlmIChpdCA9PSBjc3NTdG9yZSgp
LT5pZFRvUnVsZS5lbmQoKSkgewogICAgICAgICBtX2Zyb250ZW5kLT5kaWRTZXRSdWxlU2VsZWN0
b3IoY2FsbElkLCBTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkKCksIGZhbHNlKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTEwODIsNyArMTA4Miw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6
OmFkZFJ1bGUobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIGxvbmcgc2VsZWN0
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIW1faW5zcGVjdG9yU3R5bGVTaGVl
dC5nZXQoKSkgeworICAgIGlmICghY3NzU3RvcmUoKS0+aW5zcGVjdG9yU3R5bGVTaGVldC5nZXQo
KSkgewogICAgICAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudCA9IG5vZGUtPm93bmVyRG9jdW1l
bnQoKTsKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgIFJlZlB0cjxFbGVt
ZW50PiBzdHlsZUVsZW1lbnQgPSBvd25lckRvY3VtZW50LT5jcmVhdGVFbGVtZW50KCJzdHlsZSIs
IGVjKTsKQEAgLTExMDAsMzggKzExMDAsMzggQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6YWRk
UnVsZShsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgbG9uZyBzZWxlY3QKICAg
ICAgICAgICAgIG1fZnJvbnRlbmQtPmRpZEFkZFJ1bGUoY2FsbElkLCBTY3JpcHRWYWx1ZTo6dW5k
ZWZpbmVkKCksIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAg
ICBtX2luc3BlY3RvclN0eWxlU2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5
bGVTaGVldCk7CisgICAgICAgIGNzc1N0b3JlKCktPmluc3BlY3RvclN0eWxlU2hlZXQgPSBzdGF0
aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCk7CiAgICAgfQogCiAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgbV9pbnNwZWN0b3JTdHlsZVNoZWV0LT5hZGRSdWxlKHNlbGVj
dG9yLCAiIiwgZWMpOworICAgIGNzc1N0b3JlKCktPmluc3BlY3RvclN0eWxlU2hlZXQtPmFkZFJ1
bGUoc2VsZWN0b3IsICIiLCBlYyk7CiAgICAgaWYgKGVjKSB7CiAgICAgICAgIG1fZnJvbnRlbmQt
PmRpZEFkZFJ1bGUoY2FsbElkLCBTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkKCksIGZhbHNlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIENTU1N0eWxlUnVsZSogbmV3UnVsZSA9IHN0YXRp
Y19jYXN0PENTU1N0eWxlUnVsZSo+KG1faW5zcGVjdG9yU3R5bGVTaGVldC0+aXRlbShtX2luc3Bl
Y3RvclN0eWxlU2hlZXQtPmxlbmd0aCgpIC0gMSkpOworICAgIENTU1N0eWxlUnVsZSogbmV3UnVs
ZSA9IHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KGNzc1N0b3JlKCktPmluc3BlY3RvclN0eWxl
U2hlZXQtPml0ZW0oY3NzU3RvcmUoKS0+aW5zcGVjdG9yU3R5bGVTaGVldC0+bGVuZ3RoKCkgLSAx
KSk7CiAgICAgbV9mcm9udGVuZC0+ZGlkQWRkUnVsZShjYWxsSWQsIGJ1aWxkT2JqZWN0Rm9yUnVs
ZShuZXdSdWxlKSwgcnVsZUFmZmVjdHNOb2RlKG5ld1J1bGUsIG5vZGUpKTsKIH0KIAogbG9uZyBJ
bnNwZWN0b3JET01BZ2VudDo6YmluZFN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQog
ewotICAgIGxvbmcgaWQgPSBtX3N0eWxlVG9JZC5nZXQoc3R5bGUpOworICAgIGxvbmcgaWQgPSBj
c3NTdG9yZSgpLT5zdHlsZVRvSWQuZ2V0KHN0eWxlKTsKICAgICBpZiAoIWlkKSB7CiAgICAgICAg
IGlkID0gbV9sYXN0U3R5bGVJZCsrOwotICAgICAgICBtX2lkVG9TdHlsZS5zZXQoaWQsIHN0eWxl
KTsKLSAgICAgICAgbV9zdHlsZVRvSWQuc2V0KHN0eWxlLCBpZCk7CisgICAgICAgIGNzc1N0b3Jl
KCktPmlkVG9TdHlsZS5zZXQoaWQsIHN0eWxlKTsKKyAgICAgICAgY3NzU3RvcmUoKS0+c3R5bGVU
b0lkLnNldChzdHlsZSwgaWQpOwogICAgIH0KICAgICByZXR1cm4gaWQ7CiB9CiAKIGxvbmcgSW5z
cGVjdG9yRE9NQWdlbnQ6OmJpbmRSdWxlKENTU1N0eWxlUnVsZSogcnVsZSkKIHsKLSAgICBsb25n
IGlkID0gbV9ydWxlVG9JZC5nZXQocnVsZSk7CisgICAgbG9uZyBpZCA9IGNzc1N0b3JlKCktPnJ1
bGVUb0lkLmdldChydWxlKTsKICAgICBpZiAoIWlkKSB7CiAgICAgICAgIGlkID0gbV9sYXN0UnVs
ZUlkKys7Ci0gICAgICAgIG1faWRUb1J1bGUuc2V0KGlkLCBydWxlKTsKLSAgICAgICAgbV9ydWxl
VG9JZC5zZXQocnVsZSwgaWQpOworICAgICAgICBjc3NTdG9yZSgpLT5pZFRvUnVsZS5zZXQoaWQs
IHJ1bGUpOworICAgICAgICBjc3NTdG9yZSgpLT5ydWxlVG9JZC5zZXQocnVsZSwgaWQpOwogICAg
IH0KICAgICByZXR1cm4gaWQ7CiB9CkBAIC0xMTQzLDggKzExNDMsOCBAQCBTY3JpcHRPYmplY3Qg
SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlv
biogc3R5bGUsCiAgICAgICAgIGxvbmcgc3R5bGVJZCA9IGJpbmRTdHlsZShzdHlsZSk7CiAgICAg
ICAgIHJlc3VsdC5zZXQoImlkIiwgc3R5bGVJZCk7CiAKLSAgICAgICAgSWRUb0Rpc2FibGVkU3R5
bGVNYXA6Oml0ZXJhdG9yIGRpc2FibGVkSXQgPSBtX2lkVG9EaXNhYmxlZFN0eWxlLmZpbmQoc3R5
bGVJZCk7Ci0gICAgICAgIGlmIChkaXNhYmxlZEl0ICE9IG1faWRUb0Rpc2FibGVkU3R5bGUuZW5k
KCkpCisgICAgICAgIElkVG9EaXNhYmxlZFN0eWxlTWFwOjppdGVyYXRvciBkaXNhYmxlZEl0ID0g
Y3NzU3RvcmUoKS0+aWRUb0Rpc2FibGVkU3R5bGUuZmluZChzdHlsZUlkKTsKKyAgICAgICAgaWYg
KGRpc2FibGVkSXQgIT0gY3NzU3RvcmUoKS0+aWRUb0Rpc2FibGVkU3R5bGUuZW5kKCkpCiAgICAg
ICAgICAgICByZXN1bHQuc2V0KCJkaXNhYmxlZCIsIGJ1aWxkQXJyYXlGb3JEaXNhYmxlZFN0eWxl
UHJvcGVydGllcyhkaXNhYmxlZEl0LT5zZWNvbmQpKTsKICAgICB9CiAgICAgcmVzdWx0LnNldCgi
d2lkdGgiLCBzdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKSk7CkBAIC0xMjMwLDcgKzEy
MzAsNyBAQCBTY3JpcHRPYmplY3QgSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yUnVs
ZShDU1NTdHlsZVJ1bGUqIHJ1bGUpCiAgICAgYm9vbCBpc1VzZXIgPSBwYXJlbnRTdHlsZVNoZWV0
ICYmIHBhcmVudFN0eWxlU2hlZXQtPm93bmVyTm9kZSgpICYmIHBhcmVudFN0eWxlU2hlZXQtPm93
bmVyTm9kZSgpLT5ub2RlTmFtZSgpID09ICIjZG9jdW1lbnQiOwogICAgIHJlc3VsdC5zZXQoImlz
VXNlckFnZW50IiwgaXNVc2VyQWdlbnQpOwogICAgIHJlc3VsdC5zZXQoImlzVXNlciIsIGlzVXNl
cik7Ci0gICAgcmVzdWx0LnNldCgiaXNWaWFJbnNwZWN0b3IiLCBydWxlLT5wYXJlbnRTdHlsZVNo
ZWV0KCkgPT0gbV9pbnNwZWN0b3JTdHlsZVNoZWV0LmdldCgpKTsKKyAgICByZXN1bHQuc2V0KCJp
c1ZpYUluc3BlY3RvciIsIHJ1bGUtPnBhcmVudFN0eWxlU2hlZXQoKSA9PSBjc3NTdG9yZSgpLT5p
bnNwZWN0b3JTdHlsZVNoZWV0LmdldCgpKTsKIAogICAgIC8vIEJpbmQgZWRpdGFibGUgc2NyaXB0
cyBvbmx5LgogICAgIGJvb2wgYmluZCA9ICFpc1VzZXJBZ2VudCAmJiAhaXNVc2VyOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggNzIxMWVkMi4uMzJhYmFjZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiQXRvbWljU3RyaW5nLmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUg
IkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ1NTU3RvcmUuaCIKICNpbmNsdWRl
ICJTY3JpcHRBcnJheS5oIgogI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgogI2luY2x1ZGUgIlNj
cmlwdFN0YXRlLmgiCkBAIC03Myw5ICs3NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
IGNsYXNzIEluc3BlY3RvckRPTUFnZW50IDogcHVibGljIEV2ZW50TGlzdGVuZXIgewogICAgIHB1
YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IGNyZWF0
ZShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEluc3BlY3RvckRPTUFnZW50PiBjcmVhdGUoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3JlKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluc3BlY3RvckRPTUFn
ZW50KGZyb250ZW5kKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluc3BlY3Rv
ckRPTUFnZW50KGNzc1N0b3JlKSk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3Qg
SW5zcGVjdG9yRE9NQWdlbnQqIGNhc3QoY29uc3QgRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpCkBA
IC04NSw3ICs4Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICA6IDA7
CiAgICAgICAgIH0KIAotICAgICAgICBJbnNwZWN0b3JET01BZ2VudChJbnNwZWN0b3JGcm9udGVu
ZCogZnJvbnRlbmQpOworICAgICAgICBJbnNwZWN0b3JET01BZ2VudChJbnNwZWN0b3JDU1NTdG9y
ZSogY3NzU3RvcmUpOwogICAgICAgICB+SW5zcGVjdG9yRE9NQWdlbnQoKTsKIAogICAgICAgICB2
b2lkIHJlc2V0KCk7CkBAIC0xMTYsNiArMTE3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIHRoZSBJbnNwZWN0b3JDb250cm9sbGVyLgogICAg
ICAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCk7CiAgICAgICAgIHZvaWQg
cmVsZWFzZURhbmdsaW5nTm9kZXMoKTsKKyAgICAgICAgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0
b3JGcm9udGVuZCogZnJvbnRlbmQpOwogCiAgICAgICAgIHZvaWQgZGlkSW5zZXJ0RE9NTm9kZShO
b2RlKik7CiAgICAgICAgIHZvaWQgZGlkUmVtb3ZlRE9NTm9kZShOb2RlKik7CkBAIC0xMjcsOSAr
MTI5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHB1c2hDaGlsZE5vZGVz
VG9Gcm9udGVuZChsb25nIG5vZGVJZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICB0eXBlZGVm
IHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gUHJvcGVydHlWYWx1ZUFuZFByaW9yaXR5OwotICAg
ICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBQcm9wZXJ0eVZhbHVlQW5kUHJpb3JpdHk+IERp
c2FibGVkU3R5bGVEZWNsYXJhdGlvbjsKLQogICAgICAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nKERv
Y3VtZW50KiBkb2N1bWVudCk7CiAgICAgICAgIHZvaWQgc3RvcExpc3RlbmluZyhEb2N1bWVudCog
ZG9jdW1lbnQpOwogCkBAIC0xNjIsNiArMTYxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgICAgIERvY3VtZW50KiBtYWluRnJhbWVEb2N1bWVudCgpIGNvbnN0OwogICAgICAgICBTdHJp
bmcgZG9jdW1lbnRVUkxTdHJpbmcoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25zdDsKKyAgICAgICAg
SW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3JlKCkgeyByZXR1cm4gbV9jc3NTdG9yZTsgfQogCiAg
ICAgICAgIGxvbmcgYmluZFN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qKTsKICAgICAgICAgbG9u
ZyBiaW5kUnVsZShDU1NTdHlsZVJ1bGUqKTsKQEAgLTE3OCw2ICsxNzgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBkaXNjYXJkQmluZGluZ3MoKTsKIAorICAgICAgICBJ
bnNwZWN0b3JDU1NTdG9yZSogbV9jc3NTdG9yZTsKICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQq
IG1fZnJvbnRlbmQ7CiAgICAgICAgIE5vZGVUb0lkTWFwIG1fZG9jdW1lbnROb2RlVG9JZE1hcDsK
ICAgICAgICAgLy8gT3ducyBub2RlIG1hcHBpbmdzIGZvciBkYW5nbGluZyBub2Rlcy4KQEAgLTE4
NiwxOSArMTg3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBIYXNoTWFwPGxvbmcs
IE5vZGVUb0lkTWFwKj4gbV9pZFRvTm9kZXNNYXA7CiAgICAgICAgIEhhc2hTZXQ8bG9uZz4gbV9j
aGlsZHJlblJlcXVlc3RlZDsKICAgICAgICAgbG9uZyBtX2xhc3ROb2RlSWQ7Ci0KLSAgICAgICAg
dHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlRGVjbGFyYXRpb24qLCBsb25nPiBTdHlsZVRvSWRNYXA7
Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlv
bj4gPiBJZFRvU3R5bGVNYXA7Ci0gICAgICAgIFN0eWxlVG9JZE1hcCBtX3N0eWxlVG9JZDsKLSAg
ICAgICAgSWRUb1N0eWxlTWFwIG1faWRUb1N0eWxlOwotICAgICAgICB0eXBlZGVmIEhhc2hNYXA8
Q1NTU3R5bGVSdWxlKiwgbG9uZz4gUnVsZVRvSWRNYXA7Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1h
cDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVSdWxlPiA+IElkVG9SdWxlTWFwOwotICAgICAgICBSdWxl
VG9JZE1hcCBtX3J1bGVUb0lkOwotICAgICAgICBJZFRvUnVsZU1hcCBtX2lkVG9SdWxlOwotICAg
ICAgICB0eXBlZGVmIEhhc2hNYXA8bG9uZywgRGlzYWJsZWRTdHlsZURlY2xhcmF0aW9uPiAgSWRU
b0Rpc2FibGVkU3R5bGVNYXA7Ci0gICAgICAgIElkVG9EaXNhYmxlZFN0eWxlTWFwIG1faWRUb0Rp
c2FibGVkU3R5bGU7Ci0gICAgICAgIFJlZlB0cjxDU1NTdHlsZVNoZWV0PiBtX2luc3BlY3RvclN0
eWxlU2hlZXQ7Ci0KICAgICAgICAgbG9uZyBtX2xhc3RTdHlsZUlkOwogICAgICAgICBsb25nIG1f
bGFzdFJ1bGVJZDsKICAgICAgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPERvY3VtZW50PiA+IG1fZG9j
dW1lbnRzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54799</attachid>
            <date>2010-04-30 05:54:12 -0700</date>
            <delta_ts>2010-04-30 06:24:08 -0700</delta_ts>
            <desc>[PATCH] Style fixed, change description augmented</desc>
            <filename>domagentstyles.patch</filename>
            <type>text/plain</type>
            <size>28135</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzQzNzdjNy4uZDQ2Y2I0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMC0wNC0zMCAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT046IERpc2FibGVk
IHN0eWxlIHByb3BlcnRpZXMgYXJlIGFic2VudCBpbiBTdHlsZXMgc2lkZWJhciBhZnRlciBXZWJJ
bnNwZWN0b3IgaXMgcmUtb3BlbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zODI1NQorCisgICAgICAgIEluc3BlY3RvckRPTUFnZW50IHVzZWQgdG8g
YmUgcmVzZXQgb24gZXZlcnkgZnJvbnRlbmQgY2hhbmdlLCB3aGljaAorICAgICAgICB0cmFzaGVk
IHVzZXIgc3R5bGUgY2hhbmdlcyBrbm93biB0byBXZWJJbnNwZWN0b3IuIFRoZSBuZXcgYXBwcm9h
Y2gKKyAgICAgICAgc3RvcmVzIHRoZSBzdHlsZS1yZWxhdGVkIGRhdGEgaW4gSW5zcGVjdG9yQ29u
dHJvbGxlciwgcGFzc2luZyB0aGUKKyAgICAgICAgc3RvcmUgdG8gSW5zcGVjdG9yRE9NQWdlbnQs
IHdoaWNoIGF2b2lkcyB1bndhbnRlZCBkYXRhIHRyYXNoaW5nLgorCisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpJbnNwZWN0b3JDU1NTdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6fkluc3BlY3RvckNTU1N0
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpyZXNldCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmg6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzZXRET01BZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDb250cm9sbGVyOjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3Rv
ckRPTUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXRGcm9u
dGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6ZGlzY2FyZEJpbmRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjphcHBseVN0eWxlVGV4
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6c2V0U3R5bGVUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzZXRTdHlsZVByb3BlcnR5KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojp0b2dnbGVTdHlsZUVuYWJsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldFJ1bGVTZWxlY3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YWRkUnVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YmluZFN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckRPTUFnZW50OjpiaW5kUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JSdWxlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmNzc1N0
b3JlKToKKwogMjAxMC0wNC0zMCAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYTk3NTIz
My4uZmQ5ZTIzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMjc0LDYgKzEyNzQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVdlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oIFwKIAlXZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcCBcCiAJV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQmFja2VuZC5oIFwKKwlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5j
cHAgXAorCVdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmggXAogCVdlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwIFwKIAlXZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmggXAogCVdlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGY0ZDNlMTMuLmE0OGY5OWEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xNjQ5
LDYgKzE2NDksOCBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmgn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCcsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCcsCisgICAgICAgICAgICAn
aW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcCcsCisgICAgICAgICAgICAnaW5zcGVjdG9y
L0luc3BlY3RvckNTU1N0b3JlLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JE
YXRhYmFzZVJlc291cmNlLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckRh
dGFiYXNlUmVzb3VyY2UuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1MzIyZDhh
Li4yYzlhZGY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQzMDkx
LDYgKzQzMDkxLDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JDU1NTdG9yZS5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5z
cGVjdG9yQ1NTU3RvcmUuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcCIN
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGM1ZTg2OWMuLmRiZjI0OGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzQ5LDYgKzEzNDksOCBAQAogCQk3QUVEM0UwNjBGQkIx
RUFBMDBEMkIwM0MgLyogSW5zcGVjdG9yRnJvbnRlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRUQzRTA0MEZCQjFFQUEwMEQyQjAzQyAvKiBJbnNw
ZWN0b3JGcm9udGVuZC5oICovOyB9OwogCQk3QUZENEE4QjExMzFDMjc2MDAzNUI4ODMgLyogU2Ny
aXB0QnJlYWtwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0FGRDRBOEExMTMxQzI3NjAwMzVCODgzIC8qIFNjcmlwdEJyZWFrcG9pbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QUZENEZGNDEx
MzI3N0I2MDAzNUI4ODMgLyogU2NyaXB0RGVidWdMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FGRDRGRjMxMTMyNzdCNjAwMzVCODgzIC8q
IFNjcmlwdERlYnVnTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk4MkI2NTg5ODExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NT
U3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgy
QjY1ODk3MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTgyQjY1ODlBMTE4OUU0NzYw
MEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MkI2NTg5OTExODlFNDc2MDBFMDUyQTEgLyogSW5zcGVj
dG9yQ1NTU3RvcmUuY3BwICovOyB9OwogCQk4NDFGREMyNjExNzhDOUJFMDBGOEFDOUIgLyogUmVu
ZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODQxRkRDMjQxMTc4QzlCRTAwRjhBQzlCIC8qIFJlbmRlclNWR1Jlc291
cmNlRmlsdGVyLmNwcCAqLzsgfTsKIAkJODQxRkRDMjcxMTc4QzlCRTAwRjhBQzlCIC8qIFJlbmRl
clNWR1Jlc291cmNlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NDFGREMyNTExNzhDOUJFMDBGOEFDOUIgLyogUmVuZGVyU1ZHUmVzb3VyY2VG
aWx0ZXIuaCAqLzsgfTsKIAkJODQyMjQxODMxMDdFNzdGNDAwNzY2QTg3IC8qIEpTU1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NDIyNDE4MTEwN0U3N0Y0MDA3NjZBODcgLyogSlNTVkdGRU1vcnBob2xvZ3lFbGVt
ZW50LmNwcCAqLzsgfTsKQEAgLTY4NzcsNiArNjg3OSw4IEBACiAJCTdBRUQzRTA0MEZCQjFFQUEw
MEQyQjAzQyAvKiBJbnNwZWN0b3JGcm9udGVuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QUZENEE4QTExMzFDMjc2MDAzNUI4ODMgLyogU2NyaXB0QnJlYWtwb2ludC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRCcmVha3BvaW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdBRkQ0RkYzMTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1
Z0xpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdERlYnVn
TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODJCNjU4OTcxMTg5RTM5
MjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluc3BlY3RvckNTU1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgyQjY1ODk5MTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDU1NTdG9yZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MUZEQzI0MTE3OEM5QkUwMEY4QUM5QiAv
KiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg0MUZEQzI1MTE3OEM5QkUwMEY4QUM5QiAvKiBSZW5kZXJTVkdSZXNvdXJj
ZUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZXNv
dXJjZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDIyNDE4MTEwN0U3
N0Y0MDA3NjZBODcgLyogSlNTVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDg4Miw2ICsxMDg4Niw4IEBACiAJCQkJOUZB
MzdFRjAxMTcyRkQ0MTAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmlkbCAqLywKIAkJCQk3
NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLywK
IAkJCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmgg
Ki8sCisJCQkJODJCNjU4OTcxMTg5RTM5MjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmgg
Ki8sCisJCQkJODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmNw
cCAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW5zcGVjdG9yOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTE4OTExLDYgKzE4OTE3LDcgQEAKIAkJCQlCNTIzQ0YwNjExODI2NzU0MDBFQkIy
OUMgLyogU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUI1
MjNDRjA4MTE4MjY3NTQwMEVCQjI5QyAvKiBTUUxUcmFuc2FjdGlvblN5bmMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUI1MjNDRjBCMTE4MjY3NTQwMEVCQjI5QyAvKiBEYXRhYmFzZVN5bmMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTgyQjY1ODk4MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NT
dG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyN0NGOTcxMThBMzU0QzAwNDFENjMyIC8qIG5w
dHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwpAQCAtMjExNDksNiArMjExNTYsNyBAQAogCQkJCTBGRjI4NTkyMTE4
NjQwNTQwMDdCN0NENiAvKiBSZW5kZXJNYXRoTUxTcXVhcmVSb290LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUI1MjNDRjA5MTE4MjY3NTQwMEVCQjI5QyAvKiBTUUxUcmFuc2FjdGlvblN5bmMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQjUyM0NGMEExMTgyNjc1NDAwRUJCMjlDIC8qIERhdGFiYXNl
U3luYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4MkI2NTg5QTExODlFNDc2MDBFMDUyQTEgLyog
SW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NTdG9yZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMx
MWZhOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0
b3JlLmNwcApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ikluc3BlY3RvckNTU1N0b3JlLmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgi
CisjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW5z
cGVjdG9yQ1NTU3RvcmU6Okluc3BlY3RvckNTU1N0b3JlKCkKK3sKK30KKworSW5zcGVjdG9yQ1NT
U3RvcmU6On5JbnNwZWN0b3JDU1NTdG9yZSgpCit7CisgICAgcmVzZXQoKTsKK30KKwordm9pZCBJ
bnNwZWN0b3JDU1NTdG9yZTo6cmVzZXQoKQoreworICAgIHN0eWxlVG9JZC5jbGVhcigpOworICAg
IGlkVG9TdHlsZS5jbGVhcigpOworICAgIHJ1bGVUb0lkLmNsZWFyKCk7CisgICAgaWRUb1J1bGUu
Y2xlYXIoKTsKKyAgICBpZFRvRGlzYWJsZWRTdHlsZS5jbGVhcigpOworICAgIGluc3BlY3RvclN0
eWxlU2hlZXQgPSAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTU3RvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j
OTMyOTMyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
U3RvcmUuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbnNwZWN0b3JDU1NTdG9yZV9oCisj
ZGVmaW5lIEluc3BlY3RvckNTU1N0b3JlX2gKKworI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKKwor
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CitjbGFzcyBDU1NT
dHlsZVJ1bGU7CitjbGFzcyBDU1NTdHlsZVNoZWV0OworY2xhc3MgU3RyaW5nOworCit0eXBlZGVm
IHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gUHJvcGVydHlWYWx1ZUFuZFByaW9yaXR5OwordHlw
ZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvcGVydHlWYWx1ZUFuZFByaW9yaXR5PiBEaXNhYmxlZFN0
eWxlRGVjbGFyYXRpb247Cit0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVEZWNsYXJhdGlvbiosIGxv
bmc+IFN0eWxlVG9JZE1hcDsKK3R5cGVkZWYgSGFzaE1hcDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVE
ZWNsYXJhdGlvbj4gPiBJZFRvU3R5bGVNYXA7Cit0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVSdWxl
KiwgbG9uZz4gUnVsZVRvSWRNYXA7Cit0eXBlZGVmIEhhc2hNYXA8bG9uZywgUmVmUHRyPENTU1N0
eWxlUnVsZT4gPiBJZFRvUnVsZU1hcDsKK3R5cGVkZWYgSGFzaE1hcDxsb25nLCBEaXNhYmxlZFN0
eWxlRGVjbGFyYXRpb24+IElkVG9EaXNhYmxlZFN0eWxlTWFwOworCitzdHJ1Y3QgSW5zcGVjdG9y
Q1NTU3RvcmUgeworcHVibGljOgorICAgIEluc3BlY3RvckNTU1N0b3JlKCk7CisgICAgfkluc3Bl
Y3RvckNTU1N0b3JlKCk7CisgICAgdm9pZCByZXNldCgpOworCisgICAgU3R5bGVUb0lkTWFwIHN0
eWxlVG9JZDsKKyAgICBJZFRvU3R5bGVNYXAgaWRUb1N0eWxlOworICAgIFJ1bGVUb0lkTWFwIHJ1
bGVUb0lkOworICAgIElkVG9SdWxlTWFwIGlkVG9SdWxlOworICAgIElkVG9EaXNhYmxlZFN0eWxl
TWFwIGlkVG9EaXNhYmxlZFN0eWxlOworICAgIFJlZlB0cjxDU1NTdHlsZVNoZWV0PiBpbnNwZWN0
b3JTdHlsZVNoZWV0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
IWRlZmluZWQoSW5zcGVjdG9yQ1NTU3RvcmVfaCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAKaW5kZXggM2ZmNGRhNS4uMzgzMTk3MCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJJ
bmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0SG9zdC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvckJhY2tlbmQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDU1NTdG9yZS5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5k
Q2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgiCkBAIC0x
NDQsNiArMTQ1LDcgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQ
YWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCkKICAgICA6IG1faW5zcGVjdGVkUGFn
ZShwYWdlKQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9vcGVuaW5nRnJvbnRlbmQo
ZmFsc2UpCisgICAgLCBtX2Nzc1N0b3JlKG5ldyBJbnNwZWN0b3JDU1NTdG9yZSgpKQogICAgICwg
bV9leHBpcmVkQ29uc29sZU1lc3NhZ2VDb3VudCgwKQogICAgICwgbV9zaG93QWZ0ZXJWaXNpYmxl
KEN1cnJlbnRQYW5lbCkKICAgICAsIG1fZ3JvdXBMZXZlbCgwKQpAQCAtNDIxLDEzICs0MjMsMjIg
QEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRTZWFyY2hpbmdGb3JOb2RlKGJvb2wgZW5h
YmxlZCkKICAgICB9CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzZXRET01BZ2Vu
dChib29sIGNyZWF0ZSkKK3sKKyAgICBpZiAobV9kb21BZ2VudCkKKyAgICAgICAgbV9kb21BZ2Vu
dC0+cmVzZXQoKTsKKyAgICBlbHNlIGlmIChjcmVhdGUpCisgICAgICAgIG1fZG9tQWdlbnQgPSBJ
bnNwZWN0b3JET01BZ2VudDo6Y3JlYXRlKG1fY3NzU3RvcmUuZ2V0KCkpOworICAgIGlmIChtX2Rv
bUFnZW50KQorICAgICAgICBtX2RvbUFnZW50LT5zZXRGcm9udGVuZChtX2Zyb250ZW5kLmdldCgp
KTsKK30KKwogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRGcm9udGVuZChQYXNzT3duUHRy
PEluc3BlY3RvckZyb250ZW5kPiBmcm9udGVuZCkKIHsKICAgICBBU1NFUlQoZnJvbnRlbmQpOwog
ICAgIG1fb3BlbmluZ0Zyb250ZW5kID0gZmFsc2U7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5k
OwotICAgIHJlbGVhc2VET01BZ2VudCgpOwotICAgIG1fZG9tQWdlbnQgPSBJbnNwZWN0b3JET01B
Z2VudDo6Y3JlYXRlKG1fZnJvbnRlbmQuZ2V0KCkpOworICAgIHJlc2V0RE9NQWdlbnQodHJ1ZSk7
CiAgICAgaWYgKG1fdGltZWxpbmVBZ2VudCkKICAgICAgICAgbV90aW1lbGluZUFnZW50LT5yZXNl
dEZyb250ZW5kUHJveHlPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7CiAjaWYgRU5BQkxFKEpBVkFT
Q1JJUFRfREVCVUdHRVIpICYmIFVTRShKU0MpCkBAIC01MjYsNyArNTM3LDcgQEAgdm9pZCBJbnNw
ZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQoKQogICAgIHN0b3BVc2VySW5pdGlh
dGVkUHJvZmlsaW5nKCk7CiAjZW5kaWYKIAotICAgIHJlbGVhc2VET01BZ2VudCgpOworICAgIHJl
c2V0RE9NQWdlbnQoZmFsc2UpOwogICAgIG1fdGltZWxpbmVBZ2VudC5jbGVhcigpOwogfQogCkBA
IC02NjksNyArNjgwLDggQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRDb21taXRMb2Fk
KERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgICAgIAogICAgICAgICBpZiAobV9mcm9udGVu
ZCkgewogICAgICAgICAgICAgbV9mcm9udGVuZC0+cmVzZXQoKTsKLSAgICAgICAgICAgIG1fZG9t
QWdlbnQtPnJlc2V0KCk7CisgICAgICAgICAgICByZXNldERPTUFnZW50KHRydWUpOworICAgICAg
ICAgICAgbV9jc3NTdG9yZS0+cmVzZXQoKTsKICAgICAgICAgfQogI2lmIEVOQUJMRShXT1JLRVJT
KQogICAgICAgICBtX3dvcmtlcnMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaAppbmRleCAzYzY3OTc1Li4xMjQ3MzA0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oCkBAIC02NSw2ICs2NSw3IEBAIGNsYXNzIEluamVjdGVkU2NyaXB0
OwogY2xhc3MgSW5qZWN0ZWRTY3JpcHRIb3N0OwogY2xhc3MgSW5zcGVjdG9yQmFja2VuZDsKIGNs
YXNzIEluc3BlY3RvckNsaWVudDsKK3N0cnVjdCBJbnNwZWN0b3JDU1NTdG9yZTsKIGNsYXNzIElu
c3BlY3RvckZyb250ZW5kOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7CiBjbGFzcyBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OwpAQCAtMjY4LDYgKzI2OSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzdG9yZUxhc3RBY3RpdmVQYW5lbChjb25zdCBTdHJpbmcmIHBhbmVsTmFtZSk7CiAgICAg
SW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50KCkgeyByZXR1cm4gbV9kb21BZ2VudC5nZXQoKTsg
fQogICAgIHZvaWQgcmVsZWFzZURPTUFnZW50KCk7CisgICAgdm9pZCByZXNldERPTUFnZW50KGJv
b2wgY3JlYXRlKTsKIAogICAgIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFN0cmluZyYgY29va2ll
TmFtZSwgY29uc3QgU3RyaW5nJiBkb21haW4pOwogCkBAIC0zMTgsNiArMzIwLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1fb3BlbmluZ0Zyb250ZW5kOwogICAgIE93blB0cjxJbnNwZWN0b3JGcm9u
dGVuZD4gbV9mcm9udGVuZDsKICAgICBSZWZQdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IG1fZG9tQWdl
bnQ7CisgICAgT3duUHRyPEluc3BlY3RvckNTU1N0b3JlPiBtX2Nzc1N0b3JlOwogICAgIE93blB0
cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3RpbWVsaW5lQWdlbnQ7CiAgICAgUmVmUHRyPE5v
ZGU+IG1fbm9kZVRvRm9jdXM7CiAgICAgUmVmUHRyPEluc3BlY3RvclJlc291cmNlPiBtX21haW5S
ZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA2ZDQx
NjkyLi45YjNiMDM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBA
IC03Myw5ICs3MywxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc3BlY3RvckRPTUFn
ZW50OjpJbnNwZWN0b3JET01BZ2VudChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCitJbnNw
ZWN0b3JET01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0
b3JlKQogICAgIDogRXZlbnRMaXN0ZW5lcihJbnNwZWN0b3JET01BZ2VudFR5cGUpCi0gICAgLCBt
X2Zyb250ZW5kKGZyb250ZW5kKQorICAgICwgbV9jc3NTdG9yZShjc3NTdG9yZSkKKyAgICAsIG1f
ZnJvbnRlbmQoMCkKICAgICAsIG1fbGFzdE5vZGVJZCgxKQogICAgICwgbV9sYXN0U3R5bGVJZCgx
KQogICAgICwgbV9sYXN0UnVsZUlkKDEpCkBAIC0xMTMsNiArMTE0LDExIEBAIHZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OnNldERvY3VtZW50KERvY3VtZW50KiBkb2MpCiAgICAgICAgIG1fZnJvbnRl
bmQtPnNldERvY3VtZW50KFNjcmlwdE9iamVjdCgpKTsKIH0KIAordm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6c2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQoreworICAgIG1f
ZnJvbnRlbmQgPSBmcm9udGVuZDsKK30KKwogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVsZWFz
ZURhbmdsaW5nTm9kZXMoKQogewogICAgIGRlbGV0ZUFsbFZhbHVlcyhtX2RhbmdsaW5nTm9kZVRv
SWRNYXBzKTsKQEAgLTIzNiwxMiArMjQyLDYgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZGlz
Y2FyZEJpbmRpbmdzKCkKICAgICBtX2lkVG9Ob2RlLmNsZWFyKCk7CiAgICAgcmVsZWFzZURhbmds
aW5nTm9kZXMoKTsKICAgICBtX2NoaWxkcmVuUmVxdWVzdGVkLmNsZWFyKCk7Ci0gICAgbV9zdHls
ZVRvSWQuY2xlYXIoKTsKLSAgICBtX2lkVG9TdHlsZS5jbGVhcigpOwotICAgIG1fcnVsZVRvSWQu
Y2xlYXIoKTsKLSAgICBtX2lkVG9SdWxlLmNsZWFyKCk7Ci0gICAgbV9pZFRvRGlzYWJsZWRTdHls
ZS5jbGVhcigpOwotICAgIG1faW5zcGVjdG9yU3R5bGVTaGVldCA9IDA7CiB9CiAKIE5vZGUqIElu
c3BlY3RvckRPTUFnZW50Ojpub2RlRm9ySWQobG9uZyBpZCkKQEAgLTkwNSw4ICs5MDUsOCBAQCBT
Y3JpcHRBcnJheSBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRBcnJheUZvclBzZXVkb0VsZW1lbnRz
KEVsZW1lbnQqIGVsZW1lbnQsIGJvbwogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjphcHBseVN0
eWxlVGV4dChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHN0eWxlVGV4
dCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSWRUb1N0eWxlTWFwOjppdGVy
YXRvciBpdCA9IG1faWRUb1N0eWxlLmZpbmQoc3R5bGVJZCk7Ci0gICAgaWYgKGl0ID09IG1faWRU
b1N0eWxlLmVuZCgpKSB7CisgICAgSWRUb1N0eWxlTWFwOjppdGVyYXRvciBpdCA9IGNzc1N0b3Jl
KCktPmlkVG9TdHlsZS5maW5kKHN0eWxlSWQpOworICAgIGlmIChpdCA9PSBjc3NTdG9yZSgpLT5p
ZFRvU3R5bGUuZW5kKCkpIHsKICAgICAgICAgbV9mcm9udGVuZC0+ZGlkQXBwbHlTdHlsZVRleHQo
Y2FsbElkLCBmYWxzZSwgU2NyaXB0VmFsdWU6OnVuZGVmaW5lZCgpLCBtX2Zyb250ZW5kLT5uZXdT
Y3JpcHRBcnJheSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTk4Miw4ICs5ODIsOCBA
QCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjphcHBseVN0eWxlVGV4dChsb25nIGNhbGxJZCwgbG9u
ZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmCiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldFN0
eWxlVGV4dChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIGNzc1RleHQp
CiB7Ci0gICAgSWRUb1N0eWxlTWFwOjppdGVyYXRvciBpdCA9IG1faWRUb1N0eWxlLmZpbmQoc3R5
bGVJZCk7Ci0gICAgaWYgKGl0ID09IG1faWRUb1N0eWxlLmVuZCgpKSB7CisgICAgSWRUb1N0eWxl
TWFwOjppdGVyYXRvciBpdCA9IGNzc1N0b3JlKCktPmlkVG9TdHlsZS5maW5kKHN0eWxlSWQpOwor
ICAgIGlmIChpdCA9PSBjc3NTdG9yZSgpLT5pZFRvU3R5bGUuZW5kKCkpIHsKICAgICAgICAgbV9m
cm9udGVuZC0+ZGlkU2V0U3R5bGVUZXh0KGNhbGxJZCwgZmFsc2UpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtOTk1LDggKzk5NSw4IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldFN0
eWxlVGV4dChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIGNzCiAKIHZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldFN0eWxlUHJvcGVydHkobG9uZyBjYWxsSWQsIGxvbmcg
c3R5bGVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAg
IElkVG9TdHlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2lkVG9TdHlsZS5maW5kKHN0eWxlSWQpOwot
ICAgIGlmIChpdCA9PSBtX2lkVG9TdHlsZS5lbmQoKSkgeworICAgIElkVG9TdHlsZU1hcDo6aXRl
cmF0b3IgaXQgPSBjc3NTdG9yZSgpLT5pZFRvU3R5bGUuZmluZChzdHlsZUlkKTsKKyAgICBpZiAo
aXQgPT0gY3NzU3RvcmUoKS0+aWRUb1N0eWxlLmVuZCgpKSB7CiAgICAgICAgIG1fZnJvbnRlbmQt
PmRpZFNldFN0eWxlUHJvcGVydHkoY2FsbElkLCBmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0xMDA5LDE2ICsxMDA5LDE2IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldFN0
eWxlUHJvcGVydHkobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nCiAKIHZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnRvZ2dsZVN0eWxlRW5hYmxlZChsb25nIGNhbGxJZCwgbG9u
ZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgYm9vbCBkaXNhYmxlZCkKIHsK
LSAgICBJZFRvU3R5bGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvU3R5bGUuZmluZChzdHlsZUlk
KTsKLSAgICBpZiAoaXQgPT0gbV9pZFRvU3R5bGUuZW5kKCkpIHsKKyAgICBJZFRvU3R5bGVNYXA6
Oml0ZXJhdG9yIGl0ID0gY3NzU3RvcmUoKS0+aWRUb1N0eWxlLmZpbmQoc3R5bGVJZCk7CisgICAg
aWYgKGl0ID09IGNzc1N0b3JlKCktPmlkVG9TdHlsZS5lbmQoKSkgewogICAgICAgICBtX2Zyb250
ZW5kLT5kaWRUb2dnbGVTdHlsZUVuYWJsZWQoY2FsbElkLCBTY3JpcHRWYWx1ZTo6dW5kZWZpbmVk
KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0
eWxlID0gaXQtPnNlY29uZC5nZXQoKTsKIAotICAgIElkVG9EaXNhYmxlZFN0eWxlTWFwOjppdGVy
YXRvciBkaXNhYmxlZEl0ID0gbV9pZFRvRGlzYWJsZWRTdHlsZS5maW5kKHN0eWxlSWQpOwotICAg
IGlmIChkaXNhYmxlZEl0ID09IG1faWRUb0Rpc2FibGVkU3R5bGUuZW5kKCkpCi0gICAgICAgIGRp
c2FibGVkSXQgPSBtX2lkVG9EaXNhYmxlZFN0eWxlLnNldChzdHlsZUlkLCBEaXNhYmxlZFN0eWxl
RGVjbGFyYXRpb24oKSkuZmlyc3Q7CisgICAgSWRUb0Rpc2FibGVkU3R5bGVNYXA6Oml0ZXJhdG9y
IGRpc2FibGVkSXQgPSBjc3NTdG9yZSgpLT5pZFRvRGlzYWJsZWRTdHlsZS5maW5kKHN0eWxlSWQp
OworICAgIGlmIChkaXNhYmxlZEl0ID09IGNzc1N0b3JlKCktPmlkVG9EaXNhYmxlZFN0eWxlLmVu
ZCgpKQorICAgICAgICBkaXNhYmxlZEl0ID0gY3NzU3RvcmUoKS0+aWRUb0Rpc2FibGVkU3R5bGUu
c2V0KHN0eWxlSWQsIERpc2FibGVkU3R5bGVEZWNsYXJhdGlvbigpKS5maXJzdDsKIAogICAgIC8v
IFRPRE86IG1ha2Ugc3VyZSB0aGlzIHdvcmtzIHdpdGggc2hvcnRoYW5kcyByaWdodC4KICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTEwNDEsOCArMTA0MSw4IEBAIHZvaWQgSW5zcGVjdG9y
RE9NQWdlbnQ6OnRvZ2dsZVN0eWxlRW5hYmxlZChsb25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBj
b25zdCBTdHJpCiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldFJ1bGVTZWxlY3Rvcihsb25n
IGNhbGxJZCwgbG9uZyBydWxlSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIGxvbmcgc2VsZWN0
ZWROb2RlSWQpCiB7Ci0gICAgSWRUb1J1bGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvUnVsZS5m
aW5kKHJ1bGVJZCk7Ci0gICAgaWYgKGl0ID09IG1faWRUb1J1bGUuZW5kKCkpIHsKKyAgICBJZFRv
UnVsZU1hcDo6aXRlcmF0b3IgaXQgPSBjc3NTdG9yZSgpLT5pZFRvUnVsZS5maW5kKHJ1bGVJZCk7
CisgICAgaWYgKGl0ID09IGNzc1N0b3JlKCktPmlkVG9SdWxlLmVuZCgpKSB7CiAgICAgICAgIG1f
ZnJvbnRlbmQtPmRpZFNldFJ1bGVTZWxlY3RvcihjYWxsSWQsIFNjcmlwdFZhbHVlOjp1bmRlZmlu
ZWQoKSwgZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTA4Miw3ICsxMDgyLDcg
QEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6YWRkUnVsZShsb25nIGNhbGxJZCwgY29uc3QgU3Ry
aW5nJiBzZWxlY3RvciwgbG9uZyBzZWxlY3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmICghbV9pbnNwZWN0b3JTdHlsZVNoZWV0LmdldCgpKSB7CisgICAgaWYgKCFjc3NTdG9yZSgp
LT5pbnNwZWN0b3JTdHlsZVNoZWV0LmdldCgpKSB7CiAgICAgICAgIERvY3VtZW50KiBvd25lckRv
Y3VtZW50ID0gbm9kZS0+b3duZXJEb2N1bWVudCgpOwogICAgICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IHN0eWxlRWxlbWVudCA9IG93bmVyRG9jdW1l
bnQtPmNyZWF0ZUVsZW1lbnQoInN0eWxlIiwgZWMpOwpAQCAtMTEwMCwzOCArMTEwMCwzOCBAQCB2
b2lkIEluc3BlY3RvckRPTUFnZW50OjphZGRSdWxlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcm
IHNlbGVjdG9yLCBsb25nIHNlbGVjdAogICAgICAgICAgICAgbV9mcm9udGVuZC0+ZGlkQWRkUnVs
ZShjYWxsSWQsIFNjcmlwdFZhbHVlOjp1bmRlZmluZWQoKSwgZmFsc2UpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIG1faW5zcGVjdG9yU3R5bGVTaGVldCA9IHN0YXRp
Y19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0KTsKKyAgICAgICAgY3NzU3RvcmUoKS0+
aW5zcGVjdG9yU3R5bGVTaGVldCA9IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNo
ZWV0KTsKICAgICB9CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBtX2luc3BlY3Rv
clN0eWxlU2hlZXQtPmFkZFJ1bGUoc2VsZWN0b3IsICIiLCBlYyk7CisgICAgY3NzU3RvcmUoKS0+
aW5zcGVjdG9yU3R5bGVTaGVldC0+YWRkUnVsZShzZWxlY3RvciwgIiIsIGVjKTsKICAgICBpZiAo
ZWMpIHsKICAgICAgICAgbV9mcm9udGVuZC0+ZGlkQWRkUnVsZShjYWxsSWQsIFNjcmlwdFZhbHVl
Ojp1bmRlZmluZWQoKSwgZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQ1NT
U3R5bGVSdWxlKiBuZXdSdWxlID0gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxlKj4obV9pbnNwZWN0
b3JTdHlsZVNoZWV0LT5pdGVtKG1faW5zcGVjdG9yU3R5bGVTaGVldC0+bGVuZ3RoKCkgLSAxKSk7
CisgICAgQ1NTU3R5bGVSdWxlKiBuZXdSdWxlID0gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxlKj4o
Y3NzU3RvcmUoKS0+aW5zcGVjdG9yU3R5bGVTaGVldC0+aXRlbShjc3NTdG9yZSgpLT5pbnNwZWN0
b3JTdHlsZVNoZWV0LT5sZW5ndGgoKSAtIDEpKTsKICAgICBtX2Zyb250ZW5kLT5kaWRBZGRSdWxl
KGNhbGxJZCwgYnVpbGRPYmplY3RGb3JSdWxlKG5ld1J1bGUpLCBydWxlQWZmZWN0c05vZGUobmV3
UnVsZSwgbm9kZSkpOwogfQogCiBsb25nIEluc3BlY3RvckRPTUFnZW50OjpiaW5kU3R5bGUoQ1NT
U3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCiB7Ci0gICAgbG9uZyBpZCA9IG1fc3R5bGVUb0lkLmdl
dChzdHlsZSk7CisgICAgbG9uZyBpZCA9IGNzc1N0b3JlKCktPnN0eWxlVG9JZC5nZXQoc3R5bGUp
OwogICAgIGlmICghaWQpIHsKICAgICAgICAgaWQgPSBtX2xhc3RTdHlsZUlkKys7Ci0gICAgICAg
IG1faWRUb1N0eWxlLnNldChpZCwgc3R5bGUpOwotICAgICAgICBtX3N0eWxlVG9JZC5zZXQoc3R5
bGUsIGlkKTsKKyAgICAgICAgY3NzU3RvcmUoKS0+aWRUb1N0eWxlLnNldChpZCwgc3R5bGUpOwor
ICAgICAgICBjc3NTdG9yZSgpLT5zdHlsZVRvSWQuc2V0KHN0eWxlLCBpZCk7CiAgICAgfQogICAg
IHJldHVybiBpZDsKIH0KIAogbG9uZyBJbnNwZWN0b3JET01BZ2VudDo6YmluZFJ1bGUoQ1NTU3R5
bGVSdWxlKiBydWxlKQogewotICAgIGxvbmcgaWQgPSBtX3J1bGVUb0lkLmdldChydWxlKTsKKyAg
ICBsb25nIGlkID0gY3NzU3RvcmUoKS0+cnVsZVRvSWQuZ2V0KHJ1bGUpOwogICAgIGlmICghaWQp
IHsKICAgICAgICAgaWQgPSBtX2xhc3RSdWxlSWQrKzsKLSAgICAgICAgbV9pZFRvUnVsZS5zZXQo
aWQsIHJ1bGUpOwotICAgICAgICBtX3J1bGVUb0lkLnNldChydWxlLCBpZCk7CisgICAgICAgIGNz
c1N0b3JlKCktPmlkVG9SdWxlLnNldChpZCwgcnVsZSk7CisgICAgICAgIGNzc1N0b3JlKCktPnJ1
bGVUb0lkLnNldChydWxlLCBpZCk7CiAgICAgfQogICAgIHJldHVybiBpZDsKIH0KQEAgLTExNDMs
OCArMTE0Myw4IEBAIFNjcmlwdE9iamVjdCBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RG
b3JTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwKICAgICAgICAgbG9uZyBzdHlsZUlk
ID0gYmluZFN0eWxlKHN0eWxlKTsKICAgICAgICAgcmVzdWx0LnNldCgiaWQiLCBzdHlsZUlkKTsK
IAotICAgICAgICBJZFRvRGlzYWJsZWRTdHlsZU1hcDo6aXRlcmF0b3IgZGlzYWJsZWRJdCA9IG1f
aWRUb0Rpc2FibGVkU3R5bGUuZmluZChzdHlsZUlkKTsKLSAgICAgICAgaWYgKGRpc2FibGVkSXQg
IT0gbV9pZFRvRGlzYWJsZWRTdHlsZS5lbmQoKSkKKyAgICAgICAgSWRUb0Rpc2FibGVkU3R5bGVN
YXA6Oml0ZXJhdG9yIGRpc2FibGVkSXQgPSBjc3NTdG9yZSgpLT5pZFRvRGlzYWJsZWRTdHlsZS5m
aW5kKHN0eWxlSWQpOworICAgICAgICBpZiAoZGlzYWJsZWRJdCAhPSBjc3NTdG9yZSgpLT5pZFRv
RGlzYWJsZWRTdHlsZS5lbmQoKSkKICAgICAgICAgICAgIHJlc3VsdC5zZXQoImRpc2FibGVkIiwg
YnVpbGRBcnJheUZvckRpc2FibGVkU3R5bGVQcm9wZXJ0aWVzKGRpc2FibGVkSXQtPnNlY29uZCkp
OwogICAgIH0KICAgICByZXN1bHQuc2V0KCJ3aWR0aCIsIHN0eWxlLT5nZXRQcm9wZXJ0eVZhbHVl
KCJ3aWR0aCIpKTsKQEAgLTEyMzAsNyArMTIzMCw3IEBAIFNjcmlwdE9iamVjdCBJbnNwZWN0b3JE
T01BZ2VudDo6YnVpbGRPYmplY3RGb3JSdWxlKENTU1N0eWxlUnVsZSogcnVsZSkKICAgICBib29s
IGlzVXNlciA9IHBhcmVudFN0eWxlU2hlZXQgJiYgcGFyZW50U3R5bGVTaGVldC0+b3duZXJOb2Rl
KCkgJiYgcGFyZW50U3R5bGVTaGVldC0+b3duZXJOb2RlKCktPm5vZGVOYW1lKCkgPT0gIiNkb2N1
bWVudCI7CiAgICAgcmVzdWx0LnNldCgiaXNVc2VyQWdlbnQiLCBpc1VzZXJBZ2VudCk7CiAgICAg
cmVzdWx0LnNldCgiaXNVc2VyIiwgaXNVc2VyKTsKLSAgICByZXN1bHQuc2V0KCJpc1ZpYUluc3Bl
Y3RvciIsIHJ1bGUtPnBhcmVudFN0eWxlU2hlZXQoKSA9PSBtX2luc3BlY3RvclN0eWxlU2hlZXQu
Z2V0KCkpOworICAgIHJlc3VsdC5zZXQoImlzVmlhSW5zcGVjdG9yIiwgcnVsZS0+cGFyZW50U3R5
bGVTaGVldCgpID09IGNzc1N0b3JlKCktPmluc3BlY3RvclN0eWxlU2hlZXQuZ2V0KCkpOwogCiAg
ICAgLy8gQmluZCBlZGl0YWJsZSBzY3JpcHRzIG9ubHkuCiAgICAgYm9vbCBiaW5kID0gIWlzVXNl
ckFnZW50ICYmICFpc1VzZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRl
eCA3MjExZWQyLi4zMmFiYWNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKICNpbmNsdWRlICJF
dmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJJbnNw
ZWN0b3JDU1NTdG9yZS5oIgogI2luY2x1ZGUgIlNjcmlwdEFycmF5LmgiCiAjaW5jbHVkZSAiU2Ny
aXB0T2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKQEAgLTczLDkgKzc0LDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQgOiBwdWJs
aWMgRXZlbnRMaXN0ZW5lciB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJbnNwZWN0b3JET01BZ2VudD4gY3JlYXRlKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkK
KyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yRE9NQWdlbnQ+IGNyZWF0ZShJbnNw
ZWN0b3JDU1NTdG9yZSogY3NzU3RvcmUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSW5zcGVjdG9yRE9NQWdlbnQoZnJvbnRlbmQpKTsKKyAgICAgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSW5zcGVjdG9yRE9NQWdlbnQoY3NzU3RvcmUpKTsKICAgICAgICAg
fQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBJbnNwZWN0b3JET01BZ2VudCogY2FzdChjb25zdCBF
dmVudExpc3RlbmVyKiBsaXN0ZW5lcikKQEAgLTg1LDcgKzg2LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAgICAgICAgIDogMDsKICAgICAgICAgfQogCi0gICAgICAgIEluc3BlY3Rv
ckRPTUFnZW50KEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCk7CisgICAgICAgIEluc3BlY3Rv
ckRPTUFnZW50KEluc3BlY3RvckNTU1N0b3JlKiBjc3NTdG9yZSk7CiAgICAgICAgIH5JbnNwZWN0
b3JET01BZ2VudCgpOwogCiAgICAgICAgIHZvaWQgcmVzZXQoKTsKQEAgLTExNiw2ICsxMTcsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gdGhl
IEluc3BlY3RvckNvbnRyb2xsZXIuCiAgICAgICAgIHZvaWQgc2V0RG9jdW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50KTsKICAgICAgICAgdm9pZCByZWxlYXNlRGFuZ2xpbmdOb2RlcygpOworICAgICAg
ICB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCk7CiAKICAgICAg
ICAgdm9pZCBkaWRJbnNlcnRET01Ob2RlKE5vZGUqKTsKICAgICAgICAgdm9pZCBkaWRSZW1vdmVE
T01Ob2RlKE5vZGUqKTsKQEAgLTEyNyw5ICsxMjksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKGxvbmcgbm9kZUlkKTsKIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIHR5cGVkZWYgc3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiBQcm9w
ZXJ0eVZhbHVlQW5kUHJpb3JpdHk7Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFBy
b3BlcnR5VmFsdWVBbmRQcmlvcml0eT4gRGlzYWJsZWRTdHlsZURlY2xhcmF0aW9uOwotCiAgICAg
ICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmcoRG9jdW1lbnQqIGRvY3VtZW50KTsKICAgICAgICAgdm9p
ZCBzdG9wTGlzdGVuaW5nKERvY3VtZW50KiBkb2N1bWVudCk7CiAKQEAgLTE2Miw2ICsxNjEsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgRG9jdW1lbnQqIG1haW5GcmFtZURvY3Vt
ZW50KCkgY29uc3Q7CiAgICAgICAgIFN0cmluZyBkb2N1bWVudFVSTFN0cmluZyhEb2N1bWVudCog
ZG9jdW1lbnQpIGNvbnN0OworICAgICAgICBJbnNwZWN0b3JDU1NTdG9yZSogY3NzU3RvcmUoKSB7
IHJldHVybiBtX2Nzc1N0b3JlOyB9CiAKICAgICAgICAgbG9uZyBiaW5kU3R5bGUoQ1NTU3R5bGVE
ZWNsYXJhdGlvbiopOwogICAgICAgICBsb25nIGJpbmRSdWxlKENTU1N0eWxlUnVsZSopOwpAQCAt
MTc4LDYgKzE3OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGRpc2Nh
cmRCaW5kaW5ncygpOwogCisgICAgICAgIEluc3BlY3RvckNTU1N0b3JlKiBtX2Nzc1N0b3JlOwog
ICAgICAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKICAgICAgICAgTm9kZVRvSWRN
YXAgbV9kb2N1bWVudE5vZGVUb0lkTWFwOwogICAgICAgICAvLyBPd25zIG5vZGUgbWFwcGluZ3Mg
Zm9yIGRhbmdsaW5nIG5vZGVzLgpAQCAtMTg2LDE5ICsxODcsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIEhhc2hNYXA8bG9uZywgTm9kZVRvSWRNYXAqPiBtX2lkVG9Ob2Rlc01hcDsK
ICAgICAgICAgSGFzaFNldDxsb25nPiBtX2NoaWxkcmVuUmVxdWVzdGVkOwogICAgICAgICBsb25n
IG1fbGFzdE5vZGVJZDsKLQotICAgICAgICB0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVEZWNsYXJh
dGlvbiosIGxvbmc+IFN0eWxlVG9JZE1hcDsKLSAgICAgICAgdHlwZWRlZiBIYXNoTWFwPGxvbmcs
IFJlZlB0cjxDU1NTdHlsZURlY2xhcmF0aW9uPiA+IElkVG9TdHlsZU1hcDsKLSAgICAgICAgU3R5
bGVUb0lkTWFwIG1fc3R5bGVUb0lkOwotICAgICAgICBJZFRvU3R5bGVNYXAgbV9pZFRvU3R5bGU7
Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBsb25nPiBSdWxlVG9JZE1h
cDsKLSAgICAgICAgdHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJlZlB0cjxDU1NTdHlsZVJ1bGU+ID4g
SWRUb1J1bGVNYXA7Ci0gICAgICAgIFJ1bGVUb0lkTWFwIG1fcnVsZVRvSWQ7Ci0gICAgICAgIElk
VG9SdWxlTWFwIG1faWRUb1J1bGU7Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxsb25nLCBEaXNh
YmxlZFN0eWxlRGVjbGFyYXRpb24+ICBJZFRvRGlzYWJsZWRTdHlsZU1hcDsKLSAgICAgICAgSWRU
b0Rpc2FibGVkU3R5bGVNYXAgbV9pZFRvRGlzYWJsZWRTdHlsZTsKLSAgICAgICAgUmVmUHRyPENT
U1N0eWxlU2hlZXQ+IG1faW5zcGVjdG9yU3R5bGVTaGVldDsKLQogICAgICAgICBsb25nIG1fbGFz
dFN0eWxlSWQ7CiAgICAgICAgIGxvbmcgbV9sYXN0UnVsZUlkOwogICAgICAgICBMaXN0SGFzaFNl
dDxSZWZQdHI8RG9jdW1lbnQ+ID4gbV9kb2N1bWVudHM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54800</attachid>
            <date>2010-04-30 06:24:08 -0700</date>
            <delta_ts>2010-04-30 08:34:35 -0700</delta_ts>
            <desc>[PATCH] Added lost WebCore.pro change</desc>
            <filename>domagentstyles.patch</filename>
            <type>text/plain</type>
            <size>28503</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzQzNzdjNy4uNWVlOGViNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMC0wNC0zMCAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT046IERpc2FibGVk
IHN0eWxlIHByb3BlcnRpZXMgYXJlIGFic2VudCBpbiBTdHlsZXMgc2lkZWJhciBhZnRlciBXZWJJ
bnNwZWN0b3IgaXMgcmUtb3BlbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zODI1NQorCisgICAgICAgIE1vdmVkIHN0eWxlc2hlZXQtcmVsYXRlZCBt
YXBwaW5ncyBpbnRvIGEgc2VwYXJhdGUgb2JqZWN0IHN0b3JlZAorICAgICAgICBpbiBJbnNwZWN0
b3JDb250cm9sbGVyIHJhdGhlciB0aGFuIEluc3BlY3RvckRPTUFnZW50ICh3aGljaCBnZXRzIHJl
c2V0CisgICAgICAgIG9uIGV2ZXJ5IGZyb250ZW5kIFtkaXNdY29ubmVjdCkuCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ1NTU3RvcmU6Okluc3BlY3RvckNTU1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNTU1N0b3JlOjp+SW5zcGVjdG9yQ1NTU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ1NTU3RvcmU6OnJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTU3RvcmUuaDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9y
Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpyZXNl
dERPTUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNldEZy
b250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5l
Y3RGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRD
b21taXRMb2FkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckRPTUFnZW50OjpkaXNjYXJkQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OmFwcGx5U3R5bGVUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTUFnZW50OjpzZXRTdHlsZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRE9NQWdlbnQ6OnNldFN0eWxlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRE9NQWdlbnQ6OnRvZ2dsZVN0eWxlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6c2V0UnVsZVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTUFnZW50OjphZGRSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpiaW5kU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJp
bmRSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVj
dEZvclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9i
amVjdEZvclJ1bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6Y3NzU3RvcmUpOgorCiAyMDEwLTA0LTMwICBTaGlu
aWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBhOTc1MjMzLi5mZDllMjM2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTEy
NzQsNiArMTI3NCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRIb3N0LmggXAogCVdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmQuY3BwIFwKIAlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmggXAorCVdlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcCBcCisJV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTU3RvcmUuaCBcCiAJV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJh
c2VSZXNvdXJjZS5jcHAgXAogCVdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVz
b3VyY2UuaCBcCiAJV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggZjRkM2UxMy4uYTQ4Zjk5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE2NDksNiArMTY0OSw4IEBACiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5oJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3Rv
cmUuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaCcsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGVmNjAyMWQuLjc2
ZmQ5OTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnBybwpAQCAtNjk2LDYgKzY5Niw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3Bw
IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAgXAorICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JDU1NTdG9yZS5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwIFwKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCmluZGV4IDUzMjJkOGEuLjJjOWFkZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtNDMwOTEsNiArNDMwOTEsMTQgQEAKIAkJCQk+DQogCQkJPC9G
aWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3Rv
ckNTU1N0b3JlLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JDU1NTdG9yZS5oIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzVlODY5Yy4uZGJmMjQ4ZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNDksNiAr
MTM0OSw4IEBACiAJCTdBRUQzRTA2MEZCQjFFQUEwMEQyQjAzQyAvKiBJbnNwZWN0b3JGcm9udGVu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FFRDNF
MDQwRkJCMUVBQTAwRDJCMDNDIC8qIEluc3BlY3RvckZyb250ZW5kLmggKi87IH07CiAJCTdBRkQ0
QThCMTEzMUMyNzYwMDM1Qjg4MyAvKiBTY3JpcHRCcmVha3BvaW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUZENEE4QTExMzFDMjc2MDAzNUI4ODMg
LyogU2NyaXB0QnJlYWtwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdBRkQ0RkY0MTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xp
c3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QUZENEZGMzExMzI3N0I2MDAzNUI4ODMgLyogU2NyaXB0RGVidWdMaXN0ZW5lci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTgyQjY1ODk4MTE4OUUz
OTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJCNjU4OTcxMTg5RTM5MjAwRTA1MkExIC8qIEluc3Bl
Y3RvckNTU1N0b3JlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJODJCNjU4OUExMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgyQjY1ODk5
MTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi87IH07CiAJCTg0MUZE
QzI2MTE3OEM5QkUwMEY4QUM5QiAvKiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDFGREMyNDExNzhDOUJF
MDBGOEFDOUIgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwICovOyB9OwogCQk4NDFGREMy
NzExNzhDOUJFMDBGOEFDOUIgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MUZEQzI1MTE3OEM5QkUwMEY4
QUM5QiAvKiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oICovOyB9OwogCQk4NDIyNDE4MzEwN0U3
N0Y0MDA3NjZBODcgLyogSlNTVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MjI0MTgxMTA3RTc3RjQwMDc2NkE4
NyAvKiBKU1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwICovOyB9OwpAQCAtNjg3Nyw2ICs2ODc5
LDggQEAKIAkJN0FFRDNFMDQwRkJCMUVBQTAwRDJCMDNDIC8qIEluc3BlY3RvckZyb250ZW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBRkQ0QThBMTEzMUMyNzYwMDM1Qjg4MyAvKiBT
Y3JpcHRCcmVha3BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlw
dEJyZWFrcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0FGRDRGRjMxMTMy
NzdCNjAwMzVCODgzIC8qIFNjcmlwdERlYnVnTGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2NyaXB0RGVidWdMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MkI2NTg5NzExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ1NTU3RvcmUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8q
IEluc3BlY3RvckNTU1N0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3RvckNTU1N0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODQxRkRDMjQxMTc4QzlCRTAwRjhBQzlCIC8qIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1Jlc291cmNlRmls
dGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQxRkRDMjUxMTc4QzlCRTAw
RjhBQzlCIC8qIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg0MjI0MTgxMTA3RTc3RjQwMDc2NkE4NyAvKiBKU1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdG
RU1vcnBob2xvZ3lFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEw
ODgyLDYgKzEwODg2LDggQEAKIAkJCQk5RkEzN0VGMDExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0
UHJvZmlsZU5vZGUuaWRsICovLAogCQkJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1l
bGluZVJlY29yZEZhY3RvcnkuY3BwICovLAogCQkJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAv
KiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLywKKwkJCQk4MkI2NTg5NzExODlFMzkyMDBFMDUy
QTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCAqLywKKwkJCQk4MkI2NTg5OTExODlFNDc2MDBFMDUy
QTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBpbnNwZWN0
b3I7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTg5MTEsNiArMTg5MTcsNyBAQAog
CQkJCUI1MjNDRjA2MTE4MjY3NTQwMEVCQjI5QyAvKiBTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUyM0NGMDgxMTgyNjc1NDAwRUJCMjlDIC8qIFNRTFRy
YW5zYWN0aW9uU3luYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUyM0NGMEIxMTgyNjc1NDAwRUJC
MjlDIC8qIERhdGFiYXNlU3luYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJODJCNjU4OTgxMTg5RTM5
MjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI3
Q0Y5NzExOEEzNTRDMDA0MUQ2MzIgLyogbnB0eXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yMTE0OSw2ICsy
MTE1Niw3IEBACiAJCQkJMEZGMjg1OTIxMTg2NDA1NDAwN0I3Q0Q2IC8qIFJlbmRlck1hdGhNTFNx
dWFyZVJvb3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjUyM0NGMDkxMTgyNjc1NDAwRUJCMjlD
IC8qIFNRTFRyYW5zYWN0aW9uU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTIzQ0YwQTEx
ODI2NzU0MDBFQkIyOUMgLyogRGF0YWJhc2VTeW5jLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgy
QjY1ODlBMTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNw
cCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzExZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ1NTU3RvcmUuaCIKKworI2luY2x1
ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKKyNp
bmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitJbnNwZWN0b3JDU1NTdG9yZTo6SW5zcGVjdG9yQ1NTU3Rv
cmUoKQoreworfQorCitJbnNwZWN0b3JDU1NTdG9yZTo6fkluc3BlY3RvckNTU1N0b3JlKCkKK3sK
KyAgICByZXNldCgpOworfQorCit2b2lkIEluc3BlY3RvckNTU1N0b3JlOjpyZXNldCgpCit7Cisg
ICAgc3R5bGVUb0lkLmNsZWFyKCk7CisgICAgaWRUb1N0eWxlLmNsZWFyKCk7CisgICAgcnVsZVRv
SWQuY2xlYXIoKTsKKyAgICBpZFRvUnVsZS5jbGVhcigpOworICAgIGlkVG9EaXNhYmxlZFN0eWxl
LmNsZWFyKCk7CisgICAgaW5zcGVjdG9yU3R5bGVTaGVldCA9IDA7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0
b3JlLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5MzI5MzIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIEluc3BlY3RvckNTU1N0b3JlX2gKKyNkZWZpbmUgSW5zcGVjdG9yQ1NTU3RvcmVfaAorCisj
aW5jbHVkZSAiU3RyaW5nSGFzaC5oIgorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ1NTU3R5
bGVEZWNsYXJhdGlvbjsKK2NsYXNzIENTU1N0eWxlUnVsZTsKK2NsYXNzIENTU1N0eWxlU2hlZXQ7
CitjbGFzcyBTdHJpbmc7CisKK3R5cGVkZWYgc3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiBQcm9w
ZXJ0eVZhbHVlQW5kUHJpb3JpdHk7Cit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBQcm9wZXJ0eVZh
bHVlQW5kUHJpb3JpdHk+IERpc2FibGVkU3R5bGVEZWNsYXJhdGlvbjsKK3R5cGVkZWYgSGFzaE1h
cDxDU1NTdHlsZURlY2xhcmF0aW9uKiwgbG9uZz4gU3R5bGVUb0lkTWFwOwordHlwZWRlZiBIYXNo
TWFwPGxvbmcsIFJlZlB0cjxDU1NTdHlsZURlY2xhcmF0aW9uPiA+IElkVG9TdHlsZU1hcDsKK3R5
cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBsb25nPiBSdWxlVG9JZE1hcDsKK3R5cGVkZWYg
SGFzaE1hcDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVSdWxlPiA+IElkVG9SdWxlTWFwOwordHlwZWRl
ZiBIYXNoTWFwPGxvbmcsIERpc2FibGVkU3R5bGVEZWNsYXJhdGlvbj4gSWRUb0Rpc2FibGVkU3R5
bGVNYXA7CisKK3N0cnVjdCBJbnNwZWN0b3JDU1NTdG9yZSB7CitwdWJsaWM6CisgICAgSW5zcGVj
dG9yQ1NTU3RvcmUoKTsKKyAgICB+SW5zcGVjdG9yQ1NTU3RvcmUoKTsKKyAgICB2b2lkIHJlc2V0
KCk7CisKKyAgICBTdHlsZVRvSWRNYXAgc3R5bGVUb0lkOworICAgIElkVG9TdHlsZU1hcCBpZFRv
U3R5bGU7CisgICAgUnVsZVRvSWRNYXAgcnVsZVRvSWQ7CisgICAgSWRUb1J1bGVNYXAgaWRUb1J1
bGU7CisgICAgSWRUb0Rpc2FibGVkU3R5bGVNYXAgaWRUb0Rpc2FibGVkU3R5bGU7CisgICAgUmVm
UHRyPENTU1N0eWxlU2hlZXQ+IGluc3BlY3RvclN0eWxlU2hlZXQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JDU1NTdG9yZV9oKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCAzZmY0ZGE1Li4z
ODMxOTcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAt
NTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5q
ZWN0ZWRTY3JpcHRIb3N0LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQmFja2VuZC5oIgorI2luY2x1
ZGUgIkluc3BlY3RvckNTU1N0b3JlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2UuaCIKQEAgLTE0NCw2ICsxNDUsNyBAQCBJbnNwZWN0b3JDb250cm9s
bGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBhZ2UsIEluc3BlY3RvckNsaWVudCogY2xp
ZW50KQogICAgIDogbV9pbnNwZWN0ZWRQYWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQp
CiAgICAgLCBtX29wZW5pbmdGcm9udGVuZChmYWxzZSkKKyAgICAsIG1fY3NzU3RvcmUobmV3IElu
c3BlY3RvckNTU1N0b3JlKCkpCiAgICAgLCBtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KDAp
CiAgICAgLCBtX3Nob3dBZnRlclZpc2libGUoQ3VycmVudFBhbmVsKQogICAgICwgbV9ncm91cExl
dmVsKDApCkBAIC00MjEsMTMgKzQyMywyMiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNl
dFNlYXJjaGluZ0Zvck5vZGUoYm9vbCBlbmFibGVkKQogICAgIH0KIH0KIAordm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpyZXNldERPTUFnZW50KGJvb2wgY3JlYXRlKQoreworICAgIGlmIChtX2Rv
bUFnZW50KQorICAgICAgICBtX2RvbUFnZW50LT5yZXNldCgpOworICAgIGVsc2UgaWYgKGNyZWF0
ZSkKKyAgICAgICAgbV9kb21BZ2VudCA9IEluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUobV9jc3NT
dG9yZS5nZXQoKSk7CisgICAgaWYgKG1fZG9tQWdlbnQpCisgICAgICAgIG1fZG9tQWdlbnQtPnNl
dEZyb250ZW5kKG1fZnJvbnRlbmQuZ2V0KCkpOworfQorCiB2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnNldEZyb250ZW5kKFBhc3NPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmQ+IGZyb250ZW5kKQog
ewogICAgIEFTU0VSVChmcm9udGVuZCk7CiAgICAgbV9vcGVuaW5nRnJvbnRlbmQgPSBmYWxzZTsK
ICAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQ7Ci0gICAgcmVsZWFzZURPTUFnZW50KCk7Ci0gICAg
bV9kb21BZ2VudCA9IEluc3BlY3RvckRPTUFnZW50OjpjcmVhdGUobV9mcm9udGVuZC5nZXQoKSk7
CisgICAgcmVzZXRET01BZ2VudCh0cnVlKTsKICAgICBpZiAobV90aW1lbGluZUFnZW50KQogICAg
ICAgICBtX3RpbWVsaW5lQWdlbnQtPnJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChtX2Zyb250ZW5k
LmdldCgpKTsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgVVNFKEpTQykKQEAg
LTUyNiw3ICs1MzcsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9u
dGVuZCgpCiAgICAgc3RvcFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKTsKICNlbmRpZgogCi0gICAg
cmVsZWFzZURPTUFnZW50KCk7CisgICAgcmVzZXRET01BZ2VudChmYWxzZSk7CiAgICAgbV90aW1l
bGluZUFnZW50LmNsZWFyKCk7CiB9CiAKQEAgLTY2OSw3ICs2ODAsOCBAQCB2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICAg
ICAgCiAgICAgICAgIGlmIChtX2Zyb250ZW5kKSB7CiAgICAgICAgICAgICBtX2Zyb250ZW5kLT5y
ZXNldCgpOwotICAgICAgICAgICAgbV9kb21BZ2VudC0+cmVzZXQoKTsKKyAgICAgICAgICAgIHJl
c2V0RE9NQWdlbnQodHJ1ZSk7CisgICAgICAgICAgICBtX2Nzc1N0b3JlLT5yZXNldCgpOwogICAg
ICAgICB9CiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgICAgIG1fd29ya2Vycy5jbGVhcigpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDNjNjc5NzUuLjEyNDcz
MDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTY1LDYgKzY1
LDcgQEAgY2xhc3MgSW5qZWN0ZWRTY3JpcHQ7CiBjbGFzcyBJbmplY3RlZFNjcmlwdEhvc3Q7CiBj
bGFzcyBJbnNwZWN0b3JCYWNrZW5kOwogY2xhc3MgSW5zcGVjdG9yQ2xpZW50Oworc3RydWN0IElu
c3BlY3RvckNTU1N0b3JlOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0
b3JGcm9udGVuZENsaWVudDsKIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7CkBAIC0yNjgs
NiArMjY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3JlTGFzdEFjdGl2ZVBhbmVsKGNvbnN0
IFN0cmluZyYgcGFuZWxOYW1lKTsKICAgICBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQoKSB7
IHJldHVybiBtX2RvbUFnZW50LmdldCgpOyB9CiAgICAgdm9pZCByZWxlYXNlRE9NQWdlbnQoKTsK
KyAgICB2b2lkIHJlc2V0RE9NQWdlbnQoYm9vbCBjcmVhdGUpOwogCiAgICAgdm9pZCBkZWxldGVD
b29raWUoY29uc3QgU3RyaW5nJiBjb29raWVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFpbik7CiAK
QEAgLTMxOCw2ICszMjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9vcGVuaW5nRnJvbnRlbmQ7
CiAgICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kPiBtX2Zyb250ZW5kOwogICAgIFJlZlB0cjxJ
bnNwZWN0b3JET01BZ2VudD4gbV9kb21BZ2VudDsKKyAgICBPd25QdHI8SW5zcGVjdG9yQ1NTU3Rv
cmU+IG1fY3NzU3RvcmU7CiAgICAgT3duUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IG1fdGlt
ZWxpbmVBZ2VudDsKICAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlVG9Gb2N1czsKICAgICBSZWZQdHI8
SW5zcGVjdG9yUmVzb3VyY2U+IG1fbWFpblJlc291cmNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwCmluZGV4IDZkNDE2OTIuLjliM2IwMzQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTczLDkgKzczLDEwIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotSW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KEluc3BlY3Rv
ckZyb250ZW5kKiBmcm9udGVuZCkKK0luc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2Vu
dChJbnNwZWN0b3JDU1NTdG9yZSogY3NzU3RvcmUpCiAgICAgOiBFdmVudExpc3RlbmVyKEluc3Bl
Y3RvckRPTUFnZW50VHlwZSkKLSAgICAsIG1fZnJvbnRlbmQoZnJvbnRlbmQpCisgICAgLCBtX2Nz
c1N0b3JlKGNzc1N0b3JlKQorICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9sYXN0Tm9kZUlk
KDEpCiAgICAgLCBtX2xhc3RTdHlsZUlkKDEpCiAgICAgLCBtX2xhc3RSdWxlSWQoMSkKQEAgLTEx
Myw2ICsxMTQsMTEgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0RG9jdW1lbnQoRG9jdW1l
bnQqIGRvYykKICAgICAgICAgbV9mcm9udGVuZC0+c2V0RG9jdW1lbnQoU2NyaXB0T2JqZWN0KCkp
OwogfQogCit2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9u
dGVuZCogZnJvbnRlbmQpCit7CisgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kOworfQorCiB2b2lk
IEluc3BlY3RvckRPTUFnZW50OjpyZWxlYXNlRGFuZ2xpbmdOb2RlcygpCiB7CiAgICAgZGVsZXRl
QWxsVmFsdWVzKG1fZGFuZ2xpbmdOb2RlVG9JZE1hcHMpOwpAQCAtMjM2LDEyICsyNDIsNiBAQCB2
b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaXNjYXJkQmluZGluZ3MoKQogICAgIG1faWRUb05vZGUu
Y2xlYXIoKTsKICAgICByZWxlYXNlRGFuZ2xpbmdOb2RlcygpOwogICAgIG1fY2hpbGRyZW5SZXF1
ZXN0ZWQuY2xlYXIoKTsKLSAgICBtX3N0eWxlVG9JZC5jbGVhcigpOwotICAgIG1faWRUb1N0eWxl
LmNsZWFyKCk7Ci0gICAgbV9ydWxlVG9JZC5jbGVhcigpOwotICAgIG1faWRUb1J1bGUuY2xlYXIo
KTsKLSAgICBtX2lkVG9EaXNhYmxlZFN0eWxlLmNsZWFyKCk7Ci0gICAgbV9pbnNwZWN0b3JTdHls
ZVNoZWV0ID0gMDsKIH0KIAogTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVGb3JJZChsb25n
IGlkKQpAQCAtOTA1LDggKzkwNSw4IEBAIFNjcmlwdEFycmF5IEluc3BlY3RvckRPTUFnZW50Ojpi
dWlsZEFycmF5Rm9yUHNldWRvRWxlbWVudHMoRWxlbWVudCogZWxlbWVudCwgYm9vCiAKIHZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OmFwcGx5U3R5bGVUZXh0KGxvbmcgY2FsbElkLCBsb25nIHN0eWxl
SWQsIGNvbnN0IFN0cmluZyYgc3R5bGVUZXh0LCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkK
IHsKLSAgICBJZFRvU3R5bGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvU3R5bGUuZmluZChzdHls
ZUlkKTsKLSAgICBpZiAoaXQgPT0gbV9pZFRvU3R5bGUuZW5kKCkpIHsKKyAgICBJZFRvU3R5bGVN
YXA6Oml0ZXJhdG9yIGl0ID0gY3NzU3RvcmUoKS0+aWRUb1N0eWxlLmZpbmQoc3R5bGVJZCk7Cisg
ICAgaWYgKGl0ID09IGNzc1N0b3JlKCktPmlkVG9TdHlsZS5lbmQoKSkgewogICAgICAgICBtX2Zy
b250ZW5kLT5kaWRBcHBseVN0eWxlVGV4dChjYWxsSWQsIGZhbHNlLCBTY3JpcHRWYWx1ZTo6dW5k
ZWZpbmVkKCksIG1fZnJvbnRlbmQtPm5ld1NjcmlwdEFycmF5KCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtOTgyLDggKzk4Miw4IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmFwcGx5
U3R5bGVUZXh0KGxvbmcgY2FsbElkLCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYKIAogdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0U3R5bGVUZXh0KGxvbmcgY2FsbElkLCBsb25nIHN0eWxl
SWQsIGNvbnN0IFN0cmluZyYgY3NzVGV4dCkKIHsKLSAgICBJZFRvU3R5bGVNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9pZFRvU3R5bGUuZmluZChzdHlsZUlkKTsKLSAgICBpZiAoaXQgPT0gbV9pZFRvU3R5
bGUuZW5kKCkpIHsKKyAgICBJZFRvU3R5bGVNYXA6Oml0ZXJhdG9yIGl0ID0gY3NzU3RvcmUoKS0+
aWRUb1N0eWxlLmZpbmQoc3R5bGVJZCk7CisgICAgaWYgKGl0ID09IGNzc1N0b3JlKCktPmlkVG9T
dHlsZS5lbmQoKSkgewogICAgICAgICBtX2Zyb250ZW5kLT5kaWRTZXRTdHlsZVRleHQoY2FsbElk
LCBmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC05OTUsOCArOTk1LDggQEAgdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0U3R5bGVUZXh0KGxvbmcgY2FsbElkLCBsb25nIHN0eWxl
SWQsIGNvbnN0IFN0cmluZyYgY3MKIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0U3R5bGVQ
cm9wZXJ0eShsb25nIGNhbGxJZCwgbG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgSWRUb1N0eWxlTWFwOjppdGVyYXRvciBpdCA9IG1f
aWRUb1N0eWxlLmZpbmQoc3R5bGVJZCk7Ci0gICAgaWYgKGl0ID09IG1faWRUb1N0eWxlLmVuZCgp
KSB7CisgICAgSWRUb1N0eWxlTWFwOjppdGVyYXRvciBpdCA9IGNzc1N0b3JlKCktPmlkVG9TdHls
ZS5maW5kKHN0eWxlSWQpOworICAgIGlmIChpdCA9PSBjc3NTdG9yZSgpLT5pZFRvU3R5bGUuZW5k
KCkpIHsKICAgICAgICAgbV9mcm9udGVuZC0+ZGlkU2V0U3R5bGVQcm9wZXJ0eShjYWxsSWQsIGZh
bHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwMDksMTYgKzEwMDksMTYgQEAgdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0U3R5bGVQcm9wZXJ0eShsb25nIGNhbGxJZCwgbG9uZyBz
dHlsZUlkLCBjb25zdCBTdHJpbmcKIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dG9nZ2xlU3R5
bGVFbmFibGVkKGxvbmcgY2FsbElkLCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgcHJvcGVy
dHlOYW1lLCBib29sIGRpc2FibGVkKQogewotICAgIElkVG9TdHlsZU1hcDo6aXRlcmF0b3IgaXQg
PSBtX2lkVG9TdHlsZS5maW5kKHN0eWxlSWQpOwotICAgIGlmIChpdCA9PSBtX2lkVG9TdHlsZS5l
bmQoKSkgeworICAgIElkVG9TdHlsZU1hcDo6aXRlcmF0b3IgaXQgPSBjc3NTdG9yZSgpLT5pZFRv
U3R5bGUuZmluZChzdHlsZUlkKTsKKyAgICBpZiAoaXQgPT0gY3NzU3RvcmUoKS0+aWRUb1N0eWxl
LmVuZCgpKSB7CiAgICAgICAgIG1fZnJvbnRlbmQtPmRpZFRvZ2dsZVN0eWxlRW5hYmxlZChjYWxs
SWQsIFNjcmlwdFZhbHVlOjp1bmRlZmluZWQoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBpdC0+c2Vjb25kLmdldCgpOwogCi0gICAg
SWRUb0Rpc2FibGVkU3R5bGVNYXA6Oml0ZXJhdG9yIGRpc2FibGVkSXQgPSBtX2lkVG9EaXNhYmxl
ZFN0eWxlLmZpbmQoc3R5bGVJZCk7Ci0gICAgaWYgKGRpc2FibGVkSXQgPT0gbV9pZFRvRGlzYWJs
ZWRTdHlsZS5lbmQoKSkKLSAgICAgICAgZGlzYWJsZWRJdCA9IG1faWRUb0Rpc2FibGVkU3R5bGUu
c2V0KHN0eWxlSWQsIERpc2FibGVkU3R5bGVEZWNsYXJhdGlvbigpKS5maXJzdDsKKyAgICBJZFRv
RGlzYWJsZWRTdHlsZU1hcDo6aXRlcmF0b3IgZGlzYWJsZWRJdCA9IGNzc1N0b3JlKCktPmlkVG9E
aXNhYmxlZFN0eWxlLmZpbmQoc3R5bGVJZCk7CisgICAgaWYgKGRpc2FibGVkSXQgPT0gY3NzU3Rv
cmUoKS0+aWRUb0Rpc2FibGVkU3R5bGUuZW5kKCkpCisgICAgICAgIGRpc2FibGVkSXQgPSBjc3NT
dG9yZSgpLT5pZFRvRGlzYWJsZWRTdHlsZS5zZXQoc3R5bGVJZCwgRGlzYWJsZWRTdHlsZURlY2xh
cmF0aW9uKCkpLmZpcnN0OwogCiAgICAgLy8gVE9ETzogbWFrZSBzdXJlIHRoaXMgd29ya3Mgd2l0
aCBzaG9ydGhhbmRzIHJpZ2h0LgogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtMTA0MSw4
ICsxMDQxLDggQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dG9nZ2xlU3R5bGVFbmFibGVkKGxv
bmcgY2FsbElkLCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmkKIAogdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6c2V0UnVsZVNlbGVjdG9yKGxvbmcgY2FsbElkLCBsb25nIHJ1bGVJZCwgY29uc3QgU3Ry
aW5nJiBzZWxlY3RvciwgbG9uZyBzZWxlY3RlZE5vZGVJZCkKIHsKLSAgICBJZFRvUnVsZU1hcDo6
aXRlcmF0b3IgaXQgPSBtX2lkVG9SdWxlLmZpbmQocnVsZUlkKTsKLSAgICBpZiAoaXQgPT0gbV9p
ZFRvUnVsZS5lbmQoKSkgeworICAgIElkVG9SdWxlTWFwOjppdGVyYXRvciBpdCA9IGNzc1N0b3Jl
KCktPmlkVG9SdWxlLmZpbmQocnVsZUlkKTsKKyAgICBpZiAoaXQgPT0gY3NzU3RvcmUoKS0+aWRU
b1J1bGUuZW5kKCkpIHsKICAgICAgICAgbV9mcm9udGVuZC0+ZGlkU2V0UnVsZVNlbGVjdG9yKGNh
bGxJZCwgU2NyaXB0VmFsdWU6OnVuZGVmaW5lZCgpLCBmYWxzZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0xMDgyLDcgKzEwODIsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjphZGRS
dWxlKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBsb25nIHNlbGVjdAogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFtX2luc3BlY3RvclN0eWxlU2hlZXQuZ2V0
KCkpIHsKKyAgICBpZiAoIWNzc1N0b3JlKCktPmluc3BlY3RvclN0eWxlU2hlZXQuZ2V0KCkpIHsK
ICAgICAgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQgPSBub2RlLT5vd25lckRvY3VtZW50KCk7
CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgICAgICBSZWZQdHI8RWxlbWVudD4g
c3R5bGVFbGVtZW50ID0gb3duZXJEb2N1bWVudC0+Y3JlYXRlRWxlbWVudCgic3R5bGUiLCBlYyk7
CkBAIC0xMTAwLDM4ICsxMTAwLDM4IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmFkZFJ1bGUo
bG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIGxvbmcgc2VsZWN0CiAgICAgICAg
ICAgICBtX2Zyb250ZW5kLT5kaWRBZGRSdWxlKGNhbGxJZCwgU2NyaXB0VmFsdWU6OnVuZGVmaW5l
ZCgpLCBmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgbV9p
bnNwZWN0b3JTdHlsZVNoZWV0ID0gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hl
ZXQpOworICAgICAgICBjc3NTdG9yZSgpLT5pbnNwZWN0b3JTdHlsZVNoZWV0ID0gc3RhdGljX2Nh
c3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIG1faW5zcGVjdG9yU3R5bGVTaGVldC0+YWRkUnVsZShzZWxlY3Rvciwg
IiIsIGVjKTsKKyAgICBjc3NTdG9yZSgpLT5pbnNwZWN0b3JTdHlsZVNoZWV0LT5hZGRSdWxlKHNl
bGVjdG9yLCAiIiwgZWMpOwogICAgIGlmIChlYykgewogICAgICAgICBtX2Zyb250ZW5kLT5kaWRB
ZGRSdWxlKGNhbGxJZCwgU2NyaXB0VmFsdWU6OnVuZGVmaW5lZCgpLCBmYWxzZSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBDU1NTdHlsZVJ1bGUqIG5ld1J1bGUgPSBzdGF0aWNfY2Fz
dDxDU1NTdHlsZVJ1bGUqPihtX2luc3BlY3RvclN0eWxlU2hlZXQtPml0ZW0obV9pbnNwZWN0b3JT
dHlsZVNoZWV0LT5sZW5ndGgoKSAtIDEpKTsKKyAgICBDU1NTdHlsZVJ1bGUqIG5ld1J1bGUgPSBz
dGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUqPihjc3NTdG9yZSgpLT5pbnNwZWN0b3JTdHlsZVNoZWV0
LT5pdGVtKGNzc1N0b3JlKCktPmluc3BlY3RvclN0eWxlU2hlZXQtPmxlbmd0aCgpIC0gMSkpOwog
ICAgIG1fZnJvbnRlbmQtPmRpZEFkZFJ1bGUoY2FsbElkLCBidWlsZE9iamVjdEZvclJ1bGUobmV3
UnVsZSksIHJ1bGVBZmZlY3RzTm9kZShuZXdSdWxlLCBub2RlKSk7CiB9CiAKIGxvbmcgSW5zcGVj
dG9yRE9NQWdlbnQ6OmJpbmRTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkKIHsKLSAg
ICBsb25nIGlkID0gbV9zdHlsZVRvSWQuZ2V0KHN0eWxlKTsKKyAgICBsb25nIGlkID0gY3NzU3Rv
cmUoKS0+c3R5bGVUb0lkLmdldChzdHlsZSk7CiAgICAgaWYgKCFpZCkgewogICAgICAgICBpZCA9
IG1fbGFzdFN0eWxlSWQrKzsKLSAgICAgICAgbV9pZFRvU3R5bGUuc2V0KGlkLCBzdHlsZSk7Ci0g
ICAgICAgIG1fc3R5bGVUb0lkLnNldChzdHlsZSwgaWQpOworICAgICAgICBjc3NTdG9yZSgpLT5p
ZFRvU3R5bGUuc2V0KGlkLCBzdHlsZSk7CisgICAgICAgIGNzc1N0b3JlKCktPnN0eWxlVG9JZC5z
ZXQoc3R5bGUsIGlkKTsKICAgICB9CiAgICAgcmV0dXJuIGlkOwogfQogCiBsb25nIEluc3BlY3Rv
ckRPTUFnZW50OjpiaW5kUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUpCiB7Ci0gICAgbG9uZyBpZCA9
IG1fcnVsZVRvSWQuZ2V0KHJ1bGUpOworICAgIGxvbmcgaWQgPSBjc3NTdG9yZSgpLT5ydWxlVG9J
ZC5nZXQocnVsZSk7CiAgICAgaWYgKCFpZCkgewogICAgICAgICBpZCA9IG1fbGFzdFJ1bGVJZCsr
OwotICAgICAgICBtX2lkVG9SdWxlLnNldChpZCwgcnVsZSk7Ci0gICAgICAgIG1fcnVsZVRvSWQu
c2V0KHJ1bGUsIGlkKTsKKyAgICAgICAgY3NzU3RvcmUoKS0+aWRUb1J1bGUuc2V0KGlkLCBydWxl
KTsKKyAgICAgICAgY3NzU3RvcmUoKS0+cnVsZVRvSWQuc2V0KHJ1bGUsIGlkKTsKICAgICB9CiAg
ICAgcmV0dXJuIGlkOwogfQpAQCAtMTE0Myw4ICsxMTQzLDggQEAgU2NyaXB0T2JqZWN0IEluc3Bl
Y3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvclN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0
eWxlLAogICAgICAgICBsb25nIHN0eWxlSWQgPSBiaW5kU3R5bGUoc3R5bGUpOwogICAgICAgICBy
ZXN1bHQuc2V0KCJpZCIsIHN0eWxlSWQpOwogCi0gICAgICAgIElkVG9EaXNhYmxlZFN0eWxlTWFw
OjppdGVyYXRvciBkaXNhYmxlZEl0ID0gbV9pZFRvRGlzYWJsZWRTdHlsZS5maW5kKHN0eWxlSWQp
OwotICAgICAgICBpZiAoZGlzYWJsZWRJdCAhPSBtX2lkVG9EaXNhYmxlZFN0eWxlLmVuZCgpKQor
ICAgICAgICBJZFRvRGlzYWJsZWRTdHlsZU1hcDo6aXRlcmF0b3IgZGlzYWJsZWRJdCA9IGNzc1N0
b3JlKCktPmlkVG9EaXNhYmxlZFN0eWxlLmZpbmQoc3R5bGVJZCk7CisgICAgICAgIGlmIChkaXNh
YmxlZEl0ICE9IGNzc1N0b3JlKCktPmlkVG9EaXNhYmxlZFN0eWxlLmVuZCgpKQogICAgICAgICAg
ICAgcmVzdWx0LnNldCgiZGlzYWJsZWQiLCBidWlsZEFycmF5Rm9yRGlzYWJsZWRTdHlsZVByb3Bl
cnRpZXMoZGlzYWJsZWRJdC0+c2Vjb25kKSk7CiAgICAgfQogICAgIHJlc3VsdC5zZXQoIndpZHRo
Iiwgc3R5bGUtPmdldFByb3BlcnR5VmFsdWUoIndpZHRoIikpOwpAQCAtMTIzMCw3ICsxMjMwLDcg
QEAgU2NyaXB0T2JqZWN0IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvclJ1bGUoQ1NT
U3R5bGVSdWxlKiBydWxlKQogICAgIGJvb2wgaXNVc2VyID0gcGFyZW50U3R5bGVTaGVldCAmJiBw
YXJlbnRTdHlsZVNoZWV0LT5vd25lck5vZGUoKSAmJiBwYXJlbnRTdHlsZVNoZWV0LT5vd25lck5v
ZGUoKS0+bm9kZU5hbWUoKSA9PSAiI2RvY3VtZW50IjsKICAgICByZXN1bHQuc2V0KCJpc1VzZXJB
Z2VudCIsIGlzVXNlckFnZW50KTsKICAgICByZXN1bHQuc2V0KCJpc1VzZXIiLCBpc1VzZXIpOwot
ICAgIHJlc3VsdC5zZXQoImlzVmlhSW5zcGVjdG9yIiwgcnVsZS0+cGFyZW50U3R5bGVTaGVldCgp
ID09IG1faW5zcGVjdG9yU3R5bGVTaGVldC5nZXQoKSk7CisgICAgcmVzdWx0LnNldCgiaXNWaWFJ
bnNwZWN0b3IiLCBydWxlLT5wYXJlbnRTdHlsZVNoZWV0KCkgPT0gY3NzU3RvcmUoKS0+aW5zcGVj
dG9yU3R5bGVTaGVldC5nZXQoKSk7CiAKICAgICAvLyBCaW5kIGVkaXRhYmxlIHNjcmlwdHMgb25s
eS4KICAgICBib29sIGJpbmQgPSAhaXNVc2VyQWdlbnQgJiYgIWlzVXNlcjsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IDcyMTFlZDIuLjMyYWJhY2UgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkF0
b21pY1N0cmluZy5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNTU1N0b3JlLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0QXJyYXkuaCIKICNpbmNsdWRlICJTY3JpcHRPYmplY3QuaCIKICNpbmNsdWRlICJTY3JpcHRT
dGF0ZS5oIgpAQCAtNzMsOSArNzQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFz
cyBJbnNwZWN0b3JET01BZ2VudCA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3RvckRPTUFnZW50PiBjcmVhdGUoSW5z
cGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JET01BZ2VudD4gY3JlYXRlKEluc3BlY3RvckNTU1N0b3JlKiBjc3NTdG9yZSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JET01BZ2VudChm
cm9udGVuZCkpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JET01B
Z2VudChjc3NTdG9yZSkpOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEluc3Bl
Y3RvckRPTUFnZW50KiBjYXN0KGNvbnN0IEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKQpAQCAtODUs
NyArODYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgOiAwOwogICAg
ICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZy
b250ZW5kKTsKKyAgICAgICAgSW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9yQ1NTU3RvcmUqIGNz
c1N0b3JlKTsKICAgICAgICAgfkluc3BlY3RvckRPTUFnZW50KCk7CiAKICAgICAgICAgdm9pZCBy
ZXNldCgpOwpAQCAtMTE2LDYgKzExNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
Ly8gTWV0aG9kcyBjYWxsZWQgZnJvbSB0aGUgSW5zcGVjdG9yQ29udHJvbGxlci4KICAgICAgICAg
dm9pZCBzZXREb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpOwogICAgICAgICB2b2lkIHJlbGVh
c2VEYW5nbGluZ05vZGVzKCk7CisgICAgICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJv
bnRlbmQqIGZyb250ZW5kKTsKIAogICAgICAgICB2b2lkIGRpZEluc2VydERPTU5vZGUoTm9kZSop
OwogICAgICAgICB2b2lkIGRpZFJlbW92ZURPTU5vZGUoTm9kZSopOwpAQCAtMTI3LDkgKzEyOSw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBwdXNoQ2hpbGROb2Rlc1RvRnJv
bnRlbmQobG9uZyBub2RlSWQpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdHlwZWRlZiBzdGQ6
OnBhaXI8U3RyaW5nLCBTdHJpbmc+IFByb3BlcnR5VmFsdWVBbmRQcmlvcml0eTsKLSAgICAgICAg
dHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvcGVydHlWYWx1ZUFuZFByaW9yaXR5PiBEaXNhYmxl
ZFN0eWxlRGVjbGFyYXRpb247Ci0KICAgICAgICAgdm9pZCBzdGFydExpc3RlbmluZyhEb2N1bWVu
dCogZG9jdW1lbnQpOwogICAgICAgICB2b2lkIHN0b3BMaXN0ZW5pbmcoRG9jdW1lbnQqIGRvY3Vt
ZW50KTsKIApAQCAtMTYyLDYgKzE2MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICBEb2N1bWVudCogbWFpbkZyYW1lRG9jdW1lbnQoKSBjb25zdDsKICAgICAgICAgU3RyaW5nIGRv
Y3VtZW50VVJMU3RyaW5nKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3Q7CisgICAgICAgIEluc3Bl
Y3RvckNTU1N0b3JlKiBjc3NTdG9yZSgpIHsgcmV0dXJuIG1fY3NzU3RvcmU7IH0KIAogICAgICAg
ICBsb25nIGJpbmRTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKik7CiAgICAgICAgIGxvbmcgYmlu
ZFJ1bGUoQ1NTU3R5bGVSdWxlKik7CkBAIC0xNzgsNiArMTc4LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZvaWQgZGlzY2FyZEJpbmRpbmdzKCk7CiAKKyAgICAgICAgSW5zcGVj
dG9yQ1NTU3RvcmUqIG1fY3NzU3RvcmU7CiAgICAgICAgIEluc3BlY3RvckZyb250ZW5kKiBtX2Zy
b250ZW5kOwogICAgICAgICBOb2RlVG9JZE1hcCBtX2RvY3VtZW50Tm9kZVRvSWRNYXA7CiAgICAg
ICAgIC8vIE93bnMgbm9kZSBtYXBwaW5ncyBmb3IgZGFuZ2xpbmcgbm9kZXMuCkBAIC0xODYsMTkg
KzE4Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSGFzaE1hcDxsb25nLCBOb2Rl
VG9JZE1hcCo+IG1faWRUb05vZGVzTWFwOwogICAgICAgICBIYXNoU2V0PGxvbmc+IG1fY2hpbGRy
ZW5SZXF1ZXN0ZWQ7CiAgICAgICAgIGxvbmcgbV9sYXN0Tm9kZUlkOwotCi0gICAgICAgIHR5cGVk
ZWYgSGFzaE1hcDxDU1NTdHlsZURlY2xhcmF0aW9uKiwgbG9uZz4gU3R5bGVUb0lkTWFwOwotICAg
ICAgICB0eXBlZGVmIEhhc2hNYXA8bG9uZywgUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRpb24+ID4g
SWRUb1N0eWxlTWFwOwotICAgICAgICBTdHlsZVRvSWRNYXAgbV9zdHlsZVRvSWQ7Ci0gICAgICAg
IElkVG9TdHlsZU1hcCBtX2lkVG9TdHlsZTsKLSAgICAgICAgdHlwZWRlZiBIYXNoTWFwPENTU1N0
eWxlUnVsZSosIGxvbmc+IFJ1bGVUb0lkTWFwOwotICAgICAgICB0eXBlZGVmIEhhc2hNYXA8bG9u
ZywgUmVmUHRyPENTU1N0eWxlUnVsZT4gPiBJZFRvUnVsZU1hcDsKLSAgICAgICAgUnVsZVRvSWRN
YXAgbV9ydWxlVG9JZDsKLSAgICAgICAgSWRUb1J1bGVNYXAgbV9pZFRvUnVsZTsKLSAgICAgICAg
dHlwZWRlZiBIYXNoTWFwPGxvbmcsIERpc2FibGVkU3R5bGVEZWNsYXJhdGlvbj4gIElkVG9EaXNh
YmxlZFN0eWxlTWFwOwotICAgICAgICBJZFRvRGlzYWJsZWRTdHlsZU1hcCBtX2lkVG9EaXNhYmxl
ZFN0eWxlOwotICAgICAgICBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gbV9pbnNwZWN0b3JTdHlsZVNo
ZWV0OwotCiAgICAgICAgIGxvbmcgbV9sYXN0U3R5bGVJZDsKICAgICAgICAgbG9uZyBtX2xhc3RS
dWxlSWQ7CiAgICAgICAgIExpc3RIYXNoU2V0PFJlZlB0cjxEb2N1bWVudD4gPiBtX2RvY3VtZW50
czsK
</data>
<flag name="review"
          id="38846"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="38847"
          type_id="3"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54806</attachid>
            <date>2010-04-30 08:34:35 -0700</date>
            <delta_ts>2010-05-04 02:24:21 -0700</delta_ts>
            <desc>[PATCH] Reverted the lifespan of InspectorDOMAgent</desc>
            <filename>domagentstyles1.patch</filename>
            <type>text/plain</type>
            <size>26902</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzgwMmU3ZC4uM2FjZWViZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxMC0wNC0zMCAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT046IERpc2FibGVk
IHN0eWxlIHByb3BlcnRpZXMgYXJlIGFic2VudCBpbiBTdHlsZXMgc2lkZWJhciBhZnRlciBXZWJJ
bnNwZWN0b3IgaXMgcmUtb3BlbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zODI1NQorCisgICAgICAgIE1vdmVkIHN0eWxlc2hlZXQtcmVsYXRlZCBt
YXBwaW5ncyBpbnRvIGEgc2VwYXJhdGUgb2JqZWN0IHN0b3JlZAorICAgICAgICBpbiBJbnNwZWN0
b3JDb250cm9sbGVyIHJhdGhlciB0aGFuIEluc3BlY3RvckRPTUFnZW50ICh3aGljaCBnZXRzIHJl
c2V0CisgICAgICAgIG9uIGV2ZXJ5IGZyb250ZW5kIFtkaXNdY29ubmVjdCkuCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ1NTU3RvcmU6Okluc3BlY3RvckNTU1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNTU1N0b3JlOjp+SW5zcGVjdG9yQ1NTU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ1NTU3RvcmU6OnJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTU3RvcmUuaDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9y
Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRG
cm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRDb21t
aXRMb2FkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01BZ2VudDo6SW5zcGVjdG9yRE9NQWdlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01BZ2VudDo6YXBwbHlTdHlsZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OnNldFN0eWxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6c2V0U3R5bGVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6dG9nZ2xlU3R5bGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTUFnZW50OjpzZXRSdWxlU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRE9NQWdlbnQ6OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9N
QWdlbnQ6OmJpbmRTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
YmluZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2Jq
ZWN0Rm9yU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yUnVsZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpjc3NTdG9yZSk6CisKIDIwMTAtMDQtMzAgIExh
c3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGE5NzUyMzMuLmZkOWUyMzYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
MTI3NCw2ICsxMjc0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdEhvc3QuaCBcCiAJV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFj
a2VuZC5jcHAgXAogCVdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaCBcCisJV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIFwKKwlXZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NTdG9yZS5oIFwKIAlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRh
YmFzZVJlc291cmNlLmNwcCBcCiAJV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VS
ZXNvdXJjZS5oIFwKIAlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCBmNGQzZTEzLi5hNDhmOTlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTY0OSw2ICsxNjQ5LDggQEAKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oJywKICAgICAgICAgICAgICdpbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JDU1NT
dG9yZS5jcHAnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oJywK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmgnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAnLApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZWY2MDIxZC4u
NzZmZDk5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dl
YkNvcmUucHJvCkBAIC02OTYsNiArNjk2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5j
cHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcCBcCisgICAgaW5zcGVjdG9y
L0luc3BlY3RvckNTU1N0b3JlLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAgXAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggNTMyMmQ4YS4uOTA4NzM1NSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC00MzA3OSw2ICs0MzA3OSwxNCBAQAogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVj
dG9yQ1NTU3RvcmUuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckNTU1N0b3JlLmgiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5z
cGVjdG9yQ2xpZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjNWU4NjljLi5kYmYyNDhkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM0OSw2ICsxMzQ5LDggQEAK
IAkJN0FFRDNFMDYwRkJCMUVBQTAwRDJCMDNDIC8qIEluc3BlY3RvckZyb250ZW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUVEM0UwNDBGQkIxRUFB
MDBEMkIwM0MgLyogSW5zcGVjdG9yRnJvbnRlbmQuaCAqLzsgfTsKIAkJN0FGRDRBOEIxMTMxQzI3
NjAwMzVCODgzIC8qIFNjcmlwdEJyZWFrcG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRkQ0QThBMTEzMUMyNzYwMDM1Qjg4MyAvKiBTY3JpcHRC
cmVha3BvaW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJN0FGRDRGRjQxMTMyNzdCNjAwMzVCODgzIC8qIFNjcmlwdERlYnVnTGlzdGVuZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRkQ0RkYzMTEz
Mjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJODJCNjU4OTgxMTg5RTM5MjAwRTA1MkEx
IC8qIEluc3BlY3RvckNTU1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MkI2NTg5NzExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3Rv
cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4
MkI2NTg5QTExODlFNDc2MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJCNjU4OTkxMTg5RTQ3NjAw
RTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmNwcCAqLzsgfTsKIAkJODQxRkRDMjYxMTc4QzlC
RTAwRjhBQzlCIC8qIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MUZEQzI0MTE3OEM5QkUwMEY4QUM5QiAv
KiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgKi87IH07CiAJCTg0MUZEQzI3MTE3OEM5QkUw
MEY4QUM5QiAvKiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxRkRDMjUxMTc4QzlCRTAwRjhBQzlCIC8qIFJl
bmRlclNWR1Jlc291cmNlRmlsdGVyLmggKi87IH07CiAJCTg0MjI0MTgzMTA3RTc3RjQwMDc2NkE4
NyAvKiBKU1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQyMjQxODExMDdFNzdGNDAwNzY2QTg3IC8qIEpTU1ZH
RkVNb3JwaG9sb2d5RWxlbWVudC5jcHAgKi87IH07CkBAIC02ODc3LDYgKzY4NzksOCBAQAogCQk3
QUVEM0UwNDBGQkIxRUFBMDBEMkIwM0MgLyogSW5zcGVjdG9yRnJvbnRlbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0FGRDRBOEExMTMxQzI3NjAwMzVCODgzIC8qIFNjcmlwdEJyZWFr
cG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0QnJlYWtwb2lu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUZENEZGMzExMzI3N0I2MDAzNUI4
ODMgLyogU2NyaXB0RGVidWdMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JpcHREZWJ1Z0xpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTgyQjY1ODk3MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JDU1NTdG9yZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4MkI2NTg5OTExODlFNDc2MDBFMDUyQTEgLyogSW5zcGVjdG9y
Q1NTU3RvcmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVj
dG9yQ1NTU3RvcmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDFGREMyNDEx
NzhDOUJFMDBGOEFDOUIgLyogUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDFGREMyNTExNzhDOUJFMDBGOEFDOUIgLyog
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODQyMjQxODExMDdFNzdGNDAwNzY2QTg3IC8qIEpTU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4ODIsNiArMTA4
ODYsOCBAQAogCQkJCTlGQTM3RUYwMTE3MkZENDEwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9k
ZS5pZGwgKi8sCiAJCQkJNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5jcHAgKi8sCiAJCQkJNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oICovLAorCQkJCTgyQjY1ODk3MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNw
ZWN0b3JDU1NTdG9yZS5oICovLAorCQkJCTgyQjY1ODk5MTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNw
ZWN0b3JDU1NTdG9yZS5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IGluc3BlY3RvcjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xODkxMSw2ICsxODkxNyw3IEBACiAJCQkJQjUyM0NG
MDYxMTgyNjc1NDAwRUJCMjlDIC8qIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCNTIzQ0YwODExODI2NzU0MDBFQkIyOUMgLyogU1FMVHJhbnNhY3Rpb25T
eW5jLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTIzQ0YwQjExODI2NzU0MDBFQkIyOUMgLyogRGF0
YWJhc2VTeW5jLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MkI2NTg5ODExODlFMzkyMDBFMDUyQTEg
LyogSW5zcGVjdG9yQ1NTU3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjdDRjk3MTE4QTM1
NEMwMDQxRDYzMiAvKiBucHR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTIxMTQ5LDYgKzIxMTU2LDcgQEAK
IAkJCQkwRkYyODU5MjExODY0MDU0MDA3QjdDRDYgLyogUmVuZGVyTWF0aE1MU3F1YXJlUm9vdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCNTIzQ0YwOTExODI2NzU0MDBFQkIyOUMgLyogU1FMVHJh
bnNhY3Rpb25TeW5jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1MjNDRjBBMTE4MjY3NTQwMEVC
QjI5QyAvKiBEYXRhYmFzZVN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODJCNjU4OUExMTg5
RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmU1MzY4OGIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDU1NTdG9yZS5oIgorCisjaW5jbHVkZSAiQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgIkNT
U1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0luc3BlY3RvckNTU1N0b3JlOjpJbnNwZWN0b3JDU1NTdG9yZSgpCit7Cit9
CisKK0luc3BlY3RvckNTU1N0b3JlOjp+SW5zcGVjdG9yQ1NTU3RvcmUoKQoreworfQorCit2b2lk
IEluc3BlY3RvckNTU1N0b3JlOjpyZXNldCgpCit7CisgICAgc3R5bGVUb0lkLmNsZWFyKCk7Cisg
ICAgaWRUb1N0eWxlLmNsZWFyKCk7CisgICAgcnVsZVRvSWQuY2xlYXIoKTsKKyAgICBpZFRvUnVs
ZS5jbGVhcigpOworICAgIGlkVG9EaXNhYmxlZFN0eWxlLmNsZWFyKCk7CisgICAgaW5zcGVjdG9y
U3R5bGVTaGVldCA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmggYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NTdG9yZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmQyOTBmYWQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NTdG9yZS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEluc3BlY3RvckNTU1N0b3JlX2gK
KyNkZWZpbmUgSW5zcGVjdG9yQ1NTU3RvcmVfaAorCisjaW5jbHVkZSAiU3RyaW5nSGFzaC5oIgor
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK2NsYXNzIENT
U1N0eWxlUnVsZTsKK2NsYXNzIENTU1N0eWxlU2hlZXQ7CitjbGFzcyBTdHJpbmc7CisKK3R5cGVk
ZWYgc3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiBQcm9wZXJ0eVZhbHVlQW5kUHJpb3JpdHk7Cit0
eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBQcm9wZXJ0eVZhbHVlQW5kUHJpb3JpdHk+IERpc2FibGVk
U3R5bGVEZWNsYXJhdGlvbjsKK3R5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZURlY2xhcmF0aW9uKiwg
bG9uZz4gU3R5bGVUb0lkTWFwOwordHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJlZlB0cjxDU1NTdHls
ZURlY2xhcmF0aW9uPiA+IElkVG9TdHlsZU1hcDsKK3R5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVJ1
bGUqLCBsb25nPiBSdWxlVG9JZE1hcDsKK3R5cGVkZWYgSGFzaE1hcDxsb25nLCBSZWZQdHI8Q1NT
U3R5bGVSdWxlPiA+IElkVG9SdWxlTWFwOwordHlwZWRlZiBIYXNoTWFwPGxvbmcsIERpc2FibGVk
U3R5bGVEZWNsYXJhdGlvbj4gSWRUb0Rpc2FibGVkU3R5bGVNYXA7CisKK3N0cnVjdCBJbnNwZWN0
b3JDU1NTdG9yZSB7CisgICAgSW5zcGVjdG9yQ1NTU3RvcmUoKTsKKyAgICB+SW5zcGVjdG9yQ1NT
U3RvcmUoKTsKKyAgICB2b2lkIHJlc2V0KCk7CisKKyAgICBTdHlsZVRvSWRNYXAgc3R5bGVUb0lk
OworICAgIElkVG9TdHlsZU1hcCBpZFRvU3R5bGU7CisgICAgUnVsZVRvSWRNYXAgcnVsZVRvSWQ7
CisgICAgSWRUb1J1bGVNYXAgaWRUb1J1bGU7CisgICAgSWRUb0Rpc2FibGVkU3R5bGVNYXAgaWRU
b0Rpc2FibGVkU3R5bGU7CisgICAgUmVmUHRyPENTU1N0eWxlU2hlZXQ+IGluc3BlY3RvclN0eWxl
U2hlZXQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhZGVmaW5l
ZChJbnNwZWN0b3JDU1NTdG9yZV9oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAppbmRleCAzZmY0ZGE1Li5jNjMyYTJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIkluamVjdGVk
U2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRIb3N0LmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yQmFja2VuZC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNTU1N0b3JlLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCIKQEAgLTE0NCw2ICsx
NDUsNyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBh
Z2UsIEluc3BlY3RvckNsaWVudCogY2xpZW50KQogICAgIDogbV9pbnNwZWN0ZWRQYWdlKHBhZ2Up
CiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX29wZW5pbmdGcm9udGVuZChmYWxzZSkK
KyAgICAsIG1fY3NzU3RvcmUobmV3IEluc3BlY3RvckNTU1N0b3JlKCkpCiAgICAgLCBtX2V4cGly
ZWRDb25zb2xlTWVzc2FnZUNvdW50KDApCiAgICAgLCBtX3Nob3dBZnRlclZpc2libGUoQ3VycmVu
dFBhbmVsKQogICAgICwgbV9ncm91cExldmVsKDApCkBAIC00MjcsNyArNDI5LDcgQEAgdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpzZXRGcm9udGVuZChQYXNzT3duUHRyPEluc3BlY3RvckZyb250
ZW5kPiBmcm9udGVuZCkKICAgICBtX29wZW5pbmdGcm9udGVuZCA9IGZhbHNlOwogICAgIG1fZnJv
bnRlbmQgPSBmcm9udGVuZDsKICAgICByZWxlYXNlRE9NQWdlbnQoKTsKLSAgICBtX2RvbUFnZW50
ID0gSW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZShtX2Zyb250ZW5kLmdldCgpKTsKKyAgICBtX2Rv
bUFnZW50ID0gSW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZShtX2Nzc1N0b3JlLmdldCgpLCBtX2Zy
b250ZW5kLmdldCgpKTsKICAgICBpZiAobV90aW1lbGluZUFnZW50KQogICAgICAgICBtX3RpbWVs
aW5lQWdlbnQtPnJlc2V0RnJvbnRlbmRQcm94eU9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKICNp
ZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgVVNFKEpTQykKQEAgLTY2Nyw2ICs2Njks
NyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlcikKICAgICAgICAgLy8gcmVzb3VyY2VzIGFyZSBjbGVhcmVkIHNvIHRoYXQgaXQg
aGFzIGEgY2hhbmNlIHRvIHVuYmluZCB0aGVtLgogICAgICAgICB1bmJpbmRBbGxSZXNvdXJjZXMo
KTsKICAgICAgICAgCisgICAgICAgIG1fY3NzU3RvcmUtPnJlc2V0KCk7CiAgICAgICAgIGlmICht
X2Zyb250ZW5kKSB7CiAgICAgICAgICAgICBtX2Zyb250ZW5kLT5yZXNldCgpOwogICAgICAgICAg
ICAgbV9kb21BZ2VudC0+cmVzZXQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuaAppbmRleCAzYzY3OTc1Li5hOTBiMjk5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5oCkBAIC02NSw2ICs2NSw3IEBAIGNsYXNzIEluamVjdGVkU2NyaXB0OwogY2xh
c3MgSW5qZWN0ZWRTY3JpcHRIb3N0OwogY2xhc3MgSW5zcGVjdG9yQmFja2VuZDsKIGNsYXNzIElu
c3BlY3RvckNsaWVudDsKK3N0cnVjdCBJbnNwZWN0b3JDU1NTdG9yZTsKIGNsYXNzIEluc3BlY3Rv
ckZyb250ZW5kOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7CiBjbGFzcyBJbnNwZWN0
b3JUaW1lbGluZUFnZW50OwpAQCAtMzE4LDYgKzMxOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X29wZW5pbmdGcm9udGVuZDsKICAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmQ+IG1fZnJvbnRl
bmQ7CiAgICAgUmVmUHRyPEluc3BlY3RvckRPTUFnZW50PiBtX2RvbUFnZW50OworICAgIE93blB0
cjxJbnNwZWN0b3JDU1NTdG9yZT4gbV9jc3NTdG9yZTsKICAgICBPd25QdHI8SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudD4gbV90aW1lbGluZUFnZW50OwogICAgIFJlZlB0cjxOb2RlPiBtX25vZGVUb0Zv
Y3VzOwogICAgIFJlZlB0cjxJbnNwZWN0b3JSZXNvdXJjZT4gbV9tYWluUmVzb3VyY2U7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggNmQ0MTY5Mi4uZDEyYTZkNyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtNzMsOCArNzMsOSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JE
T01BZ2VudChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCitJbnNwZWN0b3JET01BZ2VudDo6
SW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3JlLCBJbnNwZWN0b3JG
cm9udGVuZCogZnJvbnRlbmQpCiAgICAgOiBFdmVudExpc3RlbmVyKEluc3BlY3RvckRPTUFnZW50
VHlwZSkKKyAgICAsIG1fY3NzU3RvcmUoY3NzU3RvcmUpCiAgICAgLCBtX2Zyb250ZW5kKGZyb250
ZW5kKQogICAgICwgbV9sYXN0Tm9kZUlkKDEpCiAgICAgLCBtX2xhc3RTdHlsZUlkKDEpCkBAIC0y
MzYsMTIgKzIzNyw2IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncygp
CiAgICAgbV9pZFRvTm9kZS5jbGVhcigpOwogICAgIHJlbGVhc2VEYW5nbGluZ05vZGVzKCk7CiAg
ICAgbV9jaGlsZHJlblJlcXVlc3RlZC5jbGVhcigpOwotICAgIG1fc3R5bGVUb0lkLmNsZWFyKCk7
Ci0gICAgbV9pZFRvU3R5bGUuY2xlYXIoKTsKLSAgICBtX3J1bGVUb0lkLmNsZWFyKCk7Ci0gICAg
bV9pZFRvUnVsZS5jbGVhcigpOwotICAgIG1faWRUb0Rpc2FibGVkU3R5bGUuY2xlYXIoKTsKLSAg
ICBtX2luc3BlY3RvclN0eWxlU2hlZXQgPSAwOwogfQogCiBOb2RlKiBJbnNwZWN0b3JET01BZ2Vu
dDo6bm9kZUZvcklkKGxvbmcgaWQpCkBAIC05MDUsOCArOTAwLDggQEAgU2NyaXB0QXJyYXkgSW5z
cGVjdG9yRE9NQWdlbnQ6OmJ1aWxkQXJyYXlGb3JQc2V1ZG9FbGVtZW50cyhFbGVtZW50KiBlbGVt
ZW50LCBib28KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6YXBwbHlTdHlsZVRleHQobG9uZyBj
YWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBzdHlsZVRleHQsIGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlOYW1lKQogewotICAgIElkVG9TdHlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2lk
VG9TdHlsZS5maW5kKHN0eWxlSWQpOwotICAgIGlmIChpdCA9PSBtX2lkVG9TdHlsZS5lbmQoKSkg
eworICAgIElkVG9TdHlsZU1hcDo6aXRlcmF0b3IgaXQgPSBjc3NTdG9yZSgpLT5pZFRvU3R5bGUu
ZmluZChzdHlsZUlkKTsKKyAgICBpZiAoaXQgPT0gY3NzU3RvcmUoKS0+aWRUb1N0eWxlLmVuZCgp
KSB7CiAgICAgICAgIG1fZnJvbnRlbmQtPmRpZEFwcGx5U3R5bGVUZXh0KGNhbGxJZCwgZmFsc2Us
IFNjcmlwdFZhbHVlOjp1bmRlZmluZWQoKSwgbV9mcm9udGVuZC0+bmV3U2NyaXB0QXJyYXkoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC05ODIsOCArOTc3LDggQEAgdm9pZCBJbnNwZWN0
b3JET01BZ2VudDo6YXBwbHlTdHlsZVRleHQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29u
c3QgU3RyaW5nJgogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRTdHlsZVRleHQobG9uZyBj
YWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBjc3NUZXh0KQogewotICAgIElkVG9T
dHlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX2lkVG9TdHlsZS5maW5kKHN0eWxlSWQpOwotICAgIGlm
IChpdCA9PSBtX2lkVG9TdHlsZS5lbmQoKSkgeworICAgIElkVG9TdHlsZU1hcDo6aXRlcmF0b3Ig
aXQgPSBjc3NTdG9yZSgpLT5pZFRvU3R5bGUuZmluZChzdHlsZUlkKTsKKyAgICBpZiAoaXQgPT0g
Y3NzU3RvcmUoKS0+aWRUb1N0eWxlLmVuZCgpKSB7CiAgICAgICAgIG1fZnJvbnRlbmQtPmRpZFNl
dFN0eWxlVGV4dChjYWxsSWQsIGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTk5
NSw4ICs5OTAsOCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRTdHlsZVRleHQobG9uZyBj
YWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBjcwogCiB2b2lkIEluc3BlY3RvckRP
TUFnZW50OjpzZXRTdHlsZVByb3BlcnR5KGxvbmcgY2FsbElkLCBsb25nIHN0eWxlSWQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBJZFRvU3R5bGVNYXA6
Oml0ZXJhdG9yIGl0ID0gbV9pZFRvU3R5bGUuZmluZChzdHlsZUlkKTsKLSAgICBpZiAoaXQgPT0g
bV9pZFRvU3R5bGUuZW5kKCkpIHsKKyAgICBJZFRvU3R5bGVNYXA6Oml0ZXJhdG9yIGl0ID0gY3Nz
U3RvcmUoKS0+aWRUb1N0eWxlLmZpbmQoc3R5bGVJZCk7CisgICAgaWYgKGl0ID09IGNzc1N0b3Jl
KCktPmlkVG9TdHlsZS5lbmQoKSkgewogICAgICAgICBtX2Zyb250ZW5kLT5kaWRTZXRTdHlsZVBy
b3BlcnR5KGNhbGxJZCwgZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAwOSwx
NiArMTAwNCwxNiBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRTdHlsZVByb3BlcnR5KGxv
bmcgY2FsbElkLCBsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZwogCiB2b2lkIEluc3BlY3RvckRP
TUFnZW50Ojp0b2dnbGVTdHlsZUVuYWJsZWQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29u
c3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGJvb2wgZGlzYWJsZWQpCiB7Ci0gICAgSWRUb1N0eWxl
TWFwOjppdGVyYXRvciBpdCA9IG1faWRUb1N0eWxlLmZpbmQoc3R5bGVJZCk7Ci0gICAgaWYgKGl0
ID09IG1faWRUb1N0eWxlLmVuZCgpKSB7CisgICAgSWRUb1N0eWxlTWFwOjppdGVyYXRvciBpdCA9
IGNzc1N0b3JlKCktPmlkVG9TdHlsZS5maW5kKHN0eWxlSWQpOworICAgIGlmIChpdCA9PSBjc3NT
dG9yZSgpLT5pZFRvU3R5bGUuZW5kKCkpIHsKICAgICAgICAgbV9mcm9udGVuZC0+ZGlkVG9nZ2xl
U3R5bGVFbmFibGVkKGNhbGxJZCwgU2NyaXB0VmFsdWU6OnVuZGVmaW5lZCgpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IGl0LT5zZWNv
bmQuZ2V0KCk7CiAKLSAgICBJZFRvRGlzYWJsZWRTdHlsZU1hcDo6aXRlcmF0b3IgZGlzYWJsZWRJ
dCA9IG1faWRUb0Rpc2FibGVkU3R5bGUuZmluZChzdHlsZUlkKTsKLSAgICBpZiAoZGlzYWJsZWRJ
dCA9PSBtX2lkVG9EaXNhYmxlZFN0eWxlLmVuZCgpKQotICAgICAgICBkaXNhYmxlZEl0ID0gbV9p
ZFRvRGlzYWJsZWRTdHlsZS5zZXQoc3R5bGVJZCwgRGlzYWJsZWRTdHlsZURlY2xhcmF0aW9uKCkp
LmZpcnN0OworICAgIElkVG9EaXNhYmxlZFN0eWxlTWFwOjppdGVyYXRvciBkaXNhYmxlZEl0ID0g
Y3NzU3RvcmUoKS0+aWRUb0Rpc2FibGVkU3R5bGUuZmluZChzdHlsZUlkKTsKKyAgICBpZiAoZGlz
YWJsZWRJdCA9PSBjc3NTdG9yZSgpLT5pZFRvRGlzYWJsZWRTdHlsZS5lbmQoKSkKKyAgICAgICAg
ZGlzYWJsZWRJdCA9IGNzc1N0b3JlKCktPmlkVG9EaXNhYmxlZFN0eWxlLnNldChzdHlsZUlkLCBE
aXNhYmxlZFN0eWxlRGVjbGFyYXRpb24oKSkuZmlyc3Q7CiAKICAgICAvLyBUT0RPOiBtYWtlIHN1
cmUgdGhpcyB3b3JrcyB3aXRoIHNob3J0aGFuZHMgcmlnaHQuCiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CkBAIC0xMDQxLDggKzEwMzYsOCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp0b2dn
bGVTdHlsZUVuYWJsZWQobG9uZyBjYWxsSWQsIGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaQogCiB2
b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXRSdWxlU2VsZWN0b3IobG9uZyBjYWxsSWQsIGxvbmcg
cnVsZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBsb25nIHNlbGVjdGVkTm9kZUlkKQogewot
ICAgIElkVG9SdWxlTWFwOjppdGVyYXRvciBpdCA9IG1faWRUb1J1bGUuZmluZChydWxlSWQpOwot
ICAgIGlmIChpdCA9PSBtX2lkVG9SdWxlLmVuZCgpKSB7CisgICAgSWRUb1J1bGVNYXA6Oml0ZXJh
dG9yIGl0ID0gY3NzU3RvcmUoKS0+aWRUb1J1bGUuZmluZChydWxlSWQpOworICAgIGlmIChpdCA9
PSBjc3NTdG9yZSgpLT5pZFRvUnVsZS5lbmQoKSkgewogICAgICAgICBtX2Zyb250ZW5kLT5kaWRT
ZXRSdWxlU2VsZWN0b3IoY2FsbElkLCBTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkKCksIGZhbHNlKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwODIsNyArMTA3Nyw3IEBAIHZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OmFkZFJ1bGUobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3Is
IGxvbmcgc2VsZWN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIW1faW5zcGVj
dG9yU3R5bGVTaGVldC5nZXQoKSkgeworICAgIGlmICghY3NzU3RvcmUoKS0+aW5zcGVjdG9yU3R5
bGVTaGVldC5nZXQoKSkgewogICAgICAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudCA9IG5vZGUt
Pm93bmVyRG9jdW1lbnQoKTsKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAg
IFJlZlB0cjxFbGVtZW50PiBzdHlsZUVsZW1lbnQgPSBvd25lckRvY3VtZW50LT5jcmVhdGVFbGVt
ZW50KCJzdHlsZSIsIGVjKTsKQEAgLTExMDAsMzggKzEwOTUsMzggQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6YWRkUnVsZShsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgbG9u
ZyBzZWxlY3QKICAgICAgICAgICAgIG1fZnJvbnRlbmQtPmRpZEFkZFJ1bGUoY2FsbElkLCBTY3Jp
cHRWYWx1ZTo6dW5kZWZpbmVkKCksIGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQotICAgICAgICBtX2luc3BlY3RvclN0eWxlU2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHls
ZVNoZWV0Kj4oc3R5bGVTaGVldCk7CisgICAgICAgIGNzc1N0b3JlKCktPmluc3BlY3RvclN0eWxl
U2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCk7CiAgICAgfQog
CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgbV9pbnNwZWN0b3JTdHlsZVNoZWV0LT5h
ZGRSdWxlKHNlbGVjdG9yLCAiIiwgZWMpOworICAgIGNzc1N0b3JlKCktPmluc3BlY3RvclN0eWxl
U2hlZXQtPmFkZFJ1bGUoc2VsZWN0b3IsICIiLCBlYyk7CiAgICAgaWYgKGVjKSB7CiAgICAgICAg
IG1fZnJvbnRlbmQtPmRpZEFkZFJ1bGUoY2FsbElkLCBTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkKCks
IGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIENTU1N0eWxlUnVsZSogbmV3
UnVsZSA9IHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KG1faW5zcGVjdG9yU3R5bGVTaGVldC0+
aXRlbShtX2luc3BlY3RvclN0eWxlU2hlZXQtPmxlbmd0aCgpIC0gMSkpOworICAgIENTU1N0eWxl
UnVsZSogbmV3UnVsZSA9IHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KGNzc1N0b3JlKCktPmlu
c3BlY3RvclN0eWxlU2hlZXQtPml0ZW0oY3NzU3RvcmUoKS0+aW5zcGVjdG9yU3R5bGVTaGVldC0+
bGVuZ3RoKCkgLSAxKSk7CiAgICAgbV9mcm9udGVuZC0+ZGlkQWRkUnVsZShjYWxsSWQsIGJ1aWxk
T2JqZWN0Rm9yUnVsZShuZXdSdWxlKSwgcnVsZUFmZmVjdHNOb2RlKG5ld1J1bGUsIG5vZGUpKTsK
IH0KIAogbG9uZyBJbnNwZWN0b3JET01BZ2VudDo6YmluZFN0eWxlKENTU1N0eWxlRGVjbGFyYXRp
b24qIHN0eWxlKQogewotICAgIGxvbmcgaWQgPSBtX3N0eWxlVG9JZC5nZXQoc3R5bGUpOworICAg
IGxvbmcgaWQgPSBjc3NTdG9yZSgpLT5zdHlsZVRvSWQuZ2V0KHN0eWxlKTsKICAgICBpZiAoIWlk
KSB7CiAgICAgICAgIGlkID0gbV9sYXN0U3R5bGVJZCsrOwotICAgICAgICBtX2lkVG9TdHlsZS5z
ZXQoaWQsIHN0eWxlKTsKLSAgICAgICAgbV9zdHlsZVRvSWQuc2V0KHN0eWxlLCBpZCk7CisgICAg
ICAgIGNzc1N0b3JlKCktPmlkVG9TdHlsZS5zZXQoaWQsIHN0eWxlKTsKKyAgICAgICAgY3NzU3Rv
cmUoKS0+c3R5bGVUb0lkLnNldChzdHlsZSwgaWQpOwogICAgIH0KICAgICByZXR1cm4gaWQ7CiB9
CiAKIGxvbmcgSW5zcGVjdG9yRE9NQWdlbnQ6OmJpbmRSdWxlKENTU1N0eWxlUnVsZSogcnVsZSkK
IHsKLSAgICBsb25nIGlkID0gbV9ydWxlVG9JZC5nZXQocnVsZSk7CisgICAgbG9uZyBpZCA9IGNz
c1N0b3JlKCktPnJ1bGVUb0lkLmdldChydWxlKTsKICAgICBpZiAoIWlkKSB7CiAgICAgICAgIGlk
ID0gbV9sYXN0UnVsZUlkKys7Ci0gICAgICAgIG1faWRUb1J1bGUuc2V0KGlkLCBydWxlKTsKLSAg
ICAgICAgbV9ydWxlVG9JZC5zZXQocnVsZSwgaWQpOworICAgICAgICBjc3NTdG9yZSgpLT5pZFRv
UnVsZS5zZXQoaWQsIHJ1bGUpOworICAgICAgICBjc3NTdG9yZSgpLT5ydWxlVG9JZC5zZXQocnVs
ZSwgaWQpOwogICAgIH0KICAgICByZXR1cm4gaWQ7CiB9CkBAIC0xMTQzLDggKzExMzgsOCBAQCBT
Y3JpcHRPYmplY3QgSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5bGUoQ1NTU3R5
bGVEZWNsYXJhdGlvbiogc3R5bGUsCiAgICAgICAgIGxvbmcgc3R5bGVJZCA9IGJpbmRTdHlsZShz
dHlsZSk7CiAgICAgICAgIHJlc3VsdC5zZXQoImlkIiwgc3R5bGVJZCk7CiAKLSAgICAgICAgSWRU
b0Rpc2FibGVkU3R5bGVNYXA6Oml0ZXJhdG9yIGRpc2FibGVkSXQgPSBtX2lkVG9EaXNhYmxlZFN0
eWxlLmZpbmQoc3R5bGVJZCk7Ci0gICAgICAgIGlmIChkaXNhYmxlZEl0ICE9IG1faWRUb0Rpc2Fi
bGVkU3R5bGUuZW5kKCkpCisgICAgICAgIElkVG9EaXNhYmxlZFN0eWxlTWFwOjppdGVyYXRvciBk
aXNhYmxlZEl0ID0gY3NzU3RvcmUoKS0+aWRUb0Rpc2FibGVkU3R5bGUuZmluZChzdHlsZUlkKTsK
KyAgICAgICAgaWYgKGRpc2FibGVkSXQgIT0gY3NzU3RvcmUoKS0+aWRUb0Rpc2FibGVkU3R5bGUu
ZW5kKCkpCiAgICAgICAgICAgICByZXN1bHQuc2V0KCJkaXNhYmxlZCIsIGJ1aWxkQXJyYXlGb3JE
aXNhYmxlZFN0eWxlUHJvcGVydGllcyhkaXNhYmxlZEl0LT5zZWNvbmQpKTsKICAgICB9CiAgICAg
cmVzdWx0LnNldCgid2lkdGgiLCBzdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKSk7CkBA
IC0xMjMwLDcgKzEyMjUsNyBAQCBTY3JpcHRPYmplY3QgSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUpCiAgICAgYm9vbCBpc1VzZXIgPSBwYXJl
bnRTdHlsZVNoZWV0ICYmIHBhcmVudFN0eWxlU2hlZXQtPm93bmVyTm9kZSgpICYmIHBhcmVudFN0
eWxlU2hlZXQtPm93bmVyTm9kZSgpLT5ub2RlTmFtZSgpID09ICIjZG9jdW1lbnQiOwogICAgIHJl
c3VsdC5zZXQoImlzVXNlckFnZW50IiwgaXNVc2VyQWdlbnQpOwogICAgIHJlc3VsdC5zZXQoImlz
VXNlciIsIGlzVXNlcik7Ci0gICAgcmVzdWx0LnNldCgiaXNWaWFJbnNwZWN0b3IiLCBydWxlLT5w
YXJlbnRTdHlsZVNoZWV0KCkgPT0gbV9pbnNwZWN0b3JTdHlsZVNoZWV0LmdldCgpKTsKKyAgICBy
ZXN1bHQuc2V0KCJpc1ZpYUluc3BlY3RvciIsIHJ1bGUtPnBhcmVudFN0eWxlU2hlZXQoKSA9PSBj
c3NTdG9yZSgpLT5pbnNwZWN0b3JTdHlsZVNoZWV0LmdldCgpKTsKIAogICAgIC8vIEJpbmQgZWRp
dGFibGUgc2NyaXB0cyBvbmx5LgogICAgIGJvb2wgYmluZCA9ICFpc1VzZXJBZ2VudCAmJiAhaXNV
c2VyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggNzIxMWVkMi4uYzhh
NGUxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5o
IgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ1NTU3RvcmUu
aCIKICNpbmNsdWRlICJTY3JpcHRBcnJheS5oIgogI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgog
I2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCkBAIC03Myw5ICs3NCw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgIGNsYXNzIEluc3BlY3RvckRPTUFnZW50IDogcHVibGljIEV2ZW50TGlzdGVu
ZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yRE9N
QWdlbnQ+IGNyZWF0ZShJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3RvckRPTUFnZW50PiBjcmVhdGUoSW5zcGVjdG9yQ1NTU3RvcmUq
IGNzc1N0b3JlLCBJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5zcGVjdG9yRE9NQWdlbnQoZnJvbnRlbmQpKTsK
KyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5zcGVjdG9yRE9NQWdlbnQoY3NzU3Rv
cmUsIGZyb250ZW5kKSk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgY29uc3QgSW5zcGVj
dG9yRE9NQWdlbnQqIGNhc3QoY29uc3QgRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpCkBAIC04NSw3
ICs4Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICA6IDA7CiAgICAg
ICAgIH0KIAotICAgICAgICBJbnNwZWN0b3JET01BZ2VudChJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQpOworICAgICAgICBJbnNwZWN0b3JET01BZ2VudChJbnNwZWN0b3JDU1NTdG9yZSogY3Nz
U3RvcmUsIEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCk7CiAgICAgICAgIH5JbnNwZWN0b3JE
T01BZ2VudCgpOwogCiAgICAgICAgIHZvaWQgcmVzZXQoKTsKQEAgLTEyNyw5ICsxMjgsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5k
KGxvbmcgbm9kZUlkKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHR5cGVkZWYgc3RkOjpwYWly
PFN0cmluZywgU3RyaW5nPiBQcm9wZXJ0eVZhbHVlQW5kUHJpb3JpdHk7Ci0gICAgICAgIHR5cGVk
ZWYgSGFzaE1hcDxTdHJpbmcsIFByb3BlcnR5VmFsdWVBbmRQcmlvcml0eT4gRGlzYWJsZWRTdHls
ZURlY2xhcmF0aW9uOwotCiAgICAgICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmcoRG9jdW1lbnQqIGRv
Y3VtZW50KTsKICAgICAgICAgdm9pZCBzdG9wTGlzdGVuaW5nKERvY3VtZW50KiBkb2N1bWVudCk7
CiAKQEAgLTE2Miw2ICsxNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgRG9j
dW1lbnQqIG1haW5GcmFtZURvY3VtZW50KCkgY29uc3Q7CiAgICAgICAgIFN0cmluZyBkb2N1bWVu
dFVSTFN0cmluZyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0OworICAgICAgICBJbnNwZWN0b3JD
U1NTdG9yZSogY3NzU3RvcmUoKSB7IHJldHVybiBtX2Nzc1N0b3JlOyB9CiAKICAgICAgICAgbG9u
ZyBiaW5kU3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiopOwogICAgICAgICBsb25nIGJpbmRSdWxl
KENTU1N0eWxlUnVsZSopOwpAQCAtMTc4LDYgKzE3Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICB2b2lkIGRpc2NhcmRCaW5kaW5ncygpOwogCisgICAgICAgIEluc3BlY3RvckNT
U1N0b3JlKiBtX2Nzc1N0b3JlOwogICAgICAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVu
ZDsKICAgICAgICAgTm9kZVRvSWRNYXAgbV9kb2N1bWVudE5vZGVUb0lkTWFwOwogICAgICAgICAv
LyBPd25zIG5vZGUgbWFwcGluZ3MgZm9yIGRhbmdsaW5nIG5vZGVzLgpAQCAtMTg2LDE5ICsxODYs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEhhc2hNYXA8bG9uZywgTm9kZVRvSWRN
YXAqPiBtX2lkVG9Ob2Rlc01hcDsKICAgICAgICAgSGFzaFNldDxsb25nPiBtX2NoaWxkcmVuUmVx
dWVzdGVkOwogICAgICAgICBsb25nIG1fbGFzdE5vZGVJZDsKLQotICAgICAgICB0eXBlZGVmIEhh
c2hNYXA8Q1NTU3R5bGVEZWNsYXJhdGlvbiosIGxvbmc+IFN0eWxlVG9JZE1hcDsKLSAgICAgICAg
dHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJlZlB0cjxDU1NTdHlsZURlY2xhcmF0aW9uPiA+IElkVG9T
dHlsZU1hcDsKLSAgICAgICAgU3R5bGVUb0lkTWFwIG1fc3R5bGVUb0lkOwotICAgICAgICBJZFRv
U3R5bGVNYXAgbV9pZFRvU3R5bGU7Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVJ1
bGUqLCBsb25nPiBSdWxlVG9JZE1hcDsKLSAgICAgICAgdHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJl
ZlB0cjxDU1NTdHlsZVJ1bGU+ID4gSWRUb1J1bGVNYXA7Ci0gICAgICAgIFJ1bGVUb0lkTWFwIG1f
cnVsZVRvSWQ7Ci0gICAgICAgIElkVG9SdWxlTWFwIG1faWRUb1J1bGU7Ci0gICAgICAgIHR5cGVk
ZWYgSGFzaE1hcDxsb25nLCBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24+ICBJZFRvRGlzYWJsZWRT
dHlsZU1hcDsKLSAgICAgICAgSWRUb0Rpc2FibGVkU3R5bGVNYXAgbV9pZFRvRGlzYWJsZWRTdHls
ZTsKLSAgICAgICAgUmVmUHRyPENTU1N0eWxlU2hlZXQ+IG1faW5zcGVjdG9yU3R5bGVTaGVldDsK
LQogICAgICAgICBsb25nIG1fbGFzdFN0eWxlSWQ7CiAgICAgICAgIGxvbmcgbV9sYXN0UnVsZUlk
OwogICAgICAgICBMaXN0SGFzaFNldDxSZWZQdHI8RG9jdW1lbnQ+ID4gbV9kb2N1bWVudHM7Cg==
</data>
<flag name="review"
          id="38856"
          type_id="1"
          status="+"
          setter="yurys"
    />
    <flag name="commit-queue"
          id="39095"
          type_id="3"
          status="+"
          setter="apavlov"
    />
          </attachment>
      

    </bug>

</bugzilla>