<?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>138168</bug_id>
          
          <creation_ts>2014-10-29 03:14:16 -0700</creation_ts>
          <short_desc>[CoordinatedGraphics] Use modern for-loops</short_desc>
          <delta_ts>2014-10-29 18:18:34 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hunseop Jeong">hs85.jeong</reporter>
          <assigned_to name="Hunseop Jeong">hs85.jeong</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1044733</commentid>
    <comment_count>0</comment_count>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2014-10-29 03:14:16 -0700</bug_when>
    <thetext>This patch cleans up a couple of for loops by using C++11 syntax.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044737</commentid>
    <comment_count>1</comment_count>
      <attachid>240595</attachid>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2014-10-29 03:45:45 -0700</bug_when>
    <thetext>Created attachment 240595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044738</commentid>
    <comment_count>2</comment_count>
      <attachid>240596</attachid>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2014-10-29 03:51:18 -0700</bug_when>
    <thetext>Created attachment 240596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044924</commentid>
    <comment_count>3</comment_count>
      <attachid>240596</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-29 17:39:03 -0700</bug_when>
    <thetext>Comment on attachment 240596
Patch

LGTM too. cq=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044938</commentid>
    <comment_count>4</comment_count>
      <attachid>240596</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-29 18:18:29 -0700</bug_when>
    <thetext>Comment on attachment 240596
Patch

Clearing flags on attachment: 240596

Committed r175361: &lt;http://trac.webkit.org/changeset/175361&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044939</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-29 18:18:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240595</attachid>
            <date>2014-10-29 03:45:45 -0700</date>
            <delta_ts>2014-10-29 03:51:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138168-20141029194552.patch</filename>
            <type>text/plain</type>
            <size>19927</size>
            <attacher name="Hunseop Jeong">hs85.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc4YzM0ZjQwNmZkY2Uw
ZjdlYTYxZjdiODAzYWMyN2E1ZDY2MjA5Ny4uMDVkODI1NDliZGNlOGFhZmJkMTczYjdiNzcwMzQz
NzJkZGZiZjM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTEwLTI5ICBIdW5z
ZW9wIEplb25nICA8aHM4NS5qZW9uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbQ29vcmRpbmF0
ZWRHcmFwaGljc10gVXNlIG1vZGVybiBmb3ItbG9vcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGVyZSBpcyBubyBjaGFu
Z2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcDogVXNlIGEgbW9kZXJuIGZv
ciBsb29wLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6cmVuZGVy
TmV4dEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnBh
aW50VG9TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDogVXNlIGEgbW9kZXJuIGZvciBsb29w
LgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG91bGRV
cGRhdGVWaXNpYmxlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5nU3Vi
TGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmlu
ZEZpcnN0RGVzY2VuZGFudFdpdGhDb250ZW50c1JlY3Vyc2l2ZWx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnNJbmNsdWRp
bmdTdWJMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6IFVzZSBhIG1vZGVybiBmb3IgbG9vcC4K
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGVWaXNpYmls
aXR5SWZOZWVkZWQpOgorCiAyMDE0LTEwLTE3ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxh
ckBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IGdyb3d0aFNoYXJlID4g
MCBpbiBXZWJDb3JlOjpSZW5kZXJHcmlkOjpkaXN0cmlidXRlU3BhY2VUb1RyYWNrcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IGNiMDI2NTljZDA5ZjkxOTdkNTk3NmFlZTk3YmUxNWMwNjk2ZTUzOWYuLjZkMGNjOTUw
ZWQ1OWVkNTM1NjcwZGUwNDljYWEwNDI4MjNmNWNiYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MSBAQAorMjAxNC0xMC0yOSAgSHVuc2VvcCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgW0Nvb3JkaW5hdGVkR3JhcGhpY3NdIFVzZSBtb2Rlcm4gZm9yLWxvb3BzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgxNjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgYXMgdGhlcmUgaXMgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHA6
IFVzZSBhIG1vZGVybiBmb3IgbG9vcC4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlOjp0ZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlOjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuY3BwOiBVc2Ug
YSBtb2Rlcm4gZm9yIGxvb3AuCisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkRHJhd2luZ0Fy
ZWFQcm94eTo6aW5jb3Jwb3JhdGVVcGRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6IFVzZSBhIG1vZGVybiBm
b3IgbG9vcC4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0
TGF5ZXJDaGlsZHJlbklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6Y3JlYXRlTGF5ZXJzKTogY2hhbmdlZCB0aGUgbmFtZSBvZiBhcmd1bWVudCB0
byBiZSBlcXVhbCB3aXRoIGRlbGV0ZUxheWVyKCkuIAorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lOjpkZWxldGVMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVhdGVUaWxlc0lmTmVlZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cmVtb3ZlVGlsZXNJZk5lZWRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVRpbGVzSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzeW5j
VXBkYXRlQXRsYXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmU6OnN5bmNJbWFnZUJhY2tpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6Y29tbWl0U2NlbmVTdGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5jcHA6IFVzZSBh
IG1vZGVybiBmb3IgbG9vcC4KKyAgICAgICAgKFdlYktpdDo6c2hvdWxkUGFpbnRCb3VuZHNSZWN0
KToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6ZGlzcGxheSk6CisK
IDIwMTQtMTAtMjggIFRpbmctV2VpIExhbiAgPGxhbnR3NDRAZ21haWwuY29tPgogCiAgICAgICAg
IENhc3Qgc3RkOjpjaHJvbm86OmR1cmF0aW9uLmNvdW50KCkgdG8gaW50NjRfdCBpbiBBcmd1bWVu
dENvZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGlu
YXRvci5jcHAKaW5kZXggZjA5MTBiZWQwYzE5MDM2YjMyOWFiMDg2MTI5MDg0YTRiYWZlODUyMS4u
MGRhNDI5YmYyOTZlOTQwZThmMDhiNTU5MDhjZjUzOTBiYjE4OGMyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0
aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMzU2LDgg
KzM1Niw4IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Y29tbWl0U2Nyb2xsT2Zmc2V0
KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6CiAKIHZvaWQgQ29tcG9zaXRpbmdDb29y
ZGluYXRvcjo6cmVuZGVyTmV4dEZyYW1lKCkKIHsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV91cGRhdGVBdGxhc2VzLnNpemUoKTsgKytpKQotICAgICAgICBtX3VwZGF0ZUF0bGFzZXNb
aV0tPmRpZFN3YXBCdWZmZXJzKCk7CisgICAgZm9yIChhdXRvJiBhdGxhcyA6IG1fdXBkYXRlQXRs
YXNlcykKKyAgICAgICAgYXRsYXMtPmRpZFN3YXBCdWZmZXJzKCk7CiB9CiAKIHZvaWQgQ29tcG9z
aXRpbmdDb29yZGluYXRvcjo6cHVyZ2VCYWNraW5nU3RvcmVzKCkKQEAgLTM3Myw4ICszNzMsOCBA
QCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnB1cmdlQmFja2luZ1N0b3JlcygpCiAKIGJv
b2wgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cGFpbnRUb1N1cmZhY2UoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncyBmbGFncywgdWludDMyX3QmIGF0bGFzSUQs
IEludFBvaW50JiBvZmZzZXQsIENvb3JkaW5hdGVkU3VyZmFjZTo6Q2xpZW50KiBjbGllbnQpCiB7
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fdXBkYXRlQXRsYXNlcy5zaXplKCk7ICsr
aSkgewotICAgICAgICBVcGRhdGVBdGxhcyogYXRsYXMgPSBtX3VwZGF0ZUF0bGFzZXNbaV0uZ2V0
KCk7CisgICAgZm9yIChhdXRvJiB1cGRhdGVBdGxhcyA6IG1fdXBkYXRlQXRsYXNlcykgeworICAg
ICAgICBVcGRhdGVBdGxhcyogYXRsYXMgPSB1cGRhdGVBdGxhcy5nZXQoKTsKICAgICAgICAgaWYg
KGF0bGFzLT5zdXBwb3J0c0FscGhhKCkgPT0gKGZsYWdzICYgQ29vcmRpbmF0ZWRTdXJmYWNlOjpT
dXBwb3J0c0FscGhhKSkgewogICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGJlIGZhbHNlIGlmIHRo
ZXJlIGlzIG5vIGF2YWlsYWJsZSBidWZmZXIgc3BhY2UuCiAgICAgICAgICAgICBpZiAoYXRsYXMt
PnBhaW50T25BdmFpbGFibGVCdWZmZXIoc2l6ZSwgYXRsYXNJRCwgb2Zmc2V0LCBjbGllbnQpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmNwcAppbmRleCAzN2I3NmM1ZmNiNTI1NzlmNWY0NGI1YWM2OTNhZDY5NWM4ZTQ1MWFmLi4wNGM5
MDhiMmEzM2NiY2MxMjRhMjA5M2FiNGQ1MjczYWE5ZTQzNGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtOTEsOCAr
OTEsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlSW1hZ2VCYWNr
aW5nKCkKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG91bGRVcGRhdGVWaXNp
YmxlUmVjdCgpCiB7CiAgICAgbV9zaG91bGRVcGRhdGVWaXNpYmxlUmVjdCA9IHRydWU7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQotICAgICAgICB0
b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjaGlsZHJlbigpW2ldKS0+c2V0U2hvdWxkVXBkYXRl
VmlzaWJsZVJlY3QoKTsKKyAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4oKSkKKyAgICAg
ICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGQpLT5zZXRTaG91bGRVcGRhdGVWaXNp
YmxlUmVjdCgpOwogICAgIGlmIChyZXBsaWNhTGF5ZXIoKSkKICAgICAgICAgdG9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIocmVwbGljYUxheWVyKCkpLT5zZXRTaG91bGRVcGRhdGVWaXNpYmxlUmVj
dCgpOwogfQpAQCAtNTk4LDggKzU5OCw4IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogCiAgICAgZmx1
c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCi0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQotICAgICAgICBjaGlsZHJlbigpW2ld
LT5mbHVzaENvbXBvc2l0aW5nU3RhdGUocmVjdCk7CisgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNo
aWxkcmVuKCkpCisgICAgICAgIGNoaWxkLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUocmVjdCk7CiB9
CiAKIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIo
R3JhcGhpY3NMYXllciogbGF5ZXIpCkBAIC02MTQsOCArNjE0LDggQEAgdm9pZCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbigpCiAgICAgbV9zaG91bGRTeW5jQ2hpbGRyZW4g
PSBmYWxzZTsKICAgICBtX2xheWVyU3RhdGUuY2hpbGRyZW5DaGFuZ2VkID0gdHJ1ZTsKICAgICBt
X2xheWVyU3RhdGUuY2hpbGRyZW4uY2xlYXIoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fbGF5ZXJTdGF0ZS5jaGlsZHJlbi5h
cHBlbmQodG9Db29yZGluYXRlZExheWVySUQoY2hpbGRyZW4oKVtpXSkpOworICAgIGZvciAoYXV0
byYgY2hpbGQgOiBjaGlsZHJlbigpKQorICAgICAgICBtX2xheWVyU3RhdGUuY2hpbGRyZW4uYXBw
ZW5kKHRvQ29vcmRpbmF0ZWRMYXllcklEKGNoaWxkKSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpzeW5jRmlsdGVycygpCkBAIC04MDIsOCArODAyLDggQEAgdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5nU3Vi
TGF5ZXJzKCkKICAgICBpZiAobWFza0xheWVyKCkpCiAgICAgICAgIHRvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKG1hc2tMYXllcigpKS0+c3luY1BlbmRpbmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdT
dWJMYXllcnMoKTsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXpl
KCk7ICsraSkKLSAgICAgICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGRyZW4oKVtp
XSktPnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5nU3ViTGF5ZXJzKCk7CisgICAgZm9y
IChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKCkpCisgICAgICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKGNoaWxkKS0+c3luY1BlbmRpbmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdTdWJMYXllcnMo
KTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlc2V0TGF5ZXJTdGF0ZSgp
CkBAIC04NDIsOCArODQyLDggQEAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGUKICAgICBpZiAoc2hv
dWxkSGF2ZUJhY2tpbmdTdG9yZSgpKQogICAgICAgICByZXR1cm4gdGhpczsKIAotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkgewotICAgICAgICBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIo
Y2hpbGRyZW4oKVtpXSktPmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1cnNpdmVs
eSgpOworICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbigpKSB7CisgICAgICAgIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihj
aGlsZCktPmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1cnNpdmVseSgpOwogICAg
ICAgICBpZiAobGF5ZXIpCiAgICAgICAgICAgICByZXR1cm4gbGF5ZXI7CiAgICAgfQpAQCAtMTAw
Myw4ICsxMDAzLDggQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZUNvbnRl
bnRCdWZmZXJzSW5jbHVkaW5nU3ViTGF5ZXJzKCkKIAogICAgIHVwZGF0ZUNvbnRlbnRCdWZmZXJz
KCk7CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kp
Ci0gICAgICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNoaWxkcmVuKClbaV0pLT51cGRh
dGVDb250ZW50QnVmZmVyc0luY2x1ZGluZ1N1YkxheWVycygpOworICAgIGZvciAoYXV0byYgY2hp
bGQgOiBjaGlsZHJlbigpKQorICAgICAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjaGls
ZCktPnVwZGF0ZUNvbnRlbnRCdWZmZXJzSW5jbHVkaW5nU3ViTGF5ZXJzKCk7CiB9CiAKIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVDb250ZW50QnVmZmVycygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAppbmRl
eCA1MGY0ZWVlODY1Y2JmMjMwNDQ5Yzk5MWVjOTc2YzUyODIyZjg2YjY0Li44MGM0ZWVkNmIyMzli
ZGI5ZDIwMTExZDMwNDUxOWFiY2Y1MzYxZGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKQEAgLTE1MSw4ICsxNTEsOCBAQCB2
b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGVWaXNpYmlsaXR5SWZOZWVkZWQoYm9v
bCYgY2hhbmdlZFRvVmlzaWJsZSkKICAgICBib29sIHByZXZpb3VzSXNWaXNpYmxlID0gbV9pc1Zp
c2libGU7CiAKICAgICBtX2lzVmlzaWJsZSA9IGZhbHNlOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9ob3N0cy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobV9ob3N0c1tpXS0+aW1h
Z2VCYWNraW5nVmlzaWJsZSgpKSB7CisgICAgZm9yIChhdXRvJiBob3N0IDogbV9ob3N0cykgewor
ICAgICAgICBpZiAoaG9zdC0+aW1hZ2VCYWNraW5nVmlzaWJsZSgpKSB7CiAgICAgICAgICAgICBt
X2lzVmlzaWJsZSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IGUyM2E4Y2M5MTVm
MWQ0ODFlMGZiMzViMmI3OTI5YmJhMzBiNWRhOTEuLjEwNWNjZTA2YmVmNDFkYWQxZWQwODk5MmVk
MmNhOTQ2ODk4NDY5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdT
dG9yZS5jcHAKQEAgLTkxLDkgKzkxLDggQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6
dXBkYXRlVGlsZSh1aW50MzJfdCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwKIAogUGFz
c1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSgp
IGNvbnN0CiB7Ci0gICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjpjb25zdF9pdGVy
YXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmVUaWxlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7Ci0gICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlID0gaXQtPnZh
bHVlLnRleHR1cmUoKTsKKyAgICBmb3IgKGF1dG8mIHRpbGUgOiBtX3RpbGVzLnZhbHVlcygpKSB7
CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlID0gdGlsZS50ZXh0dXJlKCk7
CiAgICAgICAgIGlmICh0ZXh0dXJlKQogICAgICAgICAgICAgcmV0dXJuIHRleHR1cmU7CiAgICAg
fQpAQCAtMTA4LDggKzEwNyw4IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnNldFNp
emUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0
aWxlcywgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQog
ewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGlsZXMuc2l6ZSgpOyArK2kpCi0gICAgICAg
IHRpbGVzW2ldLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9wYWNpdHksIGNhbGN1
bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZXNbaV0tPnJlY3QoKSkpOworICAgIGZvciAo
YXV0byYgdGlsZSA6IHRpbGVzKQorICAgICAgICB0aWxlLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0
cmFuc2Zvcm0sIG9wYWNpdHksIGNhbGN1bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZS0+
cmVjdCgpKSk7CiB9CiAKIFRyYW5zZm9ybWF0aW9uTWF0cml4IENvb3JkaW5hdGVkQmFja2luZ1N0
b3JlOjphZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QoY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5jcHAK
aW5kZXggYzQ4ODA2ZjBmMTE2YTcwM2RlZmFiMmE2ZDZlY2EwMDhjNDdlZTdiNi4uNGI1ZDY0ODE3
YWU3MDU3MGI2NGJjYjRlNDU2YWQ1ZjhmMmMwNzBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuY3BwCkBAIC0yNTMsOCArMjUzLDggQEAgdm9p
ZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OmluY29ycG9yYXRlVXBkYXRlKGNvbnN0IFVw
ZGF0ZUluZm8mIHVwZGF0ZUluZm8KICAgICBpZiAoc2hvdWxkU2Nyb2xsICYmICFtX3dlYlBhZ2VQ
cm94eS5jYW5TY3JvbGxWaWV3KCkpCiAgICAgICAgIG1fd2ViUGFnZVByb3h5LnNldFZpZXdOZWVk
c0Rpc3BsYXkoSW50UmVjdChJbnRQb2ludCgpLCBtX3dlYlBhZ2VQcm94eS52aWV3U2l6ZSgpKSk7
CiAgICAgZWxzZSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXBkYXRlSW5mby51
cGRhdGVSZWN0cy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIG1fd2ViUGFnZVByb3h5LnNldFZp
ZXdOZWVkc0Rpc3BsYXkodXBkYXRlSW5mby51cGRhdGVSZWN0c1tpXSk7CisgICAgICAgIGZvciAo
YXV0byYgdXBkYXRlUmVjdCA6IHVwZGF0ZUluZm8udXBkYXRlUmVjdHMpCisgICAgICAgICAgICBt
X3dlYlBhZ2VQcm94eS5zZXRWaWV3TmVlZHNEaXNwbGF5KHVwZGF0ZVJlY3QpOwogICAgIH0KIAog
ICAgIGlmIChzaG91bGRTY3JvbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lLmNwcAppbmRleCA4YTY0MzY2OTUzNTdhNThlNzc2NWM5ZDBkYzYxMmUwNTIyMTVj
YTNiLi45MmYwYWM3OGY1NTk1ZTZhZTU4OGVhMmI5YTU2NzA4ODM4ZDc0NzI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKQEAgLTIxNSwxMSArMjE1
LDExIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRMYXllckNoaWxkcmVuSWZO
ZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllCiAKICAgICBWZWN0b3I8VGV4dHVyZU1hcHBl
ckxheWVyKj4gY2hpbGRyZW47CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRlLmNo
aWxkcmVuLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIENvb3JkaW5hdGVkTGF5ZXJJRCBjaGlsZElE
ID0gc3RhdGUuY2hpbGRyZW5baV07Ci0gICAgICAgIFRleHR1cmVNYXBwZXJMYXllciogY2hpbGQg
PSBsYXllckJ5SUQoY2hpbGRJRCk7Ci0gICAgICAgIGNoaWxkcmVuLmFwcGVuZChjaGlsZCk7Cisg
ICAgZm9yIChhdXRvJiBjaGlsZCA6IHN0YXRlLmNoaWxkcmVuKSB7CisgICAgICAgIFRleHR1cmVN
YXBwZXJMYXllciogY2hpbGRMYXllciA9IGxheWVyQnlJRChjaGlsZCk7CisgICAgICAgIGNoaWxk
cmVuLmFwcGVuZChjaGlsZExheWVyKTsKICAgICB9CisKICAgICBsYXllci0+c2V0Q2hpbGRyZW4o
Y2hpbGRyZW4pOwogfQogCkBAIC0zMjIsMTAgKzMyMiwxMCBAQCBUZXh0dXJlTWFwcGVyTGF5ZXIq
IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Z2V0TGF5ZXJCeUlESWZFeGlzdHMoQ29vcmRpbmF0
ZWRMYQogICAgIHJldHVybiAoaWQgIT0gSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCkgPyBsYXll
ckJ5SUQoaWQpIDogMDsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0
ZUxheWVycyhjb25zdCBWZWN0b3I8Q29vcmRpbmF0ZWRMYXllcklEPiYgaWRzKQordm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZUxheWVycyhjb25zdCBWZWN0b3I8Q29vcmRpbmF0
ZWRMYXllcklEPiYgbGF5ZXJJRHMpCiB7Ci0gICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRl
eCA8IGlkcy5zaXplKCk7ICsraW5kZXgpCi0gICAgICAgIGNyZWF0ZUxheWVyKGlkc1tpbmRleF0p
OworICAgIGZvciAoYXV0byYgbGF5ZXJJRCA6IGxheWVySURzKQorICAgICAgICBjcmVhdGVMYXll
cihsYXllcklEKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZUxh
eWVyKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkKQEAgLTMzOCw4ICszMzgsOCBAQCB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZTo6Y3JlYXRlTGF5ZXIoQ29vcmRpbmF0ZWRMYXllcklEIGlkKQog
CiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVsZXRlTGF5ZXJzKGNvbnN0IFZlY3Rv
cjxDb29yZGluYXRlZExheWVySUQ+JiBsYXllcklEcykKIHsKLSAgICBmb3IgKHNpemVfdCBpbmRl
eCA9IDA7IGluZGV4IDwgbGF5ZXJJRHMuc2l6ZSgpOyArK2luZGV4KQotICAgICAgICBkZWxldGVM
YXllcihsYXllcklEc1tpbmRleF0pOworICAgIGZvciAoYXV0byYgbGF5ZXJJRCA6IGxheWVySURz
KQorICAgICAgICBkZWxldGVMYXllcihsYXllcklEKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzU2NlbmU6OmRlbGV0ZUxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCBsYXllcklEKQpAQCAt
NDEyLDggKzQxMiw4IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVhdGVUaWxl
c0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvCiAgICAgUmVmUHRyPENvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBtX2JhY2tpbmdTdG9yZXMuZ2V0KGxh
eWVyKTsKICAgICBBU1NFUlQoYmFja2luZ1N0b3JlKTsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgc3RhdGUudGlsZXNUb0NyZWF0ZS5zaXplKCk7ICsraSkKLSAgICAgICAgYmFja2luZ1N0
b3JlLT5jcmVhdGVUaWxlKHN0YXRlLnRpbGVzVG9DcmVhdGVbaV0udGlsZUlELCBzdGF0ZS50aWxl
c1RvQ3JlYXRlW2ldLnNjYWxlKTsKKyAgICBmb3IgKGF1dG8mIHRpbGUgOiBzdGF0ZS50aWxlc1Rv
Q3JlYXRlKQorICAgICAgICBiYWNraW5nU3RvcmUtPmNyZWF0ZVRpbGUodGlsZS50aWxlSUQsIHRp
bGUuc2NhbGUpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cmVtb3ZlVGls
ZXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCkBAIC00MjUsOCArNDI1LDggQEAgdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmU6OnJlbW92ZVRpbGVzSWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVy
KiBsYXllciwgY28KICAgICBpZiAoIWJhY2tpbmdTdG9yZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0ZS50aWxlc1RvUmVtb3ZlLnNpemUoKTsgKytp
KQotICAgICAgICBiYWNraW5nU3RvcmUtPnJlbW92ZVRpbGUoc3RhdGUudGlsZXNUb1JlbW92ZVtp
XSk7CisgICAgZm9yIChhdXRvJiB0aWxlIDogc3RhdGUudGlsZXNUb1JlbW92ZSkKKyAgICAgICAg
YmFja2luZ1N0b3JlLT5yZW1vdmVUaWxlKHRpbGUpOwogCiAgICAgbV9iYWNraW5nU3RvcmVzV2l0
aFBlbmRpbmdCdWZmZXJzLmFkZChiYWNraW5nU3RvcmUpOwogfQpAQCAtNDM5LDI1ICs0MzksMjQg
QEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVRpbGVzSWZOZWVkZWQoVGV4
dHVyZU1hcHBlckxheWVyKiBsYXllciwgY28KICAgICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5n
U3RvcmU+IGJhY2tpbmdTdG9yZSA9IG1fYmFja2luZ1N0b3Jlcy5nZXQobGF5ZXIpOwogICAgIEFT
U0VSVChiYWNraW5nU3RvcmUpOwogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0ZS50
aWxlc1RvVXBkYXRlLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGNvbnN0IFRpbGVVcGRhdGVJbmZv
JiB0aWxlSW5mbyA9IHN0YXRlLnRpbGVzVG9VcGRhdGVbaV07Ci0gICAgICAgIGNvbnN0IFN1cmZh
Y2VVcGRhdGVJbmZvJiBzdXJmYWNlVXBkYXRlSW5mbyA9IHRpbGVJbmZvLnVwZGF0ZUluZm87Cisg
ICAgZm9yIChhdXRvJiB0aWxlIDogc3RhdGUudGlsZXNUb1VwZGF0ZSkgeworICAgICAgICBjb25z
dCBTdXJmYWNlVXBkYXRlSW5mbyYgc3VyZmFjZVVwZGF0ZUluZm8gPSB0aWxlLnVwZGF0ZUluZm87
CiAKICAgICAgICAgU3VyZmFjZU1hcDo6aXRlcmF0b3Igc3VyZmFjZUl0ID0gbV9zdXJmYWNlcy5m
aW5kKHN1cmZhY2VVcGRhdGVJbmZvLmF0bGFzSUQpOwogICAgICAgICBBU1NFUlQoc3VyZmFjZUl0
ICE9IG1fc3VyZmFjZXMuZW5kKCkpOwogCi0gICAgICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRlVGls
ZSh0aWxlSW5mby50aWxlSUQsIHN1cmZhY2VVcGRhdGVJbmZvLnVwZGF0ZVJlY3QsIHRpbGVJbmZv
LnRpbGVSZWN0LCBzdXJmYWNlSXQtPnZhbHVlLCBzdXJmYWNlVXBkYXRlSW5mby5zdXJmYWNlT2Zm
c2V0KTsKKyAgICAgICAgYmFja2luZ1N0b3JlLT51cGRhdGVUaWxlKHRpbGUudGlsZUlELCBzdXJm
YWNlVXBkYXRlSW5mby51cGRhdGVSZWN0LCB0aWxlLnRpbGVSZWN0LCBzdXJmYWNlSXQtPnZhbHVl
LCBzdXJmYWNlVXBkYXRlSW5mby5zdXJmYWNlT2Zmc2V0KTsKICAgICAgICAgbV9iYWNraW5nU3Rv
cmVzV2l0aFBlbmRpbmdCdWZmZXJzLmFkZChiYWNraW5nU3RvcmUpOwogICAgIH0KIH0KIAogdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNVcGRhdGVBdGxhc2VzKGNvbnN0IENvb3Jk
aW5hdGVkR3JhcGhpY3NTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzdGF0ZS51cGRhdGVBdGxhc2VzVG9DcmVhdGUuc2l6ZSgpOyArK2kpCi0gICAgICAgIGNyZWF0
ZVVwZGF0ZUF0bGFzKHN0YXRlLnVwZGF0ZUF0bGFzZXNUb0NyZWF0ZVtpXS5maXJzdCwgc3RhdGUu
dXBkYXRlQXRsYXNlc1RvQ3JlYXRlW2ldLnNlY29uZCk7CisgICAgZm9yIChhdXRvJiBhdGxhcyA6
IHN0YXRlLnVwZGF0ZUF0bGFzZXNUb0NyZWF0ZSkKKyAgICAgICAgY3JlYXRlVXBkYXRlQXRsYXMo
YXRsYXMuZmlyc3QsIGF0bGFzLnNlY29uZCk7CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHN0YXRlLnVwZGF0ZUF0bGFzZXNUb1JlbW92ZS5zaXplKCk7ICsraSkKLSAgICAgICAgcmVtb3Zl
VXBkYXRlQXRsYXMoc3RhdGUudXBkYXRlQXRsYXNlc1RvUmVtb3ZlW2ldKTsKKyAgICBmb3IgKGF1
dG8mIGF0bGFzIDogc3RhdGUudXBkYXRlQXRsYXNlc1RvUmVtb3ZlKQorICAgICAgICByZW1vdmVV
cGRhdGVBdGxhcyhhdGxhcyk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpj
cmVhdGVVcGRhdGVBdGxhcyh1aW50MzJfdCBhdGxhc0lELCBQYXNzUmVmUHRyPENvb3JkaW5hdGVk
U3VyZmFjZT4gc3VyZmFjZSkKQEAgLTQ3NCwxNyArNDczLDE3IEBAIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjpyZW1vdmVVcGRhdGVBdGxhcyh1aW50MzJfdCBhdGxhc0lEKQogCiB2b2lk
IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c3luY0ltYWdlQmFja2luZ3MoY29uc3QgQ29vcmRp
bmF0ZWRHcmFwaGljc1N0YXRlJiBzdGF0ZSkKIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHN0YXRlLmltYWdlc1RvUmVtb3ZlLnNpemUoKTsgKytpKQotICAgICAgICByZW1vdmVJbWFnZUJh
Y2tpbmcoc3RhdGUuaW1hZ2VzVG9SZW1vdmVbaV0pOworICAgIGZvciAoYXV0byYgaW1hZ2UgOiBz
dGF0ZS5pbWFnZXNUb1JlbW92ZSkKKyAgICAgICAgcmVtb3ZlSW1hZ2VCYWNraW5nKGltYWdlKTsK
IAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RhdGUuaW1hZ2VzVG9DcmVhdGUuc2l6ZSgp
OyArK2kpCi0gICAgICAgIGNyZWF0ZUltYWdlQmFja2luZyhzdGF0ZS5pbWFnZXNUb0NyZWF0ZVtp
XSk7CisgICAgZm9yIChhdXRvJiBpbWFnZSA6IHN0YXRlLmltYWdlc1RvQ3JlYXRlKQorICAgICAg
ICBjcmVhdGVJbWFnZUJhY2tpbmcoaW1hZ2UpOwogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzdGF0ZS5pbWFnZXNUb1VwZGF0ZS5zaXplKCk7ICsraSkKLSAgICAgICAgdXBkYXRlSW1hZ2VC
YWNraW5nKHN0YXRlLmltYWdlc1RvVXBkYXRlW2ldLmZpcnN0LCBzdGF0ZS5pbWFnZXNUb1VwZGF0
ZVtpXS5zZWNvbmQpOworICAgIGZvciAoYXV0byYgaW1hZ2UgOiBzdGF0ZS5pbWFnZXNUb1VwZGF0
ZSkKKyAgICAgICAgdXBkYXRlSW1hZ2VCYWNraW5nKGltYWdlLmZpcnN0LCBpbWFnZS5zZWNvbmQp
OwogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0ZS5pbWFnZXNUb0NsZWFyLnNpemUo
KTsgKytpKQotICAgICAgICBjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKHN0YXRlLmltYWdlc1Rv
Q2xlYXJbaV0pOworICAgIGZvciAoYXV0byYgaW1hZ2UgOiBzdGF0ZS5pbWFnZXNUb0NsZWFyKQor
ICAgICAgICBjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKGltYWdlKTsKIH0KIAogdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdl
QmFja2luZ0lEIGltYWdlSUQpCkBAIC01NzEsOCArNTcwLDggQEAgdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzU2NlbmU6OmNvbW1pdFNjZW5lU3RhdGUoY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc1N0
YXRlJgogICAgIHN5bmNJbWFnZUJhY2tpbmdzKHN0YXRlKTsKICAgICBzeW5jVXBkYXRlQXRsYXNl
cyhzdGF0ZSk7CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRlLmxheWVyc1RvVXBk
YXRlLnNpemUoKTsgKytpKQotICAgICAgICBzZXRMYXllclN0YXRlKHN0YXRlLmxheWVyc1RvVXBk
YXRlW2ldLmZpcnN0LCBzdGF0ZS5sYXllcnNUb1VwZGF0ZVtpXS5zZWNvbmQpOworICAgIGZvciAo
YXV0byYgbGF5ZXIgOiBzdGF0ZS5sYXllcnNUb1VwZGF0ZSkKKyAgICAgICAgc2V0TGF5ZXJTdGF0
ZShsYXllci5maXJzdCwgbGF5ZXIuc2Vjb25kKTsKIAogICAgIGNvbW1pdFBlbmRpbmdCYWNraW5n
U3RvcmVPcGVyYXRpb25zKCk7CiAgICAgcmVtb3ZlUmVsZWFzZWRJbWFnZUJhY2tpbmdzSWZOZWVk
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3
aW5nQXJlYS5jcHAKaW5kZXggYThhY2NkYjA3MWU3MWMzNDZkNmJhZjZjNDQ3YjM3NDIyOGZjYWYy
Mi4uNTI4NTdkYmJhNWU5ZTZiZDI4Y2FhY2Y3MWUxYjEzYzU2M2E3OWIwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWREcmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5jcHAKQEAg
LTUzMiw4ICs1MzIsOCBAQCBzdGF0aWMgYm9vbCBzaG91bGRQYWludEJvdW5kc1JlY3QoY29uc3Qg
SW50UmVjdCYgYm91bmRzLCBjb25zdCBWZWN0b3I8SW50UmVjdD4mCiAgICAgLy8gaXMgdG9vIGxh
cmdlLCB0aGVuIHdlIHdpbGwgZG8gaW5kaXZpZHVhbCByZWN0IHBhaW50aW5nIGluc3RlYWQuCiAg
ICAgdW5zaWduZWQgYm91bmRzQXJlYSA9IGJvdW5kcy53aWR0aCgpICogYm91bmRzLmhlaWdodCgp
OwogICAgIHVuc2lnbmVkIHJlY3RzQXJlYSA9IDA7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCByZWN0cy5zaXplKCk7ICsraSkKLSAgICAgICAgcmVjdHNBcmVhICs9IHJlY3RzW2ldLndpZHRo
KCkgKiByZWN0c1tpXS5oZWlnaHQoKTsKKyAgICBmb3IgKGF1dG8mIHJlY3QgOiByZWN0cykKKyAg
ICAgICAgcmVjdHNBcmVhICs9IHJlY3Qud2lkdGgoKSAqIHJlY3QuaGVpZ2h0KCk7CiAKICAgICBk
b3VibGUgd2FzdGVkU3BhY2UgPSAxIC0gKHN0YXRpY19jYXN0PGRvdWJsZT4ocmVjdHNBcmVhKSAv
IGJvdW5kc0FyZWEpOwogCkBAIC01OTAsOSArNTkwLDkgQEAgdm9pZCBDb29yZGluYXRlZERyYXdp
bmdBcmVhOjpkaXNwbGF5KFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiAKICAgICBncmFwaGljc0Nv
bnRleHQtPnRyYW5zbGF0ZSgtYm91bmRzLngoKSwgLWJvdW5kcy55KCkpOwogCi0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCByZWN0cy5zaXplKCk7ICsraSkgewotICAgICAgICBtX3dlYlBhZ2Uu
ZHJhd1JlY3QoKmdyYXBoaWNzQ29udGV4dCwgcmVjdHNbaV0pOwotICAgICAgICB1cGRhdGVJbmZv
LnVwZGF0ZVJlY3RzLmFwcGVuZChyZWN0c1tpXSk7CisgICAgZm9yIChhdXRvJiByZWN0IDogcmVj
dHMpIHsKKyAgICAgICAgbV93ZWJQYWdlLmRyYXdSZWN0KCpncmFwaGljc0NvbnRleHQsIHJlY3Qp
OworICAgICAgICB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RzLmFwcGVuZChyZWN0KTsKICAgICB9CiAK
ICAgICAvLyBMYXlvdXQgY2FuIHRyaWdnZXIgbW9yZSBjYWxscyB0byBzZXROZWVkc0Rpc3BsYXkg
YW5kIHdlIGRvbid0IHdhbnQgdG8gcHJvY2VzcyB0aGVtCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240596</attachid>
            <date>2014-10-29 03:51:18 -0700</date>
            <delta_ts>2014-10-29 18:18:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138168-20141029195125.patch</filename>
            <type>text/plain</type>
            <size>19922</size>
            <attacher name="Hunseop Jeong">hs85.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc4YzM0ZjQwNmZkY2Uw
ZjdlYTYxZjdiODAzYWMyN2E1ZDY2MjA5Ny4uMDVkODI1NDliZGNlOGFhZmJkMTczYjdiNzcwMzQz
NzJkZGZiZjM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTEwLTI5ICBIdW5z
ZW9wIEplb25nICA8aHM4NS5qZW9uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbQ29vcmRpbmF0
ZWRHcmFwaGljc10gVXNlIG1vZGVybiBmb3ItbG9vcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODE2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGVyZSBpcyBubyBjaGFu
Z2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcDogVXNlIGEgbW9kZXJuIGZv
ciBsb29wLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6cmVuZGVy
TmV4dEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnBh
aW50VG9TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDogVXNlIGEgbW9kZXJuIGZvciBsb29w
LgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG91bGRV
cGRhdGVWaXNpYmxlUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5nU3Vi
TGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmlu
ZEZpcnN0RGVzY2VuZGFudFdpdGhDb250ZW50c1JlY3Vyc2l2ZWx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnNJbmNsdWRp
bmdTdWJMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6IFVzZSBhIG1vZGVybiBmb3IgbG9vcC4K
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGVWaXNpYmls
aXR5SWZOZWVkZWQpOgorCiAyMDE0LTEwLTE3ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxh
ckBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IGdyb3d0aFNoYXJlID4g
MCBpbiBXZWJDb3JlOjpSZW5kZXJHcmlkOjpkaXN0cmlidXRlU3BhY2VUb1RyYWNrcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IGNiMDI2NTljZDA5ZjkxOTdkNTk3NmFlZTk3YmUxNWMwNjk2ZTUzOWYuLjZkMGNjOTUw
ZWQ1OWVkNTM1NjcwZGUwNDljYWEwNDI4MjNmNWNiYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MSBAQAorMjAxNC0xMC0yOSAgSHVuc2VvcCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgW0Nvb3JkaW5hdGVkR3JhcGhpY3NdIFVzZSBtb2Rlcm4gZm9yLWxvb3BzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgxNjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgYXMgdGhlcmUgaXMgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHA6
IFVzZSBhIG1vZGVybiBmb3IgbG9vcC4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlOjp0ZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlOjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuY3BwOiBVc2Ug
YSBtb2Rlcm4gZm9yIGxvb3AuCisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkRHJhd2luZ0Fy
ZWFQcm94eTo6aW5jb3Jwb3JhdGVVcGRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHA6IFVzZSBhIG1vZGVybiBm
b3IgbG9vcC4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0
TGF5ZXJDaGlsZHJlbklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6Y3JlYXRlTGF5ZXJzKTogY2hhbmdlZCB0aGUgbmFtZSBvZiBhcmd1bWVudCB0
byBiZSBlcXVhbCB3aXRoIGRlbGV0ZUxheWVyKCkuIAorICAgICAgICAoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lOjpkZWxldGVMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVhdGVUaWxlc0lmTmVlZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cmVtb3ZlVGlsZXNJZk5lZWRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnVwZGF0ZVRpbGVzSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzeW5j
VXBkYXRlQXRsYXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmU6OnN5bmNJbWFnZUJhY2tpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6Y29tbWl0U2NlbmVTdGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYS5jcHA6IFVzZSBh
IG1vZGVybiBmb3IgbG9vcC4KKyAgICAgICAgKFdlYktpdDo6c2hvdWxkUGFpbnRCb3VuZHNSZWN0
KToKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0ZWREcmF3aW5nQXJlYTo6ZGlzcGxheSk6CisK
IDIwMTQtMTAtMjggIFRpbmctV2VpIExhbiAgPGxhbnR3NDRAZ21haWwuY29tPgogCiAgICAgICAg
IENhc3Qgc3RkOjpjaHJvbm86OmR1cmF0aW9uLmNvdW50KCkgdG8gaW50NjRfdCBpbiBBcmd1bWVu
dENvZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGlu
YXRvci5jcHAKaW5kZXggZjA5MTBiZWQwYzE5MDM2YjMyOWFiMDg2MTI5MDg0YTRiYWZlODUyMS4u
MGRhNDI5YmYyOTZlOTQwZThmMDhiNTU5MDhjZjUzOTBiYjE4OGMyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0
aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMzU2LDgg
KzM1Niw4IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Y29tbWl0U2Nyb2xsT2Zmc2V0
KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6CiAKIHZvaWQgQ29tcG9zaXRpbmdDb29y
ZGluYXRvcjo6cmVuZGVyTmV4dEZyYW1lKCkKIHsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV91cGRhdGVBdGxhc2VzLnNpemUoKTsgKytpKQotICAgICAgICBtX3VwZGF0ZUF0bGFzZXNb
aV0tPmRpZFN3YXBCdWZmZXJzKCk7CisgICAgZm9yIChhdXRvJiBhdGxhcyA6IG1fdXBkYXRlQXRs
YXNlcykKKyAgICAgICAgYXRsYXMtPmRpZFN3YXBCdWZmZXJzKCk7CiB9CiAKIHZvaWQgQ29tcG9z
aXRpbmdDb29yZGluYXRvcjo6cHVyZ2VCYWNraW5nU3RvcmVzKCkKQEAgLTM3Myw4ICszNzMsOCBA
QCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnB1cmdlQmFja2luZ1N0b3JlcygpCiAKIGJv
b2wgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cGFpbnRUb1N1cmZhY2UoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncyBmbGFncywgdWludDMyX3QmIGF0bGFzSUQs
IEludFBvaW50JiBvZmZzZXQsIENvb3JkaW5hdGVkU3VyZmFjZTo6Q2xpZW50KiBjbGllbnQpCiB7
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fdXBkYXRlQXRsYXNlcy5zaXplKCk7ICsr
aSkgewotICAgICAgICBVcGRhdGVBdGxhcyogYXRsYXMgPSBtX3VwZGF0ZUF0bGFzZXNbaV0uZ2V0
KCk7CisgICAgZm9yIChhdXRvJiB1cGRhdGVBdGxhcyA6IG1fdXBkYXRlQXRsYXNlcykgeworICAg
ICAgICBVcGRhdGVBdGxhcyogYXRsYXMgPSB1cGRhdGVBdGxhcy5nZXQoKTsKICAgICAgICAgaWYg
KGF0bGFzLT5zdXBwb3J0c0FscGhhKCkgPT0gKGZsYWdzICYgQ29vcmRpbmF0ZWRTdXJmYWNlOjpT
dXBwb3J0c0FscGhhKSkgewogICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGJlIGZhbHNlIGlmIHRo
ZXJlIGlzIG5vIGF2YWlsYWJsZSBidWZmZXIgc3BhY2UuCiAgICAgICAgICAgICBpZiAoYXRsYXMt
PnBhaW50T25BdmFpbGFibGVCdWZmZXIoc2l6ZSwgYXRsYXNJRCwgb2Zmc2V0LCBjbGllbnQpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmNwcAppbmRleCAzN2I3NmM1ZmNiNTI1NzlmNWY0NGI1YWM2OTNhZDY5NWM4ZTQ1MWFmLi4wNGM5
MDhiMmEzM2NiY2MxMjRhMjA5M2FiNGQ1MjczYWE5ZTQzNGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtOTEsOCAr
OTEsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlSW1hZ2VCYWNr
aW5nKCkKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRTaG91bGRVcGRhdGVWaXNp
YmxlUmVjdCgpCiB7CiAgICAgbV9zaG91bGRVcGRhdGVWaXNpYmxlUmVjdCA9IHRydWU7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQotICAgICAgICB0
b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjaGlsZHJlbigpW2ldKS0+c2V0U2hvdWxkVXBkYXRl
VmlzaWJsZVJlY3QoKTsKKyAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4oKSkKKyAgICAg
ICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGQpLT5zZXRTaG91bGRVcGRhdGVWaXNp
YmxlUmVjdCgpOwogICAgIGlmIChyZXBsaWNhTGF5ZXIoKSkKICAgICAgICAgdG9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIocmVwbGljYUxheWVyKCkpLT5zZXRTaG91bGRVcGRhdGVWaXNpYmxlUmVj
dCgpOwogfQpAQCAtNTk4LDggKzU5OCw4IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogCiAgICAgZmx1
c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCi0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQotICAgICAgICBjaGlsZHJlbigpW2ld
LT5mbHVzaENvbXBvc2l0aW5nU3RhdGUocmVjdCk7CisgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNo
aWxkcmVuKCkpCisgICAgICAgIGNoaWxkLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUocmVjdCk7CiB9
CiAKIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIo
R3JhcGhpY3NMYXllciogbGF5ZXIpCkBAIC02MTQsOCArNjE0LDggQEAgdm9pZCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnN5bmNDaGlsZHJlbigpCiAgICAgbV9zaG91bGRTeW5jQ2hpbGRyZW4g
PSBmYWxzZTsKICAgICBtX2xheWVyU3RhdGUuY2hpbGRyZW5DaGFuZ2VkID0gdHJ1ZTsKICAgICBt
X2xheWVyU3RhdGUuY2hpbGRyZW4uY2xlYXIoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpCi0gICAgICAgIG1fbGF5ZXJTdGF0ZS5jaGlsZHJlbi5h
cHBlbmQodG9Db29yZGluYXRlZExheWVySUQoY2hpbGRyZW4oKVtpXSkpOworICAgIGZvciAoYXV0
byYgY2hpbGQgOiBjaGlsZHJlbigpKQorICAgICAgICBtX2xheWVyU3RhdGUuY2hpbGRyZW4uYXBw
ZW5kKHRvQ29vcmRpbmF0ZWRMYXllcklEKGNoaWxkKSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpzeW5jRmlsdGVycygpCkBAIC04MDIsOCArODAyLDggQEAgdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5nU3Vi
TGF5ZXJzKCkKICAgICBpZiAobWFza0xheWVyKCkpCiAgICAgICAgIHRvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKG1hc2tMYXllcigpKS0+c3luY1BlbmRpbmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdT
dWJMYXllcnMoKTsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXpl
KCk7ICsraSkKLSAgICAgICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoY2hpbGRyZW4oKVtp
XSktPnN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5nU3ViTGF5ZXJzKCk7CisgICAgZm9y
IChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuKCkpCisgICAgICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKGNoaWxkKS0+c3luY1BlbmRpbmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdTdWJMYXllcnMo
KTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnJlc2V0TGF5ZXJTdGF0ZSgp
CkBAIC04NDIsOCArODQyLDggQEAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGUKICAgICBpZiAoc2hv
dWxkSGF2ZUJhY2tpbmdTdG9yZSgpKQogICAgICAgICByZXR1cm4gdGhpczsKIAotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkgewotICAgICAgICBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIo
Y2hpbGRyZW4oKVtpXSktPmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1cnNpdmVs
eSgpOworICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbigpKSB7CisgICAgICAgIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihj
aGlsZCktPmZpbmRGaXJzdERlc2NlbmRhbnRXaXRoQ29udGVudHNSZWN1cnNpdmVseSgpOwogICAg
ICAgICBpZiAobGF5ZXIpCiAgICAgICAgICAgICByZXR1cm4gbGF5ZXI7CiAgICAgfQpAQCAtMTAw
Myw4ICsxMDAzLDggQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZUNvbnRl
bnRCdWZmZXJzSW5jbHVkaW5nU3ViTGF5ZXJzKCkKIAogICAgIHVwZGF0ZUNvbnRlbnRCdWZmZXJz
KCk7CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kp
Ci0gICAgICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGNoaWxkcmVuKClbaV0pLT51cGRh
dGVDb250ZW50QnVmZmVyc0luY2x1ZGluZ1N1YkxheWVycygpOworICAgIGZvciAoYXV0byYgY2hp
bGQgOiBjaGlsZHJlbigpKQorICAgICAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihjaGls
ZCktPnVwZGF0ZUNvbnRlbnRCdWZmZXJzSW5jbHVkaW5nU3ViTGF5ZXJzKCk7CiB9CiAKIHZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp1cGRhdGVDb250ZW50QnVmZmVycygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAppbmRl
eCA1MGY0ZWVlODY1Y2JmMjMwNDQ5Yzk5MWVjOTc2YzUyODIyZjg2YjY0Li44MGM0ZWVkNmIyMzli
ZGI5ZDIwMTExZDMwNDUxOWFiY2Y1MzYxZGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKQEAgLTE1MSw4ICsxNTEsOCBAQCB2
b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGVWaXNpYmlsaXR5SWZOZWVkZWQoYm9v
bCYgY2hhbmdlZFRvVmlzaWJsZSkKICAgICBib29sIHByZXZpb3VzSXNWaXNpYmxlID0gbV9pc1Zp
c2libGU7CiAKICAgICBtX2lzVmlzaWJsZSA9IGZhbHNlOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9ob3N0cy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobV9ob3N0c1tpXS0+aW1h
Z2VCYWNraW5nVmlzaWJsZSgpKSB7CisgICAgZm9yIChhdXRvJiBob3N0IDogbV9ob3N0cykgewor
ICAgICAgICBpZiAoaG9zdC0+aW1hZ2VCYWNraW5nVmlzaWJsZSgpKSB7CiAgICAgICAgICAgICBt
X2lzVmlzaWJsZSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IGUyM2E4Y2M5MTVm
MWQ0ODFlMGZiMzViMmI3OTI5YmJhMzBiNWRhOTEuLjEwNWNjZTA2YmVmNDFkYWQxZWQwODk5MmVk
MmNhOTQ2ODk4NDY5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdT
dG9yZS5jcHAKQEAgLTkxLDkgKzkxLDggQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6
dXBkYXRlVGlsZSh1aW50MzJfdCBpZCwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwKIAogUGFz
c1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSgp
IGNvbnN0CiB7Ci0gICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjpjb25zdF9pdGVy
YXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmVUaWxlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7Ci0gICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlID0gaXQtPnZh
bHVlLnRleHR1cmUoKTsKKyAgICBmb3IgKGF1dG8mIHRpbGUgOiBtX3RpbGVzLnZhbHVlcygpKSB7
CisgICAgICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlID0gdGlsZS50ZXh0dXJlKCk7
CiAgICAgICAgIGlmICh0ZXh0dXJlKQogICAgICAgICAgICAgcmV0dXJuIHRleHR1cmU7CiAgICAg
fQpAQCAtMTA4LDggKzEwNyw4IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnNldFNp
emUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
OjpwYWludFRpbGVzVG9UZXh0dXJlTWFwcGVyKFZlY3RvcjxUZXh0dXJlTWFwcGVyVGlsZSo+JiB0
aWxlcywgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQog
ewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGlsZXMuc2l6ZSgpOyArK2kpCi0gICAgICAg
IHRpbGVzW2ldLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0cmFuc2Zvcm0sIG9wYWNpdHksIGNhbGN1
bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZXNbaV0tPnJlY3QoKSkpOworICAgIGZvciAo
YXV0byYgdGlsZSA6IHRpbGVzKQorICAgICAgICB0aWxlLT5wYWludCh0ZXh0dXJlTWFwcGVyLCB0
cmFuc2Zvcm0sIG9wYWNpdHksIGNhbGN1bGF0ZUV4cG9zZWRUaWxlRWRnZXMocmVjdCwgdGlsZS0+
cmVjdCgpKSk7CiB9CiAKIFRyYW5zZm9ybWF0aW9uTWF0cml4IENvb3JkaW5hdGVkQmFja2luZ1N0
b3JlOjphZGp1c3RlZFRyYW5zZm9ybUZvclJlY3QoY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eS5jcHAK
aW5kZXggYzQ4ODA2ZjBmMTE2YTcwM2RlZmFiMmE2ZDZlY2EwMDhjNDdlZTdiNi4uNGI1ZDY0ODE3
YWU3MDU3MGI2NGJjYjRlNDU2YWQ1ZjhmMmMwNzBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWREcmF3aW5nQXJlYVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZERyYXdpbmdBcmVhUHJveHkuY3BwCkBAIC0yNTMsOCArMjUzLDggQEAgdm9p
ZCBDb29yZGluYXRlZERyYXdpbmdBcmVhUHJveHk6OmluY29ycG9yYXRlVXBkYXRlKGNvbnN0IFVw
ZGF0ZUluZm8mIHVwZGF0ZUluZm8KICAgICBpZiAoc2hvdWxkU2Nyb2xsICYmICFtX3dlYlBhZ2VQ
cm94eS5jYW5TY3JvbGxWaWV3KCkpCiAgICAgICAgIG1fd2ViUGFnZVByb3h5LnNldFZpZXdOZWVk
c0Rpc3BsYXkoSW50UmVjdChJbnRQb2ludCgpLCBtX3dlYlBhZ2VQcm94eS52aWV3U2l6ZSgpKSk7
CiAgICAgZWxzZSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXBkYXRlSW5mby51
cGRhdGVSZWN0cy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIG1fd2ViUGFnZVByb3h5LnNldFZp
ZXdOZWVkc0Rpc3BsYXkodXBkYXRlSW5mby51cGRhdGVSZWN0c1tpXSk7CisgICAgICAgIGZvciAo
YXV0byYgdXBkYXRlUmVjdCA6IHVwZGF0ZUluZm8udXBkYXRlUmVjdHMpCisgICAgICAgICAgICBt
X3dlYlBhZ2VQcm94eS5zZXRWaWV3TmVlZHNEaXNwbGF5KHVwZGF0ZVJlY3QpOwogICAgIH0KIAog
ICAgIGlmIChzaG91bGRTY3JvbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lLmNwcAppbmRleCA4YTY0MzY2OTUzNTdhNThlNzc2NWM5ZDBkYzYxMmUwNTIyMTVj
YTNiLi5hNTgyZDgzM2IyOWIxNmQ3MmFhMWQyYjcxNGE2NjBhY2E2YmFiM2RjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKQEAgLTIxNSwxMCArMjE1
LDkgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVyQ2hpbGRyZW5JZk5l
ZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWUKIAogICAgIFZlY3RvcjxUZXh0dXJlTWFwcGVy
TGF5ZXIqPiBjaGlsZHJlbjsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RhdGUuY2hp
bGRyZW4uc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQ29vcmRpbmF0ZWRMYXllcklEIGNoaWxkSUQg
PSBzdGF0ZS5jaGlsZHJlbltpXTsKLSAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBjaGlsZCA9
IGxheWVyQnlJRChjaGlsZElEKTsKLSAgICAgICAgY2hpbGRyZW4uYXBwZW5kKGNoaWxkKTsKKyAg
ICBmb3IgKGF1dG8mIGNoaWxkIDogc3RhdGUuY2hpbGRyZW4pIHsKKyAgICAgICAgVGV4dHVyZU1h
cHBlckxheWVyKiBjaGlsZExheWVyID0gbGF5ZXJCeUlEKGNoaWxkKTsKKyAgICAgICAgY2hpbGRy
ZW4uYXBwZW5kKGNoaWxkTGF5ZXIpOwogICAgIH0KICAgICBsYXllci0+c2V0Q2hpbGRyZW4oY2hp
bGRyZW4pOwogfQpAQCAtMzIyLDEwICszMjEsMTAgQEAgVGV4dHVyZU1hcHBlckxheWVyKiBDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OmdldExheWVyQnlJRElmRXhpc3RzKENvb3JkaW5hdGVkTGEK
ICAgICByZXR1cm4gKGlkICE9IEludmFsaWRDb29yZGluYXRlZExheWVySUQpID8gbGF5ZXJCeUlE
KGlkKSA6IDA7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVhdGVMYXll
cnMoY29uc3QgVmVjdG9yPENvb3JkaW5hdGVkTGF5ZXJJRD4mIGlkcykKK3ZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lOjpjcmVhdGVMYXllcnMoY29uc3QgVmVjdG9yPENvb3JkaW5hdGVkTGF5
ZXJJRD4mIGxheWVySURzKQogewotICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBp
ZHMuc2l6ZSgpOyArK2luZGV4KQotICAgICAgICBjcmVhdGVMYXllcihpZHNbaW5kZXhdKTsKKyAg
ICBmb3IgKGF1dG8mIGxheWVySUQgOiBsYXllcklEcykKKyAgICAgICAgY3JlYXRlTGF5ZXIobGF5
ZXJJRCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVhdGVMYXllcihD
b29yZGluYXRlZExheWVySUQgaWQpCkBAIC0zMzgsOCArMzM3LDggQEAgdm9pZCBDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZUxheWVyKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCkKIAogdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmRlbGV0ZUxheWVycyhjb25zdCBWZWN0b3I8Q29v
cmRpbmF0ZWRMYXllcklEPiYgbGF5ZXJJRHMpCiB7Ci0gICAgZm9yIChzaXplX3QgaW5kZXggPSAw
OyBpbmRleCA8IGxheWVySURzLnNpemUoKTsgKytpbmRleCkKLSAgICAgICAgZGVsZXRlTGF5ZXIo
bGF5ZXJJRHNbaW5kZXhdKTsKKyAgICBmb3IgKGF1dG8mIGxheWVySUQgOiBsYXllcklEcykKKyAg
ICAgICAgZGVsZXRlTGF5ZXIobGF5ZXJJRCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lOjpkZWxldGVMYXllcihDb29yZGluYXRlZExheWVySUQgbGF5ZXJJRCkKQEAgLTQxMiw4
ICs0MTEsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Y3JlYXRlVGlsZXNJZk5l
ZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjbwogICAgIFJlZlB0cjxDb29yZGluYXRl
ZEJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlID0gbV9iYWNraW5nU3RvcmVzLmdldChsYXllcik7
CiAgICAgQVNTRVJUKGJhY2tpbmdTdG9yZSk7CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHN0YXRlLnRpbGVzVG9DcmVhdGUuc2l6ZSgpOyArK2kpCi0gICAgICAgIGJhY2tpbmdTdG9yZS0+
Y3JlYXRlVGlsZShzdGF0ZS50aWxlc1RvQ3JlYXRlW2ldLnRpbGVJRCwgc3RhdGUudGlsZXNUb0Ny
ZWF0ZVtpXS5zY2FsZSk7CisgICAgZm9yIChhdXRvJiB0aWxlIDogc3RhdGUudGlsZXNUb0NyZWF0
ZSkKKyAgICAgICAgYmFja2luZ1N0b3JlLT5jcmVhdGVUaWxlKHRpbGUudGlsZUlELCB0aWxlLnNj
YWxlKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnJlbW92ZVRpbGVzSWZO
ZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyU3RhdGUmIHN0YXRlKQpAQCAtNDI1LDggKzQyNCw4IEBAIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjpyZW1vdmVUaWxlc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5
ZXIsIGNvCiAgICAgaWYgKCFiYWNraW5nU3RvcmUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RhdGUudGlsZXNUb1JlbW92ZS5zaXplKCk7ICsraSkKLSAg
ICAgICAgYmFja2luZ1N0b3JlLT5yZW1vdmVUaWxlKHN0YXRlLnRpbGVzVG9SZW1vdmVbaV0pOwor
ICAgIGZvciAoYXV0byYgdGlsZSA6IHN0YXRlLnRpbGVzVG9SZW1vdmUpCisgICAgICAgIGJhY2tp
bmdTdG9yZS0+cmVtb3ZlVGlsZSh0aWxlKTsKIAogICAgIG1fYmFja2luZ1N0b3Jlc1dpdGhQZW5k
aW5nQnVmZmVycy5hZGQoYmFja2luZ1N0b3JlKTsKIH0KQEAgLTQzOSwyNSArNDM4LDI0IEBAIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjp1cGRhdGVUaWxlc0lmTmVlZGVkKFRleHR1cmVN
YXBwZXJMYXllciogbGF5ZXIsIGNvCiAgICAgUmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
PiBiYWNraW5nU3RvcmUgPSBtX2JhY2tpbmdTdG9yZXMuZ2V0KGxheWVyKTsKICAgICBBU1NFUlQo
YmFja2luZ1N0b3JlKTsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RhdGUudGlsZXNU
b1VwZGF0ZS5zaXplKCk7ICsraSkgewotICAgICAgICBjb25zdCBUaWxlVXBkYXRlSW5mbyYgdGls
ZUluZm8gPSBzdGF0ZS50aWxlc1RvVXBkYXRlW2ldOwotICAgICAgICBjb25zdCBTdXJmYWNlVXBk
YXRlSW5mbyYgc3VyZmFjZVVwZGF0ZUluZm8gPSB0aWxlSW5mby51cGRhdGVJbmZvOworICAgIGZv
ciAoYXV0byYgdGlsZSA6IHN0YXRlLnRpbGVzVG9VcGRhdGUpIHsKKyAgICAgICAgY29uc3QgU3Vy
ZmFjZVVwZGF0ZUluZm8mIHN1cmZhY2VVcGRhdGVJbmZvID0gdGlsZS51cGRhdGVJbmZvOwogCiAg
ICAgICAgIFN1cmZhY2VNYXA6Oml0ZXJhdG9yIHN1cmZhY2VJdCA9IG1fc3VyZmFjZXMuZmluZChz
dXJmYWNlVXBkYXRlSW5mby5hdGxhc0lEKTsKICAgICAgICAgQVNTRVJUKHN1cmZhY2VJdCAhPSBt
X3N1cmZhY2VzLmVuZCgpKTsKIAotICAgICAgICBiYWNraW5nU3RvcmUtPnVwZGF0ZVRpbGUodGls
ZUluZm8udGlsZUlELCBzdXJmYWNlVXBkYXRlSW5mby51cGRhdGVSZWN0LCB0aWxlSW5mby50aWxl
UmVjdCwgc3VyZmFjZUl0LT52YWx1ZSwgc3VyZmFjZVVwZGF0ZUluZm8uc3VyZmFjZU9mZnNldCk7
CisgICAgICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRlVGlsZSh0aWxlLnRpbGVJRCwgc3VyZmFjZVVw
ZGF0ZUluZm8udXBkYXRlUmVjdCwgdGlsZS50aWxlUmVjdCwgc3VyZmFjZUl0LT52YWx1ZSwgc3Vy
ZmFjZVVwZGF0ZUluZm8uc3VyZmFjZU9mZnNldCk7CiAgICAgICAgIG1fYmFja2luZ1N0b3Jlc1dp
dGhQZW5kaW5nQnVmZmVycy5hZGQoYmFja2luZ1N0b3JlKTsKICAgICB9CiB9CiAKIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzeW5jVXBkYXRlQXRsYXNlcyhjb25zdCBDb29yZGluYXRl
ZEdyYXBoaWNzU3RhdGUmIHN0YXRlKQogewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3Rh
dGUudXBkYXRlQXRsYXNlc1RvQ3JlYXRlLnNpemUoKTsgKytpKQotICAgICAgICBjcmVhdGVVcGRh
dGVBdGxhcyhzdGF0ZS51cGRhdGVBdGxhc2VzVG9DcmVhdGVbaV0uZmlyc3QsIHN0YXRlLnVwZGF0
ZUF0bGFzZXNUb0NyZWF0ZVtpXS5zZWNvbmQpOworICAgIGZvciAoYXV0byYgYXRsYXMgOiBzdGF0
ZS51cGRhdGVBdGxhc2VzVG9DcmVhdGUpCisgICAgICAgIGNyZWF0ZVVwZGF0ZUF0bGFzKGF0bGFz
LmZpcnN0LCBhdGxhcy5zZWNvbmQpOwogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0
ZS51cGRhdGVBdGxhc2VzVG9SZW1vdmUuc2l6ZSgpOyArK2kpCi0gICAgICAgIHJlbW92ZVVwZGF0
ZUF0bGFzKHN0YXRlLnVwZGF0ZUF0bGFzZXNUb1JlbW92ZVtpXSk7CisgICAgZm9yIChhdXRvJiBh
dGxhcyA6IHN0YXRlLnVwZGF0ZUF0bGFzZXNUb1JlbW92ZSkKKyAgICAgICAgcmVtb3ZlVXBkYXRl
QXRsYXMoYXRsYXMpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Y3JlYXRl
VXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZh
Y2U+IHN1cmZhY2UpCkBAIC00NzQsMTcgKzQ3MiwxNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZTo6cmVtb3ZlVXBkYXRlQXRsYXModWludDMyX3QgYXRsYXNJRCkKIAogdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNJbWFnZUJhY2tpbmdzKGNvbnN0IENvb3JkaW5hdGVk
R3JhcGhpY3NTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0
ZS5pbWFnZXNUb1JlbW92ZS5zaXplKCk7ICsraSkKLSAgICAgICAgcmVtb3ZlSW1hZ2VCYWNraW5n
KHN0YXRlLmltYWdlc1RvUmVtb3ZlW2ldKTsKKyAgICBmb3IgKGF1dG8mIGltYWdlIDogc3RhdGUu
aW1hZ2VzVG9SZW1vdmUpCisgICAgICAgIHJlbW92ZUltYWdlQmFja2luZyhpbWFnZSk7CiAKLSAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0YXRlLmltYWdlc1RvQ3JlYXRlLnNpemUoKTsgKytp
KQotICAgICAgICBjcmVhdGVJbWFnZUJhY2tpbmcoc3RhdGUuaW1hZ2VzVG9DcmVhdGVbaV0pOwor
ICAgIGZvciAoYXV0byYgaW1hZ2UgOiBzdGF0ZS5pbWFnZXNUb0NyZWF0ZSkKKyAgICAgICAgY3Jl
YXRlSW1hZ2VCYWNraW5nKGltYWdlKTsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3Rh
dGUuaW1hZ2VzVG9VcGRhdGUuc2l6ZSgpOyArK2kpCi0gICAgICAgIHVwZGF0ZUltYWdlQmFja2lu
ZyhzdGF0ZS5pbWFnZXNUb1VwZGF0ZVtpXS5maXJzdCwgc3RhdGUuaW1hZ2VzVG9VcGRhdGVbaV0u
c2Vjb25kKTsKKyAgICBmb3IgKGF1dG8mIGltYWdlIDogc3RhdGUuaW1hZ2VzVG9VcGRhdGUpCisg
ICAgICAgIHVwZGF0ZUltYWdlQmFja2luZyhpbWFnZS5maXJzdCwgaW1hZ2Uuc2Vjb25kKTsKIAot
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RhdGUuaW1hZ2VzVG9DbGVhci5zaXplKCk7ICsr
aSkKLSAgICAgICAgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhzdGF0ZS5pbWFnZXNUb0NsZWFy
W2ldKTsKKyAgICBmb3IgKGF1dG8mIGltYWdlIDogc3RhdGUuaW1hZ2VzVG9DbGVhcikKKyAgICAg
ICAgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhpbWFnZSk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lOjpjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmdJRCBpbWFnZUlEKQpAQCAtNTcxLDggKzU2OSw4IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lOjpjb21taXRTY2VuZVN0YXRlKGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYK
ICAgICBzeW5jSW1hZ2VCYWNraW5ncyhzdGF0ZSk7CiAgICAgc3luY1VwZGF0ZUF0bGFzZXMoc3Rh
dGUpOwogCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdGF0ZS5sYXllcnNUb1VwZGF0ZS5z
aXplKCk7ICsraSkKLSAgICAgICAgc2V0TGF5ZXJTdGF0ZShzdGF0ZS5sYXllcnNUb1VwZGF0ZVtp
XS5maXJzdCwgc3RhdGUubGF5ZXJzVG9VcGRhdGVbaV0uc2Vjb25kKTsKKyAgICBmb3IgKGF1dG8m
IGxheWVyIDogc3RhdGUubGF5ZXJzVG9VcGRhdGUpCisgICAgICAgIHNldExheWVyU3RhdGUobGF5
ZXIuZmlyc3QsIGxheWVyLnNlY29uZCk7CiAKICAgICBjb21taXRQZW5kaW5nQmFja2luZ1N0b3Jl
T3BlcmF0aW9ucygpOwogICAgIHJlbW92ZVJlbGVhc2VkSW1hZ2VCYWNraW5nc0lmTmVlZGVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0Fy
ZWEuY3BwCmluZGV4IGE4YWNjZGIwNzFlNzFjMzQ2ZDZiYWY2YzQ0N2IzNzQyMjhmY2FmMjIuLjUy
ODU3ZGJiYTVlOWU2YmQyOGNhYWNmNzFlMWIxM2M1NjNhNzliMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkRHJhd2luZ0FyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuY3BwCkBAIC01MzIs
OCArNTMyLDggQEAgc3RhdGljIGJvb2wgc2hvdWxkUGFpbnRCb3VuZHNSZWN0KGNvbnN0IEludFJl
Y3QmIGJvdW5kcywgY29uc3QgVmVjdG9yPEludFJlY3Q+JgogICAgIC8vIGlzIHRvbyBsYXJnZSwg
dGhlbiB3ZSB3aWxsIGRvIGluZGl2aWR1YWwgcmVjdCBwYWludGluZyBpbnN0ZWFkLgogICAgIHVu
c2lnbmVkIGJvdW5kc0FyZWEgPSBib3VuZHMud2lkdGgoKSAqIGJvdW5kcy5oZWlnaHQoKTsKICAg
ICB1bnNpZ25lZCByZWN0c0FyZWEgPSAwOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVj
dHMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHJlY3RzQXJlYSArPSByZWN0c1tpXS53aWR0aCgpICog
cmVjdHNbaV0uaGVpZ2h0KCk7CisgICAgZm9yIChhdXRvJiByZWN0IDogcmVjdHMpCisgICAgICAg
IHJlY3RzQXJlYSArPSByZWN0LndpZHRoKCkgKiByZWN0LmhlaWdodCgpOwogCiAgICAgZG91Ymxl
IHdhc3RlZFNwYWNlID0gMSAtIChzdGF0aWNfY2FzdDxkb3VibGU+KHJlY3RzQXJlYSkgLyBib3Vu
ZHNBcmVhKTsKIApAQCAtNTkwLDkgKzU5MCw5IEBAIHZvaWQgQ29vcmRpbmF0ZWREcmF3aW5nQXJl
YTo6ZGlzcGxheShVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQogCiAgICAgZ3JhcGhpY3NDb250ZXh0
LT50cmFuc2xhdGUoLWJvdW5kcy54KCksIC1ib3VuZHMueSgpKTsKIAotICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgbV93ZWJQYWdlLmRyYXdS
ZWN0KCpncmFwaGljc0NvbnRleHQsIHJlY3RzW2ldKTsKLSAgICAgICAgdXBkYXRlSW5mby51cGRh
dGVSZWN0cy5hcHBlbmQocmVjdHNbaV0pOworICAgIGZvciAoYXV0byYgcmVjdCA6IHJlY3RzKSB7
CisgICAgICAgIG1fd2ViUGFnZS5kcmF3UmVjdCgqZ3JhcGhpY3NDb250ZXh0LCByZWN0KTsKKyAg
ICAgICAgdXBkYXRlSW5mby51cGRhdGVSZWN0cy5hcHBlbmQocmVjdCk7CiAgICAgfQogCiAgICAg
Ly8gTGF5b3V0IGNhbiB0cmlnZ2VyIG1vcmUgY2FsbHMgdG8gc2V0TmVlZHNEaXNwbGF5IGFuZCB3
ZSBkb24ndCB3YW50IHRvIHByb2Nlc3MgdGhlbQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>