<?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>55026</bug_id>
          
          <creation_ts>2011-02-23 02:28:15 -0800</creation_ts>
          <short_desc>[EFL] Doxygen documentation for ewk_window_features and ewk_context_menu</short_desc>
          <delta_ts>2011-03-08 07:42:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Grzegorz Czajkowski">g.czajkowski</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>l.slachciak</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>tkent</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>355958</commentid>
    <comment_count>0</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2011-02-23 02:28:15 -0800</bug_when>
    <thetext>It adds and modifies doxygen documentation for files:

ewk_context_menu.h/cpp
ewk_window_features.h/cpp

Additionally I modified ewk_context_menu_item_select method. Now it returns EINA_FALSE when CONTEXT_MENU is disabled. What is your opinion on that?
I would like to suggest similar policy for the internal methods in ewk_context_menu.cpp - to move CONTEXT_MENU macro inside the functions. When the macro is disabled the methods will be returned EINA_FALSE or 0 (NULL pointer). Current for the internal methods doxygen documentation won&apos;t be available (even if doxgen config will be changed).

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355963</commentid>
    <comment_count>1</comment_count>
      <attachid>83461</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2011-02-23 02:40:36 -0800</bug_when>
    <thetext>Created attachment 83461
Doxygen documentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356480</commentid>
    <comment_count>2</comment_count>
      <attachid>83461</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-02-23 15:21:49 -0800</bug_when>
    <thetext>Comment on attachment 83461
Doxygen documentation

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

&gt; Source/WebKit/efl/ChangeLog:5
&gt; +        [EF] Doxygen documentation for ewk_window_features and ewk_context_menu

[EF] =&gt; [EFL]

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:57
&gt; +    Ewk_Context_Menu* submenu; /** contains the pointer to the submenu of the item */

Please add &quot;&lt;&quot; to &quot;/**&quot;

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:79
&gt; +    EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_MENU, /**&lt; spelling or spelling/grammar sub-menu */

This is not sync with ewk_cookie.cpp. Which one is better?  &quot;/**&lt;&quot; or &quot;///&quot;

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:84
&gt; +    EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU, /**&lt; font sub-menu */

This is not sync with ewk_cookie.cpp. Which one is better?  &quot;/**&lt;&quot; or &quot;///&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356510</commentid>
    <comment_count>3</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-02-23 15:54:35 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 83461 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83461&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/efl/ChangeLog:5
&gt; &gt; +        [EF] Doxygen documentation for ewk_window_features and ewk_context_menu
&gt; 
&gt; [EF] =&gt; [EFL]
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:57
&gt; &gt; +    Ewk_Context_Menu* submenu; /** contains the pointer to the submenu of the item */
&gt; 
&gt; Please add &quot;&lt;&quot; to &quot;/**&quot;
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:79
&gt; &gt; +    EWK_CONTEXT_MENU_ITEM_TAG_SPELLING_MENU, /**&lt; spelling or spelling/grammar sub-menu */
&gt; 
&gt; This is not sync with ewk_cookie.cpp. Which one is better?  &quot;/**&lt;&quot; or &quot;///&quot;
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:84
&gt; &gt; +    EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU, /**&lt; font sub-menu */
&gt; 
&gt; This is not sync with ewk_cookie.cpp. Which one is better?  &quot;/**&lt;&quot; or &quot;///&quot;

IMO,  &quot;/**&lt;&quot; is better because EFL is based on C application.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361536</commentid>
    <comment_count>4</comment_count>
      <attachid>84548</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2011-03-03 05:41:19 -0800</bug_when>
    <thetext>Created attachment 84548
Doxygen documentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361538</commentid>
    <comment_count>5</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2011-03-03 05:48:48 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 83461 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=83461&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/efl/ChangeLog:5
&gt; &gt; +        [EF] Doxygen documentation for ewk_window_features and ewk_context_menu
&gt; 
&gt; [EF] =&gt; [EFL]

fixed

&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:57
&gt; &gt; +    Ewk_Context_Menu* submenu; /** contains the pointer to the submenu of the item */
&gt; 
&gt; Please add &quot;&lt;&quot; to &quot;/**&quot;

added

&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:84
&gt; &gt; +    EWK_CONTEXT_MENU_ITEM_TAG_FONT_MENU, /**&lt; font sub-menu */
&gt; 
&gt; This is not sync with ewk_cookie.cpp. Which one is better?  &quot;/**&lt;&quot; or &quot;///&quot;

All &quot;/// comment&quot; were replaced to &quot;/**&lt; comment */&quot; or to &quot;/** comment */&quot; in ewk_context_menu/ewk_widow_features.
&quot;/**&lt; comment */ is dedicated for struct member
&quot;/** comment */ is dedicated for structs/enums description

I will fix this in ewk_cookies soon because it&apos;s better style in C applications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363856</commentid>
    <comment_count>6</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-03-07 23:43:05 -0800</bug_when>
    <thetext>LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363857</commentid>
    <comment_count>7</comment_count>
      <attachid>84548</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-07 23:48:44 -0800</bug_when>
    <thetext>Comment on attachment 84548
Doxygen documentation

I&apos;m not familiar with Doxygen, but this patch must be harmless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363858</commentid>
    <comment_count>8</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-03-07 23:54:38 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 84548 [details])
&gt; I&apos;m not familiar with Doxygen, but this patch must be harmless.

Is there documentation rule in WebKit ?  I can&apos;t find documentation rule.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363860</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-08 00:05:37 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Is there documentation rule in WebKit ?  I can&apos;t find documentation rule.

I think there is no project-wide agreement and we may use any documentation style for platform-specific files at our own discretion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363864</commentid>
    <comment_count>10</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-03-08 00:11:05 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Is there documentation rule in WebKit ?  I can&apos;t find documentation rule.
&gt; 
&gt; I think there is no project-wide agreement and we may use any documentation style for platform-specific files at our own discretion.

ok, we think doxyzen is good documentation style for EFL port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363963</commentid>
    <comment_count>11</comment_count>
      <attachid>84548</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-08 07:42:50 -0800</bug_when>
    <thetext>Comment on attachment 84548
Doxygen documentation

Clearing flags on attachment: 84548

Committed r80563: &lt;http://trac.webkit.org/changeset/80563&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363964</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-08 07:42:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83461</attachid>
            <date>2011-02-23 02:40:36 -0800</date>
            <delta_ts>2011-03-03 05:41:19 -0800</delta_ts>
            <desc>Doxygen documentation</desc>
            <filename>ewk_context_menu_window_features_docs.patch</filename>
            <type>text/plain</type>
            <size>21962</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCAzNDA1MWJhLi44OTc4NDUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMDItMjMgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWpr
b3dza2lAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0VGXSBEb3h5Z2VuIGRvY3VtZW50YXRpb24gZm9yIGV3a193aW5kb3dfZmVh
dHVyZXMgYW5kIGV3a19jb250ZXh0X21lbnUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU1MDI2CisKKyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51
LmNwcDoKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9zZWxlY3QpOiBpdCByZXR1cm5z
IEVJTkFfRkFMU0Ugd2hlbiBDT05URVhUX01FTlUgaXMgZGlzYWJsZWQKKyAgICAgICAgKiBld2sv
ZXdrX2NvbnRleHRtZW51Lmg6CisgICAgICAgICogZXdrL2V3a193aW5kb3dfZmVhdHVyZXMuY3Bw
OgorICAgICAgICAqIGV3ay9ld2tfd2luZG93X2ZlYXR1cmVzLmg6CisKIDIwMTEtMDItMjIgIExh
c3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2NvbnRleHRtZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29u
dGV4dG1lbnUuY3BwCmluZGV4IDQwYmQyYmEuLjY5MDJmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCkBAIC0zMSwzMyArMzEsNTMgQEAKICNpbmNsdWRlIDxl
aW5hX3NhZmV0eV9jaGVja3MuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKKy8q
KgorICogXHN0cnVjdCAgX0V3a19Db250ZXh0X01lbnUKKyAqIEBicmllZiAgIENvbnRhaW5zIHRo
ZSBjb250ZXh0IG1lbnUgZGF0YS4KKyAqLwogc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51IHsKLSAg
ICB1bnNpZ25lZCBpbnQgX19yZWY7CisgICAgdW5zaWduZWQgaW50IF9fcmVmOyAvKio8IHRoZSBy
ZWZlcmVuY2UgY291bnQgb2YgdGhlIG9iamVjdCAqLwogI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQotICAgIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlcjsKKyAgICBX
ZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXI7IC8qKjwgdGhlIFdlYkNv
cmUncyBvYmplY3Qgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIHRoZSBjb250ZXh0IG1lbnUgKi8K
ICNlbmRpZgotICAgIEV2YXNfT2JqZWN0KiB2aWV3OworICAgIEV2YXNfT2JqZWN0KiB2aWV3OyAv
Kio8IHRoZSB2aWV3IG9iamVjdCAqLwogCi0gICAgRWluYV9MaXN0KiBpdGVtczsKKyAgICBFaW5h
X0xpc3QqIGl0ZW1zOyAvKio8IHRoZSBsaXN0IG9mIGl0ZW1zICovCiB9OwogCisvKioKKyAqIFxz
dHJ1Y3QgIF9Fd2tfQ29udGV4dF9NZW51X0l0ZW0KKyAqIEBicmllZiAgIFJlcHJlc2VudHMgb25l
IGl0ZW0gb2YgdGhlIGNvbnRleHQgbWVudSBvYmplY3QuCisgKi8KIHN0cnVjdCBfRXdrX0NvbnRl
eHRfTWVudV9JdGVtIHsKLSAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlOwotICAg
IEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbjsKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0
ZW1fVHlwZSB0eXBlOyAvKio8IGNvbnRhaW5zIHRoZSB0eXBlIG9mIHRoZSBpdGVtICovCisgICAg
RXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uOyAvKio8IGNvbnRhaW5zIHRoZSBhY3Rpb24g
b2YgdGhlIGl0ZW0gKi8KIAotICAgIGNvbnN0IGNoYXIqIHRpdGxlOwotICAgIEV3a19Db250ZXh0
X01lbnUqIHN1Ym1lbnU7CisgICAgY29uc3QgY2hhciogdGl0bGU7IC8qKjwgY29udGFpbnMgdGhl
IHRpdGxlIG9mIHRoZSBpdGVtICovCisgICAgRXdrX0NvbnRleHRfTWVudSogc3VibWVudTsgLyoq
IGNvbnRhaW5zIHRoZSBwb2ludGVyIHRvIHRoZSBzdWJtZW51IG9mIHRoZSBpdGVtICovCiAKICAg
ICBFaW5hX0Jvb2wgY2hlY2tlZDoxOwogICAgIEVpbmFfQm9vbCBlbmFibGVkOjE7CiB9OwogCisv
KioKKyAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3Qu
CisgKgorICogQHBhcmFtIG1lbnUgdGhlIGNvbnRleHQgbWVudSBvYmplY3QgdG8gaW5jcmVhc2Ug
dGhlIHJlZmVyZW5jZSBjb3VudAorICovCiB2b2lkIGV3a19jb250ZXh0X21lbnVfcmVmKEV3a19D
b250ZXh0X01lbnUqIG1lbnUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVu
dSk7CiAgICAgbWVudS0+X19yZWYrKzsKIH0KIAorLyoqCisgKiBEZWNyZWFzZXMgdGhlIHJlZmVy
ZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LCBwb3NzaWJseSBmcmVlaW5nIGl0LgorICoK
KyAqIFdoZW4gdGhlIHJlZmVyZW5jZSBjb3VudCBpdCdzIHJlYWNoZWQgMCwgdGhlIG1lbnUgd2l0
aCBhbGwgaXRlbXMgYXJlIGZyZWVkLgorICoKKyAqIEBwYXJhbSBtZW51IHRoZSBjb250ZXh0IG1l
bnUgb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqLwogdm9pZCBld2tf
Y29udGV4dF9tZW51X3VucmVmKEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiB7CiAgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk4obWVudSk7CkBAIC03Miw2ICs5MiwxNCBAQCB2b2lkIGV3a19j
b250ZXh0X21lbnVfdW5yZWYoRXdrX0NvbnRleHRfTWVudSogbWVudSkKICAgICBmcmVlKG1lbnUp
OwogfQogCisvKioKKyAqIERlc3Ryb3lzIHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0LgorICoKKyAq
IEBwYXJhbSBtZW51IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0IHRvIGRlc3Ryb3kKKyAqIEByZXR1
cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3MsIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICoK
KyAqIEBzZWUgZXdrX2NvbnRleHRfbWVudV9pdGVtX2ZyZWUKKyAqLwogRWluYV9Cb29sIGV3a19j
b250ZXh0X21lbnVfZGVzdHJveShFd2tfQ29udGV4dF9NZW51KiBtZW51KQogewogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCBFSU5BX0ZBTFNFKTsKQEAgLTg0LDYgKzEx
MiwxMiBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9kZXN0cm95KEV3a19Db250ZXh0X01l
bnUqIG1lbnUpCiAgICAgcmV0dXJuIEVJTkFfVFJVRTsKIH0KIAorLyoqCisgKiBHZXRzIHRoZSBs
aXN0IG9mIGl0ZW1zLgorICoKKyAqIEBwYXJhbSBvIHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0IHRv
IGdldCBsaXN0IG9mIHRoZSBpdGVtcworICogQHJldHVybiB0aGUgbGlzdCBvZiB0aGUgaXRlbXMg
b24gc3VjY2VzcyBvciBAYyAwIG9uIGZhaWx1cmUKKyAqLwogY29uc3QgRWluYV9MaXN0KiBld2tf
Y29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoRXdrX0NvbnRleHRfTWVudSogbykKIHsKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgMCk7CkBAIC05MSw2ICsxMjUsMTkgQEAg
Y29uc3QgRWluYV9MaXN0KiBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoRXdrX0NvbnRl
eHRfTWVudSogbykKICAgICByZXR1cm4gby0+aXRlbXM7CiB9CiAKKy8qKgorICogQ3JlYXRlcyBh
IG5ldyBpdGVtIG9mIHRoZSBjb250ZXh0IG1lbnUuCisgKgorICogQHBhcmFtIHR5cGUgc3BlY2lm
aWVzIGEgdHlwZSBvZiB0aGUgaXRlbQorICogQHBhcmFtIGFjdGlvbiBzcGVjaWZpZXMgYSBhY3Rp
b24gb2YgdGhlIGl0ZW0KKyAqIEBwYXJhbSBzdWJtZW51IHNwZWNpZmllcyBhIHN1Ym1lbnUgb2Yg
dGhlIGl0ZW0KKyAqIEBwYXJhbSB0aXRsZSBzcGVjaWZpZXMgYSB0aXRsZSBvZiB0aGUgaXRlbQor
ICogQHBhcmFtIGNoZWNrZWQKKyAqIEBwYXJhbSBlbmFibGVkIEBjIEVJTkFfVFJVRSB0byBlbmFi
bGUgdGhlIGl0ZW0gb3IgQGMgRUlOQV9GQUxTRSB0byBkaXNhYmxlCisgKiBAcmV0dXJuIHRoZSBw
b2ludGVyIHRvIHRoZSBuZXcgaXRlbSBvbiBzdWNjZXNzIG9yIEBjIDAgb24gZmFpbHVyZQorICoK
KyAqIEBub3RlIFRoZSByZXR1cm4gdmFsdWUgQGIgc2hvdWxkIEBiIGJlIGZyZWVkIGFmdGVyIHVz
ZS4KKyAqLwogRXdrX0NvbnRleHRfTWVudV9JdGVtKiBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3
KEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUsCiAgICAgICAgIEV3a19Db250ZXh0X01l
bnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRfTWVudSogc3VibWVudSwKICAgICAgICAgY29u
c3QgY2hhciogdGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5hYmxlZCkKQEAg
LTEwOSw2ICsxNTYsMTMgQEAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBld2tfY29udGV4dF9tZW51
X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUKICAgICByZXR1cm4gaXRl
bTsKIH0KIAorLyoqCisgKiBTZWxlY3RzIHRoZSBpdGVtIGZyb20gdGhlIGNvbnRleHQgbWVudSBv
YmplY3QuCisgKgorICogQHBhcmFtIG1lbnUgdGhlIGNvbnRleHQgbWVudSBvYmplY3QKKyAqIEBw
YXJhbSBpdGVtIHRoZSBpdGVtIGlzIHNlbGVjdGVkCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBv
biBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICovCiBFaW5hX0Jvb2wgZXdr
X2NvbnRleHRfbWVudV9pdGVtX3NlbGVjdChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBFd2tfQ29u
dGV4dF9NZW51X0l0ZW0qIGl0ZW0pCiB7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0x
MjAsMTEgKzE3NCwyMCBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX3NlbGVjdChF
d2tfQ29udGV4dF9NZW51KiBtZW51LCBFd2tfQ29udGV4dF9NZW51XwogICAgIC8vIERvbid0IGNh
cmUgYWJvdXQgdGl0bGUgYW5kIHN1Ym1lbnUgYXMgdGhleSdyZSBub3QgdXNlZCBhZnRlciB0aGlz
IHBvaW50LgogICAgIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSBjb3JlKHR5cGUsIGFjdGlvbiwg
V1RGOjpTdHJpbmcoKSk7CiAgICAgbWVudS0+Y29udHJvbGxlci0+Y29udGV4dE1lbnVJdGVtU2Vs
ZWN0ZWQoJmNvcmUpOwotI2VuZGlmCi0KICAgICByZXR1cm4gRUlOQV9UUlVFOworI2Vsc2UKKyAg
ICByZXR1cm4gRUlOQV9GQUxTRTsKKyNlbmRpZgogfQogCisvKioKKyAqIERlc3Ryb3lzIHRoZSBp
dGVtIG9mIHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0LgorICoKKyAqIEBwYXJhbSBpdGVtIHRoZSBp
dGVtIHRvIGRlc3Ryb3kKKyAqCisgKiBAc2VlIGV3a19jb250ZXh0X21lbnVfZGVzdHJveQorICog
QHNlZSBld2tfY29udGV4dF9tZW51X3VucmVmCisgKi8KIHZvaWQgZXdrX2NvbnRleHRfbWVudV9p
dGVtX2ZyZWUoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtKQogewogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOKGl0ZW0pOwpAQCAtMTMzLDEyICsxOTYsMjkgQEAgdm9pZCBld2tfY29u
dGV4dF9tZW51X2l0ZW1fZnJlZShFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0pCiAgICAgZnJl
ZShpdGVtKTsKIH0KIAorLyoqCisgKiBHZXRzIHR5cGUgb2YgdGhlIGl0ZW0uCisgKgorICogQHBh
cmFtIG8gdGhlIGl0ZW0gdG8gZ2V0IHRoZSB0eXBlCisgKiBAcmV0dXJuIHR5cGUgb2YgdGhlIGl0
ZW0gb24gc3VjY2VzcyBvciBAYyBFV0tfQUNUSU9OX1RZUEUgb24gZmFpbHVyZQorICoKKyAqIEBz
ZWUgZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfc2V0CisgKi8KIEV3a19Db250ZXh0X01lbnVf
SXRlbV9UeXBlIGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX2dldChFd2tfQ29udGV4dF9NZW51
X0l0ZW0qIG8pCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIEVXS19B
Q1RJT05fVFlQRSk7CiAgICAgcmV0dXJuIG8tPnR5cGU7CiB9CiAKKy8qKgorICogU2V0cyB0aGUg
dHlwZSBvZiBpdGVtLgorICoKKyAqIEBwYXJhbSBvIHRoZSBpdGVtIHRvIHNldCB0aGUgdHlwZQor
ICogQHBhcmFtIHR5cGUgYSBuZXcgdHlwZSBmb3IgdGhlIGl0ZW0gb2JqZWN0CisgKiBAcmV0dXJu
IEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzLCBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAq
CisgKiBAc2VlIGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX2dldAorICovCiBFaW5hX0Jvb2wg
ZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywg
RXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwobywgRUlOQV9GQUxTRSk7CkBAIC0xNDYsMTIgKzIyNiwyOSBAQCBFaW5h
X0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfc2V0KEV3a19Db250ZXh0X01lbnVfSXRl
bSogbywgRXdrX0NvbnRleHRfTQogICAgIHJldHVybiBFSU5BX1RSVUU7CiB9CiAKKy8qKgorICog
R2V0cyBhbiBhY3Rpb24gb2YgdGhlIGl0ZW0uCisgKgorICogQHBhcmFtIG8gdGhlIGl0ZW0gdG8g
Z2V0IHRoZSBhY3Rpb24KKyAqIEByZXR1cm4gYW4gYWN0aW9uIG9mIHRoZSBpdGVtIG9uIHN1Y2Nl
c3Mgb3IgQGMgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19OT19BQ1RJT04gb24gZmFpbHVyZQor
ICoKKyAqIEBzZWUgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlvbl9zZXQKKyAqLwogRXdrX0Nv
bnRleHRfTWVudV9BY3Rpb24gZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlvbl9nZXQoRXdrX0Nv
bnRleHRfTWVudV9JdGVtKiBvKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChvLCBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX05PX0FDVElPTik7CiAgICAgcmV0dXJuIG8t
PmFjdGlvbjsKIH0KIAorLyoqCisgKiBTZXRzIGFuIGFjdGlvbiBvZiB0aGUgaXRlbS4KKyAqCisg
KiBAcGFyYW0gbyB0aGUgaXRlbSB0byBzZXQgdGhlIGFjdGlvbgorICogQHBhcmFtIGFjdGlvbiBh
IG5ldyBhY3Rpb24gZm9yIHRoZSBpdGVtIG9iamVjdAorICogQHJldHVybiBAYyBFSU5BX1RSVUUg
b24gc3VjY2Vzcywgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKgorICogQHNlZSBld2tf
Y29udGV4dF9tZW51X2l0ZW1fYWN0aW9uX2dldAorICovCiBFaW5hX0Jvb2wgZXdrX2NvbnRleHRf
bWVudV9pdGVtX2FjdGlvbl9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvLCBFd2tfQ29udGV4
dF9NZW51X0FjdGlvbiBhY3Rpb24pCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKG8sIEVJTkFfRkFMU0UpOwpAQCAtMTU5LDEyICsyNTYsMjkgQEAgRWluYV9Cb29sIGV3a19j
b250ZXh0X21lbnVfaXRlbV9hY3Rpb25fc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywgRXdr
X0NvbnRleHQKICAgICByZXR1cm4gRUlOQV9UUlVFOwogfQogCisvKioKKyAqIEdldHMgYSB0aXRs
ZSBvZiB0aGUgaXRlbS4KKyAqCisgKiBAcGFyYW0gbyB0aGUgaXRlbSB0byBnZXQgdGhlIHRpdGxl
CisgKiBAcmV0dXJuIGEgdGl0bGUgb2YgdGhlIGl0ZW0gb24gc3VjY2Vzcywgb3IgQGMgMCBvbiBm
YWlsdXJlCisgKgorICogQHNlZSBld2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfc2V0CisgKi8K
IGNvbnN0IGNoYXIqIGV3a19jb250ZXh0X21lbnVfaXRlbV90aXRsZV9nZXQoRXdrX0NvbnRleHRf
TWVudV9JdGVtKiBvKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCAw
KTsKICAgICByZXR1cm4gby0+dGl0bGU7CiB9CiAKKy8qKgorICogU2V0cyBhIHRpdGxlIG9mIHRo
ZSBpdGVtLgorICoKKyAqIEBwYXJhbSBvIHRoZSBpdGVtIHRvIHNldCB0aGUgdGl0bGUKKyAqIEBw
YXJhbSB0aXRsZSBhIG5ldyB0aXRsZSBmb3IgdGhlIGl0ZW0gb2JqZWN0CisgKiBAcmV0dXJuIGEg
bmV3IHRpdGxlIG9mIHRoZSBpdGVtIG9uIHN1Y2Nlc3Mgb3IgQGMgMCBvbiBmYWlsdXJlCisgKgor
ICogQHNlZSBld2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfZ2V0CisgKi8KIGNvbnN0IGNoYXIq
IGV3a19jb250ZXh0X21lbnVfaXRlbV90aXRsZV9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBv
LCBjb25zdCBjaGFyKiB0aXRsZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwobywgMCk7CkBAIC0xODUsMTIgKzI5OSwyOSBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2NoZWNrZWRfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywgRWluYV9Cb29sCiAg
ICAgcmV0dXJuIEVJTkFfVFJVRTsKIH0KIAorLyoqCisgKiBHZXRzIGlmIHRoZSBpdGVtIGlzIGVu
YWJsZWQuCisgKgorICogQHBhcmFtIG8gdGhlIGl0ZW0gdG8gZ2V0IGVuYWJsZWQgc3RhdGUKKyAq
IEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIGl0J3MgZW5hYmxlZCwgQGMgRUlOQV9GQUxTRSBpZiBu
b3Qgb3Igb24gZmFpbHVyZQorICoKKyAqIEBzZWUgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJs
ZWRfc2V0CisgKi8KIEVpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQo
RXdrX0NvbnRleHRfTWVudV9JdGVtKiBvKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChvLCBFSU5BX0ZBTFNFKTsKICAgICByZXR1cm4gby0+ZW5hYmxlZDsKIH0KIAorLyoq
CisgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSBpdGVtLgorICoKKyAqIEBwYXJhbSBvIHRoZSBpdGVt
IHRvIGVuYWJsZS9kaXNhYmxlCisgKiBAcGFyYW0gZW5hYmxlZCBAYyBFSU5BX1RSVUUgdG8gZW5h
YmxlIHRoZSBpdGVtIG9yIEBjIEVJTkFfRkFMU0UgdG8gZGlzYWJsZQorICogQHJldHVybiBAYyBF
SU5BX1RSVUUgb24gc3VjY2Vzcywgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKgorICog
QHNlZSBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQKKyAqLwogRWluYV9Cb29sIGV3
a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0gKm8s
IEVpbmFfQm9vbCBlbmFibGVkKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChvLCBFSU5BX0ZBTFNFKTsKQEAgLTIwNSwxMiArMzM2LDEzIEBAIEVpbmFfQm9vbCBld2tfY29u
dGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtICpvLCBFaW5h
X0Jvb2wKIC8qKgogICogQGludGVybmFsCiAgKgotICogQ3JlYXRlcyBjb250ZXh0IG9uIHZpZXcu
CisgKiBDcmVhdGVzIGFuIGVtcHR5IGNvbnRleHQgbWVudSBvbiB2aWV3LgogICoKLSAqIEBwYXJh
bSB2aWV3IFZpZXcuCi0gKiBAcGFyYW0gQ29udHJvbGxlciBDb250ZXh0IE1lbnUgQ29udHJvbGxl
ci4KKyAqIEBwYXJhbSB2aWV3IHRoZSB2aWV3IG9iamVjdAorICogQHBhcmFtIGNvbnRyb2xsZXIg
dGhlIFdlYkNvcmUncyBjb250ZXh0IG1lbnUgY29udHJvbGxlcgorICogQHJldHVybiBuZXdseSBh
bGxvY2F0ZWQgdGhlIGNvbnRleHQgbWVudSBvbiBzdWNjZXNzIG9yIEBjIDAgb24gZXJyb3JzCiAg
KgotICogQHJldHVybiBuZXdseSBhbGxvY2F0ZWQgY29udGV4dCBtZW51IG9yIEBjIDAgb24gZXJy
b3JzLgorICogQG5vdGUgZW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LG5ldyIKICAqLwogRXdr
X0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdl
YkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogY29udHJvbGxlcikKIHsKQEAgLTIzMyw2ICsz
NjUsMTkgQEAgRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmpl
Y3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q28KICAgICByZXR1cm4gbWVudTsKIH0KIAor
LyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBGcmVlcyB0aGUgY29udGV4dCBtZW51LgorICoKKyAq
IEBwYXJhbSBvIHRoZSB2aWV3IG9iamVjdAorICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3Vj
Y2Vzcywgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKgorICogQG5vdGUgZW1pdHMgYSBz
aWduYWwgImNvbnRleHRtZW51LGZyZWUiCisgKgorICogQHNlZSBld2tfY29udGV4dF9tZW51X3Vu
cmVmCisgKiBAc2VlIGV3a19jb250ZXh0X21lbnVfZGVzdHJveQorICovCiBFaW5hX0Jvb2wgZXdr
X2NvbnRleHRfbWVudV9mcmVlKEV3a19Db250ZXh0X01lbnUqIG8pCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIEVJTkFfRkFMU0UpOwpAQCAtMjQxLDYgKzM4NiwxNyBA
QCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9mcmVlKEV3a19Db250ZXh0X01lbnUqIG8pCiAg
ICAgcmV0dXJuIEVJTkFfVFJVRTsKIH0KIAorLyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBBcHBl
bmRzIHRoZSBXZWJDb3JlJ3MgaXRlbSB0byB0aGUgY29udGV4dCBtZW51IG9iamVjdC4KKyAqCisg
KiBAcGFyYW0gbyB0aGUgY29udGV4dCBtZW51IG9iamVjdAorICogQHBhcmFtIGNvcmUgdGhlIFdl
YkNvcmUncyBjb250ZXh0IG1lbnUgaXRlbSB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIGNvbnRl
eHQgbWVudQorICogQG5vdGUgZW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LGl0ZW0sYXBwZW5k
ZWQiCisgKgorICogQHNlZSBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3CisgKi8KIHZvaWQgZXdr
X2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBvLCBXZWJDb3JlOjpD
b250ZXh0TWVudUl0ZW0mIGNvcmUpCiB7CiAgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUg
dHlwZSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlPihjb3JlLnR5cGUo
KSk7CkBAIC0yNTUsNiArNDExLDE4IEBAIHZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVu
ZChFd2tfQ29udGV4dF9NZW51KiBvLCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mCiAgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChvLT52aWV3LCAiY29udGV4dG1lbnUsaXRlbSxh
cHBlbmRlZCIsIG8pOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICoKKyAqIEVtaXRzIGEgc2ln
bmFsIHdpdGggdGhlIGl0ZW1zIG9mIHRoZSBjb250ZXh0IG1lbnUuCisgKgorICogQHBhcmFtIG8g
dGhlIGNvbnRleHQgbWVudSBvYmplY3QKKyAqIEByZXR1cm4gdGhlIHNhbWUgY29udGV4dCBtZW51
IG9iamVjdCB0aGF0IHdhcyBnaXZlbiB0aHJvdWdoIHBhcmFtZXRlcgorICoKKyAqIEBub3RlIGVt
aXRzIGEgc2lnbmFsICJjb250ZXh0bWVudSxjdXN0b21pemUiCisgKgorICogQHNlZSBld2tfY29u
dGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQKKyAqLwogRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRl
eHRfbWVudV9jdXN0b21fZ2V0KEV3a19Db250ZXh0X01lbnUqIG8pCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIDApOwpAQCAtMjYzLDYgKzQzMSwxMyBAQCBFd2tfQ29u
dGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X2N1c3RvbV9nZXQoRXdrX0NvbnRleHRfTWVudSog
bykKICAgICByZXR1cm4gbzsKIH0KIAorLyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBFbWl0cyBh
IHNpZ25hbCAiY29udGV4dG1lbnUsc2hvdyIKKyAqCisgKiBAcGFyYW0gbyB0aGUgY29udGV4dCBt
ZW51IG9iamVjdAorICovCiB2b2lkIGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9N
ZW51KiBvKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKG8pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCmluZGV4IGM1YWRiNDguLjIxYjE3N2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgKQEAgLTE4LDYgKzE4LDExIEBACiAg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAqLwogCisvKioKKyAqIEBmaWxlICAgIGV3
a19jb250ZXh0bWVudS5oCisgKiBAYnJpZWYgICBEZXNjcmliZXMgdGhlIGNvbnRleHQgbWVudSBB
UEkuCisgKi8KKwogI2lmbmRlZiBld2tfY29udGV4dG1lbnVfaAogI2RlZmluZSBld2tfY29udGV4
dG1lbnVfaAogCkBAIC0zMCw3ICszNSwxMSBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLy8g
a2VlcCB0aGlzIGluIHN5bmMgd2l0aCBDb250ZXh0TWVudUl0ZW0uaAorLyoqCisgKiBcZW51bSAg
ICBfRXdrX0NvbnRleHRfTWVudV9BY3Rpb24KKyAqIEBicmllZiAgIFByb3ZpZGVzIHRoZSBhY3Rp
b25zIG9mIGl0ZW1zIGZvciB0aGUgY29udGV4dCBtZW51LgorICogQGluZm8gICAgS2VlcCB0aGlz
IGluIHN5bmMgd2l0aCBDb250ZXh0TWVudUl0ZW0uaAorICovCiBlbnVtIF9Fd2tfQ29udGV4dF9N
ZW51X0FjdGlvbiB7CiAgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19OT19BQ1RJT04gPSAw
LCAvLyB0aGlzIGl0ZW0gaXMgbm90IGFjdHVhbGx5IGluIHdlYl91aWRlbGVnYXRlLmgKICAgICBF
V0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX09QRU5fTElOS19JTl9ORVdfV0lORE9XID0gMSwKQEAg
LTY3LDEyICs3NiwxMiBAQCBlbnVtIF9Fd2tfQ29udGV4dF9NZW51X0FjdGlvbiB7CiAgICAgRVdL
X0NPTlRFWFRfTUVOVV9JVEVNX1BERlBSRVZJT1VTX1BBR0UsCiAgICAgRVdLX0NPTlRFWFRfTUVO
VV9JVEVNX1RBR19PUEVOX0xJTksgPSAyMDAwLAogICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9U
QUdfSUdOT1JFX0dSQU1NQVIsCi0gICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TUEVMTElO
R19NRU5VLCAvLyBzcGVsbGluZyBvciBzcGVsbGluZy9ncmFtbWFyIHN1Yi1tZW51CisgICAgRVdL
X0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TUEVMTElOR19NRU5VLCAvKio8IHNwZWxsaW5nIG9yIHNw
ZWxsaW5nL2dyYW1tYXIgc3ViLW1lbnUgKi8KICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFH
X1NIT1dfU1BFTExJTkdfUEFORUwsCiAgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19DSEVD
S19TUEVMTElORywKICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0NIRUNLX1NQRUxMSU5H
X1dISUxFX1RZUElORywKICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0NIRUNLX0dSQU1N
QVJfV0lUSF9TUEVMTElORywKLSAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0ZPTlRfTUVO
VSwgLy8gZm9udCBzdWItbWVudQorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfRk9OVF9N
RU5VLCAvKio8IGZvbnQgc3ViLW1lbnUgKi8KICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFH
X1NIT1dfRk9OVFMsCiAgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19CT0xELAogICAgIEVX
S19DT05URVhUX01FTlVfSVRFTV9UQUdfSVRBTElDLApAQCAtODAsNDEgKzg5LDQzIEBAIGVudW0g
X0V3a19Db250ZXh0X01lbnVfQWN0aW9uIHsKICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFH
X09VVExJTkUsCiAgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TVFlMRVMsCiAgICAgRVdL
X0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TSE9XX0NPTE9SUywKLSAgICBFV0tfQ09OVEVYVF9NRU5V
X0lURU1fVEFHX1NQRUVDSF9NRU5VLCAvLyBzcGVlY2ggc3ViLW1lbnUKKyAgICBFV0tfQ09OVEVY
VF9NRU5VX0lURU1fVEFHX1NQRUVDSF9NRU5VLCAvKio8IHNwZWVjaCBzdWItbWVudSAqLwogICAg
IEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfU1RBUlRfU1BFQUtJTkcsCiAgICAgRVdLX0NPTlRF
WFRfTUVOVV9JVEVNX1RBR19TVE9QX1NQRUFLSU5HLAotICAgIEVXS19DT05URVhUX01FTlVfSVRF
TV9UQUdfV1JJVElOR19ESVJFQ1RJT05fTUVOVSwgLy8gd3JpdGluZyBkaXJlY3Rpb24gc3ViLW1l
bnUKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1dSSVRJTkdfRElSRUNUSU9OX01FTlUs
IC8qKjwgd3JpdGluZyBkaXJlY3Rpb24gc3ViLW1lbnUgKi8KICAgICBFV0tfQ09OVEVYVF9NRU5V
X0lURU1fVEFHX0RFRkFVTFRfRElSRUNUSU9OLAogICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9U
QUdfTEVGVF9UT19SSUdIVCwKICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1JJR0hUX1RP
X0xFRlQsCiAgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19QREZTSU5HTEVfUEFHRV9TQ1JP
TExJTkcsCiAgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19QREZGQUNJTkdfUEFHRVNfU0NS
T0xMSU5HLAotICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfVEVYVF9ESVJFQ1RJT05fTUVO
VSwgLy8gdGV4dCBkaXJlY3Rpb24gc3ViLW1lbnUKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1f
VEFHX1RFWFRfRElSRUNUSU9OX01FTlUsIC8qKjwgdGV4dCBkaXJlY3Rpb24gc3ViLW1lbnUgKi8K
ICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1RFWFRfRElSRUNUSU9OX0RFRkFVTFQsCiAg
ICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19URVhUX0RJUkVDVElPTl9MRUZUX1RPX1JJR0hU
LAogICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfVEVYVF9ESVJFQ1RJT05fUklHSFRfVE9f
TEVGVCwKICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fQkFTRV9DVVNUT01fVEFHID0gNTAwMCwK
ICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fQkFTRV9BUFBMSUNBVElPTl9UQUcgPSAxMDAwMAog
fTsKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX0NvbnRleHRfTWVudV9BY3Rpb24K
IHR5cGVkZWYgZW51bSBfRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gRXdrX0NvbnRleHRfTWVudV9B
Y3Rpb247CiAKLS8vIGtlZXAgdGhpcyBpbiBzeW5jIHdpdGggQ29udGV4dE1lbnVJdGVtLmgKKy8q
KgorICogXGVudW0gICAgX0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlCisgKiBAYnJpZWYgICBE
ZWZpbmVzIHRoZSB0eXBlcyBvZiB0aGUgaXRlbXMgZm9yIHRoZSBjb250ZXh0IG1lbnUuCisgKiBA
aW5mbyAgICBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIENvbnRleHRNZW51SXRlbS5oCisgKi8KIGVu
dW0gX0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHsKICAgICBFV0tfQUNUSU9OX1RZUEUsCiAg
ICAgRVdLX0NIRUNLQUJMRV9BQ1RJT05fVFlQRSwKICAgICBFV0tfU0VQQVJBVE9SX1RZUEUsCiAg
ICAgRVdLX1NVQk1FTlVfVFlQRQogfTsKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdr
X0NvbnRleHRfTWVudV9JdGVtX1R5cGUKIHR5cGVkZWYgZW51bSBfRXdrX0NvbnRleHRfTWVudV9J
dGVtX1R5cGUgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGU7CiAKLS8qKgotICogVGhlIHN0
cnVjdHVyZSB0byBjb250YWluIENvbnRleHQgTWVudSBkYXRhCi0gKi8KKy8vLyBDcmVhdGVzIGEg
dHlwZSBuYW1lIGZvciBfRXdrX0NvbnRleHRfTWVudQogdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db250
ZXh0X01lbnUgICAgICAgICAgICBFd2tfQ29udGV4dF9NZW51OwogCi0vKioKLSAqIFJlcHJlc2Vu
dHMgb25lIGl0ZW0gZnJvbSBFd2tfQ29udGV4dF9NZW51Ci0gKi8KKy8vLyBDcmVhdGVzIGEgdHlw
ZSBuYW1lIGZvciBfRXdrX0NvbnRleHRfTWVudV9JdGVtCiB0eXBlZGVmIHN0cnVjdCBfRXdrX0Nv
bnRleHRfTWVudV9JdGVtICAgICAgIEV3a19Db250ZXh0X01lbnVfSXRlbTsKIAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3dpbmRvd19mZWF0dXJlcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3dpbmRvd19mZWF0dXJlcy5jcHAKaW5kZXggMzg1NWU4OS4u
NGEzMTFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a193aW5kb3dfZmVh
dHVyZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfd2luZG93X2ZlYXR1cmVz
LmNwcApAQCAtMjYsMTcgKzI2LDIxIEBACiAKICNpbmNsdWRlIDxFaW5hLmg+CiAKKy8qKgorICog
XHN0cnVjdCAgX0V3a19XaW5kb3dfRmVhdHVyZXMKKyAqIEBicmllZiAgIENvbnRhaW5zIHRoZSB3
aW5kb3cgZmVhdHVyZXMgZGF0YS4KKyAqLwogc3RydWN0IF9Fd2tfV2luZG93X0ZlYXR1cmVzIHsK
ICAgICB1bnNpZ25lZCBpbnQgX19yZWY7CiAgICAgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMqIGNv
cmU7CiB9OwogCiAvKioKLSAqIERlY3JlYXNlIHRoZSByZWYgY291bnQgb2YgYW4gRXdrX1dpbmRv
d19GZWF0dXJlcywgcG9zc2libHkgZnJlZWluZyBpdC4KKyAqIERlY3JlYXNlcyB0aGUgcmVmZXJl
Y2UgY291bnQgb2YgYW4gRXdrX1dpbmRvd19GZWF0dXJlcywgcG9zc2libHkgZnJlZWluZyBpdC4K
ICAqCi0gKiBXaGVuIGl0cyByZWYgY291bnQgcmVhY2hlcyAwLCBAcGFyYW0gd2luZG93X2ZlYXR1
cmVzIGlzIGZyZWVkLgorICogV2hlbiB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3Qg
cmVhY2hlcyAwLCB0aGUgb25lIGlzIGZyZWVkLgogICoKLSAqIEBwYXJhbSB3aW5kb3dfZmVhdHVy
ZXMgVGhlIHdpbmRvdydzIGZlYXR1cmVzLgorICogQHBhcmFtIHdpbmRvd19mZWF0dXJlcyB0aGUg
b2JqZWN0IHRvIGRlY3JlYXNlIHJlZmVyZW5jZSBjb3VudAogICovCiBFQVBJIHZvaWQgZXdrX3dp
bmRvd19mZWF0dXJlc191bnJlZihFd2tfV2luZG93X0ZlYXR1cmVzKiB3aW5kb3dfZmVhdHVyZXMp
CiB7CkBAIC01Miw5ICs1Niw5IEBAIEVBUEkgdm9pZCBld2tfd2luZG93X2ZlYXR1cmVzX3VucmVm
KEV3a19XaW5kb3dfRmVhdHVyZXMqIHdpbmRvd19mZWF0dXJlcykKIH0KIAogLyoqCi0gKiBJbmNy
ZWFzZSB0aGUgcmVmIGNvdW50IG9mIGFuIEV3a19XaW5kb3dfRmVhdHVyZXMKKyAqIEluY3JlYXNl
cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIGFuIEV3a19XaW5kb3dfRmVhdHVyZXMuCiAgKgotICog
QHBhcmFtIHdpbmRvd19mZWF0dXJlcyBUaGUgd2luZG93J3MgZmVhdHVyZXMuCisgKiBAcGFyYW0g
d2luZG93X2ZlYXR1cmVzIHRoZSBvYmplY3QgdG8gaW5jcmVhc2UgcmVmZXJlbmNlIGNvdW50CiAg
Ki8KIEVBUEkgdm9pZCBld2tfd2luZG93X2ZlYXR1cmVzX3JlZihFd2tfV2luZG93X0ZlYXR1cmVz
KiB3aW5kb3dfZmVhdHVyZXMpCiB7CkBAIC02MywxNSArNjcsMjAgQEAgRUFQSSB2b2lkIGV3a193
aW5kb3dfZmVhdHVyZXNfcmVmKEV3a19XaW5kb3dfRmVhdHVyZXMqIHdpbmRvd19mZWF0dXJlcykK
IH0KIAogLyoqCi0gKiBHZXQgYm9vbGVhbiBwcm9wZXJ0aWVzCisgKiBHZXRzIGJvb2xlYW4gcHJv
cGVydGllcyBvZiBhbiBFd2tfV2luZG93X0ZlYXR1cmVzLgorICoKKyAqIFByb3BlcnRpZXMgYXJl
IHJldHVybmVkIGluIHRoZSByZXNwZWN0aXZlIHBvaW50ZXJzLiBQYXNzaW5nIEBjIDAgdG8gYW55
IG9mCisgKiB0aGVzZSBwb2ludGVycyB3aWxsIG1ha2UgdGhhdCBwcm9wZXJ0eSB0byBub3QgYmUg
cmV0dXJuZWQuCiAgKgotICogQHBhcmFtIHdpbmRvd19mZWF0dXJlcyBBIHdpbmRvd19mZWF0dXJl
cy4KLSAqIEBwYXJhbSB0b29sYmFyX3Zpc2libGUgcG9pbnRlciB0byBzdG9yZSBpZiB0b29sYmFy
IGlzIHZpc2libGUuCi0gKiBAcGFyYW0gc3RhdHVzYmFyX3Zpc2libGUgcG9pbnRlciB0byBzdG9y
ZSBpZiBzdGF0dXNiYXIgaXMgdmlzaWJsZS4KLSAqIEBwYXJhbSBzY3JvbGxiYXJzX3Zpc2libGUg
cG9pbnRlciB0byBzdG9yZSBpZiBzY3JvbGxiYXJzIGlzIHZpc2libGUuCi0gKiBAcGFyYW0gbWVu
dWJhcl92aXNpYmxlIHBvaW50ZXIgdG8gc3RvcmUgaWYgbWVudWJhciBpcyB2aXNpYmxlLgotICog
QHBhcmFtIGxvY2F0aW9uYmFyX3Zpc2libGUgcG9pbnRlciB0byBzdG9yZSBpZiBsb2NhdGlvbmJh
ciBpcyB2aXNpYmxlLgotICogQHBhcmFtIGZ1bGxzY3JlZW4gcG9pbnRlciB0byBzdG9yZSBpZiBm
dWxsc2NyZWVuIGlzIGVuYWJsZWQuCisgKiBAcGFyYW0gd2luZG93X2ZlYXR1cmVzIHRoZSBvYmpl
Y3QgdG8gZ2V0IGJvb2xlYW4gcHJvcGVydGllcworICogQHBhcmFtIHRvb2xiYXJfdmlzaWJsZSB0
aGUgcG9pbnRlciB0byBzdG9yZSBpZiB0b29sYmFyIGlzIHZpc2libGUKKyAqIEBwYXJhbSBzdGF0
dXNiYXJfdmlzaWJsZSB0aGUgcG9pbnRlciB0byBzdG9yZSBpZiBzdGF0dXNiYXIgaXMgdmlzaWJs
ZQorICogQHBhcmFtIHNjcm9sbGJhcnNfdmlzaWJsZSB0aGUgcG9pbnRlciB0byBzdG9yZSBpZiBz
Y3JvbGxiYXJzIGlzIHZpc2libGUKKyAqIEBwYXJhbSBtZW51YmFyX3Zpc2libGUgdGhlIHBvaW50
ZXIgdG8gc3RvcmUgaWYgbWVudWJhciBpcyB2aXNpYmxlCisgKiBAcGFyYW0gbG9jYXRpb25iYXJf
dmlzaWJsZSB0aGUgcG9pbnRlciB0byBzdG9yZSBpZiBsb2NhdGlvbmJhciBpcyB2aXNpYmxlCisg
KiBAcGFyYW0gZnVsbHNjcmVlbiB0aGUgcG9pbnRlciB0byBzdG9yZSBpZiBmdWxsc2NyZWVuIGlz
IGVuYWJsZWQKKyAqCisgKiBAc2VlIGV3a193aW5kb3dfZmVhdHVyZXNfaW50X3Byb3BlcnR5X2dl
dAogICovCiBFQVBJIHZvaWQgZXdrX3dpbmRvd19mZWF0dXJlc19ib29sX3Byb3BlcnR5X2dldChF
d2tfV2luZG93X0ZlYXR1cmVzKiB3aW5kb3dfZmVhdHVyZXMsIEVpbmFfQm9vbCogdG9vbGJhcl92
aXNpYmxlLCBFaW5hX0Jvb2wqIHN0YXR1c2Jhcl92aXNpYmxlLCBFaW5hX0Jvb2wqIHNjcm9sbGJh
cnNfdmlzaWJsZSwgRWluYV9Cb29sKiBtZW51YmFyX3Zpc2libGUsIEVpbmFfQm9vbCogbG9jYXRp
b25iYXJfdmlzaWJsZSwgRWluYV9Cb29sKiBmdWxsc2NyZWVuKQogewpAQCAtOTgsMTggKzEwNywy
MSBAQCBFQVBJIHZvaWQgZXdrX3dpbmRvd19mZWF0dXJlc19ib29sX3Byb3BlcnR5X2dldChFd2tf
V2luZG93X0ZlYXR1cmVzKiB3aW5kb3dfZmVhdAogfQogCiAvKioKLSAqIEdldCBpbnQgcHJvcGVy
dGllcworICogR2V0cyBpbnQgcHJvcGVydGllcyBvZiBhbiBFd2tfV2luZG93X0ZlYXR1cmVzLgor
ICoKKyAqIFByb3BlcnRpZXMgYXJlIHJldHVybmVkIGluIHRoZSByZXNwZWN0aXZlIHBvaW50ZXJz
LiBQYXNzaW5nIEBjIDAgdG8gYW55IG9mCisgKiB0aGVzZSBwb2ludGVycyB3aWxsIG1ha2UgdGhh
dCBwcm9wZXJ0eSB0byBub3QgYmUgcmV0dXJuZWQuCisgKgorICogTWFrZSBzdXJlIHRvIGNoZWNr
IGlmIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyBsZXNzIHRoYW4gMCBiZWZvcmUgdXNpbmcgaXQsIHNp
bmNlIGluCisgKiB0aGF0IGNhc2UgaXQgbWVhbnMgdGhhdCBwcm9wZXJ0eSB3YXMgbm90IHNldCBp
biB3aW53ZG93X2ZlYXR1cmVzIG9iamVjdC4KICAqCi0gKiBQcm9wZXJ0aWVzIGFyZSByZXR1cm5l
ZCBpbiB0aGUgcmVzcGVjdGl2ZSBwb2ludGVycy4gUGFzc2luZyBOVUxMIHRvIGFueSBvZgotICog
dGhlc2UgcG9pbnRlcnMgd2lsbCBtYWtlIHRoYXQgcHJvcGVydHkgdG8gbm90IGJlIHJldHVybmVk
LiBNYWtlIHN1cmUgdG8gY2hlY2sKLSAqIGlmIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyBsZXNzIHRo
YW4gMCBiZWZvcmUgdXNpbmcgaXQsIHNpbmNlIGluIHRoYXQgY2FzZSBpdAotICogbWVhbnMgdGhh
dCBwcm9wZXJ0eSB3YXMgbm90IHNldCBpbiBAcGFyYW0gd2lud2Rvd19mZWF0dXJlcy4KKyAqIEBw
YXJhbSB3aW5kb3dfZmVhdHVyZXMgdGhlIHdpbmRvdydzIGZlYXR1cmVzCisgKiBAcGFyYW0geCB0
aGUgcG9pbnRlciB0byBzdG9yZSB4IHBvc2l0aW9uCisgKiBAcGFyYW0geSB0aGUgcG9pbnRlciB0
byBzdG9yZSB5IHBvc2l0aW9uCisgKiBAcGFyYW0gdyB0aGUgcG9pbnRlciB0byBzdG9yZSB3aWR0
aAorICogQHBhcmFtIGggdGhlIHBvaW50ZXIgdG8gc3RvcmUgaGVpZ2h0CiAgKgotICogQHBhcmFt
IHdpbmRvd19mZWF0dXJlcyBBIHdpbmRvd19mZWF0dXJlcy4KLSAqIEBwYXJhbSB4IHBvaW50ZXIg
dG8gc3RvcmUgeCBwb3NpdGlvbiBvciAtMSBpZiBpdCdzIG5vdCBzZXQgaW4gd2luZG93X2ZlYXR1
cmVzLgotICogQHBhcmFtIHkgcG9pbnRlciB0byBzdG9yZSB5IHBvc2l0aW9uIG9yLTEgaWYgaXQn
cyBub3Qgc2V0IGluIHdpbmRvd19mZWF0dXJlcy4KLSAqIEBwYXJhbSB3IHBvaW50ZXIgdG8gc3Rv
cmUgd2lkdGggb3ItMSBpZiBpdCdzIG5vdCBzZXQgaW4gd2luZG93X2ZlYXR1cmVzLgotICogQHBh
cmFtIGggcG9pbnRlciB0byBzdG9yZSBoZWlnaHQgb3ItMSBpZiBpdCdzIG5vdCBzZXQgaW4gd2lu
ZG93X2ZlYXR1cmVzLgorICogQHNlZSBld2tfd2luZG93X2ZlYXR1cmVzX2Jvb2xfcHJvcGVydHlf
Z2V0CiAgKi8KIEVBUEkgdm9pZCBld2tfd2luZG93X2ZlYXR1cmVzX2ludF9wcm9wZXJ0eV9nZXQo
RXdrX1dpbmRvd19GZWF0dXJlcyogd2luZG93X2ZlYXR1cmVzLCBpbnQqIHgsIGludCogeSwgaW50
KiB3LCBpbnQqIGgpCiB7CkBAIC0xMzMsMTMgKzE0NSwxMiBAQCBFQVBJIHZvaWQgZXdrX3dpbmRv
d19mZWF0dXJlc19pbnRfcHJvcGVydHlfZ2V0KEV3a19XaW5kb3dfRmVhdHVyZXMqIHdpbmRvd19m
ZWF0dQogCiAvKioKICAqIEBpbnRlcm5hbAotICogQ3JlYXRlIGEgbmV3IEV3a19XaW5kb3dfRmVh
dHVyZXMgZnJvbSBhIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIGlmIEBwYXJhbQotICogY29yZSBp
cyBub3QgTlVMTCBvciBhIG5ldyBvbmUgd2l0aCBkZWZhdWx0IGZlYXR1cmVzLgogICoKLSAqIEEg
bmV3IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIGlzIGFsbG9jYXRlZCBjb3B5aW5nIEBwYXJhbSBj
b3JlIGZlYXR1cmVzIGFuZAotICogaXQgaXMgZW1iZWRkZWQgaW5zaWRlIGFuIEV3a19XaW5kb3df
RmVhdHVyZXMgd2hvc2UgcmVmIGNvdW50IGlzIGluaXRpYWxpemVkLgorICogQ3JlYXRlcyBhIG5l
dyBFd2tfV2luZG93X0ZlYXR1cmVzIG9iamVjdC4KICAqCi0gKiBAcmV0dXJucyBhIG5ldyBhbGxv
Y2F0ZWQgRXdrX1dpbmRvd19GZWF0dXJlcworICogQHBhcmFtIGNvcmUgaWYgbm90IEBjIDAgYSBu
ZXcgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMgaXMgYWxsb2NhdGVkIGNvcHlpbmcgY29yZSBmZWF0
dXJlcyBhbmQKKyAqIGl0IGlzIGVtYmVkZGVkIGluc2lkZSB0aGUgRXdrX1dpbmRvd19GZWF0dXJl
cyB3aG9zZSByZWYgY291bnQgaXMgaW5pdGlhbGl6ZWQsIGlmIGNvcmUgaXMgQGMgMCBhIG5ldyBv
bmUgaXMgY3JlYXRlZCB3aXRoIHRoZSBkZWZhdWx0IGZlYXR1cmVzLgorICogQHJldHVybnMgYSBu
ZXcgYWxsb2NhdGVkIHRoZSBFd2tfV2luZG93X0ZlYXR1cmVzIG9iamVjdAogICovCiBFd2tfV2lu
ZG93X0ZlYXR1cmVzKiBld2tfd2luZG93X2ZlYXR1cmVzX25ld19mcm9tX2NvcmUoY29uc3QgV2Vi
Q29yZTo6V2luZG93RmVhdHVyZXMqIGNvcmUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3dpbmRvd19mZWF0dXJlcy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a193aW5kb3dfZmVhdHVyZXMuaAppbmRleCBlOTk2ZWIxLi5mMzYwNGQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3dpbmRvd19mZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfd2luZG93X2ZlYXR1cmVzLmgKQEAgLTE4LDYgKzE4LDExIEBACiAg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAqLwogCisvKioKKyAqIEBmaWxlICAgIGV3
a193aW5kb3dfZmVhdHVyZXMuaAorICogQGJyaWVmICAgQWNjZXNzIHRvIHRoZSBmZWF0dXJlcyBv
ZiB3aW5kb3cuCisgKi8KKwogI2lmbmRlZiBld2tfd2luZG93X2ZlYXR1cmVzX2gKICNkZWZpbmUg
ZXdrX3dpbmRvd19mZWF0dXJlc19oCiAKQEAgLTI5LDYgKzM0LDcgQEAKIGV4dGVybiAiQyIgewog
I2VuZGlmCiAKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1dpbmRvd19GZWF0dXJl
cy4KIHR5cGVkZWYgc3RydWN0IF9Fd2tfV2luZG93X0ZlYXR1cmVzIEV3a19XaW5kb3dfRmVhdHVy
ZXM7CiAKIEVBUEkgdm9pZCAgICAgICAgIGV3a193aW5kb3dfZmVhdHVyZXNfdW5yZWYoRXdrX1dp
bmRvd19GZWF0dXJlcyopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84548</attachid>
            <date>2011-03-03 05:41:19 -0800</date>
            <delta_ts>2011-03-08 07:42:50 -0800</delta_ts>
            <desc>Doxygen documentation</desc>
            <filename>ewk_context_menu_window_features_docs.patch</filename>
            <type>text/plain</type>
            <size>22026</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCAxYWNjYWQ4Li44MDBiYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTEtMDMtMDMgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWpr
b3dza2lAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0VGTF0gRG94eWdlbiBkb2N1bWVudGF0aW9uIGZvciBld2tfd2luZG93X2Zl
YXR1cmVzIGFuZCBld2tfY29udGV4dF9tZW51CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NTAyNgorCisgICAgICAgICogZXdrL2V3a19jb250ZXh0bWVu
dS5jcHA6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fc2VsZWN0KTogcmV0dXJucyBF
SU5BX0ZBTFNFIHdoZW4gQ09OVEVYVF9NRU5VIGlzIGRpc2FibGVkCisgICAgICAgICogZXdrL2V3
a19jb250ZXh0bWVudS5oOgorICAgICAgICAqIGV3ay9ld2tfd2luZG93X2ZlYXR1cmVzLmNwcDoK
KyAgICAgICAgKiBld2svZXdrX3dpbmRvd19mZWF0dXJlcy5oOgorCiAyMDExLTAzLTAxICBKb3Nl
cGggUGVjb3Jhcm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4g
Um9sbCBvdXQgcjgwMDY4IGFuZCByODAwNzMgZHVlIHRvIGJyZWFraW5nIFdlYktpdDIgUXQgcG9y
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3Bw
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKaW5kZXggNDBiZDJi
YS4uMTI4MjA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0
bWVudS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAK
QEAgLTMxLDMzICszMSw1MyBAQAogI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAorLyoqCisgKiBcc3RydWN0ICBfRXdrX0NvbnRl
eHRfTWVudQorICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGNvbnRleHQgbWVudSBkYXRhLgorICov
CiBzdHJ1Y3QgX0V3a19Db250ZXh0X01lbnUgewotICAgIHVuc2lnbmVkIGludCBfX3JlZjsKKyAg
ICB1bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgb2Jq
ZWN0ICovCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyKiBjb250cm9sbGVyOworICAgIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJv
bGxlciogY29udHJvbGxlcjsgLyoqPCB0aGUgV2ViQ29yZSdzIG9iamVjdCB3aGljaCBpcyByZXNw
b25zaWJsZSBmb3IgdGhlIGNvbnRleHQgbWVudSAqLwogI2VuZGlmCi0gICAgRXZhc19PYmplY3Qq
IHZpZXc7CisgICAgRXZhc19PYmplY3QqIHZpZXc7IC8qKjwgdGhlIHZpZXcgb2JqZWN0ICovCiAK
LSAgICBFaW5hX0xpc3QqIGl0ZW1zOworICAgIEVpbmFfTGlzdCogaXRlbXM7IC8qKjwgdGhlIGxp
c3Qgb2YgaXRlbXMgKi8KIH07CiAKKy8qKgorICogXHN0cnVjdCAgX0V3a19Db250ZXh0X01lbnVf
SXRlbQorICogQGJyaWVmICAgUmVwcmVzZW50cyBvbmUgaXRlbSBvZiB0aGUgY29udGV4dCBtZW51
IG9iamVjdC4KKyAqLwogc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51X0l0ZW0gewotICAgIEV3a19D
b250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGU7Ci0gICAgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24g
YWN0aW9uOworICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGU7IC8qKjwgY29udGFp
bnMgdGhlIHR5cGUgb2YgdGhlIGl0ZW0gKi8KKyAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBh
Y3Rpb247IC8qKjwgY29udGFpbnMgdGhlIGFjdGlvbiBvZiB0aGUgaXRlbSAqLwogCi0gICAgY29u
c3QgY2hhciogdGl0bGU7Ci0gICAgRXdrX0NvbnRleHRfTWVudSogc3VibWVudTsKKyAgICBjb25z
dCBjaGFyKiB0aXRsZTsgLyoqPCBjb250YWlucyB0aGUgdGl0bGUgb2YgdGhlIGl0ZW0gKi8KKyAg
ICBFd2tfQ29udGV4dF9NZW51KiBzdWJtZW51OyAvKio8IGNvbnRhaW5zIHRoZSBwb2ludGVyIHRv
IHRoZSBzdWJtZW51IG9mIHRoZSBpdGVtICovCiAKICAgICBFaW5hX0Jvb2wgY2hlY2tlZDoxOwog
ICAgIEVpbmFfQm9vbCBlbmFibGVkOjE7CiB9OwogCisvKioKKyAqIEluY3JlYXNlcyB0aGUgcmVm
ZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCisgKgorICogQHBhcmFtIG1lbnUgdGhl
IGNvbnRleHQgbWVudSBvYmplY3QgdG8gaW5jcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICov
CiB2b2lkIGV3a19jb250ZXh0X21lbnVfcmVmKEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiB7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVudSk7CiAgICAgbWVudS0+X19yZWYrKzsK
IH0KIAorLyoqCisgKiBEZWNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4g
b2JqZWN0LCBwb3NzaWJseSBmcmVlaW5nIGl0LgorICoKKyAqIFdoZW4gdGhlIHJlZmVyZW5jZSBj
b3VudCBpdCdzIHJlYWNoZWQgMCwgdGhlIG1lbnUgd2l0aCBhbGwgaXRlbXMgYXJlIGZyZWVkLgor
ICoKKyAqIEBwYXJhbSBtZW51IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0IHRvIGRlY3JlYXNlIHRo
ZSByZWZlcmVuY2UgY291bnQKKyAqLwogdm9pZCBld2tfY29udGV4dF9tZW51X3VucmVmKEV3a19D
b250ZXh0X01lbnUqIG1lbnUpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVu
dSk7CkBAIC03Miw2ICs5MiwxNCBAQCB2b2lkIGV3a19jb250ZXh0X21lbnVfdW5yZWYoRXdrX0Nv
bnRleHRfTWVudSogbWVudSkKICAgICBmcmVlKG1lbnUpOwogfQogCisvKioKKyAqIERlc3Ryb3lz
IHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0LgorICoKKyAqIEBwYXJhbSBtZW51IHRoZSBjb250ZXh0
IG1lbnUgb2JqZWN0IHRvIGRlc3Ryb3kKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nl
c3MsIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQorICoKKyAqIEBzZWUgZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2ZyZWUKKyAqLwogRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfZGVzdHJveShFd2tf
Q29udGV4dF9NZW51KiBtZW51KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChtZW51LCBFSU5BX0ZBTFNFKTsKQEAgLTg0LDYgKzExMiwxMiBAQCBFaW5hX0Jvb2wgZXdrX2Nv
bnRleHRfbWVudV9kZXN0cm95KEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiAgICAgcmV0dXJuIEVJ
TkFfVFJVRTsKIH0KIAorLyoqCisgKiBHZXRzIHRoZSBsaXN0IG9mIGl0ZW1zLgorICoKKyAqIEBw
YXJhbSBvIHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0IHRvIGdldCBsaXN0IG9mIHRoZSBpdGVtcwor
ICogQHJldHVybiB0aGUgbGlzdCBvZiB0aGUgaXRlbXMgb24gc3VjY2VzcyBvciBAYyAwIG9uIGZh
aWx1cmUKKyAqLwogY29uc3QgRWluYV9MaXN0KiBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9n
ZXQoRXdrX0NvbnRleHRfTWVudSogbykKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwobywgMCk7CkBAIC05MSw2ICsxMjUsMTkgQEAgY29uc3QgRWluYV9MaXN0KiBld2tfY29u
dGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoRXdrX0NvbnRleHRfTWVudSogbykKICAgICByZXR1cm4g
by0+aXRlbXM7CiB9CiAKKy8qKgorICogQ3JlYXRlcyBhIG5ldyBpdGVtIG9mIHRoZSBjb250ZXh0
IG1lbnUuCisgKgorICogQHBhcmFtIHR5cGUgc3BlY2lmaWVzIGEgdHlwZSBvZiB0aGUgaXRlbQor
ICogQHBhcmFtIGFjdGlvbiBzcGVjaWZpZXMgYSBhY3Rpb24gb2YgdGhlIGl0ZW0KKyAqIEBwYXJh
bSBzdWJtZW51IHNwZWNpZmllcyBhIHN1Ym1lbnUgb2YgdGhlIGl0ZW0KKyAqIEBwYXJhbSB0aXRs
ZSBzcGVjaWZpZXMgYSB0aXRsZSBvZiB0aGUgaXRlbQorICogQHBhcmFtIGNoZWNrZWQKKyAqIEBw
YXJhbSBlbmFibGVkIEBjIEVJTkFfVFJVRSB0byBlbmFibGUgdGhlIGl0ZW0gb3IgQGMgRUlOQV9G
QUxTRSB0byBkaXNhYmxlCisgKiBAcmV0dXJuIHRoZSBwb2ludGVyIHRvIHRoZSBuZXcgaXRlbSBv
biBzdWNjZXNzIG9yIEBjIDAgb24gZmFpbHVyZQorICoKKyAqIEBub3RlIFRoZSByZXR1cm4gdmFs
dWUgQGIgc2hvdWxkIEBiIGJlIGZyZWVkIGFmdGVyIHVzZS4KKyAqLwogRXdrX0NvbnRleHRfTWVu
dV9JdGVtKiBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVfSXRlbV9U
eXBlIHR5cGUsCiAgICAgICAgIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0Nv
bnRleHRfTWVudSogc3VibWVudSwKICAgICAgICAgY29uc3QgY2hhciogdGl0bGUsIEVpbmFfQm9v
bCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5hYmxlZCkKQEAgLTEwOSw2ICsxNTYsMTMgQEAgRXdrX0Nv
bnRleHRfTWVudV9JdGVtKiBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01l
bnVfSXRlbV9UeXBlIHR5cGUKICAgICByZXR1cm4gaXRlbTsKIH0KIAorLyoqCisgKiBTZWxlY3Rz
IHRoZSBpdGVtIGZyb20gdGhlIGNvbnRleHQgbWVudSBvYmplY3QuCisgKgorICogQHBhcmFtIG1l
bnUgdGhlIGNvbnRleHQgbWVudSBvYmplY3QKKyAqIEBwYXJhbSBpdGVtIHRoZSBpdGVtIGlzIHNl
bGVjdGVkCisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFM
U0Ugb24gZmFpbHVyZQorICovCiBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX3NlbGVj
dChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0pCiB7
CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0xMjAsMTEgKzE3NCwyMCBAQCBFaW5hX0Jv
b2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX3NlbGVjdChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBF
d2tfQ29udGV4dF9NZW51XwogICAgIC8vIERvbid0IGNhcmUgYWJvdXQgdGl0bGUgYW5kIHN1Ym1l
bnUgYXMgdGhleSdyZSBub3QgdXNlZCBhZnRlciB0aGlzIHBvaW50LgogICAgIFdlYkNvcmU6OkNv
bnRleHRNZW51SXRlbSBjb3JlKHR5cGUsIGFjdGlvbiwgV1RGOjpTdHJpbmcoKSk7CiAgICAgbWVu
dS0+Y29udHJvbGxlci0+Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoJmNvcmUpOwotI2VuZGlmCi0K
ICAgICByZXR1cm4gRUlOQV9UUlVFOworI2Vsc2UKKyAgICByZXR1cm4gRUlOQV9GQUxTRTsKKyNl
bmRpZgogfQogCisvKioKKyAqIERlc3Ryb3lzIHRoZSBpdGVtIG9mIHRoZSBjb250ZXh0IG1lbnUg
b2JqZWN0LgorICoKKyAqIEBwYXJhbSBpdGVtIHRoZSBpdGVtIHRvIGRlc3Ryb3kKKyAqCisgKiBA
c2VlIGV3a19jb250ZXh0X21lbnVfZGVzdHJveQorICogQHNlZSBld2tfY29udGV4dF9tZW51X3Vu
cmVmCisgKi8KIHZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2ZyZWUoRXdrX0NvbnRleHRfTWVu
dV9JdGVtKiBpdGVtKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGl0ZW0pOwpA
QCAtMTMzLDEyICsxOTYsMjkgQEAgdm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fZnJlZShFd2tf
Q29udGV4dF9NZW51X0l0ZW0qIGl0ZW0pCiAgICAgZnJlZShpdGVtKTsKIH0KIAorLyoqCisgKiBH
ZXRzIHR5cGUgb2YgdGhlIGl0ZW0uCisgKgorICogQHBhcmFtIG8gdGhlIGl0ZW0gdG8gZ2V0IHRo
ZSB0eXBlCisgKiBAcmV0dXJuIHR5cGUgb2YgdGhlIGl0ZW0gb24gc3VjY2VzcyBvciBAYyBFV0tf
QUNUSU9OX1RZUEUgb24gZmFpbHVyZQorICoKKyAqIEBzZWUgZXdrX2NvbnRleHRfbWVudV9pdGVt
X3R5cGVfc2V0CisgKi8KIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIGV3a19jb250ZXh0X21l
bnVfaXRlbV90eXBlX2dldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8pCiB7CiAgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIEVXS19BQ1RJT05fVFlQRSk7CiAgICAgcmV0dXJu
IG8tPnR5cGU7CiB9CiAKKy8qKgorICogU2V0cyB0aGUgdHlwZSBvZiBpdGVtLgorICoKKyAqIEBw
YXJhbSBvIHRoZSBpdGVtIHRvIHNldCB0aGUgdHlwZQorICogQHBhcmFtIHR5cGUgYSBuZXcgdHlw
ZSBmb3IgdGhlIGl0ZW0gb2JqZWN0CisgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNz
LCBvciBAYyBFSU5BX0ZBTFNFIG9uIGZhaWx1cmUKKyAqCisgKiBAc2VlIGV3a19jb250ZXh0X21l
bnVfaXRlbV90eXBlX2dldAorICovCiBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5
cGVfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5
cGUgdHlwZSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgRUlOQV9G
QUxTRSk7CkBAIC0xNDYsMTIgKzIyNiwyOSBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9p
dGVtX3R5cGVfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywgRXdrX0NvbnRleHRfTQogICAg
IHJldHVybiBFSU5BX1RSVUU7CiB9CiAKKy8qKgorICogR2V0cyBhbiBhY3Rpb24gb2YgdGhlIGl0
ZW0uCisgKgorICogQHBhcmFtIG8gdGhlIGl0ZW0gdG8gZ2V0IHRoZSBhY3Rpb24KKyAqIEByZXR1
cm4gYW4gYWN0aW9uIG9mIHRoZSBpdGVtIG9uIHN1Y2Nlc3Mgb3IgQGMgRVdLX0NPTlRFWFRfTUVO
VV9JVEVNX1RBR19OT19BQ1RJT04gb24gZmFpbHVyZQorICoKKyAqIEBzZWUgZXdrX2NvbnRleHRf
bWVudV9pdGVtX2FjdGlvbl9zZXQKKyAqLwogRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gZXdrX2Nv
bnRleHRfbWVudV9pdGVtX2FjdGlvbl9nZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCBFV0tfQ09OVEVYVF9NRU5VX0lU
RU1fVEFHX05PX0FDVElPTik7CiAgICAgcmV0dXJuIG8tPmFjdGlvbjsKIH0KIAorLyoqCisgKiBT
ZXRzIGFuIGFjdGlvbiBvZiB0aGUgaXRlbS4KKyAqCisgKiBAcGFyYW0gbyB0aGUgaXRlbSB0byBz
ZXQgdGhlIGFjdGlvbgorICogQHBhcmFtIGFjdGlvbiBhIG5ldyBhY3Rpb24gZm9yIHRoZSBpdGVt
IG9iamVjdAorICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2Vzcywgb3IgQGMgRUlOQV9G
QUxTRSBvbiBmYWlsdXJlCisgKgorICogQHNlZSBld2tfY29udGV4dF9tZW51X2l0ZW1fYWN0aW9u
X2dldAorICovCiBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlvbl9zZXQoRXdr
X0NvbnRleHRfTWVudV9JdGVtKiBvLCBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24pCiB7
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIEVJTkFfRkFMU0UpOwpAQCAt
MTU5LDEyICsyNTYsMjkgQEAgRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9hY3Rpb25f
c2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywgRXdrX0NvbnRleHQKICAgICByZXR1cm4gRUlO
QV9UUlVFOwogfQogCisvKioKKyAqIEdldHMgYSB0aXRsZSBvZiB0aGUgaXRlbS4KKyAqCisgKiBA
cGFyYW0gbyB0aGUgaXRlbSB0byBnZXQgdGhlIHRpdGxlCisgKiBAcmV0dXJuIGEgdGl0bGUgb2Yg
dGhlIGl0ZW0gb24gc3VjY2Vzcywgb3IgQGMgMCBvbiBmYWlsdXJlCisgKgorICogQHNlZSBld2tf
Y29udGV4dF9tZW51X2l0ZW1fdGl0bGVfc2V0CisgKi8KIGNvbnN0IGNoYXIqIGV3a19jb250ZXh0
X21lbnVfaXRlbV90aXRsZV9nZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvKQogewogICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCAwKTsKICAgICByZXR1cm4gby0+dGl0bGU7
CiB9CiAKKy8qKgorICogU2V0cyBhIHRpdGxlIG9mIHRoZSBpdGVtLgorICoKKyAqIEBwYXJhbSBv
IHRoZSBpdGVtIHRvIHNldCB0aGUgdGl0bGUKKyAqIEBwYXJhbSB0aXRsZSBhIG5ldyB0aXRsZSBm
b3IgdGhlIGl0ZW0gb2JqZWN0CisgKiBAcmV0dXJuIGEgbmV3IHRpdGxlIG9mIHRoZSBpdGVtIG9u
IHN1Y2Nlc3Mgb3IgQGMgMCBvbiBmYWlsdXJlCisgKgorICogQHNlZSBld2tfY29udGV4dF9tZW51
X2l0ZW1fdGl0bGVfZ2V0CisgKi8KIGNvbnN0IGNoYXIqIGV3a19jb250ZXh0X21lbnVfaXRlbV90
aXRsZV9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvLCBjb25zdCBjaGFyKiB0aXRsZSkKIHsK
ICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgMCk7CkBAIC0xODUsMTIgKzI5
OSwyOSBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX2NoZWNrZWRfc2V0KEV3a19D
b250ZXh0X01lbnVfSXRlbSogbywgRWluYV9Cb29sCiAgICAgcmV0dXJuIEVJTkFfVFJVRTsKIH0K
IAorLyoqCisgKiBHZXRzIGlmIHRoZSBpdGVtIGlzIGVuYWJsZWQuCisgKgorICogQHBhcmFtIG8g
dGhlIGl0ZW0gdG8gZ2V0IGVuYWJsZWQgc3RhdGUKKyAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlm
IGl0J3MgZW5hYmxlZCwgQGMgRUlOQV9GQUxTRSBpZiBub3Qgb3Igb24gZmFpbHVyZQorICoKKyAq
IEBzZWUgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfc2V0CisgKi8KIEVpbmFfQm9vbCBl
d2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBv
KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCBFSU5BX0ZBTFNFKTsK
ICAgICByZXR1cm4gby0+ZW5hYmxlZDsKIH0KIAorLyoqCisgKiBFbmFibGVzL2Rpc2FibGVzIHRo
ZSBpdGVtLgorICoKKyAqIEBwYXJhbSBvIHRoZSBpdGVtIHRvIGVuYWJsZS9kaXNhYmxlCisgKiBA
cGFyYW0gZW5hYmxlZCBAYyBFSU5BX1RSVUUgdG8gZW5hYmxlIHRoZSBpdGVtIG9yIEBjIEVJTkFf
RkFMU0UgdG8gZGlzYWJsZQorICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2Vzcywgb3Ig
QGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlCisgKgorICogQHNlZSBld2tfY29udGV4dF9tZW51X2l0
ZW1fZW5hYmxlZF9nZXQKKyAqLwogRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFi
bGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0gKm8sIEVpbmFfQm9vbCBlbmFibGVkKQogewog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCBFSU5BX0ZBTFNFKTsKQEAgLTIw
NSwxMiArMzM2LDEzIEBAIEVpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9z
ZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtICpvLCBFaW5hX0Jvb2wKIC8qKgogICogQGludGVybmFs
CiAgKgotICogQ3JlYXRlcyBjb250ZXh0IG9uIHZpZXcuCisgKiBDcmVhdGVzIGFuIGVtcHR5IGNv
bnRleHQgbWVudSBvbiB2aWV3LgogICoKLSAqIEBwYXJhbSB2aWV3IFZpZXcuCi0gKiBAcGFyYW0g
Q29udHJvbGxlciBDb250ZXh0IE1lbnUgQ29udHJvbGxlci4KKyAqIEBwYXJhbSB2aWV3IHRoZSB2
aWV3IG9iamVjdAorICogQHBhcmFtIGNvbnRyb2xsZXIgdGhlIFdlYkNvcmUncyBjb250ZXh0IG1l
bnUgY29udHJvbGxlcgorICogQHJldHVybiBuZXdseSBhbGxvY2F0ZWQgdGhlIGNvbnRleHQgbWVu
dSBvbiBzdWNjZXNzIG9yIEBjIDAgb24gZXJyb3JzCiAgKgotICogQHJldHVybiBuZXdseSBhbGxv
Y2F0ZWQgY29udGV4dCBtZW51IG9yIEBjIDAgb24gZXJyb3JzLgorICogQG5vdGUgZW1pdHMgYSBz
aWduYWwgImNvbnRleHRtZW51LG5ldyIKICAqLwogRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRl
eHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJv
bGxlciogY29udHJvbGxlcikKIHsKQEAgLTIzMyw2ICszNjUsMTkgQEAgRXdrX0NvbnRleHRfTWVu
dSogZXdrX2NvbnRleHRfbWVudV9uZXcoRXZhc19PYmplY3QqIHZpZXcsIFdlYkNvcmU6OkNvbnRl
eHRNZW51Q28KICAgICByZXR1cm4gbWVudTsKIH0KIAorLyoqCisgKiBAaW50ZXJuYWwKKyAqCisg
KiBGcmVlcyB0aGUgY29udGV4dCBtZW51LgorICoKKyAqIEBwYXJhbSBvIHRoZSB2aWV3IG9iamVj
dAorICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2Vzcywgb3IgQGMgRUlOQV9GQUxTRSBv
biBmYWlsdXJlCisgKgorICogQG5vdGUgZW1pdHMgYSBzaWduYWwgImNvbnRleHRtZW51LGZyZWUi
CisgKgorICogQHNlZSBld2tfY29udGV4dF9tZW51X3VucmVmCisgKiBAc2VlIGV3a19jb250ZXh0
X21lbnVfZGVzdHJveQorICovCiBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9mcmVlKEV3a19D
b250ZXh0X01lbnUqIG8pCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG8s
IEVJTkFfRkFMU0UpOwpAQCAtMjQxLDYgKzM4NiwxNyBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRf
bWVudV9mcmVlKEV3a19Db250ZXh0X01lbnUqIG8pCiAgICAgcmV0dXJuIEVJTkFfVFJVRTsKIH0K
IAorLyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBBcHBlbmRzIHRoZSBXZWJDb3JlJ3MgaXRlbSB0
byB0aGUgY29udGV4dCBtZW51IG9iamVjdC4KKyAqCisgKiBAcGFyYW0gbyB0aGUgY29udGV4dCBt
ZW51IG9iamVjdAorICogQHBhcmFtIGNvcmUgdGhlIFdlYkNvcmUncyBjb250ZXh0IG1lbnUgaXRl
bSB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIGNvbnRleHQgbWVudQorICogQG5vdGUgZW1pdHMg
YSBzaWduYWwgImNvbnRleHRtZW51LGl0ZW0sYXBwZW5kZWQiCisgKgorICogQHNlZSBld2tfY29u
dGV4dF9tZW51X2l0ZW1fbmV3CisgKi8KIHZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVu
ZChFd2tfQ29udGV4dF9NZW51KiBvLCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpCiB7
CiAgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSA9IHN0YXRpY19jYXN0PEV3a19D
b250ZXh0X01lbnVfSXRlbV9UeXBlPihjb3JlLnR5cGUoKSk7CkBAIC0yNTUsNiArNDExLDE4IEBA
IHZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBvLCBX
ZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0mCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
Y2FsbChvLT52aWV3LCAiY29udGV4dG1lbnUsaXRlbSxhcHBlbmRlZCIsIG8pOwogfQogCisvKioK
KyAqIEBpbnRlcm5hbAorICoKKyAqIEVtaXRzIGEgc2lnbmFsIHdpdGggdGhlIGl0ZW1zIG9mIHRo
ZSBjb250ZXh0IG1lbnUuCisgKgorICogQHBhcmFtIG8gdGhlIGNvbnRleHQgbWVudSBvYmplY3QK
KyAqIEByZXR1cm4gdGhlIHNhbWUgY29udGV4dCBtZW51IG9iamVjdCB0aGF0IHdhcyBnaXZlbiB0
aHJvdWdoIHBhcmFtZXRlcgorICoKKyAqIEBub3RlIGVtaXRzIGEgc2lnbmFsICJjb250ZXh0bWVu
dSxjdXN0b21pemUiCisgKgorICogQHNlZSBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQK
KyAqLwogRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9jdXN0b21fZ2V0KEV3a19D
b250ZXh0X01lbnUqIG8pCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG8s
IDApOwpAQCAtMjYzLDYgKzQzMSwxMyBAQCBFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9t
ZW51X2N1c3RvbV9nZXQoRXdrX0NvbnRleHRfTWVudSogbykKICAgICByZXR1cm4gbzsKIH0KIAor
LyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBFbWl0cyBhIHNpZ25hbCAiY29udGV4dG1lbnUsc2hv
dyIKKyAqCisgKiBAcGFyYW0gbyB0aGUgY29udGV4dCBtZW51IG9iamVjdAorICovCiB2b2lkIGV3
a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBvKQogewogICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOKG8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19jb250ZXh0bWVudS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVu
dS5oCmluZGV4IGM1YWRiNDguLjdiNjA0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfY29udGV4dG1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nv
bnRleHRtZW51LmgKQEAgLTE4LDYgKzE4LDExIEBACiAgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCiAqLwogCisvKioKKyAqIEBmaWxlICAgIGV3a19jb250ZXh0bWVudS5oCisgKiBAYnJp
ZWYgICBEZXNjcmliZXMgdGhlIGNvbnRleHQgbWVudSBBUEkuCisgKi8KKwogI2lmbmRlZiBld2tf
Y29udGV4dG1lbnVfaAogI2RlZmluZSBld2tfY29udGV4dG1lbnVfaAogCkBAIC0zMCw3ICszNSwx
MSBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLy8ga2VlcCB0aGlzIGluIHN5bmMgd2l0aCBD
b250ZXh0TWVudUl0ZW0uaAorLyoqCisgKiBcZW51bSAgICBfRXdrX0NvbnRleHRfTWVudV9BY3Rp
b24KKyAqIEBicmllZiAgIFByb3ZpZGVzIHRoZSBhY3Rpb25zIG9mIGl0ZW1zIGZvciB0aGUgY29u
dGV4dCBtZW51LgorICogQGluZm8gICAgS2VlcCB0aGlzIGluIHN5bmMgd2l0aCBDb250ZXh0TWVu
dUl0ZW0uaAorICovCiBlbnVtIF9Fd2tfQ29udGV4dF9NZW51X0FjdGlvbiB7CiAgICAgRVdLX0NP
TlRFWFRfTUVOVV9JVEVNX1RBR19OT19BQ1RJT04gPSAwLCAvLyB0aGlzIGl0ZW0gaXMgbm90IGFj
dHVhbGx5IGluIHdlYl91aWRlbGVnYXRlLmgKICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFH
X09QRU5fTElOS19JTl9ORVdfV0lORE9XID0gMSwKQEAgLTY3LDEyICs3NiwxMiBAQCBlbnVtIF9F
d2tfQ29udGV4dF9NZW51X0FjdGlvbiB7CiAgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1BERlBS
RVZJT1VTX1BBR0UsCiAgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19PUEVOX0xJTksgPSAy
MDAwLAogICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfSUdOT1JFX0dSQU1NQVIsCi0gICAg
RVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TUEVMTElOR19NRU5VLCAvLyBzcGVsbGluZyBvciBz
cGVsbGluZy9ncmFtbWFyIHN1Yi1tZW51CisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19T
UEVMTElOR19NRU5VLCAvKio8IHNwZWxsaW5nIG9yIHNwZWxsaW5nL2dyYW1tYXIgc3ViLW1lbnUg
Ki8KICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1NIT1dfU1BFTExJTkdfUEFORUwsCiAg
ICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19DSEVDS19TUEVMTElORywKICAgICBFV0tfQ09O
VEVYVF9NRU5VX0lURU1fVEFHX0NIRUNLX1NQRUxMSU5HX1dISUxFX1RZUElORywKICAgICBFV0tf
Q09OVEVYVF9NRU5VX0lURU1fVEFHX0NIRUNLX0dSQU1NQVJfV0lUSF9TUEVMTElORywKLSAgICBF
V0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0ZPTlRfTUVOVSwgLy8gZm9udCBzdWItbWVudQorICAg
IEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfRk9OVF9NRU5VLCAvKio8IGZvbnQgc3ViLW1lbnUg
Ki8KICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1NIT1dfRk9OVFMsCiAgICAgRVdLX0NP
TlRFWFRfTUVOVV9JVEVNX1RBR19CT0xELAogICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdf
SVRBTElDLApAQCAtODAsNDEgKzg5LDQzIEBAIGVudW0gX0V3a19Db250ZXh0X01lbnVfQWN0aW9u
IHsKICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX09VVExJTkUsCiAgICAgRVdLX0NPTlRF
WFRfTUVOVV9JVEVNX1RBR19TVFlMRVMsCiAgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19T
SE9XX0NPTE9SUywKLSAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1NQRUVDSF9NRU5VLCAv
LyBzcGVlY2ggc3ViLW1lbnUKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1NQRUVDSF9N
RU5VLCAvKio8IHNwZWVjaCBzdWItbWVudSAqLwogICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9U
QUdfU1RBUlRfU1BFQUtJTkcsCiAgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TVE9QX1NQ
RUFLSU5HLAotICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfV1JJVElOR19ESVJFQ1RJT05f
TUVOVSwgLy8gd3JpdGluZyBkaXJlY3Rpb24gc3ViLW1lbnUKKyAgICBFV0tfQ09OVEVYVF9NRU5V
X0lURU1fVEFHX1dSSVRJTkdfRElSRUNUSU9OX01FTlUsIC8qKjwgd3JpdGluZyBkaXJlY3Rpb24g
c3ViLW1lbnUgKi8KICAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0RFRkFVTFRfRElSRUNU
SU9OLAogICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfTEVGVF9UT19SSUdIVCwKICAgICBF
V0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1JJR0hUX1RPX0xFRlQsCiAgICAgRVdLX0NPTlRFWFRf
TUVOVV9JVEVNX1RBR19QREZTSU5HTEVfUEFHRV9TQ1JPTExJTkcsCiAgICAgRVdLX0NPTlRFWFRf
TUVOVV9JVEVNX1RBR19QREZGQUNJTkdfUEFHRVNfU0NST0xMSU5HLAotICAgIEVXS19DT05URVhU
X01FTlVfSVRFTV9UQUdfVEVYVF9ESVJFQ1RJT05fTUVOVSwgLy8gdGV4dCBkaXJlY3Rpb24gc3Vi
LW1lbnUKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1RFWFRfRElSRUNUSU9OX01FTlUs
IC8qKjwgdGV4dCBkaXJlY3Rpb24gc3ViLW1lbnUgKi8KICAgICBFV0tfQ09OVEVYVF9NRU5VX0lU
RU1fVEFHX1RFWFRfRElSRUNUSU9OX0RFRkFVTFQsCiAgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVN
X1RBR19URVhUX0RJUkVDVElPTl9MRUZUX1RPX1JJR0hULAogICAgIEVXS19DT05URVhUX01FTlVf
SVRFTV9UQUdfVEVYVF9ESVJFQ1RJT05fUklHSFRfVE9fTEVGVCwKICAgICBFV0tfQ09OVEVYVF9N
RU5VX0lURU1fQkFTRV9DVVNUT01fVEFHID0gNTAwMCwKICAgICBFV0tfQ09OVEVYVF9NRU5VX0lU
RU1fQkFTRV9BUFBMSUNBVElPTl9UQUcgPSAxMDAwMAogfTsKKy8qKiBDcmVhdGVzIGEgdHlwZSBu
YW1lIGZvciBfRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gKi8KIHR5cGVkZWYgZW51bSBfRXdrX0Nv
bnRleHRfTWVudV9BY3Rpb24gRXdrX0NvbnRleHRfTWVudV9BY3Rpb247CiAKLS8vIGtlZXAgdGhp
cyBpbiBzeW5jIHdpdGggQ29udGV4dE1lbnVJdGVtLmgKKy8qKgorICogXGVudW0gICAgX0V3a19D
b250ZXh0X01lbnVfSXRlbV9UeXBlCisgKiBAYnJpZWYgICBEZWZpbmVzIHRoZSB0eXBlcyBvZiB0
aGUgaXRlbXMgZm9yIHRoZSBjb250ZXh0IG1lbnUuCisgKiBAaW5mbyAgICBLZWVwIHRoaXMgaW4g
c3luYyB3aXRoIENvbnRleHRNZW51SXRlbS5oCisgKi8KIGVudW0gX0V3a19Db250ZXh0X01lbnVf
SXRlbV9UeXBlIHsKICAgICBFV0tfQUNUSU9OX1RZUEUsCiAgICAgRVdLX0NIRUNLQUJMRV9BQ1RJ
T05fVFlQRSwKICAgICBFV0tfU0VQQVJBVE9SX1RZUEUsCiAgICAgRVdLX1NVQk1FTlVfVFlQRQog
fTsKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5
cGUgKi8KIHR5cGVkZWYgZW51bSBfRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgICAgRXdrX0Nv
bnRleHRfTWVudV9JdGVtX1R5cGU7CiAKLS8qKgotICogVGhlIHN0cnVjdHVyZSB0byBjb250YWlu
IENvbnRleHQgTWVudSBkYXRhCi0gKi8KKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdr
X0NvbnRleHRfTWVudSAqLwogdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db250ZXh0X01lbnUgICAgICAg
ICAgICBFd2tfQ29udGV4dF9NZW51OwogCi0vKioKLSAqIFJlcHJlc2VudHMgb25lIGl0ZW0gZnJv
bSBFd2tfQ29udGV4dF9NZW51Ci0gKi8KKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdr
X0NvbnRleHRfTWVudV9JdGVtICovCiB0eXBlZGVmIHN0cnVjdCBfRXdrX0NvbnRleHRfTWVudV9J
dGVtICAgICAgIEV3a19Db250ZXh0X01lbnVfSXRlbTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3dpbmRvd19mZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3dpbmRvd19mZWF0dXJlcy5jcHAKaW5kZXggMzg1NWU4OS4uNGEzMTFkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a193aW5kb3dfZmVhdHVyZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfd2luZG93X2ZlYXR1cmVzLmNwcApAQCAtMjYs
MTcgKzI2LDIxIEBACiAKICNpbmNsdWRlIDxFaW5hLmg+CiAKKy8qKgorICogXHN0cnVjdCAgX0V3
a19XaW5kb3dfRmVhdHVyZXMKKyAqIEBicmllZiAgIENvbnRhaW5zIHRoZSB3aW5kb3cgZmVhdHVy
ZXMgZGF0YS4KKyAqLwogc3RydWN0IF9Fd2tfV2luZG93X0ZlYXR1cmVzIHsKICAgICB1bnNpZ25l
ZCBpbnQgX19yZWY7CiAgICAgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMqIGNvcmU7CiB9OwogCiAv
KioKLSAqIERlY3JlYXNlIHRoZSByZWYgY291bnQgb2YgYW4gRXdrX1dpbmRvd19GZWF0dXJlcywg
cG9zc2libHkgZnJlZWluZyBpdC4KKyAqIERlY3JlYXNlcyB0aGUgcmVmZXJlY2UgY291bnQgb2Yg
YW4gRXdrX1dpbmRvd19GZWF0dXJlcywgcG9zc2libHkgZnJlZWluZyBpdC4KICAqCi0gKiBXaGVu
IGl0cyByZWYgY291bnQgcmVhY2hlcyAwLCBAcGFyYW0gd2luZG93X2ZlYXR1cmVzIGlzIGZyZWVk
LgorICogV2hlbiB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3QgcmVhY2hlcyAwLCB0
aGUgb25lIGlzIGZyZWVkLgogICoKLSAqIEBwYXJhbSB3aW5kb3dfZmVhdHVyZXMgVGhlIHdpbmRv
dydzIGZlYXR1cmVzLgorICogQHBhcmFtIHdpbmRvd19mZWF0dXJlcyB0aGUgb2JqZWN0IHRvIGRl
Y3JlYXNlIHJlZmVyZW5jZSBjb3VudAogICovCiBFQVBJIHZvaWQgZXdrX3dpbmRvd19mZWF0dXJl
c191bnJlZihFd2tfV2luZG93X0ZlYXR1cmVzKiB3aW5kb3dfZmVhdHVyZXMpCiB7CkBAIC01Miw5
ICs1Niw5IEBAIEVBUEkgdm9pZCBld2tfd2luZG93X2ZlYXR1cmVzX3VucmVmKEV3a19XaW5kb3df
RmVhdHVyZXMqIHdpbmRvd19mZWF0dXJlcykKIH0KIAogLyoqCi0gKiBJbmNyZWFzZSB0aGUgcmVm
IGNvdW50IG9mIGFuIEV3a19XaW5kb3dfRmVhdHVyZXMKKyAqIEluY3JlYXNlcyB0aGUgcmVmZXJl
bmNlIGNvdW50IG9mIGFuIEV3a19XaW5kb3dfRmVhdHVyZXMuCiAgKgotICogQHBhcmFtIHdpbmRv
d19mZWF0dXJlcyBUaGUgd2luZG93J3MgZmVhdHVyZXMuCisgKiBAcGFyYW0gd2luZG93X2ZlYXR1
cmVzIHRoZSBvYmplY3QgdG8gaW5jcmVhc2UgcmVmZXJlbmNlIGNvdW50CiAgKi8KIEVBUEkgdm9p
ZCBld2tfd2luZG93X2ZlYXR1cmVzX3JlZihFd2tfV2luZG93X0ZlYXR1cmVzKiB3aW5kb3dfZmVh
dHVyZXMpCiB7CkBAIC02MywxNSArNjcsMjAgQEAgRUFQSSB2b2lkIGV3a193aW5kb3dfZmVhdHVy
ZXNfcmVmKEV3a19XaW5kb3dfRmVhdHVyZXMqIHdpbmRvd19mZWF0dXJlcykKIH0KIAogLyoqCi0g
KiBHZXQgYm9vbGVhbiBwcm9wZXJ0aWVzCisgKiBHZXRzIGJvb2xlYW4gcHJvcGVydGllcyBvZiBh
biBFd2tfV2luZG93X0ZlYXR1cmVzLgorICoKKyAqIFByb3BlcnRpZXMgYXJlIHJldHVybmVkIGlu
IHRoZSByZXNwZWN0aXZlIHBvaW50ZXJzLiBQYXNzaW5nIEBjIDAgdG8gYW55IG9mCisgKiB0aGVz
ZSBwb2ludGVycyB3aWxsIG1ha2UgdGhhdCBwcm9wZXJ0eSB0byBub3QgYmUgcmV0dXJuZWQuCiAg
KgotICogQHBhcmFtIHdpbmRvd19mZWF0dXJlcyBBIHdpbmRvd19mZWF0dXJlcy4KLSAqIEBwYXJh
bSB0b29sYmFyX3Zpc2libGUgcG9pbnRlciB0byBzdG9yZSBpZiB0b29sYmFyIGlzIHZpc2libGUu
Ci0gKiBAcGFyYW0gc3RhdHVzYmFyX3Zpc2libGUgcG9pbnRlciB0byBzdG9yZSBpZiBzdGF0dXNi
YXIgaXMgdmlzaWJsZS4KLSAqIEBwYXJhbSBzY3JvbGxiYXJzX3Zpc2libGUgcG9pbnRlciB0byBz
dG9yZSBpZiBzY3JvbGxiYXJzIGlzIHZpc2libGUuCi0gKiBAcGFyYW0gbWVudWJhcl92aXNpYmxl
IHBvaW50ZXIgdG8gc3RvcmUgaWYgbWVudWJhciBpcyB2aXNpYmxlLgotICogQHBhcmFtIGxvY2F0
aW9uYmFyX3Zpc2libGUgcG9pbnRlciB0byBzdG9yZSBpZiBsb2NhdGlvbmJhciBpcyB2aXNpYmxl
LgotICogQHBhcmFtIGZ1bGxzY3JlZW4gcG9pbnRlciB0byBzdG9yZSBpZiBmdWxsc2NyZWVuIGlz
IGVuYWJsZWQuCisgKiBAcGFyYW0gd2luZG93X2ZlYXR1cmVzIHRoZSBvYmplY3QgdG8gZ2V0IGJv
b2xlYW4gcHJvcGVydGllcworICogQHBhcmFtIHRvb2xiYXJfdmlzaWJsZSB0aGUgcG9pbnRlciB0
byBzdG9yZSBpZiB0b29sYmFyIGlzIHZpc2libGUKKyAqIEBwYXJhbSBzdGF0dXNiYXJfdmlzaWJs
ZSB0aGUgcG9pbnRlciB0byBzdG9yZSBpZiBzdGF0dXNiYXIgaXMgdmlzaWJsZQorICogQHBhcmFt
IHNjcm9sbGJhcnNfdmlzaWJsZSB0aGUgcG9pbnRlciB0byBzdG9yZSBpZiBzY3JvbGxiYXJzIGlz
IHZpc2libGUKKyAqIEBwYXJhbSBtZW51YmFyX3Zpc2libGUgdGhlIHBvaW50ZXIgdG8gc3RvcmUg
aWYgbWVudWJhciBpcyB2aXNpYmxlCisgKiBAcGFyYW0gbG9jYXRpb25iYXJfdmlzaWJsZSB0aGUg
cG9pbnRlciB0byBzdG9yZSBpZiBsb2NhdGlvbmJhciBpcyB2aXNpYmxlCisgKiBAcGFyYW0gZnVs
bHNjcmVlbiB0aGUgcG9pbnRlciB0byBzdG9yZSBpZiBmdWxsc2NyZWVuIGlzIGVuYWJsZWQKKyAq
CisgKiBAc2VlIGV3a193aW5kb3dfZmVhdHVyZXNfaW50X3Byb3BlcnR5X2dldAogICovCiBFQVBJ
IHZvaWQgZXdrX3dpbmRvd19mZWF0dXJlc19ib29sX3Byb3BlcnR5X2dldChFd2tfV2luZG93X0Zl
YXR1cmVzKiB3aW5kb3dfZmVhdHVyZXMsIEVpbmFfQm9vbCogdG9vbGJhcl92aXNpYmxlLCBFaW5h
X0Jvb2wqIHN0YXR1c2Jhcl92aXNpYmxlLCBFaW5hX0Jvb2wqIHNjcm9sbGJhcnNfdmlzaWJsZSwg
RWluYV9Cb29sKiBtZW51YmFyX3Zpc2libGUsIEVpbmFfQm9vbCogbG9jYXRpb25iYXJfdmlzaWJs
ZSwgRWluYV9Cb29sKiBmdWxsc2NyZWVuKQogewpAQCAtOTgsMTggKzEwNywyMSBAQCBFQVBJIHZv
aWQgZXdrX3dpbmRvd19mZWF0dXJlc19ib29sX3Byb3BlcnR5X2dldChFd2tfV2luZG93X0ZlYXR1
cmVzKiB3aW5kb3dfZmVhdAogfQogCiAvKioKLSAqIEdldCBpbnQgcHJvcGVydGllcworICogR2V0
cyBpbnQgcHJvcGVydGllcyBvZiBhbiBFd2tfV2luZG93X0ZlYXR1cmVzLgorICoKKyAqIFByb3Bl
cnRpZXMgYXJlIHJldHVybmVkIGluIHRoZSByZXNwZWN0aXZlIHBvaW50ZXJzLiBQYXNzaW5nIEBj
IDAgdG8gYW55IG9mCisgKiB0aGVzZSBwb2ludGVycyB3aWxsIG1ha2UgdGhhdCBwcm9wZXJ0eSB0
byBub3QgYmUgcmV0dXJuZWQuCisgKgorICogTWFrZSBzdXJlIHRvIGNoZWNrIGlmIHRoZSB2YWx1
ZSByZXR1cm5lZCBpcyBsZXNzIHRoYW4gMCBiZWZvcmUgdXNpbmcgaXQsIHNpbmNlIGluCisgKiB0
aGF0IGNhc2UgaXQgbWVhbnMgdGhhdCBwcm9wZXJ0eSB3YXMgbm90IHNldCBpbiB3aW53ZG93X2Zl
YXR1cmVzIG9iamVjdC4KICAqCi0gKiBQcm9wZXJ0aWVzIGFyZSByZXR1cm5lZCBpbiB0aGUgcmVz
cGVjdGl2ZSBwb2ludGVycy4gUGFzc2luZyBOVUxMIHRvIGFueSBvZgotICogdGhlc2UgcG9pbnRl
cnMgd2lsbCBtYWtlIHRoYXQgcHJvcGVydHkgdG8gbm90IGJlIHJldHVybmVkLiBNYWtlIHN1cmUg
dG8gY2hlY2sKLSAqIGlmIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyBsZXNzIHRoYW4gMCBiZWZvcmUg
dXNpbmcgaXQsIHNpbmNlIGluIHRoYXQgY2FzZSBpdAotICogbWVhbnMgdGhhdCBwcm9wZXJ0eSB3
YXMgbm90IHNldCBpbiBAcGFyYW0gd2lud2Rvd19mZWF0dXJlcy4KKyAqIEBwYXJhbSB3aW5kb3df
ZmVhdHVyZXMgdGhlIHdpbmRvdydzIGZlYXR1cmVzCisgKiBAcGFyYW0geCB0aGUgcG9pbnRlciB0
byBzdG9yZSB4IHBvc2l0aW9uCisgKiBAcGFyYW0geSB0aGUgcG9pbnRlciB0byBzdG9yZSB5IHBv
c2l0aW9uCisgKiBAcGFyYW0gdyB0aGUgcG9pbnRlciB0byBzdG9yZSB3aWR0aAorICogQHBhcmFt
IGggdGhlIHBvaW50ZXIgdG8gc3RvcmUgaGVpZ2h0CiAgKgotICogQHBhcmFtIHdpbmRvd19mZWF0
dXJlcyBBIHdpbmRvd19mZWF0dXJlcy4KLSAqIEBwYXJhbSB4IHBvaW50ZXIgdG8gc3RvcmUgeCBw
b3NpdGlvbiBvciAtMSBpZiBpdCdzIG5vdCBzZXQgaW4gd2luZG93X2ZlYXR1cmVzLgotICogQHBh
cmFtIHkgcG9pbnRlciB0byBzdG9yZSB5IHBvc2l0aW9uIG9yLTEgaWYgaXQncyBub3Qgc2V0IGlu
IHdpbmRvd19mZWF0dXJlcy4KLSAqIEBwYXJhbSB3IHBvaW50ZXIgdG8gc3RvcmUgd2lkdGggb3It
MSBpZiBpdCdzIG5vdCBzZXQgaW4gd2luZG93X2ZlYXR1cmVzLgotICogQHBhcmFtIGggcG9pbnRl
ciB0byBzdG9yZSBoZWlnaHQgb3ItMSBpZiBpdCdzIG5vdCBzZXQgaW4gd2luZG93X2ZlYXR1cmVz
LgorICogQHNlZSBld2tfd2luZG93X2ZlYXR1cmVzX2Jvb2xfcHJvcGVydHlfZ2V0CiAgKi8KIEVB
UEkgdm9pZCBld2tfd2luZG93X2ZlYXR1cmVzX2ludF9wcm9wZXJ0eV9nZXQoRXdrX1dpbmRvd19G
ZWF0dXJlcyogd2luZG93X2ZlYXR1cmVzLCBpbnQqIHgsIGludCogeSwgaW50KiB3LCBpbnQqIGgp
CiB7CkBAIC0xMzMsMTMgKzE0NSwxMiBAQCBFQVBJIHZvaWQgZXdrX3dpbmRvd19mZWF0dXJlc19p
bnRfcHJvcGVydHlfZ2V0KEV3a19XaW5kb3dfRmVhdHVyZXMqIHdpbmRvd19mZWF0dQogCiAvKioK
ICAqIEBpbnRlcm5hbAotICogQ3JlYXRlIGEgbmV3IEV3a19XaW5kb3dfRmVhdHVyZXMgZnJvbSBh
IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIGlmIEBwYXJhbQotICogY29yZSBpcyBub3QgTlVMTCBv
ciBhIG5ldyBvbmUgd2l0aCBkZWZhdWx0IGZlYXR1cmVzLgogICoKLSAqIEEgbmV3IFdlYkNvcmU6
OldpbmRvd0ZlYXR1cmVzIGlzIGFsbG9jYXRlZCBjb3B5aW5nIEBwYXJhbSBjb3JlIGZlYXR1cmVz
IGFuZAotICogaXQgaXMgZW1iZWRkZWQgaW5zaWRlIGFuIEV3a19XaW5kb3dfRmVhdHVyZXMgd2hv
c2UgcmVmIGNvdW50IGlzIGluaXRpYWxpemVkLgorICogQ3JlYXRlcyBhIG5ldyBFd2tfV2luZG93
X0ZlYXR1cmVzIG9iamVjdC4KICAqCi0gKiBAcmV0dXJucyBhIG5ldyBhbGxvY2F0ZWQgRXdrX1dp
bmRvd19GZWF0dXJlcworICogQHBhcmFtIGNvcmUgaWYgbm90IEBjIDAgYSBuZXcgV2ViQ29yZTo6
V2luZG93RmVhdHVyZXMgaXMgYWxsb2NhdGVkIGNvcHlpbmcgY29yZSBmZWF0dXJlcyBhbmQKKyAq
IGl0IGlzIGVtYmVkZGVkIGluc2lkZSB0aGUgRXdrX1dpbmRvd19GZWF0dXJlcyB3aG9zZSByZWYg
Y291bnQgaXMgaW5pdGlhbGl6ZWQsIGlmIGNvcmUgaXMgQGMgMCBhIG5ldyBvbmUgaXMgY3JlYXRl
ZCB3aXRoIHRoZSBkZWZhdWx0IGZlYXR1cmVzLgorICogQHJldHVybnMgYSBuZXcgYWxsb2NhdGVk
IHRoZSBFd2tfV2luZG93X0ZlYXR1cmVzIG9iamVjdAogICovCiBFd2tfV2luZG93X0ZlYXR1cmVz
KiBld2tfd2luZG93X2ZlYXR1cmVzX25ld19mcm9tX2NvcmUoY29uc3QgV2ViQ29yZTo6V2luZG93
RmVhdHVyZXMqIGNvcmUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3dpbmRvd19mZWF0dXJlcy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a193aW5kb3dfZmVh
dHVyZXMuaAppbmRleCBiNTc5ZGM0Li4wNTAxODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3dpbmRvd19mZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfd2luZG93X2ZlYXR1cmVzLmgKQEAgLTE4LDYgKzE4LDExIEBACiAgICAgQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCiAqLwogCisvKioKKyAqIEBmaWxlICAgIGV3a193aW5kb3dfZmVh
dHVyZXMuaAorICogQGJyaWVmICAgQWNjZXNzIHRvIHRoZSBmZWF0dXJlcyBvZiB3aW5kb3cuCisg
Ki8KKwogI2lmbmRlZiBld2tfd2luZG93X2ZlYXR1cmVzX2gKICNkZWZpbmUgZXdrX3dpbmRvd19m
ZWF0dXJlc19oCiAKQEAgLTI5LDYgKzM0LDcgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKKy8q
KiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1dpbmRvd19GZWF0dXJlcy4gKi8KIHR5cGVk
ZWYgc3RydWN0IF9Fd2tfV2luZG93X0ZlYXR1cmVzIEV3a19XaW5kb3dfRmVhdHVyZXM7CiAKIEVB
UEkgdm9pZCAgICAgICAgIGV3a193aW5kb3dfZmVhdHVyZXNfdW5yZWYoRXdrX1dpbmRvd19GZWF0
dXJlcyogd2luZG93X2ZlYXR1cmVzKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>