#   2.6.1 page 15

x
;x

it
x

was
0

al
;al

also
al

e-x-u-d-e
;;e-x-u-d-e

do-it-yourself
d-x-yrf

out-and-out
|-&-|

5-yrf-678
#e-;yrf-#fgh

I like x–it works.
,i l ;x,-x "ws4

his child–this one
8 *,-? "o

my friend–Fr John
my fr,-;,fr ,john

th--r
th--;r

Mme. M—
,mme4 ;,m",-

–s
,-;s

—st
",-st

#   2.6.2 page 16

(c
"<;c

[can
.<c

{af
_<;af

–(after
,-"<af

“do
8d

‘your
,8yr

"yr-123
,7;yr-#abc

'e 'as
';e 'z

~italic
+
p
.2;p

~bold
++++++
people
~1p

~under
++++++
enough
_15

~italic
++++++++++
child-safe
.1*-safe

N
;,n

Not Like That
,n ,l ,t

LITTLE CHILD
,,ll ,,*

–GREAT
,-,,grt

OUT OF TOWN
,,,| ( t{n,'

## transcriber note not defined
##[open TN]every
##`.<e


## transcriber note not defined
##[open TN]In
##`.<,9

–“[Be true.]”
,-8.<,2 true4.>0

<x, y>
`<x1 y`>

this/that
?is_/?at

*from
"9from

&c
`&c

Apt. #B
,apt4 _?,b

¶d
~pd

é
~/e

ū
`-u

~s
`9s

~st
`9/

#   2.6.3 page 16

very, very still; rather good.
v1 v /2 r gd4

d:
;d3

this...
?444

rejoice!
rjc6

(q, r)
"<;q1 ;r">

[quite, rather]
.<q1 r.>

{k-p}
_<;k-;p_>

"Which go-between?"
8,: g-2t80

children.”
*n40

t' have–
;t' h,-

friends' numbers
frs' numb}s

~italic
++++++++++++++++++++++++++++
Himself or herself?–Neither!
.7,hmf or h}f8,-,nei6.'

ALWAYS BE YOURSELF
,,,alw 2 yrf,'

##[open TN]His choice was D.[close TN]
##`.<,8 *oice 0 ;,d4`.>

t'night
t'ni<t

word(s)
~w"<s">

ab/cd
ab_/cd

could/should
c|ld_/%|ld

section B²
sec;n ,b;9#b

knowledge.³
"kl$ge4;9#c

this.)*
?is4">"9

<J.Child@children.net>
`<,j4,*ild`a*ildr54net`>

just_for_good.org
ju/.-=.-good4org

l_ _f
l.- .-f

ch...f
*444f

a:b :: x:y
a;3b 33 x;3y

X%
,x.0

Braillex®
,braillex~r

Braille4All
,braille#d,all

#   2.6.4 page 18

‘It'll
,8,x'll

[X'll
.<;,x'll

~italic
++++++
YOU'RE
.1,,y',,re

child's?)
*'s8">

“p's and q's”
8;p's & ;q's0

~italic
            ++++++++++
“That's Mr. Little's!”
8,t's ,mr4 .1,ll's60

