<?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>84835</bug_id>
          
          <creation_ts>2012-04-25 03:45:28 -0700</creation_ts>
          <short_desc>[EFL] [DRT] EFL&apos;s DumpRenderTree should support LayoutTestController&apos;s dumpEditingCallbacks()</short_desc>
          <delta_ts>2012-05-18 09:30:45 -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 EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sudarsana Nagineni (babu)">naginenis</reporter>
          <assigned_to name="Mariusz Grzegorczyk">mariusz.g</assigned_to>
          <cc>g.czajkowski</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>k.czech</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mariusz.g</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>609616</commentid>
    <comment_count>0</comment_count>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-04-25 03:45:28 -0700</bug_when>
    <thetext>EFL&apos;s DumpRenderTree needs to support LayoutTestController&apos;s dumpEditingCallbacks() in order to unksip several tests from the skip list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616054</commentid>
    <comment_count>1</comment_count>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2012-05-04 02:23:58 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; EFL&apos;s DumpRenderTree needs to support LayoutTestController&apos;s dumpEditingCallbacks() in order to unksip several tests from the skip list.

Are you preparing patch for this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616055</commentid>
    <comment_count>2</comment_count>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2012-05-04 02:28:03 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Are you preparing patch for this bug?

No. I have not started working on this yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618396</commentid>
    <comment_count>3</comment_count>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2012-05-08 01:15:08 -0700</bug_when>
    <thetext>As discussed with Sudarsana Nagineni I&apos;m preparing patch for this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618400</commentid>
    <comment_count>4</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-05-08 01:18:43 -0700</bug_when>
    <thetext>*** Bug 85871 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619444</commentid>
    <comment_count>5</comment_count>
      <attachid>140934</attachid>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2012-05-09 06:51:52 -0700</bug_when>
    <thetext>Created attachment 140934
[EFL] Editing callbacks implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620287</commentid>
    <comment_count>6</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-05-09 23:40:35 -0700</bug_when>
    <thetext>What are tests passed with this patch?
You should update Skipped or test_expectations.txt files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620390</commentid>
    <comment_count>7</comment_count>
      <attachid>140934</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-10 02:09:56 -0700</bug_when>
    <thetext>Comment on attachment 140934
[EFL] Editing callbacks implementation

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

&gt; Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp:95
&gt; +bool EditorClientEfl::shouldInsertText(const String&amp; string, Range* range, EditorInsertAction action)

string is ambiguous variable name. I think it is good to use more clear name.

&gt; Tools/DumpRenderTree/efl/EditingCallbacks.cpp:61
&gt; +static const char* insertActionString(WebCore::EditorInsertAction action)

Why do you return const char* instead of WTF::String ? I think it is better to return consistent value with above functions.

&gt; Tools/DumpRenderTree/efl/EditingCallbacks.cpp:87
&gt; +void shouldBeginEditing(void*, Evas_Object*, void* event_info)

Do not use _ in parameter.

&gt; Tools/DumpRenderTree/efl/EditingCallbacks.cpp:95
&gt; +void shouldEndEditing(void*, Evas_Object*, void* event_info)

ditto.

&gt; Tools/DumpRenderTree/efl/EditingCallbacks.cpp:103
&gt; +void shouldInsertNode(void*, Evas_Object*, void* event_info)

ditto.

&gt; Tools/DumpRenderTree/efl/EditingCallbacks.cpp:113
&gt; +void shouldInsertText(void*, Evas_Object*, void* event_info)

ditto.

&gt; Tools/DumpRenderTree/efl/EditingCallbacks.cpp:122
&gt; +void shouldDeleteRange(void*, Evas_Object*, void* event_info)

ditto.

&gt; Tools/DumpRenderTree/efl/EditingCallbacks.cpp:130
&gt; +void shouldChangeSelectedRange(void*, Evas_Object*, void* event_info)

ditto.

&gt; Tools/DumpRenderTree/efl/EditingCallbacks.cpp:140
&gt; +void shouldApplyStyle(void*, Evas_Object*, void* event_info)

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626381</commentid>
    <comment_count>8</comment_count>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2012-05-17 01:51:32 -0700</bug_when>
    <thetext>(In reply to comment #7)

&gt; &gt; Tools/DumpRenderTree/efl/EditingCallbacks.cpp:61
&gt; &gt; +static const char* insertActionString(WebCore::EditorInsertAction action)
&gt; 
&gt; Why do you return const char* instead of WTF::String ? I think it is better to return consistent value with above functions.


dumpPath and dumpRange generates strings, so WTF::String is used to simplify, but other helper functions just returns one of predefined strings, so to avoid conversion to String and than to char* it is better to leave it as is. Same policy is chosen in gtk port. See EditingCallbacks.cpp in gtk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626392</commentid>
    <comment_count>9</comment_count>
      <attachid>142444</attachid>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2012-05-17 02:16:38 -0700</bug_when>
    <thetext>Created attachment 142444
[EFL] Editing callbacks implementation

Rebased, update with Gyuyoung&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626400</commentid>
    <comment_count>10</comment_count>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2012-05-17 02:36:52 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; What are tests passed with this patch?
&gt; You should update Skipped or test_expectations.txt files.

Skipped and test_expectations.txt will be updated soon in separate patch under this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626412</commentid>
    <comment_count>11</comment_count>
      <attachid>142444</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-17 03:16:02 -0700</bug_when>
    <thetext>Comment on attachment 142444
[EFL] Editing callbacks implementation

rs=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626430</commentid>
    <comment_count>12</comment_count>
      <attachid>142444</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 04:05:35 -0700</bug_when>
    <thetext>Comment on attachment 142444
[EFL] Editing callbacks implementation

Clearing flags on attachment: 142444

Committed r117426: &lt;http://trac.webkit.org/changeset/117426&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626432</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 04:05:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627739</commentid>
    <comment_count>14</comment_count>
      <attachid>142444</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-18 09:01:00 -0700</bug_when>
    <thetext>Comment on attachment 142444
[EFL] Editing callbacks implementation

ewk_view.h has not been updated with the new signals being emitted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627742</commentid>
    <comment_count>15</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-18 09:02:42 -0700</bug_when>
    <thetext>Plus API users cannot really use these new signals since the structs are defined in EditorClientEfl.h, which is not installed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627745</commentid>
    <comment_count>16</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-05-18 09:07:06 -0700</bug_when>
    <thetext>Please fix these issues ASAP, otherwise I am inclined to revert this until these issues are properly addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627754</commentid>
    <comment_count>17</comment_count>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2012-05-18 09:29:04 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Please fix these issues ASAP, otherwise I am inclined to revert this until these issues are properly addressed.

From the beginning they were NOT being exported to API. They are used internally by DRT. In previous patch they were in ewk_private.h not ewk_view.h, so also were not installed. In update patch I only moved them from ewk_private.h to EditorClientEfl.h because of some refactoring done in ewk_*_private.h files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627755</commentid>
    <comment_count>18</comment_count>
    <who name="Mariusz Grzegorczyk">mariusz.g</who>
    <bug_when>2012-05-18 09:30:45 -0700</bug_when>
    <thetext>Additionally these singals must use internal WebCore&apos;s classes not accesible for external applications, so they cannot be exported.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140934</attachid>
            <date>2012-05-09 06:51:52 -0700</date>
            <delta_ts>2012-05-17 02:16:38 -0700</delta_ts>
            <desc>[EFL] Editing callbacks implementation</desc>
            <filename>bug-84835-20120509.patch</filename>
            <type>text/plain</type>
            <size>20249</size>
            <attacher name="Mariusz Grzegorczyk">mariusz.g</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCAzZmFlNGU2Li5jYWQ2MTg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTItMDUtMDkgIE1hcml1c3ogR3J6ZWdvcmN6eWsgIDxtYXJpdXN6
LmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gW0RSVF0gRUZMJ3MgRHVtcFJlbmRlclRy
ZWUgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1wRWRpdGluZ0NhbGxi
YWNrcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDgzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcDogQ2FsbCBhcHByb3ByaWF0ZSBjYWxs
YmFja3MgZm9yIGVkaXRpbmcgYWN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dEVmbDo6c2hvdWxkRGVsZXRlUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsOjpzaG91bGRCZWdpbkVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsOjpzaG91bGRFbmRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVm
bDo6c2hvdWxkSW5zZXJ0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6
OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xp
ZW50RWZsOjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dEVmbDo6ZGlkQmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVm
bDo6ZGlkRW5kRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OnNo
b3VsZEluc2VydE5vZGUpOgorICAgICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOiBBZGQgc3RydWN0
dXJlcyBuZWVkZWQgYnkgZWRpdGluZyBjYWxsYmFja3MuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKEV3a19TaG91bGRfSW5zZXJ0X05vZGVfRXZlbnQpOgorICAgICAgICAoRXdrX1Nob3Vs
ZF9JbnNlcnRfVGV4dF9FdmVudCk6CisgICAgICAgIChFd2tfU2hvdWxkX0NoYW5nZV9TZWxlY3Rl
ZF9SYW5nZV9FdmVudCk6CisgICAgICAgIChFd2tfU2hvdWxkX0FwcGx5X1N0eWxlX0V2ZW50KToK
KwogMjAxMi0wNS0wOSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGlu
dGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtEUlRdIExheW91dFRlc3RDb250cm9sbGVyIGFkZFVz
ZXJTY3JpcHQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCmluZGV4IDhiOWJjOWYuLjE2NzI0OWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcApAQCAtNTEsOSArNTEsOSBAQCB2b2lkIEVkaXRvckNsaWVudEVmbDo6c2V0SW5wdXRN
ZXRob2RTdGF0ZShib29sIGFjdGl2ZSkKICAgICBld2tfdmlld19pbnB1dF9tZXRob2Rfc3RhdGVf
c2V0KG1fdmlldywgYWN0aXZlKTsKIH0KIAotYm9vbCBFZGl0b3JDbGllbnRFZmw6OnNob3VsZERl
bGV0ZVJhbmdlKFJhbmdlKikKK2Jvb2wgRWRpdG9yQ2xpZW50RWZsOjpzaG91bGREZWxldGVSYW5n
ZShSYW5nZSogcmFuZ2UpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19jYWxsKG1fdmlldywgImVkaXRvcmNsaWVudCxyYW5nZSxkZWxldGUi
LCByYW5nZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTgwLDMzICs4MCwzNiBAQCBpbnQg
RWRpdG9yQ2xpZW50RWZsOjpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpCiAgICAgcmV0dXJuIDA7
CiB9CiAKLWJvb2wgRWRpdG9yQ2xpZW50RWZsOjpzaG91bGRCZWdpbkVkaXRpbmcoUmFuZ2UqKQor
Ym9vbCBFZGl0b3JDbGllbnRFZmw6OnNob3VsZEJlZ2luRWRpdGluZyhSYW5nZSogcmFuZ2UpCiB7
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19j
YWxsKG1fdmlldywgImVkaXRvcmNsaWVudCxlZGl0aW5nLGJlZ2luIiwgcmFuZ2UpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIEVkaXRvckNsaWVudEVmbDo6c2hvdWxkRW5kRWRpdGluZyhS
YW5nZSopCitib29sIEVkaXRvckNsaWVudEVmbDo6c2hvdWxkRW5kRWRpdGluZyhSYW5nZSogcmFu
Z2UpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19jYWxsKG1fdmlldywgImVkaXRvcmNsaWVudCxlZGl0aW5nLGVuZCIsIHJhbmdlKTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBFZGl0b3JDbGllbnRFZmw6OnNob3VsZEluc2VydFRl
eHQoY29uc3QgU3RyaW5nJiwgUmFuZ2UqLCBFZGl0b3JJbnNlcnRBY3Rpb24pCitib29sIEVkaXRv
ckNsaWVudEVmbDo6c2hvdWxkSW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmIHN0cmluZywgUmFuZ2Uq
IHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb24gYWN0aW9uKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgRXdrX1Nob3VsZF9JbnNlcnRfVGV4dF9FdmVudCBzaG91bGRJbnNlcnRUZXh0RXZl
bnQgPSB7IHN0cmluZy51dGY4KCkuZGF0YSgpLCByYW5nZSwgYWN0aW9uIH07CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX3ZpZXcsICJlZGl0b3JjbGllbnQsdGV4dCxpbnNl
cnQiLCAmc2hvdWxkSW5zZXJ0VGV4dEV2ZW50KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBFZGl0b3JDbGllbnRFZmw6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBSYW5n
ZSosIEVBZmZpbml0eSwgYm9vbCkKK2Jvb2wgRWRpdG9yQ2xpZW50RWZsOjpzaG91bGRDaGFuZ2VT
ZWxlY3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFuZ2UsIFJhbmdlKiB0b1JhbmdlLCBFQWZmaW5pdHkg
YWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICBFd2tfU2hvdWxkX0NoYW5nZV9TZWxlY3RlZF9SYW5nZV9FdmVudCBzaG91bGRDaGFuZ2VT
ZWxlY3RlZFJhbmdlRXZlbnQgPSB7IGZyb21SYW5nZSwgdG9SYW5nZSwgYWZmaW5pdHksIHN0aWxs
U2VsZWN0aW5nIH07CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX3ZpZXcs
ICJlZGl0b3JjbGllbnQsc2VsZWN0ZWQscmFuZ2UsY2hhbmdlIiwgJnNob3VsZENoYW5nZVNlbGVj
dGVkUmFuZ2VFdmVudCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgRWRpdG9yQ2xpZW50
RWZsOjpzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqLCBSYW5nZSopCitib29sIEVk
aXRvckNsaWVudEVmbDo6c2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwg
UmFuZ2UqIHJhbmdlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgRXdrX1Nob3VsZF9B
cHBseV9TdHlsZV9FdmVudCBzaG91bGRBcHBseVN0eWxlRXZlbnQgPSB7IHN0eWxlLCByYW5nZSB9
OworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV92aWV3LCAiZWRpdG9yY2xp
ZW50LHN0eWxlLGFwcGx5IiwgJnNob3VsZEFwcGx5U3R5bGVFdmVudCk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTExOCw3ICsxMjEsNyBAQCBib29sIEVkaXRvckNsaWVudEVmbDo6c2hvdWxk
TW92ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqLCBSYW5nZSopCiAKIHZvaWQgRWRpdG9yQ2xpZW50
RWZsOjpkaWRCZWdpbkVkaXRpbmcoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX3ZpZXcsICJlZGl0b3JjbGllbnQsZWRpdGlu
ZyxiZWdhbiIsIDApOwogfQogCiB2b2lkIEVkaXRvckNsaWVudEVmbDo6cmVzcG9uZFRvQ2hhbmdl
ZENvbnRlbnRzKCkKQEAgLTE0OCw3ICsxNTEsNyBAQCB2b2lkIEVkaXRvckNsaWVudEVmbDo6cmVz
cG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihGcmFtZSogY29yZUZyYW1lKQogCiB2b2lkIEVkaXRvckNs
aWVudEVmbDo6ZGlkRW5kRWRpdGluZygpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBl
dmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1fdmlldywgImVkaXRvcmNsaWVudCxlZGl0
aW5nLGVuZGVkIiwgMCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpkaWRXcml0ZVNlbGVj
dGlvblRvUGFzdGVib2FyZCgpCkBAIC0yMTksOSArMjIyLDEwIEBAIHZvaWQgRWRpdG9yQ2xpZW50
RWZsOjpyZWRvKCkKICAgICB9CiB9CiAKLWJvb2wgRWRpdG9yQ2xpZW50RWZsOjpzaG91bGRJbnNl
cnROb2RlKE5vZGUqLCBSYW5nZSosIEVkaXRvckluc2VydEFjdGlvbikKK2Jvb2wgRWRpdG9yQ2xp
ZW50RWZsOjpzaG91bGRJbnNlcnROb2RlKE5vZGUqIG5vZGUsIFJhbmdlKiByYW5nZSwgRWRpdG9y
SW5zZXJ0QWN0aW9uIGFjdGlvbikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEV3a19T
aG91bGRfSW5zZXJ0X05vZGVfRXZlbnQgaW5zZXJ0Tm9kZUV2ZW50ID0geyBub2RlLCByYW5nZSwg
YWN0aW9uIH07CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX3ZpZXcsICJl
ZGl0b3JjbGllbnQsbm9kZSxpbnNlcnQiLCAmaW5zZXJ0Tm9kZUV2ZW50KTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAppbmRleCAyNmQ0NDhkLi4x
MDBmZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaApAQCAtMjgsOSArMjgsMTEg
QEAKIAogI2luY2x1ZGUgIkFQSUNhc3QuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZExpc3RJbXBs
LmgiCisjaW5jbHVkZSAiRWRpdG9ySW5zZXJ0QWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJOUF9qc29iamVjdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJU
ZXh0QWZmaW5pdHkuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlICJld2tfaGlzdG9y
eS5oIgogI2luY2x1ZGUgImV3a19qcy5oIgpAQCAtODUsNyArODcsMTAgQEAgc3RydWN0IENvbG9y
Q2hvb3NlckNsaWVudDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogY2xhc3MgR3JhcGhpY3NM
YXllcjsKICNlbmRpZgorY2xhc3MgTm9kZTsKK2NsYXNzIFJhbmdlOwogY2xhc3MgU2VjdXJpdHlP
cmlnaW47CitjbGFzcyBTdHlsZVByb3BlcnR5U2V0OwogfQogCiBzdHJ1Y3QgRXdrX1dpbmRvd19P
YmplY3RfQ2xlYXJlZF9FdmVudCB7CkBAIC05NCw2ICs5OSwzMCBAQCBzdHJ1Y3QgRXdrX1dpbmRv
d19PYmplY3RfQ2xlYXJlZF9FdmVudCB7CiAgICAgRXZhc19PYmplY3QqIGZyYW1lOwogfTsKIAor
c3RydWN0IEV3a19TaG91bGRfSW5zZXJ0X05vZGVfRXZlbnQgeworICAgIFdlYkNvcmU6Ok5vZGUq
IG5vZGU7CisgICAgV2ViQ29yZTo6UmFuZ2UqIHJhbmdlOworICAgIFdlYkNvcmU6OkVkaXRvcklu
c2VydEFjdGlvbiBhY3Rpb247Cit9OworCitzdHJ1Y3QgRXdrX1Nob3VsZF9JbnNlcnRfVGV4dF9F
dmVudCB7CisgICAgY29uc3QgY2hhciogdGV4dDsKKyAgICBXZWJDb3JlOjpSYW5nZSogcmFuZ2U7
CisgICAgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uIGFjdGlvbjsKK307CisKK3N0cnVjdCBF
d2tfU2hvdWxkX0NoYW5nZV9TZWxlY3RlZF9SYW5nZV9FdmVudCB7CisgICAgV2ViQ29yZTo6UmFu
Z2UqIGZyb21SYW5nZTsKKyAgICBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZTsKKyAgICBXZWJDb3Jl
OjpFQWZmaW5pdHkgYWZmaW5pdHk7CisgICAgYm9vbCBzdGlsbFNlbGVjdGluZzsKK307CisKK3N0
cnVjdCBFd2tfU2hvdWxkX0FwcGx5X1N0eWxlX0V2ZW50IHsKKyAgICBXZWJDb3JlOjpTdHlsZVBy
b3BlcnR5U2V0KiBzdHlsZTsKKyAgICBXZWJDb3JlOjpSYW5nZSogcmFuZ2U7Cit9OworCiBuYW1l
c3BhY2UgRVdLUHJpdmF0ZSB7CiAKIFdlYkNvcmU6OkZyYW1lICpjb3JlRnJhbWUoY29uc3QgRXZh
c19PYmplY3QgKmV3a0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBlY2FjODc0Li40MjkzYTE4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDUtMDkg
IE1hcml1c3ogR3J6ZWdvcmN6eWsgIDxtYXJpdXN6LmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF0gW0RSVF0gRUZMJ3MgRHVtcFJlbmRlclRyZWUgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVz
dENvbnRyb2xsZXIncyBkdW1wRWRpdGluZ0NhbGxiYWNrcygpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDgzNQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGVkaXRpbmcgY2FsbGJhY2tzIGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0NNYWtlTGlzdHMudHh0
OiBBZGQgRWRpdGluZ0NhbGxiYWNrcy5jcHAgdG8gY29tcGlsYXRpb24uCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDogSW52b2tlIGNvbm5lY3RF
ZGl0aW5nQ2FsbGJhY2tzLgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OmNyZWF0ZVZp
ZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9FZGl0aW5nQ2FsbGJhY2tzLmNwcDog
QWRkZWQuIER1bXAgZWRpdGluZyBjYWxsYmFja3MuCisgICAgICAgIChkdW1wUGF0aCk6CisgICAg
ICAgIChkdW1wUmFuZ2UpOgorICAgICAgICAoaW5zZXJ0QWN0aW9uU3RyaW5nKToKKyAgICAgICAg
KHNlbGVjdGlvbkFmZmluaXR5U3RyaW5nKToKKyAgICAgICAgKHNob3VsZEJlZ2luRWRpdGluZyk6
CisgICAgICAgIChzaG91bGRFbmRFZGl0aW5nKToKKyAgICAgICAgKHNob3VsZEluc2VydE5vZGUp
OgorICAgICAgICAoc2hvdWxkSW5zZXJ0VGV4dCk6CisgICAgICAgIChzaG91bGREZWxldGVSYW5n
ZSk6CisgICAgICAgIChzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKToKKyAgICAgICAgKHNob3Vs
ZEFwcGx5U3R5bGUpOgorICAgICAgICAoZWRpdGluZ0JlZ2FuKToKKyAgICAgICAgKHVzZXJDaGFu
Z2VkQ29udGVudHMpOgorICAgICAgICAoZWRpdGluZ0VuZGVkKToKKyAgICAgICAgKHNlbGVjdGlv
bkNoYW5nZWQpOgorICAgICAgICAoY29ubmVjdEVkaXRpbmdDYWxsYmFja3MpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2VmbC9FZGl0aW5nQ2FsbGJhY2tzLmg6IEFkZGVkLgorCiAyMDEyLTA1
LTA5ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgog
CiAgICAgICAgIFtFRkxdW0RSVF0gTGF5b3V0VGVzdENvbnRyb2xsZXIgYWRkVXNlclNjcmlwdCBp
bXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0NNYWtl
TGlzdHMudHh0IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0NNYWtlTGlzdHMudHh0CmluZGV4
IDA0MTZlMDEuLjI4ZmRlMzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9D
TWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvQ01ha2VMaXN0cy50
eHQKQEAgLTksNiArOSw3IEBAIFNFVChEdW1wUmVuZGVyVHJlZV9TT1VSQ0VTCiAgICAgJHtUT09M
U19ESVJ9L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAKICAgICAke1RPT0xT
X0RJUn0vRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAogICAgICR7
VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVWaWV3LmNwcAorICAg
ICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9lZmwvRWRpdGluZ0NhbGxiYWNrcy5jcHAKICAg
ICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcAogICAgICR7
VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9lZmwvRm9udE1hbmFnZW1lbnQuY3BwCiAgICAgJHtU
T09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL2VmbC9HQ0NvbnRyb2xsZXJFZmwuY3BwCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRleCA0
ZWYwZTQ1Li4yODg1MGVlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVt
cFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1w
UmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkR1bXBS
ZW5kZXJUcmVlLmgiCiAjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVWaWV3LmgiCisjaW5jbHVkZSAi
RWRpdGluZ0NhbGxiYWNrcy5oIgogI2luY2x1ZGUgIkV2ZW50U2VuZGVyLmgiCiAjaW5jbHVkZSAi
R0NDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTGF5b3V0VGVzdENvbnRyb2xsZXIuaCIKQEAgLTEw
Nyw2ICsxMDgsOCBAQCBFdmFzX09iamVjdCogRHVtcFJlbmRlclRyZWVDaHJvbWU6OmNyZWF0ZVZp
ZXcoKSBjb25zdAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAibWl4
ZWRjb250ZW50LGRpc3BsYXllZCIsIG9uSW5zZWN1cmVDb250ZW50RGlzcGxheWVkLCAwKTsKICAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgImZyYW1lLGNyZWF0ZWQiLCBv
bkZyYW1lQ3JlYXRlZCwgMCk7CiAKKyAgICBjb25uZWN0RWRpdGluZ0NhbGxiYWNrcyh2aWV3KTsK
KwogICAgIEV2YXNfT2JqZWN0KiBtYWluRnJhbWUgPSBld2tfdmlld19mcmFtZV9tYWluX2dldCh2
aWV3KTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAibG9h
ZCxwcm92aXNpb25hbCIsIG9uRnJhbWVQcm92aXNpb25hbExvYWQsIDApOwogICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJhbWUsICJsb2FkLGNvbW1pdHRlZCIsIG9uRnJh
bWVMb2FkQ29tbWl0dGVkLCAwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9FZGl0aW5nQ2FsbGJhY2tzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9FZGl0aW5n
Q2FsbGJhY2tzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTc4NDVm
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0VkaXRpbmdDYWxs
YmFja3MuY3BwCkBAIC0wLDAgKzEsMTg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEln
YWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0aW5nQ2FsbGJhY2tzLmgiCisKKyNpbmNsdWRl
ICJEdW1wUmVuZGVyVHJlZS5oIgorI2luY2x1ZGUgIkVkaXRvckluc2VydEFjdGlvbi5oIgorI2lu
Y2x1ZGUgIkxheW91dFRlc3RDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1
ZGUgIlJhbmdlLmgiCisjaW5jbHVkZSAiVGV4dEFmZmluaXR5LmgiCisjaW5jbHVkZSAiZXdrX3By
aXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK3N0YXRpYyBXVEY6OlN0cmluZyBkdW1wUGF0aChXZWJDb3JlOjpO
b2RlKiBub2RlKQoreworICAgIFdlYkNvcmU6Ok5vZGUqIHBhcmVudCA9IG5vZGUtPnBhcmVudE5v
ZGUoKTsKKyAgICBXVEY6OlN0cmluZyBzdHIgPSBXVEY6OlN0cmluZzo6Zm9ybWF0KCIlcyIsIG5v
ZGUtPm5vZGVOYW1lKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKHBhcmVudCkgeworICAgICAg
ICBzdHIuYXBwZW5kKCIgPiAiKTsKKyAgICAgICAgc3RyLmFwcGVuZChkdW1wUGF0aChwYXJlbnQp
KTsKKyAgICB9CisgICAgcmV0dXJuIHN0cjsKK30KKworc3RhdGljIFdURjo6U3RyaW5nIGR1bXBS
YW5nZShXZWJDb3JlOjpSYW5nZSogcmFuZ2UpCit7CisgICAgaWYgKCFyYW5nZSkKKyAgICAgICAg
cmV0dXJuICIobnVsbCkiOworICAgIHJldHVybiBXVEY6OlN0cmluZzo6Zm9ybWF0KCJyYW5nZSBm
cm9tICVkIG9mICVzIHRvICVkIG9mICVzIiwgcmFuZ2UtPnN0YXJ0T2Zmc2V0KCksIGR1bXBQYXRo
KHJhbmdlLT5zdGFydENvbnRhaW5lcigpKS51dGY4KCkuZGF0YSgpLCByYW5nZS0+ZW5kT2Zmc2V0
KCksIGR1bXBQYXRoKHJhbmdlLT5lbmRDb250YWluZXIoKSkudXRmOCgpLmRhdGEoKSk7Cit9CisK
K3N0YXRpYyBjb25zdCBjaGFyKiBpbnNlcnRBY3Rpb25TdHJpbmcoV2ViQ29yZTo6RWRpdG9ySW5z
ZXJ0QWN0aW9uIGFjdGlvbikKK3sKKyAgICBzd2l0Y2ggKGFjdGlvbikgeworICAgIGNhc2UgV2Vi
Q29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQ6CisgICAgICAgIHJldHVybiAiV2ViVmlld0lu
c2VydEFjdGlvblR5cGVkIjsKKyAgICBjYXNlIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvblBh
c3RlZDoKKyAgICAgICAgcmV0dXJuICJXZWJWaWV3SW5zZXJ0QWN0aW9uUGFzdGVkIjsKKyAgICBj
YXNlIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbkRyb3BwZWQ6CisgICAgICAgIHJldHVybiAi
V2ViVmlld0luc2VydEFjdGlvbkRyb3BwZWQiOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gIldlYlZpZXdJbnNlcnRBY3Rpb25UeXBlZCI7Cit9CisKK3N0YXRp
YyBjb25zdCBjaGFyKiBzZWxlY3Rpb25BZmZpbml0eVN0cmluZyhXZWJDb3JlOjpFQWZmaW5pdHkg
YWZmaW5pdHkpCit7CisgICAgc3dpdGNoIChhZmZpbml0eSkgeworICAgIGNhc2UgV2ViQ29yZTo6
VVBTVFJFQU06CisgICAgICAgIHJldHVybiAiTlNTZWxlY3Rpb25BZmZpbml0eVVwc3RyZWFtIjsK
KyAgICBjYXNlIFdlYkNvcmU6OkRPV05TVFJFQU06CisgICAgICAgIHJldHVybiAiTlNTZWxlY3Rp
b25BZmZpbml0eURvd25zdHJlYW0iOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gIk5TU2VsZWN0aW9uQWZmaW5pdHlVcHN0cmVhbSI7Cit9CisKK3ZvaWQgc2hv
dWxkQmVnaW5FZGl0aW5nKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50X2luZm8pCit7
CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEVkaXRpbmdDYWxs
YmFja3MoKSkgeworICAgICAgICBXZWJDb3JlOjpSYW5nZSogcmFuZ2UgPSBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpSYW5nZSo+KGV2ZW50X2luZm8pOworICAgICAgICBwcmludGYoIkVESVRJTkcgREVM
RUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6JXNcbiIsIGR1bXBSYW5nZShyYW5n
ZSkudXRmOCgpLmRhdGEoKSk7CisgICAgfQorfQorCit2b2lkIHNob3VsZEVuZEVkaXRpbmcodm9p
ZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRfaW5mbykKK3sKKyAgICBpZiAoIWRvbmUgJiYg
Z0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRWRpdGluZ0NhbGxiYWNrcygpKSB7CisgICAgICAg
IFdlYkNvcmU6OlJhbmdlKiByYW5nZSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlJhbmdlKj4oZXZl
bnRfaW5mbyk7CisgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FURTogc2hvdWxkRW5kRWRp
dGluZ0luRE9NUmFuZ2U6JXNcbiIsIGR1bXBSYW5nZShyYW5nZSkudXRmOCgpLmRhdGEoKSk7Cisg
ICAgfQorfQorCit2b2lkIHNob3VsZEluc2VydE5vZGUodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9p
ZCogZXZlbnRfaW5mbykKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wRWRpdGluZ0NhbGxiYWNrcygpKSB7CisgICAgICAgIEV3a19TaG91bGRfSW5zZXJ0X05v
ZGVfRXZlbnQqIHNob3VsZEluc2VydE5vZGVFdmVudCA9IHN0YXRpY19jYXN0PEV3a19TaG91bGRf
SW5zZXJ0X05vZGVfRXZlbnQqPihldmVudF9pbmZvKTsKKyAgICAgICAgcHJpbnRmKCJFRElUSU5H
IERFTEVHQVRFOiBzaG91bGRJbnNlcnROb2RlOiVzIHJlcGxhY2luZ0RPTVJhbmdlOiVzIGdpdmVu
QWN0aW9uOiVzXG4iLAorICAgICAgICAgICAgICAgZHVtcFBhdGgoc2hvdWxkSW5zZXJ0Tm9kZUV2
ZW50LT5ub2RlKS51dGY4KCkuZGF0YSgpLCBkdW1wUmFuZ2Uoc2hvdWxkSW5zZXJ0Tm9kZUV2ZW50
LT5yYW5nZSkudXRmOCgpLmRhdGEoKSwKKyAgICAgICAgICAgICAgIGluc2VydEFjdGlvblN0cmlu
ZyhzaG91bGRJbnNlcnROb2RlRXZlbnQtPmFjdGlvbikpOworICAgIH0KK30KKwordm9pZCBzaG91
bGRJbnNlcnRUZXh0KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50X2luZm8pCit7Cisg
ICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEVkaXRpbmdDYWxsYmFj
a3MoKSkgeworICAgICAgICBFd2tfU2hvdWxkX0luc2VydF9UZXh0X0V2ZW50KiBzaG91bGRJbnNl
cnRUZXh0RXZlbnQgPSBzdGF0aWNfY2FzdDxFd2tfU2hvdWxkX0luc2VydF9UZXh0X0V2ZW50Kj4o
ZXZlbnRfaW5mbyk7CisgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FURTogc2hvdWxkSW5z
ZXJ0VGV4dDolcyByZXBsYWNpbmdET01SYW5nZTolcyBnaXZlbkFjdGlvbjolc1xuIiwKKyAgICAg
ICAgICAgICAgICBzaG91bGRJbnNlcnRUZXh0RXZlbnQtPnRleHQsIGR1bXBSYW5nZShzaG91bGRJ
bnNlcnRUZXh0RXZlbnQtPnJhbmdlKS51dGY4KCkuZGF0YSgpLCBpbnNlcnRBY3Rpb25TdHJpbmco
c2hvdWxkSW5zZXJ0VGV4dEV2ZW50LT5hY3Rpb24pKTsKKyAgICB9Cit9CisKK3ZvaWQgc2hvdWxk
RGVsZXRlUmFuZ2Uodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRfaW5mbykKK3sKKyAg
ICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRWRpdGluZ0NhbGxiYWNr
cygpKSB7CisgICAgICAgIFdlYkNvcmU6OlJhbmdlKiByYW5nZSA9IHN0YXRpY19jYXN0PFdlYkNv
cmU6OlJhbmdlKj4oZXZlbnRfaW5mbyk7CisgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FU
RTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6JXNcbiIsIGR1bXBSYW5nZShyYW5nZSkudXRmOCgpLmRh
dGEoKSk7CisgICAgfQorfQorCit2b2lkIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2Uodm9pZCos
IEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRfaW5mbykKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xh
eW91dFRlc3RDb250cm9sbGVyLT5kdW1wRWRpdGluZ0NhbGxiYWNrcygpKSB7CisgICAgICAgIEV3
a19TaG91bGRfQ2hhbmdlX1NlbGVjdGVkX1JhbmdlX0V2ZW50KiBzaG91bGRDaGFuZ2VTZWxlY3Rl
ZFJhbmdlRXZlbnQgPSBzdGF0aWNfY2FzdDxFd2tfU2hvdWxkX0NoYW5nZV9TZWxlY3RlZF9SYW5n
ZV9FdmVudCo+KGV2ZW50X2luZm8pOworICAgICAgICBwcmludGYoIkVESVRJTkcgREVMRUdBVEU6
IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6JXMgdG9ET01SYW5nZTolcyBhZmZpbml0eTol
cyBzdGlsbFNlbGVjdGluZzolc1xuIiwKKyAgICAgICAgICAgICAgIGR1bXBSYW5nZShzaG91bGRD
aGFuZ2VTZWxlY3RlZFJhbmdlRXZlbnQtPmZyb21SYW5nZSkudXRmOCgpLmRhdGEoKSwgZHVtcFJh
bmdlKHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2VFdmVudC0+dG9SYW5nZSkudXRmOCgpLmRhdGEo
KSwKKyAgICAgICAgICAgICAgIHNlbGVjdGlvbkFmZmluaXR5U3RyaW5nKHNob3VsZENoYW5nZVNl
bGVjdGVkUmFuZ2VFdmVudC0+YWZmaW5pdHkpLCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlRXZl
bnQtPnN0aWxsU2VsZWN0aW5nID8gIlRSVUUiIDogIkZBTFNFIik7CisgICAgfQorfQorCit2b2lk
IHNob3VsZEFwcGx5U3R5bGUodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRfaW5mbykK
K3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRWRpdGluZ0Nh
bGxiYWNrcygpKSB7CisgICAgICAgIEV3a19TaG91bGRfQXBwbHlfU3R5bGVfRXZlbnQqIHNob3Vs
ZEFwcGx5U3R5bGVFdmVudCA9IHN0YXRpY19jYXN0PEV3a19TaG91bGRfQXBwbHlfU3R5bGVfRXZl
bnQqPihldmVudF9pbmZvKTsKKyAgICAgICAgcHJpbnRmKCJFRElUSU5HIERFTEVHQVRFOiBzaG91
bGRBcHBseVN0eWxlOiVzIHRvRWxlbWVudHNJbkRPTVJhbmdlOiVzXG4iLAorICAgICAgICAgICAg
ICAgIHNob3VsZEFwcGx5U3R5bGVFdmVudC0+c3R5bGUtPmFzVGV4dCgpLnV0ZjgoKS5kYXRhKCks
IGR1bXBSYW5nZShzaG91bGRBcHBseVN0eWxlRXZlbnQtPnJhbmdlKS51dGY4KCkuZGF0YSgpKTsK
KyAgICB9Cit9CisKK3ZvaWQgZWRpdGluZ0JlZ2FuKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQq
KQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBFZGl0aW5n
Q2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90aWZpY2F0aW9uXG4iKTsKK30K
Kwordm9pZCB1c2VyQ2hhbmdlZENvbnRlbnRzKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKQor
eworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBFZGl0aW5nQ2Fs
bGJhY2tzKCkpCisgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uXG4iKTsKK30KKwordm9pZCBlZGl0aW5n
RW5kZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopCit7CisgICAgaWYgKCFkb25lICYmIGdM
YXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEVkaXRpbmdDYWxsYmFja3MoKSkKKyAgICAgICAgcHJp
bnRmKCJFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkRW5kRWRpdGluZzpXZWJWaWV3RGlkRW5k
RWRpdGluZ05vdGlmaWNhdGlvblxuIik7Cit9CisKK3ZvaWQgc2VsZWN0aW9uQ2hhbmdlZCh2b2lk
KiwgRXZhc19PYmplY3QqLCB2b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RD
b250cm9sbGVyLT5kdW1wRWRpdGluZ0NhbGxiYWNrcygpKQorICAgICAgICBwcmludGYoIkVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvblxuIik7Cit9CisKK3ZvaWQgY29ubmVjdEVkaXRpbmdDYWxsYmFj
a3MoRXZhc19PYmplY3QqIHdlYlZpZXcpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfYWRkKHdlYlZpZXcsICJlZGl0b3JjbGllbnQsZWRpdGluZyxiZWdpbiIsIHNob3VsZEJlZ2lu
RWRpdGluZywgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcs
ICJlZGl0b3JjbGllbnQsZWRpdGluZyxlbmQiLCBzaG91bGRFbmRFZGl0aW5nLCAwKTsKKyAgICBl
dmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldywgImVkaXRvcmNsaWVudCxub2Rl
LGluc2VydCIsIHNob3VsZEluc2VydE5vZGUsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZCh3ZWJWaWV3LCAiZWRpdG9yY2xpZW50LHRleHQsaW5zZXJ0Iiwgc2hvdWxkSW5z
ZXJ0VGV4dCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcs
ICJlZGl0b3JjbGllbnQscmFuZ2UsZGVsZXRlIiwgc2hvdWxkRGVsZXRlUmFuZ2UsIDApOworICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3ZWJWaWV3LCAiZWRpdG9yY2xpZW50LHNl
bGVjdGVkLHJhbmdlLGNoYW5nZSIsIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UsIDApOworICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3ZWJWaWV3LCAiZWRpdG9yY2xpZW50LHN0
eWxlLGFwcGx5Iiwgc2hvdWxkQXBwbHlTdHlsZSwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfYWRkKHdlYlZpZXcsICJlZGl0b3JjbGllbnQsZWRpdGluZyxiZWdhbiIsIGVkaXRp
bmdCZWdhbiwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcs
ICJlZGl0b3JjbGllbnQsY29udGVudHMsY2hhbmdlZCIsIHVzZXJDaGFuZ2VkQ29udGVudHMsIDAp
OworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3ZWJWaWV3LCAiZWRpdG9yY2xp
ZW50LGVkaXRpbmcsZW5kZWQiLCBlZGl0aW5nRW5kZWQsIDApOworICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X2NhbGxiYWNrX2FkZCh3ZWJWaWV3LCAiZWRpdG9yY2xpZW50LHNlbGVjdGlvbixjaGFuZ2Vk
Iiwgc2VsZWN0aW9uQ2hhbmdlZCwgMCk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRWRpdGluZ0NhbGxiYWNrcy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0Vk
aXRpbmdDYWxsYmFja3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjUz
NWU0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0VkaXRpbmdD
YWxsYmFja3MuaApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEln
YWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgRWRpdGluZ0NhbGxiYWNrc19oCisjZGVmaW5lIEVkaXRpbmdDYWxsYmFja3NfaAorCisjaW5j
bHVkZSA8RXZhcy5oPgorCit2b2lkIGNvbm5lY3RFZGl0aW5nQ2FsbGJhY2tzKEV2YXNfT2JqZWN0
Kik7CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142444</attachid>
            <date>2012-05-17 02:16:38 -0700</date>
            <delta_ts>2012-05-18 09:01:00 -0700</delta_ts>
            <desc>[EFL] Editing callbacks implementation</desc>
            <filename>bug-84835-20120517.patch</filename>
            <type>text/plain</type>
            <size>20245</size>
            <attacher name="Mariusz Grzegorczyk">mariusz.g</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA0MDk4YTdkLi41MjcxYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTItMDUtMTcgIE1hcml1c3ogR3J6ZWdvcmN6eWsgIDxtYXJpdXN6
LmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gW0RSVF0gRUZMJ3MgRHVtcFJlbmRlclRy
ZWUgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1wRWRpdGluZ0NhbGxi
YWNrcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NDgzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcDogQ2FsbCBhcHByb3ByaWF0ZSBjYWxs
YmFja3MgZm9yIGVkaXRpbmcgYWN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dEVmbDo6c2hvdWxkRGVsZXRlUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsOjpzaG91bGRCZWdpbkVkaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsOjpzaG91bGRFbmRFZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVm
bDo6c2hvdWxkSW5zZXJ0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6
OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xp
ZW50RWZsOjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dEVmbDo6ZGlkQmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVm
bDo6ZGlkRW5kRWRpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OnNo
b3VsZEluc2VydE5vZGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVm
bC5oOiBBZGQgc3RydWN0dXJlcyBuZWVkZWQgYnkgZWRpdGluZyBjYWxsYmFja3MuCisgICAgICAg
IChFd2tfU2hvdWxkX0luc2VydF9Ob2RlX0V2ZW50KToKKyAgICAgICAgKEV3a19TaG91bGRfSW5z
ZXJ0X1RleHRfRXZlbnQpOgorICAgICAgICAoRXdrX1Nob3VsZF9DaGFuZ2VfU2VsZWN0ZWRfUmFu
Z2VfRXZlbnQpOgorICAgICAgICAoRXdrX1Nob3VsZF9BcHBseV9TdHlsZV9FdmVudCk6CisKIDIw
MTItMDUtMTcgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5j
b20+CiAKICAgICAgICAgW0VGTF0gZmFzdC9mcmFtZXMvZnJhbWUtY3Jhc2gtd2l0aC1wYWdlLWNh
Y2hlLmh0bWwgaXMgY3Jhc2hpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCmluZGV4IDJlOWM1MDQuLmUyMmIyNTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZs
LmNwcApAQCAtNTMsOSArNTMsOSBAQCB2b2lkIEVkaXRvckNsaWVudEVmbDo6c2V0SW5wdXRNZXRo
b2RTdGF0ZShib29sIGFjdGl2ZSkKICAgICBld2tfdmlld19pbnB1dF9tZXRob2Rfc3RhdGVfc2V0
KG1fdmlldywgYWN0aXZlKTsKIH0KIAotYm9vbCBFZGl0b3JDbGllbnRFZmw6OnNob3VsZERlbGV0
ZVJhbmdlKFJhbmdlKikKK2Jvb2wgRWRpdG9yQ2xpZW50RWZsOjpzaG91bGREZWxldGVSYW5nZShS
YW5nZSogcmFuZ2UpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19jYWxsKG1fdmlldywgImVkaXRvcmNsaWVudCxyYW5nZSxkZWxldGUiLCBy
YW5nZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTgyLDMzICs4MiwzNiBAQCBpbnQgRWRp
dG9yQ2xpZW50RWZsOjpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpCiAgICAgcmV0dXJuIDA7CiB9
CiAKLWJvb2wgRWRpdG9yQ2xpZW50RWZsOjpzaG91bGRCZWdpbkVkaXRpbmcoUmFuZ2UqKQorYm9v
bCBFZGl0b3JDbGllbnRFZmw6OnNob3VsZEJlZ2luRWRpdGluZyhSYW5nZSogcmFuZ2UpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxs
KG1fdmlldywgImVkaXRvcmNsaWVudCxlZGl0aW5nLGJlZ2luIiwgcmFuZ2UpOwogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIEVkaXRvckNsaWVudEVmbDo6c2hvdWxkRW5kRWRpdGluZyhSYW5n
ZSopCitib29sIEVkaXRvckNsaWVudEVmbDo6c2hvdWxkRW5kRWRpdGluZyhSYW5nZSogcmFuZ2Up
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19jYWxsKG1fdmlldywgImVkaXRvcmNsaWVudCxlZGl0aW5nLGVuZCIsIHJhbmdlKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBFZGl0b3JDbGllbnRFZmw6OnNob3VsZEluc2VydFRleHQo
Y29uc3QgU3RyaW5nJiwgUmFuZ2UqLCBFZGl0b3JJbnNlcnRBY3Rpb24pCitib29sIEVkaXRvckNs
aWVudEVmbDo6c2hvdWxkSW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmIHRleHQsIFJhbmdlKiByYW5n
ZSwgRWRpdG9ySW5zZXJ0QWN0aW9uIGFjdGlvbikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIEV3a19TaG91bGRfSW5zZXJ0X1RleHRfRXZlbnQgc2hvdWxkSW5zZXJ0VGV4dEV2ZW50ID0g
eyB0ZXh0LnV0ZjgoKS5kYXRhKCksIHJhbmdlLCBhY3Rpb24gfTsKKyAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19jYWxsKG1fdmlldywgImVkaXRvcmNsaWVudCx0ZXh0LGluc2VydCIsICZz
aG91bGRJbnNlcnRUZXh0RXZlbnQpOwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEVkaXRv
ckNsaWVudEVmbDo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShSYW5nZSosIFJhbmdlKiwgRUFm
ZmluaXR5LCBib29sKQorYm9vbCBFZGl0b3JDbGllbnRFZmw6OnNob3VsZENoYW5nZVNlbGVjdGVk
UmFuZ2UoUmFuZ2UqIGZyb21SYW5nZSwgUmFuZ2UqIHRvUmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0
eSwgYm9vbCBzdGlsbFNlbGVjdGluZykKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEV3
a19TaG91bGRfQ2hhbmdlX1NlbGVjdGVkX1JhbmdlX0V2ZW50IHNob3VsZENoYW5nZVNlbGVjdGVk
UmFuZ2VFdmVudCA9IHsgZnJvbVJhbmdlLCB0b1JhbmdlLCBhZmZpbml0eSwgc3RpbGxTZWxlY3Rp
bmcgfTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1fdmlldywgImVkaXRv
cmNsaWVudCxzZWxlY3RlZCxyYW5nZSxjaGFuZ2UiLCAmc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5n
ZUV2ZW50KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBFZGl0b3JDbGllbnRFZmw6OnNo
b3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCosIFJhbmdlKikKK2Jvb2wgRWRpdG9yQ2xp
ZW50RWZsOjpzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBSYW5nZSog
cmFuZ2UpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBFd2tfU2hvdWxkX0FwcGx5X1N0
eWxlX0V2ZW50IHNob3VsZEFwcGx5U3R5bGVFdmVudCA9IHsgc3R5bGUsIHJhbmdlIH07CisgICAg
ZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChtX3ZpZXcsICJlZGl0b3JjbGllbnQsc3R5
bGUsYXBwbHkiLCAmc2hvdWxkQXBwbHlTdHlsZUV2ZW50KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApAQCAtMTIwLDcgKzEyMyw3IEBAIGJvb2wgRWRpdG9yQ2xpZW50RWZsOjpzaG91bGRNb3ZlUmFu
Z2VBZnRlckRlbGV0ZShSYW5nZSosIFJhbmdlKikKIAogdm9pZCBFZGl0b3JDbGllbnRFZmw6OmRp
ZEJlZ2luRWRpdGluZygpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19jYWxsKG1fdmlldywgImVkaXRvcmNsaWVudCxlZGl0aW5nLGJlZ2Fu
IiwgMCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpyZXNwb25kVG9DaGFuZ2VkQ29udGVu
dHMoKQpAQCAtMTU5LDcgKzE2Miw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpyZXNwb25kVG9D
aGFuZ2VkU2VsZWN0aW9uKEZyYW1lKiBjb3JlRnJhbWUpCiAKIHZvaWQgRWRpdG9yQ2xpZW50RWZs
OjpkaWRFbmRFZGl0aW5nKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobV92aWV3LCAiZWRpdG9yY2xpZW50LGVkaXRpbmcsZW5k
ZWQiLCAwKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRFZmw6OmRpZFdyaXRlU2VsZWN0aW9uVG9Q
YXN0ZWJvYXJkKCkKQEAgLTIzMCw5ICsyMzMsMTAgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OnJl
ZG8oKQogICAgIH0KIH0KIAotYm9vbCBFZGl0b3JDbGllbnRFZmw6OnNob3VsZEluc2VydE5vZGUo
Tm9kZSosIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKQorYm9vbCBFZGl0b3JDbGllbnRFZmw6
OnNob3VsZEluc2VydE5vZGUoTm9kZSogbm9kZSwgUmFuZ2UqIHJhbmdlLCBFZGl0b3JJbnNlcnRB
Y3Rpb24gYWN0aW9uKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgRXdrX1Nob3VsZF9J
bnNlcnRfTm9kZV9FdmVudCBpbnNlcnROb2RlRXZlbnQgPSB7IG5vZGUsIHJhbmdlLCBhY3Rpb24g
fTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG1fdmlldywgImVkaXRvcmNs
aWVudCxub2RlLGluc2VydCIsICZpbnNlcnROb2RlRXZlbnQpOwogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEVmbC5oCmluZGV4IDQwN2UyNDMuLjNmZGQ5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCkBAIC0zNCwxMyArMzQsMzkgQEAK
ICNkZWZpbmUgRWRpdG9yQ2xpZW50RWZsX2gKIAogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgot
I2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAKKyNpbmNsdWRlICJFZGl0b3JJbnNlcnRB
Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0QWZmaW5pdHkuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tl
ckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAKIHR5cGVkZWYgc3RydWN0IF9FdmFzX09iamVjdCBFdmFzX09iamVjdDsKIAorc3RydWN0
IEV3a19TaG91bGRfSW5zZXJ0X05vZGVfRXZlbnQgeworICAgIFdlYkNvcmU6Ok5vZGUqIG5vZGU7
CisgICAgV2ViQ29yZTo6UmFuZ2UqIHJhbmdlOworICAgIFdlYkNvcmU6OkVkaXRvckluc2VydEFj
dGlvbiBhY3Rpb247Cit9OworCitzdHJ1Y3QgRXdrX1Nob3VsZF9JbnNlcnRfVGV4dF9FdmVudCB7
CisgICAgY29uc3QgY2hhciogdGV4dDsKKyAgICBXZWJDb3JlOjpSYW5nZSogcmFuZ2U7CisgICAg
V2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uIGFjdGlvbjsKK307CisKK3N0cnVjdCBFd2tfU2hv
dWxkX0NoYW5nZV9TZWxlY3RlZF9SYW5nZV9FdmVudCB7CisgICAgV2ViQ29yZTo6UmFuZ2UqIGZy
b21SYW5nZTsKKyAgICBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZTsKKyAgICBXZWJDb3JlOjpFQWZm
aW5pdHkgYWZmaW5pdHk7CisgICAgYm9vbCBzdGlsbFNlbGVjdGluZzsKK307CisKK3N0cnVjdCBF
d2tfU2hvdWxkX0FwcGx5X1N0eWxlX0V2ZW50IHsKKyAgICBXZWJDb3JlOjpTdHlsZVByb3BlcnR5
U2V0KiBzdHlsZTsKKyAgICBXZWJDb3JlOjpSYW5nZSogcmFuZ2U7Cit9OworCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBQYWdlOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggZWQ0NGZlMC4uZmZjZDM4YyAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA1
LTE3ICBNYXJpdXN6IEdyemVnb3JjenlrICA8bWFyaXVzei5nQHNhbXN1bmcuY29tPgorCisgICAg
ICAgIFtFRkxdIFtEUlRdIEVGTCdzIER1bXBSZW5kZXJUcmVlIHNob3VsZCBzdXBwb3J0IExheW91
dFRlc3RDb250cm9sbGVyJ3MgZHVtcEVkaXRpbmdDYWxsYmFja3MoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ4MzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBlZGl0aW5nIGNhbGxiYWNrcyBp
bXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9DTWFrZUxpc3Rz
LnR4dDogQWRkIEVkaXRpbmdDYWxsYmFja3MuY3BwIHRvIGNvbXBpbGF0aW9uLgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHA6IEludm9rZSBjb25u
ZWN0RWRpdGluZ0NhbGxiYWNrcy4KKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpjcmVh
dGVWaWV3KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRWRpdGluZ0NhbGxiYWNrcy5j
cHA6IEFkZGVkLiBEdW1wIGVkaXRpbmcgY2FsbGJhY2tzLgorICAgICAgICAoZHVtcFBhdGgpOgor
ICAgICAgICAoZHVtcFJhbmdlKToKKyAgICAgICAgKGluc2VydEFjdGlvblN0cmluZyk6CisgICAg
ICAgIChzZWxlY3Rpb25BZmZpbml0eVN0cmluZyk6CisgICAgICAgIChzaG91bGRCZWdpbkVkaXRp
bmcpOgorICAgICAgICAoc2hvdWxkRW5kRWRpdGluZyk6CisgICAgICAgIChzaG91bGRJbnNlcnRO
b2RlKToKKyAgICAgICAgKHNob3VsZEluc2VydFRleHQpOgorICAgICAgICAoc2hvdWxkRGVsZXRl
UmFuZ2UpOgorICAgICAgICAoc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZSk6CisgICAgICAgIChz
aG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKGVkaXRpbmdCZWdhbik6CisgICAgICAgICh1c2Vy
Q2hhbmdlZENvbnRlbnRzKToKKyAgICAgICAgKGVkaXRpbmdFbmRlZCk6CisgICAgICAgIChzZWxl
Y3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKGNvbm5lY3RFZGl0aW5nQ2FsbGJhY2tzKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRWRpdGluZ0NhbGxiYWNrcy5oOiBBZGRlZC4KKwogMjAx
Mi0wNS0xNiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W1BlcmZvcm1hbmNlIHRlc3RdIFN1cHBvcnQgImRlc2NyaXB0aW9uIiBmb3IgUGVyZlRlc3RSdW5u
ZXIucnVuIGFuZCBQZXJmVGVzdFJ1bm5lci5ydW5QZXJTZWNvbmQKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2VmbC9DTWFrZUxpc3RzLnR4dAppbmRleCAxNzgwODk3Li4wNmNlZjNhIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0NNYWtlTGlzdHMudHh0CkBAIC05LDYgKzksNyBAQCBTRVQoRHVtcFJlbmRl
clRyZWVfU09VUkNFUwogICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJl
bmRlclRyZWUuY3BwCiAgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVu
ZGVyVHJlZUNocm9tZS5jcHAKICAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvZWZsL0R1
bXBSZW5kZXJUcmVlVmlldy5jcHAKKyAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvZWZs
L0VkaXRpbmdDYWxsYmFja3MuY3BwCiAgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL2Vm
bC9FdmVudFNlbmRlci5jcHAKICAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvZWZsL0Zv
bnRNYW5hZ2VtZW50LmNwcAogICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9lZmwvR0ND
b250cm9sbGVyRWZsLmNwcApAQCAtNDQsNiArNDUsNyBAQCBTRVQoRHVtcFJlbmRlclRyZWVfTElC
UkFSSUVTCiBTRVQoRHVtcFJlbmRlclRyZWVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dF
QktJVF9ESVJ9L2VmbC9ld2siCiAgICAgJHtXRUJLSVRfRElSfS9lZmwKKyAgICAke1dFQktJVF9E
SVJ9L2VmbC9XZWJDb3JlU3VwcG9ydAogICAgICR7V0VCQ09SRV9ESVJ9CiAgICAgJHtXRUJDT1JF
X0RJUn0vYnJpZGdlCiAgICAgJHtXRUJDT1JFX0RJUn0vYnJpZGdlL2pzYwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKaW5kZXggMjQwNTAx
ZC4uZWM4Y2IwMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5k
ZXJUcmVlQ2hyb21lLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRl
clRyZWVDaHJvbWUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJEdW1wUmVuZGVy
VHJlZS5oIgogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlVmlldy5oIgorI2luY2x1ZGUgIkVkaXRp
bmdDYWxsYmFja3MuaCIKICNpbmNsdWRlICJFdmVudFNlbmRlci5oIgogI2luY2x1ZGUgIkdDQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIktVUkwuaCIKQEAgLTEwOCw2ICsxMDksOCBAQCBFdmFzX09i
amVjdCogRHVtcFJlbmRlclRyZWVDaHJvbWU6OmNyZWF0ZVZpZXcoKSBjb25zdAogICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAibWl4ZWRjb250ZW50LGRpc3BsYXllZCIs
IG9uSW5zZWN1cmVDb250ZW50RGlzcGxheWVkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19hZGQodmlldywgImZyYW1lLGNyZWF0ZWQiLCBvbkZyYW1lQ3JlYXRlZCwgMCk7CiAK
KyAgICBjb25uZWN0RWRpdGluZ0NhbGxiYWNrcyh2aWV3KTsKKwogICAgIEV2YXNfT2JqZWN0KiBt
YWluRnJhbWUgPSBld2tfdmlld19mcmFtZV9tYWluX2dldCh2aWV3KTsKICAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAiaWNvbixjaGFuZ2VkIiwgb25GcmFtZUlj
b25DaGFuZ2VkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZy
YW1lLCAibG9hZCxwcm92aXNpb25hbCIsIG9uRnJhbWVQcm92aXNpb25hbExvYWQsIDApOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0VkaXRpbmdDYWxsYmFja3MuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0VkaXRpbmdDYWxsYmFja3MuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5NmQ4M2YKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvRWRpdGluZ0NhbGxiYWNrcy5jcHAKQEAgLTAsMCArMSwxODcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkVkaXRpbmdDYWxsYmFja3MuaCIKKworI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlLmgiCisjaW5j
bHVkZSAiRWRpdG9yQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiRWRpdG9ySW5zZXJ0QWN0aW9uLmgi
CisjaW5jbHVkZSAiTGF5b3V0VGVzdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisj
aW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCisjaW5jbHVk
ZSAiVGV4dEFmZmluaXR5LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitzdGF0aWMgV1RGOjpTdHJpbmcgZHVtcFBhdGgo
V2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICBXZWJDb3JlOjpOb2RlKiBwYXJlbnQgPSBub2Rl
LT5wYXJlbnROb2RlKCk7CisgICAgV1RGOjpTdHJpbmcgc3RyID0gV1RGOjpTdHJpbmc6OmZvcm1h
dCgiJXMiLCBub2RlLT5ub2RlTmFtZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgIGlmIChwYXJlbnQp
IHsKKyAgICAgICAgc3RyLmFwcGVuZCgiID4gIik7CisgICAgICAgIHN0ci5hcHBlbmQoZHVtcFBh
dGgocGFyZW50KSk7CisgICAgfQorICAgIHJldHVybiBzdHI7Cit9CisKK3N0YXRpYyBXVEY6OlN0
cmluZyBkdW1wUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqIHJhbmdlKQoreworICAgIGlmICghcmFuZ2Up
CisgICAgICAgIHJldHVybiAiKG51bGwpIjsKKyAgICByZXR1cm4gV1RGOjpTdHJpbmc6OmZvcm1h
dCgicmFuZ2UgZnJvbSAlZCBvZiAlcyB0byAlZCBvZiAlcyIsIHJhbmdlLT5zdGFydE9mZnNldCgp
LCBkdW1wUGF0aChyYW5nZS0+c3RhcnRDb250YWluZXIoKSkudXRmOCgpLmRhdGEoKSwgcmFuZ2Ut
PmVuZE9mZnNldCgpLCBkdW1wUGF0aChyYW5nZS0+ZW5kQ29udGFpbmVyKCkpLnV0ZjgoKS5kYXRh
KCkpOworfQorCitzdGF0aWMgY29uc3QgY2hhciogaW5zZXJ0QWN0aW9uU3RyaW5nKFdlYkNvcmU6
OkVkaXRvckluc2VydEFjdGlvbiBhY3Rpb24pCit7CisgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAg
ICBjYXNlIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvblR5cGVkOgorICAgICAgICByZXR1cm4g
IldlYlZpZXdJbnNlcnRBY3Rpb25UeXBlZCI7CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0b3JJbnNl
cnRBY3Rpb25QYXN0ZWQ6CisgICAgICAgIHJldHVybiAiV2ViVmlld0luc2VydEFjdGlvblBhc3Rl
ZCI7CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rpb25Ecm9wcGVkOgorICAgICAg
ICByZXR1cm4gIldlYlZpZXdJbnNlcnRBY3Rpb25Ecm9wcGVkIjsKKyAgICB9CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuICJXZWJWaWV3SW5zZXJ0QWN0aW9uVHlwZWQiOwor
fQorCitzdGF0aWMgY29uc3QgY2hhciogc2VsZWN0aW9uQWZmaW5pdHlTdHJpbmcoV2ViQ29yZTo6
RUFmZmluaXR5IGFmZmluaXR5KQoreworICAgIHN3aXRjaCAoYWZmaW5pdHkpIHsKKyAgICBjYXNl
IFdlYkNvcmU6OlVQU1RSRUFNOgorICAgICAgICByZXR1cm4gIk5TU2VsZWN0aW9uQWZmaW5pdHlV
cHN0cmVhbSI7CisgICAgY2FzZSBXZWJDb3JlOjpET1dOU1RSRUFNOgorICAgICAgICByZXR1cm4g
Ik5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuICJOU1NlbGVjdGlvbkFmZmluaXR5VXBzdHJlYW0iOworfQor
Cit2b2lkIHNob3VsZEJlZ2luRWRpdGluZyh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVu
dEluZm8pCit7CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEVk
aXRpbmdDYWxsYmFja3MoKSkgeworICAgICAgICBXZWJDb3JlOjpSYW5nZSogcmFuZ2UgPSBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpSYW5nZSo+KGV2ZW50SW5mbyk7CisgICAgICAgIHByaW50ZigiRURJ
VElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5ET01SYW5nZTolc1xuIiwgZHVtcFJh
bmdlKHJhbmdlKS51dGY4KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgc2hvdWxkRW5kRWRp
dGluZyh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCit7CisgICAgaWYgKCFk
b25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEVkaXRpbmdDYWxsYmFja3MoKSkgewor
ICAgICAgICBXZWJDb3JlOjpSYW5nZSogcmFuZ2UgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpSYW5n
ZSo+KGV2ZW50SW5mbyk7CisgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FURTogc2hvdWxk
RW5kRWRpdGluZ0luRE9NUmFuZ2U6JXNcbiIsIGR1bXBSYW5nZShyYW5nZSkudXRmOCgpLmRhdGEo
KSk7CisgICAgfQorfQorCit2b2lkIHNob3VsZEluc2VydE5vZGUodm9pZCosIEV2YXNfT2JqZWN0
Kiwgdm9pZCogZXZlbnRJbmZvKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRy
b2xsZXItPmR1bXBFZGl0aW5nQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgRXdrX1Nob3VsZF9JbnNl
cnRfTm9kZV9FdmVudCogc2hvdWxkSW5zZXJ0Tm9kZUV2ZW50ID0gc3RhdGljX2Nhc3Q8RXdrX1No
b3VsZF9JbnNlcnRfTm9kZV9FdmVudCo+KGV2ZW50SW5mbyk7CisgICAgICAgIHByaW50ZigiRURJ
VElORyBERUxFR0FURTogc2hvdWxkSW5zZXJ0Tm9kZTolcyByZXBsYWNpbmdET01SYW5nZTolcyBn
aXZlbkFjdGlvbjolc1xuIiwKKyAgICAgICAgICAgICAgIGR1bXBQYXRoKHNob3VsZEluc2VydE5v
ZGVFdmVudC0+bm9kZSkudXRmOCgpLmRhdGEoKSwgZHVtcFJhbmdlKHNob3VsZEluc2VydE5vZGVF
dmVudC0+cmFuZ2UpLnV0ZjgoKS5kYXRhKCksCisgICAgICAgICAgICAgICBpbnNlcnRBY3Rpb25T
dHJpbmcoc2hvdWxkSW5zZXJ0Tm9kZUV2ZW50LT5hY3Rpb24pKTsKKyAgICB9Cit9CisKK3ZvaWQg
c2hvdWxkSW5zZXJ0VGV4dCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCit7
CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEVkaXRpbmdDYWxs
YmFja3MoKSkgeworICAgICAgICBFd2tfU2hvdWxkX0luc2VydF9UZXh0X0V2ZW50KiBzaG91bGRJ
bnNlcnRUZXh0RXZlbnQgPSBzdGF0aWNfY2FzdDxFd2tfU2hvdWxkX0luc2VydF9UZXh0X0V2ZW50
Kj4oZXZlbnRJbmZvKTsKKyAgICAgICAgcHJpbnRmKCJFRElUSU5HIERFTEVHQVRFOiBzaG91bGRJ
bnNlcnRUZXh0OiVzIHJlcGxhY2luZ0RPTVJhbmdlOiVzIGdpdmVuQWN0aW9uOiVzXG4iLAorICAg
ICAgICAgICAgICAgIHNob3VsZEluc2VydFRleHRFdmVudC0+dGV4dCwgZHVtcFJhbmdlKHNob3Vs
ZEluc2VydFRleHRFdmVudC0+cmFuZ2UpLnV0ZjgoKS5kYXRhKCksIGluc2VydEFjdGlvblN0cmlu
ZyhzaG91bGRJbnNlcnRUZXh0RXZlbnQtPmFjdGlvbikpOworICAgIH0KK30KKwordm9pZCBzaG91
bGREZWxldGVSYW5nZSh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCit7Cisg
ICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEVkaXRpbmdDYWxsYmFj
a3MoKSkgeworICAgICAgICBXZWJDb3JlOjpSYW5nZSogcmFuZ2UgPSBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpSYW5nZSo+KGV2ZW50SW5mbyk7CisgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FU
RTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6JXNcbiIsIGR1bXBSYW5nZShyYW5nZSkudXRmOCgpLmRh
dGEoKSk7CisgICAgfQorfQorCit2b2lkIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2Uodm9pZCos
IEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5
b3V0VGVzdENvbnRyb2xsZXItPmR1bXBFZGl0aW5nQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgRXdr
X1Nob3VsZF9DaGFuZ2VfU2VsZWN0ZWRfUmFuZ2VfRXZlbnQqIHNob3VsZENoYW5nZVNlbGVjdGVk
UmFuZ2VFdmVudCA9IHN0YXRpY19jYXN0PEV3a19TaG91bGRfQ2hhbmdlX1NlbGVjdGVkX1Jhbmdl
X0V2ZW50Kj4oZXZlbnRJbmZvKTsKKyAgICAgICAgcHJpbnRmKCJFRElUSU5HIERFTEVHQVRFOiBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOiVzIHRvRE9NUmFuZ2U6JXMgYWZmaW5pdHk6JXMg
c3RpbGxTZWxlY3Rpbmc6JXNcbiIsCisgICAgICAgICAgICAgICBkdW1wUmFuZ2Uoc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRSYW5nZUV2ZW50LT5mcm9tUmFuZ2UpLnV0ZjgoKS5kYXRhKCksIGR1bXBSYW5n
ZShzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlRXZlbnQtPnRvUmFuZ2UpLnV0ZjgoKS5kYXRhKCks
CisgICAgICAgICAgICAgICBzZWxlY3Rpb25BZmZpbml0eVN0cmluZyhzaG91bGRDaGFuZ2VTZWxl
Y3RlZFJhbmdlRXZlbnQtPmFmZmluaXR5KSwgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZUV2ZW50
LT5zdGlsbFNlbGVjdGluZyA/ICJUUlVFIiA6ICJGQUxTRSIpOworICAgIH0KK30KKwordm9pZCBz
aG91bGRBcHBseVN0eWxlKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKK3sK
KyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRWRpdGluZ0NhbGxi
YWNrcygpKSB7CisgICAgICAgIEV3a19TaG91bGRfQXBwbHlfU3R5bGVfRXZlbnQqIHNob3VsZEFw
cGx5U3R5bGVFdmVudCA9IHN0YXRpY19jYXN0PEV3a19TaG91bGRfQXBwbHlfU3R5bGVfRXZlbnQq
PihldmVudEluZm8pOworICAgICAgICBwcmludGYoIkVESVRJTkcgREVMRUdBVEU6IHNob3VsZEFw
cGx5U3R5bGU6JXMgdG9FbGVtZW50c0luRE9NUmFuZ2U6JXNcbiIsCisgICAgICAgICAgICAgICAg
c2hvdWxkQXBwbHlTdHlsZUV2ZW50LT5zdHlsZS0+YXNUZXh0KCkudXRmOCgpLmRhdGEoKSwgZHVt
cFJhbmdlKHNob3VsZEFwcGx5U3R5bGVFdmVudC0+cmFuZ2UpLnV0ZjgoKS5kYXRhKCkpOworICAg
IH0KK30KKwordm9pZCBlZGl0aW5nQmVnYW4odm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopCit7
CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEVkaXRpbmdDYWxs
YmFja3MoKSkKKyAgICAgICAgcHJpbnRmKCJFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQmVn
aW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdOb3RpZmljYXRpb25cbiIpOworfQorCit2
b2lkIHVzZXJDaGFuZ2VkQ29udGVudHModm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopCit7Cisg
ICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEVkaXRpbmdDYWxsYmFj
a3MoKSkKKyAgICAgICAgcHJpbnRmKCJFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
OldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb25cbiIpOworfQorCit2b2lkIGVkaXRpbmdFbmRl
ZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91
dFRlc3RDb250cm9sbGVyLT5kdW1wRWRpdGluZ0NhbGxiYWNrcygpKQorICAgICAgICBwcmludGYo
IkVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRFbmRFZGl0aW5nOldlYlZpZXdEaWRFbmRFZGl0
aW5nTm90aWZpY2F0aW9uXG4iKTsKK30KKwordm9pZCBzZWxlY3Rpb25DaGFuZ2VkKHZvaWQqLCBF
dmFzX09iamVjdCosIHZvaWQqKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRy
b2xsZXItPmR1bXBFZGl0aW5nQ2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50ZigiRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uXG4iKTsKK30KKwordm9pZCBjb25uZWN0RWRpdGluZ0NhbGxiYWNrcyhF
dmFzX09iamVjdCogd2ViVmlldykKK3sKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19h
ZGQod2ViVmlldywgImVkaXRvcmNsaWVudCxlZGl0aW5nLGJlZ2luIiwgc2hvdWxkQmVnaW5FZGl0
aW5nLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldywgImVk
aXRvcmNsaWVudCxlZGl0aW5nLGVuZCIsIHNob3VsZEVuZEVkaXRpbmcsIDApOworICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh3ZWJWaWV3LCAiZWRpdG9yY2xpZW50LG5vZGUsaW5z
ZXJ0Iiwgc2hvdWxkSW5zZXJ0Tm9kZSwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfYWRkKHdlYlZpZXcsICJlZGl0b3JjbGllbnQsdGV4dCxpbnNlcnQiLCBzaG91bGRJbnNlcnRU
ZXh0LCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldywgImVk
aXRvcmNsaWVudCxyYW5nZSxkZWxldGUiLCBzaG91bGREZWxldGVSYW5nZSwgMCk7CisgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcsICJlZGl0b3JjbGllbnQsc2VsZWN0
ZWQscmFuZ2UsY2hhbmdlIiwgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZSwgMCk7CisgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcsICJlZGl0b3JjbGllbnQsc3R5bGUs
YXBwbHkiLCBzaG91bGRBcHBseVN0eWxlLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19hZGQod2ViVmlldywgImVkaXRvcmNsaWVudCxlZGl0aW5nLGJlZ2FuIiwgZWRpdGluZ0Jl
Z2FuLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQod2ViVmlldywgImVk
aXRvcmNsaWVudCxjb250ZW50cyxjaGFuZ2VkIiwgdXNlckNoYW5nZWRDb250ZW50cywgMCk7Cisg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHdlYlZpZXcsICJlZGl0b3JjbGllbnQs
ZWRpdGluZyxlbmRlZCIsIGVkaXRpbmdFbmRlZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfYWRkKHdlYlZpZXcsICJlZGl0b3JjbGllbnQsc2VsZWN0aW9uLGNoYW5nZWQiLCBz
ZWxlY3Rpb25DaGFuZ2VkLCAwKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2VmbC9FZGl0aW5nQ2FsbGJhY2tzLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRWRpdGlu
Z0NhbGxiYWNrcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmNTM1ZTQK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRWRpdGluZ0NhbGxi
YWNrcy5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlh
IFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBF
ZGl0aW5nQ2FsbGJhY2tzX2gKKyNkZWZpbmUgRWRpdGluZ0NhbGxiYWNrc19oCisKKyNpbmNsdWRl
IDxFdmFzLmg+CisKK3ZvaWQgY29ubmVjdEVkaXRpbmdDYWxsYmFja3MoRXZhc19PYmplY3QqKTsK
KworI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>