Benjamin Harris 2 тижнів тому
коміт
2057150c2a
100 змінених файлів з 2482 додано та 0 видалено
  1. 19 0
      .htaccess
  2. 1994 0
      Parsedown.php
  3. 167 0
      base.php
  4. 0 0
      classes/.htaccess
  5. 214 0
      classes/OLD-list_lookup.php
  6. 1 0
      classes/cache/v2-latlng--39.753458_143.915816.json
  7. 0 0
      classes/cache/v2-latlng--39.918659_144.119984.json
  8. 1 0
      classes/cache/v2-latlng--40.047418_144.053897.json
  9. 1 0
      classes/cache/v2-latlng--40.072927_148.043253.json
  10. 1 0
      classes/cache/v2-latlng--40.761250_145.293429.json
  11. 1 0
      classes/cache/v2-latlng--40.764533_145.297327.json
  12. 1 0
      classes/cache/v2-latlng--40.791365_147.998563.json
  13. 0 0
      classes/cache/v2-latlng--40.816805_145.189097.json
  14. 1 0
      classes/cache/v2-latlng--40.827668_145.099637.json
  15. 1 0
      classes/cache/v2-latlng--40.846204_145.193508.json
  16. 1 0
      classes/cache/v2-latlng--40.851675_145.125747.json
  17. 1 0
      classes/cache/v2-latlng--40.855919_145.265445.json
  18. 1 0
      classes/cache/v2-latlng--40.865284_145.213936.json
  19. 1 0
      classes/cache/v2-latlng--40.868097_147.760407.json
  20. 1 0
      classes/cache/v2-latlng--40.870669_145.438948.json
  21. 1 0
      classes/cache/v2-latlng--40.878199_145.104881.json
  22. 1 0
      classes/cache/v2-latlng--40.884631_145.424336.json
  23. 1 0
      classes/cache/v2-latlng--40.893513_148.157788.json
  24. 1 0
      classes/cache/v2-latlng--40.897702_145.106624.json
  25. 1 0
      classes/cache/v2-latlng--40.907997_145.543959.json
  26. 1 0
      classes/cache/v2-latlng--40.909604_145.545871.json
  27. 1 0
      classes/cache/v2-latlng--40.910788_145.547524.json
  28. 1 0
      classes/cache/v2-latlng--40.911170_145.546943.json
  29. 1 0
      classes/cache/v2-latlng--40.911483_145.547731.json
  30. 1 0
      classes/cache/v2-latlng--40.911620_145.545667.json
  31. 1 0
      classes/cache/v2-latlng--40.912866_145.549926.json
  32. 1 0
      classes/cache/v2-latlng--40.913338_145.551434.json
  33. 1 0
      classes/cache/v2-latlng--40.914887_145.551493.json
  34. 1 0
      classes/cache/v2-latlng--40.916232_145.143687.json
  35. 1 0
      classes/cache/v2-latlng--40.917633_145.558938.json
  36. 1 0
      classes/cache/v2-latlng--40.917843_145.563515.json
  37. 1 0
      classes/cache/v2-latlng--40.919428_145.562537.json
  38. 1 0
      classes/cache/v2-latlng--40.920928_145.558231.json
  39. 1 0
      classes/cache/v2-latlng--40.920939_145.562584.json
  40. 1 0
      classes/cache/v2-latlng--40.922456_145.558990.json
  41. 1 0
      classes/cache/v2-latlng--40.923764_145.557692.json
  42. 1 0
      classes/cache/v2-latlng--40.925496_145.566141.json
  43. 1 0
      classes/cache/v2-latlng--40.926690_145.615082.json
  44. 1 0
      classes/cache/v2-latlng--40.929346_145.617429.json
  45. 1 0
      classes/cache/v2-latlng--40.929746_145.615981.json
  46. 1 0
      classes/cache/v2-latlng--40.929936_145.617726.json
  47. 1 0
      classes/cache/v2-latlng--40.929960_145.617978.json
  48. 1 0
      classes/cache/v2-latlng--40.930318_145.618495.json
  49. 1 0
      classes/cache/v2-latlng--40.931272_145.618665.json
  50. 1 0
      classes/cache/v2-latlng--40.931575_145.620434.json
  51. 0 0
      classes/cache/v2-latlng--40.934262_145.637004.json
  52. 1 0
      classes/cache/v2-latlng--40.935056_145.619339.json
  53. 1 0
      classes/cache/v2-latlng--40.937376_145.605904.json
  54. 1 0
      classes/cache/v2-latlng--40.938803_145.624285.json
  55. 1 0
      classes/cache/v2-latlng--40.938937_148.021223.json
  56. 0 0
      classes/cache/v2-latlng--40.946534_147.592289.json
  57. 1 0
      classes/cache/v2-latlng--40.948684_145.629106.json
  58. 1 0
      classes/cache/v2-latlng--40.949422_145.626565.json
  59. 1 0
      classes/cache/v2-latlng--40.951794_145.622985.json
  60. 1 0
      classes/cache/v2-latlng--40.953233_145.680278.json
  61. 1 0
      classes/cache/v2-latlng--40.954976_145.622119.json
  62. 1 0
      classes/cache/v2-latlng--40.959143_145.164604.json
  63. 1 0
      classes/cache/v2-latlng--40.960879_147.615581.json
  64. 0 0
      classes/cache/v2-latlng--40.968054_145.681713.json
  65. 0 0
      classes/cache/v2-latlng--40.970043_145.685406.json
  66. 0 0
      classes/cache/v2-latlng--40.974661_147.566052.json
  67. 1 0
      classes/cache/v2-latlng--40.976974_145.719289.json
  68. 1 0
      classes/cache/v2-latlng--40.977400_145.696788.json
  69. 1 0
      classes/cache/v2-latlng--40.978352_145.726057.json
  70. 1 0
      classes/cache/v2-latlng--40.979645_145.727148.json
  71. 1 0
      classes/cache/v2-latlng--40.981022_145.723299.json
  72. 1 0
      classes/cache/v2-latlng--40.981357_145.693883.json
  73. 1 0
      classes/cache/v2-latlng--40.981512_145.535028.json
  74. 1 0
      classes/cache/v2-latlng--40.981799_145.626519.json
  75. 1 0
      classes/cache/v2-latlng--40.984455_145.710915.json
  76. 1 0
      classes/cache/v2-latlng--40.984506_145.719278.json
  77. 1 0
      classes/cache/v2-latlng--40.985141_147.389618.json
  78. 1 0
      classes/cache/v2-latlng--40.985149_145.666306.json
  79. 1 0
      classes/cache/v2-latlng--40.985304_145.671570.json
  80. 1 0
      classes/cache/v2-latlng--40.985704_145.713960.json
  81. 1 0
      classes/cache/v2-latlng--40.986896_147.387930.json
  82. 1 0
      classes/cache/v2-latlng--40.986902_145.692621.json
  83. 1 0
      classes/cache/v2-latlng--40.987044_145.704851.json
  84. 1 0
      classes/cache/v2-latlng--40.987484_145.693704.json
  85. 1 0
      classes/cache/v2-latlng--40.987722_147.387262.json
  86. 1 0
      classes/cache/v2-latlng--40.987771_147.388020.json
  87. 1 0
      classes/cache/v2-latlng--40.988243_145.730242.json
  88. 1 0
      classes/cache/v2-latlng--40.988403_145.659014.json
  89. 1 0
      classes/cache/v2-latlng--40.988403_145.729319.json
  90. 1 0
      classes/cache/v2-latlng--40.988694_147.386409.json
  91. 1 0
      classes/cache/v2-latlng--40.988859_145.728162.json
  92. 1 0
      classes/cache/v2-latlng--40.989160_145.717765.json
  93. 1 0
      classes/cache/v2-latlng--40.989303_147.387402.json
  94. 1 0
      classes/cache/v2-latlng--40.989307_145.709944.json
  95. 1 0
      classes/cache/v2-latlng--40.989413_145.721760.json
  96. 1 0
      classes/cache/v2-latlng--40.989417_145.721514.json
  97. 1 0
      classes/cache/v2-latlng--40.990192_145.736229.json
  98. 1 0
      classes/cache/v2-latlng--40.990250_147.386919.json
  99. 1 0
      classes/cache/v2-latlng--40.990462_147.387427.json
  100. 1 0
      classes/cache/v2-latlng--40.990718_147.388219.json

+ 19 - 0
.htaccess

@@ -0,0 +1,19 @@
+# disable the server signature
+ServerSignature Off
+
+# remove php and html extensions
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteRule ^([^\.]+)$ $1.php [NC,L]
+RewriteRule ^([^\.]+)$ $1.html [NC,L]
+
+# Disable directory browsing
+Options -Indexes
+
+# Additional security
+<FilesMatch "config\.php$">
+    Require all denied
+</FilesMatch>
+
+<FilesMatch "\.md$">
+    Require all denied
+</FilesMatch>

+ 1994 - 0
Parsedown.php

@@ -0,0 +1,1994 @@
+<?php
+
+#
+#
+# Parsedown
+# http://parsedown.org
+#
+# (c) Emanuil Rusev
+# http://erusev.com
+#
+# For the full license information, view the LICENSE file that was distributed
+# with this source code.
+#
+#
+
+class Parsedown
+{
+    # ~
+
+    const version = '1.8.0';
+
+    # ~
+
+    function text($text)
+    {
+        $Elements = $this->textElements($text);
+
+        # convert to markup
+        $markup = $this->elements($Elements);
+
+        # trim line breaks
+        $markup = trim($markup, "\n");
+
+        return $markup;
+    }
+
+    protected function textElements($text)
+    {
+        # make sure no definitions are set
+        $this->DefinitionData = array();
+
+        # standardize line breaks
+        $text = str_replace(array("\r\n", "\r"), "\n", $text);
+
+        # remove surrounding line breaks
+        $text = trim($text, "\n");
+
+        # split text into lines
+        $lines = explode("\n", $text);
+
+        # iterate through lines to identify blocks
+        return $this->linesElements($lines);
+    }
+
+    #
+    # Setters
+    #
+
+    function setBreaksEnabled($breaksEnabled)
+    {
+        $this->breaksEnabled = $breaksEnabled;
+
+        return $this;
+    }
+
+    protected $breaksEnabled;
+
+    function setMarkupEscaped($markupEscaped)
+    {
+        $this->markupEscaped = $markupEscaped;
+
+        return $this;
+    }
+
+    protected $markupEscaped;
+
+    function setUrlsLinked($urlsLinked)
+    {
+        $this->urlsLinked = $urlsLinked;
+
+        return $this;
+    }
+
+    protected $urlsLinked = true;
+
+    function setSafeMode($safeMode)
+    {
+        $this->safeMode = (bool) $safeMode;
+
+        return $this;
+    }
+
+    protected $safeMode;
+
+    function setStrictMode($strictMode)
+    {
+        $this->strictMode = (bool) $strictMode;
+
+        return $this;
+    }
+
+    protected $strictMode;
+
+    protected $safeLinksWhitelist = array(
+        'http://',
+        'https://',
+        'ftp://',
+        'ftps://',
+        'mailto:',
+        'tel:',
+        'data:image/png;base64,',
+        'data:image/gif;base64,',
+        'data:image/jpeg;base64,',
+        'irc:',
+        'ircs:',
+        'git:',
+        'ssh:',
+        'news:',
+        'steam:',
+    );
+
+    #
+    # Lines
+    #
+
+    protected $BlockTypes = array(
+        '#' => array('Header'),
+        '*' => array('Rule', 'List'),
+        '+' => array('List'),
+        '-' => array('SetextHeader', 'Table', 'Rule', 'List'),
+        '0' => array('List'),
+        '1' => array('List'),
+        '2' => array('List'),
+        '3' => array('List'),
+        '4' => array('List'),
+        '5' => array('List'),
+        '6' => array('List'),
+        '7' => array('List'),
+        '8' => array('List'),
+        '9' => array('List'),
+        ':' => array('Table'),
+        '<' => array('Comment', 'Markup'),
+        '=' => array('SetextHeader'),
+        '>' => array('Quote'),
+        '[' => array('Reference'),
+        '_' => array('Rule'),
+        '`' => array('FencedCode'),
+        '|' => array('Table'),
+        '~' => array('FencedCode'),
+    );
+
+    # ~
+
+    protected $unmarkedBlockTypes = array(
+        'Code',
+    );
+
+    #
+    # Blocks
+    #
+
+    protected function lines(array $lines)
+    {
+        return $this->elements($this->linesElements($lines));
+    }
+
+    protected function linesElements(array $lines)
+    {
+        $Elements = array();
+        $CurrentBlock = null;
+
+        foreach ($lines as $line)
+        {
+            if (chop($line) === '')
+            {
+                if (isset($CurrentBlock))
+                {
+                    $CurrentBlock['interrupted'] = (isset($CurrentBlock['interrupted'])
+                        ? $CurrentBlock['interrupted'] + 1 : 1
+                    );
+                }
+
+                continue;
+            }
+
+            while (($beforeTab = strstr($line, "\t", true)) !== false)
+            {
+                $shortage = 4 - mb_strlen($beforeTab, 'utf-8') % 4;
+
+                $line = $beforeTab
+                    . str_repeat(' ', $shortage)
+                    . substr($line, strlen($beforeTab) + 1)
+                ;
+            }
+
+            $indent = strspn($line, ' ');
+
+            $text = $indent > 0 ? substr($line, $indent) : $line;
+
+            # ~
+
+            $Line = array('body' => $line, 'indent' => $indent, 'text' => $text);
+
+            # ~
+
+            if (isset($CurrentBlock['continuable']))
+            {
+                $methodName = 'block' . $CurrentBlock['type'] . 'Continue';
+                $Block = $this->$methodName($Line, $CurrentBlock);
+
+                if (isset($Block))
+                {
+                    $CurrentBlock = $Block;
+
+                    continue;
+                }
+                else
+                {
+                    if ($this->isBlockCompletable($CurrentBlock['type']))
+                    {
+                        $methodName = 'block' . $CurrentBlock['type'] . 'Complete';
+                        $CurrentBlock = $this->$methodName($CurrentBlock);
+                    }
+                }
+            }
+
+            # ~
+
+            $marker = $text[0];
+
+            # ~
+
+            $blockTypes = $this->unmarkedBlockTypes;
+
+            if (isset($this->BlockTypes[$marker]))
+            {
+                foreach ($this->BlockTypes[$marker] as $blockType)
+                {
+                    $blockTypes []= $blockType;
+                }
+            }
+
+            #
+            # ~
+
+            foreach ($blockTypes as $blockType)
+            {
+                $Block = $this->{"block$blockType"}($Line, $CurrentBlock);
+
+                if (isset($Block))
+                {
+                    $Block['type'] = $blockType;
+
+                    if ( ! isset($Block['identified']))
+                    {
+                        if (isset($CurrentBlock))
+                        {
+                            $Elements[] = $this->extractElement($CurrentBlock);
+                        }
+
+                        $Block['identified'] = true;
+                    }
+
+                    if ($this->isBlockContinuable($blockType))
+                    {
+                        $Block['continuable'] = true;
+                    }
+
+                    $CurrentBlock = $Block;
+
+                    continue 2;
+                }
+            }
+
+            # ~
+
+            if (isset($CurrentBlock) and $CurrentBlock['type'] === 'Paragraph')
+            {
+                $Block = $this->paragraphContinue($Line, $CurrentBlock);
+            }
+
+            if (isset($Block))
+            {
+                $CurrentBlock = $Block;
+            }
+            else
+            {
+                if (isset($CurrentBlock))
+                {
+                    $Elements[] = $this->extractElement($CurrentBlock);
+                }
+
+                $CurrentBlock = $this->paragraph($Line);
+
+                $CurrentBlock['identified'] = true;
+            }
+        }
+
+        # ~
+
+        if (isset($CurrentBlock['continuable']) and $this->isBlockCompletable($CurrentBlock['type']))
+        {
+            $methodName = 'block' . $CurrentBlock['type'] . 'Complete';
+            $CurrentBlock = $this->$methodName($CurrentBlock);
+        }
+
+        # ~
+
+        if (isset($CurrentBlock))
+        {
+            $Elements[] = $this->extractElement($CurrentBlock);
+        }
+
+        # ~
+
+        return $Elements;
+    }
+
+    protected function extractElement(array $Component)
+    {
+        if ( ! isset($Component['element']))
+        {
+            if (isset($Component['markup']))
+            {
+                $Component['element'] = array('rawHtml' => $Component['markup']);
+            }
+            elseif (isset($Component['hidden']))
+            {
+                $Component['element'] = array();
+            }
+        }
+
+        return $Component['element'];
+    }
+
+    protected function isBlockContinuable($Type)
+    {
+        return method_exists($this, 'block' . $Type . 'Continue');
+    }
+
+    protected function isBlockCompletable($Type)
+    {
+        return method_exists($this, 'block' . $Type . 'Complete');
+    }
+
+    #
+    # Code
+
+    protected function blockCode($Line, $Block = null)
+    {
+        if (isset($Block) and $Block['type'] === 'Paragraph' and ! isset($Block['interrupted']))
+        {
+            return;
+        }
+
+        if ($Line['indent'] >= 4)
+        {
+            $text = substr($Line['body'], 4);
+
+            $Block = array(
+                'element' => array(
+                    'name' => 'pre',
+                    'element' => array(
+                        'name' => 'code',
+                        'text' => $text,
+                    ),
+                ),
+            );
+
+            return $Block;
+        }
+    }
+
+    protected function blockCodeContinue($Line, $Block)
+    {
+        if ($Line['indent'] >= 4)
+        {
+            if (isset($Block['interrupted']))
+            {
+                $Block['element']['element']['text'] .= str_repeat("\n", $Block['interrupted']);
+
+                unset($Block['interrupted']);
+            }
+
+            $Block['element']['element']['text'] .= "\n";
+
+            $text = substr($Line['body'], 4);
+
+            $Block['element']['element']['text'] .= $text;
+
+            return $Block;
+        }
+    }
+
+    protected function blockCodeComplete($Block)
+    {
+        return $Block;
+    }
+
+    #
+    # Comment
+
+    protected function blockComment($Line)
+    {
+        if ($this->markupEscaped or $this->safeMode)
+        {
+            return;
+        }
+
+        if (strpos($Line['text'], '<!--') === 0)
+        {
+            $Block = array(
+                'element' => array(
+                    'rawHtml' => $Line['body'],
+                    'autobreak' => true,
+                ),
+            );
+
+            if (strpos($Line['text'], '-->') !== false)
+            {
+                $Block['closed'] = true;
+            }
+
+            return $Block;
+        }
+    }
+
+    protected function blockCommentContinue($Line, array $Block)
+    {
+        if (isset($Block['closed']))
+        {
+            return;
+        }
+
+        $Block['element']['rawHtml'] .= "\n" . $Line['body'];
+
+        if (strpos($Line['text'], '-->') !== false)
+        {
+            $Block['closed'] = true;
+        }
+
+        return $Block;
+    }
+
+    #
+    # Fenced Code
+
+    protected function blockFencedCode($Line)
+    {
+        $marker = $Line['text'][0];
+
+        $openerLength = strspn($Line['text'], $marker);
+
+        if ($openerLength < 3)
+        {
+            return;
+        }
+
+        $infostring = trim(substr($Line['text'], $openerLength), "\t ");
+
+        if (strpos($infostring, '`') !== false)
+        {
+            return;
+        }
+
+        $Element = array(
+            'name' => 'code',
+            'text' => '',
+        );
+
+        if ($infostring !== '')
+        {
+            /**
+             * https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#classes
+             * Every HTML element may have a class attribute specified.
+             * The attribute, if specified, must have a value that is a set
+             * of space-separated tokens representing the various classes
+             * that the element belongs to.
+             * [...]
+             * The space characters, for the purposes of this specification,
+             * are U+0020 SPACE, U+0009 CHARACTER TABULATION (tab),
+             * U+000A LINE FEED (LF), U+000C FORM FEED (FF), and
+             * U+000D CARRIAGE RETURN (CR).
+             */
+            $language = substr($infostring, 0, strcspn($infostring, " \t\n\f\r"));
+
+            $Element['attributes'] = array('class' => "language-$language");
+        }
+
+        $Block = array(
+            'char' => $marker,
+            'openerLength' => $openerLength,
+            'element' => array(
+                'name' => 'pre',
+                'element' => $Element,
+            ),
+        );
+
+        return $Block;
+    }
+
+    protected function blockFencedCodeContinue($Line, $Block)
+    {
+        if (isset($Block['complete']))
+        {
+            return;
+        }
+
+        if (isset($Block['interrupted']))
+        {
+            $Block['element']['element']['text'] .= str_repeat("\n", $Block['interrupted']);
+
+            unset($Block['interrupted']);
+        }
+
+        if (($len = strspn($Line['text'], $Block['char'])) >= $Block['openerLength']
+            and chop(substr($Line['text'], $len), ' ') === ''
+        ) {
+            $Block['element']['element']['text'] = substr($Block['element']['element']['text'], 1);
+
+            $Block['complete'] = true;
+
+            return $Block;
+        }
+
+        $Block['element']['element']['text'] .= "\n" . $Line['body'];
+
+        return $Block;
+    }
+
+    protected function blockFencedCodeComplete($Block)
+    {
+        return $Block;
+    }
+
+    #
+    # Header
+
+    protected function blockHeader($Line)
+    {
+        $level = strspn($Line['text'], '#');
+
+        if ($level > 6)
+        {
+            return;
+        }
+
+        $text = trim($Line['text'], '#');
+
+        if ($this->strictMode and isset($text[0]) and $text[0] !== ' ')
+        {
+            return;
+        }
+
+        $text = trim($text, ' ');
+
+        $Block = array(
+            'element' => array(
+                'name' => 'h' . $level,
+                'handler' => array(
+                    'function' => 'lineElements',
+                    'argument' => $text,
+                    'destination' => 'elements',
+                )
+            ),
+        );
+
+        return $Block;
+    }
+
+    #
+    # List
+
+    protected function blockList($Line, ?array $CurrentBlock = null)
+    {
+        list($name, $pattern) = $Line['text'][0] <= '-' ? array('ul', '[*+-]') : array('ol', '[0-9]{1,9}+[.\)]');
+
+        if (preg_match('/^('.$pattern.'([ ]++|$))(.*+)/', $Line['text'], $matches))
+        {
+            $contentIndent = strlen($matches[2]);
+
+            if ($contentIndent >= 5)
+            {
+                $contentIndent -= 1;
+                $matches[1] = substr($matches[1], 0, -$contentIndent);
+                $matches[3] = str_repeat(' ', $contentIndent) . $matches[3];
+            }
+            elseif ($contentIndent === 0)
+            {
+                $matches[1] .= ' ';
+            }
+
+            $markerWithoutWhitespace = strstr($matches[1], ' ', true);
+
+            $Block = array(
+                'indent' => $Line['indent'],
+                'pattern' => $pattern,
+                'data' => array(
+                    'type' => $name,
+                    'marker' => $matches[1],
+                    'markerType' => ($name === 'ul' ? $markerWithoutWhitespace : substr($markerWithoutWhitespace, -1)),
+                ),
+                'element' => array(
+                    'name' => $name,
+                    'elements' => array(),
+                ),
+            );
+            $Block['data']['markerTypeRegex'] = preg_quote($Block['data']['markerType'], '/');
+
+            if ($name === 'ol')
+            {
+                $listStart = ltrim(strstr($matches[1], $Block['data']['markerType'], true), '0') ?: '0';
+
+                if ($listStart !== '1')
+                {
+                    if (
+                        isset($CurrentBlock)
+                        and $CurrentBlock['type'] === 'Paragraph'
+                        and ! isset($CurrentBlock['interrupted'])
+                    ) {
+                        return;
+                    }
+
+                    $Block['element']['attributes'] = array('start' => $listStart);
+                }
+            }
+
+            $Block['li'] = array(
+                'name' => 'li',
+                'handler' => array(
+                    'function' => 'li',
+                    'argument' => !empty($matches[3]) ? array($matches[3]) : array(),
+                    'destination' => 'elements'
+                )
+            );
+
+            $Block['element']['elements'] []= & $Block['li'];
+
+            return $Block;
+        }
+    }
+
+    protected function blockListContinue($Line, array $Block)
+    {
+        if (isset($Block['interrupted']) and empty($Block['li']['handler']['argument']))
+        {
+            return null;
+        }
+
+        $requiredIndent = ($Block['indent'] + strlen($Block['data']['marker']));
+
+        if ($Line['indent'] < $requiredIndent
+            and (
+                (
+                    $Block['data']['type'] === 'ol'
+                    and preg_match('/^[0-9]++'.$Block['data']['markerTypeRegex'].'(?:[ ]++(.*)|$)/', $Line['text'], $matches)
+                ) or (
+                    $Block['data']['type'] === 'ul'
+                    and preg_match('/^'.$Block['data']['markerTypeRegex'].'(?:[ ]++(.*)|$)/', $Line['text'], $matches)
+                )
+            )
+        ) {
+            if (isset($Block['interrupted']))
+            {
+                $Block['li']['handler']['argument'] []= '';
+
+                $Block['loose'] = true;
+
+                unset($Block['interrupted']);
+            }
+
+            unset($Block['li']);
+
+            $text = isset($matches[1]) ? $matches[1] : '';
+
+            $Block['indent'] = $Line['indent'];
+
+            $Block['li'] = array(
+                'name' => 'li',
+                'handler' => array(
+                    'function' => 'li',
+                    'argument' => array($text),
+                    'destination' => 'elements'
+                )
+            );
+
+            $Block['element']['elements'] []= & $Block['li'];
+
+            return $Block;
+        }
+        elseif ($Line['indent'] < $requiredIndent and $this->blockList($Line))
+        {
+            return null;
+        }
+
+        if ($Line['text'][0] === '[' and $this->blockReference($Line))
+        {
+            return $Block;
+        }
+
+        if ($Line['indent'] >= $requiredIndent)
+        {
+            if (isset($Block['interrupted']))
+            {
+                $Block['li']['handler']['argument'] []= '';
+
+                $Block['loose'] = true;
+
+                unset($Block['interrupted']);
+            }
+
+            $text = substr($Line['body'], $requiredIndent);
+
+            $Block['li']['handler']['argument'] []= $text;
+
+            return $Block;
+        }
+
+        if ( ! isset($Block['interrupted']))
+        {
+            $text = preg_replace('/^[ ]{0,'.$requiredIndent.'}+/', '', $Line['body']);
+
+            $Block['li']['handler']['argument'] []= $text;
+
+            return $Block;
+        }
+    }
+
+    protected function blockListComplete(array $Block)
+    {
+        if (isset($Block['loose']))
+        {
+            foreach ($Block['element']['elements'] as &$li)
+            {
+                if (end($li['handler']['argument']) !== '')
+                {
+                    $li['handler']['argument'] []= '';
+                }
+            }
+        }
+
+        return $Block;
+    }
+
+    #
+    # Quote
+
+    protected function blockQuote($Line)
+    {
+        if (preg_match('/^>[ ]?+(.*+)/', $Line['text'], $matches))
+        {
+            $Block = array(
+                'element' => array(
+                    'name' => 'blockquote',
+                    'handler' => array(
+                        'function' => 'linesElements',
+                        'argument' => (array) $matches[1],
+                        'destination' => 'elements',
+                    )
+                ),
+            );
+
+            return $Block;
+        }
+    }
+
+    protected function blockQuoteContinue($Line, array $Block)
+    {
+        if (isset($Block['interrupted']))
+        {
+            return;
+        }
+
+        if ($Line['text'][0] === '>' and preg_match('/^>[ ]?+(.*+)/', $Line['text'], $matches))
+        {
+            $Block['element']['handler']['argument'] []= $matches[1];
+
+            return $Block;
+        }
+
+        if ( ! isset($Block['interrupted']))
+        {
+            $Block['element']['handler']['argument'] []= $Line['text'];
+
+            return $Block;
+        }
+    }
+
+    #
+    # Rule
+
+    protected function blockRule($Line)
+    {
+        $marker = $Line['text'][0];
+
+        if (substr_count($Line['text'], $marker) >= 3 and chop($Line['text'], " $marker") === '')
+        {
+            $Block = array(
+                'element' => array(
+                    'name' => 'hr',
+                ),
+            );
+
+            return $Block;
+        }
+    }
+
+    #
+    # Setext
+
+    protected function blockSetextHeader($Line, ?array $Block = null)
+    {
+        if ( ! isset($Block) or $Block['type'] !== 'Paragraph' or isset($Block['interrupted']))
+        {
+            return;
+        }
+
+        if ($Line['indent'] < 4 and chop(chop($Line['text'], ' '), $Line['text'][0]) === '')
+        {
+            $Block['element']['name'] = $Line['text'][0] === '=' ? 'h1' : 'h2';
+
+            return $Block;
+        }
+    }
+
+    #
+    # Markup
+
+    protected function blockMarkup($Line)
+    {
+        if ($this->markupEscaped or $this->safeMode)
+        {
+            return;
+        }
+
+        if (preg_match('/^<[\/]?+(\w*)(?:[ ]*+'.$this->regexHtmlAttribute.')*+[ ]*+(\/)?>/', $Line['text'], $matches))
+        {
+            $element = strtolower($matches[1]);
+
+            if (in_array($element, $this->textLevelElements))
+            {
+                return;
+            }
+
+            $Block = array(
+                'name' => $matches[1],
+                'element' => array(
+                    'rawHtml' => $Line['text'],
+                    'autobreak' => true,
+                ),
+            );
+
+            return $Block;
+        }
+    }
+
+    protected function blockMarkupContinue($Line, array $Block)
+    {
+        if (isset($Block['closed']) or isset($Block['interrupted']))
+        {
+            return;
+        }
+
+        $Block['element']['rawHtml'] .= "\n" . $Line['body'];
+
+        return $Block;
+    }
+
+    #
+    # Reference
+
+    protected function blockReference($Line)
+    {
+        if (strpos($Line['text'], ']') !== false
+            and preg_match('/^\[(.+?)\]:[ ]*+<?(\S+?)>?(?:[ ]+["\'(](.+)["\')])?[ ]*+$/', $Line['text'], $matches)
+        ) {
+            $id = strtolower($matches[1]);
+
+            $Data = array(
+                'url' => $matches[2],
+                'title' => isset($matches[3]) ? $matches[3] : null,
+            );
+
+            $this->DefinitionData['Reference'][$id] = $Data;
+
+            $Block = array(
+                'element' => array(),
+            );
+
+            return $Block;
+        }
+    }
+
+    #
+    # Table
+
+    protected function blockTable($Line, ?array $Block = null)
+    {
+        if ( ! isset($Block) or $Block['type'] !== 'Paragraph' or isset($Block['interrupted']))
+        {
+            return;
+        }
+
+        if (
+            strpos($Block['element']['handler']['argument'], '|') === false
+            and strpos($Line['text'], '|') === false
+            and strpos($Line['text'], ':') === false
+            or strpos($Block['element']['handler']['argument'], "\n") !== false
+        ) {
+            return;
+        }
+
+        if (chop($Line['text'], ' -:|') !== '')
+        {
+            return;
+        }
+
+        $alignments = array();
+
+        $divider = $Line['text'];
+
+        $divider = trim($divider);
+        $divider = trim($divider, '|');
+
+        $dividerCells = explode('|', $divider);
+
+        foreach ($dividerCells as $dividerCell)
+        {
+            $dividerCell = trim($dividerCell);
+
+            if ($dividerCell === '')
+            {
+                return;
+            }
+
+            $alignment = null;
+
+            if ($dividerCell[0] === ':')
+            {
+                $alignment = 'left';
+            }
+
+            if (substr($dividerCell, - 1) === ':')
+            {
+                $alignment = $alignment === 'left' ? 'center' : 'right';
+            }
+
+            $alignments []= $alignment;
+        }
+
+        # ~
+
+        $HeaderElements = array();
+
+        $header = $Block['element']['handler']['argument'];
+
+        $header = trim($header);
+        $header = trim($header, '|');
+
+        $headerCells = explode('|', $header);
+
+        if (count($headerCells) !== count($alignments))
+        {
+            return;
+        }
+
+        foreach ($headerCells as $index => $headerCell)
+        {
+            $headerCell = trim($headerCell);
+
+            $HeaderElement = array(
+                'name' => 'th',
+                'handler' => array(
+                    'function' => 'lineElements',
+                    'argument' => $headerCell,
+                    'destination' => 'elements',
+                )
+            );
+
+            if (isset($alignments[$index]))
+            {
+                $alignment = $alignments[$index];
+
+                $HeaderElement['attributes'] = array(
+                    'style' => "text-align: $alignment;",
+                );
+            }
+
+            $HeaderElements []= $HeaderElement;
+        }
+
+        # ~
+
+        $Block = array(
+            'alignments' => $alignments,
+            'identified' => true,
+            'element' => array(
+                'name' => 'table',
+                'elements' => array(),
+            ),
+        );
+
+        $Block['element']['elements'] []= array(
+            'name' => 'thead',
+        );
+
+        $Block['element']['elements'] []= array(
+            'name' => 'tbody',
+            'elements' => array(),
+        );
+
+        $Block['element']['elements'][0]['elements'] []= array(
+            'name' => 'tr',
+            'elements' => $HeaderElements,
+        );
+
+        return $Block;
+    }
+
+    protected function blockTableContinue($Line, array $Block)
+    {
+        if (isset($Block['interrupted']))
+        {
+            return;
+        }
+
+        if (count($Block['alignments']) === 1 or $Line['text'][0] === '|' or strpos($Line['text'], '|'))
+        {
+            $Elements = array();
+
+            $row = $Line['text'];
+
+            $row = trim($row);
+            $row = trim($row, '|');
+
+            preg_match_all('/(?:(\\\\[|])|[^|`]|`[^`]++`|`)++/', $row, $matches);
+
+            $cells = array_slice($matches[0], 0, count($Block['alignments']));
+
+            foreach ($cells as $index => $cell)
+            {
+                $cell = trim($cell);
+
+                $Element = array(
+                    'name' => 'td',
+                    'handler' => array(
+                        'function' => 'lineElements',
+                        'argument' => $cell,
+                        'destination' => 'elements',
+                    )
+                );
+
+                if (isset($Block['alignments'][$index]))
+                {
+                    $Element['attributes'] = array(
+                        'style' => 'text-align: ' . $Block['alignments'][$index] . ';',
+                    );
+                }
+
+                $Elements []= $Element;
+            }
+
+            $Element = array(
+                'name' => 'tr',
+                'elements' => $Elements,
+            );
+
+            $Block['element']['elements'][1]['elements'] []= $Element;
+
+            return $Block;
+        }
+    }
+
+    #
+    # ~
+    #
+
+    protected function paragraph($Line)
+    {
+        return array(
+            'type' => 'Paragraph',
+            'element' => array(
+                'name' => 'p',
+                'handler' => array(
+                    'function' => 'lineElements',
+                    'argument' => $Line['text'],
+                    'destination' => 'elements',
+                ),
+            ),
+        );
+    }
+
+    protected function paragraphContinue($Line, array $Block)
+    {
+        if (isset($Block['interrupted']))
+        {
+            return;
+        }
+
+        $Block['element']['handler']['argument'] .= "\n".$Line['text'];
+
+        return $Block;
+    }
+
+    #
+    # Inline Elements
+    #
+
+    protected $InlineTypes = array(
+        '!' => array('Image'),
+        '&' => array('SpecialCharacter'),
+        '*' => array('Emphasis'),
+        ':' => array('Url'),
+        '<' => array('UrlTag', 'EmailTag', 'Markup'),
+        '[' => array('Link'),
+        '_' => array('Emphasis'),
+        '`' => array('Code'),
+        '~' => array('Strikethrough'),
+        '\\' => array('EscapeSequence'),
+    );
+
+    # ~
+
+    protected $inlineMarkerList = '!*_&[:<`~\\';
+
+    #
+    # ~
+    #
+
+    public function line($text, $nonNestables = array())
+    {
+        return $this->elements($this->lineElements($text, $nonNestables));
+    }
+
+    protected function lineElements($text, $nonNestables = array())
+    {
+        # standardize line breaks
+        $text = str_replace(array("\r\n", "\r"), "\n", $text);
+
+        $Elements = array();
+
+        $nonNestables = (empty($nonNestables)
+            ? array()
+            : array_combine($nonNestables, $nonNestables)
+        );
+
+        # $excerpt is based on the first occurrence of a marker
+
+        while ($excerpt = strpbrk($text, $this->inlineMarkerList))
+        {
+            $marker = $excerpt[0];
+
+            $markerPosition = strlen($text) - strlen($excerpt);
+
+            $Excerpt = array('text' => $excerpt, 'context' => $text);
+
+            foreach ($this->InlineTypes[$marker] as $inlineType)
+            {
+                # check to see if the current inline type is nestable in the current context
+
+                if (isset($nonNestables[$inlineType]))
+                {
+                    continue;
+                }
+
+                $Inline = $this->{"inline$inlineType"}($Excerpt);
+
+                if ( ! isset($Inline))
+                {
+                    continue;
+                }
+
+                # makes sure that the inline belongs to "our" marker
+
+                if (isset($Inline['position']) and $Inline['position'] > $markerPosition)
+                {
+                    continue;
+                }
+
+                # sets a default inline position
+
+                if ( ! isset($Inline['position']))
+                {
+                    $Inline['position'] = $markerPosition;
+                }
+
+                # cause the new element to 'inherit' our non nestables
+
+
+                $Inline['element']['nonNestables'] = isset($Inline['element']['nonNestables'])
+                    ? array_merge($Inline['element']['nonNestables'], $nonNestables)
+                    : $nonNestables
+                ;
+
+                # the text that comes before the inline
+                $unmarkedText = substr($text, 0, $Inline['position']);
+
+                # compile the unmarked text
+                $InlineText = $this->inlineText($unmarkedText);
+                $Elements[] = $InlineText['element'];
+
+                # compile the inline
+                $Elements[] = $this->extractElement($Inline);
+
+                # remove the examined text
+                $text = substr($text, $Inline['position'] + $Inline['extent']);
+
+                continue 2;
+            }
+
+            # the marker does not belong to an inline
+
+            $unmarkedText = substr($text, 0, $markerPosition + 1);
+
+            $InlineText = $this->inlineText($unmarkedText);
+            $Elements[] = $InlineText['element'];
+
+            $text = substr($text, $markerPosition + 1);
+        }
+
+        $InlineText = $this->inlineText($text);
+        $Elements[] = $InlineText['element'];
+
+        foreach ($Elements as &$Element)
+        {
+            if ( ! isset($Element['autobreak']))
+            {
+                $Element['autobreak'] = false;
+            }
+        }
+
+        return $Elements;
+    }
+
+    #
+    # ~
+    #
+
+    protected function inlineText($text)
+    {
+        $Inline = array(
+            'extent' => strlen($text),
+            'element' => array(),
+        );
+
+        $Inline['element']['elements'] = self::pregReplaceElements(
+            $this->breaksEnabled ? '/[ ]*+\n/' : '/(?:[ ]*+\\\\|[ ]{2,}+)\n/',
+            array(
+                array('name' => 'br'),
+                array('text' => "\n"),
+            ),
+            $text
+        );
+
+        return $Inline;
+    }
+
+    protected function inlineCode($Excerpt)
+    {
+        $marker = $Excerpt['text'][0];
+
+        if (preg_match('/^(['.$marker.']++)[ ]*+(.+?)[ ]*+(?<!['.$marker.'])\1(?!'.$marker.')/s', $Excerpt['text'], $matches))
+        {
+            $text = $matches[2];
+            $text = preg_replace('/[ ]*+\n/', ' ', $text);
+
+            return array(
+                'extent' => strlen($matches[0]),
+                'element' => array(
+                    'name' => 'code',
+                    'text' => $text,
+                ),
+            );
+        }
+    }
+
+    protected function inlineEmailTag($Excerpt)
+    {
+        $hostnameLabel = '[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?';
+
+        $commonMarkEmail = '[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]++@'
+            . $hostnameLabel . '(?:\.' . $hostnameLabel . ')*';
+
+        if (strpos($Excerpt['text'], '>') !== false
+            and preg_match("/^<((mailto:)?$commonMarkEmail)>/i", $Excerpt['text'], $matches)
+        ){
+            $url = $matches[1];
+
+            if ( ! isset($matches[2]))
+            {
+                $url = "mailto:$url";
+            }
+
+            return array(
+                'extent' => strlen($matches[0]),
+                'element' => array(
+                    'name' => 'a',
+                    'text' => $matches[1],
+                    'attributes' => array(
+                        'href' => $url,
+                    ),
+                ),
+            );
+        }
+    }
+
+    protected function inlineEmphasis($Excerpt)
+    {
+        if ( ! isset($Excerpt['text'][1]))
+        {
+            return;
+        }
+
+        $marker = $Excerpt['text'][0];
+
+        if ($Excerpt['text'][1] === $marker and preg_match($this->StrongRegex[$marker], $Excerpt['text'], $matches))
+        {
+            $emphasis = 'strong';
+        }
+        elseif (preg_match($this->EmRegex[$marker], $Excerpt['text'], $matches))
+        {
+            $emphasis = 'em';
+        }
+        else
+        {
+            return;
+        }
+
+        return array(
+            'extent' => strlen($matches[0]),
+            'element' => array(
+                'name' => $emphasis,
+                'handler' => array(
+                    'function' => 'lineElements',
+                    'argument' => $matches[1],
+                    'destination' => 'elements',
+                )
+            ),
+        );
+    }
+
+    protected function inlineEscapeSequence($Excerpt)
+    {
+        if (isset($Excerpt['text'][1]) and in_array($Excerpt['text'][1], $this->specialCharacters))
+        {
+            return array(
+                'element' => array('rawHtml' => $Excerpt['text'][1]),
+                'extent' => 2,
+            );
+        }
+    }
+
+    protected function inlineImage($Excerpt)
+    {
+        if ( ! isset($Excerpt['text'][1]) or $Excerpt['text'][1] !== '[')
+        {
+            return;
+        }
+
+        $Excerpt['text']= substr($Excerpt['text'], 1);
+
+        $Link = $this->inlineLink($Excerpt);
+
+        if ($Link === null)
+        {
+            return;
+        }
+
+        $Inline = array(
+            'extent' => $Link['extent'] + 1,
+            'element' => array(
+                'name' => 'img',
+                'attributes' => array(
+                    'src' => $Link['element']['attributes']['href'],
+                    'alt' => $Link['element']['handler']['argument'],
+                ),
+                'autobreak' => true,
+            ),
+        );
+
+        $Inline['element']['attributes'] += $Link['element']['attributes'];
+
+        unset($Inline['element']['attributes']['href']);
+
+        return $Inline;
+    }
+
+    protected function inlineLink($Excerpt)
+    {
+        $Element = array(
+            'name' => 'a',
+            'handler' => array(
+                'function' => 'lineElements',
+                'argument' => null,
+                'destination' => 'elements',
+            ),
+            'nonNestables' => array('Url', 'Link'),
+            'attributes' => array(
+                'href' => null,
+                'title' => null,
+            ),
+        );
+
+        $extent = 0;
+
+        $remainder = $Excerpt['text'];
+
+        if (preg_match('/\[((?:[^][]++|(?R))*+)\]/', $remainder, $matches))
+        {
+            $Element['handler']['argument'] = $matches[1];
+
+            $extent += strlen($matches[0]);
+
+            $remainder = substr($remainder, $extent);
+        }
+        else
+        {
+            return;
+        }
+
+        if (preg_match('/^[(]\s*+((?:[^ ()]++|[(][^ )]+[)])++)(?:[ ]+("[^"]*+"|\'[^\']*+\'))?\s*+[)]/', $remainder, $matches))
+        {
+            $Element['attributes']['href'] = $matches[1];
+
+            if (isset($matches[2]))
+            {
+                $Element['attributes']['title'] = substr($matches[2], 1, - 1);
+            }
+
+            $extent += strlen($matches[0]);
+        }
+        else
+        {
+            if (preg_match('/^\s*\[(.*?)\]/', $remainder, $matches))
+            {
+                $definition = strlen($matches[1]) ? $matches[1] : $Element['handler']['argument'];
+                $definition = strtolower($definition);
+
+                $extent += strlen($matches[0]);
+            }
+            else
+            {
+                $definition = strtolower($Element['handler']['argument']);
+            }
+
+            if ( ! isset($this->DefinitionData['Reference'][$definition]))
+            {
+                return;
+            }
+
+            $Definition = $this->DefinitionData['Reference'][$definition];
+
+            $Element['attributes']['href'] = $Definition['url'];
+            $Element['attributes']['title'] = $Definition['title'];
+        }
+
+        return array(
+            'extent' => $extent,
+            'element' => $Element,
+        );
+    }
+
+    protected function inlineMarkup($Excerpt)
+    {
+        if ($this->markupEscaped or $this->safeMode or strpos($Excerpt['text'], '>') === false)
+        {
+            return;
+        }
+
+        if ($Excerpt['text'][1] === '/' and preg_match('/^<\/\w[\w-]*+[ ]*+>/s', $Excerpt['text'], $matches))
+        {
+            return array(
+                'element' => array('rawHtml' => $matches[0]),
+                'extent' => strlen($matches[0]),
+            );
+        }
+
+        if ($Excerpt['text'][1] === '!' and preg_match('/^<!---?[^>-](?:-?+[^-])*-->/s', $Excerpt['text'], $matches))
+        {
+            return array(
+                'element' => array('rawHtml' => $matches[0]),
+                'extent' => strlen($matches[0]),
+            );
+        }
+
+        if ($Excerpt['text'][1] !== ' ' and preg_match('/^<\w[\w-]*+(?:[ ]*+'.$this->regexHtmlAttribute.')*+[ ]*+\/?>/s', $Excerpt['text'], $matches))
+        {
+            return array(
+                'element' => array('rawHtml' => $matches[0]),
+                'extent' => strlen($matches[0]),
+            );
+        }
+    }
+
+    protected function inlineSpecialCharacter($Excerpt)
+    {
+        if (substr($Excerpt['text'], 1, 1) !== ' ' and strpos($Excerpt['text'], ';') !== false
+            and preg_match('/^&(#?+[0-9a-zA-Z]++);/', $Excerpt['text'], $matches)
+        ) {
+            return array(
+                'element' => array('rawHtml' => '&' . $matches[1] . ';'),
+                'extent' => strlen($matches[0]),
+            );
+        }
+
+        return;
+    }
+
+    protected function inlineStrikethrough($Excerpt)
+    {
+        if ( ! isset($Excerpt['text'][1]))
+        {
+            return;
+        }
+
+        if ($Excerpt['text'][1] === '~' and preg_match('/^~~(?=\S)(.+?)(?<=\S)~~/', $Excerpt['text'], $matches))
+        {
+            return array(
+                'extent' => strlen($matches[0]),
+                'element' => array(
+                    'name' => 'del',
+                    'handler' => array(
+                        'function' => 'lineElements',
+                        'argument' => $matches[1],
+                        'destination' => 'elements',
+                    )
+                ),
+            );
+        }
+    }
+
+    protected function inlineUrl($Excerpt)
+    {
+        if ($this->urlsLinked !== true or ! isset($Excerpt['text'][2]) or $Excerpt['text'][2] !== '/')
+        {
+            return;
+        }
+
+        if (strpos($Excerpt['context'], 'http') !== false
+            and preg_match('/\bhttps?+:[\/]{2}[^\s<]+\b\/*+/ui', $Excerpt['context'], $matches, PREG_OFFSET_CAPTURE)
+        ) {
+            $url = $matches[0][0];
+
+            $Inline = array(
+                'extent' => strlen($matches[0][0]),
+                'position' => $matches[0][1],
+                'element' => array(
+                    'name' => 'a',
+                    'text' => $url,
+                    'attributes' => array(
+                        'href' => $url,
+                    ),
+                ),
+            );
+
+            return $Inline;
+        }
+    }
+
+    protected function inlineUrlTag($Excerpt)
+    {
+        if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<(\w++:\/{2}[^ >]++)>/i', $Excerpt['text'], $matches))
+        {
+            $url = $matches[1];
+
+            return array(
+                'extent' => strlen($matches[0]),
+                'element' => array(
+                    'name' => 'a',
+                    'text' => $url,
+                    'attributes' => array(
+                        'href' => $url,
+                    ),
+                ),
+            );
+        }
+    }
+
+    # ~
+
+    protected function unmarkedText($text)
+    {
+        $Inline = $this->inlineText($text);
+        return $this->element($Inline['element']);
+    }
+
+    #
+    # Handlers
+    #
+
+    protected function handle(array $Element)
+    {
+        if (isset($Element['handler']))
+        {
+            if (!isset($Element['nonNestables']))
+            {
+                $Element['nonNestables'] = array();
+            }
+
+            if (is_string($Element['handler']))
+            {
+                $function = $Element['handler'];
+                $argument = $Element['text'];
+                unset($Element['text']);
+                $destination = 'rawHtml';
+            }
+            else
+            {
+                $function = $Element['handler']['function'];
+                $argument = $Element['handler']['argument'];
+                $destination = $Element['handler']['destination'];
+            }
+
+            $Element[$destination] = $this->{$function}($argument, $Element['nonNestables']);
+
+            if ($destination === 'handler')
+            {
+                $Element = $this->handle($Element);
+            }
+
+            unset($Element['handler']);
+        }
+
+        return $Element;
+    }
+
+    protected function handleElementRecursive(array $Element)
+    {
+        return $this->elementApplyRecursive(array($this, 'handle'), $Element);
+    }
+
+    protected function handleElementsRecursive(array $Elements)
+    {
+        return $this->elementsApplyRecursive(array($this, 'handle'), $Elements);
+    }
+
+    protected function elementApplyRecursive($closure, array $Element)
+    {
+        $Element = call_user_func($closure, $Element);
+
+        if (isset($Element['elements']))
+        {
+            $Element['elements'] = $this->elementsApplyRecursive($closure, $Element['elements']);
+        }
+        elseif (isset($Element['element']))
+        {
+            $Element['element'] = $this->elementApplyRecursive($closure, $Element['element']);
+        }
+
+        return $Element;
+    }
+
+    protected function elementApplyRecursiveDepthFirst($closure, array $Element)
+    {
+        if (isset($Element['elements']))
+        {
+            $Element['elements'] = $this->elementsApplyRecursiveDepthFirst($closure, $Element['elements']);
+        }
+        elseif (isset($Element['element']))
+        {
+            $Element['element'] = $this->elementsApplyRecursiveDepthFirst($closure, $Element['element']);
+        }
+
+        $Element = call_user_func($closure, $Element);
+
+        return $Element;
+    }
+
+    protected function elementsApplyRecursive($closure, array $Elements)
+    {
+        foreach ($Elements as &$Element)
+        {
+            $Element = $this->elementApplyRecursive($closure, $Element);
+        }
+
+        return $Elements;
+    }
+
+    protected function elementsApplyRecursiveDepthFirst($closure, array $Elements)
+    {
+        foreach ($Elements as &$Element)
+        {
+            $Element = $this->elementApplyRecursiveDepthFirst($closure, $Element);
+        }
+
+        return $Elements;
+    }
+
+    protected function element(array $Element)
+    {
+        if ($this->safeMode)
+        {
+            $Element = $this->sanitiseElement($Element);
+        }
+
+        # identity map if element has no handler
+        $Element = $this->handle($Element);
+
+        $hasName = isset($Element['name']);
+
+        $markup = '';
+
+        if ($hasName)
+        {
+            $markup .= '<' . $Element['name'];
+
+            if (isset($Element['attributes']))
+            {
+                foreach ($Element['attributes'] as $name => $value)
+                {
+                    if ($value === null)
+                    {
+                        continue;
+                    }
+
+                    $markup .= " $name=\"".self::escape($value).'"';
+                }
+            }
+        }
+
+        $permitRawHtml = false;
+
+        if (isset($Element['text']))
+        {
+            $text = $Element['text'];
+        }
+        // very strongly consider an alternative if you're writing an
+        // extension
+        elseif (isset($Element['rawHtml']))
+        {
+            $text = $Element['rawHtml'];
+
+            $allowRawHtmlInSafeMode = isset($Element['allowRawHtmlInSafeMode']) && $Element['allowRawHtmlInSafeMode'];
+            $permitRawHtml = !$this->safeMode || $allowRawHtmlInSafeMode;
+        }
+
+        $hasContent = isset($text) || isset($Element['element']) || isset($Element['elements']);
+
+        if ($hasContent)
+        {
+            $markup .= $hasName ? '>' : '';
+
+            if (isset($Element['elements']))
+            {
+                $markup .= $this->elements($Element['elements']);
+            }
+            elseif (isset($Element['element']))
+            {
+                $markup .= $this->element($Element['element']);
+            }
+            else
+            {
+                if (!$permitRawHtml)
+                {
+                    $markup .= self::escape($text, true);
+                }
+                else
+                {
+                    $markup .= $text;
+                }
+            }
+
+            $markup .= $hasName ? '</' . $Element['name'] . '>' : '';
+        }
+        elseif ($hasName)
+        {
+            $markup .= ' />';
+        }
+
+        return $markup;
+    }
+
+    protected function elements(array $Elements)
+    {
+        $markup = '';
+
+        $autoBreak = true;
+
+        foreach ($Elements as $Element)
+        {
+            if (empty($Element))
+            {
+                continue;
+            }
+
+            $autoBreakNext = (isset($Element['autobreak'])
+                ? $Element['autobreak'] : isset($Element['name'])
+            );
+            // (autobreak === false) covers both sides of an element
+            $autoBreak = !$autoBreak ? $autoBreak : $autoBreakNext;
+
+            $markup .= ($autoBreak ? "\n" : '') . $this->element($Element);
+            $autoBreak = $autoBreakNext;
+        }
+
+        $markup .= $autoBreak ? "\n" : '';
+
+        return $markup;
+    }
+
+    # ~
+
+    protected function li($lines)
+    {
+        $Elements = $this->linesElements($lines);
+
+        if ( ! in_array('', $lines)
+            and isset($Elements[0]) and isset($Elements[0]['name'])
+            and $Elements[0]['name'] === 'p'
+        ) {
+            unset($Elements[0]['name']);
+        }
+
+        return $Elements;
+    }
+
+    #
+    # AST Convenience
+    #
+
+    /**
+     * Replace occurrences $regexp with $Elements in $text. Return an array of
+     * elements representing the replacement.
+     */
+    protected static function pregReplaceElements($regexp, $Elements, $text)
+    {
+        $newElements = array();
+
+        while (preg_match($regexp, $text, $matches, PREG_OFFSET_CAPTURE))
+        {
+            $offset = $matches[0][1];
+            $before = substr($text, 0, $offset);
+            $after = substr($text, $offset + strlen($matches[0][0]));
+
+            $newElements[] = array('text' => $before);
+
+            foreach ($Elements as $Element)
+            {
+                $newElements[] = $Element;
+            }
+
+            $text = $after;
+        }
+
+        $newElements[] = array('text' => $text);
+
+        return $newElements;
+    }
+
+    #
+    # Deprecated Methods
+    #
+
+    function parse($text)
+    {
+        $markup = $this->text($text);
+
+        return $markup;
+    }
+
+    protected function sanitiseElement(array $Element)
+    {
+        static $goodAttribute = '/^[a-zA-Z0-9][a-zA-Z0-9-_]*+$/';
+        static $safeUrlNameToAtt  = array(
+            'a'   => 'href',
+            'img' => 'src',
+        );
+
+        if ( ! isset($Element['name']))
+        {
+            unset($Element['attributes']);
+            return $Element;
+        }
+
+        if (isset($safeUrlNameToAtt[$Element['name']]))
+        {
+            $Element = $this->filterUnsafeUrlInAttribute($Element, $safeUrlNameToAtt[$Element['name']]);
+        }
+
+        if ( ! empty($Element['attributes']))
+        {
+            foreach ($Element['attributes'] as $att => $val)
+            {
+                # filter out badly parsed attribute
+                if ( ! preg_match($goodAttribute, $att))
+                {
+                    unset($Element['attributes'][$att]);
+                }
+                # dump onevent attribute
+                elseif (self::striAtStart($att, 'on'))
+                {
+                    unset($Element['attributes'][$att]);
+                }
+            }
+        }
+
+        return $Element;
+    }
+
+    protected function filterUnsafeUrlInAttribute(array $Element, $attribute)
+    {
+        foreach ($this->safeLinksWhitelist as $scheme)
+        {
+            if (self::striAtStart($Element['attributes'][$attribute], $scheme))
+            {
+                return $Element;
+            }
+        }
+
+        $Element['attributes'][$attribute] = str_replace(':', '%3A', $Element['attributes'][$attribute]);
+
+        return $Element;
+    }
+
+    #
+    # Static Methods
+    #
+
+    protected static function escape($text, $allowQuotes = false)
+    {
+        return htmlspecialchars($text, $allowQuotes ? ENT_NOQUOTES : ENT_QUOTES, 'UTF-8');
+    }
+
+    protected static function striAtStart($string, $needle)
+    {
+        $len = strlen($needle);
+
+        if ($len > strlen($string))
+        {
+            return false;
+        }
+        else
+        {
+            return strtolower(substr($string, 0, $len)) === strtolower($needle);
+        }
+    }
+
+    static function instance($name = 'default')
+    {
+        if (isset(self::$instances[$name]))
+        {
+            return self::$instances[$name];
+        }
+
+        $instance = new static();
+
+        self::$instances[$name] = $instance;
+
+        return $instance;
+    }
+
+    private static $instances = array();
+
+    #
+    # Fields
+    #
+
+    protected $DefinitionData;
+
+    #
+    # Read-Only
+
+    protected $specialCharacters = array(
+        '\\', '`', '*', '_', '{', '}', '[', ']', '(', ')', '>', '#', '+', '-', '.', '!', '|', '~'
+    );
+
+    protected $StrongRegex = array(
+        '*' => '/^[*]{2}((?:\\\\\*|[^*]|[*][^*]*+[*])+?)[*]{2}(?![*])/s',
+        '_' => '/^__((?:\\\\_|[^_]|_[^_]*+_)+?)__(?!_)/us',
+    );
+
+    protected $EmRegex = array(
+        '*' => '/^[*]((?:\\\\\*|[^*]|[*][*][^*]+?[*][*])+?)[*](?![*])/s',
+        '_' => '/^_((?:\\\\_|[^_]|__[^_]*__)+?)_(?!_)\b/us',
+    );
+
+    protected $regexHtmlAttribute = '[a-zA-Z_:][\w:.-]*+(?:\s*+=\s*+(?:[^"\'=<>`\s]+|"[^"]*+"|\'[^\']*+\'))?+';
+
+    protected $voidElements = array(
+        'area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source',
+    );
+
+    protected $textLevelElements = array(
+        'a', 'br', 'bdo', 'abbr', 'blink', 'nextid', 'acronym', 'basefont',
+        'b', 'em', 'big', 'cite', 'small', 'spacer', 'listing',
+        'i', 'rp', 'del', 'code',          'strike', 'marquee',
+        'q', 'rt', 'ins', 'font',          'strong',
+        's', 'tt', 'kbd', 'mark',
+        'u', 'xm', 'sub', 'nobr',
+                   'sup', 'ruby',
+                   'var', 'span',
+                   'wbr', 'time',
+    );
+}

+ 167 - 0
base.php

@@ -0,0 +1,167 @@
+<?php
+
+/* Ad hoc functions to make the examples marginally prettier.*/
+function isWebRequest()
+{
+    return isset($_SERVER['HTTP_USER_AGENT']);
+}
+
+function pageHeader($title)
+{
+    $ret = "<!doctype html>
+  <html>
+  <head>
+    <title>" . $title . "</title>
+    <link href='css/style.css' rel='stylesheet' type='text/css' />
+  </head>
+  <body>\n";
+    if ($_SERVER['PHP_SELF'] != "/index.php") {
+        $ret .= "<p><a href='index.php'>Back</a></p>";
+    }
+    $ret .= "<header><h1>" . $title . "</h1></header>";
+
+    // Start the session (for storing access tokens and things)
+    if (!headers_sent()) {
+        session_start();
+    }
+
+    return $ret;
+}
+
+
+function pageFooter($file = null)
+{
+    $ret = "";
+    if ($file) {
+        $ret .= "<h3>Code:</h3>";
+        $ret .= "<pre class='code'>";
+        $ret .= htmlspecialchars(file_get_contents($file));
+        $ret .= "</pre>";
+    }
+    $ret .= "</html>";
+
+    return $ret;
+}
+
+function missingApiKeyWarning()
+{
+    $ret = "
+    <h3 class='warn'>
+      Warning: You need to set a Simple API Access key from the
+      <a href='http://developers.google.com/console'>Google API console</a>
+    </h3>";
+
+    return $ret;
+}
+
+function missingClientSecretsWarning()
+{
+    $ret = "
+    <h3 class='warn'>
+      Warning: You need to set Client ID, Client Secret and Redirect URI from the
+      <a href='http://developers.google.com/console'>Google API console</a>
+    </h3>";
+
+    return $ret;
+}
+
+function missingServiceAccountDetailsWarning()
+{
+    $ret = "
+    <h3 class='warn'>
+      Warning: You need download your Service Account Credentials JSON from the
+      <a href='http://developers.google.com/console'>Google API console</a>.
+    </h3>
+    <p>
+      Once downloaded, move them into the root directory of this repository and
+      rename them 'service-account-credentials.json'.
+    </p>
+    <p>
+      In your application, you should set the GOOGLE_APPLICATION_CREDENTIALS environment variable
+      as the path to this file, but in the context of this example we will do this for you.
+    </p>";
+
+    return $ret;
+}
+
+function missingOAuth2CredentialsWarning()
+{
+    $ret = "
+    <h3 class='warn'>
+      Warning: You need to set the location of your OAuth2 Client Credentials from the
+      <a href='http://developers.google.com/console'>Google API console</a>.
+    </h3>
+    <p>
+      Once downloaded, move them into the root directory of this repository and
+      rename them 'oauth-credentials.json'.
+    </p>";
+
+    return $ret;
+}
+
+function invalidCsrfTokenWarning()
+{
+    $ret = "
+    <h3 class='warn'>
+      The CSRF token is invalid, your session probably expired. Please refresh the page.
+    </h3>";
+
+    return $ret;
+}
+
+function checkServiceAccountCredentialsFile()
+{
+    // service account creds
+    $application_creds = __DIR__ . '/service-account-credentials.json';
+
+    return file_exists($application_creds) ? $application_creds : false;
+}
+
+function getCsrfToken()
+{
+    if (!isset($_SESSION['csrf_token'])) {
+        $_SESSION['csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32));
+    }
+
+    return $_SESSION['csrf_token'];
+}
+
+function validateCsrfToken()
+{
+    return isset($_REQUEST['csrf_token'])
+      && isset($_SESSION['csrf_token'])
+      && $_REQUEST['csrf_token'] === $_SESSION['csrf_token'];
+}
+
+function getOAuthCredentialsFile()
+{
+    // oauth2 creds
+    $oauth_creds = __DIR__ . '/oauth-credentials.json';
+
+    if (file_exists($oauth_creds)) {
+        return $oauth_creds;
+    }
+
+    return false;
+}
+
+function setClientCredentialsFile($apiKey)
+{
+    $file = __DIR__ . '/.apiKey';
+    file_put_contents($file, $apiKey);
+}
+
+
+function getApiKey()
+{
+    $file = __DIR__ . '/.apiKey';
+    if (file_exists($file)) {
+        return file_get_contents($file);
+    }
+}
+
+function setApiKey($apiKey)
+{
+    $file = __DIR__ . '/.apiKey';
+    file_put_contents($file, $apiKey);
+}

+ 0 - 0
classes/.htaccess


+ 214 - 0
classes/OLD-list_lookup.php

@@ -0,0 +1,214 @@
+<?php
+// list_lookup.php
+
+// Turn off display of errors in the response, log instead
+ini_set('display_errors', '0');
+error_reporting(E_ALL);
+
+//require_once __DIR__ . '/rate_limit.php';
+
+// Convert PHP errors to exceptions so we can return JSON
+set_error_handler(function($severity, $message, $file, $line) {
+    throw new ErrorException($message, 0, $severity, $file, $line);
+});
+
+// Always return JSON
+header('Content-Type: application/json; charset=utf-8');
+
+try {
+    $raw = file_get_contents('php://input');
+    $js = json_decode($raw, true);
+    if (!$js || !isset($js['lat'], $js['lng'])) {
+        http_response_code(400);
+        echo json_encode(['ok' => false, 'error' => 'Missing lat/lng'], JSON_PRETTY_PRINT);
+        exit;
+    }
+
+    $lat   = (float)$js['lat'];
+    $lng   = (float)$js['lng'];
+    $debug = !empty($js['debug']);
+
+    // LIST PlanningOnline MapServer
+    $service = 'https://services.thelist.tas.gov.au/arcgis/rest/services/Public/PlanningOnline/MapServer';
+
+    /**
+     * Query a MapServer layer by a point (lng/lat in EPSG:4326).
+     * $returnGeometry: include geometry in the response
+     * $extraParams: override/add raw ArcGIS params (e.g. resultRecordCount)
+     */
+    function arcgis_query($layerId, $lng, $lat, $outFields = '*', $returnGeometry = false, $extraParams = []) {
+        global $service;
+
+        $params = array_merge([
+            'f'                => 'json',
+            'where'            => '1=1',
+            'returnGeometry'   => $returnGeometry ? 'true' : 'false',
+            'outFields'        => $outFields,
+            'outSR'            => '4326', // lat/lng for Leaflet
+            'geometryType'     => 'esriGeometryPoint',
+            'spatialRel'       => 'esriSpatialRelIntersects',
+            'inSR'             => '4326',
+            'geometry'         => json_encode(['x' => (float)$lng, 'y' => (float)$lat]),
+            // Don't artificially limit multi-hit layers; override per-call below
+            'resultRecordCount'=> 100
+        ], $extraParams);
+
+        $url = "{$service}/{$layerId}/query";
+        $ch = curl_init($url);
+        curl_setopt_array($ch, [
+            CURLOPT_POST           => true,
+            CURLOPT_POSTFIELDS     => http_build_query($params),
+            CURLOPT_RETURNTRANSFER => true,
+            CURLOPT_TIMEOUT        => 15,
+        ]);
+        $resp = curl_exec($ch);
+        if ($resp === false) {
+            $err = curl_error($ch);
+            curl_close($ch);
+            return ['error' => "cURL error: $err"];
+        }
+        curl_close($ch);
+        return json_decode($resp, true);
+    }
+
+    // Layer IDs on PlanningOnline
+    $LAYER_PARCELS = 2;   // Cadastral Parcels
+    $LAYER_LGA     = 8;   // Local Government Areas
+    $LAYER_ZONES   = 13;  // Tasmanian Planning Scheme Zones
+    $LAYER_CODES   = 14;  // Tasmanian Planning Scheme Code Overlays
+
+    // --- Parcels (attributes) ---
+    $parcelsResp = arcgis_query($LAYER_PARCELS, $lng, $lat, '*', false, ['resultRecordCount' => 1]);
+    $parcelFeat  = $parcelsResp['features'][0] ?? null;
+    $parcelAttr  = $parcelFeat['attributes'] ?? [];
+
+    if (!$parcelFeat) {
+        echo json_encode(['ok' => false, 'error' => 'No parcel found at that location']);
+        exit;
+    }
+
+    // PID (field names vary)
+    $pid = $parcelAttr['PID'] ?? $parcelAttr['PROPERTY_ID'] ?? null;
+
+    // --- Parcel geometry (polygon) for map ---
+    $parcelGeomResp = arcgis_query($LAYER_PARCELS, $lng, $lat, 'PID,OBJECTID', true, ['resultRecordCount' => 1]);
+
+    $boundaryGeoJSON = null;
+    if (!empty($parcelGeomResp['features'][0]['geometry']['rings'])) {
+        // outSR=4326 → [lng, lat] ready for Leaflet/GeoJSON
+        $rings = $parcelGeomResp['features'][0]['geometry']['rings'];
+        $boundaryGeoJSON = [
+            'type'       => 'Feature',
+            'geometry'   => [
+                'type'        => 'Polygon',
+                'coordinates' => $rings
+            ],
+            'properties' => [
+                'pid' => $pid
+            ]
+        ];
+    }
+
+    // --- Compose Title Id ---
+    $volume  = $parcelAttr['VOLUME'] ?? null;
+    $folio   = isset($parcelAttr['FOLIO']) ? (string)$parcelAttr['FOLIO'] : null;
+    $titleId = null;
+    if ($volume && $folio !== null && $folio !== '') {
+        $titleId = $volume . '/' . $folio;
+    } else {
+        $titleId = $parcelAttr['CT'] ?? $parcelAttr['CT_REFERENCE'] ?? null;
+    }
+
+    // --- Area ---
+    $sqm = null;
+    if (isset($parcelAttr['MEAS_AREA'])) {
+        $sqm = (float)$parcelAttr['MEAS_AREA'];
+    } elseif (isset($parcelAttr['COMP_AREA'])) {
+        $sqm = (float)$parcelAttr['COMP_AREA'];
+    } elseif (isset($parcelAttr['AREA_SQM'])) {
+        $sqm = (float)$parcelAttr['AREA_SQM'];
+    }
+
+    $total_area = null;
+    $area_sqm_label = null;
+    $area_ha_label  = null;
+    if ($sqm !== null) {
+        $ha = $sqm / 10000.0;
+        $area_sqm_label = number_format($sqm, 0) . ' sqm';
+        $area_ha_label  = rtrim(rtrim(number_format($ha, 4, '.', ''), '0'), '.') . ' ha';
+        $total_area = [
+            'sqm'       => (float)$sqm,
+            'sqm_label' => $area_sqm_label,
+            'ha'        => (float)$ha,
+            'ha_label'  => $area_ha_label
+        ];
+    }
+
+    $tenure   = $parcelAttr['TENURE_TY'] ?? null;
+    $lpi      = $parcelAttr['LPI'] ?? null;
+    $listGuid = $parcelAttr['LIST_GUID'] ?? null;
+
+    // --- LGA / Council ---
+    $lgaResp = arcgis_query($LAYER_LGA, $lng, $lat, '*', false, ['resultRecordCount' => 1]);
+    $lgaAttr = $lgaResp['features'][0]['attributes'] ?? [];
+    $council = $lgaAttr['LGA_NAME'] ?? $lgaAttr['NAME'] ?? $lgaAttr['COUNCIL'] ?? null;
+
+    // --- Zones (multiple may intersect the point) ---
+    $zonesResp    = arcgis_query($LAYER_ZONES, $lng, $lat, '*', false, ['resultRecordCount' => 100]);
+    $zoneFeatures = $zonesResp['features'] ?? [];
+    $zoneNames    = [];
+    $schemeName   = null;
+
+    foreach ($zoneFeatures as $zf) {
+        $a = $zf['attributes'] ?? [];
+        foreach (['ZONE', 'ZONING', 'ZONE_NAME', 'ZONE_LABEL'] as $k) {
+            if (!empty($a[$k])) { $zoneNames[] = $a[$k]; break; }
+        }
+        if (!$schemeName) {
+            $schemeName = $a['LPS'] ?? $a['SCHEME'] ?? 'Tasmanian Planning Scheme';
+        }
+    }
+
+    // --- Code overlays (multiple) ---
+    $codesResp    = arcgis_query($LAYER_CODES, $lng, $lat, '*', false, ['resultRecordCount' => 200]);
+    $codeFeatures = $codesResp['features'] ?? [];
+    $codeNames    = [];
+
+    foreach ($codeFeatures as $cf) {
+        $a = $cf['attributes'] ?? [];
+        foreach (['CODE', 'OVERLAY', 'OVERLAY_CODE', 'CODE_NAME', 'OVERLAY_DESC'] as $k) {
+            if (!empty($a[$k])) { $codeNames[] = $a[$k]; break; }
+        }
+    }
+
+    $out = [
+        'ok'               => true,
+        'pid'              => $pid,
+        'title_id'         => $titleId,
+        'tenure'           => $tenure,
+        'lpi'              => $lpi,
+        'list_guid'        => $listGuid,
+        'total_area'       => $total_area, // structured with sqm/ha + labels
+        'area_sqm'         => $area_sqm_label, // flat labels for your UI
+        'area_ha'          => $area_ha_label,
+        'council'          => $council,
+        'planning_scheme'  => $schemeName,
+        'planning_zones'   => array_values(array_unique(array_filter($zoneNames))),
+        'planning_codes'   => array_values(array_unique(array_filter($codeNames))),
+        'boundary'         => $boundaryGeoJSON
+    ];
+
+    if ($debug) {
+        $out['debug'] = [
+            'parcel_attrs' => $parcelAttr,
+            'lga_attrs'    => $lgaAttr,
+            'zones_count'  => count($zoneFeatures),
+            'codes_count'  => count($codeFeatures)
+        ];
+    }
+
+    echo json_encode($out, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
+} catch (Throwable $e) {
+    http_response_code(500);
+    echo json_encode(['ok' => false, 'error' => $e->getMessage()]);
+}

+ 1 - 0
classes/cache/v2-latlng--39.753458_143.915816.json

@@ -0,0 +1 @@
+{"ok":true,"pid":null,"title_id":null,"tenure":"Crown Land","lpi":null,"list_guid":"{006a170d-34fe-4125-ac5c-109d77f4c035}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"King Island","planning_scheme":"King Island Local Provisions Schedule","planning_zones":["Utilities"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[143.91761433001497,-39.7495894077554],[143.9171633676575,-39.7506629851881],[143.9160095804897,-39.75336730716151],[143.91593501403293,-39.75354207465302],[143.91524840291524,-39.755151284803155],[143.91509426369055,-39.75552021496885],[143.91488497868724,-39.756021155310265],[143.9140358713178,-39.758107319789495],[143.9138525476261,-39.75808660511623],[143.91377890284087,-39.75807828568295],[143.91492796037863,-39.75532811337967],[143.91500099251292,-39.7551533055301],[143.91550959976217,-39.753989625645886],[143.9160250647503,-39.75277178106292],[143.91738269402907,-39.74956395600005],[143.91745649242628,-39.74957206097378],[143.91761433001497,-39.7495894077554]]]},"properties":{"pid":null}}}

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
classes/cache/v2-latlng--39.918659_144.119984.json


+ 1 - 0
classes/cache/v2-latlng--40.047418_144.053897.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"2076631","title_id":"136462/1","tenure":"Freehold Title","lpi":"DLW00","list_guid":"{7c4679b2-f77e-4a6b-bd7d-1939d31b0a0b}","total_area":{"sqm":51190,"sqm_label":"51,190 sqm","ha":5.119,"ha_label":"5.119 ha"},"area_sqm":51190,"area_ha":5.119,"council":"King Island","planning_scheme":"King Island Local Provisions Schedule","planning_zones":["Village"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[144.05686034066002,-40.04568839322292],[144.05653215195076,-40.047328236130866],[144.0560466242178,-40.047270905561135],[144.05452153639365,-40.047090808630095],[144.05436241690904,-40.04704296502707],[144.0540449495927,-40.04750830217714],[144.0539529198868,-40.04755071904999],[144.05339229389435,-40.04750656305865],[144.05342680447262,-40.047230924252695],[144.05341631035347,-40.047184790304776],[144.05333512061807,-40.0468285606591],[144.0530978944162,-40.0460791471752],[144.0531724869241,-40.04565177653706],[144.05416589247432,-40.04575412936037],[144.05656611276007,-40.045680813516924],[144.05686034066002,-40.04568839322292]]]},"properties":{"pid":"2076631"}}}

+ 1 - 0
classes/cache/v2-latlng--40.072927_148.043253.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7603082","title_id":"48139/1","tenure":"Council","lpi":"DGJ28","list_guid":"{afb3d993-b65f-4100-8cc9-36e555dbd373}","total_area":{"sqm":354600,"sqm_label":"354,600 sqm","ha":35.46,"ha_label":"35.46 ha"},"area_sqm":354600,"area_ha":35.46,"council":"Flinders","planning_scheme":"Flinders Local Provisions Schedule","planning_zones":["Rural"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[148.04346143034823,-40.07071727629312],[148.04811060630396,-40.07132700061884],[148.04890335157592,-40.07143094752727],[148.04920537864916,-40.07147053861514],[148.05001933673816,-40.071577268011225],[148.0498850395015,-40.07218060330531],[148.04455103109228,-40.0744620185873],[148.04331462137625,-40.07499078952312],[148.0426071343097,-40.07544565731847],[148.04199577057165,-40.075325720293435],[148.041428456622,-40.07558988845672],[148.04012943343233,-40.07581723652874],[148.03862361357272,-40.07747389678491],[148.03897321811834,-40.07598872849579],[148.03885644162304,-40.075973108402366],[148.039949102029,-40.071076255228654],[148.04002222579138,-40.070755989252845],[148.04010690817663,-40.070385328344585],[148.04096577304668,-40.07037317166217],[148.0413591839372,-40.07044702670553],[148.04193123919495,-40.07037211369246],[148.0426892025974,-40.07062886506348],[148.04346143034823,-40.07071727629312]]]},"properties":{"pid":"7603082"}}}

+ 1 - 0
classes/cache/v2-latlng--40.761250_145.293429.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6210340","title_id":"18956/411","tenure":"Freehold Title","lpi":"4402432","list_guid":"{258a6ed6-55fa-4e90-9c0b-e88b78e80278}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":[],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.29351027966885,-40.76122535607802],[145.29351739971585,-40.76140366735918],[145.29351795756966,-40.76141751177154],[145.2932811895085,-40.761441808038064],[145.29327059028645,-40.761012446357455],[145.2935023223921,-40.76099550731219],[145.29351027966885,-40.76122535607802]]]},"properties":{"pid":"6210340"}}}

+ 1 - 0
classes/cache/v2-latlng--40.764533_145.297327.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6209390","title_id":"22691/102","tenure":"Freehold Title","lpi":"4402277","list_guid":"{cc924a8b-8aa5-4da6-9690-983286e65828}","total_area":{"sqm":1012,"sqm_label":"1,012 sqm","ha":0.1012,"ha_label":"0.1012 ha"},"area_sqm":1012,"area_ha":0.1012,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Local Historical Heritage Code","Coastal Erosion Hazard Code","Bushfire-prone Areas Code","Landslip Hazard Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.29779696833947,-40.76450993707688],[145.297292372068,-40.764723340437165],[145.29713986238724,-40.76454264107133],[145.2977006186354,-40.764389924771095],[145.29779696833947,-40.76450993707688]]]},"properties":{"pid":"6209390"}}}

+ 1 - 0
classes/cache/v2-latlng--40.791365_147.998563.json

@@ -0,0 +1 @@
+{"ok":true,"pid":null,"title_id":null,"tenure":"Unknown","lpi":null,"list_guid":"{54199d5f-2bec-4a3a-9511-66463f0d476a}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[148.00103415668443,-40.7989573081543],[148.0009259582017,-40.79937284654179],[148.00082107450237,-40.79905261781814],[147.99867881353538,-40.79305526561497],[147.99837701643077,-40.79108083919824],[147.99836501853187,-40.79098174278429],[147.9983422516293,-40.79079354787735],[147.99808630902842,-40.78867344535424],[147.99384652319546,-40.78484511805634],[147.99236370919024,-40.78235199285461],[147.992506545812,-40.7823738708358],[147.9926516273237,-40.78239609843284],[147.99405019732149,-40.7847475951072],[147.99831693800292,-40.788600239528506],[147.99834394585196,-40.788823944373334],[147.9985860957199,-40.79082980477344],[147.99861390396785,-40.791060105993026],[147.99890896460607,-40.793007780938424],[148.00103415668443,-40.7989573081543]]]},"properties":{"pid":null}}}

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
classes/cache/v2-latlng--40.816805_145.189097.json


+ 1 - 0
classes/cache/v2-latlng--40.827668_145.099637.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"1900975","title_id":"131252/1","tenure":"Freehold Title","lpi":"GAL90","list_guid":"{973c30ba-3359-41b2-a415-13464cbd4435}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Coastal Inundation Hazard Code","Safeguarding of Airports Code","Coastal Erosion Hazard Code","Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.0980584513776,-40.82677680053984],[145.0992662784979,-40.82691593077123],[145.10078618483954,-40.8270914453033],[145.10071303861923,-40.82744593964275],[145.10040839295692,-40.82892229654987],[145.1003710311259,-40.82910322451553],[145.09845704375064,-40.82881538406004],[145.09845269231144,-40.82894317766301],[145.0976665424703,-40.82883799170762],[145.09770517002747,-40.82859104046488],[145.09799563039317,-40.82709940508879],[145.0980584513776,-40.82677680053984]]]},"properties":{"pid":"1900975"}}}

+ 1 - 0
classes/cache/v2-latlng--40.846204_145.193508.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"3190989","title_id":"163904/2","tenure":"Freehold Title","lpi":"4400894","list_guid":"{b095c258-3bbb-433d-bf32-799da2e44142}","total_area":{"sqm":11090,"sqm_label":"11,090 sqm","ha":1.109,"ha_label":"1.109 ha"},"area_sqm":11090,"area_ha":1.109,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.19406031793162,-40.84553495430994],[145.19374152560027,-40.84699860673219],[145.1929421588464,-40.84686200983668],[145.19323954073124,-40.84549675931367],[145.19389747852344,-40.84549956179396],[145.19406031793162,-40.84553495430994]]]},"properties":{"pid":"3190989"}}}

+ 1 - 0
classes/cache/v2-latlng--40.851675_145.125747.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6223483","title_id":"55361/53","tenure":"Freehold Title","lpi":"4403989","list_guid":"{dc87b638-aab4-4869-9b65-461f2a186dbb}","total_area":{"sqm":948,"sqm_label":"948 sqm","ha":0.0948,"ha_label":"0.0948 ha"},"area_sqm":948,"area_ha":0.0948,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.126008881961,-40.851614142023976],[145.12598610427867,-40.85178209096694],[145.12539267899862,-40.85173561251266],[145.12541548003713,-40.8515677001444],[145.126008881961,-40.851614142023976]]]},"properties":{"pid":"6223483"}}}

+ 1 - 0
classes/cache/v2-latlng--40.855919_145.265445.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6222384","title_id":"38544/1","tenure":"Freehold Title","lpi":"4400657","list_guid":"{356a4bfe-4834-4a63-ab92-fa4b2586ca4f}","total_area":{"sqm":175700,"sqm_label":"175,700 sqm","ha":17.57,"ha_label":"17.57 ha"},"area_sqm":175700,"area_ha":17.57,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.26859159489737,-40.85743807811213],[145.26372008411226,-40.85750461004474],[145.26483576025404,-40.85334850085954],[145.26951139608647,-40.85384586536391],[145.26859159489737,-40.85743807811213]]]},"properties":{"pid":"6222384"}}}

+ 1 - 0
classes/cache/v2-latlng--40.865284_145.213936.json

@@ -0,0 +1 @@
+{"ok":true,"pid":null,"title_id":null,"tenure":"Unknown","lpi":null,"list_guid":"{d382bf88-5ac7-40ec-8089-52059735d2d8}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.20599304768578,-40.870509612526874],[145.20360053135192,-40.87050345062018],[145.20360134792048,-40.87032225321783],[145.2059937160323,-40.87032841310347],[145.21062285416733,-40.87033616866225],[145.21451007999738,-40.870342477313095],[145.2139516665555,-40.8690302649969],[145.21374307684823,-40.86724010076626],[145.21376657677607,-40.86541712175799],[145.21376519157386,-40.86487621731582],[145.21375900307993,-40.860265993536004],[145.2137557044662,-40.85780762664205],[145.21399486833417,-40.857734043906056],[145.2140035253985,-40.864164228904755],[145.21400380118138,-40.86487718403819],[145.21399363854053,-40.86596706181302],[145.21399028333298,-40.866327240851966],[145.213981835576,-40.86723274632947],[145.21418706827907,-40.868993978828264],[145.21476107916928,-40.87034282375563],[145.21483819504482,-40.87052403808413],[145.21426255550904,-40.87052325009936],[145.21402396835947,-40.870522870372206],[145.20599304768578,-40.870509612526874]]]},"properties":{"pid":null}}}

+ 1 - 0
classes/cache/v2-latlng--40.868097_147.760407.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6814953","title_id":"226991/13","tenure":"Freehold Title","lpi":"GEJ65","list_guid":"{bb44dede-5e09-4fa5-92b4-72ae2b1e8780}","total_area":{"sqm":718,"sqm_label":"718 sqm","ha":0.0718,"ha_label":"0.0718 ha"},"area_sqm":718,"area_ha":0.0718,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["Particular Purpose"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[147.7603893207343,-40.86826468620631],[147.76028823151876,-40.868276352174426],[147.76017177572197,-40.868211250842464],[147.76045473246003,-40.86791950631015],[147.76062942244346,-40.868017148864155],[147.7603893207343,-40.86826468620631]]]},"properties":{"pid":"6814953"}}}

+ 1 - 0
classes/cache/v2-latlng--40.870669_145.438948.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6217438","title_id":"237192/1","tenure":"Freehold Title","lpi":"4400236","list_guid":"{3f6e1b18-88e8-461d-88ae-bff409fb15d0}","total_area":{"sqm":1055,"sqm_label":"1,055 sqm","ha":0.1055,"ha_label":"0.1055 ha"},"area_sqm":1055,"area_ha":0.1055,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Coastal Erosion Hazard Code","Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.43909220323428,-40.87057792942756],[145.43902143934605,-40.870936218048946],[145.4387580640845,-40.87090623201182],[145.4387086432692,-40.87089042961],[145.4386752277372,-40.870858584325056],[145.43866600024265,-40.870818482204356],[145.43868321016686,-40.87077992681318],[145.4388771510468,-40.87055345300566],[145.43909220323428,-40.87057792942756]]]},"properties":{"pid":"6217438"}}}

+ 1 - 0
classes/cache/v2-latlng--40.878199_145.104881.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7166003","title_id":"120005/1","tenure":"Freehold Title","lpi":"FBB75","list_guid":"{1a3e4828-1506-4186-88de-f864b205601c}","total_area":{"sqm":14910,"sqm_label":"14,910 sqm","ha":1.491,"ha_label":"1.491 ha"},"area_sqm":14910,"area_ha":1.491,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code","Natural Assets Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.1051092301263,-40.878894841712096],[145.10507395059014,-40.87909897972114],[145.1045259459275,-40.87889636993758],[145.10414093338665,-40.87844185171178],[145.10526572653023,-40.87798839062843],[145.1054904122508,-40.87789780834459],[145.10580022142938,-40.87799286737148],[145.10588005650527,-40.878039424530144],[145.10562510115292,-40.87833334619101],[145.1052577180495,-40.87846637072486],[145.10522154648626,-40.87869307692436],[145.10513343882488,-40.878754710078105],[145.1051092301263,-40.878894841712096]],[[145.10556100006917,-40.87761318944666],[145.10600778256565,-40.87800005080799],[145.105860031261,-40.87791350107768],[145.10548356259676,-40.877797989189496],[145.1052848579509,-40.877878099369646],[145.10409565649965,-40.87835752495665],[145.1040606599328,-40.8776764258949],[145.10532613284326,-40.877623085067384],[145.10556100006917,-40.87761318944666]]]},"properties":{"pid":"7166003"}}}

+ 1 - 0
classes/cache/v2-latlng--40.884631_145.424336.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6216814","title_id":"236250/1","tenure":"Freehold Title","lpi":"4400088","list_guid":"{d3f7cbcd-f2c4-4f10-ad78-4d8b4af82888}","total_area":{"sqm":1030000,"sqm_label":"1,030,000 sqm","ha":103,"ha_label":"103 ha"},"area_sqm":1030000,"area_ha":103,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Electricity Transmission Infrastructure Protection Code","Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.43580023704408,-40.87944679506496],[145.43535805392187,-40.88166939580635],[145.43390851531143,-40.8890369780194],[145.43364100151138,-40.890398837536914],[145.43348943865496,-40.89041317319436],[145.43300715923007,-40.8904588123113],[145.43258382815242,-40.89049886382602],[145.41917463009227,-40.888971673675684],[145.4195213142149,-40.88721001847158],[145.42046562593657,-40.88731695560269],[145.42069558566612,-40.88614752614181],[145.42070070426666,-40.88612146425794],[145.42140336109196,-40.885618409142864],[145.42252993020497,-40.88527759019233],[145.42405203741896,-40.88454861888553],[145.42426219288978,-40.884447962854665],[145.42465781992408,-40.884258482595605],[145.42522291503508,-40.883575662129616],[145.42609962224333,-40.88307121642151],[145.42659637173082,-40.88245371016759],[145.42744504072243,-40.882038644084304],[145.4278858404391,-40.881731790947924],[145.428227453572,-40.88149398165828],[145.42945559968572,-40.880969752939976],[145.42986607048178,-40.880764791406854],[145.4303043073049,-40.88053388469299],[145.4309055236734,-40.88068957219271],[145.43189076263937,-40.88026177504033],[145.43261504550688,-40.879676431385775],[145.4329190309074,-40.87910318130934],[145.43467230788173,-40.87931652125219],[145.43577071481053,-40.879446034354594],[145.43580023704408,-40.87944679506496]]]},"properties":{"pid":"6216814"}}}

+ 1 - 0
classes/cache/v2-latlng--40.893513_148.157788.json

@@ -0,0 +1 @@
+{"ok":true,"pid":null,"title_id":"120810/11","tenure":"Freehold Title","lpi":null,"list_guid":"{b39eef26-1beb-4c45-890a-56aa0cc17582}","total_area":{"sqm":12200,"sqm_label":"12,200 sqm","ha":1.22,"ha_label":"1.22 ha"},"area_sqm":12200,"area_ha":1.22,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[148.15538005494142,-40.89660752046507],[148.15555413317216,-40.896305670771525],[148.15769950410672,-40.893537012719946],[148.1600777183629,-40.89197269421849],[148.160772342453,-40.89191220539631],[148.16200490917623,-40.89180299059116],[148.16232618804437,-40.89170600515601],[148.16193056729833,-40.89185005073958],[148.16107932463336,-40.89198118879365],[148.16005932715413,-40.89242236737354],[148.15938389287516,-40.892510720080075],[148.1581971644859,-40.893543482813456],[148.1576044057558,-40.8937352004692],[148.15648205153818,-40.89537793455527],[148.15558192165716,-40.89643173102508],[148.15538005494142,-40.89660752046507]]]},"properties":{"pid":null}}}

+ 1 - 0
classes/cache/v2-latlng--40.897702_145.106624.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6241008","title_id":"65263/1","tenure":"Freehold Title","lpi":"KBY70","list_guid":"{3350bb9e-5ed7-459f-add8-0f8bd07eb5ef}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Natural Assets Code","Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.10760740450723,-40.89463093845618],[145.10848096491708,-40.89481448333521],[145.10824124050038,-40.89518013606614],[145.10746055511112,-40.898231369820394],[145.10571523631188,-40.89786951200309],[145.10614980711043,-40.89766675462139],[145.1067290479921,-40.89728543360991],[145.1075055337574,-40.89610614962917],[145.10691870300982,-40.89568145009059],[145.10492808215434,-40.89597800479368],[145.10592068640727,-40.89500599223586],[145.1062433199348,-40.89434430003445],[145.10760740450723,-40.89463093845618]]]},"properties":{"pid":"6241008"}}}

+ 1 - 0
classes/cache/v2-latlng--40.907997_145.543959.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7440295","title_id":"31886/5","tenure":"Freehold Title","lpi":"FMH89","list_guid":"{2a89c8f4-7a9e-4d27-ae69-d876bd5701e2}","total_area":{"sqm":2260,"sqm_label":"2,260 sqm","ha":0.226,"ha_label":"0.226 ha"},"area_sqm":2260,"area_ha":0.226,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Natural Assets Code","Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.544387798071,-40.90789147692937],[145.5443357793278,-40.90816869786169],[145.54343366147512,-40.908127732367596],[145.54351442720568,-40.907865729121966],[145.544387798071,-40.90789147692937]]]},"properties":{"pid":"7440295"}}}

+ 1 - 0
classes/cache/v2-latlng--40.909604_145.545871.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9988488","title_id":"181075/1","tenure":"Freehold Title","lpi":"FMH83","list_guid":"{21d5aa1d-46ee-4fe8-b26d-8f8cbb7f2b1a}","total_area":{"sqm":1014,"sqm_label":"1,014 sqm","ha":0.1014,"ha_label":"0.1014 ha"},"area_sqm":1014,"area_ha":0.1014,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.5460250100156,-40.909683153456186],[145.54569960159216,-40.90978498360133],[145.54558561795906,-40.90966128080337],[145.545766136212,-40.90951972753784],[145.5459619132484,-40.90942360447974],[145.54615708302367,-40.90956595904895],[145.5460250100156,-40.909683153456186]]]},"properties":{"pid":"9988488"}}}

+ 1 - 0
classes/cache/v2-latlng--40.910788_145.547524.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7088447","title_id":"60468/139","tenure":"Freehold Title","lpi":"6601675","list_guid":"{db903837-ac74-42e9-8e1b-e80403cf9aa2}","total_area":{"sqm":911,"sqm_label":"911 sqm","ha":0.0911,"ha_label":"0.0911 ha"},"area_sqm":911,"area_ha":0.0911,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.54778653082928,-40.910674151242546],[145.54746912639507,-40.91104816294261],[145.54728647643987,-40.9109589436234],[145.54760932825803,-40.91057856957713],[145.54778653082928,-40.910674151242546]]]},"properties":{"pid":"7088447"}}}

+ 1 - 0
classes/cache/v2-latlng--40.911170_145.546943.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9952248","title_id":"185224/1","tenure":"Freehold Title","lpi":"6601630","list_guid":"{276e5625-eac5-4c5a-862a-ab262ef4f804}","total_area":{"sqm":844,"sqm_label":"844 sqm","ha":0.0844,"ha_label":"0.0844 ha"},"area_sqm":844,"area_ha":0.0844,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.54696077696224,-40.91135147826405],[145.54691188525462,-40.91140114429438],[145.54690375011137,-40.91139633105152],[145.54669109462915,-40.91127022328436],[145.54671046589988,-40.91125104630711],[145.54697457778,-40.91098964063332],[145.54711584055335,-40.91107158230657],[145.54713365145045,-40.911133925961295],[145.54695535113797,-40.911343888405526],[145.54696077696224,-40.91135147826405]]]},"properties":{"pid":"9952248"}}}

+ 1 - 0
classes/cache/v2-latlng--40.911483_145.547731.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7089706","title_id":"15253/3","tenure":"Freehold Title","lpi":"6602015","list_guid":"{ff582c61-d3d0-4bd6-8a5f-1139fa082ebf}","total_area":{"sqm":701,"sqm_label":"701 sqm","ha":0.0701,"ha_label":"0.0701 ha"},"area_sqm":701,"area_ha":0.0701,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.5479260499727,-40.911467419694034],[145.54768913368957,-40.911746574003004],[145.54749908700637,-40.91165449688338],[145.54773653688883,-40.911374835742684],[145.5479260499727,-40.911467419694034]]]},"properties":{"pid":"7089706"}}}

+ 1 - 0
classes/cache/v2-latlng--40.911620_145.545667.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9724369","title_id":"178028/2","tenure":"Freehold Title","lpi":"FMQ53","list_guid":"{0540f473-00ad-40df-a590-a25c4984fe00}","total_area":{"sqm":23830,"sqm_label":"23,830 sqm","ha":2.383,"ha_label":"2.383 ha"},"area_sqm":23830,"area_ha":2.383,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.54673800106,-40.911599659368946],[145.54586916668688,-40.912607622467654],[145.54418049205623,-40.9117184950843],[145.54549906528138,-40.91071033716827],[145.5468002408345,-40.91148218730361],[145.5467587476515,-40.91151659752507],[145.54673800106,-40.911599659368946]]]},"properties":{"pid":"9724369"}}}

+ 1 - 0
classes/cache/v2-latlng--40.912866_145.549926.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9017752","title_id":"183489/1","tenure":"Freehold Title","lpi":"FMQ34","list_guid":"{4831a483-8a19-4492-b489-26697346e6ce}","total_area":{"sqm":851,"sqm_label":"851 sqm","ha":0.0851,"ha_label":"0.0851 ha"},"area_sqm":851,"area_ha":0.0851,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.5501654826024,-40.912904167130854],[145.55005613966603,-40.913046793218236],[145.54965955143436,-40.91287185192257],[145.54998932656844,-40.91244891443531],[145.55003018823572,-40.91246725470132],[145.5498111735796,-40.91274798111071],[145.55001635238378,-40.91283848785533],[145.5501654826024,-40.912904167130854]]]},"properties":{"pid":"9017752"}}}

+ 1 - 0
classes/cache/v2-latlng--40.913338_145.551434.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7089538","title_id":"55552/113","tenure":"Freehold Title","lpi":"6601645","list_guid":"{411f7e25-5aff-4879-a16d-12fa7aed9419}","total_area":{"sqm":668,"sqm_label":"668 sqm","ha":0.0668,"ha_label":"0.0668 ha"},"area_sqm":668,"area_ha":0.0668,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.55158678716347,-40.91330694030206],[145.55148581652554,-40.91345285322319],[145.5512938734988,-40.913375936688375],[145.55149627022047,-40.91308441499288],[145.5516882006708,-40.913161340013154],[145.55158678716347,-40.91330694030206]]]},"properties":{"pid":"7089538"}}}

+ 1 - 0
classes/cache/v2-latlng--40.914887_145.551493.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9890651","title_id":"182340/3","tenure":"Freehold Title","lpi":"FMQ53","list_guid":"{545729bf-b60f-42b4-9301-826260076ebc}","total_area":{"sqm":12290,"sqm_label":"12,290 sqm","ha":1.229,"ha_label":"1.229 ha"},"area_sqm":12290,"area_ha":1.229,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.55253333119856,-40.91488672538624],[145.55209523181765,-40.915515691121655],[145.55046597355647,-40.914882615677335],[145.5504423873904,-40.914813174184985],[145.55090910979118,-40.91428775128931],[145.55098491592312,-40.91428506508758],[145.55253333119856,-40.91488672538624]]]},"properties":{"pid":"9890651"}}}

+ 1 - 0
classes/cache/v2-latlng--40.916232_145.143687.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6243839","title_id":"64273/1","tenure":"Freehold Title","lpi":"FGR89","list_guid":"{1593db09-ad8c-496a-ba26-dd5e773846e0}","total_area":{"sqm":1029,"sqm_label":"1,029 sqm","ha":0.1029,"ha_label":"0.1029 ha"},"area_sqm":1029,"area_ha":0.1029,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["Village"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.1439273101337,-40.91632174285758],[145.14333038232235,-40.9163131753796],[145.14333024937173,-40.91612868685031],[145.14392718796282,-40.91613726317697],[145.1439273101337,-40.91632174285758]]]},"properties":{"pid":"6243839"}}}

+ 1 - 0
classes/cache/v2-latlng--40.917633_145.558938.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7133279","title_id":"20006/15","tenure":"Freehold Title","lpi":"6607222","list_guid":"{20f30729-d0af-4b7d-bbe6-baee39e50039}","total_area":{"sqm":728,"sqm_label":"728 sqm","ha":0.0728,"ha_label":"0.0728 ha"},"area_sqm":728,"area_ha":0.0728,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Natural Assets Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.55916133492676,-40.91760800460585],[145.5588154727626,-40.91780701829804],[145.55877252520716,-40.91776415267058],[145.558814955333,-40.91752852155519],[145.55893634108406,-40.91745857916109],[145.5589840703717,-40.91743108848633],[145.55911620266858,-40.91756294967297],[145.55916133492676,-40.91760800460585]]]},"properties":{"pid":"7133279"}}}

+ 1 - 0
classes/cache/v2-latlng--40.917843_145.563515.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7091777","title_id":"55697/51","tenure":"Freehold Title","lpi":"6601952","list_guid":"{c6fec172-378f-4ef6-a34a-67ea0883977d}","total_area":{"sqm":465,"sqm_label":"465 sqm","ha":0.0465,"ha_label":"0.0465 ha"},"area_sqm":465,"area_ha":0.0465,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.56371506308693,-40.91780907509805],[145.56369086337145,-40.91794500975129],[145.56333231699548,-40.91790828473658],[145.56335651760924,-40.91777234118329],[145.56371506308693,-40.91780907509805]]]},"properties":{"pid":"7091777"}}}

+ 1 - 0
classes/cache/v2-latlng--40.919428_145.562537.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7091494","title_id":"125086/1","tenure":"Freehold Title","lpi":"FMQ49","list_guid":"{48f05dc0-3968-4a26-9fda-bbde3ccde607}","total_area":{"sqm":1609,"sqm_label":"1,609 sqm","ha":0.1609,"ha_label":"0.1609 ha"},"area_sqm":1609,"area_ha":0.1609,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Natural Assets Code","Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.5629749608873,-40.91958520323262],[145.56249755482276,-40.919592439172355],[145.56249222691483,-40.91941249279101],[145.56248683971805,-40.91923141979511],[145.56289200057245,-40.91922443632848],[145.56292838323978,-40.91923115913698],[145.56295545037756,-40.91925078248432],[145.56296595078499,-40.91927804568418],[145.56296965453888,-40.91940420334096],[145.5629749608873,-40.91958520323262]]]},"properties":{"pid":"7091494"}}}

+ 1 - 0
classes/cache/v2-latlng--40.920928_145.558231.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7090010","title_id":"11811/12","tenure":"Freehold Title","lpi":"6601828","list_guid":"{04ac4b02-6d8a-48d7-af1e-581fa547ace4}","total_area":{"sqm":1334,"sqm_label":"1,334 sqm","ha":0.1334,"ha_label":"0.1334 ha"},"area_sqm":1334,"area_ha":0.1334,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":[],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.55854762029765,-40.92083194599742],[145.55849161123803,-40.921111383862865],[145.55825691738687,-40.92108434405847],[145.5580575722422,-40.92106138505932],[145.55812238748655,-40.920737513262],[145.55849783566464,-40.92078067223115],[145.55854762029765,-40.92083194599742]]]},"properties":{"pid":"7090010"}}}

+ 1 - 0
classes/cache/v2-latlng--40.920939_145.562584.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"1997682","title_id":"134142/1","tenure":"Freehold Title","lpi":"GJE88","list_guid":"{b54124f6-439b-4862-a43c-dbd322b83ce2}","total_area":{"sqm":3195,"sqm_label":"3,195 sqm","ha":0.3195,"ha_label":"0.3195 ha"},"area_sqm":3195,"area_ha":0.3195,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Natural Assets Code","Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.56273662257104,-40.92111220654176],[145.56223359206305,-40.92116694520951],[145.56221739364184,-40.921149430035406],[145.56219496181086,-40.92112799084237],[145.56216693706895,-40.92110050916024],[145.56214320986734,-40.921073081768945],[145.5621258714841,-40.92104790451745],[145.56210137352798,-40.921023177965495],[145.56206900363503,-40.92099836316301],[145.5620365169611,-40.92097896025897],[145.56199835383285,-40.92095732416457],[145.5619623053388,-40.92093733614035],[145.56192832296992,-40.920920635441284],[145.5618907437467,-40.92090551968952],[145.5618481653988,-40.920889251365445],[145.5618134473097,-40.92087362176973],[145.56178010723627,-40.92086073037109],[145.56175459148895,-40.92085009795193],[145.56173713632467,-40.920838503019915],[145.56178039110392,-40.920837781475974],[145.56228824556493,-40.92082936052118],[145.5625024650141,-40.92082579760037],[145.56329346575774,-40.92081266929782],[145.56336424132408,-40.9209652543455],[145.5630020702459,-40.920993160320855],[145.56273662257104,-40.92111220654176]]]},"properties":{"pid":"1997682"}}}

+ 1 - 0
classes/cache/v2-latlng--40.922456_145.558990.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"2787257","title_id":"150961/4","tenure":"Freehold Title","lpi":"6607177","list_guid":"{87b31a39-2844-450f-b01c-7364f7464071}","total_area":{"sqm":1023,"sqm_label":"1,023 sqm","ha":0.1023,"ha_label":"0.1023 ha"},"area_sqm":1023,"area_ha":0.1023,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.55923507313685,-40.92248508449767],[145.55911513367334,-40.92261920945652],[145.55855574735605,-40.92233140335866],[145.55859213810822,-40.922291376549026],[145.55867704956378,-40.922197971515395],[145.55923507313685,-40.92248508449767]]]},"properties":{"pid":"2787257"}}}

+ 1 - 0
classes/cache/v2-latlng--40.923764_145.557692.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9684392","title_id":"187198/12","tenure":"Freehold Title","lpi":"6601877","list_guid":"{0022164b-3d00-4036-aa83-5bc1cba84bcd}","total_area":{"sqm":2073,"sqm_label":"2,073 sqm","ha":0.2073,"ha_label":"0.2073 ha"},"area_sqm":2073,"area_ha":0.2073,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code","Natural Assets Code","Landslip Hazard Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.5581369545672,-40.923733884157336],[145.5574505150277,-40.92399640009856],[145.55710159230338,-40.923824946011266],[145.55797010148635,-40.92357950001946],[145.55784707092,-40.923335602035266],[145.55792483178595,-40.92331337891019],[145.5581369545672,-40.923733884157336]]]},"properties":{"pid":"9684392"}}}

+ 1 - 0
classes/cache/v2-latlng--40.925496_145.566141.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7096447","title_id":"108613/1","tenure":"Freehold Title","lpi":"6607190","list_guid":"{70219466-5c9a-46d1-9ef8-291bb7f3b145}","total_area":{"sqm":94480,"sqm_label":"94,480 sqm","ha":9.448,"ha_label":"9.448 ha"},"area_sqm":94480,"area_ha":9.448,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Environmental Management"],"planning_codes":["Natural Assets Code","Bushfire-prone Areas Code","Flood-prone Hazard Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.5685725341025,-40.9266764269838],[145.56846422961863,-40.927192021341384],[145.56416685458936,-40.92665028876168],[145.5648516573985,-40.923449642978106],[145.56729790646102,-40.92375071989567],[145.56739495595275,-40.92383552025814],[145.56679277569194,-40.92505060391573],[145.56676186645967,-40.92532407958657],[145.56714796775867,-40.92561171043513],[145.56766368607168,-40.92586395449698],[145.56867396108464,-40.92618553694376],[145.56865162986497,-40.92629628251143],[145.5686138458258,-40.92647975579927],[145.5685725341025,-40.9266764269838]]]},"properties":{"pid":"7096447"}}}

+ 1 - 0
classes/cache/v2-latlng--40.926690_145.615082.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9497631","title_id":"177861/14","tenure":"Freehold Title","lpi":"FMK32","list_guid":"{088a3883-d3fc-4d1e-bb5e-484e0dce62e2}","total_area":{"sqm":626,"sqm_label":"626 sqm","ha":0.0626,"ha_label":"0.0626 ha"},"area_sqm":626,"area_ha":0.0626,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.61536500110793,-40.92672985790024],[145.61511076081453,-40.92677623144558],[145.61504882107732,-40.9268372367875],[145.61504008316456,-40.92683251968921],[145.61496158298513,-40.9267901580953],[145.61490579760596,-40.9267600500853],[145.6148821683208,-40.926787096390925],[145.61484869619497,-40.92676903837293],[145.6148667002299,-40.92673896971909],[145.61495573315602,-40.92659029997226],[145.61534908835094,-40.92667629463326],[145.61536500110793,-40.92672985790024]]]},"properties":{"pid":"9497631"}}}

+ 1 - 0
classes/cache/v2-latlng--40.929346_145.617429.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9793400","title_id":"184017/7","tenure":"Horizontal Strata","lpi":"FMK44","list_guid":"{76045989-9e96-4169-bae5-268c46d0ad56}","total_area":{"sqm":302,"sqm_label":"302 sqm","ha":0.0302,"ha_label":"0.0302 ha"},"area_sqm":302,"area_ha":0.0302,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Landslip Hazard Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.61753977659666,-40.92944650273572],[145.61730237881653,-40.929454249329815],[145.61728748385076,-40.929330129970026],[145.61750087415496,-40.92931224096302],[145.6175271148427,-40.92931888808911],[145.61753379651185,-40.929351072413574],[145.6175234694793,-40.92935359715271],[145.61753096053047,-40.92938684565085],[145.61752399499372,-40.9293882301845],[145.61753470381026,-40.92942375975101],[145.61753977659666,-40.92944650273572]],[[145.61762148465996,-40.92928900520027],[145.617593114965,-40.92929562857441],[145.61757214738793,-40.929243995558096],[145.61760051708293,-40.9292373721788],[145.61761547493074,-40.929274204919174],[145.61762148465996,-40.92928900520027]]]},"properties":{"pid":"9793400"}}}

+ 1 - 0
classes/cache/v2-latlng--40.929746_145.615981.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9789547","title_id":"184552/1","tenure":"Freehold Title","lpi":"JNX26","list_guid":"{b3df2fb7-c616-4665-ba62-98e180127d35}","total_area":{"sqm":1553,"sqm_label":"1,553 sqm","ha":0.1553,"ha_label":"0.1553 ha"},"area_sqm":1553,"area_ha":0.1553,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code","Landslip Hazard Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.61601031038379,-40.929469760839936],[145.61599840860464,-40.92952785414469],[145.61607932435388,-40.929487650482976],[145.6161776916741,-40.92951325141637],[145.6161195464207,-40.929779919693964],[145.6162980928716,-40.92980237547074],[145.6162675914744,-40.929951514429284],[145.61592127925434,-40.92990795695123],[145.61576663607477,-40.92988975047477],[145.61586625025666,-40.9294527718167],[145.61601031038379,-40.929469760839936]]]},"properties":{"pid":"9789547"}}}

+ 1 - 0
classes/cache/v2-latlng--40.929936_145.617726.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9320226","title_id":"184952/4","tenure":"Freehold Title","lpi":"JPQ31","list_guid":"{45f79e05-e33e-4a3c-99d7-9d8dfb1c250f}","total_area":{"sqm":500,"sqm_label":"500 sqm","ha":0.05,"ha_label":"0.05 ha"},"area_sqm":500,"area_ha":0.05,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code","Landslip Hazard Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.61784400544065,-40.93004231660166],[145.61774155887076,-40.93010238777167],[145.61768525516368,-40.93008664226346],[145.61762771447644,-40.930040840459085],[145.61760229395054,-40.929980596846676],[145.6176529975601,-40.929815962138434],[145.61780525481427,-40.92980672586519],[145.61781989645507,-40.92989579215332],[145.61784400544065,-40.93004231660166]]]},"properties":{"pid":"9320226"}}}

+ 1 - 0
classes/cache/v2-latlng--40.929960_145.617978.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9320225","title_id":"184952/3","tenure":"Freehold Title","lpi":"JPQ31","list_guid":"{e0719709-5f1f-4cbb-bae6-9c8729930038}","total_area":{"sqm":500,"sqm_label":"500 sqm","ha":0.05,"ha_label":"0.05 ha"},"area_sqm":500,"area_ha":0.05,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.61787728892025,-40.93007749561458],[145.61777818947306,-40.93012285149723],[145.61774155887076,-40.93010238777167],[145.61784400544065,-40.93004231660166],[145.61781989645507,-40.92989579215332],[145.61807949519917,-40.92986690787549],[145.61811841650547,-40.9300476144262],[145.61787728892025,-40.93007749561458]]]},"properties":{"pid":"9320225"}}}

+ 1 - 0
classes/cache/v2-latlng--40.930318_145.618495.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7087129","title_id":"188242/1","tenure":"Freehold Title","lpi":"JNN53","list_guid":"{fbcc73e9-1710-4e8d-bcf3-3e4fdcf6ff8e}","total_area":{"sqm":437,"sqm_label":"437 sqm","ha":0.0437,"ha_label":"0.0437 ha"},"area_sqm":437,"area_ha":0.0437,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.61845482120634,-40.930469922837375],[145.61841172992044,-40.93049102508853],[145.61834788036498,-40.93023374045547],[145.6183905251882,-40.93021069504846],[145.6184165332123,-40.93019663949086],[145.61854191017818,-40.93025654017087],[145.6186022033034,-40.93035668399628],[145.61862897489547,-40.93038463215653],[145.61845482120634,-40.930469922837375]]]},"properties":{"pid":"7087129"}}}

+ 1 - 0
classes/cache/v2-latlng--40.931272_145.618665.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9372245","title_id":"188003/1","tenure":"Freehold Title","lpi":"JNU11","list_guid":"{38906f9f-7452-45cc-a32f-c24e3a0cb534}","total_area":{"sqm":930,"sqm_label":"930 sqm","ha":0.093,"ha_label":"0.093 ha"},"area_sqm":930,"area_ha":0.093,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code","Landslip Hazard Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.61882649017195,-40.93130137073077],[145.61854056450187,-40.9314648174559],[145.61842977527786,-40.931354547477255],[145.61831808684025,-40.93124414090115],[145.61860498089428,-40.931078075299716],[145.6187163414468,-40.93118939700652],[145.61882649017195,-40.93130137073077]]]},"properties":{"pid":"9372245"}}}

+ 1 - 0
classes/cache/v2-latlng--40.931575_145.620434.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7087778","title_id":"143923/34","tenure":"Freehold Title","lpi":"JNN70","list_guid":"{5baefff2-c983-42da-b0d0-61bc76fb2358}","total_area":{"sqm":685,"sqm_label":"685 sqm","ha":0.0685,"ha_label":"0.0685 ha"},"area_sqm":685,"area_ha":0.0685,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Natural Assets Code","Bushfire-prone Areas Code","Landslip Hazard Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.62056024226356,-40.93178408349738],[145.6204029068331,-40.93169121106262],[145.62031356039503,-40.93163251835839],[145.6202629358371,-40.93153843631915],[145.62038034384815,-40.93139982172127],[145.62050690209864,-40.931492208636904],[145.62063654157058,-40.93167741439306],[145.62056024226356,-40.93178408349738]]]},"properties":{"pid":"7087778"}}}

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
classes/cache/v2-latlng--40.934262_145.637004.json


+ 1 - 0
classes/cache/v2-latlng--40.935056_145.619339.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7159372","title_id":"26645/1","tenure":"Freehold Title","lpi":"JPM58","list_guid":"{b85241b9-fc79-4166-8680-4a4e519d2f77}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code","Landslip Hazard Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.62089861068165,-40.937894109935606],[145.62077527378977,-40.93849823985997],[145.6168795966095,-40.93669807849293],[145.6173031774188,-40.93478408508407],[145.61734238888099,-40.9346068640854],[145.61771416654278,-40.93282218679982],[145.6179003711315,-40.93192825217757],[145.61934093826721,-40.93207116501223],[145.61980714683168,-40.93211869736206],[145.62003761680435,-40.93256811655702],[145.62081647052872,-40.932959175746454],[145.6213968028635,-40.93349887494292],[145.62154823905746,-40.9336141144867],[145.62168388286872,-40.9339028018713],[145.6213217477232,-40.935589573376845],[145.6212285978181,-40.93606196347428],[145.62110826309592,-40.93667225504226],[145.62108807974812,-40.93677458718389],[145.62099530533882,-40.93724699934491],[145.62089861068165,-40.937894109935606]]]},"properties":{"pid":"7159372"}}}

+ 1 - 0
classes/cache/v2-latlng--40.937376_145.605904.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"1910858","title_id":"100539/2","tenure":"Freehold Title","lpi":"JPM47","list_guid":"{948096e5-5e98-4d6b-801a-3abac45b5e08}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.61023981237472,-40.93688247771062],[145.6096703182138,-40.939596203159816],[145.60538891523032,-40.939074077096926],[145.605597719635,-40.93808309792556],[145.60594928520288,-40.9363990061727],[145.61023981237472,-40.93688247771062]]]},"properties":{"pid":"1910858"}}}

+ 1 - 0
classes/cache/v2-latlng--40.938803_145.624285.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"1867757","title_id":"65450/1","tenure":"Freehold Title","lpi":"JNU16","list_guid":"{19ec68ca-31c0-4c93-9c46-5ce8a2b6d22e}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.6240393230359,-40.939013925867066],[145.624111234971,-40.938670688700036],[145.62458677792955,-40.938731591449326],[145.62476072590457,-40.93875197921368],[145.62482590137338,-40.93881746105458],[145.62475704281186,-40.93913335967316],[145.6240393230359,-40.939013925867066]]]},"properties":{"pid":"1867757"}}}

+ 1 - 0
classes/cache/v2-latlng--40.938937_148.021223.json

@@ -0,0 +1 @@
+{"ok":true,"pid":null,"title_id":null,"tenure":"Crown Land","lpi":null,"list_guid":"{c7a16b03-97eb-438f-84f8-d9ed73bfdf04}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[148.02473243432837,-40.923595250471976],[148.02486094102468,-40.92634980061194],[148.02406603171124,-40.92981757605981],[148.02213868908262,-40.933223882380695],[148.0218022304829,-40.93350375715609],[148.02162197274131,-40.93365370010282],[148.0213567325773,-40.93387433535575],[148.020515110869,-40.93432510532183],[148.01952868792353,-40.935170408546],[148.01932894213027,-40.93631649599459],[148.0195324365932,-40.9365815088064],[148.02231065627245,-40.9402245143853],[148.02274407902394,-40.941832593499306],[148.02249047653444,-40.94179672996613],[148.02208428980398,-40.94028970433375],[148.0190816323393,-40.93635237268272],[148.01930133690158,-40.9350917684425],[148.02028665941086,-40.934247413633706],[148.0203074922406,-40.93422956464072],[148.0203545630632,-40.93418922403929],[148.021197645432,-40.933737667950034],[148.02193496554926,-40.93312434690365],[148.0238353991435,-40.929765620395344],[148.02462126242204,-40.92633734602241],[148.02453112905974,-40.92440035932743],[148.02449218170224,-40.92356345159069],[148.0246221526525,-40.92358009664299],[148.02463405443171,-40.92358172972175],[148.02473243432837,-40.923595250471976]]]},"properties":{"pid":null}}}

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
classes/cache/v2-latlng--40.946534_147.592289.json


+ 1 - 0
classes/cache/v2-latlng--40.948684_145.629106.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7092008","title_id":"62269/2","tenure":"Freehold Title","lpi":"JPC92","list_guid":"{e35a6b78-a46f-4d9e-adb1-4aa8dc0a655b}","total_area":{"sqm":20846,"sqm_label":"20,846 sqm","ha":2.0846,"ha_label":"2.0846 ha"},"area_sqm":20846,"area_ha":2.0846,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.63013402213272,-40.94901594165351],[145.62989581497052,-40.95000485975447],[145.627901926044,-40.94895796793828],[145.62788862289295,-40.948945189899035],[145.6276158234058,-40.94855246532863],[145.62830620385444,-40.948261122544395],[145.62848253416158,-40.948141820589264],[145.63013402213272,-40.94901594165351]]]},"properties":{"pid":"7092008"}}}

+ 1 - 0
classes/cache/v2-latlng--40.949422_145.626565.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7092040","title_id":"113581/2","tenure":"Freehold Title","lpi":"JNN43","list_guid":"{e4adc5d0-d864-4e10-bef2-e6f1c196f703}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.62684630587214,-40.951470128694666],[145.6262958802498,-40.951574729085664],[145.62619702783925,-40.94921071247346],[145.62711485992125,-40.948784887140846],[145.62737419905224,-40.94913504255324],[145.62684630587214,-40.951470128694666]]]},"properties":{"pid":"7092040"}}}

+ 1 - 0
classes/cache/v2-latlng--40.951794_145.622985.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7092091","title_id":"17024/1","tenure":"Freehold Title","lpi":"JPJ64","list_guid":"{bdaf65e1-14bc-4083-9bad-d68975a8a03f}","total_area":{"sqm":0,"sqm_label":"0 sqm","ha":0,"ha_label":"0 ha"},"area_sqm":0,"area_ha":0,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.62328907616168,-40.95127462975863],[145.62305555730697,-40.952389906552234],[145.62304694605663,-40.95245094048311],[145.62298829056016,-40.952732116479325],[145.62218759070643,-40.95265206235482],[145.62232193375715,-40.95197433427112],[145.6230682181626,-40.95142780257414],[145.62328907616168,-40.95127462975863]]]},"properties":{"pid":"7092091"}}}

+ 1 - 0
classes/cache/v2-latlng--40.953233_145.680278.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"2895557","title_id":"135059/2","tenure":"Freehold Title","lpi":"JPG29","list_guid":"{c42d8066-df89-4b92-8658-4be21a315e05}","total_area":{"sqm":687800,"sqm_label":"687,800 sqm","ha":68.78,"ha_label":"68.78 ha"},"area_sqm":687800,"area_ha":68.78,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.6792835417812,-40.95929540147412],[145.67924580265782,-40.95937528405197],[145.6773689642128,-40.958448483767775],[145.67667023212687,-40.9577908911168],[145.67619653610456,-40.957209609366345],[145.67569945783367,-40.956006823313274],[145.6755559447805,-40.95571803647474],[145.67593223288335,-40.95401588113392],[145.6763532472059,-40.95222085122477],[145.67726344181128,-40.948309001491964],[145.67737338841556,-40.94790702107559],[145.67778549773865,-40.94613856355767],[145.67902311389213,-40.94626666613872],[145.68344079759237,-40.946794426040555],[145.68340189874397,-40.94699905744424],[145.68297220489916,-40.947203657002355],[145.6828213166775,-40.94727749241161],[145.68219205939744,-40.94757483345906],[145.68165107506866,-40.947834257727195],[145.68164187542183,-40.94784102579879],[145.68161482445373,-40.94795563984733],[145.68140597243834,-40.94884435640681],[145.68138966532095,-40.94890257787153],[145.6810278571622,-40.95054197106263],[145.68100027079817,-40.950634428906966],[145.67949209645414,-40.958136988758405],[145.6794905190125,-40.958140402454916],[145.67943313103893,-40.95814200618669],[145.67942700452866,-40.958146512102886],[145.6792835417812,-40.95929540147412]],[[145.68514050263641,-40.95599238451018],[145.6800109471926,-40.95621281217324],[145.68086517945076,-40.95189514358803],[145.68597450393608,-40.95167674300636],[145.68514050263641,-40.95599238451018]]]},"properties":{"pid":"2895557"}}}

+ 1 - 0
classes/cache/v2-latlng--40.954976_145.622119.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"3560302","title_id":"174537/1","tenure":"Freehold Title","lpi":"JNN39","list_guid":"{abaa7d19-5b50-4dd2-96fa-0b3ae2a166bd}","total_area":{"sqm":7248,"sqm_label":"7,248 sqm","ha":0.7248,"ha_label":"0.7248 ha"},"area_sqm":7248,"area_ha":0.7248,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.62261498127083,-40.95453630695919],[145.62241476835354,-40.95549552100358],[145.62161245782048,-40.955402823019725],[145.62179740925944,-40.95448271196252],[145.62261498127083,-40.95453630695919]]]},"properties":{"pid":"3560302"}}}

+ 1 - 0
classes/cache/v2-latlng--40.959143_145.164604.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"3438980","title_id":"168572/2","tenure":"Freehold Title","lpi":"4401282","list_guid":"{8625ca6b-7ad8-4bf7-8848-f5fc04c916de}","total_area":{"sqm":3075,"sqm_label":"3,075 sqm","ha":0.3075,"ha_label":"0.3075 ha"},"area_sqm":3075,"area_ha":0.3075,"council":"Circular Head","planning_scheme":"Circular Head Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.1648754161966,-40.959346424875804],[145.1643209930712,-40.95934253230172],[145.16432436085526,-40.95875022543333],[145.1648777185787,-40.95875123623633],[145.1648754161966,-40.959346424875804]]]},"properties":{"pid":"3438980"}}}

+ 1 - 0
classes/cache/v2-latlng--40.960879_147.615581.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7362522","title_id":"244048/1","tenure":"Freehold Title","lpi":"FYW35","list_guid":"{89b3dc5b-3193-46c3-9ae8-fc2a34d67396}","total_area":{"sqm":4277000,"sqm_label":"4,277,000 sqm","ha":427.7,"ha_label":"427.7 ha"},"area_sqm":4277000,"area_ha":427.7,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[147.62104168368117,-40.96553081985721],[147.6096585000988,-40.96942174494473],[147.60140614740243,-40.9652388553584],[147.5982829108738,-40.96472046750239],[147.5949724079477,-40.96469146821403],[147.5950241338401,-40.96464197111853],[147.5978507044411,-40.96011162260312],[147.5987319202938,-40.958699063178884],[147.60818801547086,-40.94363656611273],[147.60867491223632,-40.942889887877485],[147.6211384645766,-40.949075648183076],[147.6221041867447,-40.950226127011966],[147.62295429932897,-40.9512047054425],[147.6241272134258,-40.95224111134565],[147.62500669822495,-40.95382729152556],[147.62474718122755,-40.95464502397578],[147.62109526189965,-40.959133936668216],[147.62074694733474,-40.960777561868966],[147.62117174086967,-40.9649032730899],[147.62104168368117,-40.96553081985721]]]},"properties":{"pid":"7362522"}}}

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
classes/cache/v2-latlng--40.968054_145.681713.json


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
classes/cache/v2-latlng--40.970043_145.685406.json


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
classes/cache/v2-latlng--40.974661_147.566052.json


+ 1 - 0
classes/cache/v2-latlng--40.976974_145.719289.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"3464900","title_id":"171918/6","tenure":"Freehold Title","lpi":"JNS15","list_guid":"{e5a4a417-57cf-49a0-af4c-be0f32521c96}","total_area":{"sqm":2000,"sqm_label":"2,000 sqm","ha":0.2,"ha_label":"0.2 ha"},"area_sqm":2000,"area_ha":0.2,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.7197597474114,-40.97701067030124],[145.71886244452858,-40.97719402102407],[145.71881907117174,-40.97696866439359],[145.71961130260735,-40.97678893941109],[145.7196661824847,-40.97677648755061],[145.7197597474114,-40.97701067030124]]]},"properties":{"pid":"3464900"}}}

+ 1 - 0
classes/cache/v2-latlng--40.977400_145.696788.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7368844","title_id":"232685/1","tenure":"Freehold Title","lpi":"JPE49","list_guid":"{2c8edef8-6e09-41f2-ba03-d2e50a49c0ca}","total_area":{"sqm":18090,"sqm_label":"18,090 sqm","ha":1.809,"ha_label":"1.809 ha"},"area_sqm":18090,"area_ha":1.809,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Industrial"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.69807469762543,-40.97749858034986],[145.69599813853992,-40.97812895746408],[145.69555877163617,-40.97729646263024],[145.69648068386616,-40.977017142397536],[145.69751877521185,-40.97670261799277],[145.69779325993852,-40.97714403686306],[145.69807469762543,-40.97749858034986]]]},"properties":{"pid":"7368844"}}}

+ 1 - 0
classes/cache/v2-latlng--40.978352_145.726057.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9348067","title_id":"177440/1","tenure":"Freehold Title","lpi":"JNS17","list_guid":"{98f23c70-497b-416a-b28e-b1f0ab34973b}","total_area":{"sqm":97980,"sqm_label":"97,980 sqm","ha":9.798,"ha_label":"9.798 ha"},"area_sqm":97980,"area_ha":9.798,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.72613525178122,-40.97855513198313],[145.7260906405459,-40.97858182544509],[145.72600153665286,-40.978579651176204],[145.725935950654,-40.97853567952284],[145.72582484881627,-40.97848577233558],[145.72585415186086,-40.978174934122954],[145.7254775223982,-40.97768698906348],[145.72461088440593,-40.97702908284727],[145.7245032428787,-40.97641292745446],[145.72512983036574,-40.9755656610709],[145.72569758538828,-40.975440044726184],[145.7269532442042,-40.97494568988089],[145.72797265418527,-40.97425682692323],[145.72848572246818,-40.97452786206793],[145.7289494031735,-40.974906392168045],[145.72909543420437,-40.97521938014747],[145.72911208447817,-40.97575880789978],[145.72902630255504,-40.97646727508909],[145.72866074662494,-40.9769791026305],[145.72758330008662,-40.97714208567533],[145.72678574523468,-40.97726455192661],[145.72614995989736,-40.97788586856389],[145.7262250976827,-40.97809495358321],[145.72636013333454,-40.978470663652686],[145.72628463173146,-40.97849173632409],[145.72613525178122,-40.97855513198313]]]},"properties":{"pid":"9348067"}}}

+ 1 - 0
classes/cache/v2-latlng--40.979645_145.727148.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"2561012","title_id":"142423/1","tenure":"Freehold Title","lpi":"JNS08","list_guid":"{90314b32-2509-473f-8442-f6f0c064b713}","total_area":{"sqm":4707,"sqm_label":"4,707 sqm","ha":0.4707,"ha_label":"0.4707 ha"},"area_sqm":4707,"area_ha":0.4707,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.72716113322562,-40.980068388719104],[145.72707047255213,-40.98009453767484],[145.7267842423532,-40.97996320210372],[145.72668809566832,-40.97993154903977],[145.72713358638742,-40.97933986303476],[145.72737921992208,-40.979310588048676],[145.72746061357503,-40.97930088464968],[145.7277568653793,-40.97989654510348],[145.7274951987134,-40.97997202581477],[145.72716113322562,-40.980068388719104]]]},"properties":{"pid":"2561012"}}}

+ 1 - 0
classes/cache/v2-latlng--40.981022_145.723299.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7066213","title_id":"55348/3","tenure":"Freehold Title","lpi":"JNS04","list_guid":"{569b6aa9-20fb-41c5-ba4b-c00bd0d6a836}","total_area":{"sqm":921,"sqm_label":"921 sqm","ha":0.0921,"ha_label":"0.0921 ha"},"area_sqm":921,"area_ha":0.0921,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Natural Assets Code","Safeguarding of Airports Code","Coastal Erosion Hazard Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.72348916350055,-40.98117494475945],[145.72312782785562,-40.98119566053262],[145.7230801497719,-40.98124441483194],[145.72327479672768,-40.981599196691235],[145.7232346483227,-40.98161187618],[145.7229263519071,-40.9810501664542],[145.72337827456354,-40.98100725031231],[145.72345984518466,-40.98113027429573],[145.72348916350055,-40.98117494475945]]]},"properties":{"pid":"7066213"}}}

+ 1 - 0
classes/cache/v2-latlng--40.981357_145.693883.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"3016825","title_id":"158801/2","tenure":"Freehold Title","lpi":"JNQ72","list_guid":"{d43a7d07-677a-4fdc-bf69-b0429665805e}","total_area":{"sqm":68870,"sqm_label":"68,870 sqm","ha":6.887,"ha_label":"6.887 ha"},"area_sqm":68870,"area_ha":6.887,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Industrial"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.69583004488567,-40.98521030297199],[145.6949021094517,-40.985490125576845],[145.6941154897917,-40.983989808572126],[145.69402328581262,-40.983805839972206],[145.69266842873475,-40.981224850590166],[145.69452702149806,-40.980659733174775],[145.69587765200245,-40.98324659837178],[145.694950353474,-40.983526257740415],[145.69583004488567,-40.98521030297199]]]},"properties":{"pid":"3016825"}}}

+ 1 - 0
classes/cache/v2-latlng--40.981512_145.535028.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"3158276","title_id":"162753/1","tenure":"Freehold Title","lpi":"6607107","list_guid":"{3f76daae-4c52-4db8-ade7-ee7d7e39c3fd}","total_area":{"sqm":4248,"sqm_label":"4,248 sqm","ha":0.4248,"ha_label":"0.4248 ha"},"area_sqm":4248,"area_ha":0.4248,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.5352909472609,-40.981642480008475],[145.5351994188149,-40.982047571147874],[145.53478268047317,-40.98200324306389],[145.53471130662885,-40.98177697718313],[145.5348546256459,-40.98113885439079],[145.5353892175631,-40.981195849739414],[145.53534917785424,-40.981383622630055],[145.5352909472609,-40.981642480008475]]]},"properties":{"pid":"3158276"}}}

+ 1 - 0
classes/cache/v2-latlng--40.981799_145.626519.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7892611","title_id":"102898/2","tenure":"Freehold Title","lpi":"JNT98","list_guid":"{2254246f-1be6-4b81-8222-63695f28378f}","total_area":{"sqm":22270,"sqm_label":"22,270 sqm","ha":2.227,"ha_label":"2.227 ha"},"area_sqm":22270,"area_ha":2.227,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Agriculture"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.62698630202098,-40.98098653719261],[145.6270145459518,-40.981382473829356],[145.62700457195723,-40.98161175004291],[145.6268027160213,-40.98193996261419],[145.62660141973578,-40.98221416095609],[145.6264568691285,-40.98211545071512],[145.62634270403564,-40.9815096955849],[145.6261592896142,-40.981229841171164],[145.62613351335543,-40.98135041116034],[145.6255198669983,-40.98113875063214],[145.62478747593707,-40.9808899993071],[145.6253822810294,-40.98044669035772],[145.6265199048103,-40.97959878133214],[145.6265114992742,-40.97964125215036],[145.6263825676747,-40.98022273441126],[145.62661877339042,-40.980250834401616],[145.62669828686953,-40.980260294197805],[145.6268719527735,-40.98066109832302],[145.62698630202098,-40.98098653719261]]]},"properties":{"pid":"7892611"}}}

+ 1 - 0
classes/cache/v2-latlng--40.984455_145.710915.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9120328","title_id":"185277/31","tenure":"Freehold Title","lpi":"FNR18","list_guid":"{19219897-cbbe-4fa6-a1f2-fd58c54e7ece}","total_area":{"sqm":2056,"sqm_label":"2,056 sqm","ha":0.2056,"ha_label":"0.2056 ha"},"area_sqm":2056,"area_ha":0.2056,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.71121674480494,-40.98468272475848],[145.71087668396086,-40.98478115312625],[145.7107548113229,-40.98459405514995],[145.7106237866488,-40.98439289295473],[145.71070063392807,-40.98427101906067],[145.7107688331261,-40.98416283977871],[145.71092954173045,-40.984116084731156],[145.71099473426727,-40.98424471714733],[145.7110599034479,-40.98437330455621],[145.7111250618487,-40.98450185645173],[145.71121674480494,-40.98468272475848]]]},"properties":{"pid":"9120328"}}}

+ 1 - 0
classes/cache/v2-latlng--40.984506_145.719278.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"2032030","title_id":"135333/1","tenure":"Freehold Title","lpi":"GEZ01","list_guid":"{81f377aa-cbc1-4e88-b66e-7cbe4470220f}","total_area":{"sqm":10100,"sqm_label":"10,100 sqm","ha":1.01,"ha_label":"1.01 ha"},"area_sqm":10100,"area_ha":1.01,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.7200141377235,-40.98500433070747],[145.71943227555772,-40.985186989905934],[145.71908527702473,-40.98507622780885],[145.71890407874704,-40.98513336961937],[145.71843378554303,-40.984384787972424],[145.7187265087649,-40.984293170137946],[145.71949537412158,-40.984052689670165],[145.7200141377235,-40.98500433070747]]]},"properties":{"pid":"2032030"}}}

+ 1 - 0
classes/cache/v2-latlng--40.985141_147.389618.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6851316","title_id":"189512/2","tenure":"Freehold Title","lpi":"6105750","list_guid":"{95d16440-613f-41b5-805b-b46b0a1e8235}","total_area":{"sqm":2838,"sqm_label":"2,838 sqm","ha":0.2838,"ha_label":"0.2838 ha"},"area_sqm":2838,"area_ha":0.2838,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["Low Density Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[147.38985077886653,-40.985085292924865],[147.38857150783338,-40.98545533751933],[147.38851670880436,-40.98536689883149],[147.38870698096474,-40.98535831250531],[147.38903447797122,-40.98526358481474],[147.3888618801641,-40.985040871267586],[147.3895446204413,-40.98478374152427],[147.38985077886653,-40.985085292924865]]]},"properties":{"pid":"6851316"}}}

+ 1 - 0
classes/cache/v2-latlng--40.985149_145.666306.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7086337","title_id":"12729/1","tenure":"Freehold Title","lpi":"JNN93","list_guid":"{1b46c499-e3fd-4c48-8328-74b8f8eadf58}","total_area":{"sqm":68650,"sqm_label":"68,650 sqm","ha":6.865,"ha_label":"6.865 ha"},"area_sqm":68650,"area_ha":6.865,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Rural"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.66910003310787,-40.987267906438746],[145.66743539559764,-40.98777732024187],[145.66646453057453,-40.98596990473179],[145.66598043565443,-40.98497040564263],[145.66746534003929,-40.98524207352958],[145.66918691367056,-40.98540065890986],[145.6699078062962,-40.98580826446474],[145.67096553122073,-40.98673072510946],[145.67086915995705,-40.986758475138124],[145.66910003310787,-40.987267906438746]]]},"properties":{"pid":"7086337"}}}

+ 1 - 0
classes/cache/v2-latlng--40.985304_145.671570.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7728897","title_id":"49137/5","tenure":"Freehold Title","lpi":"FHA28","list_guid":"{c39689ce-786b-46ea-b0e5-7e082462110f}","total_area":{"sqm":9703,"sqm_label":"9,703 sqm","ha":0.9703,"ha_label":"0.9703 ha"},"area_sqm":9703,"area_ha":0.9703,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.67277994753331,-40.98483224226556],[145.67137770971414,-40.985729886749006],[145.67106782507707,-40.98515051045758],[145.67244904321694,-40.98431779095158],[145.67277994753331,-40.98483224226556]]]},"properties":{"pid":"7728897"}}}

+ 1 - 0
classes/cache/v2-latlng--40.985704_145.713960.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9495708","title_id":null,"tenure":"Crown Land","lpi":"JNR73","list_guid":"{9102ac87-5523-4e95-a5cf-f08d74ed9a57}","total_area":{"sqm":16800,"sqm_label":"16,800 sqm","ha":1.68,"ha_label":"1.68 ha"},"area_sqm":16800,"area_ha":1.68,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Open Space"],"planning_codes":["Natural Assets Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.71460728582616,-40.986476259453546],[145.71413655154927,-40.9865557646496],[145.7139932343289,-40.986274388273664],[145.71381866921124,-40.985931688394],[145.71380437881177,-40.98590363151074],[145.71373777053003,-40.98577286762915],[145.71332214340433,-40.98495691915641],[145.71376823329962,-40.98482742759107],[145.71414979720817,-40.984716914439794],[145.71437378583602,-40.98465214200639],[145.7148435301695,-40.985507549774894],[145.7150988322715,-40.98597061200201],[145.71487760596312,-40.98604047032723],[145.71465427400375,-40.98611098905756],[145.7144536065389,-40.98617435637177],[145.71460728582616,-40.986476259453546]]]},"properties":{"pid":"9495708"}}}

+ 1 - 0
classes/cache/v2-latlng--40.986896_147.387930.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9374822","title_id":"182836/3","tenure":"Freehold Title","lpi":"6105283","list_guid":"{52a72c0f-e302-4102-be48-15203754c80b}","total_area":{"sqm":668,"sqm_label":"668 sqm","ha":0.0668,"ha_label":"0.0668 ha"},"area_sqm":668,"area_ha":0.0668,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[147.3880184537405,-40.98697230315071],[147.3879517924582,-40.987149836570424],[147.38788119835158,-40.98714526414662],[147.38786196631966,-40.987032140124086],[147.38773761702652,-40.986772337603185],[147.38808507998849,-40.986794851303465],[147.3880184537405,-40.98697230315071]]]},"properties":{"pid":"9374822"}}}

+ 1 - 0
classes/cache/v2-latlng--40.986902_145.692621.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"1925355","title_id":"130118/9","tenure":"Freehold Title","lpi":"GER30","list_guid":"{b851a317-d3fd-438d-93af-81937ee00467}","total_area":{"sqm":28550,"sqm_label":"28,550 sqm","ha":2.855,"ha_label":"2.855 ha"},"area_sqm":28550,"area_ha":2.855,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.6937666299494,-40.98878777528555],[145.69260927197837,-40.989134754595916],[145.6914798650874,-40.98672252412377],[145.69249896874297,-40.98641290260107],[145.6925651754777,-40.986392781810366],[145.69260731814262,-40.98647698841775],[145.6937666299494,-40.98878777528555]]]},"properties":{"pid":"1925355"}}}

+ 1 - 0
classes/cache/v2-latlng--40.987044_145.704851.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"3440722","title_id":"171173/1","tenure":"Freehold Title","lpi":"FNQ25","list_guid":"{46263814-bbab-4dd7-913b-1e725d6bf000}","total_area":{"sqm":726,"sqm_label":"726 sqm","ha":0.0726,"ha_label":"0.0726 ha"},"area_sqm":726,"area_ha":0.0726,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.70499667143707,-40.98698269979653],[145.70480578393082,-40.98730871436962],[145.70460706850514,-40.98724191222115],[145.7047979578081,-40.98691588918056],[145.70499667143707,-40.98698269979653]]]},"properties":{"pid":"3440722"}}}

+ 1 - 0
classes/cache/v2-latlng--40.987484_145.693704.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"1925347","title_id":"130118/8","tenure":"Freehold Title","lpi":"GER29","list_guid":"{e0a62786-efed-4a23-ae4e-b1c612ca8df6}","total_area":{"sqm":28690,"sqm_label":"28,690 sqm","ha":2.869,"ha_label":"2.869 ha"},"area_sqm":28690,"area_ha":2.869,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Rural Living"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.69486169514533,-40.9884594557524],[145.6937666299494,-40.98878777528555],[145.69260731814262,-40.98647698841775],[145.6925651754777,-40.986392781810366],[145.69263138221245,-40.98637267050703],[145.69364983009783,-40.9860632385688],[145.69490595424108,-40.98844618357684],[145.69486169514533,-40.9884594557524]]]},"properties":{"pid":"1925347"}}}

+ 1 - 0
classes/cache/v2-latlng--40.987722_147.387262.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"3475159","title_id":"171324/1","tenure":"Freehold Title","lpi":"6106096","list_guid":"{fb87f198-e299-4f81-8632-b577590dfe99}","total_area":{"sqm":708,"sqm_label":"708 sqm","ha":0.0708,"ha_label":"0.0708 ha"},"area_sqm":708,"area_ha":0.0708,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[147.38752707797505,-40.98766732874178],[147.38751073223014,-40.98781553279767],[147.38725907099987,-40.9877991548283],[147.38708941158205,-40.98777415015767],[147.3869836619068,-40.987767253952605],[147.3870049663521,-40.98763334740891],[147.38700614404343,-40.98763342403356],[147.38752707797505,-40.98766732874178]]]},"properties":{"pid":"3475159"}}}

+ 1 - 0
classes/cache/v2-latlng--40.987771_147.388020.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"3397744","title_id":"168953/2","tenure":"Freehold Title","lpi":"6106097","list_guid":"{648befc6-4194-4342-b09e-2514cba0ac5b}","total_area":{"sqm":778,"sqm_label":"778 sqm","ha":0.0778,"ha_label":"0.0778 ha"},"area_sqm":778,"area_ha":0.0778,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[147.3887064608402,-40.98777997836581],[147.3881962294369,-40.98774692607866],[147.38818132548803,-40.98789162150934],[147.38782411670348,-40.98786847484568],[147.3878445291217,-40.98768798890624],[147.38820435380035,-40.98771129837572],[147.38871051763203,-40.98774409436152],[147.3887064608402,-40.98777997836581]]]},"properties":{"pid":"3397744"}}}

+ 1 - 0
classes/cache/v2-latlng--40.988243_145.730242.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"1590233","title_id":"114413/2","tenure":"Freehold Title","lpi":"JNV34","list_guid":"{c59283c9-be11-4564-a1b5-106623c5cc09}","total_area":{"sqm":494,"sqm_label":"494 sqm","ha":0.0494,"ha_label":"0.0494 ha"},"area_sqm":494,"area_ha":0.0494,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Business"],"planning_codes":["Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.73023023458032,-40.98834763862385],[145.73013431516924,-40.98837656038395],[145.7300405589013,-40.98819796295564],[145.7300382879603,-40.98819363200403],[145.73011800356025,-40.98810279112707],[145.730151364295,-40.98808774635335],[145.73028838252864,-40.988186919604864],[145.73031114134633,-40.98822566151021],[145.730355670835,-40.98830946638356],[145.73023023458032,-40.98834763862385]]]},"properties":{"pid":"1590233"}}}

+ 1 - 0
classes/cache/v2-latlng--40.988403_145.659014.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7086433","title_id":"6121/1","tenure":"Freehold Title","lpi":"JNN19","list_guid":"{988e4665-3c7d-48b3-8934-550089c3dc88}","total_area":{"sqm":3353,"sqm_label":"3,353 sqm","ha":0.3353,"ha_label":"0.3353 ha"},"area_sqm":3353,"area_ha":0.3353,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["Rural"],"planning_codes":["Bushfire-prone Areas Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.65934846586424,-40.988193389248316],[145.65910831654438,-40.98844705966391],[145.6588687187901,-40.98859069574645],[145.6587386247707,-40.98860556749393],[145.65842315171423,-40.98855182996604],[145.65832438194874,-40.98806719887709],[145.65934846586424,-40.988193389248316]]]},"properties":{"pid":"7086433"}}}

+ 1 - 0
classes/cache/v2-latlng--40.988403_145.729319.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"3481882","title_id":"171981/2","tenure":"Freehold Title","lpi":"FQD06","list_guid":"{defacad9-a0c6-4c07-a09f-157677cbbe9e}","total_area":{"sqm":1101,"sqm_label":"1,101 sqm","ha":0.1101,"ha_label":"0.1101 ha"},"area_sqm":1101,"area_ha":0.1101,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Business"],"planning_codes":["Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.72937597088114,-40.988269007609155],[145.729387521419,-40.98829152825739],[145.72942189814833,-40.9882811609757],[145.72956340346676,-40.988549734005616],[145.72954174239035,-40.98855660300544],[145.72935172175832,-40.988613780450954],[145.72926090208307,-40.988641406275875],[145.7292537766463,-40.98864351715124],[145.7291628446816,-40.98847084081273],[145.72909184723142,-40.98833666853153],[145.72919184409557,-40.98830656755992],[145.72917622329112,-40.988276821892526],[145.72918073103722,-40.98827549351867],[145.72916797945177,-40.9882505270016],[145.72929689937314,-40.988212340465225],[145.72937597088114,-40.988269007609155]]]},"properties":{"pid":"3481882"}}}

+ 1 - 0
classes/cache/v2-latlng--40.988694_147.386409.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7702435","title_id":"112028/1","tenure":"Freehold Title","lpi":"6105730","list_guid":"{28da953b-e36b-4e97-b4f2-0a6bc1607d7e}","total_area":{"sqm":945,"sqm_label":"945 sqm","ha":0.0945,"ha_label":"0.0945 ha"},"area_sqm":945,"area_ha":0.0945,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[147.3866067692378,-40.98861761637348],[147.38657692001757,-40.98880535728349],[147.3860462393651,-40.98875691506714],[147.38607607780565,-40.988569174019176],[147.3866067692378,-40.98861761637348]]]},"properties":{"pid":"7702435"}}}

+ 1 - 0
classes/cache/v2-latlng--40.988859_145.728162.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7066627","title_id":"27608/1","tenure":"Freehold Title","lpi":"JPK76","list_guid":"{9d58178b-dcb2-4fa3-a5a9-eba5d3574530}","total_area":{"sqm":747,"sqm_label":"747 sqm","ha":0.0747,"ha_label":"0.0747 ha"},"area_sqm":747,"area_ha":0.0747,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Business"],"planning_codes":["Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.72833871676525,-40.988917508607955],[145.72813614217705,-40.988978301943945],[145.7279540698387,-40.98864345815793],[145.72816163097497,-40.98858110763102],[145.72833871676525,-40.988917508607955]]]},"properties":{"pid":"7066627"}}}

+ 1 - 0
classes/cache/v2-latlng--40.989160_145.717765.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7070482","title_id":"189284/1","tenure":"Freehold Title","lpi":"JNU90","list_guid":"{a645448c-dcf1-4eae-ad64-478b8fe731dc}","total_area":{"sqm":451,"sqm_label":"451 sqm","ha":0.0451,"ha_label":"0.0451 ha"},"area_sqm":451,"area_ha":0.0451,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.71786509627265,-40.98905311588014],[145.7180057886158,-40.989313434246526],[145.71791915598808,-40.98930751598966],[145.71778103372492,-40.98929807986774],[145.71768073233196,-40.98911285942462],[145.7178323176462,-40.989063741388804],[145.71786509627265,-40.98905311588014]]]},"properties":{"pid":"7070482"}}}

+ 1 - 0
classes/cache/v2-latlng--40.989303_147.387402.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6846656","title_id":"242225/2","tenure":"Freehold Title","lpi":"6106113","list_guid":"{94b8b59f-fe2f-4f1c-bcfc-ae111b0f6b18}","total_area":{"sqm":1214,"sqm_label":"1,214 sqm","ha":0.1214,"ha_label":"0.1214 ha"},"area_sqm":1214,"area_ha":0.1214,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[147.38759115121096,-40.989493774697195],[147.387366139402,-40.98955494925788],[147.38712394012663,-40.989043447140446],[147.3873489618171,-40.98898227278329],[147.38759115121096,-40.989493774697195]]]},"properties":{"pid":"6846656"}}}

+ 1 - 0
classes/cache/v2-latlng--40.989307_145.709944.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"3430727","title_id":"168868/1","tenure":"Freehold Title","lpi":"JNX89","list_guid":"{c901808d-235a-43a5-b6fe-43bab050120e}","total_area":{"sqm":23330,"sqm_label":"23,330 sqm","ha":2.333,"ha_label":"2.333 ha"},"area_sqm":23330,"area_ha":2.333,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Industrial"],"planning_codes":["Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.71071365590646,-40.990092921940416],[145.7106581274455,-40.99010931696985],[145.70989264424577,-40.989799715418236],[145.7096651935108,-40.98970249608677],[145.70951377887639,-40.98963888941262],[145.70923442528093,-40.989528926784665],[145.7086857594582,-40.98932336400628],[145.70852463403563,-40.98927619492185],[145.70846580785923,-40.98916187367787],[145.70862520132997,-40.98903583704998],[145.70877105539273,-40.988828658220996],[145.70895415270894,-40.988665413156475],[145.70913933681146,-40.9886126833106],[145.70964037665274,-40.988469995917896],[145.70990852107013,-40.98864925577547],[145.71024671162175,-40.988965687611035],[145.7102990160292,-40.989014627384854],[145.7109829232179,-40.98906816450208],[145.71138525437914,-40.98985605640173],[145.711402317878,-40.98988946836552],[145.7113234853219,-40.989912764173404],[145.71071365590646,-40.990092921940416]]]},"properties":{"pid":"3430727"}}}

+ 1 - 0
classes/cache/v2-latlng--40.989413_145.721760.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"7070634","title_id":"93294/1","tenure":"Freehold Title","lpi":"JPK59","list_guid":"{33df22fa-b794-464d-9d80-d3349f23c3dd}","total_area":{"sqm":680,"sqm_label":"680 sqm","ha":0.068,"ha_label":"0.068 ha"},"area_sqm":680,"area_ha":0.068,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Safeguarding of Airports Code","Natural Assets Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.72197502164815,-40.989561939528336],[145.72170801988779,-40.98954690797097],[145.72157626757834,-40.989309204401664],[145.72179805174054,-40.989239024062],[145.721838392385,-40.989312625300585],[145.72197502164815,-40.989561939528336]]]},"properties":{"pid":"7070634"}}}

+ 1 - 0
classes/cache/v2-latlng--40.989417_145.721514.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"2716336","title_id":"147036/2","tenure":"Freehold Title","lpi":"JPG93","list_guid":"{771995fb-8516-4fd4-8c58-4ab225c50c9c}","total_area":{"sqm":583,"sqm_label":"583 sqm","ha":0.0583,"ha_label":"0.0583 ha"},"area_sqm":583,"area_ha":0.0583,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Natural Assets Code","Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.72157626757834,-40.989309204401664],[145.72170801988779,-40.98954690797097],[145.72144004165875,-40.989529549935426],[145.72132821667722,-40.98932432484131],[145.7215536884237,-40.989267535872315],[145.72157626757834,-40.989309204401664]]]},"properties":{"pid":"2716336"}}}

+ 1 - 0
classes/cache/v2-latlng--40.990192_145.736229.json

@@ -0,0 +1 @@
+{"ok":true,"pid":null,"title_id":"147288/0","tenure":"Body Corporate","lpi":"FSQ39","list_guid":"{5c1fea1a-7eb8-46b5-9eef-47d51bdc2f50}","total_area":{"sqm":3215,"sqm_label":"3,215 sqm","ha":0.3215,"ha_label":"0.3215 ha"},"area_sqm":3215,"area_ha":0.3215,"council":"Waratah-Wynyard","planning_scheme":"Waratah-Wynyard Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Safeguarding of Airports Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[145.73641357853109,-40.99023335802705],[145.73645118021227,-40.99026705458789],[145.73648566114613,-40.99024496654336],[145.73664816278773,-40.99039061324342],[145.7366163750031,-40.99043599821832],[145.73648075903964,-40.99052287055906],[145.73635068029154,-40.99060619176546],[145.73626651533596,-40.99066009984711],[145.7362518548305,-40.99064652637633],[145.73620572274737,-40.99067607094611],[145.73605715667074,-40.990771223465025],[145.73585804329142,-40.99058739447906],[145.73584984257118,-40.990579827962875],[145.73567929382116,-40.990422354182584],[145.73578484137556,-40.99035556535952],[145.7358829284214,-40.99029348632224],[145.73598047378317,-40.99023176185589],[145.73609203825322,-40.99016115599317],[145.7361862104411,-40.99010110555522],[145.7362167899917,-40.99008160496708],[145.73623290307296,-40.99007141358678],[145.73641357853109,-40.99023335802705]]]},"properties":{"pid":null}}}

+ 1 - 0
classes/cache/v2-latlng--40.990250_147.386919.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9237115","title_id":"186061/1","tenure":"Freehold Title","lpi":"FHK43","list_guid":"{a076f052-3b2c-4fa0-8f29-3bcaa8b56dfb}","total_area":{"sqm":1006,"sqm_label":"1,006 sqm","ha":0.1006,"ha_label":"0.1006 ha"},"area_sqm":1006,"area_ha":0.1006,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":["Bushfire-prone Areas Code"],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[147.38720204864057,-40.990179725570236],[147.38717363402986,-40.99035852647519],[147.3865803021746,-40.99030441404883],[147.38660870600552,-40.99012561367523],[147.3869323546294,-40.99015512864338],[147.3871481407404,-40.990174808219805],[147.38720204864057,-40.990179725570236]]]},"properties":{"pid":"9237115"}}}

+ 1 - 0
classes/cache/v2-latlng--40.990462_147.387427.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"9091457","title_id":"186716/1","tenure":"Freehold Title","lpi":"6106135","list_guid":"{0b21d06a-26d9-4862-98d2-4f22a37ca016}","total_area":{"sqm":2016,"sqm_label":"2,016 sqm","ha":0.2016,"ha_label":"0.2016 ha"},"area_sqm":2016,"area_ha":0.2016,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":[],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[147.38776699103792,-40.99041263478871],[147.3877385908002,-40.99059143574013],[147.38720093652628,-40.99054240966638],[147.3871452203174,-40.99053732689525],[147.38717363402986,-40.99035852647519],[147.38720204864057,-40.990179725570236],[147.38736395020766,-40.990194486434206],[147.38779539127563,-40.990233825215626],[147.38776699103792,-40.99041263478871]]]},"properties":{"pid":"9091457"}}}

+ 1 - 0
classes/cache/v2-latlng--40.990718_147.388219.json

@@ -0,0 +1 @@
+{"ok":true,"pid":"6851551","title_id":"75817/4","tenure":"Freehold Title","lpi":"6106156","list_guid":"{a9935db6-4581-4d62-9350-078ac3d91117}","total_area":{"sqm":554,"sqm_label":"554 sqm","ha":0.0554,"ha_label":"0.0554 ha"},"area_sqm":554,"area_ha":0.0554,"council":"Dorset","planning_scheme":"Dorset Local Provisions Schedule","planning_zones":["General Residential"],"planning_codes":[],"boundary":{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[147.38830175722825,-40.990644273849824],[147.38828775249303,-40.990731449010084],[147.3882728763919,-40.99082407634801],[147.3879474733583,-40.99079408432376],[147.38797635509297,-40.99061426411413],[147.38830175722825,-40.990644273849824]]]},"properties":{"pid":"6851551"}}}

Деякі файли не було показано, через те що забагато файлів було змінено