<?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>147137</bug_id>
          
          <creation_ts>2015-07-20 19:30:22 -0700</creation_ts>
          <short_desc>[CoordinatedGraphics] Remove unnecessary two virtual methods from TiledBackingStoreClient</short_desc>
          <delta_ts>2015-08-30 16:30:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryuan Choi">ryuan.choi</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>yoon</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1110872</commentid>
    <comment_count>0</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2015-07-20 19:30:22 -0700</bug_when>
    <thetext>tiledBackingStoreContentsRect() and tiledBackingStoreVisibleRect() are ambiguous methods to get contentsRect and visibleRect from CoordinatedGraphicsLayer.
CoordinatedGraphicsLayer can pass them directly if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110873</commentid>
    <comment_count>1</comment_count>
      <attachid>257156</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2015-07-20 19:39:16 -0700</bug_when>
    <thetext>Created attachment 257156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118089</commentid>
    <comment_count>2</comment_count>
      <attachid>257156</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-08-17 01:05:02 -0700</bug_when>
    <thetext>Comment on attachment 257156
Patch

Any reason you didn&apos;t submit to EWS ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120928</commentid>
    <comment_count>3</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2015-08-26 06:53:38 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 257156 [details]
&gt; Patch
&gt; 
&gt; Any reason you didn&apos;t submit to EWS ?

Sorry for the late answer.

I didn&apos;t know it.

I submit to EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121143</commentid>
    <comment_count>4</comment_count>
      <attachid>257156</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-08-26 18:07:59 -0700</bug_when>
    <thetext>Comment on attachment 257156
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp:-132
&gt; -    IntRect dirtyRect = mapFromContents(contentsRect);

When we don&apos;t adjust mapFromContents(), is there any problem ?

mapFromContents() applies a content scale factor.

IntRect TiledBackingStore::mapFromContents(const IntRect&amp; rect) const
{
    return enclosingIntRect(FloatRect(rect.x() * m_contentsScale,
        rect.y() * m_contentsScale,
        rect.width() * m_contentsScale,
        rect.height() * m_contentsScale));
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121153</commentid>
    <comment_count>5</comment_count>
      <attachid>257156</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2015-08-26 18:32:43 -0700</bug_when>
    <thetext>Comment on attachment 257156
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp:-132
&gt;&gt; -    IntRect dirtyRect = mapFromContents(contentsRect);
&gt; 
&gt; When we don&apos;t adjust mapFromContents(), is there any problem ?
&gt; 
&gt; mapFromContents() applies a content scale factor.
&gt; 
&gt; IntRect TiledBackingStore::mapFromContents(const IntRect&amp; rect) const
&gt; {
&gt;     return enclosingIntRect(FloatRect(rect.x() * m_contentsScale,
&gt;         rect.y() * m_contentsScale,
&gt;         rect.width() * m_contentsScale,
&gt;         rect.height() * m_contentsScale));
&gt; }

With this patch, coverageRatio will get dirtyRect which is already scaled, while previous coverageRatio get contentsRect.

&gt; Source/WebCore/platform/graphics/texmap/coordinated/TiledBackingStore.cpp:151
&gt; +void TiledBackingStore::createTiles(const IntRect&amp; visibleRect, const IntRect&amp; contentsRect)

I will rename these as scaledXXX not to confuse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121182</commentid>
    <comment_count>6</comment_count>
      <attachid>260026</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2015-08-26 20:38:25 -0700</bug_when>
    <thetext>Created attachment 260026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1121274</commentid>
    <comment_count>7</comment_count>
      <attachid>260026</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-08-27 03:45:23 -0700</bug_when>
    <thetext>Comment on attachment 260026
Patch

I can&apos;t find behavior change here. So rs=me that there is no behavior change on the assumption. However someone(yoon?) might want to take a final look before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122083</commentid>
    <comment_count>8</comment_count>
      <attachid>260026</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-30 16:30:11 -0700</bug_when>
    <thetext>Comment on attachment 260026
Patch

Clearing flags on attachment: 260026

Committed r189161: &lt;http://trac.webkit.org/changeset/189161&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122084</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-30 16:30:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257156</attachid>
            <date>2015-07-20 19:39:16 -0700</date>
            <delta_ts>2015-08-26 20:38:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147137-20150721113801.patch</filename>
            <type>text/plain</type>
            <size>13890</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2ODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTlkYTU3NDUwYzg4ZDA4
NTgwOWY0YjNmYTI2NTczM2VjNTQwNDExNi4uN2QyYzM4NDNlNWZhZWZkYmM3NDM5NmZlNTg1NTBm
NDA3MTAyOGY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE1LTA3LTIwICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBuYXZlcmNvcnAuY29tPgorCisgICAgICAgIFtDb29yZGluYXRl
ZEdyYXBoaWNzXSBSZW1vdmUgdW5uZWNlc3NhcnkgdHdvIHZpcnR1YWwgbWV0aG9kcyBmcm9tIFRp
bGVkQmFja2luZ1N0b3JlQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDcxMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICB0aWxlZEJhY2tpbmdTdG9yZUNvbnRlbnRzUmVjdCgpIGFuZCB0aWxlZEJh
Y2tpbmdTdG9yZVZpc2libGVSZWN0KCkgYXJlIG5vdAorICAgICAgICBuZWNlc3NhcnkgYmVjYXVz
ZSBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIgY2FuIHBhc3MgdGhlbSBkaXJlY3RseSBpZiBuZWVk
ZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGVtIGluIG9yZGVyIHRvIHNpbXBsaWZ5
IGNvZGUgZmxvdyBiZXR3ZWVuIFRpbGVkQmFja2luZ1N0b3JlCisgICAgICAgIGFuZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aW1hZ2VCYWNraW5nVmlzaWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkanVzdENvbnRlbnRzU2Nh
bGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2xhbXBUb0NvbnRlbnRzUmVjdElmUmVjdElzSW5maW5p
dGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0cmFuc2Zv
cm1lZFZpc2libGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZUNvbnRlbnRzUmVjdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2lu
Z1N0b3JlVmlzaWJsZVJlY3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVGlsZWRCYWNraW5nU3RvcmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU6OmNyZWF0ZVRpbGVzSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU6OmNvdmVyYWdlUmF0
aW8pOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU6OnZpc2libGVBcmVhSXND
b3ZlcmVkKToKKyAgICAgICAgVXNlZCBUaWxlZEJhY2tpbmdTdG9yZSdzIG1fdmlzaWJsZVJlY3Qg
YW5kIG1fcmVjdCwgY2FjaGVkIHZhbHVlcyBmb3IgdmlzaWJsZVJlY3QsIGNvbnRlbnRzUmVjdC4K
KyAgICAgICAgKFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlOjpjcmVhdGVUaWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6cmVtb3ZlQWxsTm9uVmlzaWJsZVRpbGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlOjpjb3ZlcldpdGhUaWxlc0lm
TmVlZGVkKTogUmVuYW1lZCB0byBjcmVhdGVUaWxlc0lmTmVlZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6VGlsZWRCYWNraW5nU3RvcmU6OnZpc2libGVSZWN0KTogRGVsZXRlZC4gbm9ib2R5IHVzZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RpbGVkQmFj
a2luZ1N0b3JlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL1RpbGVkQmFja2luZ1N0b3JlQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJh
Y2tpbmdTdG9yZUNsaWVudDo6dGlsZWRCYWNraW5nU3RvcmVIYXNQZW5kaW5nVGlsZUNyZWF0aW9u
KToKKyAgICAgICAgUmVtb3ZlZCBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgorCiAyMDE1LTA3LTE1
ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBuYXZlcmNvcnAuY29tPgogCiAgICAgICAgIFtDb29y
ZGluYXRlZEdyYXBoaWNzXSBSZW1vdmUgc2V0Q29udGVudHNTY2FsZSBmcm9tIFRpbGVkQmFja2lu
Z1N0b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwCmluZGV4IGJjNWQzYTY4YTg2MDdkMmY0Nzc1ZjdiY2RiMzhhOGRhNDUxYTcw
ZjkuLjI0ZTc4ODk5ODExNjNhZjY5MDhmYmViYTA2NjMxZDUyMWY1M2JlNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBA
IC04MDUsNyArODA1LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlc2V0TGF5
ZXJTdGF0ZSgpCiBib29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aW1hZ2VCYWNraW5nVmlz
aWJsZSgpCiB7CiAgICAgQVNTRVJUKG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpOwotICAgIHJl
dHVybiB0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KCkuaW50ZXJzZWN0cyhJbnRSZWN0KGNv
bnRlbnRzUmVjdCgpKSk7CisgICAgcmV0dXJuIHRyYW5zZm9ybWVkVmlzaWJsZVJlY3QoKS5pbnRl
cnNlY3RzKEludFJlY3QoY29udGVudHNSZWN0KCkpKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnJlbGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRlZCgpCkBAIC04NjcsNyArODY3
LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkanVzdENvbnRlbnRzU2NhbGUo
KQogICAgIG1fcHJldmlvdXNCYWNraW5nU3RvcmUgPSBXVEY6Om1vdmUobV9tYWluQmFja2luZ1N0
b3JlKTsKIAogICAgIC8vIE5vIHJlYXNvbiB0byBzYXZlIHRoZSBwcmV2aW91cyBiYWNraW5nIHN0
b3JlIGZvciBub24tdmlzaWJsZSBhcmVhcy4KLSAgICBtX3ByZXZpb3VzQmFja2luZ1N0b3JlLT5y
ZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMoKTsKKyAgICBtX3ByZXZpb3VzQmFja2luZ1N0b3JlLT5y
ZW1vdmVBbGxOb25WaXNpYmxlVGlsZXModHJhbnNmb3JtZWRWaXNpYmxlUmVjdCgpLCBJbnRSZWN0
KDAsIDAsIHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpKTsKIH0KIAogdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZUJhY2tpbmdTdG9yZSgpCkBAIC04OTgsMjUgKzg5
OCwyMCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3RvcmVI
YXNQZW5kaW5nVGlsZUNyZWF0aW9uKCkKICAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiB9CiAK
LUludFJlY3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZUNvbnRl
bnRzUmVjdCgpCi17Ci0gICAgcmV0dXJuIEludFJlY3QoMCwgMCwgc2l6ZSgpLndpZHRoKCksIHNp
emUoKS5oZWlnaHQoKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGNsYW1wVG9Db250ZW50c1JlY3RJZlJl
Y3RJc0luZmluaXRlKEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgSW50UmVjdCYgY29udGVudHNSZWN0
KQorc3RhdGljIHZvaWQgY2xhbXBUb0NvbnRlbnRzUmVjdElmUmVjdElzSW5maW5pdGUoRmxvYXRS
ZWN0JiByZWN0LCBjb25zdCBGbG9hdFNpemUmIGNvbnRlbnRzU2l6ZSkKIHsKICAgICBpZiAocmVj
dC53aWR0aCgpID49IExheW91dFVuaXQ6Om5lYXJseU1heCgpIHx8IHJlY3Qud2lkdGgoKSA8PSBM
YXlvdXRVbml0OjpuZWFybHlNaW4oKSkgewotICAgICAgICByZWN0LnNldFgoY29udGVudHNSZWN0
LngoKSk7Ci0gICAgICAgIHJlY3Quc2V0V2lkdGgoY29udGVudHNSZWN0LndpZHRoKCkpOworICAg
ICAgICByZWN0LnNldFgoMCk7CisgICAgICAgIHJlY3Quc2V0V2lkdGgoY29udGVudHNTaXplLndp
ZHRoKCkpOwogICAgIH0KIAogICAgIGlmIChyZWN0LmhlaWdodCgpID49IExheW91dFVuaXQ6Om5l
YXJseU1heCgpIHx8IHJlY3QuaGVpZ2h0KCkgPD0gTGF5b3V0VW5pdDo6bmVhcmx5TWluKCkpIHsK
LSAgICAgICAgcmVjdC5zZXRZKGNvbnRlbnRzUmVjdC55KCkpOwotICAgICAgICByZWN0LnNldEhl
aWdodChjb250ZW50c1JlY3QuaGVpZ2h0KCkpOworICAgICAgICByZWN0LnNldFkoMCk7CisgICAg
ICAgIHJlY3Quc2V0SGVpZ2h0KGNvbnRlbnRzU2l6ZS5oZWlnaHQoKSk7CiAgICAgfQogfQogCi1J
bnRSZWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3RvcmVWaXNpYmxl
UmVjdCgpCitJbnRSZWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dHJhbnNmb3JtZWRWaXNp
YmxlUmVjdCgpCiB7CiAgICAgLy8gTm9uLWludmVydGlibGUgbGF5ZXJzIGFyZSBub3QgdmlzaWJs
ZS4KICAgICBpZiAoIW1fbGF5ZXJUcmFuc2Zvcm0uY29tYmluZWQoKS5pc0ludmVydGlibGUoKSkK
QEAgLTkyNyw3ICs5MjIsNyBAQCBJbnRSZWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGls
ZWRCYWNraW5nU3RvcmVWaXNpYmxlUmVjdCgpCiAgICAgLy8gc28gaXQgbWlnaHQgc3ByZWFkIGZ1
cnRoZXIgdGhhbiB0aGUgcmVhbCB2aXNpYmxlIGFyZWEgKGFuZCB0aGVuIGV2ZW4gbW9yZSBhbXBs
aWZpZWQgYnkgdGhlIGNvdmVyIHJlY3QgbXVsdGlwbGllcikuCiAgICAgQVNTRVJUKG1fY2FjaGVk
SW52ZXJzZVRyYW5zZm9ybSA9PSBtX2xheWVyVHJhbnNmb3JtLmNvbWJpbmVkKCkuaW52ZXJzZSgp
KTsKICAgICBGbG9hdFJlY3QgcmVjdCA9IG1fY2FjaGVkSW52ZXJzZVRyYW5zZm9ybS5jbGFtcGVk
Qm91bmRzT2ZQcm9qZWN0ZWRRdWFkKEZsb2F0UXVhZChtX2Nvb3JkaW5hdG9yLT52aXNpYmxlQ29u
dGVudHNSZWN0KCkpKTsKLSAgICBjbGFtcFRvQ29udGVudHNSZWN0SWZSZWN0SXNJbmZpbml0ZShy
ZWN0LCB0aWxlZEJhY2tpbmdTdG9yZUNvbnRlbnRzUmVjdCgpKTsKKyAgICBjbGFtcFRvQ29udGVu
dHNSZWN0SWZSZWN0SXNJbmZpbml0ZShyZWN0LCBzaXplKCkpOwogICAgIHJldHVybiBlbmNsb3Np
bmdJbnRSZWN0KHJlY3QpOwogfQogCkBAIC0xMDA0LDcgKzk5OSw3IEBAIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVDb250ZW50QnVmZmVycygpCiAKICAgICBpZiAobV9wZW5k
aW5nVmlzaWJsZVJlY3RBZGp1c3RtZW50KSB7CiAgICAgICAgIG1fcGVuZGluZ1Zpc2libGVSZWN0
QWRqdXN0bWVudCA9IGZhbHNlOwotICAgICAgICBtX21haW5CYWNraW5nU3RvcmUtPmNvdmVyV2l0
aFRpbGVzSWZOZWVkZWQoKTsKKyAgICAgICAgbV9tYWluQmFja2luZ1N0b3JlLT5jcmVhdGVUaWxl
c0lmTmVlZGVkKHRyYW5zZm9ybWVkVmlzaWJsZVJlY3QoKSwgSW50UmVjdCgwLCAwLCBzaXplKCku
d2lkdGgoKSwgc2l6ZSgpLmhlaWdodCgpKSk7CiAgICAgfQogCiAgICAgbV9tYWluQmFja2luZ1N0
b3JlLT51cGRhdGVUaWxlQnVmZmVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGYwNTRhZjVkNzViOTEyMDc1ZDRiMDQ3
MDY1ZjE0MWZmY2M2YjA2NzguLmM0ZGY0ZjJkODA1OTMwMDdlNGY4N2UzZTkwYmY2OTM4OTc5MGZj
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmgKQEAgLTEyNiwxMyArMTI2LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZpeGVk
VG9WaWV3cG9ydChib29sIGlzRml4ZWQpOwogCiAgICAgSW50UmVjdCBjb3ZlclJlY3QoKSBjb25z
dCB7IHJldHVybiBtX21haW5CYWNraW5nU3RvcmUgPyBtX21haW5CYWNraW5nU3RvcmUtPm1hcFRv
Q29udGVudHMobV9tYWluQmFja2luZ1N0b3JlLT5jb3ZlclJlY3QoKSkgOiBJbnRSZWN0KCk7IH0K
KyAgICBJbnRSZWN0IHRyYW5zZm9ybWVkVmlzaWJsZVJlY3QoKTsKIAogICAgIC8vIFRpbGVkQmFj
a2luZ1N0b3JlQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIHRpbGVkQmFja2luZ1N0b3JlUGFpbnQo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRVcGRhdGVUaWxlQnVmZmVycygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB0
aWxlZEJhY2tpbmdTdG9yZUhhc1BlbmRpbmdUaWxlQ3JlYXRpb24oKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIEludFJlY3QgdGlsZWRCYWNraW5nU3RvcmVDb250ZW50c1JlY3QoKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIEludFJlY3QgdGlsZWRCYWNraW5nU3RvcmVWaXNpYmxlUmVjdCgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKHVpbnQzMl90IHRpbGVJRCwgZmxvYXQp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaWxlKHVpbnQzMl90IHRpbGVJRCwg
Y29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZVRpbGUodWludDMyX3QgdGlsZUlEKSBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9UaWxlZEJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IGNkODJjZmYw
NGUwNmI4OGMzZGYxNDA4ZmZkNDBmY2MzNzQ0ODU3YjMuLmM1NDRhYWM1NGFhNWFlZGJkMjU2MzNk
ZDRkNzA3N2NiMTMwN2VlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RpbGVkQmFj
a2luZ1N0b3JlLmNwcApAQCAtNjAsMTQgKzYwLDE0IEBAIHZvaWQgVGlsZWRCYWNraW5nU3RvcmU6
OnNldFRyYWplY3RvcnlWZWN0b3IoY29uc3QgRmxvYXRQb2ludCYgdHJhamVjdG9yeVZlY3RvcikK
ICAgICBtX3BlbmRpbmdUcmFqZWN0b3J5VmVjdG9yLm5vcm1hbGl6ZSgpOwogfQogCi12b2lkIFRp
bGVkQmFja2luZ1N0b3JlOjpjb3ZlcldpdGhUaWxlc0lmTmVlZGVkKCkKK3ZvaWQgVGlsZWRCYWNr
aW5nU3RvcmU6OmNyZWF0ZVRpbGVzSWZOZWVkZWQoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3Qs
IGNvbnN0IEludFJlY3QmIGNvbnRlbnRzUmVjdCkKIHsKLSAgICBJbnRSZWN0IHZpc2libGVSZWN0
ID0gdGhpcy0+dmlzaWJsZVJlY3QoKTsKLSAgICBJbnRSZWN0IHJlY3QgPSBtYXBGcm9tQ29udGVu
dHMobV9jbGllbnQtPnRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCkpOworICAgIEludFJl
Y3Qgc2NhbGVkQ29udGVudHNSZWN0ID0gbWFwRnJvbUNvbnRlbnRzKGNvbnRlbnRzUmVjdCk7Cisg
ICAgSW50UmVjdCBzY2FsZWRWaXNpYmxlUmVjdCA9IG1hcEZyb21Db250ZW50cyh2aXNpYmxlUmVj
dCk7CiAKLSAgICBib29sIGRpZENoYW5nZSA9IG1fdHJhamVjdG9yeVZlY3RvciAhPSBtX3BlbmRp
bmdUcmFqZWN0b3J5VmVjdG9yIHx8IG1fdmlzaWJsZVJlY3QgIT0gdmlzaWJsZVJlY3QgfHwgbV9y
ZWN0ICE9IHJlY3Q7CisgICAgYm9vbCBkaWRDaGFuZ2UgPSBtX3RyYWplY3RvcnlWZWN0b3IgIT0g
bV9wZW5kaW5nVHJhamVjdG9yeVZlY3RvciB8fCBtX3Zpc2libGVSZWN0ICE9IHNjYWxlZFZpc2li
bGVSZWN0IHx8IG1fcmVjdCAhPSBzY2FsZWRDb250ZW50c1JlY3Q7CiAgICAgaWYgKGRpZENoYW5n
ZSB8fCBtX3BlbmRpbmdUaWxlQ3JlYXRpb24pCi0gICAgICAgIGNyZWF0ZVRpbGVzKCk7CisgICAg
ICAgIGNyZWF0ZVRpbGVzKHNjYWxlZFZpc2libGVSZWN0LCBzY2FsZWRDb250ZW50c1JlY3QpOwog
fQogCiB2b2lkIFRpbGVkQmFja2luZ1N0b3JlOjppbnZhbGlkYXRlKGNvbnN0IEludFJlY3QmIGNv
bnRlbnRzRGlydHlSZWN0KQpAQCAtMTEwLDExICsxMTAsNiBAQCB2b2lkIFRpbGVkQmFja2luZ1N0
b3JlOjp1cGRhdGVUaWxlQnVmZmVycygpCiAgICAgICAgIG1fY2xpZW50LT5kaWRVcGRhdGVUaWxl
QnVmZmVycygpOwogfQogCi1JbnRSZWN0IFRpbGVkQmFja2luZ1N0b3JlOjp2aXNpYmxlUmVjdCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1hcEZyb21Db250ZW50cyhtX2NsaWVudC0+dGlsZWRCYWNr
aW5nU3RvcmVWaXNpYmxlUmVjdCgpKTsKLX0KLQogZG91YmxlIFRpbGVkQmFja2luZ1N0b3JlOjp0
aWxlRGlzdGFuY2UoY29uc3QgSW50UmVjdCYgdmlld3BvcnQsIGNvbnN0IFRpbGU6OkNvb3JkaW5h
dGUmIHRpbGVDb29yZGluYXRlKSBjb25zdAogewogICAgIGlmICh2aWV3cG9ydC5pbnRlcnNlY3Rz
KHRpbGVSZWN0Rm9yQ29vcmRpbmF0ZSh0aWxlQ29vcmRpbmF0ZSkpKQpAQCAtMTI3LDkgKzEyMiw4
IEBAIGRvdWJsZSBUaWxlZEJhY2tpbmdTdG9yZTo6dGlsZURpc3RhbmNlKGNvbnN0IEludFJlY3Qm
IHZpZXdwb3J0LCBjb25zdCBUaWxlOjpDb29yCiB9CiAKIC8vIFJldHVybnMgYSByYXRpbyBiZXR3
ZWVuIDAuMGYgYW5kIDEuMGYgb2YgdGhlIHN1cmZhY2Ugb2YgY29udGVudHNSZWN0IGNvdmVyZWQg
YnkgcmVuZGVyZWQgdGlsZXMuCi1mbG9hdCBUaWxlZEJhY2tpbmdTdG9yZTo6Y292ZXJhZ2VSYXRp
byhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjb250ZW50c1JlY3QpIGNvbnN0CitmbG9hdCBUaWxl
ZEJhY2tpbmdTdG9yZTo6Y292ZXJhZ2VSYXRpbyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBkaXJ0
eVJlY3QpIGNvbnN0CiB7Ci0gICAgSW50UmVjdCBkaXJ0eVJlY3QgPSBtYXBGcm9tQ29udGVudHMo
Y29udGVudHNSZWN0KTsKICAgICBmbG9hdCByZWN0QXJlYSA9IGRpcnR5UmVjdC53aWR0aCgpICog
ZGlydHlSZWN0LmhlaWdodCgpOwogICAgIGZsb2F0IGNvdmVyQXJlYSA9IDAuMGY7CiAKQEAgLTE1
MSwxNyArMTQ1LDE2IEBAIGZsb2F0IFRpbGVkQmFja2luZ1N0b3JlOjpjb3ZlcmFnZVJhdGlvKGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGNvbnRlbnRzUmVjdCkgY29uCiAKIGJvb2wgVGlsZWRCYWNr
aW5nU3RvcmU6OnZpc2libGVBcmVhSXNDb3ZlcmVkKCkgY29uc3QKIHsKLSAgICBJbnRSZWN0IGJv
dW5kZWRWaXNpYmxlQ29udGVudHNSZWN0ID0gaW50ZXJzZWN0aW9uKG1fY2xpZW50LT50aWxlZEJh
Y2tpbmdTdG9yZVZpc2libGVSZWN0KCksIG1fY2xpZW50LT50aWxlZEJhY2tpbmdTdG9yZUNvbnRl
bnRzUmVjdCgpKTsKLSAgICByZXR1cm4gY292ZXJhZ2VSYXRpbyhib3VuZGVkVmlzaWJsZUNvbnRl
bnRzUmVjdCkgPT0gMS4wZjsKKyAgICByZXR1cm4gY292ZXJhZ2VSYXRpbyhpbnRlcnNlY3Rpb24o
bV92aXNpYmxlUmVjdCwgbV9yZWN0KSkgPT0gMS4wZjsKIH0KIAotdm9pZCBUaWxlZEJhY2tpbmdT
dG9yZTo6Y3JlYXRlVGlsZXMoKQordm9pZCBUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlVGlsZXMo
Y29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRzUmVjdCkK
IHsKICAgICAvLyBVcGRhdGUgb3VyIGJhY2tpbmcgc3RvcmUgZ2VvbWV0cnkuCiAgICAgY29uc3Qg
SW50UmVjdCBwcmV2aW91c1JlY3QgPSBtX3JlY3Q7Ci0gICAgbV9yZWN0ID0gbWFwRnJvbUNvbnRl
bnRzKG1fY2xpZW50LT50aWxlZEJhY2tpbmdTdG9yZUNvbnRlbnRzUmVjdCgpKTsKKyAgICBtX3Jl
Y3QgPSBjb250ZW50c1JlY3Q7CiAgICAgbV90cmFqZWN0b3J5VmVjdG9yID0gbV9wZW5kaW5nVHJh
amVjdG9yeVZlY3RvcjsKLSAgICBtX3Zpc2libGVSZWN0ID0gdmlzaWJsZVJlY3QoKTsKKyAgICBt
X3Zpc2libGVSZWN0ID0gdmlzaWJsZVJlY3Q7CiAKICAgICBpZiAobV9yZWN0LmlzRW1wdHkoKSkg
ewogICAgICAgICBzZXRDb3ZlclJlY3QoSW50UmVjdCgpKTsKQEAgLTM3OSw5ICszNzIsOSBAQCB2
b2lkIFRpbGVkQmFja2luZ1N0b3JlOjpzZXRLZWVwUmVjdChjb25zdCBJbnRSZWN0JiBrZWVwUmVj
dCkKICAgICBtX2tlZXBSZWN0ID0ga2VlcFJlY3Q7CiB9CiAKLXZvaWQgVGlsZWRCYWNraW5nU3Rv
cmU6OnJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpCit2b2lkIFRpbGVkQmFja2luZ1N0b3JlOjpy
ZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QsIGNvbnN0
IEludFJlY3QmIGNvbnRlbnRzUmVjdCkKIHsKLSAgICBJbnRSZWN0IGJvdW5kZWRWaXNpYmxlUmVj
dCA9IG1hcEZyb21Db250ZW50cyhpbnRlcnNlY3Rpb24obV9jbGllbnQtPnRpbGVkQmFja2luZ1N0
b3JlVmlzaWJsZVJlY3QoKSwgbV9jbGllbnQtPnRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0
KCkpKTsKKyAgICBJbnRSZWN0IGJvdW5kZWRWaXNpYmxlUmVjdCA9IG1hcEZyb21Db250ZW50cyhp
bnRlcnNlY3Rpb24odmlzaWJsZVJlY3QsIGNvbnRlbnRzUmVjdCkpOwogICAgIHNldEtlZXBSZWN0
KGJvdW5kZWRWaXNpYmxlUmVjdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9UaWxlZEJhY2tpbmdTdG9yZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RpbGVk
QmFja2luZ1N0b3JlLmgKaW5kZXggYWY3MDc2OWRmYTczOTAwYzRiOGUxNGY5NTEzNzVhMWQxZDU1
YzhkZC4uZTAwMjY4M2JjODk0ZTYxYWRlM2M1M2VmMWMzOGRkZGQwYTVjOGY2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1Rp
bGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL1RpbGVkQmFja2luZ1N0b3JlLmgKQEAgLTQ0LDcgKzQ0LDcgQEAg
cHVibGljOgogICAgIFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBt
X2NsaWVudDsgfQogCiAgICAgdm9pZCBzZXRUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IEZsb2F0UG9p
bnQmKTsKLSAgICB2b2lkIGNvdmVyV2l0aFRpbGVzSWZOZWVkZWQoKTsKKyAgICB2b2lkIGNyZWF0
ZVRpbGVzSWZOZWVkZWQoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QsIGNvbnN0IEludFJlY3Qm
IGNvbnRlbnRzUmVjdCk7CiAKICAgICBmbG9hdCBjb250ZW50c1NjYWxlKCkgeyByZXR1cm4gbV9j
b250ZW50c1NjYWxlOyB9CiAKQEAgLTY0LDIwICs2NCwxOCBAQCBwdWJsaWM6CiAKICAgICBJbnRS
ZWN0IGNvdmVyUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY292ZXJSZWN0OyB9CiAgICAgYm9vbCB2
aXNpYmxlQXJlYUlzQ292ZXJlZCgpIGNvbnN0OwotICAgIHZvaWQgcmVtb3ZlQWxsTm9uVmlzaWJs
ZVRpbGVzKCk7CisgICAgdm9pZCByZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMoY29uc3QgSW50UmVj
dCYgdmlzaWJsZVJlY3QsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRzUmVjdCk7CiAKICAgICB2b2lk
IHNldFN1cHBvcnRzQWxwaGEoYm9vbCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBjcmVhdGVUaWxl
cygpOworICAgIHZvaWQgY3JlYXRlVGlsZXMoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QsIGNv
bnN0IEludFJlY3QmIGNvbnRlbnRzUmVjdCk7CiAgICAgdm9pZCBjb21wdXRlQ292ZXJBbmRLZWVw
UmVjdChjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVjdCwgSW50UmVjdCYgY292ZXJSZWN0LCBJbnRS
ZWN0JiBrZWVwUmVjdCkgY29uc3Q7CiAKICAgICBib29sIHJlc2l6ZUVkZ2VUaWxlcygpOwogICAg
IHZvaWQgc2V0Q292ZXJSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpIHsgbV9jb3ZlclJlY3QgPSBy
ZWN0OyB9CiAgICAgdm9pZCBzZXRLZWVwUmVjdChjb25zdCBJbnRSZWN0Jik7CiAKLSAgICBJbnRS
ZWN0IHZpc2libGVSZWN0KCkgY29uc3Q7Ci0KICAgICBmbG9hdCBjb3ZlcmFnZVJhdGlvKGNvbnN0
IEludFJlY3QmKSBjb25zdDsKICAgICB2b2lkIGFkanVzdEZvckNvbnRlbnRzUmVjdChJbnRSZWN0
JikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9UaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RpbGVkQmFja2luZ1N0
b3JlQ2xpZW50LmgKaW5kZXggYWU5NDUxZmI2MGU5YWI4ODI3ZmM2NmFmNDgxYWNkNjliODQxOTc3
My4uN2Q0OWQ0OWQzNzNkMzE2Nzc1NmJhYzQxZjYxZGJlYWI4MzJlNjNjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RpbGVk
QmFja2luZ1N0b3JlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgKQEAgLTI2LDcg
KzI2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQogCi1jbGFzcyBDb2xvcjsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIFN1cmZh
Y2VVcGRhdGVJbmZvOwogCkBAIC0zNSw5ICszNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5U
aWxlZEJhY2tpbmdTdG9yZUNsaWVudCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJhY2tp
bmdTdG9yZVBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpZFVwZGF0ZVRpbGVCdWZmZXJzKCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCB0aWxlZEJhY2tpbmdTdG9yZUhhc1BlbmRpbmdUaWxlQ3JlYXRpb24oKSB7IH0KLSAgICB2aXJ0
dWFsIEludFJlY3QgdGlsZWRCYWNraW5nU3RvcmVDb250ZW50c1JlY3QoKSA9IDA7Ci0gICAgdmly
dHVhbCBJbnRSZWN0IHRpbGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHRpbGVkQmFja2luZ1N0b3JlSGFzUGVuZGluZ1RpbGVDcmVhdGlvbigpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUaWxlKHVpbnQzMl90IHRpbGVJRCwgZmxvYXQpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGlsZSh1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFN1
cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgSW50UmVjdCYpID0gMDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260026</attachid>
            <date>2015-08-26 20:38:25 -0700</date>
            <delta_ts>2015-08-30 16:30:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147137-20150827123813.patch</filename>
            <type>text/plain</type>
            <size>14154</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5MDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzUzOTJiY2E5N2E5MzQ5
MzRlYjAyZjQyZTJlZTQ0MmQ1YWEwMDM4Ni4uODliODM5ZmNiZjdmYTRlMTJmYmI0YmUwNmVlYjkw
Yzk5OTgwNGI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE1LTA4LTI2ICBSeXVh
biBDaG9pICA8cnl1YW4uY2hvaUBuYXZlcmNvcnAuY29tPgorCisgICAgICAgIFtDb29yZGluYXRl
ZEdyYXBoaWNzXSBSZW1vdmUgdW5uZWNlc3NhcnkgdHdvIHZpcnR1YWwgbWV0aG9kcyBmcm9tIFRp
bGVkQmFja2luZ1N0b3JlQ2xpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDcxMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICB0aWxlZEJhY2tpbmdTdG9yZUNvbnRlbnRzUmVjdCgpIGFuZCB0aWxlZEJh
Y2tpbmdTdG9yZVZpc2libGVSZWN0KCkgYXJlIG5vdAorICAgICAgICBuZWNlc3NhcnkgYmVjYXVz
ZSBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIgY2FuIHBhc3MgdGhlbSBkaXJlY3RseSBpZiBuZWVk
ZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGVtIGluIG9yZGVyIHRvIHNpbXBsaWZ5
IGNvZGUgZmxvdyBiZXR3ZWVuIFRpbGVkQmFja2luZ1N0b3JlCisgICAgICAgIGFuZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aW1hZ2VCYWNraW5nVmlzaWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFkanVzdENvbnRlbnRzU2Nh
bGUpOgorICAgICAgICAoV2ViQ29yZTo6Y2xhbXBUb0NvbnRlbnRzUmVjdElmUmVjdElzSW5maW5p
dGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0cmFuc2Zv
cm1lZFZpc2libGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZUNvbnRlbnRzUmVjdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2lu
Z1N0b3JlVmlzaWJsZVJlY3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVGlsZWRCYWNraW5nU3RvcmUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU6OmNyZWF0ZVRpbGVzSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU6OmNvdmVyYWdlUmF0
aW8pOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU6OnZpc2libGVBcmVhSXND
b3ZlcmVkKToKKyAgICAgICAgVXNlZCBUaWxlZEJhY2tpbmdTdG9yZSdzIG1fdmlzaWJsZVJlY3Qg
YW5kIG1fcmVjdCwgY2FjaGVkIGFuZCBzY2FsZWQgdmFsdWVzIGZvcgorICAgICAgICB2aXNpYmxl
UmVjdCwgY29udGVudHNSZWN0LgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU6
OmNyZWF0ZVRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlOjpyZW1v
dmVBbGxOb25WaXNpYmxlVGlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3Rv
cmU6OmNvdmVyV2l0aFRpbGVzSWZOZWVkZWQpOiBSZW5hbWVkIHRvIGNyZWF0ZVRpbGVzSWZOZWVk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6dmlzaWJsZVJlY3QpOiBE
ZWxldGVkLiBub2JvZHkgdXNlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvVGlsZWRCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRpbGVkQmFja2luZ1N0b3JlQ2xpZW50Ojp0aWxlZEJhY2tpbmdTdG9yZUhh
c1BlbmRpbmdUaWxlQ3JlYXRpb24pOgorICAgICAgICBSZW1vdmVkIGRlZmF1bHQgaW1wbGVtZW50
YXRpb24uCisKIDIwMTUtMDgtMjYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ29jb2FdIFBlcmZvcm1hbmNlVGVzdCBMYXlvdXQvUmVnaW9uc1No
YXBlcy5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggZDM3NDgzZGNkNGE0MjkyZDliYjdhN2I5
NjcwMWU5NjQ5ZWQwZmM1Yy4uZGVjOGEwZTZiOGYwMzc2OTUwZjQ5ODdmYjUyZDk2YWYxOTZlOTA2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAKQEAgLTc5OCw3ICs3OTgsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6cmVzZXRMYXllclN0YXRlKCkKIGJvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpp
bWFnZUJhY2tpbmdWaXNpYmxlKCkKIHsKICAgICBBU1NFUlQobV9jb29yZGluYXRlZEltYWdlQmFj
a2luZyk7Ci0gICAgcmV0dXJuIHRpbGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QoKS5pbnRlcnNl
Y3RzKEludFJlY3QoY29udGVudHNSZWN0KCkpKTsKKyAgICByZXR1cm4gdHJhbnNmb3JtZWRWaXNp
YmxlUmVjdCgpLmludGVyc2VjdHMoSW50UmVjdChjb250ZW50c1JlY3QoKSkpOwogfQogCiB2b2lk
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6cmVsZWFzZUltYWdlQmFja2luZ0lmTmVlZGVkKCkK
QEAgLTg2MCw3ICs4NjAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YWRqdXN0
Q29udGVudHNTY2FsZSgpCiAgICAgbV9wcmV2aW91c0JhY2tpbmdTdG9yZSA9IFdURjo6bW92ZSht
X21haW5CYWNraW5nU3RvcmUpOwogCiAgICAgLy8gTm8gcmVhc29uIHRvIHNhdmUgdGhlIHByZXZp
b3VzIGJhY2tpbmcgc3RvcmUgZm9yIG5vbi12aXNpYmxlIGFyZWFzLgotICAgIG1fcHJldmlvdXNC
YWNraW5nU3RvcmUtPnJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpOworICAgIG1fcHJldmlvdXNC
YWNraW5nU3RvcmUtPnJlbW92ZUFsbE5vblZpc2libGVUaWxlcyh0cmFuc2Zvcm1lZFZpc2libGVS
ZWN0KCksIEludFJlY3QoMCwgMCwgc2l6ZSgpLndpZHRoKCksIHNpemUoKS5oZWlnaHQoKSkpOwog
fQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlQmFja2luZ1N0b3JlKCkK
QEAgLTg5MSwyNSArODkxLDIwIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxl
ZEJhY2tpbmdTdG9yZUhhc1BlbmRpbmdUaWxlQ3JlYXRpb24oKQogICAgIG5vdGlmeUZsdXNoUmVx
dWlyZWQoKTsKIH0KIAotSW50UmVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFj
a2luZ1N0b3JlQ29udGVudHNSZWN0KCkKLXsKLSAgICByZXR1cm4gSW50UmVjdCgwLCAwLCBzaXpl
KCkud2lkdGgoKSwgc2l6ZSgpLmhlaWdodCgpKTsKLX0KLQotc3RhdGljIHZvaWQgY2xhbXBUb0Nv
bnRlbnRzUmVjdElmUmVjdElzSW5maW5pdGUoRmxvYXRSZWN0JiByZWN0LCBjb25zdCBJbnRSZWN0
JiBjb250ZW50c1JlY3QpCitzdGF0aWMgdm9pZCBjbGFtcFRvQ29udGVudHNSZWN0SWZSZWN0SXNJ
bmZpbml0ZShGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGVudHNTaXplKQog
ewogICAgIGlmIChyZWN0LndpZHRoKCkgPj0gTGF5b3V0VW5pdDo6bmVhcmx5TWF4KCkgfHwgcmVj
dC53aWR0aCgpIDw9IExheW91dFVuaXQ6Om5lYXJseU1pbigpKSB7Ci0gICAgICAgIHJlY3Quc2V0
WChjb250ZW50c1JlY3QueCgpKTsKLSAgICAgICAgcmVjdC5zZXRXaWR0aChjb250ZW50c1JlY3Qu
d2lkdGgoKSk7CisgICAgICAgIHJlY3Quc2V0WCgwKTsKKyAgICAgICAgcmVjdC5zZXRXaWR0aChj
b250ZW50c1NpemUud2lkdGgoKSk7CiAgICAgfQogCiAgICAgaWYgKHJlY3QuaGVpZ2h0KCkgPj0g
TGF5b3V0VW5pdDo6bmVhcmx5TWF4KCkgfHwgcmVjdC5oZWlnaHQoKSA8PSBMYXlvdXRVbml0Ojpu
ZWFybHlNaW4oKSkgewotICAgICAgICByZWN0LnNldFkoY29udGVudHNSZWN0LnkoKSk7Ci0gICAg
ICAgIHJlY3Quc2V0SGVpZ2h0KGNvbnRlbnRzUmVjdC5oZWlnaHQoKSk7CisgICAgICAgIHJlY3Qu
c2V0WSgwKTsKKyAgICAgICAgcmVjdC5zZXRIZWlnaHQoY29udGVudHNTaXplLmhlaWdodCgpKTsK
ICAgICB9CiB9CiAKLUludFJlY3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tp
bmdTdG9yZVZpc2libGVSZWN0KCkKK0ludFJlY3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0
cmFuc2Zvcm1lZFZpc2libGVSZWN0KCkKIHsKICAgICAvLyBOb24taW52ZXJ0aWJsZSBsYXllcnMg
YXJlIG5vdCB2aXNpYmxlLgogICAgIGlmICghbV9sYXllclRyYW5zZm9ybS5jb21iaW5lZCgpLmlz
SW52ZXJ0aWJsZSgpKQpAQCAtOTIwLDcgKzkxNSw3IEBAIEludFJlY3QgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjp0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KCkKICAgICAvLyBzbyBpdCBt
aWdodCBzcHJlYWQgZnVydGhlciB0aGFuIHRoZSByZWFsIHZpc2libGUgYXJlYSAoYW5kIHRoZW4g
ZXZlbiBtb3JlIGFtcGxpZmllZCBieSB0aGUgY292ZXIgcmVjdCBtdWx0aXBsaWVyKS4KICAgICBB
U1NFUlQobV9jYWNoZWRJbnZlcnNlVHJhbnNmb3JtID09IG1fbGF5ZXJUcmFuc2Zvcm0uY29tYmlu
ZWQoKS5pbnZlcnNlKCkpOwogICAgIEZsb2F0UmVjdCByZWN0ID0gbV9jYWNoZWRJbnZlcnNlVHJh
bnNmb3JtLmNsYW1wZWRCb3VuZHNPZlByb2plY3RlZFF1YWQoRmxvYXRRdWFkKG1fY29vcmRpbmF0
b3ItPnZpc2libGVDb250ZW50c1JlY3QoKSkpOwotICAgIGNsYW1wVG9Db250ZW50c1JlY3RJZlJl
Y3RJc0luZmluaXRlKHJlY3QsIHRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCkpOworICAg
IGNsYW1wVG9Db250ZW50c1JlY3RJZlJlY3RJc0luZmluaXRlKHJlY3QsIHNpemUoKSk7CiAgICAg
cmV0dXJuIGVuY2xvc2luZ0ludFJlY3QocmVjdCk7CiB9CiAKQEAgLTk5Nyw3ICs5OTIsNyBAQCB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnMoKQogCiAg
ICAgaWYgKG1fcGVuZGluZ1Zpc2libGVSZWN0QWRqdXN0bWVudCkgewogICAgICAgICBtX3BlbmRp
bmdWaXNpYmxlUmVjdEFkanVzdG1lbnQgPSBmYWxzZTsKLSAgICAgICAgbV9tYWluQmFja2luZ1N0
b3JlLT5jb3ZlcldpdGhUaWxlc0lmTmVlZGVkKCk7CisgICAgICAgIG1fbWFpbkJhY2tpbmdTdG9y
ZS0+Y3JlYXRlVGlsZXNJZk5lZWRlZCh0cmFuc2Zvcm1lZFZpc2libGVSZWN0KCksIEludFJlY3Qo
MCwgMCwgc2l6ZSgpLndpZHRoKCksIHNpemUoKS5oZWlnaHQoKSkpOwogICAgIH0KIAogICAgIG1f
bWFpbkJhY2tpbmdTdG9yZS0+dXBkYXRlVGlsZUJ1ZmZlcnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRleCBmMDU0YWY1ZDc1
YjkxMjA3NWQ0YjA0NzA2NWYxNDFmZmNjNmIwNjc4Li5jNGRmNGYyZDgwNTkzMDA3ZTRmODdlM2U5
MGJmNjkzODk3OTBmYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC0xMjYsMTMgKzEyNiwxMiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRGaXhlZFRvVmlld3BvcnQoYm9vbCBpc0ZpeGVkKTsKIAogICAgIEludFJlY3QgY292
ZXJSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9tYWluQmFja2luZ1N0b3JlID8gbV9tYWluQmFja2lu
Z1N0b3JlLT5tYXBUb0NvbnRlbnRzKG1fbWFpbkJhY2tpbmdTdG9yZS0+Y292ZXJSZWN0KCkpIDog
SW50UmVjdCgpOyB9CisgICAgSW50UmVjdCB0cmFuc2Zvcm1lZFZpc2libGVSZWN0KCk7CiAKICAg
ICAvLyBUaWxlZEJhY2tpbmdTdG9yZUNsaWVudAogICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJhY2tp
bmdTdG9yZVBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlVGlsZUJ1ZmZlcnMoKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5nU3RvcmVIYXNQZW5kaW5nVGlsZUNyZWF0aW9uKCkgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCBJbnRSZWN0IHRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0
KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBJbnRSZWN0IHRpbGVkQmFja2luZ1N0b3JlVmlzaWJs
ZVJlY3QoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZSh1aW50MzJfdCB0
aWxlSUQsIGZsb2F0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGlsZSh1aW50
MzJfdCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKHVpbnQzMl90IHRpbGVJRCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvVGlsZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RpbGVkQmFja2luZ1N0b3JlLmNwcApp
bmRleCAyNzdjMGMxMTg0OWUwZGQyNTA2NTg3NzA4NTliMWEzY2Y4MjYzZmUwLi44OGQ1NGQyZGFi
N2E1YmZlNWFjNjQ3MjJlOWRlYmI3MmJhNzk3NmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVGlsZWRCYWNraW5nU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTU0LDE0ICs1NCwxNCBAQCB2b2lkIFRpbGVk
QmFja2luZ1N0b3JlOjpzZXRUcmFqZWN0b3J5VmVjdG9yKGNvbnN0IEZsb2F0UG9pbnQmIHRyYWpl
Y3RvcnlWZWN0b3IpCiAgICAgbV9wZW5kaW5nVHJhamVjdG9yeVZlY3Rvci5ub3JtYWxpemUoKTsK
IH0KIAotdm9pZCBUaWxlZEJhY2tpbmdTdG9yZTo6Y292ZXJXaXRoVGlsZXNJZk5lZWRlZCgpCit2
b2lkIFRpbGVkQmFja2luZ1N0b3JlOjpjcmVhdGVUaWxlc0lmTmVlZGVkKGNvbnN0IEludFJlY3Qm
IHVuc2NhbGVkVmlzaWJsZVJlY3QsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRzUmVjdCkKIHsKLSAg
ICBJbnRSZWN0IHZpc2libGVSZWN0ID0gdGhpcy0+dmlzaWJsZVJlY3QoKTsKLSAgICBJbnRSZWN0
IHJlY3QgPSBtYXBGcm9tQ29udGVudHMobV9jbGllbnQtPnRpbGVkQmFja2luZ1N0b3JlQ29udGVu
dHNSZWN0KCkpOworICAgIEludFJlY3Qgc2NhbGVkQ29udGVudHNSZWN0ID0gbWFwRnJvbUNvbnRl
bnRzKGNvbnRlbnRzUmVjdCk7CisgICAgSW50UmVjdCB2aXNpYmxlUmVjdCA9IG1hcEZyb21Db250
ZW50cyh1bnNjYWxlZFZpc2libGVSZWN0KTsKIAotICAgIGJvb2wgZGlkQ2hhbmdlID0gbV90cmFq
ZWN0b3J5VmVjdG9yICE9IG1fcGVuZGluZ1RyYWplY3RvcnlWZWN0b3IgfHwgbV92aXNpYmxlUmVj
dCAhPSB2aXNpYmxlUmVjdCB8fCBtX3JlY3QgIT0gcmVjdDsKKyAgICBib29sIGRpZENoYW5nZSA9
IG1fdHJhamVjdG9yeVZlY3RvciAhPSBtX3BlbmRpbmdUcmFqZWN0b3J5VmVjdG9yIHx8IG1fdmlz
aWJsZVJlY3QgIT0gdmlzaWJsZVJlY3QgfHwgbV9yZWN0ICE9IHNjYWxlZENvbnRlbnRzUmVjdDsK
ICAgICBpZiAoZGlkQ2hhbmdlIHx8IG1fcGVuZGluZ1RpbGVDcmVhdGlvbikKLSAgICAgICAgY3Jl
YXRlVGlsZXMoKTsKKyAgICAgICAgY3JlYXRlVGlsZXModmlzaWJsZVJlY3QsIHNjYWxlZENvbnRl
bnRzUmVjdCk7CiB9CiAKIHZvaWQgVGlsZWRCYWNraW5nU3RvcmU6OmludmFsaWRhdGUoY29uc3Qg
SW50UmVjdCYgY29udGVudHNEaXJ0eVJlY3QpCkBAIC0xMDQsMTEgKzEwNCw2IEBAIHZvaWQgVGls
ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZVRpbGVCdWZmZXJzKCkKICAgICAgICAgbV9jbGllbnQtPmRp
ZFVwZGF0ZVRpbGVCdWZmZXJzKCk7CiB9CiAKLUludFJlY3QgVGlsZWRCYWNraW5nU3RvcmU6OnZp
c2libGVSZWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbWFwRnJvbUNvbnRlbnRzKG1fY2xpZW50
LT50aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KCkpOwotfQotCiBkb3VibGUgVGlsZWRCYWNr
aW5nU3RvcmU6OnRpbGVEaXN0YW5jZShjb25zdCBJbnRSZWN0JiB2aWV3cG9ydCwgY29uc3QgVGls
ZTo6Q29vcmRpbmF0ZSYgdGlsZUNvb3JkaW5hdGUpIGNvbnN0CiB7CiAgICAgaWYgKHZpZXdwb3J0
LmludGVyc2VjdHModGlsZVJlY3RGb3JDb29yZGluYXRlKHRpbGVDb29yZGluYXRlKSkpCkBAIC0x
MjAsMTAgKzExNSw5IEBAIGRvdWJsZSBUaWxlZEJhY2tpbmdTdG9yZTo6dGlsZURpc3RhbmNlKGNv
bnN0IEludFJlY3QmIHZpZXdwb3J0LCBjb25zdCBUaWxlOjpDb29yCiAgICAgcmV0dXJuIHN0ZDo6
bWF4KGFicyhjZW50ZXJDb29yZGluYXRlLnkoKSAtIHRpbGVDb29yZGluYXRlLnkoKSksIGFicyhj
ZW50ZXJDb29yZGluYXRlLngoKSAtIHRpbGVDb29yZGluYXRlLngoKSkpOwogfQogCi0vLyBSZXR1
cm5zIGEgcmF0aW8gYmV0d2VlbiAwLjBmIGFuZCAxLjBmIG9mIHRoZSBzdXJmYWNlIG9mIGNvbnRl
bnRzUmVjdCBjb3ZlcmVkIGJ5IHJlbmRlcmVkIHRpbGVzLgotZmxvYXQgVGlsZWRCYWNraW5nU3Rv
cmU6OmNvdmVyYWdlUmF0aW8oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY29udGVudHNSZWN0KSBj
b25zdAorLy8gUmV0dXJucyBhIHJhdGlvIGJldHdlZW4gMC4wZiBhbmQgMS4wZiBvZiB0aGUgc3Vy
ZmFjZSBjb3ZlcmVkIGJ5IHJlbmRlcmVkIHRpbGVzLgorZmxvYXQgVGlsZWRCYWNraW5nU3RvcmU6
OmNvdmVyYWdlUmF0aW8oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZGlydHlSZWN0KSBjb25zdAog
ewotICAgIEludFJlY3QgZGlydHlSZWN0ID0gbWFwRnJvbUNvbnRlbnRzKGNvbnRlbnRzUmVjdCk7
CiAgICAgZmxvYXQgcmVjdEFyZWEgPSBkaXJ0eVJlY3Qud2lkdGgoKSAqIGRpcnR5UmVjdC5oZWln
aHQoKTsKICAgICBmbG9hdCBjb3ZlckFyZWEgPSAwLjBmOwogCkBAIC0xNDUsMTcgKzEzOSwxNiBA
QCBmbG9hdCBUaWxlZEJhY2tpbmdTdG9yZTo6Y292ZXJhZ2VSYXRpbyhjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBjb250ZW50c1JlY3QpIGNvbgogCiBib29sIFRpbGVkQmFja2luZ1N0b3JlOjp2aXNp
YmxlQXJlYUlzQ292ZXJlZCgpIGNvbnN0CiB7Ci0gICAgSW50UmVjdCBib3VuZGVkVmlzaWJsZUNv
bnRlbnRzUmVjdCA9IGludGVyc2VjdGlvbihtX2NsaWVudC0+dGlsZWRCYWNraW5nU3RvcmVWaXNp
YmxlUmVjdCgpLCBtX2NsaWVudC0+dGlsZWRCYWNraW5nU3RvcmVDb250ZW50c1JlY3QoKSk7Ci0g
ICAgcmV0dXJuIGNvdmVyYWdlUmF0aW8oYm91bmRlZFZpc2libGVDb250ZW50c1JlY3QpID09IDEu
MGY7CisgICAgcmV0dXJuIGNvdmVyYWdlUmF0aW8oaW50ZXJzZWN0aW9uKG1fdmlzaWJsZVJlY3Qs
IG1fcmVjdCkpID09IDEuMGY7CiB9CiAKLXZvaWQgVGlsZWRCYWNraW5nU3RvcmU6OmNyZWF0ZVRp
bGVzKCkKK3ZvaWQgVGlsZWRCYWNraW5nU3RvcmU6OmNyZWF0ZVRpbGVzKGNvbnN0IEludFJlY3Qm
IHZpc2libGVSZWN0LCBjb25zdCBJbnRSZWN0JiBzY2FsZWRDb250ZW50c1JlY3QpCiB7CiAgICAg
Ly8gVXBkYXRlIG91ciBiYWNraW5nIHN0b3JlIGdlb21ldHJ5LgogICAgIGNvbnN0IEludFJlY3Qg
cHJldmlvdXNSZWN0ID0gbV9yZWN0OwotICAgIG1fcmVjdCA9IG1hcEZyb21Db250ZW50cyhtX2Ns
aWVudC0+dGlsZWRCYWNraW5nU3RvcmVDb250ZW50c1JlY3QoKSk7CisgICAgbV9yZWN0ID0gc2Nh
bGVkQ29udGVudHNSZWN0OwogICAgIG1fdHJhamVjdG9yeVZlY3RvciA9IG1fcGVuZGluZ1RyYWpl
Y3RvcnlWZWN0b3I7Ci0gICAgbV92aXNpYmxlUmVjdCA9IHZpc2libGVSZWN0KCk7CisgICAgbV92
aXNpYmxlUmVjdCA9IHZpc2libGVSZWN0OwogCiAgICAgaWYgKG1fcmVjdC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgc2V0Q292ZXJSZWN0KEludFJlY3QoKSk7CkBAIC0zNzMsOSArMzY2LDkgQEAgdm9p
ZCBUaWxlZEJhY2tpbmdTdG9yZTo6c2V0S2VlcFJlY3QoY29uc3QgSW50UmVjdCYga2VlcFJlY3Qp
CiAgICAgbV9rZWVwUmVjdCA9IGtlZXBSZWN0OwogfQogCi12b2lkIFRpbGVkQmFja2luZ1N0b3Jl
OjpyZW1vdmVBbGxOb25WaXNpYmxlVGlsZXMoKQordm9pZCBUaWxlZEJhY2tpbmdTdG9yZTo6cmVt
b3ZlQWxsTm9uVmlzaWJsZVRpbGVzKGNvbnN0IEludFJlY3QmIHVuc2NhbGVkVmlzaWJsZVJlY3Qs
IGNvbnN0IEludFJlY3QmIGNvbnRlbnRzUmVjdCkKIHsKLSAgICBJbnRSZWN0IGJvdW5kZWRWaXNp
YmxlUmVjdCA9IG1hcEZyb21Db250ZW50cyhpbnRlcnNlY3Rpb24obV9jbGllbnQtPnRpbGVkQmFj
a2luZ1N0b3JlVmlzaWJsZVJlY3QoKSwgbV9jbGllbnQtPnRpbGVkQmFja2luZ1N0b3JlQ29udGVu
dHNSZWN0KCkpKTsKKyAgICBJbnRSZWN0IGJvdW5kZWRWaXNpYmxlUmVjdCA9IG1hcEZyb21Db250
ZW50cyhpbnRlcnNlY3Rpb24odW5zY2FsZWRWaXNpYmxlUmVjdCwgY29udGVudHNSZWN0KSk7CiAg
ICAgc2V0S2VlcFJlY3QoYm91bmRlZFZpc2libGVSZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RpbGVkQmFj
a2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvVGlsZWRCYWNraW5nU3RvcmUuaAppbmRleCBhMTM2NzVhODEwNDBmNTFkN2M2MzU2
NWRiNzM5Yzk2YWUyZDY1NmFkLi4zYWUzMjk1OWQxMjBmODMwYzcwNjE3ZmEzMmNiNTI1NzBiZTUx
NDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvVGlsZWRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVGlsZWRCYWNraW5nU3RvcmUuaApAQCAt
NDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgVGlsZWRCYWNraW5nU3RvcmVDbGllbnQqIGNsaWVu
dCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICB2b2lkIHNldFRyYWplY3RvcnlWZWN0b3Io
Y29uc3QgRmxvYXRQb2ludCYpOwotICAgIHZvaWQgY292ZXJXaXRoVGlsZXNJZk5lZWRlZCgpOwor
ICAgIHZvaWQgY3JlYXRlVGlsZXNJZk5lZWRlZChjb25zdCBJbnRSZWN0JiB1bnNjYWxlZFZpc2li
bGVSZWN0LCBjb25zdCBJbnRSZWN0JiBjb250ZW50c1JlY3QpOwogCiAgICAgZmxvYXQgY29udGVu
dHNTY2FsZSgpIHsgcmV0dXJuIG1fY29udGVudHNTY2FsZTsgfQogCkBAIC02MSwyMCArNjEsMTgg
QEAgcHVibGljOgogCiAgICAgSW50UmVjdCBjb3ZlclJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Nv
dmVyUmVjdDsgfQogICAgIGJvb2wgdmlzaWJsZUFyZWFJc0NvdmVyZWQoKSBjb25zdDsKLSAgICB2
b2lkIHJlbW92ZUFsbE5vblZpc2libGVUaWxlcygpOworICAgIHZvaWQgcmVtb3ZlQWxsTm9uVmlz
aWJsZVRpbGVzKGNvbnN0IEludFJlY3QmIHVuc2NhbGVkVmlzaWJsZVJlY3QsIGNvbnN0IEludFJl
Y3QmIGNvbnRlbnRzUmVjdCk7CiAKICAgICB2b2lkIHNldFN1cHBvcnRzQWxwaGEoYm9vbCk7CiAK
IHByaXZhdGU6Ci0gICAgdm9pZCBjcmVhdGVUaWxlcygpOworICAgIHZvaWQgY3JlYXRlVGlsZXMo
Y29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QsIGNvbnN0IEludFJlY3QmIHNjYWxlZENvbnRlbnRz
UmVjdCk7CiAgICAgdm9pZCBjb21wdXRlQ292ZXJBbmRLZWVwUmVjdChjb25zdCBJbnRSZWN0JiB2
aXNpYmxlUmVjdCwgSW50UmVjdCYgY292ZXJSZWN0LCBJbnRSZWN0JiBrZWVwUmVjdCkgY29uc3Q7
CiAKICAgICBib29sIHJlc2l6ZUVkZ2VUaWxlcygpOwogICAgIHZvaWQgc2V0Q292ZXJSZWN0KGNv
bnN0IEludFJlY3QmIHJlY3QpIHsgbV9jb3ZlclJlY3QgPSByZWN0OyB9CiAgICAgdm9pZCBzZXRL
ZWVwUmVjdChjb25zdCBJbnRSZWN0Jik7CiAKLSAgICBJbnRSZWN0IHZpc2libGVSZWN0KCkgY29u
c3Q7Ci0KICAgICBmbG9hdCBjb3ZlcmFnZVJhdGlvKGNvbnN0IEludFJlY3QmKSBjb25zdDsKICAg
ICB2b2lkIGFkanVzdEZvckNvbnRlbnRzUmVjdChJbnRSZWN0JikgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9U
aWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgKaW5kZXggYWU5
NDUxZmI2MGU5YWI4ODI3ZmM2NmFmNDgxYWNkNjliODQxOTc3My4uN2Q0OWQ0OWQzNzNkMzE2Nzc1
NmJhYzQxZjYxZGJlYWI4MzJlNjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1RpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L1RpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgKQEAgLTI2LDcgKzI2LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogCi1jbGFzcyBDb2xvcjsK
IGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIFN1cmZhY2VVcGRhdGVJbmZvOwogCkBAIC0z
NSw5ICszNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UaWxlZEJhY2tpbmdTdG9yZUNsaWVu
dCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJhY2tpbmdTdG9yZVBhaW50KEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0
ZVRpbGVCdWZmZXJzKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJhY2tpbmdTdG9yZUhh
c1BlbmRpbmdUaWxlQ3JlYXRpb24oKSB7IH0KLSAgICB2aXJ0dWFsIEludFJlY3QgdGlsZWRCYWNr
aW5nU3RvcmVDb250ZW50c1JlY3QoKSA9IDA7Ci0gICAgdmlydHVhbCBJbnRSZWN0IHRpbGVkQmFj
a2luZ1N0b3JlVmlzaWJsZVJlY3QoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRpbGVkQmFja2lu
Z1N0b3JlSGFzUGVuZGluZ1RpbGVDcmVhdGlvbigpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBj
cmVhdGVUaWxlKHVpbnQzMl90IHRpbGVJRCwgZmxvYXQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlVGlsZSh1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29u
c3QgSW50UmVjdCYpID0gMDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>