From 461ac79693c39cb9e9109e663419994b9f8c97af Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Sat, 17 Mar 2012 15:44:02 +0000 Subject: [PATCH] Test callsets. --- traces/CMakeLists.txt | 2 + traces/callset-default.script | 35 ++++++++++++++++ traces/callset-draw.script | 3 ++ traces/callset-fbo.script | 3 ++ traces/callset-file.script | 6 +++ traces/callset-frame.script | 3 ++ traces/callset-range-step.script | 5 +++ traces/callset-range.script | 7 ++++ traces/callset-set-comma.script | 6 +++ traces/callset-single.script | 2 + traces/callset-wildcard-draw.script | 3 ++ traces/callset-wildcard-fbo.script | 3 ++ traces/callset-wildcard-frame.script | 3 ++ traces/callset-wildcard-step.script | 9 +++++ traces/callset-wildcard.script | 35 ++++++++++++++++ traces/callset.calls | 3 ++ traces/mkscript.py | 58 +++++++++++++++++++++++++++ traces/tri.trace | Bin 0 -> 37646 bytes 18 files changed, 186 insertions(+) create mode 100644 traces/callset-default.script create mode 100644 traces/callset-draw.script create mode 100644 traces/callset-fbo.script create mode 100644 traces/callset-file.script create mode 100644 traces/callset-frame.script create mode 100644 traces/callset-range-step.script create mode 100644 traces/callset-range.script create mode 100644 traces/callset-set-comma.script create mode 100644 traces/callset-single.script create mode 100644 traces/callset-wildcard-draw.script create mode 100644 traces/callset-wildcard-fbo.script create mode 100644 traces/callset-wildcard-frame.script create mode 100644 traces/callset-wildcard-step.script create mode 100644 traces/callset-wildcard.script create mode 100644 traces/callset.calls create mode 100755 traces/mkscript.py create mode 100644 traces/tri.trace diff --git a/traces/CMakeLists.txt b/traces/CMakeLists.txt index 5262164..c1e0500 100644 --- a/traces/CMakeLists.txt +++ b/traces/CMakeLists.txt @@ -1,5 +1,7 @@ file (GLOB scripts RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.script) +list (SORT scripts) + foreach (script ${scripts}) add_test( NAME ${script} diff --git a/traces/callset-default.script b/traces/callset-default.script new file mode 100644 index 0000000..524e59f --- /dev/null +++ b/traces/callset-default.script @@ -0,0 +1,35 @@ +dump --verbose tri.trace +0 glXQueryExtension(dpy = 0xfc52b0, errorb = NULL, event = NULL) = True +1 glXChooseFBConfig(dpy = 0xfc52b0, screen = 0, attribList = {GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, GLX_ALPHA_SIZE, 1, GLX_DOUBLEBUFFER, 1, 0}, nitems = &12) = {0xfe3620, 0xfe3710, 0xfe53e0, 0xfe54d0, 0xfe38f0, 0xfe39e0, 0xfe3e90, 0xfe56b0, 0xfe57a0, 0xfe5c50, 0xfe3f80, 0xfe5d40} +2 glXGetVisualFromFBConfig(dpy = 0xfc52b0, config = 0xfe3620) = &{visual = 0xfd00e8, visualid = 154, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8} +3 glXCreateNewContext(dpy = 0xfc52b0, config = 0xfe3620, renderType = GLX_RGBA_TYPE, shareList = NULL, direct = True) = 0xfdd650 +4 glXIsDirect(dpy = 0xfc52b0, ctx = 0xfdd650) = True +5 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +6 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +7 glGetString(name = GL_RENDERER) = "Mesa DRI Mobile Intel\2\556 GM45 Express Chipset " +8 glGetString(name = GL_VERSION) = "2.1 Mesa 7.11.2" +9 glGetString(name = GL_VENDOR) = "Tungsten Graphics, Inc" +10 glClearColor(red = 0.3, green = 0.1, blue = 0.3, alpha = 0) +11 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +12 glViewport(x = 0, y = 0, width = 250, height = 250) +13 glMatrixMode(mode = GL_PROJECTION) +14 glLoadIdentity() +15 glOrtho(left = -1, right = 1, bottom = -1, top = 1, zNear = -0.5, zFar = 1000) +16 glMatrixMode(mode = GL_MODELVIEW) +17 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +18 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +19 glClear(mask = GL_COLOR_BUFFER_BIT) +20 glBegin(mode = GL_TRIANGLES) +21 glColor3f(red = 0.8, green = 0, blue = 0) +22 glVertex3f(x = -0.9, y = -0.9, z = -30) +23 glColor3f(red = 0, green = 0.9, blue = 0) +24 glVertex3f(x = 0.9, y = -0.9, z = -30) +25 glColor3f(red = 0, green = 0, blue = 0.7) +26 glVertex3f(x = 0, y = 0.9, z = -30) +27 glEnd() +28 glFlush() +29 glFlush() +30 glXSwapBuffers(dpy = 0xfc52b0, drawable = 44040194) + +31 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +32 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True diff --git a/traces/callset-draw.script b/traces/callset-draw.script new file mode 100644 index 0000000..729d6d8 --- /dev/null +++ b/traces/callset-draw.script @@ -0,0 +1,3 @@ +dump --verbose --calls=draw tri.trace +19 glClear(mask = GL_COLOR_BUFFER_BIT) +27 glEnd() diff --git a/traces/callset-fbo.script b/traces/callset-fbo.script new file mode 100644 index 0000000..3a6cff4 --- /dev/null +++ b/traces/callset-fbo.script @@ -0,0 +1,3 @@ +dump --verbose --calls=fbo tri.trace +30 glXSwapBuffers(dpy = 0xfc52b0, drawable = 44040194) + diff --git a/traces/callset-file.script b/traces/callset-file.script new file mode 100644 index 0000000..3adbb33 --- /dev/null +++ b/traces/callset-file.script @@ -0,0 +1,6 @@ +dump --verbose --calls=@callset.calls tri.trace +1 glXChooseFBConfig(dpy = 0xfc52b0, screen = 0, attribList = {GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, GLX_ALPHA_SIZE, 1, GLX_DOUBLEBUFFER, 1, 0}, nitems = &12) = {0xfe3620, 0xfe3710, 0xfe53e0, 0xfe54d0, 0xfe38f0, 0xfe39e0, 0xfe3e90, 0xfe56b0, 0xfe57a0, 0xfe5c50, 0xfe3f80, 0xfe5d40} +3 glXCreateNewContext(dpy = 0xfc52b0, config = 0xfe3620, renderType = GLX_RGBA_TYPE, shareList = NULL, direct = True) = 0xfdd650 +5 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +30 glXSwapBuffers(dpy = 0xfc52b0, drawable = 44040194) + diff --git a/traces/callset-frame.script b/traces/callset-frame.script new file mode 100644 index 0000000..406215f --- /dev/null +++ b/traces/callset-frame.script @@ -0,0 +1,3 @@ +dump --verbose --calls=frame tri.trace +30 glXSwapBuffers(dpy = 0xfc52b0, drawable = 44040194) + diff --git a/traces/callset-range-step.script b/traces/callset-range-step.script new file mode 100644 index 0000000..b77c13a --- /dev/null +++ b/traces/callset-range-step.script @@ -0,0 +1,5 @@ +dump --verbose --calls=2-11/3 tri.trace +2 glXGetVisualFromFBConfig(dpy = 0xfc52b0, config = 0xfe3620) = &{visual = 0xfd00e8, visualid = 154, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8} +5 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +8 glGetString(name = GL_VERSION) = "2.1 Mesa 7.11.2" +11 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True diff --git a/traces/callset-range.script b/traces/callset-range.script new file mode 100644 index 0000000..efde494 --- /dev/null +++ b/traces/callset-range.script @@ -0,0 +1,7 @@ +dump --verbose --calls=2-7 tri.trace +2 glXGetVisualFromFBConfig(dpy = 0xfc52b0, config = 0xfe3620) = &{visual = 0xfd00e8, visualid = 154, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8} +3 glXCreateNewContext(dpy = 0xfc52b0, config = 0xfe3620, renderType = GLX_RGBA_TYPE, shareList = NULL, direct = True) = 0xfdd650 +4 glXIsDirect(dpy = 0xfc52b0, ctx = 0xfdd650) = True +5 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +6 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +7 glGetString(name = GL_RENDERER) = "Mesa DRI Mobile Intel\2\556 GM45 Express Chipset " diff --git a/traces/callset-set-comma.script b/traces/callset-set-comma.script new file mode 100644 index 0000000..b7e3e3f --- /dev/null +++ b/traces/callset-set-comma.script @@ -0,0 +1,6 @@ +dump --verbose --calls=1,2,3,5,7 tri.trace +1 glXChooseFBConfig(dpy = 0xfc52b0, screen = 0, attribList = {GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, GLX_ALPHA_SIZE, 1, GLX_DOUBLEBUFFER, 1, 0}, nitems = &12) = {0xfe3620, 0xfe3710, 0xfe53e0, 0xfe54d0, 0xfe38f0, 0xfe39e0, 0xfe3e90, 0xfe56b0, 0xfe57a0, 0xfe5c50, 0xfe3f80, 0xfe5d40} +2 glXGetVisualFromFBConfig(dpy = 0xfc52b0, config = 0xfe3620) = &{visual = 0xfd00e8, visualid = 154, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8} +3 glXCreateNewContext(dpy = 0xfc52b0, config = 0xfe3620, renderType = GLX_RGBA_TYPE, shareList = NULL, direct = True) = 0xfdd650 +5 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +7 glGetString(name = GL_RENDERER) = "Mesa DRI Mobile Intel\2\556 GM45 Express Chipset " diff --git a/traces/callset-single.script b/traces/callset-single.script new file mode 100644 index 0000000..4dcad3f --- /dev/null +++ b/traces/callset-single.script @@ -0,0 +1,2 @@ +dump --verbose --calls=10 tri.trace +10 glClearColor(red = 0.3, green = 0.1, blue = 0.3, alpha = 0) diff --git a/traces/callset-wildcard-draw.script b/traces/callset-wildcard-draw.script new file mode 100644 index 0000000..d73ea5a --- /dev/null +++ b/traces/callset-wildcard-draw.script @@ -0,0 +1,3 @@ +dump --verbose --calls=*/draw tri.trace +19 glClear(mask = GL_COLOR_BUFFER_BIT) +27 glEnd() diff --git a/traces/callset-wildcard-fbo.script b/traces/callset-wildcard-fbo.script new file mode 100644 index 0000000..a31ccff --- /dev/null +++ b/traces/callset-wildcard-fbo.script @@ -0,0 +1,3 @@ +dump --verbose --calls=*/fbo tri.trace +30 glXSwapBuffers(dpy = 0xfc52b0, drawable = 44040194) + diff --git a/traces/callset-wildcard-frame.script b/traces/callset-wildcard-frame.script new file mode 100644 index 0000000..dfc956d --- /dev/null +++ b/traces/callset-wildcard-frame.script @@ -0,0 +1,3 @@ +dump --verbose --calls=*/frame tri.trace +30 glXSwapBuffers(dpy = 0xfc52b0, drawable = 44040194) + diff --git a/traces/callset-wildcard-step.script b/traces/callset-wildcard-step.script new file mode 100644 index 0000000..104924b --- /dev/null +++ b/traces/callset-wildcard-step.script @@ -0,0 +1,9 @@ +dump --verbose --calls=*/5 tri.trace +0 glXQueryExtension(dpy = 0xfc52b0, errorb = NULL, event = NULL) = True +5 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +10 glClearColor(red = 0.3, green = 0.1, blue = 0.3, alpha = 0) +15 glOrtho(left = -1, right = 1, bottom = -1, top = 1, zNear = -0.5, zFar = 1000) +20 glBegin(mode = GL_TRIANGLES) +25 glColor3f(red = 0, green = 0, blue = 0.7) +30 glXSwapBuffers(dpy = 0xfc52b0, drawable = 44040194) + diff --git a/traces/callset-wildcard.script b/traces/callset-wildcard.script new file mode 100644 index 0000000..71dc6e6 --- /dev/null +++ b/traces/callset-wildcard.script @@ -0,0 +1,35 @@ +dump --verbose --calls=* tri.trace +0 glXQueryExtension(dpy = 0xfc52b0, errorb = NULL, event = NULL) = True +1 glXChooseFBConfig(dpy = 0xfc52b0, screen = 0, attribList = {GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, GLX_ALPHA_SIZE, 1, GLX_DOUBLEBUFFER, 1, 0}, nitems = &12) = {0xfe3620, 0xfe3710, 0xfe53e0, 0xfe54d0, 0xfe38f0, 0xfe39e0, 0xfe3e90, 0xfe56b0, 0xfe57a0, 0xfe5c50, 0xfe3f80, 0xfe5d40} +2 glXGetVisualFromFBConfig(dpy = 0xfc52b0, config = 0xfe3620) = &{visual = 0xfd00e8, visualid = 154, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8} +3 glXCreateNewContext(dpy = 0xfc52b0, config = 0xfe3620, renderType = GLX_RGBA_TYPE, shareList = NULL, direct = True) = 0xfdd650 +4 glXIsDirect(dpy = 0xfc52b0, ctx = 0xfdd650) = True +5 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +6 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +7 glGetString(name = GL_RENDERER) = "Mesa DRI Mobile Intel\2\556 GM45 Express Chipset " +8 glGetString(name = GL_VERSION) = "2.1 Mesa 7.11.2" +9 glGetString(name = GL_VENDOR) = "Tungsten Graphics, Inc" +10 glClearColor(red = 0.3, green = 0.1, blue = 0.3, alpha = 0) +11 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +12 glViewport(x = 0, y = 0, width = 250, height = 250) +13 glMatrixMode(mode = GL_PROJECTION) +14 glLoadIdentity() +15 glOrtho(left = -1, right = 1, bottom = -1, top = 1, zNear = -0.5, zFar = 1000) +16 glMatrixMode(mode = GL_MODELVIEW) +17 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +18 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +19 glClear(mask = GL_COLOR_BUFFER_BIT) +20 glBegin(mode = GL_TRIANGLES) +21 glColor3f(red = 0.8, green = 0, blue = 0) +22 glVertex3f(x = -0.9, y = -0.9, z = -30) +23 glColor3f(red = 0, green = 0.9, blue = 0) +24 glVertex3f(x = 0.9, y = -0.9, z = -30) +25 glColor3f(red = 0, green = 0, blue = 0.7) +26 glVertex3f(x = 0, y = 0.9, z = -30) +27 glEnd() +28 glFlush() +29 glFlush() +30 glXSwapBuffers(dpy = 0xfc52b0, drawable = 44040194) + +31 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True +32 glXMakeContextCurrent(dpy = 0xfc52b0, draw = 44040194, read = 44040194, ctx = 0xfdd650) = True diff --git a/traces/callset.calls b/traces/callset.calls new file mode 100644 index 0000000..bedc65d --- /dev/null +++ b/traces/callset.calls @@ -0,0 +1,3 @@ +1 +3-5/2 +*/frame diff --git a/traces/mkscript.py b/traces/mkscript.py new file mode 100755 index 0000000..78f28fa --- /dev/null +++ b/traces/mkscript.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python +########################################################################## +# +# Copyright 2012 Jose Fonseca +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +##########################################################################/ + +'''Script generator''' + + +import optparse +import subprocess +import sys + + +def main(): + + # Parse command line options + optparser = optparse.OptionParser( + usage='\n\t%prog [OPTIONS] -- [ARGS] ...', + version='%%prog') + optparser.add_option( + '--apitrace', metavar='PROGRAM', + type='string', dest='apitrace', default='apitrace', + help='path to apitrace executable') + (options, args) = optparser.parse_args(sys.argv[1:]) + if not args: + optparser.error('an argument must be specified') + + sys.stdout.write(' '.join(args) + '\n') + sys.stdout.flush() + cmd = [options.apitrace] + args + p = subprocess.Popen(cmd) + p.wait() + sys.exit(p.returncode) + + +if __name__ == '__main__': + main() diff --git a/traces/tri.trace b/traces/tri.trace new file mode 100644 index 0000000000000000000000000000000000000000..f39b0e14a12108370869edc6821c9662b4bac48a GIT binary patch literal 37646 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

-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

&9PoX*Q*t*(I%U%Kq8Mu`rq7O1F-dITUsmt zTfYT?zj;hNCR$}T3ElmC(Q$N~t6NlCovV<}vVU=I4?_PPWK4Smywllkg?#K97#m8s ztO4+5)&UR$JdSVP5A+%Xn5fQVwl~x>p+|Z9d2%8vn{c>Y@Up8Jaxx<)J8#5hBfpC@ zY}lh=aGFj5ysGEIPI4bv)+->mp0+&zWS(TQ?SXZcY9DlRQp?98cAXdQpPg?(X!AW3GrD^VRJ2aHxx zC~7U8k!2xw_v&bSYtfuM+}$C?J=sJLwsy_P4O2I+6uODs&AuA76 z(uP1lX`$ujn@u}fHI9@t)UpT9RlkZr5k}UA`66JUM_M&8lZXEgH`KlXl9W5$BA#;% zGSH)~n%KHw#9rk zWJ`o0cB0_AiBRf9E7MAX%}#`Tgykn&S-N5zXt|S*R&J+S0hJc)#;@~H96xOuU_8So zXG{YEwz>1!S=TQ@NtU~SqkPhe&KN?#G|C}Q=S?e0&dR8x?cnA4>WkS}}UgKrx!hK^_B```@9*UG-l+93Yi?|}> z?QXGyuxfqT3X$6>wZuGEk3(E)Wi6t-+^fyp#*esoBRk{Gg_RJx2t~5adS~3f_~$`O z;)u{k(G5oxrjLg`GRiMqNbnpI85I?2H~QVlS&YAknm%gIGc%{oomVu|FJ(^Q z(@z#ZJ~tePejEqrtDibOae7hVoWxnvXU(C#<`g}lojRweXeOOJ{h1q7*0 zjo6C{*e%*^>h!$gqGz9;HD?|b76=Qq&lW#1@5$az78Or@a-Kja4v7C6`llfD!axK) zp7pi{?=QV@-kjnE>9d|F66g$}_nj>MnM)#xAYqS<8hPsUv{{8uxSlAQIj?x$LPAh= z1I$m;XX^CKIrE;J)tgQ)nlev2hrdqm$+PCon>C}?yjf3cpUc38wx0yP#=0h#OI5ZwIm`?Q7WZ{_>3hx_|#2CBGkGy<;?h*d^%YBLmr* zFfc-M*af|e_Sq7l!T@h1^d_c2mJ3KUdCD-w08LjHRtjw>H7G)2x9*&}-2&;w96xyr zfJ1V%m%JsCA9A#ttc^wg6}U5t1vy+|SKVf;$Bioi?LHE71HxlGvD0E|l#3%hdl;u2 zrK=Mrck6-4FPgD38RX6Okf*|hk;D&;aj7$d8Qk$!MhgqocDc+O0nlPW^^9R>2J3Pb zFAml=YfuBG5S2}HWs6hjVx7Ngo#ig%(!~aWd4k22ot-I-Cw`EoN)KBdtqsMqG>aGG z_w9>cX*hnQgrcd%GllW*>jV$cKgEAJt`mInqcO}YJh)kK_e8xRa~x%7WQ6VS4%UsM zz5EY^{wJ!IO{xD1#RG^}t^WY75fGn2dkY0*yqrIX(mwuyg1Zz!bpCA-U6hK#F=0kb zHd17%@ZB>KCsH>rsX??`%)~w3Unxf0II8!NzZ@vFCLmapv~%Sf5u>rd0e3)<9YFLU z;&Le|(MM0|)ywfR^~0rc@qa(aJF54IHO7%1@(>j*cEh z1d{^s5$zl?Pnfd+m3_#$Po3_Z`2?QigDqctjmguWnfoNReFZ}WvPyWgg5lDbko|1o x(+ST^nNl=ouBO)$PcPIxF{kj^!pYN%922!VB3PH>>+V+>_EI+W_UpM={~w|9#FPL4 literal 0 HcmV?d00001 -- 2.43.0