git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7723 c06c8d41-db1a-0410-9941-cceddc491573
AXKSBGWB7XTER5GQN3JLA55Y6GMDCX2JY3AKROLPVKQIBRRI3TBQC
# Questions;
# replace rock and water by stone?
# disable controlled teleports?
#
# Todo:
# some ice cave destination maps could be smaller
# These have the starting point near the exit, so you can always retreat;
# a middle point where there is some loot; and the end, where there is a
# big challenge and some major loot. Ideally weaker characters attempt to
# overcome the midpoint and then go back to dungeon, and strong characters
# can try to clear the whole cave.
# All start with a similar ice statue arrangement. These have the starting
# point near the exit, so you can always retreat; a middle point where there
# is some loot; and the end, where there is a big challenge and some major
# loot. Ideally weaker characters attempt to overcome the midpoint and then
# go back to dungeon, and strong characters can try to clear the whole cave.
NSUBST: . = 9:1 / 1:1 / *:.
SHUFFLE: QZHBE
SUBST: Q : 2, Z : 2, H : ., B : ., E : .
# TODO: Fog generators where the devils are + fitting treasure
MONS: white imp
MONS: ice devil
MONS: ice statue
ITEM: nothing
ITEM: nothing
ITEM: nothing
: place_fog(_G, "freezing vapour", 200)
MONS: white imp, ice devil, ice statue
SHUFFLE: dg, efh
SUBST: e = ed
ITEM: battleaxe ego:freezing / executioner's axe ego:freezing / \
glaive ego:freezing / halberd ego:freezing / quick blade ego:freezing / \
great sword ego:freezing / triple sword ego:freezing / \
giant spiked club ego:freezing / demon trident ego:freezing
ITEM: battleaxe ego:freezing good_item / executioner's axe ego:freezing good_item /\
glaive ego:freezing good_item / halberd ego:freezing good_item / \
great sword ego:freezing good_item / quick blade ego:freezing good_item /\
triple sword ego:freezing good_item / demon trident ego:freezing good_item /\
giant spiked club ego:freezing good_item
ITEM: demon whip good_item / demon blade good_item / demon trident good_item
ITEM: cap ego:cold_resistance / pair of gloves ego:cold_resistance / \
cloak ego:cold_resistance / buckler ego:cold_resistance / \
pair of boots ego:cold_resistance
ITEM: crystal plate mail ego:cold_resistance / \
troll leather armour ego:cold_resistance / \
ice dragon armour good_item / robe ego:resistance / \
naga barding ego:cold_resistance good_item w:5 / \
centaur barding ego:cold_resistance good_item w:5 / \
crystal plate mail ego:cold_resistance good_item / \
troll leather armour ego:cold_resistance good_item
xxxwwxx..xxxwwxx.....xx..xxxx......xxxxxx
xxxwxx..xxxwwxx....x.....H..x...Z...xxxxx
xxxwwx...xxwwxx..B.xxx....H.xx.Z.Z...xxxx
xxxwwxx...xxwwx.B.B..xx..H...xx.......xxx
xxxwwxxx...xwwxx.........x...........xxxx
xxxwwxx..xxxwwxx.....xx..xxxx..z...xxxxxx
xxxwxx..xxxwwxx..b.x.....N..x...Z...xxxxx
xxxwwx...xxwwxx..B.xxx..n.N.xx.ZzZ...xxxx
xxxwwxx...xxwwx.BbB..xx..N...xx.......xxx
xxxwwxxx...xwwxx.........x.n.........xxxx
# rather long, thight cavern with a hard challenge at the end.
# you can always go back to the beginning to retreat.
# A winding, tight cavern with a hard challenge at the end. You can always
# go back to the beginning to retreat.
# The caverns are more rare than the caves.
xxxx.xxxxxxxxxxxxxxxxxxxxxxxwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xx....xxxxxxxxx....xxxxxxxxxwwwxxxxxxxx$$xxxxxxxx...xx...xxxxxxxxxxxxx
x...A.xxxxxx....xx....xxxxxxxwwwwxxxxxxx$$xx.x...xx...xx...xxxxxxxxxxx
x.<....xx....xxxxxxx...xxxxxwwwwxxxxxxxxxx.xx..xxxxxxxxxx....xxxxxxxxx
xx..xx....xxxxxxxx1111xxxxwwwwwwxxxxxx...xxxxx..xxxxxxxxxx..3..xxxxxxx
xxxxxxxxxxxxxxx....xxxxxxwwwwwwxxxx1...x...xx..xxxxxxxxxxxx....xxxxxxx
xxxxxxxxxxxx....xxxxxxwwwwwwwwxxxx51xxxxxx...xxxxxxxxxxxxx..6xxxxxxxxx
xxxxxxxxx...xxxxxxxxxwwwwwwxxxx..1xxxxxxxxxxxxxxxxxxxxxxx.66xxxxxxxxxx
xxxxxx....xxxxxxxxxxxxxxxwwwxx..xxxxxxxxxxxxxxxxxxxxxx....xxxxxxxxxxxx
xxxx...xxxxxxxxxxxx....xxxwwxxx..xxxxxxxxxxxxx.-....x...xxxxxxxxxxxxxx
xxx..xxxxxxxxxxxx...xx...xxxxxxx..xxxxxxxxxxx...--....xxxxxxxxxxxxxxxx
x...xxxxxxxxxxx...x.xxxx...xxxx1.xxxxxxxxxxx..xxxx-xxxxxxxxxxx.xxxxxxx
x..xxxxxxxxxxx141xxxgxxxx...xxxx511xxxxxwwxxx...xxxxxxxxxxxxx.x.xxxxxx
xx..xxxxxxxxx...xxxgxxx...xxxxxxxx..xxxwwwxxxx..1.xxxxxxxxxx.xxx..xxxx
xxx..xxxxxxxxx....xxxx5.xxxxxxxxx...xxxxxwwwxxxx.1.5xxxxxxx.xxx..xxxxx
xx..xxxxxxxxx.x.xxxxx5..5xxxxxxxxxx1.xxxxxwwxxxxx5415.xxxxxx.xx...xxxx
xx...xxxxxxx...xxxxxxx15.5xxxxxxx'''51xxxxwwxxxxxx5.41.xxxx..xxx...xxx
xxx..xxxxxx..xxxxxxxxxxx5.1xxxx''xxxx1-xxxxwwwxxxxxx.5..x...xxx..U..xx
xxx...xxxx..xxxxxxxxxxxxxx1.x'''xxxxx--xxxxwwwwxxxxxxx'...xxxxxx...xxx
xxx...xxxxx..1xxxxxxxxxxxx..'xxxxxxxxxx--xxxwwwwxxxx*.xxxxxxxxx..xxxxx
xxx...xxxxxxx..xx1xxxxxxxxx--xxxxx'''x--xxxwwwwwwxxxx*xxxx..xxxx..xxxx
xxxx.11xxxxx1.x.1...2xxxx---xx.....xx..xxxxwwwwwwwwxxx-x..xx.x..xxxxxx
xxx11.xxxxxxxx.xxxxx..xxxx--x.P.T.P.xxx15xxxwwwwxxxxxx..xxxxx.xxxxxxxx
xxxx..xxxxxxxx2..1x.1..xxxx-........xx1.1xxwwwwwwxx...xxxxxxxxxxxxxxxx
xxxxx.xxxxxxxxxxxx.xxx.1xxxx...xxxxxxxxx..xxwwwxxx.xxxxxxxxxxxxxxxxxxx
xxxxx..xxxx.x....xxxx...xxxxxx.-xxxxxxx.xxxxwwwxx..xxxxxxxxxxxxxxxxxxx
x*x$xx..xx.*..xx..xxxxx1.xxxx'.-xxxxx15xxxwwwwxxxx..xxxxxxxxxxxxxxxxxx
xx$x.xx..xx..xxxx..xxxxxx.1''xx-xxxxx11.xxwwwwwxxxx...xxxxxxxxxxxxxxxx
x$x..x....xx..xxx..xxxxxxx--xxxx-xx...xxxwwwwwwxxxxx....xxxxxxxxxxxxxx
xx.xx.x..xxx..xx...xxxxxxxx1.xxxx...xxxxxwwwwwwxxxxxx.2.2.xxxxxxxxxxxx
xxxxxx..xxxx...xx.3.xxxxxxxx.1xx''xxxxxwwwwwwwwxxxxxx.54.2.xxxxxxxxxxx
xxxxx..xxxx21.xxxx...xxxx..x..''xxxxxxwwwwwwwxxxx$$x.2465...xxxxxxxxxx
xxxx...xx.12xxxx.x.xxxxx...x.xxxxxxwwwwwwwwxxxxdf$$.......xx.xxxxxxxxx
xxxx..xx...xxxxxx|x.xx...xx.xxxxxwwwwwwwwwwwxxed|*$$...xxxxxx..xxxxxxx
xxxx......xxxxxxxx....xxxxxxxxxxwwwwwwwwwwwwwxxfe||$$$.xxxxxxxx....xxx
xxxxx...xxxxxxxxxxxxxxxxxxxxxxxxxwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxx...<x
xxxx.xxxxxxxxxxx-'xxxxxxxxxxwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xx....xxxxxxxxx....xxxxxxxxxwwwxxxx*xxx$$xxxxxxxx...xx...xxxxxxxxgxxxx
x...A.xxxxxx....xx....xxxxxxxwwwwx*x*xxx$$x-.x...xx...xx...xxxxxgxgxxx
x.<....'-....xxxxxxx...xxxxxwwwwxxx*x.xxxx.'x..xxxxxxxxxx....xxxx.xxxx
xx..xx....xxxxxxxx1111xxxxwwwwwwxxxxxx...xxxxx..xxxxxxxxxx..3..x.xxxxx
xxxxxxxxxxxxxxx....xxxxxxxxwwwwxxxx11..x...x..xxxxwwwxxxxxx.....xxxxxx
xxwxxwxwxxx.....xxxx______xxwwxxxx51xxxxxx..xxxwwwwxwxxxxx..6xxxxxxxxx
xxxwxxxxx..xxxxxx___xx_____xxxx...xxxxwxxxxxxwwwxxxxxxxxx.66xxxwwwxxxx
xwxxxx....xxwxx__xxxxxxxx___xx..xxxwwwxwxxxwwwxxxxxxxx....xxxxwwwxxxxx
xxxx...xxxxwxx_xxxx....xxx__xxx..xxxxxwwwwwwxxxx....x...xxxxwwwxwwwxxx
xxx..xxxwwwwx-xxx...xx...xxx_xxx..xxwwwwwxxxx...xx....xxxwwwxxxxxxwwxx
x...xxwwwwwwxx-...x.xxxx...xx_x..xxxxwwwwxxx..xxxxxxxxxwxxxxxx.xxxxwxx
x..xxxwwwwwxxx141xxxgxxxx...x_xx.11xxxwwwwxxx...xxxwwwwxx...x.x.xxxxxx
xx..xxxwwwwxx...xxxgxxx...xxx_xxxx51xxxwwwxxxx..1.xxxwwx.U...xxx..xxxx
xxx..xwwwwxxxx....xxxx5.xxxwxx_xx...xxxxxwwwxxxx.1.5xxxxx.x.xxx..xxxxx
xx..xxxwwwwxx'x.xxxxx5..5xxwwxx_xxx1.xxxxxwwxxxxx5415.xxxxxx.xx...xxxx
xx...xxwwwxx..'xxxxwxx15.5xxwwxx_xxx51xxxxwwxxxxxx5.41.xxxx..xxx454xxx
xxx..-xxxxx..xxxwxwwwxxx5.1xxwwxx_--x1xxxxxwwwxxxxxx.5..x...xxx5.7.5xx
xxx...-xx-..xxxwxwwxxwxx-x1.xxwwxx'''xxxxxxwwwwxxxxxxx'...xxxxxx5.5xxx
xxx...x--xx..1xxxxxwxx--x-..'xxwx'x'xxxxxwxxwwwwxxxx*.xxxxx.xxx..xxx|x
xxx222x''x''x..xx1xxx----xxxx'xx'''xxxxwxxxwwwwwwxxxx*xxxx.<.xxx.$defx
xxxx'.'xx'xx1.x.1...2xxxxxxxxx'''xxxxwxxwwxwwwwwwwwxxx--........x|fedx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'xxxxwxwwwxwwwwwxwxxxxxxxxxx.xxxxxxxxxx
ENDMAP
NAME: ice_cave_caverns_02
TAGS: ice_cave no_item_gen no_monster_gen no_pool_fixup
WEIGHT: 5
ORIENT: encompass
: if crawl.random2(2) == 0 then
SUBST: '=x , -=.
: else
SUBST: '=. , -=x
: end
: ice_cave_colours(_G)
# two different populations: undead/demon and natural/giant
: if crawl.random2(2) == 0 then
MONS: white imp / human simulacrum w:2 / elf simulacrum w:2 / \
orc simulacrum w:2
MONS: polar bear simulacrum / freezing wraith w:3 / nothing w:1
MONS: ice statue
MONS: ice devil
MONS: draconian simulacrum / ogre simulacrum / centaur simulacrum / \
naga simulacrum / troll simulacrum
MONS: patrolling ice fiend
ITEM: cloak ego:fire_resistance good_item / wizard hat good_item / \
pair of gloves good_item / pair of boots good_item / nothing
ITEM: book of ice / book of unlife / staff of cold / staff of death / \
nothing w:30
ITEM: ring of ice / ring of protection from fire / ring of life protection / \
wand of cold / wand of draining / nothing
: else
MONS: wolf / yak w:3 / nothing w:1
MONS: polar bear / nothing w:5
MONS: ice statue
MONS: polar bear / death yak w:5
MONS: polar bear / yak
MONS: patrolling frost giant
ITEM: animal skin good_item ego:fire_resistance / \
battleaxe good_item ego:freezing w:4 / \
glaive good_item ego:freezing w:4 / \
great sword good_item ego:freezing w:2 / nothing
ITEM: book of ice / \
crossbow ego:frost good_item no_uniq / \
longbow ego:frost good_item no_uniq / nothing w:20
ITEM: ring of ice / ring of protection from fire / wand of cold / \
arrow ego:ice q:25 / bolt ego:ice q:20 / nothing
: end
ITEM: any wand / any potion w:5 / any scroll w:5
# traps:
SUBST: . = .:40 ^:1
: place_fog(_G, "freezing vapour", 50)
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xx..xxwwwwxxx.x.'x-.x5..5xxwwwwwxxx1...x.Wxxxxxx15415.xxxxxx......xxxx
xx.<.xwwwwxx...x.x.x.x15.5xxwwxxx'''..x.xxWWxx15xx5.41.xxxx..xxx...xxx
xxx..xxwwxx..xxx-.'xx.xx5.1xxxx'''xxx.-xxxxWWWxxxxxx....x...xxx..U..xx
xxx.A.xxwx..xxxwxxxwwwwxxx1.x'''xxwwx---xxxxWWwxwwwxxx'...xxxxxx...xxx
xxx...xwwxx...xxxxxwwwwwxx..'xxxxxxxxxx--xxwwwwwwwxx*.xxxxxxxxx..xxxxx
xxx...xxwxxxx..xx1-'xxwwxxx--xxxxx'''x--xxwwwwwwwxx.x*xxxx..xxxx..xxxx
xxxx.11xwwxx1.x.1.1.2xxwx---xx.*.*.xx..xxxwwwwwwwwww-x-x..xx.x..xxxxxx
xxx11.xxwwwxxx1xxxxx1.xxxx--x.g.T.g.xxx..xwwwwwwwwx-xx..xxxxx.xxxxxxxx
xxxx..xwwwwwxx2..1x11..xxxx-...*.*..xx...xxwwwwwwx'...xxxxxxxxxxxxxxxx
xxxxx^xxwxxxxxxxxx.xxx..xwxx...xxxxxxxxx..xxwwwxxx.-xxxxxxxxxxxxxxxxxx
xxxxx..xxxx.x....xxxx...xxwxxx.-xwwwxxx1xxxxwwwxx..xxxxxxxxxxxxxxxxxxx
x*x$xx..xx.*..-'..xxxxx..xxx''.-xwwwx15xxxwwwwxxxx..xxxxxxxxxxxxxxxxxx
xx$x.xx..xx..xxxx..xwwxxx..''xx--xxxx115xxwwwwwxxxx...xxxxxxxxxxxxxxxx
x$x..x.^..xx..xxx..xwwwwxx--xxxx-xx.1.xxxwwwwwwxxxxx....xxxxxxxxxxxxxx
xx.xx.x..xxx..xx...xxwwwwxx1.xxxx...xxxxxwwwwwwxxxxxx.2.2.xxxxxxxxxxxx
xxxxxx..xxxx...xx.3.xxwwxx'-.1x'''xxxxxwwwwwwwwxxxxxx.54.2.xxxxxxxxxxx
xxxxx..xxxx...xxxx...xxxx..x..''xxxxxxwwwwwwwxxxx$$x.2465...xxxxxxxxxx
xxxx5.5xx...xxxx.x.xxxxx...x.xxxxxxwwwwwwwwxxxxdf$$.......xx.xxxxxxxxx
xxxx..xx...xxwwxx|x.xx...xx.xxxxxwwwwwwwwwwwxxed|$$$...xxxxxx..xxxxxxx
xxxx122...xxwwwwxx....xxxxxxxxxxwwwwwwwwwwwwwxxfe|$$$$.xxxxxxxx....xxx
xxxxx1..xxxwwwwwxxxxxxxxxxxxxxxxxwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxx...<x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ENDMAP
NAME: ice_cave_caverns_03
TAGS: ice_cave no_item_gen no_monster_gen no_pool_fixup
WEIGHT: 5
ORIENT: encompass
# a bit of layout randomization for the middle part..
: if crawl.random2(2) == 0 then
SUBST: '=x , -=.
: else
SUBST: '=. , -=x
: end
# two different populations: undead/demon and natural/giant
: if crawl.random2(2) == 0 then
MONS: white imp / human simulacrum w:2 / elf simulacrum w:2 / \
orc simulacrum w:2
MONS: polar bear simulacrum / freezing wraith w:3 / nothing w:1
MONS: ice statue
MONS: ice devil
MONS: draconian simulacrum / ogre simulacrum / centaur simulacrum / \
naga simulacrum / troll simulacrum
MONS: freezing wraith
MONS: patrolling ice fiend
ITEM: cloak ego:fire_resistance good_item / wizard hat good_item / \
pair of gloves good_item / pair of boots good_item / nothing
ITEM: book of ice / book of unlife / staff of cold / staff of death / \
nothing w:30
ITEM: ring of ice / ring of protection from fire / ring of life protection / \
wand of cold / wand of draining / nothing
: else
MONS: wolf / yak w:3 / nothing w:1
MONS: polar bear / nothing w:5
MONS: ice statue
MONS: polar bear / death yak w:5
MONS: polar bear / yak
MONS: wolf
MONS: patrolling frost giant
ITEM: animal skin good_item ego:fire_resistance / \
battleaxe good_item ego:freezing w:4 / \
glaive good_item ego:freezing w:4 / \
great sword good_item ego:freezing w:2 / nothing
ITEM: book of ice / \
crossbow ego:frost good_item no_uniq / \
longbow ego:frost good_item no_uniq / nothing w:20
ITEM: ring of ice / ring of protection from fire / wand of cold / \
arrow ego:ice q:25 / bolt ego:ice q:20 / nothing
: end
ITEM: any wand / any potion w:5 / any scroll w:5
# traps and colours:
SUBST: 3 = 3^
: place_fog(_G, "freezing vapour", 200)
SUBST: . = .:100 ~:1
SUBST: ~ = ^
: place_fog(_G, "freezing vapour", 50)
: ice_cave_colours(_G)
MAP
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.x.xxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.U.x$xxxxxxxx...xx...xxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxwwwwwwwwxxx.xxx$x..x...xx...xx.55xxxxx
xxxxxxxxxxxxxxxxxxxxxxxxwwwwxWWWxxxxxxx..x..xxxxxxxxxx.554xxx
xxxxxxxxxxxxxxxxxxxxxxxxxwxxxxxWwWxWW.xxxxx..xxwwwwwwxx.2525x
xxxxxxxxxxxxxxxxxxxxxwwxxxxxxxxxWWWWxW..xx..xxwwwwwwwwxx427.x
xxxxxxxxxxxxxxxxxxxwwwwwxxxxxxxWWxwWwxx...xxxwwwwwwwxxx..5xxx
xxxxxxxxxxxxxxxxxxxxwwwwwxxx.WWxxxxwwwxxxxxwwwwwwxxxxx...xxxx
xxxxxxxxxxxxxxxxxxxxxxwwwxx.~xxxwwwwwxwwxwwwxxxxxxx....xxxxxx
xxxxxxxxxxxxxxxx....xxxwwwxx..xxxwwwwwwwwwwxx<..^x...xx.xfxxx
xxxxxxxxxxxxxx...xx...xxxwwxx..xxxxwwwwwwwwxxxx....xxxxxex|xx
xxxxxxxxxxxx.44x.xxxx...xxwx..xxxxxxwwxwxwwwwxxxxxxxxxxdx$xdx
xxxxxxxxxxx.4.xxx$xxxx...xwxx~..xxxxxwwwwwxwwwxxxxxxxxxx|xexx
xxxxxxxxxx...xxx$xxx...xxxwwxxx..xxxwwwxxwwwwxwxxxxxxxxxxfxxx
xxxxxxxxxxx....xxxx5.xxxwwwwxx...xxxxxwwwwwwwxxxxxxxxxxxxxxxx
xxxxxxxxxx.x.xxxxx51.5xxwwwwxxxx..xxxxxwwxxxxxxxxxxxxxxxxxxxx
xxxxxxxxx...xxxxxxx15.5xxwwxxx'''~.xxxxwwxxxxxxxxxxxxxxxxxxxx
xxxxxxxx..xxxxxxxxxxx5.1xxxx''xxxx.-xxxxwwwxxxxxxxxxxxxxxxxxx
xxxxxxx.1xxxxxxxxxxxxxx..x'''xxxxx---xxxwwwwxxxxxxxxxxxxxxxxx
xxxxxxxx.11xxxxxxxxxxxx..''xxxxx'xxx--xxxwwwwxxxxxxxxxxxxxxxx
xxxxxxxxxx1.xx.xxxxxxxxx--xxxxx''''--xxxwwwwwwxxxxxxxxxxxxxxx
xxxxxxxxx..x......xxxx---xx.*.*.xx..xxxxwwwwwwwwxxxxxxxxxxxxx
xxxxxxxxxxx.xxxxx..xxxx--x.g.T.g.xxx..xxxwwwwxxxxxxxxxxxxxxxx
xxxxxxxxxxx2..2x....xxxx-...*.*..xx...xxwwwwwwxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx.xxx.1xxxx...xxxxxxxxx..xxwwwxxxxxxxxxxxxxxxxx
xxxxxxxx.x...'xxxx.1.xxxxxx.-xxxxxxx1xxxxwwwxxxxxxxxxxxxxxxxx
xxxxxxx.*66-x..xxxxx11xxxx'.--x---15xxxwwwwxxxxxxxxxxxxxxxxxx
xxx..<xx..xxxx..xxxxxx..''xx-x-xxx115xxwwwwwxxxxxxxxxxxxxxxxx
xxA..xxxx..xxx..xxxxxxx--xxxx-xx.11xxxwwwwwwxxxxxxxxxxxxxxxxx
xx....xxx..xx...xxxxxxxx1.xxx-...xxxxxwwwwwwxxxxxxxxxxxxxxxxx
xx...xxxx...xx.3.xxxxxxxx.1x'''xxxxxwwwwwwwwxxxxxxxxxxxxxxxxx
xx..xxxx21.xxxx...xxxx..x..''xxxxxxwwwwwwwxxxxxxxxxxxxxxxxxxx
x...xx.12xxxx.x.xxxxx...x.xxxxxxwwwwwwwwxxxxxxxxxxxxxxxxxxxxx
x..xx...xxxxxx|x.xx...xx.xxxxxwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxx
x......xxxxxxxx....xxxxxxxxxxwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxx
xx...xxxxxxxxxxxxxxxxxxxxxxxxxwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx