<?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>127891</bug_id>
          
          <creation_ts>2014-01-30 00:03:47 -0800</creation_ts>
          <short_desc>WebKit2 View Gestures (Swipe): Provide a way for clients to provide views to swipe</short_desc>
          <delta_ts>2014-01-30 11:26:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973621</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-30 00:03:47 -0800</bug_when>
    <thetext>Sometimes, clients want to swipe to or from a custom view hierarchy. Let&apos;s provide SPI to make this work (later we can think about the right way to do this, probably involving WebKit instantiating and owning the views on navigation to a particular scheme, or some such).

Implementation caveats: views must be layer backed and a contiguous, opaque rectangle.

&lt;rdar://problem/15931413&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973635</commentid>
    <comment_count>1</comment_count>
      <attachid>222639</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-30 00:25:43 -0800</bug_when>
    <thetext>Created attachment 222639
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973652</commentid>
    <comment_count>2</comment_count>
      <attachid>222639</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-30 02:08:02 -0800</bug_when>
    <thetext>Comment on attachment 222639
patch

I have some significant revisions to make, de-r?ing for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973656</commentid>
    <comment_count>3</comment_count>
      <attachid>222647</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-30 02:21:24 -0800</bug_when>
    <thetext>Created attachment 222647
ever so slightly more crazy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973832</commentid>
    <comment_count>4</comment_count>
      <attachid>222647</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-30 11:05:11 -0800</bug_when>
    <thetext>Comment on attachment 222647
ever so slightly more crazy

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

&gt; Source/WebKit2/UIProcess/mac/ViewGestureController.h:61
&gt; +    void setCustomSwipeViews(Vector&lt;RetainPtr&lt;NSView&gt;&gt; views) { m_customSwipeViews = views; }

std::move(views).

&gt; Source/WebKit2/UIProcess/mac/ViewGestureController.h:62
&gt; +    Vector&lt;RetainPtr&lt;NSView&gt;&gt; customSwipeViews() const { return m_customSwipeViews; }

You don&apos;t want to return this by reference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973857</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-30 11:26:19 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/163093</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222639</attachid>
            <date>2014-01-30 00:25:43 -0800</date>
            <delta_ts>2014-01-30 02:21:24 -0800</delta_ts>
            <desc>patch</desc>
            <filename>swipe-custom.diff</filename>
            <type>text/plain</type>
            <size>18525</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MDdhYWY3Li4wZjNmOWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTQtMDEtMjkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzIChTd2lwZSk6IFByb3ZpZGUgYSB3YXkgZm9y
IGNsaWVudHMgdG8gcHJvdmlkZSB2aWV3cyB0byBzd2lwZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3ODkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xNTkzMTQxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBBIHN1cnByaXNpbmcgZXhwb3J0LgorCiAy
MDE0LTAxLTI5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtN
ZWRpYUNvbnRyb2xzXVtpT1NdIEhvb2sgdXAgdGhlIGZ1bGxzY3JlZW4gYnV0dG9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCmluZGV4IDI0NjA0NjEuLmViNGRkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC0xMjQzLDYgKzEyNDMsNyBAQCBfX1pON1dlYkNvcmU5Q2xpcGJvYXJkRDFFdgogX19aTjdXZWJD
b3JlOURPTVdpbmRvdzMwZGlzcGF0Y2hBbGxQZW5kaW5nVW5sb2FkRXZlbnRzRXYKIF9fWk43V2Vi
Q29yZTlET01XaW5kb3czNmRpc3BhdGNoQWxsUGVuZGluZ0JlZm9yZVVubG9hZEV2ZW50c0V2CiBf
X1pON1dlYkNvcmU5RmxvYXRSZWN0NXNjYWxlRWZmCitfX1pON1dlYkNvcmU5RmxvYXRSZWN0NXVu
aXRlRVJLUzBfCiBfX1pON1dlYkNvcmU5RmxvYXRSZWN0OWludGVyc2VjdEVSS1MwXwogX19aTjdX
ZWJDb3JlOUZsb2F0UmVjdEMxRVJLNkNHUmVjdAogX19aTjdXZWJDb3JlOUZsb2F0UmVjdEMxRVJL
TlNfN0ludFJlY3RFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGY5MDBhMy4uOWE0MTBkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDU3IEBACiAyMDE0LTAxLTI5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgogCisgICAgICAgIFdlYktpdDIgVmlldyBHZXN0dXJlcyAoU3dpcGUpOiBQcm92
aWRlIGEgd2F5IGZvciBjbGllbnRzIHRvIHByb3ZpZGUgdmlld3MgdG8gc3dpcGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzg5MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTU5MzE0MTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaDog
QWRkIHRoZSBTUEkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2xlYXJDdXN0b21Td2lwZVZpZXdz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6Y2xlYXJDdXN0b21Td2lwZVZpZXdzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICBQbHVtYiBjbGVhckN1c3RvbVN3aXBlVmlld3Mo
KSBzbyB0aGF0IFdlYlBhZ2VQcm94eSBjYW4gY2xlYXIKKyAgICAgICAgVmlld0dlc3R1cmVDb250
cm9sbGVyJ3MgbGlzdCBvZiBjdXN0b20gdmlld3Mgd2hlbiB0aGUgY3VycmVudAorICAgICAgICBi
YWNrLWZvcndhcmQgaXRlbSBjaGFuZ2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX3Rha2VWaWV3U25hcHNob3RdKToKKyAgICAg
ICAgSWYgd2UgaGF2ZSBjdXN0b20gc3dpcGUgdmlld3MsIHVzZSB0aGUgdW5pb24gb2YgdGhlaXIg
Ym91bmRzIGFzIHRoZSBzbmFwc2hvdCByZWdpb24uCisKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRD
dXN0b21Td2lwZVZpZXdzOl0pOgorICAgICAgICBGb3J3YXJkIGFsb25nIHRvIFZpZXdHZXN0dXJl
Q29udHJvbGxlci4KKyAgICAgICAgCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRM
aXN0KToKKyAgICAgICAgV2hlbiB0aGUgY3VycmVudCBiYWNrIGZvcndhcmQgbGlzdCBpdGVtIGNo
YW5nZXMsIGNsZWFyIHRoZSBjdXN0b20gc3dpcGUgdmlld3MuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OnNldEN1c3RvbVN3aXBlVmlld3MpOgorICAgICAgICAoV2ViS2l0OjpW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6OmN1c3RvbVN3aXBlVmlld3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OndpbmRvd1JlbGF0aXZlQm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3
cyk6CisgICAgICAgIENvbXB1dGUgdGhlIHVuaW9uIG9mIHRoZSBjdXN0b20gc3dpcGUgdmlldyBi
b3VuZHMgaW4gdGhlIHdpbmRvdydzIGNvb3JkaW5hdGUgc3BhY2UuCisKKyAgICAgICAgKFdlYktp
dDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZSk6CisgICAgICAgIFN0
b3JlIHRoZSBsYXllcnMgd2UnbGwgYmUgc3dpcGluZyBhcyB0aGUgImxpdmUiIGxheWVycyBpbiBt
X2N1cnJlbnRTd2lwZUxpdmVMYXllcnMuCisgICAgICAgIERvbid0IHNldCBhIHNoYWRvdyAoeWV0
KSBpZiB3ZSBoYXZlIGN1c3RvbSBzd2lwZSB2aWV3cywgYmVjYXVzZSBpdCdzIG5vdCBjbGVhciB3
aGVyZSB0byBwdXQgaXQuCisKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVy
OjpoYW5kbGVTd2lwZUdlc3R1cmUpOgorICAgICAgICBDb21wdXRlIHRoZSBzd2lwZSBkaXN0YW5j
ZSAoJ3dpZHRoJykgYmFzZWQgb24gdGhlIHVuaW9uIG9mIHRoZSBjdXN0b20gdmlld3MgYm91bmRz
IGlmIG5lZWRlZC4KKyAgICAgICAgVXBkYXRlIHRoZSB0cmFuc2Zvcm0gb2YgYWxsIG9mIHRoZSBs
aXZlIGxheWVycy4gV2UgdXNlIHRyYW5zZm9ybSBpbnN0ZWFkIG9mIHBvc2l0aW9uIG5vdworICAg
ICAgICBzbyB0aGF0IGNsaWVudHMgY2FuIHNldCB0aGUgcG9zaXRpb24gKGhhdmluZyBhbiBpZGVu
dGl0eSB0cmFuc2Zvcm0gaXMgb25lIG9mIHRoZSBTUEkgY2F2ZWF0cykuCisKKyAgICAgICAgKFdl
YktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpyZW1vdmVTd2lwZVNuYXBzaG90KToKKyAgICAg
ICAgUmVzZXQgdGhlIHRyYW5zZm9ybSBvbiBhbGwgb2YgdGhlIGxpdmUgbGF5ZXJzLgorICAgICAg
ICBDbGVhciB0aGUgbGlzdCBvZiBsaXZlIGxheWVycy4KKworMjAxNC0wMS0yOSAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWJLaXQyIFZpZXcgR2Vz
dHVyZXMgKFN3aXBlKTogVXBkYXRlIHJ1YmJlckJhbmRzQXR7TGVmdCxSaWdodH0gd2hlbiBXZWJL
aXQgc3dpcGUgaXMgZW5hYmxlZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI3ODU1CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNTkzMzg3OD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgK
aW5kZXggMWRjODBhNi4uNGEyMzJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKQEAgLTkyLDYgKzkyLDkgQEAKIAogLSAodm9p
ZClzYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckN1cnJlbnRJdGVtOwogCisvLyBWaWV3cyBtdXN0
IGJlIGxheWVyLWJhY2tlZCwgaGF2ZSBubyB0cmFuc2Zvcm0gYXBwbGllZCwgYW5kIHRoZSB3aG9s
ZSBzZXQgbXVzdCBiZSBhIGNvbnRpZ3VvdXMgb3BhcXVlIHJlY3RhbmdsZS4KKy0gKHZvaWQpX3Nl
dEN1c3RvbVN3aXBlVmlld3M6KE5TQXJyYXkgKiljdXN0b21Td2lwZVZpZXdzOworCiAjZW5kaWYK
IAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKaW5kZXggZjc2YjAzOS4uOWY0ZTI4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC05OSw2
ICs5OSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFJldGFpblB0cjxDR0ltYWdlUmVmPiB0
YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnRX
YXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDdXN0b21Td2lwZVZpZXdzKCkgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgbWFpbkRvY3VtZW50RGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoKSBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA4OTZjNjViLi42NjU3YTJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpA
QCAtMzMzLDYgKzMzMywxMSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90
SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JgogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQ3VzdG9tU3dpcGVWaWV3
cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6
bWFpbkRvY3VtZW50RGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoKQogewogICAgIFttX3ZpZXcgX2Rp
ZFJlY2VpdmVNb2JpbGVEb2NUeXBlRm9yTWFpbkZyYW1lXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDY4ZmQ2N2UuLjhkZWFl
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGll
bnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVu
dEltcGwuaApAQCAtMTE2LDYgKzExNiw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFJldGFp
blB0cjxDR0ltYWdlUmVmPiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldo
ZWVsRXZlbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDdXN0b21Td2lwZVZp
ZXdzKCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzaWJpbGl0eVdlYlByb2Nl
c3NUb2tlblJlY2VpdmVkKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IDZh
YzVhYTkuLjM3ZjY4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBAIC01NDMsNiArNTQzLDExIEBAIGJvb2wgUGFnZUNsaWVu
dEltcGw6OmV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0
b3JTdHJpbmcpCiAgICAgcmV0dXJuIFttX3drVmlldyBfZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2Vs
ZWN0b3I6TlNTZWxlY3RvckZyb21TdHJpbmcoc2VsZWN0b3JTdHJpbmcpXTsKIH0KIAordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6Y2xlYXJDdXN0b21Td2lwZVZpZXdzKCkKK3sKKyAgICByZXR1cm4gW21f
d2tWaWV3IF9zZXRDdXN0b21Td2lwZVZpZXdzOkBbXV07Cit9CisKICNpZiBVU0UoRElDVEFUSU9O
X0FMVEVSTkFUSVZFUykKIHVpbnQ2NF90IFBhZ2VDbGllbnRJbXBsOjphZGREaWN0YXRpb25BbHRl
cm5hdGl2ZXMoY29uc3QgUmV0YWluUHRyPE5TVGV4dEFsdGVybmF0aXZlcz4mIGFsdGVybmF0aXZl
cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCAw
ZDgwZTc5Li40OTE0ZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCkBAIC0yNTQ3LDcgKzI1NDcsMTMgQEAgc3RhdGljIHZvaWQgY3JlYXRlU2FuZGJveEV4
dGVuc2lvbnNGb3JGaWxlVXBsb2FkKE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZCwgU2FuZGIKICAg
ICBDR1NDYXB0dXJlV2luZG93c0NvbnRlbnRzVG9SZWN0KENHU01haW5Db25uZWN0aW9uSUQoKSwg
JndpbmRvd0lELCAxLCBDR1JlY3ROdWxsLCAmY2dXaW5kb3dJbWFnZSk7CiAgICAgUmV0YWluUHRy
PENHSW1hZ2VSZWY+IHdpbmRvd1NuYXBzaG90SW1hZ2UgPSBhZG9wdENGKGNnV2luZG93SW1hZ2Up
OwogCi0gICAgTlNSZWN0IHdpbmRvd0NhcHR1cmVSZWN0ID0gW3NlbGYgY29udmVydFJlY3Q6c2Vs
Zi5ib3VuZHMgdG9WaWV3Om5pbF07CisgICAgTlNSZWN0IHdpbmRvd0NhcHR1cmVSZWN0OworICAg
IEZsb2F0UmVjdCBib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzID0gX2RhdGEtPl9nZXN0dXJlQ29u
dHJvbGxlci0+d2luZG93UmVsYXRpdmVCb3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzKCk7CisgICAg
aWYgKCFib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzLmlzRW1wdHkoKSkKKyAgICAgICAgd2luZG93
Q2FwdHVyZVJlY3QgPSBib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzOworICAgIGVsc2UKKyAgICAg
ICAgd2luZG93Q2FwdHVyZVJlY3QgPSBbc2VsZiBjb252ZXJ0UmVjdDpzZWxmLmJvdW5kcyB0b1Zp
ZXc6bmlsXTsKKwogICAgIE5TUmVjdCB3aW5kb3dDYXB0dXJlU2NyZWVuUmVjdCA9IFt3aW5kb3cg
Y29udmVydFJlY3RUb1NjcmVlbjp3aW5kb3dDYXB0dXJlUmVjdF07CiAgICAgQ0dSZWN0IHdpbmRv
d1NjcmVlblJlY3Q7CiAgICAgQ0dTR2V0U2NyZWVuUmVjdEZvcldpbmRvdyhDR1NNYWluQ29ubmVj
dGlvbklEKCksIChDR1NXaW5kb3dJRClbd2luZG93IHdpbmRvd051bWJlcl0sICZ3aW5kb3dTY3Jl
ZW5SZWN0KTsKQEAgLTMzMzAsNiArMzMzNiwxNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRo
VW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIHJldHVybiBfZGF0YS0+
X3BhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCistICh2b2lkKV9zZXRDdXN0b21Td2lwZVZp
ZXdzOihOU0FycmF5ICopY3VzdG9tU3dpcGVWaWV3cworeworICAgIFtzZWxmIF9lbnN1cmVHZXN0
dXJlQ29udHJvbGxlcl07CisKKyAgICBWZWN0b3I8UmV0YWluUHRyPE5TVmlldz4+IHZpZXdzOwor
ICAgIGZvciAoTlNWaWV3ICp2aWV3IGluIGN1c3RvbVN3aXBlVmlld3MpCisgICAgICAgIHZpZXdz
LmFwcGVuZCh2aWV3KTsKKworICAgIF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPnNldEN1c3Rv
bVN3aXBlVmlld3Modmlld3MpOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1Jlc3Bv
bmRlckNoYWluU2luawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMzE4
YWZlOS4uMDg4NWY1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0x
NzUsNiArMTc1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQ0FMYXllciAqYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFJldGFpblB0cjxD
R0ltYWdlUmVmPiB0YWtlVmlld1NuYXBzaG90KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3aGVl
bEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckN1c3RvbVN3aXBlVmlld3MoKSA9IDA7CiAjZW5k
aWYKIAogI2lmIFVTRShBUFBLSVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IGVhZGQ2MWIuLmE1ZjUyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC04MTksNiArODE5LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdl
QmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkLCBWZWN0b3I8UmVm
UHRyPEFQSTo6T2JqZWN0Pj4qIHJlbW92ZWQpCiB7CiAgICAgbV9sb2FkZXJDbGllbnQtPmRpZENo
YW5nZUJhY2tGb3J3YXJkTGlzdCh0aGlzLCBhZGRlZCwgcmVtb3ZlZCk7CisKKyAgICBtX3BhZ2VD
bGllbnQuY2xlYXJDdXN0b21Td2lwZVZpZXdzKCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp3
aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiBkZWNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
Vmlld0dlc3R1cmVDb250cm9sbGVyLmgKaW5kZXggNjcxNmRjOC4uODU1MjMxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5o
CkBAIC0zNSw2ICszNSw3IEBACiAKIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIE9CSkNfQ0xBU1MgTlNF
dmVudDsKK09CSkNfQ0xBU1MgTlNWaWV3OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTcs
NiArNTgsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5
V2ViQ29yZShOU0V2ZW50ICopOwogCisgICAgdm9pZCBzZXRDdXN0b21Td2lwZVZpZXdzKFZlY3Rv
cjxSZXRhaW5QdHI8TlNWaWV3Pj4gdmlld3MpIHsgbV9jdXN0b21Td2lwZVZpZXdzID0gdmlld3M7
IH0KKyAgICBWZWN0b3I8UmV0YWluUHRyPE5TVmlldz4+IGN1c3RvbVN3aXBlVmlld3MoKSBjb25z
dCB7IHJldHVybiBtX2N1c3RvbVN3aXBlVmlld3M7IH0KKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qg
d2luZG93UmVsYXRpdmVCb3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzKCkgY29uc3Q7CisKICAgICB2
b2lkIGVuZEFjdGl2ZUdlc3R1cmUoKTsKIAogICAgIGVudW0gY2xhc3MgVmlld0dlc3R1cmVUeXBl
IHsKQEAgLTEwNSw4ICsxMTAsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZnJhbWVIYW5kbGVz
TWFnbmlmaWNhdGlvbkdlc3R1cmU7CiAKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9zd2lwZVNu
YXBzaG90TGF5ZXI7CisgICAgVmVjdG9yPFJldGFpblB0cjxDQUxheWVyPj4gbV9jdXJyZW50U3dp
cGVMaXZlTGF5ZXJzOworCiAgICAgU3dpcGVUcmFuc2l0aW9uU3R5bGUgbV9zd2lwZVRyYW5zaXRp
b25TdHlsZTsKICAgICBXZWJDb3JlOjpUaW1lcjxWaWV3R2VzdHVyZUNvbnRyb2xsZXI+IG1fc3dp
cGVXYXRjaGRvZ1RpbWVyOworICAgIFZlY3RvcjxSZXRhaW5QdHI8TlNWaWV3Pj4gbV9jdXN0b21T
d2lwZVZpZXdzOwogCiAgICAgLy8gSWYgd2UgbmVlZCB0byB3YWl0IGZvciBjb250ZW50IHRvIGRl
Y2lkZSBpZiBpdCBpcyBnb2luZyB0byBjb25zdW1lCiAgICAgLy8gdGhlIHNjcm9sbCBldmVudCB0
aGF0IHdvdWxkIGhhdmUgc3RhcnRlZCBhIHN3aXBlLCB3ZSdsbCBmaWxsIHRoZXNlIGluLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxl
ci5tbQppbmRleCBkOGNhZTM3Li44YmZiYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5tbQpAQCAtMzEwLDExICszMTAs
MjEgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnRyYWNrU3dpcGVHZXN0dXJlKE5TRXZl
bnQgKmV2ZW50LCBTd2lwZURpcmVjdGlvbiBkaXIKICAgICB9XTsKIH0KIAorRmxvYXRSZWN0IFZp
ZXdHZXN0dXJlQ29udHJvbGxlcjo6d2luZG93UmVsYXRpdmVCb3VuZHNGb3JDdXN0b21Td2lwZVZp
ZXdzKCkgY29uc3QKK3sKKyAgICBGbG9hdFJlY3Qgc3dpcGVBcmVhOworICAgIGZvciAoY29uc3Qg
YXV0byYgdmlldyA6IG1fY3VzdG9tU3dpcGVWaWV3cykKKyAgICAgICAgc3dpcGVBcmVhLnVuaXRl
KFt2aWV3IGNvbnZlcnRSZWN0Olt2aWV3IGJvdW5kc10gdG9WaWV3Om5pbF0pOworICAgIHJldHVy
biBzd2lwZUFyZWE7Cit9CisKIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBl
R2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBTd2lwZURpcmVjdGlv
biBkaXJlY3Rpb24pCiB7CisgICAgQVNTRVJUKG1fY3VycmVudFN3aXBlTGl2ZUxheWVycy5pc0Vt
cHR5KCkpOworCiAgICAgbV9hY3RpdmVHZXN0dXJlVHlwZSA9IFZpZXdHZXN0dXJlVHlwZTo6U3dp
cGU7CiAKLSAgICBDQUxheWVyICpyb290TGF5ZXIgPSBtX3dlYlBhZ2VQcm94eS5hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nUm9vdExheWVyKCk7CisgICAgQ0FMYXllciAqcm9vdENvbnRlbnRMYXllciA9
IG1fd2ViUGFnZVByb3h5LmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKTsKIAogICAg
IG1fc3dpcGVTbmFwc2hvdExheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsK
ICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0QmFja2dyb3VuZENvbG9yOkNHQ29sb3JHZXRD
b25zdGFudENvbG9yKGtDR0NvbG9yV2hpdGUpXTsKQEAgLTMzMywxMSArMzQzLDI0IEBAIHZvaWQg
Vmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExp
c3RJdGVtKiB0YXJnZXRJdGVtCiAjZW5kaWYKICAgICB9CiAKKyAgICBGbG9hdFJlY3Qgc3dpcGVB
cmVhOworICAgIGlmICghbV9jdXN0b21Td2lwZVZpZXdzLmlzRW1wdHkoKSkgeworICAgICAgICBz
d2lwZUFyZWEgPSB3aW5kb3dSZWxhdGl2ZUJvdW5kc0ZvckN1c3RvbVN3aXBlVmlld3MoKTsKKwor
ICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHZpZXcgOiBtX2N1c3RvbVN3aXBlVmlld3MpIHsKKyAg
ICAgICAgICAgIENBTGF5ZXIgKmxheWVyID0gW3ZpZXcgbGF5ZXJdOworICAgICAgICAgICAgQVNT
RVJUKGxheWVyKTsKKyAgICAgICAgICAgIG1fY3VycmVudFN3aXBlTGl2ZUxheWVycy5hcHBlbmQo
bGF5ZXIpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3dpcGVBcmVhID0gcm9v
dENvbnRlbnRMYXllci5mcmFtZTsKKyAgICAgICAgbV9jdXJyZW50U3dpcGVMaXZlTGF5ZXJzLmFw
cGVuZChyb290Q29udGVudExheWVyKTsKKyAgICB9CisKICAgICBbbV9zd2lwZVNuYXBzaG90TGF5
ZXIgc2V0Q29udGVudHNHcmF2aXR5OmtDQUdyYXZpdHlUb3BMZWZ0XTsKICAgICBbbV9zd2lwZVNu
YXBzaG90TGF5ZXIgc2V0Q29udGVudHNTY2FsZTptX3dlYlBhZ2VQcm94eS5kZXZpY2VTY2FsZUZh
Y3RvcigpXTsKLSAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0RnJhbWU6cm9vdExheWVyLmZy
YW1lXTsKICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludFpl
cm9dOwotICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRQb3NpdGlvbjpDR1BvaW50WmVyb107
CisgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldEZyYW1lOnN3aXBlQXJlYV07CiAgICAgW21f
c3dpcGVTbmFwc2hvdExheWVyIHNldE5hbWU6QCJHZXN0dXJlIFN3aXBlIFNuYXBzaG90IExheWVy
Il07CiAgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CiAK
QEAgLTM0Nyw0MiArMzcwLDU3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3
aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtCiAgICAgICAgIFtt
X3N3aXBlU25hcHNob3RMYXllciBzZXRGaWx0ZXJzOkBbZmlsdGVyXV07CiAgICAgfQogCi0gICAg
aWYgKG1fc3dpcGVUcmFuc2l0aW9uU3R5bGUgPT0gU3dpcGVUcmFuc2l0aW9uU3R5bGU6Ok92ZXJs
YXApIHsKLSAgICAgICAgUmV0YWluUHRyPENHUGF0aFJlZj4gc2hhZG93UGF0aCA9IGFkb3B0Q0Yo
Q0dQYXRoQ3JlYXRlV2l0aFJlY3QoW3Jvb3RMYXllciBib3VuZHNdLCAwKSk7Ci0KLSAgICAgICAg
W21fc3dpcGVTbmFwc2hvdExheWVyIHNldFNoYWRvd0NvbG9yOkNHQ29sb3JHZXRDb25zdGFudENv
bG9yKGtDR0NvbG9yQmxhY2spXTsKLSAgICAgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldFNo
YWRvd09wYWNpdHk6c3dpcGVPdmVybGF5U2hhZG93T3BhY2l0eV07Ci0gICAgICAgIFttX3N3aXBl
U25hcHNob3RMYXllciBzZXRTaGFkb3dSYWRpdXM6c3dpcGVPdmVybGF5U2hhZG93UmFkaXVzXTsK
LSAgICAgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldFNoYWRvd1BhdGg6c2hhZG93UGF0aC5n
ZXQoKV07Ci0KLSAgICAgICAgW3Jvb3RMYXllciBzZXRTaGFkb3dDb2xvcjpDR0NvbG9yR2V0Q29u
c3RhbnRDb2xvcihrQ0dDb2xvckJsYWNrKV07Ci0gICAgICAgIFtyb290TGF5ZXIgc2V0U2hhZG93
T3BhY2l0eTpzd2lwZU92ZXJsYXlTaGFkb3dPcGFjaXR5XTsKLSAgICAgICAgW3Jvb3RMYXllciBz
ZXRTaGFkb3dSYWRpdXM6c3dpcGVPdmVybGF5U2hhZG93UmFkaXVzXTsKLSAgICAgICAgW3Jvb3RM
YXllciBzZXRTaGFkb3dQYXRoOnNoYWRvd1BhdGguZ2V0KCldOworICAgIC8vIFdlIGRvbid0IGtu
b3cgZW5vdWdoIGFib3V0IHRoZSBjdXN0b20gdmlld3MnIGhpZXJhcmNoeSB0byBhcHBseSBhIHNo
YWRvdy4KKyAgICBpZiAobV9zd2lwZVRyYW5zaXRpb25TdHlsZSA9PSBTd2lwZVRyYW5zaXRpb25T
dHlsZTo6T3ZlcmxhcCAmJiBtX2N1c3RvbVN3aXBlVmlld3MuaXNFbXB0eSgpKSB7CisgICAgICAg
IFJldGFpblB0cjxDR1BhdGhSZWY+IHNoYWRvd1BhdGggPSBhZG9wdENGKENHUGF0aENyZWF0ZVdp
dGhSZWN0KFttX3N3aXBlU25hcHNob3RMYXllciBib3VuZHNdLCAwKSk7CisKKyAgICAgICAgaWYg
KGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCkgeworICAgICAgICAgICAgW3Jvb3RD
b250ZW50TGF5ZXIgc2V0U2hhZG93Q29sb3I6Q0dDb2xvckdldENvbnN0YW50Q29sb3Ioa0NHQ29s
b3JCbGFjayldOworICAgICAgICAgICAgW3Jvb3RDb250ZW50TGF5ZXIgc2V0U2hhZG93T3BhY2l0
eTpzd2lwZU92ZXJsYXlTaGFkb3dPcGFjaXR5XTsKKyAgICAgICAgICAgIFtyb290Q29udGVudExh
eWVyIHNldFNoYWRvd1JhZGl1czpzd2lwZU92ZXJsYXlTaGFkb3dSYWRpdXNdOworICAgICAgICAg
ICAgW3Jvb3RDb250ZW50TGF5ZXIgc2V0U2hhZG93UGF0aDpzaGFkb3dQYXRoLmdldCgpXTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRTaGFk
b3dDb2xvcjpDR0NvbG9yR2V0Q29uc3RhbnRDb2xvcihrQ0dDb2xvckJsYWNrKV07CisgICAgICAg
ICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0U2hhZG93T3BhY2l0eTpzd2lwZU92ZXJsYXlT
aGFkb3dPcGFjaXR5XTsKKyAgICAgICAgICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRTaGFk
b3dSYWRpdXM6c3dpcGVPdmVybGF5U2hhZG93UmFkaXVzXTsKKyAgICAgICAgICAgIFttX3N3aXBl
U25hcHNob3RMYXllciBzZXRTaGFkb3dQYXRoOnNoYWRvd1BhdGguZ2V0KCldOworICAgICAgICB9
CiAgICAgfQogCisgICAgLy8gSWYgd2UgaGF2ZSBjdXN0b20gc3dpcGluZyB2aWV3cywgd2UgdXNl
IHRoZSBmaXJzdCBvbmUgdG8gcG9zaXRpb24gb3VyIHNuYXBzaG90CisgICAgLy8gbGF5ZXIgaW4g
dGhlIGhpZXJhcmNoeS4gT3RoZXJ3aXNlIHdlIGp1c3QgdXNlIHRoZSBhY2NlbGVyYXRlZCBjb21w
b3NpdGluZyByb290IGxheWVyLgorICAgIENBTGF5ZXIgKmxheWVyQWRqYWNlbnRUb1NuYXBzaG90
ID0gbV9jdXJyZW50U3dpcGVMaXZlTGF5ZXJzWzBdLmdldCgpOworCiAgICAgaWYgKGRpcmVjdGlv
biA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCkKLSAgICAgICAgW3Jvb3RMYXllci5zdXBlcmxheWVy
IGluc2VydFN1YmxheWVyOm1fc3dpcGVTbmFwc2hvdExheWVyLmdldCgpIGJlbG93OnJvb3RMYXll
cl07CisgICAgICAgIFtsYXllckFkamFjZW50VG9TbmFwc2hvdC5zdXBlcmxheWVyIGluc2VydFN1
YmxheWVyOm1fc3dpcGVTbmFwc2hvdExheWVyLmdldCgpIGJlbG93OmxheWVyQWRqYWNlbnRUb1Nu
YXBzaG90XTsKICAgICBlbHNlCi0gICAgICAgIFtyb290TGF5ZXIuc3VwZXJsYXllciBpbnNlcnRT
dWJsYXllcjptX3N3aXBlU25hcHNob3RMYXllci5nZXQoKSBhYm92ZTpyb290TGF5ZXJdOworICAg
ICAgICBbbGF5ZXJBZGphY2VudFRvU25hcHNob3Quc3VwZXJsYXllciBpbnNlcnRTdWJsYXllcjpt
X3N3aXBlU25hcHNob3RMYXllci5nZXQoKSBhYm92ZTpsYXllckFkamFjZW50VG9TbmFwc2hvdF07
CiB9CiAKIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpoYW5kbGVTd2lwZUdlc3R1cmUoV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwgZG91YmxlIHByb2dyZXNzLCBTd2lwZURp
cmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgQVNTRVJUKG1fYWN0aXZlR2VzdHVyZVR5cGUgPT0g
Vmlld0dlc3R1cmVUeXBlOjpTd2lwZSk7CiAKLSAgICBDQUxheWVyICpyb290TGF5ZXIgPSBtX3dl
YlBhZ2VQcm94eS5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCk7Ci0gICAgZG91Ymxl
IHdpZHRoID0gcm9vdExheWVyLmJvdW5kcy5zaXplLndpZHRoOworICAgIGRvdWJsZSB3aWR0aDsK
KyAgICBpZiAoIW1fY3VzdG9tU3dpcGVWaWV3cy5pc0VtcHR5KCkpCisgICAgICAgIHdpZHRoID0g
d2luZG93UmVsYXRpdmVCb3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzKCkud2lkdGgoKTsKKyAgICBl
bHNlCisgICAgICAgIHdpZHRoID0gbV93ZWJQYWdlUHJveHkuYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z1Jvb3RMYXllcigpLmZyYW1lLnNpemUud2lkdGg7CisKICAgICBkb3VibGUgc3dpcGluZ0xheWVy
T2Zmc2V0ID0gZmxvb3Iod2lkdGggKiBwcm9ncmVzcyk7CiAKICAgICBpZiAobV9zd2lwZVRyYW5z
aXRpb25TdHlsZSA9PSBTd2lwZVRyYW5zaXRpb25TdHlsZTo6T3ZlcmxhcCkgewotICAgICAgICBp
ZiAoZGlyZWN0aW9uID09IFN3aXBlRGlyZWN0aW9uOjpMZWZ0KQotICAgICAgICAgICAgW3Jvb3RM
YXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShzd2lwaW5nTGF5ZXJPZmZzZXQsIDApXTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldFBvc2l0aW9u
OkNHUG9pbnRNYWtlKHdpZHRoICsgc3dpcGluZ0xheWVyT2Zmc2V0LCAwKV07Ci0gICAgfSBlbHNl
IGlmIChtX3N3aXBlVHJhbnNpdGlvblN0eWxlID09IFN3aXBlVHJhbnNpdGlvblN0eWxlOjpQdXNo
KSB7Ci0gICAgICAgIFtyb290TGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1ha2Uoc3dpcGluZ0xh
eWVyT2Zmc2V0LCAwKV07Ci0gICAgICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRQb3NpdGlv
bjpDR1BvaW50TWFrZSgoZGlyZWN0aW9uID09IFN3aXBlRGlyZWN0aW9uOjpMZWZ0ID8gLXdpZHRo
IDogd2lkdGgpICsgc3dpcGluZ0xheWVyT2Zmc2V0LCAwKV07CisgICAgICAgIGlmIChkaXJlY3Rp
b24gPT0gU3dpcGVEaXJlY3Rpb246OlJpZ2h0KQorICAgICAgICAgICAgW21fc3dpcGVTbmFwc2hv
dExheWVyIHNldFRyYW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVRyYW5zbGF0aW9uKHdpZHRoICsg
c3dpcGluZ0xheWVyT2Zmc2V0LCAwLCAwKV07CisgICAgfSBlbHNlIGlmIChtX3N3aXBlVHJhbnNp
dGlvblN0eWxlID09IFN3aXBlVHJhbnNpdGlvblN0eWxlOjpQdXNoKQorICAgICAgICBbbV9zd2lw
ZVNuYXBzaG90TGF5ZXIgc2V0VHJhbnNmb3JtOkNBVHJhbnNmb3JtM0RNYWtlVHJhbnNsYXRpb24o
KGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCA/IC13aWR0aCA6IHdpZHRoKSArIHN3
aXBpbmdMYXllck9mZnNldCwgMCwgMCldOworCisgICAgZm9yIChjb25zdCBhdXRvJiBsYXllciA6
IG1fY3VycmVudFN3aXBlTGl2ZUxheWVycykgeworICAgICAgICBpZiAobV9zd2lwZVRyYW5zaXRp
b25TdHlsZSA9PSBTd2lwZVRyYW5zaXRpb25TdHlsZTo6T3ZlcmxhcCkgeworICAgICAgICAgICAg
aWYgKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCkKKyAgICAgICAgICAgICAgICBb
bGF5ZXIgc2V0VHJhbnNmb3JtOkNBVHJhbnNmb3JtM0RNYWtlVHJhbnNsYXRpb24oc3dpcGluZ0xh
eWVyT2Zmc2V0LCAwLCAwKV07CisgICAgICAgIH0gZWxzZSBpZiAobV9zd2lwZVRyYW5zaXRpb25T
dHlsZSA9PSBTd2lwZVRyYW5zaXRpb25TdHlsZTo6UHVzaCkKKyAgICAgICAgICAgIFtsYXllciBz
ZXRUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VUcmFuc2xhdGlvbihzd2lwaW5nTGF5ZXJPZmZz
ZXQsIDAsIDApXTsKICAgICB9CiB9CiAKQEAgLTQ0MSwxMCArNDc5LDE0IEBAIHZvaWQgVmlld0dl
c3R1cmVDb250cm9sbGVyOjpyZW1vdmVTd2lwZVNuYXBzaG90KCkKICAgICAgICAgSU9TdXJmYWNl
U2V0UHVyZ2VhYmxlKHNuYXBzaG90U3VyZmFjZSwga0lPU3VyZmFjZVB1cmdlYWJsZVZvbGF0aWxl
LCBudWxscHRyKTsKICNlbmRpZgogCi0gICAgW21fd2ViUGFnZVByb3h5LmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdSb290TGF5ZXIoKSBzZXRQb3NpdGlvbjpDR1BvaW50WmVyb107CisgICAgZm9yIChj
b25zdCBhdXRvJiBsYXllciA6IG1fY3VycmVudFN3aXBlTGl2ZUxheWVycykKKyAgICAgICAgW2xh
eWVyIHNldFRyYW5zZm9ybTpDQVRyYW5zZm9ybTNESWRlbnRpdHldOworCiAgICAgW21fc3dpcGVT
bmFwc2hvdExheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKICAgICBtX3N3aXBlU25hcHNob3RM
YXllciA9IG51bGxwdHI7CiAKKyAgICBtX2N1cnJlbnRTd2lwZUxpdmVMYXllcnMuY2xlYXIoKTsK
KwogICAgIG1fYWN0aXZlR2VzdHVyZVR5cGUgPSBWaWV3R2VzdHVyZVR5cGU6Ok5vbmU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222647</attachid>
            <date>2014-01-30 02:21:24 -0800</date>
            <delta_ts>2014-01-30 11:05:10 -0800</delta_ts>
            <desc>ever so slightly more crazy</desc>
            <filename>swipe-custom.diff</filename>
            <type>text/plain</type>
            <size>20481</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MDdhYWY3Li4wZjNmOWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTQtMDEtMjkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzIChTd2lwZSk6IFByb3ZpZGUgYSB3YXkgZm9y
IGNsaWVudHMgdG8gcHJvdmlkZSB2aWV3cyB0byBzd2lwZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3ODkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xNTkzMTQxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBBIHN1cnByaXNpbmcgZXhwb3J0LgorCiAy
MDE0LTAxLTI5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtN
ZWRpYUNvbnRyb2xzXVtpT1NdIEhvb2sgdXAgdGhlIGZ1bGxzY3JlZW4gYnV0dG9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCmluZGV4IDI0NjA0NjEuLmViNGRkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC0xMjQzLDYgKzEyNDMsNyBAQCBfX1pON1dlYkNvcmU5Q2xpcGJvYXJkRDFFdgogX19aTjdXZWJD
b3JlOURPTVdpbmRvdzMwZGlzcGF0Y2hBbGxQZW5kaW5nVW5sb2FkRXZlbnRzRXYKIF9fWk43V2Vi
Q29yZTlET01XaW5kb3czNmRpc3BhdGNoQWxsUGVuZGluZ0JlZm9yZVVubG9hZEV2ZW50c0V2CiBf
X1pON1dlYkNvcmU5RmxvYXRSZWN0NXNjYWxlRWZmCitfX1pON1dlYkNvcmU5RmxvYXRSZWN0NXVu
aXRlRVJLUzBfCiBfX1pON1dlYkNvcmU5RmxvYXRSZWN0OWludGVyc2VjdEVSS1MwXwogX19aTjdX
ZWJDb3JlOUZsb2F0UmVjdEMxRVJLNkNHUmVjdAogX19aTjdXZWJDb3JlOUZsb2F0UmVjdEMxRVJL
TlNfN0ludFJlY3RFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGY5MDBhMy4uOWE0MTBkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDU3IEBACiAyMDE0LTAxLTI5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgogCisgICAgICAgIFdlYktpdDIgVmlldyBHZXN0dXJlcyAoU3dpcGUpOiBQcm92
aWRlIGEgd2F5IGZvciBjbGllbnRzIHRvIHByb3ZpZGUgdmlld3MgdG8gc3dpcGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzg5MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTU5MzE0MTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaDog
QWRkIHRoZSBTUEkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2xlYXJDdXN0b21Td2lwZVZpZXdz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6Y2xlYXJDdXN0b21Td2lwZVZpZXdzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICBQbHVtYiBjbGVhckN1c3RvbVN3aXBlVmlld3Mo
KSBzbyB0aGF0IFdlYlBhZ2VQcm94eSBjYW4gY2xlYXIKKyAgICAgICAgVmlld0dlc3R1cmVDb250
cm9sbGVyJ3MgbGlzdCBvZiBjdXN0b20gdmlld3Mgd2hlbiB0aGUgY3VycmVudAorICAgICAgICBi
YWNrLWZvcndhcmQgaXRlbSBjaGFuZ2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX3Rha2VWaWV3U25hcHNob3RdKToKKyAgICAg
ICAgSWYgd2UgaGF2ZSBjdXN0b20gc3dpcGUgdmlld3MsIHVzZSB0aGUgdW5pb24gb2YgdGhlaXIg
Ym91bmRzIGFzIHRoZSBzbmFwc2hvdCByZWdpb24uCisKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRD
dXN0b21Td2lwZVZpZXdzOl0pOgorICAgICAgICBGb3J3YXJkIGFsb25nIHRvIFZpZXdHZXN0dXJl
Q29udHJvbGxlci4KKyAgICAgICAgCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRM
aXN0KToKKyAgICAgICAgV2hlbiB0aGUgY3VycmVudCBiYWNrIGZvcndhcmQgbGlzdCBpdGVtIGNo
YW5nZXMsIGNsZWFyIHRoZSBjdXN0b20gc3dpcGUgdmlld3MuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OnNldEN1c3RvbVN3aXBlVmlld3MpOgorICAgICAgICAoV2ViS2l0OjpW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6OmN1c3RvbVN3aXBlVmlld3MpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OndpbmRvd1JlbGF0aXZlQm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3
cyk6CisgICAgICAgIENvbXB1dGUgdGhlIHVuaW9uIG9mIHRoZSBjdXN0b20gc3dpcGUgdmlldyBi
b3VuZHMgaW4gdGhlIHdpbmRvdydzIGNvb3JkaW5hdGUgc3BhY2UuCisKKyAgICAgICAgKFdlYktp
dDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZSk6CisgICAgICAgIFN0
b3JlIHRoZSBsYXllcnMgd2UnbGwgYmUgc3dpcGluZyBhcyB0aGUgImxpdmUiIGxheWVycyBpbiBt
X2N1cnJlbnRTd2lwZUxpdmVMYXllcnMuCisgICAgICAgIERvbid0IHNldCBhIHNoYWRvdyAoeWV0
KSBpZiB3ZSBoYXZlIGN1c3RvbSBzd2lwZSB2aWV3cywgYmVjYXVzZSBpdCdzIG5vdCBjbGVhciB3
aGVyZSB0byBwdXQgaXQuCisKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVy
OjpoYW5kbGVTd2lwZUdlc3R1cmUpOgorICAgICAgICBDb21wdXRlIHRoZSBzd2lwZSBkaXN0YW5j
ZSAoJ3dpZHRoJykgYmFzZWQgb24gdGhlIHVuaW9uIG9mIHRoZSBjdXN0b20gdmlld3MgYm91bmRz
IGlmIG5lZWRlZC4KKyAgICAgICAgVXBkYXRlIHRoZSB0cmFuc2Zvcm0gb2YgYWxsIG9mIHRoZSBs
aXZlIGxheWVycy4gV2UgdXNlIHRyYW5zZm9ybSBpbnN0ZWFkIG9mIHBvc2l0aW9uIG5vdworICAg
ICAgICBzbyB0aGF0IGNsaWVudHMgY2FuIHNldCB0aGUgcG9zaXRpb24gKGhhdmluZyBhbiBpZGVu
dGl0eSB0cmFuc2Zvcm0gaXMgb25lIG9mIHRoZSBTUEkgY2F2ZWF0cykuCisKKyAgICAgICAgKFdl
YktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpyZW1vdmVTd2lwZVNuYXBzaG90KToKKyAgICAg
ICAgUmVzZXQgdGhlIHRyYW5zZm9ybSBvbiBhbGwgb2YgdGhlIGxpdmUgbGF5ZXJzLgorICAgICAg
ICBDbGVhciB0aGUgbGlzdCBvZiBsaXZlIGxheWVycy4KKworMjAxNC0wMS0yOSAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWJLaXQyIFZpZXcgR2Vz
dHVyZXMgKFN3aXBlKTogVXBkYXRlIHJ1YmJlckJhbmRzQXR7TGVmdCxSaWdodH0gd2hlbiBXZWJL
aXQgc3dpcGUgaXMgZW5hYmxlZAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI3ODU1CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNTkzMzg3OD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgK
aW5kZXggMWRjODBhNi4uMDVmNjJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKQEAgLTkyLDYgKzkyLDkgQEAKIAogLSAodm9p
ZClzYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckN1cnJlbnRJdGVtOwogCisvLyBWaWV3cyBtdXN0
IGJlIGxheWVyLWJhY2tlZCwgaGF2ZSBubyB0cmFuc2Zvcm0gYXBwbGllZCwgYmUgaW4gYmFjay10
by1mcm9udCB6LW9yZGVyLCBhbmQgdGhlIHdob2xlIHNldCBtdXN0IGJlIGEgY29udGlndW91cyBv
cGFxdWUgcmVjdGFuZ2xlLgorLSAodm9pZClfc2V0Q3VzdG9tU3dpcGVWaWV3czooTlNBcnJheSAq
KWN1c3RvbVN3aXBlVmlld3M7CisKICNlbmRpZgogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBmNzZiMDM5
Li45ZjRlMjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTk5LDYgKzk5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZp
cnR1YWwgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHRha2VWaWV3U25hcHNob3QoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3Qg
TmF0aXZlV2ViV2hlZWxFdmVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckN1
c3RvbVN3aXBlVmlld3MoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBtYWluRG9jdW1l
bnREaWRSZWNlaXZlTW9iaWxlRG9jVHlwZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDg5
NmM2NWIuLjY2NTdhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC0zMzMsNiArMzMzLDExIEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2
ZVdlYldoZWVsRXZlbnQmCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6Y2xlYXJDdXN0b21Td2lwZVZpZXdzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjptYWluRG9jdW1lbnREaWRSZWNlaXZlTW9iaWxl
RG9jVHlwZSgpCiB7CiAgICAgW21fdmlldyBfZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGVGb3JNYWlu
RnJhbWVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGll
bnRJbXBsLmgKaW5kZXggNjhmZDY3ZS4uOGRlYWViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC0xMTYsNiArMTE2LDcgQEAg
cHJpdmF0ZToKIAogICAgIHZpcnR1YWwgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHRha2VWaWV3U25h
cHNob3QoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVudFdhc05vdEhhbmRs
ZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBjbGVhckN1c3RvbVN3aXBlVmlld3MoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1
YWwgdm9pZCBhY2Nlc3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2VuUmVjZWl2ZWQoY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggNmFjNWFhOS4uMzdmNjg5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTU0
Myw2ICs1NDMsMTEgQEAgYm9vbCBQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5
U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvclN0cmluZykKICAgICByZXR1cm4gW21fd2tW
aWV3IF9leGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3RvcjpOU1NlbGVjdG9yRnJvbVN0cmluZyhz
ZWxlY3RvclN0cmluZyldOwogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhckN1c3RvbVN3
aXBlVmlld3MoKQoreworICAgIHJldHVybiBbbV93a1ZpZXcgX3NldEN1c3RvbVN3aXBlVmlld3M6
QFtdXTsKK30KKwogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQogdWludDY0X3QgUGFn
ZUNsaWVudEltcGw6OmFkZERpY3RhdGlvbkFsdGVybmF0aXZlcyhjb25zdCBSZXRhaW5QdHI8TlNU
ZXh0QWx0ZXJuYXRpdmVzPiYgYWx0ZXJuYXRpdmVzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDBkODBlNzkuLjQ5MTRlYjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTI1NDcsNyArMjU0NywxMyBA
QCBzdGF0aWMgdm9pZCBjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0ZvckZpbGVVcGxvYWQoTlNQYXN0
ZWJvYXJkICpwYXN0ZWJvYXJkLCBTYW5kYgogICAgIENHU0NhcHR1cmVXaW5kb3dzQ29udGVudHNU
b1JlY3QoQ0dTTWFpbkNvbm5lY3Rpb25JRCgpLCAmd2luZG93SUQsIDEsIENHUmVjdE51bGwsICZj
Z1dpbmRvd0ltYWdlKTsKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gd2luZG93U25hcHNob3RJ
bWFnZSA9IGFkb3B0Q0YoY2dXaW5kb3dJbWFnZSk7CiAKLSAgICBOU1JlY3Qgd2luZG93Q2FwdHVy
ZVJlY3QgPSBbc2VsZiBjb252ZXJ0UmVjdDpzZWxmLmJvdW5kcyB0b1ZpZXc6bmlsXTsKKyAgICBO
U1JlY3Qgd2luZG93Q2FwdHVyZVJlY3Q7CisgICAgRmxvYXRSZWN0IGJvdW5kc0ZvckN1c3RvbVN3
aXBlVmlld3MgPSBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT53aW5kb3dSZWxhdGl2ZUJvdW5k
c0ZvckN1c3RvbVN3aXBlVmlld3MoKTsKKyAgICBpZiAoIWJvdW5kc0ZvckN1c3RvbVN3aXBlVmll
d3MuaXNFbXB0eSgpKQorICAgICAgICB3aW5kb3dDYXB0dXJlUmVjdCA9IGJvdW5kc0ZvckN1c3Rv
bVN3aXBlVmlld3M7CisgICAgZWxzZQorICAgICAgICB3aW5kb3dDYXB0dXJlUmVjdCA9IFtzZWxm
IGNvbnZlcnRSZWN0OnNlbGYuYm91bmRzIHRvVmlldzpuaWxdOworCiAgICAgTlNSZWN0IHdpbmRv
d0NhcHR1cmVTY3JlZW5SZWN0ID0gW3dpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOndpbmRvd0Nh
cHR1cmVSZWN0XTsKICAgICBDR1JlY3Qgd2luZG93U2NyZWVuUmVjdDsKICAgICBDR1NHZXRTY3Jl
ZW5SZWN0Rm9yV2luZG93KENHU01haW5Db25uZWN0aW9uSUQoKSwgKENHU1dpbmRvd0lEKVt3aW5k
b3cgd2luZG93TnVtYmVyXSwgJndpbmRvd1NjcmVlblJlY3QpOwpAQCAtMzMzMCw2ICszMzM2LDE3
IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJp
bmcgKnBhdGgpCiAgICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9
CiAKKy0gKHZvaWQpX3NldEN1c3RvbVN3aXBlVmlld3M6KE5TQXJyYXkgKiljdXN0b21Td2lwZVZp
ZXdzCit7CisgICAgW3NlbGYgX2Vuc3VyZUdlc3R1cmVDb250cm9sbGVyXTsKKworICAgIFZlY3Rv
cjxSZXRhaW5QdHI8TlNWaWV3Pj4gdmlld3M7CisgICAgZm9yIChOU1ZpZXcgKnZpZXcgaW4gY3Vz
dG9tU3dpcGVWaWV3cykKKyAgICAgICAgdmlld3MuYXBwZW5kKHZpZXcpOworCisgICAgX2RhdGEt
Pl9nZXN0dXJlQ29udHJvbGxlci0+c2V0Q3VzdG9tU3dpcGVWaWV3cyh2aWV3cyk7Cit9CisKIEBl
bmQKIAogQGltcGxlbWVudGF0aW9uIFdLUmVzcG9uZGVyQ2hhaW5TaW5rCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAzMThhZmU5Li4wODg1ZjU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTE3NSw2ICsxNzUsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBDQUxheWVyICphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHRha2VWaWV3U25hcHNob3Qo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3Jl
KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFy
Q3VzdG9tU3dpcGVWaWV3cygpID0gMDsKICNlbmRpZgogCiAjaWYgVVNFKEFQUEtJVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWFkZDYxYi4uMGZiZWY3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgxOSw2
ICs4MTksMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigp
CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qIGFkZGVkLCBWZWN0b3I8UmVmUHRyPEFQSTo6T2JqZWN0Pj4qIHJlbW92ZWQp
CiB7CiAgICAgbV9sb2FkZXJDbGllbnQtPmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdCh0aGlzLCBh
ZGRlZCwgcmVtb3ZlZCk7CisKKyNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCisg
ICAgbV9wYWdlQ2xpZW50LmNsZWFyQ3VzdG9tU3dpcGVWaWV3cygpOworI2VuZGlmCiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5Ojp3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRl
bUlELCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKaW5kZXggNjcxNmRjOC4u
YWY2MWUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlci5oCkBAIC0zNSw2ICszNSw3IEBACiAKIE9CSkNfQ0xBU1MgQ0FMYXll
cjsKIE9CSkNfQ0xBU1MgTlNFdmVudDsKK09CSkNfQ0xBU1MgTlNWaWV3OwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApAQCAtNTcsNiArNTgsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aGVlbEV2
ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShOU0V2ZW50ICopOwogCisgICAgdm9pZCBzZXRDdXN0
b21Td2lwZVZpZXdzKFZlY3RvcjxSZXRhaW5QdHI8TlNWaWV3Pj4gdmlld3MpIHsgbV9jdXN0b21T
d2lwZVZpZXdzID0gdmlld3M7IH0KKyAgICBWZWN0b3I8UmV0YWluUHRyPE5TVmlldz4+IGN1c3Rv
bVN3aXBlVmlld3MoKSBjb25zdCB7IHJldHVybiBtX2N1c3RvbVN3aXBlVmlld3M7IH0KKyAgICBX
ZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVsYXRpdmVCb3VuZHNGb3JDdXN0b21Td2lwZVZpZXdz
KCkgY29uc3Q7CisKICAgICB2b2lkIGVuZEFjdGl2ZUdlc3R1cmUoKTsKIAogICAgIGVudW0gY2xh
c3MgVmlld0dlc3R1cmVUeXBlIHsKQEAgLTEwNSw4ICsxMTAsMTIgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fZnJhbWVIYW5kbGVzTWFnbmlmaWNhdGlvbkdlc3R1cmU7CiAKICAgICBSZXRhaW5QdHI8
Q0FMYXllcj4gbV9zd2lwZVNuYXBzaG90TGF5ZXI7CisgICAgVmVjdG9yPFJldGFpblB0cjxDQUxh
eWVyPj4gbV9jdXJyZW50U3dpcGVMaXZlTGF5ZXJzOworCiAgICAgU3dpcGVUcmFuc2l0aW9uU3R5
bGUgbV9zd2lwZVRyYW5zaXRpb25TdHlsZTsKICAgICBXZWJDb3JlOjpUaW1lcjxWaWV3R2VzdHVy
ZUNvbnRyb2xsZXI+IG1fc3dpcGVXYXRjaGRvZ1RpbWVyOworICAgIFZlY3RvcjxSZXRhaW5QdHI8
TlNWaWV3Pj4gbV9jdXN0b21Td2lwZVZpZXdzOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX2N1
cnJlbnRTd2lwZUN1c3RvbVZpZXdCb3VuZHM7CiAKICAgICAvLyBJZiB3ZSBuZWVkIHRvIHdhaXQg
Zm9yIGNvbnRlbnQgdG8gZGVjaWRlIGlmIGl0IGlzIGdvaW5nIHRvIGNvbnN1bWUKICAgICAvLyB0
aGUgc2Nyb2xsIGV2ZW50IHRoYXQgd291bGQgaGF2ZSBzdGFydGVkIGEgc3dpcGUsIHdlJ2xsIGZp
bGwgdGhlc2UgaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmll
d0dlc3R1cmVDb250cm9sbGVyLm1tCmluZGV4IGQ4Y2FlMzcuLjliOGViY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLm1t
CkBAIC0zMTAsMTEgKzMxMCw0NyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6dHJhY2tT
d2lwZUdlc3R1cmUoTlNFdmVudCAqZXZlbnQsIFN3aXBlRGlyZWN0aW9uIGRpcgogICAgIH1dOwog
fQogCitGbG9hdFJlY3QgVmlld0dlc3R1cmVDb250cm9sbGVyOjp3aW5kb3dSZWxhdGl2ZUJvdW5k
c0ZvckN1c3RvbVN3aXBlVmlld3MoKSBjb25zdAoreworICAgIEZsb2F0UmVjdCBzd2lwZUFyZWE7
CisgICAgZm9yIChjb25zdCBhdXRvJiB2aWV3IDogbV9jdXN0b21Td2lwZVZpZXdzKQorICAgICAg
ICBzd2lwZUFyZWEudW5pdGUoW3ZpZXcgY29udmVydFJlY3Q6W3ZpZXcgYm91bmRzXSB0b1ZpZXc6
bmlsXSk7CisgICAgcmV0dXJuIHN3aXBlQXJlYTsKK30KKworc3RhdGljIENBTGF5ZXIgKmxlYXN0
Q29tbW9uQW5jZXN0b3JMYXllcihWZWN0b3I8UmV0YWluUHRyPENBTGF5ZXI+PiYgbGF5ZXJzKQor
eworICAgIFZlY3RvcjxWZWN0b3I8Q0FMYXllciAqPj4gbGl2ZUxheWVyUGF0aHNGcm9tUm9vdChs
YXllcnMuc2l6ZSgpKTsKKworICAgIHNpemVfdCBzaG9ydGVzdFBhdGhMZW5ndGggPSBzdGQ6Om51
bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpOworCisgICAgZm9yIChzaXplX3QgbGF5ZXJJbmRl
eCA9IDA7IGxheWVySW5kZXggPCBsYXllcnMuc2l6ZSgpOyBsYXllckluZGV4KyspIHsKKyAgICAg
ICAgQ0FMYXllciAqcGFyZW50ID0gW2xheWVyc1tsYXllckluZGV4XSBzdXBlcmxheWVyXTsKKyAg
ICAgICAgd2hpbGUgKHBhcmVudCkgeworICAgICAgICAgICAgbGl2ZUxheWVyUGF0aHNGcm9tUm9v
dFtsYXllckluZGV4XS5pbnNlcnQoMCwgcGFyZW50KTsKKyAgICAgICAgICAgIHNob3J0ZXN0UGF0
aExlbmd0aCA9IHN0ZDo6bWluKHNob3J0ZXN0UGF0aExlbmd0aCwgbGl2ZUxheWVyUGF0aHNGcm9t
Um9vdFtsYXllckluZGV4XS5zaXplKCkpOworICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnN1
cGVybGF5ZXI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBwYXRoSW5kZXgg
PSAwOyBwYXRoSW5kZXggPCBzaG9ydGVzdFBhdGhMZW5ndGg7IHBhdGhJbmRleCsrKSB7CisgICAg
ICAgIENBTGF5ZXIgKmZpcnN0UGF0aExheWVyID0gbGl2ZUxheWVyUGF0aHNGcm9tUm9vdFswXVtw
YXRoSW5kZXhdOworICAgICAgICBmb3IgKHNpemVfdCBsYXllckluZGV4ID0gMTsgbGF5ZXJJbmRl
eCA8IGxheWVycy5zaXplKCk7IGxheWVySW5kZXgrKykgeworICAgICAgICAgICAgaWYgKGxpdmVM
YXllclBhdGhzRnJvbVJvb3RbbGF5ZXJJbmRleF1bcGF0aEluZGV4XSAhPSBmaXJzdFBhdGhMYXll
cikKKyAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3RQYXRoTGF5ZXI7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICByZXR1cm4gbGl2ZUxheWVyUGF0aHNGcm9tUm9vdFswXVtzaG9ydGVzdFBhdGhM
ZW5ndGhdOworfQorCiB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1
cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwgU3dpcGVEaXJlY3Rpb24gZGly
ZWN0aW9uKQogeworICAgIEFTU0VSVChtX2N1cnJlbnRTd2lwZUxpdmVMYXllcnMuaXNFbXB0eSgp
KTsKKwogICAgIG1fYWN0aXZlR2VzdHVyZVR5cGUgPSBWaWV3R2VzdHVyZVR5cGU6OlN3aXBlOwog
Ci0gICAgQ0FMYXllciAqcm9vdExheWVyID0gbV93ZWJQYWdlUHJveHkuYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ1Jvb3RMYXllcigpOworICAgIENBTGF5ZXIgKnJvb3RDb250ZW50TGF5ZXIgPSBtX3dl
YlBhZ2VQcm94eS5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCk7CiAKICAgICBtX3N3
aXBlU25hcHNob3RMYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7CiAgICAg
W21fc3dpcGVTbmFwc2hvdExheWVyIHNldEJhY2tncm91bmRDb2xvcjpDR0NvbG9yR2V0Q29uc3Rh
bnRDb2xvcihrQ0dDb2xvcldoaXRlKV07CkBAIC0zMzMsMTEgKzM2OSwyNiBAQCB2b2lkIFZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRl
bSogdGFyZ2V0SXRlbQogI2VuZGlmCiAgICAgfQogCisgICAgbV9jdXJyZW50U3dpcGVDdXN0b21W
aWV3Qm91bmRzID0gd2luZG93UmVsYXRpdmVCb3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzKCk7CisK
KyAgICBGbG9hdFJlY3Qgc3dpcGVBcmVhOworICAgIGlmICghbV9jdXN0b21Td2lwZVZpZXdzLmlz
RW1wdHkoKSkgeworICAgICAgICBzd2lwZUFyZWEgPSBtX2N1cnJlbnRTd2lwZUN1c3RvbVZpZXdC
b3VuZHM7CisKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiB2aWV3IDogbV9jdXN0b21Td2lwZVZp
ZXdzKSB7CisgICAgICAgICAgICBDQUxheWVyICpsYXllciA9IFt2aWV3IGxheWVyXTsKKyAgICAg
ICAgICAgIEFTU0VSVChsYXllcik7CisgICAgICAgICAgICBtX2N1cnJlbnRTd2lwZUxpdmVMYXll
cnMuYXBwZW5kKGxheWVyKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHN3aXBl
QXJlYSA9IHJvb3RDb250ZW50TGF5ZXIuZnJhbWU7CisgICAgICAgIG1fY3VycmVudFN3aXBlTGl2
ZUxheWVycy5hcHBlbmQocm9vdENvbnRlbnRMYXllcik7CisgICAgfQorCiAgICAgW21fc3dpcGVT
bmFwc2hvdExheWVyIHNldENvbnRlbnRzR3Jhdml0eTprQ0FHcmF2aXR5VG9wTGVmdF07CiAgICAg
W21fc3dpcGVTbmFwc2hvdExheWVyIHNldENvbnRlbnRzU2NhbGU6bV93ZWJQYWdlUHJveHkuZGV2
aWNlU2NhbGVGYWN0b3IoKV07Ci0gICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldEZyYW1lOnJv
b3RMYXllci5mcmFtZV07CiAgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldEFuY2hvclBvaW50
OkNHUG9pbnRaZXJvXTsKLSAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0UG9zaXRpb246Q0dQ
b2ludFplcm9dOworICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRGcmFtZTpzd2lwZUFyZWFd
OwogICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXROYW1lOkAiR2VzdHVyZSBTd2lwZSBTbmFw
c2hvdCBMYXllciJdOwogICAgIFttX3N3aXBlU25hcHNob3RMYXllciB3ZWJfZGlzYWJsZUFsbEFj
dGlvbnNdOwogCkBAIC0zNDcsNDIgKzM5OCw2OCBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6YmVnaW5Td2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbQog
ICAgICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0RmlsdGVyczpAW2ZpbHRlcl1dOwogICAg
IH0KIAotICAgIGlmIChtX3N3aXBlVHJhbnNpdGlvblN0eWxlID09IFN3aXBlVHJhbnNpdGlvblN0
eWxlOjpPdmVybGFwKSB7Ci0gICAgICAgIFJldGFpblB0cjxDR1BhdGhSZWY+IHNoYWRvd1BhdGgg
PSBhZG9wdENGKENHUGF0aENyZWF0ZVdpdGhSZWN0KFtyb290TGF5ZXIgYm91bmRzXSwgMCkpOwor
ICAgIC8vIFdlIGRvbid0IGtub3cgZW5vdWdoIGFib3V0IHRoZSBjdXN0b20gdmlld3MnIGhpZXJh
cmNoeSB0byBhcHBseSBhIHNoYWRvdy4KKyAgICBpZiAobV9zd2lwZVRyYW5zaXRpb25TdHlsZSA9
PSBTd2lwZVRyYW5zaXRpb25TdHlsZTo6T3ZlcmxhcCAmJiBtX2N1c3RvbVN3aXBlVmlld3MuaXNF
bXB0eSgpKSB7CisgICAgICAgIFJldGFpblB0cjxDR1BhdGhSZWY+IHNoYWRvd1BhdGggPSBhZG9w
dENGKENHUGF0aENyZWF0ZVdpdGhSZWN0KFttX3N3aXBlU25hcHNob3RMYXllciBib3VuZHNdLCAw
KSk7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCkgewor
ICAgICAgICAgICAgW3Jvb3RDb250ZW50TGF5ZXIgc2V0U2hhZG93Q29sb3I6Q0dDb2xvckdldENv
bnN0YW50Q29sb3Ioa0NHQ29sb3JCbGFjayldOworICAgICAgICAgICAgW3Jvb3RDb250ZW50TGF5
ZXIgc2V0U2hhZG93T3BhY2l0eTpzd2lwZU92ZXJsYXlTaGFkb3dPcGFjaXR5XTsKKyAgICAgICAg
ICAgIFtyb290Q29udGVudExheWVyIHNldFNoYWRvd1JhZGl1czpzd2lwZU92ZXJsYXlTaGFkb3dS
YWRpdXNdOworICAgICAgICAgICAgW3Jvb3RDb250ZW50TGF5ZXIgc2V0U2hhZG93UGF0aDpzaGFk
b3dQYXRoLmdldCgpXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFttX3N3aXBlU25h
cHNob3RMYXllciBzZXRTaGFkb3dDb2xvcjpDR0NvbG9yR2V0Q29uc3RhbnRDb2xvcihrQ0dDb2xv
ckJsYWNrKV07CisgICAgICAgICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0U2hhZG93T3Bh
Y2l0eTpzd2lwZU92ZXJsYXlTaGFkb3dPcGFjaXR5XTsKKyAgICAgICAgICAgIFttX3N3aXBlU25h
cHNob3RMYXllciBzZXRTaGFkb3dSYWRpdXM6c3dpcGVPdmVybGF5U2hhZG93UmFkaXVzXTsKKyAg
ICAgICAgICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRTaGFkb3dQYXRoOnNoYWRvd1BhdGgu
Z2V0KCldOworICAgICAgICB9CisgICAgfQogCi0gICAgICAgIFttX3N3aXBlU25hcHNob3RMYXll
ciBzZXRTaGFkb3dDb2xvcjpDR0NvbG9yR2V0Q29uc3RhbnRDb2xvcihrQ0dDb2xvckJsYWNrKV07
Ci0gICAgICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRTaGFkb3dPcGFjaXR5OnN3aXBlT3Zl
cmxheVNoYWRvd09wYWNpdHldOwotICAgICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0U2hh
ZG93UmFkaXVzOnN3aXBlT3ZlcmxheVNoYWRvd1JhZGl1c107Ci0gICAgICAgIFttX3N3aXBlU25h
cHNob3RMYXllciBzZXRTaGFkb3dQYXRoOnNoYWRvd1BhdGguZ2V0KCldOworICAgIC8vIElmIHdl
IGhhdmUgY3VzdG9tIHN3aXBpbmcgdmlld3MsIHdlIGFzc3VtZSB0aGF0IHRoZSB2aWV3cyB3ZXJl
IHBhc3NlZCB0byB1cyBpbiBiYWNrLXRvLWZyb250IHotb3JkZXIuCisgICAgQ0FMYXllciAqbGF5
ZXJBZGphY2VudFRvU25hcHNob3QgPSBkaXJlY3Rpb24gPT0gU3dpcGVEaXJlY3Rpb246OkxlZnQg
PyBtX2N1cnJlbnRTd2lwZUxpdmVMYXllcnMuZmlyc3QoKS5nZXQoKSA6IG1fY3VycmVudFN3aXBl
TGl2ZUxheWVycy5sYXN0KCkuZ2V0KCk7CisgICAgQ0FMYXllciAqc25hcHNob3RMYXllclBhcmVu
dDsKIAotICAgICAgICBbcm9vdExheWVyIHNldFNoYWRvd0NvbG9yOkNHQ29sb3JHZXRDb25zdGFu
dENvbG9yKGtDR0NvbG9yQmxhY2spXTsKLSAgICAgICAgW3Jvb3RMYXllciBzZXRTaGFkb3dPcGFj
aXR5OnN3aXBlT3ZlcmxheVNoYWRvd09wYWNpdHldOwotICAgICAgICBbcm9vdExheWVyIHNldFNo
YWRvd1JhZGl1czpzd2lwZU92ZXJsYXlTaGFkb3dSYWRpdXNdOwotICAgICAgICBbcm9vdExheWVy
IHNldFNoYWRvd1BhdGg6c2hhZG93UGF0aC5nZXQoKV07CisgICAgaWYgKG1fY3VycmVudFN3aXBl
TGl2ZUxheWVycy5zaXplKCkgPT0gMSkKKyAgICAgICAgc25hcHNob3RMYXllclBhcmVudCA9IFtt
X2N1cnJlbnRTd2lwZUxpdmVMYXllcnNbMF0gc3VwZXJsYXllcl07CisgICAgZWxzZSB7CisgICAg
ICAgIC8vIFdlIGluc2VydCBvdXIgc25hcHNob3QgaW50byB0aGUgZmlyc3Qgc2hhcmVkIHN1cGVy
bGF5ZXIgb2YgdGhlIGN1c3RvbSB2aWV3cycgbGF5ZXIsIGFib3ZlIHRoZSBmcm9udG1vc3Qgb3Ig
YmVsb3cgdGhlIGJvdHRvbW1vc3QgbGF5ZXIuCisgICAgICAgIHNuYXBzaG90TGF5ZXJQYXJlbnQg
PSBsZWFzdENvbW1vbkFuY2VzdG9yTGF5ZXIobV9jdXJyZW50U3dpcGVMaXZlTGF5ZXJzKTsKKwor
ICAgICAgICAvLyBJZiB0aGUgbGF5ZXJzIGFyZSBub3QgYWxsIHNpYmxpbmdzLCBmaW5kIHRoZSBj
aGlsZCBvZiB0aGUgbGF5ZXIgd2UncmUgZ29pbmcgdG8gaW5zZXJ0IHRoZSBzbmFwc2hvdCBpbnRv
IHdoaWNoIGhhcyB0aGUgZnJvbnRtb3N0L2JvdHRvbW1vc3QgbGF5ZXIgYXMgYSBjaGlsZC4KKyAg
ICAgICAgd2hpbGUgKHNuYXBzaG90TGF5ZXJQYXJlbnQgIT0gbGF5ZXJBZGphY2VudFRvU25hcHNo
b3Quc3VwZXJsYXllcikKKyAgICAgICAgICAgIGxheWVyQWRqYWNlbnRUb1NuYXBzaG90ID0gbGF5
ZXJBZGphY2VudFRvU25hcHNob3Quc3VwZXJsYXllcjsKICAgICB9CiAKICAgICBpZiAoZGlyZWN0
aW9uID09IFN3aXBlRGlyZWN0aW9uOjpMZWZ0KQotICAgICAgICBbcm9vdExheWVyLnN1cGVybGF5
ZXIgaW5zZXJ0U3VibGF5ZXI6bV9zd2lwZVNuYXBzaG90TGF5ZXIuZ2V0KCkgYmVsb3c6cm9vdExh
eWVyXTsKKyAgICAgICAgW3NuYXBzaG90TGF5ZXJQYXJlbnQgaW5zZXJ0U3VibGF5ZXI6bV9zd2lw
ZVNuYXBzaG90TGF5ZXIuZ2V0KCkgYmVsb3c6bGF5ZXJBZGphY2VudFRvU25hcHNob3RdOwogICAg
IGVsc2UKLSAgICAgICAgW3Jvb3RMYXllci5zdXBlcmxheWVyIGluc2VydFN1YmxheWVyOm1fc3dp
cGVTbmFwc2hvdExheWVyLmdldCgpIGFib3ZlOnJvb3RMYXllcl07CisgICAgICAgIFtzbmFwc2hv
dExheWVyUGFyZW50IGluc2VydFN1YmxheWVyOm1fc3dpcGVTbmFwc2hvdExheWVyLmdldCgpIGFi
b3ZlOmxheWVyQWRqYWNlbnRUb1NuYXBzaG90XTsKIH0KIAogdm9pZCBWaWV3R2VzdHVyZUNvbnRy
b2xsZXI6OmhhbmRsZVN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJ
dGVtLCBkb3VibGUgcHJvZ3Jlc3MsIFN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBB
U1NFUlQobV9hY3RpdmVHZXN0dXJlVHlwZSA9PSBWaWV3R2VzdHVyZVR5cGU6OlN3aXBlKTsKIAot
ICAgIENBTGF5ZXIgKnJvb3RMYXllciA9IG1fd2ViUGFnZVByb3h5LmFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdSb290TGF5ZXIoKTsKLSAgICBkb3VibGUgd2lkdGggPSByb290TGF5ZXIuYm91bmRzLnNp
emUud2lkdGg7CisgICAgZG91YmxlIHdpZHRoOworICAgIGlmICghbV9jdXN0b21Td2lwZVZpZXdz
LmlzRW1wdHkoKSkKKyAgICAgICAgd2lkdGggPSBtX2N1cnJlbnRTd2lwZUN1c3RvbVZpZXdCb3Vu
ZHMud2lkdGgoKTsKKyAgICBlbHNlCisgICAgICAgIHdpZHRoID0gbV93ZWJQYWdlUHJveHkuYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpLmZyYW1lLnNpemUud2lkdGg7CisKICAgICBk
b3VibGUgc3dpcGluZ0xheWVyT2Zmc2V0ID0gZmxvb3Iod2lkdGggKiBwcm9ncmVzcyk7CiAKICAg
ICBpZiAobV9zd2lwZVRyYW5zaXRpb25TdHlsZSA9PSBTd2lwZVRyYW5zaXRpb25TdHlsZTo6T3Zl
cmxhcCkgewotICAgICAgICBpZiAoZGlyZWN0aW9uID09IFN3aXBlRGlyZWN0aW9uOjpMZWZ0KQot
ICAgICAgICAgICAgW3Jvb3RMYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShzd2lwaW5nTGF5
ZXJPZmZzZXQsIDApXTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgW21fc3dpcGVTbmFwc2hv
dExheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKHdpZHRoICsgc3dpcGluZ0xheWVyT2Zmc2V0
LCAwKV07Ci0gICAgfSBlbHNlIGlmIChtX3N3aXBlVHJhbnNpdGlvblN0eWxlID09IFN3aXBlVHJh
bnNpdGlvblN0eWxlOjpQdXNoKSB7Ci0gICAgICAgIFtyb290TGF5ZXIgc2V0UG9zaXRpb246Q0dQ
b2ludE1ha2Uoc3dpcGluZ0xheWVyT2Zmc2V0LCAwKV07Ci0gICAgICAgIFttX3N3aXBlU25hcHNo
b3RMYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZSgoZGlyZWN0aW9uID09IFN3aXBlRGlyZWN0
aW9uOjpMZWZ0ID8gLXdpZHRoIDogd2lkdGgpICsgc3dpcGluZ0xheWVyT2Zmc2V0LCAwKV07Cisg
ICAgICAgIGlmIChkaXJlY3Rpb24gPT0gU3dpcGVEaXJlY3Rpb246OlJpZ2h0KQorICAgICAgICAg
ICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldFRyYW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVRy
YW5zbGF0aW9uKHdpZHRoICsgc3dpcGluZ0xheWVyT2Zmc2V0LCAwLCAwKV07CisgICAgfSBlbHNl
IGlmIChtX3N3aXBlVHJhbnNpdGlvblN0eWxlID09IFN3aXBlVHJhbnNpdGlvblN0eWxlOjpQdXNo
KQorICAgICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0VHJhbnNmb3JtOkNBVHJhbnNmb3Jt
M0RNYWtlVHJhbnNsYXRpb24oKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCA/IC13
aWR0aCA6IHdpZHRoKSArIHN3aXBpbmdMYXllck9mZnNldCwgMCwgMCldOworCisgICAgZm9yIChj
b25zdCBhdXRvJiBsYXllciA6IG1fY3VycmVudFN3aXBlTGl2ZUxheWVycykgeworICAgICAgICBp
ZiAobV9zd2lwZVRyYW5zaXRpb25TdHlsZSA9PSBTd2lwZVRyYW5zaXRpb25TdHlsZTo6T3Zlcmxh
cCkgeworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBTd2lwZURpcmVjdGlvbjo6TGVmdCkK
KyAgICAgICAgICAgICAgICBbbGF5ZXIgc2V0VHJhbnNmb3JtOkNBVHJhbnNmb3JtM0RNYWtlVHJh
bnNsYXRpb24oc3dpcGluZ0xheWVyT2Zmc2V0LCAwLCAwKV07CisgICAgICAgIH0gZWxzZSBpZiAo
bV9zd2lwZVRyYW5zaXRpb25TdHlsZSA9PSBTd2lwZVRyYW5zaXRpb25TdHlsZTo6UHVzaCkKKyAg
ICAgICAgICAgIFtsYXllciBzZXRUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VUcmFuc2xhdGlv
bihzd2lwaW5nTGF5ZXJPZmZzZXQsIDAsIDApXTsKICAgICB9CiB9CiAKQEAgLTQ0MSwxMCArNTE4
LDE0IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpyZW1vdmVTd2lwZVNuYXBzaG90KCkK
ICAgICAgICAgSU9TdXJmYWNlU2V0UHVyZ2VhYmxlKHNuYXBzaG90U3VyZmFjZSwga0lPU3VyZmFj
ZVB1cmdlYWJsZVZvbGF0aWxlLCBudWxscHRyKTsKICNlbmRpZgogCi0gICAgW21fd2ViUGFnZVBy
b3h5LmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBzZXRQb3NpdGlvbjpDR1BvaW50
WmVyb107CisgICAgZm9yIChjb25zdCBhdXRvJiBsYXllciA6IG1fY3VycmVudFN3aXBlTGl2ZUxh
eWVycykKKyAgICAgICAgW2xheWVyIHNldFRyYW5zZm9ybTpDQVRyYW5zZm9ybTNESWRlbnRpdHld
OworCiAgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKICAg
ICBtX3N3aXBlU25hcHNob3RMYXllciA9IG51bGxwdHI7CiAKKyAgICBtX2N1cnJlbnRTd2lwZUxp
dmVMYXllcnMuY2xlYXIoKTsKKwogICAgIG1fYWN0aXZlR2VzdHVyZVR5cGUgPSBWaWV3R2VzdHVy
ZVR5cGU6Ok5vbmU7CiB9CiAK
</data>
<flag name="review"
          id="246658"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>