<?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>97220</bug_id>
          
          <creation_ts>2012-09-20 08:18:45 -0700</creation_ts>
          <short_desc>[Qt] Unify the PageViewportController&lt;-&gt;Client interface regarding positions</short_desc>
          <delta_ts>2012-09-25 09:14:58 -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>New Bugs</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="Jocelyn Turcotte">jturcotte</reporter>
          <assigned_to name="Jocelyn Turcotte">jturcotte</assigned_to>
          <cc>abecsi</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>724540</commentid>
    <comment_count>0</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-20 08:18:45 -0700</bug_when>
    <thetext>[Qt] Unify the PageViewportController&lt;-&gt;Client interface regarding positions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724545</commentid>
    <comment_count>1</comment_count>
      <attachid>164925</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-20 08:29:05 -0700</bug_when>
    <thetext>Created attachment 164925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724557</commentid>
    <comment_count>2</comment_count>
      <attachid>164925</attachid>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-09-20 09:06:21 -0700</bug_when>
    <thetext>Comment on attachment 164925
Patch

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

&gt; Source/WebKit2/ChangeLog:10
&gt; +        - Make sure that all positions represent the viewport relatively to the contents
&gt; +          rather than the other way around

If I&apos;m not misunderstanding you here, I find this aspect of the patch a bit odd, since all the interaction with the content actually drags the content thus it seems more natural to me to look at the viewport as an inertial frame of reference wherein the contents are positioned / scaled, instead of the viewport being relatively positioned to the contents. More so because the incoming events are all relative to the viewport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724560</commentid>
    <comment_count>3</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-20 09:16:21 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; If I&apos;m not misunderstanding you here, I find this aspect of the patch a bit odd, since all the interaction with the content actually drags the content thus it seems more natural to me to look at the viewport as an inertial frame of reference wherein the contents are positioned / scaled, instead of the viewport being relatively positioned to the contents. More so because the incoming events are all relative to the viewport.

I agree for Qt&apos;s case, we&apos;re dragging an additional item behind, but that is an implementation detail. The interface should be nice to the implementation, but I think that it&apos;s more important that it is concise, especially across ports, and I think that it is not possible to use &quot;scale-applied&quot; coordinates everywhere. So this one felt nicer to me, and makes it more human readable than negative coordinates for the content item e.g. -134,-3000.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724563</commentid>
    <comment_count>4</comment_count>
      <attachid>164930</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-20 09:20:36 -0700</bug_when>
    <thetext>Created attachment 164930
Patch

Bring back missing scale adjustments that were applied in a further patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724576</commentid>
    <comment_count>5</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-09-20 09:37:41 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; If I&apos;m not misunderstanding you here, I find this aspect of the patch a bit odd, since all the interaction with the content actually drags the content thus it seems more natural to me to look at the viewport as an inertial frame of reference wherein the contents are positioned / scaled, instead of the viewport being relatively positioned to the contents. More so because the incoming events are all relative to the viewport.
&gt; 
&gt; I agree for Qt&apos;s case, we&apos;re dragging an additional item behind, but that is an implementation detail. The interface should be nice to the implementation, but I think that it&apos;s more important that it is concise, especially across ports, and I think that it is not possible to use &quot;scale-applied&quot; coordinates everywhere. So this one felt nicer to me, and makes it more human readable than negative coordinates for the content item e.g. -134,-3000.

In fact, this is a more general discrepancy between the model of touch-based interaction where the content is dragged, and the mouse-based perspective where dragging the scrollbar moves the viewport.

In any case I&apos;m not agains the change, it makes the interface consistent, I was just wondering.

It also seems to depend on your other changes since it does not apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725198</commentid>
    <comment_count>6</comment_count>
      <attachid>164930</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-20 23:43:20 -0700</bug_when>
    <thetext>Comment on attachment 164930
Patch

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

I hope this is well tested :-)

&gt; Source/WebKit2/UIProcess/PageViewportController.cpp:127
&gt; +    FloatRect endPosRange = positionRangeForViewportAtScale(m_effectiveScale);

hmm your other patch removed this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725382</commentid>
    <comment_count>7</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-21 03:34:38 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 164930 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164930&amp;action=review
&gt; 
&gt; I hope this is well tested :-)
I did my best :)
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/PageViewportController.cpp:127
&gt; &gt; +    FloatRect endPosRange = positionRangeForViewportAtScale(m_effectiveScale);
&gt; 
&gt; hmm your other patch removed this

Yep I needed the behavior to be the same everywhere to be able to have one function to do it. Ultimately this is all needed to be able to handle position+scale directly in the interface rather than complete rects. I needed this to be able to keep a position pending valid even if the contents size or the scale is changed while the web process rendering is disabled between pages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727679</commentid>
    <comment_count>8</comment_count>
      <attachid>164930</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 08:47:48 -0700</bug_when>
    <thetext>Comment on attachment 164930
Patch

Rejecting attachment 164930 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
2/UIProcess/PageViewportControllerClient.h
patching file Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp
Hunk #1 FAILED at 108.
1 out of 8 hunks FAILED -- saving rejects to file Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp.rej
patching file Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Kenneth Ro...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/14031119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727683</commentid>
    <comment_count>9</comment_count>
      <attachid>165620</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-25 08:53:15 -0700</bug_when>
    <thetext>Created attachment 165620
Patch

Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727692</commentid>
    <comment_count>10</comment_count>
      <attachid>165620</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 09:14:55 -0700</bug_when>
    <thetext>Comment on attachment 165620
Patch

Clearing flags on attachment: 165620

Committed r129515: &lt;http://trac.webkit.org/changeset/129515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727693</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 09:14:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164925</attachid>
            <date>2012-09-20 08:29:05 -0700</date>
            <delta_ts>2012-09-20 09:20:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97220-20120920172829.patch</filename>
            <type>text/plain</type>
            <size>16812</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGRlMDI3ZDZjZmYwZTk3
OWNkMjVhYzc5N2E0NDQ0OWRlNzY4NTAzNC4uMDM2NzA5ZmJiZGNkNTMxMjc5NjZlOGFiM2Y0ODY2
MGNiMGE4NjEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDEyLTA5LTIwICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKKyAgICAgICAgW1F0
XSBVbmlmeSB0aGUgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjwtPkNsaWVudCBpbnRlcmZhY2UgcmVn
YXJkaW5nIHBvc2l0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTcyMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAtIE1ha2Ugc3VyZSB0aGF0IGNzcyB1bml0cyBhcmUgdXNlZCBmb3IgYWxsIHBvc2l0
aW9uIGFyZ3VtZW50cworICAgICAgICAtIE1ha2Ugc3VyZSB0aGF0IGFsbCBwb3NpdGlvbnMgcmVw
cmVzZW50IHRoZSB2aWV3cG9ydCByZWxhdGl2ZWx5IHRvIHRoZSBjb250ZW50cworICAgICAgICAg
IHJhdGhlciB0aGFuIHRoZSBvdGhlciB3YXkgYXJvdW5kCisgICAgICAgIC0gRGVsYXkgY2xhbXBp
bmcgdGhlIHZpZXdwb3J0IHRvIHRoZSBjb250ZW50cyBzaXplIGluIHRoZSBjb250cm9sbGVyIHJh
dGhlciB0aGFuIGluIHRoZSBjbGllbnQKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6
dXBkYXRlVmlld3BvcnRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnBh
Z2VEaWRSZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJv
bGxlcjo6ZGlkQ2hhbmdlVmlld3BvcnRTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdw
b3J0Q29udHJvbGxlcjo6ZGlkQ2hhbmdlQ29udGVudHNWaXNpYmlsaXR5KToKKyAgICAgICAgKFdl
YktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6c3luY1Zpc2libGVDb250ZW50cyk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnBvc2l0aW9uUmFuZ2VGb3JWaWV3
cG9ydEF0U2NhbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVy
Lmg6CisgICAgICAgIChQYWdlVmlld3BvcnRDb250cm9sbGVyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudC5oOgorICAgICAgICAoUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRRdDo6YW5pbWF0ZUNvbnRlbnRSZWN0VmlzaWJsZSk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6Zm9jdXNFZGl0YWJsZUFyZWEpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6Onpvb21Ub0Fy
ZWFHZXN0dXJlRW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50UXQ6Om5lYXJlc3RWYWxpZFZpc2libGVDb250ZW50c1JlY3QpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnNldFZpZXdwb3J0UG9zaXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnVwZGF0
ZVZpZXdwb3J0Q29udHJvbGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRRdC5oOgorICAgICAgICAoUGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0KToKKworMjAxMi0wOS0yMCAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290
dGVAZGlnaWEuY29tPgorCiAgICAgICAgIFtRdF0gTWFrZSBzdXJlIHRoYXQgZGVza3RvcCBwYWdl
cyBob25vdXIgdGhlIGRldmljZVBpeGVsUmF0aW8KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MjE1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDMxZTIzNjIxNjM4MmM1MTM4ODhk
MGNiOTI2N2EyOTk2NWFjMzdmNzYuLmQ2Y2ZhODhhYmQzM2QyMTFjN2FhMzEyMWY3N2ZiZjU4ZDU0
NTQ0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3LmNwcApAQCAtODY4LDcgKzg2OCw3IEBAIHZvaWQgUVF1aWNrV2ViVmlld0ZsaWNrYWJs
ZVByaXZhdGU6OnVwZGF0ZVZpZXdwb3J0U2l6ZSgpCiAgICAgUV9RKFFRdWlja1dlYlZpZXcpOwog
CiAgICAgaWYgKG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlcikKLSAgICAgICAgbV9wYWdlVmlld3Bv
cnRDb250cm9sbGVyLT5zZXRWaWV3cG9ydFNpemUoUVNpemVGKHEtPndpZHRoKCksIHEtPmhlaWdo
dCgpKSk7CisgICAgICAgIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlci0+ZGlkQ2hhbmdlVmlld3Bv
cnRTaXplKFFTaXplRihxLT53aWR0aCgpLCBxLT5oZWlnaHQoKSkpOwogfQogCiB2b2lkIFFRdWlj
a1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBRUG9p
bnQmIHBvcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3Bv
cnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRD
b250cm9sbGVyLmNwcAppbmRleCA2NWM2NWFhMjllNzRkNWU0YmM5MTQxOTYyMzNmYmQzZTliNDBh
ODRjLi41NDZkZWRlMGU3YmIxMWI1ZDczMmEzOTRmNWIyYTJiMGE1ZTZhZjliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCkBA
IC0xMjQsMTUgKzEyNCwxMyBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnBhZ2VEaWRS
ZXF1ZXN0U2Nyb2xsKGNvbnN0IEludFBvaW50JiBjc3NQb3NpdGlvbikKICAgICBpZiAobV9hY3Rp
dmVEZWZlcnJlckNvdW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJlY3QgZW5kUG9z
UmFuZ2UgPSBwb3NpdGlvblJhbmdlRm9yQ29udGVudEF0U2NhbGUobV9lZmZlY3RpdmVTY2FsZSk7
Ci0gICAgRmxvYXRQb2ludCBlbmRQb3NpdGlvbihjc3NQb3NpdGlvbik7Ci0gICAgZW5kUG9zaXRp
b24uc2NhbGUobV9lZmZlY3RpdmVTY2FsZSwgbV9lZmZlY3RpdmVTY2FsZSk7Ci0gICAgZW5kUG9z
aXRpb24gPSBib3VuZFBvc2l0aW9uKGVuZFBvc1JhbmdlLm1pblhNaW5ZQ29ybmVyKCksIGVuZFBv
c2l0aW9uLCBlbmRQb3NSYW5nZS5tYXhYTWF4WUNvcm5lcigpKTsKKyAgICBGbG9hdFJlY3QgZW5k
UG9zUmFuZ2UgPSBwb3NpdGlvblJhbmdlRm9yVmlld3BvcnRBdFNjYWxlKG1fZWZmZWN0aXZlU2Nh
bGUpOworICAgIEZsb2F0UG9pbnQgZW5kUG9zaXRpb24gPSBib3VuZFBvc2l0aW9uKGVuZFBvc1Jh
bmdlLm1pblhNaW5ZQ29ybmVyKCksIGNzc1Bvc2l0aW9uLCBlbmRQb3NSYW5nZS5tYXhYTWF4WUNv
cm5lcigpKTsKIAotICAgIG1fY2xpZW50LT5zZXRDb250ZW50c1Bvc2l0aW9uKGVuZFBvc2l0aW9u
KTsKKyAgICBtX2NsaWVudC0+c2V0Vmlld3BvcnRQb3NpdGlvbihlbmRQb3NpdGlvbik7CiB9CiAK
LXZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6c2V0Vmlld3BvcnRTaXplKGNvbnN0IEZsb2F0
U2l6ZSYgbmV3U2l6ZSkKK3ZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlkQ2hhbmdlVmll
d3BvcnRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgbmV3U2l6ZSkKIHsKICAgICBpZiAobmV3U2l6ZS5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE0Niw5ICsxNDQsOSBAQCB2b2lkIFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXI6OnNldFZpZXdwb3J0U2l6ZShjb25zdCBGbG9hdFNpemUmIG5ld1Np
emUpCiAgICAgc3luY1Zpc2libGVDb250ZW50cygpOwogfQogCi12b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXI6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0JiB2aXNpYmxl
Q29udGVudHNSZWN0LCBmbG9hdCB2aWV3cG9ydFNjYWxlLCBjb25zdCBGbG9hdFBvaW50JiB0cmFq
ZWN0b3J5VmVjdG9yKQordm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpkaWRDaGFuZ2VDb250
ZW50c1Zpc2liaWxpdHkoY29uc3QgRmxvYXRQb2ludCYgdmlld3BvcnRQb3MsIGZsb2F0IHZpZXdw
b3J0U2NhbGUsIGNvbnN0IEZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7Ci0gICAgbV92
aXNpYmxlQ29udGVudHNSZWN0ID0gdmlzaWJsZUNvbnRlbnRzUmVjdDsKKyAgICBtX3ZpZXdwb3J0
UG9zID0gdmlld3BvcnRQb3M7CiAgICAgbV9lZmZlY3RpdmVTY2FsZSA9IHZpZXdwb3J0U2NhbGU7
CiAgICAgc3luY1Zpc2libGVDb250ZW50cyh0cmFqZWN0b3J5VmVjdG9yKTsKIH0KQEAgLTE1Niwx
MCArMTU0LDE1IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6c2V0VmlzaWJsZUNvbnRl
bnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHZpc2libGVDb250CiB2b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXI6OnN5bmNWaXNpYmxlQ29udGVudHMoY29uc3QgRmxvYXRQb2ludCYgdHJhamVjdG9y
eVZlY3RvcikKIHsKICAgICBEcmF3aW5nQXJlYVByb3h5KiBjb25zdCBkcmF3aW5nQXJlYSA9IG1f
d2ViUGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpOwotICAgIGlmICghZHJhd2luZ0FyZWEgfHwgbV92
aWV3cG9ydFNpemUuaXNFbXB0eSgpIHx8IG1fY29udGVudHNTaXplLmlzRW1wdHkoKSB8fCBtX3Zp
c2libGVDb250ZW50c1JlY3QuaXNFbXB0eSgpKQorICAgIGlmICghZHJhd2luZ0FyZWEgfHwgbV92
aWV3cG9ydFNpemUuaXNFbXB0eSgpIHx8IG1fY29udGVudHNTaXplLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZHJhd2luZ0FyZWEtPnNldFZpc2libGVDb250ZW50c1JlY3QobV92
aXNpYmxlQ29udGVudHNSZWN0LCBtX2VmZmVjdGl2ZVNjYWxlLCB0cmFqZWN0b3J5VmVjdG9yKTsK
KyAgICBGbG9hdFJlY3QgZW5kUG9zUmFuZ2UgPSBwb3NpdGlvblJhbmdlRm9yVmlld3BvcnRBdFNj
YWxlKG1fZWZmZWN0aXZlU2NhbGUpOworICAgIEZsb2F0UG9pbnQgZW5kUG9zaXRpb24gPSBib3Vu
ZFBvc2l0aW9uKGVuZFBvc1JhbmdlLm1pblhNaW5ZQ29ybmVyKCksIG1fdmlld3BvcnRQb3MsIGVu
ZFBvc1JhbmdlLm1heFhNYXhZQ29ybmVyKCkpOworCisgICAgRmxvYXRSZWN0IHZpc2libGVDb250
ZW50c1JlY3QoZW5kUG9zaXRpb24sIG1fdmlld3BvcnRTaXplIC8gbV9lZmZlY3RpdmVTY2FsZSk7
CisgICAgdmlzaWJsZUNvbnRlbnRzUmVjdC5pbnRlcnNlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQ6
Onplcm8oKSwgbV9jb250ZW50c1NpemUpKTsKKyAgICBkcmF3aW5nQXJlYS0+c2V0VmlzaWJsZUNv
bnRlbnRzUmVjdCh2aXNpYmxlQ29udGVudHNSZWN0LCBtX2VmZmVjdGl2ZVNjYWxlLCB0cmFqZWN0
b3J5VmVjdG9yKTsKIAogICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VWaXNpYmxlQ29udGVudHMoKTsK
IH0KQEAgLTIxOCwxMiArMjIxLDEwIEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6dXBk
YXRlTWluaW11bVNjYWxlVG9GaXQoKQogICAgIH0KIH0KIAotRmxvYXRSZWN0IFBhZ2VWaWV3cG9y
dENvbnRyb2xsZXI6OnBvc2l0aW9uUmFuZ2VGb3JDb250ZW50QXRTY2FsZShmbG9hdCB2aWV3cG9y
dFNjYWxlKSBjb25zdAorRmxvYXRSZWN0IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnBvc2l0aW9u
UmFuZ2VGb3JWaWV3cG9ydEF0U2NhbGUoZmxvYXQgdmlld3BvcnRTY2FsZSkgY29uc3QKIHsKLSAg
ICBjb25zdCBGbG9hdFNpemUgY29udGVudFNpemUgPSBtX2NvbnRlbnRzU2l6ZSAqIHZpZXdwb3J0
U2NhbGU7Ci0KLSAgICBjb25zdCBmbG9hdCBob3Jpem9udGFsUmFuZ2UgPSBjb250ZW50U2l6ZS53
aWR0aCgpIC0gbV92aWV3cG9ydFNpemUud2lkdGgoKTsKLSAgICBjb25zdCBmbG9hdCB2ZXJ0aWNh
bFJhbmdlID0gY29udGVudFNpemUuaGVpZ2h0KCkgLSBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQoKTsK
KyAgICBjb25zdCBmbG9hdCBob3Jpem9udGFsUmFuZ2UgPSBtX2NvbnRlbnRzU2l6ZS53aWR0aCgp
IC0gbV92aWV3cG9ydFNpemUud2lkdGgoKSAvIHZpZXdwb3J0U2NhbGU7CisgICAgY29uc3QgZmxv
YXQgdmVydGljYWxSYW5nZSA9IG1fY29udGVudHNTaXplLmhlaWdodCgpIC0gbV92aWV3cG9ydFNp
emUuaGVpZ2h0KCkgLyB2aWV3cG9ydFNjYWxlOwogCiAgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAw
LCBob3Jpem9udGFsUmFuZ2UsIHZlcnRpY2FsUmFuZ2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKaW5kZXggYWYxMjQwNDE5NzQx
MTViMWEyM2M0NTU3NTYwM2IyZmFmMDZiODAyMC4uMGRkNGUwYTg4ZDFmZDBlYjJhNGY4MjliZTlm
MTZmYjI0NWJkNGI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VW
aWV3cG9ydENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZp
ZXdwb3J0Q29udHJvbGxlci5oCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN1
c3BlbmRDb250ZW50KCk7CiAgICAgdm9pZCByZXN1bWVDb250ZW50KCk7CiAKLSAgICBXZWJDb3Jl
OjpGbG9hdFJlY3QgcG9zaXRpb25SYW5nZUZvckNvbnRlbnRBdFNjYWxlKGZsb2F0IHZpZXdwb3J0
U2NhbGUpIGNvbnN0OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBwb3NpdGlvblJhbmdlRm9yVmll
d3BvcnRBdFNjYWxlKGZsb2F0IHZpZXdwb3J0U2NhbGUpIGNvbnN0OwogCiAgICAgZmxvYXQgaW5u
ZXJCb3VuZGVkVmlld3BvcnRTY2FsZShmbG9hdCkgY29uc3Q7CiAgICAgZmxvYXQgb3V0ZXJCb3Vu
ZGVkVmlld3BvcnRTY2FsZShmbG9hdCkgY29uc3Q7CkBAIC05MSw5ICs5MSw5IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0SGFkVXNlckludGVyYWN0aW9uKGJvb2wgZGlkVXNlckludGVyYWN0KSB7
IG1faGFkVXNlckludGVyYWN0aW9uID0gZGlkVXNlckludGVyYWN0OyB9CiAKLSAgICAvLyBOb3Rp
ZmljYXRpb25zIHRvIHRoZSBXZWJQcm9jZXNzLgotICAgIHZvaWQgc2V0Vmlld3BvcnRTaXplKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbmV3U2l6ZSk7Ci0gICAgdm9pZCBzZXRWaXNpYmxlQ29u
dGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlzaWJsZUNvbnRlbnRzUmVjdCwg
ZmxvYXQgdmlld3BvcnRTY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgdHJhamVjdG9y
eVZlY3RvciA9IFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8oKSk7CisgICAgLy8gTm90aWZpY2F0
aW9ucyBmcm9tIHRoZSB2aWV3cG9ydC4KKyAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0U2l6ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG5ld1NpemUpOworICAgIHZvaWQgZGlkQ2hhbmdlQ29u
dGVudHNWaXNpYmlsaXR5KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHZpZXdwb3J0UG9zLCBm
bG9hdCB2aWV3cG9ydFNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5
VmVjdG9yID0gV2ViQ29yZTo6RmxvYXRQb2ludDo6emVybygpKTsKIAogICAgIC8vIE5vdGlmaWNh
dGlvbnMgZnJvbSB0aGUgV2ViUHJvY2Vzcy4KICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRzU2l6
ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdTaXplKTsKQEAgLTExOCw5ICsxMTgsOSBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9oYXNTdXNwZW5kZWRDb250ZW50OwogICAgIGJvb2wgbV9oYWRV
c2VySW50ZXJhY3Rpb247CiAKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IG1fdmlld3BvcnRQb3M7
CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fdmlld3BvcnRTaXplOwogICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBtX2NvbnRlbnRzU2l6ZTsKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV92aXNpYmxl
Q29udGVudHNSZWN0OwogICAgIGZsb2F0IG1fZWZmZWN0aXZlU2NhbGU7IC8vIFNob3VsZCBhbHdh
eXMgYmUgY3NzU2NhbGUgKiBkZXZpY2VQaXhlbFJhdGlvLgogCiAgICAgZnJpZW5kIGNsYXNzIFZp
ZXdwb3J0VXBkYXRlRGVmZXJyZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQuaAppbmRleCA2YTUwYjQyMTc5MzYwMTRj
NTQwMzg2MzAzMzM0ODk2MGNjZWVmMmEyLi4zZDkxYjlhYWM3ZmU1N2FjYWVmYWUyOWQwZDgwYTBl
YWJkMzE1OTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdw
b3J0Q29udHJvbGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50LmgKQEAgLTMzLDggKzMzLDggQEAgcHVibGljOgogICAg
IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQoKSB7IH0KICAgICB2aXJ0dWFsIH5QYWdlVmll
d3BvcnRDb250cm9sbGVyQ2xpZW50KCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhbFBvaW50KSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQgbG9jYWxTY2FsZSwgYm9vbCB0
cmVhdEFzSW5pdGlhbFZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZXdwb3J0UG9z
aXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgY29udGVudHNQb2ludCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1NjYWxlKGZsb2F0LCBib29sIHRyZWF0QXNJbml0aWFs
VmFsdWUpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN1bWVDb250ZW50KCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50UXQuY3BwCmluZGV4IGY1M2Y2MTBjN2E5MzkzZTgxZTQ2OTIwZGFjOWUzZTNhMGJk
NDczNDcuLjRjMzI5NjU0YTQzOTg2OWYzOGUyM2ExOWJkZmYzMWRjOGI5ZTNhZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50UXQuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50UXQ6OmFuaW1hdGVDb250ZW50UmVjdFZpc2libGUoY29uc3QgUVJl
Y3RGJiBjb24KIAogICAgIC8vIEluZm9ybSB0aGUgd2ViIHByb2Nlc3MgYWJvdXQgdGhlIHJlcXVl
c3RlZCB2aXNpYmxlIGNvbnRlbnQgcmVjdCBpbW1lZGlhdGVseSBzbyB0aGF0IG5ldyB0aWxlcwog
ICAgIC8vIGFyZSByZW5kZXJlZCBhdCB0aGUgZmluYWwgZGVzdGluYXRpb24gd2hpbGUgd2UgcGVy
Zm9ybSB0aGUgYW5pbWF0aW9uLgotICAgIG1fY29udHJvbGxlci0+c2V0VmlzaWJsZUNvbnRlbnRz
UmVjdChjb250ZW50UmVjdCwgdmlld3BvcnRTY2FsZUZvclJlY3QoY29udGVudFJlY3QpKTsKKyAg
ICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZUNvbnRlbnRzVmlzaWJpbGl0eShjb250ZW50UmVjdC50
b3BMZWZ0KCksIHZpZXdwb3J0U2NhbGVGb3JSZWN0KGNvbnRlbnRSZWN0KSk7CiAKICAgICAvLyBT
aW5jZSB3ZSBoYXZlIHRvIGFuaW1hdGUgc2NhbGUgYW5kIHBvc2l0aW9uIGF0IHRoZSBzYW1lIHRp
bWUgdGhlIHNjYWxlIGFuaW1hdGlvbiBpbnRlcnBvbGF0ZXMKICAgICAvLyBmcm9tIHRoZSBjdXJy
ZW50IHZpZXdwb3J0IHJlY3QgaW4gY29udGVudCBjb29yZGluYXRlcyB0byBhIHZpc2libGUgcmVj
dCBvZiB0aGUgY29udGVudC4KQEAgLTIwNyw3ICsyMDcsNyBAQCB2b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRRdDo6Zm9jdXNFZGl0YWJsZUFyZWEoY29uc3QgUVJlY3RGJiBjYXJldEFy
ZWEsCiAgICAgY29uc3QgUVBvaW50RiB2aWV3cG9ydEhvdHNwb3QgPSBRUG9pbnRGKHgsIC8qIEZJ
WE1FOiB2aXNpYmxlQ2VudGVyICovIHZpZXdwb3J0UmVjdC5jZW50ZXIoKS55KCkpOwogCiAgICAg
UVBvaW50RiBlbmRQb3NpdGlvbiA9IGhvdHNwb3QgKiB0YXJnZXRTY2FsZSAtIHZpZXdwb3J0SG90
c3BvdDsKLSAgICBRUmVjdEYgZW5kUG9zUmFuZ2UgPSBtX2NvbnRyb2xsZXItPnBvc2l0aW9uUmFu
Z2VGb3JDb250ZW50QXRTY2FsZSh0YXJnZXRTY2FsZSk7CisgICAgUVJlY3RGIGVuZFBvc1Jhbmdl
ID0gbV9jb250cm9sbGVyLT5wb3NpdGlvblJhbmdlRm9yVmlld3BvcnRBdFNjYWxlKHRhcmdldFNj
YWxlKTsKIAogICAgIGVuZFBvc2l0aW9uID0gYm91bmRQb3NpdGlvbihlbmRQb3NSYW5nZS50b3BM
ZWZ0KCksIGVuZFBvc2l0aW9uLCBlbmRQb3NSYW5nZS5ib3R0b21SaWdodCgpKTsKIApAQCAtMjQ1
LDcgKzI0NSw3IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Ojp6b29tVG9B
cmVhR2VzdHVyZUVuZGVkKGNvbnN0IFFQb2ludEYmIHRvdWNoCiAKICAgICBRUG9pbnRGIGVuZFBv
c2l0aW9uID0gaG90c3BvdCAqIHRhcmdldFNjYWxlIC0gdmlld3BvcnRIb3RzcG90OwogCi0gICAg
UVJlY3RGIGVuZFBvc1JhbmdlID0gbV9jb250cm9sbGVyLT5wb3NpdGlvblJhbmdlRm9yQ29udGVu
dEF0U2NhbGUodGFyZ2V0U2NhbGUpOworICAgIFFSZWN0RiBlbmRQb3NSYW5nZSA9IG1fY29udHJv
bGxlci0+cG9zaXRpb25SYW5nZUZvclZpZXdwb3J0QXRTY2FsZSh0YXJnZXRTY2FsZSk7CiAgICAg
ZW5kUG9zaXRpb24gPSBib3VuZFBvc2l0aW9uKGVuZFBvc1JhbmdlLnRvcExlZnQoKSwgZW5kUG9z
aXRpb24sIGVuZFBvc1JhbmdlLmJvdHRvbVJpZ2h0KCkpOwogCiAgICAgUVJlY3RGIGVuZFZpc2li
bGVDb250ZW50UmVjdChlbmRQb3NpdGlvbiAvIHRhcmdldFNjYWxlLCB2aWV3cG9ydFJlY3Quc2l6
ZSgpIC8gdGFyZ2V0U2NhbGUpOwpAQCAtMjU4LDcgKzI1OCw3IEBAIHZvaWQgUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudFF0Ojp6b29tVG9BcmVhR2VzdHVyZUVuZGVkKGNvbnN0IFFQb2ludEYm
IHRvdWNoCiAgICAgICAgIC8vIFVzZSBmdXp6eSBjb21wYXJlIHdpdGggYSBmaXhlZCBlcnJvciB0
byBiZSBhYmxlIHRvIGRlYWwgd2l0aCBsYXJnaXNoIGRpZmZlcmVuY2VzIGR1ZSB0byBwaXhlbCBy
b3VuZGluZy4KICAgICAgICAgaWYgKGZ1enp5Q29tcGFyZSh0YXJnZXRTY2FsZSwgY3VycmVudFNj
YWxlLCAwLjAxKSkgewogICAgICAgICAgICAgLy8gSWYgbW92aW5nIHRoZSB2aWV3cG9ydCB3b3Vs
ZCBleHBvc2UgbW9yZSBvZiB0aGUgdGFyZ2V0UmVjdCBhbmQgbW92ZSBhdCBsZWFzdCA0MCBwaXhl
bHMsIHVwZGF0ZSBwb3NpdGlvbiBidXQgZG8gbm90IHNjYWxlIG91dC4KLSAgICAgICAgICAgIFFS
ZWN0RiBjdXJyZW50Q29udGVudFJlY3QodmlzaWJsZUNvbnRlbnRzUmVjdCgpKTsKKyAgICAgICAg
ICAgIFFSZWN0RiBjdXJyZW50Q29udGVudFJlY3QobV92aWV3cG9ydEl0ZW0tPm1hcFJlY3RUb1dl
YkNvbnRlbnQodmlld3BvcnRSZWN0KSk7CiAgICAgICAgICAgICBRUmVjdEYgdGFyZ2V0SW50ZXJz
ZWN0aW9uID0gZW5kVmlzaWJsZUNvbnRlbnRSZWN0LmludGVyc2VjdGVkKHRhcmdldEFyZWEpOwog
ICAgICAgICAgICAgaWYgKCFjdXJyZW50Q29udGVudFJlY3QuY29udGFpbnModGFyZ2V0SW50ZXJz
ZWN0aW9uKQogICAgICAgICAgICAgICAgICAgICAmJiAocUFicyhlbmRWaXNpYmxlQ29udGVudFJl
Y3QudG9wKCkgLSBjdXJyZW50Q29udGVudFJlY3QudG9wKCkpID49IDQwCkBAIC0yODMsNyArMjgz
LDcgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6Onpvb21Ub0FyZWFHZXN0
dXJlRW5kZWQoY29uc3QgUVBvaW50RiYgdG91Y2gKICAgICAgICAgLy8gUmVjYWxjdWxhdGUgZW5k
UG9zaXRpb24gYW5kIGJvdW5kIGl0IGFjY29yZGluZyB0byBuZXcgc2NhbGUuCiAgICAgICAgIGVu
ZFBvc2l0aW9uLnNldFkoaG90c3BvdC55KCkgKiB0YXJnZXRTY2FsZSAtIHZpZXdwb3J0SG90c3Bv
dC55KCkpOwogICAgICAgICBlbmRQb3NpdGlvbi5zZXRYKGxhc3RTY2FsZS54UG9zaXRpb24pOwot
ICAgICAgICBlbmRQb3NSYW5nZSA9IG1fY29udHJvbGxlci0+cG9zaXRpb25SYW5nZUZvckNvbnRl
bnRBdFNjYWxlKHRhcmdldFNjYWxlKTsKKyAgICAgICAgZW5kUG9zUmFuZ2UgPSBtX2NvbnRyb2xs
ZXItPnBvc2l0aW9uUmFuZ2VGb3JWaWV3cG9ydEF0U2NhbGUodGFyZ2V0U2NhbGUpOwogICAgICAg
ICBlbmRQb3NpdGlvbiA9IGJvdW5kUG9zaXRpb24oZW5kUG9zUmFuZ2UudG9wTGVmdCgpLCBlbmRQ
b3NpdGlvbiwgZW5kUG9zUmFuZ2UuYm90dG9tUmlnaHQoKSk7CiAgICAgICAgIGVuZFZpc2libGVD
b250ZW50UmVjdCA9IFFSZWN0RihlbmRQb3NpdGlvbiAvIHRhcmdldFNjYWxlLCB2aWV3cG9ydFJl
Y3Quc2l6ZSgpIC8gdGFyZ2V0U2NhbGUpOwogICAgICAgICBicmVhazsKQEAgLTMwOSwxNyArMzA5
LDE1IEBAIFFSZWN0RiBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6Om5lYXJlc3RWYWxp
ZFZpc2libGVDb250ZW50c1JlY3QoKSBjb25zdAogICAgIFFQb2ludEYgdmlld3BvcnRIb3RzcG90
ID0gdmlld3BvcnRSZWN0LmNlbnRlcigpOwogICAgIFFQb2ludEYgZW5kUG9zaXRpb24gPSBtX3Zp
ZXdwb3J0SXRlbS0+bWFwVG9XZWJDb250ZW50KHZpZXdwb3J0SG90c3BvdCkgKiB0YXJnZXRTY2Fs
ZSAtIHZpZXdwb3J0SG90c3BvdDsKIAotICAgIEZsb2F0UmVjdCBlbmRQb3NSYW5nZSA9IG1fY29u
dHJvbGxlci0+cG9zaXRpb25SYW5nZUZvckNvbnRlbnRBdFNjYWxlKHRhcmdldFNjYWxlKTsKKyAg
ICBGbG9hdFJlY3QgZW5kUG9zUmFuZ2UgPSBtX2NvbnRyb2xsZXItPnBvc2l0aW9uUmFuZ2VGb3JW
aWV3cG9ydEF0U2NhbGUodGFyZ2V0U2NhbGUpOwogICAgIGVuZFBvc2l0aW9uID0gYm91bmRQb3Np
dGlvbihlbmRQb3NSYW5nZS5taW5YTWluWUNvcm5lcigpLCBlbmRQb3NpdGlvbiwgZW5kUG9zUmFu
Z2UubWF4WE1heFlDb3JuZXIoKSk7CiAKLSAgICBRUmVjdEYgZW5kVmlzaWJsZUNvbnRlbnRSZWN0
KGVuZFBvc2l0aW9uIC8gdGFyZ2V0U2NhbGUsIHZpZXdwb3J0UmVjdC5zaXplKCkgLyB0YXJnZXRT
Y2FsZSk7Ci0KLSAgICByZXR1cm4gZW5kVmlzaWJsZUNvbnRlbnRSZWN0OworICAgIHJldHVybiBR
UmVjdEYoZW5kUG9zaXRpb24gLyB0YXJnZXRTY2FsZSwgdmlld3BvcnRSZWN0LnNpemUoKSAvIHRh
cmdldFNjYWxlKTsKIH0KIAotdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnNl
dENvbnRlbnRzUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgbG9jYWxQb2ludCkKK3ZvaWQgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpzZXRWaWV3cG9ydFBvc2l0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmIGNvbnRlbnRzUG9pbnQpCiB7Ci0gICAgUVBvaW50RiBuZXdQb3NpdGlvbihtX3Bh
Z2VJdGVtLT5wb3MoKSArIFFQb2ludEYobG9jYWxQb2ludCkpOworICAgIFFQb2ludEYgbmV3UG9z
aXRpb24oKG1fcGFnZUl0ZW0tPnBvcygpICsgUVBvaW50Rihjb250ZW50c1BvaW50KSkgKiBtX3Bh
Z2VJdGVtLT5jb250ZW50c1NjYWxlKCkpOwogICAgIG1fdmlld3BvcnRJdGVtLT5zZXRDb250ZW50
UG9zKG5ld1Bvc2l0aW9uKTsKICAgICB1cGRhdGVWaWV3cG9ydENvbnRyb2xsZXIoKTsKIH0KQEAg
LTQ3OCwxMiArNDc2LDYgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnBp
bmNoR2VzdHVyZUNhbmNlbGxlZCgpCiAgICAgbV9zY2FsZVVwZGF0ZURlZmVycmVyLnJlc2V0KCk7
CiB9CiAKLVFSZWN0RiBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnZpc2libGVDb250
ZW50c1JlY3QoKSBjb25zdAotewotICAgIGNvbnN0IFFSZWN0RiB2aXNpYmxlUmVjdChtX3ZpZXdw
b3J0SXRlbS0+Ym91bmRpbmdSZWN0KCkuaW50ZXJzZWN0ZWQobV9wYWdlSXRlbS0+Ym91bmRpbmdS
ZWN0KCkpKTsKLSAgICByZXR1cm4gbV92aWV3cG9ydEl0ZW0tPm1hcFJlY3RUb1dlYkNvbnRlbnQo
dmlzaWJsZVJlY3QpOwotfQotCiB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6
ZGlkQ2hhbmdlQ29udGVudHNTaXplKCkKIHsKICAgICAvLyBFbWl0IGZvciB0ZXN0aW5nIHB1cnBv
c2VzLCBzbyB0aGF0IGl0IGNhbiBiZSB2ZXJpZmllZCB0aGF0CkBAIC01MTcsOSArNTA5LDkgQEAg
dm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OmRpZENoYW5nZVZpZXdwb3J0QXR0
cmlidXRlcygpCiAKIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Ojp1cGRhdGVW
aWV3cG9ydENvbnRyb2xsZXIoY29uc3QgUVBvaW50RiYgdHJhamVjdG9yeSwgcXJlYWwgc2NhbGUp
CiB7Ci0gICAgRmxvYXRSZWN0IGN1cnJlbnRWaXNpYmxlUmVjdCh2aXNpYmxlQ29udGVudHNSZWN0
KCkpOwotICAgIGZsb2F0IHZpZXdwb3J0U2NhbGUgPSAoc2NhbGUgPCAwKSA/IHZpZXdwb3J0U2Nh
bGVGb3JSZWN0KGN1cnJlbnRWaXNpYmxlUmVjdCkgOiBzY2FsZTsKLSAgICBtX2NvbnRyb2xsZXIt
PnNldFZpc2libGVDb250ZW50c1JlY3QoY3VycmVudFZpc2libGVSZWN0LCB2aWV3cG9ydFNjYWxl
LCB0cmFqZWN0b3J5KTsKKyAgICBGbG9hdFBvaW50IHZpZXdwb3J0UG9zID0gbV92aWV3cG9ydEl0
ZW0tPm1hcFRvV2ViQ29udGVudChRUG9pbnRGKCkpOworICAgIGZsb2F0IHZpZXdwb3J0U2NhbGUg
PSAoc2NhbGUgPCAwKSA/IG1fcGFnZUl0ZW0tPmNvbnRlbnRzU2NhbGUoKSA6IHNjYWxlOworICAg
IG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlQ29udGVudHNWaXNpYmlsaXR5KHZpZXdwb3J0UG9zLCB2
aWV3cG9ydFNjYWxlLCB0cmFqZWN0b3J5KTsKIH0KIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50UXQ6OnNjYWxlQ29udGVudChxcmVhbCBpdGVtU2NhbGUsIGNvbnN0IFFQb2ludEYm
IGNlbnRlckluQ1NTQ29vcmRpbmF0ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmgKaW5kZXggMTli
MjdhZTllYzVjMWRlMWQ4MzU0YmVjNjhlZWIyOThhZmYzZDI3Ny4uYmQwZTE3MzFiZGViOTAzMzFl
ZDcyMjA3YmM3N2VhNjZmYzcwNGJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQuaApAQCAtNDcs
OCArNDcsOCBAQCBwdWJsaWM6CiAgICAgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0KFFR
dWlja1dlYlZpZXcqLCBRUXVpY2tXZWJQYWdlKik7CiAgICAgflBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRRdCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzUG9zaXRpb24oY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYWxQb2ludCk7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dENvbnRlbnRzU2NhbGUoZmxvYXQgbG9jYWxTY2FsZSwgYm9vbCB0cmVhdEFzSW5pdGlhbFZhbHVl
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld3BvcnRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBjb250ZW50c1BvaW50KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNT
Y2FsZShmbG9hdCBzY2FsZSwgYm9vbCB0cmVhdEFzSW5pdGlhbFZhbHVlKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZXN1bWVDb250ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNv
bnRlbnRzU2l6ZSgpOwpAQCAtMTIxLDcgKzEyMSw2IEBAIHByaXZhdGU6CiAgICAgUVF1aWNrV2Vi
UGFnZSogY29uc3QgbV9wYWdlSXRlbTsKIAogICAgIGZsb2F0IHZpZXdwb3J0U2NhbGVGb3JSZWN0
KGNvbnN0IFFSZWN0RiYpIGNvbnN0OwotICAgIFFSZWN0RiB2aXNpYmxlQ29udGVudHNSZWN0KCkg
Y29uc3Q7CiAgICAgUVJlY3RGIG5lYXJlc3RWYWxpZFZpc2libGVDb250ZW50c1JlY3QoKSBjb25z
dDsKIAogICAgIHZvaWQgc2V0Q29udGVudHNSZWN0VG9OZWFyZXN0VmFsaWRCb3VuZHMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164930</attachid>
            <date>2012-09-20 09:20:36 -0700</date>
            <delta_ts>2012-09-25 08:53:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97220-20120920182001.patch</filename>
            <type>text/plain</type>
            <size>18479</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4OTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGRlMDI3ZDZjZmYwZTk3
OWNkMjVhYzc5N2E0NDQ0OWRlNzY4NTAzNC4uMDM2NzA5ZmJiZGNkNTMxMjc5NjZlOGFiM2Y0ODY2
MGNiMGE4NjEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDEyLTA5LTIwICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKKyAgICAgICAgW1F0
XSBVbmlmeSB0aGUgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjwtPkNsaWVudCBpbnRlcmZhY2UgcmVn
YXJkaW5nIHBvc2l0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTcyMjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAtIE1ha2Ugc3VyZSB0aGF0IGNzcyB1bml0cyBhcmUgdXNlZCBmb3IgYWxsIHBvc2l0
aW9uIGFyZ3VtZW50cworICAgICAgICAtIE1ha2Ugc3VyZSB0aGF0IGFsbCBwb3NpdGlvbnMgcmVw
cmVzZW50IHRoZSB2aWV3cG9ydCByZWxhdGl2ZWx5IHRvIHRoZSBjb250ZW50cworICAgICAgICAg
IHJhdGhlciB0aGFuIHRoZSBvdGhlciB3YXkgYXJvdW5kCisgICAgICAgIC0gRGVsYXkgY2xhbXBp
bmcgdGhlIHZpZXdwb3J0IHRvIHRoZSBjb250ZW50cyBzaXplIGluIHRoZSBjb250cm9sbGVyIHJh
dGhlciB0aGFuIGluIHRoZSBjbGllbnQKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RmxpY2thYmxlUHJpdmF0ZTo6
dXBkYXRlVmlld3BvcnRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnBh
Z2VEaWRSZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJv
bGxlcjo6ZGlkQ2hhbmdlVmlld3BvcnRTaXplKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdw
b3J0Q29udHJvbGxlcjo6ZGlkQ2hhbmdlQ29udGVudHNWaXNpYmlsaXR5KToKKyAgICAgICAgKFdl
YktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6c3luY1Zpc2libGVDb250ZW50cyk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnBvc2l0aW9uUmFuZ2VGb3JWaWV3
cG9ydEF0U2NhbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVy
Lmg6CisgICAgICAgIChQYWdlVmlld3BvcnRDb250cm9sbGVyKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudC5oOgorICAgICAgICAoUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRRdDo6YW5pbWF0ZUNvbnRlbnRSZWN0VmlzaWJsZSk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6Zm9jdXNFZGl0YWJsZUFyZWEpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6Onpvb21Ub0Fy
ZWFHZXN0dXJlRW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50UXQ6Om5lYXJlc3RWYWxpZFZpc2libGVDb250ZW50c1JlY3QpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnNldFZpZXdwb3J0UG9zaXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnVwZGF0
ZVZpZXdwb3J0Q29udHJvbGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9y
dENvbnRyb2xsZXJDbGllbnRRdC5oOgorICAgICAgICAoUGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0KToKKworMjAxMi0wOS0yMCAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290
dGVAZGlnaWEuY29tPgorCiAgICAgICAgIFtRdF0gTWFrZSBzdXJlIHRoYXQgZGVza3RvcCBwYWdl
cyBob25vdXIgdGhlIGRldmljZVBpeGVsUmF0aW8KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MjE1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDMxZTIzNjIxNjM4MmM1MTM4ODhk
MGNiOTI2N2EyOTk2NWFjMzdmNzYuLmQ2Y2ZhODhhYmQzM2QyMTFjN2FhMzEyMWY3N2ZiZjU4ZDU0
NTQ0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3LmNwcApAQCAtODY4LDcgKzg2OCw3IEBAIHZvaWQgUVF1aWNrV2ViVmlld0ZsaWNrYWJs
ZVByaXZhdGU6OnVwZGF0ZVZpZXdwb3J0U2l6ZSgpCiAgICAgUV9RKFFRdWlja1dlYlZpZXcpOwog
CiAgICAgaWYgKG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlcikKLSAgICAgICAgbV9wYWdlVmlld3Bv
cnRDb250cm9sbGVyLT5zZXRWaWV3cG9ydFNpemUoUVNpemVGKHEtPndpZHRoKCksIHEtPmhlaWdo
dCgpKSk7CisgICAgICAgIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlci0+ZGlkQ2hhbmdlVmlld3Bv
cnRTaXplKFFTaXplRihxLT53aWR0aCgpLCBxLT5oZWlnaHQoKSkpOwogfQogCiB2b2lkIFFRdWlj
a1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpwYWdlRGlkUmVxdWVzdFNjcm9sbChjb25zdCBRUG9p
bnQmIHBvcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3Bv
cnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRD
b250cm9sbGVyLmNwcAppbmRleCA2NWM2NWFhMjllNzRkNWU0YmM5MTQxOTYyMzNmYmQzZTliNDBh
ODRjLi41NDZkZWRlMGU3YmIxMWI1ZDczMmEzOTRmNWIyYTJiMGE1ZTZhZjliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCkBA
IC0xMjQsMTUgKzEyNCwxMyBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnBhZ2VEaWRS
ZXF1ZXN0U2Nyb2xsKGNvbnN0IEludFBvaW50JiBjc3NQb3NpdGlvbikKICAgICBpZiAobV9hY3Rp
dmVEZWZlcnJlckNvdW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJlY3QgZW5kUG9z
UmFuZ2UgPSBwb3NpdGlvblJhbmdlRm9yQ29udGVudEF0U2NhbGUobV9lZmZlY3RpdmVTY2FsZSk7
Ci0gICAgRmxvYXRQb2ludCBlbmRQb3NpdGlvbihjc3NQb3NpdGlvbik7Ci0gICAgZW5kUG9zaXRp
b24uc2NhbGUobV9lZmZlY3RpdmVTY2FsZSwgbV9lZmZlY3RpdmVTY2FsZSk7Ci0gICAgZW5kUG9z
aXRpb24gPSBib3VuZFBvc2l0aW9uKGVuZFBvc1JhbmdlLm1pblhNaW5ZQ29ybmVyKCksIGVuZFBv
c2l0aW9uLCBlbmRQb3NSYW5nZS5tYXhYTWF4WUNvcm5lcigpKTsKKyAgICBGbG9hdFJlY3QgZW5k
UG9zUmFuZ2UgPSBwb3NpdGlvblJhbmdlRm9yVmlld3BvcnRBdFNjYWxlKG1fZWZmZWN0aXZlU2Nh
bGUpOworICAgIEZsb2F0UG9pbnQgZW5kUG9zaXRpb24gPSBib3VuZFBvc2l0aW9uKGVuZFBvc1Jh
bmdlLm1pblhNaW5ZQ29ybmVyKCksIGNzc1Bvc2l0aW9uLCBlbmRQb3NSYW5nZS5tYXhYTWF4WUNv
cm5lcigpKTsKIAotICAgIG1fY2xpZW50LT5zZXRDb250ZW50c1Bvc2l0aW9uKGVuZFBvc2l0aW9u
KTsKKyAgICBtX2NsaWVudC0+c2V0Vmlld3BvcnRQb3NpdGlvbihlbmRQb3NpdGlvbik7CiB9CiAK
LXZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6c2V0Vmlld3BvcnRTaXplKGNvbnN0IEZsb2F0
U2l6ZSYgbmV3U2l6ZSkKK3ZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlkQ2hhbmdlVmll
d3BvcnRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgbmV3U2l6ZSkKIHsKICAgICBpZiAobmV3U2l6ZS5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE0Niw5ICsxNDQsOSBAQCB2b2lkIFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXI6OnNldFZpZXdwb3J0U2l6ZShjb25zdCBGbG9hdFNpemUmIG5ld1Np
emUpCiAgICAgc3luY1Zpc2libGVDb250ZW50cygpOwogfQogCi12b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXI6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0JiB2aXNpYmxl
Q29udGVudHNSZWN0LCBmbG9hdCB2aWV3cG9ydFNjYWxlLCBjb25zdCBGbG9hdFBvaW50JiB0cmFq
ZWN0b3J5VmVjdG9yKQordm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpkaWRDaGFuZ2VDb250
ZW50c1Zpc2liaWxpdHkoY29uc3QgRmxvYXRQb2ludCYgdmlld3BvcnRQb3MsIGZsb2F0IHZpZXdw
b3J0U2NhbGUsIGNvbnN0IEZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7Ci0gICAgbV92
aXNpYmxlQ29udGVudHNSZWN0ID0gdmlzaWJsZUNvbnRlbnRzUmVjdDsKKyAgICBtX3ZpZXdwb3J0
UG9zID0gdmlld3BvcnRQb3M7CiAgICAgbV9lZmZlY3RpdmVTY2FsZSA9IHZpZXdwb3J0U2NhbGU7
CiAgICAgc3luY1Zpc2libGVDb250ZW50cyh0cmFqZWN0b3J5VmVjdG9yKTsKIH0KQEAgLTE1Niwx
MCArMTU0LDE1IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6c2V0VmlzaWJsZUNvbnRl
bnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHZpc2libGVDb250CiB2b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXI6OnN5bmNWaXNpYmxlQ29udGVudHMoY29uc3QgRmxvYXRQb2ludCYgdHJhamVjdG9y
eVZlY3RvcikKIHsKICAgICBEcmF3aW5nQXJlYVByb3h5KiBjb25zdCBkcmF3aW5nQXJlYSA9IG1f
d2ViUGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpOwotICAgIGlmICghZHJhd2luZ0FyZWEgfHwgbV92
aWV3cG9ydFNpemUuaXNFbXB0eSgpIHx8IG1fY29udGVudHNTaXplLmlzRW1wdHkoKSB8fCBtX3Zp
c2libGVDb250ZW50c1JlY3QuaXNFbXB0eSgpKQorICAgIGlmICghZHJhd2luZ0FyZWEgfHwgbV92
aWV3cG9ydFNpemUuaXNFbXB0eSgpIHx8IG1fY29udGVudHNTaXplLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZHJhd2luZ0FyZWEtPnNldFZpc2libGVDb250ZW50c1JlY3QobV92
aXNpYmxlQ29udGVudHNSZWN0LCBtX2VmZmVjdGl2ZVNjYWxlLCB0cmFqZWN0b3J5VmVjdG9yKTsK
KyAgICBGbG9hdFJlY3QgZW5kUG9zUmFuZ2UgPSBwb3NpdGlvblJhbmdlRm9yVmlld3BvcnRBdFNj
YWxlKG1fZWZmZWN0aXZlU2NhbGUpOworICAgIEZsb2F0UG9pbnQgZW5kUG9zaXRpb24gPSBib3Vu
ZFBvc2l0aW9uKGVuZFBvc1JhbmdlLm1pblhNaW5ZQ29ybmVyKCksIG1fdmlld3BvcnRQb3MsIGVu
ZFBvc1JhbmdlLm1heFhNYXhZQ29ybmVyKCkpOworCisgICAgRmxvYXRSZWN0IHZpc2libGVDb250
ZW50c1JlY3QoZW5kUG9zaXRpb24sIG1fdmlld3BvcnRTaXplIC8gbV9lZmZlY3RpdmVTY2FsZSk7
CisgICAgdmlzaWJsZUNvbnRlbnRzUmVjdC5pbnRlcnNlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQ6
Onplcm8oKSwgbV9jb250ZW50c1NpemUpKTsKKyAgICBkcmF3aW5nQXJlYS0+c2V0VmlzaWJsZUNv
bnRlbnRzUmVjdCh2aXNpYmxlQ29udGVudHNSZWN0LCBtX2VmZmVjdGl2ZVNjYWxlLCB0cmFqZWN0
b3J5VmVjdG9yKTsKIAogICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VWaXNpYmxlQ29udGVudHMoKTsK
IH0KQEAgLTIxOCwxMiArMjIxLDEwIEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6dXBk
YXRlTWluaW11bVNjYWxlVG9GaXQoKQogICAgIH0KIH0KIAotRmxvYXRSZWN0IFBhZ2VWaWV3cG9y
dENvbnRyb2xsZXI6OnBvc2l0aW9uUmFuZ2VGb3JDb250ZW50QXRTY2FsZShmbG9hdCB2aWV3cG9y
dFNjYWxlKSBjb25zdAorRmxvYXRSZWN0IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnBvc2l0aW9u
UmFuZ2VGb3JWaWV3cG9ydEF0U2NhbGUoZmxvYXQgdmlld3BvcnRTY2FsZSkgY29uc3QKIHsKLSAg
ICBjb25zdCBGbG9hdFNpemUgY29udGVudFNpemUgPSBtX2NvbnRlbnRzU2l6ZSAqIHZpZXdwb3J0
U2NhbGU7Ci0KLSAgICBjb25zdCBmbG9hdCBob3Jpem9udGFsUmFuZ2UgPSBjb250ZW50U2l6ZS53
aWR0aCgpIC0gbV92aWV3cG9ydFNpemUud2lkdGgoKTsKLSAgICBjb25zdCBmbG9hdCB2ZXJ0aWNh
bFJhbmdlID0gY29udGVudFNpemUuaGVpZ2h0KCkgLSBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQoKTsK
KyAgICBjb25zdCBmbG9hdCBob3Jpem9udGFsUmFuZ2UgPSBtX2NvbnRlbnRzU2l6ZS53aWR0aCgp
IC0gbV92aWV3cG9ydFNpemUud2lkdGgoKSAvIHZpZXdwb3J0U2NhbGU7CisgICAgY29uc3QgZmxv
YXQgdmVydGljYWxSYW5nZSA9IG1fY29udGVudHNTaXplLmhlaWdodCgpIC0gbV92aWV3cG9ydFNp
emUuaGVpZ2h0KCkgLyB2aWV3cG9ydFNjYWxlOwogCiAgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAw
LCBob3Jpem9udGFsUmFuZ2UsIHZlcnRpY2FsUmFuZ2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKaW5kZXggYWYxMjQwNDE5NzQx
MTViMWEyM2M0NTU3NTYwM2IyZmFmMDZiODAyMC4uMGRkNGUwYTg4ZDFmZDBlYjJhNGY4MjliZTlm
MTZmYjI0NWJkNGI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VW
aWV3cG9ydENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZp
ZXdwb3J0Q29udHJvbGxlci5oCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN1
c3BlbmRDb250ZW50KCk7CiAgICAgdm9pZCByZXN1bWVDb250ZW50KCk7CiAKLSAgICBXZWJDb3Jl
OjpGbG9hdFJlY3QgcG9zaXRpb25SYW5nZUZvckNvbnRlbnRBdFNjYWxlKGZsb2F0IHZpZXdwb3J0
U2NhbGUpIGNvbnN0OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBwb3NpdGlvblJhbmdlRm9yVmll
d3BvcnRBdFNjYWxlKGZsb2F0IHZpZXdwb3J0U2NhbGUpIGNvbnN0OwogCiAgICAgZmxvYXQgaW5u
ZXJCb3VuZGVkVmlld3BvcnRTY2FsZShmbG9hdCkgY29uc3Q7CiAgICAgZmxvYXQgb3V0ZXJCb3Vu
ZGVkVmlld3BvcnRTY2FsZShmbG9hdCkgY29uc3Q7CkBAIC05MSw5ICs5MSw5IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0SGFkVXNlckludGVyYWN0aW9uKGJvb2wgZGlkVXNlckludGVyYWN0KSB7
IG1faGFkVXNlckludGVyYWN0aW9uID0gZGlkVXNlckludGVyYWN0OyB9CiAKLSAgICAvLyBOb3Rp
ZmljYXRpb25zIHRvIHRoZSBXZWJQcm9jZXNzLgotICAgIHZvaWQgc2V0Vmlld3BvcnRTaXplKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbmV3U2l6ZSk7Ci0gICAgdm9pZCBzZXRWaXNpYmxlQ29u
dGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlzaWJsZUNvbnRlbnRzUmVjdCwg
ZmxvYXQgdmlld3BvcnRTY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgdHJhamVjdG9y
eVZlY3RvciA9IFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8oKSk7CisgICAgLy8gTm90aWZpY2F0
aW9ucyBmcm9tIHRoZSB2aWV3cG9ydC4KKyAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0U2l6ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG5ld1NpemUpOworICAgIHZvaWQgZGlkQ2hhbmdlQ29u
dGVudHNWaXNpYmlsaXR5KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHZpZXdwb3J0UG9zLCBm
bG9hdCB2aWV3cG9ydFNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5
VmVjdG9yID0gV2ViQ29yZTo6RmxvYXRQb2ludDo6emVybygpKTsKIAogICAgIC8vIE5vdGlmaWNh
dGlvbnMgZnJvbSB0aGUgV2ViUHJvY2Vzcy4KICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRzU2l6
ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdTaXplKTsKQEAgLTExOCw5ICsxMTgsOSBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9oYXNTdXNwZW5kZWRDb250ZW50OwogICAgIGJvb2wgbV9oYWRV
c2VySW50ZXJhY3Rpb247CiAKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IG1fdmlld3BvcnRQb3M7
CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fdmlld3BvcnRTaXplOwogICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBtX2NvbnRlbnRzU2l6ZTsKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV92aXNpYmxl
Q29udGVudHNSZWN0OwogICAgIGZsb2F0IG1fZWZmZWN0aXZlU2NhbGU7IC8vIFNob3VsZCBhbHdh
eXMgYmUgY3NzU2NhbGUgKiBkZXZpY2VQaXhlbFJhdGlvLgogCiAgICAgZnJpZW5kIGNsYXNzIFZp
ZXdwb3J0VXBkYXRlRGVmZXJyZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQuaAppbmRleCA2YTUwYjQyMTc5MzYwMTRj
NTQwMzg2MzAzMzM0ODk2MGNjZWVmMmEyLi4zZDkxYjlhYWM3ZmU1N2FjYWVmYWUyOWQwZDgwYTBl
YWJkMzE1OTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdw
b3J0Q29udHJvbGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50LmgKQEAgLTMzLDggKzMzLDggQEAgcHVibGljOgogICAg
IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQoKSB7IH0KICAgICB2aXJ0dWFsIH5QYWdlVmll
d3BvcnRDb250cm9sbGVyQ2xpZW50KCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhbFBvaW50KSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQgbG9jYWxTY2FsZSwgYm9vbCB0
cmVhdEFzSW5pdGlhbFZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZXdwb3J0UG9z
aXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgY29udGVudHNQb2ludCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1NjYWxlKGZsb2F0LCBib29sIHRyZWF0QXNJbml0aWFs
VmFsdWUpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN1bWVDb250ZW50KCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50UXQuY3BwCmluZGV4IGY1M2Y2MTBjN2E5MzkzZTgxZTQ2OTIwZGFjOWUzZTNhMGJk
NDczNDcuLjU3ZWIwOGM3ZjQwYTljN2EwMGIxZGM3NzI4OTA5NGQxZmY1ZWRkMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50UXQuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50UXQ6OmFuaW1hdGVDb250ZW50UmVjdFZpc2libGUoY29uc3QgUVJl
Y3RGJiBjb24KIAogICAgIC8vIEluZm9ybSB0aGUgd2ViIHByb2Nlc3MgYWJvdXQgdGhlIHJlcXVl
c3RlZCB2aXNpYmxlIGNvbnRlbnQgcmVjdCBpbW1lZGlhdGVseSBzbyB0aGF0IG5ldyB0aWxlcwog
ICAgIC8vIGFyZSByZW5kZXJlZCBhdCB0aGUgZmluYWwgZGVzdGluYXRpb24gd2hpbGUgd2UgcGVy
Zm9ybSB0aGUgYW5pbWF0aW9uLgotICAgIG1fY29udHJvbGxlci0+c2V0VmlzaWJsZUNvbnRlbnRz
UmVjdChjb250ZW50UmVjdCwgdmlld3BvcnRTY2FsZUZvclJlY3QoY29udGVudFJlY3QpKTsKKyAg
ICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZUNvbnRlbnRzVmlzaWJpbGl0eShjb250ZW50UmVjdC50
b3BMZWZ0KCksIHZpZXdwb3J0U2NhbGVGb3JSZWN0KGNvbnRlbnRSZWN0KSk7CiAKICAgICAvLyBT
aW5jZSB3ZSBoYXZlIHRvIGFuaW1hdGUgc2NhbGUgYW5kIHBvc2l0aW9uIGF0IHRoZSBzYW1lIHRp
bWUgdGhlIHNjYWxlIGFuaW1hdGlvbiBpbnRlcnBvbGF0ZXMKICAgICAvLyBmcm9tIHRoZSBjdXJy
ZW50IHZpZXdwb3J0IHJlY3QgaW4gY29udGVudCBjb29yZGluYXRlcyB0byBhIHZpc2libGUgcmVj
dCBvZiB0aGUgY29udGVudC4KQEAgLTIwNiwxMiArMjA2LDEyIEBAIHZvaWQgUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudFF0Ojpmb2N1c0VkaXRhYmxlQXJlYShjb25zdCBRUmVjdEYmIGNhcmV0
QXJlYSwKICAgICBjb25zdCBRUG9pbnRGIGhvdHNwb3QgPSBRUG9pbnRGKHRhcmdldEFyZWEueCgp
LCB0YXJnZXRBcmVhLmNlbnRlcigpLnkoKSk7CiAgICAgY29uc3QgUVBvaW50RiB2aWV3cG9ydEhv
dHNwb3QgPSBRUG9pbnRGKHgsIC8qIEZJWE1FOiB2aXNpYmxlQ2VudGVyICovIHZpZXdwb3J0UmVj
dC5jZW50ZXIoKS55KCkpOwogCi0gICAgUVBvaW50RiBlbmRQb3NpdGlvbiA9IGhvdHNwb3QgKiB0
YXJnZXRTY2FsZSAtIHZpZXdwb3J0SG90c3BvdDsKLSAgICBRUmVjdEYgZW5kUG9zUmFuZ2UgPSBt
X2NvbnRyb2xsZXItPnBvc2l0aW9uUmFuZ2VGb3JDb250ZW50QXRTY2FsZSh0YXJnZXRTY2FsZSk7
CisgICAgUVBvaW50RiBlbmRQb3NpdGlvbiA9IGhvdHNwb3QgLSB2aWV3cG9ydEhvdHNwb3QgLyB0
YXJnZXRTY2FsZTsKKyAgICBRUmVjdEYgZW5kUG9zUmFuZ2UgPSBtX2NvbnRyb2xsZXItPnBvc2l0
aW9uUmFuZ2VGb3JWaWV3cG9ydEF0U2NhbGUodGFyZ2V0U2NhbGUpOwogCiAgICAgZW5kUG9zaXRp
b24gPSBib3VuZFBvc2l0aW9uKGVuZFBvc1JhbmdlLnRvcExlZnQoKSwgZW5kUG9zaXRpb24sIGVu
ZFBvc1JhbmdlLmJvdHRvbVJpZ2h0KCkpOwogCi0gICAgUVJlY3RGIGVuZFZpc2libGVDb250ZW50
UmVjdChlbmRQb3NpdGlvbiAvIHRhcmdldFNjYWxlLCB2aWV3cG9ydFJlY3Quc2l6ZSgpIC8gdGFy
Z2V0U2NhbGUpOworICAgIFFSZWN0RiBlbmRWaXNpYmxlQ29udGVudFJlY3QoZW5kUG9zaXRpb24s
IHZpZXdwb3J0UmVjdC5zaXplKCkgLyB0YXJnZXRTY2FsZSk7CiAKICAgICBhbmltYXRlQ29udGVu
dFJlY3RWaXNpYmxlKGVuZFZpc2libGVDb250ZW50UmVjdCk7CiB9CkBAIC0yNDMsMTIgKzI0Mywx
MiBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6em9vbVRvQXJlYUdlc3R1
cmVFbmRlZChjb25zdCBRUG9pbnRGJiB0b3VjaAogICAgIGNvbnN0IFFQb2ludEYgaG90c3BvdCA9
IFFQb2ludEYoZW5kQXJlYS5jZW50ZXIoKS54KCksIHRvdWNoUG9pbnQueSgpKTsKICAgICBjb25z
dCBRUG9pbnRGIHZpZXdwb3J0SG90c3BvdCA9IHZpZXdwb3J0UmVjdC5jZW50ZXIoKTsKIAotICAg
IFFQb2ludEYgZW5kUG9zaXRpb24gPSBob3RzcG90ICogdGFyZ2V0U2NhbGUgLSB2aWV3cG9ydEhv
dHNwb3Q7CisgICAgUVBvaW50RiBlbmRQb3NpdGlvbiA9IGhvdHNwb3QgLSB2aWV3cG9ydEhvdHNw
b3QgLyB0YXJnZXRTY2FsZTsKIAotICAgIFFSZWN0RiBlbmRQb3NSYW5nZSA9IG1fY29udHJvbGxl
ci0+cG9zaXRpb25SYW5nZUZvckNvbnRlbnRBdFNjYWxlKHRhcmdldFNjYWxlKTsKKyAgICBRUmVj
dEYgZW5kUG9zUmFuZ2UgPSBtX2NvbnRyb2xsZXItPnBvc2l0aW9uUmFuZ2VGb3JWaWV3cG9ydEF0
U2NhbGUodGFyZ2V0U2NhbGUpOwogICAgIGVuZFBvc2l0aW9uID0gYm91bmRQb3NpdGlvbihlbmRQ
b3NSYW5nZS50b3BMZWZ0KCksIGVuZFBvc2l0aW9uLCBlbmRQb3NSYW5nZS5ib3R0b21SaWdodCgp
KTsKIAotICAgIFFSZWN0RiBlbmRWaXNpYmxlQ29udGVudFJlY3QoZW5kUG9zaXRpb24gLyB0YXJn
ZXRTY2FsZSwgdmlld3BvcnRSZWN0LnNpemUoKSAvIHRhcmdldFNjYWxlKTsKKyAgICBRUmVjdEYg
ZW5kVmlzaWJsZUNvbnRlbnRSZWN0KGVuZFBvc2l0aW9uLCB2aWV3cG9ydFJlY3Quc2l6ZSgpIC8g
dGFyZ2V0U2NhbGUpOwogCiAgICAgZW51bSB7IFpvb21JbiwgWm9vbUJhY2ssIFpvb21PdXQsIE5v
Wm9vbSB9IHpvb21BY3Rpb24gPSBab29tSW47CiAKQEAgLTI1OCw3ICsyNTgsNyBAQCB2b2lkIFBh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6em9vbVRvQXJlYUdlc3R1cmVFbmRlZChjb25z
dCBRUG9pbnRGJiB0b3VjaAogICAgICAgICAvLyBVc2UgZnV6enkgY29tcGFyZSB3aXRoIGEgZml4
ZWQgZXJyb3IgdG8gYmUgYWJsZSB0byBkZWFsIHdpdGggbGFyZ2lzaCBkaWZmZXJlbmNlcyBkdWUg
dG8gcGl4ZWwgcm91bmRpbmcuCiAgICAgICAgIGlmIChmdXp6eUNvbXBhcmUodGFyZ2V0U2NhbGUs
IGN1cnJlbnRTY2FsZSwgMC4wMSkpIHsKICAgICAgICAgICAgIC8vIElmIG1vdmluZyB0aGUgdmll
d3BvcnQgd291bGQgZXhwb3NlIG1vcmUgb2YgdGhlIHRhcmdldFJlY3QgYW5kIG1vdmUgYXQgbGVh
c3QgNDAgcGl4ZWxzLCB1cGRhdGUgcG9zaXRpb24gYnV0IGRvIG5vdCBzY2FsZSBvdXQuCi0gICAg
ICAgICAgICBRUmVjdEYgY3VycmVudENvbnRlbnRSZWN0KHZpc2libGVDb250ZW50c1JlY3QoKSk7
CisgICAgICAgICAgICBRUmVjdEYgY3VycmVudENvbnRlbnRSZWN0KG1fdmlld3BvcnRJdGVtLT5t
YXBSZWN0VG9XZWJDb250ZW50KHZpZXdwb3J0UmVjdCkpOwogICAgICAgICAgICAgUVJlY3RGIHRh
cmdldEludGVyc2VjdGlvbiA9IGVuZFZpc2libGVDb250ZW50UmVjdC5pbnRlcnNlY3RlZCh0YXJn
ZXRBcmVhKTsKICAgICAgICAgICAgIGlmICghY3VycmVudENvbnRlbnRSZWN0LmNvbnRhaW5zKHRh
cmdldEludGVyc2VjdGlvbikKICAgICAgICAgICAgICAgICAgICAgJiYgKHFBYnMoZW5kVmlzaWJs
ZUNvbnRlbnRSZWN0LnRvcCgpIC0gY3VycmVudENvbnRlbnRSZWN0LnRvcCgpKSA+PSA0MApAQCAt
Mjc0LDE4ICsyNzQsMTggQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6Onpv
b21Ub0FyZWFHZXN0dXJlRW5kZWQoY29uc3QgUVBvaW50RiYgdG91Y2gKIAogICAgIHN3aXRjaCAo
em9vbUFjdGlvbikgewogICAgIGNhc2UgWm9vbUluOgotICAgICAgICBtX3NjYWxlU3RhY2suYXBw
ZW5kKFNjYWxlU3RhY2tJdGVtKGN1cnJlbnRTY2FsZSwgbV92aWV3cG9ydEl0ZW0tPmNvbnRlbnRQ
b3MoKS54KCkpKTsKKyAgICAgICAgbV9zY2FsZVN0YWNrLmFwcGVuZChTY2FsZVN0YWNrSXRlbShj
dXJyZW50U2NhbGUsIG1fdmlld3BvcnRJdGVtLT5jb250ZW50UG9zKCkueCgpIC8gY3VycmVudFNj
YWxlKSk7CiAgICAgICAgIG1fem9vbU91dFNjYWxlID0gdGFyZ2V0U2NhbGU7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgWm9vbUJhY2s6IHsKICAgICAgICAgU2NhbGVTdGFja0l0ZW0gbGFzdFNj
YWxlID0gbV9zY2FsZVN0YWNrLnRha2VMYXN0KCk7CiAgICAgICAgIHRhcmdldFNjYWxlID0gbGFz
dFNjYWxlLnNjYWxlOwogICAgICAgICAvLyBSZWNhbGN1bGF0ZSBlbmRQb3NpdGlvbiBhbmQgYm91
bmQgaXQgYWNjb3JkaW5nIHRvIG5ldyBzY2FsZS4KLSAgICAgICAgZW5kUG9zaXRpb24uc2V0WSho
b3RzcG90LnkoKSAqIHRhcmdldFNjYWxlIC0gdmlld3BvcnRIb3RzcG90LnkoKSk7CisgICAgICAg
IGVuZFBvc2l0aW9uLnNldFkoaG90c3BvdC55KCkgLSB2aWV3cG9ydEhvdHNwb3QueSgpIC8gdGFy
Z2V0U2NhbGUpOwogICAgICAgICBlbmRQb3NpdGlvbi5zZXRYKGxhc3RTY2FsZS54UG9zaXRpb24p
OwotICAgICAgICBlbmRQb3NSYW5nZSA9IG1fY29udHJvbGxlci0+cG9zaXRpb25SYW5nZUZvckNv
bnRlbnRBdFNjYWxlKHRhcmdldFNjYWxlKTsKKyAgICAgICAgZW5kUG9zUmFuZ2UgPSBtX2NvbnRy
b2xsZXItPnBvc2l0aW9uUmFuZ2VGb3JWaWV3cG9ydEF0U2NhbGUodGFyZ2V0U2NhbGUpOwogICAg
ICAgICBlbmRQb3NpdGlvbiA9IGJvdW5kUG9zaXRpb24oZW5kUG9zUmFuZ2UudG9wTGVmdCgpLCBl
bmRQb3NpdGlvbiwgZW5kUG9zUmFuZ2UuYm90dG9tUmlnaHQoKSk7Ci0gICAgICAgIGVuZFZpc2li
bGVDb250ZW50UmVjdCA9IFFSZWN0RihlbmRQb3NpdGlvbiAvIHRhcmdldFNjYWxlLCB2aWV3cG9y
dFJlY3Quc2l6ZSgpIC8gdGFyZ2V0U2NhbGUpOworICAgICAgICBlbmRWaXNpYmxlQ29udGVudFJl
Y3QgPSBRUmVjdEYoZW5kUG9zaXRpb24sIHZpZXdwb3J0UmVjdC5zaXplKCkgLyB0YXJnZXRTY2Fs
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFpvb21PdXQ6CkBAIC0zMDcsMTkg
KzMwNywxOCBAQCBRUmVjdEYgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpuZWFyZXN0
VmFsaWRWaXNpYmxlQ29udGVudHNSZWN0KCkgY29uc3QKIAogICAgIGNvbnN0IFFSZWN0RiB2aWV3
cG9ydFJlY3QgPSBtX3ZpZXdwb3J0SXRlbS0+Ym91bmRpbmdSZWN0KCk7CiAgICAgUVBvaW50RiB2
aWV3cG9ydEhvdHNwb3QgPSB2aWV3cG9ydFJlY3QuY2VudGVyKCk7Ci0gICAgUVBvaW50RiBlbmRQ
b3NpdGlvbiA9IG1fdmlld3BvcnRJdGVtLT5tYXBUb1dlYkNvbnRlbnQodmlld3BvcnRIb3RzcG90
KSAqIHRhcmdldFNjYWxlIC0gdmlld3BvcnRIb3RzcG90OworICAgIC8vIEtlZXAgdGhlIGNlbnRl
ciBhdCB0aGUgcG9zaXRpb24gb2YgdGhlIG9sZCBjZW50ZXIsIGFuZCBzdWJzdHJhY3Qgdmlld3Bv
cnRIb3RzcG90IC8gdGFyZ2V0U2NhbGUgdG8gZ2V0IHRoZSB0b3AgbGVmdCBwb3NpdGlvbi4KKyAg
ICBRUG9pbnRGIGVuZFBvc2l0aW9uID0gbV92aWV3cG9ydEl0ZW0tPm1hcFRvV2ViQ29udGVudCh2
aWV3cG9ydEhvdHNwb3QpIC0gdmlld3BvcnRIb3RzcG90IC8gdGFyZ2V0U2NhbGU7CiAKLSAgICBG
bG9hdFJlY3QgZW5kUG9zUmFuZ2UgPSBtX2NvbnRyb2xsZXItPnBvc2l0aW9uUmFuZ2VGb3JDb250
ZW50QXRTY2FsZSh0YXJnZXRTY2FsZSk7CisgICAgRmxvYXRSZWN0IGVuZFBvc1JhbmdlID0gbV9j
b250cm9sbGVyLT5wb3NpdGlvblJhbmdlRm9yVmlld3BvcnRBdFNjYWxlKHRhcmdldFNjYWxlKTsK
ICAgICBlbmRQb3NpdGlvbiA9IGJvdW5kUG9zaXRpb24oZW5kUG9zUmFuZ2UubWluWE1pbllDb3Ju
ZXIoKSwgZW5kUG9zaXRpb24sIGVuZFBvc1JhbmdlLm1heFhNYXhZQ29ybmVyKCkpOwogCi0gICAg
UVJlY3RGIGVuZFZpc2libGVDb250ZW50UmVjdChlbmRQb3NpdGlvbiAvIHRhcmdldFNjYWxlLCB2
aWV3cG9ydFJlY3Quc2l6ZSgpIC8gdGFyZ2V0U2NhbGUpOwotCi0gICAgcmV0dXJuIGVuZFZpc2li
bGVDb250ZW50UmVjdDsKKyAgICByZXR1cm4gUVJlY3RGKGVuZFBvc2l0aW9uLCB2aWV3cG9ydFJl
Y3Quc2l6ZSgpIC8gdGFyZ2V0U2NhbGUpOwogfQogCi12b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRRdDo6c2V0Q29udGVudHNQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBv
aW50KQordm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnNldFZpZXdwb3J0UG9z
aXRpb24oY29uc3QgRmxvYXRQb2ludCYgY29udGVudHNQb2ludCkKIHsKLSAgICBRUG9pbnRGIG5l
d1Bvc2l0aW9uKG1fcGFnZUl0ZW0tPnBvcygpICsgUVBvaW50Rihsb2NhbFBvaW50KSk7CisgICAg
UVBvaW50RiBuZXdQb3NpdGlvbigobV9wYWdlSXRlbS0+cG9zKCkgKyBRUG9pbnRGKGNvbnRlbnRz
UG9pbnQpKSAqIG1fcGFnZUl0ZW0tPmNvbnRlbnRzU2NhbGUoKSk7CiAgICAgbV92aWV3cG9ydEl0
ZW0tPnNldENvbnRlbnRQb3MobmV3UG9zaXRpb24pOwogICAgIHVwZGF0ZVZpZXdwb3J0Q29udHJv
bGxlcigpOwogfQpAQCAtNDc4LDEyICs0NzcsNiBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXJDbGllbnRRdDo6cGluY2hHZXN0dXJlQ2FuY2VsbGVkKCkKICAgICBtX3NjYWxlVXBkYXRlRGVm
ZXJyZXIucmVzZXQoKTsKIH0KIAotUVJlY3RGIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRR
dDo6dmlzaWJsZUNvbnRlbnRzUmVjdCgpIGNvbnN0Ci17Ci0gICAgY29uc3QgUVJlY3RGIHZpc2li
bGVSZWN0KG1fdmlld3BvcnRJdGVtLT5ib3VuZGluZ1JlY3QoKS5pbnRlcnNlY3RlZChtX3BhZ2VJ
dGVtLT5ib3VuZGluZ1JlY3QoKSkpOwotICAgIHJldHVybiBtX3ZpZXdwb3J0SXRlbS0+bWFwUmVj
dFRvV2ViQ29udGVudCh2aXNpYmxlUmVjdCk7Ci19Ci0KIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OjpkaWRDaGFuZ2VDb250ZW50c1NpemUoKQogewogICAgIC8vIEVtaXQgZm9y
IHRlc3RpbmcgcHVycG9zZXMsIHNvIHRoYXQgaXQgY2FuIGJlIHZlcmlmaWVkIHRoYXQKQEAgLTUx
Nyw5ICs1MTAsOSBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6ZGlkQ2hh
bmdlVmlld3BvcnRBdHRyaWJ1dGVzKCkKIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50UXQ6OnVwZGF0ZVZpZXdwb3J0Q29udHJvbGxlcihjb25zdCBRUG9pbnRGJiB0cmFqZWN0b3J5
LCBxcmVhbCBzY2FsZSkKIHsKLSAgICBGbG9hdFJlY3QgY3VycmVudFZpc2libGVSZWN0KHZpc2li
bGVDb250ZW50c1JlY3QoKSk7Ci0gICAgZmxvYXQgdmlld3BvcnRTY2FsZSA9IChzY2FsZSA8IDAp
ID8gdmlld3BvcnRTY2FsZUZvclJlY3QoY3VycmVudFZpc2libGVSZWN0KSA6IHNjYWxlOwotICAg
IG1fY29udHJvbGxlci0+c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjdXJyZW50VmlzaWJsZVJlY3Qs
IHZpZXdwb3J0U2NhbGUsIHRyYWplY3RvcnkpOworICAgIEZsb2F0UG9pbnQgdmlld3BvcnRQb3Mg
PSBtX3ZpZXdwb3J0SXRlbS0+bWFwVG9XZWJDb250ZW50KFFQb2ludEYoKSk7CisgICAgZmxvYXQg
dmlld3BvcnRTY2FsZSA9IChzY2FsZSA8IDApID8gbV9wYWdlSXRlbS0+Y29udGVudHNTY2FsZSgp
IDogc2NhbGU7CisgICAgbV9jb250cm9sbGVyLT5kaWRDaGFuZ2VDb250ZW50c1Zpc2liaWxpdHko
dmlld3BvcnRQb3MsIHZpZXdwb3J0U2NhbGUsIHRyYWplY3RvcnkpOwogfQogCiB2b2lkIFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6c2NhbGVDb250ZW50KHFyZWFsIGl0ZW1TY2FsZSwg
Y29uc3QgUVBvaW50RiYgY2VudGVySW5DU1NDb29yZGluYXRlcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
UXQuaAppbmRleCAxOWIyN2FlOWVjNWMxZGUxZDgzNTRiZWM2OGVlYjI5OGFmZjNkMjc3Li5iZDBl
MTczMWJkZWI5MDMzMWVkNzIyMDdiYzc3ZWE2NmZjNzA0YmYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnRRdC5oCkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoKICAgICBQYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50UXQoUVF1aWNrV2ViVmlldyosIFFRdWlja1dlYlBhZ2UqKTsKICAgICB+UGFnZVZp
ZXdwb3J0Q29udHJvbGxlckNsaWVudFF0KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhbFBvaW50KTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNTY2FsZShmbG9hdCBsb2NhbFNjYWxlLCBib29sIHRyZWF0
QXNJbml0aWFsVmFsdWUpOworICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3cG9ydFBvc2l0aW9uKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGNvbnRlbnRzUG9pbnQpOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb250ZW50c1NjYWxlKGZsb2F0IHNjYWxlLCBib29sIHRyZWF0QXNJbml0aWFsVmFsdWUp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc3VtZUNvbnRlbnQoKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKCk7CkBAIC0xMjEsNyArMTIxLDYgQEAgcHJpdmF0ZToK
ICAgICBRUXVpY2tXZWJQYWdlKiBjb25zdCBtX3BhZ2VJdGVtOwogCiAgICAgZmxvYXQgdmlld3Bv
cnRTY2FsZUZvclJlY3QoY29uc3QgUVJlY3RGJikgY29uc3Q7Ci0gICAgUVJlY3RGIHZpc2libGVD
b250ZW50c1JlY3QoKSBjb25zdDsKICAgICBRUmVjdEYgbmVhcmVzdFZhbGlkVmlzaWJsZUNvbnRl
bnRzUmVjdCgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRDb250ZW50c1JlY3RUb05lYXJlc3RWYWxp
ZEJvdW5kcygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165620</attachid>
            <date>2012-09-25 08:53:15 -0700</date>
            <delta_ts>2012-09-25 09:14:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97220-20120925175234.patch</filename>
            <type>text/plain</type>
            <size>18481</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzkyN2E3MzNjZTEyMjE2
NGRmNTU1ODI4YWZmMzU4ODczNzNkNjNlOC4uZjQ0ZjE4YmJhODg1N2ZlYmEzMGZlOTFmNWVhNWFk
M2U4ZDk2YzRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDEyLTA5LTIwICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKKyAgICAgICAgW1F0
XSBVbmlmeSB0aGUgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjwtPkNsaWVudCBpbnRlcmZhY2UgcmVn
YXJkaW5nIHBvc2l0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTcyMjAKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlz
dGlhbnNlbi4KKworICAgICAgICAtIE1ha2Ugc3VyZSB0aGF0IGNzcyB1bml0cyBhcmUgdXNlZCBm
b3IgYWxsIHBvc2l0aW9uIGFyZ3VtZW50cworICAgICAgICAtIE1ha2Ugc3VyZSB0aGF0IGFsbCBw
b3NpdGlvbnMgcmVwcmVzZW50IHRoZSB2aWV3cG9ydCByZWxhdGl2ZWx5IHRvIHRoZSBjb250ZW50
cworICAgICAgICAgIHJhdGhlciB0aGFuIHRoZSBvdGhlciB3YXkgYXJvdW5kCisgICAgICAgIC0g
RGVsYXkgY2xhbXBpbmcgdGhlIHZpZXdwb3J0IHRvIHRoZSBjb250ZW50cyBzaXplIGluIHRoZSBj
b250cm9sbGVyIHJhdGhlciB0aGFuIGluIHRoZSBjbGllbnQKKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3RmxpY2th
YmxlUHJpdmF0ZTo6dXBkYXRlVmlld3BvcnRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFn
ZVZpZXdwb3J0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENv
bnRyb2xsZXI6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVZp
ZXdwb3J0Q29udHJvbGxlcjo6ZGlkQ2hhbmdlVmlld3BvcnRTaXplKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6ZGlkQ2hhbmdlQ29udGVudHNWaXNpYmlsaXR5KToK
KyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6c3luY1Zpc2libGVDb250
ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnBvc2l0aW9u
UmFuZ2VGb3JWaWV3cG9ydEF0U2NhbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlVmlld3Bv
cnRDb250cm9sbGVyLmg6CisgICAgICAgIChQYWdlVmlld3BvcnRDb250cm9sbGVyKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudC5oOgorICAgICAgICAo
UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1Bh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6YW5pbWF0ZUNvbnRlbnRSZWN0VmlzaWJsZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6Zm9jdXNFZGl0
YWJsZUFyZWEpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
UXQ6Onpvb21Ub0FyZWFHZXN0dXJlRW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50UXQ6Om5lYXJlc3RWYWxpZFZpc2libGVDb250ZW50c1JlY3QpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OnNldFZpZXdw
b3J0UG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50UXQ6OnVwZGF0ZVZpZXdwb3J0Q29udHJvbGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL3F0
L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5oOgorICAgICAgICAoUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudFF0KToKKworMjAxMi0wOS0yMCAgSm9jZWx5biBUdXJjb3R0ZSAgPGpv
Y2VseW4udHVyY290dGVAZGlnaWEuY29tPgorCiAgICAgICAgIFtRdF0gTWFrZSBzdXJlIHRoYXQg
ZGVza3RvcCBwYWdlcyBob25vdXIgdGhlIGRldmljZVBpeGVsUmF0aW8KICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MjE1CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCmluZGV4IDkzMDZkNDI0
OTNiYjkzNWVlOTdmYjEwZTM1ODViYWRiNzJiNDExNTUuLmI3OGNhZTBmM2VkYjkxMmJlZjAyYzE3
ZjNhNjJlOGFkODY1ZTU2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtODY4LDcgKzg2OCw3IEBAIHZvaWQgUVF1aWNrV2Vi
Vmlld0ZsaWNrYWJsZVByaXZhdGU6OnVwZGF0ZVZpZXdwb3J0U2l6ZSgpCiAgICAgUV9RKFFRdWlj
a1dlYlZpZXcpOwogCiAgICAgaWYgKG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlcikKLSAgICAgICAg
bV9wYWdlVmlld3BvcnRDb250cm9sbGVyLT5zZXRWaWV3cG9ydFNpemUoUVNpemVGKHEtPndpZHRo
KCksIHEtPmhlaWdodCgpKSk7CisgICAgICAgIG1fcGFnZVZpZXdwb3J0Q29udHJvbGxlci0+ZGlk
Q2hhbmdlVmlld3BvcnRTaXplKFFTaXplRihxLT53aWR0aCgpLCBxLT5oZWlnaHQoKSkpOwogfQog
CiB2b2lkIFFRdWlja1dlYlZpZXdGbGlja2FibGVQcml2YXRlOjpwYWdlRGlkUmVxdWVzdFNjcm9s
bChjb25zdCBRUG9pbnQmIHBvcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
YWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAppbmRleCBlZTYxNWE2ZTE5M2U3MGU2NDZmMGQyNWE0
YTQ0NjlmODBhYjFjZmMwLi4wYWU1ZDJmYzY3NzM0ZGVkMjllN2YwNzlkZmE0YmE1NTc1NTUxZmJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRy
b2xsZXIuY3BwCkBAIC0xMjgsMTUgKzEyOCwxMyBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXI6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IEludFBvaW50JiBjc3NQb3NpdGlvbikKICAg
ICBpZiAobV9hY3RpdmVEZWZlcnJlckNvdW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9h
dFJlY3QgZW5kUG9zUmFuZ2UgPSBwb3NpdGlvblJhbmdlRm9yQ29udGVudEF0U2NhbGUobV9lZmZl
Y3RpdmVTY2FsZSk7Ci0gICAgRmxvYXRQb2ludCBlbmRQb3NpdGlvbihjc3NQb3NpdGlvbik7Ci0g
ICAgZW5kUG9zaXRpb24uc2NhbGUobV9lZmZlY3RpdmVTY2FsZSwgbV9lZmZlY3RpdmVTY2FsZSk7
Ci0gICAgZW5kUG9zaXRpb24gPSBib3VuZFBvc2l0aW9uKGVuZFBvc1JhbmdlLm1pblhNaW5ZQ29y
bmVyKCksIGVuZFBvc2l0aW9uLCBlbmRQb3NSYW5nZS5tYXhYTWF4WUNvcm5lcigpKTsKKyAgICBG
bG9hdFJlY3QgZW5kUG9zUmFuZ2UgPSBwb3NpdGlvblJhbmdlRm9yVmlld3BvcnRBdFNjYWxlKG1f
ZWZmZWN0aXZlU2NhbGUpOworICAgIEZsb2F0UG9pbnQgZW5kUG9zaXRpb24gPSBib3VuZFBvc2l0
aW9uKGVuZFBvc1JhbmdlLm1pblhNaW5ZQ29ybmVyKCksIGNzc1Bvc2l0aW9uLCBlbmRQb3NSYW5n
ZS5tYXhYTWF4WUNvcm5lcigpKTsKIAotICAgIG1fY2xpZW50LT5zZXRDb250ZW50c1Bvc2l0aW9u
KGVuZFBvc2l0aW9uKTsKKyAgICBtX2NsaWVudC0+c2V0Vmlld3BvcnRQb3NpdGlvbihlbmRQb3Np
dGlvbik7CiB9CiAKLXZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6c2V0Vmlld3BvcnRTaXpl
KGNvbnN0IEZsb2F0U2l6ZSYgbmV3U2l6ZSkKK3ZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6
ZGlkQ2hhbmdlVmlld3BvcnRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgbmV3U2l6ZSkKIHsKICAgICBp
ZiAobmV3U2l6ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE1MCw5ICsxNDgsOSBA
QCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnNldFZpZXdwb3J0U2l6ZShjb25zdCBGbG9h
dFNpemUmIG5ld1NpemUpCiAgICAgc3luY1Zpc2libGVDb250ZW50cygpOwogfQogCi12b2lkIFBh
Z2VWaWV3cG9ydENvbnRyb2xsZXI6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRS
ZWN0JiB2aXNpYmxlQ29udGVudHNSZWN0LCBmbG9hdCB2aWV3cG9ydFNjYWxlLCBjb25zdCBGbG9h
dFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQordm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyOjpk
aWRDaGFuZ2VDb250ZW50c1Zpc2liaWxpdHkoY29uc3QgRmxvYXRQb2ludCYgdmlld3BvcnRQb3Ms
IGZsb2F0IHZpZXdwb3J0U2NhbGUsIGNvbnN0IEZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3Ip
CiB7Ci0gICAgbV92aXNpYmxlQ29udGVudHNSZWN0ID0gdmlzaWJsZUNvbnRlbnRzUmVjdDsKKyAg
ICBtX3ZpZXdwb3J0UG9zID0gdmlld3BvcnRQb3M7CiAgICAgbV9lZmZlY3RpdmVTY2FsZSA9IHZp
ZXdwb3J0U2NhbGU7CiAgICAgc3luY1Zpc2libGVDb250ZW50cyh0cmFqZWN0b3J5VmVjdG9yKTsK
IH0KQEAgLTE2MCwxMCArMTU4LDE1IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlcjo6c2V0
VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHZpc2libGVDb250CiB2b2lkIFBh
Z2VWaWV3cG9ydENvbnRyb2xsZXI6OnN5bmNWaXNpYmxlQ29udGVudHMoY29uc3QgRmxvYXRQb2lu
dCYgdHJhamVjdG9yeVZlY3RvcikKIHsKICAgICBEcmF3aW5nQXJlYVByb3h5KiBjb25zdCBkcmF3
aW5nQXJlYSA9IG1fd2ViUGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpOwotICAgIGlmICghZHJhd2lu
Z0FyZWEgfHwgbV92aWV3cG9ydFNpemUuaXNFbXB0eSgpIHx8IG1fY29udGVudHNTaXplLmlzRW1w
dHkoKSB8fCBtX3Zpc2libGVDb250ZW50c1JlY3QuaXNFbXB0eSgpKQorICAgIGlmICghZHJhd2lu
Z0FyZWEgfHwgbV92aWV3cG9ydFNpemUuaXNFbXB0eSgpIHx8IG1fY29udGVudHNTaXplLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZHJhd2luZ0FyZWEtPnNldFZpc2libGVDb250
ZW50c1JlY3QobV92aXNpYmxlQ29udGVudHNSZWN0LCBtX2VmZmVjdGl2ZVNjYWxlLCB0cmFqZWN0
b3J5VmVjdG9yKTsKKyAgICBGbG9hdFJlY3QgZW5kUG9zUmFuZ2UgPSBwb3NpdGlvblJhbmdlRm9y
Vmlld3BvcnRBdFNjYWxlKG1fZWZmZWN0aXZlU2NhbGUpOworICAgIEZsb2F0UG9pbnQgZW5kUG9z
aXRpb24gPSBib3VuZFBvc2l0aW9uKGVuZFBvc1JhbmdlLm1pblhNaW5ZQ29ybmVyKCksIG1fdmll
d3BvcnRQb3MsIGVuZFBvc1JhbmdlLm1heFhNYXhZQ29ybmVyKCkpOworCisgICAgRmxvYXRSZWN0
IHZpc2libGVDb250ZW50c1JlY3QoZW5kUG9zaXRpb24sIG1fdmlld3BvcnRTaXplIC8gbV9lZmZl
Y3RpdmVTY2FsZSk7CisgICAgdmlzaWJsZUNvbnRlbnRzUmVjdC5pbnRlcnNlY3QoRmxvYXRSZWN0
KEZsb2F0UG9pbnQ6Onplcm8oKSwgbV9jb250ZW50c1NpemUpKTsKKyAgICBkcmF3aW5nQXJlYS0+
c2V0VmlzaWJsZUNvbnRlbnRzUmVjdCh2aXNpYmxlQ29udGVudHNSZWN0LCBtX2VmZmVjdGl2ZVNj
YWxlLCB0cmFqZWN0b3J5VmVjdG9yKTsKIAogICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VWaXNpYmxl
Q29udGVudHMoKTsKIH0KQEAgLTIyMiwxMiArMjI1LDEwIEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29u
dHJvbGxlcjo6dXBkYXRlTWluaW11bVNjYWxlVG9GaXQoKQogICAgIH0KIH0KIAotRmxvYXRSZWN0
IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXI6OnBvc2l0aW9uUmFuZ2VGb3JDb250ZW50QXRTY2FsZShm
bG9hdCB2aWV3cG9ydFNjYWxlKSBjb25zdAorRmxvYXRSZWN0IFBhZ2VWaWV3cG9ydENvbnRyb2xs
ZXI6OnBvc2l0aW9uUmFuZ2VGb3JWaWV3cG9ydEF0U2NhbGUoZmxvYXQgdmlld3BvcnRTY2FsZSkg
Y29uc3QKIHsKLSAgICBjb25zdCBGbG9hdFNpemUgY29udGVudFNpemUgPSBtX2NvbnRlbnRzU2l6
ZSAqIHZpZXdwb3J0U2NhbGU7Ci0KLSAgICBjb25zdCBmbG9hdCBob3Jpem9udGFsUmFuZ2UgPSBj
b250ZW50U2l6ZS53aWR0aCgpIC0gbV92aWV3cG9ydFNpemUud2lkdGgoKTsKLSAgICBjb25zdCBm
bG9hdCB2ZXJ0aWNhbFJhbmdlID0gY29udGVudFNpemUuaGVpZ2h0KCkgLSBtX3ZpZXdwb3J0U2l6
ZS5oZWlnaHQoKTsKKyAgICBjb25zdCBmbG9hdCBob3Jpem9udGFsUmFuZ2UgPSBtX2NvbnRlbnRz
U2l6ZS53aWR0aCgpIC0gbV92aWV3cG9ydFNpemUud2lkdGgoKSAvIHZpZXdwb3J0U2NhbGU7Cisg
ICAgY29uc3QgZmxvYXQgdmVydGljYWxSYW5nZSA9IG1fY29udGVudHNTaXplLmhlaWdodCgpIC0g
bV92aWV3cG9ydFNpemUuaGVpZ2h0KCkgLyB2aWV3cG9ydFNjYWxlOwogCiAgICAgcmV0dXJuIEZs
b2F0UmVjdCgwLCAwLCBob3Jpem9udGFsUmFuZ2UsIHZlcnRpY2FsUmFuZ2UpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmgKaW5kZXgg
MWQ3Mzc4NGYzMDk3Yjg1MzhhNDgwZjJkZjVjMjQ0YjZkMDc4YWI0MS4uZDdmYjNhMDgwOTlhNWM2
NTcyNmZiNTc0NjU1OWFkYzhiMDEyM2FlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5oCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHN1c3BlbmRDb250ZW50KCk7CiAgICAgdm9pZCByZXN1bWVDb250ZW50KCk7CiAK
LSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgcG9zaXRpb25SYW5nZUZvckNvbnRlbnRBdFNjYWxlKGZs
b2F0IHZpZXdwb3J0U2NhbGUpIGNvbnN0OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBwb3NpdGlv
blJhbmdlRm9yVmlld3BvcnRBdFNjYWxlKGZsb2F0IHZpZXdwb3J0U2NhbGUpIGNvbnN0OwogCiAg
ICAgZmxvYXQgaW5uZXJCb3VuZGVkVmlld3BvcnRTY2FsZShmbG9hdCkgY29uc3Q7CiAgICAgZmxv
YXQgb3V0ZXJCb3VuZGVkVmlld3BvcnRTY2FsZShmbG9hdCkgY29uc3Q7CkBAIC05MSw5ICs5MSw5
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0SGFkVXNlckludGVyYWN0aW9uKGJvb2wgZGlkVXNl
ckludGVyYWN0KSB7IG1faGFkVXNlckludGVyYWN0aW9uID0gZGlkVXNlckludGVyYWN0OyB9CiAK
LSAgICAvLyBOb3RpZmljYXRpb25zIHRvIHRoZSBXZWJQcm9jZXNzLgotICAgIHZvaWQgc2V0Vmll
d3BvcnRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbmV3U2l6ZSk7Ci0gICAgdm9pZCBz
ZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlzaWJsZUNv
bnRlbnRzUmVjdCwgZmxvYXQgdmlld3BvcnRTY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgdHJhamVjdG9yeVZlY3RvciA9IFdlYkNvcmU6OkZsb2F0UG9pbnQ6Onplcm8oKSk7CisgICAg
Ly8gTm90aWZpY2F0aW9ucyBmcm9tIHRoZSB2aWV3cG9ydC4KKyAgICB2b2lkIGRpZENoYW5nZVZp
ZXdwb3J0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG5ld1NpemUpOworICAgIHZvaWQg
ZGlkQ2hhbmdlQ29udGVudHNWaXNpYmlsaXR5KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHZp
ZXdwb3J0UG9zLCBmbG9hdCB2aWV3cG9ydFNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiB0cmFqZWN0b3J5VmVjdG9yID0gV2ViQ29yZTo6RmxvYXRQb2ludDo6emVybygpKTsKIAogICAg
IC8vIE5vdGlmaWNhdGlvbnMgZnJvbSB0aGUgV2ViUHJvY2Vzcy4KICAgICB2b2lkIGRpZENoYW5n
ZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdTaXplKTsKQEAgLTExOCw5
ICsxMTgsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNTdXNwZW5kZWRDb250ZW50OwogICAg
IGJvb2wgbV9oYWRVc2VySW50ZXJhY3Rpb247CiAKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IG1f
dmlld3BvcnRQb3M7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fdmlld3BvcnRTaXplOwogICAg
IFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2NvbnRlbnRzU2l6ZTsKLSAgICBXZWJDb3JlOjpGbG9hdFJl
Y3QgbV92aXNpYmxlQ29udGVudHNSZWN0OwogICAgIGZsb2F0IG1fZWZmZWN0aXZlU2NhbGU7IC8v
IFNob3VsZCBhbHdheXMgYmUgY3NzU2NhbGUgKiBkZXZpY2VQaXhlbFJhdGlvLgogCiAgICAgZnJp
ZW5kIGNsYXNzIFZpZXdwb3J0VXBkYXRlRGVmZXJyZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQuaAppbmRleCA2YTUw
YjQyMTc5MzYwMTRjNTQwMzg2MzAzMzM0ODk2MGNjZWVmMmEyLi4zZDkxYjlhYWM3ZmU1N2FjYWVm
YWUyOWQwZDgwYTBlYWJkMzE1OTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50LmgKQEAgLTMzLDggKzMzLDggQEAg
cHVibGljOgogICAgIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnQoKSB7IH0KICAgICB2aXJ0
dWFsIH5QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50KCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29udGVudHNQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhbFBv
aW50KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQgbG9jYWxT
Y2FsZSwgYm9vbCB0cmVhdEFzSW5pdGlhbFZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dFZpZXdwb3J0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgY29udGVudHNQb2lu
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1NjYWxlKGZsb2F0LCBib29sIHRy
ZWF0QXNJbml0aWFsVmFsdWUpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN1bWVDb250
ZW50KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29u
dHJvbGxlckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmll
d3BvcnRDb250cm9sbGVyQ2xpZW50UXQuY3BwCmluZGV4IDYyZjFlZDVhZjRhOTk0NjQ3NGE3ODk2
MDE0MWUxMzAxMmE2ZjUxN2UuLjNiOWY2NjZlMDJjMDQyYTExMDUxNjg3NzI1MzIzZWY4ZDBmMGI3
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRD
b250cm9sbGVyQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9Q
YWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9p
ZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6OmFuaW1hdGVDb250ZW50UmVjdFZpc2li
bGUoY29uc3QgUVJlY3RGJiBjb24KIAogICAgIC8vIEluZm9ybSB0aGUgd2ViIHByb2Nlc3MgYWJv
dXQgdGhlIHJlcXVlc3RlZCB2aXNpYmxlIGNvbnRlbnQgcmVjdCBpbW1lZGlhdGVseSBzbyB0aGF0
IG5ldyB0aWxlcwogICAgIC8vIGFyZSByZW5kZXJlZCBhdCB0aGUgZmluYWwgZGVzdGluYXRpb24g
ZHVyaW5nIHRoZSBhbmltYXRpb24uCi0gICAgbV9jb250cm9sbGVyLT5zZXRWaXNpYmxlQ29udGVu
dHNSZWN0KGNvbnRlbnRSZWN0LCB2aWV3cG9ydFNjYWxlRm9yUmVjdChjb250ZW50UmVjdCkpOwor
ICAgIG1fY29udHJvbGxlci0+ZGlkQ2hhbmdlQ29udGVudHNWaXNpYmlsaXR5KGNvbnRlbnRSZWN0
LnRvcExlZnQoKSwgdmlld3BvcnRTY2FsZUZvclJlY3QoY29udGVudFJlY3QpKTsKIAogICAgIC8v
IFNpbmNlIHdlIGhhdmUgdG8gYW5pbWF0ZSBzY2FsZSBhbmQgcG9zaXRpb24gYXQgdGhlIHNhbWUg
dGltZSB0aGUgc2NhbGUgYW5pbWF0aW9uIGludGVycG9sYXRlcwogICAgIC8vIGZyb20gdGhlIGN1
cnJlbnQgdmlld3BvcnQgcmVjdCBpbiBjb250ZW50IGNvb3JkaW5hdGVzIHRvIGEgdmlzaWJsZSBy
ZWN0IG9mIHRoZSBjb250ZW50LgpAQCAtMjA2LDEyICsyMDYsMTIgQEAgdm9pZCBQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50UXQ6OmZvY3VzRWRpdGFibGVBcmVhKGNvbnN0IFFSZWN0RiYgY2Fy
ZXRBcmVhLAogICAgIGNvbnN0IFFQb2ludEYgaG90c3BvdCA9IFFQb2ludEYodGFyZ2V0QXJlYS54
KCksIHRhcmdldEFyZWEuY2VudGVyKCkueSgpKTsKICAgICBjb25zdCBRUG9pbnRGIHZpZXdwb3J0
SG90c3BvdCA9IFFQb2ludEYoeCwgLyogRklYTUU6IHZpc2libGVDZW50ZXIgKi8gdmlld3BvcnRS
ZWN0LmNlbnRlcigpLnkoKSk7CiAKLSAgICBRUG9pbnRGIGVuZFBvc2l0aW9uID0gaG90c3BvdCAq
IHRhcmdldFNjYWxlIC0gdmlld3BvcnRIb3RzcG90OwotICAgIFFSZWN0RiBlbmRQb3NSYW5nZSA9
IG1fY29udHJvbGxlci0+cG9zaXRpb25SYW5nZUZvckNvbnRlbnRBdFNjYWxlKHRhcmdldFNjYWxl
KTsKKyAgICBRUG9pbnRGIGVuZFBvc2l0aW9uID0gaG90c3BvdCAtIHZpZXdwb3J0SG90c3BvdCAv
IHRhcmdldFNjYWxlOworICAgIFFSZWN0RiBlbmRQb3NSYW5nZSA9IG1fY29udHJvbGxlci0+cG9z
aXRpb25SYW5nZUZvclZpZXdwb3J0QXRTY2FsZSh0YXJnZXRTY2FsZSk7CiAKICAgICBlbmRQb3Np
dGlvbiA9IGJvdW5kUG9zaXRpb24oZW5kUG9zUmFuZ2UudG9wTGVmdCgpLCBlbmRQb3NpdGlvbiwg
ZW5kUG9zUmFuZ2UuYm90dG9tUmlnaHQoKSk7CiAKLSAgICBRUmVjdEYgZW5kVmlzaWJsZUNvbnRl
bnRSZWN0KGVuZFBvc2l0aW9uIC8gdGFyZ2V0U2NhbGUsIHZpZXdwb3J0UmVjdC5zaXplKCkgLyB0
YXJnZXRTY2FsZSk7CisgICAgUVJlY3RGIGVuZFZpc2libGVDb250ZW50UmVjdChlbmRQb3NpdGlv
biwgdmlld3BvcnRSZWN0LnNpemUoKSAvIHRhcmdldFNjYWxlKTsKIAogICAgIGFuaW1hdGVDb250
ZW50UmVjdFZpc2libGUoZW5kVmlzaWJsZUNvbnRlbnRSZWN0KTsKIH0KQEAgLTI0MywxMiArMjQz
LDEyIEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Ojp6b29tVG9BcmVhR2Vz
dHVyZUVuZGVkKGNvbnN0IFFQb2ludEYmIHRvdWNoCiAgICAgY29uc3QgUVBvaW50RiBob3RzcG90
ID0gUVBvaW50RihlbmRBcmVhLmNlbnRlcigpLngoKSwgdG91Y2hQb2ludC55KCkpOwogICAgIGNv
bnN0IFFQb2ludEYgdmlld3BvcnRIb3RzcG90ID0gdmlld3BvcnRSZWN0LmNlbnRlcigpOwogCi0g
ICAgUVBvaW50RiBlbmRQb3NpdGlvbiA9IGhvdHNwb3QgKiB0YXJnZXRTY2FsZSAtIHZpZXdwb3J0
SG90c3BvdDsKKyAgICBRUG9pbnRGIGVuZFBvc2l0aW9uID0gaG90c3BvdCAtIHZpZXdwb3J0SG90
c3BvdCAvIHRhcmdldFNjYWxlOwogCi0gICAgUVJlY3RGIGVuZFBvc1JhbmdlID0gbV9jb250cm9s
bGVyLT5wb3NpdGlvblJhbmdlRm9yQ29udGVudEF0U2NhbGUodGFyZ2V0U2NhbGUpOworICAgIFFS
ZWN0RiBlbmRQb3NSYW5nZSA9IG1fY29udHJvbGxlci0+cG9zaXRpb25SYW5nZUZvclZpZXdwb3J0
QXRTY2FsZSh0YXJnZXRTY2FsZSk7CiAgICAgZW5kUG9zaXRpb24gPSBib3VuZFBvc2l0aW9uKGVu
ZFBvc1JhbmdlLnRvcExlZnQoKSwgZW5kUG9zaXRpb24sIGVuZFBvc1JhbmdlLmJvdHRvbVJpZ2h0
KCkpOwogCi0gICAgUVJlY3RGIGVuZFZpc2libGVDb250ZW50UmVjdChlbmRQb3NpdGlvbiAvIHRh
cmdldFNjYWxlLCB2aWV3cG9ydFJlY3Quc2l6ZSgpIC8gdGFyZ2V0U2NhbGUpOworICAgIFFSZWN0
RiBlbmRWaXNpYmxlQ29udGVudFJlY3QoZW5kUG9zaXRpb24sIHZpZXdwb3J0UmVjdC5zaXplKCkg
LyB0YXJnZXRTY2FsZSk7CiAKICAgICBlbnVtIHsgWm9vbUluLCBab29tQmFjaywgWm9vbU91dCwg
Tm9ab29tIH0gem9vbUFjdGlvbiA9IFpvb21JbjsKIApAQCAtMjU4LDcgKzI1OCw3IEBAIHZvaWQg
UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0Ojp6b29tVG9BcmVhR2VzdHVyZUVuZGVkKGNv
bnN0IFFQb2ludEYmIHRvdWNoCiAgICAgICAgIC8vIFVzZSBmdXp6eSBjb21wYXJlIHdpdGggYSBm
aXhlZCBlcnJvciB0byBiZSBhYmxlIHRvIGRlYWwgd2l0aCBsYXJnaXNoIGRpZmZlcmVuY2VzIGR1
ZSB0byBwaXhlbCByb3VuZGluZy4KICAgICAgICAgaWYgKGZ1enp5Q29tcGFyZSh0YXJnZXRTY2Fs
ZSwgY3VycmVudFNjYWxlLCAwLjAxKSkgewogICAgICAgICAgICAgLy8gSWYgbW92aW5nIHRoZSB2
aWV3cG9ydCB3b3VsZCBleHBvc2UgbW9yZSBvZiB0aGUgdGFyZ2V0UmVjdCBhbmQgbW92ZSBhdCBs
ZWFzdCA0MCBwaXhlbHMsIHVwZGF0ZSBwb3NpdGlvbiBidXQgZG8gbm90IHNjYWxlIG91dC4KLSAg
ICAgICAgICAgIFFSZWN0RiBjdXJyZW50Q29udGVudFJlY3QodmlzaWJsZUNvbnRlbnRzUmVjdCgp
KTsKKyAgICAgICAgICAgIFFSZWN0RiBjdXJyZW50Q29udGVudFJlY3QobV92aWV3cG9ydEl0ZW0t
Pm1hcFJlY3RUb1dlYkNvbnRlbnQodmlld3BvcnRSZWN0KSk7CiAgICAgICAgICAgICBRUmVjdEYg
dGFyZ2V0SW50ZXJzZWN0aW9uID0gZW5kVmlzaWJsZUNvbnRlbnRSZWN0LmludGVyc2VjdGVkKHRh
cmdldEFyZWEpOwogICAgICAgICAgICAgaWYgKCFjdXJyZW50Q29udGVudFJlY3QuY29udGFpbnMo
dGFyZ2V0SW50ZXJzZWN0aW9uKQogICAgICAgICAgICAgICAgICAgICAmJiAocUFicyhlbmRWaXNp
YmxlQ29udGVudFJlY3QudG9wKCkgLSBjdXJyZW50Q29udGVudFJlY3QudG9wKCkpID49IDQwCkBA
IC0yNzQsMTggKzI3NCwxOCBAQCB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6
em9vbVRvQXJlYUdlc3R1cmVFbmRlZChjb25zdCBRUG9pbnRGJiB0b3VjaAogCiAgICAgc3dpdGNo
ICh6b29tQWN0aW9uKSB7CiAgICAgY2FzZSBab29tSW46Ci0gICAgICAgIG1fc2NhbGVTdGFjay5h
cHBlbmQoU2NhbGVTdGFja0l0ZW0oY3VycmVudFNjYWxlLCBtX3ZpZXdwb3J0SXRlbS0+Y29udGVu
dFBvcygpLngoKSkpOworICAgICAgICBtX3NjYWxlU3RhY2suYXBwZW5kKFNjYWxlU3RhY2tJdGVt
KGN1cnJlbnRTY2FsZSwgbV92aWV3cG9ydEl0ZW0tPmNvbnRlbnRQb3MoKS54KCkgLyBjdXJyZW50
U2NhbGUpKTsKICAgICAgICAgbV96b29tT3V0U2NhbGUgPSB0YXJnZXRTY2FsZTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBab29tQmFjazogewogICAgICAgICBTY2FsZVN0YWNrSXRlbSBsYXN0
U2NhbGUgPSBtX3NjYWxlU3RhY2sudGFrZUxhc3QoKTsKICAgICAgICAgdGFyZ2V0U2NhbGUgPSBs
YXN0U2NhbGUuc2NhbGU7CiAgICAgICAgIC8vIFJlY2FsY3VsYXRlIGVuZFBvc2l0aW9uIGFuZCBi
b3VuZCBpdCBhY2NvcmRpbmcgdG8gbmV3IHNjYWxlLgotICAgICAgICBlbmRQb3NpdGlvbi5zZXRZ
KGhvdHNwb3QueSgpICogdGFyZ2V0U2NhbGUgLSB2aWV3cG9ydEhvdHNwb3QueSgpKTsKKyAgICAg
ICAgZW5kUG9zaXRpb24uc2V0WShob3RzcG90LnkoKSAtIHZpZXdwb3J0SG90c3BvdC55KCkgLyB0
YXJnZXRTY2FsZSk7CiAgICAgICAgIGVuZFBvc2l0aW9uLnNldFgobGFzdFNjYWxlLnhQb3NpdGlv
bik7Ci0gICAgICAgIGVuZFBvc1JhbmdlID0gbV9jb250cm9sbGVyLT5wb3NpdGlvblJhbmdlRm9y
Q29udGVudEF0U2NhbGUodGFyZ2V0U2NhbGUpOworICAgICAgICBlbmRQb3NSYW5nZSA9IG1fY29u
dHJvbGxlci0+cG9zaXRpb25SYW5nZUZvclZpZXdwb3J0QXRTY2FsZSh0YXJnZXRTY2FsZSk7CiAg
ICAgICAgIGVuZFBvc2l0aW9uID0gYm91bmRQb3NpdGlvbihlbmRQb3NSYW5nZS50b3BMZWZ0KCks
IGVuZFBvc2l0aW9uLCBlbmRQb3NSYW5nZS5ib3R0b21SaWdodCgpKTsKLSAgICAgICAgZW5kVmlz
aWJsZUNvbnRlbnRSZWN0ID0gUVJlY3RGKGVuZFBvc2l0aW9uIC8gdGFyZ2V0U2NhbGUsIHZpZXdw
b3J0UmVjdC5zaXplKCkgLyB0YXJnZXRTY2FsZSk7CisgICAgICAgIGVuZFZpc2libGVDb250ZW50
UmVjdCA9IFFSZWN0RihlbmRQb3NpdGlvbiwgdmlld3BvcnRSZWN0LnNpemUoKSAvIHRhcmdldFNj
YWxlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgWm9vbU91dDoKQEAgLTMwNywx
OSArMzA3LDE4IEBAIFFSZWN0RiBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQ6Om5lYXJl
c3RWYWxpZFZpc2libGVDb250ZW50c1JlY3QoKSBjb25zdAogCiAgICAgY29uc3QgUVJlY3RGIHZp
ZXdwb3J0UmVjdCA9IG1fdmlld3BvcnRJdGVtLT5ib3VuZGluZ1JlY3QoKTsKICAgICBRUG9pbnRG
IHZpZXdwb3J0SG90c3BvdCA9IHZpZXdwb3J0UmVjdC5jZW50ZXIoKTsKLSAgICBRUG9pbnRGIGVu
ZFBvc2l0aW9uID0gbV92aWV3cG9ydEl0ZW0tPm1hcFRvV2ViQ29udGVudCh2aWV3cG9ydEhvdHNw
b3QpICogdGFyZ2V0U2NhbGUgLSB2aWV3cG9ydEhvdHNwb3Q7CisgICAgLy8gS2VlcCB0aGUgY2Vu
dGVyIGF0IHRoZSBwb3NpdGlvbiBvZiB0aGUgb2xkIGNlbnRlciwgYW5kIHN1YnN0cmFjdCB2aWV3
cG9ydEhvdHNwb3QgLyB0YXJnZXRTY2FsZSB0byBnZXQgdGhlIHRvcCBsZWZ0IHBvc2l0aW9uLgor
ICAgIFFQb2ludEYgZW5kUG9zaXRpb24gPSBtX3ZpZXdwb3J0SXRlbS0+bWFwVG9XZWJDb250ZW50
KHZpZXdwb3J0SG90c3BvdCkgLSB2aWV3cG9ydEhvdHNwb3QgLyB0YXJnZXRTY2FsZTsKIAotICAg
IEZsb2F0UmVjdCBlbmRQb3NSYW5nZSA9IG1fY29udHJvbGxlci0+cG9zaXRpb25SYW5nZUZvckNv
bnRlbnRBdFNjYWxlKHRhcmdldFNjYWxlKTsKKyAgICBGbG9hdFJlY3QgZW5kUG9zUmFuZ2UgPSBt
X2NvbnRyb2xsZXItPnBvc2l0aW9uUmFuZ2VGb3JWaWV3cG9ydEF0U2NhbGUodGFyZ2V0U2NhbGUp
OwogICAgIGVuZFBvc2l0aW9uID0gYm91bmRQb3NpdGlvbihlbmRQb3NSYW5nZS5taW5YTWluWUNv
cm5lcigpLCBlbmRQb3NpdGlvbiwgZW5kUG9zUmFuZ2UubWF4WE1heFlDb3JuZXIoKSk7CiAKLSAg
ICBRUmVjdEYgZW5kVmlzaWJsZUNvbnRlbnRSZWN0KGVuZFBvc2l0aW9uIC8gdGFyZ2V0U2NhbGUs
IHZpZXdwb3J0UmVjdC5zaXplKCkgLyB0YXJnZXRTY2FsZSk7Ci0KLSAgICByZXR1cm4gZW5kVmlz
aWJsZUNvbnRlbnRSZWN0OworICAgIHJldHVybiBRUmVjdEYoZW5kUG9zaXRpb24sIHZpZXdwb3J0
UmVjdC5zaXplKCkgLyB0YXJnZXRTY2FsZSk7CiB9CiAKLXZvaWQgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OjpzZXRDb250ZW50c1Bvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIGxvY2Fs
UG9pbnQpCit2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdDo6c2V0Vmlld3BvcnRQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBjb250ZW50c1BvaW50KQogewotICAgIFFQb2ludEYg
bmV3UG9zaXRpb24obV9wYWdlSXRlbS0+cG9zKCkgKyBRUG9pbnRGKGxvY2FsUG9pbnQpKTsKKyAg
ICBRUG9pbnRGIG5ld1Bvc2l0aW9uKChtX3BhZ2VJdGVtLT5wb3MoKSArIFFQb2ludEYoY29udGVu
dHNQb2ludCkpICogbV9wYWdlSXRlbS0+Y29udGVudHNTY2FsZSgpKTsKICAgICBtX3ZpZXdwb3J0
SXRlbS0+c2V0Q29udGVudFBvcyhuZXdQb3NpdGlvbik7CiAgICAgdXBkYXRlVmlld3BvcnRDb250
cm9sbGVyKCk7CiB9CkBAIC00NzgsMTIgKzQ3Nyw2IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OjpwaW5jaEdlc3R1cmVDYW5jZWxsZWQoKQogICAgIG1fc2NhbGVVcGRhdGVE
ZWZlcnJlci5yZXNldCgpOwogfQogCi1RUmVjdEYgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dFF0Ojp2aXNpYmxlQ29udGVudHNSZWN0KCkgY29uc3QKLXsKLSAgICBjb25zdCBRUmVjdEYgdmlz
aWJsZVJlY3QobV92aWV3cG9ydEl0ZW0tPmJvdW5kaW5nUmVjdCgpLmludGVyc2VjdGVkKG1fcGFn
ZUl0ZW0tPmJvdW5kaW5nUmVjdCgpKSk7Ci0gICAgcmV0dXJuIG1fdmlld3BvcnRJdGVtLT5tYXBS
ZWN0VG9XZWJDb250ZW50KHZpc2libGVSZWN0KTsKLX0KLQogdm9pZCBQYWdlVmlld3BvcnRDb250
cm9sbGVyQ2xpZW50UXQ6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZSgpCiB7CiAgICAgLy8gRW1pdCBm
b3IgdGVzdGluZyBwdXJwb3Nlcywgc28gdGhhdCBpdCBjYW4gYmUgdmVyaWZpZWQgdGhhdApAQCAt
NTE3LDkgKzUxMCw5IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpkaWRD
aGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoKQogCiB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJD
bGllbnRRdDo6dXBkYXRlVmlld3BvcnRDb250cm9sbGVyKGNvbnN0IFFQb2ludEYmIHRyYWplY3Rv
cnksIHFyZWFsIHNjYWxlKQogewotICAgIEZsb2F0UmVjdCBjdXJyZW50VmlzaWJsZVJlY3Qodmlz
aWJsZUNvbnRlbnRzUmVjdCgpKTsKLSAgICBmbG9hdCB2aWV3cG9ydFNjYWxlID0gKHNjYWxlIDwg
MCkgPyB2aWV3cG9ydFNjYWxlRm9yUmVjdChjdXJyZW50VmlzaWJsZVJlY3QpIDogc2NhbGU7Ci0g
ICAgbV9jb250cm9sbGVyLT5zZXRWaXNpYmxlQ29udGVudHNSZWN0KGN1cnJlbnRWaXNpYmxlUmVj
dCwgdmlld3BvcnRTY2FsZSwgdHJhamVjdG9yeSk7CisgICAgRmxvYXRQb2ludCB2aWV3cG9ydFBv
cyA9IG1fdmlld3BvcnRJdGVtLT5tYXBUb1dlYkNvbnRlbnQoUVBvaW50RigpKTsKKyAgICBmbG9h
dCB2aWV3cG9ydFNjYWxlID0gKHNjYWxlIDwgMCkgPyBtX3BhZ2VJdGVtLT5jb250ZW50c1NjYWxl
KCkgOiBzY2FsZTsKKyAgICBtX2NvbnRyb2xsZXItPmRpZENoYW5nZUNvbnRlbnRzVmlzaWJpbGl0
eSh2aWV3cG9ydFBvcywgdmlld3BvcnRTY2FsZSwgdHJhamVjdG9yeSk7CiB9CiAKIHZvaWQgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudFF0OjpzY2FsZUNvbnRlbnQocXJlYWwgaXRlbVNjYWxl
LCBjb25zdCBRUG9pbnRGJiBjZW50ZXJJbkNTU0Nvb3JkaW5hdGVzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRRdC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnRRdC5oCmluZGV4IDE5YjI3YWU5ZWM1YzFkZTFkODM1NGJlYzY4ZWViMjk4YWZmM2QyNzcuLmJk
MGUxNzMxYmRlYjkwMzMxZWQ3MjIwN2JjNzdlYTY2ZmM3MDRiZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNs
aWVudFF0LmgKQEAgLTQ3LDggKzQ3LDggQEAgcHVibGljOgogICAgIFBhZ2VWaWV3cG9ydENvbnRy
b2xsZXJDbGllbnRRdChRUXVpY2tXZWJWaWV3KiwgUVF1aWNrV2ViUGFnZSopOwogICAgIH5QYWdl
Vmlld3BvcnRDb250cm9sbGVyQ2xpZW50UXQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
ZW50c1Bvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2FsUG9pbnQpOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1NjYWxlKGZsb2F0IGxvY2FsU2NhbGUsIGJvb2wgdHJl
YXRBc0luaXRpYWxWYWx1ZSk7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZXdwb3J0UG9zaXRpb24o
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgY29udGVudHNQb2ludCk7CisgICAgdmlydHVhbCB2
b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQgc2NhbGUsIGJvb2wgdHJlYXRBc0luaXRpYWxWYWx1
ZSk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzdW1lQ29udGVudCgpOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoKTsKQEAgLTEyMSw3ICsxMjEsNiBAQCBwcml2YXRl
OgogICAgIFFRdWlja1dlYlBhZ2UqIGNvbnN0IG1fcGFnZUl0ZW07CiAKICAgICBmbG9hdCB2aWV3
cG9ydFNjYWxlRm9yUmVjdChjb25zdCBRUmVjdEYmKSBjb25zdDsKLSAgICBRUmVjdEYgdmlzaWJs
ZUNvbnRlbnRzUmVjdCgpIGNvbnN0OwogICAgIFFSZWN0RiBuZWFyZXN0VmFsaWRWaXNpYmxlQ29u
dGVudHNSZWN0KCkgY29uc3Q7CiAKICAgICB2b2lkIHNldENvbnRlbnRzUmVjdFRvTmVhcmVzdFZh
bGlkQm91bmRzKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>