<?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>108922</bug_id>
          
          <creation_ts>2013-02-05 01:24:46 -0800</creation_ts>
          <short_desc>Coordinated Graphics: Make CoordinatedGraphicsScene not know contents size.</short_desc>
          <delta_ts>2013-02-11 22:28:36 -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>Layout and Rendering</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>
          <dependson>108051</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <cc>abecsi</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>825261</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-05 01:24:46 -0800</bug_when>
    <thetext>Currently, CoordinatedGraphicsScene has two methods to know contents size:
setContentsSize() and setVisibleContentsRect(). Contents size is used when
adjusting a scroll position, but adjustment is not needed because
PageViewportController already adjusts a scroll position. So this patch makes
CoordinatedGraphicsScene not know contents size.

In addition, now DrawingAreaProxy::coordinatedLayerTreeHostProxy() is only used
to get CoordinatedGraphicsScene.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825263</commentid>
    <comment_count>1</comment_count>
      <attachid>186573</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-05 01:28:05 -0800</bug_when>
    <thetext>Created attachment 186573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825303</commentid>
    <comment_count>2</comment_count>
      <attachid>186573</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-05 02:23:15 -0800</bug_when>
    <thetext>Comment on attachment 186573
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Currently, CoordinatedGraphicsScene has two methods to know contents size:
&gt; +        setContentsSize() and setVisibleContentsRect(). Contents size is used when
&gt; +        adjusting a scroll position, but adjustment is not needed because
&gt; +        PageViewportController already adjusts a scroll position. So this patch makes
&gt; +        CoordinatedGraphicsScene not know contents size.

I guess this is not PageViewportController specific... but more about who has the responsibility.

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:-63
&gt; -static FloatPoint boundedScrollPosition(const FloatPoint&amp; scrollPosition, const FloatRect&amp; visibleContentRect, const FloatSize&amp; contentSize)
&gt; -{
&gt; -    float scrollPositionX = std::max(scrollPosition.x(), 0.0f);
&gt; -    scrollPositionX = std::min(scrollPositionX, contentSize.width() - visibleContentRect.width());
&gt; -
&gt; -    float scrollPositionY = std::max(scrollPosition.y(), 0.0f);
&gt; -    scrollPositionY = std::min(scrollPositionY, contentSize.height() - visibleContentRect.height());
&gt; -    return FloatPoint(scrollPositionX, scrollPositionY);
&gt; -}
&gt; -

This indeed seems like &quot;view specific&quot; code as as the view might implement bouncing etc, I agree that this might not belong here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825310</commentid>
    <comment_count>3</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-05 02:36:31 -0800</bug_when>
    <thetext>(In reply to comment #2)

Thank you for review!

&gt; (From update of attachment 186573 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186573&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        PageViewportController already adjusts a scroll position. So this patch makes
&gt; &gt; +        CoordinatedGraphicsScene not know contents size.
&gt; 
&gt; I guess this is not PageViewportController specific... but more about who has the responsibility.

I&apos;ll change the changelog.

&gt; &gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:-63
&gt; This indeed seems like &quot;view specific&quot; code as as the view might implement bouncing etc, I agree that this might not belong here

I think so :)

noam, kenneth agreed. could you review? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825317</commentid>
    <comment_count>4</comment_count>
      <attachid>186573</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-05 02:45:19 -0800</bug_when>
    <thetext>Comment on attachment 186573
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:192
&gt; +    FloatSize delta = m_scrollPosition - m_renderedContentsScrollPosition;

this is used for fixed elements positioning while scrolling. Have you checked that your patch does not bring regressions there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825327</commentid>
    <comment_count>5</comment_count>
      <attachid>186589</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-05 02:51:19 -0800</bug_when>
    <thetext>Created attachment 186589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825330</commentid>
    <comment_count>6</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-05 02:55:36 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 186573 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186573&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:192
&gt; &gt; +    FloatSize delta = m_scrollPosition - m_renderedContentsScrollPosition;
&gt; 
&gt; this is used for fixed elements positioning while scrolling. Have you checked that your patch does not bring regressions there?

I tested ManualTests/fixed-position.html and ManualTests/nested-fixed-position.html using Qt and EFL Minibrowser.
and I feel the same between before and after.

In theory, it is impossible to make regression, because the major two behaviors are not changed: the way to get m_renderedContentsScrollPosition, and the way to get current scroll position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825352</commentid>
    <comment_count>7</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-05 03:44:35 -0800</bug_when>
    <thetext>
&gt; In theory, it is impossible to make regression
Well my experience say that it is always possible :) but since you&apos;ve checked I&apos;m OK with the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825411</commentid>
    <comment_count>8</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-05 05:39:16 -0800</bug_when>
    <thetext>I&apos;m ok with the patch as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826065</commentid>
    <comment_count>9</comment_count>
      <attachid>186589</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-05 21:32:12 -0800</bug_when>
    <thetext>Comment on attachment 186589
Patch

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

I have no problem with this for WK2. Feel free to go ahead with a real review.

&gt; Source/WebCore/ChangeLog:20
&gt; +        Test: ManualTests/fixed-position.html
&gt; +              ManualTests/nested-fixed-position.html

Is there really no ref-test covering this? :)
ManualTests are a very weak tool. If you feel the current ref-tests do not cover everything you need, please improve the test coverage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826104</commentid>
    <comment_count>10</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-05 23:16:47 -0800</bug_when>
    <thetext>&gt; Is there really no ref-test covering this? :)
&gt; ManualTests are a very weak tool. If you feel the current ref-tests do not cover everything you need, please improve the test coverage.

There are no current facilities to test things &quot;in motion&quot; in the UI process; E.g. how would you test that during a particular touch sequence there are no flickers/shakes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826122</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-05 23:50:03 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; There are no current facilities to test things &quot;in motion&quot; in the UI process; E.g. how would you test that during a particular touch sequence there are no flickers/shakes?

Yep, not much you can do for those.

Fortunately, such bugs are extremely rare.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826173</commentid>
    <comment_count>12</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-06 00:29:42 -0800</bug_when>
    <thetext>I wish we can cover this patch automatically. Unfortunately, I couldn&apos;t think of a way to test this in an automated fashion.

btw, noam, could you review? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826226</commentid>
    <comment_count>13</comment_count>
      <attachid>186589</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-06 01:41:12 -0800</bug_when>
    <thetext>Comment on attachment 186589
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:20
&gt;&gt; +              ManualTests/nested-fixed-position.html
&gt; 
&gt; Is there really no ref-test covering this? :)
&gt; ManualTests are a very weak tool. If you feel the current ref-tests do not cover everything you need, please improve the test coverage.

Please state in the changelog that this can only be tested manually since there is no automated testing facilities for in-motion touch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826256</commentid>
    <comment_count>14</comment_count>
      <attachid>186802</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-06 02:26:53 -0800</bug_when>
    <thetext>Created attachment 186802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826257</commentid>
    <comment_count>15</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-06 02:27:41 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 186589 [details])
&gt; Please state in the changelog that this can only be tested manually since there is no automated testing facilities for in-motion touch.

yes, Done. Thank you for improving changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829474</commentid>
    <comment_count>16</comment_count>
      <attachid>186802</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-11 00:35:38 -0800</bug_when>
    <thetext>Comment on attachment 186802
Patch

LGTM. Also signed off by Benjamin for WK2. Please run through EWS before committing; currently patch doesn&apos;t apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830542</commentid>
    <comment_count>17</comment_count>
      <attachid>187769</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-11 21:37:14 -0800</bug_when>
    <thetext>Created attachment 187769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830567</commentid>
    <comment_count>18</comment_count>
      <attachid>187769</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 22:28:29 -0800</bug_when>
    <thetext>Comment on attachment 187769
Patch

Clearing flags on attachment: 187769

Committed r142579: &lt;http://trac.webkit.org/changeset/142579&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830568</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 22:28:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186573</attachid>
            <date>2013-02-05 01:28:05 -0800</date>
            <delta_ts>2013-02-05 02:51:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108922-20130205182424.patch</filename>
            <type>text/plain</type>
            <size>14601</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBjZGNmN2ZjNjExYjEx
Zjg3YWE3N2U3NTZhZjBkOTQ3ODVmOGZmZi4uMzNmN2M0MWEyNTQ5MzU1MTY4OGE2MTk1ZjdhNzA1
MThlMTM1ZThjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEzLTAyLTA1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBNYWtlIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSBub3Qga25vdyBjb250
ZW50cyBzaXplLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA4OTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3VycmVudGx5LCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUgaGFzIHR3byBtZXRob2RzIHRv
IGtub3cgY29udGVudHMgc2l6ZToKKyAgICAgICAgc2V0Q29udGVudHNTaXplKCkgYW5kIHNldFZp
c2libGVDb250ZW50c1JlY3QoKS4gQ29udGVudHMgc2l6ZSBpcyB1c2VkIHdoZW4KKyAgICAgICAg
YWRqdXN0aW5nIGEgc2Nyb2xsIHBvc2l0aW9uLCBidXQgYWRqdXN0bWVudCBpcyBub3QgbmVlZGVk
IGJlY2F1c2UKKyAgICAgICAgUGFnZVZpZXdwb3J0Q29udHJvbGxlciBhbHJlYWR5IGFkanVzdHMg
YSBzY3JvbGwgcG9zaXRpb24uIFNvIHRoaXMgcGF0Y2ggbWFrZXMKKyAgICAgICAgQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lIG5vdCBrbm93IGNvbnRlbnRzIHNpemUuCisKKyAgICAgICAgSW4gYWRk
aXRpb24sIG5vdyBEcmF3aW5nQXJlYVByb3h5Ojpjb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94
eSgpIGlzIG9ubHkgdXNlZAorICAgICAgICB0byBnZXQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
LgorCisgICAgICAgIFRlc3Q6IE1hbnVhbFRlc3RzL2ZpeGVkLXBvc2l0aW9uLmh0bWwKKyAgICAg
ICAgICAgICAgTWFudWFsVGVzdHMvbmVzdGVkLWZpeGVkLXBvc2l0aW9uLmh0bWwKKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpzZXRTY3JvbGxQb3NpdGlvbkRlbHRh
SWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRTY3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFkanVzdFBvc2l0aW9uRm9yRml4ZWRMYXllcnMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSk6
CisKKzIwMTMtMDItMDUgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+
CisKICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IHJlbW92ZSB0aGUgRGlkQ2hhbmdlU2Ny
b2xsUG9zaXRpb24gbWVzc2FnZS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwODA1MQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2ZhMmZlYTY0MDIyOGVkMGIwYmQx
Mzg4YTI2NmQ2NTk5NTdlMWQ1NS4uYmRmNGMyNjA4MTU1Mjg3Yzk5ZWY4MDBiNDU2NWZlYmZmZWJm
ODIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDEzLTAyLTA1ICBIdWFuZyBEb25n
c3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5hdGVkIEdy
YXBoaWNzOiBNYWtlIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSBub3Qga25vdyBjb250ZW50cyBz
aXplLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4
OTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3Vy
cmVudGx5LCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUgaGFzIHR3byBtZXRob2RzIHRvIGtub3cg
Y29udGVudHMgc2l6ZToKKyAgICAgICAgc2V0Q29udGVudHNTaXplKCkgYW5kIHNldFZpc2libGVD
b250ZW50c1JlY3QoKS4gQ29udGVudHMgc2l6ZSBpcyB1c2VkIHdoZW4KKyAgICAgICAgYWRqdXN0
aW5nIGEgc2Nyb2xsIHBvc2l0aW9uLCBidXQgYWRqdXN0bWVudCBpcyBub3QgbmVlZGVkIGJlY2F1
c2UKKyAgICAgICAgUGFnZVZpZXdwb3J0Q29udHJvbGxlciBhbHJlYWR5IGFkanVzdHMgYSBzY3Jv
bGwgcG9zaXRpb24uIFNvIHRoaXMgcGF0Y2ggbWFrZXMKKyAgICAgICAgQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lIG5vdCBrbm93IGNvbnRlbnRzIHNpemUuCisKKyAgICAgICAgSW4gYWRkaXRpb24s
IG5vdyBEcmF3aW5nQXJlYVByb3h5Ojpjb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eSgpIGlz
IG9ubHkgdXNlZAorICAgICAgICB0byBnZXQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFR
dWlja1dlYlBhZ2VQcml2YXRlOjp1cGRhdGVTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3F0L3Jhdy9xcmF3d2Vidmlldy5jcHA6CisgICAgICAgIChRUmF3V2ViVmlldzo6c2V0U2l6ZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJl
ZUhvc3RQcm94eTo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdCk6CisgICAgICAgICogVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaDoKKyAg
ICAgICAgKENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvZWZsL1BhZ2VDbGllbnRMZWdhY3lJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudExlZ2FjeUltcGw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6ZGlkQ2hhbmdlQ29udGVudHNT
aXplKToKKworMjAxMy0wMi0wNSAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAw
Lm5ldD4KKwogICAgICAgICBDb29yZGluYXRlZCBHcmFwaGljczogcmVtb3ZlIHRoZSBEaWRDaGFu
Z2VTY3JvbGxQb3NpdGlvbiBtZXNzYWdlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MDUxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5k
ZXggZWRmZTMyMDc4ZDhmMjFhYjc4OGE0YWNmZTdkNWMyYmNmMWY0MjkwNi4uY2EzMjY1N2JkMGY2
MWU2MjM1YjdmNGFiYzQ1MDJkYWUzMjJlODgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5j
cHAKQEAgLTYwNyw2ICs2MDcsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c2V0U2Nyb2xs
UG9zaXRpb25EZWx0YUlmTmVlZGVkKGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiAgICAgLy8gaW4g
dGhlIHdlYiBwcm9jZXNzLiBXZSBhZGQgdGhpcyBkZWx0YSB0byB0aGUgcG9zaXRpb24gb2YgZml4
ZWQgbGF5ZXJzLCB0byBtYWtlCiAgICAgLy8gc3VyZSB0aGF0IHRoZXkgZG8gbm90IG1vdmUgd2hp
bGUgc2Nyb2xsaW5nLiBXZSBuZWVkIHRvIHJlc2V0IHRoaXMgZGVsdGEgdG8gZml4ZWQgbGF5ZXJz
CiAgICAgLy8gdGhhdCBoYXZlIGFuIGFuY2VzdG9yIHdoaWNoIGlzIGFsc28gYSBmaXhlZCBsYXll
ciwgYmVjYXVzZSB0aGUgZGVsdGEgd2lsbCBiZSBhZGRlZCB0byB0aGUgYW5jZXN0b3IuCisgICAg
QVNTRVJUKG1fZml4ZWRUb1ZpZXdwb3J0KTsKICAgICBpZiAoaXNBbmNlc3RvckZpeGVkVG9WaWV3
cG9ydCgpKQogICAgICAgICBtX3Njcm9sbFBvc2l0aW9uRGVsdGEgPSBGbG9hdFNpemUoKTsKICAg
ICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzU2NlbmUuY3BwCmluZGV4IDg5YWRlZDM1M2VlNGEwZDc1ZThkNWEyOGI1YWZhZTNhMGVmMzc0
ZTguLjFlYTNjYmYyMzU5NDI4ODAxODY3ZWNhOTE1MTUyYThhZTNlZWQ2OTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBA
IC01MSwxNiArNTEsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGlzcGF0Y2hP
bk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuYwogICAgICAgICBjYWxsT25N
YWluVGhyZWFkKGZ1bmN0aW9uKTsKIH0KIAotc3RhdGljIEZsb2F0UG9pbnQgYm91bmRlZFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBGbG9hdFJl
Y3QmIHZpc2libGVDb250ZW50UmVjdCwgY29uc3QgRmxvYXRTaXplJiBjb250ZW50U2l6ZSkKLXsK
LSAgICBmbG9hdCBzY3JvbGxQb3NpdGlvblggPSBzdGQ6Om1heChzY3JvbGxQb3NpdGlvbi54KCks
IDAuMGYpOwotICAgIHNjcm9sbFBvc2l0aW9uWCA9IHN0ZDo6bWluKHNjcm9sbFBvc2l0aW9uWCwg
Y29udGVudFNpemUud2lkdGgoKSAtIHZpc2libGVDb250ZW50UmVjdC53aWR0aCgpKTsKLQotICAg
IGZsb2F0IHNjcm9sbFBvc2l0aW9uWSA9IHN0ZDo6bWF4KHNjcm9sbFBvc2l0aW9uLnkoKSwgMC4w
Zik7Ci0gICAgc2Nyb2xsUG9zaXRpb25ZID0gc3RkOjptaW4oc2Nyb2xsUG9zaXRpb25ZLCBjb250
ZW50U2l6ZS5oZWlnaHQoKSAtIHZpc2libGVDb250ZW50UmVjdC5oZWlnaHQoKSk7Ci0gICAgcmV0
dXJuIEZsb2F0UG9pbnQoc2Nyb2xsUG9zaXRpb25YLCBzY3JvbGxQb3NpdGlvblkpOwotfQotCiBz
dGF0aWMgYm9vbCBsYXllclNob3VsZEhhdmVCYWNraW5nU3RvcmUoR3JhcGhpY3NMYXllciogbGF5
ZXIpCiB7CiAgICAgcmV0dXJuIGxheWVyLT5kcmF3c0NvbnRlbnQoKSAmJiBsYXllci0+Y29udGVu
dHNBcmVWaXNpYmxlKCkgJiYgIWxheWVyLT5zaXplKCkuaXNFbXB0eSgpOwpAQCAtMTc5LDE0ICsx
NjksOSBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cGFpbnRUb0dyYXBoaWNzQ29u
dGV4dChjYWlyb190KiBwYWludGVyKQogICAgIG1fdGV4dHVyZU1hcHBlci0+c2V0R3JhcGhpY3ND
b250ZXh0KDApOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0Q29udGVu
dHNTaXplKGNvbnN0IEZsb2F0U2l6ZSYgY29udGVudHNTaXplKQotewotICAgIG1fY29udGVudHNT
aXplID0gY29udGVudHNTaXplOwotfQotCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24pCiB7Ci0gICAgbV92aXNpYmxlQ29udGVudHNSZWN0ID0gcmVjdDsKKyAg
ICBtX3Njcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247CiB9CiAKIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lOjp1cGRhdGVWaWV3cG9ydCgpCkBAIC0yMDQsOSArMTg5LDcgQEAgdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFkanVzdFBvc2l0aW9uRm9yRml4ZWRMYXllcnMo
KQogICAgIC8vIEZpeGVkIGxheWVyIHBvc2l0aW9ucyBhcmUgdXBkYXRlZCBieSB0aGUgd2ViIHBy
b2Nlc3Mgd2hlbiB3ZSB1cGRhdGUgdGhlIHZpc2libGUgY29udGVudHMgcmVjdCAvIHNjcm9sbCBw
b3NpdGlvbi4KICAgICAvLyBJZiB3ZSB3YW50IHRob3NlIGxheWVycyB0byBmb2xsb3cgYWNjdXJh
dGVseSB0aGUgdmlld3BvcnQgd2hlbiB3ZSBtb3ZlIGJldHdlZW4gdGhlIHdlYiBwcm9jZXNzIHVw
ZGF0ZXMsIHdlIGhhdmUgdG8gb2Zmc2V0CiAgICAgLy8gdGhlbSBieSB0aGUgZGVsdGEgYmV0d2Vl
biB0aGUgY3VycmVudCBwb3NpdGlvbiBhbmQgdGhlIHBvc2l0aW9uIG9mIHRoZSB2aWV3cG9ydCB1
c2VkIGZvciB0aGUgbGFzdCBsYXlvdXQuCi0gICAgRmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbiA9
IGJvdW5kZWRTY3JvbGxQb3NpdGlvbihtX3Zpc2libGVDb250ZW50c1JlY3QubG9jYXRpb24oKSwg
bV92aXNpYmxlQ29udGVudHNSZWN0LCBtX2NvbnRlbnRzU2l6ZSk7Ci0gICAgRmxvYXRQb2ludCBy
ZW5kZXJlZFNjcm9sbFBvc2l0aW9uID0gYm91bmRlZFNjcm9sbFBvc2l0aW9uKG1fcmVuZGVyZWRD
b250ZW50c1Njcm9sbFBvc2l0aW9uLCBtX3Zpc2libGVDb250ZW50c1JlY3QsIG1fY29udGVudHNT
aXplKTsKLSAgICBGbG9hdFNpemUgZGVsdGEgPSBzY3JvbGxQb3NpdGlvbiAtIHJlbmRlcmVkU2Ny
b2xsUG9zaXRpb247CisgICAgRmxvYXRTaXplIGRlbHRhID0gbV9zY3JvbGxQb3NpdGlvbiAtIG1f
cmVuZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0aW9uOwogCiAgICAgTGF5ZXJSYXdQdHJNYXA6Oml0
ZXJhdG9yIGVuZCA9IG1fZml4ZWRMYXllcnMuZW5kKCk7CiAgICAgZm9yIChMYXllclJhd1B0ck1h
cDo6aXRlcmF0b3IgaXQgPSBtX2ZpeGVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUu
aAppbmRleCAyZWJkNGFjZDU4ZDliYzU3YjY4OTY4OGY2NjcwNWQ3YzMyMWMzMTJmLi43N2M2MTg5
ZmFmZTIyNWU4NDA2YzJiOWIwODRkMDE0MDE4ZjQ3ODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCkBAIC04MCw4ICs4MCw3IEBA
IHB1YmxpYzoKICNlbGlmIFVTRShDQUlSTykKICAgICB2b2lkIHBhaW50VG9HcmFwaGljc0NvbnRl
eHQoY2Fpcm9fdCopOwogI2VuZGlmCi0gICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgRmxv
YXRTaXplJik7Ci0gICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IEZsb2F0UmVj
dCYpOworICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYpOwogI2lm
IFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIHZvaWQgY3JlYXRlQ2FudmFzKENvb3JkaW5hdGVk
TGF5ZXJJRCwgY29uc3QgSW50U2l6ZSYsIFBhc3NSZWZQdHI8R3JhcGhpY3NTdXJmYWNlPik7CiAg
ICAgdm9pZCBzeW5jQ2FudmFzKENvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3QgZnJvbnRCdWZm
ZXIpOwpAQCAtMTY5LDkgKzE2OCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVCYWNraW5n
U3RvcmVJZk5lZWRlZChHcmFwaGljc0xheWVyKik7CiAgICAgdm9pZCByZXNldEJhY2tpbmdTdG9y
ZVNpemVUb0xheWVyU2l6ZShHcmFwaGljc0xheWVyKik7CiAKLSAgICBGbG9hdFNpemUgbV9jb250
ZW50c1NpemU7Ci0gICAgRmxvYXRSZWN0IG1fdmlzaWJsZUNvbnRlbnRzUmVjdDsKLQogICAgIC8v
IFJlbmRlciBxdWV1ZSBjYW4gYmUgYWNjZXNzZWQgb255IGZyb20gbWFpbiB0aHJlYWQgb3IgdXBk
YXRlUGFpbnROb2RlIGNhbGwgc3RhY2shCiAgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBt
X3JlbmRlclF1ZXVlOwogICAgIE11dGV4IG1fcmVuZGVyUXVldWVNdXRleDsKQEAgLTIwNiw2ICsy
MDIsNyBAQCBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxDb29yZGluYXRlZExheWVySUQs
IEdyYXBoaWNzTGF5ZXIqPiBMYXllclJhd1B0ck1hcDsKICAgICBMYXllclJhd1B0ck1hcCBtX2Zp
eGVkTGF5ZXJzOwogICAgIENvb3JkaW5hdGVkTGF5ZXJJRCBtX3Jvb3RMYXllcklEOworICAgIEZs
b2F0UG9pbnQgbV9zY3JvbGxQb3NpdGlvbjsKICAgICBGbG9hdFBvaW50IG1fcmVuZGVyZWRDb250
ZW50c1Njcm9sbFBvc2l0aW9uOwogICAgIGJvb2wgbV9hbmltYXRpb25zTG9ja2VkOwogI2lmIEVO
QUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCmluZGV4IDIwNzYxZTJmOTU3ODg5NWQ4ZDA2
YTMwNDY4YmMxZjc5YmFmYmQxODQuLjRmMTk2ZTEzOWEyMTEwMmU0ZDA1NjlmZmIzODMxYWJjOGNk
OGFiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJwYWdlLmNwcApAQCAtMTc1LDkgKzE3NSw2IEBAIHZvaWQgUVF1aWNrV2ViUGFnZVByaXZhdGU6
OnVwZGF0ZVNpemUoKQogewogICAgIFFTaXplRiBzY2FsZWRTaXplID0gY29udGVudHNTaXplICog
Y29udGVudHNTY2FsZTsKIAotICAgIGlmIChjb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eSgp
KQotICAgICAgICBjb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eSgpLT5zZXRDb250ZW50c1Np
emUoV2ViQ29yZTo6RmxvYXRTaXplKGNvbnRlbnRzU2l6ZSkpOwotCiAgICAgcS0+c2V0U2l6ZShz
Y2FsZWRTaXplKTsKIAogICAgIGlmICh2aWV3cG9ydEl0ZW0tPmV4cGVyaW1lbnRhbCgpLT5mbGlj
a2FibGVWaWV3cG9ydEVuYWJsZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwCmluZGV4IGQzNDgxZWEwMTYyYTUzZDNkMDg4
M2U3ZDYzMGMzMmYzNDcwM2ExZWYuLjM4OTkxZGRmNjVjMWMzZTNjNzE2YTZkNjA5ZGNkN2ZjOTIw
MmQwNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3Fy
YXd3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9x
cmF3d2Vidmlldy5jcHAKQEAgLTM0NSwxMiArMzQ1LDYgQEAgdm9pZCBRUmF3V2ViVmlldzo6c2V0
U2l6ZShjb25zdCBRU2l6ZSYgc2l6ZSkKIAogICAgIGlmIChkLT5tX3dlYlBhZ2VQcm94eS0+dXNl
Rml4ZWRMYXlvdXQoKSkKICAgICAgICAgZC0+bV93ZWJQYWdlUHJveHktPnNldFZpZXdwb3J0U2l6
ZShzaXplKTsKLSAgICBlbHNlIHsKLSAgICAgICAgV2ViS2l0OjpDb29yZGluYXRlZExheWVyVHJl
ZUhvc3RQcm94eSogY29vcmRpbmF0b3IgPSBkcmF3aW5nQXJlYS0+Y29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0UHJveHkoKTsKLSAgICAgICAgaWYgKCFjb29yZGluYXRvcikKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgY29vcmRpbmF0b3ItPnNldENvbnRlbnRzU2l6ZShXZWJDb3JlOjpGbG9h
dFNpemUoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7Ci0gICAgfQogCiAgICAgZC0+bV9z
aXplID0gc2l6ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0UHJveHkuY3BwCmluZGV4IGM1NzRmOWE4YmY3NGZkOTM3ZGQ1ZmU1YWYxYjA2OTYyOGFk
N2MzZTMuLmY5YmRiODJhMGIzMDc2ZjZiMTI3MDAwMjE4NDJlMjY0YzI0ODk5NzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAKQEAg
LTE2MCwxMSArMTYwLDYgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6cmVt
b3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQKICAgICBkaXNwYXRjaFVw
ZGF0ZShiaW5kKCZDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnJlbW92ZUltYWdlQmFja2luZywg
bV9zY2VuZS5nZXQoKSwgaW1hZ2VJRCkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdFByb3h5OjpzZXRDb250ZW50c1NpemUoY29uc3QgRmxvYXRTaXplJiBjb250ZW50c1NpemUp
Ci17Ci0gICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpz
ZXRDb250ZW50c1NpemUsIG1fc2NlbmUuZ2V0KCksIGNvbnRlbnRzU2l6ZSkpOwotfQotCiB2b2lk
IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpzZXRMYXllckFuaW1hdGlvbnMoQ29vcmRp
bmF0ZWRMYXllcklEIGlkLCBjb25zdCBHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYgYW5pbWF0aW9u
cykKIHsKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6
OnNldExheWVyQW5pbWF0aW9ucywgbV9zY2VuZS5nZXQoKSwgaWQsIGFuaW1hdGlvbnMpKTsKQEAg
LTE3OCw3ICsxNzMsNyBAQCB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpzZXRB
bmltYXRpb25zTG9ja2VkKGJvb2wgbG9ja2VkKQogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhv
c3RQcm94eTo6c2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNv
bnN0IEZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpCiB7CiAgICAgLy8gSW5mb3JtIHRoZSBy
ZW5kZXJlciB0byBhZGp1c3Qgdmlld3BvcnQtZml4ZWQgbGF5ZXJzLgotICAgIGRpc3BhdGNoVXBk
YXRlKGJpbmQoJkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0VmlzaWJsZUNvbnRlbnRzUmVj
dCwgbV9zY2VuZS5nZXQoKSwgcmVjdCkpOworICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkNvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0U2Nyb2xsUG9zaXRpb24sIG1fc2NlbmUuZ2V0KCksIHJl
Y3QubG9jYXRpb24oKSkpOwogCiAgICAgaWYgKHJlY3QgPT0gbV9sYXN0U2VudFZpc2libGVSZWN0
ICYmIHRyYWplY3RvcnlWZWN0b3IgPT0gbV9sYXN0U2VudFRyYWplY3RvcnlWZWN0b3IpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3RQcm94eS5oCmluZGV4IDZjNzFlN2NkZDY5OWY5ZGI1Mjk0OTQ0MjlkNzUwYzNhNzdhZDY4OWMu
LmE4NjAwZDhlNDRjN2Q2OWQxMzMxOGMzNmJhOWI4MDQxNzYyNWVkODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaApAQCAtNjUsNyArNjUs
NiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVDb21wb3NpdGluZ0xheWVycyhjb25zdCBWZWN0
b3I8V2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXllcklEPiYpOwogICAgIHZvaWQgZGVsZXRlQ29tcG9z
aXRpbmdMYXllcnMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRD4mKTsK
ICAgICB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5
ZXJJRCk7Ci0gICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
Jik7CiAgICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHRyYWplY3RvcnlWZWN0b3IpOwogICAg
IHZvaWQgZGlkUmVuZGVyRnJhbWUoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgY292ZXJlZFJlY3QpOwogICAgIHZvaWQgY3JlYXRlVGlsZUZvckxheWVyKFdl
YkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRCwgdWludDMyX3QgdGlsZUlELCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6U3VyZmFjZVVwZGF0ZUluZm8mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5jcHAK
aW5kZXggOTU4MzFhMjVlNDU4NjhkM2FmOTBhYTdiYjk1N2Q0NGNjYjYyNjliYy4uMzU1NjI2MjIx
ZGI3ZmNiYjExNzc5MjAyOTM5MDIxYzdhNjE0ZjUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5jcHAKQEAgLTc0LDcgKzc0
LDYgQEAgdm9pZCBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0
aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXQKIHZvaWQgUGFnZUNsaWVudExlZ2FjeUltcGw6
OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQogewog
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIG1fdmlldy0+cGFnZSgpLT5kcmF3aW5n
QXJlYSgpLT5jb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eSgpLT5zZXRDb250ZW50c1NpemUo
RmxvYXRTaXplKHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOwogICAgIG1fdmlldy0+dXBk
YXRlKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5jcHAKaW5kZXggZDQw
ZGExMDJkZGFiZjc4MTdhZDNiMDk5MjU3M2ZkMjBiOGQ3MzMyOC4uZWUxNjY5NTBjZDNiZmZjNzgx
OWIyOGNkNGEyZjkxMzVkOWVmMzEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuY3Bw
CkBAIC03MCw3ICs3MCw2IEBAIHZvaWQgUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbDo6
dXBkYXRlVmlld3BvcnRTaXplKCkKIAogdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50
RWZsOjpkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY29udGVu
dHNTaXplKQogewotICAgIGRyYXdpbmdBcmVhKCktPmNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5KCktPnNldENvbnRlbnRzU2l6ZShjb250ZW50c1NpemUpOwogICAgIG1fdmlldy0+dXBkYXRl
KCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186589</attachid>
            <date>2013-02-05 02:51:19 -0800</date>
            <delta_ts>2013-02-06 02:26:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108922-20130205194739.patch</filename>
            <type>text/plain</type>
            <size>14843</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZkMzY1ZTY5NjVjMzAx
NTNmMDk1MzNjODY0ZjE5NDNlMDE3ZjdkMy4uOGUzN2NjNTZiOWZkZGRlODFiZjNiYWExMTdhYjQ1
MTEwMTkxZjVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDEzLTAyLTA1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBNYWtlIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSBub3Qga25vdyBjb250
ZW50cyBzaXplLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA4OTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3VycmVudGx5LCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUgaGFzIHR3byBtZXRob2RzIHRv
IGtub3cgY29udGVudHMKKyAgICAgICAgc2l6ZTogc2V0Q29udGVudHNTaXplKCkgYW5kIHNldFZp
c2libGVDb250ZW50c1JlY3QoKS4gQ29udGVudHMgc2l6ZSBpcworICAgICAgICB1c2VkIHdoZW4g
YWRqdXN0aW5nIGEgc2Nyb2xsIHBvc2l0aW9uLCBidXQgYWRqdXN0bWVudCBpcyBub3QgbmVlZGVk
CisgICAgICAgIGJlY2F1c2UgRUZMIGFuZCBRdCBwbGF0Zm9ybSBjb2RlIChjdXJyZW50bHkgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlcikKKyAgICAgICAgYWxyZWFkeSBhZGp1c3RzIGEgc2Nyb2xsIHBv
c2l0aW9uLCBhbmQgaXQgaXMgbmF0dXJhbCBmb3IgZWFjaCBwbGF0Zm9ybQorICAgICAgICB0byBi
ZSBpbiBjaGFyZ2Ugb2YgYWRqdXN0aW5nLiBTbyB0aGlzIHBhdGNoIG1ha2VzIENvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZQorICAgICAgICBub3Qga25vdyBjb250ZW50cyBzaXplLgorCisgICAgICAg
IEluIGFkZGl0aW9uLCBub3cgRHJhd2luZ0FyZWFQcm94eTo6Y29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0UHJveHkoKSBpcyBvbmx5IHVzZWQKKyAgICAgICAgdG8gZ2V0IENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS4KKworICAgICAgICBUZXN0OiBNYW51YWxUZXN0cy9maXhlZC1wb3NpdGlvbi5odG1s
CisgICAgICAgICAgICAgIE1hbnVhbFRlc3RzL25lc3RlZC1maXhlZC1wb3NpdGlvbi5odG1sCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6c2V0U2Nyb2xsUG9zaXRp
b25EZWx0YUlmTmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVk
TGF5ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmg6CisgICAgICAgIChDb29yZGluYXRlZEdyYXBoaWNz
U2NlbmUpOgorCisyMDEzLTAyLTA1ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkx
MDAubmV0PgorCiAgICAgICAgIENvb3JkaW5hdGVkIEdyYXBoaWNzOiByZW1vdmUgdGhlIERpZENo
YW5nZVNjcm9sbFBvc2l0aW9uIG1lc3NhZ2UuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgwNTEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDhmNzRlZTg2Y2VmNmFk
ZTYxN2Y5NDhmYzc4Yzc4NDRkYzJiNjBlNTYuLjU2NmZiM2JiYzAyMGFkODFkNTY4Yzg5OTljMGYy
ZTk3NjY3NmQwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNiBAQAogMjAxMy0wMi0wNSAgSHVh
bmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAorICAgICAgICBDb29yZGlu
YXRlZCBHcmFwaGljczogTWFrZSBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUgbm90IGtub3cgY29u
dGVudHMgc2l6ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwODkyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEN1cnJlbnRseSwgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lIGhhcyB0d28gbWV0aG9kcyB0
byBrbm93IGNvbnRlbnRzCisgICAgICAgIHNpemU6IHNldENvbnRlbnRzU2l6ZSgpIGFuZCBzZXRW
aXNpYmxlQ29udGVudHNSZWN0KCkuIENvbnRlbnRzIHNpemUgaXMKKyAgICAgICAgdXNlZCB3aGVu
IGFkanVzdGluZyBhIHNjcm9sbCBwb3NpdGlvbiwgYnV0IGFkanVzdG1lbnQgaXMgbm90IG5lZWRl
ZAorICAgICAgICBiZWNhdXNlIEVGTCBhbmQgUXQgcGxhdGZvcm0gY29kZSAoY3VycmVudGx5IFBh
Z2VWaWV3cG9ydENvbnRyb2xsZXIpCisgICAgICAgIGFscmVhZHkgYWRqdXN0cyBhIHNjcm9sbCBw
b3NpdGlvbiwgYW5kIGl0IGlzIG5hdHVyYWwgZm9yIGVhY2ggcGxhdGZvcm0KKyAgICAgICAgdG8g
YmUgaW4gY2hhcmdlIG9mIGFkanVzdGluZy4gU28gdGhpcyBwYXRjaCBtYWtlcyBDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUKKyAgICAgICAgbm90IGtub3cgY29udGVudHMgc2l6ZS4KKworICAgICAg
ICBJbiBhZGRpdGlvbiwgbm93IERyYXdpbmdBcmVhUHJveHk6OmNvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdFByb3h5KCkgaXMgb25seSB1c2VkCisgICAgICAgIHRvIGdldCBDb29yZGluYXRlZEdyYXBo
aWNzU2NlbmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3Bw
OgorICAgICAgICAoUVF1aWNrV2ViUGFnZVByaXZhdGU6OnVwZGF0ZVNpemUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFSYXdXZWJW
aWV3OjpzZXRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpzZXRWaXNpYmxlQ29udGVudHNSZWN0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3RQcm94eS5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjpkaWRD
aGFuZ2VDb250ZW50c1NpemUpOgorCisyMDEzLTAyLTA1ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRl
bGxhQGNvbXBhbnkxMDAubmV0PgorCiAgICAgICAgIENvb3JkaW5hdGVkIEdyYXBoaWNzOiByZW1v
dmUgdGhlIERpZENoYW5nZVNjcm9sbFBvc2l0aW9uIG1lc3NhZ2UuCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgwNTEKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckxheWVyLmNwcAppbmRleCBlZGZlMzIwNzhkOGYyMWFiNzg4YTRhY2ZlN2Q1YzJiY2YxZjQyOTA2
Li5jYTMyNjU3YmQwZjYxZTYyMzViN2Y0YWJjNDUwMmRhZTMyMmU4ODA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckxheWVyLmNwcApAQCAtNjA3LDYgKzYwNyw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxh
eWVyOjpzZXRTY3JvbGxQb3NpdGlvbkRlbHRhSWZOZWVkZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0
YSkKICAgICAvLyBpbiB0aGUgd2ViIHByb2Nlc3MuIFdlIGFkZCB0aGlzIGRlbHRhIHRvIHRoZSBw
b3NpdGlvbiBvZiBmaXhlZCBsYXllcnMsIHRvIG1ha2UKICAgICAvLyBzdXJlIHRoYXQgdGhleSBk
byBub3QgbW92ZSB3aGlsZSBzY3JvbGxpbmcuIFdlIG5lZWQgdG8gcmVzZXQgdGhpcyBkZWx0YSB0
byBmaXhlZCBsYXllcnMKICAgICAvLyB0aGF0IGhhdmUgYW4gYW5jZXN0b3Igd2hpY2ggaXMgYWxz
byBhIGZpeGVkIGxheWVyLCBiZWNhdXNlIHRoZSBkZWx0YSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBh
bmNlc3Rvci4KKyAgICBBU1NFUlQobV9maXhlZFRvVmlld3BvcnQpOwogICAgIGlmIChpc0FuY2Vz
dG9yRml4ZWRUb1ZpZXdwb3J0KCkpCiAgICAgICAgIG1fc2Nyb2xsUG9zaXRpb25EZWx0YSA9IEZs
b2F0U2l6ZSgpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggODlhZGVkMzUzZWU0YTBkNzVlOGQ1YTI4
YjVhZmFlM2EwZWYzNzRlOC4uMWVhM2NiZjIzNTk0Mjg4MDE4NjdlY2E5MTUxNTJhOGFlM2VlZDY5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5jcHAKQEAgLTUxLDE2ICs1MSw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lOjpkaXNwYXRjaE9uTWFpblRocmVhZChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jCiAg
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoZnVuY3Rpb24pOwogfQogCi1zdGF0aWMgRmxvYXRQb2lu
dCBib3VuZGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGNvbnN0IEZsb2F0UmVjdCYgdmlzaWJsZUNvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFNpemUmIGNv
bnRlbnRTaXplKQotewotICAgIGZsb2F0IHNjcm9sbFBvc2l0aW9uWCA9IHN0ZDo6bWF4KHNjcm9s
bFBvc2l0aW9uLngoKSwgMC4wZik7Ci0gICAgc2Nyb2xsUG9zaXRpb25YID0gc3RkOjptaW4oc2Ny
b2xsUG9zaXRpb25YLCBjb250ZW50U2l6ZS53aWR0aCgpIC0gdmlzaWJsZUNvbnRlbnRSZWN0Lndp
ZHRoKCkpOwotCi0gICAgZmxvYXQgc2Nyb2xsUG9zaXRpb25ZID0gc3RkOjptYXgoc2Nyb2xsUG9z
aXRpb24ueSgpLCAwLjBmKTsKLSAgICBzY3JvbGxQb3NpdGlvblkgPSBzdGQ6Om1pbihzY3JvbGxQ
b3NpdGlvblksIGNvbnRlbnRTaXplLmhlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRSZWN0LmhlaWdo
dCgpKTsKLSAgICByZXR1cm4gRmxvYXRQb2ludChzY3JvbGxQb3NpdGlvblgsIHNjcm9sbFBvc2l0
aW9uWSk7Ci19Ci0KIHN0YXRpYyBib29sIGxheWVyU2hvdWxkSGF2ZUJhY2tpbmdTdG9yZShHcmFw
aGljc0xheWVyKiBsYXllcikKIHsKICAgICByZXR1cm4gbGF5ZXItPmRyYXdzQ29udGVudCgpICYm
IGxheWVyLT5jb250ZW50c0FyZVZpc2libGUoKSAmJiAhbGF5ZXItPnNpemUoKS5pc0VtcHR5KCk7
CkBAIC0xNzksMTQgKzE2OSw5IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpwYWlu
dFRvR3JhcGhpY3NDb250ZXh0KGNhaXJvX3QqIHBhaW50ZXIpCiAgICAgbV90ZXh0dXJlTWFwcGVy
LT5zZXRHcmFwaGljc0NvbnRleHQoMCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lOjpzZXRDb250ZW50c1NpemUoY29uc3QgRmxvYXRTaXplJiBjb250ZW50c1NpemUpCi17Ci0g
ICAgbV9jb250ZW50c1NpemUgPSBjb250ZW50c1NpemU7Ci19Ci0KLXZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjpzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRTY3JvbGxQb3NpdGlvbihjb25z
dCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsKLSAgICBtX3Zpc2libGVDb250ZW50c1Jl
Y3QgPSByZWN0OworICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKIH0KIAog
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVZpZXdwb3J0KCkKQEAgLTIwNCw5
ICsxODksNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YWRqdXN0UG9zaXRpb25G
b3JGaXhlZExheWVycygpCiAgICAgLy8gRml4ZWQgbGF5ZXIgcG9zaXRpb25zIGFyZSB1cGRhdGVk
IGJ5IHRoZSB3ZWIgcHJvY2VzcyB3aGVuIHdlIHVwZGF0ZSB0aGUgdmlzaWJsZSBjb250ZW50cyBy
ZWN0IC8gc2Nyb2xsIHBvc2l0aW9uLgogICAgIC8vIElmIHdlIHdhbnQgdGhvc2UgbGF5ZXJzIHRv
IGZvbGxvdyBhY2N1cmF0ZWx5IHRoZSB2aWV3cG9ydCB3aGVuIHdlIG1vdmUgYmV0d2VlbiB0aGUg
d2ViIHByb2Nlc3MgdXBkYXRlcywgd2UgaGF2ZSB0byBvZmZzZXQKICAgICAvLyB0aGVtIGJ5IHRo
ZSBkZWx0YSBiZXR3ZWVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFuZCB0aGUgcG9zaXRpb24gb2Yg
dGhlIHZpZXdwb3J0IHVzZWQgZm9yIHRoZSBsYXN0IGxheW91dC4KLSAgICBGbG9hdFBvaW50IHNj
cm9sbFBvc2l0aW9uID0gYm91bmRlZFNjcm9sbFBvc2l0aW9uKG1fdmlzaWJsZUNvbnRlbnRzUmVj
dC5sb2NhdGlvbigpLCBtX3Zpc2libGVDb250ZW50c1JlY3QsIG1fY29udGVudHNTaXplKTsKLSAg
ICBGbG9hdFBvaW50IHJlbmRlcmVkU2Nyb2xsUG9zaXRpb24gPSBib3VuZGVkU2Nyb2xsUG9zaXRp
b24obV9yZW5kZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRpb24sIG1fdmlzaWJsZUNvbnRlbnRzUmVj
dCwgbV9jb250ZW50c1NpemUpOwotICAgIEZsb2F0U2l6ZSBkZWx0YSA9IHNjcm9sbFBvc2l0aW9u
IC0gcmVuZGVyZWRTY3JvbGxQb3NpdGlvbjsKKyAgICBGbG9hdFNpemUgZGVsdGEgPSBtX3Njcm9s
bFBvc2l0aW9uIC0gbV9yZW5kZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRpb247CiAKICAgICBMYXll
clJhd1B0ck1hcDo6aXRlcmF0b3IgZW5kID0gbV9maXhlZExheWVycy5lbmQoKTsKICAgICBmb3Ig
KExheWVyUmF3UHRyTWFwOjppdGVyYXRvciBpdCA9IG1fZml4ZWRMYXllcnMuYmVnaW4oKTsgaXQg
IT0gZW5kOyArK2l0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5oCmluZGV4IDJlYmQ0YWNkNThkOWJjNTdiNjg5Njg4ZjY2NzA1ZDdjMzIx
YzMxMmYuLjc3YzYxODlmYWZlMjI1ZTg0MDZjMmI5YjA4NGQwMTQwMThmNDc4NmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKQEAg
LTgwLDggKzgwLDcgQEAgcHVibGljOgogI2VsaWYgVVNFKENBSVJPKQogICAgIHZvaWQgcGFpbnRU
b0dyYXBoaWNzQ29udGV4dChjYWlyb190Kik7CiAjZW5kaWYKLSAgICB2b2lkIHNldENvbnRlbnRz
U2l6ZShjb25zdCBGbG9hdFNpemUmKTsKLSAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3Qo
Y29uc3QgRmxvYXRSZWN0Jik7CisgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9h
dFBvaW50Jik7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgdm9pZCBjcmVhdGVDYW52
YXMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBJbnRTaXplJiwgUGFzc1JlZlB0cjxHcmFwaGlj
c1N1cmZhY2U+KTsKICAgICB2b2lkIHN5bmNDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCB1aW50
MzJfdCBmcm9udEJ1ZmZlcik7CkBAIC0xNjksOSArMTY4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlbW92ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKEdyYXBoaWNzTGF5ZXIqKTsKICAgICB2b2lkIHJl
c2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJTaXplKEdyYXBoaWNzTGF5ZXIqKTsKIAotICAgIEZs
b2F0U2l6ZSBtX2NvbnRlbnRzU2l6ZTsKLSAgICBGbG9hdFJlY3QgbV92aXNpYmxlQ29udGVudHNS
ZWN0OwotCiAgICAgLy8gUmVuZGVyIHF1ZXVlIGNhbiBiZSBhY2Nlc3NlZCBvbnkgZnJvbSBtYWlu
IHRocmVhZCBvciB1cGRhdGVQYWludE5vZGUgY2FsbCBzdGFjayEKICAgICBWZWN0b3I8RnVuY3Rp
b248dm9pZCgpPiA+IG1fcmVuZGVyUXVldWU7CiAgICAgTXV0ZXggbV9yZW5kZXJRdWV1ZU11dGV4
OwpAQCAtMjA2LDYgKzIwMiw3IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNoTWFwPENvb3Jk
aW5hdGVkTGF5ZXJJRCwgR3JhcGhpY3NMYXllcio+IExheWVyUmF3UHRyTWFwOwogICAgIExheWVy
UmF3UHRyTWFwIG1fZml4ZWRMYXllcnM7CiAgICAgQ29vcmRpbmF0ZWRMYXllcklEIG1fcm9vdExh
eWVySUQ7CisgICAgRmxvYXRQb2ludCBtX3Njcm9sbFBvc2l0aW9uOwogICAgIEZsb2F0UG9pbnQg
bV9yZW5kZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRpb247CiAgICAgYm9vbCBtX2FuaW1hdGlvbnNM
b2NrZWQ7CiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAKaW5kZXggMjA3NjFl
MmY5NTc4ODk1ZDhkMDZhMzA0NjhiYzFmNzliYWZiZDE4NC4uNGYxOTZlMTM5YTIxMTAyZTRkMDU2
OWZmYjM4MzFhYmM4Y2Q4YWI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCkBAIC0xNzUsOSArMTc1LDYgQEAgdm9pZCBRUXVpY2tX
ZWJQYWdlUHJpdmF0ZTo6dXBkYXRlU2l6ZSgpCiB7CiAgICAgUVNpemVGIHNjYWxlZFNpemUgPSBj
b250ZW50c1NpemUgKiBjb250ZW50c1NjYWxlOwogCi0gICAgaWYgKGNvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdFByb3h5KCkpCi0gICAgICAgIGNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KCkt
PnNldENvbnRlbnRzU2l6ZShXZWJDb3JlOjpGbG9hdFNpemUoY29udGVudHNTaXplKSk7Ci0KICAg
ICBxLT5zZXRTaXplKHNjYWxlZFNpemUpOwogCiAgICAgaWYgKHZpZXdwb3J0SXRlbS0+ZXhwZXJp
bWVudGFsKCktPmZsaWNrYWJsZVZpZXdwb3J0RW5hYmxlZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAKaW5kZXggZDM0ODFl
YTAxNjJhNTNkM2QwODgzZTdkNjMwYzMyZjM0NzAzYTFlZi4uMzg5OTFkZGY2NWMxYzNlM2M3MTZh
NmQ2MDlkY2Q3ZmM5MjAyZDA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcApAQCAtMzQ1LDEyICszNDUsNiBAQCB2b2lkIFFS
YXdXZWJWaWV3OjpzZXRTaXplKGNvbnN0IFFTaXplJiBzaXplKQogCiAgICAgaWYgKGQtPm1fd2Vi
UGFnZVByb3h5LT51c2VGaXhlZExheW91dCgpKQogICAgICAgICBkLT5tX3dlYlBhZ2VQcm94eS0+
c2V0Vmlld3BvcnRTaXplKHNpemUpOwotICAgIGVsc2UgewotICAgICAgICBXZWJLaXQ6OkNvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KiBjb29yZGluYXRvciA9IGRyYXdpbmdBcmVhLT5jb29y
ZGluYXRlZExheWVyVHJlZUhvc3RQcm94eSgpOwotICAgICAgICBpZiAoIWNvb3JkaW5hdG9yKQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBjb29yZGluYXRvci0+c2V0Q29udGVudHNTaXpl
KFdlYkNvcmU6OkZsb2F0U2l6ZShzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKLSAgICB9
CiAKICAgICBkLT5tX3NpemUgPSBzaXplOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAKaW5kZXggYzU3NGY5YThiZjc0ZmQ5MzdkZDVm
ZTVhZjFiMDY5NjI4YWQ3YzNlMy4uZjliZGI4MmEwYjMwNzZmNmIxMjcwMDAyMTg0MmUyNjRjMjQ4
OTk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dFByb3h5LmNwcApAQCAtMTYwLDExICsxNjAsNiBAQCB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdFByb3h5OjpyZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRAog
ICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cmVtb3Zl
SW1hZ2VCYWNraW5nLCBtX3NjZW5lLmdldCgpLCBpbWFnZUlEKSk7CiB9CiAKLXZvaWQgQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldENvbnRlbnRzU2l6ZShjb25zdCBGbG9hdFNpemUm
IGNvbnRlbnRzU2l6ZSkKLXsKLSAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZDb29yZGluYXRlZEdy
YXBoaWNzU2NlbmU6OnNldENvbnRlbnRzU2l6ZSwgbV9zY2VuZS5nZXQoKSwgY29udGVudHNTaXpl
KSk7Ci19Ci0KIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldExheWVyQW5p
bWF0aW9ucyhDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IEdyYXBoaWNzTGF5ZXJBbmltYXRp
b25zJiBhbmltYXRpb25zKQogewogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkNvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZTo6c2V0TGF5ZXJBbmltYXRpb25zLCBtX3NjZW5lLmdldCgpLCBpZCwgYW5p
bWF0aW9ucykpOwpAQCAtMTc4LDcgKzE3Myw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0UHJveHk6OnNldEFuaW1hdGlvbnNMb2NrZWQoYm9vbCBsb2NrZWQpCiB2b2lkIENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRQb2ludCYgdHJhamVjdG9yeVZlY3RvcikKIHsKICAgICAv
LyBJbmZvcm0gdGhlIHJlbmRlcmVyIHRvIGFkanVzdCB2aWV3cG9ydC1maXhlZCBsYXllcnMuCi0g
ICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRWaXNp
YmxlQ29udGVudHNSZWN0LCBtX3NjZW5lLmdldCgpLCByZWN0KSk7CisgICAgZGlzcGF0Y2hVcGRh
dGUoYmluZCgmQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRTY3JvbGxQb3NpdGlvbiwgbV9z
Y2VuZS5nZXQoKSwgcmVjdC5sb2NhdGlvbigpKSk7CiAKICAgICBpZiAocmVjdCA9PSBtX2xhc3RT
ZW50VmlzaWJsZVJlY3QgJiYgdHJhamVjdG9yeVZlY3RvciA9PSBtX2xhc3RTZW50VHJhamVjdG9y
eVZlY3RvcikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggNmM3MWU3Y2RkNjk5ZjlkYjUyOTQ5NDQyOWQ3
NTBjM2E3N2FkNjg5Yy4uYTg2MDBkOGU0NGM3ZDY5ZDEzMzE4YzM2YmE5YjgwNDE3NjI1ZWQ4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5o
CkBAIC02NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZUNvbXBvc2l0aW5nTGF5
ZXJzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29yZGluYXRlZExheWVySUQ+Jik7CiAgICAgdm9p
ZCBkZWxldGVDb21wb3NpdGluZ0xheWVycyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29vcmRpbmF0
ZWRMYXllcklEPiYpOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRMYXllcklEKTsKLSAgICB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgdHJhamVjdG9y
eVZlY3Rvcik7CiAgICAgdm9pZCBkaWRSZW5kZXJGcmFtZShjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY29udGVudHNTaXpl
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVkUmVjdCk7CiAgICAgdm9pZCBjcmVhdGVU
aWxlRm9yTGF5ZXIoV2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJfdCB0aWxlSUQs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpTdXJmYWNlVXBkYXRlSW5m
byYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50
TGVnYWN5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRM
ZWdhY3lJbXBsLmNwcAppbmRleCA5NTgzMWEyNWU0NTg2OGQzYWY5MGFhN2JiOTU3ZDQ0Y2NiNjI2
OWJjLi4zNTU2MjYyMjFkYjdmY2JiMTE3NzkyMDI5MzkwMjFjN2E2MTRmNTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdhY3lJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdhY3lJbXBsLmNw
cApAQCAtNzQsNyArNzQsNiBAQCB2b2lkIFBhZ2VDbGllbnRMZWdhY3lJbXBsOjpkaWRDaGFuZ2VW
aWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdAogdm9pZCBQYWdlQ2xp
ZW50TGVnYWN5SW1wbDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHNpemUpCiB7CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgbV92aWV3LT5w
YWdlKCktPmRyYXdpbmdBcmVhKCktPmNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KCktPnNl
dENvbnRlbnRzU2l6ZShGbG9hdFNpemUoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7CiAg
ICAgbV92aWV3LT51cGRhdGUoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZs
LmNwcAppbmRleCBkNDBkYTEwMmRkYWJmNzgxN2FkM2IwOTkyNTczZmQyMGI4ZDczMzI4Li5lZTE2
Njk1MGNkM2JmZmM3ODE5YjI4Y2Q0YTJmOTEzNWQ5ZWYzMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxl
ckNsaWVudEVmbC5jcHAKQEAgLTcwLDcgKzcwLDYgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9s
bGVyQ2xpZW50RWZsOjp1cGRhdGVWaWV3cG9ydFNpemUoKQogCiB2b2lkIFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRFZmw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBjb250ZW50c1NpemUpCiB7Ci0gICAgZHJhd2luZ0FyZWEoKS0+Y29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0UHJveHkoKS0+c2V0Q29udGVudHNTaXplKGNvbnRlbnRzU2l6ZSk7CiAgICAg
bV92aWV3LT51cGRhdGUoKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186802</attachid>
            <date>2013-02-06 02:26:53 -0800</date>
            <delta_ts>2013-02-11 21:35:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108922-20130206192309.patch</filename>
            <type>text/plain</type>
            <size>14852</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE4MDdmODIwYjcxYTQz
NzJjN2M5ZGQ3MTk1Nzc1NDgyOWE1YTg5Ny4uOTQ2NzNhODliZGUyMGFiZWZmMGRkOGRjYTU3ZDA3
Y2UzYWZmMzBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAyLTA1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBNYWtlIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSBub3Qga25vdyBjb250
ZW50cyBzaXplLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA4OTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3VycmVudGx5LCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUgaGFzIHR3byBtZXRob2RzIHRv
IGtub3cgY29udGVudHMKKyAgICAgICAgc2l6ZTogc2V0Q29udGVudHNTaXplKCkgYW5kIHNldFZp
c2libGVDb250ZW50c1JlY3QoKS4gQ29udGVudHMgc2l6ZSBpcworICAgICAgICB1c2VkIHdoZW4g
YWRqdXN0aW5nIGEgc2Nyb2xsIHBvc2l0aW9uLCBidXQgYWRqdXN0bWVudCBpcyBub3QgbmVlZGVk
CisgICAgICAgIGJlY2F1c2UgRUZMIGFuZCBRdCBwbGF0Zm9ybSBjb2RlIChjdXJyZW50bHkgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlcikKKyAgICAgICAgYWxyZWFkeSBhZGp1c3RzIGEgc2Nyb2xsIHBv
c2l0aW9uLCBhbmQgaXQgaXMgbmF0dXJhbCBmb3IgZWFjaCBwbGF0Zm9ybQorICAgICAgICB0byBi
ZSBpbiBjaGFyZ2Ugb2YgYWRqdXN0aW5nLiBTbyB0aGlzIHBhdGNoIG1ha2VzIENvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZQorICAgICAgICBub3Qga25vdyBjb250ZW50cyBzaXplLgorCisgICAgICAg
IEluIGFkZGl0aW9uLCBub3cgRHJhd2luZ0FyZWFQcm94eTo6Y29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0UHJveHkoKSBpcyBvbmx5IHVzZWQKKyAgICAgICAgdG8gZ2V0IENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS4KKworICAgICAgICBUaGlzIHBhdGNoIGNhbiBvbmx5IGJlIHRlc3RlZCBtYW51YWxs
eSBzaW5jZSB0aGVyZSBpcyBubyBhdXRvbWF0ZWQKKyAgICAgICAgdGVzdGluZyBmYWNpbGl0aWVz
IGZvciBpbi1tb3Rpb24gdG91Y2guCisgICAgICAgIFRlc3Q6IE1hbnVhbFRlc3RzL2ZpeGVkLXBv
c2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAgTWFudWFsVGVzdHMvbmVzdGVkLWZpeGVkLXBvc2l0
aW9uLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpzZXRT
Y3JvbGxQb3NpdGlvbkRlbHRhSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRTY3JvbGxQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFkanVzdFBvc2l0
aW9uRm9yRml4ZWRMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKENvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZSk6CisKIDIwMTMtMDItMDYgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVs
bGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IHJlbW92
ZSB0aGUgRGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24gbWVzc2FnZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjNmJk
YzY4ZjBjYTk4MzQ4OTIwYjgzYWJmNTE2MjhhMzZlOGJlMWEzLi42ZGQxZjlmZjhjMGQ2ODY5ZmQ2
ZGM5NjgwODA0MTM0ZGFhYWU5NWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTMt
MDItMDUgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CisKKyAgICAg
ICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IE1ha2UgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lIG5v
dCBrbm93IGNvbnRlbnRzIHNpemUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDg5MjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDdXJyZW50bHksIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSBoYXMgdHdv
IG1ldGhvZHMgdG8ga25vdyBjb250ZW50cworICAgICAgICBzaXplOiBzZXRDb250ZW50c1NpemUo
KSBhbmQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdCgpLiBDb250ZW50cyBzaXplIGlzCisgICAgICAg
IHVzZWQgd2hlbiBhZGp1c3RpbmcgYSBzY3JvbGwgcG9zaXRpb24sIGJ1dCBhZGp1c3RtZW50IGlz
IG5vdCBuZWVkZWQKKyAgICAgICAgYmVjYXVzZSBFRkwgYW5kIFF0IHBsYXRmb3JtIGNvZGUgKGN1
cnJlbnRseSBQYWdlVmlld3BvcnRDb250cm9sbGVyKQorICAgICAgICBhbHJlYWR5IGFkanVzdHMg
YSBzY3JvbGwgcG9zaXRpb24sIGFuZCBpdCBpcyBuYXR1cmFsIGZvciBlYWNoIHBsYXRmb3JtCisg
ICAgICAgIHRvIGJlIGluIGNoYXJnZSBvZiBhZGp1c3RpbmcuIFNvIHRoaXMgcGF0Y2ggbWFrZXMg
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lCisgICAgICAgIG5vdCBrbm93IGNvbnRlbnRzIHNpemUu
CisKKyAgICAgICAgSW4gYWRkaXRpb24sIG5vdyBEcmF3aW5nQXJlYVByb3h5Ojpjb29yZGluYXRl
ZExheWVyVHJlZUhvc3RQcm94eSgpIGlzIG9ubHkgdXNlZAorICAgICAgICB0byBnZXQgQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlBhZ2VQcml2YXRlOjp1cGRhdGVTaXplKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHA6CisgICAgICAg
IChRUmF3V2ViVmlldzo6c2V0U2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6c2V0VmlzaWJsZUNvbnRlbnRzUmVj
dCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdhY3lJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudExlZ2FjeUltcGw6OmRpZENoYW5nZUNvbnRlbnRz
U2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xp
ZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVu
dEVmbDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKToKKwogMjAxMy0wMi0wNiAgSHVhbmcgRG9uZ3N1
bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBDb29yZGluYXRlZCBHcmFw
aGljczogcmVtb3ZlIHRoZSBEaWRDaGFuZ2VTY3JvbGxQb3NpdGlvbiBtZXNzYWdlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCBlZGZlMzIwNzhkOGYyMWFiNzg4YTRhY2ZlN2Q1YzJi
Y2YxZjQyOTA2Li5jYTMyNjU3YmQwZjYxZTYyMzViN2Y0YWJjNDUwMmRhZTMyMmU4ODA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtNjA3LDYgKzYwNyw3IEBAIHZvaWQgVGV4dHVy
ZU1hcHBlckxheWVyOjpzZXRTY3JvbGxQb3NpdGlvbkRlbHRhSWZOZWVkZWQoY29uc3QgRmxvYXRT
aXplJiBkZWx0YSkKICAgICAvLyBpbiB0aGUgd2ViIHByb2Nlc3MuIFdlIGFkZCB0aGlzIGRlbHRh
IHRvIHRoZSBwb3NpdGlvbiBvZiBmaXhlZCBsYXllcnMsIHRvIG1ha2UKICAgICAvLyBzdXJlIHRo
YXQgdGhleSBkbyBub3QgbW92ZSB3aGlsZSBzY3JvbGxpbmcuIFdlIG5lZWQgdG8gcmVzZXQgdGhp
cyBkZWx0YSB0byBmaXhlZCBsYXllcnMKICAgICAvLyB0aGF0IGhhdmUgYW4gYW5jZXN0b3Igd2hp
Y2ggaXMgYWxzbyBhIGZpeGVkIGxheWVyLCBiZWNhdXNlIHRoZSBkZWx0YSB3aWxsIGJlIGFkZGVk
IHRvIHRoZSBhbmNlc3Rvci4KKyAgICBBU1NFUlQobV9maXhlZFRvVmlld3BvcnQpOwogICAgIGlm
IChpc0FuY2VzdG9yRml4ZWRUb1ZpZXdwb3J0KCkpCiAgICAgICAgIG1fc2Nyb2xsUG9zaXRpb25E
ZWx0YSA9IEZsb2F0U2l6ZSgpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
U2NlbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggODlhZGVkMzUzZWU0YTBk
NzVlOGQ1YTI4YjVhZmFlM2EwZWYzNzRlOC4uMWVhM2NiZjIzNTk0Mjg4MDE4NjdlY2E5MTUxNTJh
OGFlM2VlZDY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZS5jcHAKQEAgLTUxLDE2ICs1MSw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjpkaXNwYXRjaE9uTWFpblRocmVhZChjb25zdCBGdW5jdGlvbjx2b2lkKCk+
JiBmdW5jCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoZnVuY3Rpb24pOwogfQogCi1zdGF0aWMg
RmxvYXRQb2ludCBib3VuZGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgdmlzaWJsZUNvbnRlbnRSZWN0LCBjb25zdCBGbG9h
dFNpemUmIGNvbnRlbnRTaXplKQotewotICAgIGZsb2F0IHNjcm9sbFBvc2l0aW9uWCA9IHN0ZDo6
bWF4KHNjcm9sbFBvc2l0aW9uLngoKSwgMC4wZik7Ci0gICAgc2Nyb2xsUG9zaXRpb25YID0gc3Rk
OjptaW4oc2Nyb2xsUG9zaXRpb25YLCBjb250ZW50U2l6ZS53aWR0aCgpIC0gdmlzaWJsZUNvbnRl
bnRSZWN0LndpZHRoKCkpOwotCi0gICAgZmxvYXQgc2Nyb2xsUG9zaXRpb25ZID0gc3RkOjptYXgo
c2Nyb2xsUG9zaXRpb24ueSgpLCAwLjBmKTsKLSAgICBzY3JvbGxQb3NpdGlvblkgPSBzdGQ6Om1p
bihzY3JvbGxQb3NpdGlvblksIGNvbnRlbnRTaXplLmhlaWdodCgpIC0gdmlzaWJsZUNvbnRlbnRS
ZWN0LmhlaWdodCgpKTsKLSAgICByZXR1cm4gRmxvYXRQb2ludChzY3JvbGxQb3NpdGlvblgsIHNj
cm9sbFBvc2l0aW9uWSk7Ci19Ci0KIHN0YXRpYyBib29sIGxheWVyU2hvdWxkSGF2ZUJhY2tpbmdT
dG9yZShHcmFwaGljc0xheWVyKiBsYXllcikKIHsKICAgICByZXR1cm4gbGF5ZXItPmRyYXdzQ29u
dGVudCgpICYmIGxheWVyLT5jb250ZW50c0FyZVZpc2libGUoKSAmJiAhbGF5ZXItPnNpemUoKS5p
c0VtcHR5KCk7CkBAIC0xNzksMTQgKzE2OSw5IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lOjpwYWludFRvR3JhcGhpY3NDb250ZXh0KGNhaXJvX3QqIHBhaW50ZXIpCiAgICAgbV90ZXh0
dXJlTWFwcGVyLT5zZXRHcmFwaGljc0NvbnRleHQoMCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjpzZXRDb250ZW50c1NpemUoY29uc3QgRmxvYXRTaXplJiBjb250ZW50c1Np
emUpCi17Ci0gICAgbV9jb250ZW50c1NpemUgPSBjb250ZW50c1NpemU7Ci19Ci0KLXZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRTY3JvbGxQb3Np
dGlvbihjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsKLSAgICBtX3Zpc2libGVD
b250ZW50c1JlY3QgPSByZWN0OworICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlv
bjsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVZpZXdwb3J0KCkK
QEAgLTIwNCw5ICsxODksNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YWRqdXN0
UG9zaXRpb25Gb3JGaXhlZExheWVycygpCiAgICAgLy8gRml4ZWQgbGF5ZXIgcG9zaXRpb25zIGFy
ZSB1cGRhdGVkIGJ5IHRoZSB3ZWIgcHJvY2VzcyB3aGVuIHdlIHVwZGF0ZSB0aGUgdmlzaWJsZSBj
b250ZW50cyByZWN0IC8gc2Nyb2xsIHBvc2l0aW9uLgogICAgIC8vIElmIHdlIHdhbnQgdGhvc2Ug
bGF5ZXJzIHRvIGZvbGxvdyBhY2N1cmF0ZWx5IHRoZSB2aWV3cG9ydCB3aGVuIHdlIG1vdmUgYmV0
d2VlbiB0aGUgd2ViIHByb2Nlc3MgdXBkYXRlcywgd2UgaGF2ZSB0byBvZmZzZXQKICAgICAvLyB0
aGVtIGJ5IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFuZCB0aGUgcG9z
aXRpb24gb2YgdGhlIHZpZXdwb3J0IHVzZWQgZm9yIHRoZSBsYXN0IGxheW91dC4KLSAgICBGbG9h
dFBvaW50IHNjcm9sbFBvc2l0aW9uID0gYm91bmRlZFNjcm9sbFBvc2l0aW9uKG1fdmlzaWJsZUNv
bnRlbnRzUmVjdC5sb2NhdGlvbigpLCBtX3Zpc2libGVDb250ZW50c1JlY3QsIG1fY29udGVudHNT
aXplKTsKLSAgICBGbG9hdFBvaW50IHJlbmRlcmVkU2Nyb2xsUG9zaXRpb24gPSBib3VuZGVkU2Ny
b2xsUG9zaXRpb24obV9yZW5kZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRpb24sIG1fdmlzaWJsZUNv
bnRlbnRzUmVjdCwgbV9jb250ZW50c1NpemUpOwotICAgIEZsb2F0U2l6ZSBkZWx0YSA9IHNjcm9s
bFBvc2l0aW9uIC0gcmVuZGVyZWRTY3JvbGxQb3NpdGlvbjsKKyAgICBGbG9hdFNpemUgZGVsdGEg
PSBtX3Njcm9sbFBvc2l0aW9uIC0gbV9yZW5kZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRpb247CiAK
ICAgICBMYXllclJhd1B0ck1hcDo6aXRlcmF0b3IgZW5kID0gbV9maXhlZExheWVycy5lbmQoKTsK
ICAgICBmb3IgKExheWVyUmF3UHRyTWFwOjppdGVyYXRvciBpdCA9IG1fZml4ZWRMYXllcnMuYmVn
aW4oKTsgaXQgIT0gZW5kOyArK2l0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCmluZGV4IDJlYmQ0YWNkNThkOWJjNTdiNjg5Njg4ZjY2
NzA1ZDdjMzIxYzMxMmYuLjc3YzYxODlmYWZlMjI1ZTg0MDZjMmI5YjA4NGQwMTQwMThmNDc4NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lLmgKQEAgLTgwLDggKzgwLDcgQEAgcHVibGljOgogI2VsaWYgVVNFKENBSVJPKQogICAgIHZv
aWQgcGFpbnRUb0dyYXBoaWNzQ29udGV4dChjYWlyb190Kik7CiAjZW5kaWYKLSAgICB2b2lkIHNl
dENvbnRlbnRzU2l6ZShjb25zdCBGbG9hdFNpemUmKTsKLSAgICB2b2lkIHNldFZpc2libGVDb250
ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7CisgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihj
b25zdCBGbG9hdFBvaW50Jik7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCiAgICAgdm9pZCBj
cmVhdGVDYW52YXMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBJbnRTaXplJiwgUGFzc1JlZlB0
cjxHcmFwaGljc1N1cmZhY2U+KTsKICAgICB2b2lkIHN5bmNDYW52YXMoQ29vcmRpbmF0ZWRMYXll
cklELCB1aW50MzJfdCBmcm9udEJ1ZmZlcik7CkBAIC0xNjksOSArMTY4LDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJlbW92ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKEdyYXBoaWNzTGF5ZXIqKTsKICAg
ICB2b2lkIHJlc2V0QmFja2luZ1N0b3JlU2l6ZVRvTGF5ZXJTaXplKEdyYXBoaWNzTGF5ZXIqKTsK
IAotICAgIEZsb2F0U2l6ZSBtX2NvbnRlbnRzU2l6ZTsKLSAgICBGbG9hdFJlY3QgbV92aXNpYmxl
Q29udGVudHNSZWN0OwotCiAgICAgLy8gUmVuZGVyIHF1ZXVlIGNhbiBiZSBhY2Nlc3NlZCBvbnkg
ZnJvbSBtYWluIHRocmVhZCBvciB1cGRhdGVQYWludE5vZGUgY2FsbCBzdGFjayEKICAgICBWZWN0
b3I8RnVuY3Rpb248dm9pZCgpPiA+IG1fcmVuZGVyUXVldWU7CiAgICAgTXV0ZXggbV9yZW5kZXJR
dWV1ZU11dGV4OwpAQCAtMjA2LDYgKzIwMiw3IEBAIHByaXZhdGU6CiAgICAgdHlwZWRlZiBIYXNo
TWFwPENvb3JkaW5hdGVkTGF5ZXJJRCwgR3JhcGhpY3NMYXllcio+IExheWVyUmF3UHRyTWFwOwog
ICAgIExheWVyUmF3UHRyTWFwIG1fZml4ZWRMYXllcnM7CiAgICAgQ29vcmRpbmF0ZWRMYXllcklE
IG1fcm9vdExheWVySUQ7CisgICAgRmxvYXRQb2ludCBtX3Njcm9sbFBvc2l0aW9uOwogICAgIEZs
b2F0UG9pbnQgbV9yZW5kZXJlZENvbnRlbnRzU2Nyb2xsUG9zaXRpb247CiAgICAgYm9vbCBtX2Fu
aW1hdGlvbnNMb2NrZWQ7CiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHAKaW5k
ZXggMjA3NjFlMmY5NTc4ODk1ZDhkMDZhMzA0NjhiYzFmNzliYWZiZDE4NC4uNGYxOTZlMTM5YTIx
MTAyZTRkMDU2OWZmYjM4MzFhYmM4Y2Q4YWI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwCkBAIC0xNzUsOSArMTc1LDYgQEAgdm9p
ZCBRUXVpY2tXZWJQYWdlUHJpdmF0ZTo6dXBkYXRlU2l6ZSgpCiB7CiAgICAgUVNpemVGIHNjYWxl
ZFNpemUgPSBjb250ZW50c1NpemUgKiBjb250ZW50c1NjYWxlOwogCi0gICAgaWYgKGNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5KCkpCi0gICAgICAgIGNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dFByb3h5KCktPnNldENvbnRlbnRzU2l6ZShXZWJDb3JlOjpGbG9hdFNpemUoY29udGVudHNTaXpl
KSk7Ci0KICAgICBxLT5zZXRTaXplKHNjYWxlZFNpemUpOwogCiAgICAgaWYgKHZpZXdwb3J0SXRl
bS0+ZXhwZXJpbWVudGFsKCktPmZsaWNrYWJsZVZpZXdwb3J0RW5hYmxlZCgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAKaW5k
ZXggZDM0ODFlYTAxNjJhNTNkM2QwODgzZTdkNjMwYzMyZjM0NzAzYTFlZi4uMzg5OTFkZGY2NWMx
YzNlM2M3MTZhNmQ2MDlkY2Q3ZmM5MjAyZDA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcApAQCAtMzQ1LDEyICszNDUsNiBA
QCB2b2lkIFFSYXdXZWJWaWV3OjpzZXRTaXplKGNvbnN0IFFTaXplJiBzaXplKQogCiAgICAgaWYg
KGQtPm1fd2ViUGFnZVByb3h5LT51c2VGaXhlZExheW91dCgpKQogICAgICAgICBkLT5tX3dlYlBh
Z2VQcm94eS0+c2V0Vmlld3BvcnRTaXplKHNpemUpOwotICAgIGVsc2UgewotICAgICAgICBXZWJL
aXQ6OkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5KiBjb29yZGluYXRvciA9IGRyYXdpbmdB
cmVhLT5jb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eSgpOwotICAgICAgICBpZiAoIWNvb3Jk
aW5hdG9yKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBjb29yZGluYXRvci0+c2V0Q29u
dGVudHNTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZShzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkp
KTsKLSAgICB9CiAKICAgICBkLT5tX3NpemUgPSBzaXplOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJl
ZUhvc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAKaW5kZXggYzU3NGY5YThiZjc0
ZmQ5MzdkZDVmZTVhZjFiMDY5NjI4YWQ3YzNlMy4uZjliZGI4MmEwYjMwNzZmNmIxMjcwMDAyMTg0
MmUyNjRjMjQ4OTk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdFByb3h5LmNwcApAQCAtMTYwLDExICsxNjAsNiBAQCB2b2lkIENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdFByb3h5OjpyZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRAogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkNvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZTo6cmVtb3ZlSW1hZ2VCYWNraW5nLCBtX3NjZW5lLmdldCgpLCBpbWFnZUlEKSk7CiB9CiAKLXZv
aWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldENvbnRlbnRzU2l6ZShjb25zdCBG
bG9hdFNpemUmIGNvbnRlbnRzU2l6ZSkKLXsKLSAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldENvbnRlbnRzU2l6ZSwgbV9zY2VuZS5nZXQoKSwgY29u
dGVudHNTaXplKSk7Ci19Ci0KIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHk6OnNl
dExheWVyQW5pbWF0aW9ucyhDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IEdyYXBoaWNzTGF5
ZXJBbmltYXRpb25zJiBhbmltYXRpb25zKQogewogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkNv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0TGF5ZXJBbmltYXRpb25zLCBtX3NjZW5lLmdldCgp
LCBpZCwgYW5pbWF0aW9ucykpOwpAQCAtMTc4LDcgKzE3Myw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0UHJveHk6OnNldEFuaW1hdGlvbnNMb2NrZWQoYm9vbCBsb2NrZWQpCiB2b2lk
IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5OjpzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRQb2ludCYgdHJhamVjdG9yeVZlY3RvcikK
IHsKICAgICAvLyBJbmZvcm0gdGhlIHJlbmRlcmVyIHRvIGFkanVzdCB2aWV3cG9ydC1maXhlZCBs
YXllcnMuCi0gICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
OjpzZXRWaXNpYmxlQ29udGVudHNSZWN0LCBtX3NjZW5lLmdldCgpLCByZWN0KSk7CisgICAgZGlz
cGF0Y2hVcGRhdGUoYmluZCgmQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRTY3JvbGxQb3Np
dGlvbiwgbV9zY2VuZS5nZXQoKSwgcmVjdC5sb2NhdGlvbigpKSk7CiAKICAgICBpZiAocmVjdCA9
PSBtX2xhc3RTZW50VmlzaWJsZVJlY3QgJiYgdHJhamVjdG9yeVZlY3RvciA9PSBtX2xhc3RTZW50
VHJhamVjdG9yeVZlY3RvcikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggNmM3MWU3Y2RkNjk5ZjlkYjUy
OTQ5NDQyOWQ3NTBjM2E3N2FkNjg5Yy4uYTg2MDBkOGU0NGM3ZDY5ZDEzMzE4YzM2YmE5YjgwNDE3
NjI1ZWQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhv
c3RQcm94eS5oCkBAIC02NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZUNvbXBv
c2l0aW5nTGF5ZXJzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29yZGluYXRlZExheWVySUQ+Jik7
CiAgICAgdm9pZCBkZWxldGVDb21wb3NpdGluZ0xheWVycyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6
Q29vcmRpbmF0ZWRMYXllcklEPiYpOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXllcklEKTsKLSAgICB2b2lkIHNldENvbnRlbnRzU2l6ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1Jl
Y3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
dHJhamVjdG9yeVZlY3Rvcik7CiAgICAgdm9pZCBkaWRSZW5kZXJGcmFtZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY29u
dGVudHNTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVkUmVjdCk7CiAgICAgdm9p
ZCBjcmVhdGVUaWxlRm9yTGF5ZXIoV2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXllcklELCB1aW50MzJf
dCB0aWxlSUQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpTdXJmYWNl
VXBkYXRlSW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Q
YWdlQ2xpZW50TGVnYWN5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Bh
Z2VDbGllbnRMZWdhY3lJbXBsLmNwcAppbmRleCA5NTgzMWEyNWU0NTg2OGQzYWY5MGFhN2JiOTU3
ZDQ0Y2NiNjI2OWJjLi4zNTU2MjYyMjFkYjdmY2JiMTE3NzkyMDI5MzkwMjFjN2E2MTRmNTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdhY3lJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdh
Y3lJbXBsLmNwcApAQCAtNzQsNyArNzQsNiBAQCB2b2lkIFBhZ2VDbGllbnRMZWdhY3lJbXBsOjpk
aWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdAogdm9p
ZCBQYWdlQ2xpZW50TGVnYWN5SW1wbDo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNpemUpCiB7CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAg
bV92aWV3LT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPmNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5KCktPnNldENvbnRlbnRzU2l6ZShGbG9hdFNpemUoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdo
dCgpKSk7CiAgICAgbV92aWV3LT51cGRhdGUoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVy
Q2xpZW50RWZsLmNwcAppbmRleCBkNDBkYTEwMmRkYWJmNzgxN2FkM2IwOTkyNTczZmQyMGI4ZDcz
MzI4Li5lZTE2Njk1MGNkM2JmZmM3ODE5YjI4Y2Q0YTJmOTEzNWQ5ZWYzMTAyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGll
bnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudEVmbC5jcHAKQEAgLTcwLDcgKzcwLDYgQEAgdm9pZCBQYWdlVmlld3Bv
cnRDb250cm9sbGVyQ2xpZW50RWZsOjp1cGRhdGVWaWV3cG9ydFNpemUoKQogCiB2b2lkIFBhZ2VW
aWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1NpemUpCiB7Ci0gICAgZHJhd2luZ0FyZWEoKS0+Y29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkoKS0+c2V0Q29udGVudHNTaXplKGNvbnRlbnRzU2l6
ZSk7CiAgICAgbV92aWV3LT51cGRhdGUoKTsKIH0KIAo=
</data>
<flag name="review"
          id="206376"
          type_id="1"
          status="+"
          setter="noam"
    />
    <flag name="commit-queue"
          id="206377"
          type_id="3"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187769</attachid>
            <date>2013-02-11 21:37:14 -0800</date>
            <delta_ts>2013-02-11 22:28:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108922-20130212143306.patch</filename>
            <type>text/plain</type>
            <size>15071</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg4YmNmYTc5MTY2YjQ1
MjhmOWQxMGExMDkwMmM4YTNlMDRmMDVmMC4uYjRhYWE5MTc2NTk1YjhjNzViNDMwNjY4NDcxYWY1
NTZkNTJkM2JjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDEzLTAyLTExICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBNYWtlIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSBub3Qga25vdyBjb250
ZW50cyBzaXplLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA4OTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTm9hbSBSb3NlbnRoYWwuCisKKyAgICAg
ICAgQ3VycmVudGx5LCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUgaGFzIHR3byBtZXRob2RzIHRv
IGtub3cgY29udGVudHMKKyAgICAgICAgc2l6ZTogc2V0Q29udGVudHNTaXplKCkgYW5kIHNldFZp
c2libGVDb250ZW50c1JlY3QoKS4gQ29udGVudHMgc2l6ZSBpcworICAgICAgICB1c2VkIHdoZW4g
YWRqdXN0aW5nIGEgc2Nyb2xsIHBvc2l0aW9uLCBidXQgYWRqdXN0bWVudCBpcyBub3QgbmVlZGVk
CisgICAgICAgIGJlY2F1c2UgRUZMIGFuZCBRdCBwbGF0Zm9ybSBjb2RlIChjdXJyZW50bHkgUGFn
ZVZpZXdwb3J0Q29udHJvbGxlcikKKyAgICAgICAgYWxyZWFkeSBhZGp1c3RzIGEgc2Nyb2xsIHBv
c2l0aW9uLCBhbmQgaXQgaXMgbmF0dXJhbCBmb3IgZWFjaCBwbGF0Zm9ybQorICAgICAgICB0byBi
ZSBpbiBjaGFyZ2Ugb2YgYWRqdXN0aW5nLiBTbyB0aGlzIHBhdGNoIG1ha2VzIENvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZQorICAgICAgICBub3Qga25vdyBjb250ZW50cyBzaXplLgorCisgICAgICAg
IEluIGFkZGl0aW9uLCBub3cgRHJhd2luZ0FyZWFQcm94eTo6Y29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0UHJveHkoKSBpcyBvbmx5IHVzZWQKKyAgICAgICAgdG8gZ2V0IENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS4KKworICAgICAgICBUaGlzIHBhdGNoIGNhbiBvbmx5IGJlIHRlc3RlZCBtYW51YWxs
eSBzaW5jZSB0aGVyZSBpcyBubyBhdXRvbWF0ZWQKKyAgICAgICAgdGVzdGluZyBmYWNpbGl0aWVz
IGZvciBpbi1tb3Rpb24gdG91Y2guCisgICAgICAgIFRlc3Q6IE1hbnVhbFRlc3RzL2ZpeGVkLXBv
c2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAgTWFudWFsVGVzdHMvbmVzdGVkLWZpeGVkLXBvc2l0
aW9uLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpzZXRT
Y3JvbGxQb3NpdGlvbkRlbHRhSWZOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRTY3JvbGxQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFkanVzdFBvc2l0
aW9uRm9yRml4ZWRMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKENvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZSk6CisKKzIwMTMtMDItMTEgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVs
bGFAY29tcGFueTEwMC5uZXQ+CisKICAgICAgICAgW1RleE1hcF0gQXBwbHkgZnJhbWVzLXBlci1z
ZWNvbmQgZGVidWcgY291bnRlciB0byBXSzEuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk1NDAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGEzY2JhODVkNmYxOGNk
Y2I5MGM0OGQ3ZWIzMDEzZDcyMDg3ZmVhOTkuLjZiYWNhNGNlYmNkY2Y3ZDNkNDI3MzdmMGJjZDZj
N2ZiOWZmMmY3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNyBAQAogMjAxMy0wMi0xMSAgSHVh
bmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAorICAgICAgICBDb29yZGlu
YXRlZCBHcmFwaGljczogTWFrZSBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUgbm90IGtub3cgY29u
dGVudHMgc2l6ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwODkyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5vYW0gUm9zZW50aGFsLgorICAgICAg
ICBTaWduZWQgb2ZmIGZvciBXZWJLaXQyIGJ5IEJlbmphbWluIFBvdWxhaW4uCisKKyAgICAgICAg
Q3VycmVudGx5LCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUgaGFzIHR3byBtZXRob2RzIHRvIGtu
b3cgY29udGVudHMKKyAgICAgICAgc2l6ZTogc2V0Q29udGVudHNTaXplKCkgYW5kIHNldFZpc2li
bGVDb250ZW50c1JlY3QoKS4gQ29udGVudHMgc2l6ZSBpcworICAgICAgICB1c2VkIHdoZW4gYWRq
dXN0aW5nIGEgc2Nyb2xsIHBvc2l0aW9uLCBidXQgYWRqdXN0bWVudCBpcyBub3QgbmVlZGVkCisg
ICAgICAgIGJlY2F1c2UgRUZMIGFuZCBRdCBwbGF0Zm9ybSBjb2RlIChjdXJyZW50bHkgUGFnZVZp
ZXdwb3J0Q29udHJvbGxlcikKKyAgICAgICAgYWxyZWFkeSBhZGp1c3RzIGEgc2Nyb2xsIHBvc2l0
aW9uLCBhbmQgaXQgaXMgbmF0dXJhbCBmb3IgZWFjaCBwbGF0Zm9ybQorICAgICAgICB0byBiZSBp
biBjaGFyZ2Ugb2YgYWRqdXN0aW5nLiBTbyB0aGlzIHBhdGNoIG1ha2VzIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZQorICAgICAgICBub3Qga25vdyBjb250ZW50cyBzaXplLgorCisgICAgICAgIElu
IGFkZGl0aW9uLCBub3cgRHJhd2luZ0FyZWFQcm94eTo6Y29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHkoKSBpcyBvbmx5IHVzZWQKKyAgICAgICAgdG8gZ2V0IENvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2VicGFnZS5jcHA6Cisg
ICAgICAgIChRUXVpY2tXZWJQYWdlUHJpdmF0ZTo6dXBkYXRlU2l6ZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwOgorICAgICAgICAoUVJhd1dlYlZpZXc6
OnNldFNpemUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0UHJveHk6OnNldFZpc2libGVDb250ZW50c1JlY3QpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFBy
b3h5Lmg6CisgICAgICAgIChDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eSk6CisgICAgICAg
ICogVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50TGVnYWN5SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRMZWdhY3lJbXBsOjpkaWRDaGFuZ2VDb250ZW50c1NpemUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmw6OmRpZENoYW5n
ZUNvbnRlbnRzU2l6ZSk6CisKKzIwMTMtMDItMTEgIEh1YW5nIERvbmdzdW5nICA8bHV4dGVsbGFA
Y29tcGFueTEwMC5uZXQ+CisKICAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3M6IHJlbW92ZSB0
aGUgRGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24gbWVzc2FnZS4KICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODA1MQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5
ZXIuY3BwCmluZGV4IGVkZmUzMjA3OGQ4ZjIxYWI3ODhhNGFjZmU3ZDVjMmJjZjFmNDI5MDYuLmNh
MzI2NTdiZDBmNjFlNjIzNWI3ZjRhYmM0NTAyZGFlMzIyZTg4MDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuY3BwCkBAIC02MDcsNiArNjA3LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6
OnNldFNjcm9sbFBvc2l0aW9uRGVsdGFJZk5lZWRlZChjb25zdCBGbG9hdFNpemUmIGRlbHRhKQog
ICAgIC8vIGluIHRoZSB3ZWIgcHJvY2Vzcy4gV2UgYWRkIHRoaXMgZGVsdGEgdG8gdGhlIHBvc2l0
aW9uIG9mIGZpeGVkIGxheWVycywgdG8gbWFrZQogICAgIC8vIHN1cmUgdGhhdCB0aGV5IGRvIG5v
dCBtb3ZlIHdoaWxlIHNjcm9sbGluZy4gV2UgbmVlZCB0byByZXNldCB0aGlzIGRlbHRhIHRvIGZp
eGVkIGxheWVycwogICAgIC8vIHRoYXQgaGF2ZSBhbiBhbmNlc3RvciB3aGljaCBpcyBhbHNvIGEg
Zml4ZWQgbGF5ZXIsIGJlY2F1c2UgdGhlIGRlbHRhIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGFuY2Vz
dG9yLgorICAgIEFTU0VSVChtX2ZpeGVkVG9WaWV3cG9ydCk7CiAgICAgaWYgKGlzQW5jZXN0b3JG
aXhlZFRvVmlld3BvcnQoKSkKICAgICAgICAgbV9zY3JvbGxQb3NpdGlvbkRlbHRhID0gRmxvYXRT
aXplKCk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lLmNwcAppbmRleCBjYTYzNTU2NDM0MmJjNzcyMWYyZWVkN2RkMzM0
ODliYzEzNWFiNTNiLi4wMjcxYWM4NzM5NjY2NTFmOWIxYWRlMGE3YWIzMTg4MjRlMTc0NTU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lLmNwcApAQCAtNTEsMTYgKzUxLDYgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6
OmRpc3BhdGNoT25NYWluVGhyZWFkKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmMKICAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChmdW5jdGlvbik7CiB9CiAKLXN0YXRpYyBGbG9hdFBvaW50IGJv
dW5kZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiB2aXNpYmxlQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGVu
dFNpemUpCi17Ci0gICAgZmxvYXQgc2Nyb2xsUG9zaXRpb25YID0gc3RkOjptYXgoc2Nyb2xsUG9z
aXRpb24ueCgpLCAwLjBmKTsKLSAgICBzY3JvbGxQb3NpdGlvblggPSBzdGQ6Om1pbihzY3JvbGxQ
b3NpdGlvblgsIGNvbnRlbnRTaXplLndpZHRoKCkgLSB2aXNpYmxlQ29udGVudFJlY3Qud2lkdGgo
KSk7Ci0KLSAgICBmbG9hdCBzY3JvbGxQb3NpdGlvblkgPSBzdGQ6Om1heChzY3JvbGxQb3NpdGlv
bi55KCksIDAuMGYpOwotICAgIHNjcm9sbFBvc2l0aW9uWSA9IHN0ZDo6bWluKHNjcm9sbFBvc2l0
aW9uWSwgY29udGVudFNpemUuaGVpZ2h0KCkgLSB2aXNpYmxlQ29udGVudFJlY3QuaGVpZ2h0KCkp
OwotICAgIHJldHVybiBGbG9hdFBvaW50KHNjcm9sbFBvc2l0aW9uWCwgc2Nyb2xsUG9zaXRpb25Z
KTsKLX0KLQogc3RhdGljIGJvb2wgbGF5ZXJTaG91bGRIYXZlQmFja2luZ1N0b3JlKEdyYXBoaWNz
TGF5ZXIqIGxheWVyKQogewogICAgIHJldHVybiBsYXllci0+ZHJhd3NDb250ZW50KCkgJiYgbGF5
ZXItPmNvbnRlbnRzQXJlVmlzaWJsZSgpICYmICFsYXllci0+c2l6ZSgpLmlzRW1wdHkoKTsKQEAg
LTE4MiwxNCArMTcyLDkgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnBhaW50VG9H
cmFwaGljc0NvbnRleHQoY2Fpcm9fdCogcGFpbnRlcikKICAgICBtX3RleHR1cmVNYXBwZXItPnNl
dEdyYXBoaWNzQ29udGV4dCgwKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6
OnNldENvbnRlbnRzU2l6ZShjb25zdCBGbG9hdFNpemUmIGNvbnRlbnRzU2l6ZSkKLXsKLSAgICBt
X2NvbnRlbnRzU2l6ZSA9IGNvbnRlbnRzU2l6ZTsKLX0KLQotdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzU2NlbmU6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQor
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQogewotICAgIG1fdmlzaWJsZUNvbnRlbnRzUmVjdCA9
IHJlY3Q7CisgICAgbV9zY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOwogfQogCiB2b2lk
IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6dXBkYXRlVmlld3BvcnQoKQpAQCAtMjA3LDkgKzE5
Miw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZp
eGVkTGF5ZXJzKCkKICAgICAvLyBGaXhlZCBsYXllciBwb3NpdGlvbnMgYXJlIHVwZGF0ZWQgYnkg
dGhlIHdlYiBwcm9jZXNzIHdoZW4gd2UgdXBkYXRlIHRoZSB2aXNpYmxlIGNvbnRlbnRzIHJlY3Qg
LyBzY3JvbGwgcG9zaXRpb24uCiAgICAgLy8gSWYgd2Ugd2FudCB0aG9zZSBsYXllcnMgdG8gZm9s
bG93IGFjY3VyYXRlbHkgdGhlIHZpZXdwb3J0IHdoZW4gd2UgbW92ZSBiZXR3ZWVuIHRoZSB3ZWIg
cHJvY2VzcyB1cGRhdGVzLCB3ZSBoYXZlIHRvIG9mZnNldAogICAgIC8vIHRoZW0gYnkgdGhlIGRl
bHRhIGJldHdlZW4gdGhlIGN1cnJlbnQgcG9zaXRpb24gYW5kIHRoZSBwb3NpdGlvbiBvZiB0aGUg
dmlld3BvcnQgdXNlZCBmb3IgdGhlIGxhc3QgbGF5b3V0LgotICAgIEZsb2F0UG9pbnQgc2Nyb2xs
UG9zaXRpb24gPSBib3VuZGVkU2Nyb2xsUG9zaXRpb24obV92aXNpYmxlQ29udGVudHNSZWN0Lmxv
Y2F0aW9uKCksIG1fdmlzaWJsZUNvbnRlbnRzUmVjdCwgbV9jb250ZW50c1NpemUpOwotICAgIEZs
b2F0UG9pbnQgcmVuZGVyZWRTY3JvbGxQb3NpdGlvbiA9IGJvdW5kZWRTY3JvbGxQb3NpdGlvbiht
X3JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbiwgbV92aXNpYmxlQ29udGVudHNSZWN0LCBt
X2NvbnRlbnRzU2l6ZSk7Ci0gICAgRmxvYXRTaXplIGRlbHRhID0gc2Nyb2xsUG9zaXRpb24gLSBy
ZW5kZXJlZFNjcm9sbFBvc2l0aW9uOworICAgIEZsb2F0U2l6ZSBkZWx0YSA9IG1fc2Nyb2xsUG9z
aXRpb24gLSBtX3JlbmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKIAogICAgIExheWVyUmF3
UHRyTWFwOjppdGVyYXRvciBlbmQgPSBtX2ZpeGVkTGF5ZXJzLmVuZCgpOwogICAgIGZvciAoTGF5
ZXJSYXdQdHJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9maXhlZExheWVycy5iZWdpbigpOyBpdCAhPSBl
bmQ7ICsraXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lLmgKaW5kZXggYTViY2ViZmI0ZGU0Y2IwZjBmNjgzZGRiMmY4YTNkZTc5NDhhMTNl
Ny4uNDhiYjYwNjhhMDYyMmU3ZmE1MTUyZWJmMzA0MzI3MWMxY2FmZWU2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaApAQCAtODUs
OCArODUsNyBAQCBwdWJsaWM6CiAjZWxpZiBVU0UoQ0FJUk8pCiAgICAgdm9pZCBwYWludFRvR3Jh
cGhpY3NDb250ZXh0KGNhaXJvX3QqKTsKICNlbmRpZgotICAgIHZvaWQgc2V0Q29udGVudHNTaXpl
KGNvbnN0IEZsb2F0U2l6ZSYpOwotICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25z
dCBGbG9hdFJlY3QmKTsKKyAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9p
bnQmKTsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKICAgICB2b2lkIGNyZWF0ZUNhbnZhcyhD
b29yZGluYXRlZExheWVySUQsIGNvbnN0IEludFNpemUmLCBQYXNzUmVmUHRyPEdyYXBoaWNzU3Vy
ZmFjZT4pOwogICAgIHZvaWQgc3luY0NhbnZhcyhDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90
IGZyb250QnVmZmVyKTsKQEAgLTE3NCw5ICsxNzMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVt
b3ZlQmFja2luZ1N0b3JlSWZOZWVkZWQoR3JhcGhpY3NMYXllciopOwogICAgIHZvaWQgcmVzZXRC
YWNraW5nU3RvcmVTaXplVG9MYXllclNpemUoR3JhcGhpY3NMYXllciopOwogCi0gICAgRmxvYXRT
aXplIG1fY29udGVudHNTaXplOwotICAgIEZsb2F0UmVjdCBtX3Zpc2libGVDb250ZW50c1JlY3Q7
Ci0KICAgICAvLyBSZW5kZXIgcXVldWUgY2FuIGJlIGFjY2Vzc2VkIG9ueSBmcm9tIG1haW4gdGhy
ZWFkIG9yIHVwZGF0ZVBhaW50Tm9kZSBjYWxsIHN0YWNrIQogICAgIFZlY3RvcjxGdW5jdGlvbjx2
b2lkKCk+ID4gbV9yZW5kZXJRdWV1ZTsKICAgICBNdXRleCBtX3JlbmRlclF1ZXVlTXV0ZXg7CkBA
IC0yMTEsNiArMjA3LDcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8Q29vcmRpbmF0
ZWRMYXllcklELCBHcmFwaGljc0xheWVyKj4gTGF5ZXJSYXdQdHJNYXA7CiAgICAgTGF5ZXJSYXdQ
dHJNYXAgbV9maXhlZExheWVyczsKICAgICBDb29yZGluYXRlZExheWVySUQgbV9yb290TGF5ZXJJ
RDsKKyAgICBGbG9hdFBvaW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAgRmxvYXRQb2ludCBtX3Jl
bmRlcmVkQ29udGVudHNTY3JvbGxQb3NpdGlvbjsKICAgICBib29sIG1fYW5pbWF0aW9uc0xvY2tl
ZDsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJwYWdlLmNwcAppbmRleCAyMDc2MWUyZjk1
Nzg4OTVkOGQwNmEzMDQ2OGJjMWY3OWJhZmJkMTg0Li40ZjE5NmUxMzlhMjExMDJlNGQwNTY5ZmZi
MzgzMWFiYzhjZDhhYjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2VicGFnZS5jcHAKQEAgLTE3NSw5ICsxNzUsNiBAQCB2b2lkIFFRdWlja1dlYlBh
Z2VQcml2YXRlOjp1cGRhdGVTaXplKCkKIHsKICAgICBRU2l6ZUYgc2NhbGVkU2l6ZSA9IGNvbnRl
bnRzU2l6ZSAqIGNvbnRlbnRzU2NhbGU7CiAKLSAgICBpZiAoY29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0UHJveHkoKSkKLSAgICAgICAgY29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkoKS0+c2V0
Q29udGVudHNTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZShjb250ZW50c1NpemUpKTsKLQogICAgIHEt
PnNldFNpemUoc2NhbGVkU2l6ZSk7CiAKICAgICBpZiAodmlld3BvcnRJdGVtLT5leHBlcmltZW50
YWwoKS0+ZmxpY2thYmxlVmlld3BvcnRFbmFibGVkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcAppbmRleCBkMzQ4MWVhMDE2
MmE1M2QzZDA4ODNlN2Q2MzBjMzJmMzQ3MDNhMWVmLi4zODk5MWRkZjY1YzFjM2UzYzcxNmE2ZDYw
OWRjZDdmYzkyMDJkMDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9yYXcvcXJhd3dlYnZpZXcuY3BwCkBAIC0zNDUsMTIgKzM0NSw2IEBAIHZvaWQgUVJhd1dl
YlZpZXc6OnNldFNpemUoY29uc3QgUVNpemUmIHNpemUpCiAKICAgICBpZiAoZC0+bV93ZWJQYWdl
UHJveHktPnVzZUZpeGVkTGF5b3V0KCkpCiAgICAgICAgIGQtPm1fd2ViUGFnZVByb3h5LT5zZXRW
aWV3cG9ydFNpemUoc2l6ZSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIFdlYktpdDo6Q29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0UHJveHkqIGNvb3JkaW5hdG9yID0gZHJhd2luZ0FyZWEtPmNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5KCk7Ci0gICAgICAgIGlmICghY29vcmRpbmF0b3IpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGNvb3JkaW5hdG9yLT5zZXRDb250ZW50c1NpemUoV2Vi
Q29yZTo6RmxvYXRTaXplKHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOwotICAgIH0KIAog
ICAgIGQtPm1fc2l6ZSA9IHNpemU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdFByb3h5LmNwcAppbmRleCA3MmFmODAzNWZjMjYyN2QzMjE0OWE0MzY5
ZWYxYmMwZmZiNjhmYzFkLi5jNWY3ZTg3NWE2ZDhiY2ZkYTRiNzAzNWU0MTkwYzJlNTUzZTczNmJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJv
eHkuY3BwCkBAIC0xNjMsMTEgKzE2Myw2IEBAIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
UHJveHk6OnJlbW92ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lECiAgICAg
ZGlzcGF0Y2hVcGRhdGUoYmluZCgmQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpyZW1vdmVJbWFn
ZUJhY2tpbmcsIG1fc2NlbmUuZ2V0KCksIGltYWdlSUQpKTsKIH0KIAotdm9pZCBDb29yZGluYXRl
ZExheWVyVHJlZUhvc3RQcm94eTo6c2V0Q29udGVudHNTaXplKGNvbnN0IEZsb2F0U2l6ZSYgY29u
dGVudHNTaXplKQotewotICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkNvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZTo6c2V0Q29udGVudHNTaXplLCBtX3NjZW5lLmdldCgpLCBjb250ZW50c1NpemUpKTsK
LX0KLQogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eTo6c2V0TGF5ZXJBbmltYXRp
b25zKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgR3JhcGhpY3NMYXllckFuaW1hdGlvbnMm
IGFuaW1hdGlvbnMpCiB7CiAgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lOjpzZXRMYXllckFuaW1hdGlvbnMsIG1fc2NlbmUuZ2V0KCksIGlkLCBhbmltYXRp
b25zKSk7CkBAIC0xODEsNyArMTc2LDcgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3RQ
cm94eTo6c2V0QW5pbWF0aW9uc0xvY2tlZChib29sIGxvY2tlZCkKIHZvaWQgQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0UHJveHk6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0LCBjb25zdCBGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKQogewogICAgIC8vIElu
Zm9ybSB0aGUgcmVuZGVyZXIgdG8gYWRqdXN0IHZpZXdwb3J0LWZpeGVkIGxheWVycy4KLSAgICBk
aXNwYXRjaFVwZGF0ZShiaW5kKCZDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldFZpc2libGVD
b250ZW50c1JlY3QsIG1fc2NlbmUuZ2V0KCksIHJlY3QpKTsKKyAgICBkaXNwYXRjaFVwZGF0ZShi
aW5kKCZDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldFNjcm9sbFBvc2l0aW9uLCBtX3NjZW5l
LmdldCgpLCByZWN0LmxvY2F0aW9uKCkpKTsKIAogICAgIGlmIChyZWN0ID09IG1fbGFzdFNlbnRW
aXNpYmxlUmVjdCAmJiB0cmFqZWN0b3J5VmVjdG9yID09IG1fbGFzdFNlbnRUcmFqZWN0b3J5VmVj
dG9yKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0UHJveHkuaAppbmRleCBlNmZiZjk1MWY0MmM1NmI4YmJiNTcxNTUwYWI2NWI0
NmNiMjJhNWQ1Li45NDZiMzk5MjBkMjg0ODgzYTg0NGE3ZjE5NjY5MTFiMDg2OWVmOWY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKQEAg
LTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAgIHZvaWQgY3JlYXRlQ29tcG9zaXRpbmdMYXllcnMo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRD4mKTsKICAgICB2b2lkIGRl
bGV0ZUNvbXBvc2l0aW5nTGF5ZXJzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb29yZGluYXRlZExh
eWVySUQ+Jik7CiAgICAgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpDb29y
ZGluYXRlZExheWVySUQpOwotICAgIHZvaWQgc2V0Q29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVj
dG9yKTsKICAgICB2b2lkIGRpZFJlbmRlckZyYW1lKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1NpemUsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGNvdmVyZWRSZWN0KTsKICAgICB2b2lkIGNyZWF0ZVRpbGVG
b3JMYXllcihXZWJDb3JlOjpDb29yZGluYXRlZExheWVySUQsIHVpbnQzMl90IHRpbGVJRCwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OlN1cmZhY2VVcGRhdGVJbmZvJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRMZWdh
Y3lJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2Fj
eUltcGwuY3BwCmluZGV4IDdhOGE5ZmQ1MWNlZjhjYzc4ZTM1YjdhMjQ2MDEzNzMyODBjMzIzMGEu
LjY1NTNhOWQ2YjI1NDRjOGZjNzQ0MWEyNTRjYzM0M2M5MTQ4NzQ1NmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudExlZ2FjeUltcGwuY3BwCkBA
IC03MSw5ICs3MSw3IEBAIHZvaWQgUGFnZUNsaWVudExlZ2FjeUltcGw6OmRpZENoYW5nZVZpZXdw
b3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0CiAKIHZvaWQgUGFnZUNsaWVu
dExlZ2FjeUltcGw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBzaXplKQogewotICAgIG1fdmlldy0+cGFnZSgpLT5kcmF3aW5nQXJlYSgpLT5jb29yZGluYXRl
ZExheWVyVHJlZUhvc3RQcm94eSgpLT5zZXRDb250ZW50c1NpemUoRmxvYXRTaXplKHNpemUud2lk
dGgoKSwgc2l6ZS5oZWlnaHQoKSkpOwogICAgIG1fdmlldy0+c2NoZWR1bGVVcGRhdGVEaXNwbGF5
KCk7Ci0KICAgICBtX3ZpZXctPnNtYXJ0Q2FsbGJhY2s8Q29udGVudHNTaXplQ2hhbmdlZD4oKS5j
YWxsKHNpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9QYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsLmNwcAppbmRleCAxZmY2
YzY5MWZjNmNmZGQ3OWM0NzEwNzVhZjczZTM0MmUxMWEzMzZkLi5lMjI3OGM3YzBlMWZjMThhZDA3
OTc4OTQxNDk4OWJjYjE5NzAxOWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5jcHAK
QEAgLTY4LDcgKzY4LDYgQEAgdm9pZCBQYWdlVmlld3BvcnRDb250cm9sbGVyQ2xpZW50RWZsOjp1
cGRhdGVWaWV3cG9ydFNpemUoKQogCiB2b2lkIFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRF
Zmw6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50
c1NpemUpCiB7Ci0gICAgZHJhd2luZ0FyZWEoKS0+Y29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJv
eHkoKS0+c2V0Q29udGVudHNTaXplKGNvbnRlbnRzU2l6ZSk7CiAgICAgbV92aWV3LT5zY2hlZHVs
ZVVwZGF0ZURpc3BsYXkoKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>