本帖最后由 1五湖四海1 于 2016-8-25 22:44 编辑 0 Z' n: p6 p" E1 Z! Y" C
+ F6 Q' i, Y" B5 y2 R8 n' B# X( l
这个defaults.h文件作为一个中央默认设置配置不同的机器类型,从DIY米尔斯数控CNC转换的现成的机器。这里的设置所列出的文件是由用户提供的,+ } v* | c+ l" Y* L$ p
所以您的你的需求可能不同。所以应该你了解你的机器和调整设置根据你的个性的需求,制造机器。$ z7 M- ?2 `/ P8 X7 Q
defaults_h文件是选择是否将一些参数设置为默认值
1 R6 U$ m- K6 A/ S定义各种参数, z; f& \" a+ c' r' T" z& c" B9 V
1.defaults/defaults_generic.h //Grbl通过通用默认设置就可以在不同的机器上工作。
: T) h& z* F4 K2.defaults/defaults_sherline.h //描述:Sherline 5400制造厂三个NEMA 23客户KL23H256-21-8B 185扭力步进电机3 o) g, }' @ V7 d! A7 x
3.defaults/defaults_shapeoko.h // 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的; {# h) O" Z3 R2 K4 }& I/ V) v
4.defaults/defaults_shapeoko3 //描述:Shapeoko数控机有三个NEMA 23步进电机,由CarbideMotion驱动的
7 L( m2 ?4 [# s* B+ o5.defaults/defaults_x_carve_500mm //描述:X-Carve 3 d卡佛数控机有三个200步/汽车由Synthetos牧师grblShield 24 v。
# e, v3 s8 ^5 U4 a! a, O) j6.defaults/defaults_zen_toolworks_7x7 //描述:禅宗Toolworks 7 x7机有三个Shinano SST43D2121 65扭力NEMA 17步进电机。导螺杆不同于一些ZTW包,大多数是1.25毫米/牧师而不是8.0毫米/牧师。由30 v 6电源和TI DRV8811步进电机驱动程序
8 ]6 e0 B1 w/ A* P& Y! Z+ q% r0 a2 r/ X# r7.defaults/defaults_oxcnc // Grbl设置OpenBuilds牛数控机床
+ {9 \8 ^ y& H& S- e4 O8.defaults/defaults_simulator
8 @' \; M6 P& k! F. I2 |5 w* ]
$ O- q, r4 b6 Q/*
/ b+ n1 D$ \3 E3 r! ~0 i, J3 ~ defaults.h - defaults settings configuration file$ @ @1 Q8 G. K7 u' q
Part of Grbl2 @; D4 S k& @& B' H- w( v5 C
. p2 d; g* K) o4 U$ a: z' j+ _1 _ Copyright (c) 2012-2015 Sungeun K. Jeon" t2 r+ ]* D4 m c- f7 q% L. n
# j: A* u5 Z4 t# t0 Y Grbl is free software: you can redistribute it and/or modify% p$ i( l2 a- |; \4 @$ M) c, T
it under the terms of the GNU General Public License as published by
" @7 |1 B& Y- c' \9 z' n the Free Software Foundation, either version 3 of the License, or% ^$ z- ?) d/ V: z1 u- a2 e1 h
(at your option) any later version.
' K# E4 } A, p8 H3 S6 V- P' U8 A
* N5 s3 W" G- J/ K/ e V Grbl is distributed in the hope that it will be useful,3 ^; p* j5 c' ?& Q& D! G0 c
but WITHOUT ANY WARRANTY; without even the implied warranty of; Q0 d! j! z+ L" s/ P
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the' B5 l: q3 }* f
GNU General Public License for more details.
: U6 b% r E) y0 H( G. n3 _8 x* \7 S! d: ^+ T! O
You should have received a copy of the GNU General Public License
$ Z4 V' G8 R- n% d- B: \* Z along with Grbl. If not, see <http://www.gnu.org/licenses/>. @7 {& o) M% Y& V
*/: h. [$ X& r0 y. s- c+ Y
. V+ j, ~( E9 l. r) J2 ~8 _
/* The defaults.h file serves as a central default settings selector for different machine
, x1 T& N" k6 W$ P/ } types, from DIY CNC mills to CNC conversions of off-the-shelf machines. The settings
, z, M( A: {# u5 x8 F files listed here are supplied by users, so your results may vary. However, this should0 s! m5 H E8 f" O1 M6 k) U; c
give you a good starting point as you get to know your machine and tweak the settings for
, D7 U2 R) @$ B/ T# O" F your nefarious needs.' [% f5 x% F S0 V8 m5 z6 R
Ensure one and only one of these DEFAULTS_XXX values is defined in config.h
8 T' z( `% r( q N
# Y0 J% B( w0 W" B: W9 O4 O" t The defaults.h文件作为一个中央默认设置选择不同的机器. U! j: v$ k# Q6 \6 }' ~0 Q, G
类型,从DIY米尔斯数控CNC转换的现成的机器。的设置$ k3 F. |9 s ~9 r* j* ^2 i
这里列出的文件是由用户提供的,所以您的结果可能不同。然而,这应该, s+ b5 R! G. R
给你一个很好的起点,你了解你的机器和调整设置, v5 m# J8 y4 K# G9 k" y$ b
你的个性的需求。9 G$ H2 s2 S$ P8 n2 q
确保一个且只有一个这些DEFAULTS_XXX config.h中定义的值9 S3 F5 w- l' d! Y
*/# @5 ~& e# y. c! g
5 g, g" Y0 m' ], a5 l#ifndef defaults_h7 l! A. z) d1 H8 h
1 F5 Q5 J* k" B// Only define the DEFAULT_XXX with where to find the corresponding default_XXX.h file.
/ k/ d! b- ~6 o1 b8 L: i$ o// Don't #define defaults_h here, let the selected file do it. Prevents including more than one./ u4 i7 T+ k$ U0 C! L% U
//只有定义DEFAULT_XXX在哪里可以找到相应的DEFAULT_XXX。h文件。
3 i& w# ]; l- s" E//别在这里# define defaults_h,让选中的文件。防止包括不止一个。0 u" l% ^! H# r$ H8 k9 y
) B" ~$ ?9 D) B#ifdef DEFAULTS_GENERIC% t1 c' c( Q) X! N2 X- _
// Grbl generic default settings. Should work across different machines.9 o6 Z( T# c$ x
// Grbl通过通用默认设置就可以在不同的机器上工作。# X$ t8 n, B8 d: d
#include "defaults/defaults_generic.h"0 x( h6 G* I; ~
#endif
* v+ R2 c& [- b2 m6 `4 w- Z
. a+ O8 C: Q5 n2 ~4 m6 V! G#ifdef DEFAULTS_SHERLINE_5400& B/ L( i9 z5 r" [' |: R6 b0 U
// Description: Sherline 5400 mill with three NEMA 23 Keling KL23H256-21-8B 185 oz-in stepper motors," [( U# Q! v" K: m3 }
// driven by three Pololu A4988 stepper drivers with a 30V, 6A power supply at 1.5A per winding.
% I2 p1 r- d0 j; C //描述:Sherline 5400制造厂三个NEMA 23客户KL23H256-21-8B 185扭力步进电机,
2 F4 d( S; W$ E) @5 q //由三个Pololu A4988步进驱动30 v,6在每1.5绕组供电。
% c7 M K! k' ~3 R6 r# r% B9 I0 s- R9 |# q
#include "defaults/defaults_sherline.h"
/ ?3 A2 S+ X* ~( j6 C#endif
1 W$ V" W1 l5 v0 P1 i/ C i% e! e4 P: [- `: Q
#ifdef DEFAULTS_SHAPEOKO
, E5 R0 f( i6 D // Description: Shapeoko CNC mill with three NEMA 17 stepper motors, driven by Synthetos" ]% s; t. T# l; F( [
// grblShield with a 24V, 4.2A power supply.' z) ?0 T6 y8 H$ q% c4 f2 H( E
// 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的9 _3 M& v4 S0 n( ~
// grblShield 24 v,4.2电源。
4 ]! r j+ u5 I% {* r- @# O
( G) o+ @% F$ B #include "defaults/defaults_shapeoko.h") M7 ?6 E/ F. z$ {! ]: l
#endif
5 Z' F: ~( g" Z- T4 ]/ s. e, ^$ F5 W. T% _
#ifdef DEFAULTS_SHAPEOKO_29 ~; n- ~" i7 X; P8 G/ Q
// Description: Shapeoko CNC mill with three NEMA 17 stepper motors, driven by Synthetos
4 B; q4 \0 u9 F& E1 U8 C // grblShield at 28V.
) n8 [4 v+ t* v( b! \ // 描述:Shapeoko数控机有三个NEMA 17步进电机,由Synthetos驱动的- F& j5 h/ k* Z. l( o
// grblShield 28 v。! U9 D4 D; U: z2 @1 C- X" C( C
0 Q; W" E7 F/ I
#include "defaults/defaults_shapeoko2.h"
3 }- ^# [ |9 h/ j#endif
5 D* d6 L" P3 J# ?$ O
( n* Y/ t8 l1 \2 j: k8 t; C; I#ifdef DEFAULTS_SHAPEOKO_3 }) @- K# o9 U' G; ?
// Description: Shapeoko CNC mill with three NEMA 23 stepper motors, driven by CarbideMotion* v# c2 n* S: i/ F
// 描述:Shapeoko数控机有三个NEMA 23步进电机,由CarbideMotion驱动的
5 t% z2 q2 v+ ^8 b
. _1 p; t: X3 c1 G1 M. Q# N #include "defaults/defaults_shapeoko3.h"& B8 V6 k7 y% s/ b& W
#endif: W l; [$ [# p- S
6 i1 z' V& |' l! d5 y/ i
#ifdef DEFAULTS_X_CARVE_500MM/ Q% O+ z" {- W. h. A) n0 r
// Description: X-Carve 3D Carver CNC mill with three 200 step/rev motors driven by Synthetos0 |5 d# I4 g( R* v6 G' P
// grblShield at 24V.$ M9 G& D4 B+ e v( `- K
// 描述:X-Carve 3 d卡佛数控机有三个200步/汽车由Synthetos牧师grblShield 24 v。
: x) t( `$ r5 i3 m #include "defaults/defaults_x_carve_500mm.h"
& x$ n- m+ \ I' M#endif
6 `7 J+ I6 {; d, G- ?
' s1 A5 J* ]) _$ e#ifdef DEFAULTS_X_CARVE_1000MM
% A$ `% l; Q3 D8 ? // Description: X-Carve 3D Carver CNC mill with three 200 step/rev motors driven by Synthetos) B2 X! r+ m# f0 g
// grblShield at 24V.+ @2 l1 N' e7 s
#include "defaults/defaults_x_carve_1000mm.h"8 F9 b- F: i3 i$ |; M& U* V
#endif# A- Z \1 ?6 q. L; a6 m
7 _5 s$ l- G0 z- O% c$ I8 O+ m
#ifdef DEFAULTS_ZEN_TOOLWORKS_7x7- y2 \, |. M1 j- D
// Description: Zen Toolworks 7x7 mill with three Shinano SST43D2121 65oz-in NEMA 17 stepper motors.
2 ` v) n7 F* D: y; f4 o // Leadscrew is different from some ZTW kits, where most are 1.25mm/rev rather than 8.0mm/rev here.
+ L. l! c" z& S. u9 @0 M; l // Driven by 30V, 6A power supply and TI DRV8811 stepper motor drivers.$ P: B1 e6 m. u% f2 e# ^
//描述:禅宗Toolworks 7 x7机有三个Shinano SST43D2121 65扭力NEMA 17步进电机。
2 [7 E0 h. I& K' |% | //导螺杆不同于一些ZTW包,大多数是1.25毫米/牧师而不是8.0毫米/牧师。
2 w j" Q7 z8 M2 p: D //由30 v 6电源和TI DRV8811步进电机驱动程序。3 }% ?$ @9 w" o1 B8 C/ h. t7 I
1 C3 B! D8 q1 n4 a1 @) {# J #include "defaults/defaults_zen_toolworks_7x7.h"
; k! j! h- v+ [9 v; {8 C% g; k7 [#endif
0 g/ f, r4 D8 v* P* ]* i4 U
# I) ^, @( ~- c9 v1 ]7 Y7 @ N" U#ifdef DEFAULTS_OXCNC+ `% u' J- u h& X- v9 j
// Grbl settings for OpenBuilds OX CNC Machine$ _. ?$ e9 r* W) C& L
// http://www.openbuilds.com/builds/openbuilds-ox-cnc-machine.341/
z+ q' a, j9 @% i. ^% d) x
2 J1 W) S/ s6 {1 _: N6 `2 C( [ // http://www.openbuilds.com/builds/openbuilds-ox-cnc-machine.341/
* T3 W) y) b) J* J( A/ ~# G2 M #include "defaults/defaults_oxcnc.h" // Grbl设置OpenBuilds牛数控机床
" R+ ]0 r/ [" @' L) J8 R' s#endif8 k1 s* P/ V. k( y
; i% c2 ^+ x ^3 \" V6 {#ifdef DEFAULTS_SIMULATOR
& |5 R1 t# f: O // Settings only for Grbl Simulator (www.github.com/grbl/grbl-sim)1 h& w: v3 v4 H' d
#include "defaults/defaults_simulator.h" //设置只对Grbl模拟器(www.github.com/grbl/grbl-sim)
; I ~5 }8 p* t3 c6 E#endif8 C+ D- {1 v. u1 k4 h1 L2 D6 C- Y/ ^
4 k1 j! J. T1 K4 W2 h#endif
6 A9 z& m3 T( Y6 h @ {$ h5 M
6 Y J" R$ e1 X1 W' R& N4 b; d__________________________________________________________________________________________________________________
% n# p+ L/ |( L# {$ l& y2 S/*
: D2 Q+ {# Q6 O) k6 xdefaults_generic.h -默认设置配置文件Grbl的一部分" n, O# F" U8 m. x
版权(c)2012 - 2015 Sungeun k全
# m* g6 d/ k/ W+ \& N% G NGrbl是免费软件:可以重新分配和/或修改. u: X: ?9 Q% A; i4 A2 M
GNU通用公共许可证的条款下发布的 w6 q+ |& |/ ^" t: x
自由软件基金会,版本3的许可,或
; M2 k1 r3 S9 J4 e" g(任您选)其后的版本。
- I$ R, H6 |. ?( R N
& N% F; b9 n9 V/ F. a1 ?Grbl分布,希望这将是有用的,4 v2 d& ]. I7 C
但是没有任何保证;没有即使的默示保证- g9 c6 l7 X1 ?3 f2 n, u; h
适销性或健身为特定目的。看到7 `( h& V5 x# u4 _$ c# n# A( V
GNU通用公共许可证的更多细节。4 Z7 W. K8 y4 p/ S* C( C
( a. R% D4 R5 Q5 C b+ Q5 ?% m( y! W0 c你应该收到了GNU通用公共许可证的副本
: H# Q) Q% V) v& ~2 c连同Grbl。如果没有,看< http://www.gnu.org/licenses/ >。
5 U+ L, v& ?3 F* /
* [6 s# r& L8 ?. y. Q
; W [' M/ x" Y! N; Q/ |4 d- s! J/ *默认值。h文件作为一个中央默认设置文件不同的机器
) I0 ?8 v. w; e' F类型,从DIY米尔斯数控CNC转换的现成的机器。的设置% ~7 a7 Q; S. \& n) F& ?7 h
这是由用户提供,所以您的结果可能不同。然而,这应该给你2 j9 e4 w+ `. U$ G" a
一个好的起点,你了解你的机器和调整的设置, m1 N; [1 n2 T- E' h3 }: G9 E
邪恶的需求。*/ M U7 W7 s2 B4 ~8 @7 [6 }) s# y
5 G* }( t9 L$ M# q; [2 q9 ~) t
+ v5 Y$ i* `0 n$ r3 z
#ifndef defaults_h
, i2 G. l5 C5 W1 j$ L, X7 `#define defaults_h4 ~" b# x- x7 r
6 k' t! y) q; ]) g
// Grbl generic default settings. Should work across different machines.
! c; j% X# D! c #define DEFAULT_X_STEPS_PER_MM 250.0 //X轴每mm脉冲当量 ; W) k# _; D% P+ _! ]9 X5 e
#define DEFAULT_Y_STEPS_PER_MM 250.0
- l+ Y* e4 Z) Z4 b/ H #define DEFAULT_Z_STEPS_PER_MM 250.0
5 o8 w/ s- R2 m2 E #define DEFAULT_X_MAX_RATE 500.0 // mm/min 最大速度
$ [. U' _" s) S. {* ~9 ?# i( d8 M #define DEFAULT_Y_MAX_RATE 500.0 // mm/min6 `2 z$ G8 o9 E) G/ |
#define DEFAULT_Z_MAX_RATE 500.0 // mm/min9 ?0 ] w9 [! _- @0 _/ P9 D) W5 ]- C
/*这是毫米/秒/秒的加速度。/ n0 d( x1 S, i+ s: C
你不需要理解这是什么意思,我只想说,一个较低的值给smooooother加速度而价值更高的收益率更严格的措施,达到所需的进料速度更快。' f6 K8 g0 N- ^9 \; z
从技术角度讲,这是您的机器的点对点的加速度,独立于轴。设置加速度值高达你最限制轴可以让你在不丢失任何步骤。* h1 n# O. w& [, ]0 H( ~" t
通常你想给自己一些缓冲,因为如果你失去了步骤,Grbl不知道这发生了(开环控制步进),并将继续。*/. P. h9 q( m; ~! `
#define DEFAULT_X_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^2 加速度) ?/ f; f0 _* g( [# u, b% I
#define DEFAULT_Y_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^28 M2 w3 w, Z, J& x9 F
#define DEFAULT_Z_ACCELERATION (10.0*60*60) // 10*60*60 mm/min^2 = 10 mm/sec^23 [. x0 h/ x3 e7 g* u: M& v
#define DEFAULT_X_MAX_TRAVEL 200.0 // mm 最大步行! a7 U* R' o+ t% }3 k% D& K+ \
#define DEFAULT_Y_MAX_TRAVEL 200.0 // mm ( W8 _3 u# g9 c% i" Z) ^1 m
#define DEFAULT_Z_MAX_TRAVEL 200.0 // mm $ w( M7 u, J9 {" ~
#define DEFAULT_STEP_PULSE_MICROSECONDS 10 //步进驱动脉冲长度
b/ \+ ?& Z: [/ r #define DEFAULT_STEPPING_INVERT_MASK 0 //步进是否反转
/ }/ A R3 y/ b #define DEFAULT_DIRECTION_INVERT_MASK 0 //方向是否反转
& n0 O6 o- @5 R& D /*
) b1 G: @( i6 C: D& I 每次你完成步进运动和停止,Grbl将禁用默认步进。3 V6 ~2 Y9 e$ T
锁步进空闲时间时间长度Grbl将步进锁之前禁用。
% ~0 y3 b" y) Y% F8 g# m* Q$ w根据系统中,您可以将这个参数设置为零,禁用它。对他人,你可能需要25 - 50毫秒来确保你的斧子来完成禁用前停止。(我的机器往往漂移稍微如果我没有启用。)( j3 b2 G. T+ g L" d8 D7 d) B5 Z
或者,你可以让你的轴在任何时候启用通过将这个值设置为最大255毫秒。再次重复,你总是可以保持所有轴通过设置启用7美元= 255。*/
9 d2 u% S9 B' t. L1 [+ T2 y- q #define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)步进闲着时间
2 o1 j- U8 a; B% ~ #define DEFAULT_STATUS_REPORT_MASK ((BITFLAG_RT_STATUS_MACHINE_POSITION)|(BITFLAG_RT_STATUS_WORK_POSITION)) //是否打印状态报告' |, q5 }9 b0 ]: e6 q. X$ O1 Y6 b( \: |- ~
/*一些高低cnc-stepper控制器需要输入反方向和步骤。
+ }/ y+ _5 n1 y1 B: T- k( D3 W信号线路通常是高或低信号方向或高,低了几微秒一步事件信号。为了达到这个目标,Grbl可以反转输出比特来满足特定的需求。; V: n; E0 w6 u- F/ Y
反掩码值是一个字节,xor的步骤和方向步进港数据之前发送。这样你可以使用这两个转化步骤脉冲或转化的一个或多个方向的轴。/ X0 R$ G* `2 a+ Z8 [
这个字节对应的比特分配给介入config.h别针。请注意,不用于反演位0和1。默认比特分配是这样的:*/) s2 S" b! ?& W) h* t
% E4 g! M/ r0 J4 j1 {' J+ P# C
/* 转弯路口偏差使用加速度经理决定它如何快速穿过一条路径。
0 I( Y- c. ?( \, I8 t# _: B" P 数学有点复杂,但总的来说,更高的价值给一般快,可能的波动运动。低价值使得加速度经理更加谨慎,将导致小心和慢转弯。
# ?$ c: P# q8 g* }# l6 y 如果你遇到问题,你的机器试图把一个角落太快,降低此值使它慢下来。
6 w0 E9 t4 K: ~' O* K 如果你想让你的机器通过连接移动得更快,增加这个值速度。
9 V3 N* u7 ?5 ^- N 为技术人员,点击这个链接阅读关于Grbl转弯算法,速度和结角占一个很简单,高效和可靠的方法。*/
9 d0 f Z5 B& k) v6 z/ a& ^5 f4 t8 s& V) }
#define DEFAULT_JUNCTION_DEVIATION 0.01 // mm //偏差& @! f- H# O& j) `; h0 j1 W* S
#define DEFAULT_ARC_TOLERANCE 0.002 // mm //圆弧公差5 ~9 B _+ I1 h; @) O
#define DEFAULT_REPORT_INCHES 0 // false //打印英寸0 I; ]) |0 \! t4 E
/*默认情况下,步进使销是启用禁用高和低。如果您的设置需要相反的,只是反步进使销通过输入15美元= 1。禁用与15美元= 0。(可能需要一个动力循环加载的变化。)*/
2 A6 }2 I5 c7 T7 h6 Y4 H* J7 Y0 Z #define DEFAULT_INVERT_ST_ENABLE 0 // false
r! J- M6 g; Z- U# b3 d #define DEFAULT_INVERT_LIMIT_PINS 0 // false //反转限位引脚
3 C( R8 v5 l) a+ K/ H #define DEFAULT_SOFT_LIMIT_ENABLE 0 // false //软件限位
% G s8 I, K8 Y# ~; x3 O/ e8 o4 g8 Y9 N #define DEFAULT_HARD_LIMIT_ENABLE 0 // false //硬件限位- S/ F8 N6 s) n, _3 m
#define DEFAULT_HOMING_ENABLE 0 // false //回原点使能
8 W6 Z0 X. R- k* p #define DEFAULT_HOMING_DIR_MASK 0 // move positive dir5 n: ?0 M5 F& ]( b" G6 `1 {5 A
#define DEFAULT_HOMING_FEED_RATE 25.0 // mm/min# a) ~( D5 B, S/ p$ ^
#define DEFAULT_HOMING_SEEK_RATE 500.0 // mm/min$ ~. W; g6 @! h& c2 a) W/ k7 V
#define DEFAULT_HOMING_DEBOUNCE_DELAY 250 // msec (0-65k)防抖动延时# F4 W; N' z* z; o( O+ N# ^; q& [
#define DEFAULT_HOMING_PULLOFF 1.0 // mm
' z8 @" O% k* j( j/ `2 |* G9 T; z1 d
#endif) V# n: s$ M9 T. F& h. [, e! h
* {4 E: t4 }& |: w
1 ?3 o2 X9 Z& [! T! M- V& }; J9 s5 n W0 D
0 P+ ?1 s& A: _/ V# X
y& }1 u) g' O! `+ Q( h+ S/ D( ]6 ~. Q
2 V6 d* V4 K" i9 T) \
+ Z! l9 u0 }! c t2 C7 ^5 w, b/ S+ `9 N3 m7 k9 Z+ ?
8 [- N6 k5 s, Q. M5 q) W
/ V3 V6 j! j+ k
+ [/ f6 N; x3 K$ X3 p% I( `
4 {2 g8 \" ^! w2 Z5 w& |5 N3 @ I: E- X7 \% Q `$ z
2 t, C+ ]. i$ a9 x n) F0 r, u2 x" d- D
( I; E# e; ?) O I' j# z9 s Q- z; T6 U+ I# |7 t
5 [$ {) q% ^; ^0 L$ }4 ~: x8 N
8 q% f2 M4 s1 }; y: B
: Z @' C, l9 _5 [. z/ J
: a1 z/ W. R& i* b: W$ p5 p
9 c% j* ?, B% e$ h
2 d. {6 R! d5 x$ N. X! Q( o5 s. r. o4 j- r9 g
; b/ K: y( k( c ^" S1 z d4 \! z6 V |