Diff
Modified: branches/safari-612.1.21-branch/LayoutTests/ChangeLog (279416 => 279417)
--- branches/safari-612.1.21-branch/LayoutTests/ChangeLog 2021-06-30 16:43:28 UTC (rev 279416)
+++ branches/safari-612.1.21-branch/LayoutTests/ChangeLog 2021-06-30 16:43:32 UTC (rev 279417)
@@ -1,3 +1,35 @@
+2021-06-30 Alan Coon <[email protected]>
+
+ Cherry-pick r279382. rdar://problem/79970297
+
+ Unreviewed, reverting r279250.
+ https://bugs.webkit.org/show_bug.cgi?id=227499
+
+ Sometimes causes YouTube audio to cut out
+
+ Reverted changeset:
+
+ "[Cocoa] Last few seconds of 'audio/webm; codecs=vorbis'
+ appended to a SampleBuffer are not played"
+ https://bugs.webkit.org/show_bug.cgi?id=226069
+ https://commits.webkit.org/r279250
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2021-06-29 Commit Queue <[email protected]>
+
+ Unreviewed, reverting r279250.
+ https://bugs.webkit.org/show_bug.cgi?id=227499
+
+ Sometimes causes YouTube audio to cut out
+
+ Reverted changeset:
+
+ "[Cocoa] Last few seconds of 'audio/webm; codecs=vorbis'
+ appended to a SampleBuffer are not played"
+ https://bugs.webkit.org/show_bug.cgi?id=226069
+ https://commits.webkit.org/r279250
+
2021-06-29 Alan Coon <[email protected]>
Cherry-pick r279361. rdar://problem/79923766
Modified: branches/safari-612.1.21-branch/LayoutTests/platform/mac/TestExpectations (279416 => 279417)
--- branches/safari-612.1.21-branch/LayoutTests/platform/mac/TestExpectations 2021-06-30 16:43:28 UTC (rev 279416)
+++ branches/safari-612.1.21-branch/LayoutTests/platform/mac/TestExpectations 2021-06-30 16:43:32 UTC (rev 279417)
@@ -1776,9 +1776,6 @@
[ Catalina Mojave ] platform/mac/media/mediacapabilities/vp9-decodingInfo-sw.html [ Skip ]
[ Catalina Mojave ] platform/mac/media/media-source/is-type-supported-vp9-codec-check.html [ Skip ]
-# These tests require macOS Monterey.
-[ Catalina Mojave BigSur ] platform/mac/media/media-source/media-vorbis-partial.html [ Skip ]
-
webkit.org/b/214422 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct.html [ Pass Failure ]
webkit.org/b/214498 imported/w3c/web-platform-tests/cors/remote-origin.htm [ Pass ]
Deleted: branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/content/test-vorbis-manifest.json (279416 => 279417)
--- branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/content/test-vorbis-manifest.json 2021-06-30 16:43:28 UTC (rev 279416)
+++ branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/content/test-vorbis-manifest.json 2021-06-30 16:43:32 UTC (rev 279417)
@@ -1,9 +0,0 @@
-{
- "url": "content/test-vorbis.webm",
- "type": "audio/webm; codecs=\"vorbis\"",
- "init": { "offset": 0, "size": 3744 },
- "duration": 1.33,
- "media": [
- { "offset": 3744, "size": 9992, "timestamp": 0, "duration": 1.33 }
- ]
-}
\ No newline at end of file
Deleted: branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/content/test-vorbis.webm (279416 => 279417)
--- branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/content/test-vorbis.webm 2021-06-30 16:43:28 UTC (rev 279416)
+++ branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/content/test-vorbis.webm 2021-06-30 16:43:32 UTC (rev 279417)
@@ -1,88 +0,0 @@
-Eߣ������������B\x86\x81B\xF7\x81B\xF2\x81B\xF3\x81B\x82\x84webmB\x87\x81B\x85\x81S\x80g����������5}M\x9Bt@M\xBB\x8BS\xAB\x84I\xA9fS\xAC\x81\xE5M\xBB\x8CS\xAB\x84T\xAEkS\xAC\x82-\xEC������������\xB9����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������I\xA9f������������<*ױ\x83B@{\xA9\x87silenceM\x80\x8DLavf57.56.100WA\x8DLavf57.56.100D\x89\x88@\x94\xB4����������T\xAEk����������-0\xAE����������-'ׁsŁ\x9C\x81��"\xB5\x9C\x83und\x86\x88A_VORBIS\x83\x81\xE1������������\x9F\x81\xB5\x88@刀��������bd\x81 c\xA2L\xEBUvorbis��������D\xAC������������\x808����������\xB8vorbis,������Xiph.Org libVorbis I 20150105 (⛄⛄⛄⛄)�
�����������encoder=Lavc57.64.101vorbis"BCV��@����$s*F\xA5s\x84BP\xE3B\xCEk\xECBL\x822L[\xCB%s\x90!\xA4\xA0B\x88[(\x81АU����@����\x87Ax\x84\x8AA!\x84%=X\x92\x83'=!\x84\x889x\x84iA!\x84B!\x84B!\x84E9h\x92\x83'A\x84\xE308\x83\xE58\xF8
\x84E9X\x83'A\xE8 \x84B\xB8\x9A\x83\xAC9!\x84$5HP\x839\xE8\x84\xC2,(\x8A\x82\xC40\xB8\x845(\x8C\x82\xE40\xC8ԃB\x88\x9A\x83I5\xF8\x84gAx\x84iA!\x84$AH\x90\x83A\xC8\x84FAX\x92\x839\xB8\x84\xCBA\xA8\x84*9\x84 4d��\x90����\xA0\xA2(\x8A\xA2(
-\xB2
-��\xC8����@Q\xC7qɑɱ-Y����������\xA0H\x8A\xA4H\x8E\xE4H\x92$Y\x92%Y\x92%Y\x92扪,˲,˲,\xCB2\xB2
-��H����PQEq-Y��d����\xA08\x8A\xA5X\x8A\xA5h\x8A爎\x84\x86\xAC��\x80��������4CS<G\x94D\xCFTUm۶m۶m۶m۶m[\x96e-Y��@����\xD2if\xA9\x880BCV������\x80\x8A0ĀАU����@����\x80J\xA2 \xAD9ߜ\xE3\xA0Y\x9AJ\xB19\x9CH\xB5y\x92\x9B\x8A\xB99\xE7\x9Cs\xCE\xC9\xE6\x9C1\xCE9眢\x9CY\x9A \xAD9\xE7\x9CĠY
-\x9A \xAD9\xE7\x9C'\xB1yК*\xAD9\xE7\x9Cq\xCE\xE9`\x9C\xC69\xE7\x9C&\xADy\x90\x9A\x8D\xB59\xE7\x9C\xADi\x8E\x9AK\xB19\xE7\x9CH\xB9yR\x9BK\xB59\xE7\x9Cs\xCE9\xE7\x9Cs\xCE9\xE7\x9C\xEA\xC5\xE9\x9C\xCE9眨\xBD\xB9\x96\x9B\xD0\xC59\xE7\x9CO\xC6\xE9ޜ\xCE9\xE7\x9Cs\xCE9\xE7\x9Cs\xCE9\xE7\x9C 4d������@\x86\x8Da\xDC)\xD2\xE7h Fb2\xE9A\xF7\xE80 \x83\x9CB\xEA\xD1\xE8h\xA4\x94:%\x95qRJ'-Y������@!\x85RH!\x85RH!\x85b\x88!\x86r\xCA)\xA7\xA0\x82J*\xA9\xA8\xA2\x8C2\xCB,\xB3\xCC2\xCB,\xB3\xCC:쬳;1\xC4C+\xAD\xC4RSm5\xD6Xk\xEE9皃\xB4VZk\xAD\xB5RJ)\xA5\x94R
-BCV�� ����Bd\x90QH!\x85b\x88)\xA7\x9Cr
-*\xA8\x80АU���� ��\x80��������O\xF2\xD1\xD1\xD1\xD1\xD1\xF1\xCF%Q%Q-\xD325\xD3SEUueזuY\xB7}[]\xF7}\xDD\xF7}\xDD\xF8uaX\x96eY\x96eY\x96eY\x96eY\x96eY\x96 4d�������� \x84BH!\x85RH)\xC6s\xCC9\xE8$\x94-Y������������pGqɑI\xB2$K\xD2$\xCD\xD2,O\xF34O=QE\xD34U\xD1]Q7mQ6e\xD35]S6]UVmW\x96m[\xB6uۗe\xDB\xF7}\xDF\xF7}\xDF\xF7}\xDF\xF7}\xDF\xF7}]BCV������:\x92#)\x92")\x92\xE38\x8E$I@h\xC8*��@��@����\x8A\xE2(\x8E\xE38\x92$I\x92%i\x92gy\x96\xA8\x99\x9A陞*\xAA@h\xC8*������@������������\x8A\xA6x\x8A\xA9x\x8A\xA8x\x8E舒h\x99\x96\xA8\xA9\x9A+ʦ캮뺮뺮뺮뺮뺮뺮뺮뺮뺮뺮뺮\x84\x86\xAC��$����t$Gr$GR$ER$Gr\x80АU��\x80��\x80����\xC31$Er,\xCB\xD24O\xF34O=\xD1=\xD3SEWt\x81АU���� ��\x80������������ɰ\xCB\xD1M%\xD5R-US-\xD5RE\xD5SUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM\xD34M-Y ������\xD0Zs̭\x97\x8EA謗\xC8(\xA4\xA0\xD7N9\xE6\xA4\xD7\xCC(\x82\x9C\xE71c\x98\xC7R1CƖA\x84\x94BCV��Q����\x801\xC81\xC4r\xCEI\xEA$E\xCE9*\xA5\xC69G\xA9\xA3\xD4QJ\
xB1\xA6Z;J\xA5\xB6Tk㜣\xD4Q\xCA(\xA5ZK\xAB\xA5Tk\xA
A\xB1����\x80����\x80��\xA1А@����\x81R
-)\x85\x94b\xCE)\xE7\x90R\xCA9\xE6b\x8A9\xA7\x9Cc\xCE9(\x9D\x94\xCA9'\x9D\x93)\xA5\x9Cc\xCE)眔\xCEI朓\xD2I(���� \xC0�� \xC0B(4dE��'��\xE0pM\x934M%MEO]\xD7EՕ4\xCD45QTUMM\xD5TUYMU\x96%M3MMUSEUUS\x96MU\xB5e\xCF4m\xD9TU\xDDUնe[\xF6}W\x96u\xDD3M\xD9UնMU\xB5uW\x96u]\xB6mݗ4\xCD45QTUMU\xD7TU\xDB6Uն5Qt]QUeYTUYv]Y\xD7UW\xD6}MU\xD5SM\xD9UU\x96U\xD9\xD5eU\x96u_tU\xDDV]\xD9\xD7UY\xD6}\xDBօ_\xD6}¨\xAA\xBAnʮ\xAE\xAB\xB2\xAC\xFB\xB2.\xFB\xBA\xED\xEB\x94I\xD3LSEU\xD5DQUMW\xB5mSum[E\xD7UՖESueU\x96}_ue\xD9\xD7D\xD1uEU\x95eQUeY\x95e]weW\xB7EU\xD5mUv}\xDFt]]\x97u]Xf[\xF7\x85\xD3uu]\x95e\xDFWeY\xF7e]\xC7\xD6u\xDF\xF7LӶM\xD7\xD5u\xD3Uu\xDF\xD6u\xE5\x99m\xDB\xF8EU\xD5uU\x96\x85_\x95e\xDFׅ\xE1yn\xDD\x9EQUuݔ]_WeYn_7ھn<\xAFmc\xDB>\xB2\xAF#G\xBE\xB0,]\xDB6\xBA\xBEM\x98u\xDD\xE8C\xE17\x864Ӵm\xD3Uu\xDDt]_\x97u\xDDh\xEB\xBAPTU]We\xD9\xF7UW\xF6}[\xF7\x85\xE1\xF6}\xDFU\xD7\xF7UY\x86Ֆ\x9Da\xF7}\xA5\xEE\x95U\xB6\x85\xDF\xD6u\xE7\x98m]X~\xE3\xE8\xFC\xBE2tu[h뺱̾\xAE&
lt;\x
BBqt\x86>��������L(\x85\x86\xAC��\xE2��\x84\x9CCLA\x88\x83BH)\x84\x90R\xC4\x84\xCC9)sRB)\xA9\x85RR\x8B\x83\x909&%sNJ(\xA1\xA5PJK\xA1\x84\xD6B)\xB1\x85RZl\xAD՚Z\x8B5\x84\xD2Z(\xA5\xB5PJ\x8B\xA9\xA5[k5F\x8CAȜ\x93\x929'\xA5\x94\xD2Z(\xA5\xB5\xCC9*\x9D\x83\x94:)\xA5\x94Z,)\xC5X9'%\x83\x8EJ!\xA5\x92JL%\xA5C*\xB1\x95\x94b,)\xC5\xD8Zl\xB9Řs(\xA5ŒJl%\xA5X[L9\xB6s\x8E\x83\x909'%sNJ(\xA5\xB5RRk\x95sR:)eJ*)\xC5XJJ1sNJ!\xA5BJ%\xA5SJ\xB1\x85Rb+)\xD5XJj\xB1ŘsK1\xD6PR\x8B%\xA5KJ1\xB6sn\xB1\xE5\xD6Ah-\xA4c(%\xC6c\xAE\xAD\xB5C)\xB1\x95\x94b,)\xD5c\xAD\xBDŘs(%ƒJ\x8D%\xA5X[\x8D\xB9\xC6sN\xB1\xE5\x9AZ\xAC\xB9\xC5\xD8km\xB9\xF5\x9AsЩ\xB5ZSL\xB9\xB6s\x8E\xB9Ys\xD0Z(\xA5\xC5PJ\x8C\xAD\xB5Z[\x8C9\x87Rb+)\xD5XJ\x8A\xB5Řsk\xB1\xF6PJ\x8C%\xA5XKJ5\xB6k\x8E5\xF6\x9AZ\xAB\xB5Řkj\xB1\xE6\x9As\xEF1\xE6\xD8Sk5\xB7kN\xB1\xE5Zs\xEE\xBD\xE6\xD6c��������&\x94\x81BCV��Q����!J1\xA1A\x881\xE7\xA441朔\x8A1\xE7 \xA4R1\xE6\x84R2\xE7 \x94\x92R\xE6\x84RR
-\xA5\xA4\x92Rk\xA1\x94RRj\xAD����\x80��\x80��4%(4d%��\x90
-��`p\xCB\xF2<Q4U\xD9v,\xC9\xF3D\xD14Uն\xCB\xF2<Q4MU\xB5m\xCB\xF3D\xD14U\xD5uu\xDD\xF2<Q4UUu]]\xF7DQ5U\xD5ueY\xF7=Q4UUu]Y\xF6}\xD3TU\xD5ueY\xB6\x85_4UWu]Y\x96e\xDFX]\xD5ueY\xB6u[V\xD5u]Y\x96m[7\x86[\xD7u\xDD\xF7\x85a9:\xB7n\xEB\xBA\xEF\xFB\xC2\xF1;\xC7����\xF0��\xA0VG8),4d%��\x90��@\x83\x90AH!\x83RH!\xA5RJ ����p����0\xA1\xB2��\x88����\x91RJ)\x8D\x94RJ)\xA5\x91RJ)\xA5\x94B!\x84B!\x84B!\x84B!\x84B!\x84B!\x84B��\xF8O8��\xF8?ؠ)\xB18@\xA1!+\x80p����\xC0\xA5\x98r: )5\x8C9\xA1\x94\x94Rj\xADa\x8C1\xA5\xA4\xD4ZK\x95sJI\xA9\xB5\xD8b\xAC\x9C\x83PRJ\xAD\xC5c!\xA5\xD6Z\xAC\xB1֚;)\xA5k\xAC9\xD8Ji-\xC6Xsν\xF7\x90Rk1\xD6Zsw\xD6b\xAC5\xE7܃´c\xAE\xB9\xF6\xE0{\xEF)\xB6Zk\xCD=\xF8 \x84P\xB1\xD5Zs\xF0A!\x84\x8B1\xF7܃\xF0=!\\x8C9\xE7\x84\xF0\xC1a����w\x83��D\x82\x8D3\xAC$\x9D\x8E\xB2�� �� b\x8A1眃B\x91R\x8C9\xE7\x84B(%R\x8A1眃B%d\x8C9\xE7\x84B(\xA5\x94\x8C1眃B \xA5\x94\x929\xE7\x84B(\xA5\x94R2砃B \xA5\x94RJ\xE7
\x84B\xA5\x94RJ頃B
\xA5\x94RJ)!\x84B \xA5\x94RJ)%\x84B \xA5\x94RJ)\xA5\x84J(\xA5\x94RJ)\xA5\x94B)\xA5\x94RJ)\xA5\x94B(\xA5\x94RJ)\xA5\x94\x92B)\xA5\x94RJ)\xA5\x94RR(\xA5\x94RJ)\xA5\x94RJ \xA5\x94RJ)\xA5\x94\x94RI����8����A'Ua\xA3 \x80BCV��@����\xC4VS\x89\x9DA\xCC1g\xA9!1\xA8\xA9BJ)\x861C\xCA \xA6)S
-!\x85!s\x8A!\xA1\xC5VK\xC5�������� ��0@P0��>A'@p\xB4��Bd\x86H4,\x87\x95��1��$&(\xE4@\x85\xC5E\xDA\xC5t\xE0\x82.\xEE:B\x82\xC4\xE2��
-H\xC0\xC1 7<\xF1\x86'\xDC\xE0\x9D\xA2R��������p��������\xC7\xD1F\x86\xC6G\x87\xC7HH����������\xC8��\xC0��\xC0!DD4\x87\x91\xA1\xB1\xC1\xD1\xE1\xF1����������������������������������C\xB6u����������'\xE7\x81��\xA3\x85\x81����\x80��\xA3@\xB9\x81��\x80\xFA\x95ıJ8\xB4\xD1Fӣz؈\x8C\xF7\xEA=q\xD4/硐\x8D\x97\x8A\x82\xA0��8\x8F\xE5\xD1\xC4\xC3ڏs]W\xE3\xFC\xFD\xE1\xAF\xE3\xF7\xD7ߚnyKy\xB16\xB7\xE7W^\xA5\xD7%O\x96\xAFMx\xDE<\xAFj)W\xA8\x85\x91\xF6\xCD@vĨM7\x96\xE4\x9D\xE5\xFC\xE2\xEEr\xF2\xE3px\xE7B:ދ\xF46\xC1!\xC5oÔî\xF2\x83<\x8F\xEAwQ\xC8\xD6od\\xC8\xFF\x89\x91\xC0\x93\x81]ֶ\xD1\xB3\xD7\xCFx%\xE2\xFE%\xD2`\xF4տ
-\xAD\xEDɧLJ\xABD\xE4\xE5\x94\xDF~v\x87\xA3@\xA9\x81��\x80\xFE\x95\xD4&J\xDC\xE8\xC1eX\x81\xA3#\x87C\xBD\xBB\x9D\xC8-\xBA\x97\xCEw\x92@ ��@\xB7#t\x8Eߒ\xF40F;8l^Z*{\x8Bq'C\x94a7\xF2RaҧY\xD3ǻ\x84\xC1\xA72.7\xF3V\xAE1\xD14\xFD}%\xF1ZŴÍ\x94\xB9v\x9B\xCE\xF5\xCC\xCBsM\xA2\xF2`-\x98Ua\xFC&Zo\xCFI\xFF\xA9\xCD\xB1զ\xF9\x8DJ\x9CVF\xF2S\xDFl\x8B\x96\xF3\x98\xAB\xC2o\xDFoSܻ9U1V\xEB\xB9\x97\xE4`\xD3%ͣ@\xAA\x81��'\x80\xFE\x95d\xDAK\xEB\xB0;\xD3\xE2\xF0\x86\x83ء\xB0dwۆ\x94LQ'(��\xD8\xDB\xDEep\xB8\xE9Iz\xA4f\xFF\xF3\x88\x8CSe\xF6\x94\xA1^{\x849]\x93+a\xE5\xCC],9\xC1
-qMFϜ܅D\xF7\x83\xE6\xCAw]\x9C2\xC8l*
-`u'\xB2\xC1\x95\xA3"t\xBD\xF6\xEA\xB9/yk։\xBE\x97\xC0\\xCF\xC5-U\xC6N\xDB}\xF7)2fK\xF5\xE5\xE4\xFD\xE1~+\xAF1l\xF3\x97~\xCCQθ\xE2D\xB1\xF7#\xE7\xCA\xEAp?\xF1\xA4/I} ��\xA3@\xB7\x81��?\x80\xFE\x95\x94ZKX\xE6\xA5\xE9\x91=n\xAC\xA2\x88\xC6(\xE4ң\xA5 ��P\xE1x\xFA\xFDa- AN\xBF\xE5\xFD\x87\xD8\xF5k\xD98\x9Ez7#\xB5\xA7\xF7wZcٿ\x94\xE8,:6\xE4\xFE\xE4<}\xC5\xDA-O6jWf\xC794\x83n?"\x86U\xF6hq^M3m\xBAC\xAE\xF00_Uc\xE52\x8D{\x9B\x9C \xACz>\xC1O:M\xA6.p\xDF\xCF\xEE\x93Aq\xFB\x97I\xEC\xE6\x8ALZ\xAE\x8F\xA0\xA6\xB1\xFC\xFB\xEF_EQ#ҳ
-73\xD6S\x86U\xB5-\xEC f\xC0\xA1Q\xB5\xD4+R��\xA3@\xAB\x81��V\x80ޕ\xA4\xC2Ihc\x92.\xD3<nlG~jG\xD6\xE9](d����\xC2\xFF'G\xD7䏻\xD2+\x8C=\xB3)x;\xEBoM\x83\x99\xE6\xDFQ\xCE\xC4#\xACZXw\xB1\xA8\xA0\xE6ee_\xA3pi\xA6-=R\xCE\xD2·+\xDDo(\xF7bw\xF4h~\x9C\K\xF0\xE2\xC1\x8B \xE0\xE1i%[8_H\x8A\xA0T<\xDC\xE6\xC5GP\xC6X$&\xB2\^.caۨ<3Qb\xD2\xFE\xF3\x8D\xD8\xC8J\xCC\xCB^4\xF0χ\x80Yʏ\xDB5er-\xB1\x92\x97\xF5c��\xA3@\xB3\x81��m\x80\xFEeIJHhj\xA4\xADN\xBA,\x82\xF1h\xF3\xFC\xD2aE$\xD4:��*�� !\xFB\xA2V*��\xA0Zտ\xECd\x89Kd=-\xCF\xCBV\Vq8\xD7\xD3B\x80]\xC0Ģ\x81\xA9\xB0\x8F\xEA\xE8\xCAe\xE2\xC4v?\xB63\xEE^3Wޚ{h\x91M\x87\xEA\x8CW;\xCC$)\x9D\x91\xB6,#˭|\xF1\xF5`\x98\xB6\x93\xE1\xE1\x82\xFB\xEC?\xA5\xF0w\x95G\xF5n\xF61!\xF0\xAF\x93JU\xA1='\x9E\x8B\x82#0]\xE9ۤ\x9C%Y\xC49\x83\x81\xD2\xD3$\x8C\xD5X)`\xE6Ȃ\xA3, ��\xA3@\xA3\x81��\x84\x80\xFE\x95\xA4\xA6H\x98\xB5\x91\xB6\xB8\xAD9i\x9B\xCBn4\x9D `\xE3Q+\xC2��\x80\xAA\xA0\xF9\xC4\xFE\xFFj\xAE\xF6\x8B\xFB\xDC\
xD2n\xB7\
x9A\xFD\xE1\xBD\xE0\xE8;\xE5b:!P1`\xA2P\xB61\x91\x84~\x87\xD9\xE2)\xEF\x84bw\xA4ME\xF2P?\xDDf\xD5^a/\xC289\xC7\x8C؝A\xD41\xD4/\x9F\x97H\xA9f\x8B\x87%/ȩoL\xEE\xB9k\xAC\x84-O\xA9d8v\xD3)\xF86_\\xA2\x99ȵ\xBC\x87ZB^\xBBmA"\xE6U\xB6\xE0X\x8B\x8C"\xA3@\xAA\x81��\x9B\x80\xFE\x95\x94&\xFE\x93~\x94\x97mA\xEChC\x93W\xC7\xF6\xD16ɞ|e����\xA0T\xDF\xE9\xBBm\xB2\xFD\xF9\xEBy\xB3\x9D\xBC\xDD\xDA\xCEK͜d\xEC\xD8K\x84pO\xC8qA?\xD0 +|\xBC\xC2`{\xF0s\x82]\xD6&\x9B\xBC9~dW\x8Fxm\x9C=-\x87\xE3\xA2Z\xDC{\xE3\xF72F\x87! \x942e\x86\xC2\xC6O\xB4\x81\xD9\xFAX\xC6wzr\xB7\xA7a\x86\x9A\xA9\xFF'\xCBl
-~\xA0i\x82\xB0\x87\xBB\xC9v\xBAb\xB7az!\xB9\x93\x99t\xE6\xA3@\xA7\x81��\xB3\x80\xFEe\xA4&J\x98\xD5G\xEB\xABY\xC4c\x8DQXkֻِ\xB9(d/\x8C
-!����\xD4\xF2\xAA%\xC7X\xFB\xF1\xA7Z̅\xF4\xAA'\xCB\xF6\xD0s\xF7\x96\xA6-\xFAI\xE0@\x99H\xE7\xDB\xEE!\xBF\xCDxR\x9D\xCF\xEA\xECRv\xF9S\xFE\xC8\xF2J\zۯ\x97��P\x93\x9B\x99\xF8\x93θY\xAA\x83P,\xB2Y\xA2\x8B\xAE\xF6\xB1\xFD\xCC\xFE\xD2tc\x9ES\xDA\xE2\xFA:\xC8\xE2\xF2\xAE9\xE2v:\xAE^/\xF8[\xFB\xD6\xFEj\xC7\xDAѽ\xFEK\xEF+\x96\x9C\xF2\xEA\xA3@\xAA\x81��ʀ\xFE\x95\xA4\xACI\xCC\xEA1:w\xBE\xCC8\xCB\xE8\x9Bl\xCFGB\x80b\xBA!+\x94����\x96p\xA4\xE6%b\xA3\xD5\xF9\xB2\x9F-15\x82\xF3\x87\xD8UG\xB8W\xC0\x83\x8B\xDE\xA1\x89 '\x95\x88T\x9Ao\x93\xBB��\xCE\xCBL\xE1D\xEC_��d
-\xCCd˝t\xAC\x82,\xB1\xBBU\x91w}N\xC07\x97\xB3\xD8X\xD1no\x96}2fyN$J\xEAa\xEB\x8Em\xEC\KAE\xF5Ox
-W\xFD\x83\x85\xEE{\x9A\xC7,(\xBE\x91\xED\xED\xD1#kݢܟ\xEED\xC7c\xCEz\xEB\xA3@\xAD\x81��\xE1\x80\xFE\x95ĦJ8\xB4\x91\xB1x\xA7\x9C\x8Fz\x8F\x8C\xF5D\xB0\xB9V\xCCH0\xD2ա"����pS1a&}\xA7F\xD2hV֑s\xC74ȍENq\xB4\xCE\xF4!3\xAFLKi\x9E+\xA7͉\xF1\x87é!\xF1\xF7lr3\xB9?
-\x8B\xA4\xB9\xFC\x94\xDDlj\xD0Z\xB3\x8F\xF5ytQF\xA2\x8E\x87^#4IA\x99"o߈J\xFA^x\xD5,SC\xB0\x81\x9Ew\xBD )\xF9d\xBCU\xC4\xFD\x8B\xFBM\xFD\x92, \R\x86\xFF0w읣`nb\xAB\xA5\xBF\xBEI\xE0\x8F\xA3@\xAB\x81��\xF8\x80\xFE\x954:J\x98\x89\xC7xi.4ף\xA1O\x8E\x90H\x81\xD0(\xE4tSd����p$V\xFB\xEF\x92\xD89\x93\xFDn\xD1\xE6\xDC1- \xCCB\x8B\xFA\x9B7]\x95.tMV\xA6֙eb"c\xD1^\xC6\xE2[VX?\x9D\xB7G\xA4As\xBD\xADF\xF8u\xC5+mn-\x88]\xBE6G\xA5\x98\xD7r\xF3K9p\xB0.;\xA0el`&S\x9F\xC0\x95\xE2\xBEM\xA2\xAB\xBA\xD7{;\x81Fl\x90\xD4h\x98\xB0=aI9\xA4\xAD\xC6;>Pi\xE55\xD9\xCAnn\xBD\x8C?\xE4,\xA3@\xA4\x81\x80\xFEed:I\xCA\xE2#\xAC\xA6r\xA6\xB4a\xE9l\xF7fJFJ\xB6\xA2��\xF0\xB8t\xD7\xD6\xD2=y7\xAE\xF8/5h
-\xAEd\xF3\xF4%Ҷ\xD8DUVL\xD0SJ%$L\xD3`\xC4\xF51L&\x9F\x8D\xC8\xE0\xD8_z0\x9AA\x91RШ\xE9\xF7\xBA#\xE2\xA3Wo\xE1"\5FL\xBC{\xEAt0\xD7\xD3TM\x93��\xA6uXr\xBDҀ\xAF\xE3\xE8&0'\xA6\xF6\xC841=)\xC1P/*cS\xC4\xE2JR\xFE:\xB5\xD8%\xB3*]��\xA3@\xAB\x81'\x80ޕ\xA4\xBAK8\xEAҪじc\x96\x91&udoAHr:\xB2"��\x90.\xE6\xD44\xED 1\xEF\xBE\xFE\xEF\xB0\xF6\xCAj\xB5c\x8D\xDE]-\xB09\xB4bx\xF6\x98\xE3:\x83i(\xB3\xE7o\xA8\x92[(;\xC5\xC9\xE37uE\x93v3\x83W\x85\xD8c+\xC0Ӹ2\xFF\xE6\xFA5i\xA3g\x86\xF1\x85\x9Ajʣ\xE2dY\xAD{$*~\xBDmO^)\xD4!6\x8Fj\xA6\xF7\x81\x8BB7!\x8Cy\xA1e9-U>ڴ\xA4\x9A\xFE\x8CՑJ��\xA3@\xA8\x81>\x80\xFE\x95\xD42I\xC4$<\x8Ct \x86\x8Dy&\x9D\x90\xAE(&\x8D\xA1"\xA8��\x80J\xF6\xD2\xCEa\xF7\x8C\x9249\xE6\xF4\xC9\xED\xAD\xFA\xE1\xB0m\xFA=\xBD\xE7\xA0\xEA5ܞU\x89\xFB\xB96g\x8D?B\x9F"\xBFQs+6\xBF\x8C\x97\xDC9\x9C\xF5\xFCL\xB4|ュ\x97\xA1{Ѯd\x8A\x9C\xE4|\x8A$6\xE7&N\xB1\xE1\xF9\xB6\x98\xC8I8\xFD
`\xDA
I\xE2\xB8\x98l\x92\xEE\xD8fZ3[4\x9E̵\x83H\xD4\xEC\x9Dl\xD4ǜz[\xC8qN\xE1
-\xA3@\xAC\x81U\x80ޕ\xC6\xFF\x9D\x94\xD5mGg\x91\x83\xE8a\xF3H\xE1@1\x99a\xB4!\x83��(7\xF2\x9F\xFF\xB6Ќ\xFDV\xBA\xD1\xF1\xCA\xC8^\xB6NKk\xAC\x99Y\xC9J\xD6K\xAB\xEEѻ-d\xDBW\xD4f8\xCC"O~\xFF\x8D<\xACa#\xEF\xFFo\xFB\xCD\xCC3\x83o\xCE#\xAAp\xB8\x84\x82#\xA48\xA5B f \xA3\xC9\xC8ˍ\xD3��\x80\x8C\xEB\xAF\xFD\x80\xACIה\xAD\xCB$\xF7v\xEB]z\x8Bn^R\x9B|\xB5}+\xC0��$\x90+;1\xA3@\xA9\x81l\x80\xFEe\x942I\xCA\xEBaU<\x903ţ\xED<ҵM4H0LF\xDFEj\xC0��\x80\x92=ν\xD41{\xA2\xE7Ճﲔ\x89\x8B\xEF\xBB \xB0\x8C\x8F<ЗE\xCD[x\xDF0\x9A\xA4U\x99OyРH|T\xBF\xB2y2%\xAF\x9D\x95\x86\x87\xB3[\x803\xC0\xE2\xF8-ϹKo\xF1|\x9C\xFD\xA5v\x84\xCF_M\xCCNՀ\xAD\xA88K\xA6na\xE4ʛ\xF8-\xA5\x9E\xA1\xD4#\x87;\xF7\x99\x80eۍC\xB7d\x8E��0\xFC\xC1F\xA3@\xA8\x81\x84\x80\xFEe\xA4\xA6H(k$}\xB8]\x90q\xDCP\xB3\xF5
-\xDD\xF3@f\xF4\xAC(����q\xE8m\xEC_\xF5\xAD\xB4V,\xE0hA$o\xBD\xBF7\xC77\xC5\xE0G\xC1\xB5\x80\xB2+X\xD3\xE4!\x8A\xC2nZ\xBC��\xD2B\xA3\xD2ٱ.L\x80\xBC5G\xF1z\x8Fu\xE6\xCAB\xD31ሄ=O;\xDF<2\xAEw\xDA\xF2\x85\xD7V\x8EIA\xCA\xC0\x9F\xA1\x80\x8B\x97\xB8s9މw\xB8zf\x90\x836\xE7\xBAH!\xD52\xDB;1\xAD\xB0w-\x94N\xD55w\xDAw_s\xA2y#��\xA3@\xA7\x81\x9B\x80\xFE\x95ĩ\xFCS\xFF\xB0:kjeԻɈaA6\xA4ohQ\x94����\xD4\xFE\xEC1s̞h\x90\xEA{\xACg\xB4Q\xAA\xD0\xED2\x85\xA4(\xA0\xBB\xB9]Ts;\xE0\xDC/\xA3\xDD\xFFҽ`\xB5z\xED\xE3\x86<\xD1TĶ=\x9A,\xB3\xF8~\xDA#\xDC|\xB2\xBE\xAD\xC6\xED\xFC\xCFN3\x99y\xF2\xE66\xEE\xB6ǰɑh"A\xA9\xCD|\xC7ِ+\x8C:\xFA{\xB6P\xC4\xFC\xE7\xFF'3\xC26:\x8Cr\xEEj\xDD7\xDF\xB4\xF9\x97\xC5Ȏ-n\xA5Lp1\xA3@\xAC\x81\xB2\x80\xFEed\xBAH4\xF1\xF0\xB0]\x90EܐD\xAB��r\x98EF����\xDCJ}r\xB6T\xE2G\x9CjB6\xCE\xC1\xAF\xEB+\xDC\xC3\xED\xA1 e8\xBD\xFF\xAAm\x8E\xAB\xCBY\xE58\xC1ڞ\xF2R\\xB7{\xD7\xF7Fΰ \xBFx{0\xF7\xAC#-š\x8B\xC2h\xA4\xC7+\xE1\xAAL\xD1v
\x9A\x9
55vu\xF4hҭQ\x9DQ\x82\x93--\xF8f\I\xB6\xAA!\xD3\xECϜ\xA7\xAD\x8C\x95\xFA\xFBF\xFC\xEE\xC3(\xEEX8\xECn'z;#\xEC\xC3ǹ\xC2\xF2]ꗳ\x9F\xA3@\xB0\x81ɀ\xFEe\xA4:I4m$-\xA6\xCBZ\x945\xBDct\xA4',\xC8��\xC5DZN ��\xE0/\xE8\x8D\xD6\xC44Y},\xDEr'\xAC{\xFE"`\xE3\xF5bM\xB7<F\xE5h\xE5@)Rs=\x93kMj}?ogo\xC2/<Y3\xE0 \xFC\xA7\x86~\xA0��\xF1J\x82k\xE8}\xB4;\xB2I\xD7\xF7j \x93G߱ ־
-\x99C܄҈\xC7;{\xD2\xC5S\xB7\x92\xBF\x8F\xD57\x97R\xDAR;\xC8\xC1\x91\x81\xEF\xCC\xC9=\xE8\xE8*\x8F\xE2\xE4\xC1\x8C\xFE\xED\xCB\xA8H\xADd0r*A&\xA3@\xAD\x81\xE0\x80ޕ\xA4&I\xE2b\xB5ˊ\x80-\x9B\xF5\xD8Vo9+~\x86\xC5r��\xA5\x87\xB4\xF4\xA7\xE9\xF5K$,\xE7N\xF8kK\x89\x91\x84+\x89M\xCD>#B*\xA9υ\xE2l얌8%\xFBc0\xEC+o\xE7~zE\xE4p\xD6
-\xBDyl3\xE6\xA2.\x9A_\xA1N\xFE9UO\xF3\xF87ۑ\xBB\xB8\x90\xA8\x8B2\xD1t\x90\xD7��\xA4T\xE8\xC3\xEE\xF1qJ\xD1Q\xA5Ǧ7\xE1g\xBFK{\xF7\x9C\xF2hѸh\xBD\x8A\xBB&\x84)}\x8A\xC3\xE7\x8Fˈ\xEA\xAC��\xA3@\xAD\x81\xF8\x80\x96\x94\xBAH2qh\x9F\xB6\xD5"\x8E\xE78:Bt\xC9t\xE4\xAA3����a\xB3M\xCF?\xB7s\xC6\xDE\xF4\xBF?\x9F\xB1\xF1\xCDz|L\xE3\xC8\xCEK\xEFy\xE4A\xACN\x9F\xEE"4[5\xB2\xF0N|\x80\xE0\xF9Y\xEF\xE2\x95L\xCFE}\x88/Kas\xB8\xB1\xC9rbV\xDF;+ؾ\xBB,\xC4\xCD\xC3K\x9B\xBD\x87\x9CY\x98l\xFA$0.\xE2E&\xD1\xFBK\x8C\x8F\x91K\xEF=G\xE9v\x9B\xBA7\xDF\xD5iJ\x9D!\xB9\x92wz䆵\xF2\xD2\xD57\xCFyG\xA3\xF2P��\xA3@\xB3\x81\x80\xFE\x95d\xB2H\x925)/:FF\x8F\xBA\xB6s`\x85T=)(��\xD2\xD1\xEDy|ϼk\xABzN~_\xEF49\x8D\xAC\xF8"K\xD85#\x97\xE5\xBAgz\xC8}.skb^v\xBEŤ\xA9c\x837\xC3gr$\x8B\xADg"\xF7}}\xF1K"J\xC2\xEF\xF0Ȑ-\x83\xC5[~EJm;\xC9¯h\x9E\xF8=Fb\x97\xBFݰڇ5\xE7ň\x8D\xEE[\x81\xE1\x9C\\x9B^N:&?9#(@_\xE7\xAB\xA7⓷\xD3?!\x90Q-Y
-Vؾ\xF3]8\xEF\xA3@\xAA\x81&\x80\xFE\x95d\xA2H\xB2\xFAauƪ
-\xAEG躷N:\xB2n\x90Ƅ\xA1\xA1��\xF0\xDC\xFF?\xECi\xAE\xBF3\xFFi\x8F\xFF13\\xB7\x857\\xBB\xFD\x8D@u'\x98\x9C\xE1\x96ƈp]\xB5\x9C\xE5\xD2E\xAAq\xF7!\xB2\xB1\xE1\xA8,\x{C09BED}\xAD\x8C-\x83\xC9\xFBZ5ii\xF9\xAD\xD1\xFA2\xF8^\x9C\xB2\xF7\xCF(\xB9\xC9D˞)\xCC0r\xE8\xD8`W-Ĵ\xA2\xE1\xB7F\xB8\xE7\xBF\xF6c\xDD\xC0C\xA1\xD5x\xB8>7R\x92n\xFF\xA3\xFD\xB6|\x90;\xBB\xBA7\xB9\xDC|\xED����\xA3@\xA6\x81=\x80\xFE\x95\xA4\xA6\xFE\x87\x89\x8Bi5\xE3\xBAa\xB2m\xE7\x8E#\xBB\x8B1\x91\xCCT ��xir%ܶ\xB4\xC5\xEC?\xBE\xD5\xF5\xFD\xF5\xB3\x93\xCD=\xB3u7\x93\x90w\xCC\xD3\xE8\xA2XPgl Ռ\xE6\x85\xE1M\xED\x9E\xE2T\xFA\xF9\xF9vX\xF7\xC4-\xDE!\xEE\xDFV\xAB}\x9B\x98 \x8A쨽\xFB\x8B\x89_:I\xA3R\xBE&\xE9 WL\xCCe\xA0\xDB;a\xE497Y\xCA=\x97\xD6\xDF(I\xFAu\xC5\\xEC\xDE\xD2;\xA1\xE0\x96ʜy[-D'\xA1IB\xBAH\xB5u��\xA3@\xA7\x81U\x80\xFE\x95\xA4\xBAI\x98\xD7Ȩn\x97 6\x84\xD3+\x9A:3\xA3\xEFB ����xM\x87y\xF6I\xC3ɿ:\xEFα͇\xD1\xF3\xC9\xDB\xEB\xA9?\xFA?95\xE2\xC1ʎ\xE5?B\xAC\xA6\x8D=\x85\x8F,\x
E5\xDD
\xD7l\xE0\xDÃ\x80\xD6j\x86 3"h^\xCD
-\x81\x84,LRQ^\x85\xE8Sm\xE3\xF5/DO\xA8\xEFm��\x9F\xC9=\xAB M\xA58"\x89\xCA\xE9"S\xF4v\xADv)go\xA1ç\xD3\xFF\x99^)7my\xDA>e{\xF9ZK6\xCF\xE1\xA3@\xA8\x81l\x80\x96d\xACI\xC2\xEDr[-8:\xC479\xD4v\xC4IJ =ϔj����\xBC\xA7;$\x86|+\xA7\xAAY\xF8\xFD\xB0a-\xF4\xA9.J/T\x98q\x91\xB2(\xFB\x9Fh\xA5\xD4\xEA)R_\xFDC\xEB\x92\xDD+\x84\xF7=dV\x90\xE22X\xA9cHà\xE6-\x89\xF5L\xE4 \xFA&523E\x92\xD35E��"Y\x9F\x86\xB8`\xE0QJ\xBF2LK\xF1\x91\xE3\xED\xC1\x8C\xDC\xF9} \xC3
-\xF4.\x8D\xBC)b\xAD\x8E\xFD\xF7\x9E\xDArK\xFD\x93\xDC+$3\xA3@\xA1\x81\x83\x80\xFE\x95ĺHL\xED\xE12-&\xD8X\xF6-DF!\xA7\xA3V����z\xBE\xA1E\xD2\xFE\xB1\xB0\xD1\xE4\xBF\x8A\xCA[\xB6{@NMN
-\xFFy\xE5-\x87\xC0\xD9M\xE8\xA2\xD5<\x9Ci\xF4\xBF\xFB\xE9\xBFE\x93\x84iI\x91\xBDy>\xBE'!/6\x90!K\xF0\x81V"s\xB0\x9Cb\x88\xEFX\xB5&\xB4\xD5\xC9.\xA7\x85~\x9B,2r\xCFAɃ\x8E\xB1ձ\}:\x8Fnd\x9C\xC8>\xA3s\xE1cm
-\x91\xDA\xF7\xF26n\xA1\x9B\xFEه\xE4\xDB߄\xA3@\xA9\x81\x9A\x80\xFEe\xD4\xD2H\xCC\xF9H\x97\xD6.\x8B8\xE3\xB8Yw=g7#\x8A)!\x99\x83����P9\x89b\x9F>\5\xFC\xD6z\xFC\x9C\xB2i\x8F=\xDFN_\x8D,e\xA7 0\xDCO\xD7+D.(tSt\xBD\xA7\xD6G\xB0\xC9\xEEr\xCC\xF1\xE9\xA4C\x843s\xDE\xE6(\xD6J\xCDН\x9D`\xD28T\x89Q]\x89\x8D\xDF\xE2\xD1\xF1\xD6\xFEd\xD7+ \xF2\xD1q\xEBo2Gd\xF3\xC5\xF86\xB2;\x86,\xDB\xC6 |\xD46\xC0\x8A\qط\x9BN\x9E\xF4\x92<s\xADK>?J��\xA3@\xA8\x81\xB1\x80\xFEe:J8\xEAHZld7\xD4N\xC6\xE8\x88vD\xA6\xB1\xA9\x8BT`����f\xB5\xE8W\x92\xE5\xFF\xEB\xC6c<\xFC\xC9_\xFFkլ\xF3wZ\xC3\xFA\x88\xE6h\xB3\x98\x97JV'\xE2h\xFD$\x8C1\xED\xD9J\x99H\xF9\xC4,\xC2\xF3r\xEB\xC8yG\xDA1=\xAD\xC3<4\xB9\xECL_5zjfh\i^_ܔyĥ\xC3\xD2\xF6\x97\xD0t\xB59\x95&\x8Eh\xD0Ng\x93K<\x89hΛ\xDC \x86\x9A\xB8t\xE2s\x97-\xE6u\x8DG\x8D\xC0Ĕ\xA7Q\xE4G|\xFFE|䔻 ��\xA3@\xA8\x81ɀ\xFE\x95ľI\xEBQ8\xE9B\xD8\xE9@n?D\x87\x883(\x9E1d\xA5��\xC0\xA2\xED\x88\xFF\xC1K\xFB\xD1szs\xBB\x89\x886\x8A[\
xE6V\xA
BO\x82��\x94\x82JHw\xA0$3\x86\xEAxB\xD4\xF8搮C\xBF\xF2tM\xC4w\xB3\x96{]L+ѿ\xE0\x99\xC2W"\xF3\xE0\xE4(\xE7\xA2jN\x88\xE5!\x92\xF2 *\x92\x82\xDD\xD1;#\xC4#9\xAECZ\xF5\xEDӃdj\xF5\xDB"\xB3\x82F1{5\x9Dan\x8CZBm×\xC3Ïm\x98oJ��\xA3@\xAF\x81\xE0\x80\xFE\x95\x942J\xCC\xB1:c6\xB4¼Gf\xEC\xA6o2��\x80\x86\xA0\x9C\xC0����\xCAL\xABn}\x9D6;
-P\x94i\xE4\xAF\xEA\xCF0X1\xF7\x97\xBE\xFF\x8E\xF1\xBF
-\xA9\xE6\xD1\xC4a&$k\xD6Si\xCA&\xCD\xECjC\x968\xE2\xF1f\xB2,\xB3\xB1o\xCB\xF5ϕ\xA5\x9E\xB7\x96\xBC\xACX\xCA ~Ö?\xD5\xD2\xD9\xF0*\x91\x93ݷ\xCBN\xA5��\xEDz\xE5\xB4\x89hH'\xF7\x9E\xF4i\x92{ǎ\x90N\xA6\x87l\xA9Tra\xB3\xC3\xFA\xF2经7G\x8DI\xAF\xC6��\xA3@\xAB\x81\xF7\x80\xFE\x95ĢIN1\xA2\xF3\xF50 86\xEA#2"\xCCOZ8��T��@\x92vږ-����\xD0\xC5\xFE+\xB2w\xB8vB\xAC\xE66\xEE\xAD\xEC\xB1+\x8AG)\xDD\xDE\x9E\x92z\xF3\xEAr\x86\xFChn\x8F;Ԍ\xCF\xC1\xAAGY\xED$ҕ\x99d\xBE\xEF\xBD4\xB7s\x8E\xBB¸\xAER\xB1\xA8\xC2L\xF6\xB7UB&}\xFC\x93\xB6
-B\xFF\xA7\xEBa\xFFC\xCA\xC7]m\xAF\x98\x95\xF2F\x9Fi\x93\xD1I\xE4\x80_\xB3\xAD˦wn\xDBt,\xD8\xE6 \xDB\xFD9\xC1\x95\x9B\xCCނ)\xA3@\xA7\x81\x80\xFE\x95\xA4\xBAJ\xB45\xE2\xE1\xF60\xC2ц\xE6\x89͞\xC7\xC6(.E��\x80\xB3\x9Fa\xBD\xB3ڝmۦu\xF4\xD6`s\xD7\xAE\x9B\xA9\x96\xD7\xACU%(ř\xEA
-h"\x99\xF0\x9A\xA02BAM\xD59;\xB6G\x848N\xB7]|qXs>iTSU\xE6}\xC1\xAA\xD7\xFFp\xE2s\xCA%\x82+{
-\xEF`\\x8F\xDF=.7\x8D\xD4\xE18\xA0\xAD\xADqZ,\xFEl\xAFY\xA7\xE8\xDB*\x85D\xE2\xAE\xAE\xF3\xF7m\xE8\xB4\x86\xD7w\xA3@\xA0\x81&\x80ޕ\xA4\xB2J\xCC\xFDbq\\xC0I\x8B-\x8F\xA6m[\x80n\xA8B\x852`����\xEA+\xEBɨ\xA4\x87\xA5\xBC\xBD\x9F\xEA\xA69*$\xD4EC\xA9\xF2\xAC\xA5Kc \xAAt\x9C\xC0\xF4\xABSE\xA4\xB8%\x98\x97#\x91\xE2\xA8\xF3\x87/,\xE5^̓iE\xD9\xC9_/\x85.\xF0\xF6\xBDa&%،\xD3\xFE_\x81Yzd;\xBF\xC8=\xF2YJ\xBA\xCB\xC2\xDF"\xBA\xF3\x94\xD5lǽH\xBAK]\xA1|}\xC7\xEDz;>5\x88\xF2"!\xBDF\xA9����\xA3@\x9A\x81=\x80\x96d\xBAI\xCE\xE3R:\xC7\x9A\x9B\x9E#\x8D\x86\xACAK\x94\x92\x90Z\xA1��P|M\xA3\xD9\xF1\xAD\xA3ǐ $\x92^H\xE6B\xBC[.,m\xD2_\xE7U\xC8\x83!\x860\xC9\xD4#\xCB6$\x95[b4\xCF\xE9\xC8WC!J\xAAl\xAB\x8A\xA1"Ա^\xCF\xE8M3B\xA9j\x89V\xA9C\xED\xC3 \xE2y5g.&\xCB\xD0\xC9H\xB2\x9C\xE8s?\xFA\xAA';\xC1\x95n\x91\xA3\xEA\xC9B\xFD=k\x9F\xEC\x8E[&��cr\xFD&��\xA3@\xA3\x81T\x80\xFE\x95ĮK\xCC\xFD\xE2r{\xC1\xD1\xF3\x8A\xB9'\xA0ճ\xC5&\x
A9\xD
B&ۂ��\x9C\xEBb%k\x92S\xF1\x90tN\xB7GT\xE6*}D'\xFEq\x931b ��Q6DqAW\xAB\xAAZ\xF6\x9E.\xB1,\x85\xA8]Z\xAA&\xFB\xDC7fO\xE8\x8A\xFB}<ʥ\xA7\xB2\x999!\xA2\x8FU#\xDF\xEE\xC8\x8CL~\x86\xCC\xD6\xDD_\xB0\x8E-\xF0\xF2A\xC3}\x88Ī\xAD\xDCÒ;\xA9\xEF|med\xC9^\xFDX\xC1\x82!\xB3?\x8E\xC76\xAFUe��\xA3@\xA3\x81k\x80\xFE\x95\x94>\xFDs\xBF\xF8p\\xC0F\x87\xDE\x99=\xA2\xA7\xF1B\x8EP`��@\xF1\x9DG\xA2\x821\xF24=<8\xF3ω\xD7\xD7\xEDg\xB6G\xC7+\xD7\xF8\x9C{\x87/\xA1\xAA��{Iq
-+i\x8F|\xBAM\x88o\xC5\xA6\x9B\xFA\xC2ǣ\xFE\xC8\xF52\xE4\xD8\xF9\xF4\xC8딿b\xCFAq+\xCA*\xA3"\xCD6\xA7'\xE3\x92\xD6v(\xF2\xD9[I\xFB룐譀\x9B\x9C\xBB\x98.\xDAs\xA2\xCFxY1ʦ1>3\xE2\xB1f&\xF5\xF6\x90\x8F\xD4\xF2\xC8YYK��\xA3@\xAE\x81\x82\x80\xFE\x95ĦIڶG\xA9\x8EUN+\xF7\xBC\xB3CA1\xD1+.e\xC0����\x98\xFD\xCB7\x9B\xF3\x9E\x94s\xF7-\xFC\xE5n\xF3\x97C\xF9ӵ\xF5\xA9a\xD6G\xB2\x90\xB0`vZ\xAA\xB5 \xD6\xDF>~MH1^u\x9F(\x8F\xA56s\xCA7\x8A\x97\xE9jy\xEB\xA8's\xAE\xA1p@\xA2e
-&\xAE\xB1\xF91\x89Z\xC1\xC5@r\xDB6H`g9\x9DI\xABb\xC5>#\xBF\x81\x95\x95vTk*D\xD3\x94\xF2\xCFCl\xBF#\xDAi\xA6϶tq\xFA\xFC\x8D\xFE\x8AX$\x9C\x81U\xAA\xB2\xB2����\xA3@\xAA\x81\x9A\x80\xFE\x95d\xA6J\x98\xFB\x88\xDENgG\xB4]Q\x8E\x95M\x834\xE9\xD9V\xA3��\xFC\x8AIu\xF7帿\xA9p\xBFs\xE6\xF5\xFF\xE3y^$I]A۾\x86\xE9\xF1\x927\x8Bk^*&\xA3\xC5m\x98\xF4M\x8C\xD6 \x8BE}\x84Z}\xE4\xD9\xF3#\x8B\xA5"@h\xC7*\xAE\xAE\x83\x91E4\xA9\xFB\xD7E\x99\xD48\x9DT8\xE2\xC3\xD3\xD9\xE6z\xD4\xE3)\xD9\xE43\xEC\xC8\xA3\xE9'\x933\xF14\x9E\xE4\xD2o)Y\xB6\xB1e\xE1\xA9n\xBFR\xC4\xA8\x9D\xB6\x9Bn\xE8U-15\xB9K��\xA3@\xAC\x81\xB1\x80\xFEe\xA4\xBAH\xB2:\xE2r\x97d\x8A\x98w\xD4\xBD\x8A\x89\xD1w!,`����&{Ev\xBFq\x9A1\xAF\xEE\x9A;\xC5\xDB\xE8\xEE\xF8\xAE$\x99\xBF\xA1\xF2\x8F\x8Eg\xAD\xA2 4\x93\x9F8D\xEA\xE9\xB9\xE5[\xFFo\xA5WZtT\xB5\x82z\xF7\xE4\xA1Z\xCAڔ\x88&1\xD6\xED\x8A4vҨ\xD6\xF6\xFB\xF4&\x9Aw!%\xE8\xD6UE\xB0\xD4a\\xD4Mx\xFC\xEE\x80\x97T\xCBЮb\xB6l[\xC1l
ʸ\x
EE8\x9B\xBF\xBE\xA2Kn\xC0\x9E:,w\xA9@WO\xA3@\xAB\x81Ȁ\xFE\x954I\xB6~I\xABV\x8B\x98cDo\xB4zb\xADMfX\x94\x92!يbP��8\xED\xFE\x92[\x9Dw\x9Fy\x99\x83\xCF\xDB:\xBCg\x86\xF5\xDCep\xD4i\xF2\xCA}\xBA<\xCD\x98C\xC7\xFC\x98ʟzx\xE7\xE1]R.\x8D\xA8;\x84\xA5\xB8`\xE5\xDB}O\xA30m\xAC\xA0\xE5\x{12A438}*\x86\x90\xF2:\xA3R\xA0\xCES\xED\xD1G\xC0@~ \xA8ؕ{\x9E\xA5\xEA\xB8s\xF2\xA4Ҭ\xCEb\x81-O\xA3M \x81\xA5\xEE\xB1\xE9\xF4\xE51)\x9CU\xE8
-o\xDC&\xC9$\x8A1\xA3@\xAC\x81߀\xFEeĺJ\xCCk\xA4u\x9E\xE9\x85\xE8t\x9D/!\xB3\xEE\xE1\xD8h3iA\x98&\xC9A\xC7��\x80kzb\xF6[뾻\xAC\xC9>\xEB\xA0%j\x82\xD5+\xBB\x88\xA7\xF8\xFA"\xEDN\xED\xCBI\xFC@\xF9n\xCA\xE4\x9D\xF8\xE0\xDF\xE6o\xBE?\xDFV)\x835}k\xED~\xFD\xF7\xBC\xBA\xC8\xF3\xBA\xC1\x84UV\xB9\x96!\xDF
-#\x9E\xB5H\xA86N��\xEC\x81 \xCB|dwF A|#<\xF3Њ\xE5G\xC1\xF5Ø\x97}v\xD7RएF\xDA\xAD\xABj\x89\xF6\xEF\xAA\xE1\xA3@\xAD\x81\xF7\x80\xFEe4\xCCIJrħ9^g\x8D\xC7\xF6\xAC6u.{X(dcȖ\xE4\x81��\xBC\xE6h\xD6\xF3{\xD47\xA7\xFA\xF4\xDD*] \x9Eµ\x8F\xBD\xF4\xA7՜\xAF\x8824\x891\x93\xF7\xE8\x95\xD9\xFB\xEE-\xB1ӓ\xDFf!\xE3\xE7\xE1\x88\xCBn\x98\xE44\x9C?\xFC}kOG\xA8s\xDB\xC0\x9C\xE8i\x81\xB7}\x82\x9AJaF\xA7-ɬ\x92y\x94nGK#F\xBBM\x8FN\xF4\x9A\x9D\xB1͈,\x9B\x99 *5\xB9*%\xFB\xFBhlE\xAD\xB6\xC3\xC4\xD0m\xA8��\xA3@\xA3\x81\x80\xFE\x95\xA4\xACJ\xE2P:\xC7b\x82\xA3{\x8FQl\xC6\x84\xA0\x99Aɴ\x8AsA ��0\xFD\x9C\x93Ɲa\xDA\xFE\xD9\xEB\xE9\xBE*\x87\xBA8\xDDj*\xCD~Ձ\xEC\xE4 \xAF\xA6Y��\xB9\xC7x\x89c\xE2\x89|I\x98\xCFz\xB0"rBԴ\x9E\xB9\x9F\xCA"\x95U)ف\xAAG\x99\xFA\xFD\xC4=\x87a\xA7d\xB2l\xA6\x80\x82 &ktVB\xF3\x{151C71}L\xBFYA\xB4\x9AD"\xF7\xF33\xCDBo\xC5~\xA7.7\xF5\xABUxCk\xA3@\xAB\x81%\x80\xFE\x95\xA4\xA6I\xCC\xFC\xA1\xF7np\xB4َ82G
\xA3
%I\x9D\x99dE \x80
-\xA7\xEE\xF6\x99Kr\xDE%\xB5&3\xF4\xD9t\x94\xA3\xC9~\xEE\xFA\xA4\xE4\xAC\xE1\x9C\xE1\xF0M\xBFu7\xEA\x8E9\xA8\xDB\x8FH\xAF\xD5{L\xA1\xD7Dg\xA22{jĠ$Dm\x83\xDBmY\xAE\xCAq\x8AZ\x84\xF1\xB5\xB5\xCE
-\xC6Z\xCEU\xC0 \xF4?\x9D\xD0\xE1\x8E\xF2oPF\x9C\x96\xAA1\xA5z\xA7TC\xAD\xC5\xF59c_\xB6\xF0\xF4isq$\xEE-;\xB1}\xB6\x9B+Yڲ\xE1u\xD8sH��\xA3@\xA9\x81<\x80ޕ\x84\xA2I\xE2\x81S\x88\x9D\x8E\x94{e\x8A\xAD\x85\xA6N��\x8A\xF1\x94at6��\x80\x9A\xB9.-Y\xA5/\x87\xCD\xFB~\xE1\x8E\xECR_\x8B-\xF7@\xBCi\xD0\xCC\xEA6\xE7\x94j`\xB8N\xA4\xBF*O=\xA2\x8C\y\xFDC:\>̽\x91b\x89\xA4\xB5lζP\xFCI\xB6w9W\xB4\xBA\xD2I\xB1\xF0'qp\xA9BU\xC5D \xDCI4_o9\xB2Cϵ\x8B)\xF2L\xE9\xB3\xF4
-\x84a\xAD0\x81:\x91`\xCA\xF8\xB1\xF0\xF9\x80\xF0\xBA7\xB3ϊ1��\xA3@\xA7\x81S\x80\xFEed2I|\xC7\xB2\x88\xC7at\xCCv\x96\x83\xA4\x94\xCC\xF4\x9D\xC0��\x80\xF2\xE4\x9Du\xC6e/\xF5'\xA1\xAF|\xEA\xA61׃&\xE5:U;\xD69\xE2\xEF\xB8 [\xB9\xD1Y\xB0Oyb\xB5\xA8\xF08\xD4/㶅p-
-\xB5\xA5R7U_\xA8\x97\xC8 eҔc\xA2\x81\xEE?ĭga%҆\x81\x89\xC2 =\xAD\xB2Z\xBA\xAD9\xF3\x92$G,\xBE\xD2\xDDn\xB7U\xD4\xE43_\xF1S⩩\xCCf\xE4\x89\xC6W\x90fڈ\xFF\xA4F\xD2\xC4L��\xA3@\xB1\x81k\x80f>JkD5\xE3\xA5\xC6E\xE6xm6\xEA\xCE\x84EX\xFC\x90rT\x82��\x9CK\x8E\xA8\x87ir\xA5\xA6\xEEH\xAEͤ\x9A\xAF+*N'\x8B\xD2\xA9\xC9:\x97\xC7h_5V\x98\xAE\xD6\xF0Z\xC1=\xD7K\xED\xBDcV&\xD8&?\x8A˽\x91\x8CS\xB8L\xA6\xA25Kȑ\xA4.ص%\xE6C"9\xFC9no\xD0\xE6\xD6\xD8\xFF\x90n\xDC\}.]\xB2\xED\xBCO\xD8K\xE7\xA6R\x80\x8FS\x8E\x98_ʀ\xE4\xDB^\xFD\xCD\xFBi|\xC9\xE2\x8E\xF9\x87\x99:'"l\x83\xCF\xD2<(\x9C,��\xA3@\xB0\x81\x82\x80\xFEe\x84\xA6J8\xCE\x9D\x9D2\x8AGcl\xD7\xE1۵$\x8AI\xA8��\xE0\xFD\\xDBk\xFF->I\x96\x8Ay\xC6\xC37y6\xA6\x87\xDC\xEBr\xA7\xAE\xB8\x8B\x9E\xA3t\x87\xB3N\xCBfU\xC2\xB1\x8A\xDEo\xB9\xB8*m\x9F��GV\xCBL$˥%d\xCFk\HY\x93\xBCC\x9Bqߑ#\xFB\xAD+\x9A\x9E'\xB2WH\x8BW\xDCR\xC6M\x9AW\xBB\x8A\x89\xCC\xB1\xE3!\x96Ƶ\xE3\xF7\x995G\x85\x85b\xDD\
xDB=
=\xD2R\xCCѥ\xED\x91Y&Gr\xA3*A}\xF4V(\x8D\xC9;\xA3@\xA8\x81\x99\x80\xFE\x95\x84\xB2I\xCCbb\xF1\xB5Xpqh\xB9e\xC6j\xE8-u 3=ߎ\x8EA ��\xA0I\xD6\xD8\xFAq\x86\xCC\xC7\xF5\xF2Ԃ\xA8Mm>\xBD\x8DaԱ\x9A8\xBC\x8EKq
-\xCB-\xBAcn\xC0MQX-\xCE`\x8D-\xC1\xCD$$w\xE8
-\xB1\x87\xADy\xB7\x95=l[\x90A\x9E\xB29x}y\xC5I\xEE\xB9ȩB\xC3b\x9F\\xB4\x99\xA9_<J\x9D\xE8\xB9|\xCB\xF87\xCBf\x9F#\xF5\xF0\xD2\xDDKɗ7߶)C\x9DC\xF8b\xC7-N\x92\x97j\x8Bi"\xA3@\xAE\x81\xB0\x80\xFEe2I\xDC\xF8C\xE7\xE92\xC4-\xC2QȖ2\xC9\xC6\xCF\xE8\x94`����\xBD\xA7\xA3#\xFE\xEDw\xA2\xF3\xE9\xDE|\xEC[o\xFETM\x92\xA6P\xDA\xCC#GVMf\xCF\xD9\xFF\x81\xC6\xF4\xDAiN\xB29X\xCF\xCD\xF8\xC6DzΔ$\xC3\xE76^\xE7\xCFT\xFE$\U~\xC4pB\xAB?\x90~\xE7\xAA\xC3\xE4a\xA1&\xE8\xE7\xC0\xE4'\xAA0\x9E+\xF9\xD9\xC7(DN\xA1wz\x91\xEA\x82 \xB7\xD6\xFCd\x89\xEC\xBCQ?\xAA\xA9\xDF4\x9D\xF7w+\xCDڈO\xB6\x83
-\xE2̇\xBD\x8C\xCF2\x95\xA3@\xAA\x81ǀf\xD4\xD2KĈ\xDE\xF4R\xC3\xF1\xD8\xB5\xEE\xDDz\xD12\x80J =\x8F\x832`����T~i\xB7\x87\xC4ʻ\xF6\xD1c\xB4\xFBZO\xE5\xDAY7L\xA2z\xA4deT\x98dA3Zt>$\xF4\xED\xB9\xCF\xD5.\xC1j}gEL\xE8p\x89-\xA2θ\xF3L2\xE0\xE0\xF6\xCA/G\x8B\xB1\xDBG\xB1\xE2%w\x92Ы\xCC[\x99\xFC\xAF?DCv;eE\xC7\xC7\xE6\x91\xE2\xA5p3\xDAJo\xD7\xC0\xCDwD̖\xF2\xF3>\xAD{\xE8\xDBaɾ\xB4U ��\xA3@\xB8\x81߀\xDEe\xC6\xFF\xC7H\xF40:b\xA3_\xE6Թ6۠ =/R\xAB\x9B\xB4����\xC4{NqF\xFC\x8F\x96\xDA\xFA3\xD1\xD3TѶ\x81ѕF_]g\xB1\xDEH\xCAt\xFC5$\xE7ʴ\xE6|\xE9͉Z\xD8\xCE4 \xBE\xD6x\x8C\xE0Ȑ\x84\xDAS\xA5\xC2\xE9;b_]Y\xB9\xFC \x8Ei\xDC4\xE2W>\x9F\xC2L\xFA'\xB7h_\xA1\xDB\xFD\xA0\xB0\xEE\xFD\x99\xE9\xCF:%<'\xE3\xEB v\xD8-\xF4ȅ\xA5˾\xD5]\x9B]\xB56q\\x9FZG\xE7_B\xB0\x95o\xE6\xAFƱ0\x94\xF4\xA4\x8E;��\xA3@\xAB\x81\xF6\x80\xFE\x95d\xAEJ8\xEA\xB78\xBA\xBBq\xB5\xC8X\xBB\xE0��\x85M\xA8hJ��\x80:\xBB\x9F\xA9\xFEI\xBCc\x87cV>\x8C\xB7qM\x93\x9AV\x80\x
AB\xE6b
\xFF+$\xA59\xCD\xCCŐkx\xDEO\xD7\x99\xF2\xF8۠\xAA\x9C\xC0Y\xBF\x8EX21\xE95\xCB\xFDpV-\xA5\xA8\xB7W\xE4r.\xCFQ\x87\xA8\xF8\xAC\xD5\xF4!\xB4\xBDE\xF8\xE3\x98\x82\x93;I67/\xE3\xA5\xC0\xB0\xBC\xB5Oi#\xAB\xE2\xCB=4/\xD3%@\xEC֜\x86\xB9e)\x9B\xCE۽\x97\x9ASe֖\xA3@\xA9\x81-\x80\x96\x8C\xA5J(\xE3*^F\xAA$\xAA\xF3уycz\x8C\xC4\x80\xCCbzЁ��\xF8\xFF\xE5[\x92n\x89W9a\xA9\xF6\x8EtZ\xDF\xF0\x97B\x82\xE6\xF1\xBA\xA8+\xA3Xs\xA8sN{0\x81\x86ա\xF8\xF5S'\x9B\xA5\x8B\xF6\xA5}Q\xA3Zk\xADծ\x87\xA6\xDA\xCF:\x9Bq,X4\xD5P\xBE\xD3\xF4\xD9\xCA\\xE1*\x82
- ��\xA1\xD9:\xE7j\xF8p\xB6\xEFy\x86%\x96JJi?\xBD\x93UTmk\xCC\xD2k��fX^\xAE\xF2\xCA-\x80\x{14FDBC}\,\xAB��\xA3\xE9\x81$\x80>\x96\xFC\xE7Y\xBE\xA86��\x80\x97H@F����\xAA\x83\xA9j*\xEBG\xE6&\xBE\x8C\xD85vv\xB4h\xE4^\x8EW\xCFs9y\xA9q\xB6\xA6N.P\xAE\xAD\x89\xAD'\xD4\xFAc\x9A6#6\xB3=\x99ߗ\xC0\x9AK\xDAZ-\xF8\xD9`;\xB7\xD9}/"\xED%\xA0U\x81\xDB\xFC\xBD\x98��
\ No newline at end of file
Deleted: branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/media-vorbis-partial-expected.txt (279416 => 279417)
--- branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/media-vorbis-partial-expected.txt 2021-06-30 16:43:28 UTC (rev 279416)
+++ branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/media-vorbis-partial-expected.txt 2021-06-30 16:43:32 UTC (rev 279417)
@@ -1,12 +0,0 @@
-
-RUN(video.src = ""
-EVENT(sourceopen)
-RUN(source.duration = loader.duration())
-RUN(sourceBuffer = source.addSourceBuffer(loader.type()))
-RUN(sourceBuffer.appendBuffer(loader.initSegment()))
-EVENT(update)
-Append a media segment.
-RUN(sourceBuffer.appendBuffer(loader.mediaSegment(0)))
-EVENT(update)
-EXPECTED (sourceBuffer.buffered.end(0) == source.duration == 'true') OK
-END OF TEST
Deleted: branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/media-vorbis-partial.html (279416 => 279417)
--- branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/media-vorbis-partial.html 2021-06-30 16:43:28 UTC (rev 279416)
+++ branches/safari-612.1.21-branch/LayoutTests/platform/mac/media/media-source/media-vorbis-partial.html 2021-06-30 16:43:32 UTC (rev 279417)
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>media-vorbis-partial</title>
- <script src=""
- <script src=""
- <script>
- var loader;
- var source;
- var sourceBuffer;
-
- function loaderPromise(loader) {
- return new Promise((resolve, reject) => {
- loader._onload_ = resolve;
- loader._onerror_ = reject;
- });
- }
-
- window.addEventListener('load', async event => {
- try {
- findMediaElement();
- loader = new MediaSourceLoader('content/test-vorbis-manifest.json');
- await loaderPromise(loader);
-
- source = new MediaSource();
- run('video.src = ""
- await waitFor(source, 'sourceopen');
- waitFor(video, 'error').then(failTest);
-
- run('source.duration = loader.duration()');
- run('sourceBuffer = source.addSourceBuffer(loader.type())');
- run('sourceBuffer.appendBuffer(loader.initSegment())');
- await waitFor(sourceBuffer, 'update');
-
- consoleWrite('Append a media segment.')
- run('sourceBuffer.appendBuffer(loader.mediaSegment(0))');
- await waitFor(sourceBuffer, 'update');
-
- testExpected('sourceBuffer.buffered.end(0) == source.duration', true);
-
- endTest();
- } catch (e) {
- failTest(`Caught exception: "${e}"`);
- }
- });
- </script>
-</head>
-<body>
- <video controls></video>
-</body>
-</html>
Modified: branches/safari-612.1.21-branch/Source/WebCore/ChangeLog (279416 => 279417)
--- branches/safari-612.1.21-branch/Source/WebCore/ChangeLog 2021-06-30 16:43:28 UTC (rev 279416)
+++ branches/safari-612.1.21-branch/Source/WebCore/ChangeLog 2021-06-30 16:43:32 UTC (rev 279417)
@@ -1,5 +1,37 @@
2021-06-30 Alan Coon <[email protected]>
+ Cherry-pick r279382. rdar://problem/79970297
+
+ Unreviewed, reverting r279250.
+ https://bugs.webkit.org/show_bug.cgi?id=227499
+
+ Sometimes causes YouTube audio to cut out
+
+ Reverted changeset:
+
+ "[Cocoa] Last few seconds of 'audio/webm; codecs=vorbis'
+ appended to a SampleBuffer are not played"
+ https://bugs.webkit.org/show_bug.cgi?id=226069
+ https://commits.webkit.org/r279250
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2021-06-29 Commit Queue <[email protected]>
+
+ Unreviewed, reverting r279250.
+ https://bugs.webkit.org/show_bug.cgi?id=227499
+
+ Sometimes causes YouTube audio to cut out
+
+ Reverted changeset:
+
+ "[Cocoa] Last few seconds of 'audio/webm; codecs=vorbis'
+ appended to a SampleBuffer are not played"
+ https://bugs.webkit.org/show_bug.cgi?id=226069
+ https://commits.webkit.org/r279250
+
+2021-06-30 Alan Coon <[email protected]>
+
Cherry-pick r279365. rdar://problem/79969742
Enable Probabilistic Guard Malloc for RuleData and RuleFeature vectors
Modified: branches/safari-612.1.21-branch/Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp (279416 => 279417)
--- branches/safari-612.1.21-branch/Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp 2021-06-30 16:43:28 UTC (rev 279416)
+++ branches/safari-612.1.21-branch/Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp 2021-06-30 16:43:32 UTC (rev 279417)
@@ -284,13 +284,10 @@
Status Read(std::size_t numToRead, uint8_t* outputBuffer, uint64_t* numActuallyRead) final
{
ASSERT(outputBuffer && numActuallyRead);
- if (!numActuallyRead)
+ if (!outputBuffer || !numActuallyRead)
return Status(Status::kNotEnoughMemory);
*numActuallyRead = 0;
- if (!outputBuffer)
- return Status(Status::kNotEnoughMemory);
-
while (numToRead && m_currentSegment != m_data.end()) {
auto& currentSegment = *m_currentSegment;
@@ -629,12 +626,6 @@
m_status = m_parser->Feed(this, &m_reader);
if (m_status.ok() || m_status.code == Status::kEndOfFile || m_status.code == Status::kWouldBlock) {
m_reader->reclaimSegments();
-
- // Audio tracks are grouped into meta-samples of a duration no more than m_minimumSampleDuration.
- // But at the end of a file, no more audio data may be incoming, so flush and emit any pending
- // audio buffers.
- flushPendingAudioBuffers();
-
completionHandler();
return;
}
@@ -1226,17 +1217,16 @@
ASSERT(sampleCount);
if (m_packetDescriptions.isEmpty()) {
- m_packetBytesRead = m_partialBytesRead;
+ m_packetBytesRead = 0;
m_byteOffset = metadata.position;
m_samplePresentationTime = presentationTime;
}
- if (!m_currentPacketSize)
+ if (!m_currentPacketSize) {
m_currentPacketSize = metadata.size;
+ m_packetData.grow(m_packetData.size() + metadata.size);
+ }
- if (m_packetData.size() < m_packetBytesRead + metadata.size)
- m_packetData.grow(m_packetBytesRead + metadata.size);
-
if (!m_currentPacketByteOffset)
m_currentPacketByteOffset = m_packetBytesRead;
@@ -1257,9 +1247,6 @@
return status;
}
- if (!status.ok())
- return status;
-
m_partialBytesRead = 0;
}
@@ -1334,10 +1321,8 @@
ASSERT(!m_packetData.isEmpty());
- auto fullPacketBytesRead = m_packetBytesRead - m_partialBytesRead;
-
CMBlockBufferRef blockBuffer = nullptr;
- auto err = PAL::CMBlockBufferCreateWithMemoryBlock(kCFAllocatorDefault, nullptr, fullPacketBytesRead, kCFAllocatorDefault, nullptr, 0, fullPacketBytesRead, kCMBlockBufferAssureMemoryNowFlag, &blockBuffer);
+ auto err = PAL::CMBlockBufferCreateWithMemoryBlock(kCFAllocatorDefault, nullptr, m_packetData.sizeInBytes(), kCFAllocatorDefault, nullptr, 0, m_packetData.sizeInBytes(), kCMBlockBufferAssureMemoryNowFlag, &blockBuffer);
if (err) {
PARSER_LOG_ERROR_IF_POSSIBLE("CMBlockBufferCreateWithMemoryBlock failed with %d", err);
return;
@@ -1344,7 +1329,7 @@
}
auto buffer = adoptCF(blockBuffer);
- err = PAL::CMBlockBufferReplaceDataBytes(m_packetData.data(), buffer.get(), 0, fullPacketBytesRead);
+ err = PAL::CMBlockBufferReplaceDataBytes(m_packetData.data(), buffer.get(), 0, m_packetData.sizeInBytes());
if (err) {
PARSER_LOG_ERROR_IF_POSSIBLE("CMBlockBufferReplaceDataBytes failed with %d", err);
return;
@@ -1358,7 +1343,7 @@
}
auto sampleBuffer = adoptCF(rawSampleBuffer);
- m_packetData.remove(0, fullPacketBytesRead);
+ m_packetData.clear();
m_packetDescriptions.clear();
auto trackID = track().track_uid.value();