<?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>21433</bug_id>
          
          <creation_ts>2008-10-07 10:24:19 -0700</creation_ts>
          <short_desc>Auto-generate the DOMDocument createNodeIterator: and createTreeWalker: methods</short_desc>
          <delta_ts>2008-10-07 14:50:09 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>94375</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-07 10:24:19 -0700</bug_when>
    <thetext>We should auto-generate these methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94387</commentid>
    <comment_count>1</comment_count>
      <attachid>24152</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-07 10:50:55 -0700</bug_when>
    <thetext>Created attachment 24152
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94439</commentid>
    <comment_count>2</comment_count>
      <attachid>24152</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-10-07 14:00:22 -0700</bug_when>
    <thetext>Comment on attachment 24152
Proposed patch

+        RetainPtr&lt;id &lt;DOMNodeFilter&gt; &gt; m_filter;
+    };
+
+} // namespace WebCore
+
+#endif

The #endif should have a comment. 

+#import &quot;config.h&quot;
+
+#include &quot;ObjCNodeFilterCondition.h&quot;
+
+#include &quot;DOMNodeFilter.h&quot;
+#include &quot;DOMNodeInternal.h&quot;
+#include &quot;NodeFilter.h&quot;
Shouldn&apos;t these all be #imports.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94456</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-10-07 14:50:09 -0700</bug_when>
    <thetext>Landed in r37396.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24152</attachid>
            <date>2008-10-07 10:50:55 -0700</date>
            <delta_ts>2008-10-07 14:00:22 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001--Auto-generate-DOMDocument-s-createNodeIterat.patch</filename>
            <type>text/plain</type>
            <size>29994</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">RnJvbSA1NzhhMDNiZDA3NDc0ZGEyYWYwODRjMzk2YTNmNjkwZGM5NmI2ODlhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW1vdGh5IEhhdGNoZXIgPHRpbW90aHlAYXBwbGUuY29tPgpE
YXRlOiBUdWUsIDcgT2N0IDIwMDggMTA6NDc6MjQgLTA3MDAKU3ViamVjdDogW1BBVENIXSAgICAg
ICAgIEF1dG8tZ2VuZXJhdGUgRE9NRG9jdW1lbnQncyBjcmVhdGVOb2RlSXRlcmF0b3I6IGFuZCBj
cmVhdGVUcmVlV2Fsa2VyOiBtZXRob2RzLgoKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzMKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgogICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgT2Jq
Q05vZGVGaWx0ZXJDb25kaXRpb24ue21tLGh9LgogICAgICAgICogYmluZGluZ3Mvb2JqYy9ET00u
bW06IFJlbW92ZSBwcmV2aW91cyBjYXRlZ29yeSBpbXBsZW1lbnRhdGlvbnMKICAgICAgICBvbiBE
T01Eb2N1bWVudCBmb3IgY3JlYXRlTm9kZUl0ZXJhdG9yOiBhbmQgY3JlYXRlVHJlZVdhbGtlcjou
IEFsc28KICAgICAgICBtb3ZlcyBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbiB0byBpdHMgb3duIGZp
bGUuCiAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVRyYXZlcnNhbC5oOiBSZW1vdmUgdGhlIGNh
dGVnb3J5IG1ldGhvZHMgdGhhdCBhZGRlZAogICAgICAgIGNyZWF0ZU5vZGVJdGVyYXRvcjogYW5k
IGNyZWF0ZVRyZWVXYWxrZXI6IHRvIERPTURvY3VtZW50LiBUaGlzIGlzIGZpbmUKICAgICAgICB0
byBkbyBzaW5jZSBET21Eb2N1bWVudC5oIGlzIGluY2x1ZGVkIHN0aWxsLCBhbmQgaGFzIHRoZXNl
IG1ldGhvZHMuCiAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVV0aWxpdHkubW06CiAgICAgICAg
KEpTQzo6Y3JlYXRlRE9NV3JhcHBlcik6IFJlbW92ZSBzcGVjaWFsIGNhc2UgZm9yIEpTTm9kZUl0
ZXJhdG9yIGFuZAogICAgICAgIEpTVHJlZVdhbGtlciBub3cgdGhhdCB0aGUgT2JqQyBiaW5kaW5n
IGNvbmZvcm1zIHRvIHRoZSBzdGFuZGFyZCB3cmFwLgogICAgICAgICogYmluZGluZ3Mvb2JqYy9P
YmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oOiBTcGxpdCBvdXQgZnJvbSBET00ubW0uCiAgICAgICAg
KFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUpOiBNb3ZlZCBmcm9tIERP
TS5tbS4KICAgICAgICAoV2ViQ29yZTo6T2JqQ05vZGVGaWx0ZXJDb25kaXRpb246Ok9iakNOb2Rl
RmlsdGVyQ29uZGl0aW9uKTogRGl0dG8uCiAgICAgICAgKiBiaW5kaW5ncy9vYmpjL09iakNOb2Rl
RmlsdGVyQ29uZGl0aW9uLm1tOiBTcGxpdCBvdXQgZnJvbSBET00ubW0uCiAgICAgICAgKFdlYkNv
cmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKTogTW92ZWQgZnJvbSBET00u
bW0uCiAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaDogQWRkIHRo
ZSBjcmVhdGVOb2RlSXRlcmF0b3I6IGFuZAogICAgICAgIGNyZWF0ZVRyZWVXYWxrZXI6IG1ldGhv
ZHMgdG8gRE9NRG9jdW1lbnQuCiAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JPYmpDLnBtOgogICAgICAgIChHZXRPYmpDVHlwZUdldHRlcik6IEFkZCBhIGNhc2UgZm9yIE5v
ZGVGaWx0ZXIuCiAgICAgICAgKEFkZEluY2x1ZGVzRm9yVHlwZSk6IEluY2x1ZGUgT2JqQ05vZGVG
aWx0ZXJDb25kaXRpb24uaCBmb3IgTm9kZUZpbHRlci4KICAgICAgICAoR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbik6IFJlbW92ZSBleGlzdGluZyBOb2RlRmlsdGVyIHNwZWNpYWwgY2FzZSB0aGF0CiAg
ICAgICAgdXNlZCB0aGUgbV9maWx0ZXIgbWVtYmVyIHZhcmlhYmxlLiBBZGQgYSBuZXcgc3BlY2lh
bCBnZXR0ZXIgZm9yIHByb3RvY29sCiAgICAgICAgdHlwZXMgdGhhdCBhcmVuJ3QgRXZlbnRUYXJn
ZXQsIHNvIHRoZSByaWdodCBjbGFzcyBpcyB1c2VkIGZvciBOb2RlRmlsdGVyLgogICAgICAgIEFk
ZCBhIHNwZWNpYWwgY2FzZSBmb3IgTm9kZUZpbHRlciB3aGVyZSBpdCBjcmVhdGVzIGFuIE9iakNO
b2RlRmlsdGVyQ29uZGl0aW9uLgogICAgICAgICogZG9tL0RvY3VtZW50LmlkbDogUmVtb3ZlIHRo
ZSAjaWZkZWYgTEFOR1VBR0VfT0JKRUNUSVZFX0MuIEFkZCB0aGUKICAgICAgICBPbGRTdHlsZU9i
akMgZXh0ZW5kZWQgYXR0cmlidXRlIHRvIGNyZWF0ZU5vZGVJdGVyYXRvciBhbmQgY3JlYXRlVHJl
ZVdhbGtlci4KICAgICAgICBSZW5hbWUgdGhlIGVudGl0eVJlZmVyZW5jZUV4cGFuc2lvbiBwYXJh
bWV0ZXIgdG8gZXhwYW5kRW50aXR5UmVmZXJlbmNlcyB0bwogICAgICAgIG1hdGNoIHRoZSBwcmV2
aW91cyBPYmpDIEFQSS4KICAgICAgICAqIGRvbS9Ob2RlSXRlcmF0b3IuaWRsOiBSZW1vdmUgT2Jq
Q0l2YXIgZnJvbSB0aGUgZmlsdGVyIGF0dHJpYnV0ZS4gVGhlCiAgICAgICAgbV9maWx0ZXIgbWVt
YmVyIHZhcmlhYmxlIHdhcyBuZXZlciB1c2VkIGluIHByYWN0aWNlLCBpdCB3YXMgYWx3YXlzIG5p
bCEKICAgICAgICBXZSBjYW4gcmVtb3ZlIGl0IGFuZCBub3QgcGFkIHRoZSBvYmplY3QgYmVjYXVz
ZSB0aGlzIGNhbid0IGJlIHN1YmNsYXNzZWQuCiAgICAgICAgKiBkb20vVHJlZVdhbGtlci5pZGw6
IERpdHRvLgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgNDEgKysrKysrKysrKysrCiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiAgICAgICAgfCAgICA4ICsrCiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1t
ICAgICAgICAgICAgICAgICAgICAgfCAgIDc2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFdlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01UcmF2ZXJzYWwuaCAgICAgICAgICAgICB8ICAgMTUgLS0tLQog
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVV0aWxpdHkubW0gICAgICAgICAgICAgIHwgICAgNiAr
LQogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmggIHwgICA2
MCArKysrKysrKysrKysrKysrKwogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVy
Q29uZGl0aW9uLm1tIHwgICA0NyArKysrKysrKysrKysrCiBXZWJDb3JlL2JpbmRpbmdzL29iamMv
UHVibGljRE9NSW50ZXJmYWNlcy5oICAgICAgfCAgICA0ICsKIFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSAgICB8ICAgMjEgKysrKy0tCiBXZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrLS0tCiBXZWJDb3Jl
L2RvbS9Ob2RlSXRlcmF0b3IuaWRsICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJD
b3JlL2RvbS9UcmVlV2Fsa2VyLmlkbCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiAx
MiBmaWxlcyBjaGFuZ2VkLCAxODYgaW5zZXJ0aW9ucygrKSwgMTE0IGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRp
dGlvbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2Rl
RmlsdGVyQ29uZGl0aW9uLm1tCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAxZWRkZjYwLi42ZjJlMGE0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDA4
LTEwLTA3ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAorICAgICAgICBB
dXRvLWdlbmVyYXRlIERPTURvY3VtZW50J3MgY3JlYXRlTm9kZUl0ZXJhdG9yOiBhbmQgY3JlYXRl
VHJlZVdhbGtlcjogbWV0aG9kcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE0MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIE9i
akNOb2RlRmlsdGVyQ29uZGl0aW9uLnttbSxofS4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TS5tbTogUmVtb3ZlIHByZXZpb3VzIGNhdGVnb3J5IGltcGxlbWVudGF0aW9ucworICAgICAgICBv
biBET01Eb2N1bWVudCBmb3IgY3JlYXRlTm9kZUl0ZXJhdG9yOiBhbmQgY3JlYXRlVHJlZVdhbGtl
cjouIEFsc28KKyAgICAgICAgbW92ZXMgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24gdG8gaXRzIG93
biBmaWxlLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NVHJhdmVyc2FsLmg6IFJlbW92ZSB0
aGUgY2F0ZWdvcnkgbWV0aG9kcyB0aGF0IGFkZGVkCisgICAgICAgIGNyZWF0ZU5vZGVJdGVyYXRv
cjogYW5kIGNyZWF0ZVRyZWVXYWxrZXI6IHRvIERPTURvY3VtZW50LiBUaGlzIGlzIGZpbmUKKyAg
ICAgICAgdG8gZG8gc2luY2UgRE9tRG9jdW1lbnQuaCBpcyBpbmNsdWRlZCBzdGlsbCwgYW5kIGhh
cyB0aGVzZSBtZXRob2RzLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NVXRpbGl0eS5tbToK
KyAgICAgICAgKEpTQzo6Y3JlYXRlRE9NV3JhcHBlcik6IFJlbW92ZSBzcGVjaWFsIGNhc2UgZm9y
IEpTTm9kZUl0ZXJhdG9yIGFuZAorICAgICAgICBKU1RyZWVXYWxrZXIgbm93IHRoYXQgdGhlIE9i
akMgYmluZGluZyBjb25mb3JtcyB0byB0aGUgc3RhbmRhcmQgd3JhcC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmg6IFNwbGl0IG91dCBmcm9tIERPTS5t
bS4KKyAgICAgICAgKFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUpOiBN
b3ZlZCBmcm9tIERPTS5tbS4KKyAgICAgICAgKFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0
aW9uOjpPYmpDTm9kZUZpbHRlckNvbmRpdGlvbik6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW06IFNwbGl0IG91dCBmcm9tIERPTS5tbS4K
KyAgICAgICAgKFdlYkNvcmU6Ok9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKTog
TW92ZWQgZnJvbSBET00ubW0uCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRl
cmZhY2VzLmg6IEFkZCB0aGUgY3JlYXRlTm9kZUl0ZXJhdG9yOiBhbmQKKyAgICAgICAgY3JlYXRl
VHJlZVdhbGtlcjogbWV0aG9kcyB0byBET01Eb2N1bWVudC4KKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICAoR2V0T2JqQ1R5cGVHZXR0ZXIp
OiBBZGQgYSBjYXNlIGZvciBOb2RlRmlsdGVyLgorICAgICAgICAoQWRkSW5jbHVkZXNGb3JUeXBl
KTogSW5jbHVkZSBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5oIGZvciBOb2RlRmlsdGVyLgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6IFJlbW92ZSBleGlzdGluZyBOb2RlRmlsdGVy
IHNwZWNpYWwgY2FzZSB0aGF0CisgICAgICAgIHVzZWQgdGhlIG1fZmlsdGVyIG1lbWJlciB2YXJp
YWJsZS4gQWRkIGEgbmV3IHNwZWNpYWwgZ2V0dGVyIGZvciBwcm90b2NvbAorICAgICAgICB0eXBl
cyB0aGF0IGFyZW4ndCBFdmVudFRhcmdldCwgc28gdGhlIHJpZ2h0IGNsYXNzIGlzIHVzZWQgZm9y
IE5vZGVGaWx0ZXIuCisgICAgICAgIEFkZCBhIHNwZWNpYWwgY2FzZSBmb3IgTm9kZUZpbHRlciB3
aGVyZSBpdCBjcmVhdGVzIGFuIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uLgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5pZGw6IFJlbW92ZSB0aGUgI2lmZGVmIExBTkdVQUdFX09CSkVDVElWRV9DLiBB
ZGQgdGhlCisgICAgICAgIE9sZFN0eWxlT2JqQyBleHRlbmRlZCBhdHRyaWJ1dGUgdG8gY3JlYXRl
Tm9kZUl0ZXJhdG9yIGFuZCBjcmVhdGVUcmVlV2Fsa2VyLgorICAgICAgICBSZW5hbWUgdGhlIGVu
dGl0eVJlZmVyZW5jZUV4cGFuc2lvbiBwYXJhbWV0ZXIgdG8gZXhwYW5kRW50aXR5UmVmZXJlbmNl
cyB0bworICAgICAgICBtYXRjaCB0aGUgcHJldmlvdXMgT2JqQyBBUEkuCisgICAgICAgICogZG9t
L05vZGVJdGVyYXRvci5pZGw6IFJlbW92ZSBPYmpDSXZhciBmcm9tIHRoZSBmaWx0ZXIgYXR0cmli
dXRlLiBUaGUKKyAgICAgICAgbV9maWx0ZXIgbWVtYmVyIHZhcmlhYmxlIHdhcyBuZXZlciB1c2Vk
IGluIHByYWN0aWNlLCBpdCB3YXMgYWx3YXlzIG5pbCEKKyAgICAgICAgV2UgY2FuIHJlbW92ZSBp
dCBhbmQgbm90IHBhZCB0aGUgb2JqZWN0IGJlY2F1c2UgdGhpcyBjYW4ndCBiZSBzdWJjbGFzc2Vk
LgorICAgICAgICAqIGRvbS9UcmVlV2Fsa2VyLmlkbDogRGl0dG8uCisKKzIwMDgtMTAtMDcgIFRp
bW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgorCiAgICAgICAgIEF1dG8tZ2VuZXJh
dGUgdGhlIERPTUV2ZW50VGFyZ2V0IHByb3RvY29sIGltcGxlbWVudGF0aW9uIGZvcgogICAgICAg
ICBET01Ob2RlIGFuZCBET01TVkdFbGVtZW50SW5zdGFuY2UuCiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWI3YWVlMS4uZTE0YmRlMCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM4Niw2ICszODYsOCBAQAog
CQkxQ0VGQzlCQTBENzhEQzhDMDA3RDI1NzkgLyogU2NoZWR1bGVQYWlyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRUZDOUI4MEQ3OERDOEMwMDdE
MjU3OSAvKiBTY2hlZHVsZVBhaXIuY3BwICovOyB9OwogCQkxQ0Y2QkRGQTBFOUJCMjZBMDAyNUUx
Q0QgLyogT2JqQ0V2ZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDRjZCREY4MEU5QkIyNkEwMDI1RTFDRCAvKiBPYmpDRXZlbnRMaXN0
ZW5lci5oICovOyB9OwogCQkxQ0Y2QkRGQjBFOUJCMjZBMDAyNUUxQ0QgLyogT2JqQ0V2ZW50TGlz
dGVuZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0Y2QkRGOTBFOUJCMjZBMDAyNUUxQ0QgLyogT2JqQ0V2ZW50TGlzdGVuZXIubW0gKi87IH07CisJ
CTFDRjZCRTE0MEU5QkI0NjcwMDI1RTFDRCAvKiBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRjZCRTEyMEU5
QkI0NjcwMDI1RTFDRCAvKiBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbSAqLzsgfTsKKwkJMUNG
NkJFMTUwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0Y2QkUxMzBFOUJCNDY3
MDAyNUUxQ0QgLyogT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24uaCAqLzsgfTsKIAkJMUNGQUUzMjMw
QTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGli
b2JqYy5keWxpYiAqLzsgfTsKIAkJMUNGQ0VFOTYwQUFDQzQwMTAwMzQ4NzUwIC8qIERPTUhUTUxC
b2R5RWxlbWVudFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRkNFRThEMEFBQ0MzQ0QwMDM0ODc1MCAvKiBET01I
VE1MQm9keUVsZW1lbnRQcml2YXRlLmggKi87IH07CiAJCTFDRkNFRTk3MEFBQ0M0MDEwMDM0ODc1
MCAvKiBET01IVE1MQnV0dG9uRWxlbWVudFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRkNFRThFMEFBQ0MzQ0Qw
MDM0ODc1MCAvKiBET01IVE1MQnV0dG9uRWxlbWVudFByaXZhdGUuaCAqLzsgfTsKQEAgLTUwNzgs
NiArNTA4MCw4IEBACiAJCTFDRUZDOUI4MEQ3OERDOEMwMDdEMjU3OSAvKiBTY2hlZHVsZVBhaXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NoZWR1bGVQYWlyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNGNkJERjgwRTlCQjI2QTAwMjVFMUNE
IC8qIE9iakNFdmVudExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE9iakNFdmVudExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRjZC
REY5MEU5QkIyNkEwMDI1RTFDRCAvKiBPYmpDRXZlbnRMaXN0ZW5lci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE9iakNFdmVudExpc3RlbmVyLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQ0Y2QkUxMjBFOUJCNDY3MDAyNUUxQ0QgLyogT2JqQ05v
ZGVGaWx0ZXJDb25kaXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMUNGNkJFMTMwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9iakNOb2RlRmlsdGVyQ29uZGl0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDRkFFMzIyMEE2RDZBM0YwMDMy
NTkzRCAvKiBsaWJvYmpjLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJvYmpjLmR5
bGliOyBwYXRoID0gL3Vzci9saWIvbGlib2JqYy5keWxpYjsgc291cmNlVHJlZSA9ICI8YWJzb2x1
dGU+IjsgfTsKIAkJMUNGQ0VFN0YwQUFDQzNCMzAwMzQ4NzUwIC8qIERPTUhUTUxBbmNob3JFbGVt
ZW50UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MQW5j
aG9yRWxlbWVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNGQ0VF
ODgwQUFDQzNDMDAwMzQ4NzUwIC8qIERPTUhUTUxBcmVhRWxlbWVudFByaXZhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEFyZWFFbGVtZW50UHJpdmF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI4MTAsNiArMTI4MTQsOCBAQAogCQkJCTE0
OEFGREE0MEFGNTgzNjAwMDhDQzcwMCAvKiBFeGNlcHRpb25IYW5kbGVycy5tbSAqLywKIAkJCQkx
Q0Y2QkRGODBFOUJCMjZBMDAyNUUxQ0QgLyogT2JqQ0V2ZW50TGlzdGVuZXIuaCAqLywKIAkJCQkx
Q0Y2QkRGOTBFOUJCMjZBMDAyNUUxQ0QgLyogT2JqQ0V2ZW50TGlzdGVuZXIubW0gKi8sCisJCQkJ
MUNGNkJFMTMwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmggKi8s
CisJCQkJMUNGNkJFMTIwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9u
Lm1tICovLAogCQkJCTFDQUYzNDdFMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3Qu
aCAqLywKIAkJCQkxQ0FGMzQ3RjBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0Lm1t
ICovLAogCQkJCTFDQUYzNDgwMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3RQcml2
YXRlLmggKi8sCkBAIC0xNTk3MSw2ICsxNTk3Nyw3IEBACiAJCQkJMUM4MUJBMEUwRTk3MzQ4MzAw
MjY2RTA3IC8qIEphdmFTY3JpcHREZWJ1Z1NlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMz
QkUxMkIwRTk4MDkyRjAwODM1NTg4IC8qIFBvcHVwTWVudVN0eWxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQ0Y2QkRGQTBFOUJCMjZBMDAyNUUxQ0QgLyogT2JqQ0V2ZW50TGlzdGVuZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFDRjZCRTE1MEU5QkI0NjcwMDI1RTFDRCAvKiBPYmpDTm9kZUZpbHRl
ckNvbmRpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNzgzNSw2ICsxNzg0Miw3IEBACiAJCQkJ
MUM4MUJBMDkwRTk3MzQ4MzAwMjY2RTA3IC8qIEphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUM4MUJBMEQwRTk3MzQ4MzAwMjY2RTA3IC8qIEphdmFTY3JpcHREZWJ1
Z1NlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQ0Y2QkRGQjBFOUJCMjZBMDAyNUUxQ0Qg
LyogT2JqQ0V2ZW50TGlzdGVuZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQkxQ0Y2QkUxNDBFOUJC
NDY3MDAyNUUxQ0QgLyogT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0gaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0gYi9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NLm1tCmluZGV4IDY4MDg0ZTAuLjQ4NWQwMTEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET00ubW0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5t
bQpAQCAtNjQ3LDc5ICs2NDcsMyBAQCBzdGF0aWMgTlNBcnJheSAqa2l0KGNvbnN0IFZlY3RvcjxJ
bnRSZWN0PiYgcmVjdHMpCiB9CiAKIEBlbmQKLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLS8vIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24gOiBwdWJsaWMgTm9kZUZpbHRlckNv
bmRpdGlvbiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8T2JqQ05vZGVGaWx0ZXJD
b25kaXRpb24+IGNyZWF0ZShpZCA8RE9NTm9kZUZpbHRlcj4gZmlsdGVyKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbihmaWx0ZXIpKTsK
LSAgICB9Ci0KLSAgICB2aXJ0dWFsIHNob3J0IGFjY2VwdE5vZGUoRXhlY1N0YXRlKiwgTm9kZSop
IGNvbnN0OwotCi1wcml2YXRlOgotICAgIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uKGlkIDxET01O
b2RlRmlsdGVyPiBmaWx0ZXIpCi0gICAgICAgIDogbV9maWx0ZXIoZmlsdGVyKQotICAgIHsKLSAg
ICB9Ci0KLSAgICBSZXRhaW5QdHI8aWQgPERPTU5vZGVGaWx0ZXI+ID4gbV9maWx0ZXI7Ci19Owot
Ci1zaG9ydCBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShFeGVjU3RhdGUqLCBO
b2RlKiBub2RlKSBjb25zdAotewotICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIE5vZGVG
aWx0ZXI6OkZJTFRFUl9SRUpFQ1Q7Ci0gICAgcmV0dXJuIFttX2ZpbHRlci5nZXQoKSBhY2NlcHRO
b2RlOltET01Ob2RlIF93cmFwTm9kZTpub2RlXV07Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIERPTURvY3VtZW50
IChET01Eb2N1bWVudFRyYXZlcnNhbCkKLQotLy8gRklYTUU6IHRoaXMgc2hvdWxkIGJlIGF1dG8t
Z2VuZXJhdGVkIGluIERPTURvY3VtZW50Lm1tCi1AaW1wbGVtZW50YXRpb24gRE9NRG9jdW1lbnQg
KERPTURvY3VtZW50VHJhdmVyc2FsKQotCi0tIChET01Ob2RlSXRlcmF0b3IgKiljcmVhdGVOb2Rl
SXRlcmF0b3I6KERPTU5vZGUgKilyb290IHdoYXRUb1Nob3c6KHVuc2lnbmVkKXdoYXRUb1Nob3cg
ZmlsdGVyOihpZCA8RE9NTm9kZUZpbHRlcj4pZmlsdGVyIGV4cGFuZEVudGl0eVJlZmVyZW5jZXM6
KEJPT0wpZXhwYW5kRW50aXR5UmVmZXJlbmNlcwotewotICAgIFJlZlB0cjxOb2RlRmlsdGVyPiBj
cHBGaWx0ZXI7Ci0gICAgaWYgKGZpbHRlcikKLSAgICAgICAgY3BwRmlsdGVyID0gTm9kZUZpbHRl
cjo6Y3JlYXRlKE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUoZmlsdGVyKSk7Ci0gICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgUmVmUHRyPE5vZGVJdGVyYXRvcj4gaW1wbCA9IFtz
ZWxmIF9kb2N1bWVudF0tPmNyZWF0ZU5vZGVJdGVyYXRvcihbcm9vdCBfbm9kZV0sIHdoYXRUb1No
b3csIGNwcEZpbHRlci5yZWxlYXNlKCksIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIGVjKTsKLSAg
ICByYWlzZU9uRE9NRXJyb3IoZWMpOwotICAgIHJldHVybiBbRE9NTm9kZUl0ZXJhdG9yIF93cmFw
Tm9kZUl0ZXJhdG9yOmltcGwuZ2V0KCkgZmlsdGVyOmZpbHRlcl07Ci19Ci0KLS0gKERPTVRyZWVX
YWxrZXIgKiljcmVhdGVUcmVlV2Fsa2VyOihET01Ob2RlICopcm9vdCB3aGF0VG9TaG93Oih1bnNp
Z25lZCl3aGF0VG9TaG93IGZpbHRlcjooaWQgPERPTU5vZGVGaWx0ZXI+KWZpbHRlciBleHBhbmRF
bnRpdHlSZWZlcmVuY2VzOihCT09MKWV4cGFuZEVudGl0eVJlZmVyZW5jZXMKLXsKLSAgICBSZWZQ
dHI8Tm9kZUZpbHRlcj4gY3BwRmlsdGVyOwotICAgIGlmIChmaWx0ZXIpCi0gICAgICAgIGNwcEZp
bHRlciA9IE5vZGVGaWx0ZXI6OmNyZWF0ZShPYmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRl
KGZpbHRlcikpOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFJlZlB0cjxUcmVlV2Fs
a2VyPiBpbXBsID0gW3NlbGYgX2RvY3VtZW50XS0+Y3JlYXRlVHJlZVdhbGtlcihbcm9vdCBfbm9k
ZV0sIHdoYXRUb1Nob3csIGNwcEZpbHRlci5yZWxlYXNlKCksIGV4cGFuZEVudGl0eVJlZmVyZW5j
ZXMsIGVjKTsKLSAgICByYWlzZU9uRE9NRXJyb3IoZWMpOwotICAgIHJldHVybiBbRE9NVHJlZVdh
bGtlciBfd3JhcFRyZWVXYWxrZXI6aW1wbC5nZXQoKSBmaWx0ZXI6ZmlsdGVyXTsKLX0KLQotQGVu
ZAotCi1AaW1wbGVtZW50YXRpb24gRE9NRG9jdW1lbnQgKERPTURvY3VtZW50VHJhdmVyc2FsRGVw
cmVjYXRlZCkKLQotLSAoRE9NTm9kZUl0ZXJhdG9yICopY3JlYXRlTm9kZUl0ZXJhdG9yOihET01O
b2RlICopcm9vdCA6KHVuc2lnbmVkKXdoYXRUb1Nob3cgOihpZCA8RE9NTm9kZUZpbHRlcj4pZmls
dGVyIDooQk9PTClleHBhbmRFbnRpdHlSZWZlcmVuY2VzCi17Ci0gICAgcmV0dXJuIFtzZWxmIGNy
ZWF0ZU5vZGVJdGVyYXRvcjpyb290IHdoYXRUb1Nob3c6d2hhdFRvU2hvdyBmaWx0ZXI6ZmlsdGVy
IGV4cGFuZEVudGl0eVJlZmVyZW5jZXM6ZXhwYW5kRW50aXR5UmVmZXJlbmNlc107Ci19Ci0KLS0g
KERPTVRyZWVXYWxrZXIgKiljcmVhdGVUcmVlV2Fsa2VyOihET01Ob2RlICopcm9vdCA6KHVuc2ln
bmVkKXdoYXRUb1Nob3cgOihpZCA8RE9NTm9kZUZpbHRlcj4pZmlsdGVyIDooQk9PTClleHBhbmRF
bnRpdHlSZWZlcmVuY2VzCi17Ci0gICAgcmV0dXJuIFtzZWxmIGNyZWF0ZVRyZWVXYWxrZXI6cm9v
dCB3aGF0VG9TaG93OndoYXRUb1Nob3cgZmlsdGVyOmZpbHRlciBleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzOmV4cGFuZEVudGl0eVJlZmVyZW5jZXNdOwotfQotCi1AZW5kCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NVHJhdmVyc2FsLmggYi9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NVHJhdmVyc2FsLmgKaW5kZXggZTJkMjkxZS4uZGI5ZGVhOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTVRyYXZlcnNhbC5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01UcmF2ZXJzYWwuaApAQCAtMzEsMTggKzMxLDMgQEAKICNpbXBvcnQgPFdlYkNvcmUvRE9N
Tm9kZUZpbHRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01Ob2RlSXRlcmF0b3IuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRE9NVHJlZVdhbGtlci5oPgotCi1AaW50ZXJmYWNlIERPTURvY3VtZW50IChE
T01Eb2N1bWVudFRyYXZlcnNhbCkKLS0gKERPTU5vZGVJdGVyYXRvciAqKWNyZWF0ZU5vZGVJdGVy
YXRvcjooRE9NTm9kZSAqKXJvb3Qgd2hhdFRvU2hvdzoodW5zaWduZWQpd2hhdFRvU2hvdyBmaWx0
ZXI6KGlkIDxET01Ob2RlRmlsdGVyPilmaWx0ZXIgZXhwYW5kRW50aXR5UmVmZXJlbmNlczooQk9P
TClleHBhbmRFbnRpdHlSZWZlcmVuY2VzOwotLSAoRE9NVHJlZVdhbGtlciAqKWNyZWF0ZVRyZWVX
YWxrZXI6KERPTU5vZGUgKilyb290IHdoYXRUb1Nob3c6KHVuc2lnbmVkKXdoYXRUb1Nob3cgZmls
dGVyOihpZCA8RE9NTm9kZUZpbHRlcj4pZmlsdGVyIGV4cGFuZEVudGl0eVJlZmVyZW5jZXM6KEJP
T0wpZXhwYW5kRW50aXR5UmVmZXJlbmNlczsKLUBlbmQKLQotQGludGVyZmFjZSBET01Eb2N1bWVu
dCAoRE9NRG9jdW1lbnRUcmF2ZXJzYWxEZXByZWNhdGVkKQotI2lmbmRlZiBCVUlMRElOR19PTl9U
SUdFUgotLSAoRE9NTm9kZUl0ZXJhdG9yICopY3JlYXRlTm9kZUl0ZXJhdG9yOihET01Ob2RlICop
cm9vdCA6KHVuc2lnbmVkKXdoYXRUb1Nob3cgOihpZCA8RE9NTm9kZUZpbHRlcj4pZmlsdGVyIDoo
Qk9PTClleHBhbmRFbnRpdHlSZWZlcmVuY2VzIERFUFJFQ0FURURfSU5fTUFDX09TX1hfVkVSU0lP
Tl8xMF81X0FORF9MQVRFUjsKLS0gKERPTVRyZWVXYWxrZXIgKiljcmVhdGVUcmVlV2Fsa2VyOihE
T01Ob2RlICopcm9vdCA6KHVuc2lnbmVkKXdoYXRUb1Nob3cgOihpZCA8RE9NTm9kZUZpbHRlcj4p
ZmlsdGVyIDooQk9PTClleHBhbmRFbnRpdHlSZWZlcmVuY2VzIERFUFJFQ0FURURfSU5fTUFDX09T
X1hfVkVSU0lPTl8xMF81X0FORF9MQVRFUjsKLSNlbHNlCi0tIChET01Ob2RlSXRlcmF0b3IgKilj
cmVhdGVOb2RlSXRlcmF0b3I6KERPTU5vZGUgKilyb290IDoodW5zaWduZWQpd2hhdFRvU2hvdyA6
KGlkIDxET01Ob2RlRmlsdGVyPilmaWx0ZXIgOihCT09MKWV4cGFuZEVudGl0eVJlZmVyZW5jZXM7
Ci0tIChET01UcmVlV2Fsa2VyICopY3JlYXRlVHJlZVdhbGtlcjooRE9NTm9kZSAqKXJvb3QgOih1
bnNpZ25lZCl3aGF0VG9TaG93IDooaWQgPERPTU5vZGVGaWx0ZXI+KWZpbHRlciA6KEJPT0wpZXhw
YW5kRW50aXR5UmVmZXJlbmNlczsKLSNlbmRpZgotQGVuZApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTVV0aWxpdHkubW0gYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVXRp
bGl0eS5tbQppbmRleCAxNDhlZDc1Li5lMzQ2YzllIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NVXRpbGl0eS5tbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVXRp
bGl0eS5tbQpAQCAtODUsMTIgKzg1LDE0IEBAIHN0YXRpYyBpbmxpbmUgaWQgY3JlYXRlRE9NV3Jh
cHBlcihKU0M6OkpTT2JqZWN0KiBvYmplY3QpCiAgICAgV1JBUChNZWRpYUxpc3QpCiAgICAgV1JB
UChOYW1lZE5vZGVNYXApCiAgICAgV1JBUChOb2RlKQorICAgIFdSQVAoTm9kZUl0ZXJhdG9yKQog
ICAgIFdSQVAoTm9kZUxpc3QpCiAgICAgV1JBUChSR0JDb2xvcikKICAgICBXUkFQKFJhbmdlKQog
ICAgIFdSQVAoUmVjdCkKICAgICBXUkFQKFN0eWxlU2hlZXQpCiAgICAgV1JBUChTdHlsZVNoZWV0
TGlzdCkKKyAgICBXUkFQKFRyZWVXYWxrZXIpCiAjaWYgRU5BQkxFKFhQQVRIKQogICAgIFdSQVAo
WFBhdGhFeHByZXNzaW9uKQogICAgIFdSQVAoWFBhdGhSZXN1bHQpCkBAIC0xMDcsMTAgKzEwOSw2
IEBAIHN0YXRpYyBpbmxpbmUgaWQgY3JlYXRlRE9NV3JhcHBlcihKU0M6OkpTT2JqZWN0KiBvYmpl
Y3QpCiAKICAgICBpZiAob2JqZWN0LT5pbmhlcml0cygmV2ViQ29yZTo6SlNET01JbXBsZW1lbnRh
dGlvbjo6c19pbmZvKSkKICAgICAgICAgcmV0dXJuIFtET01JbXBsZW1lbnRhdGlvbiBfd3JhcERP
TUltcGxlbWVudGF0aW9uOmltcGxlbWVudGF0aW9uRnJvbnQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
SlNET01JbXBsZW1lbnRhdGlvbio+KG9iamVjdCkpXTsKLSAgICBpZiAob2JqZWN0LT5pbmhlcml0
cygmV2ViQ29yZTo6SlNOb2RlSXRlcmF0b3I6OnNfaW5mbykpCi0gICAgICAgIHJldHVybiBbRE9N
Tm9kZUl0ZXJhdG9yIF93cmFwTm9kZUl0ZXJhdG9yOnN0YXRpY19jYXN0PFdlYkNvcmU6OkpTTm9k
ZUl0ZXJhdG9yKj4ob2JqZWN0KS0+aW1wbCgpIGZpbHRlcjpuaWxdOwotICAgIGlmIChvYmplY3Qt
PmluaGVyaXRzKCZXZWJDb3JlOjpKU1RyZWVXYWxrZXI6OnNfaW5mbykpCi0gICAgICAgIHJldHVy
biBbRE9NVHJlZVdhbGtlciBfd3JhcFRyZWVXYWxrZXI6c3RhdGljX2Nhc3Q8V2ViQ29yZTo6SlNU
cmVlV2Fsa2VyKj4ob2JqZWN0KS0+aW1wbCgpIGZpbHRlcjpuaWxdOwogCiAgICAgcmV0dXJuIG5p
bDsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNv
bmRpdGlvbi5oIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL09iakNOb2RlRmlsdGVyQ29uZGl0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTEzNmJjNAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5o
CkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDYsIDIwMDgg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbl9oCisjZGVmaW5lIE9iakNOb2RlRmlsdGVyQ29u
ZGl0aW9uX2gKKworI2luY2x1ZGUgIk5vZGVGaWx0ZXJDb25kaXRpb24uaCIKKworI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitAcHJvdG9j
b2wgRE9NTm9kZUZpbHRlcjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIE5vZGU7
CisKKyAgICBjbGFzcyBPYmpDTm9kZUZpbHRlckNvbmRpdGlvbiA6IHB1YmxpYyBOb2RlRmlsdGVy
Q29uZGl0aW9uIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9iakNO
b2RlRmlsdGVyQ29uZGl0aW9uPiBjcmVhdGUoaWQgPERPTU5vZGVGaWx0ZXI+IGZpbHRlcikKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBPYmpDTm9kZUZpbHRlckNv
bmRpdGlvbihmaWx0ZXIpKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgc2hvcnQgYWNj
ZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSosIE5vZGUqKSBjb25zdDsKKworICAgIHByaXZhdGU6Cisg
ICAgICAgIE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uKGlkIDxET01Ob2RlRmlsdGVyPiBmaWx0ZXIp
CisgICAgICAgICAgICA6IG1fZmlsdGVyKGZpbHRlcikKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICAgICAgUmV0YWluUHRyPGlkIDxET01Ob2RlRmlsdGVyPiA+IG1fZmlsdGVyOworICAgIH07
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0gYi9XZWJDb3JlL2JpbmRp
bmdzL29iamMvT2JqQ05vZGVGaWx0ZXJDb25kaXRpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOWJlN2Q5ZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9PYmpDTm9kZUZpbHRlckNvbmRpdGlvbi5tbQpAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBKYW1lcyBHLiBTcGV0
aCAoc3BldGhAZW5kLmNvbSkKKyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIChz
YW0ud2VpbmlnQGdtYWlsLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2luY2x1
ZGUgIk9iakNOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisKKyNpbmNsdWRlICJET01Ob2RlRmlsdGVy
LmgiCisjaW5jbHVkZSAiRE9NTm9kZUludGVybmFsLmgiCisjaW5jbHVkZSAiTm9kZUZpbHRlci5o
IgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Nob3J0
IE9iakNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEV4ZWNTdGF0ZSosIE5vZGUqIG5v
ZGUpIGNvbnN0Cit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTm9kZUZpbHRlcjo6
RklMVEVSX1JFSkVDVDsKKyAgICByZXR1cm4gW21fZmlsdGVyLmdldCgpIGFjY2VwdE5vZGU6W0RP
TU5vZGUgX3dyYXBOb2RlOm5vZGVdXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaCBiL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgKaW5kZXggMzU0N2I5NS4u
YjY1NzdmNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVy
ZmFjZXMuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5o
CkBAIC0xMjEsNiArMTIxLDEwIEBACiAtIChET01DU1NSdWxlTGlzdCAqKWdldE1hdGNoZWRDU1NS
dWxlczooRE9NRWxlbWVudCAqKWVsZW1lbnQgcHNldWRvRWxlbWVudDooTlNTdHJpbmcgKilwc2V1
ZG9FbGVtZW50OwogLSAoRE9NQ1NTUnVsZUxpc3QgKilnZXRNYXRjaGVkQ1NTUnVsZXM6KERPTUVs
ZW1lbnQgKillbGVtZW50IHBzZXVkb0VsZW1lbnQ6KE5TU3RyaW5nICopcHNldWRvRWxlbWVudCBh
dXRob3JPbmx5OihCT09MKWF1dGhvck9ubHk7CiAtIChET01Ob2RlTGlzdCAqKWdldEVsZW1lbnRz
QnlOYW1lOihOU1N0cmluZyAqKWVsZW1lbnROYW1lOworLSAoRE9NTm9kZUl0ZXJhdG9yICopY3Jl
YXRlTm9kZUl0ZXJhdG9yOihET01Ob2RlICopcm9vdCB3aGF0VG9TaG93Oih1bnNpZ25lZCl3aGF0
VG9TaG93IGZpbHRlcjooaWQgPERPTU5vZGVGaWx0ZXI+KWZpbHRlciBleHBhbmRFbnRpdHlSZWZl
cmVuY2VzOihCT09MKWV4cGFuZEVudGl0eVJlZmVyZW5jZXM7CistIChET01UcmVlV2Fsa2VyICop
Y3JlYXRlVHJlZVdhbGtlcjooRE9NTm9kZSAqKXJvb3Qgd2hhdFRvU2hvdzoodW5zaWduZWQpd2hh
dFRvU2hvdyBmaWx0ZXI6KGlkIDxET01Ob2RlRmlsdGVyPilmaWx0ZXIgZXhwYW5kRW50aXR5UmVm
ZXJlbmNlczooQk9PTClleHBhbmRFbnRpdHlSZWZlcmVuY2VzOworLSAoRE9NTm9kZUl0ZXJhdG9y
ICopY3JlYXRlTm9kZUl0ZXJhdG9yOihET01Ob2RlICopcm9vdCA6KHVuc2lnbmVkKXdoYXRUb1No
b3cgOihpZCA8RE9NTm9kZUZpbHRlcj4pZmlsdGVyIDooQk9PTClleHBhbmRFbnRpdHlSZWZlcmVu
Y2VzOworLSAoRE9NVHJlZVdhbGtlciAqKWNyZWF0ZVRyZWVXYWxrZXI6KERPTU5vZGUgKilyb290
IDoodW5zaWduZWQpd2hhdFRvU2hvdyA6KGlkIDxET01Ob2RlRmlsdGVyPilmaWx0ZXIgOihCT09M
KWV4cGFuZEVudGl0eVJlZmVyZW5jZXM7CiAjaWZkZWYgRU5BQkxFX1hQQVRICiAtIChET01YUGF0
aEV4cHJlc3Npb24gKiljcmVhdGVFeHByZXNzaW9uOihOU1N0cmluZyAqKWV4cHJlc3Npb24gOihp
ZCA8RE9NWFBhdGhOU1Jlc29sdmVyPilyZXNvbHZlcjsKIC0gKERPTVhQYXRoRXhwcmVzc2lvbiAq
KWNyZWF0ZUV4cHJlc3Npb246KE5TU3RyaW5nICopZXhwcmVzc2lvbiByZXNvbHZlcjooaWQgPERP
TVhQYXRoTlNSZXNvbHZlcj4pcmVzb2x2ZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvck9iakMucG0KaW5kZXggZDZmZDlmNS4uZGYwNjY3NyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCisrKyBiL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQpAQCAtNTA1LDYgKzUwNSw3
IEBAIHN1YiBHZXRPYmpDVHlwZUdldHRlcgogICAgIG15ICR0eXBlR2V0dGVyTWV0aG9kTmFtZSA9
IEdldE9iakNUeXBlR2V0dGVyTmFtZSgkdHlwZSk7CiAKICAgICByZXR1cm4gIldURjo6Z2V0UHRy
KG5hdGl2ZUV2ZW50TGlzdGVuZXIpIiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAg
cmV0dXJuICJXVEY6OmdldFB0cihuYXRpdmVOb2RlRmlsdGVyKSIgaWYgJHR5cGUgZXEgIk5vZGVG
aWx0ZXIiOwogICAgIHJldHVybiAiV1RGOjpnZXRQdHIobmF0aXZlUmVzb2x2ZXIpIiBpZiAkdHlw
ZSBlcSAiWFBhdGhOU1Jlc29sdmVyIjsKICAgICByZXR1cm4gIlskYXJnTmFtZSAkdHlwZUdldHRl
ck1ldGhvZE5hbWVdIjsKIH0KQEAgLTY1NSw2ICs2NTYsNyBAQCBzdWIgQWRkSW5jbHVkZXNGb3JU
eXBlCiAgICAgfQogCiAgICAgJGltcGxJbmNsdWRlc3siT2JqQ0V2ZW50TGlzdGVuZXIuaCJ9ID0g
MSBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgJGltcGxJbmNsdWRlc3siT2JqQ05v
ZGVGaWx0ZXJDb25kaXRpb24uaCJ9ID0gMSBpZiAkdHlwZSBlcSAiTm9kZUZpbHRlciI7CiAgICAg
JGltcGxJbmNsdWRlc3siRXZlbnRUYXJnZXRTVkdFbGVtZW50SW5zdGFuY2UuaCJ9ID0gMSBpZiAk
dHlwZSBlcSAiU1ZHRWxlbWVudEluc3RhbmNlIjsKICAgICAkaW1wbEluY2x1ZGVzeyJET01DdXN0
b21YUGF0aE5TUmVzb2x2ZXIuaCJ9ID0gMSBpZiAkdHlwZSBlcSAiWFBhdGhOU1Jlc29sdmVyIjsK
IApAQCAtMTE5MSwxMyArMTE5Myw2IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgJGlt
cGxJbmNsdWRlc3siRE9NUHJpdmF0ZS5oIn0gPSAxOwotICAgICAgICAgICAgfSBlbHNpZiAoJGlk
bFR5cGUgZXEgIk5vZGVGaWx0ZXIiKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAY3VzdG9tR2V0
dGVyQ29udGVudCwgIiAgICBpZiAobV9maWx0ZXIpXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNo
KEBjdXN0b21HZXR0ZXJDb250ZW50LCAiICAgICAgICAvLyBUaGlzIG5vZGUgaXRlcmF0b3Igd2Fz
IGNyZWF0ZWQgZnJvbSB0aGUgT2JqZWN0aXZlLUMgc2lkZS5cbiIpOwotICAgICAgICAgICAgICAg
IHB1c2goQGN1c3RvbUdldHRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBbW21fZmlsdGVyIHJl
dGFpbl0gYXV0b3JlbGVhc2VdO1xuXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBjdXN0b21H
ZXR0ZXJDb250ZW50LCAiICAgIC8vIFRoaXMgbm9kZSBpdGVyYXRvciB3YXMgY3JlYXRlZCBmcm9t
IHRoZSBDKysgc2lkZS5cbiIpOwotICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9
ICJbJGF0dHJpYnV0ZUNsYXNzTmFtZSAkdHlwZU1ha2VyOldURjo6Z2V0UHRyKCIgLiAkZ2V0dGVy
Q29udGVudEhlYWQ7Ci0gICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICIpXSI7
CiAgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDb252ZXJ0VG9TdHJpbmcifSkgewogICAgICAgICAgICAgICAgICRnZXR0ZXJD
b250ZW50SGVhZCA9ICJXZWJDb3JlOjpTdHJpbmc6Om51bWJlcigiIC4gJGdldHRlckNvbnRlbnRI
ZWFkOwogICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50VGFpbCAuPSAiKSI7CkBAIC0xMjA2
LDYgKzEyMDEsOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgfSBl
bHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzUG9kVHlwZSgkaWRsVHlwZSkpIHsKICAgICAgICAgICAg
ICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAiWyRhdHRyaWJ1dGVUeXBlU2Fuc1B0ciAkdHlwZU1h
a2VyOiIgLiAkZ2V0dGVyQ29udGVudEhlYWQ7CiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRl
bnRUYWlsIC49ICJdIjsKKyAgICAgICAgICAgIH0gZWxzaWYgKElzUHJvdG9jb2xUeXBlKCRpZGxU
eXBlKSBhbmQgJGlkbFR5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICRn
ZXR0ZXJDb250ZW50SGVhZCA9ICJbJGF0dHJpYnV0ZUNsYXNzTmFtZSAkdHlwZU1ha2VyOldURjo6
Z2V0UHRyKCIgLiAkZ2V0dGVyQ29udGVudEhlYWQ7CisgICAgICAgICAgICAgICAgJGdldHRlckNv
bnRlbnRUYWlsIC49ICIpXSI7CiAgICAgICAgICAgICB9IGVsc2lmICgkdHlwZU1ha2VyIG5lICIi
KSB7CiAgICAgICAgICAgICAgICAgIyBTdXJyb3VuZCBnZXR0ZXIgd2l0aCBUeXBlTWFrZXIKICAg
ICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAiWyRhdHRyaWJ1dGVUeXBlU2Fuc1B0
ciAkdHlwZU1ha2VyOldURjo6Z2V0UHRyKCIgLiAkZ2V0dGVyQ29udGVudEhlYWQ7CkBAIC0xMzE2
LDYgKzEzMTQsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICAg
ICAgcHVzaChAcGFyYW1ldGVyTmFtZXMsICRpbXBsR2V0dGVyKTsKICAgICAgICAgICAgICAgICAk
bmVlZHNDdXN0b217IlhQYXRoTlNSZXNvbHZlciJ9ID0gJHBhcmFtTmFtZSBpZiAkaWRsVHlwZSBl
cSAiWFBhdGhOU1Jlc29sdmVyIjsKKyAgICAgICAgICAgICAgICAkbmVlZHNDdXN0b217Ik5vZGVG
aWx0ZXIifSA9ICRwYXJhbU5hbWUgaWYgJGlkbFR5cGUgZXEgIk5vZGVGaWx0ZXIiOwogICAgICAg
ICAgICAgICAgICRuZWVkc0N1c3RvbXsiRXZlbnRMaXN0ZW5lciJ9ID0gJHBhcmFtTmFtZSBpZiAk
aWRsVHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CiAgICAgICAgICAgICAgICAgJG5lZWRzQ3VzdG9t
eyJFdmVudFRhcmdldCJ9ID0gJHBhcmFtTmFtZSBpZiAkaWRsVHlwZSBlcSAiRXZlbnRUYXJnZXQi
OwogICAgICAgICAgICAgICAgICRuZWVkc0N1c3RvbXsiTm9kZVRvUmV0dXJuIn0gPSAkcGFyYW1O
YW1lIGlmICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJldHVybiJ9OwpAQCAtMTM4OSw2
ICsxMzg4LDE0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAg
cHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgIFJlZlB0cjxXZWJDb3JlOjpFdmVudExpc3RlbmVy
PiBuYXRpdmVFdmVudExpc3RlbmVyID0gV2ViQ29yZTo6T2JqQ0V2ZW50TGlzdGVuZXI6OndyYXAo
JHBhcmFtTmFtZSk7XG4iKTsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgIyBzcGVjaWFs
IGNhc2UgdGhlIE5vZGVGaWx0ZXIKKyAgICAgICAgICAgIGlmIChkZWZpbmVkICRuZWVkc0N1c3Rv
bXsiTm9kZUZpbHRlciJ9KSB7CisgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9ICRuZWVk
c0N1c3RvbXsiTm9kZUZpbHRlciJ9OworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29u
dGVudCwgIiAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZUZpbHRlcj4gbmF0aXZlTm9kZUZpbHRlcjtc
biIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICBpZiAoJHBh
cmFtTmFtZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAg
ICAgICAgbmF0aXZlTm9kZUZpbHRlciA9IFdlYkNvcmU6Ok5vZGVGaWx0ZXI6OmNyZWF0ZShXZWJD
b3JlOjpPYmpDTm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKCRwYXJhbU5hbWUpKTtcbiIpOwor
ICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAjIEZJWE1FISBXZSBuZWVkIFtDdXN0b21dIHN1
cHBvcnQgZm9yIE9iakMsIHRvIG1vdmUgdGhlc2UgaGFja3MgaW50byBET01TVkdMZW5ndGgvTWF0
cml4Q3VzdG9tLm1tCiAgICAgICAgICAgICBteSAkc3ZnTWF0cml4Um90YXRlRnJvbVZlY3RvciA9
ICgkcG9kVHlwZSBhbmQgJHBvZFR5cGUgZXEgIkFmZmluZVRyYW5zZm9ybSIgYW5kICRmdW5jdGlv
bk5hbWUgZXEgInJvdGF0ZUZyb21WZWN0b3IiKTsKICAgICAgICAgICAgIG15ICRzdmdNYXRyaXhJ
bnZlcnNlID0gKCRwb2RUeXBlIGFuZCAkcG9kVHlwZSBlcSAiQWZmaW5lVHJhbnNmb3JtIiBhbmQg
JGZ1bmN0aW9uTmFtZSBlcSAiaW52ZXJzZSIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaWRsIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDQyZjdkNmQuLjFkOGVi
ZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwKQEAgLTkzLDE4ICs5MywxNiBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAg
ICAgLy8gRE9NIExldmVsIDIgVHJhbnZlcnNhbCBhbmQgUmFuZ2UgKERvY3VtZW50VHJhdmVyc2Fs
IGludGVyZmFjZSkKIAotI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKQotICAgICAg
ICBOb2RlSXRlcmF0b3IgICAgICAgY3JlYXRlTm9kZUl0ZXJhdG9yKGluIE5vZGUgcm9vdCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBs
b25nIHdoYXRUb1Nob3csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gTm9kZUZpbHRlciBmaWx0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBlbnRpdHlSZWZlcmVuY2VFeHBhbnNpb24pCisg
ICAgICAgIFtPbGRTdHlsZU9iakNdIE5vZGVJdGVyYXRvciBjcmVhdGVOb2RlSXRlcmF0b3IoaW4g
Tm9kZSByb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBOb2RlRmlsdGVyIGZpbHRl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgVHJlZVdhbGtlciAgICAgICAgIGNyZWF0ZVRyZWVXYWxr
ZXIoaW4gTm9kZSByb290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiB1bnNpZ25lZCBsb25nIHdoYXRUb1Nob3csCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIE5vZGVGaWx0ZXIgZmlsdGVyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGVudGl0eVJlZmVyZW5j
ZUV4cGFuc2lvbikKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gVHJlZVdhbGtlciBjcmVhdGVUcmVl
V2Fsa2VyKGluIE5vZGUgcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgd2hhdFRvU2hvdywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIE5vZGVGaWx0ZXIgZmls
dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gYm9vbGVhbiBleHBhbmRFbnRpdHlSZWZlcmVuY2VzKQogICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7Ci0jZW5kaWYgLy8gIWRlZmluZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpCiAK
ICAgICAgICAgLy8gRE9NIExldmVsIDIgQWJzdHJhY3QgVmlld3MgKERvY3VtZW50VmlldyBpbnRl
cmZhY2UpCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwgYi9XZWJD
b3JlL2RvbS9Ob2RlSXRlcmF0b3IuaWRsCmluZGV4IGUxMjlkZTMuLjljODJlNmIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL05vZGVJdGVyYXRvci5pZGwKKysrIGIvV2ViQ29yZS9kb20vTm9kZUl0
ZXJhdG9yLmlkbApAQCAtMjQsNyArMjQsNyBAQCBtb2R1bGUgdHJhdmVyc2FsIHsKICAgICBpbnRl
cmZhY2UgW0N1c3RvbU1hcmtGdW5jdGlvbl0gTm9kZUl0ZXJhdG9yIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgd2hhdFRvU2hvdzsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtPYmpDSXZh
cl0gTm9kZUZpbHRlciBmaWx0ZXI7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlRmls
dGVyIGZpbHRlcjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50
aXR5UmVmZXJlbmNlczsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgcmVmZXJlbmNl
Tm9kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gcG9pbnRlckJlZm9yZVJl
ZmVyZW5jZU5vZGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbCBiL1dl
YkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCmluZGV4IDRmOThkM2EuLjcwMmM3ZjIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsCisrKyBiL1dlYkNvcmUvZG9tL1RyZWVXYWxr
ZXIuaWRsCkBAIC0yNCw3ICsyNCw3IEBAIG1vZHVsZSB0cmF2ZXJzYWwgewogICAgIGludGVyZmFj
ZSBbQ3VzdG9tTWFya0Z1bmN0aW9uXSBUcmVlV2Fsa2VyIHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE5vZGUgcm9vdDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgd2hhdFRvU2hvdzsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtPYmpDSXZhcl0gTm9k
ZUZpbHRlciBmaWx0ZXI7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlRmlsdGVyIGZp
bHRlcjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZXhwYW5kRW50aXR5UmVm
ZXJlbmNlczsgICAgICAgIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgTm9kZSBjdXJyZW50
Tm9kZQogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwot
LSAKMS42LjAuMgoK
</data>
<flag name="review"
          id="10967"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>