[Deprecated] Creation of dynamic property ParserRegexp::$parser is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 13 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

4  * We cache the last regex result. This is a low-cost optimization, because we have to do an un-anchored match + check match position anyway
5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$rx is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 14 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$matches is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 16 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$match_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 17 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$check_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 18 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;
24 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$parser is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 13 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

4  * We cache the last regex result. This is a low-cost optimization, because we have to do an un-anchored match + check match position anyway
5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$rx is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 14 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$matches is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 16 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$match_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 17 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$check_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 18 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;
24 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$parser is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 13 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

4  * We cache the last regex result. This is a low-cost optimization, because we have to do an un-anchored match + check match position anyway
5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$rx is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 14 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$matches is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 16 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$match_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 17 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$check_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 18 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;
24 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$parser is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 13 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

4  * We cache the last regex result. This is a low-cost optimization, because we have to do an un-anchored match + check match position anyway
5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$rx is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 14 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$matches is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 16 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$match_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 17 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$check_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 18 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;
24 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$parser is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 13 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

4  * We cache the last regex result. This is a low-cost optimization, because we have to do an un-anchored match + check match position anyway
5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$rx is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 14 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$matches is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 16 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$match_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 17 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$check_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 18 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;
24 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$parser is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 13 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

4  * We cache the last regex result. This is a low-cost optimization, because we have to do an un-anchored match + check match position anyway
5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$rx is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 14 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$matches is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 16 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$match_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 17 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$check_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 18 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;
24 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$parser is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 13 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

4  * We cache the last regex result. This is a low-cost optimization, because we have to do an un-anchored match + check match position anyway
5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$rx is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 14 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

5  * (alternative is to do an anchored match on a string cut with substr, but that is very slow for long strings). We then don't need to recheck
6  * for any position between current position and eventual match position - result will be the same
7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$matches is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 16 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

7  *
8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$match_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 17 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

8  *  Of course, the next regex might be outside that bracket - after the bracket if other matches have progressed beyond the match position, or before
9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;

Trace

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

[Deprecated] Creation of dynamic property ParserRegexp::$check_pos is deprecated

GET /www/jarvi/vieraskyna-palsta/nain-sorsatunturi-valloitettiin/

Line 18 in /home/naruskajar/domains/naruskajarvi.fi/public_html/www/vendor/silverstripe/framework/thirdparty/php-peg/Parser.php

Source

9  *  the bracket if a failed match + restore has moved the current position backwards - so we have to check that too.
10  */
11 class ParserRegexp {
12 	function __construct( $parser, $rx ) {
13 		$this->parser = $parser ;
14 		$this->rx = $rx . 'Sx' ;
15 
16 		$this->matches = NULL ;
17 		$this->match_pos = NULL ; // NULL is no-match-to-end-of-string, unless check_pos also == NULL, in which case means undefined
18 		$this->check_pos = NULL ;
19 	}
20 
21 	function match() {
22 		$current_pos = $this->parser->pos ;
23 		$dirty = $this->check_pos === NULL || $this->check_pos > $current_pos || ( $this->match_pos !== NULL && $this->match_pos < $current_pos ) ;
24 

Trace

Näin Sorsatunturi valloitettiin

Näin Sorsatunturi valloitettiin

Naruska-Kullajärven kalastusyhtymä järjesti opastetun vaelluksen Sorsatunturille lauantaina 3.9.2011. Olin ilmoittautunut reissulle jo hyvissä ajoin, mutta ajankohdan lähestyessä Kivelän Kari ilmoitti, ettei muita ollut ilmoittautunut. Harmittelin tilannetta, mutta hän lupasi lähteä opastamaan, jos olin kiinnostunut lähtemään. Olinko kiinnostunut!!! Tällaista tilaisuutta ei minulle varmasti ihan heti suoda. Tällaisen "myöhäisheränneen" vaeltajan on turvallisinta lähteä uuteen maastoon oppaan reppua seuraten.

Niinpä lauantaiaamuna, 3.9. muutama minuutti yli seitsemän oli kahden hengen vaellusjoukkue valmiina patikoimaan. Aamu oli pilvinen, mutta se ei intoa haitannut. Repussa painoi hieman varavaatteita, eväsleipiä, kahvitermos, kaksi vesipulloa, pastaruokapakkaus, kuksa, puukko, pieni ensiapupakkaus ja tietysti kamera. Rivakasti lähdin oppaan perässä maastoon - ei tasaiseksi tallotulle patikkapolulle. Kari kulki gps-laite apunaan ja minä tallasin perässä, aluksi vaaran kuvetta ylös - luulot siis pois aloittelijalta! Sykkeen nousu sai aika pahasti puuskuttamaan ennen kuin elimistö alkoi tottua menoon. Tavoitteenani oli pitää oppaan reppu ja lippis näkyvissä. Hän pysähtyi välillä katsomaan, miten minä pärjäsin ja vakuutti, ettei meillä ole kiirettä.

Maasto oli kiipeämistä lukuunottamatta melko helppokulkuista kangasta aluksi. Aitatsivaaran poroaidan ohitettuamme saavuimme Kettukurulle. Pian maasto vaihtui soiseksi. Suoalueen ylitys vei meitä kohti UKK-reitin polkua. Suossa tarpominen ei ole oikein minun juttuni, mutta sitkeästi selvitin sen. Polulle päästyämme kulku taas helpottui. Oli mahdollista vilkuilla välillä upeaa erämaaluontoakin ympärillä, vaikka polun kivet ja juurakot piti tietysti koko ajan huomioida.

Ensimmäisen pitemmän tauon pidimme Aitatsivaaran tulipaikalla. Vesitankkauksen ja hetken huokaisun jälkeen vaellus jatkui pitkospuita ja UKK-polkua pitkin Vaarinkehuman kämpälle. Siellä olimme päättäneet pitää evästauon. Kun saavuimme harmaan kelokämpän tulipaikalle,oli matkaa takana noin 10 kilometriä ja aikaa oli kulunut 3,5 tuntia. Vointini oli hieno. Aurinkokin oli jo näkyvissä. Puolen tunnin tauko evästelyn merkeissä teki hyvää ennen "vuorikiipeilyosuutta" Sorsatunturin huipulle. Täytimme vielä vesipullot tunturipurosta ja aloitimme sitten puolentoista tunnin kivisen kipuamisen kohti huippua.

Jonkun matkan päässä polun kosteassa kohdassa näkyi selkeä, tuore tassun jälki. (Se näytti melko pieneltä, mutta paluumatkalla näimme samassa paikassa useammankin jäljen, ja myöhemmin selvisi, että ne olivat karhun jälkiä). Minä, joka kovasti toivoisin näkeväni karhun luonnossa, olin siis NÄIN LÄHELLÄ KARHUA! Hännänpäätäkään ei valitettavasti näkynyt. Olisinko pelästynyt sitä? Ehkäpä, mutta silti unelmoin otson näkemisestä.

Ylemmäs päästyämme seurasimme moottorikelkkareitin merkkejä. Kieli keskellä suuta piti välillä siirtyä kiveltä kivelle. Kyllähän se Kivelältä sujui - minultakin melko hyvin.

Pysähdyimme hetkeksi tarkkailemaan riekkoparvea, joka lehahti lentoon edestämme ja lensi vähän matkan pähän kadoten lähes täydellisesti suojavärinsä turvin kivirakkaan.

 Tuntui uskomattoman hienolta, kun Sorsatunturin huippu sitten näkyi yläpuolella. ja se vasta järisytti, kun vihdoin seisoin siellä huipulla.

 

  

Se ei ollut huiputus - se oli minulle VALLOITUS!

 

Sää oli muuttunut kertakaikkiaan upeaksi: kirkas auringonpaiste huikaisevan sinisellä taivaalla ja hämmästyttävän lempeä tuulenvire. Kaksi tuulihaukkaa kävi toivottamassa meidät tervetulleeksi. Mykistyneenä tuijotin maisemaa: erämaata silmänkantamattomiin, tunturin jyrkkää rinnettä toisella puolella, sen alla avautuvaa kosteikkoa. HENGÄSTYTTÄVÄÄ, SYDÄMENTYKYTYSTÄ AIHEUTTAVAA, SUURTA VAPAUDENTUNNETTA!

Koska tuuli ei ollut haittana, päätimme ruokailla "näköalaravintolassa" huipulla. Trangiassa keitetty vesi kaadettiin pussiin, jossa oli pasta-ainekset. Pussin suu kiinni hämmentelyn jälkeen, 15 minuutin odotus ja ateria oli valmis. Viipyilimme tunnin verran huipulla. Mieli olisi tehnyt jäädä pitemmäksikin aikaa. Totuus oli kuitenkin se, että takaisin olisi yhtä pitkä matka, ei ihan tuoreilla jaloilla ja kello oli ko kaksi.

Alaskiipeämistä jännitin polveni takia, mutta apteekista hankkimani hyvä polvituki oli hintansa arvoinen, ongelmia ei tullut. Tunnissa pääsimme takaisin Vaarinkehumalle. Siellä hengähdimme taas ja täytimme vesipullot. Puolen tunnin tauon jälkeen oli hyvä jatkaa paluuta UKK-polkua takaisin lähtöön.

  Matkan varrella näimme karhun tuoreen mustikkajätöksen ja pari muurahaispesää, joilla otso oli käynyt vierailulla.

UKK:lta käännyimme Aitatsivaaran suuntaan ja edelläni oppaan reppu vilkkui kohti suoaluetta. Hän huomasi pian , että se oli minulle melko kova koitos väsynein jaloin, joten hän palasi takaisin vaaran rinteen varvukkoon. Viimeisellä juomatauolla sain tsemppausta, ettei matkaa ole jäljellä kuin puolitoista kilometriä. Siinä vaiheessa tsemppi olikin jo tarpeen. Mietin, saanko jalat vielä liikkeelle loppupinnistykseen. Sitkeästi oli kuitenkin edettävä ja auton näkeminen tuntui ihanalta.

USKOMATON ITSELLENI OLI TÄMÄ SAAVUTUS! LÖYSIN PALAN ITSEÄNI SIELTÄ TUNTURIN LAELTA. Tämä ei koskaan unohdu. Kannattaa lähteä Sorsalle!

Ajatelkaa! 27,2 km, vaeltaen 8h 51 min, taukoja välillä yhteensä 3h 9 min. Keskinopeus 3,1 km/h. Koko reissu siis tasan 12 tuntia. MINÄ TEIN SEN! TEE SINÄKIN!

Anna-Maija Valkama, Salla / Hämeenkyrö

PS. Lisää patikkaretken valokuvia löytyy galleriasta, aktiviteetit 2011 osiosta, sivut 2 ja 3; linkki Galleria,
- kari