<?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>235515</bug_id>
          
          <creation_ts>2022-01-24 07:32:59 -0800</creation_ts>
          <short_desc>Browser hangs with basic webgl usage such as showing pixi.js examples</short_desc>
          <delta_ts>2022-06-06 13:54:48 -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>WebGL</component>
          <version>Safari 15</version>
          <rep_platform>All</rep_platform>
          <op_sys>iOS 15</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>florent.masson</reporter>
          <assigned_to name="Kyle Piddington">kpiddington</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>florent.masson</cc>
    
    <cc>johncunningham</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kpiddington</cc>
    
    <cc>timmmc</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1833302</commentid>
    <comment_count>0</comment_count>
    <who name="">florent.masson</who>
    <bug_when>2022-01-24 07:32:59 -0800</bug_when>
    <thetext>I had my game based on pixi.js (webgl) hang right from the start to the point it&apos;s unplayable. It was working fine on ios14. I now have ios 15.2.1 on my ipad air 2.

In an effort to reproduce the problem and find minimal reproduction cases, I tested all pixi.js examples.
When I open one of these pages, the browser hangs to the point I can&apos;t even refresh or click any example without waiting a lot. Often the browser does not even recover or the screen begins to flicker and I have to kill safari.

https://pixijs.io/examples/#/graphics/simple.js
https://pixijs.io/examples/#/graphics/advanced.js
https://pixijs.io/examples/#/graphics/dynamic.js
https://pixijs.io/examples/#/masks/graphics.js
https://pixijs.io/examples/#/events/logger.js
https://pixijs.io/examples/#/events/nested-boundary-with-projection.js
https://pixijs.io/examples/#/events/pointer-tracker.js
https://pixijs.io/examples/#/plugin-dragonbones/robot.js
https://pixijs.io/examples/#/plugin-dragonbones/eyetracking.js
https://pixijs.io/examples/#/plugin-projection/cards.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833400</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2022-01-24 11:16:31 -0800</bug_when>
    <thetext>Wonder whether this is a duplicate of a previously reported bug which has been fixed on ToT. Only Apple engineers can build for iOS, so hoping they can triage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834518</commentid>
    <comment_count>2</comment_count>
    <who name="">florent.masson</who>
    <bug_when>2022-01-27 07:57:06 -0800</bug_when>
    <thetext>Hey there, any update on this issue?
I just updated my device with ios 15.3 and it&apos;s still broken
Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834675</commentid>
    <comment_count>3</comment_count>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2022-01-27 13:19:37 -0800</bug_when>
    <thetext>Hi Florent, 

I&apos;m not able to reproduce this issue on an iPhone 7 Plus while on iOS 15.2.1. This might be hardware / platform specific.

To help us debug, can you try going to the following setting?
Settings-&gt;Safari-&gt;Advanced-&gt;WebGL Via Metal and disable that option?

Thank you for reporting!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834857</commentid>
    <comment_count>4</comment_count>
    <who name="">florent.masson</who>
    <bug_when>2022-01-28 01:53:01 -0800</bug_when>
    <thetext>Hi Kyle,

thanks for your help!
Disabling &quot;WebGL Via Metal&quot; does indeed seems to fix the issue.
I thought I has tested that previously with 15.2.1 but I probably failed to kill safari properly.

My device is iPad Air 2 MNV22NF/A

Is there any way to detect if this option is enabled and hint users to disable it?

Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835075</commentid>
    <comment_count>5</comment_count>
    <who name="tbomb80">timmmc</who>
    <bug_when>2022-01-28 11:10:52 -0800</bug_when>
    <thetext>I&apos;m seeing the same issue in Safari on iPad Air 2 devices with, OS versions 15.2.1 and 15.3, model number MGL12LL/A, but this does not repro on iPhone XR, iPhone 13 or iPad Gen 6. I&apos;m also seeing the issue fixed by disabling &quot;Settings-&gt;Safari-&gt;Advanced-&gt;WebGL Via Metal&quot;.

My use case is slightly different, WebGL content loaded using WKWebView in an iOS/iPadOS app, and it results in an app crash in that scenario. From what I can tell, disabling the Safari setting &quot;Settings-&gt;Safari-&gt;Advanced-&gt;WebGL Via Metal&quot; does not impact WKWebView&apos;s behavior.

Here are some more examples that trigger this issue
https://phaser.io/examples/v3/view/actions/grid-align
https://phaser.io/examples/v3/view/actions/inc-x-layers


Would a fix for Safari also impact WKWebView?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835154</commentid>
    <comment_count>6</comment_count>
    <who name="tbomb80">timmmc</who>
    <bug_when>2022-01-28 14:56:41 -0800</bug_when>
    <thetext>(In reply to tbomb80 from comment #5)
&gt; I&apos;m seeing the same issue in Safari on iPad Air 2 devices with, OS versions
&gt; 15.2.1 and 15.3, model number MGL12LL/A, but this does not repro on iPhone
&gt; XR, iPhone 13 or iPad Gen 6. I&apos;m also seeing the issue fixed by disabling
&gt; &quot;Settings-&gt;Safari-&gt;Advanced-&gt;WebGL Via Metal&quot;.
&gt; 
&gt; My use case is slightly different, WebGL content loaded using WKWebView in
&gt; an iOS/iPadOS app, and it results in an app crash in that scenario. From
&gt; what I can tell, disabling the Safari setting
&gt; &quot;Settings-&gt;Safari-&gt;Advanced-&gt;WebGL Via Metal&quot; does not impact WKWebView&apos;s
&gt; behavior.
&gt; 
&gt; Here are some more examples that trigger this issue
&gt; https://phaser.io/examples/v3/view/actions/grid-align
&gt; https://phaser.io/examples/v3/view/actions/inc-x-layers
&gt; 
&gt; 
&gt; Would a fix for Safari also impact WKWebView?

This looks related to https://bugs.webkit.org/show_bug.cgi?id=228904</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835162</commentid>
    <comment_count>7</comment_count>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2022-01-28 15:29:52 -0800</bug_when>
    <thetext>Hi all,
I&apos;ve noticed that PixiJS version 4 samples still run correctly with the Metal backend. I know that asking the differences between V4 and V5 is an unreasonable ask, but is it possible there&apos;s a difference in WebGL1 and 2 support?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835531</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-31 07:33:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/88269340&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835541</commentid>
    <comment_count>9</comment_count>
    <who name="">florent.masson</who>
    <bug_when>2022-01-31 08:11:41 -0800</bug_when>
    <thetext>Hi Kyle,

I can confirm, having checked pixi&apos;s code, that lastest versions of pixi will attempt to create a webgl2 context while v4 will only create webgl context.

I&apos;ve tested with my device and the first 3 samples will run on pixi v4 but not these two:
https://pixijs.io/examples-v4/#/masks/graphics.js
https://pixijs.io/examples-v4/#/plugin-projection/cards.js
(they run without WebGL Via Metal)

Also, my problematic games all use pixi v4 and therefore do not create webgl2 contexts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840671</commentid>
    <comment_count>10</comment_count>
    <who name="">florent.masson</who>
    <bug_when>2022-02-12 03:15:48 -0800</bug_when>
    <thetext>Hi,
the issue is still present in 15.3.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857878</commentid>
    <comment_count>11</comment_count>
    <who name="tbomb80">timmmc</who>
    <bug_when>2022-04-04 09:10:20 -0700</bug_when>
    <thetext>Hello,

The issue is still present in 15.4.1.

Are there any updates available from the WebKit team on this issue?

Thanks,
Tim.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871648</commentid>
    <comment_count>12</comment_count>
      <attachid>459742</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2022-05-24 21:01:26 -0700</bug_when>
    <thetext>Created attachment 459742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871649</commentid>
    <comment_count>13</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-05-24 21:03:16 -0700</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871701</commentid>
    <comment_count>14</comment_count>
      <attachid>459742</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-05-25 03:39:49 -0700</bug_when>
    <thetext>Comment on attachment 459742
Patch

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

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/FrameBufferMtl.mm:811
&gt; +    if(mImplicitMultisampleStoreAction == MTLStoreActionDontCare)

I feel there must be a better way to select the codepath. 
like pass the context or display as parameter to the FramebufferMtl constructor..

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/FrameBufferMtl.mm:1149
&gt; +            colorAttachment.storeAction = getMultisampleResolveStoreAction(context);

so if I understand correctly, the issue is that Apple2 GPU family doesn&apos;t support MTLStoreActionStoreAndMultisampleResolve?
And this patch:
 1. fixes the GPU restarts on GPU family Apple2 when doing multisampled rendering with preserveDrawingBuffer == false
 2. &quot;breaks&quot; the GPU family Apple2 when doing multisampled rendering with preserveDrawingBuffer == true. With the caveat about &quot;breaks&quot; that it never worked anyway, as it would cause GPU restart 

to fix 2, we&apos;d need additional patch 3. that implements manual resolve blit? And in this patch, we would touch these call sites to say &quot;storeAction = MTLStoreActionStore&quot;, and then the resolve would happen in the resolve step in onFrameEnd?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874363</commentid>
    <comment_count>15</comment_count>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2022-06-06 13:54:48 -0700</bug_when>
    <thetext>(In reply to Kimmo Kinnunen from comment #14)
&gt; Comment on attachment 459742 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459742&amp;action=review
&gt; 
&gt; &gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/FrameBufferMtl.mm:811
&gt; &gt; +    if(mImplicitMultisampleStoreAction == MTLStoreActionDontCare)
&gt; 
&gt; I feel there must be a better way to select the codepath. 
&gt; like pass the context or display as parameter to the FramebufferMtl
&gt; constructor..
&gt; 
&gt; &gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/FrameBufferMtl.mm:1149
&gt; &gt; +            colorAttachment.storeAction = getMultisampleResolveStoreAction(context);
&gt; 
&gt; so if I understand correctly, the issue is that Apple2 GPU family doesn&apos;t
&gt; support MTLStoreActionStoreAndMultisampleResolve?
&gt; And this patch:
&gt;  1. fixes the GPU restarts on GPU family Apple2 when doing multisampled
&gt; rendering with preserveDrawingBuffer == false
&gt;  2. &quot;breaks&quot; the GPU family Apple2 when doing multisampled rendering with
&gt; preserveDrawingBuffer == true. With the caveat about &quot;breaks&quot; that it never
&gt; worked anyway, as it would cause GPU restart 
&gt; 
&gt; to fix 2, we&apos;d need additional patch 3. that implements manual resolve blit?
&gt; And in this patch, we would touch these call sites to say &quot;storeAction =
&gt; MTLStoreActionStore&quot;, and then the resolve would happen in the resolve step
&gt; in onFrameEnd?

That sounds correct to me, we&apos;d need to add in a better resolve path for GPUFamily2.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459742</attachid>
            <date>2022-05-24 21:01:26 -0700</date>
            <delta_ts>2022-05-25 03:26:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235515-20220524210125.patch</filename>
            <type>text/plain</type>
            <size>7205</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9tZXRhbC9GcmFtZUJ1ZmZlck10bC5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL21ldGFsL0ZyYW1lQnVmZmVyTXRsLmgKaW5kZXggMmUwMzNjMGRhMWQx
Mzg5NDhlNzg5NTVhNmY2NTkyNmI1YTEyY2ZkNS4uMmQ3NDhhNjY4MDY2YzRmMzE0Nzc5NjM5Zjk3
MGEyOGRjMzM0NmJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL21ldGFsL0ZyYW1lQnVmZmVyTXRsLmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0ZyYW1lQnVmZmVyTXRsLmgK
QEAgLTE1MywxMCArMTUzLDExIEBAIGNsYXNzIEZyYW1lYnVmZmVyTXRsIDogcHVibGljIEZyYW1l
YnVmZmVySW1wbAogICAgIGFuZ2xlOjpSZXN1bHQgY2xlYXJXaXRoRHJhdyhjb25zdCBnbDo6Q29u
dGV4dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkRyYXdC
dWZmZXJNYXNrIGNsZWFyQ29sb3JCdWZmZXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBtdGw6OkNsZWFyUmVjdFBhcmFtcyAmY2xlYXJPcHRzKTsKLQorICAgIE1UTFN0
b3JlQWN0aW9uIGdldE11bHRpc2FtcGxlUmVzb2x2ZVN0b3JlQWN0aW9uKGNvbnN0IGdsOjpDb250
ZXh0ICogY29udGV4dCk7CiAgICAgLy8gSW5pdGlhbGl6ZSBsb2FkIHN0b3JlIG9wdGlvbnMgZm9y
IGEgcmVuZGVyIHBhc3MncyBmaXJzdCBzdGFydCAoaS5lLiBub3QgcmVuZGVyIHBhc3MgcmVzdW1p
bmcKICAgICAvLyBmcm9tIGludGVycnVwdGlvbnMgc3VjaCBhcyB0aG9zZSBjYXVzZWQgYnkgYSBj
b252ZXJzaW9uIGNvbXB1dGUgcGFzcykKLSAgICB2b2lkIHNldExvYWRTdG9yZUFjdGlvbk9uUmVu
ZGVyUGFzc0ZpcnN0U3RhcnQobXRsOjpSZW5kZXJQYXNzQXR0YWNobWVudERlc2MgKmF0dGFjaG1l
bnRPdXQsCisgICAgdm9pZCBzZXRMb2FkU3RvcmVBY3Rpb25PblJlbmRlclBhc3NGaXJzdFN0YXJ0
KGNvbnN0IGdsOjpDb250ZXh0ICogY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXRsOjpSZW5kZXJQYXNzQXR0YWNobWVudERlc2MgKmF0
dGFjaG1lbnRPdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGJvb2wgZm9yY2VEZXB0aFN0ZW5jaWxNdWx0aXNhbXBsZUxvYWQpOwogCiAg
ICAgLy8gRmlsbCBSZW5kZXJQYXNzRGVzYyB3aXRoIHJlbGV2YW50IGF0dGFjaG1lbnQncyBpbmZv
IGZyb20gR0wgZnJvbnQgZW5kLgpAQCAtMjI3LDYgKzIyOCw3IEBAIGNsYXNzIEZyYW1lYnVmZmVy
TXRsIDogcHVibGljIEZyYW1lYnVmZmVySW1wbAogICAgIGNvbnN0IGJvb2wgbUZsaXBZICAgICAg
ICAgICAgID0gZmFsc2U7CiAKICAgICBtdGw6OkJ1ZmZlclJlZiBtUmVhZFBpeGVsQnVmZmVyOwor
ICAgIE1UTFN0b3JlQWN0aW9uIG1JbXBsaWNpdE11bHRpc2FtcGxlU3RvcmVBY3Rpb24gPSBNVExT
dG9yZUFjdGlvbkRvbnRDYXJlOwogfTsKIH0gIC8vIG5hbWVzcGFjZSByeAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvRnJh
bWVCdWZmZXJNdGwubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvbWV0YWwvRnJhbWVCdWZmZXJNdGwubW0KaW5kZXggNWU4NjIwOTM0NmQ4NjM2MjVlNmI4
MWZiOTU0MjYzY2ViN2I0NzM0MC4uODAzMmFlNjNlM2JjODk2MjliNjczNDU0YjQ3ODkwNDAzZDEz
OWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL0ZyYW1lQnVmZmVyTXRsLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9GcmFtZUJ1ZmZlck10bC5tbQpAQCAtNTUs
NiArNTUsNyBAQCBjb25zdCBnbDo6SW50ZXJuYWxGb3JtYXQgJkdldFJlYWRBdHRhY2htZW50SW5m
byhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKIAogfQogCisKIC8vIEZyYW1lYnVmZmVyTXRs
IGltcGxlbWVudGF0aW9uCiBGcmFtZWJ1ZmZlck10bDo6RnJhbWVidWZmZXJNdGwoY29uc3QgZ2w6
OkZyYW1lYnVmZmVyU3RhdGUgJnN0YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgZmxpcFksCkBAIC03Nyw2ICs3OCw4IEBAIHZvaWQgRnJhbWVidWZmZXJNdGw6OnJlc2V0
KCkKICAgICBtUmVuZGVyUGFzc0ZpcnN0Q29sb3JBdHRhY2htZW50Rm9ybWF0ID0gbnVsbHB0cjsK
IAogICAgIG1SZWFkUGl4ZWxCdWZmZXIgPSBudWxscHRyOworICAgIAorICAgIG1JbXBsaWNpdE11
bHRpc2FtcGxlU3RvcmVBY3Rpb24gPSBNVExTdG9yZUFjdGlvbkRvbnRDYXJlOwogfQogCiB2b2lk
IEZyYW1lYnVmZmVyTXRsOjpkZXN0cm95KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0KQpAQCAt
ODAzLDEyICs4MDYsMjIgQEAgbXRsOjpSZW5kZXJDb21tYW5kRW5jb2RlciAqRnJhbWVidWZmZXJN
dGw6OmVuc3VyZVJlbmRlclBhc3NTdGFydGVkKGNvbnN0IGdsOjpDb24KICAgICByZXR1cm4gZW5j
b2RlcjsKIH0KIAotdm9pZCBGcmFtZWJ1ZmZlck10bDo6c2V0TG9hZFN0b3JlQWN0aW9uT25SZW5k
ZXJQYXNzRmlyc3RTdGFydCgKK01UTFN0b3JlQWN0aW9uIEZyYW1lYnVmZmVyTXRsOjpnZXRNdWx0
aXNhbXBsZVJlc29sdmVTdG9yZUFjdGlvbihjb25zdCBnbDo6Q29udGV4dCAqIGNvbnRleHQpCit7
CisgICAgaWYobUltcGxpY2l0TXVsdGlzYW1wbGVTdG9yZUFjdGlvbiA9PSBNVExTdG9yZUFjdGlv
bkRvbnRDYXJlKQorICAgIHsKKyAgICAgICAgbUltcGxpY2l0TXVsdGlzYW1wbGVTdG9yZUFjdGlv
biA9CisgICAgICAgICAgICBtdGw6OkdldEltcGwoY29udGV4dCktPmdldERpc3BsYXkoKS0+Z2V0
RmVhdHVyZXMoKS5hbGxvd011bHRpc2FtcGxlU3RvcmVBbmRSZXNvbHZlLmVuYWJsZWQgPyBNVExT
dG9yZUFjdGlvblN0b3JlQW5kTXVsdGlzYW1wbGVSZXNvbHZlIDogTVRMU3RvcmVBY3Rpb25NdWx0
aXNhbXBsZVJlc29sdmU7CisgICAgfQorICAgIHJldHVybiBtSW1wbGljaXRNdWx0aXNhbXBsZVN0
b3JlQWN0aW9uOworfQorCit2b2lkIEZyYW1lYnVmZmVyTXRsOjpzZXRMb2FkU3RvcmVBY3Rpb25P
blJlbmRlclBhc3NGaXJzdFN0YXJ0KGNvbnN0IGdsOjpDb250ZXh0ICogY29udGV4dCwKICAgICBt
dGw6OlJlbmRlclBhc3NBdHRhY2htZW50RGVzYyAqYXR0YWNobWVudE91dCwKICAgICBjb25zdCBi
b29sIGZvcmNlRGVwdGhTdGVuY2lsTXVsdGlzYW1wbGVMb2FkKQogewogICAgIEFTU0VSVChtUmVu
ZGVyUGFzc0NsZWFuU3RhcnQpOwotCisgICAgICAgIAogICAgIG10bDo6UmVuZGVyUGFzc0F0dGFj
aG1lbnREZXNjICZhdHRhY2htZW50ID0gKmF0dGFjaG1lbnRPdXQ7CiAKICAgICBpZiAoIWZvcmNl
RGVwdGhTdGVuY2lsTXVsdGlzYW1wbGVMb2FkICYmIGF0dGFjaG1lbnQuc3RvcmVBY3Rpb24gPT0g
TVRMU3RvcmVBY3Rpb25Eb250Q2FyZSkKQEAgLTgyMyw3ICs4MzYsNyBAQCB2b2lkIEZyYW1lYnVm
ZmVyTXRsOjpzZXRMb2FkU3RvcmVBY3Rpb25PblJlbmRlclBhc3NGaXJzdFN0YXJ0KAogCiAgICAg
aWYgKGF0dGFjaG1lbnQuaGFzSW1wbGljaXRNU1RleHR1cmUoKSkKICAgICB7Ci0gICAgICAgIGF0
dGFjaG1lbnQuc3RvcmVBY3Rpb24gPSBNVExTdG9yZUFjdGlvblN0b3JlQW5kTXVsdGlzYW1wbGVS
ZXNvbHZlOworICAgICAgICBhdHRhY2htZW50LnN0b3JlQWN0aW9uID0gZ2V0TXVsdGlzYW1wbGVS
ZXNvbHZlU3RvcmVBY3Rpb24oY29udGV4dCk7CiAgICAgfQogICAgIGVsc2UKICAgICB7CkBAIC04
NDMsMTUgKzg1NiwxNSBAQCB2b2lkIEZyYW1lYnVmZmVyTXRsOjpvblN0YXJ0ZWREcmF3aW5nVG9G
cmFtZUJ1ZmZlcihjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCkKICAgICBmb3IgKG10bDo6UmVu
ZGVyUGFzc0NvbG9yQXR0YWNobWVudERlc2MgJmNvbG9yQXR0YWNobWVudCA6IG1SZW5kZXJQYXNz
RGVzYy5jb2xvckF0dGFjaG1lbnRzKQogICAgIHsKICAgICAgICAgZm9yY2VEZXB0aFN0ZW5jaWxN
dWx0aXNhbXBsZUxvYWQgfD0KLSAgICAgICAgICAgIGNvbG9yQXR0YWNobWVudC5zdG9yZUFjdGlv
biA9PSBNVExTdG9yZUFjdGlvblN0b3JlQW5kTXVsdGlzYW1wbGVSZXNvbHZlOwotICAgICAgICBz
ZXRMb2FkU3RvcmVBY3Rpb25PblJlbmRlclBhc3NGaXJzdFN0YXJ0KCZjb2xvckF0dGFjaG1lbnQs
IGZhbHNlKTsKKyAgICAgICAgICAgIGNvbG9yQXR0YWNobWVudC5zdG9yZUFjdGlvbiA9PSBnZXRN
dWx0aXNhbXBsZVJlc29sdmVTdG9yZUFjdGlvbihjb250ZXh0KTsKKyAgICAgICAgc2V0TG9hZFN0
b3JlQWN0aW9uT25SZW5kZXJQYXNzRmlyc3RTdGFydChjb250ZXh0LCAmY29sb3JBdHRhY2htZW50
LCBmYWxzZSk7CiAgICAgfQogICAgIC8vIERlcHRoIGxvYWQvc3RvcmUKLSAgICBzZXRMb2FkU3Rv
cmVBY3Rpb25PblJlbmRlclBhc3NGaXJzdFN0YXJ0KCZtUmVuZGVyUGFzc0Rlc2MuZGVwdGhBdHRh
Y2htZW50LAorICAgIHNldExvYWRTdG9yZUFjdGlvbk9uUmVuZGVyUGFzc0ZpcnN0U3RhcnQoY29u
dGV4dCwgJm1SZW5kZXJQYXNzRGVzYy5kZXB0aEF0dGFjaG1lbnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZURlcHRoU3RlbmNpbE11bHRpc2FtcGxl
TG9hZCk7CiAKICAgICAvLyBTdGVuY2lsIGxvYWQvc3RvcmUKLSAgICBzZXRMb2FkU3RvcmVBY3Rp
b25PblJlbmRlclBhc3NGaXJzdFN0YXJ0KCZtUmVuZGVyUGFzc0Rlc2Muc3RlbmNpbEF0dGFjaG1l
bnQsCisgICAgc2V0TG9hZFN0b3JlQWN0aW9uT25SZW5kZXJQYXNzRmlyc3RTdGFydChjb250ZXh0
LCAmbVJlbmRlclBhc3NEZXNjLnN0ZW5jaWxBdHRhY2htZW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VEZXB0aFN0ZW5jaWxNdWx0aXNhbXBsZUxv
YWQpOwogfQogCkBAIC0xMTMzLDcgKzExNDYsNyBAQCBhbmdsZTo6UmVzdWx0IEZyYW1lYnVmZmVy
TXRsOjpjbGVhcldpdGhMb2FkT3BSZW5kZXJQYXNzTm90U3RhcnRlZCgKIAogICAgICAgICBpZiAo
Y29sb3JBdHRhY2htZW50Lmhhc0ltcGxpY2l0TVNUZXh0dXJlKCkpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGNvbG9yQXR0YWNobWVudC5zdG9yZUFjdGlvbiA9IE1UTFN0b3JlQWN0aW9uU3RvcmVB
bmRNdWx0aXNhbXBsZVJlc29sdmU7CisgICAgICAgICAgICBjb2xvckF0dGFjaG1lbnQuc3RvcmVB
Y3Rpb24gPSBnZXRNdWx0aXNhbXBsZVJlc29sdmVTdG9yZUFjdGlvbihjb250ZXh0KTsKICAgICAg
ICAgfQogICAgICAgICBlbHNlCiAgICAgICAgIHsKQEAgLTExNTMsNyArMTE2Niw3IEBAIGFuZ2xl
OjpSZXN1bHQgRnJhbWVidWZmZXJNdGw6OmNsZWFyV2l0aExvYWRPcFJlbmRlclBhc3NOb3RTdGFy
dGVkKAogCiAgICAgaWYgKHRlbXBEZXNjLmRlcHRoQXR0YWNobWVudC5oYXNJbXBsaWNpdE1TVGV4
dHVyZSgpKQogICAgIHsKLSAgICAgICAgdGVtcERlc2MuZGVwdGhBdHRhY2htZW50LnN0b3JlQWN0
aW9uID0gTVRMU3RvcmVBY3Rpb25TdG9yZUFuZE11bHRpc2FtcGxlUmVzb2x2ZTsKKyAgICAgICAg
dGVtcERlc2MuZGVwdGhBdHRhY2htZW50LnN0b3JlQWN0aW9uID0gZ2V0TXVsdGlzYW1wbGVSZXNv
bHZlU3RvcmVBY3Rpb24oY29udGV4dCk7CiAgICAgfQogICAgIGVsc2UKICAgICB7CkBAIC0xMTcy
LDcgKzExODUsNyBAQCBhbmdsZTo6UmVzdWx0IEZyYW1lYnVmZmVyTXRsOjpjbGVhcldpdGhMb2Fk
T3BSZW5kZXJQYXNzTm90U3RhcnRlZCgKIAogICAgIGlmICh0ZW1wRGVzYy5zdGVuY2lsQXR0YWNo
bWVudC5oYXNJbXBsaWNpdE1TVGV4dHVyZSgpKQogICAgIHsKLSAgICAgICAgdGVtcERlc2Muc3Rl
bmNpbEF0dGFjaG1lbnQuc3RvcmVBY3Rpb24gPSBNVExTdG9yZUFjdGlvblN0b3JlQW5kTXVsdGlz
YW1wbGVSZXNvbHZlOworICAgICAgICB0ZW1wRGVzYy5zdGVuY2lsQXR0YWNobWVudC5zdG9yZUFj
dGlvbiA9IGdldE11bHRpc2FtcGxlUmVzb2x2ZVN0b3JlQWN0aW9uKGNvbnRleHQpOwogICAgIH0K
ICAgICBlbHNlCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9jb21tYW5kX2J1ZmZlci5tbSBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfY29tbWFuZF9i
dWZmZXIubW0KaW5kZXggZmI0OGZhMDQ4NzgwNDZlYjZkYTVmYWZmZDJkNDdmMWEyODhkYzUzYi4u
NTUyNmEzYzk3YTM0N2UxMmI0ZmE0YzRmOWRmNTYxMGQ3NDM4MjRhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9jb21t
YW5kX2J1ZmZlci5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvbWV0YWwvbXRsX2NvbW1hbmRfYnVmZmVyLm1tCkBAIC0xMTI1LDcgKzExMjUsNyBA
QCB2b2lkIFJlbmRlckNvbW1hbmRFbmNvZGVyOjpmaW5hbGl6ZUxvYWRTdG9yZUFjdGlvbigKICAg
ICAgICAgICAgIC8vIENvbnNpZGVyIGFuIGltcHJvdmVtZW50IHN1Y2ggYXMgb25seSBzdG9yZSB0
aGUgTVMgdGV4dHVyZSwgYW5kIHJlc29sdmUgb25seSBhdAogICAgICAgICAgICAgLy8gdGhlIGVu
ZCBvZiByZWFsIHJlbmRlciBwYXNzIChub3QgcmVuZGVyIHBhc3MgdGhlIHdhcyBpbnRlcnJ1cHRl
ZCBieSBjb21wdXRlIHBhc3MpCiAgICAgICAgICAgICAvLyBvciBiZWZvcmUgZ2xCbGl0RnJhbWVi
dWZmZXIgb3BlcmF0aW9uIHN0YXJ0cy4KLSAgICAgICAgICAgIG9iakNSZW5kZXJQYXNzQXR0YWNo
bWVudC5zdG9yZUFjdGlvbiA9IE1UTFN0b3JlQWN0aW9uU3RvcmVBbmRNdWx0aXNhbXBsZVJlc29s
dmU7CisgICAgICAgICAgICBvYmpDUmVuZGVyUGFzc0F0dGFjaG1lbnQuc3RvcmVBY3Rpb24gPSBN
VExTdG9yZUFjdGlvbk11bHRpc2FtcGxlUmVzb2x2ZTsKICAgICAgICAgfQogICAgICAgICBlbHNl
IGlmIChvYmpDUmVuZGVyUGFzc0F0dGFjaG1lbnQuc3RvcmVBY3Rpb24gPT0gTVRMU3RvcmVBY3Rp
b25Eb250Q2FyZSkKICAgICAgICAgewo=
</data>
<flag name="review"
          id="488853"
          type_id="1"
          status="?"
          setter="kpiddington"
    />
    <flag name="commit-queue"
          id="488860"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>